From 99c40c208296c723f5d1a89d1f6c38564bef5829 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Thu, 11 Aug 2022 18:16:57 +0200 Subject: Make fosscord read config from json if CONFIG_PATH is set --- util/src/util/Config.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/util/src/util/Config.ts b/util/src/util/Config.ts index 97a73858..925cb243 100644 --- a/util/src/util/Config.ts +++ b/util/src/util/Config.ts @@ -3,7 +3,7 @@ import path from "path"; import fs from "fs"; // TODO: yaml instead of json -// const overridePath = path.join(process.cwd(), "config.json"); +const overridePath = process.env.CONFIG_PATH ?? ""; let config: ConfigValue; let pairs: ConfigEntity[]; @@ -18,12 +18,14 @@ export const Config = { config = pairsToConfig(pairs); config = (config || {}).merge(DefaultConfigOptions); - // try { - // const overrideConfig = JSON.parse(fs.readFileSync(overridePath, { encoding: "utf8" })); - // config = overrideConfig.merge(config); - // } catch (error) { - // fs.writeFileSync(overridePath, JSON.stringify(config, null, 4)); - // } + if(process.env.CONFIG_PATH) + try { + const overrideConfig = JSON.parse(fs.readFileSync(overridePath, { encoding: "utf8" })); + config = overrideConfig.merge(config); + } catch (error) { + fs.writeFileSync(overridePath, JSON.stringify(config, null, 4)); + } + return this.set(config); }, @@ -50,7 +52,8 @@ function applyConfig(val: ConfigValue) { pair.value = obj; return pair.save(); } - // fs.writeFileSync(overridePath, JSON.stringify(val, null, 4)); + if(process.env.CONFIG_PATH) + fs.writeFileSync(overridePath, JSON.stringify(val, null, 4)); return apply(val); } -- cgit 1.4.1 From 34ca1a8a6c1b195c45f13ebd3b29064a9623af6f Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Thu, 11 Aug 2022 23:11:48 +0200 Subject: Make ConfigValue a directory, move defaults to those classes instead of a separate object --- gateway/src/opcodes/VoiceStateUpdate.ts | 2 +- util/src/config/Config.ts | 22 ++ util/src/config/index.ts | 2 + util/src/config/types/ApiConfiguration.ts | 5 + util/src/config/types/ClientConfiguration.ts | 8 + util/src/config/types/DefaultsConfiguration.ts | 5 + util/src/config/types/EndpointConfiguration.ts | 5 + util/src/config/types/GeneralConfiguration.ts | 12 + util/src/config/types/GifConfiguration.ts | 5 + util/src/config/types/GuildConfiguration.ts | 6 + util/src/config/types/KafkaConfiguration.ts | 5 + util/src/config/types/LimitConfigurations.ts | 9 + util/src/config/types/LoginConfiguration.ts | 3 + util/src/config/types/MetricsConfiguration.ts | 3 + util/src/config/types/RabbitMQConfiguration.ts | 3 + util/src/config/types/RegionConfiguration.ts | 16 + util/src/config/types/RegisterConfiguration.ts | 18 + util/src/config/types/SecurityConfiguration.ts | 17 + util/src/config/types/SentryConfiguration.ts | 8 + util/src/config/types/TemplateConfiguration.ts | 6 + util/src/config/types/index.ts | 18 + .../client/ClientReleaseConfiguration.ts | 4 + .../config/types/subconfigurations/client/index.ts | 1 + .../subconfigurations/defaults/GuildDefaults.ts | 8 + .../types/subconfigurations/defaults/index.ts | 1 + .../types/subconfigurations/guild/AutoJoin.ts | 5 + .../types/subconfigurations/guild/Discovery.ts | 6 + .../config/types/subconfigurations/guild/index.ts | 2 + util/src/config/types/subconfigurations/index.ts | 8 + .../types/subconfigurations/kafka/KafkaBroker.ts | 4 + .../config/types/subconfigurations/kafka/index.ts | 1 + .../subconfigurations/limits/ChannelLimits.ts | 5 + .../types/subconfigurations/limits/GuildLimits.ts | 8 + .../subconfigurations/limits/MessageLimits.ts | 8 + .../types/subconfigurations/limits/RateLimits.ts | 18 + .../types/subconfigurations/limits/UserLimits.ts | 5 + .../config/types/subconfigurations/limits/index.ts | 6 + .../subconfigurations/limits/ratelimits/Auth.ts | 12 + .../limits/ratelimits/RateLimitOptions.ts | 6 + .../subconfigurations/limits/ratelimits/Route.ts | 19 + .../subconfigurations/limits/ratelimits/index.ts | 3 + .../types/subconfigurations/region/Region.ts | 12 + .../config/types/subconfigurations/region/index.ts | 1 + .../subconfigurations/register/DateOfBirth.ts | 4 + .../types/subconfigurations/register/Email.ts | 7 + .../types/subconfigurations/register/Password.ts | 7 + .../types/subconfigurations/register/index.ts | 3 + .../types/subconfigurations/security/Captcha.ts | 6 + .../types/subconfigurations/security/TwoFactor.ts | 3 + .../types/subconfigurations/security/index.ts | 2 + util/src/entities/Config.ts | 406 +-------------------- util/src/util/Config.ts | 14 +- 52 files changed, 364 insertions(+), 409 deletions(-) create mode 100644 util/src/config/Config.ts create mode 100644 util/src/config/index.ts create mode 100644 util/src/config/types/ApiConfiguration.ts create mode 100644 util/src/config/types/ClientConfiguration.ts create mode 100644 util/src/config/types/DefaultsConfiguration.ts create mode 100644 util/src/config/types/EndpointConfiguration.ts create mode 100644 util/src/config/types/GeneralConfiguration.ts create mode 100644 util/src/config/types/GifConfiguration.ts create mode 100644 util/src/config/types/GuildConfiguration.ts create mode 100644 util/src/config/types/KafkaConfiguration.ts create mode 100644 util/src/config/types/LimitConfigurations.ts create mode 100644 util/src/config/types/LoginConfiguration.ts create mode 100644 util/src/config/types/MetricsConfiguration.ts create mode 100644 util/src/config/types/RabbitMQConfiguration.ts create mode 100644 util/src/config/types/RegionConfiguration.ts create mode 100644 util/src/config/types/RegisterConfiguration.ts create mode 100644 util/src/config/types/SecurityConfiguration.ts create mode 100644 util/src/config/types/SentryConfiguration.ts create mode 100644 util/src/config/types/TemplateConfiguration.ts create mode 100644 util/src/config/types/index.ts create mode 100644 util/src/config/types/subconfigurations/client/ClientReleaseConfiguration.ts create mode 100644 util/src/config/types/subconfigurations/client/index.ts create mode 100644 util/src/config/types/subconfigurations/defaults/GuildDefaults.ts create mode 100644 util/src/config/types/subconfigurations/defaults/index.ts create mode 100644 util/src/config/types/subconfigurations/guild/AutoJoin.ts create mode 100644 util/src/config/types/subconfigurations/guild/Discovery.ts create mode 100644 util/src/config/types/subconfigurations/guild/index.ts create mode 100644 util/src/config/types/subconfigurations/index.ts create mode 100644 util/src/config/types/subconfigurations/kafka/KafkaBroker.ts create mode 100644 util/src/config/types/subconfigurations/kafka/index.ts create mode 100644 util/src/config/types/subconfigurations/limits/ChannelLimits.ts create mode 100644 util/src/config/types/subconfigurations/limits/GuildLimits.ts create mode 100644 util/src/config/types/subconfigurations/limits/MessageLimits.ts create mode 100644 util/src/config/types/subconfigurations/limits/RateLimits.ts create mode 100644 util/src/config/types/subconfigurations/limits/UserLimits.ts create mode 100644 util/src/config/types/subconfigurations/limits/index.ts create mode 100644 util/src/config/types/subconfigurations/limits/ratelimits/Auth.ts create mode 100644 util/src/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts create mode 100644 util/src/config/types/subconfigurations/limits/ratelimits/Route.ts create mode 100644 util/src/config/types/subconfigurations/limits/ratelimits/index.ts create mode 100644 util/src/config/types/subconfigurations/region/Region.ts create mode 100644 util/src/config/types/subconfigurations/region/index.ts create mode 100644 util/src/config/types/subconfigurations/register/DateOfBirth.ts create mode 100644 util/src/config/types/subconfigurations/register/Email.ts create mode 100644 util/src/config/types/subconfigurations/register/Password.ts create mode 100644 util/src/config/types/subconfigurations/register/index.ts create mode 100644 util/src/config/types/subconfigurations/security/Captcha.ts create mode 100644 util/src/config/types/subconfigurations/security/TwoFactor.ts create mode 100644 util/src/config/types/subconfigurations/security/index.ts diff --git a/gateway/src/opcodes/VoiceStateUpdate.ts b/gateway/src/opcodes/VoiceStateUpdate.ts index d62425f3..8c430d56 100644 --- a/gateway/src/opcodes/VoiceStateUpdate.ts +++ b/gateway/src/opcodes/VoiceStateUpdate.ts @@ -7,12 +7,12 @@ import { emitEvent, Guild, Member, - Region, VoiceServerUpdateEvent, VoiceState, VoiceStateUpdateEvent, } from "@fosscord/util"; import { OrmUtils } from "@fosscord/util"; +import { Region } from "@fosscord/util/src/config"; // TODO: check if a voice server is setup // Notice: Bot users respect the voice channel's user limit, if set. When the voice channel is full, you will not receive the Voice State Update or Voice Server Update events in response to your own Voice State Update. Having MANAGE_CHANNELS permission bypasses this limit and allows you to join regardless of the channel being full or not. diff --git a/util/src/config/Config.ts b/util/src/config/Config.ts new file mode 100644 index 00000000..b703040f --- /dev/null +++ b/util/src/config/Config.ts @@ -0,0 +1,22 @@ +import { ApiConfiguration, ClientConfiguration, DefaultsConfiguration, EndpointConfiguration, GeneralConfiguration, GifConfiguration, GuildConfiguration, KafkaConfiguration, LimitsConfiguration, LoginConfiguration, MetricsConfiguration, RabbitMQConfiguration, RegionConfiguration, RegisterConfiguration, SecurityConfiguration, SentryConfiguration, TemplateConfiguration } from "../config"; + +export class ConfigValue { + gateway: EndpointConfiguration = new EndpointConfiguration(); + cdn: EndpointConfiguration = new EndpointConfiguration(); + api: ApiConfiguration = new ApiConfiguration(); + general: GeneralConfiguration = new GeneralConfiguration(); + limits: LimitsConfiguration = new LimitsConfiguration(); + security: SecurityConfiguration = new SecurityConfiguration(); + login: LoginConfiguration = new LoginConfiguration(); + register: RegisterConfiguration = new RegisterConfiguration(); + regions: RegionConfiguration = new RegionConfiguration(); + guild: GuildConfiguration = new GuildConfiguration(); + gif: GifConfiguration = new GifConfiguration(); + rabbitmq: RabbitMQConfiguration = new RabbitMQConfiguration(); + kafka: KafkaConfiguration = new KafkaConfiguration(); + templates: TemplateConfiguration = new TemplateConfiguration(); + client: ClientConfiguration = new ClientConfiguration(); + metrics: MetricsConfiguration = new MetricsConfiguration(); + sentry: SentryConfiguration = new SentryConfiguration(); + defaults: DefaultsConfiguration = new DefaultsConfiguration(); +} \ No newline at end of file diff --git a/util/src/config/index.ts b/util/src/config/index.ts new file mode 100644 index 00000000..0a9b58ae --- /dev/null +++ b/util/src/config/index.ts @@ -0,0 +1,2 @@ +export * from "./Config"; +export * from "./types/index"; diff --git a/util/src/config/types/ApiConfiguration.ts b/util/src/config/types/ApiConfiguration.ts new file mode 100644 index 00000000..16b1efba --- /dev/null +++ b/util/src/config/types/ApiConfiguration.ts @@ -0,0 +1,5 @@ +export class ApiConfiguration { + defaultVersion: string = "9"; + activeVersions: string[] = ["6", "7", "8", "9"]; + useFosscordEnhancements: boolean = true; +} \ No newline at end of file diff --git a/util/src/config/types/ClientConfiguration.ts b/util/src/config/types/ClientConfiguration.ts new file mode 100644 index 00000000..1adda1e2 --- /dev/null +++ b/util/src/config/types/ClientConfiguration.ts @@ -0,0 +1,8 @@ +import { ClientReleaseConfiguration } from "."; + +export class ClientConfiguration { + //classes + releases: ClientReleaseConfiguration = new ClientReleaseConfiguration(); + //base types + useTestClient: boolean = true; +} \ No newline at end of file diff --git a/util/src/config/types/DefaultsConfiguration.ts b/util/src/config/types/DefaultsConfiguration.ts new file mode 100644 index 00000000..c3171a01 --- /dev/null +++ b/util/src/config/types/DefaultsConfiguration.ts @@ -0,0 +1,5 @@ +import { GuildDefaults } from "."; + +export class DefaultsConfiguration { + guild: GuildDefaults = new GuildDefaults(); +} \ No newline at end of file diff --git a/util/src/config/types/EndpointConfiguration.ts b/util/src/config/types/EndpointConfiguration.ts new file mode 100644 index 00000000..87baea31 --- /dev/null +++ b/util/src/config/types/EndpointConfiguration.ts @@ -0,0 +1,5 @@ +export class EndpointConfiguration { + endpointClient: string | null = null; + endpointPrivate: string | null = null; + endpointPublic: string | null = null; +} \ No newline at end of file diff --git a/util/src/config/types/GeneralConfiguration.ts b/util/src/config/types/GeneralConfiguration.ts new file mode 100644 index 00000000..55848b44 --- /dev/null +++ b/util/src/config/types/GeneralConfiguration.ts @@ -0,0 +1,12 @@ +import { Snowflake } from "../../util"; + +export class GeneralConfiguration { + instanceName: string = "Fosscord Instance"; + instanceDescription: string | null = "This is a Fosscord instance made in the pre-release days"; + frontPage: string | null = null; + tosPage: string | null = null; + correspondenceEmail: string | null = "noreply@localhost.local"; + correspondenceUserID: string | null = null; + image: string | null = null; + instanceId: string = Snowflake.generate(); +} \ No newline at end of file diff --git a/util/src/config/types/GifConfiguration.ts b/util/src/config/types/GifConfiguration.ts new file mode 100644 index 00000000..6a2d520d --- /dev/null +++ b/util/src/config/types/GifConfiguration.ts @@ -0,0 +1,5 @@ +export class GifConfiguration { + enabled: boolean = true; + provider: "tenor" = "tenor"; // more coming soon + apiKey?: string = "LIVDSRZULELA"; +} \ No newline at end of file diff --git a/util/src/config/types/GuildConfiguration.ts b/util/src/config/types/GuildConfiguration.ts new file mode 100644 index 00000000..3d43b368 --- /dev/null +++ b/util/src/config/types/GuildConfiguration.ts @@ -0,0 +1,6 @@ +import { DiscoveryConfiguration, AutoJoinConfiguration } from "."; + +export class GuildConfiguration { + discovery: DiscoveryConfiguration = new DiscoveryConfiguration(); + autoJoin: AutoJoinConfiguration = new AutoJoinConfiguration(); +} diff --git a/util/src/config/types/KafkaConfiguration.ts b/util/src/config/types/KafkaConfiguration.ts new file mode 100644 index 00000000..7932f49e --- /dev/null +++ b/util/src/config/types/KafkaConfiguration.ts @@ -0,0 +1,5 @@ +import { KafkaBroker } from "."; + +export class KafkaConfiguration { + brokers: KafkaBroker[] | null = null; +} \ No newline at end of file diff --git a/util/src/config/types/LimitConfigurations.ts b/util/src/config/types/LimitConfigurations.ts new file mode 100644 index 00000000..bcc2e7e2 --- /dev/null +++ b/util/src/config/types/LimitConfigurations.ts @@ -0,0 +1,9 @@ +import { ChannelLimits, GuildLimits, MessageLimits, RateLimits, UserLimits } from "."; + +export class LimitsConfiguration { + user: UserLimits = new UserLimits(); + guild: GuildLimits = new GuildLimits(); + message: MessageLimits = new MessageLimits(); + channel: ChannelLimits = new ChannelLimits(); + rate: RateLimits = new RateLimits(); +} \ No newline at end of file diff --git a/util/src/config/types/LoginConfiguration.ts b/util/src/config/types/LoginConfiguration.ts new file mode 100644 index 00000000..255c9451 --- /dev/null +++ b/util/src/config/types/LoginConfiguration.ts @@ -0,0 +1,3 @@ +export class LoginConfiguration { + requireCaptcha: boolean = false; +} \ No newline at end of file diff --git a/util/src/config/types/MetricsConfiguration.ts b/util/src/config/types/MetricsConfiguration.ts new file mode 100644 index 00000000..d7cd4937 --- /dev/null +++ b/util/src/config/types/MetricsConfiguration.ts @@ -0,0 +1,3 @@ +export class MetricsConfiguration { + timeout: number = 30000; +} \ No newline at end of file diff --git a/util/src/config/types/RabbitMQConfiguration.ts b/util/src/config/types/RabbitMQConfiguration.ts new file mode 100644 index 00000000..ce4a9123 --- /dev/null +++ b/util/src/config/types/RabbitMQConfiguration.ts @@ -0,0 +1,3 @@ +export class RabbitMQConfiguration { + host: string | null = null; +} \ No newline at end of file diff --git a/util/src/config/types/RegionConfiguration.ts b/util/src/config/types/RegionConfiguration.ts new file mode 100644 index 00000000..09d9271c --- /dev/null +++ b/util/src/config/types/RegionConfiguration.ts @@ -0,0 +1,16 @@ +import { Region } from "."; + +export class RegionConfiguration { + default: string = "fosscord"; + useDefaultAsOptimal: boolean = true; + available: Region[] = [ + { + id: "fosscord", + name: "Fosscord", + endpoint: "127.0.0.1:3004", + vip: false, + custom: false, + deprecated: false, + }, + ]; +} \ No newline at end of file diff --git a/util/src/config/types/RegisterConfiguration.ts b/util/src/config/types/RegisterConfiguration.ts new file mode 100644 index 00000000..a0dc97c5 --- /dev/null +++ b/util/src/config/types/RegisterConfiguration.ts @@ -0,0 +1,18 @@ +import { DateOfBirthConfiguration, EmailConfiguration, PasswordConfiguration } from "."; + +export class RegisterConfiguration { + //classes + email: EmailConfiguration = new EmailConfiguration(); + dateOfBirth: DateOfBirthConfiguration = new DateOfBirthConfiguration(); + password: PasswordConfiguration = new PasswordConfiguration(); + //base types + disabled: boolean = false; + requireCaptcha: boolean = true; + requireInvite: boolean = false; + guestsRequireInvite: boolean = true; + allowNewRegistration: boolean = true; + allowMultipleAccounts: boolean = true; + blockProxies: boolean = true; + incrementingDiscriminators: boolean = false; // random otherwise + defaultRights: string = "0"; +} diff --git a/util/src/config/types/SecurityConfiguration.ts b/util/src/config/types/SecurityConfiguration.ts new file mode 100644 index 00000000..405b86ac --- /dev/null +++ b/util/src/config/types/SecurityConfiguration.ts @@ -0,0 +1,17 @@ +import crypto from "crypto"; +import { CaptchaConfiguration, TwoFactorConfiguration } from "."; + +export class SecurityConfiguration { + //classes + captcha: CaptchaConfiguration = new CaptchaConfiguration(); + twoFactor: TwoFactorConfiguration = new TwoFactorConfiguration(); + //base types + autoUpdate: boolean | number = true; + requestSignature: string = crypto.randomBytes(32).toString("base64"); + jwtSecret: string = crypto.randomBytes(256).toString("base64"); + // header to get the real user ip address + // X-Forwarded-For for nginx/reverse proxies + // CF-Connecting-IP for cloudflare + forwadedFor: string | null = null; + ipdataApiKey: string | null = "eca677b284b3bac29eb72f5e496aa9047f26543605efe99ff2ce35c9"; +} diff --git a/util/src/config/types/SentryConfiguration.ts b/util/src/config/types/SentryConfiguration.ts new file mode 100644 index 00000000..836094a1 --- /dev/null +++ b/util/src/config/types/SentryConfiguration.ts @@ -0,0 +1,8 @@ +import { hostname } from "os"; + +export class SentryConfiguration { + enabled: boolean = false; + endpoint: string = "https://05e8e3d005f34b7d97e920ae5870a5e5@sentry.thearcanebrony.net/6"; + traceSampleRate: number = 1.0; + environment: string = hostname(); +} \ No newline at end of file diff --git a/util/src/config/types/TemplateConfiguration.ts b/util/src/config/types/TemplateConfiguration.ts new file mode 100644 index 00000000..4a9aa8f2 --- /dev/null +++ b/util/src/config/types/TemplateConfiguration.ts @@ -0,0 +1,6 @@ +export class TemplateConfiguration { + enabled: boolean = true; + allowTemplateCreation: boolean = true; + allowDiscordTemplates: boolean = true; + allowRaws: boolean = true; +} \ No newline at end of file diff --git a/util/src/config/types/index.ts b/util/src/config/types/index.ts new file mode 100644 index 00000000..608503a0 --- /dev/null +++ b/util/src/config/types/index.ts @@ -0,0 +1,18 @@ +export * from "./ApiConfiguration"; +export * from "./ClientConfiguration"; +export * from "./DefaultsConfiguration"; +export * from "./EndpointConfiguration"; +export * from "./GeneralConfiguration"; +export * from "./GifConfiguration"; +export * from "./GuildConfiguration"; +export * from "./KafkaConfiguration"; +export * from "./LimitConfigurations"; +export * from "./LoginConfiguration"; +export * from "./MetricsConfiguration"; +export * from "./RabbitMQConfiguration"; +export * from "./RegionConfiguration"; +export * from "./RegisterConfiguration"; +export * from "./SecurityConfiguration"; +export * from "./SentryConfiguration"; +export * from "./TemplateConfiguration"; +export * from "./subconfigurations/index"; diff --git a/util/src/config/types/subconfigurations/client/ClientReleaseConfiguration.ts b/util/src/config/types/subconfigurations/client/ClientReleaseConfiguration.ts new file mode 100644 index 00000000..54e7f365 --- /dev/null +++ b/util/src/config/types/subconfigurations/client/ClientReleaseConfiguration.ts @@ -0,0 +1,4 @@ +export class ClientReleaseConfiguration { + useLocalRelease: boolean = true; //TODO + upstreamVersion: string = "0.0.264"; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/client/index.ts b/util/src/config/types/subconfigurations/client/index.ts new file mode 100644 index 00000000..96bbb0ca --- /dev/null +++ b/util/src/config/types/subconfigurations/client/index.ts @@ -0,0 +1 @@ +export * from "./ClientReleaseConfiguration"; diff --git a/util/src/config/types/subconfigurations/defaults/GuildDefaults.ts b/util/src/config/types/subconfigurations/defaults/GuildDefaults.ts new file mode 100644 index 00000000..d6ff7697 --- /dev/null +++ b/util/src/config/types/subconfigurations/defaults/GuildDefaults.ts @@ -0,0 +1,8 @@ +export class GuildDefaults { + maxPresences: number = 250000; + maxVideoChannelUsers: number = 200; + afkTimeout: number = 300; + defaultMessageNotifications: number = 1; + explicitContentFilter: number = 0; + test: number = 123; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/defaults/index.ts b/util/src/config/types/subconfigurations/defaults/index.ts new file mode 100644 index 00000000..f40c5cd2 --- /dev/null +++ b/util/src/config/types/subconfigurations/defaults/index.ts @@ -0,0 +1 @@ +export * from "./GuildDefaults"; diff --git a/util/src/config/types/subconfigurations/guild/AutoJoin.ts b/util/src/config/types/subconfigurations/guild/AutoJoin.ts new file mode 100644 index 00000000..47dfe5ec --- /dev/null +++ b/util/src/config/types/subconfigurations/guild/AutoJoin.ts @@ -0,0 +1,5 @@ +export class AutoJoinConfiguration { + enabled: boolean = true; + guilds: string[] = []; + canLeave: boolean = true; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/guild/Discovery.ts b/util/src/config/types/subconfigurations/guild/Discovery.ts new file mode 100644 index 00000000..59d8a8ae --- /dev/null +++ b/util/src/config/types/subconfigurations/guild/Discovery.ts @@ -0,0 +1,6 @@ +export class DiscoveryConfiguration { + showAllGuilds: boolean = false; + useRecommendation: boolean = false; // TODO: Recommendation, privacy concern? + offset: number = 0; + limit: number = 24; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/guild/index.ts b/util/src/config/types/subconfigurations/guild/index.ts new file mode 100644 index 00000000..e9614856 --- /dev/null +++ b/util/src/config/types/subconfigurations/guild/index.ts @@ -0,0 +1,2 @@ +export * from "./AutoJoin"; +export * from "./Discovery"; diff --git a/util/src/config/types/subconfigurations/index.ts b/util/src/config/types/subconfigurations/index.ts new file mode 100644 index 00000000..bfbadc92 --- /dev/null +++ b/util/src/config/types/subconfigurations/index.ts @@ -0,0 +1,8 @@ +export * from "./client/index"; +export * from "./defaults/index"; +export * from "./guild/index"; +export * from "./kafka/index"; +export * from "./limits/index"; +export * from "./region/index"; +export * from "./register/index"; +export * from "./security/index"; diff --git a/util/src/config/types/subconfigurations/kafka/KafkaBroker.ts b/util/src/config/types/subconfigurations/kafka/KafkaBroker.ts new file mode 100644 index 00000000..4f9a5e51 --- /dev/null +++ b/util/src/config/types/subconfigurations/kafka/KafkaBroker.ts @@ -0,0 +1,4 @@ +export interface KafkaBroker { + ip: string; + port: number; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/kafka/index.ts b/util/src/config/types/subconfigurations/kafka/index.ts new file mode 100644 index 00000000..2c633950 --- /dev/null +++ b/util/src/config/types/subconfigurations/kafka/index.ts @@ -0,0 +1 @@ +export * from "./KafkaBroker"; diff --git a/util/src/config/types/subconfigurations/limits/ChannelLimits.ts b/util/src/config/types/subconfigurations/limits/ChannelLimits.ts new file mode 100644 index 00000000..2f8f9485 --- /dev/null +++ b/util/src/config/types/subconfigurations/limits/ChannelLimits.ts @@ -0,0 +1,5 @@ +export class ChannelLimits { + maxPins: number = 500; + maxTopic: number = 1024; + maxWebhooks: number = 100; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/GuildLimits.ts b/util/src/config/types/subconfigurations/limits/GuildLimits.ts new file mode 100644 index 00000000..91ad39ae --- /dev/null +++ b/util/src/config/types/subconfigurations/limits/GuildLimits.ts @@ -0,0 +1,8 @@ +export class GuildLimits { + maxRoles: number = 1000; + maxEmojis: number = 2000; + maxMembers: number = 25000000; + maxChannels: number = 65535; + maxChannelsInCategory: number = 65535; + hideOfflineMember: number = 3; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/MessageLimits.ts b/util/src/config/types/subconfigurations/limits/MessageLimits.ts new file mode 100644 index 00000000..51576b90 --- /dev/null +++ b/util/src/config/types/subconfigurations/limits/MessageLimits.ts @@ -0,0 +1,8 @@ +export class MessageLimits { + maxCharacters: number = 1048576; + maxTTSCharacters: number = 160; + maxReactions: number = 2048; + maxAttachmentSize: number = 1024 * 1024 * 1024; + maxBulkDelete: number = 1000; + maxEmbedDownloadSize: number = 1024 * 1024 * 5; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/RateLimits.ts b/util/src/config/types/subconfigurations/limits/RateLimits.ts new file mode 100644 index 00000000..25e7a1e0 --- /dev/null +++ b/util/src/config/types/subconfigurations/limits/RateLimits.ts @@ -0,0 +1,18 @@ +import { RouteRateLimit, RateLimitOptions } from "."; + +export class RateLimits { + disabled: boolean = true; + ip: Omit = { + count: 500, + window: 5 + }; + global: RateLimitOptions = { + count: 250, + window: 5 + }; + error: RateLimitOptions = { + count: 10, + window: 5 + }; + routes: RouteRateLimit; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/UserLimits.ts b/util/src/config/types/subconfigurations/limits/UserLimits.ts new file mode 100644 index 00000000..0d10e0b3 --- /dev/null +++ b/util/src/config/types/subconfigurations/limits/UserLimits.ts @@ -0,0 +1,5 @@ +export class UserLimits { + maxGuilds: number = 1048576; + maxUsername: number = 127; + maxFriends: number = 5000; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/index.ts b/util/src/config/types/subconfigurations/limits/index.ts new file mode 100644 index 00000000..0b7304f6 --- /dev/null +++ b/util/src/config/types/subconfigurations/limits/index.ts @@ -0,0 +1,6 @@ +export * from "./ChannelLimits"; +export * from "./GuildLimits"; +export * from "./MessageLimits"; +export * from "./RateLimits"; +export * from "./UserLimits"; +export * from "./ratelimits/index"; diff --git a/util/src/config/types/subconfigurations/limits/ratelimits/Auth.ts b/util/src/config/types/subconfigurations/limits/ratelimits/Auth.ts new file mode 100644 index 00000000..df171044 --- /dev/null +++ b/util/src/config/types/subconfigurations/limits/ratelimits/Auth.ts @@ -0,0 +1,12 @@ +import { RateLimitOptions } from "./RateLimitOptions"; + +export class AuthRateLimit { + login: RateLimitOptions = { + count: 5, + window: 60 + }; + register: RateLimitOptions = { + count: 2, + window: 60 * 60 * 12 + }; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts b/util/src/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts new file mode 100644 index 00000000..7089e28e --- /dev/null +++ b/util/src/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts @@ -0,0 +1,6 @@ +export interface RateLimitOptions { + bot?: number; + count: number; + window: number; + onyIp?: boolean; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/ratelimits/Route.ts b/util/src/config/types/subconfigurations/limits/ratelimits/Route.ts new file mode 100644 index 00000000..3012a8a8 --- /dev/null +++ b/util/src/config/types/subconfigurations/limits/ratelimits/Route.ts @@ -0,0 +1,19 @@ +import { AuthRateLimit } from "."; +import { RateLimitOptions } from "./RateLimitOptions"; + +export class RouteRateLimit { + guild: RateLimitOptions = { + count: 5, + window: 5 + }; + webhook: RateLimitOptions = { + count: 10, + window: 5 + }; + channel: RateLimitOptions = { + count: 10, + window: 5 + }; + auth: AuthRateLimit; + // TODO: rate limit configuration for all routes +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/ratelimits/index.ts b/util/src/config/types/subconfigurations/limits/ratelimits/index.ts new file mode 100644 index 00000000..432eb601 --- /dev/null +++ b/util/src/config/types/subconfigurations/limits/ratelimits/index.ts @@ -0,0 +1,3 @@ +export * from "./Auth"; +export * from "./RateLimitOptions"; +export * from "./Route"; diff --git a/util/src/config/types/subconfigurations/region/Region.ts b/util/src/config/types/subconfigurations/region/Region.ts new file mode 100644 index 00000000..a8717e1f --- /dev/null +++ b/util/src/config/types/subconfigurations/region/Region.ts @@ -0,0 +1,12 @@ +export interface Region { + id: string; + name: string; + endpoint: string; + location?: { + latitude: number; + longitude: number; + }; + vip: boolean; + custom: boolean; + deprecated: boolean; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/region/index.ts b/util/src/config/types/subconfigurations/region/index.ts new file mode 100644 index 00000000..2beb8de7 --- /dev/null +++ b/util/src/config/types/subconfigurations/region/index.ts @@ -0,0 +1 @@ +export * from "./Region"; diff --git a/util/src/config/types/subconfigurations/register/DateOfBirth.ts b/util/src/config/types/subconfigurations/register/DateOfBirth.ts new file mode 100644 index 00000000..5a3c4e9d --- /dev/null +++ b/util/src/config/types/subconfigurations/register/DateOfBirth.ts @@ -0,0 +1,4 @@ +export class DateOfBirthConfiguration { + required: boolean = true; + minimum: number = 13; // in years +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/register/Email.ts b/util/src/config/types/subconfigurations/register/Email.ts new file mode 100644 index 00000000..115d49e0 --- /dev/null +++ b/util/src/config/types/subconfigurations/register/Email.ts @@ -0,0 +1,7 @@ +export class EmailConfiguration { + required: boolean = false; + allowlist: boolean = false; + blocklist: boolean = true; + domains: string[] = [];// TODO: efficiently save domain blocklist in database + // domains: fs.readFileSync(__dirname + "/blockedEmailDomains.txt", { encoding: "utf8" }).split("\n"), +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/register/Password.ts b/util/src/config/types/subconfigurations/register/Password.ts new file mode 100644 index 00000000..977473ac --- /dev/null +++ b/util/src/config/types/subconfigurations/register/Password.ts @@ -0,0 +1,7 @@ +export class PasswordConfiguration { + required: boolean = false; + minLength: number = 8; + minNumbers: number = 2; + minUpperCase: number =2; + minSymbols: number = 0; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/register/index.ts b/util/src/config/types/subconfigurations/register/index.ts new file mode 100644 index 00000000..d9738120 --- /dev/null +++ b/util/src/config/types/subconfigurations/register/index.ts @@ -0,0 +1,3 @@ +export * from "./DateOfBirth"; +export * from "./Email"; +export * from "./Password"; diff --git a/util/src/config/types/subconfigurations/security/Captcha.ts b/util/src/config/types/subconfigurations/security/Captcha.ts new file mode 100644 index 00000000..ad6aa762 --- /dev/null +++ b/util/src/config/types/subconfigurations/security/Captcha.ts @@ -0,0 +1,6 @@ +export class CaptchaConfiguration { + enabled: boolean = false; + service: "recaptcha" | "hcaptcha" | null = null; // TODO: hcaptcha, custom + sitekey: string | null = null; + secret: string | null = null; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/security/TwoFactor.ts b/util/src/config/types/subconfigurations/security/TwoFactor.ts new file mode 100644 index 00000000..33a47385 --- /dev/null +++ b/util/src/config/types/subconfigurations/security/TwoFactor.ts @@ -0,0 +1,3 @@ +export class TwoFactorConfiguration { + generateBackupCodes: boolean = true; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/security/index.ts b/util/src/config/types/subconfigurations/security/index.ts new file mode 100644 index 00000000..17619589 --- /dev/null +++ b/util/src/config/types/subconfigurations/security/index.ts @@ -0,0 +1,2 @@ +export * from "./Captcha"; +export * from "./TwoFactor"; diff --git a/util/src/entities/Config.ts b/util/src/entities/Config.ts index 901a5e54..606fe901 100644 --- a/util/src/entities/Config.ts +++ b/util/src/entities/Config.ts @@ -1,9 +1,5 @@ import { Column, Entity } from "typeorm"; import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; -import crypto from "crypto"; -import { Snowflake } from "../util/Snowflake"; -import { SessionsReplace } from ".."; -import { hostname } from "os"; @Entity("config") export class ConfigEntity extends BaseClassWithoutId { @@ -12,404 +8,4 @@ export class ConfigEntity extends BaseClassWithoutId { @Column({ type: "simple-json", nullable: true }) value: number | boolean | null | string | undefined; -} - -export interface RateLimitOptions { - bot?: number; - count: number; - window: number; - onyIp?: boolean; -} - -export interface Region { - id: string; - name: string; - endpoint: string; - location?: { - latitude: number; - longitude: number; - }; - vip: boolean; - custom: boolean; - deprecated: boolean; -} - -export interface KafkaBroker { - ip: string; - port: number; -} - -export interface ConfigValue { - gateway: { - endpointClient: string | null; - endpointPrivate: string | null; - endpointPublic: string | null; - }; - cdn: { - endpointClient: string | null; - endpointPublic: string | null; - endpointPrivate: string | null; - }; - api: { - defaultVersion: string; - activeVersions: string[]; - useFosscordEnhancements: boolean; - }; - general: { - instanceName: string; - instanceDescription: string | null; - frontPage: string | null; - tosPage: string | null; - correspondenceEmail: string | null; - correspondenceUserID: string | null; - image: string | null; - instanceId: string; - }; - limits: { - user: { - maxGuilds: number; - maxUsername: number; - maxFriends: number; - }; - guild: { - maxRoles: number; - maxEmojis: number; - maxMembers: number; - maxChannels: number; - maxChannelsInCategory: number; - hideOfflineMember: number; - }; - message: { - maxCharacters: number; - maxTTSCharacters: number; - maxReactions: number; - maxAttachmentSize: number; - maxBulkDelete: number; - maxEmbedDownloadSize: number; - }; - channel: { - maxPins: number; - maxTopic: number; - maxWebhooks: number; - }; - rate: { - disabled: boolean; - ip: Omit; - global: RateLimitOptions; - error: RateLimitOptions; - routes: { - guild: RateLimitOptions; - webhook: RateLimitOptions; - channel: RateLimitOptions; - auth: { - login: RateLimitOptions; - register: RateLimitOptions; - }; - // TODO: rate limit configuration for all routes - }; - }; - }; - security: { - autoUpdate: boolean | number; - requestSignature: string; - jwtSecret: string; - forwadedFor: string | null; // header to get the real user ip address - captcha: { - enabled: boolean; - service: "recaptcha" | "hcaptcha" | null; // TODO: hcaptcha, custom - sitekey: string | null; - secret: string | null; - }; - ipdataApiKey: string | null; - twoFactor: { - generateBackupCodes: boolean; - }; - }; - login: { - requireCaptcha: boolean; - }; - register: { - defaultRights: string; - email: { - required: boolean; - allowlist: boolean; - blocklist: boolean; - domains: string[]; - }; - dateOfBirth: { - required: boolean; - minimum: number; // in years - }; - disabled: boolean; - requireCaptcha: boolean; - requireInvite: boolean; - guestsRequireInvite: boolean; - allowNewRegistration: boolean; - allowMultipleAccounts: boolean; - blockProxies: boolean; - password: { - required: boolean; - minLength: number; - minNumbers: number; - minUpperCase: number; - minSymbols: number; - }; - incrementingDiscriminators: boolean; // random otherwise - }; - regions: { - default: string; - useDefaultAsOptimal: boolean; - available: Region[]; - }; - guild: { - discovery: { - showAllGuilds: boolean; - useRecommendation: boolean; // TODO: Recommendation, privacy concern? - offset: number; - limit: number; - }; - autoJoin: { - enabled: boolean; - guilds: string[]; - canLeave: boolean; - }; - }; - gif: { - enabled: boolean; - provider: "tenor"; // more coming soon - apiKey?: string; - }; - rabbitmq: { - host: string | null; - }; - kafka: { - brokers: KafkaBroker[] | null; - }; - templates: { - enabled: Boolean; - allowTemplateCreation: Boolean; - allowDiscordTemplates: Boolean; - allowRaws: Boolean; - }, - client: { - useTestClient: Boolean; - releases: { - useLocalRelease: Boolean; //TODO - upstreamVersion: string; - } - }, - metrics: { - timeout: number; - }, - sentry: { - enabled: boolean; - endpoint: string; - traceSampleRate: number; - environment: string; - } -} - -export const DefaultConfigOptions: ConfigValue = { - gateway: { - endpointClient: null, - endpointPrivate: null, - endpointPublic: null, - }, - cdn: { - endpointClient: null, - endpointPrivate: null, - endpointPublic: null, - }, - api: { - defaultVersion: "9", - activeVersions: ["6", "7", "8", "9"], - useFosscordEnhancements: true, - }, - general: { - instanceName: "Fosscord Instance", - instanceDescription: "This is a Fosscord instance made in pre-release days", - frontPage: null, - tosPage: null, - correspondenceEmail: "noreply@localhost.local", - correspondenceUserID: null, - image: null, - instanceId: Snowflake.generate(), - }, - limits: { - user: { - maxGuilds: 1048576, - maxUsername: 127, - maxFriends: 5000, - }, - guild: { - maxRoles: 1000, - maxEmojis: 2000, - maxMembers: 25000000, - maxChannels: 65535, - maxChannelsInCategory: 65535, - hideOfflineMember: 3, - }, - message: { - maxCharacters: 1048576, - maxTTSCharacters: 160, - maxReactions: 2048, - maxAttachmentSize: 1024 * 1024 * 1024, - maxEmbedDownloadSize: 1024 * 1024 * 5, - maxBulkDelete: 1000, - }, - channel: { - maxPins: 500, - maxTopic: 1024, - maxWebhooks: 100, - }, - rate: { - disabled: true, - ip: { - count: 500, - window: 5, - }, - global: { - count: 250, - window: 5, - }, - error: { - count: 10, - window: 5, - }, - routes: { - guild: { - count: 5, - window: 5, - }, - webhook: { - count: 10, - window: 5, - }, - channel: { - count: 10, - window: 5, - }, - auth: { - login: { - count: 5, - window: 60, - }, - register: { - count: 2, - window: 60 * 60 * 12, - }, - }, - }, - }, - }, - security: { - autoUpdate: true, - requestSignature: crypto.randomBytes(32).toString("base64"), - jwtSecret: crypto.randomBytes(256).toString("base64"), - forwadedFor: null, - // forwadedFor: "X-Forwarded-For" // nginx/reverse proxy - // forwadedFor: "CF-Connecting-IP" // cloudflare: - captcha: { - enabled: false, - service: null, - sitekey: null, - secret: null, - }, - ipdataApiKey: "eca677b284b3bac29eb72f5e496aa9047f26543605efe99ff2ce35c9", - twoFactor: { - generateBackupCodes: true, - }, - }, - login: { - requireCaptcha: false, - }, - register: { - email: { - required: false, - allowlist: false, - blocklist: true, - domains: [], // TODO: efficiently save domain blocklist in database - // domains: fs.readFileSync(__dirname + "/blockedEmailDomains.txt", { encoding: "utf8" }).split("\n"), - }, - dateOfBirth: { - required: true, - minimum: 13, - }, - disabled: false, - requireInvite: false, - guestsRequireInvite: true, - requireCaptcha: true, - allowNewRegistration: true, - allowMultipleAccounts: true, - blockProxies: true, - password: { - required: false, - minLength: 8, - minNumbers: 2, - minUpperCase: 2, - minSymbols: 0, - }, - incrementingDiscriminators: false, - defaultRights: "0" - }, - regions: { - default: "fosscord", - useDefaultAsOptimal: true, - available: [ - { - id: "fosscord", - name: "Fosscord", - endpoint: "127.0.0.1:3004", - vip: false, - custom: false, - deprecated: false, - }, - ], - }, - guild: { - discovery: { - showAllGuilds: false, - useRecommendation: false, - offset: 0, - limit: 24, - }, - autoJoin: { - enabled: true, - canLeave: true, - guilds: [], - }, - }, - gif: { - enabled: true, - provider: "tenor", - apiKey: "LIVDSRZULELA", - }, - rabbitmq: { - host: null, - }, - kafka: { - brokers: null, - }, - templates: { - enabled: true, - allowTemplateCreation: true, - allowDiscordTemplates: true, - allowRaws: false - }, - client: { - useTestClient: true, - releases: { - useLocalRelease: true, - upstreamVersion: "0.0.264" - } - }, - metrics: { - timeout: 30000 - }, - sentry: { - enabled: false, - endpoint: "https://05e8e3d005f34b7d97e920ae5870a5e5@sentry.thearcanebrony.net/6", - traceSampleRate: 1.0, - environment: hostname() - } -}; +} \ No newline at end of file diff --git a/util/src/util/Config.ts b/util/src/util/Config.ts index 925cb243..0b55ca4b 100644 --- a/util/src/util/Config.ts +++ b/util/src/util/Config.ts @@ -1,6 +1,7 @@ -import { ConfigValue, ConfigEntity, DefaultConfigOptions } from "../entities/Config"; -import path from "path"; +import { ConfigEntity } from "../entities/Config"; import fs from "fs"; +import { ConfigValue } from "../config"; +import { OrmUtils } from "."; // TODO: yaml instead of json const overridePath = process.env.CONFIG_PATH ?? ""; @@ -14,9 +15,11 @@ let pairs: ConfigEntity[]; export const Config = { init: async function init() { if (config) return config; + console.log('[Config] Loading configuration...') pairs = await ConfigEntity.find(); config = pairsToConfig(pairs); - config = (config || {}).merge(DefaultConfigOptions); + //config = (config || {}).merge(new ConfigValue()); + config = OrmUtils.mergeDeep(new ConfigValue(), config) if(process.env.CONFIG_PATH) try { @@ -30,6 +33,11 @@ export const Config = { return this.set(config); }, get: function get() { + if(!config) { + if(/--debug|--inspect/.test(process.execArgv.join(' '))) + console.log("Oops.. trying to get config without config existing... Returning defaults... (Is the database still initialising?)"); + return new ConfigValue(); + } return config; }, set: function set(val: Partial) { -- cgit 1.4.1 From 44859db499f080e3a341f3e7fa5e44611fc2f887 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Fri, 12 Aug 2022 01:46:42 +0200 Subject: Push local state... --- api/assets/schemas.json | 16090 ++----------------- api/client_test/index.html | 149 +- api/src/routes/auth/register.ts | 1 + api/src/routes/guilds/#guild_id/index.ts | 1 + api/src/routes/users/@me/settings.ts | 4 +- bundle/scripts/db_migrations.sh | 14 +- bundle/scripts/gen_index.js | 34 + bundle/scripts/update_schemas.js | 9 + bundle/scripts/utils.js | 3 +- gateway/src/opcodes/Identify.ts | 7 +- gateway/src/opcodes/VoiceStateUpdate.ts | 5 + util/src/config/types/DefaultsConfiguration.ts | 3 +- .../subconfigurations/defaults/UserDefaults.ts | 5 + .../types/subconfigurations/defaults/index.ts | 1 + util/src/entities/Guild.ts | 20 +- util/src/entities/User.ts | 158 +- util/src/entities/UserSettings.ts | 119 + util/src/entities/index.ts | 1 + util/src/interfaces/Event.ts | 4 +- .../mariadb/1660258393551-CodeCleanup3.ts | 232 + .../mariadb/1660260587556-CodeCleanup4.ts | 39 + .../postgres/1660257815436-CodeCleanup2.ts | 59 + .../postgres/1660258372154-CodeCleanup3.ts | 19 + .../postgres/1660260565996-CodeCleanup4.ts | 33 + .../sqlite/1660257576211-CodeCleanup1.ts | 326 + .../sqlite/1660257795259-CodeCleanup2.ts | 572 + .../sqlite/1660258351379-CodeCleanup3.ts | 231 + .../sqlite/1660260539853-CodeCleanup4.ts | 459 + .../sqlite/1660260672914-CodeCleanup4.ts | 459 + 29 files changed, 4052 insertions(+), 15005 deletions(-) create mode 100644 bundle/scripts/gen_index.js create mode 100644 bundle/scripts/update_schemas.js create mode 100644 util/src/config/types/subconfigurations/defaults/UserDefaults.ts create mode 100644 util/src/entities/UserSettings.ts create mode 100644 util/src/migrations/mariadb/1660258393551-CodeCleanup3.ts create mode 100644 util/src/migrations/mariadb/1660260587556-CodeCleanup4.ts create mode 100644 util/src/migrations/postgres/1660257815436-CodeCleanup2.ts create mode 100644 util/src/migrations/postgres/1660258372154-CodeCleanup3.ts create mode 100644 util/src/migrations/postgres/1660260565996-CodeCleanup4.ts create mode 100644 util/src/migrations/sqlite/1660257576211-CodeCleanup1.ts create mode 100644 util/src/migrations/sqlite/1660257795259-CodeCleanup2.ts create mode 100644 util/src/migrations/sqlite/1660258351379-CodeCleanup3.ts create mode 100644 util/src/migrations/sqlite/1660260539853-CodeCleanup4.ts create mode 100644 util/src/migrations/sqlite/1660260672914-CodeCleanup4.ts diff --git a/api/assets/schemas.json b/api/assets/schemas.json index c7aadd98..00819e7c 100644 --- a/api/assets/schemas.json +++ b/api/assets/schemas.json @@ -1,4 +1,103 @@ { + "ts.server.TypingInstallerResponse": { + "type": "object", + "properties": { + "kind": { + "enum": [ + "action::invalidate", + "action::packageInstalled", + "action::set", + "event::beginInstallTypes", + "event::endInstallTypes", + "event::initializationFailed", + "event::typesRegistry" + ], + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ts.server.PackageInstalledResponse": { + "type": "object", + "properties": { + "kind": { + "type": "string", + "enum": [ + "action::packageInstalled" + ] + }, + "success": { + "type": "boolean" + }, + "message": { + "type": "string" + }, + "projectName": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "message", + "projectName", + "success" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ts.server.InitializationFailedResponse": { + "type": "object", + "properties": { + "kind": { + "type": "string", + "enum": [ + "event::initializationFailed" + ] + }, + "message": { + "type": "string" + }, + "stack": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "message" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ts.server.ProjectResponse": { + "type": "object", + "properties": { + "projectName": { + "type": "string" + }, + "kind": { + "enum": [ + "action::invalidate", + "action::packageInstalled", + "action::set", + "event::beginInstallTypes", + "event::endInstallTypes", + "event::initializationFailed", + "event::typesRegistry" + ], + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "projectName" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, "MessageCreateSchema": { "type": "object", "properties": { @@ -225,183 +324,6 @@ } }, "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] } }, "$schema": "http://json-schema.org/draft-07/schema#" @@ -424,13911 +346,216 @@ }, "additionalProperties": false, "definitions": { - "Embed": { + "Record": { "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "LoginSchema": { - "type": "object", - "properties": { - "login": { - "type": "string" - }, - "password": { - "type": "string" - }, - "undelete": { - "type": "boolean" - }, - "captcha_key": { - "type": "string" - }, - "login_source": { - "type": "string" - }, - "gift_code_sku_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "login", - "password" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TotpSchema": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "ticket": { - "type": "string" - }, - "gift_code_sku_id": { - "type": [ - "null", - "string" - ] - }, - "login_source": { - "type": [ - "null", - "string" - ] - } - }, - "additionalProperties": false, - "required": [ - "code", - "ticket" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RegisterSchema": { - "type": "object", - "properties": { - "username": { - "minLength": 2, - "maxLength": 32, - "type": "string" - }, - "password": { - "minLength": 1, - "maxLength": 72, - "type": "string" - }, - "consent": { - "type": "boolean" - }, - "email": { - "format": "email", - "type": "string" - }, - "fingerprint": { - "type": "string" - }, - "invite": { - "type": "string" - }, - "date_of_birth": { - "type": "string" - }, - "gift_code_sku_id": { - "type": "string" - }, - "captcha_key": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "consent", - "username" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "InviteCreateSchema": { - "type": "object", - "properties": { - "target_user_id": { - "type": "string" - }, - "target_type": { - "type": "string" - }, - "validate": { - "type": "string" - }, - "max_age": { - "type": "integer" - }, - "max_uses": { - "type": "integer" - }, - "temporary": { - "type": "boolean" - }, - "unique": { - "type": "boolean" - }, - "target_user": { - "type": "string" - }, - "target_user_type": { - "type": "integer" - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MessageAcknowledgeSchema": { - "type": "object", - "properties": { - "manual": { - "type": "boolean" - }, - "mention_count": { - "type": "integer" - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "BulkDeleteSchema": { - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "messages" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ChannelPermissionOverwriteSchema": { - "type": "object", - "properties": { - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - }, - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "PurgeSchema": { - "type": "object", - "properties": { - "before": { - "type": "string" - }, - "after": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "after", - "before" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "WebhookCreateSchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 80, - "type": "string" - }, - "avatar": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "avatar", - "name" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GatewayBotResponse": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "shards": { - "type": "integer" - }, - "session_start_limit": { - "type": "object", - "properties": { - "total": { - "type": "integer" - }, - "remaining": { - "type": "integer" - }, - "reset_after": { - "type": "integer" - }, - "max_concurrency": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max_concurrency", - "remaining", - "reset_after", - "total" - ] - } - }, - "additionalProperties": false, - "required": [ - "session_start_limit", - "shards", - "url" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GatewayResponse": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "BanCreateSchema": { - "type": "object", - "properties": { - "delete_message_days": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "BanRegistrySchema": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "executor_id": { - "type": "string" - }, - "ip": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "executor_id", - "guild_id", - "id", - "user_id" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "BanModeratorSchema": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "executor_id": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "executor_id", - "guild_id", - "id", - "user_id" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ChannelReorderSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - }, - "lock_permissions": { - "type": "boolean" - }, - "parent_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "EmojiCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "image": { - "type": "string" - }, - "require_colons": { - "type": [ - "null", - "boolean" - ] - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "EmojiModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildCreateSchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "region": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "channels": { - "type": "array", - "items": { - "$ref": "#/definitions/ChannelModifySchema" - } - }, - "guild_template_code": { - "type": "string" - }, - "system_channel_id": { - "type": "string" - }, - "rules_channel_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildUpdateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "banner": { - "type": [ - "null", - "string" - ] - }, - "splash": { - "type": [ - "null", - "string" - ] - }, - "description": { - "type": "string" - }, - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "verification_level": { - "type": "integer" - }, - "default_message_notifications": { - "type": "integer" - }, - "system_channel_flags": { - "type": "integer" - }, - "explicit_content_filter": { - "type": "integer" - }, - "public_updates_channel_id": { - "type": "string" - }, - "afk_timeout": { - "type": "integer" - }, - "afk_channel_id": { - "type": "string" - }, - "preferred_locale": { - "type": "string" - }, - "region": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "guild_template_code": { - "type": "string" - }, - "system_channel_id": { - "type": "string" - }, - "rules_channel_id": { - "type": "string" - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MemberChangeSchema": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MemberNickChangeSchema": { - "type": "object", - "properties": { - "nick": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "nick" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "PruneSchema": { - "type": "object", - "properties": { - "days": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "days" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RoleModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "permissions": { - "type": "string" - }, - "color": { - "type": "integer" - }, - "hoist": { - "type": "boolean" - }, - "mentionable": { - "type": "boolean" - }, - "position": { - "type": "integer" - }, - "icon": { - "type": "string" - }, - "unicode_emoji": { - "type": "string" - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RolePositionUpdateSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "id", - "position" - ] - }, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ModifyGuildStickerSchema": { - "type": "object", - "properties": { - "name": { - "minLength": 2, - "maxLength": 30, - "type": "string" - }, - "description": { - "maxLength": 100, - "type": "string" - }, - "tags": { - "maxLength": 200, - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "tags" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TemplateCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TemplateModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "VanityUrlSchema": { - "type": "object", - "properties": { - "code": { - "minLength": 1, - "maxLength": 20, - "type": "string" - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "VoiceStateUpdateSchema": { - "type": "object", - "properties": { - "channel_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "suppress": { - "type": "boolean" - }, - "request_to_speak_timestamp": { - "type": "string", - "format": "date-time" - }, - "self_mute": { - "type": "boolean" - }, - "self_deaf": { - "type": "boolean" - }, - "self_video": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "channel_id" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildUpdateWelcomeScreenSchema": { - "type": "object", - "properties": { - "welcome_channels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "channel_id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "emoji_id": { - "type": "string" - }, - "emoji_name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "channel_id", - "description", - "emoji_name" - ] - } - }, - "enabled": { - "type": "boolean" - }, - "description": { - "type": "string" - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "WidgetModifySchema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "channel_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "channel_id", - "enabled" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildTemplateCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "avatar": { - "type": [ - "null", - "string" - ] - } - }, - "additionalProperties": false, - "required": [ - "name" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "UserProfileResponse": { - "type": "object", - "properties": { - "user": { - "$ref": "#/definitions/UserPublic" - }, - "connected_accounts": { - "$ref": "#/definitions/PublicConnectedAccount" - }, - "premium_guild_since": { - "type": "string", - "format": "date-time" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "connected_accounts", - "user" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "UserRelationsResponse": { - "type": "object", - "properties": { - "object": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "username": { - "type": "string" - }, - "avatar": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "public_flags": { - "type": "integer" - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false, - "required": [ - "object" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "DmChannelCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "recipients" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "UserModifySchema": { - "type": "object", - "properties": { - "username": { - "minLength": 1, - "maxLength": 100, - "type": "string" - }, - "avatar": { - "type": [ - "null", - "string" - ] - }, - "bio": { - "maxLength": 1024, - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": [ - "null", - "string" - ] - }, - "password": { - "type": "string" - }, - "new_password": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MfaCodesSchema": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "regenerate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "password" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TotpDisableSchema": { - "type": "object", - "properties": { - "code": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TotpEnableSchema": { - "type": "object", - "properties": { - "username": { - "minLength": 1, - "maxLength": 100, - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "avatar": { - "type": [ - "null", - "string" - ] - }, - "bio": { - "maxLength": 1024, - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": [ - "null", - "string" - ] - }, - "password": { - "type": "string" - }, - "code": { - "type": "string" - }, - "secret": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "password" - ], - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, "additionalProperties": false + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "LoginSchema": { + "type": "object", + "properties": { + "login": { + "type": "string" }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false + "password": { + "type": "string" }, - "Record": { - "type": "object", - "additionalProperties": false + "undelete": { + "type": "boolean" }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" + "captcha_key": { + "type": "string" }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false + "login_source": { + "type": "string" }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" + "gift_code_sku_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "login", + "password" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TotpSchema": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "ticket": { + "type": "string" + }, + "gift_code_sku_id": { + "type": [ + "null", + "string" ] }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" + "login_source": { + "type": [ + "null", + "string" ] } }, + "additionalProperties": false, + "required": [ + "code", + "ticket" + ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "RelationshipPutSchema": { + "RegisterSchema": { + "type": "object", + "properties": { + "username": { + "minLength": 2, + "maxLength": 32, + "type": "string" + }, + "password": { + "minLength": 1, + "maxLength": 72, + "type": "string" + }, + "consent": { + "type": "boolean" + }, + "email": { + "format": "email", + "type": "string" + }, + "fingerprint": { + "type": "string" + }, + "invite": { + "type": "string" + }, + "date_of_birth": { + "type": "string" + }, + "gift_code_sku_id": { + "type": "string" + }, + "captcha_key": { + "type": "string" + }, + "promotional_email_opt_in": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "consent", + "username" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ChannelModifySchema": { "type": "object", "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, "type": { "enum": [ + 0, 1, + 10, + 11, + 12, + 13, + 14, + 15, 2, + 255, 3, - 4 + 33, + 34, + 35, + 4, + 5, + 6, + 64, + 7, + 8, + 9 ], "type": "number" - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } + }, + "topic": { + "type": "string" + }, + "icon": { + "type": [ + "null", + "string" + ] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } + "allow": { + "type": "string" }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" + "deny": { + "type": "string" + } }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "allow", + "deny", + "id", + "type" + ] + } }, - "Record": { - "type": "object", - "additionalProperties": false + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" }, + "default_auto_archive_duration": { + "type": "integer" + } + }, + "additionalProperties": false, + "definitions": { "ChannelPermissionOverwriteType": { "enum": [ 0, @@ -14336,333 +563,376 @@ 2 ], "type": "number" + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "InviteCreateSchema": { + "type": "object", + "properties": { + "target_user_id": { + "type": "string" }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - }, - "additionalProperties": false + "target_type": { + "type": "string" + }, + "validate": { + "type": "string" + }, + "max_age": { + "type": "integer" + }, + "max_uses": { + "type": "integer" + }, + "temporary": { + "type": "boolean" + }, + "unique": { + "type": "boolean" + }, + "target_user": { + "type": "string" + }, + "target_user_type": { + "type": "integer" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MessageAcknowledgeSchema": { + "type": "object", + "properties": { + "manual": { + "type": "boolean" + }, + "mention_count": { + "type": "integer" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "BulkDeleteSchema": { + "type": "object", + "properties": { + "messages": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "messages" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ChannelPermissionOverwriteSchema": { + "type": "object", + "properties": { + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + }, + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + } + }, + "additionalProperties": false, + "required": [ + "allow", + "deny", + "id", + "type" + ], + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [ + 0, + 1, + 2 + ], + "type": "number" + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "PurgeSchema": { + "type": "object", + "properties": { + "before": { + "type": "string" + }, + "after": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "after", + "before" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "WebhookCreateSchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 80, + "type": "string" }, - "UserPublic": { + "avatar": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "avatar", + "name" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GatewayBotResponse": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "shards": { + "type": "integer" + }, + "session_start_limit": { "type": "object", "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { + "total": { "type": "integer" }, - "avatar": { - "type": "string" - }, - "accent_color": { + "remaining": { "type": "integer" }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" + "reset_after": { + "type": "integer" }, - "premium_since": { - "type": "string", - "format": "date-time" + "max_concurrency": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" + "max_concurrency", + "remaining", + "reset_after", + "total" ] + } + }, + "additionalProperties": false, + "required": [ + "session_start_limit", + "shards", + "url" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GatewayResponse": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "BanCreateSchema": { + "type": "object", + "properties": { + "delete_message_days": { + "type": "string" }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } + "reason": { + "type": "string" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "BanRegistrySchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "user_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "executor_id": { + "type": "string" + }, + "ip": { + "type": "string" + }, + "reason": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "executor_id", + "guild_id", + "id", + "user_id" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "BanModeratorSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "user_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "executor_id": { + "type": "string" + }, + "reason": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "executor_id", + "guild_id", + "id", + "user_id" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ChannelReorderSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" + "position": { + "type": "integer" + }, + "lock_permissions": { + "type": "boolean" + }, + "parent_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "EmojiCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "image": { + "type": "string" + }, + "require_colons": { + "type": [ + "null", + "boolean" ] + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } } }, + "additionalProperties": false, + "required": [ + "image" + ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "RelationshipPostSchema": { + "EmojiModifySchema": { "type": "object", "properties": { - "discriminator": { + "name": { + "type": "string" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GuildCreateSchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "region": { + "type": "string" + }, + "icon": { + "type": [ + "null", + "string" + ] + }, + "channels": { + "type": "array", + "items": { + "$ref": "#/definitions/ChannelModifySchema" + } + }, + "guild_template_code": { "type": "string" }, - "username": { + "system_channel_id": { + "type": "string" + }, + "rules_channel_id": { "type": "string" } }, "additionalProperties": false, "required": [ - "discriminator", - "username" + "name" ], "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - }, "ChannelModifySchema": { "type": "object", "properties": { @@ -14762,557 +1032,795 @@ }, "additionalProperties": false }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" + "ChannelPermissionOverwriteType": { + "enum": [ + 0, + 1, + 2 + ], + "type": "number" + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GuildUpdateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "banner": { + "type": [ + "null", + "string" + ] + }, + "splash": { + "type": [ + "null", + "string" ] }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" + "description": { + "type": "string" + }, + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "verification_level": { + "type": "integer" + }, + "default_message_notifications": { + "type": "integer" + }, + "system_channel_flags": { + "type": "integer" + }, + "explicit_content_filter": { + "type": "integer" + }, + "public_updates_channel_id": { + "type": "string" + }, + "afk_timeout": { + "type": "integer" + }, + "afk_channel_id": { + "type": "string" + }, + "preferred_locale": { + "type": "string" + }, + "region": { + "type": "string" + }, + "icon": { + "type": [ + "null", + "string" ] + }, + "guild_template_code": { + "type": "string" + }, + "system_channel_id": { + "type": "string" + }, + "rules_channel_id": { + "type": "string" } }, + "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }, - "UserSettingsSchema": { + "MemberChangeSchema": { "type": "object", "properties": { - "afk_timeout": { + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MemberNickChangeSchema": { + "type": "object", + "properties": { + "nick": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "nick" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "PruneSchema": { + "type": "object", + "properties": { + "days": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "days" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RoleModifySchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "permissions": { + "type": "string" + }, + "color": { "type": "integer" }, - "allow_accessibility_detection": { + "hoist": { "type": "boolean" }, - "animate_emoji": { + "mentionable": { "type": "boolean" }, - "animate_stickers": { + "position": { "type": "integer" }, - "contact_sync_enabled": { - "type": "boolean" + "icon": { + "type": "string" }, - "convert_emoticons": { - "type": "boolean" + "unicode_emoji": { + "type": "string" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RolePositionUpdateSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "position": { + "type": "integer" + } }, - "custom_status": { - "anyOf": [ - { - "type": "object", - "properties": { - "emoji_id": { - "type": "string" - }, - "emoji_name": { - "type": "string" - }, - "expires_at": { - "type": "integer" - }, - "text": { - "type": "string" - } - }, - "additionalProperties": false - }, - { - "type": "null" - } - ] + "additionalProperties": false, + "required": [ + "id", + "position" + ] + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ModifyGuildStickerSchema": { + "type": "object", + "properties": { + "name": { + "minLength": 2, + "maxLength": 30, + "type": "string" }, - "default_guilds_restricted": { - "type": "boolean" + "description": { + "maxLength": 100, + "type": "string" }, - "detect_platform_accounts": { - "type": "boolean" + "tags": { + "maxLength": 200, + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "tags" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TemplateCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - "developer_mode": { - "type": "boolean" + "description": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TemplateModifySchema": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - "disable_games_tab": { - "type": "boolean" + "description": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "VanityUrlSchema": { + "type": "object", + "properties": { + "code": { + "minLength": 1, + "maxLength": 20, + "type": "string" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "VoiceStateUpdateSchema": { + "type": "object", + "properties": { + "channel_id": { + "type": "string" }, - "enable_tts_command": { - "type": "boolean" + "guild_id": { + "type": "string" }, - "explicit_content_filter": { - "type": "integer" + "suppress": { + "type": "boolean" }, - "friend_source_flags": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] + "request_to_speak_timestamp": { + "type": "string", + "format": "date-time" }, - "gateway_connected": { + "self_mute": { "type": "boolean" }, - "gif_auto_play": { + "self_deaf": { "type": "boolean" }, - "guild_folders": { + "self_video": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "channel_id" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GuildUpdateWelcomeScreenSchema": { + "type": "object", + "properties": { + "welcome_channels": { "type": "array", "items": { "type": "object", "properties": { - "color": { - "type": "integer" + "channel_id": { + "type": "string" }, - "guild_ids": { - "type": "array", - "items": { - "type": "string" - } + "description": { + "type": "string" }, - "id": { - "type": "integer" + "emoji_id": { + "type": "string" }, - "name": { + "emoji_name": { "type": "string" } }, "additionalProperties": false, "required": [ - "color", - "guild_ids", - "id", - "name" + "channel_id", + "description", + "emoji_name" ] } }, - "guild_positions": { - "type": "array", - "items": { - "type": "string" - } - }, - "inline_attachment_media": { - "type": "boolean" - }, - "inline_embed_media": { + "enabled": { "type": "boolean" }, - "locale": { + "description": { "type": "string" - }, - "message_display_compact": { - "type": "boolean" - }, - "native_phone_integration_enabled": { - "type": "boolean" - }, - "render_embeds": { - "type": "boolean" - }, - "render_reactions": { - "type": "boolean" - }, - "restricted_guilds": { - "type": "array", - "items": { - "type": "string" - } - }, - "show_current_game": { + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "WidgetModifySchema": { + "type": "object", + "properties": { + "enabled": { "type": "boolean" }, - "status": { - "enum": [ - "dnd", - "idle", - "invisible", - "offline", - "online" - ], + "channel_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "channel_id", + "enabled" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GuildTemplateCreateSchema": { + "type": "object", + "properties": { + "name": { "type": "string" }, - "stream_notifications_enabled": { - "type": "boolean" + "avatar": { + "type": [ + "null", + "string" + ] + } + }, + "additionalProperties": false, + "required": [ + "name" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserProfileResponse": { + "type": "object", + "properties": { + "user": { + "$ref": "#/definitions/UserPublic" }, - "theme": { - "enum": [ - "dark", - "white" - ], - "type": "string" + "connected_accounts": { + "$ref": "#/definitions/PublicConnectedAccount" }, - "timezone_offset": { - "type": "integer" + "premium_guild_since": { + "type": "string", + "format": "date-time" + }, + "premium_since": { + "type": "string", + "format": "date-time" } }, "additionalProperties": false, + "required": [ + "connected_accounts", + "user" + ], "definitions": { - "Embed": { + "UserPublic": { "type": "object", "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], + "username": { "type": "string" }, - "description": { + "discriminator": { "type": "string" }, - "url": { + "id": { "type": "string" }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { + "public_flags": { "type": "integer" }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false + "avatar": { + "type": "string" }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false + "accent_color": { + "type": "integer" }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { + "banner": { "type": "string" }, - "proxy_url": { + "bio": { "type": "string" }, - "height": { - "type": "integer" + "bot": { + "type": "boolean" }, - "width": { - "type": "integer" + "premium_since": { + "type": "string", + "format": "date-time" } }, - "additionalProperties": false - }, - "Record": { - "type": "object", - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" + "additionalProperties": false, + "required": [ + "bio", + "bot", + "discriminator", + "id", + "premium_since", + "public_flags", + "username" + ] }, - "ChannelModifySchema": { + "PublicConnectedAccount": { "type": "object", "properties": { "name": { - "maxLength": 100, "type": "string" }, "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { "type": "string" }, - "icon": { - "type": [ - "null", - "string" - ] + "verified": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "name", + "type", + "verified" + ] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserRelationsResponse": { + "type": "object", + "properties": { + "object": { + "type": "object", + "properties": { + "id": { + "type": "string" }, - "bitrate": { - "type": "integer" + "username": { + "type": "string" }, - "user_limit": { - "type": "integer" + "avatar": { + "type": "string" }, - "rate_limit_per_user": { - "type": "integer" + "discriminator": { + "type": "string" }, - "position": { + "public_flags": { "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false, + "required": [ + "object" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "DmChannelCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "recipients": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "recipients" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserModifySchema": { + "type": "object", + "properties": { + "username": { + "minLength": 1, + "maxLength": 100, + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "avatar": { + "type": [ + "null", + "string" + ] + }, + "bio": { + "maxLength": 1024, + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": [ + "null", + "string" + ] + }, + "password": { + "type": "string" + }, + "new_password": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MfaCodesSchema": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "regenerate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "password" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TotpDisableSchema": { + "type": "object", + "properties": { + "code": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TotpEnableSchema": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "code": { + "type": "string" + }, + "secret": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "password" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RelationshipPutSchema": { + "type": "object", + "properties": { + "type": { + "enum": [ + 1, + 2, + 3, + 4 + ], + "type": "number" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RelationshipPostSchema": { + "type": "object", + "properties": { + "discriminator": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "discriminator", + "username" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserSettingsSchema": { + "type": "object", + "properties": { + "afk_timeout": { + "type": "integer" + }, + "allow_accessibility_detection": { + "type": "boolean" + }, + "animate_emoji": { + "type": "boolean" + }, + "animate_stickers": { + "type": "integer" + }, + "contact_sync_enabled": { + "type": "boolean" + }, + "convert_emoticons": { + "type": "boolean" + }, + "custom_status": { + "anyOf": [ + { + "type": "object", + "properties": { + "emoji_id": { + "type": "string" }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" + "emoji_name": { + "type": "string" + }, + "expires_at": { + "type": "integer" + }, + "text": { + "type": "string" + } + }, + "additionalProperties": false }, - "default_auto_archive_duration": { - "type": "integer" + { + "type": "null" } - }, - "additionalProperties": false + ] }, - "UserPublic": { + "default_guilds_restricted": { + "type": "boolean" + }, + "detect_platform_accounts": { + "type": "boolean" + }, + "developer_mode": { + "type": "boolean" + }, + "disable_games_tab": { + "type": "boolean" + }, + "enable_tts_command": { + "type": "boolean" + }, + "explicit_content_filter": { + "type": "integer" + }, + "friend_source_flags": { "type": "object", "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { + "all": { "type": "boolean" - }, - "premium_since": { - "type": "string", - "format": "date-time" } }, "additionalProperties": false, "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" + "all" ] }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" + "gateway_connected": { + "type": "boolean" + }, + "gif_auto_play": { + "type": "boolean" + }, + "guild_folders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color": { + "type": "integer" + }, + "guild_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } }, - "verified": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] + "additionalProperties": false, + "required": [ + "color", + "guild_ids", + "id", + "name" + ] + } + }, + "guild_positions": { + "type": "array", + "items": { + "type": "string" + } + }, + "inline_attachment_media": { + "type": "boolean" + }, + "inline_embed_media": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "message_display_compact": { + "type": "boolean" + }, + "native_phone_integration_enabled": { + "type": "boolean" + }, + "render_embeds": { + "type": "boolean" + }, + "render_reactions": { + "type": "boolean" + }, + "restricted_guilds": { + "type": "array", + "items": { + "type": "string" + } + }, + "show_current_game": { + "type": "boolean" + }, + "status": { + "enum": [ + "dnd", + "idle", + "invisible", + "offline", + "online" + ], + "type": "string" + }, + "stream_notifications_enabled": { + "type": "boolean" + }, + "theme": { + "enum": [ + "dark", + "white" + ], + "type": "string" + }, + "timezone_offset": { + "type": "integer" } }, + "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" } } \ No newline at end of file diff --git a/api/client_test/index.html b/api/client_test/index.html index f58a4bca..c35c14d2 100644 --- a/api/client_test/index.html +++ b/api/client_test/index.html @@ -1,81 +1,84 @@ - - - - Discord Test Client - - - - - - - -
- - - - - - - - - + }, 1000) + + const settings = JSON.parse(localStorage.getItem("UserSettingsStore")); + if (settings && settings.locale.length <= 2) { + // fix client locale wrong and client not loading at all + settings.locale = "en-US"; + localStorage.setItem("UserSettingsStore", JSON.stringify(settings)); + } + + + + + + + + + + \ No newline at end of file diff --git a/api/src/routes/auth/register.ts b/api/src/routes/auth/register.ts index 2baef98e..5a3d27e9 100644 --- a/api/src/routes/auth/register.ts +++ b/api/src/routes/auth/register.ts @@ -30,6 +30,7 @@ export interface RegisterSchema { date_of_birth?: Date; // "2000-04-03" gift_code_sku_id?: string; captcha_key?: string; + promotional_email_opt_in?: boolean; } router.post("/", route({ body: "RegisterSchema" }), async (req: Request, res: Response) => { diff --git a/api/src/routes/guilds/#guild_id/index.ts b/api/src/routes/guilds/#guild_id/index.ts index abece88e..8d61f753 100644 --- a/api/src/routes/guilds/#guild_id/index.ts +++ b/api/src/routes/guilds/#guild_id/index.ts @@ -21,6 +21,7 @@ export interface GuildUpdateSchema extends Omit { diff --git a/api/src/routes/users/@me/settings.ts b/api/src/routes/users/@me/settings.ts index 70f8a218..d832575f 100644 --- a/api/src/routes/users/@me/settings.ts +++ b/api/src/routes/users/@me/settings.ts @@ -10,8 +10,8 @@ router.patch("/", route({ body: "UserSettingsSchema" }), async (req: Request, re const body = req.body as UserSettings; if (body.locale === "en") body.locale = "en-US"; // fix discord client crash on unkown locale - const user = await User.findOneOrFail({ where: { id: req.user_id, bot: false } }); - user.settings = { ...user.settings, ...body }; + const user = await User.findOneOrFail({ where: { id: req.user_id, bot: false }, relations: ["settings"] }); + user.settings = { ...user.settings, ...body } as UserSettings; await user.save(); res.sendStatus(204); diff --git a/bundle/scripts/db_migrations.sh b/bundle/scripts/db_migrations.sh index b0e1131c..83f15a2b 100755 --- a/bundle/scripts/db_migrations.sh +++ b/bundle/scripts/db_migrations.sh @@ -1,5 +1,13 @@ #!/bin/sh -read -p "Enter migration filename: " FILENAME + +if [ ! -z "$1" ] +then + FILENAME="$1" + echo "Using filename: $FILENAME" +else + read -p "Enter migration filename: " FILENAME +fi + [ -f ".env" ] && ( mv .env .env.tmp source .env.tmp @@ -8,8 +16,8 @@ read -p "Enter migration filename: " FILENAME make_migration() { echo "Creating migrations for $2" mkdir "../util/src/migrations/$2" - npm run build clean logerrors pretty-errors - THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle +# npm run build clean logerrors pretty-errors +# THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle THREADS=1 DATABASE="$1" DB_MIGRATE=a npx typeorm-ts-node-commonjs migration:generate "../util/src/migrations/$2/$FILENAME" -d ../util/src/util/Database.ts -p npm run build clean logerrors pretty-errors THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle diff --git a/bundle/scripts/gen_index.js b/bundle/scripts/gen_index.js new file mode 100644 index 00000000..71c64a9f --- /dev/null +++ b/bundle/scripts/gen_index.js @@ -0,0 +1,34 @@ +const path = require("path"); +const fs = require("fs"); +const { execIn, getLines, parts } = require('./utils'); + +if (!process.argv[2] || !fs.existsSync(process.argv[2])) { + console.log("Please pass a directory that exists!"); + process.exit(1); +} +console.log(`// ${process.argv[2]}/index.ts`) +const recurse = process.argv.includes("--recursive") + +const files = fs.readdirSync(process.argv[2]).filter(x => x.endsWith('.ts') && x != 'index.ts'); + +let output = ''; + +files.forEach(x => output += `export * from "./${x.replaceAll('.ts','')}";\n`) + +const dirs = fs.readdirSync(process.argv[2]).filter(x => { + try { + fs.readdirSync(path.join(process.argv[2], x)); + return true; + } catch (e) { + return false; + } +}); +dirs.forEach(x => { + output += `export * from "./${x}/index";\n` +}) +console.log(output); +fs.writeFileSync(path.join(process.argv[2], "index.ts"), output) + +dirs.forEach(x => { + if(recurse) console.log(execIn([process.argv[0], process.argv[1], `"${path.join(process.argv[2], x)}"`, "--recursive"].join(' '), process.cwd())) +}) \ No newline at end of file diff --git a/bundle/scripts/update_schemas.js b/bundle/scripts/update_schemas.js new file mode 100644 index 00000000..516b9592 --- /dev/null +++ b/bundle/scripts/update_schemas.js @@ -0,0 +1,9 @@ +const path = require("path"); +const fs = require("fs"); +const { env } = require("process"); +const { execSync } = require("child_process"); +const { argv, stdout, exit } = require("process"); + +const { execIn, getLines, parts } = require("./utils"); + +execIn("node scripts/generate_schema.js", path.join("..", "..", "api")); \ No newline at end of file diff --git a/bundle/scripts/utils.js b/bundle/scripts/utils.js index bf960532..f4b1ad7f 100644 --- a/bundle/scripts/utils.js +++ b/bundle/scripts/utils.js @@ -28,13 +28,14 @@ function copyRecursiveSync(src, dest) { } } -function execIn(cmd, workdir) { +function execIn(cmd, workdir, opts) { try { return execSync(cmd, { cwd: workdir, shell: true, env: process.env, encoding: "utf-8", + ...opts }); } catch (error) { return error.stdout; diff --git a/gateway/src/opcodes/Identify.ts b/gateway/src/opcodes/Identify.ts index 03fff796..4e275592 100644 --- a/gateway/src/opcodes/Identify.ts +++ b/gateway/src/opcodes/Identify.ts @@ -18,6 +18,7 @@ import { PrivateSessionProjection, MemberPrivateProjection, PresenceUpdateEvent, + UserSettings, } from "@fosscord/util"; import { Send } from "../util/Send"; import { CLOSECODES, OPCODES } from "../util/Constants"; @@ -56,7 +57,7 @@ export async function onIdentify(this: WebSocket, data: Payload) { await Promise.all([ User.findOneOrFail({ where: { id: this.user_id }, - relations: ["relationships", "relationships.to"], + relations: ["relationships", "relationships.to", "settings"], select: [...PrivateUserProjection, "relationships"], }), ReadState.find({ where: { user_id: this.user_id } }), @@ -101,6 +102,10 @@ export async function onIdentify(this: WebSocket, data: Payload) { ]); if (!user) return this.close(CLOSECODES.Authentication_failed); + if (!user.settings) { + user.settings = new UserSettings(); + await user.settings.save(); + } if (!identify.intents) identify.intents = BigInt("0x6ffffffff"); this.intents = new Intents(identify.intents); diff --git a/gateway/src/opcodes/VoiceStateUpdate.ts b/gateway/src/opcodes/VoiceStateUpdate.ts index 8c430d56..845a75c0 100644 --- a/gateway/src/opcodes/VoiceStateUpdate.ts +++ b/gateway/src/opcodes/VoiceStateUpdate.ts @@ -20,6 +20,11 @@ export async function onVoiceStateUpdate(this: WebSocket, data: Payload) { check.call(this, VoiceStateUpdateSchema, data.d); const body = data.d as VoiceStateUpdateSchema; + if(body.guild_id == null) { + console.log(`[Gateway] VoiceStateUpdate called with guild_id == null by user ${this.user_id}!`); + return; + } + let voiceState: VoiceState; try { voiceState = await VoiceState.findOneOrFail({ diff --git a/util/src/config/types/DefaultsConfiguration.ts b/util/src/config/types/DefaultsConfiguration.ts index c3171a01..9b02a590 100644 --- a/util/src/config/types/DefaultsConfiguration.ts +++ b/util/src/config/types/DefaultsConfiguration.ts @@ -1,5 +1,6 @@ -import { GuildDefaults } from "."; +import { GuildDefaults, UserDefaults } from "."; export class DefaultsConfiguration { guild: GuildDefaults = new GuildDefaults(); + user: UserDefaults = new UserDefaults(); } \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/defaults/UserDefaults.ts b/util/src/config/types/subconfigurations/defaults/UserDefaults.ts new file mode 100644 index 00000000..4481c011 --- /dev/null +++ b/util/src/config/types/subconfigurations/defaults/UserDefaults.ts @@ -0,0 +1,5 @@ +export class UserDefaults { + premium: boolean = false; + premium_type: number = 2; + verified: boolean = true; +} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/defaults/index.ts b/util/src/config/types/subconfigurations/defaults/index.ts index f40c5cd2..50258d1c 100644 --- a/util/src/config/types/subconfigurations/defaults/index.ts +++ b/util/src/config/types/subconfigurations/defaults/index.ts @@ -1 +1,2 @@ export * from "./GuildDefaults"; +export * from "./UserDefaults"; diff --git a/util/src/entities/Guild.ts b/util/src/entities/Guild.ts index 77a04350..d146e577 100644 --- a/util/src/entities/Guild.ts +++ b/util/src/entities/Guild.ts @@ -53,7 +53,7 @@ export class Guild extends BaseClass { afk_channel?: Channel; @Column({ nullable: true }) - afk_timeout?: number; + afk_timeout?: number = Config.get().defaults.guild.afkTimeout; // * commented out -> use owner instead // application id of the guild creator if it is bot-created @@ -71,7 +71,7 @@ export class Guild extends BaseClass { banner?: string; @Column({ nullable: true }) - default_message_notifications?: number; + default_message_notifications?: number = Config.get().defaults.guild.defaultMessageNotifications; @Column({ nullable: true }) description?: string; @@ -80,7 +80,7 @@ export class Guild extends BaseClass { discovery_splash?: string; @Column({ nullable: true }) - explicit_content_filter?: number; + explicit_content_filter?: number = Config.get().defaults.guild.explicitContentFilter; @Column({ type: "simple-array" }) features: string[]; //TODO use enum @@ -96,19 +96,19 @@ export class Guild extends BaseClass { large?: boolean; @Column({ nullable: true }) - max_members?: number; // e.g. default 100.000 + max_members?: number = Config.get().limits.guild.maxMembers; // e.g. default 100.000 @Column({ nullable: true }) - max_presences?: number; + max_presences?: number = Config.get().defaults.guild.maxPresences; @Column({ nullable: true }) - max_video_channel_users?: number; // ? default: 25, is this max 25 streaming or watching + max_video_channel_users?: number = Config.get().defaults.guild.maxVideoChannelUsers; // ? default: 25, is this max 25 streaming or watching @Column({ nullable: true }) - member_count?: number; + member_count?: number = 0; @Column({ nullable: true }) - presence_count?: number; // users online + presence_count?: number = 0; // users online @OneToMany(() => Member, (member: Member) => member.guild, { cascade: true, @@ -278,6 +278,10 @@ export class Guild extends BaseClass { // only for developer portal permissions?: number; + //new guild settings, 11/08/2022: + @Column({ nullable: true }) + premium_progress_bar_enabled: boolean = false; + static async createGuild(body: { name?: string; icon?: string | null; diff --git a/util/src/entities/User.ts b/util/src/entities/User.ts index a9f00b0d..6edcda97 100644 --- a/util/src/entities/User.ts +++ b/util/src/entities/User.ts @@ -1,11 +1,11 @@ -import { Column, Entity, FindOneOptions, FindOptionsSelectByString, JoinColumn, OneToMany } from "typeorm"; +import { Column, Entity, FindOneOptions, FindOptionsSelectByString, JoinColumn, OneToMany, OneToOne } from "typeorm"; import { OrmUtils } from "../util/imports/OrmUtils"; import { BaseClass } from "./BaseClass"; import { BitField } from "../util/BitField"; import { Relationship } from "./Relationship"; import { ConnectedAccount } from "./ConnectedAccount"; import { Config, FieldErrors, Snowflake, trimSpecial } from ".."; -import { Member, Session } from "."; +import { Member, Session, UserSettings } from "."; export enum PublicUserEnum { username, @@ -83,28 +83,28 @@ export class User extends BaseClass { phone?: string; // phone number of the user @Column({ select: false }) - desktop: boolean; // if the user has desktop app installed + desktop: boolean = false; // if the user has desktop app installed @Column({ select: false }) - mobile: boolean; // if the user has mobile app installed + mobile: boolean = false; // if the user has mobile app installed @Column() - premium: boolean; // if user bought individual premium + premium: boolean = Config.get().defaults.user.premium; // if user bought individual premium @Column() - premium_type: number; // individual premium level + premium_type: number = Config.get().defaults.user.premium_type; // individual premium level @Column() - bot: boolean; // if user is bot + bot: boolean = false; // if user is bot @Column() bio: string; // short description of the user (max 190 chars -> should be configurable) @Column() - system: boolean; // shouldn't be used, the api sends this field type true, if the generated message comes from a system generated author + system: boolean = false; // shouldn't be used, the api sends this field type true, if the generated message comes from a system generated author @Column({ select: false }) - nsfw_allowed: boolean; // if the user can do age-restricted actions (NSFW channels/guilds/commands) + nsfw_allowed: boolean = true; // if the user can do age-restricted actions (NSFW channels/guilds/commands) // TODO: depending on age @Column({ select: false }) mfa_enabled: boolean; // if multi factor authentication is enabled @@ -116,31 +116,31 @@ export class User extends BaseClass { totp_last_ticket?: string; @Column() - created_at: Date; // registration date + created_at: Date = new Date(); // registration date @Column({ nullable: true }) - premium_since: Date; // premium date + premium_since: Date = new Date(); // premium date @Column({ select: false }) - verified: boolean; // if the user is offically verified + verified: boolean = Config.get().defaults.user.verified; // if the user is offically verified @Column() - disabled: boolean; // if the account is disabled + disabled: boolean = false; // if the account is disabled @Column() - deleted: boolean; // if the user was deleted + deleted: boolean = false; // if the user was deleted @Column({ nullable: true, select: false }) email?: string; // email of the user @Column() - flags: string; // UserFlags + flags: string = "0"; // UserFlags // TODO: generate @Column() - public_flags: number; + public_flags: number = 0; @Column({ type: "bigint" }) - rights: string; // Rights + rights: string = Config.get().register.defaultRights; // Rights @OneToMany(() => Session, (session: Session) => session.user) sessions: Session[]; @@ -166,17 +166,28 @@ export class User extends BaseClass { }; @Column({ type: "simple-array", select: false }) - fingerprints: string[]; // array of fingerprints -> used to prevent multiple accounts + fingerprints: string[] = []; // array of fingerprints -> used to prevent multiple accounts - @Column({ type: "simple-json", select: false }) + + @OneToOne(()=> UserSettings, { + cascade: true, + orphanedRowAction: "delete", + eager: false + }) + @JoinColumn() settings: UserSettings; // workaround to prevent fossord-unaware clients from deleting settings not used by them @Column({ type: "simple-json", select: false }) - extended_settings: string; + extended_settings: string = "{}"; @Column({ type: "simple-json" }) - notes: { [key: string]: string }; //key is ID of user + notes: { [key: string]: string } = {}; //key is ID of user + + async save(): Promise { + await this.settings.save(); + return this.save(); + } toPublicUser() { const user: any = {}; @@ -256,40 +267,20 @@ export class User extends BaseClass { const language = req?.language === "en" ? "en-US" : req?.language || "en-US"; const user = OrmUtils.mergeDeep(new User(), { - created_at: new Date(), + //required: username: username, discriminator, id: Snowflake.generate(), - bot: false, - system: false, - premium_since: new Date(), - desktop: false, - mobile: false, - premium: true, - premium_type: 2, - bio: "", - mfa_enabled: false, - totp_secret: "", - totp_backup_codes: [], - verified: true, - disabled: false, - deleted: false, email: email, - rights: Config.get().register.defaultRights, // TODO: grant rights correctly, as 0 actually stands for no rights at all - nsfw_allowed: true, // TODO: depending on age - public_flags: "0", - flags: "0", // TODO: generate data: { hash: password, valid_tokens_since: new Date(), }, - settings: { ...defaultSettings, locale: language }, - extended_settings: {}, - fingerprints: [], - notes: {}, + settings: { ...new UserSettings(), locale: language } }); await user.save(); + await user.settings.save(); setImmediate(async () => { if (Config.get().guild.autoJoin.enabled) { @@ -303,85 +294,6 @@ export class User extends BaseClass { } } -export const defaultSettings: UserSettings = { - afk_timeout: 3600, - allow_accessibility_detection: true, - animate_emoji: true, - animate_stickers: 0, - contact_sync_enabled: false, - convert_emoticons: false, - custom_status: null, - default_guilds_restricted: false, - detect_platform_accounts: false, - developer_mode: true, - disable_games_tab: true, - enable_tts_command: false, - explicit_content_filter: 0, - friend_source_flags: { all: true }, - gateway_connected: false, - gif_auto_play: true, - guild_folders: [], - guild_positions: [], - inline_attachment_media: true, - inline_embed_media: true, - locale: "en-US", - message_display_compact: false, - native_phone_integration_enabled: true, - render_embeds: true, - render_reactions: true, - restricted_guilds: [], - show_current_game: true, - status: "online", - stream_notifications_enabled: false, - theme: "dark", - timezone_offset: 0, // TODO: timezone from request -}; - -export interface UserSettings { - afk_timeout: number; - allow_accessibility_detection: boolean; - animate_emoji: boolean; - animate_stickers: number; - contact_sync_enabled: boolean; - convert_emoticons: boolean; - custom_status: { - emoji_id?: string; - emoji_name?: string; - expires_at?: number; - text?: string; - } | null; - default_guilds_restricted: boolean; - detect_platform_accounts: boolean; - developer_mode: boolean; - disable_games_tab: boolean; - enable_tts_command: boolean; - explicit_content_filter: number; - friend_source_flags: { all: boolean }; - gateway_connected: boolean; - gif_auto_play: boolean; - // every top guild is displayed as a "folder" - guild_folders: { - color: number; - guild_ids: string[]; - id: number; - name: string; - }[]; - guild_positions: string[]; // guild ids ordered by position - inline_attachment_media: boolean; - inline_embed_media: boolean; - locale: string; // en_US - message_display_compact: boolean; - native_phone_integration_enabled: boolean; - render_embeds: boolean; - render_reactions: boolean; - restricted_guilds: string[]; - show_current_game: boolean; - status: "online" | "offline" | "dnd" | "idle" | "invisible"; - stream_notifications_enabled: boolean; - theme: "dark" | "white"; // dark - timezone_offset: number; // e.g -60 -} - export const CUSTOM_USER_FLAG_OFFSET = BigInt(1) << BigInt(32); export class UserFlags extends BitField { diff --git a/util/src/entities/UserSettings.ts b/util/src/entities/UserSettings.ts new file mode 100644 index 00000000..ef6f95af --- /dev/null +++ b/util/src/entities/UserSettings.ts @@ -0,0 +1,119 @@ +import { Column, Entity, JoinColumn } from "typeorm"; +import { BaseClassWithoutId, PrimaryIdColumn } from "."; + +@Entity("user_settings") +export class UserSettings extends BaseClassWithoutId { + @PrimaryIdColumn() + id: string; + + @Column({ nullable: true }) + afk_timeout: number = 3600; + + @Column({ nullable: true }) + allow_accessibility_detection: boolean = true; + + @Column({ nullable: true }) + animate_emoji: boolean = true; + + @Column({ nullable: true }) + animate_stickers: number = 0; + + @Column({ nullable: true }) + contact_sync_enabled: boolean = false; + + @Column({ nullable: true }) + convert_emoticons: boolean = false; + + @Column({ nullable: true, type: "simple-json" }) + custom_status: CustomStatus | null = null; + + @Column({ nullable: true }) + default_guilds_restricted: boolean = false; + + @Column({ nullable: true }) + detect_platform_accounts: boolean = false; + + @Column({ nullable: true }) + developer_mode: boolean = true; + + @Column({ nullable: true }) + disable_games_tab: boolean = true; + + @Column({ nullable: true }) + enable_tts_command: boolean = false; + + @Column({ nullable: true }) + explicit_content_filter: number = 0; + + @Column({ nullable: true, type: "simple-json" }) + friend_source_flags: FriendSourceFlags = { all: true }; + + @Column({ nullable: true }) + gateway_connected: boolean = false; + + @Column({ nullable: true }) + gif_auto_play: boolean = false; + + @Column({ nullable: true, type: "simple-json" }) + guild_folders: GuildFolder[] = []; // every top guild is displayed as a "folder" + + @Column({ nullable: true, type: "simple-json" }) + guild_positions: string[] = []; // guild ids ordered by position + + @Column({ nullable: true }) + inline_attachment_media: boolean = true; + + @Column({ nullable: true }) + inline_embed_media: boolean = true; + + @Column({ nullable: true }) + locale: string = "en-US"; // en_US + + @Column({ nullable: true }) + message_display_compact: boolean = false; + + @Column({ nullable: true }) + native_phone_integration_enabled: boolean = true; + + @Column({ nullable: true }) + render_embeds: boolean = true; + + @Column({ nullable: true }) + render_reactions: boolean = true; + + @Column({ nullable: true, type: "simple-json" }) + restricted_guilds: string[] = []; + + @Column({ nullable: true }) + show_current_game: boolean = true; + + @Column({ nullable: true }) + status: "online" | "offline" | "dnd" | "idle" | "invisible" = "online"; + + @Column({ nullable: true }) + stream_notifications_enabled: boolean = false; + + @Column({ nullable: true }) + theme: "dark" | "white" = "dark"; // dark + + @Column({ nullable: true }) + timezone_offset: number = 0; // e.g -60 +} + +interface CustomStatus { + emoji_id?: string; + emoji_name?: string; + expires_at?: number; + text?: string; +} + +interface GuildFolder { + color: number; + guild_ids: string[]; + id: number; + name: string; +} + +interface FriendSourceFlags { + all: boolean +} \ No newline at end of file diff --git a/util/src/entities/index.ts b/util/src/entities/index.ts index c439a4b7..c6f12022 100644 --- a/util/src/entities/index.ts +++ b/util/src/entities/index.ts @@ -30,3 +30,4 @@ export * from "./Webhook"; export * from "./ClientRelease"; export * from "./BackupCodes"; export * from "./Note"; +export * from "./UserSettings"; diff --git a/util/src/interfaces/Event.ts b/util/src/interfaces/Event.ts index f3391c4f..be66c62f 100644 --- a/util/src/interfaces/Event.ts +++ b/util/src/interfaces/Event.ts @@ -1,4 +1,4 @@ -import { PublicUser, User, UserSettings } from "../entities/User"; +import { PublicUser, User } from "../entities/User"; import { Channel } from "../entities/Channel"; import { Guild } from "../entities/Guild"; import { Member, PublicMember, UserGuildSettings } from "../entities/Member"; @@ -12,7 +12,7 @@ import { Interaction } from "./Interaction"; import { ConnectedAccount } from "../entities/ConnectedAccount"; import { Relationship, RelationshipType } from "../entities/Relationship"; import { Presence } from "./Presence"; -import { Sticker } from ".."; +import { Sticker, UserSettings } from ".."; import { Activity, Status } from "."; export interface Event { diff --git a/util/src/migrations/mariadb/1660258393551-CodeCleanup3.ts b/util/src/migrations/mariadb/1660258393551-CodeCleanup3.ts new file mode 100644 index 00000000..87d075e4 --- /dev/null +++ b/util/src/migrations/mariadb/1660258393551-CodeCleanup3.ts @@ -0,0 +1,232 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup31660258393551 implements MigrationInterface { + name = 'CodeCleanup31660258393551' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_2ce5a55796fe4c2f77ece57a647\` + `); + await queryRunner.query(` + DROP INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` + `); + await queryRunner.query(` + CREATE TABLE \`user_settings\` ( + \`id\` varchar(255) NOT NULL, + \`afk_timeout\` int NULL, + \`allow_accessibility_detection\` tinyint NULL, + \`animate_emoji\` tinyint NULL, + \`animate_stickers\` int NULL, + \`contact_sync_enabled\` tinyint NULL, + \`convert_emoticons\` tinyint NULL, + \`custom_status\` text NULL, + \`default_guilds_restricted\` tinyint NULL, + \`detect_platform_accounts\` tinyint NULL, + \`developer_mode\` tinyint NULL, + \`disable_games_tab\` tinyint NULL, + \`enable_tts_command\` tinyint NULL, + \`explicit_content_filter\` int NULL, + \`friend_source_flags\` text NULL, + \`gateway_connected\` tinyint NULL, + \`gif_auto_play\` tinyint NULL, + \`guild_folders\` text NULL, + \`guild_positions\` text NULL, + \`inline_attachment_media\` tinyint NULL, + \`inline_embed_media\` tinyint NULL, + \`locale\` varchar(255) NULL, + \`message_display_compact\` tinyint NULL, + \`native_phone_integration_enabled\` tinyint NULL, + \`render_embeds\` tinyint NULL, + \`render_reactions\` tinyint NULL, + \`restricted_guilds\` text NULL, + \`show_current_game\` tinyint NULL, + \`status\` varchar(255) NULL, + \`stream_notifications_enabled\` tinyint NULL, + \`theme\` varchar(255) NULL, + \`timezone_offset\` int NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP COLUMN \`settings\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`type\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`hook\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`redirect_uris\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`rpc_application_state\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`store_application_state\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`verification_state\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`interactions_endpoint_url\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`integration_public\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`integration_require_code_grant\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`discoverability_state\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`discovery_eligibility_flags\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`tags\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`install_params\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`bot_user_id\` + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` + ADD \`premium_progress_bar_enabled\` tinyint NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`rpc_origins\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`primary_sku_id\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`slug\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`guild_id\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`flags\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`flags\` varchar(255) NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD CONSTRAINT \`FK_e5bf78cdbbe9ba91062d74c5aba\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e5bf78cdbbe9ba91062d74c5aba\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`flags\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`flags\` int NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`guild_id\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`slug\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`primary_sku_id\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`rpc_origins\` + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` DROP COLUMN \`premium_progress_bar_enabled\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`bot_user_id\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`install_params\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`tags\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`discovery_eligibility_flags\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`discoverability_state\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`integration_require_code_grant\` tinyint NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`integration_public\` tinyint NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`interactions_endpoint_url\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`verification_state\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`store_application_state\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`rpc_application_state\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`redirect_uris\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`hook\` tinyint NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`type\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD \`settings\` text NOT NULL + `); + await queryRunner.query(` + DROP TABLE \`user_settings\` + `); + await queryRunner.query(` + CREATE UNIQUE INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`) + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD CONSTRAINT \`FK_2ce5a55796fe4c2f77ece57a647\` FOREIGN KEY (\`bot_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + +} diff --git a/util/src/migrations/mariadb/1660260587556-CodeCleanup4.ts b/util/src/migrations/mariadb/1660260587556-CodeCleanup4.ts new file mode 100644 index 00000000..98da67db --- /dev/null +++ b/util/src/migrations/mariadb/1660260587556-CodeCleanup4.ts @@ -0,0 +1,39 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup41660260587556 implements MigrationInterface { + name = 'CodeCleanup41660260587556' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`users\` + ADD \`settingsId\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` (\`settingsId\`) + `); + await queryRunner.query(` + CREATE UNIQUE INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD CONSTRAINT \`FK_76ba283779c8441fd5ff819c8cf\` FOREIGN KEY (\`settingsId\`) REFERENCES \`user_settings\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`users\` DROP FOREIGN KEY \`FK_76ba283779c8441fd5ff819c8cf\` + `); + await queryRunner.query(` + DROP INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP COLUMN \`settingsId\` + `); + } + +} diff --git a/util/src/migrations/postgres/1660257815436-CodeCleanup2.ts b/util/src/migrations/postgres/1660257815436-CodeCleanup2.ts new file mode 100644 index 00000000..511c2f5a --- /dev/null +++ b/util/src/migrations/postgres/1660257815436-CodeCleanup2.ts @@ -0,0 +1,59 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup21660257815436 implements MigrationInterface { + name = 'CodeCleanup21660257815436' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "user_settings" ( + "id" character varying NOT NULL, + "afk_timeout" integer, + "allow_accessibility_detection" boolean, + "animate_emoji" boolean, + "animate_stickers" integer, + "contact_sync_enabled" boolean, + "convert_emoticons" boolean, + "custom_status" text, + "default_guilds_restricted" boolean, + "detect_platform_accounts" boolean, + "developer_mode" boolean, + "disable_games_tab" boolean, + "enable_tts_command" boolean, + "explicit_content_filter" integer, + "friend_source_flags" text, + "gateway_connected" boolean, + "gif_auto_play" boolean, + "guild_folders" text, + "guild_positions" text, + "inline_attachment_media" boolean, + "inline_embed_media" boolean, + "locale" character varying, + "message_display_compact" boolean, + "native_phone_integration_enabled" boolean, + "render_embeds" boolean, + "render_reactions" boolean, + "restricted_guilds" text, + "show_current_game" boolean, + "status" character varying, + "stream_notifications_enabled" boolean, + "theme" character varying, + "timezone_offset" integer, + CONSTRAINT "PK_00f004f5922a0744d174530d639" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + ALTER TABLE "guilds" + ADD "premium_progress_bar_enabled" boolean + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "guilds" DROP COLUMN "premium_progress_bar_enabled" + `); + await queryRunner.query(` + DROP TABLE "user_settings" + `); + } + +} diff --git a/util/src/migrations/postgres/1660258372154-CodeCleanup3.ts b/util/src/migrations/postgres/1660258372154-CodeCleanup3.ts new file mode 100644 index 00000000..e2823a54 --- /dev/null +++ b/util/src/migrations/postgres/1660258372154-CodeCleanup3.ts @@ -0,0 +1,19 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup31660258372154 implements MigrationInterface { + name = 'CodeCleanup31660258372154' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" DROP COLUMN "settings" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" + ADD "settings" text NOT NULL + `); + } + +} diff --git a/util/src/migrations/postgres/1660260565996-CodeCleanup4.ts b/util/src/migrations/postgres/1660260565996-CodeCleanup4.ts new file mode 100644 index 00000000..0aaf7197 --- /dev/null +++ b/util/src/migrations/postgres/1660260565996-CodeCleanup4.ts @@ -0,0 +1,33 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup41660260565996 implements MigrationInterface { + name = 'CodeCleanup41660260565996' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" + ADD "settingsId" character varying + `); + await queryRunner.query(` + ALTER TABLE "users" + ADD CONSTRAINT "UQ_76ba283779c8441fd5ff819c8cf" UNIQUE ("settingsId") + `); + await queryRunner.query(` + ALTER TABLE "users" + ADD CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" FOREIGN KEY ("settingsId") REFERENCES "user_settings"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" DROP CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" + `); + await queryRunner.query(` + ALTER TABLE "users" DROP CONSTRAINT "UQ_76ba283779c8441fd5ff819c8cf" + `); + await queryRunner.query(` + ALTER TABLE "users" DROP COLUMN "settingsId" + `); + } + +} diff --git a/util/src/migrations/sqlite/1660257576211-CodeCleanup1.ts b/util/src/migrations/sqlite/1660257576211-CodeCleanup1.ts new file mode 100644 index 00000000..5a61db0d --- /dev/null +++ b/util/src/migrations/sqlite/1660257576211-CodeCleanup1.ts @@ -0,0 +1,326 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup11660257576211 implements MigrationInterface { + name = 'CodeCleanup11660257576211' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "user_settings" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_timeout" integer, + "allow_accessibility_detection" boolean, + "animate_emoji" boolean, + "animate_stickers" integer, + "contact_sync_enabled" boolean, + "convert_emoticons" boolean, + "custom_status" text, + "default_guilds_restricted" boolean, + "detect_platform_accounts" boolean, + "developer_mode" boolean, + "disable_games_tab" boolean, + "enable_tts_command" boolean, + "explicit_content_filter" integer, + "friend_source_flags" text, + "gateway_connected" boolean, + "gif_auto_play" boolean, + "guild_folders" text, + "guild_positions" text, + "inline_attachment_media" boolean, + "inline_embed_media" boolean, + "locale" varchar, + "message_display_compact" boolean, + "native_phone_integration_enabled" boolean, + "render_embeds" boolean, + "render_reactions" boolean, + "restricted_guilds" text, + "show_current_game" boolean, + "status" varchar, + "stream_notifications_enabled" boolean, + "theme" varchar, + "timezone_offset" integer + ) + `); + await queryRunner.query(` + CREATE TABLE "temporary_guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + "premium_progress_bar_enabled" boolean NOT NULL, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent" + FROM "guilds" + `); + await queryRunner.query(` + DROP TABLE "guilds" + `); + await queryRunner.query(` + ALTER TABLE "temporary_guilds" + RENAME TO "guilds" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "guilds" + RENAME TO "temporary_guilds" + `); + await queryRunner.query(` + CREATE TABLE "guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent" + FROM "temporary_guilds" + `); + await queryRunner.query(` + DROP TABLE "temporary_guilds" + `); + await queryRunner.query(` + DROP TABLE "user_settings" + `); + } + +} diff --git a/util/src/migrations/sqlite/1660257795259-CodeCleanup2.ts b/util/src/migrations/sqlite/1660257795259-CodeCleanup2.ts new file mode 100644 index 00000000..53698256 --- /dev/null +++ b/util/src/migrations/sqlite/1660257795259-CodeCleanup2.ts @@ -0,0 +1,572 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup21660257795259 implements MigrationInterface { + name = 'CodeCleanup21660257795259' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + "premium_progress_bar_enabled" boolean NOT NULL, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + FROM "guilds" + `); + await queryRunner.query(` + DROP TABLE "guilds" + `); + await queryRunner.query(` + ALTER TABLE "temporary_guilds" + RENAME TO "guilds" + `); + await queryRunner.query(` + CREATE TABLE "temporary_guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + "premium_progress_bar_enabled" boolean, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + FROM "guilds" + `); + await queryRunner.query(` + DROP TABLE "guilds" + `); + await queryRunner.query(` + ALTER TABLE "temporary_guilds" + RENAME TO "guilds" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "guilds" + RENAME TO "temporary_guilds" + `); + await queryRunner.query(` + CREATE TABLE "guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + "premium_progress_bar_enabled" boolean NOT NULL, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + FROM "temporary_guilds" + `); + await queryRunner.query(` + DROP TABLE "temporary_guilds" + `); + await queryRunner.query(` + ALTER TABLE "guilds" + RENAME TO "temporary_guilds" + `); + await queryRunner.query(` + CREATE TABLE "guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + "premium_progress_bar_enabled" boolean NOT NULL, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + FROM "temporary_guilds" + `); + await queryRunner.query(` + DROP TABLE "temporary_guilds" + `); + } + +} diff --git a/util/src/migrations/sqlite/1660258351379-CodeCleanup3.ts b/util/src/migrations/sqlite/1660258351379-CodeCleanup3.ts new file mode 100644 index 00000000..13fba6dd --- /dev/null +++ b/util/src/migrations/sqlite/1660258351379-CodeCleanup3.ts @@ -0,0 +1,231 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup31660258351379 implements MigrationInterface { + name = 'CodeCleanup31660258351379' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + FROM "users" + `); + await queryRunner.query(` + DROP TABLE "users" + `); + await queryRunner.query(` + ALTER TABLE "temporary_users" + RENAME TO "users" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" + RENAME TO "temporary_users" + `); + await queryRunner.query(` + CREATE TABLE "users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "settings" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL + ) + `); + await queryRunner.query(` + INSERT INTO "users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + FROM "temporary_users" + `); + await queryRunner.query(` + DROP TABLE "temporary_users" + `); + } + +} diff --git a/util/src/migrations/sqlite/1660260539853-CodeCleanup4.ts b/util/src/migrations/sqlite/1660260539853-CodeCleanup4.ts new file mode 100644 index 00000000..d3f2a40d --- /dev/null +++ b/util/src/migrations/sqlite/1660260539853-CodeCleanup4.ts @@ -0,0 +1,459 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup41660260539853 implements MigrationInterface { + name = 'CodeCleanup41660260539853' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL, + "settingsId" varchar, + CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId") + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + FROM "users" + `); + await queryRunner.query(` + DROP TABLE "users" + `); + await queryRunner.query(` + ALTER TABLE "temporary_users" + RENAME TO "users" + `); + await queryRunner.query(` + CREATE TABLE "temporary_users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL, + "settingsId" varchar, + CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId"), + CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" FOREIGN KEY ("settingsId") REFERENCES "user_settings" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + FROM "users" + `); + await queryRunner.query(` + DROP TABLE "users" + `); + await queryRunner.query(` + ALTER TABLE "temporary_users" + RENAME TO "users" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" + RENAME TO "temporary_users" + `); + await queryRunner.query(` + CREATE TABLE "users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL, + "settingsId" varchar, + CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId") + ) + `); + await queryRunner.query(` + INSERT INTO "users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + FROM "temporary_users" + `); + await queryRunner.query(` + DROP TABLE "temporary_users" + `); + await queryRunner.query(` + ALTER TABLE "users" + RENAME TO "temporary_users" + `); + await queryRunner.query(` + CREATE TABLE "users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL + ) + `); + await queryRunner.query(` + INSERT INTO "users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + FROM "temporary_users" + `); + await queryRunner.query(` + DROP TABLE "temporary_users" + `); + } + +} diff --git a/util/src/migrations/sqlite/1660260672914-CodeCleanup4.ts b/util/src/migrations/sqlite/1660260672914-CodeCleanup4.ts new file mode 100644 index 00000000..33f4df03 --- /dev/null +++ b/util/src/migrations/sqlite/1660260672914-CodeCleanup4.ts @@ -0,0 +1,459 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup41660260672914 implements MigrationInterface { + name = 'CodeCleanup41660260672914' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL, + "settingsId" varchar, + CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId") + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + FROM "users" + `); + await queryRunner.query(` + DROP TABLE "users" + `); + await queryRunner.query(` + ALTER TABLE "temporary_users" + RENAME TO "users" + `); + await queryRunner.query(` + CREATE TABLE "temporary_users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL, + "settingsId" varchar, + CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId"), + CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" FOREIGN KEY ("settingsId") REFERENCES "user_settings" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + FROM "users" + `); + await queryRunner.query(` + DROP TABLE "users" + `); + await queryRunner.query(` + ALTER TABLE "temporary_users" + RENAME TO "users" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" + RENAME TO "temporary_users" + `); + await queryRunner.query(` + CREATE TABLE "users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL, + "settingsId" varchar, + CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId") + ) + `); + await queryRunner.query(` + INSERT INTO "users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + FROM "temporary_users" + `); + await queryRunner.query(` + DROP TABLE "temporary_users" + `); + await queryRunner.query(` + ALTER TABLE "users" + RENAME TO "temporary_users" + `); + await queryRunner.query(` + CREATE TABLE "users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL + ) + `); + await queryRunner.query(` + INSERT INTO "users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + FROM "temporary_users" + `); + await queryRunner.query(` + DROP TABLE "temporary_users" + `); + } + +} -- cgit 1.4.1 From 1d52b0d0721094d7f8dfaabddedd9f08a5e456a5 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Fri, 12 Aug 2022 03:24:51 +0200 Subject: Fix updated client stuff... --- api/assets/schemas.json | 162 +++++--- api/src/routes/channels/#channel_id/index.ts | 2 + api/src/routes/channels/#channel_id/invites.ts | 2 +- api/src/routes/channels/#channel_id/webhooks.ts | 3 +- api/src/util/handlers/route.ts | 5 + bundle/package.json | 3 +- bundle/scripts/update_schemas.js | 2 +- env-vars.md | 3 +- gateway/src/opcodes/Identify.ts | 3 +- util/src/entities/BaseClass.ts | 2 +- util/src/entities/Channel.ts | 7 + util/src/entities/User.ts | 6 +- .../mariadb/1660265930624-CodeCleanup5.ts | 53 +++ .../postgres/1660265907544-CodeCleanup5.ts | 26 ++ .../sqlite/1660260539853-CodeCleanup4.ts | 459 --------------------- 15 files changed, 218 insertions(+), 520 deletions(-) create mode 100644 util/src/migrations/mariadb/1660265930624-CodeCleanup5.ts create mode 100644 util/src/migrations/postgres/1660265907544-CodeCleanup5.ts delete mode 100644 util/src/migrations/sqlite/1660260539853-CodeCleanup4.ts diff --git a/api/assets/schemas.json b/api/assets/schemas.json index 00819e7c..d8576514 100644 --- a/api/assets/schemas.json +++ b/api/assets/schemas.json @@ -552,6 +552,12 @@ }, "default_auto_archive_duration": { "type": "integer" + }, + "flags": { + "type": "integer" + }, + "default_thread_rate_limit_per_user": { + "type": "integer" } }, "additionalProperties": false, @@ -695,7 +701,6 @@ }, "additionalProperties": false, "required": [ - "avatar", "name" ], "$schema": "http://json-schema.org/draft-07/schema#" @@ -1028,6 +1033,12 @@ }, "default_auto_archive_duration": { "type": "integer" + }, + "flags": { + "type": "integer" + }, + "default_thread_rate_limit_per_user": { + "type": "integer" } }, "additionalProperties": false @@ -1094,6 +1105,9 @@ "preferred_locale": { "type": "string" }, + "premium_progress_bar_enabled": { + "type": "boolean" + }, "region": { "type": "string" }, @@ -1651,6 +1665,9 @@ "UserSettingsSchema": { "type": "object", "properties": { + "id": { + "type": "string" + }, "afk_timeout": { "type": "integer" }, @@ -1672,22 +1689,7 @@ "custom_status": { "anyOf": [ { - "type": "object", - "properties": { - "emoji_id": { - "type": "string" - }, - "emoji_name": { - "type": "string" - }, - "expires_at": { - "type": "integer" - }, - "text": { - "type": "string" - } - }, - "additionalProperties": false + "$ref": "#/definitions/CustomStatus" }, { "type": "null" @@ -1713,16 +1715,7 @@ "type": "integer" }, "friend_source_flags": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] + "$ref": "#/definitions/FriendSourceFlags" }, "gateway_connected": { "type": "boolean" @@ -1733,31 +1726,7 @@ "guild_folders": { "type": "array", "items": { - "type": "object", - "properties": { - "color": { - "type": "integer" - }, - "guild_ids": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "guild_ids", - "id", - "name" - ] + "$ref": "#/definitions/GuildFolder" } }, "guild_positions": { @@ -1818,9 +1787,98 @@ }, "timezone_offset": { "type": "integer" + }, + "hasId": { + "description": "Checks if entity has an id.\nIf entity composite compose ids, it will check them all.", + "type": "object", + "additionalProperties": false + }, + "save": { + "description": "Saves current entity in the database.\nIf entity does not exist in the database then inserts, otherwise updates.", + "type": "object", + "additionalProperties": false + }, + "remove": { + "description": "Removes current entity from the database.", + "type": "object", + "additionalProperties": false + }, + "softRemove": { + "description": "Records the delete date of current entity.", + "type": "object", + "additionalProperties": false + }, + "recover": { + "description": "Recovers a given entity in the database.", + "type": "object", + "additionalProperties": false + }, + "reload": { + "description": "Reloads entity data from the database.", + "type": "object", + "additionalProperties": false } }, "additionalProperties": false, + "definitions": { + "CustomStatus": { + "type": "object", + "properties": { + "emoji_id": { + "type": "string" + }, + "emoji_name": { + "type": "string" + }, + "expires_at": { + "type": "integer" + }, + "text": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FriendSourceFlags": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "GuildFolder": { + "type": "object", + "properties": { + "color": { + "type": "integer" + }, + "guild_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "guild_ids", + "id", + "name" + ] + } + }, "$schema": "http://json-schema.org/draft-07/schema#" } } \ No newline at end of file diff --git a/api/src/routes/channels/#channel_id/index.ts b/api/src/routes/channels/#channel_id/index.ts index 68b52be6..70c34f05 100644 --- a/api/src/routes/channels/#channel_id/index.ts +++ b/api/src/routes/channels/#channel_id/index.ts @@ -71,6 +71,8 @@ export interface ChannelModifySchema { nsfw?: boolean; rtc_region?: string; default_auto_archive_duration?: number; + flags?: number; + default_thread_rate_limit_per_user?: number; } router.patch("/", route({ body: "ChannelModifySchema", permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { diff --git a/api/src/routes/channels/#channel_id/invites.ts b/api/src/routes/channels/#channel_id/invites.ts index a53b1de4..c0279f49 100644 --- a/api/src/routes/channels/#channel_id/invites.ts +++ b/api/src/routes/channels/#channel_id/invites.ts @@ -36,7 +36,7 @@ router.post("/", route({ body: "InviteCreateSchema", permission: "CREATE_INSTANT const invite = await OrmUtils.mergeDeep(new Invite(),{ code: random(), - temporary: req.body.temporary, + temporary: req.body.temporary || true, uses: 0, max_uses: req.body.max_uses, max_age: req.body.max_age, diff --git a/api/src/routes/channels/#channel_id/webhooks.ts b/api/src/routes/channels/#channel_id/webhooks.ts index 8f0e0a7f..00bf4619 100644 --- a/api/src/routes/channels/#channel_id/webhooks.ts +++ b/api/src/routes/channels/#channel_id/webhooks.ts @@ -12,7 +12,7 @@ export interface WebhookCreateSchema { * @maxLength 80 */ name: string; - avatar: string; + avatar?: string; } //TODO: implement webhooks router.get("/", route({}), async (req: Request, res: Response) => { @@ -36,6 +36,7 @@ router.post("/", route({ body: "WebhookCreateSchema", permission: "MANAGE_WEBHOO if (name === "clyde") throw new HTTPError("Invalid name", 400); // TODO: save webhook in database and send response + res.json(new Webhook()); }); export default router; diff --git a/api/src/util/handlers/route.ts b/api/src/util/handlers/route.ts index eaf7dc91..f8130f3c 100644 --- a/api/src/util/handlers/route.ts +++ b/api/src/util/handlers/route.ts @@ -117,6 +117,11 @@ export function route(opts: RouteOptions) { const valid = validate(normalizeBody(req.body)); if (!valid) { const fields: Record = {}; + if(process.env.LOG_INVALID_BODY) { + console.log(`Got invalid request: ${req.method} ${req.originalUrl}`) + console.log(req.body) + validate.errors?.forEach(x => console.log(x.params)) + } validate.errors?.forEach((x) => (fields[x.instancePath.slice(1)] = { code: x.keyword, message: x.message || "" })); throw FieldErrors(fields); } diff --git a/bundle/package.json b/bundle/package.json index b67598b8..7431a96f 100644 --- a/bundle/package.json +++ b/bundle/package.json @@ -9,10 +9,11 @@ "depcheck": "node scripts/depcheck.js", "syncdeps": "node scripts/install.js", "build": "node scripts/build.js", + "genschemas": "node scripts/update_schemas.js", "start": "node scripts/build.js && node --enable-source-maps dist/bundle/src/start.js", "start:bundle": "node --enable-source-maps dist/bundle/src/start.js", "start:bundle:dbg": "node --enable-source-maps --inspect dist/bundle/src/start.js", - "start:bundle:vscode-dbg": "npm run build clean logerrors pretty-errors && node --enable-source-maps --inspect dist/bundle/src/start.js", + "start:bundle:vscode-dbg": "npm run genschemas && npm run build clean logerrors pretty-errors && node --enable-source-maps --inspect dist/bundle/src/start.js", "test": "echo \"Error: no test specified\" && exit 1", "migrate": "cd ../util/ && npm i && node --require ts-node/register node_modules/typeorm/cli.js -f ../util/ormconfig.json migration:run", "tsnode": "npx ts-node --transpile-only -P tsnode.tsconfig.json src/start.ts" diff --git a/bundle/scripts/update_schemas.js b/bundle/scripts/update_schemas.js index 516b9592..a018120b 100644 --- a/bundle/scripts/update_schemas.js +++ b/bundle/scripts/update_schemas.js @@ -6,4 +6,4 @@ const { argv, stdout, exit } = require("process"); const { execIn, getLines, parts } = require("./utils"); -execIn("node scripts/generate_schema.js", path.join("..", "..", "api")); \ No newline at end of file +execIn("node scripts/generate_schema.js", path.join("..", "api")); \ No newline at end of file diff --git a/env-vars.md b/env-vars.md index c24ea1a2..6c56c184 100644 --- a/env-vars.md +++ b/env-vars.md @@ -14,4 +14,5 @@ |STORAGE\_BUCKET|s3 bucket name|S3 bucket name| |DB\_UNSAFE|any|Ignores migrations for database, enabled if defined| |DB\_VERBOSE|any|Log database queries, enabled if defined| -|DB\_MIGRATE|any|Exit fosscord after connecting to and migrating database, used internally| \ No newline at end of file +|DB\_MIGRATE|any|Exit fosscord after connecting to and migrating database, used internally| +|LOG\_INVALID\_BODY|any|Log request method, path and body if invalid| diff --git a/gateway/src/opcodes/Identify.ts b/gateway/src/opcodes/Identify.ts index 4e275592..ce4385a3 100644 --- a/gateway/src/opcodes/Identify.ts +++ b/gateway/src/opcodes/Identify.ts @@ -102,8 +102,9 @@ export async function onIdentify(this: WebSocket, data: Payload) { ]); if (!user) return this.close(CLOSECODES.Authentication_failed); - if (!user.settings) { + if (!user.settings) { //settings may not exist after updating... user.settings = new UserSettings(); + user.settings.id = user.id; await user.settings.save(); } diff --git a/util/src/entities/BaseClass.ts b/util/src/entities/BaseClass.ts index c872e7f1..aecc2465 100644 --- a/util/src/entities/BaseClass.ts +++ b/util/src/entities/BaseClass.ts @@ -1,5 +1,5 @@ import "reflect-metadata"; -import { BaseEntity, EntityMetadata, ObjectIdColumn, PrimaryColumn, FindOptionsWhere, Generated, SaveOptions } from "typeorm"; +import { BaseEntity, ObjectIdColumn, PrimaryColumn, SaveOptions } from "typeorm"; import { Snowflake } from "../util/Snowflake"; export class BaseClassWithoutId extends BaseEntity { diff --git a/util/src/entities/Channel.ts b/util/src/entities/Channel.ts index ade0fb39..a576d7af 100644 --- a/util/src/entities/Channel.ts +++ b/util/src/entities/Channel.ts @@ -151,6 +151,13 @@ export class Channel extends BaseClass { }) webhooks?: Webhook[]; + @Column({ nullable: true }) + flags?: number = 0; + + @Column({ nullable: true }) + default_thread_rate_limit_per_user?: number = 0; + + // TODO: DM channel static async createChannel( channel: Partial, diff --git a/util/src/entities/User.ts b/util/src/entities/User.ts index 6edcda97..61343e81 100644 --- a/util/src/entities/User.ts +++ b/util/src/entities/User.ts @@ -185,8 +185,10 @@ export class User extends BaseClass { notes: { [key: string]: string } = {}; //key is ID of user async save(): Promise { - await this.settings.save(); - return this.save(); + if(!this.settings) this.settings = new UserSettings(); + this.settings.id = this.id; + //await this.settings.save(); + return super.save(); } toPublicUser() { diff --git a/util/src/migrations/mariadb/1660265930624-CodeCleanup5.ts b/util/src/migrations/mariadb/1660265930624-CodeCleanup5.ts new file mode 100644 index 00000000..04f8e6af --- /dev/null +++ b/util/src/migrations/mariadb/1660265930624-CodeCleanup5.ts @@ -0,0 +1,53 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup51660265930624 implements MigrationInterface { + name = 'CodeCleanup51660265930624' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`users\` + ADD \`settingsId\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` (\`settingsId\`) + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD \`flags\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD \`default_thread_rate_limit_per_user\` int NULL + `); + await queryRunner.query(` + CREATE UNIQUE INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD CONSTRAINT \`FK_76ba283779c8441fd5ff819c8cf\` FOREIGN KEY (\`settingsId\`) REFERENCES \`user_settings\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`users\` DROP FOREIGN KEY \`FK_76ba283779c8441fd5ff819c8cf\` + `); + await queryRunner.query(` + DROP INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP COLUMN \`default_thread_rate_limit_per_user\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP COLUMN \`flags\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP COLUMN \`settingsId\` + `); + } + +} diff --git a/util/src/migrations/postgres/1660265907544-CodeCleanup5.ts b/util/src/migrations/postgres/1660265907544-CodeCleanup5.ts new file mode 100644 index 00000000..157d686a --- /dev/null +++ b/util/src/migrations/postgres/1660265907544-CodeCleanup5.ts @@ -0,0 +1,26 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup51660265907544 implements MigrationInterface { + name = 'CodeCleanup51660265907544' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "channels" + ADD "flags" integer + `); + await queryRunner.query(` + ALTER TABLE "channels" + ADD "default_thread_rate_limit_per_user" integer + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "channels" DROP COLUMN "default_thread_rate_limit_per_user" + `); + await queryRunner.query(` + ALTER TABLE "channels" DROP COLUMN "flags" + `); + } + +} diff --git a/util/src/migrations/sqlite/1660260539853-CodeCleanup4.ts b/util/src/migrations/sqlite/1660260539853-CodeCleanup4.ts deleted file mode 100644 index d3f2a40d..00000000 --- a/util/src/migrations/sqlite/1660260539853-CodeCleanup4.ts +++ /dev/null @@ -1,459 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup41660260539853 implements MigrationInterface { - name = 'CodeCleanup41660260539853' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE TABLE "temporary_users" ( - "id" varchar PRIMARY KEY NOT NULL, - "username" varchar NOT NULL, - "discriminator" varchar NOT NULL, - "avatar" varchar, - "accent_color" integer, - "banner" varchar, - "phone" varchar, - "desktop" boolean NOT NULL, - "mobile" boolean NOT NULL, - "premium" boolean NOT NULL, - "premium_type" integer NOT NULL, - "bot" boolean NOT NULL, - "bio" varchar NOT NULL, - "system" boolean NOT NULL, - "nsfw_allowed" boolean NOT NULL, - "mfa_enabled" boolean NOT NULL, - "totp_secret" varchar, - "totp_last_ticket" varchar, - "created_at" datetime NOT NULL, - "premium_since" datetime, - "verified" boolean NOT NULL, - "disabled" boolean NOT NULL, - "deleted" boolean NOT NULL, - "email" varchar, - "flags" varchar NOT NULL, - "public_flags" integer NOT NULL, - "rights" bigint NOT NULL, - "data" text NOT NULL, - "fingerprints" text NOT NULL, - "extended_settings" text NOT NULL, - "notes" text NOT NULL, - "settingsId" varchar, - CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId") - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_users"( - "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes" - ) - SELECT "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes" - FROM "users" - `); - await queryRunner.query(` - DROP TABLE "users" - `); - await queryRunner.query(` - ALTER TABLE "temporary_users" - RENAME TO "users" - `); - await queryRunner.query(` - CREATE TABLE "temporary_users" ( - "id" varchar PRIMARY KEY NOT NULL, - "username" varchar NOT NULL, - "discriminator" varchar NOT NULL, - "avatar" varchar, - "accent_color" integer, - "banner" varchar, - "phone" varchar, - "desktop" boolean NOT NULL, - "mobile" boolean NOT NULL, - "premium" boolean NOT NULL, - "premium_type" integer NOT NULL, - "bot" boolean NOT NULL, - "bio" varchar NOT NULL, - "system" boolean NOT NULL, - "nsfw_allowed" boolean NOT NULL, - "mfa_enabled" boolean NOT NULL, - "totp_secret" varchar, - "totp_last_ticket" varchar, - "created_at" datetime NOT NULL, - "premium_since" datetime, - "verified" boolean NOT NULL, - "disabled" boolean NOT NULL, - "deleted" boolean NOT NULL, - "email" varchar, - "flags" varchar NOT NULL, - "public_flags" integer NOT NULL, - "rights" bigint NOT NULL, - "data" text NOT NULL, - "fingerprints" text NOT NULL, - "extended_settings" text NOT NULL, - "notes" text NOT NULL, - "settingsId" varchar, - CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId"), - CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" FOREIGN KEY ("settingsId") REFERENCES "user_settings" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_users"( - "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes", - "settingsId" - ) - SELECT "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes", - "settingsId" - FROM "users" - `); - await queryRunner.query(` - DROP TABLE "users" - `); - await queryRunner.query(` - ALTER TABLE "temporary_users" - RENAME TO "users" - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "users" - RENAME TO "temporary_users" - `); - await queryRunner.query(` - CREATE TABLE "users" ( - "id" varchar PRIMARY KEY NOT NULL, - "username" varchar NOT NULL, - "discriminator" varchar NOT NULL, - "avatar" varchar, - "accent_color" integer, - "banner" varchar, - "phone" varchar, - "desktop" boolean NOT NULL, - "mobile" boolean NOT NULL, - "premium" boolean NOT NULL, - "premium_type" integer NOT NULL, - "bot" boolean NOT NULL, - "bio" varchar NOT NULL, - "system" boolean NOT NULL, - "nsfw_allowed" boolean NOT NULL, - "mfa_enabled" boolean NOT NULL, - "totp_secret" varchar, - "totp_last_ticket" varchar, - "created_at" datetime NOT NULL, - "premium_since" datetime, - "verified" boolean NOT NULL, - "disabled" boolean NOT NULL, - "deleted" boolean NOT NULL, - "email" varchar, - "flags" varchar NOT NULL, - "public_flags" integer NOT NULL, - "rights" bigint NOT NULL, - "data" text NOT NULL, - "fingerprints" text NOT NULL, - "extended_settings" text NOT NULL, - "notes" text NOT NULL, - "settingsId" varchar, - CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId") - ) - `); - await queryRunner.query(` - INSERT INTO "users"( - "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes", - "settingsId" - ) - SELECT "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes", - "settingsId" - FROM "temporary_users" - `); - await queryRunner.query(` - DROP TABLE "temporary_users" - `); - await queryRunner.query(` - ALTER TABLE "users" - RENAME TO "temporary_users" - `); - await queryRunner.query(` - CREATE TABLE "users" ( - "id" varchar PRIMARY KEY NOT NULL, - "username" varchar NOT NULL, - "discriminator" varchar NOT NULL, - "avatar" varchar, - "accent_color" integer, - "banner" varchar, - "phone" varchar, - "desktop" boolean NOT NULL, - "mobile" boolean NOT NULL, - "premium" boolean NOT NULL, - "premium_type" integer NOT NULL, - "bot" boolean NOT NULL, - "bio" varchar NOT NULL, - "system" boolean NOT NULL, - "nsfw_allowed" boolean NOT NULL, - "mfa_enabled" boolean NOT NULL, - "totp_secret" varchar, - "totp_last_ticket" varchar, - "created_at" datetime NOT NULL, - "premium_since" datetime, - "verified" boolean NOT NULL, - "disabled" boolean NOT NULL, - "deleted" boolean NOT NULL, - "email" varchar, - "flags" varchar NOT NULL, - "public_flags" integer NOT NULL, - "rights" bigint NOT NULL, - "data" text NOT NULL, - "fingerprints" text NOT NULL, - "extended_settings" text NOT NULL, - "notes" text NOT NULL - ) - `); - await queryRunner.query(` - INSERT INTO "users"( - "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes" - ) - SELECT "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes" - FROM "temporary_users" - `); - await queryRunner.query(` - DROP TABLE "temporary_users" - `); - } - -} -- cgit 1.4.1 From dd0a6e9709a8b8a8d18b0a8d85c3a2a2b4921ba5 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Fri, 12 Aug 2022 10:37:42 +0200 Subject: Move some invite defaults into class --- api/src/routes/channels/#channel_id/invites.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/api/src/routes/channels/#channel_id/invites.ts b/api/src/routes/channels/#channel_id/invites.ts index c0279f49..f111cf54 100644 --- a/api/src/routes/channels/#channel_id/invites.ts +++ b/api/src/routes/channels/#channel_id/invites.ts @@ -35,15 +35,12 @@ router.post("/", route({ body: "InviteCreateSchema", permission: "CREATE_INSTANT const expires_at = new Date(req.body.max_age * 1000 + Date.now()); const invite = await OrmUtils.mergeDeep(new Invite(),{ - code: random(), temporary: req.body.temporary || true, - uses: 0, max_uses: req.body.max_uses, max_age: req.body.max_age, expires_at, - created_at: new Date(), guild_id, - channel_id: channel_id, + channel_id, inviter_id: user_id }).save(); //TODO: check this, removed toJSON call @@ -57,7 +54,6 @@ router.post("/", route({ body: "InviteCreateSchema", permission: "CREATE_INSTANT }); router.get("/", route({ permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { - const { user_id } = req; const { channel_id } = req.params; const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); -- cgit 1.4.1 From 10bd81274722823f875ba31eaf5fc670bfb22ceb Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Fri, 12 Aug 2022 11:36:39 +0200 Subject: Split schemas into files in util --- api/assets/schemas.json | 2247 ++++++++++++-------- api/src/routes/auth/login.ts | 11 +- api/src/routes/auth/mfa/totp.ts | 9 +- api/src/routes/auth/register.ts | 29 +- api/src/routes/channels/#channel_id/index.ts | 30 +- api/src/routes/channels/#channel_id/invites.ts | 12 - .../#channel_id/messages/#message_id/ack.ts | 9 - .../#channel_id/messages/#message_id/index.ts | 4 +- .../channels/#channel_id/messages/bulk-delete.ts | 4 - .../routes/channels/#channel_id/messages/index.ts | 36 +- api/src/routes/channels/#channel_id/permissions.ts | 7 +- api/src/routes/channels/#channel_id/purge.ts | 7 +- api/src/routes/channels/#channel_id/webhooks.ts | 8 - api/src/routes/guilds/#guild_id/audit-logs.ts | 3 - api/src/routes/guilds/#guild_id/bans.ts | 24 +- api/src/routes/guilds/#guild_id/channels.ts | 3 +- api/src/routes/guilds/#guild_id/emojis.ts | 14 +- api/src/routes/guilds/#guild_id/index.ts | 20 +- api/src/routes/guilds/#guild_id/integrations.ts | 1 - .../guilds/#guild_id/members/#member_id/index.ts | 6 +- .../guilds/#guild_id/members/#member_id/nick.ts | 4 - api/src/routes/guilds/#guild_id/prune.ts | 7 - .../guilds/#guild_id/roles/#role_id/index.ts | 3 +- api/src/routes/guilds/#guild_id/roles/index.ts | 14 +- api/src/routes/guilds/#guild_id/stickers.ts | 17 +- api/src/routes/guilds/#guild_id/templates.ts | 10 - api/src/routes/guilds/#guild_id/vanity-url.ts | 10 +- .../#guild_id/voice-states/#user_id/index.ts | 14 +- api/src/routes/guilds/#guild_id/webhooks.ts | 1 - api/src/routes/guilds/#guild_id/welcome_screen.ts | 13 +- api/src/routes/guilds/#guild_id/widget.ts | 7 +- api/src/routes/guilds/index.ts | 16 +- api/src/routes/guilds/templates/index.ts | 9 +- api/src/routes/users/@me/channels.ts | 7 +- api/src/routes/users/@me/index.ts | 21 +- api/src/routes/users/@me/mfa/codes.ts | 7 +- api/src/routes/users/@me/mfa/totp/disable.ts | 6 +- api/src/routes/users/@me/mfa/totp/enable.ts | 8 +- api/src/routes/users/@me/relationships.ts | 9 - api/src/routes/users/@me/settings.ts | 2 - api/src/util/handlers/Message.ts | 3 +- gateway/src/opcodes/Identify.ts | 2 +- gateway/src/opcodes/LazyRequest.ts | 3 +- gateway/src/opcodes/PresenceUpdate.ts | 3 +- gateway/src/opcodes/VoiceStateUpdate.ts | 2 +- gateway/src/schema/Activity.ts | 51 - gateway/src/schema/Identify.ts | 89 - gateway/src/schema/LazyRequest.ts | 19 - gateway/src/schema/VoiceStateUpdateSchema.ts | 15 - util/src/index.ts | 3 +- util/src/schemas/ActivitySchema.ts | 51 + util/src/schemas/BanCreateSchema.ts | 5 + util/src/schemas/BanModeratorSchema.ts | 8 + util/src/schemas/BanRegistrySchema.ts | 9 + util/src/schemas/BulkDeleteSchema.ts | 4 + util/src/schemas/ChannelModifySchema.ts | 29 + .../schemas/ChannelPermissionOverwriteSchema.ts | 5 + util/src/schemas/DmChannelCreateSchema.ts | 5 + util/src/schemas/EmojiCreateSchema.ts | 7 + util/src/schemas/EmojiModifySchema.ts | 5 + util/src/schemas/GuildCreateSchema.ts | 14 + util/src/schemas/GuildTemplateCreateSchema.ts | 5 + util/src/schemas/GuildUpdateSchema.ts | 18 + util/src/schemas/GuildUpdateWelcomeScreenSchema.ts | 11 + util/src/schemas/IdentifySchema.ts | 89 + util/src/schemas/InviteCreateSchema.ts | 12 + util/src/schemas/LazyRequestSchema.ts | 19 + util/src/schemas/LoginSchema.ts | 9 + util/src/schemas/MemberChangeSchema.ts | 4 + util/src/schemas/MemberNickChangeSchema.ts | 4 + util/src/schemas/MessageAcknowledgeSchema.ts | 8 + util/src/schemas/MessageCreateSchema.ts | 34 + util/src/schemas/MfaCodesSchema.ts | 5 + util/src/schemas/ModifyGuildStickerSchema.ts | 16 + util/src/schemas/PruneSchema.ts | 7 + util/src/schemas/PurgeSchema.ts | 5 + util/src/schemas/RegisterSchema.ts | 27 + util/src/schemas/RelationshipPostSchema.ts | 5 + util/src/schemas/RelationshipPutSchema.ts | 6 + util/src/schemas/RoleModifySchema.ts | 11 + util/src/schemas/TemplateCreateSchema.ts | 5 + util/src/schemas/TemplateModifySchema.ts | 5 + util/src/schemas/TotpDisableSchema.ts | 4 + util/src/schemas/TotpEnableSchema.ts | 6 + util/src/schemas/TotpSchema.ts | 7 + util/src/schemas/UserModifySchema.ts | 19 + util/src/schemas/UserSettingsSchema.ts | 4 + util/src/schemas/VanityUrlSchema.ts | 8 + util/src/schemas/VoiceStateUpdateSchema.ts | 18 + util/src/schemas/WebhookCreateSchema.ts | 8 + util/src/schemas/WidgetModifySchema.ts | 5 + util/src/schemas/index.ts | 41 + util/src/util/Config.ts | 5 +- 93 files changed, 1974 insertions(+), 1457 deletions(-) delete mode 100644 gateway/src/schema/Activity.ts delete mode 100644 gateway/src/schema/Identify.ts delete mode 100644 gateway/src/schema/LazyRequest.ts delete mode 100644 gateway/src/schema/VoiceStateUpdateSchema.ts create mode 100644 util/src/schemas/ActivitySchema.ts create mode 100644 util/src/schemas/BanCreateSchema.ts create mode 100644 util/src/schemas/BanModeratorSchema.ts create mode 100644 util/src/schemas/BanRegistrySchema.ts create mode 100644 util/src/schemas/BulkDeleteSchema.ts create mode 100644 util/src/schemas/ChannelModifySchema.ts create mode 100644 util/src/schemas/ChannelPermissionOverwriteSchema.ts create mode 100644 util/src/schemas/DmChannelCreateSchema.ts create mode 100644 util/src/schemas/EmojiCreateSchema.ts create mode 100644 util/src/schemas/EmojiModifySchema.ts create mode 100644 util/src/schemas/GuildCreateSchema.ts create mode 100644 util/src/schemas/GuildTemplateCreateSchema.ts create mode 100644 util/src/schemas/GuildUpdateSchema.ts create mode 100644 util/src/schemas/GuildUpdateWelcomeScreenSchema.ts create mode 100644 util/src/schemas/IdentifySchema.ts create mode 100644 util/src/schemas/InviteCreateSchema.ts create mode 100644 util/src/schemas/LazyRequestSchema.ts create mode 100644 util/src/schemas/LoginSchema.ts create mode 100644 util/src/schemas/MemberChangeSchema.ts create mode 100644 util/src/schemas/MemberNickChangeSchema.ts create mode 100644 util/src/schemas/MessageAcknowledgeSchema.ts create mode 100644 util/src/schemas/MessageCreateSchema.ts create mode 100644 util/src/schemas/MfaCodesSchema.ts create mode 100644 util/src/schemas/ModifyGuildStickerSchema.ts create mode 100644 util/src/schemas/PruneSchema.ts create mode 100644 util/src/schemas/PurgeSchema.ts create mode 100644 util/src/schemas/RegisterSchema.ts create mode 100644 util/src/schemas/RelationshipPostSchema.ts create mode 100644 util/src/schemas/RelationshipPutSchema.ts create mode 100644 util/src/schemas/RoleModifySchema.ts create mode 100644 util/src/schemas/TemplateCreateSchema.ts create mode 100644 util/src/schemas/TemplateModifySchema.ts create mode 100644 util/src/schemas/TotpDisableSchema.ts create mode 100644 util/src/schemas/TotpEnableSchema.ts create mode 100644 util/src/schemas/TotpSchema.ts create mode 100644 util/src/schemas/UserModifySchema.ts create mode 100644 util/src/schemas/UserSettingsSchema.ts create mode 100644 util/src/schemas/VanityUrlSchema.ts create mode 100644 util/src/schemas/VoiceStateUpdateSchema.ts create mode 100644 util/src/schemas/WebhookCreateSchema.ts create mode 100644 util/src/schemas/WidgetModifySchema.ts create mode 100644 util/src/schemas/index.ts diff --git a/api/assets/schemas.json b/api/assets/schemas.json index d8576514..f102f9d0 100644 --- a/api/assets/schemas.json +++ b/api/assets/schemas.json @@ -98,362 +98,264 @@ ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "MessageCreateSchema": { + "ActivitySchema": { "type": "object", "properties": { - "type": { - "type": "integer" - }, - "content": { - "type": "string" - }, - "nonce": { - "type": "string" - }, - "channel_id": { - "type": "string" - }, - "tts": { + "afk": { "type": "boolean" }, - "flags": { - "type": "string" + "status": { + "$ref": "#/definitions/Status" }, - "embeds": { + "activities": { "type": "array", "items": { - "$ref": "#/definitions/Embed" + "$ref": "#/definitions/Activity" } }, - "embed": { - "$ref": "#/definitions/Embed" - }, - "allowed_mentions": { - "type": "object", - "properties": { - "parse": { - "type": "array", - "items": { - "type": "string" - } - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "items": { - "type": "string" - } - }, - "replied_user": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "message_reference": { - "type": "object", - "properties": { - "message_id": { - "type": "string" - }, - "channel_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "fail_if_not_exists": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "channel_id", - "message_id" - ] - }, - "payload_json": { - "type": "string" - }, - "file": {}, - "attachments": { - "description": "TODO: we should create an interface for attachments\nTODO: OpenWAAO<-->attachment-style metadata conversion", - "type": "array", - "items": {} - }, - "sticker_ids": { - "type": "array", - "items": { - "type": "string" - } + "since": { + "type": "integer" } }, "additionalProperties": false, + "required": [ + "afk", + "status" + ], "definitions": { - "Embed": { + "Status": { + "enum": [ + "dnd", + "idle", + "invisible", + "offline", + "online" + ], + "type": "string" + }, + "Activity": { "type": "object", "properties": { - "title": { + "name": { "type": "string" }, "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" + "$ref": "#/definitions/ActivityType" }, "url": { "type": "string" }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { + "created_at": { "type": "integer" }, - "footer": { + "timestamps": { "type": "object", "properties": { - "text": { - "type": "string" + "start": { + "type": "integer" }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" + "end": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "text" + "end", + "start" ] }, - "image": { - "$ref": "#/definitions/EmbedImage" + "application_id": { + "type": "string" }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" + "details": { + "type": "string" }, - "video": { - "$ref": "#/definitions/EmbedImage" + "state": { + "type": "string" }, - "provider": { + "emoji": { "type": "object", "properties": { "name": { "type": "string" }, - "url": { + "id": { + "type": "string" + }, + "animated": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "animated", + "name" + ] + }, + "party": { + "type": "object", + "properties": { + "id": { "type": "string" + }, + "size": { + "type": "array", + "items": [ + { + "type": "integer" + } + ], + "minItems": 1, + "maxItems": 1 } }, "additionalProperties": false }, - "author": { + "assets": { "type": "object", "properties": { - "name": { + "large_image": { "type": "string" }, - "url": { + "large_text": { "type": "string" }, - "icon_url": { + "small_image": { "type": "string" }, - "proxy_icon_url": { + "small_text": { "type": "string" } }, "additionalProperties": false }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } + "secrets": { + "type": "object", + "properties": { + "join": { + "type": "string" }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" + "spectate": { + "type": "string" + }, + "match": { + "type": "string" + } + }, + "additionalProperties": false }, - "height": { - "type": "integer" + "instance": { + "type": "boolean" }, - "width": { - "type": "integer" + "flags": { + "type": "string" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "flags", + "name", + "type" + ] + }, + "ActivityType": { + "enum": [ + 0, + 1, + 2, + 4, + 5 + ], + "type": "number" } }, "$schema": "http://json-schema.org/draft-07/schema#" }, - "RouteResponse": { + "BanCreateSchema": { "type": "object", "properties": { - "status": { - "type": "integer" - }, - "body": { - "type": "array", - "items": { - "type": "string" - } + "delete_message_days": { + "type": "string" }, - "headers": { - "$ref": "#/definitions/Record" + "reason": { + "type": "string" } }, "additionalProperties": false, - "definitions": { - "Record": { - "type": "object", - "additionalProperties": false - } - }, "$schema": "http://json-schema.org/draft-07/schema#" }, - "LoginSchema": { + "BanModeratorSchema": { "type": "object", "properties": { - "login": { + "id": { "type": "string" }, - "password": { + "user_id": { "type": "string" }, - "undelete": { - "type": "boolean" - }, - "captcha_key": { + "guild_id": { "type": "string" }, - "login_source": { + "executor_id": { "type": "string" }, - "gift_code_sku_id": { + "reason": { "type": "string" } }, "additionalProperties": false, "required": [ - "login", - "password" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TotpSchema": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "ticket": { - "type": "string" - }, - "gift_code_sku_id": { - "type": [ - "null", - "string" - ] - }, - "login_source": { - "type": [ - "null", - "string" - ] - } - }, - "additionalProperties": false, - "required": [ - "code", - "ticket" + "executor_id", + "guild_id", + "id", + "user_id" ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "RegisterSchema": { + "BanRegistrySchema": { "type": "object", "properties": { - "username": { - "minLength": 2, - "maxLength": 32, - "type": "string" - }, - "password": { - "minLength": 1, - "maxLength": 72, - "type": "string" - }, - "consent": { - "type": "boolean" - }, - "email": { - "format": "email", + "id": { "type": "string" }, - "fingerprint": { + "user_id": { "type": "string" }, - "invite": { + "guild_id": { "type": "string" }, - "date_of_birth": { + "executor_id": { "type": "string" }, - "gift_code_sku_id": { + "ip": { "type": "string" }, - "captcha_key": { + "reason": { "type": "string" - }, - "promotional_email_opt_in": { - "type": "boolean" } }, "additionalProperties": false, "required": [ - "consent", - "username" + "executor_id", + "guild_id", + "id", + "user_id" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "BulkDeleteSchema": { + "type": "object", + "properties": { + "messages": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "messages" ], "$schema": "http://json-schema.org/draft-07/schema#" }, @@ -573,69 +475,6 @@ }, "$schema": "http://json-schema.org/draft-07/schema#" }, - "InviteCreateSchema": { - "type": "object", - "properties": { - "target_user_id": { - "type": "string" - }, - "target_type": { - "type": "string" - }, - "validate": { - "type": "string" - }, - "max_age": { - "type": "integer" - }, - "max_uses": { - "type": "integer" - }, - "temporary": { - "type": "boolean" - }, - "unique": { - "type": "boolean" - }, - "target_user": { - "type": "string" - }, - "target_user_type": { - "type": "integer" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MessageAcknowledgeSchema": { - "type": "object", - "properties": { - "manual": { - "type": "boolean" - }, - "mention_count": { - "type": "integer" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "BulkDeleteSchema": { - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "messages" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, "ChannelPermissionOverwriteSchema": { "type": "object", "properties": { @@ -671,251 +510,84 @@ }, "$schema": "http://json-schema.org/draft-07/schema#" }, - "PurgeSchema": { + "DmChannelCreateSchema": { "type": "object", "properties": { - "before": { + "name": { "type": "string" }, - "after": { - "type": "string" + "recipients": { + "type": "array", + "items": { + "type": "string" + } } }, "additionalProperties": false, "required": [ - "after", - "before" + "recipients" ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "WebhookCreateSchema": { + "EmojiCreateSchema": { "type": "object", "properties": { "name": { - "maxLength": 80, "type": "string" }, - "avatar": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GatewayBotResponse": { - "type": "object", - "properties": { - "url": { + "image": { "type": "string" }, - "shards": { - "type": "integer" - }, - "session_start_limit": { - "type": "object", - "properties": { - "total": { - "type": "integer" - }, - "remaining": { - "type": "integer" - }, - "reset_after": { - "type": "integer" - }, - "max_concurrency": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max_concurrency", - "remaining", - "reset_after", - "total" + "require_colons": { + "type": [ + "null", + "boolean" ] + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } } }, "additionalProperties": false, "required": [ - "session_start_limit", - "shards", - "url" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GatewayResponse": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" + "image" ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "BanCreateSchema": { + "EmojiModifySchema": { "type": "object", "properties": { - "delete_message_days": { + "name": { "type": "string" }, - "reason": { - "type": "string" + "roles": { + "type": "array", + "items": { + "type": "string" + } } }, "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }, - "BanRegistrySchema": { + "GuildCreateSchema": { "type": "object", "properties": { - "id": { + "name": { + "maxLength": 100, "type": "string" }, - "user_id": { + "region": { "type": "string" }, - "guild_id": { - "type": "string" - }, - "executor_id": { - "type": "string" - }, - "ip": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "executor_id", - "guild_id", - "id", - "user_id" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "BanModeratorSchema": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "executor_id": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "executor_id", - "guild_id", - "id", - "user_id" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ChannelReorderSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - }, - "lock_permissions": { - "type": "boolean" - }, - "parent_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "EmojiCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "image": { - "type": "string" - }, - "require_colons": { - "type": [ - "null", - "boolean" - ] - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "EmojiModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildCreateSchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "region": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] + "icon": { + "type": [ + "null", + "string" + ] }, "channels": { "type": "array", @@ -1054,6 +726,25 @@ }, "$schema": "http://json-schema.org/draft-07/schema#" }, + "GuildTemplateCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "avatar": { + "type": [ + "null", + "string" + ] + } + }, + "additionalProperties": false, + "required": [ + "name" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, "GuildUpdateSchema": { "type": "object", "properties": { @@ -1130,470 +821,892 @@ "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }, - "MemberChangeSchema": { + "GuildUpdateWelcomeScreenSchema": { "type": "object", "properties": { - "roles": { + "welcome_channels": { "type": "array", "items": { - "type": "string" + "type": "object", + "properties": { + "channel_id": { + "type": "string" + }, + "description": { + "type": "string" + }, + "emoji_id": { + "type": "string" + }, + "emoji_name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "channel_id", + "description", + "emoji_name" + ] } - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MemberNickChangeSchema": { - "type": "object", - "properties": { - "nick": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "nick" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "PruneSchema": { - "type": "object", - "properties": { - "days": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "days" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RoleModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "permissions": { - "type": "string" - }, - "color": { - "type": "integer" - }, - "hoist": { - "type": "boolean" }, - "mentionable": { + "enabled": { "type": "boolean" }, - "position": { - "type": "integer" - }, - "icon": { - "type": "string" - }, - "unicode_emoji": { + "description": { "type": "string" } }, "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }, - "RolePositionUpdateSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "id", - "position" - ] - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ModifyGuildStickerSchema": { + "IdentifySchema": { "type": "object", "properties": { - "name": { - "minLength": 2, - "maxLength": 30, + "token": { "type": "string" }, - "description": { - "maxLength": 100, - "type": "string" + "properties": { + "type": "object", + "properties": { + "os": { + "type": "string" + }, + "os_atch": { + "type": "string" + }, + "browser": { + "type": "string" + }, + "device": { + "type": "string" + }, + "$os": { + "type": "string" + }, + "$browser": { + "type": "string" + }, + "$device": { + "type": "string" + }, + "browser_user_agent": { + "type": "string" + }, + "browser_version": { + "type": "string" + }, + "os_version": { + "type": "string" + }, + "referrer": { + "type": "string" + }, + "referring_domain": { + "type": "string" + }, + "referrer_current": { + "type": "string" + }, + "referring_domain_current": { + "type": "string" + }, + "release_channel": { + "enum": [ + "canary", + "dev", + "ptb", + "stable" + ], + "type": "string" + }, + "client_build_number": { + "type": "integer" + }, + "client_event_source": {}, + "client_version": { + "type": "string" + }, + "system_locale": { + "type": "string" + } + }, + "additionalProperties": false }, - "tags": { - "maxLength": 200, - "type": "string" + "intents": { + "type": "bigint" + }, + "presence": { + "$ref": "#/definitions/ActivitySchema" + }, + "compress": { + "type": "boolean" + }, + "large_threshold": { + "type": "integer" + }, + "shard": { + "type": "array", + "items": [ + { + "type": "bigint" + }, + { + "type": "bigint" + } + ], + "minItems": 2, + "maxItems": 2 + }, + "guild_subscriptions": { + "type": "boolean" + }, + "capabilities": { + "type": "integer" + }, + "client_state": { + "type": "object", + "properties": { + "guild_hashes": {}, + "highest_last_message_id": { + "type": "string" + }, + "read_state_version": { + "type": "integer" + }, + "user_guild_settings_version": { + "type": "integer" + }, + "user_settings_version": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "v": { + "type": "integer" } }, "additionalProperties": false, "required": [ - "name", - "tags" + "properties", + "token" ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TemplateCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" + "definitions": { + "ActivitySchema": { + "type": "object", + "properties": { + "afk": { + "type": "boolean" + }, + "status": { + "$ref": "#/definitions/Status" + }, + "activities": { + "type": "array", + "items": { + "$ref": "#/definitions/Activity" + } + }, + "since": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "afk", + "status" + ] }, - "description": { + "Status": { + "enum": [ + "dnd", + "idle", + "invisible", + "offline", + "online" + ], "type": "string" + }, + "Activity": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ActivityType" + }, + "url": { + "type": "string" + }, + "created_at": { + "type": "integer" + }, + "timestamps": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "end": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "end", + "start" + ] + }, + "application_id": { + "type": "string" + }, + "details": { + "type": "string" + }, + "state": { + "type": "string" + }, + "emoji": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "animated": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "animated", + "name" + ] + }, + "party": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "size": { + "type": "array", + "items": [ + { + "type": "integer" + } + ], + "minItems": 1, + "maxItems": 1 + } + }, + "additionalProperties": false + }, + "assets": { + "type": "object", + "properties": { + "large_image": { + "type": "string" + }, + "large_text": { + "type": "string" + }, + "small_image": { + "type": "string" + }, + "small_text": { + "type": "string" + } + }, + "additionalProperties": false + }, + "secrets": { + "type": "object", + "properties": { + "join": { + "type": "string" + }, + "spectate": { + "type": "string" + }, + "match": { + "type": "string" + } + }, + "additionalProperties": false + }, + "instance": { + "type": "boolean" + }, + "flags": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "flags", + "name", + "type" + ] + }, + "ActivityType": { + "enum": [ + 0, + 1, + 2, + 4, + 5 + ], + "type": "number" } }, - "additionalProperties": false, - "required": [ - "name" - ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "TemplateModifySchema": { + "InviteCreateSchema": { "type": "object", "properties": { - "name": { + "target_user_id": { "type": "string" }, - "description": { + "target_type": { "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "VanityUrlSchema": { - "type": "object", - "properties": { - "code": { - "minLength": 1, - "maxLength": 20, + }, + "validate": { + "type": "string" + }, + "max_age": { + "type": "integer" + }, + "max_uses": { + "type": "integer" + }, + "temporary": { + "type": "boolean" + }, + "unique": { + "type": "boolean" + }, + "target_user": { "type": "string" + }, + "target_user_type": { + "type": "integer" } }, "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }, - "VoiceStateUpdateSchema": { + "LoginSchema": { "type": "object", "properties": { - "channel_id": { + "login": { "type": "string" }, - "guild_id": { + "password": { "type": "string" }, - "suppress": { + "undelete": { "type": "boolean" }, - "request_to_speak_timestamp": { - "type": "string", - "format": "date-time" - }, - "self_mute": { - "type": "boolean" + "captcha_key": { + "type": "string" }, - "self_deaf": { - "type": "boolean" + "login_source": { + "type": "string" }, - "self_video": { - "type": "boolean" + "gift_code_sku_id": { + "type": "string" } }, "additionalProperties": false, "required": [ - "channel_id" + "login", + "password" ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "GuildUpdateWelcomeScreenSchema": { + "MemberChangeSchema": { "type": "object", "properties": { - "welcome_channels": { + "roles": { "type": "array", - "items": { - "type": "object", - "properties": { - "channel_id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "emoji_id": { - "type": "string" - }, - "emoji_name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "channel_id", - "description", - "emoji_name" - ] + "items": { + "type": "string" } - }, - "enabled": { - "type": "boolean" - }, - "description": { - "type": "string" } }, "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }, - "WidgetModifySchema": { + "MemberNickChangeSchema": { "type": "object", "properties": { - "enabled": { - "type": "boolean" - }, - "channel_id": { + "nick": { "type": "string" } }, "additionalProperties": false, "required": [ - "channel_id", - "enabled" + "nick" ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "GuildTemplateCreateSchema": { + "MessageAcknowledgeSchema": { "type": "object", "properties": { - "name": { - "type": "string" + "manual": { + "type": "boolean" }, - "avatar": { - "type": [ - "null", - "string" - ] + "mention_count": { + "type": "integer" } }, "additionalProperties": false, - "required": [ - "name" - ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "UserProfileResponse": { + "MessageCreateSchema": { "type": "object", "properties": { - "user": { - "$ref": "#/definitions/UserPublic" + "type": { + "type": "integer" }, - "connected_accounts": { - "$ref": "#/definitions/PublicConnectedAccount" + "content": { + "type": "string" }, - "premium_guild_since": { - "type": "string", - "format": "date-time" + "nonce": { + "type": "string" }, - "premium_since": { - "type": "string", - "format": "date-time" + "channel_id": { + "type": "string" + }, + "tts": { + "type": "boolean" + }, + "flags": { + "type": "string" + }, + "embeds": { + "type": "array", + "items": { + "$ref": "#/definitions/Embed" + } + }, + "embed": { + "$ref": "#/definitions/Embed" + }, + "allowed_mentions": { + "type": "object", + "properties": { + "parse": { + "type": "array", + "items": { + "type": "string" + } + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "items": { + "type": "string" + } + }, + "replied_user": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "message_reference": { + "type": "object", + "properties": { + "message_id": { + "type": "string" + }, + "channel_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "fail_if_not_exists": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "channel_id", + "message_id" + ] + }, + "payload_json": { + "type": "string" + }, + "file": {}, + "attachments": { + "description": "TODO: we should create an interface for attachments\nTODO: OpenWAAO<-->attachment-style metadata conversion", + "type": "array", + "items": {} + }, + "sticker_ids": { + "type": "array", + "items": { + "type": "string" + } } }, "additionalProperties": false, - "required": [ - "connected_accounts", - "user" - ], "definitions": { - "UserPublic": { + "Embed": { "type": "object", "properties": { - "username": { + "title": { "type": "string" }, - "discriminator": { + "type": { + "enum": [ + "article", + "gifv", + "image", + "link", + "rich", + "video" + ], "type": "string" }, - "id": { + "description": { "type": "string" }, - "public_flags": { - "type": "integer" - }, - "avatar": { + "url": { "type": "string" }, - "accent_color": { + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { "type": "integer" }, - "banner": { - "type": "string" + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "text" + ] }, - "bio": { - "type": "string" + "image": { + "$ref": "#/definitions/EmbedImage" }, - "bot": { - "type": "boolean" + "thumbnail": { + "$ref": "#/definitions/EmbedImage" }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] + "video": { + "$ref": "#/definitions/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "name", + "value" + ] + } + } + }, + "additionalProperties": false }, - "PublicConnectedAccount": { + "EmbedImage": { "type": "object", "properties": { - "name": { + "url": { "type": "string" }, - "type": { + "proxy_url": { "type": "string" }, - "verified": { - "type": "boolean" + "height": { + "type": "integer" + }, + "width": { + "type": "integer" } }, - "additionalProperties": false, - "required": [ - "name", - "type", - "verified" - ] + "additionalProperties": false } }, "$schema": "http://json-schema.org/draft-07/schema#" }, - "UserRelationsResponse": { + "MfaCodesSchema": { "type": "object", "properties": { - "object": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "username": { - "type": "string" - }, - "avatar": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "public_flags": { - "type": "integer" - } - }, - "additionalProperties": false + "password": { + "type": "string" + }, + "regenerate": { + "type": "boolean" } }, "additionalProperties": false, "required": [ - "object" + "password" ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "DmChannelCreateSchema": { + "ModifyGuildStickerSchema": { "type": "object", "properties": { "name": { + "minLength": 2, + "maxLength": 30, "type": "string" }, - "recipients": { - "type": "array", - "items": { - "type": "string" - } + "description": { + "maxLength": 100, + "type": "string" + }, + "tags": { + "maxLength": 200, + "type": "string" } }, "additionalProperties": false, "required": [ - "recipients" + "name", + "tags" ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "UserModifySchema": { + "PruneSchema": { + "type": "object", + "properties": { + "days": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "days" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "PurgeSchema": { + "type": "object", + "properties": { + "before": { + "type": "string" + }, + "after": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "after", + "before" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RegisterSchema": { "type": "object", "properties": { "username": { + "minLength": 2, + "maxLength": 32, + "type": "string" + }, + "password": { "minLength": 1, - "maxLength": 100, + "maxLength": 72, + "type": "string" + }, + "consent": { + "type": "boolean" + }, + "email": { + "format": "email", + "type": "string" + }, + "fingerprint": { + "type": "string" + }, + "invite": { + "type": "string" + }, + "date_of_birth": { + "type": "string" + }, + "gift_code_sku_id": { + "type": "string" + }, + "captcha_key": { "type": "string" }, + "promotional_email_opt_in": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "consent", + "username" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RelationshipPostSchema": { + "type": "object", + "properties": { "discriminator": { "type": "string" }, - "avatar": { - "type": [ - "null", - "string" - ] + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "discriminator", + "username" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RelationshipPutSchema": { + "type": "object", + "properties": { + "type": { + "enum": [ + 1, + 2, + 3, + 4 + ], + "type": "number" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RoleModifySchema": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - "bio": { - "maxLength": 1024, + "permissions": { "type": "string" }, - "accent_color": { + "color": { "type": "integer" }, - "banner": { - "type": [ - "null", - "string" - ] + "hoist": { + "type": "boolean" }, - "password": { + "mentionable": { + "type": "boolean" + }, + "position": { + "type": "integer" + }, + "icon": { "type": "string" }, - "new_password": { + "unicode_emoji": { + "type": "string" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TemplateCreateSchema": { + "type": "object", + "properties": { + "name": { "type": "string" }, - "code": { + "description": { "type": "string" } }, "additionalProperties": false, + "required": [ + "name" + ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "MfaCodesSchema": { + "TemplateModifySchema": { "type": "object", "properties": { - "password": { + "name": { "type": "string" }, - "regenerate": { - "type": "boolean" + "description": { + "type": "string" } }, "additionalProperties": false, "required": [ - "password" + "name" ], "$schema": "http://json-schema.org/draft-07/schema#" }, @@ -1619,47 +1732,86 @@ "code": { "type": "string" }, - "secret": { - "type": "string" + "secret": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "password" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TotpSchema": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "ticket": { + "type": "string" + }, + "gift_code_sku_id": { + "type": [ + "null", + "string" + ] + }, + "login_source": { + "type": [ + "null", + "string" + ] } }, "additionalProperties": false, "required": [ - "password" + "code", + "ticket" ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "RelationshipPutSchema": { - "type": "object", - "properties": { - "type": { - "enum": [ - 1, - 2, - 3, - 4 - ], - "type": "number" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RelationshipPostSchema": { + "UserModifySchema": { "type": "object", "properties": { + "username": { + "minLength": 1, + "maxLength": 100, + "type": "string" + }, "discriminator": { "type": "string" }, - "username": { + "avatar": { + "type": [ + "null", + "string" + ] + }, + "bio": { + "maxLength": 1024, + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": [ + "null", + "string" + ] + }, + "password": { + "type": "string" + }, + "new_password": { + "type": "string" + }, + "code": { "type": "string" } }, "additionalProperties": false, - "required": [ - "discriminator", - "username" - ], "$schema": "http://json-schema.org/draft-07/schema#" }, "UserSettingsSchema": { @@ -1775,110 +1927,437 @@ ], "type": "string" }, - "stream_notifications_enabled": { - "type": "boolean" + "stream_notifications_enabled": { + "type": "boolean" + }, + "theme": { + "enum": [ + "dark", + "white" + ], + "type": "string" + }, + "timezone_offset": { + "type": "integer" + }, + "hasId": { + "description": "Checks if entity has an id.\nIf entity composite compose ids, it will check them all.", + "type": "object", + "additionalProperties": false + }, + "save": { + "description": "Saves current entity in the database.\nIf entity does not exist in the database then inserts, otherwise updates.", + "type": "object", + "additionalProperties": false + }, + "remove": { + "description": "Removes current entity from the database.", + "type": "object", + "additionalProperties": false + }, + "softRemove": { + "description": "Records the delete date of current entity.", + "type": "object", + "additionalProperties": false + }, + "recover": { + "description": "Recovers a given entity in the database.", + "type": "object", + "additionalProperties": false + }, + "reload": { + "description": "Reloads entity data from the database.", + "type": "object", + "additionalProperties": false + } + }, + "additionalProperties": false, + "definitions": { + "CustomStatus": { + "type": "object", + "properties": { + "emoji_id": { + "type": "string" + }, + "emoji_name": { + "type": "string" + }, + "expires_at": { + "type": "integer" + }, + "text": { + "type": "string" + } + }, + "additionalProperties": false + }, + "FriendSourceFlags": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "all" + ] + }, + "GuildFolder": { + "type": "object", + "properties": { + "color": { + "type": "integer" + }, + "guild_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "color", + "guild_ids", + "id", + "name" + ] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "VanityUrlSchema": { + "type": "object", + "properties": { + "code": { + "minLength": 1, + "maxLength": 20, + "type": "string" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "VoiceStateUpdateSchema": { + "type": "object", + "properties": { + "channel_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "suppress": { + "type": "boolean" + }, + "request_to_speak_timestamp": { + "type": "string", + "format": "date-time" + }, + "self_mute": { + "type": "boolean" + }, + "self_deaf": { + "type": "boolean" + }, + "self_video": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "channel_id" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "WebhookCreateSchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 80, + "type": "string" + }, + "avatar": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "WidgetModifySchema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "channel_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "channel_id", + "enabled" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RouteResponse": { + "type": "object", + "properties": { + "status": { + "type": "integer" + }, + "body": { + "type": "array", + "items": { + "type": "string" + } }, - "theme": { - "enum": [ - "dark", - "white" - ], + "headers": { + "$ref": "#/definitions/Record" + } + }, + "additionalProperties": false, + "definitions": { + "Record": { + "type": "object", + "additionalProperties": false + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GatewayBotResponse": { + "type": "object", + "properties": { + "url": { "type": "string" }, - "timezone_offset": { + "shards": { "type": "integer" }, - "hasId": { - "description": "Checks if entity has an id.\nIf entity composite compose ids, it will check them all.", + "session_start_limit": { "type": "object", - "additionalProperties": false + "properties": { + "total": { + "type": "integer" + }, + "remaining": { + "type": "integer" + }, + "reset_after": { + "type": "integer" + }, + "max_concurrency": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "max_concurrency", + "remaining", + "reset_after", + "total" + ] + } + }, + "additionalProperties": false, + "required": [ + "session_start_limit", + "shards", + "url" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GatewayResponse": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "url" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ChannelReorderSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "position": { + "type": "integer" + }, + "lock_permissions": { + "type": "boolean" + }, + "parent_id": { + "type": "string" + } }, - "save": { - "description": "Saves current entity in the database.\nIf entity does not exist in the database then inserts, otherwise updates.", - "type": "object", - "additionalProperties": false + "additionalProperties": false, + "required": [ + "id" + ] + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RolePositionUpdateSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "position": { + "type": "integer" + } }, - "remove": { - "description": "Removes current entity from the database.", - "type": "object", - "additionalProperties": false + "additionalProperties": false, + "required": [ + "id", + "position" + ] + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserProfileResponse": { + "type": "object", + "properties": { + "user": { + "$ref": "#/definitions/UserPublic" }, - "softRemove": { - "description": "Records the delete date of current entity.", - "type": "object", - "additionalProperties": false + "connected_accounts": { + "$ref": "#/definitions/PublicConnectedAccount" }, - "recover": { - "description": "Recovers a given entity in the database.", - "type": "object", - "additionalProperties": false + "premium_guild_since": { + "type": "string", + "format": "date-time" }, - "reload": { - "description": "Reloads entity data from the database.", - "type": "object", - "additionalProperties": false + "premium_since": { + "type": "string", + "format": "date-time" } }, "additionalProperties": false, + "required": [ + "connected_accounts", + "user" + ], "definitions": { - "CustomStatus": { + "UserPublic": { "type": "object", "properties": { - "emoji_id": { + "username": { "type": "string" }, - "emoji_name": { + "discriminator": { "type": "string" }, - "expires_at": { + "id": { + "type": "string" + }, + "public_flags": { "type": "integer" }, - "text": { + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { "type": "string" + }, + "bot": { + "type": "boolean" + }, + "premium_since": { + "type": "string", + "format": "date-time" } }, - "additionalProperties": false + "additionalProperties": false, + "required": [ + "bio", + "bot", + "discriminator", + "id", + "premium_since", + "public_flags", + "username" + ] }, - "FriendSourceFlags": { + "PublicConnectedAccount": { "type": "object", "properties": { - "all": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verified": { "type": "boolean" } }, "additionalProperties": false, "required": [ - "all" + "name", + "type", + "verified" ] - }, - "GuildFolder": { + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserRelationsResponse": { + "type": "object", + "properties": { + "object": { "type": "object", "properties": { - "color": { - "type": "integer" + "id": { + "type": "string" }, - "guild_ids": { - "type": "array", - "items": { - "type": "string" - } + "username": { + "type": "string" }, - "id": { - "type": "integer" + "avatar": { + "type": "string" }, - "name": { + "discriminator": { "type": "string" + }, + "public_flags": { + "type": "integer" } }, - "additionalProperties": false, - "required": [ - "color", - "guild_ids", - "id", - "name" - ] + "additionalProperties": false } }, + "additionalProperties": false, + "required": [ + "object" + ], "$schema": "http://json-schema.org/draft-07/schema#" } } \ No newline at end of file diff --git a/api/src/routes/auth/login.ts b/api/src/routes/auth/login.ts index daef6056..9fc5924d 100644 --- a/api/src/routes/auth/login.ts +++ b/api/src/routes/auth/login.ts @@ -1,21 +1,12 @@ import { Request, Response, Router } from "express"; import { route } from "@fosscord/api"; import bcrypt from "bcrypt"; -import { Config, User, generateToken, adjustEmail, FieldErrors } from "@fosscord/util"; +import { Config, User, generateToken, adjustEmail, FieldErrors, LoginSchema } from "@fosscord/util"; import crypto from "crypto"; const router: Router = Router(); export default router; -export interface LoginSchema { - login: string; - password: string; - undelete?: boolean; - captcha_key?: string; - login_source?: string; - gift_code_sku_id?: string; -} - router.post("/", route({ body: "LoginSchema" }), async (req: Request, res: Response) => { const { login, password, captcha_key, undelete } = req.body as LoginSchema; const email = adjustEmail(login); diff --git a/api/src/routes/auth/mfa/totp.ts b/api/src/routes/auth/mfa/totp.ts index 255cf889..421dbafa 100644 --- a/api/src/routes/auth/mfa/totp.ts +++ b/api/src/routes/auth/mfa/totp.ts @@ -1,17 +1,10 @@ import { Router, Request, Response } from "express"; import { route } from "@fosscord/api"; -import { BackupCode, FieldErrors, generateToken, User } from "@fosscord/util"; +import { BackupCode, FieldErrors, generateToken, TotpSchema, User } from "@fosscord/util"; import { verifyToken } from "node-2fa"; import { HTTPError } from "lambert-server"; const router = Router(); -export interface TotpSchema { - code: string, - ticket: string, - gift_code_sku_id?: string | null, - login_source?: string | null, -} - router.post("/", route({ body: "TotpSchema" }), async (req: Request, res: Response) => { const { code, ticket, gift_code_sku_id, login_source } = req.body as TotpSchema; diff --git a/api/src/routes/auth/register.ts b/api/src/routes/auth/register.ts index 5a3d27e9..09366a12 100644 --- a/api/src/routes/auth/register.ts +++ b/api/src/routes/auth/register.ts @@ -1,38 +1,11 @@ import { Request, Response, Router } from "express"; -import { Config, generateToken, Invite, FieldErrors, User, adjustEmail, trimSpecial } from "@fosscord/util"; +import { Config, generateToken, Invite, FieldErrors, User, adjustEmail, trimSpecial, RegisterSchema } from "@fosscord/util"; import { route, getIpAdress, IPAnalysis, isProxy } from "@fosscord/api"; import bcrypt from "bcrypt"; import { HTTPError } from "@fosscord/util"; const router: Router = Router(); -export interface RegisterSchema { - /** - * @minLength 2 - * @maxLength 32 - */ - username: string; - /** - * @minLength 1 - * @maxLength 72 - */ - password?: string; - consent: boolean; - /** - * @TJS-format email - */ - email?: string; - fingerprint?: string; - invite?: string; - /** - * @TJS-type string - */ - date_of_birth?: Date; // "2000-04-03" - gift_code_sku_id?: string; - captcha_key?: string; - promotional_email_opt_in?: boolean; -} - router.post("/", route({ body: "RegisterSchema" }), async (req: Request, res: Response) => { const body = req.body as RegisterSchema; const { register, security } = Config.get(); diff --git a/api/src/routes/channels/#channel_id/index.ts b/api/src/routes/channels/#channel_id/index.ts index 70c34f05..bb8b868b 100644 --- a/api/src/routes/channels/#channel_id/index.ts +++ b/api/src/routes/channels/#channel_id/index.ts @@ -6,7 +6,8 @@ import { ChannelUpdateEvent, emitEvent, Recipient, - handleFile + handleFile, + ChannelModifySchema } from "@fosscord/util"; import { Request, Response, Router } from "express"; import { route } from "@fosscord/api"; @@ -48,33 +49,6 @@ router.delete("/", route({ permission: "MANAGE_CHANNELS" }), async (req: Request res.send(channel); }); -export interface ChannelModifySchema { - /** - * @maxLength 100 - */ - name?: string; - type?: ChannelType; - topic?: string; - icon?: string | null; - bitrate?: number; - user_limit?: number; - rate_limit_per_user?: number; - position?: number; - permission_overwrites?: { - id: string; - type: ChannelPermissionOverwriteType; - allow: string; - deny: string; - }[]; - parent_id?: string; - id?: string; // is not used (only for guild create) - nsfw?: boolean; - rtc_region?: string; - default_auto_archive_duration?: number; - flags?: number; - default_thread_rate_limit_per_user?: number; -} - router.patch("/", route({ body: "ChannelModifySchema", permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { let payload = req.body as ChannelModifySchema; const { channel_id } = req.params; diff --git a/api/src/routes/channels/#channel_id/invites.ts b/api/src/routes/channels/#channel_id/invites.ts index f111cf54..b5c65c0d 100644 --- a/api/src/routes/channels/#channel_id/invites.ts +++ b/api/src/routes/channels/#channel_id/invites.ts @@ -8,18 +8,6 @@ import { OrmUtils } from "@fosscord/util"; const router: Router = Router(); -export interface InviteCreateSchema { - target_user_id?: string; - target_type?: string; - validate?: string; // ? what is this - max_age?: number; - max_uses?: number; - temporary?: boolean; - unique?: boolean; - target_user?: string; - target_user_type?: number; -} - router.post("/", route({ body: "InviteCreateSchema", permission: "CREATE_INSTANT_INVITE", right: "CREATE_INVITES" }), async (req: Request, res: Response) => { const { user_id } = req; diff --git a/api/src/routes/channels/#channel_id/messages/#message_id/ack.ts b/api/src/routes/channels/#channel_id/messages/#message_id/ack.ts index c1b8d20f..041f4d5e 100644 --- a/api/src/routes/channels/#channel_id/messages/#message_id/ack.ts +++ b/api/src/routes/channels/#channel_id/messages/#message_id/ack.ts @@ -5,15 +5,6 @@ import { OrmUtils } from "@fosscord/util"; const router = Router(); -// TODO: public read receipts & privacy scoping -// TODO: send read state event to all channel members -// TODO: advance-only notification cursor - -export interface MessageAcknowledgeSchema { - manual?: boolean; - mention_count?: number; -} - router.post("/", route({ body: "MessageAcknowledgeSchema" }), async (req: Request, res: Response) => { const { channel_id, message_id } = req.params; diff --git a/api/src/routes/channels/#channel_id/messages/#message_id/index.ts b/api/src/routes/channels/#channel_id/messages/#message_id/index.ts index b3b310d3..d7e27062 100644 --- a/api/src/routes/channels/#channel_id/messages/#message_id/index.ts +++ b/api/src/routes/channels/#channel_id/messages/#message_id/index.ts @@ -12,13 +12,13 @@ import { MessageDeleteEvent, MessageUpdateEvent, Snowflake, - uploadFile + uploadFile, + MessageCreateSchema } from "@fosscord/util"; import { Router, Response, Request } from "express"; import multer from "multer"; import { route } from "@fosscord/api"; import { handleMessage, postHandleMessage } from "@fosscord/api"; -import { MessageCreateSchema } from "../index"; import { HTTPError } from "@fosscord/util"; const router = Router(); diff --git a/api/src/routes/channels/#channel_id/messages/bulk-delete.ts b/api/src/routes/channels/#channel_id/messages/bulk-delete.ts index 2e40f110..24a33d2d 100644 --- a/api/src/routes/channels/#channel_id/messages/bulk-delete.ts +++ b/api/src/routes/channels/#channel_id/messages/bulk-delete.ts @@ -8,10 +8,6 @@ const router: Router = Router(); export default router; -export interface BulkDeleteSchema { - messages: string[]; -} - // should users be able to bulk delete messages or only bots? ANSWER: all users // should this request fail, if you provide messages older than 14 days/invalid ids? ANSWER: NO // https://discord.com/developers/docs/resources/channel#bulk-delete-messages diff --git a/api/src/routes/channels/#channel_id/messages/index.ts b/api/src/routes/channels/#channel_id/messages/index.ts index c2057422..9ab0d97d 100644 --- a/api/src/routes/channels/#channel_id/messages/index.ts +++ b/api/src/routes/channels/#channel_id/messages/index.ts @@ -5,7 +5,6 @@ import { ChannelType, Config, DmChannelDTO, - Embed, emitEvent, getPermission, getRights, @@ -13,7 +12,8 @@ import { MessageCreateEvent, Snowflake, uploadFile, - Member + Member, + MessageCreateSchema } from "@fosscord/util"; import { HTTPError } from "@fosscord/util"; import { handleMessage, postHandleMessage, route } from "@fosscord/api"; @@ -49,38 +49,6 @@ export function isTextChannel(type: ChannelType): boolean { } } -export interface MessageCreateSchema { - type?: number; - content?: string; - nonce?: string; - channel_id?: string; - tts?: boolean; - flags?: string; - embeds?: Embed[]; - embed?: Embed; - // TODO: ^ embed is deprecated in favor of embeds (https://discord.com/developers/docs/resources/channel#message-object) - allowed_mentions?: { - parse?: string[]; - roles?: string[]; - users?: string[]; - replied_user?: boolean; - }; - message_reference?: { - message_id: string; - channel_id: string; - guild_id?: string; - fail_if_not_exists?: boolean; - }; - payload_json?: string; - file?: any; - /** - TODO: we should create an interface for attachments - TODO: OpenWAAO<-->attachment-style metadata conversion - **/ - attachments?: any[]; - sticker_ids?: string[]; -} - // https://discord.com/developers/docs/resources/channel#create-message // get messages router.get("/", async (req: Request, res: Response) => { diff --git a/api/src/routes/channels/#channel_id/permissions.ts b/api/src/routes/channels/#channel_id/permissions.ts index 06a124bb..34052fe5 100644 --- a/api/src/routes/channels/#channel_id/permissions.ts +++ b/api/src/routes/channels/#channel_id/permissions.ts @@ -1,6 +1,7 @@ import { Channel, ChannelPermissionOverwrite, + ChannelPermissionOverwriteSchema, ChannelPermissionOverwriteType, ChannelUpdateEvent, emitEvent, @@ -10,13 +11,9 @@ import { } from "@fosscord/util"; import { Router, Response, Request } from "express"; import { HTTPError } from "@fosscord/util"; - import { route } from "@fosscord/api"; -const router: Router = Router(); -// TODO: Only permissions your bot has in the guild or channel can be allowed/denied (unless your bot has a MANAGE_ROLES overwrite in the channel) - -export interface ChannelPermissionOverwriteSchema extends ChannelPermissionOverwrite {} +const router: Router = Router(); router.put( "/:overwrite_id", diff --git a/api/src/routes/channels/#channel_id/purge.ts b/api/src/routes/channels/#channel_id/purge.ts index 7ab4ad9a..1ef6e1d7 100644 --- a/api/src/routes/channels/#channel_id/purge.ts +++ b/api/src/routes/channels/#channel_id/purge.ts @@ -1,4 +1,4 @@ -import { HTTPError } from "@fosscord/util"; +import { HTTPError, PurgeSchema } from "@fosscord/util"; import { route } from "@fosscord/api"; import { isTextChannel } from "./messages"; import { FindManyOptions, Between, Not } from "typeorm"; @@ -10,11 +10,6 @@ const router: Router = Router(); export default router; -export interface PurgeSchema { - before: string; - after: string; -} - /** TODO: apply the delete bit by bit to prevent client and database stress **/ diff --git a/api/src/routes/channels/#channel_id/webhooks.ts b/api/src/routes/channels/#channel_id/webhooks.ts index 00bf4619..b11c8eb9 100644 --- a/api/src/routes/channels/#channel_id/webhooks.ts +++ b/api/src/routes/channels/#channel_id/webhooks.ts @@ -6,14 +6,6 @@ import { isTextChannel } from "./messages/index"; import { DiscordApiErrors } from "@fosscord/util"; const router: Router = Router(); -// TODO: webhooks -export interface WebhookCreateSchema { - /** - * @maxLength 80 - */ - name: string; - avatar?: string; -} //TODO: implement webhooks router.get("/", route({}), async (req: Request, res: Response) => { res.json([]); diff --git a/api/src/routes/guilds/#guild_id/audit-logs.ts b/api/src/routes/guilds/#guild_id/audit-logs.ts index 7b1d0062..b54835fc 100644 --- a/api/src/routes/guilds/#guild_id/audit-logs.ts +++ b/api/src/routes/guilds/#guild_id/audit-logs.ts @@ -1,8 +1,5 @@ import { Router, Response, Request } from "express"; -import { Channel, ChannelUpdateEvent, getPermission, emitEvent } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; import { route } from "@fosscord/api"; -import { ChannelModifySchema } from "../../channels/#channel_id"; const router = Router(); //TODO: implement audit logs diff --git a/api/src/routes/guilds/#guild_id/bans.ts b/api/src/routes/guilds/#guild_id/bans.ts index 0743687d..3d405344 100644 --- a/api/src/routes/guilds/#guild_id/bans.ts +++ b/api/src/routes/guilds/#guild_id/bans.ts @@ -1,31 +1,9 @@ import { Request, Response, Router } from "express"; -import { DiscordApiErrors, emitEvent, getPermission, GuildBanAddEvent, GuildBanRemoveEvent, Guild, Ban, User, Member } from "@fosscord/util"; +import { DiscordApiErrors, emitEvent, getPermission, GuildBanAddEvent, GuildBanRemoveEvent, Guild, Ban, User, Member, BanRegistrySchema, BanModeratorSchema } from "@fosscord/util"; import { HTTPError } from "@fosscord/util"; import { getIpAdress, route } from "@fosscord/api"; import { OrmUtils } from "@fosscord/util"; -export interface BanCreateSchema { - delete_message_days?: string; - reason?: string; -}; - -export interface BanRegistrySchema { - id: string; - user_id: string; - guild_id: string; - executor_id: string; - ip?: string; - reason?: string | undefined; -}; - -export interface BanModeratorSchema { - id: string; - user_id: string; - guild_id: string; - executor_id: string; - reason?: string | undefined; -}; - const router: Router = Router(); /* TODO: Deleting the secrets is just a temporary go-around. Views should be implemented for both safety and better handling. */ diff --git a/api/src/routes/guilds/#guild_id/channels.ts b/api/src/routes/guilds/#guild_id/channels.ts index b952b474..df1b7924 100644 --- a/api/src/routes/guilds/#guild_id/channels.ts +++ b/api/src/routes/guilds/#guild_id/channels.ts @@ -1,8 +1,7 @@ import { Router, Response, Request } from "express"; -import { Channel, ChannelUpdateEvent, getPermission, emitEvent } from "@fosscord/util"; +import { Channel, ChannelUpdateEvent, getPermission, emitEvent, ChannelModifySchema } from "@fosscord/util"; import { HTTPError } from "@fosscord/util"; import { route } from "@fosscord/api"; -import { ChannelModifySchema } from "../../channels/#channel_id"; const router = Router(); router.get("/", route({}), async (req: Request, res: Response) => { diff --git a/api/src/routes/guilds/#guild_id/emojis.ts b/api/src/routes/guilds/#guild_id/emojis.ts index 53a44ec3..4bf4bdcd 100644 --- a/api/src/routes/guilds/#guild_id/emojis.ts +++ b/api/src/routes/guilds/#guild_id/emojis.ts @@ -1,22 +1,10 @@ import { Router, Request, Response } from "express"; -import { Config, DiscordApiErrors, emitEvent, Emoji, GuildEmojisUpdateEvent, handleFile, Member, Snowflake, User } from "@fosscord/util"; +import { Config, DiscordApiErrors, emitEvent, Emoji, EmojiCreateSchema, EmojiModifySchema, GuildEmojisUpdateEvent, handleFile, Member, Snowflake, User } from "@fosscord/util"; import { route } from "@fosscord/api"; import { OrmUtils } from "@fosscord/util"; const router = Router(); -export interface EmojiCreateSchema { - name?: string; - image: string; - require_colons?: boolean | null; - roles?: string[]; -} - -export interface EmojiModifySchema { - name?: string; - roles?: string[]; -} - router.get("/", route({}), async (req: Request, res: Response) => { const { guild_id } = req.params; diff --git a/api/src/routes/guilds/#guild_id/index.ts b/api/src/routes/guilds/#guild_id/index.ts index 8d61f753..a9712c71 100644 --- a/api/src/routes/guilds/#guild_id/index.ts +++ b/api/src/routes/guilds/#guild_id/index.ts @@ -1,29 +1,11 @@ import { Request, Response, Router } from "express"; -import { DiscordApiErrors, emitEvent, getPermission, getRights, Guild, GuildUpdateEvent, handleFile, Member } from "@fosscord/util"; +import { DiscordApiErrors, emitEvent, getPermission, getRights, Guild, GuildUpdateEvent, GuildUpdateSchema, handleFile, Member } from "@fosscord/util"; import { HTTPError } from "@fosscord/util"; import { route } from "@fosscord/api"; -import { GuildCreateSchema } from "../index"; import { OrmUtils } from "@fosscord/util"; const router = Router(); -export interface GuildUpdateSchema extends Omit { - name?: string; - banner?: string | null; - splash?: string | null; - description?: string; - features?: string[]; - verification_level?: number; - default_message_notifications?: number; - system_channel_flags?: number; - explicit_content_filter?: number; - public_updates_channel_id?: string; - afk_timeout?: number; - afk_channel_id?: string; - preferred_locale?: string; - premium_progress_bar_enabled?: boolean; -} - router.get("/", route({}), async (req: Request, res: Response) => { const { guild_id } = req.params; diff --git a/api/src/routes/guilds/#guild_id/integrations.ts b/api/src/routes/guilds/#guild_id/integrations.ts index 19f68563..90650111 100644 --- a/api/src/routes/guilds/#guild_id/integrations.ts +++ b/api/src/routes/guilds/#guild_id/integrations.ts @@ -2,7 +2,6 @@ import { Router, Response, Request } from "express"; import { Channel, ChannelUpdateEvent, getPermission, emitEvent } from "@fosscord/util"; import { HTTPError } from "@fosscord/util"; import { route } from "@fosscord/api"; -import { ChannelModifySchema } from "../../channels/#channel_id"; const router = Router(); //TODO: implement integrations list diff --git a/api/src/routes/guilds/#guild_id/members/#member_id/index.ts b/api/src/routes/guilds/#guild_id/members/#member_id/index.ts index 824e34a4..794369d8 100644 --- a/api/src/routes/guilds/#guild_id/members/#member_id/index.ts +++ b/api/src/routes/guilds/#guild_id/members/#member_id/index.ts @@ -1,15 +1,11 @@ import { Request, Response, Router } from "express"; -import { Member, getPermission, getRights, Role, GuildMemberUpdateEvent, emitEvent, Sticker, Emoji, Rights, Guild } from "@fosscord/util"; +import { Member, getPermission, getRights, Role, GuildMemberUpdateEvent, emitEvent, Sticker, Emoji, Rights, Guild, MemberChangeSchema } from "@fosscord/util"; import { HTTPError } from "@fosscord/util"; import { route } from "@fosscord/api"; import { OrmUtils } from "@fosscord/util"; const router = Router(); -export interface MemberChangeSchema { - roles?: string[]; -} - router.get("/", route({}), async (req: Request, res: Response) => { const { guild_id, member_id } = req.params; await Member.IsInGuildOrFail(req.user_id, guild_id); diff --git a/api/src/routes/guilds/#guild_id/members/#member_id/nick.ts b/api/src/routes/guilds/#guild_id/members/#member_id/nick.ts index 4dfae8da..a6c71333 100644 --- a/api/src/routes/guilds/#guild_id/members/#member_id/nick.ts +++ b/api/src/routes/guilds/#guild_id/members/#member_id/nick.ts @@ -4,10 +4,6 @@ import { Request, Response, Router } from "express"; const router = Router(); -export interface MemberNickChangeSchema { - nick: string; -} - router.patch("/", route({ body: "MemberNickChangeSchema" }), async (req: Request, res: Response) => { let { guild_id, member_id } = req.params; let permissionString: PermissionResolvable = "MANAGE_NICKNAMES"; diff --git a/api/src/routes/guilds/#guild_id/prune.ts b/api/src/routes/guilds/#guild_id/prune.ts index 01f18ce4..673f022f 100644 --- a/api/src/routes/guilds/#guild_id/prune.ts +++ b/api/src/routes/guilds/#guild_id/prune.ts @@ -62,13 +62,6 @@ router.get("/", route({}), async (req: Request, res: Response) => { res.send({ pruned: members.length }); }); -export interface PruneSchema { - /** - * @min 0 - */ - days: number; -} - router.post("/", route({ permission: "KICK_MEMBERS", right: "KICK_BAN_MEMBERS" }), async (req: Request, res: Response) => { const days = parseInt(req.body.days); diff --git a/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts b/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts index 0482b9ca..d4422a9c 100644 --- a/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts +++ b/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts @@ -1,8 +1,7 @@ import { Router, Request, Response } from "express"; -import { Role, Member, GuildRoleUpdateEvent, GuildRoleDeleteEvent, emitEvent, handleFile } from "@fosscord/util"; +import { Role, Member, GuildRoleUpdateEvent, GuildRoleDeleteEvent, emitEvent, handleFile, RoleModifySchema } from "@fosscord/util"; import { route } from "@fosscord/api"; import { HTTPError } from "@fosscord/util"; -import { RoleModifySchema } from "../"; import { OrmUtils } from "@fosscord/util"; const router = Router(); diff --git a/api/src/routes/guilds/#guild_id/roles/index.ts b/api/src/routes/guilds/#guild_id/roles/index.ts index 6fbb8702..effa4fcd 100644 --- a/api/src/routes/guilds/#guild_id/roles/index.ts +++ b/api/src/routes/guilds/#guild_id/roles/index.ts @@ -9,7 +9,8 @@ import { emitEvent, Config, DiscordApiErrors, - handleFile + handleFile, + RoleModifySchema } from "@fosscord/util"; import { HTTPError } from "@fosscord/util"; import { route } from "@fosscord/api"; @@ -17,17 +18,6 @@ import { OrmUtils } from "@fosscord/util"; const router: Router = Router(); -export interface RoleModifySchema { - name?: string; - permissions?: string; - color?: number; - hoist?: boolean; // whether the role should be displayed separately in the sidebar - mentionable?: boolean; // whether the role should be mentionable - position?: number; - icon?: string; - unicode_emoji?: string; -} - export type RolePositionUpdateSchema = { id: string; position: number; diff --git a/api/src/routes/guilds/#guild_id/stickers.ts b/api/src/routes/guilds/#guild_id/stickers.ts index 157ccff4..71c9dfcd 100644 --- a/api/src/routes/guilds/#guild_id/stickers.ts +++ b/api/src/routes/guilds/#guild_id/stickers.ts @@ -3,6 +3,7 @@ import { GuildStickersUpdateEvent, handleFile, Member, + ModifyGuildStickerSchema, Snowflake, Sticker, StickerFormatType, @@ -83,22 +84,6 @@ router.get("/:sticker_id", route({}), async (req: Request, res: Response) => { res.json(await Sticker.findOneOrFail({ where: { guild_id, id: sticker_id } })); }); -export interface ModifyGuildStickerSchema { - /** - * @minLength 2 - * @maxLength 30 - */ - name: string; - /** - * @maxLength 100 - */ - description?: string; - /** - * @maxLength 200 - */ - tags: string; -} - router.patch( "/:sticker_id", route({ body: "ModifyGuildStickerSchema", permission: "MANAGE_EMOJIS_AND_STICKERS" }), diff --git a/api/src/routes/guilds/#guild_id/templates.ts b/api/src/routes/guilds/#guild_id/templates.ts index 3d14de41..9c79692d 100644 --- a/api/src/routes/guilds/#guild_id/templates.ts +++ b/api/src/routes/guilds/#guild_id/templates.ts @@ -24,16 +24,6 @@ const TemplateGuildProjection: (keyof Guild)[] = [ "icon" ]; -export interface TemplateCreateSchema { - name: string; - description?: string; -} - -export interface TemplateModifySchema { - name: string; - description?: string; -} - router.get("/", route({}), async (req: Request, res: Response) => { const { guild_id } = req.params; diff --git a/api/src/routes/guilds/#guild_id/vanity-url.ts b/api/src/routes/guilds/#guild_id/vanity-url.ts index ac46e18a..ff92ce8d 100644 --- a/api/src/routes/guilds/#guild_id/vanity-url.ts +++ b/api/src/routes/guilds/#guild_id/vanity-url.ts @@ -1,4 +1,4 @@ -import { Channel, ChannelType, getPermission, Guild, Invite, trimSpecial } from "@fosscord/util"; +import { Channel, ChannelType, getPermission, Guild, Invite, trimSpecial, VanityUrlSchema } from "@fosscord/util"; import { Router, Request, Response } from "express"; import { route } from "@fosscord/api"; import { HTTPError } from "@fosscord/util"; @@ -25,14 +25,6 @@ router.get("/", route({ permission: "MANAGE_GUILD" }), async (req: Request, res: } }); -export interface VanityUrlSchema { - /** - * @minLength 1 - * @maxLength 20 - */ - code?: string; -} - router.patch("/", route({ body: "VanityUrlSchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { const { guild_id } = req.params; const body = req.body as VanityUrlSchema; diff --git a/api/src/routes/guilds/#guild_id/voice-states/#user_id/index.ts b/api/src/routes/guilds/#guild_id/voice-states/#user_id/index.ts index 32d1aadf..28a9e8c1 100644 --- a/api/src/routes/guilds/#guild_id/voice-states/#user_id/index.ts +++ b/api/src/routes/guilds/#guild_id/voice-states/#user_id/index.ts @@ -1,21 +1,9 @@ -import { Channel, ChannelType, DiscordApiErrors, emitEvent, getPermission, VoiceState, VoiceStateUpdateEvent } from "@fosscord/util"; +import { Channel, ChannelType, DiscordApiErrors, emitEvent, getPermission, VoiceState, VoiceStateUpdateEvent, VoiceStateUpdateSchema } from "@fosscord/util"; import { route } from "@fosscord/api"; import { Request, Response, Router } from "express"; import { OrmUtils } from "@fosscord/util"; const router = Router(); -//TODO need more testing when community guild and voice stage channel are working - -export interface VoiceStateUpdateSchema { - channel_id: string; - guild_id?: string; - suppress?: boolean; - request_to_speak_timestamp?: Date; - self_mute?: boolean; - self_deaf?: boolean; - self_video?: boolean; -} - router.patch("/", route({ body: "VoiceStateUpdateSchema" }), async (req: Request, res: Response) => { const body = req.body as VoiceStateUpdateSchema; let { guild_id, user_id } = req.params; diff --git a/api/src/routes/guilds/#guild_id/webhooks.ts b/api/src/routes/guilds/#guild_id/webhooks.ts index 7f5b9592..c8c1eb5c 100644 --- a/api/src/routes/guilds/#guild_id/webhooks.ts +++ b/api/src/routes/guilds/#guild_id/webhooks.ts @@ -2,7 +2,6 @@ import { Router, Response, Request } from "express"; import { Channel, ChannelUpdateEvent, getPermission, emitEvent } from "@fosscord/util"; import { HTTPError } from "@fosscord/util"; import { route } from "@fosscord/api"; -import { ChannelModifySchema } from "../../channels/#channel_id"; const router = Router(); //TODO: implement webhooks diff --git a/api/src/routes/guilds/#guild_id/welcome_screen.ts b/api/src/routes/guilds/#guild_id/welcome_screen.ts index 4093ec1d..d08300ba 100644 --- a/api/src/routes/guilds/#guild_id/welcome_screen.ts +++ b/api/src/routes/guilds/#guild_id/welcome_screen.ts @@ -1,21 +1,10 @@ import { Request, Response, Router } from "express"; -import { Guild, getPermission, Snowflake, Member } from "@fosscord/util"; +import { Guild, getPermission, Snowflake, Member, GuildUpdateWelcomeScreenSchema } from "@fosscord/util"; import { HTTPError } from "@fosscord/util"; import { route } from "@fosscord/api"; const router: Router = Router(); -export interface GuildUpdateWelcomeScreenSchema { - welcome_channels?: { - channel_id: string; - description: string; - emoji_id?: string; - emoji_name: string; - }[]; - enabled?: boolean; - description?: string; -} - router.get("/", route({}), async (req: Request, res: Response) => { const guild_id = req.params.guild_id; diff --git a/api/src/routes/guilds/#guild_id/widget.ts b/api/src/routes/guilds/#guild_id/widget.ts index 103f84a3..dbb4cc0c 100644 --- a/api/src/routes/guilds/#guild_id/widget.ts +++ b/api/src/routes/guilds/#guild_id/widget.ts @@ -1,12 +1,7 @@ import { Request, Response, Router } from "express"; -import { Guild } from "@fosscord/util"; +import { Guild, WidgetModifySchema } from "@fosscord/util"; import { route } from "@fosscord/api"; -export interface WidgetModifySchema { - enabled: boolean; // whether the widget is enabled - channel_id: string; // the widget channel id -} - const router: Router = Router(); // https://discord.com/developers/docs/resources/guild#get-guild-widget-settings diff --git a/api/src/routes/guilds/index.ts b/api/src/routes/guilds/index.ts index 64b9454b..e4d66192 100644 --- a/api/src/routes/guilds/index.ts +++ b/api/src/routes/guilds/index.ts @@ -1,23 +1,9 @@ import { Router, Request, Response } from "express"; -import { Role, Guild, Snowflake, Config, getRights, Member, Channel, DiscordApiErrors, handleFile } from "@fosscord/util"; +import { Role, Guild, Snowflake, Config, getRights, Member, Channel, DiscordApiErrors, handleFile, GuildCreateSchema } from "@fosscord/util"; import { route } from "@fosscord/api"; -import { ChannelModifySchema } from "../channels/#channel_id"; const router: Router = Router(); -export interface GuildCreateSchema { - /** - * @maxLength 100 - */ - name: string; - region?: string; - icon?: string | null; - channels?: ChannelModifySchema[]; - guild_template_code?: string; - system_channel_id?: string; - rules_channel_id?: string; -} - //TODO: create default channel router.post("/", route({ body: "GuildCreateSchema", right: "CREATE_GUILDS" }), async (req: Request, res: Response) => { diff --git a/api/src/routes/guilds/templates/index.ts b/api/src/routes/guilds/templates/index.ts index bac4eb8a..3a0de9e8 100644 --- a/api/src/routes/guilds/templates/index.ts +++ b/api/src/routes/guilds/templates/index.ts @@ -1,15 +1,8 @@ import { Request, Response, Router } from "express"; -import { Template, Guild, Role, Snowflake, Config, User, Member } from "@fosscord/util"; +import { Template, Guild, Role, Snowflake, Config, User, Member, DiscordApiErrors, OrmUtils, GuildTemplateCreateSchema } from "@fosscord/util"; import { route } from "@fosscord/api"; -import { DiscordApiErrors } from "@fosscord/util"; import fetch from "node-fetch"; const router: Router = Router(); -import { OrmUtils } from "@fosscord/util"; - -export interface GuildTemplateCreateSchema { - name: string; - avatar?: string | null; -} router.get("/:code", route({}), async (req: Request, res: Response) => { const { allowDiscordTemplates, allowRaws, enabled } = Config.get().templates; diff --git a/api/src/routes/users/@me/channels.ts b/api/src/routes/users/@me/channels.ts index 78f531e1..ad483529 100644 --- a/api/src/routes/users/@me/channels.ts +++ b/api/src/routes/users/@me/channels.ts @@ -1,5 +1,5 @@ import { Request, Response, Router } from "express"; -import { Recipient, DmChannelDTO, Channel } from "@fosscord/util"; +import { Recipient, DmChannelDTO, Channel, DmChannelCreateSchema } from "@fosscord/util"; import { route } from "@fosscord/api"; const router: Router = Router(); @@ -12,11 +12,6 @@ router.get("/", route({}), async (req: Request, res: Response) => { res.json(await Promise.all(recipients.map((r) => DmChannelDTO.from(r.channel, [req.user_id])))); }); -export interface DmChannelCreateSchema { - name?: string; - recipients: string[]; -} - router.post("/", route({ body: "DmChannelCreateSchema" }), async (req: Request, res: Response) => { const body = req.body as DmChannelCreateSchema; res.json(await Channel.createDMChannel(body.recipients, req.user_id, body.name)); diff --git a/api/src/routes/users/@me/index.ts b/api/src/routes/users/@me/index.ts index 4cf96a8d..7d095451 100644 --- a/api/src/routes/users/@me/index.ts +++ b/api/src/routes/users/@me/index.ts @@ -1,30 +1,11 @@ import { Router, Request, Response } from "express"; -import { User, PrivateUserProjection, emitEvent, UserUpdateEvent, handleFile, FieldErrors } from "@fosscord/util"; +import { User, PrivateUserProjection, emitEvent, UserUpdateEvent, handleFile, FieldErrors, UserModifySchema } from "@fosscord/util"; import { route } from "@fosscord/api"; import bcrypt from "bcrypt"; import { OrmUtils, generateToken } from "@fosscord/util"; const router: Router = Router(); -export interface UserModifySchema { - /** - * @minLength 1 - * @maxLength 100 - */ - username?: string; - discriminator?: string; - avatar?: string | null; - /** - * @maxLength 1024 - */ - bio?: string; - accent_color?: number; - banner?: string | null; - password?: string; - new_password?: string; - code?: string; -} - router.get("/", route({}), async (req: Request, res: Response) => { res.json(await User.findOne({ select: PrivateUserProjection, where: { id: req.user_id } })); }); diff --git a/api/src/routes/users/@me/mfa/codes.ts b/api/src/routes/users/@me/mfa/codes.ts index 75e3e964..4224a1c0 100644 --- a/api/src/routes/users/@me/mfa/codes.ts +++ b/api/src/routes/users/@me/mfa/codes.ts @@ -1,15 +1,10 @@ import { Router, Request, Response } from "express"; import { route } from "@fosscord/api"; -import { BackupCode, Config, FieldErrors, generateMfaBackupCodes, User } from "@fosscord/util"; +import { BackupCode, Config, FieldErrors, generateMfaBackupCodes, MfaCodesSchema, User } from "@fosscord/util"; import bcrypt from "bcrypt"; const router = Router(); -export interface MfaCodesSchema { - password: string; - regenerate?: boolean; -} - // TODO: This route is replaced with users/@me/mfa/codes-verification in newer clients router.post("/", route({ body: "MfaCodesSchema" }), async (req: Request, res: Response) => { diff --git a/api/src/routes/users/@me/mfa/totp/disable.ts b/api/src/routes/users/@me/mfa/totp/disable.ts index 2d385fda..2fe9355c 100644 --- a/api/src/routes/users/@me/mfa/totp/disable.ts +++ b/api/src/routes/users/@me/mfa/totp/disable.ts @@ -2,14 +2,10 @@ import { Router, Request, Response } from "express"; import { route } from "@fosscord/api"; import { verifyToken } from 'node-2fa'; import { HTTPError } from "lambert-server"; -import { User, generateToken, BackupCode } from "@fosscord/util"; +import { User, generateToken, BackupCode, TotpDisableSchema } from "@fosscord/util"; const router = Router(); -export interface TotpDisableSchema { - code: string; -} - router.post("/", route({ body: "TotpDisableSchema" }), async (req: Request, res: Response) => { const body = req.body as TotpDisableSchema; diff --git a/api/src/routes/users/@me/mfa/totp/enable.ts b/api/src/routes/users/@me/mfa/totp/enable.ts index 87f36d55..ac668d1d 100644 --- a/api/src/routes/users/@me/mfa/totp/enable.ts +++ b/api/src/routes/users/@me/mfa/totp/enable.ts @@ -1,5 +1,5 @@ import { Router, Request, Response } from "express"; -import { User, generateToken, BackupCode, generateMfaBackupCodes, Config } from "@fosscord/util"; +import { User, generateToken, BackupCode, generateMfaBackupCodes, Config, TotpEnableSchema } from "@fosscord/util"; import { route } from "@fosscord/api"; import bcrypt from "bcrypt"; import { HTTPError } from "lambert-server"; @@ -7,12 +7,6 @@ import { verifyToken } from 'node-2fa'; const router = Router(); -export interface TotpEnableSchema { - password: string; - code?: string; - secret?: string; -} - router.post("/", route({ body: "TotpEnableSchema" }), async (req: Request, res: Response) => { const body = req.body as TotpEnableSchema; diff --git a/api/src/routes/users/@me/relationships.ts b/api/src/routes/users/@me/relationships.ts index 6e22f4f3..f7464b99 100644 --- a/api/src/routes/users/@me/relationships.ts +++ b/api/src/routes/users/@me/relationships.ts @@ -38,10 +38,6 @@ router.get("/", route({}), async (req: Request, res: Response) => { return res.json(related_users); }); -export interface RelationshipPutSchema { - type?: RelationshipType; -} - router.put("/:id", route({ body: "RelationshipPutSchema" }), async (req: Request, res: Response) => { return await updateRelationship( req, @@ -51,11 +47,6 @@ router.put("/:id", route({ body: "RelationshipPutSchema" }), async (req: Request ); }); -export interface RelationshipPostSchema { - discriminator: string; - username: string; -} - router.post("/", route({ body: "RelationshipPostSchema" }), async (req: Request, res: Response) => { return await updateRelationship( req, diff --git a/api/src/routes/users/@me/settings.ts b/api/src/routes/users/@me/settings.ts index d832575f..7578d36e 100644 --- a/api/src/routes/users/@me/settings.ts +++ b/api/src/routes/users/@me/settings.ts @@ -4,8 +4,6 @@ import { route } from "@fosscord/api"; const router = Router(); -export interface UserSettingsSchema extends Partial {} - router.patch("/", route({ body: "UserSettingsSchema" }), async (req: Request, res: Response) => { const body = req.body as UserSettings; if (body.locale === "en") body.locale = "en-US"; // fix discord client crash on unkown locale diff --git a/api/src/util/handlers/Message.ts b/api/src/util/handlers/Message.ts index 0f584c56..ff5ece75 100644 --- a/api/src/util/handlers/Message.ts +++ b/api/src/util/handlers/Message.ts @@ -21,12 +21,13 @@ import { Webhook, Attachment, Config, + MessageCreateSchema, } from "@fosscord/util"; import { HTTPError } from "@fosscord/util"; import fetch from "node-fetch"; import cheerio from "cheerio"; -import { MessageCreateSchema } from "../../routes/channels/#channel_id/messages"; import { OrmUtils } from "@fosscord/util"; + const allow_empty = false; // TODO: check webhook, application, system author, stickers // TODO: embed gifs/videos/images diff --git a/gateway/src/opcodes/Identify.ts b/gateway/src/opcodes/Identify.ts index ce4385a3..e62c1570 100644 --- a/gateway/src/opcodes/Identify.ts +++ b/gateway/src/opcodes/Identify.ts @@ -19,12 +19,12 @@ import { MemberPrivateProjection, PresenceUpdateEvent, UserSettings, + IdentifySchema, } from "@fosscord/util"; import { Send } from "../util/Send"; import { CLOSECODES, OPCODES } from "../util/Constants"; import { genSessionId } from "../util/SessionUtils"; import { setupListener } from "../listener/listener"; -import { IdentifySchema } from "../schema/Identify"; // import experiments from "./experiments.json"; const experiments: any = []; import { check } from "./instanceOf"; diff --git a/gateway/src/opcodes/LazyRequest.ts b/gateway/src/opcodes/LazyRequest.ts index 5ba65cdd..cd0586de 100644 --- a/gateway/src/opcodes/LazyRequest.ts +++ b/gateway/src/opcodes/LazyRequest.ts @@ -1,5 +1,4 @@ -import { getPermission, listenEvent, Member, Role, getOrInitialiseDatabase } from "@fosscord/util"; -import { LazyRequest } from "../schema/LazyRequest"; +import { getPermission, listenEvent, Member, Role, getOrInitialiseDatabase, LazyRequest } from "@fosscord/util"; import { Send } from "../util/Send"; import { OPCODES } from "../util/Constants"; import { WebSocket, Payload, handlePresenceUpdate } from "@fosscord/gateway"; diff --git a/gateway/src/opcodes/PresenceUpdate.ts b/gateway/src/opcodes/PresenceUpdate.ts index 415df6ee..f31c9161 100644 --- a/gateway/src/opcodes/PresenceUpdate.ts +++ b/gateway/src/opcodes/PresenceUpdate.ts @@ -1,6 +1,5 @@ import { WebSocket, Payload } from "@fosscord/gateway"; -import { emitEvent, PresenceUpdateEvent, Session, User } from "@fosscord/util"; -import { ActivitySchema } from "../schema/Activity"; +import { ActivitySchema, emitEvent, PresenceUpdateEvent, Session, User } from "@fosscord/util"; import { check } from "./instanceOf"; export async function onPresenceUpdate(this: WebSocket, { d }: Payload) { diff --git a/gateway/src/opcodes/VoiceStateUpdate.ts b/gateway/src/opcodes/VoiceStateUpdate.ts index 845a75c0..73f73565 100644 --- a/gateway/src/opcodes/VoiceStateUpdate.ts +++ b/gateway/src/opcodes/VoiceStateUpdate.ts @@ -1,4 +1,3 @@ -import { VoiceStateUpdateSchema } from "../schema/VoiceStateUpdateSchema"; import { Payload, WebSocket } from "@fosscord/gateway"; import { genVoiceToken } from "../util/SessionUtils"; import { check } from "./instanceOf"; @@ -10,6 +9,7 @@ import { VoiceServerUpdateEvent, VoiceState, VoiceStateUpdateEvent, + VoiceStateUpdateSchema, } from "@fosscord/util"; import { OrmUtils } from "@fosscord/util"; import { Region } from "@fosscord/util/src/config"; diff --git a/gateway/src/schema/Activity.ts b/gateway/src/schema/Activity.ts deleted file mode 100644 index e18f66c8..00000000 --- a/gateway/src/schema/Activity.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Activity, Status } from "@fosscord/util"; - -export const ActivitySchema = { - afk: Boolean, - status: String, - $activities: [ - { - name: String, - type: Number, - $url: String, - $created_at: Date, - $timestamps: { - $start: Number, - $end: Number, - }, - $application_id: String, - $details: String, - $state: String, - $emoji: { - $name: String, - $id: String, - $animated: Boolean, - }, - $party: { - $id: String, - $size: [Number, Number], - }, - $assets: { - $large_image: String, - $large_text: String, - $small_image: String, - $small_text: String, - }, - $secrets: { - $join: String, - $spectate: String, - $match: String, - }, - $instance: Boolean, - $flags: String, - }, - ], - $since: Number, // unix time (in milliseconds) of when the client went idle, or null if the client is not idle -}; - -export interface ActivitySchema { - afk: boolean; - status: Status; - activities?: Activity[]; - since?: number; // unix time (in milliseconds) of when the client went idle, or null if the client is not idle -} diff --git a/gateway/src/schema/Identify.ts b/gateway/src/schema/Identify.ts deleted file mode 100644 index 21141321..00000000 --- a/gateway/src/schema/Identify.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { ActivitySchema } from "./Activity"; - -export const IdentifySchema = { - token: String, - $intents: BigInt, // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt - $properties: Object, - // { - // // discord uses $ in the property key for bots, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key - // $os: String, - // $os_arch: String, - // $browser: String, - // $device: String, - // $$os: String, - // $$browser: String, - // $$device: String, - // $browser_user_agent: String, - // $browser_version: String, - // $os_version: String, - // $referrer: String, - // $$referrer: String, - // $referring_domain: String, - // $$referring_domain: String, - // $referrer_current: String, - // $referring_domain_current: String, - // $release_channel: String, - // $client_build_number: Number, - // $client_event_source: String, - // $client_version: String, - // $system_locale: String, - // $window_manager: String, - // $distro: String, - // }, - $presence: ActivitySchema, - $compress: Boolean, - $large_threshold: Number, - $shard: [BigInt, BigInt], - $guild_subscriptions: Boolean, - $capabilities: Number, - $client_state: { - $guild_hashes: Object, - $highest_last_message_id: String, - $read_state_version: Number, - $user_guild_settings_version: Number, - $user_settings_version: undefined, - }, - $v: Number, - $version: Number, -}; - -export interface IdentifySchema { - token: string; - properties: { - // bruh discord really uses $ in the property key, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key - os?: string; - os_atch?: string; - browser?: string; - device?: string; - $os?: string; - $browser?: string; - $device?: string; - browser_user_agent?: string; - browser_version?: string; - os_version?: string; - referrer?: string; - referring_domain?: string; - referrer_current?: string; - referring_domain_current?: string; - release_channel?: "stable" | "dev" | "ptb" | "canary"; - client_build_number?: number; - client_event_source?: any; - client_version?: string; - system_locale?: string; - }; - intents?: bigint; // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt - presence?: ActivitySchema; - compress?: boolean; - large_threshold?: number; - shard?: [bigint, bigint]; - guild_subscriptions?: boolean; - capabilities?: number; - client_state?: { - guild_hashes?: any; - highest_last_message_id?: string; - read_state_version?: number; - user_guild_settings_version?: number; - user_settings_version?: number; - }; - v?: number; -} diff --git a/gateway/src/schema/LazyRequest.ts b/gateway/src/schema/LazyRequest.ts deleted file mode 100644 index 1fe658bb..00000000 --- a/gateway/src/schema/LazyRequest.ts +++ /dev/null @@ -1,19 +0,0 @@ -export interface LazyRequest { - guild_id: string; - channels?: Record; - activities?: boolean; - threads?: boolean; - typing?: true; - members?: any[]; - thread_member_lists?: any[]; -} - -export const LazyRequest = { - guild_id: String, - $activities: Boolean, - $channels: Object, - $typing: Boolean, - $threads: Boolean, - $members: [] as any[], - $thread_member_lists: [] as any[], -}; diff --git a/gateway/src/schema/VoiceStateUpdateSchema.ts b/gateway/src/schema/VoiceStateUpdateSchema.ts deleted file mode 100644 index 9efa191e..00000000 --- a/gateway/src/schema/VoiceStateUpdateSchema.ts +++ /dev/null @@ -1,15 +0,0 @@ -export const VoiceStateUpdateSchema = { - $guild_id: String, - $channel_id: String, - self_mute: Boolean, - self_deaf: Boolean, - self_video: Boolean, -}; - -export interface VoiceStateUpdateSchema { - guild_id?: string; - channel_id?: string; - self_mute: boolean; - self_deaf: boolean; - self_video: boolean; -} diff --git a/util/src/index.ts b/util/src/index.ts index 259d1c97..daeffd69 100644 --- a/util/src/index.ts +++ b/util/src/index.ts @@ -4,4 +4,5 @@ export * from "./util/index"; export * from "./interfaces/index"; export * from "./entities/index"; export * from "./dtos/index"; -export * from "./util/MFA"; \ No newline at end of file +export * from "./util/MFA"; +export * from "./schemas"; \ No newline at end of file diff --git a/util/src/schemas/ActivitySchema.ts b/util/src/schemas/ActivitySchema.ts new file mode 100644 index 00000000..e18f66c8 --- /dev/null +++ b/util/src/schemas/ActivitySchema.ts @@ -0,0 +1,51 @@ +import { Activity, Status } from "@fosscord/util"; + +export const ActivitySchema = { + afk: Boolean, + status: String, + $activities: [ + { + name: String, + type: Number, + $url: String, + $created_at: Date, + $timestamps: { + $start: Number, + $end: Number, + }, + $application_id: String, + $details: String, + $state: String, + $emoji: { + $name: String, + $id: String, + $animated: Boolean, + }, + $party: { + $id: String, + $size: [Number, Number], + }, + $assets: { + $large_image: String, + $large_text: String, + $small_image: String, + $small_text: String, + }, + $secrets: { + $join: String, + $spectate: String, + $match: String, + }, + $instance: Boolean, + $flags: String, + }, + ], + $since: Number, // unix time (in milliseconds) of when the client went idle, or null if the client is not idle +}; + +export interface ActivitySchema { + afk: boolean; + status: Status; + activities?: Activity[]; + since?: number; // unix time (in milliseconds) of when the client went idle, or null if the client is not idle +} diff --git a/util/src/schemas/BanCreateSchema.ts b/util/src/schemas/BanCreateSchema.ts new file mode 100644 index 00000000..64b02943 --- /dev/null +++ b/util/src/schemas/BanCreateSchema.ts @@ -0,0 +1,5 @@ + +export interface BanCreateSchema { + delete_message_days?: string; + reason?: string; +} diff --git a/util/src/schemas/BanModeratorSchema.ts b/util/src/schemas/BanModeratorSchema.ts new file mode 100644 index 00000000..b497d319 --- /dev/null +++ b/util/src/schemas/BanModeratorSchema.ts @@ -0,0 +1,8 @@ + +export interface BanModeratorSchema { + id: string; + user_id: string; + guild_id: string; + executor_id: string; + reason?: string | undefined; +} diff --git a/util/src/schemas/BanRegistrySchema.ts b/util/src/schemas/BanRegistrySchema.ts new file mode 100644 index 00000000..661f934f --- /dev/null +++ b/util/src/schemas/BanRegistrySchema.ts @@ -0,0 +1,9 @@ + +export interface BanRegistrySchema { + id: string; + user_id: string; + guild_id: string; + executor_id: string; + ip?: string; + reason?: string | undefined; +} diff --git a/util/src/schemas/BulkDeleteSchema.ts b/util/src/schemas/BulkDeleteSchema.ts new file mode 100644 index 00000000..26f88374 --- /dev/null +++ b/util/src/schemas/BulkDeleteSchema.ts @@ -0,0 +1,4 @@ + +export interface BulkDeleteSchema { + messages: string[]; +} diff --git a/util/src/schemas/ChannelModifySchema.ts b/util/src/schemas/ChannelModifySchema.ts new file mode 100644 index 00000000..3cfcf7d2 --- /dev/null +++ b/util/src/schemas/ChannelModifySchema.ts @@ -0,0 +1,29 @@ +import { ChannelPermissionOverwriteType, ChannelType } from ".."; + + +export interface ChannelModifySchema { + /** + * @maxLength 100 + */ + name?: string; + type?: ChannelType; + topic?: string; + icon?: string | null; + bitrate?: number; + user_limit?: number; + rate_limit_per_user?: number; + position?: number; + permission_overwrites?: { + id: string; + type: ChannelPermissionOverwriteType; + allow: string; + deny: string; + }[]; + parent_id?: string; + id?: string; // is not used (only for guild create) + nsfw?: boolean; + rtc_region?: string; + default_auto_archive_duration?: number; + flags?: number; + default_thread_rate_limit_per_user?: number; +} \ No newline at end of file diff --git a/util/src/schemas/ChannelPermissionOverwriteSchema.ts b/util/src/schemas/ChannelPermissionOverwriteSchema.ts new file mode 100644 index 00000000..fe9ba860 --- /dev/null +++ b/util/src/schemas/ChannelPermissionOverwriteSchema.ts @@ -0,0 +1,5 @@ +import { ChannelPermissionOverwrite } from "@fosscord/util"; + +// TODO: Only permissions your bot has in the guild or channel can be allowed/denied (unless your bot has a MANAGE_ROLES overwrite in the channel) + +export interface ChannelPermissionOverwriteSchema extends ChannelPermissionOverwrite { } diff --git a/util/src/schemas/DmChannelCreateSchema.ts b/util/src/schemas/DmChannelCreateSchema.ts new file mode 100644 index 00000000..d5afc6d7 --- /dev/null +++ b/util/src/schemas/DmChannelCreateSchema.ts @@ -0,0 +1,5 @@ + +export interface DmChannelCreateSchema { + name?: string; + recipients: string[]; +} diff --git a/util/src/schemas/EmojiCreateSchema.ts b/util/src/schemas/EmojiCreateSchema.ts new file mode 100644 index 00000000..d50c419c --- /dev/null +++ b/util/src/schemas/EmojiCreateSchema.ts @@ -0,0 +1,7 @@ + +export interface EmojiCreateSchema { + name?: string; + image: string; + require_colons?: boolean | null; + roles?: string[]; +} diff --git a/util/src/schemas/EmojiModifySchema.ts b/util/src/schemas/EmojiModifySchema.ts new file mode 100644 index 00000000..5529dbd5 --- /dev/null +++ b/util/src/schemas/EmojiModifySchema.ts @@ -0,0 +1,5 @@ + +export interface EmojiModifySchema { + name?: string; + roles?: string[]; +} diff --git a/util/src/schemas/GuildCreateSchema.ts b/util/src/schemas/GuildCreateSchema.ts new file mode 100644 index 00000000..e4855119 --- /dev/null +++ b/util/src/schemas/GuildCreateSchema.ts @@ -0,0 +1,14 @@ +import { ChannelModifySchema } from "."; + +export interface GuildCreateSchema { + /** + * @maxLength 100 + */ + name: string; + region?: string; + icon?: string | null; + channels?: ChannelModifySchema[]; + guild_template_code?: string; + system_channel_id?: string; + rules_channel_id?: string; +} diff --git a/util/src/schemas/GuildTemplateCreateSchema.ts b/util/src/schemas/GuildTemplateCreateSchema.ts new file mode 100644 index 00000000..1579001e --- /dev/null +++ b/util/src/schemas/GuildTemplateCreateSchema.ts @@ -0,0 +1,5 @@ + +export interface GuildTemplateCreateSchema { + name: string; + avatar?: string | null; +} diff --git a/util/src/schemas/GuildUpdateSchema.ts b/util/src/schemas/GuildUpdateSchema.ts new file mode 100644 index 00000000..86527cf1 --- /dev/null +++ b/util/src/schemas/GuildUpdateSchema.ts @@ -0,0 +1,18 @@ +import { GuildCreateSchema } from "."; + +export interface GuildUpdateSchema extends Omit { + name?: string; + banner?: string | null; + splash?: string | null; + description?: string; + features?: string[]; + verification_level?: number; + default_message_notifications?: number; + system_channel_flags?: number; + explicit_content_filter?: number; + public_updates_channel_id?: string; + afk_timeout?: number; + afk_channel_id?: string; + preferred_locale?: string; + premium_progress_bar_enabled?: boolean; +} diff --git a/util/src/schemas/GuildUpdateWelcomeScreenSchema.ts b/util/src/schemas/GuildUpdateWelcomeScreenSchema.ts new file mode 100644 index 00000000..b1e36920 --- /dev/null +++ b/util/src/schemas/GuildUpdateWelcomeScreenSchema.ts @@ -0,0 +1,11 @@ + +export interface GuildUpdateWelcomeScreenSchema { + welcome_channels?: { + channel_id: string; + description: string; + emoji_id?: string; + emoji_name: string; + }[]; + enabled?: boolean; + description?: string; +} diff --git a/util/src/schemas/IdentifySchema.ts b/util/src/schemas/IdentifySchema.ts new file mode 100644 index 00000000..8f95c6a0 --- /dev/null +++ b/util/src/schemas/IdentifySchema.ts @@ -0,0 +1,89 @@ +import { ActivitySchema } from "./ActivitySchema"; + +export const IdentifySchema = { + token: String, + $intents: BigInt, // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt + $properties: Object, + // { + // // discord uses $ in the property key for bots, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key + // $os: String, + // $os_arch: String, + // $browser: String, + // $device: String, + // $$os: String, + // $$browser: String, + // $$device: String, + // $browser_user_agent: String, + // $browser_version: String, + // $os_version: String, + // $referrer: String, + // $$referrer: String, + // $referring_domain: String, + // $$referring_domain: String, + // $referrer_current: String, + // $referring_domain_current: String, + // $release_channel: String, + // $client_build_number: Number, + // $client_event_source: String, + // $client_version: String, + // $system_locale: String, + // $window_manager: String, + // $distro: String, + // }, + $presence: ActivitySchema, + $compress: Boolean, + $large_threshold: Number, + $shard: [BigInt, BigInt], + $guild_subscriptions: Boolean, + $capabilities: Number, + $client_state: { + $guild_hashes: Object, + $highest_last_message_id: String, + $read_state_version: Number, + $user_guild_settings_version: Number, + $user_settings_version: undefined, + }, + $v: Number, + $version: Number, +}; + +export interface IdentifySchema { + token: string; + properties: { + // bruh discord really uses $ in the property key, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key + os?: string; + os_atch?: string; + browser?: string; + device?: string; + $os?: string; + $browser?: string; + $device?: string; + browser_user_agent?: string; + browser_version?: string; + os_version?: string; + referrer?: string; + referring_domain?: string; + referrer_current?: string; + referring_domain_current?: string; + release_channel?: "stable" | "dev" | "ptb" | "canary"; + client_build_number?: number; + client_event_source?: any; + client_version?: string; + system_locale?: string; + }; + intents?: bigint; // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt + presence?: ActivitySchema; + compress?: boolean; + large_threshold?: number; + shard?: [bigint, bigint]; + guild_subscriptions?: boolean; + capabilities?: number; + client_state?: { + guild_hashes?: any; + highest_last_message_id?: string; + read_state_version?: number; + user_guild_settings_version?: number; + user_settings_version?: number; + }; + v?: number; +} diff --git a/util/src/schemas/InviteCreateSchema.ts b/util/src/schemas/InviteCreateSchema.ts new file mode 100644 index 00000000..7f6af338 --- /dev/null +++ b/util/src/schemas/InviteCreateSchema.ts @@ -0,0 +1,12 @@ + +export interface InviteCreateSchema { + target_user_id?: string; + target_type?: string; + validate?: string; // ? what is this + max_age?: number; + max_uses?: number; + temporary?: boolean; + unique?: boolean; + target_user?: string; + target_user_type?: number; +} diff --git a/util/src/schemas/LazyRequestSchema.ts b/util/src/schemas/LazyRequestSchema.ts new file mode 100644 index 00000000..1fe658bb --- /dev/null +++ b/util/src/schemas/LazyRequestSchema.ts @@ -0,0 +1,19 @@ +export interface LazyRequest { + guild_id: string; + channels?: Record; + activities?: boolean; + threads?: boolean; + typing?: true; + members?: any[]; + thread_member_lists?: any[]; +} + +export const LazyRequest = { + guild_id: String, + $activities: Boolean, + $channels: Object, + $typing: Boolean, + $threads: Boolean, + $members: [] as any[], + $thread_member_lists: [] as any[], +}; diff --git a/util/src/schemas/LoginSchema.ts b/util/src/schemas/LoginSchema.ts new file mode 100644 index 00000000..358019a8 --- /dev/null +++ b/util/src/schemas/LoginSchema.ts @@ -0,0 +1,9 @@ + +export interface LoginSchema { + login: string; + password: string; + undelete?: boolean; + captcha_key?: string; + login_source?: string; + gift_code_sku_id?: string; +} diff --git a/util/src/schemas/MemberChangeSchema.ts b/util/src/schemas/MemberChangeSchema.ts new file mode 100644 index 00000000..a75c0ea0 --- /dev/null +++ b/util/src/schemas/MemberChangeSchema.ts @@ -0,0 +1,4 @@ + +export interface MemberChangeSchema { + roles?: string[]; +} diff --git a/util/src/schemas/MemberNickChangeSchema.ts b/util/src/schemas/MemberNickChangeSchema.ts new file mode 100644 index 00000000..e6a6a007 --- /dev/null +++ b/util/src/schemas/MemberNickChangeSchema.ts @@ -0,0 +1,4 @@ + +export interface MemberNickChangeSchema { + nick: string; +} diff --git a/util/src/schemas/MessageAcknowledgeSchema.ts b/util/src/schemas/MessageAcknowledgeSchema.ts new file mode 100644 index 00000000..3f4eb2b6 --- /dev/null +++ b/util/src/schemas/MessageAcknowledgeSchema.ts @@ -0,0 +1,8 @@ +// TODO: public read receipts & privacy scoping +// TODO: send read state event to all channel members +// TODO: advance-only notification cursor + +export interface MessageAcknowledgeSchema { + manual?: boolean; + mention_count?: number; +} diff --git a/util/src/schemas/MessageCreateSchema.ts b/util/src/schemas/MessageCreateSchema.ts new file mode 100644 index 00000000..7b1cc7b9 --- /dev/null +++ b/util/src/schemas/MessageCreateSchema.ts @@ -0,0 +1,34 @@ +import { Embed } from "@fosscord/util"; + + +export interface MessageCreateSchema { + type?: number; + content?: string; + nonce?: string; + channel_id?: string; + tts?: boolean; + flags?: string; + embeds?: Embed[]; + embed?: Embed; + // TODO: ^ embed is deprecated in favor of embeds (https://discord.com/developers/docs/resources/channel#message-object) + allowed_mentions?: { + parse?: string[]; + roles?: string[]; + users?: string[]; + replied_user?: boolean; + }; + message_reference?: { + message_id: string; + channel_id: string; + guild_id?: string; + fail_if_not_exists?: boolean; + }; + payload_json?: string; + file?: any; + /** + TODO: we should create an interface for attachments + TODO: OpenWAAO<-->attachment-style metadata conversion + **/ + attachments?: any[]; + sticker_ids?: string[]; +} diff --git a/util/src/schemas/MfaCodesSchema.ts b/util/src/schemas/MfaCodesSchema.ts new file mode 100644 index 00000000..53230841 --- /dev/null +++ b/util/src/schemas/MfaCodesSchema.ts @@ -0,0 +1,5 @@ + +export interface MfaCodesSchema { + password: string; + regenerate?: boolean; +} diff --git a/util/src/schemas/ModifyGuildStickerSchema.ts b/util/src/schemas/ModifyGuildStickerSchema.ts new file mode 100644 index 00000000..6f24e4ce --- /dev/null +++ b/util/src/schemas/ModifyGuildStickerSchema.ts @@ -0,0 +1,16 @@ + +export interface ModifyGuildStickerSchema { + /** + * @minLength 2 + * @maxLength 30 + */ + name: string; + /** + * @maxLength 100 + */ + description?: string; + /** + * @maxLength 200 + */ + tags: string; +} diff --git a/util/src/schemas/PruneSchema.ts b/util/src/schemas/PruneSchema.ts new file mode 100644 index 00000000..eebac763 --- /dev/null +++ b/util/src/schemas/PruneSchema.ts @@ -0,0 +1,7 @@ + +export interface PruneSchema { + /** + * @min 0 + */ + days: number; +} diff --git a/util/src/schemas/PurgeSchema.ts b/util/src/schemas/PurgeSchema.ts new file mode 100644 index 00000000..0eeef6f2 --- /dev/null +++ b/util/src/schemas/PurgeSchema.ts @@ -0,0 +1,5 @@ + +export interface PurgeSchema { + before: string; + after: string; +} diff --git a/util/src/schemas/RegisterSchema.ts b/util/src/schemas/RegisterSchema.ts new file mode 100644 index 00000000..e53330d2 --- /dev/null +++ b/util/src/schemas/RegisterSchema.ts @@ -0,0 +1,27 @@ + +export interface RegisterSchema { + /** + * @minLength 2 + * @maxLength 32 + */ + username: string; + /** + * @minLength 1 + * @maxLength 72 + */ + password?: string; + consent: boolean; + /** + * @TJS-format email + */ + email?: string; + fingerprint?: string; + invite?: string; + /** + * @TJS-type string + */ + date_of_birth?: Date; // "2000-04-03" + gift_code_sku_id?: string; + captcha_key?: string; + promotional_email_opt_in?: boolean; +} diff --git a/util/src/schemas/RelationshipPostSchema.ts b/util/src/schemas/RelationshipPostSchema.ts new file mode 100644 index 00000000..40093700 --- /dev/null +++ b/util/src/schemas/RelationshipPostSchema.ts @@ -0,0 +1,5 @@ + +export interface RelationshipPostSchema { + discriminator: string; + username: string; +} diff --git a/util/src/schemas/RelationshipPutSchema.ts b/util/src/schemas/RelationshipPutSchema.ts new file mode 100644 index 00000000..f46966e0 --- /dev/null +++ b/util/src/schemas/RelationshipPutSchema.ts @@ -0,0 +1,6 @@ +import { RelationshipType } from "@fosscord/util"; + + +export interface RelationshipPutSchema { + type?: RelationshipType; +} diff --git a/util/src/schemas/RoleModifySchema.ts b/util/src/schemas/RoleModifySchema.ts new file mode 100644 index 00000000..d08a5022 --- /dev/null +++ b/util/src/schemas/RoleModifySchema.ts @@ -0,0 +1,11 @@ + +export interface RoleModifySchema { + name?: string; + permissions?: string; + color?: number; + hoist?: boolean; // whether the role should be displayed separately in the sidebar + mentionable?: boolean; // whether the role should be mentionable + position?: number; + icon?: string; + unicode_emoji?: string; +} diff --git a/util/src/schemas/TemplateCreateSchema.ts b/util/src/schemas/TemplateCreateSchema.ts new file mode 100644 index 00000000..72c19f68 --- /dev/null +++ b/util/src/schemas/TemplateCreateSchema.ts @@ -0,0 +1,5 @@ + +export interface TemplateCreateSchema { + name: string; + description?: string; +} diff --git a/util/src/schemas/TemplateModifySchema.ts b/util/src/schemas/TemplateModifySchema.ts new file mode 100644 index 00000000..2231a1d2 --- /dev/null +++ b/util/src/schemas/TemplateModifySchema.ts @@ -0,0 +1,5 @@ + +export interface TemplateModifySchema { + name: string; + description?: string; +} diff --git a/util/src/schemas/TotpDisableSchema.ts b/util/src/schemas/TotpDisableSchema.ts new file mode 100644 index 00000000..b73db64e --- /dev/null +++ b/util/src/schemas/TotpDisableSchema.ts @@ -0,0 +1,4 @@ + +export interface TotpDisableSchema { + code: string; +} diff --git a/util/src/schemas/TotpEnableSchema.ts b/util/src/schemas/TotpEnableSchema.ts new file mode 100644 index 00000000..44d9ebac --- /dev/null +++ b/util/src/schemas/TotpEnableSchema.ts @@ -0,0 +1,6 @@ + +export interface TotpEnableSchema { + password: string; + code?: string; + secret?: string; +} diff --git a/util/src/schemas/TotpSchema.ts b/util/src/schemas/TotpSchema.ts new file mode 100644 index 00000000..fe54735e --- /dev/null +++ b/util/src/schemas/TotpSchema.ts @@ -0,0 +1,7 @@ + +export interface TotpSchema { + code: string; + ticket: string; + gift_code_sku_id?: string | null; + login_source?: string | null; +} diff --git a/util/src/schemas/UserModifySchema.ts b/util/src/schemas/UserModifySchema.ts new file mode 100644 index 00000000..659f5841 --- /dev/null +++ b/util/src/schemas/UserModifySchema.ts @@ -0,0 +1,19 @@ + +export interface UserModifySchema { + /** + * @minLength 1 + * @maxLength 100 + */ + username?: string; + discriminator?: string; + avatar?: string | null; + /** + * @maxLength 1024 + */ + bio?: string; + accent_color?: number; + banner?: string | null; + password?: string; + new_password?: string; + code?: string; +} diff --git a/util/src/schemas/UserSettingsSchema.ts b/util/src/schemas/UserSettingsSchema.ts new file mode 100644 index 00000000..b497dff2 --- /dev/null +++ b/util/src/schemas/UserSettingsSchema.ts @@ -0,0 +1,4 @@ +import { UserSettings } from "@fosscord/util"; + + +export interface UserSettingsSchema extends Partial { } diff --git a/util/src/schemas/VanityUrlSchema.ts b/util/src/schemas/VanityUrlSchema.ts new file mode 100644 index 00000000..de32695a --- /dev/null +++ b/util/src/schemas/VanityUrlSchema.ts @@ -0,0 +1,8 @@ + +export interface VanityUrlSchema { + /** + * @minLength 1 + * @maxLength 20 + */ + code?: string; +} diff --git a/util/src/schemas/VoiceStateUpdateSchema.ts b/util/src/schemas/VoiceStateUpdateSchema.ts new file mode 100644 index 00000000..02bb141b --- /dev/null +++ b/util/src/schemas/VoiceStateUpdateSchema.ts @@ -0,0 +1,18 @@ +export const VoiceStateUpdateSchema = { + $guild_id: String, + $channel_id: String, + self_mute: Boolean, + self_deaf: Boolean, + self_video: Boolean, +}; + +//TODO need more testing when community guild and voice stage channel are working +export interface VoiceStateUpdateSchema { + channel_id: string; + guild_id?: string; + suppress?: boolean; + request_to_speak_timestamp?: Date; + self_mute?: boolean; + self_deaf?: boolean; + self_video?: boolean; +} \ No newline at end of file diff --git a/util/src/schemas/WebhookCreateSchema.ts b/util/src/schemas/WebhookCreateSchema.ts new file mode 100644 index 00000000..12ab1869 --- /dev/null +++ b/util/src/schemas/WebhookCreateSchema.ts @@ -0,0 +1,8 @@ +// TODO: webhooks +export interface WebhookCreateSchema { + /** + * @maxLength 80 + */ + name: string; + avatar?: string; +} diff --git a/util/src/schemas/WidgetModifySchema.ts b/util/src/schemas/WidgetModifySchema.ts new file mode 100644 index 00000000..390efc30 --- /dev/null +++ b/util/src/schemas/WidgetModifySchema.ts @@ -0,0 +1,5 @@ + +export interface WidgetModifySchema { + enabled: boolean; // whether the widget is enabled + channel_id: string; // the widget channel id +} diff --git a/util/src/schemas/index.ts b/util/src/schemas/index.ts new file mode 100644 index 00000000..f54ae840 --- /dev/null +++ b/util/src/schemas/index.ts @@ -0,0 +1,41 @@ +export * from "./ActivitySchema"; +export * from "./BanCreateSchema"; +export * from "./BanModeratorSchema"; +export * from "./BanRegistrySchema"; +export * from "./BulkDeleteSchema"; +export * from "./ChannelModifySchema"; +export * from "./ChannelPermissionOverwriteSchema"; +export * from "./DmChannelCreateSchema"; +export * from "./EmojiCreateSchema"; +export * from "./EmojiModifySchema"; +export * from "./GuildCreateSchema"; +export * from "./GuildTemplateCreateSchema"; +export * from "./GuildUpdateSchema"; +export * from "./GuildUpdateWelcomeScreenSchema"; +export * from "./IdentifySchema"; +export * from "./InviteCreateSchema"; +export * from "./LazyRequestSchema"; +export * from "./LoginSchema"; +export * from "./MemberChangeSchema"; +export * from "./MemberNickChangeSchema"; +export * from "./MessageAcknowledgeSchema"; +export * from "./MessageCreateSchema"; +export * from "./MfaCodesSchema"; +export * from "./ModifyGuildStickerSchema"; +export * from "./PruneSchema"; +export * from "./PurgeSchema"; +export * from "./RegisterSchema"; +export * from "./RelationshipPostSchema"; +export * from "./RelationshipPutSchema"; +export * from "./RoleModifySchema"; +export * from "./TemplateCreateSchema"; +export * from "./TemplateModifySchema"; +export * from "./TotpDisableSchema"; +export * from "./TotpEnableSchema"; +export * from "./TotpSchema"; +export * from "./UserModifySchema"; +export * from "./UserSettingsSchema"; +export * from "./VanityUrlSchema"; +export * from "./VoiceStateUpdateSchema"; +export * from "./WebhookCreateSchema"; +export * from "./WidgetModifySchema"; diff --git a/util/src/util/Config.ts b/util/src/util/Config.ts index 0b55ca4b..e0fb2a81 100644 --- a/util/src/util/Config.ts +++ b/util/src/util/Config.ts @@ -60,8 +60,11 @@ function applyConfig(val: ConfigValue) { pair.value = obj; return pair.save(); } - if(process.env.CONFIG_PATH) + if(process.env.CONFIG_PATH) { + if(/--debug|--inspect/.test(process.execArgv.join(' '))) + console.log(`Writing config: ${process.env.CONFIG_PATH}`) fs.writeFileSync(overridePath, JSON.stringify(val, null, 4)); + } return apply(val); } -- cgit 1.4.1 From 1f4ba6395bf96237fd8b638fd70926b887b9c374 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Fri, 12 Aug 2022 11:42:34 +0200 Subject: Forgot some schemas, removed no longer used paths from generate schema script --- api/assets/schemas.json | 541 +++++++++---------------- api/scripts/generate_schema.js | 5 +- api/src/routes/guilds/#guild_id/channels.ts | 4 +- api/src/routes/guilds/#guild_id/roles/index.ts | 8 +- util/src/schemas/ChannelReorderSchema.ts | 1 + util/src/schemas/RolePositionUpdateSchema.ts | 4 + util/src/schemas/index.ts | 2 + 7 files changed, 193 insertions(+), 372 deletions(-) create mode 100644 util/src/schemas/ChannelReorderSchema.ts create mode 100644 util/src/schemas/RolePositionUpdateSchema.ts diff --git a/api/assets/schemas.json b/api/assets/schemas.json index f102f9d0..9286b804 100644 --- a/api/assets/schemas.json +++ b/api/assets/schemas.json @@ -98,175 +98,27 @@ ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "ActivitySchema": { + "RouteResponse": { "type": "object", "properties": { - "afk": { - "type": "boolean" - }, "status": { - "$ref": "#/definitions/Status" + "type": "integer" }, - "activities": { + "body": { "type": "array", "items": { - "$ref": "#/definitions/Activity" + "type": "string" } }, - "since": { - "type": "integer" + "headers": { + "$ref": "#/definitions/Record" } }, "additionalProperties": false, - "required": [ - "afk", - "status" - ], "definitions": { - "Status": { - "enum": [ - "dnd", - "idle", - "invisible", - "offline", - "online" - ], - "type": "string" - }, - "Activity": { + "Record": { "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ActivityType" - }, - "url": { - "type": "string" - }, - "created_at": { - "type": "integer" - }, - "timestamps": { - "type": "object", - "properties": { - "start": { - "type": "integer" - }, - "end": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "end", - "start" - ] - }, - "application_id": { - "type": "string" - }, - "details": { - "type": "string" - }, - "state": { - "type": "string" - }, - "emoji": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - }, - "animated": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "animated", - "name" - ] - }, - "party": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "size": { - "type": "array", - "items": [ - { - "type": "integer" - } - ], - "minItems": 1, - "maxItems": 1 - } - }, - "additionalProperties": false - }, - "assets": { - "type": "object", - "properties": { - "large_image": { - "type": "string" - }, - "large_text": { - "type": "string" - }, - "small_image": { - "type": "string" - }, - "small_text": { - "type": "string" - } - }, - "additionalProperties": false - }, - "secrets": { - "type": "object", - "properties": { - "join": { - "type": "string" - }, - "spectate": { - "type": "string" - }, - "match": { - "type": "string" - } - }, - "additionalProperties": false - }, - "instance": { - "type": "boolean" - }, - "flags": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "flags", - "name", - "type" - ] - }, - "ActivityType": { - "enum": [ - 0, - 1, - 2, - 4, - 5 - ], - "type": "number" + "additionalProperties": false } }, "$schema": "http://json-schema.org/draft-07/schema#" @@ -510,6 +362,31 @@ }, "$schema": "http://json-schema.org/draft-07/schema#" }, + "ChannelReorderSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "position": { + "type": "integer" + }, + "lock_permissions": { + "type": "boolean" + }, + "parent_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, "DmChannelCreateSchema": { "type": "object", "properties": { @@ -1678,6 +1555,26 @@ "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }, + "RolePositionUpdateSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "position": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "id", + "position" + ] + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, "TemplateCreateSchema": { "type": "object", "properties": { @@ -2111,253 +2008,177 @@ ], "$schema": "http://json-schema.org/draft-07/schema#" }, - "RouteResponse": { + "ActivitySchema": { "type": "object", "properties": { + "afk": { + "type": "boolean" + }, "status": { - "type": "integer" + "$ref": "#/definitions/Status" }, - "body": { + "activities": { "type": "array", "items": { - "type": "string" + "$ref": "#/definitions/Activity" } }, - "headers": { - "$ref": "#/definitions/Record" - } - }, - "additionalProperties": false, - "definitions": { - "Record": { - "type": "object", - "additionalProperties": false - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GatewayBotResponse": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "shards": { + "since": { "type": "integer" - }, - "session_start_limit": { - "type": "object", - "properties": { - "total": { - "type": "integer" - }, - "remaining": { - "type": "integer" - }, - "reset_after": { - "type": "integer" - }, - "max_concurrency": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "max_concurrency", - "remaining", - "reset_after", - "total" - ] } }, "additionalProperties": false, "required": [ - "session_start_limit", - "shards", - "url" + "afk", + "status" ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GatewayResponse": { - "type": "object", - "properties": { - "url": { + "definitions": { + "Status": { + "enum": [ + "dnd", + "idle", + "invisible", + "offline", + "online" + ], "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "url" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ChannelReorderSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - }, - "lock_permissions": { - "type": "boolean" - }, - "parent_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RolePositionUpdateSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - } }, - "additionalProperties": false, - "required": [ - "id", - "position" - ] - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "UserProfileResponse": { - "type": "object", - "properties": { - "user": { - "$ref": "#/definitions/UserPublic" - }, - "connected_accounts": { - "$ref": "#/definitions/PublicConnectedAccount" - }, - "premium_guild_since": { - "type": "string", - "format": "date-time" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "connected_accounts", - "user" - ], - "definitions": { - "UserPublic": { + "Activity": { "type": "object", "properties": { - "username": { + "name": { "type": "string" }, - "discriminator": { - "type": "string" + "type": { + "$ref": "#/definitions/ActivityType" }, - "id": { + "url": { "type": "string" }, - "public_flags": { + "created_at": { "type": "integer" }, - "avatar": { - "type": "string" + "timestamps": { + "type": "object", + "properties": { + "start": { + "type": "integer" + }, + "end": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "end", + "start" + ] }, - "accent_color": { - "type": "integer" + "application_id": { + "type": "string" }, - "banner": { + "details": { "type": "string" }, - "bio": { + "state": { "type": "string" }, - "bot": { - "type": "boolean" + "emoji": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "id": { + "type": "string" + }, + "animated": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "animated", + "name" + ] }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "additionalProperties": false, - "required": [ - "bio", - "bot", - "discriminator", - "id", - "premium_since", - "public_flags", - "username" - ] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" + "party": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "size": { + "type": "array", + "items": [ + { + "type": "integer" + } + ], + "minItems": 1, + "maxItems": 1 + } + }, + "additionalProperties": false }, - "type": { - "type": "string" + "assets": { + "type": "object", + "properties": { + "large_image": { + "type": "string" + }, + "large_text": { + "type": "string" + }, + "small_image": { + "type": "string" + }, + "small_text": { + "type": "string" + } + }, + "additionalProperties": false + }, + "secrets": { + "type": "object", + "properties": { + "join": { + "type": "string" + }, + "spectate": { + "type": "string" + }, + "match": { + "type": "string" + } + }, + "additionalProperties": false }, - "verified": { + "instance": { "type": "boolean" + }, + "flags": { + "type": "string" } }, "additionalProperties": false, "required": [ + "flags", "name", - "type", - "verified" + "type" ] + }, + "ActivityType": { + "enum": [ + 0, + 1, + 2, + 4, + 5 + ], + "type": "number" } }, "$schema": "http://json-schema.org/draft-07/schema#" - }, - "UserRelationsResponse": { - "type": "object", - "properties": { - "object": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "username": { - "type": "string" - }, - "avatar": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "public_flags": { - "type": "integer" - } - }, - "additionalProperties": false - } - }, - "additionalProperties": false, - "required": [ - "object" - ], - "$schema": "http://json-schema.org/draft-07/schema#" } } \ No newline at end of file diff --git a/api/scripts/generate_schema.js b/api/scripts/generate_schema.js index 7a498ad6..1badfd32 100644 --- a/api/scripts/generate_schema.js +++ b/api/scripts/generate_schema.js @@ -48,9 +48,8 @@ function modify(obj) { } function main() { - const files = [ - ...walk(path.join(__dirname, "..", "src", "routes")), - ...walk(path.join(__dirname, "..", "..", "util", "src")), + const files = [ + ...walk(path.join(__dirname, "..", "..", "util", "src", "schemas")), ]; const program = TJS.getProgramFromFiles( files, diff --git a/api/src/routes/guilds/#guild_id/channels.ts b/api/src/routes/guilds/#guild_id/channels.ts index df1b7924..8f2d3643 100644 --- a/api/src/routes/guilds/#guild_id/channels.ts +++ b/api/src/routes/guilds/#guild_id/channels.ts @@ -1,5 +1,5 @@ import { Router, Response, Request } from "express"; -import { Channel, ChannelUpdateEvent, getPermission, emitEvent, ChannelModifySchema } from "@fosscord/util"; +import { Channel, ChannelUpdateEvent, getPermission, emitEvent, ChannelModifySchema, ChannelReorderSchema } from "@fosscord/util"; import { HTTPError } from "@fosscord/util"; import { route } from "@fosscord/api"; const router = Router(); @@ -21,8 +21,6 @@ router.post("/", route({ body: "ChannelModifySchema", permission: "MANAGE_CHANNE res.status(201).json(channel); }); -export type ChannelReorderSchema = { id: string; position?: number; lock_permissions?: boolean; parent_id?: string }[]; - router.patch("/", route({ body: "ChannelReorderSchema", permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { // changes guild channel position const { guild_id } = req.params; diff --git a/api/src/routes/guilds/#guild_id/roles/index.ts b/api/src/routes/guilds/#guild_id/roles/index.ts index effa4fcd..17f0b5e9 100644 --- a/api/src/routes/guilds/#guild_id/roles/index.ts +++ b/api/src/routes/guilds/#guild_id/roles/index.ts @@ -10,7 +10,8 @@ import { Config, DiscordApiErrors, handleFile, - RoleModifySchema + RoleModifySchema, + RolePositionUpdateSchema } from "@fosscord/util"; import { HTTPError } from "@fosscord/util"; import { route } from "@fosscord/api"; @@ -18,11 +19,6 @@ import { OrmUtils } from "@fosscord/util"; const router: Router = Router(); -export type RolePositionUpdateSchema = { - id: string; - position: number; -}[]; - router.get("/", route({}), async (req: Request, res: Response) => { const guild_id = req.params.guild_id; diff --git a/util/src/schemas/ChannelReorderSchema.ts b/util/src/schemas/ChannelReorderSchema.ts new file mode 100644 index 00000000..3715f59e --- /dev/null +++ b/util/src/schemas/ChannelReorderSchema.ts @@ -0,0 +1 @@ +export type ChannelReorderSchema = { id: string; position?: number; lock_permissions?: boolean; parent_id?: string }[]; \ No newline at end of file diff --git a/util/src/schemas/RolePositionUpdateSchema.ts b/util/src/schemas/RolePositionUpdateSchema.ts new file mode 100644 index 00000000..1019d504 --- /dev/null +++ b/util/src/schemas/RolePositionUpdateSchema.ts @@ -0,0 +1,4 @@ +export type RolePositionUpdateSchema = { + id: string; + position: number; +}[]; \ No newline at end of file diff --git a/util/src/schemas/index.ts b/util/src/schemas/index.ts index f54ae840..a15ab4b0 100644 --- a/util/src/schemas/index.ts +++ b/util/src/schemas/index.ts @@ -5,6 +5,7 @@ export * from "./BanRegistrySchema"; export * from "./BulkDeleteSchema"; export * from "./ChannelModifySchema"; export * from "./ChannelPermissionOverwriteSchema"; +export * from "./ChannelReorderSchema"; export * from "./DmChannelCreateSchema"; export * from "./EmojiCreateSchema"; export * from "./EmojiModifySchema"; @@ -28,6 +29,7 @@ export * from "./RegisterSchema"; export * from "./RelationshipPostSchema"; export * from "./RelationshipPutSchema"; export * from "./RoleModifySchema"; +export * from "./RolePositionUpdateSchema"; export * from "./TemplateCreateSchema"; export * from "./TemplateModifySchema"; export * from "./TotpDisableSchema"; -- cgit 1.4.1 From a10891a5a71d24edf86524a2d702251d9f1b69ee Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Fri, 12 Aug 2022 12:46:01 +0200 Subject: Replace deprecated property --- api/src/start.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/start.ts b/api/src/start.ts index 9ba198e7..98beb1fa 100644 --- a/api/src/start.ts +++ b/api/src/start.ts @@ -13,7 +13,7 @@ try { console.log("[API] Failed to get thread count! Using 1...") } -if (cluster.isMaster && process.env.NODE_ENV == "production") { +if (cluster.isPrimary && process.env.NODE_ENV == "production") { console.log(`Primary ${process.pid} is running`); // Fork workers. -- cgit 1.4.1 From 0b401956f528c89ec60166c69b0775845c541178 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Wed, 10 Aug 2022 04:31:11 +0200 Subject: Add template plugin base --- api/src/plugins/example-plugin/index.ts | 0 api/src/plugins/example-plugin/plugin.json | 8 ++++++++ 2 files changed, 8 insertions(+) create mode 100644 api/src/plugins/example-plugin/index.ts create mode 100644 api/src/plugins/example-plugin/plugin.json diff --git a/api/src/plugins/example-plugin/index.ts b/api/src/plugins/example-plugin/index.ts new file mode 100644 index 00000000..e69de29b diff --git a/api/src/plugins/example-plugin/plugin.json b/api/src/plugins/example-plugin/plugin.json new file mode 100644 index 00000000..8d98276c --- /dev/null +++ b/api/src/plugins/example-plugin/plugin.json @@ -0,0 +1,8 @@ +{ + "name": "Fosscord example plugin", + "authors": [ + "The Arcane Brony" + ], + "repository": "https://github.com/fosscord/fosscord-server", + "license": "" +} \ No newline at end of file -- cgit 1.4.1 From b1b9cf7333dca01fd454fedc2b3d6e99066f53b8 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Fri, 12 Aug 2022 23:52:43 +0200 Subject: Add test plugin --- api/src/plugins/example-plugin/index.ts | 0 api/src/plugins/example-plugin/plugin.json | 8 --- bundle/src/Server.ts | 2 + fosscord-server.code-workspace | 35 ++++++++---- plugins/example-plugin/build.sh | 8 +++ plugins/example-plugin/index.ts | 7 +++ plugins/example-plugin/plugin.json | 9 ++++ plugins/example-plugin/tsconfig.json | 85 ++++++++++++++++++++++++++++++ 8 files changed, 136 insertions(+), 18 deletions(-) delete mode 100644 api/src/plugins/example-plugin/index.ts delete mode 100644 api/src/plugins/example-plugin/plugin.json create mode 100755 plugins/example-plugin/build.sh create mode 100644 plugins/example-plugin/index.ts create mode 100644 plugins/example-plugin/plugin.json create mode 100644 plugins/example-plugin/tsconfig.json diff --git a/api/src/plugins/example-plugin/index.ts b/api/src/plugins/example-plugin/index.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/api/src/plugins/example-plugin/plugin.json b/api/src/plugins/example-plugin/plugin.json deleted file mode 100644 index 8d98276c..00000000 --- a/api/src/plugins/example-plugin/plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "Fosscord example plugin", - "authors": [ - "The Arcane Brony" - ], - "repository": "https://github.com/fosscord/fosscord-server", - "license": "" -} \ No newline at end of file diff --git a/bundle/src/Server.ts b/bundle/src/Server.ts index 3ed98b15..165ab121 100644 --- a/bundle/src/Server.ts +++ b/bundle/src/Server.ts @@ -10,6 +10,7 @@ import { green, bold, yellow } from "picocolors"; import { Config, getOrInitialiseDatabase } from "@fosscord/util"; import * as Sentry from "@sentry/node"; import * as Tracing from "@sentry/tracing"; +import { PluginLoader } from "@fosscord/util"; const app = express(); const server = http.createServer(); @@ -94,6 +95,7 @@ async function main() { }); } console.log(`[Server] ${green(`listening on port ${bold(port)}`)}`); + PluginLoader.loadPlugins(); } main().catch(console.error); diff --git a/fosscord-server.code-workspace b/fosscord-server.code-workspace index 7491cb35..4a7440f6 100644 --- a/fosscord-server.code-workspace +++ b/fosscord-server.code-workspace @@ -1,13 +1,10 @@ { "folders": [ { - "path": "api" - }, - { - "path": "dashboard" + "path": "bundle" }, { - "path": "bundle" + "path": "api" }, { "path": "cdn" @@ -15,14 +12,32 @@ { "path": "gateway" }, - { - "path": "rtc" - }, { "path": "util" }, { - "path": "webrtc" + "path": "plugins" + } + ], + "settings": { + "files.exclude": { + ".gitignore": true, + ".npmignore": true, + ".prettierrc": true, + ".vscode": true, + "*.ansi": true, + "benchmarks": true, + "database.db": true, + "files/": true, + "jest": true, + "locales/[!e]*": true, + "locales/e[!n]*": true, + "node_modules": true, + "package-lock.json": true, + "patches": true, + "README.md": true, + "tests/": true, + "tsconfig.tsbuildinfo": true } - ] + } } diff --git a/plugins/example-plugin/build.sh b/plugins/example-plugin/build.sh new file mode 100755 index 00000000..cf8463ed --- /dev/null +++ b/plugins/example-plugin/build.sh @@ -0,0 +1,8 @@ +#rm -rf dist/ +#mkdir dist +rm -rfv *.js *.js.map +ln -s ../../bundle/node_modules node_modules +mkdir -p ../../node_modules/@fosscord +ln -s ../../util ../../node_modules/@fosscord/util +ln -s ../../api ../../node_modules/@fosscord/api +tsc -p . diff --git a/plugins/example-plugin/index.ts b/plugins/example-plugin/index.ts new file mode 100644 index 00000000..ec1ed7b5 --- /dev/null +++ b/plugins/example-plugin/index.ts @@ -0,0 +1,7 @@ +import { Plugin } from "@fosscord/util" + +export default class TestPlugin extends Plugin { + onPluginLoaded(): void { + console.log("Hello from test plugin! IT WORKS!!!!!!!"); + } +} \ No newline at end of file diff --git a/plugins/example-plugin/plugin.json b/plugins/example-plugin/plugin.json new file mode 100644 index 00000000..980edbdf --- /dev/null +++ b/plugins/example-plugin/plugin.json @@ -0,0 +1,9 @@ +{ + "id": "example-plugin", + "name": "Fosscord example plugin", + "authors": [ + "The Arcane Brony" + ], + "repository": "https://github.com/fosscord/fosscord-server", + "license": "" +} diff --git a/plugins/example-plugin/tsconfig.json b/plugins/example-plugin/tsconfig.json new file mode 100644 index 00000000..5ff9e607 --- /dev/null +++ b/plugins/example-plugin/tsconfig.json @@ -0,0 +1,85 @@ +{ + "include": ["./**/*.ts"], + "exclude": [], + "compilerOptions": { + + /* Basic Options */ + "incremental": false /* Enable incremental compilation */, + "target": "ESNext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, + "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, + "lib": [ + "ESNext" + ] /* Specify library files to be included in the compilation. */, + "allowJs": true /* Allow javascript files to be compiled. */, + "checkJs": true /* Report errors in .js files. */, + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + "declaration": false /* Generates corresponding '.d.ts' file. */, + "declarationMap": false /* Generates a sourcemap for each corresponding '.d.ts' file. */, + "sourceMap": true /* Generates corresponding '.map' file. */, + // "outFile": "./", /* Concatenate and emit output to single file. */ + "outDir": "./dist/" /* Redirect output structure to the directory. */, + "rootDir": "./" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true /* Enable all strict type-checking options. */, + "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, + "strictNullChecks": true /* Enable strict null checks. */, + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */, + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + + /* Module Resolution Options */ + "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + "types": [ + "node" + ] /* Type declaration files to be included in compilation. */, + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + + /* Advanced Options */ + "skipLibCheck": true /* Skip type checking of declaration files. */, + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "resolveJsonModule": true, + "baseUrl": "../../", + "paths": { + "@fosscord/api": ["../../api/src/index"], + "@fosscord/gateway": ["../../gateway/src/index"], + "@fosscord/cdn": ["../../cdn/src/index"], + "@fosscord/util": ["../../util/src/index"] + }, + "plugins": [{ "transform": "@ovos-media/ts-transform-paths" }], + "noEmitHelpers": true, + "importHelpers": true + } +} -- cgit 1.4.1 From 5abd6bb7e010f0ed05b086d45b06bbed76bc5f57 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Sat, 13 Aug 2022 00:03:27 +0200 Subject: try to update build script --- plugins/example-plugin/build.sh | 3 --- plugins/example-plugin/tsconfig.json | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/example-plugin/build.sh b/plugins/example-plugin/build.sh index cf8463ed..1b36607b 100755 --- a/plugins/example-plugin/build.sh +++ b/plugins/example-plugin/build.sh @@ -2,7 +2,4 @@ #mkdir dist rm -rfv *.js *.js.map ln -s ../../bundle/node_modules node_modules -mkdir -p ../../node_modules/@fosscord -ln -s ../../util ../../node_modules/@fosscord/util -ln -s ../../api ../../node_modules/@fosscord/api tsc -p . diff --git a/plugins/example-plugin/tsconfig.json b/plugins/example-plugin/tsconfig.json index 5ff9e607..7efe9434 100644 --- a/plugins/example-plugin/tsconfig.json +++ b/plugins/example-plugin/tsconfig.json @@ -71,7 +71,7 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "resolveJsonModule": true, - "baseUrl": "../../", + "baseUrl": "../../bundle/dist/", "paths": { "@fosscord/api": ["../../api/src/index"], "@fosscord/gateway": ["../../gateway/src/index"], -- cgit 1.4.1 From 5e86d7ab9c5200d794c3adb2b422d20a2aefd2ce Mon Sep 17 00:00:00 2001 From: Flam3rboy <34555296+Flam3rboy@users.noreply.github.com> Date: Sat, 13 Aug 2022 02:00:50 +0200 Subject: restructure to single project --- .dockerignore | 2 + .gitignore | 2 + api/.dockerignore | 2 - api/.env.example | 8 - api/.gitignore | 115 - api/.npmignore | 1 - api/.prettierrc | 6 - api/.vscode/api-snippets.code-snippets | 25 - api/.vscode/launch.json | 28 - api/Dockerfile | 12 - api/README.md | 67 - api/assets/checkLocale.js | 47 - api/assets/dff87c953f43b561d71fbcfe8a93a79a.png | 0 api/assets/endpoints.json | 115 - api/assets/features.json | 26 - api/assets/fosscord-login.css | 68 - api/assets/fosscord.css | 46 - api/assets/inline-plugins/autoRegister.js | 62 - api/assets/inline-plugins/fosscord-login.js | 12 - api/assets/openapi.json | 6000 - api/assets/plugins/.gitkeep | 0 api/assets/preload-plugins/.gitkeep | 1 - api/assets/schemas.json | 2184 - api/assets/user.css | 1 - api/assets/widget/banner1.png | Bin 5950 -> 0 bytes api/assets/widget/banner2.png | Bin 3756 -> 0 bytes api/assets/widget/banner3.png | Bin 5342 -> 0 bytes api/assets/widget/banner4.png | Bin 13105 -> 0 bytes api/assets/widget/shield.png | Bin 726 -> 0 bytes api/babel.config.js | 6 - api/client_test/developers.html | 44 - api/client_test/index.html | 84 - api/jest/getRouteDescriptions.js | 66 - api/jest/globalSetup.js | 20 - api/jest/setup.js | 2 - api/locales/af/auth.json | 18 - api/locales/af/common.json | 18 - api/locales/ar/auth.json | 18 - api/locales/ar/common.json | 18 - api/locales/arn/auth.json | 16 - api/locales/arn/common.json | 18 - api/locales/az/auth.json | 18 - api/locales/az/common.json | 18 - api/locales/be/auth.json | 18 - api/locales/be/common.json | 18 - api/locales/ber/auth.json | 18 - api/locales/ber/common.json | 18 - api/locales/bg/auth.json | 18 - api/locales/bg/common.json | 18 - api/locales/bo/auth.json | 18 - api/locales/bo/common.json | 18 - api/locales/ca/auth.json | 18 - api/locales/ca/common.json | 18 - api/locales/cs/auth.json | 18 - api/locales/cs/common.json | 18 - api/locales/da/auth.json | 18 - api/locales/da/common.json | 18 - api/locales/de/auth.json | 18 - api/locales/de/common.json | 18 - api/locales/el/auth.json | 18 - api/locales/el/common.json | 18 - api/locales/en/auth.json | 18 - api/locales/en/common.json | 18 - api/locales/eo/auth.json | 18 - api/locales/eo/common.json | 18 - api/locales/es/auth.json | 18 - api/locales/es/common.json | 18 - api/locales/eu/auth.json | 18 - api/locales/eu/common.json | 18 - api/locales/fa/auth.json | 18 - api/locales/fa/common.json | 18 - api/locales/fi/auth.json | 18 - api/locales/fi/common.json | 18 - api/locales/fr/auth.json | 18 - api/locales/fr/common.json | 18 - api/locales/gn/auth.json | 18 - api/locales/gn/common.json | 18 - api/locales/ha/auth.json | 18 - api/locales/ha/common.json | 18 - api/locales/he/auth.json | 18 - api/locales/he/common.json | 18 - api/locales/hi/auth.json | 18 - api/locales/hi/common.json | 18 - api/locales/hr/auth.json | 18 - api/locales/hr/common.json | 18 - api/locales/hu/auth.json | 18 - api/locales/hu/common.json | 18 - api/locales/id/auth.json | 18 - api/locales/id/common.json | 18 - api/locales/it/auth.json | 18 - api/locales/it/common.json | 18 - api/locales/ja/auth.json | 18 - api/locales/ja/common.json | 18 - api/locales/jv/auth.json | 18 - api/locales/jv/common.json | 18 - api/locales/kk/auth.json | 18 - api/locales/kk/common.json | 18 - api/locales/ko/auth.json | 18 - api/locales/ko/common.json | 18 - api/locales/ku/auth.json | 18 - api/locales/ku/common.json | 18 - api/locales/la/auth.json | 18 - api/locales/la/common.json | 18 - api/locales/lt/auth.json | 18 - api/locales/lt/common.json | 18 - api/locales/mi/auth.json | 18 - api/locales/mi/common.json | 18 - api/locales/mn/auth.json | 18 - api/locales/mn/common.json | 18 - api/locales/mr/auth.json | 18 - api/locales/mr/common.json | 18 - api/locales/nl/auth.json | 18 - api/locales/nl/common.json | 18 - api/locales/nn/auth.json | 18 - api/locales/nn/common.json | 18 - api/locales/no/auth.json | 18 - api/locales/no/common.json | 18 - api/locales/pa/auth.json | 18 - api/locales/pa/common.json | 18 - api/locales/pl/auth.json | 18 - api/locales/pl/common.json | 18 - api/locales/pt/auth.json | 18 - api/locales/pt/common.json | 18 - api/locales/qu/auth.json | 18 - api/locales/qu/common.json | 18 - api/locales/ro/auth.json | 18 - api/locales/ro/common.json | 18 - api/locales/ru/auth.json | 18 - api/locales/ru/common.json | 18 - api/locales/sh/auth.json | 18 - api/locales/sh/common.json | 18 - api/locales/si/auth.json | 18 - api/locales/si/common.json | 18 - api/locales/sk/auth.json | 18 - api/locales/sk/common.json | 18 - api/locales/sr/auth.json | 18 - api/locales/sr/common.json | 18 - api/locales/sv/auth.json | 18 - api/locales/sv/common.json | 18 - api/locales/sw/auth.json | 18 - api/locales/sw/common.json | 18 - api/locales/ta/auth.json | 18 - api/locales/ta/common.json | 18 - api/locales/te/auth.json | 18 - api/locales/te/common.json | 18 - api/locales/tl/auth.json | 18 - api/locales/tl/common.json | 18 - api/locales/tr/auth.json | 18 - api/locales/tr/common.json | 18 - api/locales/ug/auth.json | 18 - api/locales/ug/common.json | 18 - api/locales/uk/auth.json | 18 - api/locales/uk/common.json | 18 - api/locales/ur/auth.json | 18 - api/locales/ur/common.json | 18 - api/locales/vec/auth.json | 18 - api/locales/vec/common.json | 18 - api/locales/vi/auth.json | 18 - api/locales/vi/common.json | 18 - api/locales/zh/auth.json | 18 - api/locales/zh/common.json | 18 - api/package-lock.json | 25919 ---- api/package.json | 91 - api/patches/ajv+8.6.2.patch | 249 - api/patches/typescript-json-schema+0.54.0.patch | 14 - api/scripts/droptables.sql | 31 - api/scripts/generate_openapi.js | 137 - api/scripts/generate_schema.js | 95 - api/scripts/stresstest/.gitignore | 3 - api/scripts/stresstest/accounts.json.example | 1 - api/scripts/stresstest/config.json.example | 5 - api/scripts/stresstest/index.js | 38 - api/scripts/stresstest/package-lock.json | 856 - api/scripts/stresstest/package.json | 17 - api/scripts/stresstest/src/login/index.js | 20 - api/scripts/stresstest/src/message/send.js | 23 - api/scripts/stresstest/src/register/index.js | 34 - api/src/Server.ts | 92 - api/src/global.d.ts | 8 - api/src/index.ts | 3 - api/src/middlewares/Authentication.ts | 72 - api/src/middlewares/BodyParser.ts | 19 - api/src/middlewares/CORS.ts | 16 - api/src/middlewares/ErrorHandler.ts | 44 - api/src/middlewares/RateLimit.ts | 215 - api/src/middlewares/TestClient.ts | 152 - api/src/middlewares/Translation.ts | 28 - api/src/middlewares/index.ts | 5 - api/src/routes/-/healthz.ts | 17 - api/src/routes/-/readyz.ts | 17 - api/src/routes/applications/#id/entitlements.ts | 12 - api/src/routes/applications/detectable.ts | 11 - api/src/routes/applications/index.ts | 34 - api/src/routes/auth/location-metadata.ts | 13 - api/src/routes/auth/login.ts | 87 - api/src/routes/auth/mfa/totp.ts | 42 - api/src/routes/auth/register.ts | 157 - api/src/routes/channels/#channel_id/followers.ts | 14 - api/src/routes/channels/#channel_id/index.ts | 72 - api/src/routes/channels/#channel_id/invites.ts | 58 - .../#channel_id/messages/#message_id/ack.ts | 33 - .../#channel_id/messages/#message_id/crosspost.ts | 28 - .../#channel_id/messages/#message_id/index.ts | 199 - .../#channel_id/messages/#message_id/reactions.ts | 185 - .../channels/#channel_id/messages/bulk-delete.ts | 43 - .../routes/channels/#channel_id/messages/index.ts | 241 - api/src/routes/channels/#channel_id/permissions.ts | 81 - api/src/routes/channels/#channel_id/pins.ts | 90 - api/src/routes/channels/#channel_id/purge.ts | 64 - api/src/routes/channels/#channel_id/recipients.ts | 68 - api/src/routes/channels/#channel_id/typing.ts | 29 - api/src/routes/channels/#channel_id/webhooks.ts | 34 - api/src/routes/discoverable-guilds.ts | 39 - api/src/routes/discovery.ts | 18 - api/src/routes/downloads.ts | 20 - api/src/routes/experiments.ts | 11 - api/src/routes/gateway/bot.ts | 40 - api/src/routes/gateway/index.ts | 24 - api/src/routes/gifs/search.ts | 28 - api/src/routes/gifs/trending-gifs.ts | 28 - api/src/routes/gifs/trending.ts | 62 - api/src/routes/guild-recommendations.ts | 24 - api/src/routes/guilds/#guild_id/audit-logs.ts | 17 - api/src/routes/guilds/#guild_id/bans.ts | 157 - api/src/routes/guilds/#guild_id/channels.ts | 57 - api/src/routes/guilds/#guild_id/delete.ts | 30 - .../guilds/#guild_id/discovery-requirements.ts | 39 - api/src/routes/guilds/#guild_id/emojis.ts | 107 - api/src/routes/guilds/#guild_id/index.ts | 60 - api/src/routes/guilds/#guild_id/integrations.ts | 11 - api/src/routes/guilds/#guild_id/invites.ts | 15 - .../guilds/#guild_id/members/#member_id/index.ts | 98 - .../guilds/#guild_id/members/#member_id/nick.ts | 22 - .../members/#member_id/roles/#role_id/index.ts | 21 - api/src/routes/guilds/#guild_id/members/index.ts | 31 - api/src/routes/guilds/#guild_id/premium.ts | 10 - api/src/routes/guilds/#guild_id/prune.ts | 79 - api/src/routes/guilds/#guild_id/regions.ts | 15 - .../guilds/#guild_id/roles/#role_id/index.ts | 68 - api/src/routes/guilds/#guild_id/roles/index.ts | 98 - api/src/routes/guilds/#guild_id/stickers.ts | 121 - api/src/routes/guilds/#guild_id/templates.ts | 83 - api/src/routes/guilds/#guild_id/vanity-url.ts | 59 - .../#guild_id/voice-states/#user_id/index.ts | 51 - api/src/routes/guilds/#guild_id/webhooks.ts | 11 - api/src/routes/guilds/#guild_id/welcome_screen.ts | 31 - api/src/routes/guilds/#guild_id/widget.json.ts | 83 - api/src/routes/guilds/#guild_id/widget.png.ts | 111 - api/src/routes/guilds/#guild_id/widget.ts | 27 - api/src/routes/guilds/index.ts | 32 - api/src/routes/guilds/templates/index.ts | 79 - api/src/routes/invites/index.ts | 57 - api/src/routes/oauth2/tokens.ts | 10 - api/src/routes/outbound-promotions.ts | 11 - api/src/routes/partners/#guild_id/requirements.ts | 40 - api/src/routes/ping.ts | 26 - api/src/routes/policies/instance/domains.ts | 18 - api/src/routes/policies/instance/index.ts | 12 - api/src/routes/policies/instance/limits.ts | 11 - .../routes/scheduled-maintenances/upcoming_json.ts | 12 - api/src/routes/science.ts | 11 - api/src/routes/stage-instances.ts | 11 - api/src/routes/sticker-packs/index.ts | 13 - api/src/routes/stickers/#sticker_id/index.ts | 12 - api/src/routes/stop.ts | 26 - .../store/published-listings/applications.ts | 79 - .../applications/#id/subscription-plans.ts | 25 - api/src/routes/store/published-listings/skus.ts | 79 - .../skus/#sku_id/subscription-plans.ts | 142 - api/src/routes/teams.ts | 11 - api/src/routes/template.ts.disabled | 11 - api/src/routes/track.ts | 11 - api/src/routes/updates.ts | 20 - api/src/routes/users/#id/index.ts | 13 - api/src/routes/users/#id/profile.ts | 58 - api/src/routes/users/#id/relationships.ts | 41 - .../@me/activities/statistics/applications.ts | 11 - api/src/routes/users/@me/affinities/guilds.ts | 11 - api/src/routes/users/@me/affinities/users.ts | 11 - .../users/@me/applications/#app_id/entitlements.ts | 11 - api/src/routes/users/@me/billing/country-code.ts | 11 - .../routes/users/@me/billing/payment-sources.ts | 11 - api/src/routes/users/@me/billing/subscriptions.ts | 11 - api/src/routes/users/@me/channels.ts | 20 - api/src/routes/users/@me/connections.ts | 11 - api/src/routes/users/@me/delete.ts | 32 - api/src/routes/users/@me/devices.ts | 11 - api/src/routes/users/@me/disable.ts | 26 - api/src/routes/users/@me/email-settings.ts | 20 - api/src/routes/users/@me/entitlements.ts | 11 - api/src/routes/users/@me/guilds.ts | 57 - .../users/@me/guilds/premium/subscription-slots.ts | 11 - api/src/routes/users/@me/index.ts | 72 - api/src/routes/users/@me/library.ts | 11 - api/src/routes/users/@me/mfa/codes.ts | 45 - api/src/routes/users/@me/mfa/totp/disable.ts | 41 - api/src/routes/users/@me/mfa/totp/enable.ts | 48 - api/src/routes/users/@me/notes.ts | 60 - api/src/routes/users/@me/relationships.ts | 204 - api/src/routes/users/@me/settings.ts | 18 - api/src/routes/voice/regions.ts | 11 - api/src/start.ts | 36 - api/src/util/entities/AssetCacheItem.ts | 3 - api/src/util/entities/blockedEmailDomains.txt | 123978 ------------------ api/src/util/entities/trustedEmailDomains.txt | 154 - api/src/util/handlers/Instance.ts | 22 - api/src/util/handlers/Message.ts | 229 - api/src/util/handlers/Voice.ts | 32 - api/src/util/handlers/route.ts | 131 - api/src/util/index.ts | 9 - api/src/util/utility/Base64.ts | 47 - api/src/util/utility/RandomInviteID.ts | 32 - api/src/util/utility/String.ts | 18 - api/src/util/utility/ipAddress.ts | 95 - api/src/util/utility/passwordStrength.ts | 59 - api/tests/routes.test.ts | 155 - api/tests/routes/auth/login.test.js | 33 - api/tests/routes/auth/register.test.js | 27 - api/tests/routes/ping.test.js | 12 - api/tsconfig.json | 75 - assets/checkLocale.js | 47 + assets/developers.html | 44 + assets/dff87c953f43b561d71fbcfe8a93a79a.png | 0 assets/endpoints.json | 115 + assets/features.json | 26 + assets/fosscord-login.css | 68 + assets/fosscord.css | 46 + assets/index.html | 84 + assets/inline-plugins/autoRegister.js | 62 + assets/inline-plugins/fosscord-login.js | 12 + assets/locales/af/auth.json | 18 + assets/locales/af/common.json | 18 + assets/locales/ar/auth.json | 18 + assets/locales/ar/common.json | 18 + assets/locales/arn/auth.json | 16 + assets/locales/arn/common.json | 18 + assets/locales/az/auth.json | 18 + assets/locales/az/common.json | 18 + assets/locales/be/auth.json | 18 + assets/locales/be/common.json | 18 + assets/locales/ber/auth.json | 18 + assets/locales/ber/common.json | 18 + assets/locales/bg/auth.json | 18 + assets/locales/bg/common.json | 18 + assets/locales/bo/auth.json | 18 + assets/locales/bo/common.json | 18 + assets/locales/ca/auth.json | 18 + assets/locales/ca/common.json | 18 + assets/locales/cs/auth.json | 18 + assets/locales/cs/common.json | 18 + assets/locales/da/auth.json | 18 + assets/locales/da/common.json | 18 + assets/locales/de/auth.json | 18 + assets/locales/de/common.json | 18 + assets/locales/el/auth.json | 18 + assets/locales/el/common.json | 18 + assets/locales/en/auth.json | 18 + assets/locales/en/common.json | 18 + assets/locales/eo/auth.json | 18 + assets/locales/eo/common.json | 18 + assets/locales/es/auth.json | 18 + assets/locales/es/common.json | 18 + assets/locales/eu/auth.json | 18 + assets/locales/eu/common.json | 18 + assets/locales/fa/auth.json | 18 + assets/locales/fa/common.json | 18 + assets/locales/fi/auth.json | 18 + assets/locales/fi/common.json | 18 + assets/locales/fr/auth.json | 18 + assets/locales/fr/common.json | 18 + assets/locales/gn/auth.json | 18 + assets/locales/gn/common.json | 18 + assets/locales/ha/auth.json | 18 + assets/locales/ha/common.json | 18 + assets/locales/he/auth.json | 18 + assets/locales/he/common.json | 18 + assets/locales/hi/auth.json | 18 + assets/locales/hi/common.json | 18 + assets/locales/hr/auth.json | 18 + assets/locales/hr/common.json | 18 + assets/locales/hu/auth.json | 18 + assets/locales/hu/common.json | 18 + assets/locales/id/auth.json | 18 + assets/locales/id/common.json | 18 + assets/locales/it/auth.json | 18 + assets/locales/it/common.json | 18 + assets/locales/ja/auth.json | 18 + assets/locales/ja/common.json | 18 + assets/locales/jv/auth.json | 18 + assets/locales/jv/common.json | 18 + assets/locales/kk/auth.json | 18 + assets/locales/kk/common.json | 18 + assets/locales/ko/auth.json | 18 + assets/locales/ko/common.json | 18 + assets/locales/ku/auth.json | 18 + assets/locales/ku/common.json | 18 + assets/locales/la/auth.json | 18 + assets/locales/la/common.json | 18 + assets/locales/lt/auth.json | 18 + assets/locales/lt/common.json | 18 + assets/locales/mi/auth.json | 18 + assets/locales/mi/common.json | 18 + assets/locales/mn/auth.json | 18 + assets/locales/mn/common.json | 18 + assets/locales/mr/auth.json | 18 + assets/locales/mr/common.json | 18 + assets/locales/nl/auth.json | 18 + assets/locales/nl/common.json | 18 + assets/locales/nn/auth.json | 18 + assets/locales/nn/common.json | 18 + assets/locales/no/auth.json | 18 + assets/locales/no/common.json | 18 + assets/locales/pa/auth.json | 18 + assets/locales/pa/common.json | 18 + assets/locales/pl/auth.json | 18 + assets/locales/pl/common.json | 18 + assets/locales/pt/auth.json | 18 + assets/locales/pt/common.json | 18 + assets/locales/qu/auth.json | 18 + assets/locales/qu/common.json | 18 + assets/locales/ro/auth.json | 18 + assets/locales/ro/common.json | 18 + assets/locales/ru/auth.json | 18 + assets/locales/ru/common.json | 18 + assets/locales/sh/auth.json | 18 + assets/locales/sh/common.json | 18 + assets/locales/si/auth.json | 18 + assets/locales/si/common.json | 18 + assets/locales/sk/auth.json | 18 + assets/locales/sk/common.json | 18 + assets/locales/sr/auth.json | 18 + assets/locales/sr/common.json | 18 + assets/locales/sv/auth.json | 18 + assets/locales/sv/common.json | 18 + assets/locales/sw/auth.json | 18 + assets/locales/sw/common.json | 18 + assets/locales/ta/auth.json | 18 + assets/locales/ta/common.json | 18 + assets/locales/te/auth.json | 18 + assets/locales/te/common.json | 18 + assets/locales/tl/auth.json | 18 + assets/locales/tl/common.json | 18 + assets/locales/tr/auth.json | 18 + assets/locales/tr/common.json | 18 + assets/locales/ug/auth.json | 18 + assets/locales/ug/common.json | 18 + assets/locales/uk/auth.json | 18 + assets/locales/uk/common.json | 18 + assets/locales/ur/auth.json | 18 + assets/locales/ur/common.json | 18 + assets/locales/vec/auth.json | 18 + assets/locales/vec/common.json | 18 + assets/locales/vi/auth.json | 18 + assets/locales/vi/common.json | 18 + assets/locales/zh/auth.json | 18 + assets/locales/zh/common.json | 18 + assets/openapi.json | 6000 + assets/plugins/.gitkeep | 0 assets/preload-plugins/.gitkeep | 1 + assets/schemas.json | 1471 + assets/user.css | 1 + assets/widget/banner1.png | Bin 0 -> 5950 bytes assets/widget/banner2.png | Bin 0 -> 3756 bytes assets/widget/banner3.png | Bin 0 -> 5342 bytes assets/widget/banner4.png | Bin 0 -> 13105 bytes assets/widget/shield.png | Bin 0 -> 726 bytes bundle/.prettierrc | 4 - bundle/.vscode/launch.json | 35 - bundle/package-lock.json | 19202 --- bundle/package.json | 103 - bundle/scripts/benchmark/connections.js | 64 - bundle/scripts/benchmark/index.js | 4 - bundle/scripts/benchmark/users.js | 25 - bundle/scripts/build.js | 93 - bundle/scripts/db_migrations.sh | 40 - bundle/scripts/depcheck.js | 56 - bundle/scripts/depclean.js | 65 - bundle/scripts/gen_index.js | 34 - bundle/scripts/install.js | 23 - bundle/scripts/rights.js | 34 - bundle/scripts/update_schemas.js | 9 - bundle/scripts/utils.js | 54 - bundle/src/Server.ts | 101 - bundle/src/start.ts | 97 - bundle/src/stats.ts | 43 - bundle/tsconfig.json | 85 - bundle/tsnode.tsconfig.json | 15 - cdn/.env.example | 3 - cdn/.gitignore | 7 - cdn/.swcrc | 17 - cdn/Dockerfile | 7 - cdn/README.md | 112 - cdn/jest/setup.js | 2 - cdn/package-lock.json | 13871 -- cdn/package.json | 54 - cdn/src/Server.ts | 80 - cdn/src/index.ts | 4 - cdn/src/routes/attachments.ts | 100 - cdn/src/routes/avatars.ts | 102 - cdn/src/routes/external.ts | 58 - cdn/src/routes/ping.ts | 9 - cdn/src/routes/role-icons.ts | 101 - cdn/src/start.ts | 13 - cdn/src/util/FileStorage.ts | 51 - cdn/src/util/S3Storage.ts | 60 - cdn/src/util/Storage.ts | 64 - cdn/src/util/index.ts | 3 - cdn/src/util/multer.ts | 10 - cdn/tests/antman.jpg | Bin 259112 -> 0 bytes cdn/tests/cdn_endpoints.test.js | 238 - cdn/tests/filestorage.test.js | 27 - cdn/tsconfig.json | 81 - dashboard/README.md | 12 - dashboard/package-lock.json | 6 - dashboard/package.json | 23 - dashboard/src/index.ts | 0 gateway/.env.example | 4 - gateway/.gitignore | 107 - gateway/.swcrc | 16 - gateway/.vscode/launch.json | 17 - gateway/Dockerfile | 14 - gateway/README.md | 42 - gateway/package-lock.json | 17853 --- gateway/package.json | 35 - gateway/src/Server.ts | 62 - gateway/src/events/Close.ts | 46 - gateway/src/events/Connection.ts | 94 - gateway/src/events/Message.ts | 62 - gateway/src/index.ts | 4 - gateway/src/listener/listener.ts | 249 - gateway/src/opcodes/Heartbeat.ts | 11 - gateway/src/opcodes/LazyRequest.ts | 173 - gateway/src/opcodes/PresenceUpdate.ts | 24 - gateway/src/opcodes/RequestGuildMembers.ts | 5 - gateway/src/opcodes/Resume.ts | 12 - gateway/src/opcodes/VoiceStateUpdate.ts | 116 - gateway/src/opcodes/experiments.json | 76 - gateway/src/opcodes/index.ts | 25 - gateway/src/opcodes/instanceOf.ts | 18 - gateway/src/start.ts | 14 - gateway/src/util/Constants.ts | 50 - gateway/src/util/Heartbeat.ts | 11 - gateway/src/util/Send.ts | 33 - gateway/src/util/SessionUtils.ts | 13 - gateway/src/util/WebSocket.ts | 22 - gateway/src/util/index.ts | 5 - gateway/tsconfig.json | 84 - package-lock.json | 4593 +- package.json | 94 +- patches/ajv+8.6.2.patch | 249 + patches/typescript-json-schema+0.54.0.patch | 14 + rtc/.gitignore | 145 - rtc/.npmignore | 1 - rtc/.prettierrc | 5 - rtc/CMakeLists.txt | 16 - rtc/README.md | 18 - rtc/config.json | 1 - rtc/src/main.cpp | 47 - rtc/src/mongoStub.cpp | 84 - rtc/src/mongoStub.hpp | 41 - rtc/src/rtcPeerHandler.cpp | 83 - rtc/src/rtcPeerHandler.hpp | 32 - rtc/src/rtcServer.hpp | 0 scripts/benchmark.js | 28 + scripts/benchmark/connections.js | 64 + scripts/benchmark/index.js | 4 + scripts/benchmark/users.js | 25 + scripts/build.js | 84 + scripts/db_migrations.sh | 40 + scripts/depcheck.js | 56 + scripts/depclean.js | 65 + scripts/droptables.sql | 31 + scripts/gen_index.js | 34 + scripts/generate_openapi.js | 137 + scripts/generate_schema.js | 95 + scripts/install.js | 23 + scripts/migrate_db_engine.js | 109 + scripts/rights.js | 34 + scripts/stresstest/.gitignore | 3 + scripts/stresstest/accounts.json.example | 1 + scripts/stresstest/config.json.example | 5 + scripts/stresstest/index.js | 38 + scripts/stresstest/package-lock.json | 856 + scripts/stresstest/package.json | 17 + scripts/stresstest/src/login/index.js | 20 + scripts/stresstest/src/message/send.js | 23 + scripts/stresstest/src/register/index.js | 34 + scripts/update_schemas.js | 9 + scripts/utils.js | 54 + src/Server.ts | 101 + src/api/Server.ts | 92 + src/api/global.d.ts | 8 + src/api/index.ts | 3 + src/api/middlewares/Authentication.ts | 72 + src/api/middlewares/BodyParser.ts | 19 + src/api/middlewares/CORS.ts | 16 + src/api/middlewares/ErrorHandler.ts | 44 + src/api/middlewares/RateLimit.ts | 215 + src/api/middlewares/TestClient.ts | 154 + src/api/middlewares/Translation.ts | 28 + src/api/middlewares/index.ts | 5 + src/api/routes/-/healthz.ts | 17 + src/api/routes/-/readyz.ts | 17 + src/api/routes/applications/#id/entitlements.ts | 12 + src/api/routes/applications/detectable.ts | 11 + src/api/routes/applications/index.ts | 34 + src/api/routes/auth/location-metadata.ts | 13 + src/api/routes/auth/login.ts | 87 + src/api/routes/auth/mfa/totp.ts | 42 + src/api/routes/auth/register.ts | 157 + src/api/routes/channels/#channel_id/followers.ts | 14 + src/api/routes/channels/#channel_id/index.ts | 72 + src/api/routes/channels/#channel_id/invites.ts | 58 + .../#channel_id/messages/#message_id/ack.ts | 33 + .../#channel_id/messages/#message_id/crosspost.ts | 28 + .../#channel_id/messages/#message_id/index.ts | 199 + .../#channel_id/messages/#message_id/reactions.ts | 185 + .../channels/#channel_id/messages/bulk-delete.ts | 43 + .../routes/channels/#channel_id/messages/index.ts | 241 + src/api/routes/channels/#channel_id/permissions.ts | 81 + src/api/routes/channels/#channel_id/pins.ts | 90 + src/api/routes/channels/#channel_id/purge.ts | 64 + src/api/routes/channels/#channel_id/recipients.ts | 68 + src/api/routes/channels/#channel_id/typing.ts | 29 + src/api/routes/channels/#channel_id/webhooks.ts | 34 + src/api/routes/discoverable-guilds.ts | 39 + src/api/routes/discovery.ts | 18 + src/api/routes/downloads.ts | 20 + src/api/routes/experiments.ts | 11 + src/api/routes/gateway/bot.ts | 40 + src/api/routes/gateway/index.ts | 24 + src/api/routes/gifs/search.ts | 28 + src/api/routes/gifs/trending-gifs.ts | 28 + src/api/routes/gifs/trending.ts | 62 + src/api/routes/guild-recommendations.ts | 24 + src/api/routes/guilds/#guild_id/audit-logs.ts | 17 + src/api/routes/guilds/#guild_id/bans.ts | 157 + src/api/routes/guilds/#guild_id/channels.ts | 57 + src/api/routes/guilds/#guild_id/delete.ts | 30 + .../guilds/#guild_id/discovery-requirements.ts | 39 + src/api/routes/guilds/#guild_id/emojis.ts | 107 + src/api/routes/guilds/#guild_id/index.ts | 60 + src/api/routes/guilds/#guild_id/integrations.ts | 11 + src/api/routes/guilds/#guild_id/invites.ts | 15 + .../guilds/#guild_id/members/#member_id/index.ts | 98 + .../guilds/#guild_id/members/#member_id/nick.ts | 22 + .../members/#member_id/roles/#role_id/index.ts | 21 + src/api/routes/guilds/#guild_id/members/index.ts | 31 + src/api/routes/guilds/#guild_id/premium.ts | 10 + src/api/routes/guilds/#guild_id/prune.ts | 79 + src/api/routes/guilds/#guild_id/regions.ts | 15 + .../guilds/#guild_id/roles/#role_id/index.ts | 68 + src/api/routes/guilds/#guild_id/roles/index.ts | 98 + src/api/routes/guilds/#guild_id/stickers.ts | 121 + src/api/routes/guilds/#guild_id/templates.ts | 83 + src/api/routes/guilds/#guild_id/vanity-url.ts | 59 + .../#guild_id/voice-states/#user_id/index.ts | 51 + src/api/routes/guilds/#guild_id/webhooks.ts | 11 + src/api/routes/guilds/#guild_id/welcome_screen.ts | 31 + src/api/routes/guilds/#guild_id/widget.json.ts | 83 + src/api/routes/guilds/#guild_id/widget.png.ts | 111 + src/api/routes/guilds/#guild_id/widget.ts | 27 + src/api/routes/guilds/index.ts | 32 + src/api/routes/guilds/templates/index.ts | 79 + src/api/routes/invites/index.ts | 57 + src/api/routes/oauth2/tokens.ts | 10 + src/api/routes/outbound-promotions.ts | 11 + src/api/routes/partners/#guild_id/requirements.ts | 40 + src/api/routes/ping.ts | 26 + src/api/routes/policies/instance/domains.ts | 18 + src/api/routes/policies/instance/index.ts | 12 + src/api/routes/policies/instance/limits.ts | 11 + .../routes/scheduled-maintenances/upcoming_json.ts | 12 + src/api/routes/science.ts | 11 + src/api/routes/stage-instances.ts | 11 + src/api/routes/sticker-packs/index.ts | 13 + src/api/routes/stickers/#sticker_id/index.ts | 12 + src/api/routes/stop.ts | 26 + .../store/published-listings/applications.ts | 79 + .../applications/#id/subscription-plans.ts | 25 + src/api/routes/store/published-listings/skus.ts | 79 + .../skus/#sku_id/subscription-plans.ts | 142 + src/api/routes/teams.ts | 11 + src/api/routes/template.ts.disabled | 11 + src/api/routes/track.ts | 11 + src/api/routes/updates.ts | 20 + src/api/routes/users/#id/index.ts | 13 + src/api/routes/users/#id/profile.ts | 58 + src/api/routes/users/#id/relationships.ts | 41 + .../@me/activities/statistics/applications.ts | 11 + src/api/routes/users/@me/affinities/guilds.ts | 11 + src/api/routes/users/@me/affinities/users.ts | 11 + .../users/@me/applications/#app_id/entitlements.ts | 11 + src/api/routes/users/@me/billing/country-code.ts | 11 + .../routes/users/@me/billing/payment-sources.ts | 11 + src/api/routes/users/@me/billing/subscriptions.ts | 11 + src/api/routes/users/@me/channels.ts | 20 + src/api/routes/users/@me/connections.ts | 11 + src/api/routes/users/@me/delete.ts | 32 + src/api/routes/users/@me/devices.ts | 11 + src/api/routes/users/@me/disable.ts | 26 + src/api/routes/users/@me/email-settings.ts | 20 + src/api/routes/users/@me/entitlements.ts | 11 + src/api/routes/users/@me/guilds.ts | 57 + .../users/@me/guilds/premium/subscription-slots.ts | 11 + src/api/routes/users/@me/index.ts | 72 + src/api/routes/users/@me/library.ts | 11 + src/api/routes/users/@me/mfa/codes.ts | 45 + src/api/routes/users/@me/mfa/totp/disable.ts | 41 + src/api/routes/users/@me/mfa/totp/enable.ts | 48 + src/api/routes/users/@me/notes.ts | 60 + src/api/routes/users/@me/relationships.ts | 204 + src/api/routes/users/@me/settings.ts | 18 + src/api/routes/voice/regions.ts | 11 + src/api/start.ts | 36 + src/api/util/entities/AssetCacheItem.ts | 3 + src/api/util/entities/blockedEmailDomains.txt | 123978 ++++++++++++++++++ src/api/util/entities/trustedEmailDomains.txt | 154 + src/api/util/handlers/Instance.ts | 22 + src/api/util/handlers/Message.ts | 229 + src/api/util/handlers/Voice.ts | 32 + src/api/util/handlers/route.ts | 131 + src/api/util/index.ts | 9 + src/api/util/utility/Base64.ts | 47 + src/api/util/utility/RandomInviteID.ts | 32 + src/api/util/utility/String.ts | 18 + src/api/util/utility/ipAddress.ts | 95 + src/api/util/utility/passwordStrength.ts | 59 + src/cdn/Server.ts | 80 + src/cdn/index.ts | 4 + src/cdn/routes/attachments.ts | 100 + src/cdn/routes/avatars.ts | 102 + src/cdn/routes/external.ts | 58 + src/cdn/routes/ping.ts | 9 + src/cdn/routes/role-icons.ts | 101 + src/cdn/start.ts | 13 + src/cdn/util/FileStorage.ts | 51 + src/cdn/util/S3Storage.ts | 60 + src/cdn/util/Storage.ts | 64 + src/cdn/util/index.ts | 3 + src/cdn/util/multer.ts | 10 + src/gateway/Server.ts | 62 + src/gateway/events/Close.ts | 46 + src/gateway/events/Connection.ts | 94 + src/gateway/events/Message.ts | 61 + src/gateway/index.ts | 4 + src/gateway/listener/listener.ts | 249 + src/gateway/opcodes/Heartbeat.ts | 11 + src/gateway/opcodes/Identify.ts | 298 + src/gateway/opcodes/LazyRequest.ts | 173 + src/gateway/opcodes/PresenceUpdate.ts | 24 + src/gateway/opcodes/RequestGuildMembers.ts | 5 + src/gateway/opcodes/Resume.ts | 12 + src/gateway/opcodes/VoiceStateUpdate.ts | 116 + src/gateway/opcodes/experiments.json | 76 + src/gateway/opcodes/index.ts | 25 + src/gateway/opcodes/instanceOf.ts | 18 + src/gateway/start.ts | 14 + src/gateway/util/Constants.ts | 50 + src/gateway/util/Heartbeat.ts | 11 + src/gateway/util/Send.ts | 33 + src/gateway/util/SessionUtils.ts | 13 + src/gateway/util/WebSocket.ts | 22 + src/gateway/util/index.ts | 5 + src/start.ts | 97 + src/stats.ts | 24 + src/util/config/Config.ts | 22 + src/util/config/index.ts | 2 + src/util/config/types/ApiConfiguration.ts | 5 + src/util/config/types/ClientConfiguration.ts | 8 + src/util/config/types/DefaultsConfiguration.ts | 6 + src/util/config/types/EndpointConfiguration.ts | 5 + src/util/config/types/GeneralConfiguration.ts | 12 + src/util/config/types/GifConfiguration.ts | 5 + src/util/config/types/GuildConfiguration.ts | 6 + src/util/config/types/KafkaConfiguration.ts | 5 + src/util/config/types/LimitConfigurations.ts | 9 + src/util/config/types/LoginConfiguration.ts | 3 + src/util/config/types/MetricsConfiguration.ts | 3 + src/util/config/types/RabbitMQConfiguration.ts | 3 + src/util/config/types/RegionConfiguration.ts | 16 + src/util/config/types/RegisterConfiguration.ts | 18 + src/util/config/types/SecurityConfiguration.ts | 17 + src/util/config/types/SentryConfiguration.ts | 8 + src/util/config/types/TemplateConfiguration.ts | 6 + src/util/config/types/index.ts | 18 + .../client/ClientReleaseConfiguration.ts | 4 + .../config/types/subconfigurations/client/index.ts | 1 + .../subconfigurations/defaults/GuildDefaults.ts | 8 + .../subconfigurations/defaults/UserDefaults.ts | 5 + .../types/subconfigurations/defaults/index.ts | 2 + .../types/subconfigurations/guild/AutoJoin.ts | 5 + .../types/subconfigurations/guild/Discovery.ts | 6 + .../config/types/subconfigurations/guild/index.ts | 2 + src/util/config/types/subconfigurations/index.ts | 8 + .../types/subconfigurations/kafka/KafkaBroker.ts | 4 + .../config/types/subconfigurations/kafka/index.ts | 1 + .../subconfigurations/limits/ChannelLimits.ts | 5 + .../types/subconfigurations/limits/GuildLimits.ts | 8 + .../subconfigurations/limits/MessageLimits.ts | 8 + .../types/subconfigurations/limits/RateLimits.ts | 18 + .../types/subconfigurations/limits/UserLimits.ts | 5 + .../config/types/subconfigurations/limits/index.ts | 6 + .../subconfigurations/limits/ratelimits/Auth.ts | 12 + .../limits/ratelimits/RateLimitOptions.ts | 6 + .../subconfigurations/limits/ratelimits/Route.ts | 19 + .../subconfigurations/limits/ratelimits/index.ts | 3 + .../types/subconfigurations/region/Region.ts | 12 + .../config/types/subconfigurations/region/index.ts | 1 + .../subconfigurations/register/DateOfBirth.ts | 4 + .../types/subconfigurations/register/Email.ts | 7 + .../types/subconfigurations/register/Password.ts | 7 + .../types/subconfigurations/register/index.ts | 3 + .../types/subconfigurations/security/Captcha.ts | 6 + .../types/subconfigurations/security/TwoFactor.ts | 3 + .../types/subconfigurations/security/index.ts | 2 + src/util/dtos/DmChannelDTO.ts | 41 + src/util/dtos/UserDTO.ts | 17 + src/util/dtos/index.ts | 2 + src/util/entities/Application.ts | 156 + src/util/entities/Attachment.ts | 43 + src/util/entities/AuditLog.ts | 194 + src/util/entities/BackupCodes.ts | 19 + src/util/entities/Ban.ts | 41 + src/util/entities/BaseClass.ts | 26 + src/util/entities/Categories.ts | 33 + src/util/entities/Channel.ts | 391 + src/util/entities/ClientRelease.ts | 26 + src/util/entities/Config.ts | 11 + src/util/entities/ConnectedAccount.ts | 42 + src/util/entities/Emoji.ts | 46 + src/util/entities/Encryption.ts | 35 + src/util/entities/Group.ts | 33 + src/util/entities/Guild.ts | 370 + src/util/entities/Invite.ts | 88 + src/util/entities/Member.ts | 360 + src/util/entities/Message.ts | 284 + src/util/entities/Migration.ts | 18 + src/util/entities/Note.ts | 18 + src/util/entities/RateLimit.ts | 17 + src/util/entities/ReadState.ts | 55 + src/util/entities/Recipient.ts | 30 + src/util/entities/Relationship.ts | 49 + src/util/entities/Role.ts | 51 + src/util/entities/Session.ts | 46 + src/util/entities/Sticker.ts | 66 + src/util/entities/StickerPack.ts | 31 + src/util/entities/Team.ts | 27 + src/util/entities/TeamMember.ts | 37 + src/util/entities/Template.ts | 44 + src/util/entities/User.ts | 324 + src/util/entities/UserGroup.ts | 37 + src/util/entities/UserSettings.ts | 119 + src/util/entities/VoiceState.ts | 77 + src/util/entities/Webhook.ts | 76 + src/util/entities/index.ts | 33 + src/util/index.ts | 9 + src/util/interfaces/Activity.ts | 44 + src/util/interfaces/Event.ts | 640 + src/util/interfaces/Interaction.ts | 34 + src/util/interfaces/Presence.ts | 12 + src/util/interfaces/Status.ts | 7 + src/util/interfaces/index.ts | 5 + .../migrations/mariadb/1659901151025-initial.ts | 1219 + .../mariadb/1659921859145-premium_since_as_date.ts | 26 + .../mariadb/1660258393551-CodeCleanup3.ts | 232 + .../mariadb/1660260587556-CodeCleanup4.ts | 39 + .../mariadb/1660265930624-CodeCleanup5.ts | 53 + .../migrations/postgres/1659899687168-initial.ts | 1245 + .../1659921826567-premium_since_as_date.ts | 26 + .../postgres/1660257815436-CodeCleanup2.ts | 59 + .../postgres/1660258372154-CodeCleanup3.ts | 19 + .../postgres/1660260565996-CodeCleanup4.ts | 33 + .../postgres/1660265907544-CodeCleanup5.ts | 26 + .../migrations/sqlite/1659899662635-initial.ts | 3529 + .../sqlite/1659921722863-premium_since_as_date.ts | 252 + .../sqlite/1660257576211-CodeCleanup1.ts | 326 + .../sqlite/1660257795259-CodeCleanup2.ts | 572 + .../sqlite/1660258351379-CodeCleanup3.ts | 231 + .../sqlite/1660260672914-CodeCleanup4.ts | 459 + src/util/schemas/ActivitySchema.ts | 51 + src/util/schemas/BanCreateSchema.ts | 5 + src/util/schemas/BanModeratorSchema.ts | 8 + src/util/schemas/BanRegistrySchema.ts | 9 + src/util/schemas/BulkDeleteSchema.ts | 4 + src/util/schemas/ChannelModifySchema.ts | 29 + .../schemas/ChannelPermissionOverwriteSchema.ts | 5 + src/util/schemas/ChannelReorderSchema.ts | 1 + src/util/schemas/DmChannelCreateSchema.ts | 5 + src/util/schemas/EmojiCreateSchema.ts | 7 + src/util/schemas/EmojiModifySchema.ts | 5 + src/util/schemas/GuildCreateSchema.ts | 14 + src/util/schemas/GuildTemplateCreateSchema.ts | 5 + src/util/schemas/GuildUpdateSchema.ts | 18 + src/util/schemas/GuildUpdateWelcomeScreenSchema.ts | 11 + src/util/schemas/IdentifySchema.ts | 89 + src/util/schemas/InviteCreateSchema.ts | 12 + src/util/schemas/LazyRequestSchema.ts | 19 + src/util/schemas/LoginSchema.ts | 9 + src/util/schemas/MemberChangeSchema.ts | 4 + src/util/schemas/MemberNickChangeSchema.ts | 4 + src/util/schemas/MessageAcknowledgeSchema.ts | 8 + src/util/schemas/MessageCreateSchema.ts | 34 + src/util/schemas/MfaCodesSchema.ts | 5 + src/util/schemas/ModifyGuildStickerSchema.ts | 16 + src/util/schemas/PruneSchema.ts | 7 + src/util/schemas/PurgeSchema.ts | 5 + src/util/schemas/RegisterSchema.ts | 27 + src/util/schemas/RelationshipPostSchema.ts | 5 + src/util/schemas/RelationshipPutSchema.ts | 6 + src/util/schemas/RoleModifySchema.ts | 11 + src/util/schemas/RolePositionUpdateSchema.ts | 4 + src/util/schemas/TemplateCreateSchema.ts | 5 + src/util/schemas/TemplateModifySchema.ts | 5 + src/util/schemas/TotpDisableSchema.ts | 4 + src/util/schemas/TotpEnableSchema.ts | 6 + src/util/schemas/TotpSchema.ts | 7 + src/util/schemas/UserModifySchema.ts | 19 + src/util/schemas/UserSettingsSchema.ts | 4 + src/util/schemas/VanityUrlSchema.ts | 8 + src/util/schemas/VoiceStateUpdateSchema.ts | 18 + src/util/schemas/WebhookCreateSchema.ts | 8 + src/util/schemas/WidgetModifySchema.ts | 5 + src/util/schemas/index.ts | 43 + src/util/util/ApiError.ts | 28 + src/util/util/Array.ts | 3 + src/util/util/AutoUpdate.ts | 83 + src/util/util/BitField.ts | 150 + src/util/util/Categories.ts | 1 + src/util/util/Config.ts | 94 + src/util/util/Constants.ts | 792 + src/util/util/Database.ts | 103 + src/util/util/Email.ts | 25 + src/util/util/Event.ts | 122 + src/util/util/FieldError.ts | 23 + src/util/util/Intents.ts | 34 + src/util/util/InvisibleCharacters.ts | 56 + src/util/util/MFA.ts | 17 + src/util/util/MessageFlags.ts | 20 + src/util/util/Permissions.ts | 273 + src/util/util/RabbitMQ.ts | 19 + src/util/util/Regex.ts | 7 + src/util/util/Rights.ts | 93 + src/util/util/Snowflake.ts | 130 + src/util/util/String.ts | 7 + src/util/util/Token.ts | 51 + src/util/util/TraverseDirectory.ts | 13 + src/util/util/cdn.ts | 57 + src/util/util/imports/Checks.ts | 125 + src/util/util/imports/HTTPError.ts | 5 + src/util/util/imports/OrmUtils.ts | 113 + src/util/util/imports/index.ts | 3 + src/util/util/index.ts | 26 + tests/User.test.js | 43 + tests/antman.jpg | Bin 0 -> 259112 bytes tests/cdn_endpoints.test.js | 238 + tests/filestorage.test.js | 27 + tests/routes.test.ts | 155 + tests/routes/auth/login.test.js | 33 + tests/routes/auth/register.test.js | 27 + tests/routes/ping.test.js | 12 + tests/setupJest.js | 23 + tsconfig.json | 85 + util/.gitignore | 110 - util/.npmignore | 1 - util/.prettierrc | 5 - util/.vscode/launch.json | 27 - util/README.md | 29 - util/package-lock.json | 13189 -- util/package.json | 59 - util/scripts/benchmark.js | 28 - util/scripts/migrate_db_engine.js | 109 - util/src/config/Config.ts | 22 - util/src/config/index.ts | 2 - util/src/config/types/ApiConfiguration.ts | 5 - util/src/config/types/ClientConfiguration.ts | 8 - util/src/config/types/DefaultsConfiguration.ts | 6 - util/src/config/types/EndpointConfiguration.ts | 5 - util/src/config/types/GeneralConfiguration.ts | 12 - util/src/config/types/GifConfiguration.ts | 5 - util/src/config/types/GuildConfiguration.ts | 6 - util/src/config/types/KafkaConfiguration.ts | 5 - util/src/config/types/LimitConfigurations.ts | 9 - util/src/config/types/LoginConfiguration.ts | 3 - util/src/config/types/MetricsConfiguration.ts | 3 - util/src/config/types/RabbitMQConfiguration.ts | 3 - util/src/config/types/RegionConfiguration.ts | 16 - util/src/config/types/RegisterConfiguration.ts | 18 - util/src/config/types/SecurityConfiguration.ts | 17 - util/src/config/types/SentryConfiguration.ts | 8 - util/src/config/types/TemplateConfiguration.ts | 6 - util/src/config/types/index.ts | 18 - .../client/ClientReleaseConfiguration.ts | 4 - .../config/types/subconfigurations/client/index.ts | 1 - .../subconfigurations/defaults/GuildDefaults.ts | 8 - .../subconfigurations/defaults/UserDefaults.ts | 5 - .../types/subconfigurations/defaults/index.ts | 2 - .../types/subconfigurations/guild/AutoJoin.ts | 5 - .../types/subconfigurations/guild/Discovery.ts | 6 - .../config/types/subconfigurations/guild/index.ts | 2 - util/src/config/types/subconfigurations/index.ts | 8 - .../types/subconfigurations/kafka/KafkaBroker.ts | 4 - .../config/types/subconfigurations/kafka/index.ts | 1 - .../subconfigurations/limits/ChannelLimits.ts | 5 - .../types/subconfigurations/limits/GuildLimits.ts | 8 - .../subconfigurations/limits/MessageLimits.ts | 8 - .../types/subconfigurations/limits/RateLimits.ts | 18 - .../types/subconfigurations/limits/UserLimits.ts | 5 - .../config/types/subconfigurations/limits/index.ts | 6 - .../subconfigurations/limits/ratelimits/Auth.ts | 12 - .../limits/ratelimits/RateLimitOptions.ts | 6 - .../subconfigurations/limits/ratelimits/Route.ts | 19 - .../subconfigurations/limits/ratelimits/index.ts | 3 - .../types/subconfigurations/region/Region.ts | 12 - .../config/types/subconfigurations/region/index.ts | 1 - .../subconfigurations/register/DateOfBirth.ts | 4 - .../types/subconfigurations/register/Email.ts | 7 - .../types/subconfigurations/register/Password.ts | 7 - .../types/subconfigurations/register/index.ts | 3 - .../types/subconfigurations/security/Captcha.ts | 6 - .../types/subconfigurations/security/TwoFactor.ts | 3 - .../types/subconfigurations/security/index.ts | 2 - util/src/dtos/DmChannelDTO.ts | 41 - util/src/dtos/UserDTO.ts | 17 - util/src/dtos/index.ts | 2 - util/src/entities/Application.ts | 156 - util/src/entities/Attachment.ts | 43 - util/src/entities/AuditLog.ts | 194 - util/src/entities/BackupCodes.ts | 19 - util/src/entities/Ban.ts | 41 - util/src/entities/BaseClass.ts | 26 - util/src/entities/Categories.ts | 33 - util/src/entities/Channel.ts | 391 - util/src/entities/ClientRelease.ts | 26 - util/src/entities/Config.ts | 11 - util/src/entities/ConnectedAccount.ts | 42 - util/src/entities/Emoji.ts | 46 - util/src/entities/Encryption.ts | 35 - util/src/entities/Group.ts | 33 - util/src/entities/Guild.ts | 370 - util/src/entities/Invite.ts | 88 - util/src/entities/Member.ts | 360 - util/src/entities/Message.ts | 284 - util/src/entities/Migration.ts | 18 - util/src/entities/Note.ts | 18 - util/src/entities/RateLimit.ts | 17 - util/src/entities/ReadState.ts | 55 - util/src/entities/Recipient.ts | 30 - util/src/entities/Relationship.ts | 49 - util/src/entities/Role.ts | 51 - util/src/entities/Session.ts | 46 - util/src/entities/Sticker.ts | 66 - util/src/entities/StickerPack.ts | 31 - util/src/entities/Team.ts | 27 - util/src/entities/TeamMember.ts | 37 - util/src/entities/Template.ts | 44 - util/src/entities/User.ts | 324 - util/src/entities/UserGroup.ts | 37 - util/src/entities/UserSettings.ts | 119 - util/src/entities/VoiceState.ts | 77 - util/src/entities/Webhook.ts | 76 - util/src/entities/index.ts | 33 - util/src/index.ts | 8 - util/src/interfaces/Activity.ts | 44 - util/src/interfaces/Event.ts | 640 - util/src/interfaces/Interaction.ts | 34 - util/src/interfaces/Presence.ts | 12 - util/src/interfaces/Status.ts | 7 - util/src/interfaces/index.ts | 5 - .../migrations/mariadb/1659901151025-initial.ts | 1219 - .../mariadb/1659921859145-premium_since_as_date.ts | 26 - .../mariadb/1660258393551-CodeCleanup3.ts | 232 - .../mariadb/1660260587556-CodeCleanup4.ts | 39 - .../mariadb/1660265930624-CodeCleanup5.ts | 53 - .../migrations/postgres/1659899687168-initial.ts | 1245 - .../1659921826567-premium_since_as_date.ts | 26 - .../postgres/1660257815436-CodeCleanup2.ts | 59 - .../postgres/1660258372154-CodeCleanup3.ts | 19 - .../postgres/1660260565996-CodeCleanup4.ts | 33 - .../postgres/1660265907544-CodeCleanup5.ts | 26 - .../src/migrations/sqlite/1659899662635-initial.ts | 3529 - .../sqlite/1659921722863-premium_since_as_date.ts | 252 - .../sqlite/1660257576211-CodeCleanup1.ts | 326 - .../sqlite/1660257795259-CodeCleanup2.ts | 572 - .../sqlite/1660258351379-CodeCleanup3.ts | 231 - .../sqlite/1660260672914-CodeCleanup4.ts | 459 - util/src/schemas/ActivitySchema.ts | 51 - util/src/schemas/BanCreateSchema.ts | 5 - util/src/schemas/BanModeratorSchema.ts | 8 - util/src/schemas/BanRegistrySchema.ts | 9 - util/src/schemas/BulkDeleteSchema.ts | 4 - util/src/schemas/ChannelModifySchema.ts | 29 - .../schemas/ChannelPermissionOverwriteSchema.ts | 5 - util/src/schemas/ChannelReorderSchema.ts | 1 - util/src/schemas/DmChannelCreateSchema.ts | 5 - util/src/schemas/EmojiCreateSchema.ts | 7 - util/src/schemas/EmojiModifySchema.ts | 5 - util/src/schemas/GuildCreateSchema.ts | 14 - util/src/schemas/GuildTemplateCreateSchema.ts | 5 - util/src/schemas/GuildUpdateSchema.ts | 18 - util/src/schemas/GuildUpdateWelcomeScreenSchema.ts | 11 - util/src/schemas/IdentifySchema.ts | 89 - util/src/schemas/InviteCreateSchema.ts | 12 - util/src/schemas/LazyRequestSchema.ts | 19 - util/src/schemas/LoginSchema.ts | 9 - util/src/schemas/MemberChangeSchema.ts | 4 - util/src/schemas/MemberNickChangeSchema.ts | 4 - util/src/schemas/MessageAcknowledgeSchema.ts | 8 - util/src/schemas/MessageCreateSchema.ts | 34 - util/src/schemas/MfaCodesSchema.ts | 5 - util/src/schemas/ModifyGuildStickerSchema.ts | 16 - util/src/schemas/PruneSchema.ts | 7 - util/src/schemas/PurgeSchema.ts | 5 - util/src/schemas/RegisterSchema.ts | 27 - util/src/schemas/RelationshipPostSchema.ts | 5 - util/src/schemas/RelationshipPutSchema.ts | 6 - util/src/schemas/RoleModifySchema.ts | 11 - util/src/schemas/RolePositionUpdateSchema.ts | 4 - util/src/schemas/TemplateCreateSchema.ts | 5 - util/src/schemas/TemplateModifySchema.ts | 5 - util/src/schemas/TotpDisableSchema.ts | 4 - util/src/schemas/TotpEnableSchema.ts | 6 - util/src/schemas/TotpSchema.ts | 7 - util/src/schemas/UserModifySchema.ts | 19 - util/src/schemas/UserSettingsSchema.ts | 4 - util/src/schemas/VanityUrlSchema.ts | 8 - util/src/schemas/VoiceStateUpdateSchema.ts | 18 - util/src/schemas/WebhookCreateSchema.ts | 8 - util/src/schemas/WidgetModifySchema.ts | 5 - util/src/schemas/index.ts | 43 - util/src/util/ApiError.ts | 28 - util/src/util/Array.ts | 3 - util/src/util/AutoUpdate.ts | 83 - util/src/util/BitField.ts | 150 - util/src/util/Categories.ts | 1 - util/src/util/Config.ts | 94 - util/src/util/Constants.ts | 792 - util/src/util/Database.ts | 103 - util/src/util/Email.ts | 25 - util/src/util/Event.ts | 122 - util/src/util/FieldError.ts | 23 - util/src/util/Intents.ts | 34 - util/src/util/InvisibleCharacters.ts | 56 - util/src/util/MFA.ts | 17 - util/src/util/MessageFlags.ts | 20 - util/src/util/Permissions.ts | 273 - util/src/util/RabbitMQ.ts | 19 - util/src/util/Regex.ts | 7 - util/src/util/Rights.ts | 93 - util/src/util/Snowflake.ts | 130 - util/src/util/String.ts | 7 - util/src/util/Token.ts | 51 - util/src/util/TraverseDirectory.ts | 13 - util/src/util/cdn.ts | 57 - util/src/util/imports/Checks.ts | 125 - util/src/util/imports/HTTPError.ts | 5 - util/src/util/imports/OrmUtils.ts | 113 - util/src/util/imports/index.ts | 3 - util/src/util/index.ts | 26 - util/tests/User.test.js | 43 - util/tests/setupJest.js | 23 - util/tsconfig.json | 73 - webrtc/.DS_Store | Bin 6148 -> 0 bytes webrtc/.gitignore | 104 - webrtc/README.md | 3 - webrtc/package-lock.json | 733 - webrtc/package.json | 24 - webrtc/src/Server.ts | 46 - webrtc/src/index.ts | 0 webrtc/src/start.ts | 3 - webrtc/src/test.ts | 8 - webrtc/tsconfig.json | 72 - yarn.lock | 6802 + 1173 files changed, 171796 insertions(+), 256956 deletions(-) create mode 100644 .dockerignore delete mode 100644 api/.dockerignore delete mode 100644 api/.env.example delete mode 100644 api/.gitignore delete mode 100644 api/.npmignore delete mode 100644 api/.prettierrc delete mode 100644 api/.vscode/api-snippets.code-snippets delete mode 100644 api/.vscode/launch.json delete mode 100644 api/Dockerfile delete mode 100644 api/README.md delete mode 100644 api/assets/checkLocale.js delete mode 100644 api/assets/dff87c953f43b561d71fbcfe8a93a79a.png delete mode 100644 api/assets/endpoints.json delete mode 100644 api/assets/features.json delete mode 100644 api/assets/fosscord-login.css delete mode 100644 api/assets/fosscord.css delete mode 100644 api/assets/inline-plugins/autoRegister.js delete mode 100644 api/assets/inline-plugins/fosscord-login.js delete mode 100644 api/assets/openapi.json delete mode 100644 api/assets/plugins/.gitkeep delete mode 100644 api/assets/preload-plugins/.gitkeep delete mode 100644 api/assets/schemas.json delete mode 100644 api/assets/user.css delete mode 100644 api/assets/widget/banner1.png delete mode 100644 api/assets/widget/banner2.png delete mode 100644 api/assets/widget/banner3.png delete mode 100644 api/assets/widget/banner4.png delete mode 100644 api/assets/widget/shield.png delete mode 100644 api/babel.config.js delete mode 100644 api/client_test/developers.html delete mode 100644 api/client_test/index.html delete mode 100644 api/jest/getRouteDescriptions.js delete mode 100644 api/jest/globalSetup.js delete mode 100644 api/jest/setup.js delete mode 100644 api/locales/af/auth.json delete mode 100644 api/locales/af/common.json delete mode 100644 api/locales/ar/auth.json delete mode 100644 api/locales/ar/common.json delete mode 100644 api/locales/arn/auth.json delete mode 100644 api/locales/arn/common.json delete mode 100644 api/locales/az/auth.json delete mode 100644 api/locales/az/common.json delete mode 100644 api/locales/be/auth.json delete mode 100644 api/locales/be/common.json delete mode 100644 api/locales/ber/auth.json delete mode 100644 api/locales/ber/common.json delete mode 100644 api/locales/bg/auth.json delete mode 100644 api/locales/bg/common.json delete mode 100644 api/locales/bo/auth.json delete mode 100644 api/locales/bo/common.json delete mode 100644 api/locales/ca/auth.json delete mode 100644 api/locales/ca/common.json delete mode 100644 api/locales/cs/auth.json delete mode 100644 api/locales/cs/common.json delete mode 100644 api/locales/da/auth.json delete mode 100644 api/locales/da/common.json delete mode 100644 api/locales/de/auth.json delete mode 100644 api/locales/de/common.json delete mode 100644 api/locales/el/auth.json delete mode 100644 api/locales/el/common.json delete mode 100644 api/locales/en/auth.json delete mode 100644 api/locales/en/common.json delete mode 100644 api/locales/eo/auth.json delete mode 100644 api/locales/eo/common.json delete mode 100644 api/locales/es/auth.json delete mode 100644 api/locales/es/common.json delete mode 100644 api/locales/eu/auth.json delete mode 100644 api/locales/eu/common.json delete mode 100644 api/locales/fa/auth.json delete mode 100644 api/locales/fa/common.json delete mode 100644 api/locales/fi/auth.json delete mode 100644 api/locales/fi/common.json delete mode 100644 api/locales/fr/auth.json delete mode 100644 api/locales/fr/common.json delete mode 100644 api/locales/gn/auth.json delete mode 100644 api/locales/gn/common.json delete mode 100644 api/locales/ha/auth.json delete mode 100644 api/locales/ha/common.json delete mode 100644 api/locales/he/auth.json delete mode 100644 api/locales/he/common.json delete mode 100644 api/locales/hi/auth.json delete mode 100644 api/locales/hi/common.json delete mode 100644 api/locales/hr/auth.json delete mode 100644 api/locales/hr/common.json delete mode 100644 api/locales/hu/auth.json delete mode 100644 api/locales/hu/common.json delete mode 100644 api/locales/id/auth.json delete mode 100644 api/locales/id/common.json delete mode 100644 api/locales/it/auth.json delete mode 100644 api/locales/it/common.json delete mode 100644 api/locales/ja/auth.json delete mode 100644 api/locales/ja/common.json delete mode 100644 api/locales/jv/auth.json delete mode 100644 api/locales/jv/common.json delete mode 100644 api/locales/kk/auth.json delete mode 100644 api/locales/kk/common.json delete mode 100644 api/locales/ko/auth.json delete mode 100644 api/locales/ko/common.json delete mode 100644 api/locales/ku/auth.json delete mode 100644 api/locales/ku/common.json delete mode 100644 api/locales/la/auth.json delete mode 100644 api/locales/la/common.json delete mode 100644 api/locales/lt/auth.json delete mode 100644 api/locales/lt/common.json delete mode 100644 api/locales/mi/auth.json delete mode 100644 api/locales/mi/common.json delete mode 100644 api/locales/mn/auth.json delete mode 100644 api/locales/mn/common.json delete mode 100644 api/locales/mr/auth.json delete mode 100644 api/locales/mr/common.json delete mode 100644 api/locales/nl/auth.json delete mode 100644 api/locales/nl/common.json delete mode 100644 api/locales/nn/auth.json delete mode 100644 api/locales/nn/common.json delete mode 100644 api/locales/no/auth.json delete mode 100644 api/locales/no/common.json delete mode 100644 api/locales/pa/auth.json delete mode 100644 api/locales/pa/common.json delete mode 100644 api/locales/pl/auth.json delete mode 100644 api/locales/pl/common.json delete mode 100644 api/locales/pt/auth.json delete mode 100644 api/locales/pt/common.json delete mode 100644 api/locales/qu/auth.json delete mode 100644 api/locales/qu/common.json delete mode 100644 api/locales/ro/auth.json delete mode 100644 api/locales/ro/common.json delete mode 100644 api/locales/ru/auth.json delete mode 100644 api/locales/ru/common.json delete mode 100644 api/locales/sh/auth.json delete mode 100644 api/locales/sh/common.json delete mode 100644 api/locales/si/auth.json delete mode 100644 api/locales/si/common.json delete mode 100644 api/locales/sk/auth.json delete mode 100644 api/locales/sk/common.json delete mode 100644 api/locales/sr/auth.json delete mode 100644 api/locales/sr/common.json delete mode 100644 api/locales/sv/auth.json delete mode 100644 api/locales/sv/common.json delete mode 100644 api/locales/sw/auth.json delete mode 100644 api/locales/sw/common.json delete mode 100644 api/locales/ta/auth.json delete mode 100644 api/locales/ta/common.json delete mode 100644 api/locales/te/auth.json delete mode 100644 api/locales/te/common.json delete mode 100644 api/locales/tl/auth.json delete mode 100644 api/locales/tl/common.json delete mode 100644 api/locales/tr/auth.json delete mode 100644 api/locales/tr/common.json delete mode 100644 api/locales/ug/auth.json delete mode 100644 api/locales/ug/common.json delete mode 100644 api/locales/uk/auth.json delete mode 100644 api/locales/uk/common.json delete mode 100644 api/locales/ur/auth.json delete mode 100644 api/locales/ur/common.json delete mode 100644 api/locales/vec/auth.json delete mode 100644 api/locales/vec/common.json delete mode 100644 api/locales/vi/auth.json delete mode 100644 api/locales/vi/common.json delete mode 100644 api/locales/zh/auth.json delete mode 100644 api/locales/zh/common.json delete mode 100644 api/package-lock.json delete mode 100644 api/package.json delete mode 100644 api/patches/ajv+8.6.2.patch delete mode 100644 api/patches/typescript-json-schema+0.54.0.patch delete mode 100644 api/scripts/droptables.sql delete mode 100644 api/scripts/generate_openapi.js delete mode 100644 api/scripts/generate_schema.js delete mode 100644 api/scripts/stresstest/.gitignore delete mode 100644 api/scripts/stresstest/accounts.json.example delete mode 100644 api/scripts/stresstest/config.json.example delete mode 100644 api/scripts/stresstest/index.js delete mode 100644 api/scripts/stresstest/package-lock.json delete mode 100644 api/scripts/stresstest/package.json delete mode 100644 api/scripts/stresstest/src/login/index.js delete mode 100644 api/scripts/stresstest/src/message/send.js delete mode 100644 api/scripts/stresstest/src/register/index.js delete mode 100644 api/src/Server.ts delete mode 100644 api/src/global.d.ts delete mode 100644 api/src/index.ts delete mode 100644 api/src/middlewares/Authentication.ts delete mode 100644 api/src/middlewares/BodyParser.ts delete mode 100644 api/src/middlewares/CORS.ts delete mode 100644 api/src/middlewares/ErrorHandler.ts delete mode 100644 api/src/middlewares/RateLimit.ts delete mode 100644 api/src/middlewares/TestClient.ts delete mode 100644 api/src/middlewares/Translation.ts delete mode 100644 api/src/middlewares/index.ts delete mode 100644 api/src/routes/-/healthz.ts delete mode 100644 api/src/routes/-/readyz.ts delete mode 100644 api/src/routes/applications/#id/entitlements.ts delete mode 100644 api/src/routes/applications/detectable.ts delete mode 100644 api/src/routes/applications/index.ts delete mode 100644 api/src/routes/auth/location-metadata.ts delete mode 100644 api/src/routes/auth/login.ts delete mode 100644 api/src/routes/auth/mfa/totp.ts delete mode 100644 api/src/routes/auth/register.ts delete mode 100644 api/src/routes/channels/#channel_id/followers.ts delete mode 100644 api/src/routes/channels/#channel_id/index.ts delete mode 100644 api/src/routes/channels/#channel_id/invites.ts delete mode 100644 api/src/routes/channels/#channel_id/messages/#message_id/ack.ts delete mode 100644 api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts delete mode 100644 api/src/routes/channels/#channel_id/messages/#message_id/index.ts delete mode 100644 api/src/routes/channels/#channel_id/messages/#message_id/reactions.ts delete mode 100644 api/src/routes/channels/#channel_id/messages/bulk-delete.ts delete mode 100644 api/src/routes/channels/#channel_id/messages/index.ts delete mode 100644 api/src/routes/channels/#channel_id/permissions.ts delete mode 100644 api/src/routes/channels/#channel_id/pins.ts delete mode 100644 api/src/routes/channels/#channel_id/purge.ts delete mode 100644 api/src/routes/channels/#channel_id/recipients.ts delete mode 100644 api/src/routes/channels/#channel_id/typing.ts delete mode 100644 api/src/routes/channels/#channel_id/webhooks.ts delete mode 100644 api/src/routes/discoverable-guilds.ts delete mode 100644 api/src/routes/discovery.ts delete mode 100644 api/src/routes/downloads.ts delete mode 100644 api/src/routes/experiments.ts delete mode 100644 api/src/routes/gateway/bot.ts delete mode 100644 api/src/routes/gateway/index.ts delete mode 100644 api/src/routes/gifs/search.ts delete mode 100644 api/src/routes/gifs/trending-gifs.ts delete mode 100644 api/src/routes/gifs/trending.ts delete mode 100644 api/src/routes/guild-recommendations.ts delete mode 100644 api/src/routes/guilds/#guild_id/audit-logs.ts delete mode 100644 api/src/routes/guilds/#guild_id/bans.ts delete mode 100644 api/src/routes/guilds/#guild_id/channels.ts delete mode 100644 api/src/routes/guilds/#guild_id/delete.ts delete mode 100644 api/src/routes/guilds/#guild_id/discovery-requirements.ts delete mode 100644 api/src/routes/guilds/#guild_id/emojis.ts delete mode 100644 api/src/routes/guilds/#guild_id/index.ts delete mode 100644 api/src/routes/guilds/#guild_id/integrations.ts delete mode 100644 api/src/routes/guilds/#guild_id/invites.ts delete mode 100644 api/src/routes/guilds/#guild_id/members/#member_id/index.ts delete mode 100644 api/src/routes/guilds/#guild_id/members/#member_id/nick.ts delete mode 100644 api/src/routes/guilds/#guild_id/members/#member_id/roles/#role_id/index.ts delete mode 100644 api/src/routes/guilds/#guild_id/members/index.ts delete mode 100644 api/src/routes/guilds/#guild_id/premium.ts delete mode 100644 api/src/routes/guilds/#guild_id/prune.ts delete mode 100644 api/src/routes/guilds/#guild_id/regions.ts delete mode 100644 api/src/routes/guilds/#guild_id/roles/#role_id/index.ts delete mode 100644 api/src/routes/guilds/#guild_id/roles/index.ts delete mode 100644 api/src/routes/guilds/#guild_id/stickers.ts delete mode 100644 api/src/routes/guilds/#guild_id/templates.ts delete mode 100644 api/src/routes/guilds/#guild_id/vanity-url.ts delete mode 100644 api/src/routes/guilds/#guild_id/voice-states/#user_id/index.ts delete mode 100644 api/src/routes/guilds/#guild_id/webhooks.ts delete mode 100644 api/src/routes/guilds/#guild_id/welcome_screen.ts delete mode 100644 api/src/routes/guilds/#guild_id/widget.json.ts delete mode 100644 api/src/routes/guilds/#guild_id/widget.png.ts delete mode 100644 api/src/routes/guilds/#guild_id/widget.ts delete mode 100644 api/src/routes/guilds/index.ts delete mode 100644 api/src/routes/guilds/templates/index.ts delete mode 100644 api/src/routes/invites/index.ts delete mode 100644 api/src/routes/oauth2/tokens.ts delete mode 100644 api/src/routes/outbound-promotions.ts delete mode 100644 api/src/routes/partners/#guild_id/requirements.ts delete mode 100644 api/src/routes/ping.ts delete mode 100644 api/src/routes/policies/instance/domains.ts delete mode 100644 api/src/routes/policies/instance/index.ts delete mode 100644 api/src/routes/policies/instance/limits.ts delete mode 100644 api/src/routes/scheduled-maintenances/upcoming_json.ts delete mode 100644 api/src/routes/science.ts delete mode 100644 api/src/routes/stage-instances.ts delete mode 100644 api/src/routes/sticker-packs/index.ts delete mode 100644 api/src/routes/stickers/#sticker_id/index.ts delete mode 100644 api/src/routes/stop.ts delete mode 100644 api/src/routes/store/published-listings/applications.ts delete mode 100644 api/src/routes/store/published-listings/applications/#id/subscription-plans.ts delete mode 100644 api/src/routes/store/published-listings/skus.ts delete mode 100644 api/src/routes/store/published-listings/skus/#sku_id/subscription-plans.ts delete mode 100644 api/src/routes/teams.ts delete mode 100644 api/src/routes/template.ts.disabled delete mode 100644 api/src/routes/track.ts delete mode 100644 api/src/routes/updates.ts delete mode 100644 api/src/routes/users/#id/index.ts delete mode 100644 api/src/routes/users/#id/profile.ts delete mode 100644 api/src/routes/users/#id/relationships.ts delete mode 100644 api/src/routes/users/@me/activities/statistics/applications.ts delete mode 100644 api/src/routes/users/@me/affinities/guilds.ts delete mode 100644 api/src/routes/users/@me/affinities/users.ts delete mode 100644 api/src/routes/users/@me/applications/#app_id/entitlements.ts delete mode 100644 api/src/routes/users/@me/billing/country-code.ts delete mode 100644 api/src/routes/users/@me/billing/payment-sources.ts delete mode 100644 api/src/routes/users/@me/billing/subscriptions.ts delete mode 100644 api/src/routes/users/@me/channels.ts delete mode 100644 api/src/routes/users/@me/connections.ts delete mode 100644 api/src/routes/users/@me/delete.ts delete mode 100644 api/src/routes/users/@me/devices.ts delete mode 100644 api/src/routes/users/@me/disable.ts delete mode 100644 api/src/routes/users/@me/email-settings.ts delete mode 100644 api/src/routes/users/@me/entitlements.ts delete mode 100644 api/src/routes/users/@me/guilds.ts delete mode 100644 api/src/routes/users/@me/guilds/premium/subscription-slots.ts delete mode 100644 api/src/routes/users/@me/index.ts delete mode 100644 api/src/routes/users/@me/library.ts delete mode 100644 api/src/routes/users/@me/mfa/codes.ts delete mode 100644 api/src/routes/users/@me/mfa/totp/disable.ts delete mode 100644 api/src/routes/users/@me/mfa/totp/enable.ts delete mode 100644 api/src/routes/users/@me/notes.ts delete mode 100644 api/src/routes/users/@me/relationships.ts delete mode 100644 api/src/routes/users/@me/settings.ts delete mode 100644 api/src/routes/voice/regions.ts delete mode 100644 api/src/start.ts delete mode 100644 api/src/util/entities/AssetCacheItem.ts delete mode 100644 api/src/util/entities/blockedEmailDomains.txt delete mode 100644 api/src/util/entities/trustedEmailDomains.txt delete mode 100644 api/src/util/handlers/Instance.ts delete mode 100644 api/src/util/handlers/Message.ts delete mode 100644 api/src/util/handlers/Voice.ts delete mode 100644 api/src/util/handlers/route.ts delete mode 100644 api/src/util/index.ts delete mode 100644 api/src/util/utility/Base64.ts delete mode 100644 api/src/util/utility/RandomInviteID.ts delete mode 100644 api/src/util/utility/String.ts delete mode 100644 api/src/util/utility/ipAddress.ts delete mode 100644 api/src/util/utility/passwordStrength.ts delete mode 100644 api/tests/routes.test.ts delete mode 100644 api/tests/routes/auth/login.test.js delete mode 100644 api/tests/routes/auth/register.test.js delete mode 100644 api/tests/routes/ping.test.js delete mode 100644 api/tsconfig.json create mode 100644 assets/checkLocale.js create mode 100644 assets/developers.html create mode 100644 assets/dff87c953f43b561d71fbcfe8a93a79a.png create mode 100644 assets/endpoints.json create mode 100644 assets/features.json create mode 100644 assets/fosscord-login.css create mode 100644 assets/fosscord.css create mode 100644 assets/index.html create mode 100644 assets/inline-plugins/autoRegister.js create mode 100644 assets/inline-plugins/fosscord-login.js create mode 100644 assets/locales/af/auth.json create mode 100644 assets/locales/af/common.json create mode 100644 assets/locales/ar/auth.json create mode 100644 assets/locales/ar/common.json create mode 100644 assets/locales/arn/auth.json create mode 100644 assets/locales/arn/common.json create mode 100644 assets/locales/az/auth.json create mode 100644 assets/locales/az/common.json create mode 100644 assets/locales/be/auth.json create mode 100644 assets/locales/be/common.json create mode 100644 assets/locales/ber/auth.json create mode 100644 assets/locales/ber/common.json create mode 100644 assets/locales/bg/auth.json create mode 100644 assets/locales/bg/common.json create mode 100644 assets/locales/bo/auth.json create mode 100644 assets/locales/bo/common.json create mode 100644 assets/locales/ca/auth.json create mode 100644 assets/locales/ca/common.json create mode 100644 assets/locales/cs/auth.json create mode 100644 assets/locales/cs/common.json create mode 100644 assets/locales/da/auth.json create mode 100644 assets/locales/da/common.json create mode 100644 assets/locales/de/auth.json create mode 100644 assets/locales/de/common.json create mode 100644 assets/locales/el/auth.json create mode 100644 assets/locales/el/common.json create mode 100644 assets/locales/en/auth.json create mode 100644 assets/locales/en/common.json create mode 100644 assets/locales/eo/auth.json create mode 100644 assets/locales/eo/common.json create mode 100644 assets/locales/es/auth.json create mode 100644 assets/locales/es/common.json create mode 100644 assets/locales/eu/auth.json create mode 100644 assets/locales/eu/common.json create mode 100644 assets/locales/fa/auth.json create mode 100644 assets/locales/fa/common.json create mode 100644 assets/locales/fi/auth.json create mode 100644 assets/locales/fi/common.json create mode 100644 assets/locales/fr/auth.json create mode 100644 assets/locales/fr/common.json create mode 100644 assets/locales/gn/auth.json create mode 100644 assets/locales/gn/common.json create mode 100644 assets/locales/ha/auth.json create mode 100644 assets/locales/ha/common.json create mode 100644 assets/locales/he/auth.json create mode 100644 assets/locales/he/common.json create mode 100644 assets/locales/hi/auth.json create mode 100644 assets/locales/hi/common.json create mode 100644 assets/locales/hr/auth.json create mode 100644 assets/locales/hr/common.json create mode 100644 assets/locales/hu/auth.json create mode 100644 assets/locales/hu/common.json create mode 100644 assets/locales/id/auth.json create mode 100644 assets/locales/id/common.json create mode 100644 assets/locales/it/auth.json create mode 100644 assets/locales/it/common.json create mode 100644 assets/locales/ja/auth.json create mode 100644 assets/locales/ja/common.json create mode 100644 assets/locales/jv/auth.json create mode 100644 assets/locales/jv/common.json create mode 100644 assets/locales/kk/auth.json create mode 100644 assets/locales/kk/common.json create mode 100644 assets/locales/ko/auth.json create mode 100644 assets/locales/ko/common.json create mode 100644 assets/locales/ku/auth.json create mode 100644 assets/locales/ku/common.json create mode 100644 assets/locales/la/auth.json create mode 100644 assets/locales/la/common.json create mode 100644 assets/locales/lt/auth.json create mode 100644 assets/locales/lt/common.json create mode 100644 assets/locales/mi/auth.json create mode 100644 assets/locales/mi/common.json create mode 100644 assets/locales/mn/auth.json create mode 100644 assets/locales/mn/common.json create mode 100644 assets/locales/mr/auth.json create mode 100644 assets/locales/mr/common.json create mode 100644 assets/locales/nl/auth.json create mode 100644 assets/locales/nl/common.json create mode 100644 assets/locales/nn/auth.json create mode 100644 assets/locales/nn/common.json create mode 100644 assets/locales/no/auth.json create mode 100644 assets/locales/no/common.json create mode 100644 assets/locales/pa/auth.json create mode 100644 assets/locales/pa/common.json create mode 100644 assets/locales/pl/auth.json create mode 100644 assets/locales/pl/common.json create mode 100644 assets/locales/pt/auth.json create mode 100644 assets/locales/pt/common.json create mode 100644 assets/locales/qu/auth.json create mode 100644 assets/locales/qu/common.json create mode 100644 assets/locales/ro/auth.json create mode 100644 assets/locales/ro/common.json create mode 100644 assets/locales/ru/auth.json create mode 100644 assets/locales/ru/common.json create mode 100644 assets/locales/sh/auth.json create mode 100644 assets/locales/sh/common.json create mode 100644 assets/locales/si/auth.json create mode 100644 assets/locales/si/common.json create mode 100644 assets/locales/sk/auth.json create mode 100644 assets/locales/sk/common.json create mode 100644 assets/locales/sr/auth.json create mode 100644 assets/locales/sr/common.json create mode 100644 assets/locales/sv/auth.json create mode 100644 assets/locales/sv/common.json create mode 100644 assets/locales/sw/auth.json create mode 100644 assets/locales/sw/common.json create mode 100644 assets/locales/ta/auth.json create mode 100644 assets/locales/ta/common.json create mode 100644 assets/locales/te/auth.json create mode 100644 assets/locales/te/common.json create mode 100644 assets/locales/tl/auth.json create mode 100644 assets/locales/tl/common.json create mode 100644 assets/locales/tr/auth.json create mode 100644 assets/locales/tr/common.json create mode 100644 assets/locales/ug/auth.json create mode 100644 assets/locales/ug/common.json create mode 100644 assets/locales/uk/auth.json create mode 100644 assets/locales/uk/common.json create mode 100644 assets/locales/ur/auth.json create mode 100644 assets/locales/ur/common.json create mode 100644 assets/locales/vec/auth.json create mode 100644 assets/locales/vec/common.json create mode 100644 assets/locales/vi/auth.json create mode 100644 assets/locales/vi/common.json create mode 100644 assets/locales/zh/auth.json create mode 100644 assets/locales/zh/common.json create mode 100644 assets/openapi.json create mode 100644 assets/plugins/.gitkeep create mode 100644 assets/preload-plugins/.gitkeep create mode 100644 assets/schemas.json create mode 100644 assets/user.css create mode 100644 assets/widget/banner1.png create mode 100644 assets/widget/banner2.png create mode 100644 assets/widget/banner3.png create mode 100644 assets/widget/banner4.png create mode 100644 assets/widget/shield.png delete mode 100644 bundle/.prettierrc delete mode 100644 bundle/.vscode/launch.json delete mode 100644 bundle/package-lock.json delete mode 100644 bundle/package.json delete mode 100644 bundle/scripts/benchmark/connections.js delete mode 100644 bundle/scripts/benchmark/index.js delete mode 100644 bundle/scripts/benchmark/users.js delete mode 100644 bundle/scripts/build.js delete mode 100755 bundle/scripts/db_migrations.sh delete mode 100644 bundle/scripts/depcheck.js delete mode 100644 bundle/scripts/depclean.js delete mode 100644 bundle/scripts/gen_index.js delete mode 100644 bundle/scripts/install.js delete mode 100644 bundle/scripts/rights.js delete mode 100644 bundle/scripts/update_schemas.js delete mode 100644 bundle/scripts/utils.js delete mode 100644 bundle/src/Server.ts delete mode 100644 bundle/src/start.ts delete mode 100644 bundle/src/stats.ts delete mode 100644 bundle/tsconfig.json delete mode 100644 bundle/tsnode.tsconfig.json delete mode 100644 cdn/.env.example delete mode 100644 cdn/.gitignore delete mode 100644 cdn/.swcrc delete mode 100644 cdn/Dockerfile delete mode 100644 cdn/README.md delete mode 100644 cdn/jest/setup.js delete mode 100644 cdn/package-lock.json delete mode 100644 cdn/package.json delete mode 100644 cdn/src/Server.ts delete mode 100644 cdn/src/index.ts delete mode 100644 cdn/src/routes/attachments.ts delete mode 100644 cdn/src/routes/avatars.ts delete mode 100644 cdn/src/routes/external.ts delete mode 100644 cdn/src/routes/ping.ts delete mode 100644 cdn/src/routes/role-icons.ts delete mode 100644 cdn/src/start.ts delete mode 100644 cdn/src/util/FileStorage.ts delete mode 100644 cdn/src/util/S3Storage.ts delete mode 100644 cdn/src/util/Storage.ts delete mode 100644 cdn/src/util/index.ts delete mode 100644 cdn/src/util/multer.ts delete mode 100644 cdn/tests/antman.jpg delete mode 100644 cdn/tests/cdn_endpoints.test.js delete mode 100644 cdn/tests/filestorage.test.js delete mode 100644 cdn/tsconfig.json delete mode 100644 dashboard/README.md delete mode 100644 dashboard/package-lock.json delete mode 100644 dashboard/package.json delete mode 100644 dashboard/src/index.ts delete mode 100644 gateway/.env.example delete mode 100644 gateway/.gitignore delete mode 100644 gateway/.swcrc delete mode 100644 gateway/.vscode/launch.json delete mode 100644 gateway/Dockerfile delete mode 100644 gateway/README.md delete mode 100644 gateway/package-lock.json delete mode 100644 gateway/package.json delete mode 100644 gateway/src/Server.ts delete mode 100644 gateway/src/events/Close.ts delete mode 100644 gateway/src/events/Connection.ts delete mode 100644 gateway/src/events/Message.ts delete mode 100644 gateway/src/index.ts delete mode 100644 gateway/src/listener/listener.ts delete mode 100644 gateway/src/opcodes/Heartbeat.ts delete mode 100644 gateway/src/opcodes/LazyRequest.ts delete mode 100644 gateway/src/opcodes/PresenceUpdate.ts delete mode 100644 gateway/src/opcodes/RequestGuildMembers.ts delete mode 100644 gateway/src/opcodes/Resume.ts delete mode 100644 gateway/src/opcodes/VoiceStateUpdate.ts delete mode 100644 gateway/src/opcodes/experiments.json delete mode 100644 gateway/src/opcodes/index.ts delete mode 100644 gateway/src/opcodes/instanceOf.ts delete mode 100644 gateway/src/start.ts delete mode 100644 gateway/src/util/Constants.ts delete mode 100644 gateway/src/util/Heartbeat.ts delete mode 100644 gateway/src/util/Send.ts delete mode 100644 gateway/src/util/SessionUtils.ts delete mode 100644 gateway/src/util/WebSocket.ts delete mode 100644 gateway/src/util/index.ts delete mode 100644 gateway/tsconfig.json create mode 100644 patches/ajv+8.6.2.patch create mode 100644 patches/typescript-json-schema+0.54.0.patch delete mode 100644 rtc/.gitignore delete mode 100644 rtc/.npmignore delete mode 100644 rtc/.prettierrc delete mode 100644 rtc/CMakeLists.txt delete mode 100644 rtc/README.md delete mode 100644 rtc/config.json delete mode 100644 rtc/src/main.cpp delete mode 100644 rtc/src/mongoStub.cpp delete mode 100644 rtc/src/mongoStub.hpp delete mode 100644 rtc/src/rtcPeerHandler.cpp delete mode 100644 rtc/src/rtcPeerHandler.hpp delete mode 100644 rtc/src/rtcServer.hpp create mode 100644 scripts/benchmark.js create mode 100644 scripts/benchmark/connections.js create mode 100644 scripts/benchmark/index.js create mode 100644 scripts/benchmark/users.js create mode 100644 scripts/build.js create mode 100755 scripts/db_migrations.sh create mode 100644 scripts/depcheck.js create mode 100644 scripts/depclean.js create mode 100644 scripts/droptables.sql create mode 100644 scripts/gen_index.js create mode 100644 scripts/generate_openapi.js create mode 100644 scripts/generate_schema.js create mode 100644 scripts/install.js create mode 100644 scripts/migrate_db_engine.js create mode 100644 scripts/rights.js create mode 100644 scripts/stresstest/.gitignore create mode 100644 scripts/stresstest/accounts.json.example create mode 100644 scripts/stresstest/config.json.example create mode 100644 scripts/stresstest/index.js create mode 100644 scripts/stresstest/package-lock.json create mode 100644 scripts/stresstest/package.json create mode 100644 scripts/stresstest/src/login/index.js create mode 100644 scripts/stresstest/src/message/send.js create mode 100644 scripts/stresstest/src/register/index.js create mode 100644 scripts/update_schemas.js create mode 100644 scripts/utils.js create mode 100644 src/Server.ts create mode 100644 src/api/Server.ts create mode 100644 src/api/global.d.ts create mode 100644 src/api/index.ts create mode 100644 src/api/middlewares/Authentication.ts create mode 100644 src/api/middlewares/BodyParser.ts create mode 100644 src/api/middlewares/CORS.ts create mode 100644 src/api/middlewares/ErrorHandler.ts create mode 100644 src/api/middlewares/RateLimit.ts create mode 100644 src/api/middlewares/TestClient.ts create mode 100644 src/api/middlewares/Translation.ts create mode 100644 src/api/middlewares/index.ts create mode 100644 src/api/routes/-/healthz.ts create mode 100644 src/api/routes/-/readyz.ts create mode 100644 src/api/routes/applications/#id/entitlements.ts create mode 100644 src/api/routes/applications/detectable.ts create mode 100644 src/api/routes/applications/index.ts create mode 100644 src/api/routes/auth/location-metadata.ts create mode 100644 src/api/routes/auth/login.ts create mode 100644 src/api/routes/auth/mfa/totp.ts create mode 100644 src/api/routes/auth/register.ts create mode 100644 src/api/routes/channels/#channel_id/followers.ts create mode 100644 src/api/routes/channels/#channel_id/index.ts create mode 100644 src/api/routes/channels/#channel_id/invites.ts create mode 100644 src/api/routes/channels/#channel_id/messages/#message_id/ack.ts create mode 100644 src/api/routes/channels/#channel_id/messages/#message_id/crosspost.ts create mode 100644 src/api/routes/channels/#channel_id/messages/#message_id/index.ts create mode 100644 src/api/routes/channels/#channel_id/messages/#message_id/reactions.ts create mode 100644 src/api/routes/channels/#channel_id/messages/bulk-delete.ts create mode 100644 src/api/routes/channels/#channel_id/messages/index.ts create mode 100644 src/api/routes/channels/#channel_id/permissions.ts create mode 100644 src/api/routes/channels/#channel_id/pins.ts create mode 100644 src/api/routes/channels/#channel_id/purge.ts create mode 100644 src/api/routes/channels/#channel_id/recipients.ts create mode 100644 src/api/routes/channels/#channel_id/typing.ts create mode 100644 src/api/routes/channels/#channel_id/webhooks.ts create mode 100644 src/api/routes/discoverable-guilds.ts create mode 100644 src/api/routes/discovery.ts create mode 100644 src/api/routes/downloads.ts create mode 100644 src/api/routes/experiments.ts create mode 100644 src/api/routes/gateway/bot.ts create mode 100644 src/api/routes/gateway/index.ts create mode 100644 src/api/routes/gifs/search.ts create mode 100644 src/api/routes/gifs/trending-gifs.ts create mode 100644 src/api/routes/gifs/trending.ts create mode 100644 src/api/routes/guild-recommendations.ts create mode 100644 src/api/routes/guilds/#guild_id/audit-logs.ts create mode 100644 src/api/routes/guilds/#guild_id/bans.ts create mode 100644 src/api/routes/guilds/#guild_id/channels.ts create mode 100644 src/api/routes/guilds/#guild_id/delete.ts create mode 100644 src/api/routes/guilds/#guild_id/discovery-requirements.ts create mode 100644 src/api/routes/guilds/#guild_id/emojis.ts create mode 100644 src/api/routes/guilds/#guild_id/index.ts create mode 100644 src/api/routes/guilds/#guild_id/integrations.ts create mode 100644 src/api/routes/guilds/#guild_id/invites.ts create mode 100644 src/api/routes/guilds/#guild_id/members/#member_id/index.ts create mode 100644 src/api/routes/guilds/#guild_id/members/#member_id/nick.ts create mode 100644 src/api/routes/guilds/#guild_id/members/#member_id/roles/#role_id/index.ts create mode 100644 src/api/routes/guilds/#guild_id/members/index.ts create mode 100644 src/api/routes/guilds/#guild_id/premium.ts create mode 100644 src/api/routes/guilds/#guild_id/prune.ts create mode 100644 src/api/routes/guilds/#guild_id/regions.ts create mode 100644 src/api/routes/guilds/#guild_id/roles/#role_id/index.ts create mode 100644 src/api/routes/guilds/#guild_id/roles/index.ts create mode 100644 src/api/routes/guilds/#guild_id/stickers.ts create mode 100644 src/api/routes/guilds/#guild_id/templates.ts create mode 100644 src/api/routes/guilds/#guild_id/vanity-url.ts create mode 100644 src/api/routes/guilds/#guild_id/voice-states/#user_id/index.ts create mode 100644 src/api/routes/guilds/#guild_id/webhooks.ts create mode 100644 src/api/routes/guilds/#guild_id/welcome_screen.ts create mode 100644 src/api/routes/guilds/#guild_id/widget.json.ts create mode 100644 src/api/routes/guilds/#guild_id/widget.png.ts create mode 100644 src/api/routes/guilds/#guild_id/widget.ts create mode 100644 src/api/routes/guilds/index.ts create mode 100644 src/api/routes/guilds/templates/index.ts create mode 100644 src/api/routes/invites/index.ts create mode 100644 src/api/routes/oauth2/tokens.ts create mode 100644 src/api/routes/outbound-promotions.ts create mode 100644 src/api/routes/partners/#guild_id/requirements.ts create mode 100644 src/api/routes/ping.ts create mode 100644 src/api/routes/policies/instance/domains.ts create mode 100644 src/api/routes/policies/instance/index.ts create mode 100644 src/api/routes/policies/instance/limits.ts create mode 100644 src/api/routes/scheduled-maintenances/upcoming_json.ts create mode 100644 src/api/routes/science.ts create mode 100644 src/api/routes/stage-instances.ts create mode 100644 src/api/routes/sticker-packs/index.ts create mode 100644 src/api/routes/stickers/#sticker_id/index.ts create mode 100644 src/api/routes/stop.ts create mode 100644 src/api/routes/store/published-listings/applications.ts create mode 100644 src/api/routes/store/published-listings/applications/#id/subscription-plans.ts create mode 100644 src/api/routes/store/published-listings/skus.ts create mode 100644 src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts create mode 100644 src/api/routes/teams.ts create mode 100644 src/api/routes/template.ts.disabled create mode 100644 src/api/routes/track.ts create mode 100644 src/api/routes/updates.ts create mode 100644 src/api/routes/users/#id/index.ts create mode 100644 src/api/routes/users/#id/profile.ts create mode 100644 src/api/routes/users/#id/relationships.ts create mode 100644 src/api/routes/users/@me/activities/statistics/applications.ts create mode 100644 src/api/routes/users/@me/affinities/guilds.ts create mode 100644 src/api/routes/users/@me/affinities/users.ts create mode 100644 src/api/routes/users/@me/applications/#app_id/entitlements.ts create mode 100644 src/api/routes/users/@me/billing/country-code.ts create mode 100644 src/api/routes/users/@me/billing/payment-sources.ts create mode 100644 src/api/routes/users/@me/billing/subscriptions.ts create mode 100644 src/api/routes/users/@me/channels.ts create mode 100644 src/api/routes/users/@me/connections.ts create mode 100644 src/api/routes/users/@me/delete.ts create mode 100644 src/api/routes/users/@me/devices.ts create mode 100644 src/api/routes/users/@me/disable.ts create mode 100644 src/api/routes/users/@me/email-settings.ts create mode 100644 src/api/routes/users/@me/entitlements.ts create mode 100644 src/api/routes/users/@me/guilds.ts create mode 100644 src/api/routes/users/@me/guilds/premium/subscription-slots.ts create mode 100644 src/api/routes/users/@me/index.ts create mode 100644 src/api/routes/users/@me/library.ts create mode 100644 src/api/routes/users/@me/mfa/codes.ts create mode 100644 src/api/routes/users/@me/mfa/totp/disable.ts create mode 100644 src/api/routes/users/@me/mfa/totp/enable.ts create mode 100644 src/api/routes/users/@me/notes.ts create mode 100644 src/api/routes/users/@me/relationships.ts create mode 100644 src/api/routes/users/@me/settings.ts create mode 100644 src/api/routes/voice/regions.ts create mode 100644 src/api/start.ts create mode 100644 src/api/util/entities/AssetCacheItem.ts create mode 100644 src/api/util/entities/blockedEmailDomains.txt create mode 100644 src/api/util/entities/trustedEmailDomains.txt create mode 100644 src/api/util/handlers/Instance.ts create mode 100644 src/api/util/handlers/Message.ts create mode 100644 src/api/util/handlers/Voice.ts create mode 100644 src/api/util/handlers/route.ts create mode 100644 src/api/util/index.ts create mode 100644 src/api/util/utility/Base64.ts create mode 100644 src/api/util/utility/RandomInviteID.ts create mode 100644 src/api/util/utility/String.ts create mode 100644 src/api/util/utility/ipAddress.ts create mode 100644 src/api/util/utility/passwordStrength.ts create mode 100644 src/cdn/Server.ts create mode 100644 src/cdn/index.ts create mode 100644 src/cdn/routes/attachments.ts create mode 100644 src/cdn/routes/avatars.ts create mode 100644 src/cdn/routes/external.ts create mode 100644 src/cdn/routes/ping.ts create mode 100644 src/cdn/routes/role-icons.ts create mode 100644 src/cdn/start.ts create mode 100644 src/cdn/util/FileStorage.ts create mode 100644 src/cdn/util/S3Storage.ts create mode 100644 src/cdn/util/Storage.ts create mode 100644 src/cdn/util/index.ts create mode 100644 src/cdn/util/multer.ts create mode 100644 src/gateway/Server.ts create mode 100644 src/gateway/events/Close.ts create mode 100644 src/gateway/events/Connection.ts create mode 100644 src/gateway/events/Message.ts create mode 100644 src/gateway/index.ts create mode 100644 src/gateway/listener/listener.ts create mode 100644 src/gateway/opcodes/Heartbeat.ts create mode 100644 src/gateway/opcodes/Identify.ts create mode 100644 src/gateway/opcodes/LazyRequest.ts create mode 100644 src/gateway/opcodes/PresenceUpdate.ts create mode 100644 src/gateway/opcodes/RequestGuildMembers.ts create mode 100644 src/gateway/opcodes/Resume.ts create mode 100644 src/gateway/opcodes/VoiceStateUpdate.ts create mode 100644 src/gateway/opcodes/experiments.json create mode 100644 src/gateway/opcodes/index.ts create mode 100644 src/gateway/opcodes/instanceOf.ts create mode 100644 src/gateway/start.ts create mode 100644 src/gateway/util/Constants.ts create mode 100644 src/gateway/util/Heartbeat.ts create mode 100644 src/gateway/util/Send.ts create mode 100644 src/gateway/util/SessionUtils.ts create mode 100644 src/gateway/util/WebSocket.ts create mode 100644 src/gateway/util/index.ts create mode 100644 src/start.ts create mode 100644 src/stats.ts create mode 100644 src/util/config/Config.ts create mode 100644 src/util/config/index.ts create mode 100644 src/util/config/types/ApiConfiguration.ts create mode 100644 src/util/config/types/ClientConfiguration.ts create mode 100644 src/util/config/types/DefaultsConfiguration.ts create mode 100644 src/util/config/types/EndpointConfiguration.ts create mode 100644 src/util/config/types/GeneralConfiguration.ts create mode 100644 src/util/config/types/GifConfiguration.ts create mode 100644 src/util/config/types/GuildConfiguration.ts create mode 100644 src/util/config/types/KafkaConfiguration.ts create mode 100644 src/util/config/types/LimitConfigurations.ts create mode 100644 src/util/config/types/LoginConfiguration.ts create mode 100644 src/util/config/types/MetricsConfiguration.ts create mode 100644 src/util/config/types/RabbitMQConfiguration.ts create mode 100644 src/util/config/types/RegionConfiguration.ts create mode 100644 src/util/config/types/RegisterConfiguration.ts create mode 100644 src/util/config/types/SecurityConfiguration.ts create mode 100644 src/util/config/types/SentryConfiguration.ts create mode 100644 src/util/config/types/TemplateConfiguration.ts create mode 100644 src/util/config/types/index.ts create mode 100644 src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts create mode 100644 src/util/config/types/subconfigurations/client/index.ts create mode 100644 src/util/config/types/subconfigurations/defaults/GuildDefaults.ts create mode 100644 src/util/config/types/subconfigurations/defaults/UserDefaults.ts create mode 100644 src/util/config/types/subconfigurations/defaults/index.ts create mode 100644 src/util/config/types/subconfigurations/guild/AutoJoin.ts create mode 100644 src/util/config/types/subconfigurations/guild/Discovery.ts create mode 100644 src/util/config/types/subconfigurations/guild/index.ts create mode 100644 src/util/config/types/subconfigurations/index.ts create mode 100644 src/util/config/types/subconfigurations/kafka/KafkaBroker.ts create mode 100644 src/util/config/types/subconfigurations/kafka/index.ts create mode 100644 src/util/config/types/subconfigurations/limits/ChannelLimits.ts create mode 100644 src/util/config/types/subconfigurations/limits/GuildLimits.ts create mode 100644 src/util/config/types/subconfigurations/limits/MessageLimits.ts create mode 100644 src/util/config/types/subconfigurations/limits/RateLimits.ts create mode 100644 src/util/config/types/subconfigurations/limits/UserLimits.ts create mode 100644 src/util/config/types/subconfigurations/limits/index.ts create mode 100644 src/util/config/types/subconfigurations/limits/ratelimits/Auth.ts create mode 100644 src/util/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts create mode 100644 src/util/config/types/subconfigurations/limits/ratelimits/Route.ts create mode 100644 src/util/config/types/subconfigurations/limits/ratelimits/index.ts create mode 100644 src/util/config/types/subconfigurations/region/Region.ts create mode 100644 src/util/config/types/subconfigurations/region/index.ts create mode 100644 src/util/config/types/subconfigurations/register/DateOfBirth.ts create mode 100644 src/util/config/types/subconfigurations/register/Email.ts create mode 100644 src/util/config/types/subconfigurations/register/Password.ts create mode 100644 src/util/config/types/subconfigurations/register/index.ts create mode 100644 src/util/config/types/subconfigurations/security/Captcha.ts create mode 100644 src/util/config/types/subconfigurations/security/TwoFactor.ts create mode 100644 src/util/config/types/subconfigurations/security/index.ts create mode 100644 src/util/dtos/DmChannelDTO.ts create mode 100644 src/util/dtos/UserDTO.ts create mode 100644 src/util/dtos/index.ts create mode 100644 src/util/entities/Application.ts create mode 100644 src/util/entities/Attachment.ts create mode 100644 src/util/entities/AuditLog.ts create mode 100644 src/util/entities/BackupCodes.ts create mode 100644 src/util/entities/Ban.ts create mode 100644 src/util/entities/BaseClass.ts create mode 100644 src/util/entities/Categories.ts create mode 100644 src/util/entities/Channel.ts create mode 100644 src/util/entities/ClientRelease.ts create mode 100644 src/util/entities/Config.ts create mode 100644 src/util/entities/ConnectedAccount.ts create mode 100644 src/util/entities/Emoji.ts create mode 100644 src/util/entities/Encryption.ts create mode 100644 src/util/entities/Group.ts create mode 100644 src/util/entities/Guild.ts create mode 100644 src/util/entities/Invite.ts create mode 100644 src/util/entities/Member.ts create mode 100644 src/util/entities/Message.ts create mode 100644 src/util/entities/Migration.ts create mode 100644 src/util/entities/Note.ts create mode 100644 src/util/entities/RateLimit.ts create mode 100644 src/util/entities/ReadState.ts create mode 100644 src/util/entities/Recipient.ts create mode 100644 src/util/entities/Relationship.ts create mode 100644 src/util/entities/Role.ts create mode 100644 src/util/entities/Session.ts create mode 100644 src/util/entities/Sticker.ts create mode 100644 src/util/entities/StickerPack.ts create mode 100644 src/util/entities/Team.ts create mode 100644 src/util/entities/TeamMember.ts create mode 100644 src/util/entities/Template.ts create mode 100644 src/util/entities/User.ts create mode 100644 src/util/entities/UserGroup.ts create mode 100644 src/util/entities/UserSettings.ts create mode 100644 src/util/entities/VoiceState.ts create mode 100644 src/util/entities/Webhook.ts create mode 100644 src/util/entities/index.ts create mode 100644 src/util/index.ts create mode 100644 src/util/interfaces/Activity.ts create mode 100644 src/util/interfaces/Event.ts create mode 100644 src/util/interfaces/Interaction.ts create mode 100644 src/util/interfaces/Presence.ts create mode 100644 src/util/interfaces/Status.ts create mode 100644 src/util/interfaces/index.ts create mode 100644 src/util/migrations/mariadb/1659901151025-initial.ts create mode 100644 src/util/migrations/mariadb/1659921859145-premium_since_as_date.ts create mode 100644 src/util/migrations/mariadb/1660258393551-CodeCleanup3.ts create mode 100644 src/util/migrations/mariadb/1660260587556-CodeCleanup4.ts create mode 100644 src/util/migrations/mariadb/1660265930624-CodeCleanup5.ts create mode 100644 src/util/migrations/postgres/1659899687168-initial.ts create mode 100644 src/util/migrations/postgres/1659921826567-premium_since_as_date.ts create mode 100644 src/util/migrations/postgres/1660257815436-CodeCleanup2.ts create mode 100644 src/util/migrations/postgres/1660258372154-CodeCleanup3.ts create mode 100644 src/util/migrations/postgres/1660260565996-CodeCleanup4.ts create mode 100644 src/util/migrations/postgres/1660265907544-CodeCleanup5.ts create mode 100644 src/util/migrations/sqlite/1659899662635-initial.ts create mode 100644 src/util/migrations/sqlite/1659921722863-premium_since_as_date.ts create mode 100644 src/util/migrations/sqlite/1660257576211-CodeCleanup1.ts create mode 100644 src/util/migrations/sqlite/1660257795259-CodeCleanup2.ts create mode 100644 src/util/migrations/sqlite/1660258351379-CodeCleanup3.ts create mode 100644 src/util/migrations/sqlite/1660260672914-CodeCleanup4.ts create mode 100644 src/util/schemas/ActivitySchema.ts create mode 100644 src/util/schemas/BanCreateSchema.ts create mode 100644 src/util/schemas/BanModeratorSchema.ts create mode 100644 src/util/schemas/BanRegistrySchema.ts create mode 100644 src/util/schemas/BulkDeleteSchema.ts create mode 100644 src/util/schemas/ChannelModifySchema.ts create mode 100644 src/util/schemas/ChannelPermissionOverwriteSchema.ts create mode 100644 src/util/schemas/ChannelReorderSchema.ts create mode 100644 src/util/schemas/DmChannelCreateSchema.ts create mode 100644 src/util/schemas/EmojiCreateSchema.ts create mode 100644 src/util/schemas/EmojiModifySchema.ts create mode 100644 src/util/schemas/GuildCreateSchema.ts create mode 100644 src/util/schemas/GuildTemplateCreateSchema.ts create mode 100644 src/util/schemas/GuildUpdateSchema.ts create mode 100644 src/util/schemas/GuildUpdateWelcomeScreenSchema.ts create mode 100644 src/util/schemas/IdentifySchema.ts create mode 100644 src/util/schemas/InviteCreateSchema.ts create mode 100644 src/util/schemas/LazyRequestSchema.ts create mode 100644 src/util/schemas/LoginSchema.ts create mode 100644 src/util/schemas/MemberChangeSchema.ts create mode 100644 src/util/schemas/MemberNickChangeSchema.ts create mode 100644 src/util/schemas/MessageAcknowledgeSchema.ts create mode 100644 src/util/schemas/MessageCreateSchema.ts create mode 100644 src/util/schemas/MfaCodesSchema.ts create mode 100644 src/util/schemas/ModifyGuildStickerSchema.ts create mode 100644 src/util/schemas/PruneSchema.ts create mode 100644 src/util/schemas/PurgeSchema.ts create mode 100644 src/util/schemas/RegisterSchema.ts create mode 100644 src/util/schemas/RelationshipPostSchema.ts create mode 100644 src/util/schemas/RelationshipPutSchema.ts create mode 100644 src/util/schemas/RoleModifySchema.ts create mode 100644 src/util/schemas/RolePositionUpdateSchema.ts create mode 100644 src/util/schemas/TemplateCreateSchema.ts create mode 100644 src/util/schemas/TemplateModifySchema.ts create mode 100644 src/util/schemas/TotpDisableSchema.ts create mode 100644 src/util/schemas/TotpEnableSchema.ts create mode 100644 src/util/schemas/TotpSchema.ts create mode 100644 src/util/schemas/UserModifySchema.ts create mode 100644 src/util/schemas/UserSettingsSchema.ts create mode 100644 src/util/schemas/VanityUrlSchema.ts create mode 100644 src/util/schemas/VoiceStateUpdateSchema.ts create mode 100644 src/util/schemas/WebhookCreateSchema.ts create mode 100644 src/util/schemas/WidgetModifySchema.ts create mode 100644 src/util/schemas/index.ts create mode 100644 src/util/util/ApiError.ts create mode 100644 src/util/util/Array.ts create mode 100644 src/util/util/AutoUpdate.ts create mode 100644 src/util/util/BitField.ts create mode 100644 src/util/util/Categories.ts create mode 100644 src/util/util/Config.ts create mode 100644 src/util/util/Constants.ts create mode 100644 src/util/util/Database.ts create mode 100644 src/util/util/Email.ts create mode 100644 src/util/util/Event.ts create mode 100644 src/util/util/FieldError.ts create mode 100644 src/util/util/Intents.ts create mode 100644 src/util/util/InvisibleCharacters.ts create mode 100644 src/util/util/MFA.ts create mode 100644 src/util/util/MessageFlags.ts create mode 100644 src/util/util/Permissions.ts create mode 100644 src/util/util/RabbitMQ.ts create mode 100644 src/util/util/Regex.ts create mode 100644 src/util/util/Rights.ts create mode 100644 src/util/util/Snowflake.ts create mode 100644 src/util/util/String.ts create mode 100644 src/util/util/Token.ts create mode 100644 src/util/util/TraverseDirectory.ts create mode 100644 src/util/util/cdn.ts create mode 100644 src/util/util/imports/Checks.ts create mode 100644 src/util/util/imports/HTTPError.ts create mode 100644 src/util/util/imports/OrmUtils.ts create mode 100644 src/util/util/imports/index.ts create mode 100644 src/util/util/index.ts create mode 100644 tests/User.test.js create mode 100644 tests/antman.jpg create mode 100644 tests/cdn_endpoints.test.js create mode 100644 tests/filestorage.test.js create mode 100644 tests/routes.test.ts create mode 100644 tests/routes/auth/login.test.js create mode 100644 tests/routes/auth/register.test.js create mode 100644 tests/routes/ping.test.js create mode 100644 tests/setupJest.js create mode 100644 tsconfig.json delete mode 100644 util/.gitignore delete mode 100644 util/.npmignore delete mode 100644 util/.prettierrc delete mode 100644 util/.vscode/launch.json delete mode 100644 util/README.md delete mode 100644 util/package-lock.json delete mode 100644 util/package.json delete mode 100644 util/scripts/benchmark.js delete mode 100644 util/scripts/migrate_db_engine.js delete mode 100644 util/src/config/Config.ts delete mode 100644 util/src/config/index.ts delete mode 100644 util/src/config/types/ApiConfiguration.ts delete mode 100644 util/src/config/types/ClientConfiguration.ts delete mode 100644 util/src/config/types/DefaultsConfiguration.ts delete mode 100644 util/src/config/types/EndpointConfiguration.ts delete mode 100644 util/src/config/types/GeneralConfiguration.ts delete mode 100644 util/src/config/types/GifConfiguration.ts delete mode 100644 util/src/config/types/GuildConfiguration.ts delete mode 100644 util/src/config/types/KafkaConfiguration.ts delete mode 100644 util/src/config/types/LimitConfigurations.ts delete mode 100644 util/src/config/types/LoginConfiguration.ts delete mode 100644 util/src/config/types/MetricsConfiguration.ts delete mode 100644 util/src/config/types/RabbitMQConfiguration.ts delete mode 100644 util/src/config/types/RegionConfiguration.ts delete mode 100644 util/src/config/types/RegisterConfiguration.ts delete mode 100644 util/src/config/types/SecurityConfiguration.ts delete mode 100644 util/src/config/types/SentryConfiguration.ts delete mode 100644 util/src/config/types/TemplateConfiguration.ts delete mode 100644 util/src/config/types/index.ts delete mode 100644 util/src/config/types/subconfigurations/client/ClientReleaseConfiguration.ts delete mode 100644 util/src/config/types/subconfigurations/client/index.ts delete mode 100644 util/src/config/types/subconfigurations/defaults/GuildDefaults.ts delete mode 100644 util/src/config/types/subconfigurations/defaults/UserDefaults.ts delete mode 100644 util/src/config/types/subconfigurations/defaults/index.ts delete mode 100644 util/src/config/types/subconfigurations/guild/AutoJoin.ts delete mode 100644 util/src/config/types/subconfigurations/guild/Discovery.ts delete mode 100644 util/src/config/types/subconfigurations/guild/index.ts delete mode 100644 util/src/config/types/subconfigurations/index.ts delete mode 100644 util/src/config/types/subconfigurations/kafka/KafkaBroker.ts delete mode 100644 util/src/config/types/subconfigurations/kafka/index.ts delete mode 100644 util/src/config/types/subconfigurations/limits/ChannelLimits.ts delete mode 100644 util/src/config/types/subconfigurations/limits/GuildLimits.ts delete mode 100644 util/src/config/types/subconfigurations/limits/MessageLimits.ts delete mode 100644 util/src/config/types/subconfigurations/limits/RateLimits.ts delete mode 100644 util/src/config/types/subconfigurations/limits/UserLimits.ts delete mode 100644 util/src/config/types/subconfigurations/limits/index.ts delete mode 100644 util/src/config/types/subconfigurations/limits/ratelimits/Auth.ts delete mode 100644 util/src/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts delete mode 100644 util/src/config/types/subconfigurations/limits/ratelimits/Route.ts delete mode 100644 util/src/config/types/subconfigurations/limits/ratelimits/index.ts delete mode 100644 util/src/config/types/subconfigurations/region/Region.ts delete mode 100644 util/src/config/types/subconfigurations/region/index.ts delete mode 100644 util/src/config/types/subconfigurations/register/DateOfBirth.ts delete mode 100644 util/src/config/types/subconfigurations/register/Email.ts delete mode 100644 util/src/config/types/subconfigurations/register/Password.ts delete mode 100644 util/src/config/types/subconfigurations/register/index.ts delete mode 100644 util/src/config/types/subconfigurations/security/Captcha.ts delete mode 100644 util/src/config/types/subconfigurations/security/TwoFactor.ts delete mode 100644 util/src/config/types/subconfigurations/security/index.ts delete mode 100644 util/src/dtos/DmChannelDTO.ts delete mode 100644 util/src/dtos/UserDTO.ts delete mode 100644 util/src/dtos/index.ts delete mode 100644 util/src/entities/Application.ts delete mode 100644 util/src/entities/Attachment.ts delete mode 100644 util/src/entities/AuditLog.ts delete mode 100644 util/src/entities/BackupCodes.ts delete mode 100644 util/src/entities/Ban.ts delete mode 100644 util/src/entities/BaseClass.ts delete mode 100644 util/src/entities/Categories.ts delete mode 100644 util/src/entities/Channel.ts delete mode 100644 util/src/entities/ClientRelease.ts delete mode 100644 util/src/entities/Config.ts delete mode 100644 util/src/entities/ConnectedAccount.ts delete mode 100644 util/src/entities/Emoji.ts delete mode 100644 util/src/entities/Encryption.ts delete mode 100644 util/src/entities/Group.ts delete mode 100644 util/src/entities/Guild.ts delete mode 100644 util/src/entities/Invite.ts delete mode 100644 util/src/entities/Member.ts delete mode 100644 util/src/entities/Message.ts delete mode 100644 util/src/entities/Migration.ts delete mode 100644 util/src/entities/Note.ts delete mode 100644 util/src/entities/RateLimit.ts delete mode 100644 util/src/entities/ReadState.ts delete mode 100644 util/src/entities/Recipient.ts delete mode 100644 util/src/entities/Relationship.ts delete mode 100644 util/src/entities/Role.ts delete mode 100644 util/src/entities/Session.ts delete mode 100644 util/src/entities/Sticker.ts delete mode 100644 util/src/entities/StickerPack.ts delete mode 100644 util/src/entities/Team.ts delete mode 100644 util/src/entities/TeamMember.ts delete mode 100644 util/src/entities/Template.ts delete mode 100644 util/src/entities/User.ts delete mode 100644 util/src/entities/UserGroup.ts delete mode 100644 util/src/entities/UserSettings.ts delete mode 100644 util/src/entities/VoiceState.ts delete mode 100644 util/src/entities/Webhook.ts delete mode 100644 util/src/entities/index.ts delete mode 100644 util/src/index.ts delete mode 100644 util/src/interfaces/Activity.ts delete mode 100644 util/src/interfaces/Event.ts delete mode 100644 util/src/interfaces/Interaction.ts delete mode 100644 util/src/interfaces/Presence.ts delete mode 100644 util/src/interfaces/Status.ts delete mode 100644 util/src/interfaces/index.ts delete mode 100644 util/src/migrations/mariadb/1659901151025-initial.ts delete mode 100644 util/src/migrations/mariadb/1659921859145-premium_since_as_date.ts delete mode 100644 util/src/migrations/mariadb/1660258393551-CodeCleanup3.ts delete mode 100644 util/src/migrations/mariadb/1660260587556-CodeCleanup4.ts delete mode 100644 util/src/migrations/mariadb/1660265930624-CodeCleanup5.ts delete mode 100644 util/src/migrations/postgres/1659899687168-initial.ts delete mode 100644 util/src/migrations/postgres/1659921826567-premium_since_as_date.ts delete mode 100644 util/src/migrations/postgres/1660257815436-CodeCleanup2.ts delete mode 100644 util/src/migrations/postgres/1660258372154-CodeCleanup3.ts delete mode 100644 util/src/migrations/postgres/1660260565996-CodeCleanup4.ts delete mode 100644 util/src/migrations/postgres/1660265907544-CodeCleanup5.ts delete mode 100644 util/src/migrations/sqlite/1659899662635-initial.ts delete mode 100644 util/src/migrations/sqlite/1659921722863-premium_since_as_date.ts delete mode 100644 util/src/migrations/sqlite/1660257576211-CodeCleanup1.ts delete mode 100644 util/src/migrations/sqlite/1660257795259-CodeCleanup2.ts delete mode 100644 util/src/migrations/sqlite/1660258351379-CodeCleanup3.ts delete mode 100644 util/src/migrations/sqlite/1660260672914-CodeCleanup4.ts delete mode 100644 util/src/schemas/ActivitySchema.ts delete mode 100644 util/src/schemas/BanCreateSchema.ts delete mode 100644 util/src/schemas/BanModeratorSchema.ts delete mode 100644 util/src/schemas/BanRegistrySchema.ts delete mode 100644 util/src/schemas/BulkDeleteSchema.ts delete mode 100644 util/src/schemas/ChannelModifySchema.ts delete mode 100644 util/src/schemas/ChannelPermissionOverwriteSchema.ts delete mode 100644 util/src/schemas/ChannelReorderSchema.ts delete mode 100644 util/src/schemas/DmChannelCreateSchema.ts delete mode 100644 util/src/schemas/EmojiCreateSchema.ts delete mode 100644 util/src/schemas/EmojiModifySchema.ts delete mode 100644 util/src/schemas/GuildCreateSchema.ts delete mode 100644 util/src/schemas/GuildTemplateCreateSchema.ts delete mode 100644 util/src/schemas/GuildUpdateSchema.ts delete mode 100644 util/src/schemas/GuildUpdateWelcomeScreenSchema.ts delete mode 100644 util/src/schemas/IdentifySchema.ts delete mode 100644 util/src/schemas/InviteCreateSchema.ts delete mode 100644 util/src/schemas/LazyRequestSchema.ts delete mode 100644 util/src/schemas/LoginSchema.ts delete mode 100644 util/src/schemas/MemberChangeSchema.ts delete mode 100644 util/src/schemas/MemberNickChangeSchema.ts delete mode 100644 util/src/schemas/MessageAcknowledgeSchema.ts delete mode 100644 util/src/schemas/MessageCreateSchema.ts delete mode 100644 util/src/schemas/MfaCodesSchema.ts delete mode 100644 util/src/schemas/ModifyGuildStickerSchema.ts delete mode 100644 util/src/schemas/PruneSchema.ts delete mode 100644 util/src/schemas/PurgeSchema.ts delete mode 100644 util/src/schemas/RegisterSchema.ts delete mode 100644 util/src/schemas/RelationshipPostSchema.ts delete mode 100644 util/src/schemas/RelationshipPutSchema.ts delete mode 100644 util/src/schemas/RoleModifySchema.ts delete mode 100644 util/src/schemas/RolePositionUpdateSchema.ts delete mode 100644 util/src/schemas/TemplateCreateSchema.ts delete mode 100644 util/src/schemas/TemplateModifySchema.ts delete mode 100644 util/src/schemas/TotpDisableSchema.ts delete mode 100644 util/src/schemas/TotpEnableSchema.ts delete mode 100644 util/src/schemas/TotpSchema.ts delete mode 100644 util/src/schemas/UserModifySchema.ts delete mode 100644 util/src/schemas/UserSettingsSchema.ts delete mode 100644 util/src/schemas/VanityUrlSchema.ts delete mode 100644 util/src/schemas/VoiceStateUpdateSchema.ts delete mode 100644 util/src/schemas/WebhookCreateSchema.ts delete mode 100644 util/src/schemas/WidgetModifySchema.ts delete mode 100644 util/src/schemas/index.ts delete mode 100644 util/src/util/ApiError.ts delete mode 100644 util/src/util/Array.ts delete mode 100644 util/src/util/AutoUpdate.ts delete mode 100644 util/src/util/BitField.ts delete mode 100644 util/src/util/Categories.ts delete mode 100644 util/src/util/Config.ts delete mode 100644 util/src/util/Constants.ts delete mode 100644 util/src/util/Database.ts delete mode 100644 util/src/util/Email.ts delete mode 100644 util/src/util/Event.ts delete mode 100644 util/src/util/FieldError.ts delete mode 100644 util/src/util/Intents.ts delete mode 100644 util/src/util/InvisibleCharacters.ts delete mode 100644 util/src/util/MFA.ts delete mode 100644 util/src/util/MessageFlags.ts delete mode 100644 util/src/util/Permissions.ts delete mode 100644 util/src/util/RabbitMQ.ts delete mode 100644 util/src/util/Regex.ts delete mode 100644 util/src/util/Rights.ts delete mode 100644 util/src/util/Snowflake.ts delete mode 100644 util/src/util/String.ts delete mode 100644 util/src/util/Token.ts delete mode 100644 util/src/util/TraverseDirectory.ts delete mode 100644 util/src/util/cdn.ts delete mode 100644 util/src/util/imports/Checks.ts delete mode 100644 util/src/util/imports/HTTPError.ts delete mode 100644 util/src/util/imports/OrmUtils.ts delete mode 100644 util/src/util/imports/index.ts delete mode 100644 util/src/util/index.ts delete mode 100644 util/tests/User.test.js delete mode 100644 util/tests/setupJest.js delete mode 100644 util/tsconfig.json delete mode 100644 webrtc/.DS_Store delete mode 100644 webrtc/.gitignore delete mode 100644 webrtc/README.md delete mode 100644 webrtc/package-lock.json delete mode 100644 webrtc/package.json delete mode 100644 webrtc/src/Server.ts delete mode 100644 webrtc/src/index.ts delete mode 100644 webrtc/src/start.ts delete mode 100644 webrtc/src/test.ts delete mode 100644 webrtc/tsconfig.json create mode 100644 yarn.lock diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..76add878 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +node_modules +dist \ No newline at end of file diff --git a/.gitignore b/.gitignore index 98adcd00..e9f3f39c 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,5 @@ api/assets/plugins/*.js bundle/depclean.* *.tmp tmp/ + +assets/cache/ \ No newline at end of file diff --git a/api/.dockerignore b/api/.dockerignore deleted file mode 100644 index 76add878..00000000 --- a/api/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -node_modules -dist \ No newline at end of file diff --git a/api/.env.example b/api/.env.example deleted file mode 100644 index 5974f628..00000000 --- a/api/.env.example +++ /dev/null @@ -1,8 +0,0 @@ -MONGO_URL=mongodb://localhost/fosscord -PORT=3001 -PRODUCTION=TRUE -THREADS=# automatically use all available cores, only available if production = true -#LOG_REQUESTS= -# only log 200 and 204: LOG_REQUESTS=200 204 -# log everything except 200 and 204: LOG_REQUESTS=-200 204 -# log all requests: LOG_REQUESTS=- \ No newline at end of file diff --git a/api/.gitignore b/api/.gitignore deleted file mode 100644 index 662816b9..00000000 --- a/api/.gitignore +++ /dev/null @@ -1,115 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env -.env.test - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# Next.js build output -.next - -# Nuxt.js build / generate output -.nuxt -dist -build - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and *not* Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port - -.DS_STORE -src/ready.json - -# Docker -.docker/config/* -!.docker/config/.keep - -# fosscord -*.db \ No newline at end of file diff --git a/api/.npmignore b/api/.npmignore deleted file mode 100644 index 05a9d0cf..00000000 --- a/api/.npmignore +++ /dev/null @@ -1 +0,0 @@ -!dist/ \ No newline at end of file diff --git a/api/.prettierrc b/api/.prettierrc deleted file mode 100644 index 8a2c607f..00000000 --- a/api/.prettierrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "tabWidth": 4, - "useTabs": true, - "printWidth": 140, - "trailingComma": "none" -} diff --git a/api/.vscode/api-snippets.code-snippets b/api/.vscode/api-snippets.code-snippets deleted file mode 100644 index ef4b6386..00000000 --- a/api/.vscode/api-snippets.code-snippets +++ /dev/null @@ -1,25 +0,0 @@ -{ - "API Router": { - "scope": "javascript,typescript", - "prefix": "router", - "body": [ - "import { Router, Response, Request } from \"express\";", - "import { route } from \"@fosscord/api\";", - "", - "const router = Router();", - "", - "router.get(\"/\", route({}), (req: Request, res: Response) => {", - "\tres.json({});", - "});", - "", - "export default router;" - ], - "description": "A basic API router setup for a blank route." - }, - "Route": { - "scope": "typescript", - "prefix": "route", - "body": ["router.get(\"$1\", route({}), (req: Request, res: Response) => {", "\t$2", "});"], - "description": "An API endpoint" - } -} diff --git a/api/.vscode/launch.json b/api/.vscode/launch.json deleted file mode 100644 index 221931ee..00000000 --- a/api/.vscode/launch.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "sourceMaps": true, - "type": "node", - "request": "launch", - "name": "Launch Server", - "program": "${workspaceFolder}/dist/start.js", - "preLaunchTask": "tsc: build - tsconfig.json", - "outFiles": ["${workspaceFolder}/dist/**/*.js"], - "envFile": "${workspaceFolder}/.env" - }, - { - "name": "Debug current file", - "program": "${file}", - "request": "launch", - "skipFiles": ["/**"], - "runtimeArgs": ["--nolazy", "-r", "ts-node/register/transpile-only"], - "preLaunchTask": "tsc: build - tsconfig.json", - "type": "node", - "resolveSourceMapLocations": ["${workspaceFolder}/**", "!**/node_modules/**"] - } - ] -} diff --git a/api/Dockerfile b/api/Dockerfile deleted file mode 100644 index 08d15f72..00000000 --- a/api/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM node:lts-alpine -# needed for native packages (bcrypt, canvas) -RUN apk add --no-cache make gcc g++ python cairo-dev jpeg-dev pango-dev giflib-dev -WORKDIR /usr/src/fosscord-server -COPY package.json . -COPY package-lock.json . -RUN npm rebuild bcrypt --build-from-source && npm install canvas --build-from-source -RUN npm install -COPY . . -EXPOSE 3001 -RUN npm run build-docker -CMD ["node", "dist/start.js"] diff --git a/api/README.md b/api/README.md deleted file mode 100644 index 62349972..00000000 --- a/api/README.md +++ /dev/null @@ -1,67 +0,0 @@ -

- -

-

Fosscord HTTP API Server

- -

- - - - - - - - -

- -## [About](https://github.com/fosscord/fosscord-server/wiki) - -This repository contains the Fosscord HTTP API Server - -## Bug Tracker - -[Project Board](https://fosscord.notion.site/2c7fe9e73f9842d3bab3a4912dedd091) - -## API - -We use [express](https://expressjs.com/) for the HTTP Server and -[lambert-server](https://www.npmjs.com/package/lambert-server) for route handling and body validation (customized). - -## Contribution - -You should be familiar with: - -- [Git](https://git-scm.com/) -- [NodeJS](https://nodejs.org/) -- [TypeScript](https://www.typescriptlang.org/) -- [MongoDB/mongoose](http://mongoosejs.com/) - -and the other technologies we use - -### Getting Started - -Clone the Repository: - -```bash -git clone https://github.com/fosscord/fosscord-server -cd fosscord-server -``` - -#### Install (dev)dependencies: - -```bash -npm install -npm install --only=dev -``` - -#### Starting: - -``` -npm start -``` - -#### Debugging: - -**Vscode:** -The Launch file configuration is in `./vscode/launch.json`, -so you can just debug the server by pressing `F5` or the `> Launch Server` button diff --git a/api/assets/checkLocale.js b/api/assets/checkLocale.js deleted file mode 100644 index 016d66c8..00000000 --- a/api/assets/checkLocale.js +++ /dev/null @@ -1,47 +0,0 @@ - const localStorage = window.localStorage; - // TODO: remote auth - // window.GLOBAL_ENV.REMOTE_AUTH_ENDPOINT = window.GLOBAL_ENV.GATEWAY_ENDPOINT.replace(/wss?:/, ""); - localStorage.setItem("gatewayURL", window.GLOBAL_ENV.GATEWAY_ENDPOINT); - localStorage.setItem( - "DeveloperOptionsStore", - `{"trace":false,"canary":false,"logGatewayEvents":true,"logOverlayEvents":true,"logAnalyticsEvents":true,"sourceMapsEnabled":false,"axeEnabled":false}` - ); - - const supportedLocales = [ - "bg", - "cs", - "da", - "de", - "el", - "en-GB", - "es-ES", - "fi", - "fr", - "hi", - "hr", - "hu", - "it", - "ja", - "ko", - "lt", - "nl", - "no", - "pl", - "pt-BR", - "ro", - "ru", - "sv-SE", - "th", - "tr", - "uk", - "vi", - "zh-CN", - "zh-TW" - ]; - - const settings = JSON.parse(localStorage.getItem("UserSettingsStore")); - if (settings && !supportedLocales.includes(settings.locale)) { - // fix client locale wrong and client not loading at all - settings.locale = "en-US"; - localStorage.setItem("UserSettingsStore", JSON.stringify(settings)); - } \ No newline at end of file diff --git a/api/assets/dff87c953f43b561d71fbcfe8a93a79a.png b/api/assets/dff87c953f43b561d71fbcfe8a93a79a.png deleted file mode 100644 index e69de29b..00000000 diff --git a/api/assets/endpoints.json b/api/assets/endpoints.json deleted file mode 100644 index 8b0514ce..00000000 --- a/api/assets/endpoints.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "USER_CHANNELS": "/users/@me/channels", - "USER_ACTIVITY_STATISTICS": "/users/@me/activities/statistics/applications", - "ACTIVITIES": "/activities", - "LOBBIES": "/lobbies", - "LOBBY_SEARCH": "/lobbies/search", - "NETWORKING_TOKEN": "/networking/token", - "USER_GAMES_NOTIFICATIONS": "/users/@me/settings/game-notifications", - "USER_GAMES_NOTIFICATIONS_OVERRIDES": "/users/@me/settings/game-notifications/overrides", - "UNVERIFIED_APPLICATIONS": "/unverified-applications", - "UNVERIFIED_APPLICATIONS_ICONS": "/unverified-applications/icons", - "BULK_ACK": "/read-states/ack-bulk", - "GUILDS": "/guilds", - "CHANNELS": "/channels", - "TUTORIAL_INDICATORS": "/tutorial/indicators", - "TUTORIAL_INDICATORS_SUPPRESS": "/tutorial/indicators/suppress", - "USERS": "/users", - "ME": "/users/@me", - "DELETE_ACCOUNT": "/users/@me/delete", - "DISABLE_ACCOUNT": "/users/@me/disable", - "DEVICES": "/users/@me/devices", - "SETTINGS": "/users/@me/settings", - "SETTINGS_CONSENT": "/users/@me/consent", - "PHONE": "/users/@me/phone", - "VERIFY_PHONE": "/users/@me/phone/verify", - "VERIFY_PHONE_NEW": "/phone-verifications/verify", - "RESEND_PHONE": "/phone-verifications/resend", - "CONNECTIONS": "/users/@me/connections", - "CONNECTION_SYNC_CONTACTS": "/users/@me/connections/contacts/@me/external-friend-list-entries", - "NOTES": "/users/@me/notes", - "MENTIONS": "/users/@me/mentions", - "CAPTCHA": "/users/@me/captcha/verify", - "EXPERIMENTS": "/experiments", - "LOGIN": "/auth/login", - "LOGIN_MFA": "/auth/mfa/totp", - "LOGIN_SMS": "/auth/mfa/sms", - "LOGIN_SMS_SEND": "/auth/mfa/sms/send", - "REMOTE_AUTH_INITIALIZE": "/users/@me/remote-auth", - "REMOTE_AUTH_CANCEL": "/users/@me/remote-auth/cancel", - "REMOTE_AUTH_FINISH": "/users/@me/remote-auth/finish", - "LOGOUT": "/auth/logout", - "REGISTER": "/auth/register", - "REGISTER_PHONE": "/auth/register/phone", - "TRACK": "/science", - "SSO": "/sso", - "VERIFY": "/auth/verify", - "AUTHORIZE_IP": "/auth/authorize-ip", - "VERIFY_RESEND": "/auth/verify/resend", - "FORGOT_PASSWORD": "/auth/forgot", - "RESET_PASSWORD": "/auth/reset", - "ICE": "/voice/ice", - "REPORT": "/report", - "REPORT_V2": "/reports", - "REPORT_OPTIONS": "/report/options", - "INTEGRATIONS": "/integrations", - "GATEWAY": "/gateway", - "APPLICATIONS_DETECTABLE": "/applications/detectable", - "OAUTH2_AUTHORIZE": "/oauth2/authorize", - "OAUTH2_AUTHORIZE_WEBHOOK_CHANNELS": "/oauth2/authorize/webhook-channels", - "OAUTH2_CURRENT_AUTH": "/oauth2/@me", - "OAUTH2_TOKENS": "/oauth2/tokens", - "OAUTH2_WHITELIST_ACCEPT": "/oauth2/whitelist/accept", - "MFA_TOTP_ENABLE": "/users/@me/mfa/totp/enable", - "MFA_TOTP_DISABLE": "/users/@me/mfa/totp/disable", - "MFA_SMS_ENABLE": "/users/@me/mfa/sms/enable", - "MFA_SMS_DISABLE": "/users/@me/mfa/sms/disable", - "MFA_CODES": "/users/@me/mfa/codes", - "DISABLE_EMAIL_NOTIFICATIONS": "/users/disable-email-notifications", - "GUILD_PREMIUM_SUBSCRIPTION_COOLDOWN": "/users/@me/guilds/premium/subscriptions/cooldown", - "USER_GUILD_PREMIUM_SUBSCRIPTIONS": "/users/@me/guilds/premium/subscriptions", - "USER_PREMIUM_GUILD_SUBSCRIPTION_SLOTS": "/users/@me/guilds/premium/subscription-slots", - "BILLING_STRIPE_SETUP_INTENT_SECRET": "/users/@me/billing/stripe/setup-intents", - "BILLING_PAYMENT_SOURCES": "/users/@me/billing/payment-sources", - "BILLING_PAYMENTS": "/users/@me/billing/payments", - "BILLING_BRAINTREE_POPUP_BRIDGE": "/billing/braintree/popup-bridge", - "BILLING_BRAINTREE_POPUP_BRIDGE_CALLBACK": "/billing/braintree/popup-bridge/callback", - "BILLING_SUBSCRIPTIONS": "/users/@me/billing/subscriptions", - "BILLING_APPLY_APPLE_RECEIPT": "/billing/apple/apply-receipt", - "BILLING_INVOICE_PREVIEW": "/users/@me/billing/invoices/preview", - "USER_AGREEMENTS": "/users/@me/agreements", - "HANDOFF": "/auth/handoff", - "HANDOFF_EXCHANGE": "/auth/handoff/exchange", - "LIBRARY": "/users/@me/library", - "AUTH_CONSENT_REQUIRED": "/auth/consent-required", - "USER_HARVEST": "/users/@me/harvest", - "APPLICATION_BRANCHES": "/branches", - "APPLICATIONS_PUBLIC": "/applications/public", - "APPLICATIONS_TRENDING": "/applications/trending/global", - "STORE_PUBLISHED_LISTINGS_APPLICATIONS": "/store/published-listings/applications", - "STORE_PUBLISHED_LISTINGS_SKUS": "/store/published-listings/skus", - "ENTITLEMENTS_GIFTABLE": "/users/@me/entitlements/gifts", - "PROMOTIONS": "/promotions", - "PROMOTION_ACK": "/promotions/ack", - "HYPESQUAD_ONLINE": "/hypesquad/online", - "GIFS_SEARCH": "/gifs/search", - "GIFS_TRENDING": "/gifs/trending", - "GIFS_TRENDING_GIFS": "/gifs/trending-gifs", - "GIFS_SELECT": "/gifs/select", - "GIFS_SUGGEST": "/gifs/suggest", - "GIFS_TRENDING_SEARCH": "/gifs/trending-search", - "USER_GIFT_CODE_CREATE": "/users/@me/entitlements/gift-codes", - "USER_GIFT_CODES": "/users/@me/entitlements/gift-codes", - "GUILD_DISCOVERY": "/discoverable-guilds", - "GUILD_DISCOVERY_CATEGORIES": "/discovery/categories", - "GUILD_DISCOVERY_VALID_TERM": "/discovery/valid-term", - "USER_AFFINITIES": "/users/@me/affinities/users", - "GUILD_AFFINITIES": "/users/@me/affinities/guilds", - "XBOX_GAME_PASS_PROMOTION": "/promotions/xbox-game-pass", - "XBOX_GAME_PASS_PROMOTION_REDEEM": "/promotions/xbox-game-pass/redeem", - "FUNIMATION_PROMOTION": "/promotions/funimation", - "PARTNERS_CONNECTIONS": "/partners/connections", - "PARTNERS_APPLY": "/partners/apply", - "USER_STICKER_PACKS": "/users/@me/sticker-packs", - "INTERACTIONS": "/interactions" -} diff --git a/api/assets/features.json b/api/assets/features.json deleted file mode 100644 index 05a858a0..00000000 --- a/api/assets/features.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - "ANIMATED_ICON", - "BANNER", - "COMMERCE", - "COMMUNITY", - "DISCOVERABLE", - "DISCOVERABLE_DISABLED", - "ENABLED_DISCOVERABLE_BEFORE", - "HUB", - "INVITE_SPLASH", - "MONETIZATION_ENABLED", - "MORE_EMOJI", - "MORE_STICKERS", - "NEWS", - "PARTNERED", - "PREVIEW_ENABLED", - "PRIVATE_THREADS", - "SEVEN_DAY_THREAD_ARCHIVE", - "THREE_DAY_THREAD_ARCHIVE", - "THREADS_ENABLED", - "TICKETED_EVENTS_ENABLED", - "VANITY_URL", - "VERIFIED", - "VIP_REGIONS", - "WELCOME_SCREEN_ENABLED" -] diff --git a/api/assets/fosscord-login.css b/api/assets/fosscord-login.css deleted file mode 100644 index d507c545..00000000 --- a/api/assets/fosscord-login.css +++ /dev/null @@ -1,68 +0,0 @@ -/* replace tos acceptance popup */ -#app-mount > div:nth-child(7) > div > div > div.tooltipContent-bqVLWK { - visibility: hidden; -} -#app-mount > div:nth-child(7) > div > div > div.tooltipContent-bqVLWK::after{ - visibility: visible; - display: block; - content: "You need to agree to this instance's rules to continue"; - margin-top: -32px; -} -/* replace login header */ -#app-mount > div.app-1q1i1E > div > div > div > div > form > div > div > div.mainLoginContainer-1ddwnR > h3 { - visibility: hidden; -} -h3.title-jXR8lp.marginBottom8-AtZOdT.base-1x0h_U.size24-RIRrxO::after { - margin-top: -32px; - content: "Welcome to Fosscord!"; - visibility: visible; - display: block; -} - -/* Logo in top left when bg removed */ -#app-mount > div.app-1q1i1E > div > a { - /* replace me: original dimensions: 130x36 */ - background: url(https://raw.githubusercontent.com/fosscord/fosscord/master/assets-rebrand/svg/Fosscord-Wordmark-Gradient.svg); - width: 130px; - height: 23px; - background-size: contain; -} - -/* replace TOS text */ - -#app-mount - > div.app-1q1i1E - > div - > div - > div - > form - > div - > div - > div.flex-1xMQg5.flex-1O1GKY.horizontal-1ae9ci.horizontal-2EEEnY.flex-1O1GKY.directionRow-3v3tfG.justifyStart-2NDFzi.alignCenter-1dQNNs.noWrap-3jynv6.marginTop20-3TxNs6 - > label - > div.label-cywgfr.labelClickable-11AuB8.labelForward-1wfipV - > * { - visibility: hidden; -} - -#app-mount - > div.app-1q1i1E - > div - > div - > div - > form - > div - > div - > div.flex-1xMQg5.flex-1O1GKY.horizontal-1ae9ci.horizontal-2EEEnY.flex-1O1GKY.directionRow-3v3tfG.justifyStart-2NDFzi.alignCenter-1dQNNs.noWrap-3jynv6.marginTop20-3TxNs6 - > label - > div.label-cywgfr.labelClickable-11AuB8.labelForward-1wfipV::after { - visibility: visible; - content: "I have read and agree with the rules set by this instance."; - display: block; - margin-top: -16px; -} - -/* shrink login box to same size as register */ -.authBoxExpanded-2jqaBe { - width: 480px !important; -} diff --git a/api/assets/fosscord.css b/api/assets/fosscord.css deleted file mode 100644 index 6078fdeb..00000000 --- a/api/assets/fosscord.css +++ /dev/null @@ -1,46 +0,0 @@ - -/* loading spinner */ -#app-mount > div.app-1q1i1E > div.container-16j22k.fixClipping-3qAKRb > div.content-1-zrf2 > video { - filter: opacity(1); - background: url("http://www.clipartbest.com/cliparts/7ca/6Rr/7ca6RrLAi.gif"); - background-size: contain; - /* width: 64px; - height: 64px; */ - padding-bottom: 64px; - background-repeat: no-repeat; -} - -/* home button icon */ -#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > nav > ul > div.scroller-1Bvpku.none-2Eo-qx.scrollerBase-289Jih > div.tutorialContainer-2sGCg9 > div > div.listItemWrapper-KhRmzM > div > svg > foreignObject > div > div -{ - background-image: url(https://raw.githubusercontent.com/fosscord/fosscord/master/assets-rebrand/svg/Fosscord-Icon-Rounded-Subtract.svg); - background-size: contain; - border-radius: 50%; -} - -#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > nav > ul > div.scroller-1Bvpku.none-2Eo-qx.scrollerBase-289Jih > div.tutorialContainer-2sGCg9 > div > div.listItemWrapper-KhRmzM > div > svg > foreignObject > div > div, #app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > nav > ul > div.scroller-1Bvpku.none-2Eo-qx.scrollerBase-289Jih > div.tutorialContainer-2sGCg9 > div > div.listItemWrapper-KhRmzM > div > svg > foreignObject > div > div:hover { - background-color: white; -} -/* Login QR */ -#app-mount > div.app-1q1i1E > div > div > div > div > form > div > div > div.transitionGroup-aR7y1d.qrLogin-1AOZMt, -#app-mount > div.app-1q1i1E > div > div > div > div > form > div > div > div.verticalSeparator-3huAjp, -/* Remove login bg */ -#app-mount > div.app-1q1i1E > div > svg, -/* Download bar */ -#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > div > div.notice-3bPHh-.colorDefault-22HBa0, -/* Connection problem links */ -#app-mount > div.app-1q1i1E > div.container-16j22k.fixClipping-3qAKRb > div.problems-3mgf6w.slideIn-sCvzGz > div:nth-child(2), -/* Downloads button */ -#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > nav > ul > div.scroller-1Bvpku.none-2Eo-qx.scrollerBase-289Jih > div:nth-child(7) > div.listItemWrapper-KhRmzM > div > svg > foreignObject > div, -#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > nav > ul > div.scroller-1Bvpku.none-2Eo-qx.scrollerBase-289Jih > div:nth-child(6) > div, -/* help button */ -#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > div > div.content-98HsJk > div.chat-3bRxxu > section > div.toolbar-1t6TWx > a, -/* download button start of guild */ -#chat-messages-899316648933185083 > div > div > div:nth-child(5), -/* Thread permissions etc popups */ -#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > div > div.content-98HsJk > div.sidebar-2K8pFh.hasNotice-1XRy4h > nav > div.container-3O_wAf, -/* home button icon */ -#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > nav > ul > div.scroller-1Bvpku.none-2Eo-qx.scrollerBase-289Jih > div.tutorialContainer-2sGCg9 > div > div.listItemWrapper-KhRmzM > div > svg > foreignObject > div > div > svg -{ - display: none; -} \ No newline at end of file diff --git a/api/assets/inline-plugins/autoRegister.js b/api/assets/inline-plugins/autoRegister.js deleted file mode 100644 index 7bca39f8..00000000 --- a/api/assets/inline-plugins/autoRegister.js +++ /dev/null @@ -1,62 +0,0 @@ -// Auto register guest account: -const prefix = [ - "mysterious", - "adventurous", - "courageous", - "precious", - "cynical", - "flamer ", - "despicable", - "suspicious", - "gorgeous", - "impeccable", - "lovely", - "stunning", - "keyed", - "phoned", - "glorious", - "amazing", - "strange", - "arcane" -]; -const suffix = [ - "Anonymous", - "Boy", - "Lurker", - "Keyhitter", - "User", - "Enjoyer", - "Hunk", - "Coolstar", - "Wrestling", - "TylerTheCreator", - "Ad", - "Gamer", - "Games", - "Programmer" -]; - -Array.prototype.random = function () { - return this[Math.floor(Math.random() * this.length)]; -}; - -function _generateName() { - return `${prefix.random()}${suffix.random()}`; -} - -let token = JSON.parse(localStorage.getItem("token")); -if (!token && location.pathname !== "/login" && location.pathname !== "/register") { - fetch(`${window.GLOBAL_ENV.API_ENDPOINT}/auth/register`, { - method: "POST", - headers: { "content-type": "application/json" }, - body: JSON.stringify({ username: `${_generateName()}`, consent: true }) //${Date.now().toString().slice(-4)} - }) - .then((x) => x.json()) - .then((x) => { - localStorage.setItem("token", `"${x.token}"`); - if (!window.localStorage) { - // client already loaded -> need to reload to apply the newly registered user token - location.reload(); - } - }); -} diff --git a/api/assets/inline-plugins/fosscord-login.js b/api/assets/inline-plugins/fosscord-login.js deleted file mode 100644 index 9191dad4..00000000 --- a/api/assets/inline-plugins/fosscord-login.js +++ /dev/null @@ -1,12 +0,0 @@ -// Remove `` from header when we're not accessing `/login` or `/register` -// fosscord-login.css replaces discord's TOS tooltip with something more fitting for fosscord, which when included in the main app, causes other tooltips -// to be affected, which is potentially unwanted. -// -// This script removes fosscord-login.css when a user reloads the page. From testing, it appears fosscord already properly removes -// fosscord-login.css after login is successful, but not if you reload the page after logging in. This script is to remove fosscord-login.css in -// that specific case. - -let token = JSON.parse(localStorage.getItem("token")); -if (!token && location.pathname !== "/login" && location.pathname !== "/register") { - document.getElementById("logincss").remove(); -} diff --git a/api/assets/openapi.json b/api/assets/openapi.json deleted file mode 100644 index a8a657b2..00000000 --- a/api/assets/openapi.json +++ /dev/null @@ -1,6000 +0,0 @@ -{ - "openapi": "3.0.0", - "servers": [ - { - "url": "https://api.fosscord.com/api/v{version}", - "description": "Official fosscord instance", - "variables": { - "version": { - "default": "9", - "enum": ["8", "9"] - } - } - } - ], - "info": { - "description": "Fosscord is a free open source selfhostable discord compatible chat, voice and video platform", - "version": "1.0.0", - "title": "Fosscord HTTP API Routes", - "termsOfService": "", - "contact": { - "name": "Fosscord" - }, - "license": { - "name": "AGPLV3", - "url": "https://www.gnu.org/licenses/agpl-3.0.en.html" - } - }, - "tags": [ - { - "name": "auth" - }, - { - "name": "applications" - }, - { - "name": "channels" - }, - { - "name": "discoverable-guilds" - }, - { - "name": "experiments" - }, - { - "name": "guilds" - }, - { - "name": "gateway" - }, - { - "name": "invites" - }, - { - "name": "voice" - }, - { - "name": "users" - }, - { - "name": "outbound-promotions" - }, - { - "name": "ping" - }, - { - "name": "store" - }, - { - "name": "sticker-packs" - }, - { - "name": "science" - } - ], - "paths": { - "/users/{id}": { - "get": { - "summary": "", - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "user id" - } - ], - "operationId": "", - "responses": { - "200": { - "description": "User found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserPublic" - } - } - } - }, - "404": { - "description": "User not found", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Error" - } - } - } - } - }, - "security": [ - { - "Token": [] - } - ] - } - }, - "/users/@me": { - "get": { - "summary": "", - "parameters": [], - "operationId": "", - "responses": { - "200": { - "description": "Authenticated user", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserPublic" - } - } - } - } - }, - "security": [ - { - "Token": [] - } - ] - } - }, - "/voice/regions/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["voice"] - } - }, - "/users/@me/settings/": { - "patch": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserSettingsSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/relationships/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users", "relationships"] - }, - "post": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RelationshipPostSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/relationships/{id}": { - "put": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RelationshipPutSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "id" - } - ], - "tags": ["users"] - }, - "delete": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "id" - } - ], - "tags": ["users"] - } - }, - "/users/@me/library/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - }, - "patch": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserModifySchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/guilds/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/guilds/{id}": { - "delete": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "id" - } - ], - "tags": ["users"] - } - }, - "/users/@me/disable/": { - "post": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/devices/": { - "post": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/delete/": { - "post": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/connections/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/channels/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - }, - "post": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DmChannelCreateSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/billing/subscriptions/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/billing/country-code/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/applications/{app_id}/entitlements/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "app_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "app_id" - } - ], - "tags": ["users"] - } - }, - "/users/@me/affinities/users/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/@me/affinities/guilds/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["users"] - } - }, - "/users/{id}/profile/": { - "get": { - "description": "", - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UserProfileResponse" - } - } - }, - "description": "" - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "id" - } - ], - "tags": ["users"] - } - }, - "/users/{id}/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "id" - } - ], - "tags": ["users"] - } - }, - "/store/skus/skus/{id}": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "id" - } - ], - "tags": ["store"] - } - }, - "/store/applications/applications/{id}": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "id" - } - ], - "tags": ["store"] - } - }, - "/sticker-packs/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["sticker", "sticker-packs"] - } - }, - "/sticker-packs/{id}/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "id" - } - ], - "tags": ["sticker", "sticker-packs"] - } - }, - "/science/": { - "post": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["science"] - } - }, - "/ping/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["ping"] - } - }, - "/outbound-promotions/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["outbound", "outbound-promotions"] - } - }, - "/invites/{code}": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "code", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "code" - } - ], - "tags": ["invites"] - }, - "post": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "code", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "code" - } - ], - "tags": ["invites"] - }, - "delete": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "code", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "code" - } - ], - "tags": ["invites"] - } - }, - "/guilds/templates/{code}": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "code", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "code" - } - ], - "tags": ["guilds"] - }, - "post": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GuildTemplateCreateSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "code", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "code" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/": { - "post": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GuildCreateSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/widget.png/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/widget.json/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/widget/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - }, - "patch": { - "description": "##### Requires the ``MANAGE_GUILD`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WidgetModifySchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/welcome_screen/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - }, - "patch": { - "description": "##### Requires the ``MANAGE_GUILD`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GuildUpdateWelcomeScreenSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/voice-states/{user_id}/": { - "patch": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VoiceStateUpdateSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "user_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/vanity-url/": { - "get": { - "description": "##### Requires the ``MANAGE_GUILD`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - }, - "patch": { - "description": "##### Requires the ``MANAGE_GUILD`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/VanityUrlSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/templates/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - }, - "post": { - "description": "##### Requires the ``MANAGE_GUILD`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TemplateCreateSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/templates/{code}": { - "delete": { - "description": "##### Requires the ``MANAGE_GUILD`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "code", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "code" - } - ], - "tags": ["guilds"] - }, - "put": { - "description": "##### Requires the ``MANAGE_GUILD`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "code", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "code" - } - ], - "tags": ["guilds"] - }, - "patch": { - "description": "##### Requires the ``MANAGE_GUILD`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TemplateModifySchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "code", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "code" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/roles/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - }, - "post": { - "description": "##### Requires the ``MANAGE_ROLES`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleModifySchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - }, - "patch": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RolePositionUpdateSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/roles/{role_id}": { - "delete": { - "description": "##### Requires the ``MANAGE_ROLES`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "role_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "role_id" - } - ], - "tags": ["guilds"] - }, - "patch": { - "description": "##### Requires the ``MANAGE_ROLES`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RoleModifySchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "role_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "role_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/regions/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/members/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/members/{member_id}/nick/": { - "patch": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MemberNickChangeSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "member_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "member_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/members/{member_id}/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "member_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "member_id" - } - ], - "tags": ["guilds"] - }, - "patch": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MemberChangeSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "member_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "member_id" - } - ], - "tags": ["guilds"] - }, - "put": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "member_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "member_id" - } - ], - "tags": ["guilds"] - }, - "delete": { - "description": "##### Requires the ``KICK_MEMBERS`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "member_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "member_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/invites/": { - "get": { - "description": "##### Requires the ``MANAGE_GUILD`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - }, - "patch": { - "description": "##### Requires the ``MANAGE_GUILD`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/GuildUpdateSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/delete/": { - "post": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/channels/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - }, - "post": { - "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChannelModifySchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - }, - "patch": { - "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChannelReorderSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/bans/": { - "get": { - "description": "##### Requires the ``BAN_MEMBERS`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/bans/{user}": { - "get": { - "description": "##### Requires the ``BAN_MEMBERS`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "user", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "user" - } - ], - "tags": ["guilds"] - } - }, - "/guilds/{guild_id}/bans/{user_id}": { - "put": { - "description": "##### Requires the ``BAN_MEMBERS`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BanCreateSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "user_id" - } - ], - "tags": ["guilds"] - }, - "delete": { - "description": "##### Requires the ``BAN_MEMBERS`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "user_id" - } - ], - "tags": ["guilds"] - } - }, - "/gateway/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["gateway"] - } - }, - "/gateway/bot": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["gateway"] - } - }, - "/experiments/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["experiments"] - } - }, - "/discoverable-guilds/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["discoverable", "discoverable-guilds"] - } - }, - "/channels/{channel_id}/webhooks/": { - "post": { - "description": "##### Requires the ``MANAGE_WEBHOOKS`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WebhookCreateSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/typing/": { - "post": { - "description": "##### Requires the ``SEND_MESSAGES`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/recipients/{user_id}": { - "put": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "user_id" - } - ], - "tags": ["channels"] - }, - "delete": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "user_id" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/pins/{message_id}": { - "put": { - "description": "##### Requires the ``VIEW_CHANNEL`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "message_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "message_id" - } - ], - "tags": ["channels"] - }, - "delete": { - "description": "##### Requires the ``VIEW_CHANNEL`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "message_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "message_id" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/pins/": { - "get": { - "description": "##### Requires the ``READ_MESSAGE_HISTORY`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/permissions/{overwrite_id}": { - "put": { - "description": "##### Requires the ``MANAGE_ROLES`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChannelPermissionOverwriteSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "overwrite_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "overwrite_id" - } - ], - "tags": ["channels"] - }, - "delete": { - "description": "##### Requires the ``MANAGE_ROLES`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "overwrite_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "overwrite_id" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/messages/bulk-delete/": { - "post": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/BulkDeleteSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/messages/{message_id}/reactions/": { - "delete": { - "description": "##### Requires the ``MANAGE_MESSAGES`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "message_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "message_id" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/messages/{message_id}/reactions/{emoji}": { - "delete": { - "description": "##### Requires the ``MANAGE_MESSAGES`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "message_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "message_id" - }, - { - "name": "emoji", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "emoji" - } - ], - "tags": ["channels"] - }, - "get": { - "description": "##### Requires the ``VIEW_CHANNEL`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "message_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "message_id" - }, - { - "name": "emoji", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "emoji" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/messages/{message_id}/reactions/{emoji}/{user_id}": { - "put": { - "description": "##### Requires the ``READ_MESSAGE_HISTORY`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "message_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "message_id" - }, - { - "name": "emoji", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "emoji" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "user_id" - } - ], - "tags": ["channels"] - }, - "delete": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "message_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "message_id" - }, - { - "name": "emoji", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "emoji" - }, - { - "name": "user_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "user_id" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/messages/{message_id}/": { - "patch": { - "description": "##### Requires the ``SEND_MESSAGES`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessageCreateSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "message_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "message_id" - } - ], - "tags": ["channels"] - }, - "delete": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "message_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "message_id" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/messages/{message_id}/ack/": { - "post": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MessageAcknowledgeSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - }, - { - "name": "message_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "message_id" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/invites/": { - "post": { - "description": "##### Requires the ``CREATE_INSTANT_INVITE`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/InviteCreateSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - } - ], - "tags": ["channels"] - }, - "get": { - "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - } - ], - "tags": ["channels"] - } - }, - "/channels/{channel_id}/": { - "get": { - "description": "##### Requires the ``VIEW_CHANNEL`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - } - ], - "tags": ["channels"] - }, - "delete": { - "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - } - ], - "tags": ["channels"] - }, - "patch": { - "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ChannelModifySchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "channel_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "channel_id" - } - ], - "tags": ["channels"] - } - }, - "/auth/register/": { - "post": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/RegisterSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["auth"] - } - }, - "/applications/detectable/": { - "get": { - "description": "", - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["applications"] - } - }, - "/guilds/{guild_id}/members/{member_id}/roles/{role_id}/": { - "delete": { - "description": "##### Requires the ``MANAGE_ROLES`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "member_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "member_id" - }, - { - "name": "role_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "role_id" - } - ], - "tags": ["guilds"] - }, - "put": { - "description": "##### Requires the ``MANAGE_ROLES`` permission\n", - "responses": { - "default": { - "description": "not documented" - } - }, - "parameters": [ - { - "name": "guild_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "guild_id" - }, - { - "name": "member_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "member_id" - }, - { - "name": "role_id", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "description": "role_id" - } - ], - "tags": ["guilds"] - } - }, - "/auth/login/": { - "post": { - "description": "", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/LoginSchema" - } - } - } - }, - "responses": { - "default": { - "description": "not documented" - } - }, - "tags": ["auth"] - } - } - }, - "externalDocs": { - "url": "http://docs.fosscord.com/" - }, - "components": { - "schemas": { - "Error": { - "type": "object", - "properties": { - "code": { - "type": "integer" - }, - "message": { - "type": "string" - } - }, - "required": ["code", "message"] - }, - "RateLimit": { - "type": "object", - "properties": { - "retry_after": { - "type": "integer" - }, - "message": { - "type": "string" - }, - "global": { - "type": "boolean" - } - }, - "required": ["code", "message", "globa"] - }, - "User": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "desktop": { - "type": "boolean" - }, - "mobile": { - "type": "boolean" - }, - "premium": { - "type": "boolean" - }, - "premium_type": { - "type": "integer" - }, - "bot": { - "type": "boolean" - }, - "bio": { - "type": "string" - }, - "system": { - "type": "boolean" - }, - "nsfw_allowed": { - "type": "boolean" - }, - "mfa_enabled": { - "type": "boolean" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "premium_since": { - "type": "string", - "format": "date-time" - }, - "verified": { - "type": "boolean" - }, - "disabled": { - "type": "boolean" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string" - }, - "flags": { - "type": "string" - }, - "public_flags": { - "type": "string" - }, - "relationships": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Relationship" - } - }, - "connected_accounts": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ConnectedAccount" - } - }, - "data": { - "type": "object", - "properties": { - "valid_tokens_since": { - "type": "string", - "format": "date-time" - }, - "hash": { - "type": "string" - } - }, - "additionalProperties": false, - "required": ["valid_tokens_since"] - }, - "fingerprints": { - "type": "array", - "items": { - "type": "string" - } - }, - "settings": { - "$ref": "#/components/schemas/UserSettings" - }, - "id": { - "type": "string" - } - }, - "required": [ - "bio", - "bot", - "connected_accounts", - "created_at", - "data", - "deleted", - "desktop", - "disabled", - "discriminator", - "fingerprints", - "flags", - "id", - "mfa_enabled", - "mobile", - "nsfw_allowed", - "premium", - "premium_type", - "public_flags", - "relationships", - "settings", - "system", - "username", - "verified" - ] - }, - "Relationship": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "user": { - "$ref": "#/components/schemas/User" - }, - "nickname": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/RelationshipType" - }, - "id": { - "type": "string" - } - }, - "required": ["id", "type", "user", "user_id"] - }, - "RelationshipType": { - "enum": [1, 2, 3, 4], - "type": "number" - }, - "ConnectedAccount": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "user": { - "$ref": "#/components/schemas/User" - }, - "access_token": { - "type": "string" - }, - "friend_sync": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "revoked": { - "type": "boolean" - }, - "show_activity": { - "type": "boolean" - }, - "type": { - "type": "string" - }, - "verified": { - "type": "boolean" - }, - "visibility": { - "type": "integer" - }, - "id": { - "type": "string" - } - }, - "required": [ - "access_token", - "friend_sync", - "id", - "name", - "revoked", - "show_activity", - "type", - "user", - "user_id", - "verified", - "visibility" - ] - }, - "UserSettings": { - "type": "object", - "properties": { - "afk_timeout": { - "type": "integer" - }, - "allow_accessibility_detection": { - "type": "boolean" - }, - "animate_emoji": { - "type": "boolean" - }, - "animate_stickers": { - "type": "integer" - }, - "contact_sync_enabled": { - "type": "boolean" - }, - "convert_emoticons": { - "type": "boolean" - }, - "custom_status": { - "type": "object", - "properties": { - "emoji_id": { - "type": "string" - }, - "emoji_name": { - "type": "string" - }, - "expires_at": { - "type": "integer" - }, - "text": { - "type": "string" - } - }, - "additionalProperties": false - }, - "default_guilds_restricted": { - "type": "boolean" - }, - "detect_platform_accounts": { - "type": "boolean" - }, - "developer_mode": { - "type": "boolean" - }, - "disable_games_tab": { - "type": "boolean" - }, - "enable_tts_command": { - "type": "boolean" - }, - "explicit_content_filter": { - "type": "integer" - }, - "friend_source_flags": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": ["all"] - }, - "gateway_connected": { - "type": "boolean" - }, - "gif_auto_play": { - "type": "boolean" - }, - "guild_folders": { - "type": "array", - "items": { - "type": "object", - "properties": { - "color": { - "type": "integer" - }, - "guild_ids": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": ["color", "guild_ids", "id", "name"] - } - }, - "guild_positions": { - "type": "array", - "items": { - "type": "string" - } - }, - "inline_attachment_media": { - "type": "boolean" - }, - "inline_embed_media": { - "type": "boolean" - }, - "locale": { - "type": "string" - }, - "message_display_compact": { - "type": "boolean" - }, - "native_phone_integration_enabled": { - "type": "boolean" - }, - "render_embeds": { - "type": "boolean" - }, - "render_reactions": { - "type": "boolean" - }, - "restricted_guilds": { - "type": "array", - "items": { - "type": "string" - } - }, - "show_current_game": { - "type": "boolean" - }, - "status": { - "enum": ["dnd", "idle", "offline", "online", "invisible"], - "type": "string" - }, - "stream_notifications_enabled": { - "type": "boolean" - }, - "theme": { - "enum": ["dark", "white"], - "type": "string" - }, - "timezone_offset": { - "type": "integer" - } - }, - "required": [ - "afk_timeout", - "allow_accessibility_detection", - "animate_emoji", - "animate_stickers", - "contact_sync_enabled", - "convert_emoticons", - "custom_status", - "default_guilds_restricted", - "detect_platform_accounts", - "developer_mode", - "disable_games_tab", - "enable_tts_command", - "explicit_content_filter", - "friend_source_flags", - "gateway_connected", - "gif_auto_play", - "guild_folders", - "guild_positions", - "inline_attachment_media", - "inline_embed_media", - "locale", - "message_display_compact", - "native_phone_integration_enabled", - "render_embeds", - "render_reactions", - "restricted_guilds", - "show_current_game", - "status", - "stream_notifications_enabled", - "theme", - "timezone_offset" - ] - }, - "Team": { - "type": "object", - "properties": { - "icon": { - "type": "string" - }, - "members": { - "type": "array", - "items": { - "$ref": "#/components/schemas/TeamMember" - } - }, - "name": { - "type": "string" - }, - "owner_user_id": { - "type": "string" - }, - "owner_user": { - "$ref": "#/components/schemas/User" - }, - "id": { - "type": "string" - } - }, - "required": ["id", "members", "name", "owner_user", "owner_user_id"] - }, - "TeamMember": { - "type": "object", - "properties": { - "membership_state": { - "$ref": "#/components/schemas/TeamMemberState" - }, - "permissions": { - "type": "array", - "items": { - "type": "string" - } - }, - "team_id": { - "type": "string" - }, - "team": { - "$ref": "#/components/schemas/Team" - }, - "user_id": { - "type": "string" - }, - "user": { - "$ref": "#/components/schemas/User" - }, - "id": { - "type": "string" - } - }, - "required": ["id", "membership_state", "permissions", "team", "team_id", "user", "user_id"] - }, - "TeamMemberState": { - "enum": [1, 2], - "type": "number" - }, - "Guild": { - "type": "object", - "properties": { - "afk_channel_id": { - "type": "string" - }, - "afk_channel": { - "$ref": "#/components/schemas/Channel" - }, - "afk_timeout": { - "type": "integer" - }, - "bans": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Ban" - } - }, - "banner": { - "type": "string" - }, - "default_message_notifications": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "discovery_splash": { - "type": "string" - }, - "explicit_content_filter": { - "type": "integer" - }, - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "icon": { - "type": "string" - }, - "large": { - "type": "boolean" - }, - "max_members": { - "type": "integer" - }, - "max_presences": { - "type": "integer" - }, - "max_video_channel_users": { - "type": "integer" - }, - "member_count": { - "type": "integer" - }, - "presence_count": { - "type": "integer" - }, - "members": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Member" - } - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" - } - }, - "channels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Channel" - } - }, - "template_id": { - "type": "string" - }, - "template": { - "$ref": "#/components/schemas/Template" - }, - "emojis": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Emoji" - } - }, - "stickers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Sticker" - } - }, - "invites": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Invite" - } - }, - "voice_states": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VoiceState" - } - }, - "webhooks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Webhook" - } - }, - "mfa_level": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "owner_id": { - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/User" - }, - "preferred_locale": { - "type": "string" - }, - "premium_subscription_count": { - "type": "integer" - }, - "premium_tier": { - "type": "integer" - }, - "public_updates_channel_id": { - "type": "string" - }, - "public_updates_channel": { - "$ref": "#/components/schemas/Channel" - }, - "rules_channel_id": { - "type": "string" - }, - "rules_channel": { - "type": "string" - }, - "region": { - "type": "string" - }, - "splash": { - "type": "string" - }, - "system_channel_id": { - "type": "string" - }, - "system_channel": { - "$ref": "#/components/schemas/Channel" - }, - "system_channel_flags": { - "type": "integer" - }, - "unavailable": { - "type": "boolean" - }, - "vanity_url_code": { - "type": "string" - }, - "vanity_url": { - "$ref": "#/components/schemas/Invite" - }, - "verification_level": { - "type": "integer" - }, - "welcome_screen": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "welcome_channels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "emoji_id": { - "type": "string" - }, - "emoji_name": { - "type": "string" - }, - "channel_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": ["channel_id", "description", "emoji_name"] - } - } - }, - "additionalProperties": false, - "required": ["description", "enabled", "welcome_channels"] - }, - "widget_channel_id": { - "type": "string" - }, - "widget_channel": { - "$ref": "#/components/schemas/Channel" - }, - "widget_enabled": { - "type": "boolean" - }, - "id": { - "type": "string" - } - }, - "required": [ - "bans", - "channels", - "emojis", - "features", - "id", - "invites", - "members", - "name", - "owner", - "owner_id", - "public_updates_channel_id", - "roles", - "stickers", - "template", - "template_id", - "voice_states", - "webhooks", - "welcome_screen" - ] - }, - "Channel": { - "type": "object", - "properties": { - "created_at": { - "type": "string", - "format": "date-time" - }, - "name": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/ChannelType" - }, - "recipients": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Recipient" - } - }, - "last_message_id": { - "type": "string" - }, - "last_message": { - "$ref": "#/components/schemas/Message" - }, - "guild_id": { - "type": "string" - }, - "guild": { - "$ref": "#/components/schemas/Guild" - }, - "parent_id": { - "type": "string" - }, - "parent": { - "$ref": "#/components/schemas/Channel" - }, - "owner_id": { - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/User" - }, - "last_pin_timestamp": { - "type": "integer" - }, - "default_auto_archive_duration": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChannelPermissionOverwrite" - } - }, - "video_quality_mode": { - "type": "integer" - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "nsfw": { - "type": "boolean" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "topic": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": [ - "created_at", - "guild", - "id", - "last_message_id", - "name", - "owner", - "owner_id", - "parent_id", - "permission_overwrites", - "position", - "type" - ] - }, - "ChannelType": { - "enum": [0, 1, 2, 3, 4, 5, 6], - "type": "number" - }, - "Recipient": { - "type": "object", - "properties": { - "channel_id": { - "type": "string" - }, - "channel": { - "$ref": "#/components/schemas/Channel" - }, - "user": { - "$ref": "#/components/schemas/User" - }, - "id": { - "type": "string" - } - }, - "required": ["channel", "channel_id", "id", "user"] - }, - "Message": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "channel_id": { - "type": "string" - }, - "channel": { - "$ref": "#/components/schemas/Channel" - }, - "guild_id": { - "type": "string" - }, - "guild": { - "$ref": "#/components/schemas/Guild" - }, - "author_id": { - "type": "string" - }, - "author": { - "$ref": "#/components/schemas/User" - }, - "member_id": { - "type": "string" - }, - "member": { - "$ref": "#/components/schemas/Member" - }, - "webhook_id": { - "type": "string" - }, - "webhook": { - "$ref": "#/components/schemas/Webhook" - }, - "application_id": { - "type": "string" - }, - "application": { - "$ref": "#/components/schemas/Application" - }, - "content": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "edited_timestamp": { - "type": "string", - "format": "date-time" - }, - "tts": { - "type": "boolean" - }, - "mention_everyone": { - "type": "boolean" - }, - "mentions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/User" - } - }, - "mention_roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" - } - }, - "mention_channels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Channel" - } - }, - "sticker_items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Sticker" - } - }, - "attachments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Attachment" - } - }, - "embeds": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Embed" - } - }, - "reactions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Reaction" - } - }, - "nonce": { - "type": "string" - }, - "pinned": { - "type": "boolean" - }, - "type": { - "$ref": "#/components/schemas/MessageType" - }, - "activity": { - "type": "object", - "properties": { - "type": { - "type": "integer" - }, - "party_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": ["party_id", "type"] - }, - "flags": { - "type": "string" - }, - "message_reference": { - "type": "object", - "properties": { - "message_id": { - "type": "string" - }, - "channel_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": ["message_id"] - }, - "referenced_message": { - "$ref": "#/components/schemas/Message" - }, - "interaction": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/InteractionType" - }, - "name": { - "type": "string" - }, - "user_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": ["id", "name", "type", "user_id"] - }, - "components": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MessageComponent" - } - } - }, - "required": [ - "application_id", - "author_id", - "channel", - "channel_id", - "embeds", - "id", - "member_id", - "mention_channels", - "mention_roles", - "mentions", - "reactions", - "timestamp", - "type", - "webhook_id" - ] - }, - "Member": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "user": { - "$ref": "#/components/schemas/User" - }, - "guild_id": { - "type": "string" - }, - "guild": { - "$ref": "#/components/schemas/Guild" - }, - "nick": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Role" - } - }, - "joined_at": { - "type": "string", - "format": "date-time" - }, - "premium_since": { - "type": "string", - "format": "date-time" - }, - "deaf": { - "type": "boolean" - }, - "mute": { - "type": "boolean" - }, - "pending": { - "type": "boolean" - }, - "settings": { - "$ref": "#/components/schemas/UserGuildSettings" - }, - "id": { - "type": "string" - } - }, - "required": ["deaf", "guild", "guild_id", "id", "joined_at", "mute", "pending", "roles", "settings", "user", "user_id"] - }, - "Role": { - "type": "object", - "properties": { - "guild_id": { - "type": "string" - }, - "guild": { - "$ref": "#/components/schemas/Guild" - }, - "color": { - "type": "integer" - }, - "hoist": { - "type": "boolean" - }, - "managed": { - "type": "boolean" - }, - "mentionable": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "permissions": { - "type": "string" - }, - "position": { - "type": "integer" - }, - "tags": { - "type": "object", - "properties": { - "bot_id": { - "type": "string" - }, - "integration_id": { - "type": "string" - }, - "premium_subscriber": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "id": { - "type": "string" - } - }, - "required": ["color", "guild", "guild_id", "hoist", "id", "managed", "mentionable", "name", "permissions", "position"] - }, - "UserGuildSettings": { - "type": "object", - "properties": { - "channel_overrides": { - "type": "array", - "items": { - "type": "object", - "properties": { - "channel_id": { - "type": "string" - }, - "message_notifications": { - "type": "integer" - }, - "mute_config": { - "$ref": "#/components/schemas/MuteConfig" - }, - "muted": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": ["channel_id", "message_notifications", "mute_config", "muted"] - } - }, - "message_notifications": { - "type": "integer" - }, - "mobile_push": { - "type": "boolean" - }, - "mute_config": { - "$ref": "#/components/schemas/MuteConfig" - }, - "muted": { - "type": "boolean" - }, - "suppress_everyone": { - "type": "boolean" - }, - "suppress_roles": { - "type": "boolean" - }, - "version": { - "type": "integer" - } - }, - "required": [ - "channel_overrides", - "message_notifications", - "mobile_push", - "mute_config", - "muted", - "suppress_everyone", - "suppress_roles", - "version" - ] - }, - "MuteConfig": { - "type": "object", - "properties": { - "end_time": { - "type": "integer" - }, - "selected_time_window": { - "type": "integer" - } - }, - "required": ["end_time", "selected_time_window"] - }, - "Webhook": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/WebhookType" - }, - "name": { - "type": "string" - }, - "avatar": { - "type": "string" - }, - "token": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "guild": { - "$ref": "#/components/schemas/Guild" - }, - "channel_id": { - "type": "string" - }, - "channel": { - "$ref": "#/components/schemas/Channel" - }, - "application_id": { - "type": "string" - }, - "application": { - "$ref": "#/components/schemas/Application" - }, - "user_id": { - "type": "string" - }, - "user": { - "$ref": "#/components/schemas/User" - }, - "source_guild_id": { - "type": "string" - }, - "source_guild": { - "$ref": "#/components/schemas/Guild" - } - }, - "required": [ - "application", - "application_id", - "channel", - "channel_id", - "guild", - "guild_id", - "id", - "source_guild", - "source_guild_id", - "type", - "user", - "user_id" - ] - }, - "WebhookType": { - "enum": [1, 2], - "type": "number" - }, - "Application": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "icon": { - "type": "string" - }, - "description": { - "type": "string" - }, - "rpc_origins": { - "type": "array", - "items": { - "type": "string" - } - }, - "bot_public": { - "type": "boolean" - }, - "bot_require_code_grant": { - "type": "boolean" - }, - "terms_of_service_url": { - "type": "string" - }, - "privacy_policy_url": { - "type": "string" - }, - "owner": { - "$ref": "#/components/schemas/User" - }, - "summary": { - "type": "string" - }, - "verify_key": { - "type": "string" - }, - "team": { - "$ref": "#/components/schemas/Team" - }, - "guild": { - "$ref": "#/components/schemas/Guild" - }, - "primary_sku_id": { - "type": "string" - }, - "slug": { - "type": "string" - }, - "cover_image": { - "type": "string" - }, - "flags": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": ["bot_public", "bot_require_code_grant", "description", "flags", "guild", "id", "name", "verify_key"] - }, - "Sticker": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "tags": { - "type": "string" - }, - "pack_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "guild": { - "$ref": "#/components/schemas/Guild" - }, - "type": { - "$ref": "#/components/schemas/StickerType" - }, - "format_type": { - "$ref": "#/components/schemas/StickerFormatType" - }, - "id": { - "type": "string" - } - }, - "required": ["format_type", "id", "name", "pack_id", "tags", "type"] - }, - "StickerType": { - "enum": [1, 2], - "type": "number" - }, - "StickerFormatType": { - "enum": [1, 2, 3], - "type": "number" - }, - "Attachment": { - "type": "object", - "properties": { - "filename": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - }, - "content_type": { - "type": "string" - }, - "message_id": { - "type": "string" - }, - "message": { - "$ref": "#/components/schemas/Message" - }, - "id": { - "type": "string" - } - }, - "required": ["filename", "id", "message", "message_id", "proxy_url", "size", "url"] - }, - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": ["article", "gifv", "image", "link", "rich", "video"], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": ["text"] - }, - "image": { - "$ref": "#/components/schemas/EmbedImage" - }, - "thumbnail": { - "$ref": "#/components/schemas/EmbedImage" - }, - "video": { - "$ref": "#/components/schemas/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": ["name", "value"] - } - } - } - }, - "EmbedType": { - "enum": ["article", "gifv", "image", "link", "rich", "video"], - "type": "string" - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - } - }, - "Reaction": { - "type": "object", - "properties": { - "count": { - "type": "integer" - }, - "emoji": { - "$ref": "#/components/schemas/PartialEmoji" - }, - "user_ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": ["count", "emoji", "user_ids"] - }, - "PartialEmoji": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "animated": { - "type": "boolean" - } - }, - "required": ["name"] - }, - "MessageType": { - "enum": [0, 1, 10, 11, 12, 14, 15, 19, 2, 20, 3, 4, 5, 6, 7, 8, 9], - "type": "number" - }, - "InteractionType": { - "enum": [1, 2], - "type": "number" - }, - "MessageComponent": { - "type": "object", - "properties": { - "type": { - "type": "integer" - }, - "style": { - "type": "integer" - }, - "label": { - "type": "string" - }, - "emoji": { - "$ref": "#/components/schemas/PartialEmoji" - }, - "custom_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "disabled": { - "type": "boolean" - }, - "components": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MessageComponent" - } - } - }, - "required": ["components", "type"] - }, - "ChannelPermissionOverwrite": { - "type": "object", - "properties": { - "allow": { - "type": "number" - }, - "deny": { - "type": "number" - }, - "id": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/ChannelPermissionOverwriteType" - } - }, - "required": ["allow", "deny", "id", "type"] - }, - "ChannelPermissionOverwriteType": { - "enum": [0, 1], - "type": "number" - }, - "Ban": { - "type": "object", - "properties": { - "user_id": { - "type": "string" - }, - "user": { - "$ref": "#/components/schemas/User" - }, - "guild_id": { - "type": "string" - }, - "guild": { - "$ref": "#/components/schemas/Guild" - }, - "executor_id": { - "type": "string" - }, - "executor": { - "$ref": "#/components/schemas/User" - }, - "ip": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": ["executor", "executor_id", "guild", "guild_id", "id", "ip", "user", "user_id"] - }, - "Template": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "usage_count": { - "type": "integer" - }, - "creator_id": { - "type": "string" - }, - "creator": { - "$ref": "#/components/schemas/User" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "source_guild_id": { - "type": "string" - }, - "source_guild": { - "$ref": "#/components/schemas/Guild" - }, - "serialized_source_guild": { - "$ref": "#/components/schemas/Guild" - }, - "id": { - "type": "string" - } - }, - "required": [ - "code", - "created_at", - "creator", - "creator_id", - "id", - "name", - "serialized_source_guild", - "source_guild", - "source_guild_id", - "updated_at" - ] - }, - "Emoji": { - "type": "object", - "properties": { - "animated": { - "type": "boolean" - }, - "available": { - "type": "boolean" - }, - "guild_id": { - "type": "string" - }, - "guild": { - "$ref": "#/components/schemas/Guild" - }, - "managed": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "require_colons": { - "type": "boolean" - }, - "id": { - "type": "string" - } - }, - "required": ["animated", "available", "guild", "guild_id", "id", "managed", "name", "require_colons"] - }, - "Invite": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "temporary": { - "type": "boolean" - }, - "uses": { - "type": "integer" - }, - "max_uses": { - "type": "integer" - }, - "max_age": { - "type": "integer" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "expires_at": { - "type": "string", - "format": "date-time" - }, - "guild_id": { - "type": "string" - }, - "guild": { - "$ref": "#/components/schemas/Guild" - }, - "channel_id": { - "type": "string" - }, - "channel": { - "$ref": "#/components/schemas/Channel" - }, - "inviter_id": { - "type": "string" - }, - "inviter": { - "$ref": "#/components/schemas/User" - }, - "target_user_id": { - "type": "string" - }, - "target_user": { - "type": "string" - }, - "target_user_type": { - "type": "integer" - }, - "id": { - "type": "string" - } - }, - "required": [ - "channel", - "channel_id", - "code", - "created_at", - "expires_at", - "guild", - "guild_id", - "id", - "inviter", - "inviter_id", - "max_age", - "max_uses", - "target_user_id", - "temporary", - "uses" - ] - }, - "VoiceState": { - "type": "object", - "properties": { - "guild_id": { - "type": "string" - }, - "guild": { - "$ref": "#/components/schemas/Guild" - }, - "channel_id": { - "type": "string" - }, - "channel": { - "$ref": "#/components/schemas/Channel" - }, - "user_id": { - "type": "string" - }, - "user": { - "$ref": "#/components/schemas/User" - }, - "session_id": { - "type": "string" - }, - "deaf": { - "type": "boolean" - }, - "mute": { - "type": "boolean" - }, - "self_deaf": { - "type": "boolean" - }, - "self_mute": { - "type": "boolean" - }, - "self_stream": { - "type": "boolean" - }, - "self_video": { - "type": "boolean" - }, - "suppress": { - "type": "boolean" - }, - "id": { - "type": "string" - } - }, - "required": [ - "channel", - "channel_id", - "deaf", - "guild_id", - "id", - "mute", - "self_deaf", - "self_mute", - "self_video", - "session_id", - "suppress", - "user", - "user_id" - ] - }, - "AuditLogEvents": { - "enum": [ - 1, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 40, 41, 42, 50, 51, 52, 60, 61, 62, 72, 73, - 74, 75, 80, 81, 82 - ], - "type": "number" - }, - "AuditLogChange": { - "type": "object", - "properties": { - "new_value": { - "$ref": "#/components/schemas/AuditLogChangeValue" - }, - "old_value": { - "$ref": "#/components/schemas/AuditLogChangeValue" - }, - "key": { - "type": "string" - } - }, - "required": ["key"] - }, - "AuditLogChangeValue": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "icon_hash": { - "type": "string" - }, - "splash_hash": { - "type": "string" - }, - "discovery_splash_hash": { - "type": "string" - }, - "banner_hash": { - "type": "string" - }, - "owner_id": { - "type": "string" - }, - "region": { - "type": "string" - }, - "preferred_locale": { - "type": "string" - }, - "afk_channel_id": { - "type": "string" - }, - "afk_timeout": { - "type": "integer" - }, - "rules_channel_id": { - "type": "string" - }, - "public_updates_channel_id": { - "type": "string" - }, - "mfa_level": { - "type": "integer" - }, - "verification_level": { - "type": "integer" - }, - "explicit_content_filter": { - "type": "integer" - }, - "default_message_notifications": { - "type": "integer" - }, - "vanity_url_code": { - "type": "string" - }, - "$add": { - "type": "array", - "items": { - "type": "object", - "properties": {} - } - }, - "$remove": { - "type": "array", - "items": { - "type": "object", - "properties": {} - } - }, - "prune_delete_days": { - "type": "integer" - }, - "widget_enabled": { - "type": "boolean" - }, - "widget_channel_id": { - "type": "string" - }, - "system_channel_id": { - "type": "string" - }, - "position": { - "type": "integer" - }, - "topic": { - "type": "string" - }, - "bitrate": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChannelPermissionOverwrite" - } - }, - "nsfw": { - "type": "boolean" - }, - "application_id": { - "type": "string" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "permissions": { - "type": "string" - }, - "color": { - "type": "integer" - }, - "hoist": { - "type": "boolean" - }, - "mentionable": { - "type": "boolean" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - }, - "code": { - "type": "string" - }, - "channel_id": { - "type": "string" - }, - "inviter_id": { - "type": "string" - }, - "max_uses": { - "type": "integer" - }, - "uses": { - "type": "integer" - }, - "max_age": { - "type": "integer" - }, - "temporary": { - "type": "boolean" - }, - "deaf": { - "type": "boolean" - }, - "mute": { - "type": "boolean" - }, - "nick": { - "type": "string" - }, - "avatar_hash": { - "type": "string" - }, - "id": { - "type": "string" - }, - "type": { - "type": "integer" - }, - "enable_emoticons": { - "type": "boolean" - }, - "expire_behavior": { - "type": "integer" - }, - "expire_grace_period": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - } - } - }, - "AuditLog": { - "type": "object", - "properties": { - "target": { - "$ref": "#/components/schemas/User" - }, - "user_id": { - "type": "string" - }, - "user": { - "$ref": "#/components/schemas/User" - }, - "action_type": { - "$ref": "#/components/schemas/AuditLogEvents" - }, - "options": { - "type": "object", - "properties": { - "delete_member_days": { - "type": "string" - }, - "members_removed": { - "type": "string" - }, - "channel_id": { - "type": "string" - }, - "messaged_id": { - "type": "string" - }, - "count": { - "type": "string" - }, - "id": { - "type": "string" - }, - "type": { - "type": "string" - }, - "role_name": { - "type": "string" - } - }, - "additionalProperties": false - }, - "changes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AuditLogChange" - } - }, - "reason": { - "type": "string" - }, - "id": { - "type": "string" - } - }, - "required": ["action_type", "changes", "id", "user", "user_id"] - }, - "ReadState": { - "type": "object", - "properties": { - "channel_id": { - "type": "string" - }, - "channel": { - "$ref": "#/components/schemas/Channel" - }, - "user_id": { - "type": "string" - }, - "user": { - "$ref": "#/components/schemas/User" - }, - "last_message_id": { - "type": "string" - }, - "last_message": { - "$ref": "#/components/schemas/Message" - }, - "last_pin_timestamp": { - "type": "string", - "format": "date-time" - }, - "mention_count": { - "type": "integer" - }, - "manual": { - "type": "boolean" - }, - "id": { - "type": "string" - } - }, - "required": ["channel", "channel_id", "id", "last_message_id", "manual", "mention_count", "user", "user_id"] - }, - "UserPublic": { - "type": "object", - "properties": { - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "integer" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - } - }, - "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] - }, - "UserPrivate": { - "type": "object", - "properties": { - "locale": { - "type": "string" - }, - "disabled": { - "type": "boolean" - }, - "username": { - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "id": { - "type": "string" - }, - "public_flags": { - "type": "string" - }, - "avatar": { - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string" - }, - "bio": { - "type": "string" - }, - "bot": { - "type": "boolean" - }, - "flags": { - "type": "string" - }, - "mfa_enabled": { - "type": "boolean" - }, - "email": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "verified": { - "type": "boolean" - }, - "nsfw_allowed": { - "type": "boolean" - }, - "premium": { - "type": "boolean" - }, - "premium_type": { - "type": "integer" - } - }, - "required": [ - "bio", - "bot", - "disabled", - "discriminator", - "flags", - "id", - "locale", - "mfa_enabled", - "nsfw_allowed", - "premium", - "premium_type", - "public_flags", - "username", - "verified" - ] - }, - "BanCreateSchema": { - "type": "object", - "properties": { - "delete_message_days": { - "type": "string" - }, - "reason": { - "type": "string" - } - } - }, - "DmChannelCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": ["recipients"] - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": "string", - "nullable": true - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "number" - }, - "deny": { - "type": "number" - } - }, - "additionalProperties": false, - "required": ["allow", "deny", "id", "type"] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - } - } - }, - "ChannelGuildPositionUpdateSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": ["id"] - } - }, - "EmojiCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "image": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": ["image", "name"] - }, - "GuildCreateSchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "region": { - "type": "string" - }, - "icon": { - "type": "string", - "nullable": true - }, - "channels": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ChannelModifySchema" - } - }, - "guild_template_code": { - "type": "string" - }, - "system_channel_id": { - "type": "string" - }, - "rules_channel_id": { - "type": "string" - } - }, - "required": ["name"] - }, - "GuildUpdateSchema": { - "type": "object", - "properties": { - "banner": { - "type": "string", - "nullable": true - }, - "splash": { - "type": "string", - "nullable": true - }, - "description": { - "type": "string" - }, - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "verification_level": { - "type": "integer" - }, - "default_message_notifications": { - "type": "integer" - }, - "system_channel_flags": { - "type": "integer" - }, - "explicit_content_filter": { - "type": "integer" - }, - "public_updates_channel_id": { - "type": "string" - }, - "afk_timeout": { - "type": "integer" - }, - "afk_channel_id": { - "type": "string" - }, - "preferred_locale": { - "type": "string" - }, - "name": { - "maxLength": 100, - "type": "string" - }, - "region": { - "type": "string" - }, - "icon": { - "type": "string", - "nullable": true - }, - "guild_template_code": { - "type": "string" - }, - "system_channel_id": { - "type": "string" - }, - "rules_channel_id": { - "type": "string" - } - }, - "required": ["name"] - }, - "GuildTemplateCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "avatar": { - "type": "string", - "nullable": true - } - }, - "required": ["name"] - }, - "GuildUpdateWelcomeScreenSchema": { - "type": "object", - "properties": { - "welcome_channels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "channel_id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "emoji_id": { - "type": "string" - }, - "emoji_name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": ["channel_id", "description", "emoji_name"] - } - }, - "enabled": { - "type": "boolean" - }, - "description": { - "type": "string" - } - } - }, - "InviteCreateSchema": { - "type": "object", - "properties": { - "target_user_id": { - "type": "string" - }, - "target_type": { - "type": "string" - }, - "validate": { - "type": "string" - }, - "max_age": { - "type": "integer" - }, - "max_uses": { - "type": "integer" - }, - "temporary": { - "type": "boolean" - }, - "unique": { - "type": "boolean" - }, - "target_user": { - "type": "string" - }, - "target_user_type": { - "type": "integer" - } - } - }, - "MemberCreateSchema": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "nick": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "joined_at": { - "type": "string", - "format": "date-time" - } - }, - "required": ["guild_id", "id", "joined_at", "nick"] - }, - "MemberNickChangeSchema": { - "type": "object", - "properties": { - "nick": { - "type": "string" - } - }, - "required": ["nick"] - }, - "MemberChangeSchema": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - } - }, - "MessageCreateSchema": { - "type": "object", - "properties": { - "content": { - "type": "string" - }, - "nonce": { - "type": "string" - }, - "tts": { - "type": "boolean" - }, - "flags": { - "type": "string" - }, - "embeds": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Embed" - } - }, - "embed": { - "$ref": "#/components/schemas/Embed" - }, - "allowed_mentions": { - "type": "object", - "properties": { - "parse": { - "type": "array", - "items": { - "type": "string" - } - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "items": { - "type": "string" - } - }, - "replied_user": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "message_reference": { - "type": "object", - "properties": { - "message_id": { - "type": "string" - }, - "channel_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "fail_if_not_exists": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": ["channel_id", "message_id"] - }, - "payload_json": { - "type": "string" - }, - "file": {}, - "attachments": { - "type": "array", - "items": {} - } - } - }, - "RoleModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "permissions": { - "type": "number" - }, - "color": { - "type": "integer" - }, - "hoist": { - "type": "boolean" - }, - "mentionable": { - "type": "boolean" - }, - "position": { - "type": "integer" - } - } - }, - "TemplateCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "required": ["name"] - }, - "TemplateModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "required": ["name"] - }, - "UserModifySchema": { - "type": "object", - "properties": { - "username": { - "minLength": 1, - "maxLength": 100, - "type": "string" - }, - "avatar": { - "type": "string", - "nullable": true - }, - "bio": { - "maxLength": 1024, - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": "string", - "nullable": true - }, - "password": { - "type": "string" - }, - "new_password": { - "type": "string" - }, - "code": { - "type": "string" - } - } - }, - "UserSettingsSchema": { - "type": "object", - "properties": { - "afk_timeout": { - "type": "integer" - }, - "allow_accessibility_detection": { - "type": "boolean" - }, - "animate_emoji": { - "type": "boolean" - }, - "animate_stickers": { - "type": "integer" - }, - "contact_sync_enabled": { - "type": "boolean" - }, - "convert_emoticons": { - "type": "boolean" - }, - "custom_status": { - "type": "object", - "properties": { - "emoji_id": { - "type": "string" - }, - "emoji_name": { - "type": "string" - }, - "expires_at": { - "type": "integer" - }, - "text": { - "type": "string" - } - }, - "additionalProperties": false - }, - "default_guilds_restricted": { - "type": "boolean" - }, - "detect_platform_accounts": { - "type": "boolean" - }, - "developer_mode": { - "type": "boolean" - }, - "disable_games_tab": { - "type": "boolean" - }, - "enable_tts_command": { - "type": "boolean" - }, - "explicit_content_filter": { - "type": "integer" - }, - "friend_source_flags": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": ["all"] - }, - "gateway_connected": { - "type": "boolean" - }, - "gif_auto_play": { - "type": "boolean" - }, - "guild_folders": { - "type": "array", - "items": { - "type": "object", - "properties": { - "color": { - "type": "integer" - }, - "guild_ids": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": ["color", "guild_ids", "id", "name"] - } - }, - "guild_positions": { - "type": "array", - "items": { - "type": "string" - } - }, - "inline_attachment_media": { - "type": "boolean" - }, - "inline_embed_media": { - "type": "boolean" - }, - "locale": { - "type": "string" - }, - "message_display_compact": { - "type": "boolean" - }, - "native_phone_integration_enabled": { - "type": "boolean" - }, - "render_embeds": { - "type": "boolean" - }, - "render_reactions": { - "type": "boolean" - }, - "restricted_guilds": { - "type": "array", - "items": { - "type": "string" - } - }, - "show_current_game": { - "type": "boolean" - }, - "status": { - "enum": ["dnd", "idle", "offline", "online", "invisible"], - "type": "string" - }, - "stream_notifications_enabled": { - "type": "boolean" - }, - "theme": { - "enum": ["dark", "white"], - "type": "string" - }, - "timezone_offset": { - "type": "integer" - } - }, - "required": [ - "afk_timeout", - "allow_accessibility_detection", - "animate_emoji", - "animate_stickers", - "contact_sync_enabled", - "convert_emoticons", - "custom_status", - "default_guilds_restricted", - "detect_platform_accounts", - "developer_mode", - "disable_games_tab", - "enable_tts_command", - "explicit_content_filter", - "friend_source_flags", - "gateway_connected", - "gif_auto_play", - "guild_folders", - "guild_positions", - "inline_attachment_media", - "inline_embed_media", - "locale", - "message_display_compact", - "native_phone_integration_enabled", - "render_embeds", - "render_reactions", - "restricted_guilds", - "show_current_game", - "status", - "stream_notifications_enabled", - "theme", - "timezone_offset" - ] - }, - "WidgetModifySchema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "channel_id": { - "type": "string" - } - }, - "required": ["channel_id", "enabled"] - }, - "RegisterSchema": { - "type": "object", - "properties": { - "username": { - "minLength": 2, - "maxLength": 32, - "type": "string" - }, - "password": { - "minLength": 1, - "maxLength": 72, - "type": "string" - }, - "consent": { - "type": "boolean" - }, - "email": { - "format": "email", - "type": "string" - }, - "fingerprint": { - "type": "string" - }, - "invite": { - "type": "string" - }, - "date_of_birth": { - "type": "string" - }, - "gift_code_sku_id": { - "type": "string" - }, - "captcha_key": { - "type": "string" - } - }, - "required": ["consent", "username"] - }, - "LoginSchema": { - "type": "object", - "properties": { - "login": { - "type": "string" - }, - "password": { - "type": "string" - }, - "undelete": { - "type": "boolean" - }, - "captcha_key": { - "type": "string" - }, - "login_source": { - "type": "string" - }, - "gift_code_sku_id": { - "type": "string" - } - }, - "required": ["login", "password"] - }, - "MessageAcknowledgeSchema": { - "type": "object", - "properties": { - "manual": { - "type": "boolean" - }, - "mention_count": { - "type": "integer" - } - } - }, - "BulkDeleteSchema": { - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": ["messages"] - }, - "ChannelPermissionOverwriteSchema": { - "type": "object", - "properties": { - "allow": { - "type": "number" - }, - "deny": { - "type": "number" - }, - "id": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/ChannelPermissionOverwriteType" - } - }, - "required": ["allow", "deny", "id", "type"] - }, - "WebhookCreateSchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 80, - "type": "string" - }, - "avatar": { - "type": "string" - } - }, - "required": ["avatar", "name"] - }, - "ChannelReorderSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - }, - "lock_permissions": { - "type": "boolean" - }, - "parent_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": ["id"] - } - }, - "RolePositionUpdateSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": ["id", "position"] - } - }, - "VanityUrlSchema": { - "type": "object", - "properties": { - "code": { - "minLength": 1, - "maxLength": 20, - "type": "string" - } - } - }, - "VoiceStateUpdateSchema": { - "type": "object", - "properties": { - "channel_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "suppress": { - "type": "boolean" - }, - "request_to_speak_timestamp": { - "type": "string", - "format": "date-time" - }, - "self_mute": { - "type": "boolean" - }, - "self_deaf": { - "type": "boolean" - }, - "self_video": { - "type": "boolean" - } - }, - "required": ["channel_id"] - }, - "UserProfileResponse": { - "type": "object", - "properties": { - "user": { - "$ref": "#/components/schemas/UserPublic" - }, - "connected_accounts": { - "$ref": "#/components/schemas/PublicConnectedAccount" - }, - "premium_guild_since": { - "type": "string", - "format": "date-time" - }, - "premium_since": { - "type": "string", - "format": "date-time" - } - }, - "required": ["connected_accounts", "user"] - }, - "RelationshipPutSchema": { - "type": "object", - "properties": { - "type": { - "enum": [1, 2, 3, 4], - "type": "number" - } - } - }, - "RelationshipPostSchema": { - "type": "object", - "properties": { - "discriminator": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "required": ["discriminator", "username"] - }, - "PublicConnectedAccount": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string" - }, - "verifie": { - "type": "boolean" - } - }, - "required": ["name", "type", "verifie"] - } - }, - "requestBodies": {}, - "securitySchemes": { - "Token": { - "type": "apiKey", - "name": "Authorization", - "in": "header" - } - }, - "links": {}, - "callbacks": {} - } -} diff --git a/api/assets/plugins/.gitkeep b/api/assets/plugins/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/api/assets/preload-plugins/.gitkeep b/api/assets/preload-plugins/.gitkeep deleted file mode 100644 index 8b137891..00000000 --- a/api/assets/preload-plugins/.gitkeep +++ /dev/null @@ -1 +0,0 @@ - diff --git a/api/assets/schemas.json b/api/assets/schemas.json deleted file mode 100644 index 9286b804..00000000 --- a/api/assets/schemas.json +++ /dev/null @@ -1,2184 +0,0 @@ -{ - "ts.server.TypingInstallerResponse": { - "type": "object", - "properties": { - "kind": { - "enum": [ - "action::invalidate", - "action::packageInstalled", - "action::set", - "event::beginInstallTypes", - "event::endInstallTypes", - "event::initializationFailed", - "event::typesRegistry" - ], - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ts.server.PackageInstalledResponse": { - "type": "object", - "properties": { - "kind": { - "type": "string", - "enum": [ - "action::packageInstalled" - ] - }, - "success": { - "type": "boolean" - }, - "message": { - "type": "string" - }, - "projectName": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "message", - "projectName", - "success" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ts.server.InitializationFailedResponse": { - "type": "object", - "properties": { - "kind": { - "type": "string", - "enum": [ - "event::initializationFailed" - ] - }, - "message": { - "type": "string" - }, - "stack": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "message" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ts.server.ProjectResponse": { - "type": "object", - "properties": { - "projectName": { - "type": "string" - }, - "kind": { - "enum": [ - "action::invalidate", - "action::packageInstalled", - "action::set", - "event::beginInstallTypes", - "event::endInstallTypes", - "event::initializationFailed", - "event::typesRegistry" - ], - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "kind", - "projectName" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RouteResponse": { - "type": "object", - "properties": { - "status": { - "type": "integer" - }, - "body": { - "type": "array", - "items": { - "type": "string" - } - }, - "headers": { - "$ref": "#/definitions/Record" - } - }, - "additionalProperties": false, - "definitions": { - "Record": { - "type": "object", - "additionalProperties": false - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "BanCreateSchema": { - "type": "object", - "properties": { - "delete_message_days": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "BanModeratorSchema": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "executor_id": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "executor_id", - "guild_id", - "id", - "user_id" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "BanRegistrySchema": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "user_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "executor_id": { - "type": "string" - }, - "ip": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "executor_id", - "guild_id", - "id", - "user_id" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "BulkDeleteSchema": { - "type": "object", - "properties": { - "messages": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "messages" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - }, - "flags": { - "type": "integer" - }, - "default_thread_rate_limit_per_user": { - "type": "integer" - } - }, - "additionalProperties": false, - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ChannelPermissionOverwriteSchema": { - "type": "object", - "properties": { - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - }, - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ], - "definitions": { - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ChannelReorderSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - }, - "lock_permissions": { - "type": "boolean" - }, - "parent_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "id" - ] - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "DmChannelCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "recipients": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "recipients" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "EmojiCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "image": { - "type": "string" - }, - "require_colons": { - "type": [ - "null", - "boolean" - ] - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "required": [ - "image" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "EmojiModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildCreateSchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "region": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "channels": { - "type": "array", - "items": { - "$ref": "#/definitions/ChannelModifySchema" - } - }, - "guild_template_code": { - "type": "string" - }, - "system_channel_id": { - "type": "string" - }, - "rules_channel_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ], - "definitions": { - "ChannelModifySchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 100, - "type": "string" - }, - "type": { - "enum": [ - 0, - 1, - 10, - 11, - 12, - 13, - 14, - 15, - 2, - 255, - 3, - 33, - 34, - 35, - 4, - 5, - 6, - 64, - 7, - 8, - 9 - ], - "type": "number" - }, - "topic": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "bitrate": { - "type": "integer" - }, - "user_limit": { - "type": "integer" - }, - "rate_limit_per_user": { - "type": "integer" - }, - "position": { - "type": "integer" - }, - "permission_overwrites": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ChannelPermissionOverwriteType" - }, - "allow": { - "type": "string" - }, - "deny": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "allow", - "deny", - "id", - "type" - ] - } - }, - "parent_id": { - "type": "string" - }, - "id": { - "type": "string" - }, - "nsfw": { - "type": "boolean" - }, - "rtc_region": { - "type": "string" - }, - "default_auto_archive_duration": { - "type": "integer" - }, - "flags": { - "type": "integer" - }, - "default_thread_rate_limit_per_user": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "ChannelPermissionOverwriteType": { - "enum": [ - 0, - 1, - 2 - ], - "type": "number" - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildTemplateCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "avatar": { - "type": [ - "null", - "string" - ] - } - }, - "additionalProperties": false, - "required": [ - "name" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildUpdateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "banner": { - "type": [ - "null", - "string" - ] - }, - "splash": { - "type": [ - "null", - "string" - ] - }, - "description": { - "type": "string" - }, - "features": { - "type": "array", - "items": { - "type": "string" - } - }, - "verification_level": { - "type": "integer" - }, - "default_message_notifications": { - "type": "integer" - }, - "system_channel_flags": { - "type": "integer" - }, - "explicit_content_filter": { - "type": "integer" - }, - "public_updates_channel_id": { - "type": "string" - }, - "afk_timeout": { - "type": "integer" - }, - "afk_channel_id": { - "type": "string" - }, - "preferred_locale": { - "type": "string" - }, - "premium_progress_bar_enabled": { - "type": "boolean" - }, - "region": { - "type": "string" - }, - "icon": { - "type": [ - "null", - "string" - ] - }, - "guild_template_code": { - "type": "string" - }, - "system_channel_id": { - "type": "string" - }, - "rules_channel_id": { - "type": "string" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "GuildUpdateWelcomeScreenSchema": { - "type": "object", - "properties": { - "welcome_channels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "channel_id": { - "type": "string" - }, - "description": { - "type": "string" - }, - "emoji_id": { - "type": "string" - }, - "emoji_name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "channel_id", - "description", - "emoji_name" - ] - } - }, - "enabled": { - "type": "boolean" - }, - "description": { - "type": "string" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "IdentifySchema": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "properties": { - "type": "object", - "properties": { - "os": { - "type": "string" - }, - "os_atch": { - "type": "string" - }, - "browser": { - "type": "string" - }, - "device": { - "type": "string" - }, - "$os": { - "type": "string" - }, - "$browser": { - "type": "string" - }, - "$device": { - "type": "string" - }, - "browser_user_agent": { - "type": "string" - }, - "browser_version": { - "type": "string" - }, - "os_version": { - "type": "string" - }, - "referrer": { - "type": "string" - }, - "referring_domain": { - "type": "string" - }, - "referrer_current": { - "type": "string" - }, - "referring_domain_current": { - "type": "string" - }, - "release_channel": { - "enum": [ - "canary", - "dev", - "ptb", - "stable" - ], - "type": "string" - }, - "client_build_number": { - "type": "integer" - }, - "client_event_source": {}, - "client_version": { - "type": "string" - }, - "system_locale": { - "type": "string" - } - }, - "additionalProperties": false - }, - "intents": { - "type": "bigint" - }, - "presence": { - "$ref": "#/definitions/ActivitySchema" - }, - "compress": { - "type": "boolean" - }, - "large_threshold": { - "type": "integer" - }, - "shard": { - "type": "array", - "items": [ - { - "type": "bigint" - }, - { - "type": "bigint" - } - ], - "minItems": 2, - "maxItems": 2 - }, - "guild_subscriptions": { - "type": "boolean" - }, - "capabilities": { - "type": "integer" - }, - "client_state": { - "type": "object", - "properties": { - "guild_hashes": {}, - "highest_last_message_id": { - "type": "string" - }, - "read_state_version": { - "type": "integer" - }, - "user_guild_settings_version": { - "type": "integer" - }, - "user_settings_version": { - "type": "integer" - } - }, - "additionalProperties": false - }, - "v": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "properties", - "token" - ], - "definitions": { - "ActivitySchema": { - "type": "object", - "properties": { - "afk": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/Status" - }, - "activities": { - "type": "array", - "items": { - "$ref": "#/definitions/Activity" - } - }, - "since": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "afk", - "status" - ] - }, - "Status": { - "enum": [ - "dnd", - "idle", - "invisible", - "offline", - "online" - ], - "type": "string" - }, - "Activity": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ActivityType" - }, - "url": { - "type": "string" - }, - "created_at": { - "type": "integer" - }, - "timestamps": { - "type": "object", - "properties": { - "start": { - "type": "integer" - }, - "end": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "end", - "start" - ] - }, - "application_id": { - "type": "string" - }, - "details": { - "type": "string" - }, - "state": { - "type": "string" - }, - "emoji": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - }, - "animated": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "animated", - "name" - ] - }, - "party": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "size": { - "type": "array", - "items": [ - { - "type": "integer" - } - ], - "minItems": 1, - "maxItems": 1 - } - }, - "additionalProperties": false - }, - "assets": { - "type": "object", - "properties": { - "large_image": { - "type": "string" - }, - "large_text": { - "type": "string" - }, - "small_image": { - "type": "string" - }, - "small_text": { - "type": "string" - } - }, - "additionalProperties": false - }, - "secrets": { - "type": "object", - "properties": { - "join": { - "type": "string" - }, - "spectate": { - "type": "string" - }, - "match": { - "type": "string" - } - }, - "additionalProperties": false - }, - "instance": { - "type": "boolean" - }, - "flags": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "flags", - "name", - "type" - ] - }, - "ActivityType": { - "enum": [ - 0, - 1, - 2, - 4, - 5 - ], - "type": "number" - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "InviteCreateSchema": { - "type": "object", - "properties": { - "target_user_id": { - "type": "string" - }, - "target_type": { - "type": "string" - }, - "validate": { - "type": "string" - }, - "max_age": { - "type": "integer" - }, - "max_uses": { - "type": "integer" - }, - "temporary": { - "type": "boolean" - }, - "unique": { - "type": "boolean" - }, - "target_user": { - "type": "string" - }, - "target_user_type": { - "type": "integer" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "LoginSchema": { - "type": "object", - "properties": { - "login": { - "type": "string" - }, - "password": { - "type": "string" - }, - "undelete": { - "type": "boolean" - }, - "captcha_key": { - "type": "string" - }, - "login_source": { - "type": "string" - }, - "gift_code_sku_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "login", - "password" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MemberChangeSchema": { - "type": "object", - "properties": { - "roles": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MemberNickChangeSchema": { - "type": "object", - "properties": { - "nick": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "nick" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MessageAcknowledgeSchema": { - "type": "object", - "properties": { - "manual": { - "type": "boolean" - }, - "mention_count": { - "type": "integer" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MessageCreateSchema": { - "type": "object", - "properties": { - "type": { - "type": "integer" - }, - "content": { - "type": "string" - }, - "nonce": { - "type": "string" - }, - "channel_id": { - "type": "string" - }, - "tts": { - "type": "boolean" - }, - "flags": { - "type": "string" - }, - "embeds": { - "type": "array", - "items": { - "$ref": "#/definitions/Embed" - } - }, - "embed": { - "$ref": "#/definitions/Embed" - }, - "allowed_mentions": { - "type": "object", - "properties": { - "parse": { - "type": "array", - "items": { - "type": "string" - } - }, - "roles": { - "type": "array", - "items": { - "type": "string" - } - }, - "users": { - "type": "array", - "items": { - "type": "string" - } - }, - "replied_user": { - "type": "boolean" - } - }, - "additionalProperties": false - }, - "message_reference": { - "type": "object", - "properties": { - "message_id": { - "type": "string" - }, - "channel_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "fail_if_not_exists": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "channel_id", - "message_id" - ] - }, - "payload_json": { - "type": "string" - }, - "file": {}, - "attachments": { - "description": "TODO: we should create an interface for attachments\nTODO: OpenWAAO<-->attachment-style metadata conversion", - "type": "array", - "items": {} - }, - "sticker_ids": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "additionalProperties": false, - "definitions": { - "Embed": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "type": { - "enum": [ - "article", - "gifv", - "image", - "link", - "rich", - "video" - ], - "type": "string" - }, - "description": { - "type": "string" - }, - "url": { - "type": "string" - }, - "timestamp": { - "type": "string", - "format": "date-time" - }, - "color": { - "type": "integer" - }, - "footer": { - "type": "object", - "properties": { - "text": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "text" - ] - }, - "image": { - "$ref": "#/definitions/EmbedImage" - }, - "thumbnail": { - "$ref": "#/definitions/EmbedImage" - }, - "video": { - "$ref": "#/definitions/EmbedImage" - }, - "provider": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "author": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string" - }, - "icon_url": { - "type": "string" - }, - "proxy_icon_url": { - "type": "string" - } - }, - "additionalProperties": false - }, - "fields": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "value": { - "type": "string" - }, - "inline": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "name", - "value" - ] - } - } - }, - "additionalProperties": false - }, - "EmbedImage": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "proxy_url": { - "type": "string" - }, - "height": { - "type": "integer" - }, - "width": { - "type": "integer" - } - }, - "additionalProperties": false - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "MfaCodesSchema": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "regenerate": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "password" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ModifyGuildStickerSchema": { - "type": "object", - "properties": { - "name": { - "minLength": 2, - "maxLength": 30, - "type": "string" - }, - "description": { - "maxLength": 100, - "type": "string" - }, - "tags": { - "maxLength": 200, - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name", - "tags" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "PruneSchema": { - "type": "object", - "properties": { - "days": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "days" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "PurgeSchema": { - "type": "object", - "properties": { - "before": { - "type": "string" - }, - "after": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "after", - "before" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RegisterSchema": { - "type": "object", - "properties": { - "username": { - "minLength": 2, - "maxLength": 32, - "type": "string" - }, - "password": { - "minLength": 1, - "maxLength": 72, - "type": "string" - }, - "consent": { - "type": "boolean" - }, - "email": { - "format": "email", - "type": "string" - }, - "fingerprint": { - "type": "string" - }, - "invite": { - "type": "string" - }, - "date_of_birth": { - "type": "string" - }, - "gift_code_sku_id": { - "type": "string" - }, - "captcha_key": { - "type": "string" - }, - "promotional_email_opt_in": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "consent", - "username" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RelationshipPostSchema": { - "type": "object", - "properties": { - "discriminator": { - "type": "string" - }, - "username": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "discriminator", - "username" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RelationshipPutSchema": { - "type": "object", - "properties": { - "type": { - "enum": [ - 1, - 2, - 3, - 4 - ], - "type": "number" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RoleModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "permissions": { - "type": "string" - }, - "color": { - "type": "integer" - }, - "hoist": { - "type": "boolean" - }, - "mentionable": { - "type": "boolean" - }, - "position": { - "type": "integer" - }, - "icon": { - "type": "string" - }, - "unicode_emoji": { - "type": "string" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "RolePositionUpdateSchema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "position": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "id", - "position" - ] - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TemplateCreateSchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TemplateModifySchema": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TotpDisableSchema": { - "type": "object", - "properties": { - "code": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "code" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TotpEnableSchema": { - "type": "object", - "properties": { - "password": { - "type": "string" - }, - "code": { - "type": "string" - }, - "secret": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "password" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "TotpSchema": { - "type": "object", - "properties": { - "code": { - "type": "string" - }, - "ticket": { - "type": "string" - }, - "gift_code_sku_id": { - "type": [ - "null", - "string" - ] - }, - "login_source": { - "type": [ - "null", - "string" - ] - } - }, - "additionalProperties": false, - "required": [ - "code", - "ticket" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "UserModifySchema": { - "type": "object", - "properties": { - "username": { - "minLength": 1, - "maxLength": 100, - "type": "string" - }, - "discriminator": { - "type": "string" - }, - "avatar": { - "type": [ - "null", - "string" - ] - }, - "bio": { - "maxLength": 1024, - "type": "string" - }, - "accent_color": { - "type": "integer" - }, - "banner": { - "type": [ - "null", - "string" - ] - }, - "password": { - "type": "string" - }, - "new_password": { - "type": "string" - }, - "code": { - "type": "string" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "UserSettingsSchema": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "afk_timeout": { - "type": "integer" - }, - "allow_accessibility_detection": { - "type": "boolean" - }, - "animate_emoji": { - "type": "boolean" - }, - "animate_stickers": { - "type": "integer" - }, - "contact_sync_enabled": { - "type": "boolean" - }, - "convert_emoticons": { - "type": "boolean" - }, - "custom_status": { - "anyOf": [ - { - "$ref": "#/definitions/CustomStatus" - }, - { - "type": "null" - } - ] - }, - "default_guilds_restricted": { - "type": "boolean" - }, - "detect_platform_accounts": { - "type": "boolean" - }, - "developer_mode": { - "type": "boolean" - }, - "disable_games_tab": { - "type": "boolean" - }, - "enable_tts_command": { - "type": "boolean" - }, - "explicit_content_filter": { - "type": "integer" - }, - "friend_source_flags": { - "$ref": "#/definitions/FriendSourceFlags" - }, - "gateway_connected": { - "type": "boolean" - }, - "gif_auto_play": { - "type": "boolean" - }, - "guild_folders": { - "type": "array", - "items": { - "$ref": "#/definitions/GuildFolder" - } - }, - "guild_positions": { - "type": "array", - "items": { - "type": "string" - } - }, - "inline_attachment_media": { - "type": "boolean" - }, - "inline_embed_media": { - "type": "boolean" - }, - "locale": { - "type": "string" - }, - "message_display_compact": { - "type": "boolean" - }, - "native_phone_integration_enabled": { - "type": "boolean" - }, - "render_embeds": { - "type": "boolean" - }, - "render_reactions": { - "type": "boolean" - }, - "restricted_guilds": { - "type": "array", - "items": { - "type": "string" - } - }, - "show_current_game": { - "type": "boolean" - }, - "status": { - "enum": [ - "dnd", - "idle", - "invisible", - "offline", - "online" - ], - "type": "string" - }, - "stream_notifications_enabled": { - "type": "boolean" - }, - "theme": { - "enum": [ - "dark", - "white" - ], - "type": "string" - }, - "timezone_offset": { - "type": "integer" - }, - "hasId": { - "description": "Checks if entity has an id.\nIf entity composite compose ids, it will check them all.", - "type": "object", - "additionalProperties": false - }, - "save": { - "description": "Saves current entity in the database.\nIf entity does not exist in the database then inserts, otherwise updates.", - "type": "object", - "additionalProperties": false - }, - "remove": { - "description": "Removes current entity from the database.", - "type": "object", - "additionalProperties": false - }, - "softRemove": { - "description": "Records the delete date of current entity.", - "type": "object", - "additionalProperties": false - }, - "recover": { - "description": "Recovers a given entity in the database.", - "type": "object", - "additionalProperties": false - }, - "reload": { - "description": "Reloads entity data from the database.", - "type": "object", - "additionalProperties": false - } - }, - "additionalProperties": false, - "definitions": { - "CustomStatus": { - "type": "object", - "properties": { - "emoji_id": { - "type": "string" - }, - "emoji_name": { - "type": "string" - }, - "expires_at": { - "type": "integer" - }, - "text": { - "type": "string" - } - }, - "additionalProperties": false - }, - "FriendSourceFlags": { - "type": "object", - "properties": { - "all": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "all" - ] - }, - "GuildFolder": { - "type": "object", - "properties": { - "color": { - "type": "integer" - }, - "guild_ids": { - "type": "array", - "items": { - "type": "string" - } - }, - "id": { - "type": "integer" - }, - "name": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "color", - "guild_ids", - "id", - "name" - ] - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "VanityUrlSchema": { - "type": "object", - "properties": { - "code": { - "minLength": 1, - "maxLength": 20, - "type": "string" - } - }, - "additionalProperties": false, - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "VoiceStateUpdateSchema": { - "type": "object", - "properties": { - "channel_id": { - "type": "string" - }, - "guild_id": { - "type": "string" - }, - "suppress": { - "type": "boolean" - }, - "request_to_speak_timestamp": { - "type": "string", - "format": "date-time" - }, - "self_mute": { - "type": "boolean" - }, - "self_deaf": { - "type": "boolean" - }, - "self_video": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "channel_id" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "WebhookCreateSchema": { - "type": "object", - "properties": { - "name": { - "maxLength": 80, - "type": "string" - }, - "avatar": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "name" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "WidgetModifySchema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - }, - "channel_id": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "channel_id", - "enabled" - ], - "$schema": "http://json-schema.org/draft-07/schema#" - }, - "ActivitySchema": { - "type": "object", - "properties": { - "afk": { - "type": "boolean" - }, - "status": { - "$ref": "#/definitions/Status" - }, - "activities": { - "type": "array", - "items": { - "$ref": "#/definitions/Activity" - } - }, - "since": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "afk", - "status" - ], - "definitions": { - "Status": { - "enum": [ - "dnd", - "idle", - "invisible", - "offline", - "online" - ], - "type": "string" - }, - "Activity": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "$ref": "#/definitions/ActivityType" - }, - "url": { - "type": "string" - }, - "created_at": { - "type": "integer" - }, - "timestamps": { - "type": "object", - "properties": { - "start": { - "type": "integer" - }, - "end": { - "type": "integer" - } - }, - "additionalProperties": false, - "required": [ - "end", - "start" - ] - }, - "application_id": { - "type": "string" - }, - "details": { - "type": "string" - }, - "state": { - "type": "string" - }, - "emoji": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" - }, - "animated": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "animated", - "name" - ] - }, - "party": { - "type": "object", - "properties": { - "id": { - "type": "string" - }, - "size": { - "type": "array", - "items": [ - { - "type": "integer" - } - ], - "minItems": 1, - "maxItems": 1 - } - }, - "additionalProperties": false - }, - "assets": { - "type": "object", - "properties": { - "large_image": { - "type": "string" - }, - "large_text": { - "type": "string" - }, - "small_image": { - "type": "string" - }, - "small_text": { - "type": "string" - } - }, - "additionalProperties": false - }, - "secrets": { - "type": "object", - "properties": { - "join": { - "type": "string" - }, - "spectate": { - "type": "string" - }, - "match": { - "type": "string" - } - }, - "additionalProperties": false - }, - "instance": { - "type": "boolean" - }, - "flags": { - "type": "string" - } - }, - "additionalProperties": false, - "required": [ - "flags", - "name", - "type" - ] - }, - "ActivityType": { - "enum": [ - 0, - 1, - 2, - 4, - 5 - ], - "type": "number" - } - }, - "$schema": "http://json-schema.org/draft-07/schema#" - } -} \ No newline at end of file diff --git a/api/assets/user.css b/api/assets/user.css deleted file mode 100644 index a7e5c4f3..00000000 --- a/api/assets/user.css +++ /dev/null @@ -1 +0,0 @@ -/* Your custom CSS goes here, enjoy! */ \ No newline at end of file diff --git a/api/assets/widget/banner1.png b/api/assets/widget/banner1.png deleted file mode 100644 index ed9bd5c0..00000000 Binary files a/api/assets/widget/banner1.png and /dev/null differ diff --git a/api/assets/widget/banner2.png b/api/assets/widget/banner2.png deleted file mode 100644 index 90d3713d..00000000 Binary files a/api/assets/widget/banner2.png and /dev/null differ diff --git a/api/assets/widget/banner3.png b/api/assets/widget/banner3.png deleted file mode 100644 index 22351898..00000000 Binary files a/api/assets/widget/banner3.png and /dev/null differ diff --git a/api/assets/widget/banner4.png b/api/assets/widget/banner4.png deleted file mode 100644 index e6bd7b6f..00000000 Binary files a/api/assets/widget/banner4.png and /dev/null differ diff --git a/api/assets/widget/shield.png b/api/assets/widget/shield.png deleted file mode 100644 index 30277db2..00000000 Binary files a/api/assets/widget/shield.png and /dev/null differ diff --git a/api/babel.config.js b/api/babel.config.js deleted file mode 100644 index 45ab8ad8..00000000 --- a/api/babel.config.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - presets: [ - ["@babel/preset-env", { targets: { node: "current" } }], - ["@babel/preset-typescript", { allowDeclareFields: true }] - ] -}; diff --git a/api/client_test/developers.html b/api/client_test/developers.html deleted file mode 100644 index 87595e77..00000000 --- a/api/client_test/developers.html +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - Discord Test Client Developer Portal - - - - -
- - - - - - - \ No newline at end of file diff --git a/api/client_test/index.html b/api/client_test/index.html deleted file mode 100644 index c35c14d2..00000000 --- a/api/client_test/index.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - Discord Test Client - - - - - - - - -
- - - - - - - - - - \ No newline at end of file diff --git a/api/jest/getRouteDescriptions.js b/api/jest/getRouteDescriptions.js deleted file mode 100644 index 4f8d2e75..00000000 --- a/api/jest/getRouteDescriptions.js +++ /dev/null @@ -1,66 +0,0 @@ -const { traverseDirectory } = require("lambert-server"); -const path = require("path"); -const express = require("express"); -const RouteUtility = require("../dist/util/route"); -const Router = express.Router; - -/** - * Some documentation. - * - * @type {Map} - */ -const routes = new Map(); -let currentPath = ""; -let currentFile = ""; -const methods = ["get", "post", "put", "delete", "patch"]; - -function registerPath(file, method, prefix, path, ...args) { - const urlPath = prefix + path; - const sourceFile = file.replace("/dist/", "/src/").replace(".js", ".ts"); - const opts = args.find((x) => typeof x === "object"); - if (opts) { - routes.set(urlPath + "|" + method, opts); // @ts-ignore - opts.file = sourceFile; - // console.log(method, urlPath, opts); - } else { - console.log(`${sourceFile}\nrouter.${method}("${path}") is missing the "route()" description middleware\n`); - } -} - -function routeOptions(opts) { - return opts; -} - -// @ts-ignore -RouteUtility.route = routeOptions; - -express.Router = (opts) => { - const path = currentPath; - const file = currentFile; - const router = Router(opts); - - for (const method of methods) { - router[method] = registerPath.bind(null, file, method, path); - } - - return router; -}; - -module.exports = function getRouteDescriptions() { - const root = path.join(__dirname, "..", "dist", "routes", "/"); - traverseDirectory({ dirname: root, recursive: true }, (file) => { - currentFile = file; - let path = file.replace(root.slice(0, -1), ""); - path = path.split(".").slice(0, -1).join("."); // trancate .js/.ts file extension of path - path = path.replaceAll("#", ":").replaceAll("\\", "/"); // replace # with : for path parameters and windows paths with slashes - if (path.endsWith("/index")) path = path.slice(0, "/index".length * -1); // delete index from path - currentPath = path; - - try { - require(file); - } catch (error) { - console.error("error loading file " + file, error); - } - }); - return routes; -}; diff --git a/api/jest/globalSetup.js b/api/jest/globalSetup.js deleted file mode 100644 index 520aa0e2..00000000 --- a/api/jest/globalSetup.js +++ /dev/null @@ -1,20 +0,0 @@ -const { Config, initDatabase } = require("@fosscord/util"); -const fs = require("fs"); -const path = require("path"); -const { FosscordServer } = require("../dist/Server"); -const Server = new FosscordServer({ port: 3001 }); -global.server = Server; -module.exports = async () => { - try { - fs.unlinkSync(path.join(process.cwd(), "database.db")); - } catch {} - - await initDatabase(); - await Config.init(); - Config.get().limits.rate.disabled = true; - return await Server.start(); -}; - -// afterAll(async () => { -// return await Server.stop(); -// }); diff --git a/api/jest/setup.js b/api/jest/setup.js deleted file mode 100644 index abc485ae..00000000 --- a/api/jest/setup.js +++ /dev/null @@ -1,2 +0,0 @@ -jest.spyOn(global.console, "log").mockImplementation(() => jest.fn()); -jest.spyOn(global.console, "info").mockImplementation(() => jest.fn()); diff --git a/api/locales/af/auth.json b/api/locales/af/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/af/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/af/common.json b/api/locales/af/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/af/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/ar/auth.json b/api/locales/ar/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/ar/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/ar/common.json b/api/locales/ar/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/ar/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/arn/auth.json b/api/locales/arn/auth.json deleted file mode 100644 index e19547a0..00000000 --- a/api/locales/arn/auth.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled" - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/arn/common.json b/api/locales/arn/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/arn/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/az/auth.json b/api/locales/az/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/az/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/az/common.json b/api/locales/az/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/az/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/be/auth.json b/api/locales/be/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/be/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/be/common.json b/api/locales/be/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/be/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/ber/auth.json b/api/locales/ber/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/ber/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/ber/common.json b/api/locales/ber/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/ber/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/bg/auth.json b/api/locales/bg/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/bg/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/bg/common.json b/api/locales/bg/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/bg/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/bo/auth.json b/api/locales/bo/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/bo/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/bo/common.json b/api/locales/bo/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/bo/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/ca/auth.json b/api/locales/ca/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/ca/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/ca/common.json b/api/locales/ca/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/ca/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/cs/auth.json b/api/locales/cs/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/cs/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/cs/common.json b/api/locales/cs/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/cs/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/da/auth.json b/api/locales/da/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/da/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/da/common.json b/api/locales/da/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/da/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/de/auth.json b/api/locales/de/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/de/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/de/common.json b/api/locales/de/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/de/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/el/auth.json b/api/locales/el/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/el/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/el/common.json b/api/locales/el/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/el/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/en/auth.json b/api/locales/en/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/en/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/en/common.json b/api/locales/en/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/en/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/eo/auth.json b/api/locales/eo/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/eo/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/eo/common.json b/api/locales/eo/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/eo/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/es/auth.json b/api/locales/es/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/es/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/es/common.json b/api/locales/es/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/es/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/eu/auth.json b/api/locales/eu/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/eu/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/eu/common.json b/api/locales/eu/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/eu/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/fa/auth.json b/api/locales/fa/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/fa/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/fa/common.json b/api/locales/fa/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/fa/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/fi/auth.json b/api/locales/fi/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/fi/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/fi/common.json b/api/locales/fi/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/fi/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/fr/auth.json b/api/locales/fr/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/fr/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/fr/common.json b/api/locales/fr/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/fr/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/gn/auth.json b/api/locales/gn/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/gn/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/gn/common.json b/api/locales/gn/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/gn/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/ha/auth.json b/api/locales/ha/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/ha/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/ha/common.json b/api/locales/ha/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/ha/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/he/auth.json b/api/locales/he/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/he/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/he/common.json b/api/locales/he/common.json deleted file mode 100644 index 9e72e941..00000000 --- a/api/locales/he/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "שדה זה חייב להיות אובייקט", - "BASE_TYPE_ARRAY": "שדה זה חייב להיות מערך", - "UNKOWN_FIELD": "מפתח לא ידוע: {{key}}", - "BASE_TYPE_CONSTANT": "שדה זה להיות {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "כתובת דואר אלקטרוני לא חוקית", - "DATE_TYPE_PARSE": "לא ניתן לנתח {{date}}. צריך להיות ISO8601", - "BASE_TYPE_BAD_LENGTH": "האורך חייב להיות בין {{length}}" - } -} diff --git a/api/locales/hi/auth.json b/api/locales/hi/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/hi/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/hi/common.json b/api/locales/hi/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/hi/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/hr/auth.json b/api/locales/hr/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/hr/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/hr/common.json b/api/locales/hr/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/hr/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/hu/auth.json b/api/locales/hu/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/hu/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/hu/common.json b/api/locales/hu/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/hu/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/id/auth.json b/api/locales/id/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/id/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/id/common.json b/api/locales/id/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/id/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/it/auth.json b/api/locales/it/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/it/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/it/common.json b/api/locales/it/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/it/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/ja/auth.json b/api/locales/ja/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/ja/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/ja/common.json b/api/locales/ja/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/ja/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/jv/auth.json b/api/locales/jv/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/jv/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/jv/common.json b/api/locales/jv/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/jv/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/kk/auth.json b/api/locales/kk/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/kk/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/kk/common.json b/api/locales/kk/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/kk/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/ko/auth.json b/api/locales/ko/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/ko/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/ko/common.json b/api/locales/ko/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/ko/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/ku/auth.json b/api/locales/ku/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/ku/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/ku/common.json b/api/locales/ku/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/ku/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/la/auth.json b/api/locales/la/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/la/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/la/common.json b/api/locales/la/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/la/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/lt/auth.json b/api/locales/lt/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/lt/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/lt/common.json b/api/locales/lt/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/lt/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/mi/auth.json b/api/locales/mi/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/mi/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/mi/common.json b/api/locales/mi/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/mi/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/mn/auth.json b/api/locales/mn/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/mn/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/mn/common.json b/api/locales/mn/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/mn/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/mr/auth.json b/api/locales/mr/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/mr/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/mr/common.json b/api/locales/mr/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/mr/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/nl/auth.json b/api/locales/nl/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/nl/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/nl/common.json b/api/locales/nl/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/nl/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/nn/auth.json b/api/locales/nn/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/nn/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/nn/common.json b/api/locales/nn/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/nn/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/no/auth.json b/api/locales/no/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/no/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/no/common.json b/api/locales/no/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/no/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/pa/auth.json b/api/locales/pa/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/pa/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/pa/common.json b/api/locales/pa/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/pa/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/pl/auth.json b/api/locales/pl/auth.json deleted file mode 100644 index ff17f237..00000000 --- a/api/locales/pl/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-mail lub numer telefonu nie został znaleziony", - "INVALID_PASSWORD": "Nieprawidłowe hasło", - "ACCOUNT_DISABLED": "To konto jest nieaktywne", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "Rejestracja nowych użytkowników jest wyłączona", - "INVITE_ONLY": "Aby się zarejestrować, musisz zostać zaproszony", - "EMAIL_INVALID": "Nieprawidłowy E-mail", - "EMAIL_ALREADY_REGISTERED": "E-mail jest już zarejestrowany", - "DATE_OF_BIRTH_UNDERAGE": "Musisz mieć {{years}} lat lub więcej", - "CONSENT_REQUIRED": "Musisz zaakceptować Regulamin i Politykę Prywatności.", - "USERNAME_TOO_MANY_USERS": "Zbyt wielu użytkowników ma tę nazwę, spróbuj inną" - } -} diff --git a/api/locales/pl/common.json b/api/locales/pl/common.json deleted file mode 100644 index 98c0906b..00000000 --- a/api/locales/pl/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "To pole jest wymagane", - "BASE_TYPE_STRING": "To pole musi być ciągiem znaków", - "BASE_TYPE_NUMBER": "To pole musi być liczbą", - "BASE_TYPE_BIGINT": "To pole musi być bigint", - "BASE_TYPE_BOOLEAN": "To pole musi być wartością logiczną", - "BASE_TYPE_CHOICES": "To pole musi być jednym z ({{types}})", - "BASE_TYPE_CLASS": "To pole musi być instancją {{type}}", - "BASE_TYPE_OBJECT": "To pole musi być obiektem", - "BASE_TYPE_ARRAY": "To pole musi być tablicą", - "UNKOWN_FIELD": "Nieznany klucz: {{key}}", - "BASE_TYPE_CONSTANT": "To pole musi wynosić {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Źle sformułowany adres e-mail", - "DATE_TYPE_PARSE": "Nie można przetworzyć {{date}}. Powinno być ISO8601", - "BASE_TYPE_BAD_LENGTH": "Długość musi wynosić pomiędzy {{length}}" - } -} diff --git a/api/locales/pt/auth.json b/api/locales/pt/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/pt/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/pt/common.json b/api/locales/pt/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/pt/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/qu/auth.json b/api/locales/qu/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/qu/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/qu/common.json b/api/locales/qu/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/qu/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/ro/auth.json b/api/locales/ro/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/ro/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/ro/common.json b/api/locales/ro/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/ro/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/ru/auth.json b/api/locales/ru/auth.json deleted file mode 100644 index be7ac845..00000000 --- a/api/locales/ru/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "Данный адрес электронной почты или телефона не найден", - "INVALID_PASSWORD": "Неверный пароль", - "ACCOUNT_DISABLED": "Этот аккаунт отключён", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "Регистрация новых пользователей отключена", - "INVITE_ONLY": "Вы должны быть приглашены для регистрации", - "EMAIL_INVALID": "Неверный адрес электронной почты", - "EMAIL_ALREADY_REGISTERED": "Данный адрес электронной почты уже зарегистрирован", - "DATE_OF_BIRTH_UNDERAGE": "Вам должно быть больше {{years}} лет", - "CONSENT_REQUIRED": "Вы должны согласиться с Условиями использования и Политикой конфиденциальности.", - "USERNAME_TOO_MANY_USERS": "Слишком много пользователей имеют это имя пользователя, пожалуйста, попробуйте другое" - } -} diff --git a/api/locales/ru/common.json b/api/locales/ru/common.json deleted file mode 100644 index 35a74cfa..00000000 --- a/api/locales/ru/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "Это поле является обязательным", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "Это поле должно быть одним из ({{types}})", - "BASE_TYPE_CLASS": "Это поле должно быть экземпляром {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "Это поле должно быть {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Неправильный формат адреса электронной почты", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Длина должна быть между {{length}} в длину" - } -} diff --git a/api/locales/sh/auth.json b/api/locales/sh/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/sh/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/sh/common.json b/api/locales/sh/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/sh/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/si/auth.json b/api/locales/si/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/si/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/si/common.json b/api/locales/si/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/si/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/sk/auth.json b/api/locales/sk/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/sk/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/sk/common.json b/api/locales/sk/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/sk/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/sr/auth.json b/api/locales/sr/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/sr/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/sr/common.json b/api/locales/sr/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/sr/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/sv/auth.json b/api/locales/sv/auth.json deleted file mode 100644 index 573e685d..00000000 --- a/api/locales/sv/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-post eller telefon hittades inte", - "INVALID_PASSWORD": "Ogiltigt lösenord", - "ACCOUNT_DISABLED": "Detta konto är inaktiverat", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "Registrering av nya användare är inaktiverat", - "INVITE_ONLY": "Du måste vara inbjuden för att registrera dig", - "EMAIL_INVALID": "Ogiltig e-post", - "EMAIL_ALREADY_REGISTERED": "E-postadressen är redan registrerad", - "DATE_OF_BIRTH_UNDERAGE": "Du måste vara {{years}} år eller äldre", - "CONSENT_REQUIRED": "Du måste godkänna användarvillkoren och sekretesspolicyn.", - "USERNAME_TOO_MANY_USERS": "För många användare har detta användarnamn, försök med ett annat" - } -} diff --git a/api/locales/sv/common.json b/api/locales/sv/common.json deleted file mode 100644 index 56c02a64..00000000 --- a/api/locales/sv/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "Detta fältet krävs", - "BASE_TYPE_STRING": "Detta fält måste vara en sträng", - "BASE_TYPE_NUMBER": "Detta fält måste vara ett nummer", - "BASE_TYPE_BIGINT": "Detta fält måste vara av typen bigint", - "BASE_TYPE_BOOLEAN": "Detta fält måste vara booleskt", - "BASE_TYPE_CHOICES": "Detta fält måste vara av typen av ett av följande ({{types}})", - "BASE_TYPE_CLASS": "Det här fältet måste vara en instans av {{type}}", - "BASE_TYPE_OBJECT": "Detta fält måste vara ett objekt", - "BASE_TYPE_ARRAY": "Detta fält måste vara en array", - "UNKOWN_FIELD": "Okänd nyckel: {{key}}", - "BASE_TYPE_CONSTANT": "Det här fältet måste vara {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "E-postadressen har inte korrekt format", - "DATE_TYPE_PARSE": "Kunde inte tolka {{date}}. Bör vara ISO8601", - "BASE_TYPE_BAD_LENGTH": "Måste vara mellan {{length}} i längd" - } -} diff --git a/api/locales/sw/auth.json b/api/locales/sw/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/sw/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/sw/common.json b/api/locales/sw/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/sw/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/ta/auth.json b/api/locales/ta/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/ta/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/ta/common.json b/api/locales/ta/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/ta/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/te/auth.json b/api/locales/te/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/te/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/te/common.json b/api/locales/te/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/te/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/tl/auth.json b/api/locales/tl/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/tl/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/tl/common.json b/api/locales/tl/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/tl/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/tr/auth.json b/api/locales/tr/auth.json deleted file mode 100644 index 670f07e3..00000000 --- a/api/locales/tr/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-posta veya Telefon Numarası bulunamadı", - "INVALID_PASSWORD": "Geçersiz Şifre", - "ACCOUNT_DISABLED": "Bu hesap devre dışı bırakıldı", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "Yeni kullanıcı alımı devre dışı bırakıldı", - "INVITE_ONLY": "Kayıt olabilmek için davet edilmelisin", - "EMAIL_INVALID": "Geçersiz e-posta", - "EMAIL_ALREADY_REGISTERED": "Bu e-posta zaten kayıtlı", - "DATE_OF_BIRTH_UNDERAGE": "{{years}} yaşında veya daha büyük olmalısın", - "CONSENT_REQUIRED": "Hizmet Koşulları ve Gizlilik Politikasını kabul etmelisin.", - "USERNAME_TOO_MANY_USERS": "Çok fazla kullanıcı bu kullanıcı adını kullanıyor, lütfen başka bir kullanıcı adı dene" - } -} diff --git a/api/locales/tr/common.json b/api/locales/tr/common.json deleted file mode 100644 index 1f99c1d5..00000000 --- a/api/locales/tr/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "Bu alan gereklidir", - "BASE_TYPE_STRING": "Bu alan bir metin (string) olmalı", - "BASE_TYPE_NUMBER": "Bu alan bir sayı olmalı", - "BASE_TYPE_BIGINT": "Bu alan uzun tamsayı değeri olmalıdır", - "BASE_TYPE_BOOLEAN": "Bu alan doğru/yanlış olmalıdır", - "BASE_TYPE_CHOICES": "Bu alan ({{types}}) tiplerinden biri olmalı", - "BASE_TYPE_CLASS": "Bu alan {{type}} türünden olmalı", - "BASE_TYPE_OBJECT": "Bu alan bir nesne olmalı", - "BASE_TYPE_ARRAY": "Bu alan bir dizi olmalı", - "UNKOWN_FIELD": "Bilinmeyen anahtar: {{key}}", - "BASE_TYPE_CONSTANT": "Bu alan {{value}} olmalı", - "EMAIL_TYPE_INVALID_EMAIL": "Geçerli bir e-posta adresi değil", - "DATE_TYPE_PARSE": "{{date}} işlenemiyor. ISO8601 standartlarında olmalı", - "BASE_TYPE_BAD_LENGTH": "{{length}} arası uzunlukta olmalı" - } -} diff --git a/api/locales/ug/auth.json b/api/locales/ug/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/ug/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/ug/common.json b/api/locales/ug/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/ug/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/uk/auth.json b/api/locales/uk/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/uk/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/uk/common.json b/api/locales/uk/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/uk/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/ur/auth.json b/api/locales/ur/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/ur/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/ur/common.json b/api/locales/ur/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/ur/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/vec/auth.json b/api/locales/vec/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/vec/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/vec/common.json b/api/locales/vec/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/vec/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/vi/auth.json b/api/locales/vi/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/vi/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/vi/common.json b/api/locales/vi/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/vi/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/locales/zh/auth.json b/api/locales/zh/auth.json deleted file mode 100644 index a78d4d60..00000000 --- a/api/locales/zh/auth.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "login": { - "INVALID_LOGIN": "E-Mail or Phone not found", - "INVALID_PASSWORD": "Invalid Password", - "ACCOUNT_DISABLED": "This account is disabled", - "INVALID_TOTP_CODE": "Invalid two-factor code.", - "INVALID_TOTP_SECRET": "Invalid two-factor secret." - }, - "register": { - "REGISTRATION_DISABLED": "New user registration is disabled", - "INVITE_ONLY": "You must be invited to register", - "EMAIL_INVALID": "Invalid Email", - "EMAIL_ALREADY_REGISTERED": "Email is already registered", - "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", - "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", - "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" - } -} diff --git a/api/locales/zh/common.json b/api/locales/zh/common.json deleted file mode 100644 index 8bb9c042..00000000 --- a/api/locales/zh/common.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "field": { - "BASE_TYPE_REQUIRED": "This field is required", - "BASE_TYPE_STRING": "This field must be a string", - "BASE_TYPE_NUMBER": "This field must be a number", - "BASE_TYPE_BIGINT": "This field must be a bigint", - "BASE_TYPE_BOOLEAN": "This field must be a boolean", - "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", - "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", - "BASE_TYPE_OBJECT": "This field must be an object", - "BASE_TYPE_ARRAY": "This field must be an array", - "UNKOWN_FIELD": "Unknown key: {{key}}", - "BASE_TYPE_CONSTANT": "This field must be {{value}}", - "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", - "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", - "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" - } -} diff --git a/api/package-lock.json b/api/package-lock.json deleted file mode 100644 index bb7f725f..00000000 --- a/api/package-lock.json +++ /dev/null @@ -1,25919 +0,0 @@ -{ - "name": "@fosscord/api", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fosscord/api", - "version": "1.0.0", - "hasInstallScript": true, - "license": "AGPL-3.0-only", - "dependencies": { - "@babel/preset-env": "^7.15.8", - "@babel/preset-typescript": "^7.15.0", - "@fosscord/util": "file:../util", - "@sentry/node": "^6.16.1", - "@sentry/tracing": "^6.16.1", - "ajv": "8.6.2", - "ajv-formats": "^2.1.1", - "amqplib": "^0.8.0", - "assert": "^1.5.0", - "bcrypt": "^5.0.1", - "body-parser": "^1.19.0", - "cheerio": "^1.0.0-rc.10", - "dotenv": "^8.2.0", - "express": "^4.17.1", - "form-data": "^3.0.0", - "i18next": "^19.9.2", - "i18next-http-middleware": "^3.1.3", - "i18next-node-fs-backend": "^2.1.3", - "image-size": "^1.0.0", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "morgan": "^1.10.0", - "multer": "^1.4.2", - "node-2fa": "^2.0.3", - "node-fetch": "^2.6.2", - "patch-package": "^6.4.7", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "supertest": "^6.1.6", - "typeorm": "^0.3.7" - }, - "devDependencies": { - "@babel/core": "^7.15.5", - "@babel/preset-env": "^7.15.8", - "@babel/preset-typescript": "^7.15.0", - "@types/amqplib": "^0.8.1", - "@types/bcrypt": "^5.0.0", - "@types/express": "^4.17.9", - "@types/i18next-node-fs-backend": "^2.1.0", - "@types/jest": "^27.0.1", - "@types/jest-expect-message": "^1.0.3", - "@types/jsonwebtoken": "^8.5.0", - "@types/morgan": "^1.9.3", - "@types/multer": "^1.4.5", - "@types/node": "^14.18.22", - "@types/node-fetch": "^2.5.5", - "@types/supertest": "^2.0.11", - "@ovos-media/ts-transform-paths": "^1.7.18-1", - "jest": "^27.2.5", - "jest-expect-message": "^1.0.2", - "jest-runtime": "^27.2.1", - "ts-node": "^9.1.1", - "ts-node-dev": "^1.1.6", - "ts-patch": "^1.4.4", - "typescript": "^4.4.2", - "typescript-json-schema": "0.50.1" - } - }, - "../util": { - "name": "@fosscord/util", - "version": "1.0.0", - "hasInstallScript": true, - "license": "AGPL-3.0-only", - "dependencies": { - "amqplib": "^0.8.0", - "form-data": "^4.0.0", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "multer": "^1.4.3", - "node-fetch": "^2.6.2", - "patch-package": "^6.4.7", - "pg": "^8.7.1", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "typeorm": "^0.3.7", - "typescript": "^4.4.2", - "typescript-json-schema": "^0.50.1" - }, - "devDependencies": { - "@types/amqplib": "^0.8.1", - "@types/jsonwebtoken": "^8.5.0", - "@types/multer": "^1.4.7", - "@types/node": "^14.18.22", - "@types/node-fetch": "^2.5.12", - "jest": "^27.0.6", - "ts-node": "^10.2.1" - } - }, - "../util/node_modules/@babel/code-frame": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/compat-data": { - "version": "7.15.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/core": { - "version": "7.15.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "../util/node_modules/@babel/core/node_modules/debug": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/@babel/generator": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "../util/node_modules/@babel/helper-function-name": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-get-function-arity": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-hoist-variables": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-module-imports": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-module-transforms": { - "version": "7.15.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-plugin-utils": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-replace-supers": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-simple-access": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-split-export-declaration": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helpers": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/highlight": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "../util/node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/@babel/parser": { - "version": "7.15.7", - "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "../util/node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/template": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/traverse": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@babel/types": { - "version": "7.15.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@cspotcode/source-map-consumer": { - "version": "0.8.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 12" - } - }, - "../util/node_modules/@cspotcode/source-map-support": { - "version": "0.6.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@cspotcode/source-map-consumer": "0.8.0" - }, - "engines": { - "node": ">=12" - } - }, - "../util/node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/@jest/console": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/core": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.2.0", - "@jest/reporters": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.1.1", - "jest-config": "^27.2.0", - "jest-haste-map": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-resolve-dependencies": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "jest-watcher": "^27.2.0", - "micromatch": "^4.0.4", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "../util/node_modules/@jest/core/node_modules/jest-config": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.0", - "@jest/types": "^27.1.1", - "babel-jest": "^27.2.0", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.2.0", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "../util/node_modules/@jest/environment": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/fake-timers": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.1.1", - "@sinonjs/fake-timers": "^7.0.2", - "@types/node": "*", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/globals": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.2.0", - "@jest/types": "^27.1.1", - "expect": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/reporters": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "../util/node_modules/@jest/source-map": { - "version": "27.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/test-result": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/test-sequencer": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.2.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-runtime": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/transform": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.1.1", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.2.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/types": { - "version": "27.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@sinonjs/commons": { - "version": "1.8.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "../util/node_modules/@sinonjs/fake-timers": { - "version": "7.1.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "../util/node_modules/@sqltools/formatter": { - "version": "1.2.3", - "license": "MIT" - }, - "../util/node_modules/@tootallnate/once": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/@tsconfig/node10": { - "version": "1.0.8", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@tsconfig/node12": { - "version": "1.0.9", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@tsconfig/node14": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@tsconfig/node16": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@types/amqplib": { - "version": "0.8.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "../util/node_modules/@types/babel__core": { - "version": "7.1.16", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "../util/node_modules/@types/babel__generator": { - "version": "7.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "../util/node_modules/@types/babel__template": { - "version": "7.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "../util/node_modules/@types/babel__traverse": { - "version": "7.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "../util/node_modules/@types/bluebird": { - "version": "3.5.36", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@types/body-parser": { - "version": "1.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "../util/node_modules/@types/connect": { - "version": "3.4.35", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../util/node_modules/@types/express": { - "version": "4.17.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "../util/node_modules/@types/express-serve-static-core": { - "version": "4.17.24", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "../util/node_modules/@types/graceful-fs": { - "version": "4.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../util/node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "../util/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "../util/node_modules/@types/json-schema": { - "version": "7.0.9", - "license": "MIT" - }, - "../util/node_modules/@types/jsonwebtoken": { - "version": "8.5.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "../util/node_modules/@types/mime": { - "version": "1.3.2", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@types/multer": { - "version": "1.4.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "../util/node_modules/@types/node": { - "version": "14.17.17", - "license": "MIT" - }, - "../util/node_modules/@types/node-fetch": { - "version": "2.5.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "../util/node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/@types/prettier": { - "version": "2.3.2", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@types/qs": { - "version": "6.9.7", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@types/range-parser": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@types/serve-static": { - "version": "1.13.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "../util/node_modules/@types/stack-utils": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@types/yargs": { - "version": "16.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "../util/node_modules/@types/yargs-parser": { - "version": "20.2.1", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/@types/zen-observable": { - "version": "0.8.3", - "license": "MIT" - }, - "../util/node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "license": "BSD-2-Clause" - }, - "../util/node_modules/abab": { - "version": "2.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, - "../util/node_modules/abbrev": { - "version": "1.1.1", - "license": "ISC", - "optional": true, - "peer": true - }, - "../util/node_modules/accepts": { - "version": "1.3.7", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/acorn": { - "version": "8.7.0", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "../util/node_modules/acorn-globals": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "../util/node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "../util/node_modules/acorn-walk": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "../util/node_modules/agent-base": { - "version": "6.0.2", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "../util/node_modules/agent-base/node_modules/debug": { - "version": "4.3.2", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "../util/node_modules/ajv": { - "version": "6.12.6", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "../util/node_modules/amqplib": { - "version": "0.8.0", - "license": "MIT", - "dependencies": { - "bitsyntax": "~0.1.0", - "bluebird": "^3.7.2", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "safe-buffer": "~5.2.1", - "url-parse": "~1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/ansi-regex": { - "version": "5.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "../util/node_modules/any-promise": { - "version": "1.3.0", - "license": "MIT" - }, - "../util/node_modules/anymatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/app-root-path": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">= 6.0.0" - } - }, - "../util/node_modules/append-field": { - "version": "1.0.0", - "license": "MIT" - }, - "../util/node_modules/aproba": { - "version": "1.2.0", - "license": "ISC", - "optional": true, - "peer": true - }, - "../util/node_modules/are-we-there-yet": { - "version": "1.1.7", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "../util/node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "../util/node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "../util/node_modules/arg": { - "version": "4.1.3", - "license": "MIT" - }, - "../util/node_modules/argparse": { - "version": "1.0.10", - "dev": true, - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "../util/node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" - }, - "../util/node_modules/asn1": { - "version": "0.2.4", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "../util/node_modules/assert-plus": { - "version": "1.0.0", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8" - } - }, - "../util/node_modules/ast-types": { - "version": "0.13.4", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "../util/node_modules/aws-sign2": { - "version": "0.7.0", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "../util/node_modules/aws4": { - "version": "1.11.0", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/babel-jest": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.2.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "../util/node_modules/babel-plugin-istanbul": { - "version": "6.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/babel-plugin-jest-hoist": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "../util/node_modules/babel-preset-jest": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^27.2.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "../util/node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "../util/node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "../util/node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "../util/node_modules/better-sqlite3": { - "version": "7.4.3", - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "bindings": "^1.5.0", - "prebuild-install": "^6.0.1", - "tar": "^6.1.0" - } - }, - "../util/node_modules/better-sqlite3/node_modules/chownr": { - "version": "2.0.0", - "license": "ISC", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/better-sqlite3/node_modules/fs-minipass": { - "version": "2.1.0", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/better-sqlite3/node_modules/minipass": { - "version": "3.1.5", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/better-sqlite3/node_modules/minizlib": { - "version": "2.1.2", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/better-sqlite3/node_modules/mkdirp": { - "version": "1.0.4", - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/better-sqlite3/node_modules/tar": { - "version": "6.1.11", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "../util/node_modules/bindings": { - "version": "1.5.0", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "../util/node_modules/bitsyntax": { - "version": "0.1.0", - "license": "MIT", - "dependencies": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "../util/node_modules/bitsyntax/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "../util/node_modules/bl": { - "version": "4.1.0", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "../util/node_modules/bl/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/bl/node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "../util/node_modules/block-stream": { - "version": "0.0.9", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "inherits": "~2.0.0" - }, - "engines": { - "node": "0.4 || >=0.5.8" - } - }, - "../util/node_modules/bluebird": { - "version": "3.7.2", - "license": "MIT" - }, - "../util/node_modules/body-parser": { - "version": "1.19.0", - "license": "MIT", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/brace-expansion": { - "version": "1.1.11", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "../util/node_modules/braces": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/browser-process-hrtime": { - "version": "1.0.0", - "dev": true, - "license": "BSD-2-Clause" - }, - "../util/node_modules/browserslist": { - "version": "4.17.0", - "dev": true, - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", - "escalade": "^3.1.1", - "node-releases": "^1.1.75" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "../util/node_modules/bser": { - "version": "2.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "../util/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "../util/node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "license": "BSD-3-Clause" - }, - "../util/node_modules/buffer-from": { - "version": "1.1.2", - "license": "MIT" - }, - "../util/node_modules/buffer-more-ints": { - "version": "1.0.0", - "license": "MIT" - }, - "../util/node_modules/buffer-writer": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/busboy": { - "version": "0.2.14", - "dependencies": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/bytes": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/caniuse-lite": { - "version": "1.0.30001258", - "dev": true, - "license": "CC-BY-4.0", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "../util/node_modules/caseless": { - "version": "0.12.0", - "license": "Apache-2.0", - "optional": true, - "peer": true - }, - "../util/node_modules/chalk": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "../util/node_modules/char-regex": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/chownr": { - "version": "1.1.4", - "license": "ISC", - "optional": true, - "peer": true - }, - "../util/node_modules/ci-info": { - "version": "3.2.0", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/cjs-module-lexer": { - "version": "1.2.2", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/cli-highlight": { - "version": "2.1.11", - "license": "ISC", - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "../util/node_modules/cli-highlight/node_modules/parse5": { - "version": "5.1.1", - "license": "MIT" - }, - "../util/node_modules/cliui": { - "version": "7.0.4", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "../util/node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/cliui/node_modules/string-width": { - "version": "4.2.2", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/co": { - "version": "4.6.0", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "../util/node_modules/code-point-at": { - "version": "1.1.0", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/collect-v8-coverage": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "../util/node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "../util/node_modules/colorette": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/concat-map": { - "version": "0.0.1", - "license": "MIT" - }, - "../util/node_modules/concat-stream": { - "version": "1.6.2", - "engines": [ - "node >= 0.8" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "../util/node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "license": "MIT" - }, - "../util/node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "../util/node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "../util/node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "../util/node_modules/console-control-strings": { - "version": "1.1.0", - "license": "ISC", - "optional": true, - "peer": true - }, - "../util/node_modules/content-disposition": { - "version": "0.5.3", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "../util/node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/convert-source-map": { - "version": "1.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "../util/node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/cookie": { - "version": "0.4.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "../util/node_modules/core-util-is": { - "version": "1.0.3", - "license": "MIT" - }, - "../util/node_modules/create-require": { - "version": "1.1.1", - "license": "MIT" - }, - "../util/node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/cssom": { - "version": "0.4.4", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/cssstyle": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/dashdash": { - "version": "1.14.1", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "../util/node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/data-urls": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "../util/node_modules/decimal.js": { - "version": "10.3.1", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/decompress-response": { - "version": "4.2.1", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/dedent": { - "version": "0.7.0", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/deep-extend": { - "version": "0.6.0", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=4.0.0" - } - }, - "../util/node_modules/deep-is": { - "version": "0.1.4", - "license": "MIT" - }, - "../util/node_modules/deepmerge": { - "version": "4.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/degenerator": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.3" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/degenerator/node_modules/escodegen": { - "version": "1.14.3", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "../util/node_modules/degenerator/node_modules/estraverse": { - "version": "4.3.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "../util/node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "../util/node_modules/delegates": { - "version": "1.0.0", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/depd": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/destroy": { - "version": "1.0.4", - "license": "MIT" - }, - "../util/node_modules/detect-libc": { - "version": "1.0.3", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "../util/node_modules/detect-newline": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/dicer": { - "version": "0.2.5", - "dependencies": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/diff": { - "version": "4.0.2", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "../util/node_modules/diff-sequences": { - "version": "27.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/domexception": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/dotenv": { - "version": "8.6.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/ecc-jsbn": { - "version": "0.1.2", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "../util/node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "../util/node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "../util/node_modules/electron-to-chromium": { - "version": "1.3.843", - "dev": true, - "license": "ISC" - }, - "../util/node_modules/emittery": { - "version": "0.8.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "../util/node_modules/emoji-regex": { - "version": "8.0.0", - "license": "MIT" - }, - "../util/node_modules/encodeurl": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/end-of-stream": { - "version": "1.4.4", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "../util/node_modules/escalade": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "../util/node_modules/escape-string-regexp": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/escodegen": { - "version": "2.0.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "../util/node_modules/esprima": { - "version": "4.0.1", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/estraverse": { - "version": "5.2.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "../util/node_modules/esutils": { - "version": "2.0.3", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/etag": { - "version": "1.8.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/execa": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "../util/node_modules/exit": { - "version": "0.1.2", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/expand-template": { - "version": "2.0.3", - "license": "(MIT OR WTFPL)", - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/expect": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.1.1", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-regex-util": "^27.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "../util/node_modules/express": { - "version": "4.17.1", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "../util/node_modules/express-async-errors": { - "version": "3.1.1", - "license": "ISC", - "peerDependencies": { - "express": "^4.16.2" - } - }, - "../util/node_modules/express/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "../util/node_modules/extend": { - "version": "3.0.2", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/extsprintf": { - "version": "1.3.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "devOptional": true, - "license": "MIT" - }, - "../util/node_modules/fast-levenshtein": { - "version": "2.0.6", - "license": "MIT" - }, - "../util/node_modules/fb-watchman": { - "version": "2.0.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "../util/node_modules/figlet": { - "version": "1.5.2", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "../util/node_modules/file-uri-to-path": { - "version": "1.0.0", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/fill-range": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/finalhandler": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "license": "Apache-2.0", - "dependencies": { - "micromatch": "^4.0.2" - } - }, - "../util/node_modules/forever-agent": { - "version": "0.6.1", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "../util/node_modules/form-data": { - "version": "4.0.0", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/forwarded": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/fresh": { - "version": "0.5.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/fs-constants": { - "version": "1.0.0", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/fs-extra": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "../util/node_modules/fs-minipass": { - "version": "1.2.7", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "../util/node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "../util/node_modules/fstream": { - "version": "1.0.12", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "../util/node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "../util/node_modules/ftp": { - "version": "0.3.10", - "dependencies": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/function-bind": { - "version": "1.1.1", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/gauge": { - "version": "2.7.4", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "../util/node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/get-caller-file": { - "version": "2.0.5", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "../util/node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "../util/node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/get-uri": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/get-uri/node_modules/debug": { - "version": "4.3.2", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/get-uri/node_modules/file-uri-to-path": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/get-uri/node_modules/fs-extra": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "../util/node_modules/get-uri/node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "../util/node_modules/getpass": { - "version": "0.1.7", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "../util/node_modules/github-from-package": { - "version": "0.0.0", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/glob": { - "version": "7.1.7", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../util/node_modules/globals": { - "version": "11.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/graceful-fs": { - "version": "4.2.8", - "license": "ISC" - }, - "../util/node_modules/har-schema": { - "version": "2.0.0", - "license": "ISC", - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/har-validator": { - "version": "5.1.5", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/has": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "../util/node_modules/has-ansi": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/has-unicode": { - "version": "2.0.1", - "license": "ISC", - "optional": true, - "peer": true - }, - "../util/node_modules/helmet": { - "version": "4.6.0", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "../util/node_modules/highlight.js": { - "version": "10.7.3", - "license": "BSD-3-Clause", - "engines": { - "node": "*" - } - }, - "../util/node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/http-errors": { - "version": "1.7.2", - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "license": "ISC" - }, - "../util/node_modules/http-proxy-agent": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "../util/node_modules/http-signature": { - "version": "1.2.0", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "../util/node_modules/https-proxy-agent": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "../util/node_modules/human-signals": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "../util/node_modules/iconv-lite": { - "version": "0.4.24", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "../util/node_modules/ignore-walk": { - "version": "3.0.4", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "../util/node_modules/import-local": { - "version": "3.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "../util/node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "../util/node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "../util/node_modules/ini": { - "version": "1.3.8", - "license": "ISC", - "optional": true, - "peer": true - }, - "../util/node_modules/ip": { - "version": "1.1.5", - "license": "MIT" - }, - "../util/node_modules/ipaddr.js": { - "version": "1.9.1", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "../util/node_modules/is-ci": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^3.1.1" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "../util/node_modules/is-core-module": { - "version": "2.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../util/node_modules/is-docker": { - "version": "2.2.1", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/is-generator-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/is-number": { - "version": "7.0.0", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "../util/node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/is-typedarray": { - "version": "1.0.0", - "devOptional": true, - "license": "MIT" - }, - "../util/node_modules/is-wsl": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/isarray": { - "version": "0.0.1", - "license": "MIT" - }, - "../util/node_modules/isexe": { - "version": "2.0.0", - "license": "ISC" - }, - "../util/node_modules/isstream": { - "version": "0.1.2", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/istanbul-reports": { - "version": "3.0.2", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/jest": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^27.2.0", - "import-local": "^3.0.2", - "jest-cli": "^27.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "../util/node_modules/jest-changed-files": { - "version": "27.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.1.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-circus": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.2.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-cli": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "prompts": "^2.0.1", - "yargs": "^16.0.3" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "../util/node_modules/jest-cli/node_modules/jest-config": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.0", - "@jest/types": "^27.1.1", - "babel-jest": "^27.2.0", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.2.0", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "../util/node_modules/jest-diff": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-docblock": { - "version": "27.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-each": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-environment-jsdom": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-environment-node": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-get-type": { - "version": "27.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-haste-map": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.1.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "../util/node_modules/jest-jasmine2": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.2.0", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.2.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-leak-detector": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-matcher-utils": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.2.0", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-message-util": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-mock": { - "version": "27.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.1.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "../util/node_modules/jest-regex-util": { - "version": "27.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-resolve": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "escalade": "^3.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "resolve": "^1.20.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-resolve-dependencies": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-runner": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.2.0", - "@jest/environment": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-haste-map": "^27.2.0", - "jest-leak-detector": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-runtime": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.2.0", - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/globals": "^27.2.0", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-serializer": { - "version": "27.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-snapshot": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.2.0", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.2.0", - "jest-get-type": "^27.0.6", - "jest-haste-map": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-util": "^27.2.0", - "natural-compare": "^1.4.0", - "pretty-format": "^27.2.0", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.5", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/jest-util": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-validate": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.1.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "leven": "^3.1.0", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/jest-watcher": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.2.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-worker": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "../util/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../util/node_modules/js-tokens": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/js-yaml": { - "version": "3.14.1", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../util/node_modules/jsbn": { - "version": "0.1.1", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/jsdom": { - "version": "16.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "../util/node_modules/jsdom/node_modules/form-data": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/jsesc": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/json-schema": { - "version": "0.2.3", - "optional": true, - "peer": true - }, - "../util/node_modules/json-schema-traverse": { - "version": "0.4.1", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/json-stable-stringify": { - "version": "1.0.1", - "license": "MIT", - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "../util/node_modules/json-stringify-safe": { - "version": "5.0.1", - "license": "ISC", - "optional": true, - "peer": true - }, - "../util/node_modules/json5": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/jsonfile": { - "version": "4.0.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "../util/node_modules/jsonify": { - "version": "0.0.0", - "license": "Public Domain" - }, - "../util/node_modules/jsonwebtoken": { - "version": "8.5.1", - "license": "MIT", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "../util/node_modules/jsonwebtoken/node_modules/ms": { - "version": "2.1.3", - "license": "MIT" - }, - "../util/node_modules/jsonwebtoken/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "../util/node_modules/jsprim": { - "version": "1.4.1", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "../util/node_modules/jwa": { - "version": "1.4.1", - "license": "MIT", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "../util/node_modules/jws": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "../util/node_modules/klaw-sync": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.11" - } - }, - "../util/node_modules/kleur": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/lambert-server": { - "version": "1.2.12", - "license": "ISC", - "dependencies": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "../util/node_modules/leven": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/levn": { - "version": "0.3.0", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/lodash": { - "version": "4.17.21", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/lodash.includes": { - "version": "4.3.0", - "license": "MIT" - }, - "../util/node_modules/lodash.isboolean": { - "version": "3.0.3", - "license": "MIT" - }, - "../util/node_modules/lodash.isinteger": { - "version": "4.0.4", - "license": "MIT" - }, - "../util/node_modules/lodash.isnumber": { - "version": "3.0.3", - "license": "MIT" - }, - "../util/node_modules/lodash.isplainobject": { - "version": "4.0.6", - "license": "MIT" - }, - "../util/node_modules/lodash.isstring": { - "version": "4.0.1", - "license": "MIT" - }, - "../util/node_modules/lodash.once": { - "version": "4.1.1", - "license": "MIT" - }, - "../util/node_modules/lru-cache": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/make-dir": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/make-error": { - "version": "1.3.6", - "license": "ISC" - }, - "../util/node_modules/makeerror": { - "version": "1.0.11", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.x" - } - }, - "../util/node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" - }, - "../util/node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/methods": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/micromatch": { - "version": "4.0.4", - "license": "MIT", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "../util/node_modules/mime": { - "version": "1.6.0", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/mime-db": { - "version": "1.49.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/mime-types": { - "version": "2.1.32", - "license": "MIT", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/mimic-response": { - "version": "2.1.0", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/minimatch": { - "version": "3.0.4", - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "../util/node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "../util/node_modules/minipass": { - "version": "2.9.0", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "../util/node_modules/minipass/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC", - "optional": true, - "peer": true - }, - "../util/node_modules/minizlib": { - "version": "1.3.3", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "../util/node_modules/missing-native-js-functions": { - "version": "1.2.18", - "license": "ISC" - }, - "../util/node_modules/mkdirp": { - "version": "0.5.5", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "../util/node_modules/mkdirp-classic": { - "version": "0.5.3", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "../util/node_modules/multer": { - "version": "1.4.3", - "license": "MIT", - "dependencies": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "../util/node_modules/mz": { - "version": "2.7.0", - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "../util/node_modules/napi-build-utils": { - "version": "1.0.2", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/needle": { - "version": "2.9.1", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "../util/node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "../util/node_modules/needle/node_modules/ms": { - "version": "2.1.3", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/negotiator": { - "version": "0.6.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/netmask": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "../util/node_modules/nice-try": { - "version": "1.0.5", - "license": "MIT" - }, - "../util/node_modules/node-abi": { - "version": "2.30.1", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "semver": "^5.4.1" - } - }, - "../util/node_modules/node-abi/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "../util/node_modules/node-addon-api": { - "version": "3.2.1", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/node-fetch": { - "version": "2.6.7", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "../util/node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "license": "MIT" - }, - "../util/node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "license": "BSD-2-Clause" - }, - "../util/node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "../util/node_modules/node-gyp": { - "version": "3.8.0", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/node-gyp/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "../util/node_modules/node-gyp/node_modules/semver": { - "version": "5.3.0", - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "../util/node_modules/node-gyp/node_modules/which": { - "version": "1.3.1", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "../util/node_modules/node-int64": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/node-modules-regexp": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/node-pre-gyp": { - "version": "0.11.0", - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "../util/node_modules/node-pre-gyp/node_modules/nopt": { - "version": "4.0.3", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "../util/node_modules/node-pre-gyp/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "../util/node_modules/node-pre-gyp/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "../util/node_modules/node-pre-gyp/node_modules/tar": { - "version": "4.4.19", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "../util/node_modules/node-pre-gyp/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC", - "optional": true, - "peer": true - }, - "../util/node_modules/node-releases": { - "version": "1.1.75", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/nopt": { - "version": "3.0.6", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "../util/node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/npm-bundled": { - "version": "1.1.2", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "../util/node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "license": "ISC", - "optional": true, - "peer": true - }, - "../util/node_modules/npm-packlist": { - "version": "1.4.8", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "../util/node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/npmlog": { - "version": "4.1.2", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "../util/node_modules/number-is-nan": { - "version": "1.0.1", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/nwsapi": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/oauth-sign": { - "version": "0.9.0", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "../util/node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/on-finished": { - "version": "2.3.0", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "../util/node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/open": { - "version": "7.4.2", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/optionator": { - "version": "0.8.3", - "license": "MIT", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/os-homedir": { - "version": "1.0.2", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/os-tmpdir": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/osenv": { - "version": "0.1.5", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "../util/node_modules/p-each-series": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/pac-proxy-agent": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/pac-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/pac-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "../util/node_modules/pac-resolver": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "degenerator": "^3.0.1", - "ip": "^1.1.5", - "netmask": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/packet-reader": { - "version": "1.0.0", - "license": "MIT" - }, - "../util/node_modules/parent-require": { - "version": "1.0.0", - "engines": { - "node": ">= 0.4.0" - } - }, - "../util/node_modules/parse5": { - "version": "6.0.1", - "license": "MIT" - }, - "../util/node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "../util/node_modules/parseurl": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/patch-package": { - "version": "6.4.7", - "license": "MIT", - "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^7.0.1", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.0", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33" - }, - "bin": { - "patch-package": "index.js" - }, - "engines": { - "npm": ">5" - } - }, - "../util/node_modules/patch-package/node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/patch-package/node_modules/chalk": { - "version": "2.4.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/patch-package/node_modules/ci-info": { - "version": "2.0.0", - "license": "MIT" - }, - "../util/node_modules/patch-package/node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "../util/node_modules/patch-package/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, - "../util/node_modules/patch-package/node_modules/cross-spawn": { - "version": "6.0.5", - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "../util/node_modules/patch-package/node_modules/escape-string-regexp": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/patch-package/node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/patch-package/node_modules/is-ci": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "../util/node_modules/patch-package/node_modules/path-key": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/patch-package/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "../util/node_modules/patch-package/node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "../util/node_modules/patch-package/node_modules/shebang-command": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/patch-package/node_modules/shebang-regex": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/patch-package/node_modules/slash": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/patch-package/node_modules/supports-color": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/patch-package/node_modules/which": { - "version": "1.3.1", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "../util/node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/path-is-absolute": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/path-to-regexp": { - "version": "0.1.7", - "license": "MIT" - }, - "../util/node_modules/performance-now": { - "version": "2.1.0", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/pg": { - "version": "8.7.1", - "license": "MIT", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.4.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "pg-native": ">=2.0.0" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "../util/node_modules/pg-connection-string": { - "version": "2.5.0", - "license": "MIT" - }, - "../util/node_modules/pg-int8": { - "version": "1.0.1", - "license": "ISC", - "engines": { - "node": ">=4.0.0" - } - }, - "../util/node_modules/pg-pool": { - "version": "3.4.1", - "license": "MIT", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "../util/node_modules/pg-protocol": { - "version": "1.5.0", - "license": "MIT" - }, - "../util/node_modules/pg-types": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/pgpass": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "split2": "^3.1.1" - } - }, - "../util/node_modules/picocolors": { - "version": "1.0.0", - "license": "ISC" - }, - "../util/node_modules/picomatch": { - "version": "2.3.0", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "../util/node_modules/pirates": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/postgres-array": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/postgres-bytea": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/postgres-date": { - "version": "1.0.7", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/postgres-interval": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/prebuild-install": { - "version": "6.1.4", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/prelude-ls": { - "version": "1.1.2", - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/pretty-format": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "../util/node_modules/process-nextick-args": { - "version": "2.0.1", - "license": "MIT" - }, - "../util/node_modules/prompts": { - "version": "2.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/proxy-addr": { - "version": "2.0.7", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "../util/node_modules/proxy-agent": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/proxy-agent/node_modules/debug": { - "version": "4.3.2", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/proxy-agent/node_modules/lru-cache": { - "version": "5.1.1", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "../util/node_modules/proxy-agent/node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "../util/node_modules/proxy-agent/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, - "../util/node_modules/proxy-from-env": { - "version": "1.1.0", - "license": "MIT" - }, - "../util/node_modules/psl": { - "version": "1.8.0", - "devOptional": true, - "license": "MIT" - }, - "../util/node_modules/pump": { - "version": "3.0.0", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "../util/node_modules/punycode": { - "version": "2.1.1", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/qs": { - "version": "6.7.0", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "../util/node_modules/querystringify": { - "version": "2.2.0", - "license": "MIT" - }, - "../util/node_modules/range-parser": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/raw-body": { - "version": "2.4.0", - "license": "MIT", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/rc": { - "version": "1.2.8", - "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", - "optional": true, - "peer": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "../util/node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/readable-stream": { - "version": "1.1.14", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "../util/node_modules/reflect-metadata": { - "version": "0.1.13", - "license": "Apache-2.0" - }, - "../util/node_modules/request": { - "version": "2.88.2", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "../util/node_modules/request/node_modules/qs": { - "version": "6.5.2", - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.6" - } - }, - "../util/node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "../util/node_modules/require-directory": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/requires-port": { - "version": "1.0.0", - "license": "MIT" - }, - "../util/node_modules/resolve": { - "version": "1.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../util/node_modules/resolve-cwd": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/rimraf": { - "version": "3.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../util/node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "../util/node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "../util/node_modules/sax": { - "version": "1.2.4", - "license": "ISC" - }, - "../util/node_modules/saxes": { - "version": "5.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "../util/node_modules/send": { - "version": "0.17.1", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/send/node_modules/ms": { - "version": "2.1.1", - "license": "MIT" - }, - "../util/node_modules/serve-static": { - "version": "1.14.1", - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/set-blocking": { - "version": "2.0.0", - "license": "ISC", - "optional": true, - "peer": true - }, - "../util/node_modules/setprototypeof": { - "version": "1.1.1", - "license": "ISC" - }, - "../util/node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "../util/node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/signal-exit": { - "version": "3.0.4", - "devOptional": true, - "license": "ISC" - }, - "../util/node_modules/simple-concat": { - "version": "1.0.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/simple-get": { - "version": "3.1.1", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "../util/node_modules/sisteransi": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/smart-buffer": { - "version": "4.2.0", - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "../util/node_modules/socks": { - "version": "2.6.1", - "license": "MIT", - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "../util/node_modules/socks-proxy-agent": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/socks-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "../util/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/source-map-support": { - "version": "0.5.20", - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "../util/node_modules/split2": { - "version": "3.2.2", - "license": "ISC", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "../util/node_modules/split2/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/split2/node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "../util/node_modules/sprintf-js": { - "version": "1.0.3", - "dev": true, - "license": "BSD-3-Clause" - }, - "../util/node_modules/sqlite3": { - "version": "5.0.2", - "hasInstallScript": true, - "license": "BSD-3-Clause", - "optional": true, - "peer": true, - "dependencies": { - "node-addon-api": "^3.0.0", - "node-pre-gyp": "^0.11.0" - }, - "optionalDependencies": { - "node-gyp": "3.x" - }, - "peerDependencies": { - "node-gyp": "3.x" - }, - "peerDependenciesMeta": { - "node-gyp": { - "optional": true - } - } - }, - "../util/node_modules/sshpk": { - "version": "1.16.1", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/stack-utils": { - "version": "2.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/statuses": { - "version": "1.5.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/streamsearch": { - "version": "0.1.2", - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/string_decoder": { - "version": "0.10.31", - "license": "MIT" - }, - "../util/node_modules/string-length": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/string-width": { - "version": "1.0.2", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/string-width/node_modules/ansi-regex": { - "version": "2.1.1", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/string-width/node_modules/strip-ansi": { - "version": "3.0.1", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/strip-ansi": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/strip-final-newline": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/strip-json-comments": { - "version": "2.0.1", - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/supports-hyperlinks": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/symbol-tree": { - "version": "3.2.4", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/tar": { - "version": "2.2.2", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, - "../util/node_modules/tar-fs": { - "version": "2.1.1", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "../util/node_modules/tar-stream": { - "version": "2.2.0", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/tar-stream/node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "../util/node_modules/terminal-link": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/thenify": { - "version": "3.3.1", - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "../util/node_modules/thenify-all": { - "version": "1.6.0", - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "../util/node_modules/throat": { - "version": "6.0.1", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/tmp": { - "version": "0.0.33", - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "../util/node_modules/tmpl": { - "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, - "../util/node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/to-regex-range": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "../util/node_modules/toidentifier": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "../util/node_modules/tough-cookie": { - "version": "4.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/tr46": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/ts-node": { - "version": "10.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@cspotcode/source-map-support": "0.6.1", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "../util/node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "../util/node_modules/tslib": { - "version": "2.3.1", - "license": "0BSD" - }, - "../util/node_modules/tunnel-agent": { - "version": "0.6.0", - "license": "Apache-2.0", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "../util/node_modules/tweetnacl": { - "version": "0.14.5", - "license": "Unlicense", - "optional": true, - "peer": true - }, - "../util/node_modules/type-check": { - "version": "0.3.2", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/type-fest": { - "version": "0.21.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/type-is": { - "version": "1.6.18", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/typedarray": { - "version": "0.0.6", - "license": "MIT" - }, - "../util/node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "../util/node_modules/typeorm": { - "version": "0.2.38", - "license": "MIT", - "dependencies": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "debug": "^4.3.1", - "dotenv": "^8.2.0", - "glob": "^7.1.6", - "js-yaml": "^4.0.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.1.0", - "xml2js": "^0.4.23", - "yargonaut": "^1.1.4", - "yargs": "^17.0.1", - "zen-observable-ts": "^1.0.0" - }, - "bin": { - "typeorm": "cli.js" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@sap/hana-client": "*", - "better-sqlite3": "*", - "hdb-pool": "*", - "ioredis": "*", - "mongodb": "^3.6.0", - "mssql": "*", - "mysql2": "*", - "oracledb": "*", - "pg": "*", - "pg-native": "*", - "pg-query-stream": "*", - "redis": "*", - "sql.js": "*", - "sqlite3": "*", - "typeorm-aurora-data-api-driver": "*" - }, - "peerDependenciesMeta": { - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "../util/node_modules/typeorm/node_modules/argparse": { - "version": "2.0.1", - "license": "Python-2.0" - }, - "../util/node_modules/typeorm/node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "../util/node_modules/typeorm/node_modules/debug": { - "version": "4.3.2", - "license": "MIT", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/typeorm/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/typeorm/node_modules/js-yaml": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../util/node_modules/typeorm/node_modules/mkdirp": { - "version": "1.0.4", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/typeorm/node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "../util/node_modules/typeorm/node_modules/string-width": { - "version": "4.2.2", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/typeorm/node_modules/yargs": { - "version": "17.1.1", - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=12" - } - }, - "../util/node_modules/typescript": { - "version": "4.4.3", - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "../util/node_modules/typescript-json-schema": { - "version": "0.50.1", - "dependencies": { - "@types/json-schema": "^7.0.7", - "@types/node": "^14.14.33", - "glob": "^7.1.6", - "json-stable-stringify": "^1.0.1", - "ts-node": "^9.1.1", - "typescript": "~4.2.3", - "yargs": "^16.2.0" - }, - "bin": { - "typescript-json-schema": "bin/typescript-json-schema" - } - }, - "../util/node_modules/typescript-json-schema/node_modules/ts-node": { - "version": "9.1.1", - "license": "MIT", - "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" - } - }, - "../util/node_modules/typescript-json-schema/node_modules/typescript": { - "version": "4.2.4", - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "../util/node_modules/universalify": { - "version": "0.1.2", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "../util/node_modules/unpipe": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "optional": true, - "peer": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "../util/node_modules/url-parse": { - "version": "1.5.10", - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "../util/node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "../util/node_modules/utils-merge": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "../util/node_modules/uuid": { - "version": "3.4.0", - "license": "MIT", - "optional": true, - "peer": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "../util/node_modules/v8-to-istanbul": { - "version": "8.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "../util/node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/verror": { - "version": "1.10.0", - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "../util/node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "license": "MIT", - "optional": true, - "peer": true - }, - "../util/node_modules/vm2": { - "version": "3.9.7", - "license": "MIT", - "dependencies": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "bin": { - "vm2": "bin/vm2" - }, - "engines": { - "node": ">=6.0" - } - }, - "../util/node_modules/vm2/node_modules/acorn-walk": { - "version": "8.2.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "../util/node_modules/w3c-hr-time": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "../util/node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/walker": { - "version": "1.0.7", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.x" - } - }, - "../util/node_modules/webidl-conversions": { - "version": "6.1.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=10.4" - } - }, - "../util/node_modules/whatwg-encoding": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "../util/node_modules/whatwg-mimetype": { - "version": "2.3.0", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/whatwg-url": { - "version": "8.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/wide-align": { - "version": "1.1.3", - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "../util/node_modules/word-wrap": { - "version": "1.2.3", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/wrap-ansi": { - "version": "7.0.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "../util/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.2", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "../util/node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "../util/node_modules/ws": { - "version": "7.5.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "../util/node_modules/xml-name-validator": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0" - }, - "../util/node_modules/xml2js": { - "version": "0.4.23", - "license": "MIT", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "../util/node_modules/xmlbuilder": { - "version": "11.0.1", - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, - "../util/node_modules/xmlchars": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "../util/node_modules/xregexp": { - "version": "2.0.0", - "license": "MIT" - }, - "../util/node_modules/xtend": { - "version": "4.0.2", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "../util/node_modules/y18n": { - "version": "5.0.8", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/yallist": { - "version": "4.0.0", - "devOptional": true, - "license": "ISC" - }, - "../util/node_modules/yargonaut": { - "version": "1.1.4", - "license": "Apache-2.0", - "dependencies": { - "chalk": "^1.1.1", - "figlet": "^1.1.1", - "parent-require": "^1.0.0" - } - }, - "../util/node_modules/yargonaut/node_modules/ansi-regex": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/yargonaut/node_modules/ansi-styles": { - "version": "2.2.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/yargonaut/node_modules/chalk": { - "version": "1.1.3", - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/yargonaut/node_modules/escape-string-regexp": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/yargonaut/node_modules/strip-ansi": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/yargonaut/node_modules/supports-color": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/yargs": { - "version": "16.2.0", - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/yargs-parser": { - "version": "20.2.9", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/yargs/node_modules/string-width": { - "version": "4.2.2", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/yn": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/zen-observable": { - "version": "0.8.15", - "license": "MIT" - }, - "../util/node_modules/zen-observable-ts": { - "version": "1.1.0", - "license": "MIT", - "dependencies": { - "@types/zen-observable": "0.8.3", - "zen-observable": "0.8.15" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.15.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.15.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "regexpu-core": "^4.7.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-wrap-function": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.14.9", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.15.6", - "dev": true, - "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4", - "@babel/plugin-proposal-optional-chaining": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.15.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.15.4", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.15.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.15.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.14.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.15.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.9", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.9", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerator-transform": "^0.14.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.15.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.15.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-typescript": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.15.8", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4", - "@babel/plugin-proposal-async-generator-functions": "^7.15.8", - "@babel/plugin-proposal-class-properties": "^7.14.5", - "@babel/plugin-proposal-class-static-block": "^7.15.4", - "@babel/plugin-proposal-dynamic-import": "^7.14.5", - "@babel/plugin-proposal-export-namespace-from": "^7.14.5", - "@babel/plugin-proposal-json-strings": "^7.14.5", - "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", - "@babel/plugin-proposal-numeric-separator": "^7.14.5", - "@babel/plugin-proposal-object-rest-spread": "^7.15.6", - "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-private-methods": "^7.14.5", - "@babel/plugin-proposal-private-property-in-object": "^7.15.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.14.5", - "@babel/plugin-transform-async-to-generator": "^7.14.5", - "@babel/plugin-transform-block-scoped-functions": "^7.14.5", - "@babel/plugin-transform-block-scoping": "^7.15.3", - "@babel/plugin-transform-classes": "^7.15.4", - "@babel/plugin-transform-computed-properties": "^7.14.5", - "@babel/plugin-transform-destructuring": "^7.14.7", - "@babel/plugin-transform-dotall-regex": "^7.14.5", - "@babel/plugin-transform-duplicate-keys": "^7.14.5", - "@babel/plugin-transform-exponentiation-operator": "^7.14.5", - "@babel/plugin-transform-for-of": "^7.15.4", - "@babel/plugin-transform-function-name": "^7.14.5", - "@babel/plugin-transform-literals": "^7.14.5", - "@babel/plugin-transform-member-expression-literals": "^7.14.5", - "@babel/plugin-transform-modules-amd": "^7.14.5", - "@babel/plugin-transform-modules-commonjs": "^7.15.4", - "@babel/plugin-transform-modules-systemjs": "^7.15.4", - "@babel/plugin-transform-modules-umd": "^7.14.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.9", - "@babel/plugin-transform-new-target": "^7.14.5", - "@babel/plugin-transform-object-super": "^7.14.5", - "@babel/plugin-transform-parameters": "^7.15.4", - "@babel/plugin-transform-property-literals": "^7.14.5", - "@babel/plugin-transform-regenerator": "^7.14.5", - "@babel/plugin-transform-reserved-words": "^7.14.5", - "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.15.8", - "@babel/plugin-transform-sticky-regex": "^7.14.5", - "@babel/plugin-transform-template-literals": "^7.14.5", - "@babel/plugin-transform-typeof-symbol": "^7.14.5", - "@babel/plugin-transform-unicode-escapes": "^7.14.5", - "@babel/plugin-transform-unicode-regex": "^7.14.5", - "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.15.6", - "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.5", - "babel-plugin-polyfill-regenerator": "^0.2.2", - "core-js-compat": "^3.16.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.15.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-typescript": "^7.15.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.15.4", - "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.15.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/types": { - "version": "7.15.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@fosscord/util": { - "resolved": "../util", - "link": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.2.5", - "jest-util": "^27.2.5", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.2.5", - "@jest/reporters": "^27.2.5", - "@jest/test-result": "^27.2.5", - "@jest/transform": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.2.5", - "jest-config": "^27.2.5", - "jest-haste-map": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.5", - "jest-resolve-dependencies": "^27.2.5", - "jest-runner": "^27.2.5", - "jest-runtime": "^27.2.5", - "jest-snapshot": "^27.2.5", - "jest-util": "^27.2.5", - "jest-validate": "^27.2.5", - "jest-watcher": "^27.2.5", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/core/node_modules/ci-info": { - "version": "3.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@jest/core/node_modules/is-ci": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^3.1.1" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/@jest/core/node_modules/jest-config": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.5", - "@jest/types": "^27.2.5", - "babel-jest": "^27.2.5", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.2.5", - "jest-environment-jsdom": "^27.2.5", - "jest-environment-node": "^27.2.5", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.5", - "jest-runner": "^27.2.5", - "jest-util": "^27.2.5", - "jest-validate": "^27.2.5", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/fake-timers": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "jest-mock": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.2.5", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.2.5", - "jest-mock": "^27.2.5", - "jest-util": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.2.5", - "@jest/types": "^27.2.5", - "expect": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.2.5", - "@jest/test-result": "^27.2.5", - "@jest/transform": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.2.5", - "jest-resolve": "^27.2.5", - "jest-util": "^27.2.5", - "jest-worker": "^27.2.5", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/source-map": { - "version": "27.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.2.5", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.5", - "jest-runtime": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.2.5", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.2.5", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@jest/types": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.5", - "license": "BSD-3-Clause", - "dependencies": { - "detect-libc": "^1.0.3", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.1", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "rimraf": "^3.0.2", - "semver": "^7.3.4", - "tar": "^6.1.0" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { - "version": "7.3.5", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@sentry/core": { - "version": "6.16.1", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/hub": "6.16.1", - "@sentry/minimal": "6.16.1", - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/core/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, - "node_modules/@sentry/hub": { - "version": "6.16.1", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/hub/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, - "node_modules/@sentry/minimal": { - "version": "6.16.1", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/hub": "6.16.1", - "@sentry/types": "6.16.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/minimal/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, - "node_modules/@sentry/node": { - "version": "6.16.1", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/core": "6.16.1", - "@sentry/hub": "6.16.1", - "@sentry/tracing": "6.16.1", - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/node/node_modules/cookie": { - "version": "0.4.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@sentry/node/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, - "node_modules/@sentry/tracing": { - "version": "6.16.1", - "license": "MIT", - "dependencies": { - "@sentry/hub": "6.16.1", - "@sentry/minimal": "6.16.1", - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/tracing/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, - "node_modules/@sentry/types": { - "version": "6.16.1", - "license": "BSD-3-Clause", - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/utils": { - "version": "6.16.1", - "license": "BSD-3-Clause", - "dependencies": { - "@sentry/types": "6.16.1", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@sentry/utils/node_modules/tslib": { - "version": "1.14.1", - "license": "0BSD" - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@sqltools/formatter": { - "version": "1.2.3", - "license": "MIT" - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/amqplib": { - "version": "0.8.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "node_modules/@types/babel__core": { - "version": "7.1.16", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/bcrypt": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/bluebird": { - "version": "3.5.36", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/body-parser": { - "version": "1.19.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/cookiejar": { - "version": "2.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/express": { - "version": "4.17.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.24", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/i18next-node-fs-backend": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "i18next": ">=17.0.11" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "27.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "node_modules/@types/jest-expect-message": { - "version": "1.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/jest": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.9", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/morgan": { - "version": "1.9.3", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/multer": { - "version": "1.4.7", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/node": { - "version": "14.18.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz", - "integrity": "sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw==" - }, - "node_modules/@types/node-fetch": { - "version": "2.5.12", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/notp": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/notp/-/notp-2.0.2.tgz", - "integrity": "sha512-JUcVYN9Tmw0AjoAfvjslS4hbv39fPBbZdftBK3b50g5z/DmhLsu6cd0UOEBiQuMwy2FirshF2Gk9gAvfWjshMw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/prettier": { - "version": "2.4.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/strip-bom": { - "version": "3.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/strip-json-comments": { - "version": "0.0.30", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/superagent": { - "version": "4.1.13", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/cookiejar": "*", - "@types/node": "*" - } - }, - "node_modules/@types/supertest": { - "version": "2.0.11", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/superagent": "*" - } - }, - "node_modules/@types/yargs": { - "version": "16.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "dev": true, - "license": "MIT" - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "license": "BSD-2-Clause" - }, - "node_modules/@zerollup/ts-helpers": { - "version": "1.7.18", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve": "^1.12.0" - }, - "peerDependencies": { - "typescript": ">=3.7.2" - } - }, - "node_modules/@zerollup/ts-transform-paths": { - "version": "1.7.18", - "dev": true, - "license": "MIT", - "dependencies": { - "@zerollup/ts-helpers": "^1.7.18" - }, - "peerDependencies": { - "typescript": ">=3.7.2" - } - }, - "node_modules/abab": { - "version": "2.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/abbrev": { - "version": "1.1.1", - "license": "ISC" - }, - "node_modules/accepts": { - "version": "1.3.7", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.7.0", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/ajv": { - "version": "8.6.2", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "license": "MIT", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/amqplib": { - "version": "0.8.0", - "license": "MIT", - "dependencies": { - "bitsyntax": "~0.1.0", - "bluebird": "^3.7.2", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "safe-buffer": "~5.2.1", - "url-parse": "~1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "license": "MIT" - }, - "node_modules/anymatch": { - "version": "3.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/app-root-path": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/append-field": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/aproba": { - "version": "1.2.0", - "license": "ISC" - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "license": "ISC", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "devOptional": true, - "license": "MIT" - }, - "node_modules/argparse": { - "version": "1.0.10", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/assert": { - "version": "1.5.0", - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/ast-types": { - "version": "0.13.4", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "license": "MIT" - }, - "node_modules/babel-jest": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/transform": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.2.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "dev": true, - "license": "MIT", - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.16.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.2.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "babel-plugin-jest-hoist": "^27.2.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/basic-auth/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/bcrypt": { - "version": "5.0.1", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/bitsyntax": { - "version": "0.1.0", - "license": "MIT", - "dependencies": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/bitsyntax/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/bitsyntax/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/bitsyntax/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/bluebird": { - "version": "3.7.2", - "license": "MIT" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "license": "MIT", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/boolbase": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/browserslist": { - "version": "4.17.0", - "dev": true, - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", - "escalade": "^3.1.1", - "node-releases": "^1.1.75" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "license": "BSD-3-Clause" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "license": "MIT" - }, - "node_modules/buffer-more-ints": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/busboy": { - "version": "0.2.14", - "dependencies": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/bytes": { - "version": "3.1.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001257", - "dev": true, - "license": "CC-BY-4.0", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.10", - "license": "MIT", - "dependencies": { - "cheerio-select": "^1.5.0", - "dom-serializer": "^1.3.2", - "domhandler": "^4.2.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "tslib": "^2.2.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "1.5.0", - "license": "BSD-2-Clause", - "dependencies": { - "css-select": "^4.1.3", - "css-what": "^5.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0", - "domutils": "^2.7.0" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.5.2", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "dev": true, - "license": "MIT" - }, - "node_modules/cli-highlight": { - "version": "2.1.11", - "license": "ISC", - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/cli-highlight/node_modules/parse5": { - "version": "5.1.1", - "license": "MIT" - }, - "node_modules/cliui": { - "version": "7.0.4", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/co": { - "version": "4.6.0", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/color-convert": { - "version": "2.0.1", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "license": "MIT" - }, - "node_modules/colorette": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "license": "MIT" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "engines": [ - "node >= 0.8" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "license": "ISC" - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/content-type": { - "version": "1.0.4", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "dev": true, - "license": "MIT" - }, - "node_modules/cookie": { - "version": "0.4.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "license": "MIT" - }, - "node_modules/cookiejar": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/core-js-compat": { - "version": "3.18.3", - "dev": true, - "license": "MIT", - "dependencies": { - "browserslist": "^4.17.3", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/browserslist": { - "version": "4.17.4", - "dev": true, - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001265", - "electron-to-chromium": "^1.3.867", - "escalade": "^3.1.1", - "node-releases": "^2.0.0", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/core-js-compat/node_modules/caniuse-lite": { - "version": "1.0.30001267", - "dev": true, - "license": "CC-BY-4.0", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/core-js-compat/node_modules/electron-to-chromium": { - "version": "1.3.870", - "dev": true, - "license": "ISC" - }, - "node_modules/core-js-compat/node_modules/node-releases": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/create-require": { - "version": "1.1.1", - "devOptional": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-select": { - "version": "4.1.3", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "5.0.1", - "license": "BSD-2-Clause", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssom": { - "version": "0.4.4", - "dev": true, - "license": "MIT" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "dev": true, - "license": "MIT" - }, - "node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/data-urls": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decimal.js": { - "version": "10.3.1", - "dev": true, - "license": "MIT" - }, - "node_modules/dedent": { - "version": "0.7.0", - "dev": true, - "license": "MIT" - }, - "node_modules/deep-is": { - "version": "0.1.4", - "license": "MIT" - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-properties": { - "version": "1.1.3", - "dev": true, - "license": "MIT", - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/degenerator": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/degenerator/node_modules/escodegen": { - "version": "1.14.3", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/degenerator/node_modules/estraverse": { - "version": "4.3.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/degenerator/node_modules/source-map": { - "version": "0.6.1", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/depd": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "license": "MIT" - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "license": "Apache-2.0", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/dicer": { - "version": "0.2.5", - "dependencies": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "devOptional": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "27.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "1.3.2", - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.2.0", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "BSD-2-Clause" - }, - "node_modules/domexception": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/domhandler": { - "version": "4.2.2", - "license": "BSD-2-Clause", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "2.8.0", - "license": "BSD-2-Clause", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dotenv": { - "version": "8.6.0", - "license": "BSD-2-Clause", - "engines": { - "node": ">=10" - } - }, - "node_modules/dynamic-dedupe": { - "version": "0.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "xtend": "^4.0.0" - } - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "license": "Apache-2.0", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/electron-to-chromium": { - "version": "1.3.840", - "dev": true, - "license": "ISC" - }, - "node_modules/emittery": { - "version": "0.8.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "license": "BSD-2-Clause", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/escodegen/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.2.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.2.5", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-regex-util": "^27.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/express": { - "version": "4.17.1", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express-async-errors": { - "version": "3.1.1", - "license": "ISC", - "peerDependencies": { - "express": "^4.16.2" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.1.2", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "license": "MIT" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "license": "MIT" - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "license": "MIT" - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-uri-to-path": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/find-up": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "license": "Apache-2.0", - "dependencies": { - "micromatch": "^4.0.2" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formidable": { - "version": "1.2.2", - "license": "MIT", - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "license": "ISC", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/ftp": { - "version": "0.3.10", - "dependencies": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "license": "MIT" - }, - "node_modules/gauge": { - "version": "2.7.4", - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.1", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-uri": { - "version": "3.0.2", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "license": "ISC" - }, - "node_modules/growly": { - "version": "1.3.0", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/has": { - "version": "1.0.3", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-symbols": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "license": "ISC" - }, - "node_modules/helmet": { - "version": "4.6.0", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "license": "BSD-3-Clause", - "engines": { - "node": "*" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/htmlparser2": { - "version": "6.1.0", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "license": "MIT", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/http-errors": { - "version": "1.7.2", - "license": "MIT", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "license": "ISC" - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/i18next": { - "version": "19.9.2", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.12.0" - } - }, - "node_modules/i18next-http-middleware": { - "version": "3.1.4", - "license": "MIT" - }, - "node_modules/i18next-node-fs-backend": { - "version": "2.1.3", - "license": "MIT", - "dependencies": { - "js-yaml": "3.13.1", - "json5": "2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/image-size": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/import-local": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "license": "ISC", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "license": "ISC" - }, - "node_modules/ini": { - "version": "1.3.8", - "dev": true, - "license": "ISC" - }, - "node_modules/interpret": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "license": "MIT" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-core-module": { - "version": "2.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "license": "MIT", - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/is-stream": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "license": "ISC" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "3.0.5", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^27.2.5", - "import-local": "^3.0.2", - "jest-cli": "^27.2.5" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.2.5", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.2.5", - "@jest/test-result": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.2.5", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.5", - "jest-matcher-utils": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-runtime": "^27.2.5", - "jest-snapshot": "^27.2.5", - "jest-util": "^27.2.5", - "pretty-format": "^27.2.5", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-cli": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/core": "^27.2.5", - "@jest/test-result": "^27.2.5", - "@jest/types": "^27.2.5", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.2.5", - "jest-util": "^27.2.5", - "jest-validate": "^27.2.5", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/ci-info": { - "version": "3.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-cli/node_modules/is-ci": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^3.1.1" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/jest-cli/node_modules/jest-config": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.5", - "@jest/types": "^27.2.5", - "babel-jest": "^27.2.5", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.2.5", - "jest-environment-jsdom": "^27.2.5", - "jest-environment-node": "^27.2.5", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.5", - "jest-runner": "^27.2.5", - "jest-util": "^27.2.5", - "jest-validate": "^27.2.5", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "27.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.2.5", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "jest-util": "^27.2.5", - "pretty-format": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.2.5", - "@jest/fake-timers": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "jest-mock": "^27.2.5", - "jest-util": "^27.2.5", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.2.5", - "@jest/fake-timers": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "jest-mock": "^27.2.5", - "jest-util": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-expect-message": { - "version": "1.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-get-type": { - "version": "27.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.2.5", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.2.5", - "jest-worker": "^27.2.5", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.2.5", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.2.5", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.5", - "jest-matcher-utils": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-runtime": "^27.2.5", - "jest-snapshot": "^27.2.5", - "jest-util": "^27.2.5", - "pretty-format": "^27.2.5", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.2.5", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.2.5", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.5", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-mock": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.2.5", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.0.6", - "dev": true, - "license": "MIT", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.2.5", - "chalk": "^4.0.0", - "escalade": "^3.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.5", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.2.5", - "jest-validate": "^27.2.5", - "resolve": "^1.20.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.2.5", - "@jest/environment": "^27.2.5", - "@jest/test-result": "^27.2.5", - "@jest/transform": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.2.5", - "jest-environment-node": "^27.2.5", - "jest-haste-map": "^27.2.5", - "jest-leak-detector": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-resolve": "^27.2.5", - "jest-runtime": "^27.2.5", - "jest-util": "^27.2.5", - "jest-worker": "^27.2.5", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.2.5", - "@jest/environment": "^27.2.5", - "@jest/fake-timers": "^27.2.5", - "@jest/globals": "^27.2.5", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.5", - "@jest/transform": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-mock": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.5", - "jest-snapshot": "^27.2.5", - "jest-util": "^27.2.5", - "jest-validate": "^27.2.5", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-serializer": { - "version": "27.0.6", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.2.5", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.2.5", - "jest-get-type": "^27.0.6", - "jest-haste-map": "^27.2.5", - "jest-matcher-utils": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-resolve": "^27.2.5", - "jest-util": "^27.2.5", - "natural-compare": "^1.4.0", - "pretty-format": "^27.2.5", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.5", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-util/node_modules/ci-info": { - "version": "3.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-util/node_modules/is-ci": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^3.1.1" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/jest-validate": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.2.5", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "leven": "^3.1.0", - "pretty-format": "^27.2.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.2.5", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-worker": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "3.13.1", - "license": "MIT", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/json5": { - "version": "2.0.0", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonify": { - "version": "0.0.0", - "dev": true, - "license": "Public Domain" - }, - "node_modules/jsonwebtoken": { - "version": "8.5.1", - "license": "MIT", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/jwa": { - "version": "1.4.1", - "license": "MIT", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "license": "MIT", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klaw-sync": { - "version": "6.0.0", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.11" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lambert-server": { - "version": "1.2.12", - "license": "ISC", - "dependencies": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "license": "MIT" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "license": "MIT" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "license": "MIT" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "license": "MIT" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "license": "MIT" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "license": "MIT" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "license": "MIT" - }, - "node_modules/lru_map": { - "version": "0.3.3", - "license": "MIT" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "license": "MIT", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "devOptional": true, - "license": "ISC" - }, - "node_modules/makeerror": { - "version": "1.0.11", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.x" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "license": "MIT" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "dev": true, - "license": "MIT" - }, - "node_modules/methods": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "license": "MIT", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.49.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.32", - "license": "MIT", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minipass": { - "version": "3.1.5", - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "license": "MIT", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/missing-native-js-functions": { - "version": "1.2.18", - "license": "ISC" - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "license": "MIT", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/morgan": { - "version": "1.10.0", - "license": "MIT", - "dependencies": { - "basic-auth": "~2.0.1", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-finished": "~2.3.0", - "on-headers": "~1.0.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/morgan/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/morgan/node_modules/depd": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/morgan/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/ms": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/multer": { - "version": "1.4.3", - "license": "MIT", - "dependencies": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/negotiator": { - "version": "0.6.2", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netmask": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "license": "MIT" - }, - "node_modules/node-2fa": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-2fa/-/node-2fa-2.0.3.tgz", - "integrity": "sha512-PQldrOhjuoZyoydMvMSctllPN1ZPZ1/NwkEcgYwY9faVqE/OymxR+3awPpbWZxm6acLKqvmNqQmdqTsqYyflFw==", - "dependencies": { - "@types/notp": "^2.0.0", - "notp": "^2.0.3", - "thirty-two": "1.0.2", - "tslib": "^2.1.0" - } - }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "license": "MIT" - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "dev": true, - "license": "MIT" - }, - "node_modules/node-modules-regexp": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/node-notifier": { - "version": "8.0.2", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - } - }, - "node_modules/node-notifier/node_modules/semver": { - "version": "7.3.5", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-notifier/node_modules/which": { - "version": "2.0.2", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-releases": { - "version": "1.1.75", - "dev": true, - "license": "MIT" - }, - "node_modules/nopt": { - "version": "5.0.0", - "license": "ISC", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/notp": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/notp/-/notp-2.0.3.tgz", - "integrity": "sha512-oBig/2uqkjQ5AkBuw4QJYwkEWa/q+zHxI5/I5z6IeP2NT0alpJFsP/trrfCC+9xOAgQSZXssNi962kp5KBmypQ==", - "engines": { - "node": "> v0.6.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "license": "ISC", - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/nth-check": { - "version": "2.0.1", - "license": "BSD-2-Clause", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nwsapi": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.11.0", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "7.4.2", - "license": "MIT", - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "license": "MIT", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pac-proxy-agent": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/pac-resolver": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "degenerator": "^3.0.1", - "ip": "^1.1.5", - "netmask": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "license": "MIT" - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/patch-package": { - "version": "6.4.7", - "license": "MIT", - "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^7.0.1", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.0", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33" - }, - "bin": { - "patch-package": "index.js" - }, - "engines": { - "npm": ">5" - } - }, - "node_modules/patch-package/node_modules/ansi-styles": { - "version": "3.2.1", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/patch-package/node_modules/chalk": { - "version": "2.4.2", - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/patch-package/node_modules/color-convert": { - "version": "1.9.3", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/patch-package/node_modules/color-name": { - "version": "1.1.3", - "license": "MIT" - }, - "node_modules/patch-package/node_modules/cross-spawn": { - "version": "6.0.5", - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/patch-package/node_modules/fs-extra": { - "version": "7.0.1", - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/patch-package/node_modules/has-flag": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/patch-package/node_modules/path-key": { - "version": "2.0.1", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/patch-package/node_modules/rimraf": { - "version": "2.7.1", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/patch-package/node_modules/shebang-command": { - "version": "1.2.0", - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/patch-package/node_modules/shebang-regex": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/patch-package/node_modules/slash": { - "version": "2.0.0", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/patch-package/node_modules/supports-color": { - "version": "5.5.0", - "license": "MIT", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "dev": true, - "license": "MIT" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-format": { - "version": "27.2.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^27.2.5", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "license": "MIT" - }, - "node_modules/prompts": { - "version": "2.4.2", - "dev": true, - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-agent": { - "version": "5.0.0", - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "5.1.1", - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/proxy-agent/node_modules/yallist": { - "version": "3.1.1", - "license": "ISC" - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "license": "MIT" - }, - "node_modules/psl": { - "version": "1.8.0", - "dev": true, - "license": "MIT" - }, - "node_modules/punycode": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.7.0", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "license": "MIT" - }, - "node_modules/queue": { - "version": "6.0.2", - "license": "MIT", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "license": "MIT", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "dev": true, - "license": "MIT" - }, - "node_modules/readable-stream": { - "version": "1.1.14", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/readable-stream/node_modules/string_decoder": { - "version": "0.10.31", - "license": "MIT" - }, - "node_modules/readdirp": { - "version": "3.6.0", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "license": "Apache-2.0" - }, - "node_modules/regenerate": { - "version": "1.4.2", - "dev": true, - "license": "MIT" - }, - "node_modules/regenerate-unicode-properties": { - "version": "9.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "license": "MIT" - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "4.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "dev": true, - "license": "MIT" - }, - "node_modules/regjsparser": { - "version": "0.7.0", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "license": "MIT" - }, - "node_modules/resolve": { - "version": "1.20.0", - "dev": true, - "license": "MIT", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "license": "MIT" - }, - "node_modules/sax": { - "version": "1.2.4", - "license": "ISC" - }, - "node_modules/saxes": { - "version": "5.0.1", - "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.17.1", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "license": "MIT" - }, - "node_modules/serve-static": { - "version": "1.14.1", - "license": "MIT", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "license": "ISC" - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "license": "ISC" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/shelljs": { - "version": "0.8.4", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shellwords": { - "version": "0.1.1", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true - }, - "node_modules/side-channel": { - "version": "1.0.4", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.4", - "license": "ISC" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "dev": true, - "license": "MIT" - }, - "node_modules/slash": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.6.1", - "license": "MIT", - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/source-map": { - "version": "0.5.7", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.20", - "devOptional": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "devOptional": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "license": "BSD-3-Clause" - }, - "node_modules/stack-utils": { - "version": "2.0.4", - "dev": true, - "license": "MIT", - "dependencies": { - "escape-string-regexp": "^2.0.0", - "source-map-support": "^0.5.20" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/streamsearch": { - "version": "0.1.2", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "1.0.2", - "license": "MIT", - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "2.1.1", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "3.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/superagent": { - "version": "6.1.0", - "license": "MIT", - "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.2", - "debug": "^4.1.1", - "fast-safe-stringify": "^2.0.7", - "form-data": "^3.0.0", - "formidable": "^1.2.2", - "methods": "^1.1.2", - "mime": "^2.4.6", - "qs": "^6.9.4", - "readable-stream": "^3.6.0", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 7.0.0" - } - }, - "node_modules/superagent/node_modules/mime": { - "version": "2.5.2", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/superagent/node_modules/qs": { - "version": "6.10.1", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/superagent/node_modules/readable-stream": { - "version": "3.6.0", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/superagent/node_modules/semver": { - "version": "7.3.5", - "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/supertest": { - "version": "6.1.6", - "license": "MIT", - "dependencies": { - "methods": "^1.1.2", - "superagent": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "dev": true, - "license": "MIT" - }, - "node_modules/tar": { - "version": "6.1.11", - "license": "ISC", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "license": "MIT", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "license": "MIT", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/thirty-two": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz", - "integrity": "sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==", - "engines": { - "node": ">=0.2.6" - } - }, - "node_modules/throat": { - "version": "6.0.1", - "dev": true, - "license": "MIT" - }, - "node_modules/tmp": { - "version": "0.0.33", - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "dev": true, - "license": "MIT", - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-node": { - "version": "9.1.1", - "devOptional": true, - "license": "MIT", - "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" - } - }, - "node_modules/ts-node-dev": { - "version": "1.1.8", - "dev": true, - "license": "MIT", - "dependencies": { - "chokidar": "^3.5.1", - "dynamic-dedupe": "^0.3.0", - "minimist": "^1.2.5", - "mkdirp": "^1.0.4", - "resolve": "^1.0.0", - "rimraf": "^2.6.1", - "source-map-support": "^0.5.12", - "tree-kill": "^1.2.2", - "ts-node": "^9.0.0", - "tsconfig": "^7.0.0" - }, - "bin": { - "ts-node-dev": "lib/bin.js", - "tsnd": "lib/bin.js" - }, - "engines": { - "node": ">=0.8.0" - }, - "peerDependencies": { - "node-notifier": "*", - "typescript": "*" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/ts-node-dev/node_modules/mkdirp": { - "version": "1.0.4", - "dev": true, - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ts-node-dev/node_modules/rimraf": { - "version": "2.7.1", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ts-patch": { - "version": "1.4.4", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.1.0", - "glob": "^7.1.7", - "global-prefix": "^3.0.0", - "minimist": "^1.2.5", - "resolve": "^1.20.0", - "shelljs": "^0.8.4", - "strip-ansi": "^6.0.0" - }, - "bin": { - "ts-patch": "bin/cli.js" - }, - "peerDependencies": { - "typescript": ">2.7.0" - } - }, - "node_modules/tsconfig": { - "version": "7.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "node_modules/tsconfig/node_modules/strip-bom": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/tslib": { - "version": "2.3.1", - "license": "0BSD" - }, - "node_modules/type-check": { - "version": "0.3.2", - "license": "MIT", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "license": "MIT" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "license": "MIT", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typeorm": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", - "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", - "dependencies": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - }, - "bin": { - "typeorm": "cli.js", - "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", - "typeorm-ts-node-esm": "cli-ts-node-esm.js" - }, - "engines": { - "node": ">= 12.9.0" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@google-cloud/spanner": "^5.18.0", - "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2", - "hdb-pool": "^0.1.6", - "ioredis": "^5.0.4", - "mongodb": "^3.6.0", - "mssql": "^7.3.0", - "mysql2": "^2.2.5", - "oracledb": "^5.1.0", - "pg": "^8.5.1", - "pg-native": "^3.0.0", - "pg-query-stream": "^4.0.0", - "redis": "^3.1.1 || ^4.0.0", - "sql.js": "^1.4.0", - "sqlite3": "^5.0.3", - "ts-node": "^10.7.0", - "typeorm-aurora-data-api-driver": "^2.0.0" - }, - "peerDependenciesMeta": { - "@google-cloud/spanner": { - "optional": true - }, - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/argparse": { - "version": "2.0.1", - "license": "Python-2.0" - }, - "node_modules/typeorm/node_modules/buffer": { - "version": "6.0.3", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/typeorm/node_modules/dotenv": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", - "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/typeorm/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/typeorm/node_modules/js-yaml": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/typeorm/node_modules/mkdirp": { - "version": "1.0.4", - "license": "MIT", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/typeorm/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/typeorm/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/typeorm/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/typescript": { - "version": "4.4.3", - "devOptional": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/typescript-json-schema": { - "version": "0.50.1", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.7", - "@types/node": "^14.14.33", - "glob": "^7.1.6", - "json-stable-stringify": "^1.0.1", - "ts-node": "^9.1.1", - "typescript": "~4.2.3", - "yargs": "^16.2.0" - }, - "bin": { - "typescript-json-schema": "bin/typescript-json-schema" - } - }, - "node_modules/typescript-json-schema/node_modules/json-stable-stringify": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "node_modules/typescript-json-schema/node_modules/typescript": { - "version": "4.2.4", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "license": "MIT", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util": { - "version": "0.10.3", - "license": "MIT", - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "license": "MIT" - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.1", - "license": "ISC" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.0", - "dev": true, - "license": "ISC", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">= 8" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vm2": { - "version": "3.9.7", - "license": "MIT", - "dependencies": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "bin": { - "vm2": "bin/vm2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/vm2/node_modules/acorn-walk": { - "version": "8.2.0", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.7", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "makeerror": "1.0.x" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "dev": true, - "license": "MIT", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "dev": true, - "license": "MIT" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "dev": true, - "license": "MIT", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "1.3.1", - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/wide-align": { - "version": "1.1.3", - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.3", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "license": "ISC" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.5", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/xml2js": { - "version": "0.4.23", - "license": "MIT", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "license": "MIT", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "dev": true, - "license": "MIT" - }, - "node_modules/xregexp": { - "version": "2.0.0", - "license": "MIT" - }, - "node_modules/xtend": { - "version": "4.0.2", - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "license": "ISC" - }, - "node_modules/yargs": { - "version": "16.2.0", - "license": "MIT", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "devOptional": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - } - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/compat-data": { - "version": "7.15.0", - "dev": true - }, - "@babel/core": { - "version": "7.15.5", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "json5": { - "version": "2.2.0", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.14.5", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.2.3", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-imports": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.14.9", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-wrap-function": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-replace-supers": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.14.9", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helpers": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.15.6", - "dev": true - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4", - "@babel/plugin-proposal-optional-chaining": "^7.14.5" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.15.8", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.15.4", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.15.6", - "dev": true, - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.15.4" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.14.5", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-remap-async-to-generator": "^7.14.5" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.15.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.14.7", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-simple-access": "^7.15.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.9", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.14.9", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-replace-supers": "^7.14.5" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.14.5", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.15.8", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-skip-transparent-expression-wrappers": "^7.15.4" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.15.8", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/plugin-syntax-typescript": "^7.14.5" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.14.5", - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/preset-env": { - "version": "7.15.8", - "dev": true, - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.15.4", - "@babel/plugin-proposal-async-generator-functions": "^7.15.8", - "@babel/plugin-proposal-class-properties": "^7.14.5", - "@babel/plugin-proposal-class-static-block": "^7.15.4", - "@babel/plugin-proposal-dynamic-import": "^7.14.5", - "@babel/plugin-proposal-export-namespace-from": "^7.14.5", - "@babel/plugin-proposal-json-strings": "^7.14.5", - "@babel/plugin-proposal-logical-assignment-operators": "^7.14.5", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5", - "@babel/plugin-proposal-numeric-separator": "^7.14.5", - "@babel/plugin-proposal-object-rest-spread": "^7.15.6", - "@babel/plugin-proposal-optional-catch-binding": "^7.14.5", - "@babel/plugin-proposal-optional-chaining": "^7.14.5", - "@babel/plugin-proposal-private-methods": "^7.14.5", - "@babel/plugin-proposal-private-property-in-object": "^7.15.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.14.5", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.14.5", - "@babel/plugin-transform-async-to-generator": "^7.14.5", - "@babel/plugin-transform-block-scoped-functions": "^7.14.5", - "@babel/plugin-transform-block-scoping": "^7.15.3", - "@babel/plugin-transform-classes": "^7.15.4", - "@babel/plugin-transform-computed-properties": "^7.14.5", - "@babel/plugin-transform-destructuring": "^7.14.7", - "@babel/plugin-transform-dotall-regex": "^7.14.5", - "@babel/plugin-transform-duplicate-keys": "^7.14.5", - "@babel/plugin-transform-exponentiation-operator": "^7.14.5", - "@babel/plugin-transform-for-of": "^7.15.4", - "@babel/plugin-transform-function-name": "^7.14.5", - "@babel/plugin-transform-literals": "^7.14.5", - "@babel/plugin-transform-member-expression-literals": "^7.14.5", - "@babel/plugin-transform-modules-amd": "^7.14.5", - "@babel/plugin-transform-modules-commonjs": "^7.15.4", - "@babel/plugin-transform-modules-systemjs": "^7.15.4", - "@babel/plugin-transform-modules-umd": "^7.14.5", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.14.9", - "@babel/plugin-transform-new-target": "^7.14.5", - "@babel/plugin-transform-object-super": "^7.14.5", - "@babel/plugin-transform-parameters": "^7.15.4", - "@babel/plugin-transform-property-literals": "^7.14.5", - "@babel/plugin-transform-regenerator": "^7.14.5", - "@babel/plugin-transform-reserved-words": "^7.14.5", - "@babel/plugin-transform-shorthand-properties": "^7.14.5", - "@babel/plugin-transform-spread": "^7.15.8", - "@babel/plugin-transform-sticky-regex": "^7.14.5", - "@babel/plugin-transform-template-literals": "^7.14.5", - "@babel/plugin-transform-typeof-symbol": "^7.14.5", - "@babel/plugin-transform-unicode-escapes": "^7.14.5", - "@babel/plugin-transform-unicode-regex": "^7.14.5", - "@babel/preset-modules": "^0.1.4", - "@babel/types": "^7.15.6", - "babel-plugin-polyfill-corejs2": "^0.2.2", - "babel-plugin-polyfill-corejs3": "^0.2.5", - "babel-plugin-polyfill-regenerator": "^0.2.2", - "core-js-compat": "^3.16.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "@babel/preset-modules": { - "version": "0.1.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-typescript": { - "version": "7.15.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-typescript": "^7.15.0" - } - }, - "@babel/runtime": { - "version": "7.15.4", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.15.6", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true - }, - "@fosscord/util": { - "version": "file:../util", - "requires": { - "@types/amqplib": "^0.8.1", - "@types/jsonwebtoken": "^8.5.0", - "@types/multer": "^1.4.7", - "@types/node": "^14.18.22", - "@types/node-fetch": "^2.5.12", - "amqplib": "^0.8.0", - "form-data": "^4.0.0", - "jest": "^27.0.6", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "multer": "^1.4.3", - "node-fetch": "^2.6.2", - "patch-package": "^6.4.7", - "pg": "^8.7.1", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "ts-node": "^10.2.1", - "typeorm": "^0.3.7", - "typescript": "^4.4.2", - "typescript-json-schema": "^0.50.1" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/compat-data": { - "version": "7.15.0", - "dev": true - }, - "@babel/core": { - "version": "7.15.5", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "dev": true - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-imports": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.15.7", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "dev": true - }, - "@babel/helpers": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.15.7", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/template": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.15.6", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "dev": true - }, - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "dev": true - }, - "@cspotcode/source-map-support": { - "version": "0.6.1", - "dev": true, - "requires": { - "@cspotcode/source-map-consumer": "0.8.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "dev": true - }, - "@jest/console": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/reporters": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.1.1", - "jest-config": "^27.2.0", - "jest-haste-map": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-resolve-dependencies": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "jest-watcher": "^27.2.0", - "micromatch": "^4.0.4", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "jest-config": { - "version": "27.2.0", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.0", - "@jest/types": "^27.1.1", - "babel-jest": "^27.2.0", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.2.0", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0" - } - } - } - }, - "@jest/environment": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1" - } - }, - "@jest/fake-timers": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@sinonjs/fake-timers": "^7.0.2", - "@types/node": "*", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" - } - }, - "@jest/globals": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/environment": "^27.2.0", - "@jest/types": "^27.1.1", - "expect": "^27.2.0" - } - }, - "@jest/reporters": { - "version": "27.2.0", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.0.0" - } - }, - "@jest/source-map": { - "version": "27.0.6", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/test-result": "^27.2.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-runtime": "^27.2.0" - } - }, - "@jest/transform": { - "version": "27.2.0", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.1.1", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.2.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "27.1.1", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@sinonjs/commons": { - "version": "1.8.3", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "7.1.2", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@sqltools/formatter": { - "version": "1.2.3" - }, - "@tootallnate/once": { - "version": "1.1.2" - }, - "@tsconfig/node10": { - "version": "1.0.8", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.9", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.1", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.2", - "dev": true - }, - "@types/amqplib": { - "version": "0.8.2", - "dev": true, - "requires": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "@types/babel__core": { - "version": "7.1.16", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.3", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/bluebird": { - "version": "3.5.36", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.1", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/express": { - "version": "4.17.13", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.24", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/json-schema": { - "version": "7.0.9" - }, - "@types/jsonwebtoken": { - "version": "8.5.5", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/mime": { - "version": "1.3.2", - "dev": true - }, - "@types/multer": { - "version": "1.4.7", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/node": { - "version": "14.17.17" - }, - "@types/node-fetch": { - "version": "2.5.12", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/prettier": { - "version": "2.3.2", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.10", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "dev": true - }, - "@types/zen-observable": { - "version": "0.8.3" - }, - "@yarnpkg/lockfile": { - "version": "1.1.0" - }, - "abab": { - "version": "2.0.5", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "optional": true, - "peer": true - }, - "accepts": { - "version": "1.3.7", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "8.7.0" - }, - "acorn-globals": { - "version": "6.0.0", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "dev": true - } - } - }, - "acorn-walk": { - "version": "7.2.0", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2" - } - } - }, - "ajv": { - "version": "6.12.6", - "optional": true, - "peer": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "amqplib": { - "version": "0.8.0", - "requires": { - "bitsyntax": "~0.1.0", - "bluebird": "^3.7.2", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "safe-buffer": "~5.2.1", - "url-parse": "~1.5.1" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1" - }, - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "any-promise": { - "version": "1.3.0" - }, - "anymatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-path": { - "version": "3.0.0" - }, - "append-field": { - "version": "1.0.0" - }, - "aproba": { - "version": "1.2.0", - "optional": true, - "peer": true - }, - "are-we-there-yet": { - "version": "1.1.7", - "optional": true, - "peer": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "optional": true, - "peer": true - }, - "readable-stream": { - "version": "2.3.7", - "optional": true, - "peer": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "optional": true, - "peer": true - }, - "string_decoder": { - "version": "1.1.1", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "arg": { - "version": "4.1.3" - }, - "argparse": { - "version": "1.0.10", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "1.1.1" - }, - "asn1": { - "version": "0.2.4", - "optional": true, - "peer": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "optional": true, - "peer": true - }, - "ast-types": { - "version": "0.13.4", - "requires": { - "tslib": "^2.0.1" - } - }, - "asynckit": { - "version": "0.4.0" - }, - "aws-sign2": { - "version": "0.7.0", - "optional": true, - "peer": true - }, - "aws4": { - "version": "1.11.0", - "optional": true, - "peer": true - }, - "babel-jest": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.2.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.2.0", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.2.0", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.2.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2" - }, - "base64-js": { - "version": "1.5.1" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "optional": true, - "peer": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "better-sqlite3": { - "version": "7.4.3", - "optional": true, - "peer": true, - "requires": { - "bindings": "^1.5.0", - "prebuild-install": "^6.0.1", - "tar": "^6.1.0" - }, - "dependencies": { - "chownr": { - "version": "2.0.0", - "optional": true, - "peer": true - }, - "fs-minipass": { - "version": "2.1.0", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass": { - "version": "3.1.5", - "optional": true, - "peer": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "optional": true, - "peer": true - }, - "tar": { - "version": "6.1.11", - "optional": true, - "peer": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - } - } - }, - "bindings": { - "version": "1.5.0", - "optional": true, - "peer": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bitsyntax": { - "version": "0.1.0", - "requires": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "bl": { - "version": "4.1.0", - "optional": true, - "peer": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "optional": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "block-stream": { - "version": "0.0.9", - "optional": true, - "peer": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "bluebird": { - "version": "3.7.2" - }, - "body-parser": { - "version": "1.19.0", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - } - }, - "brace-expansion": { - "version": "1.1.11", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "dev": true - }, - "browserslist": { - "version": "4.17.0", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", - "escalade": "^3.1.1", - "node-releases": "^1.1.75" - } - }, - "bser": { - "version": "2.1.1", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "5.7.1", - "optional": true, - "peer": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-equal-constant-time": { - "version": "1.0.1" - }, - "buffer-from": { - "version": "1.1.2" - }, - "buffer-more-ints": { - "version": "1.0.0" - }, - "buffer-writer": { - "version": "2.0.0" - }, - "busboy": { - "version": "0.2.14", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - } - }, - "bytes": { - "version": "3.1.0" - }, - "callsites": { - "version": "3.1.0", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001258", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "optional": true, - "peer": true - }, - "chalk": { - "version": "4.1.2", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "dev": true - }, - "chownr": { - "version": "1.1.4", - "optional": true, - "peer": true - }, - "ci-info": { - "version": "3.2.0", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "dev": true - }, - "cli-highlight": { - "version": "2.1.11", - "requires": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "dependencies": { - "parse5": { - "version": "5.1.1" - } - } - }, - "cliui": { - "version": "7.0.4", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0" - }, - "string-width": { - "version": "4.2.2", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "co": { - "version": "4.6.0", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "optional": true, - "peer": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "colorette": { - "version": "1.4.0", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1" - }, - "concat-stream": { - "version": "1.6.2", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0" - }, - "readable-stream": { - "version": "2.3.7", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2" - }, - "string_decoder": { - "version": "1.1.1", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "optional": true, - "peer": true - }, - "content-disposition": { - "version": "0.5.3", - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "content-type": { - "version": "1.0.4" - }, - "convert-source-map": { - "version": "1.8.0", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "dev": true - } - } - }, - "cookie": { - "version": "0.4.0" - }, - "cookie-signature": { - "version": "1.0.6" - }, - "core-util-is": { - "version": "1.0.3" - }, - "create-require": { - "version": "1.1.1" - }, - "cross-spawn": { - "version": "7.0.3", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "cssom": { - "version": "0.4.4", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "dev": true - } - } - }, - "dashdash": { - "version": "1.14.1", - "optional": true, - "peer": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-uri-to-buffer": { - "version": "3.0.1" - }, - "data-urls": { - "version": "2.0.0", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "decimal.js": { - "version": "10.3.1", - "dev": true - }, - "decompress-response": { - "version": "4.2.1", - "optional": true, - "peer": true, - "requires": { - "mimic-response": "^2.0.0" - } - }, - "dedent": { - "version": "0.7.0", - "dev": true - }, - "deep-extend": { - "version": "0.6.0", - "optional": true, - "peer": true - }, - "deep-is": { - "version": "0.1.4" - }, - "deepmerge": { - "version": "4.2.2", - "dev": true - }, - "degenerator": { - "version": "3.0.1", - "requires": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.3" - }, - "dependencies": { - "escodegen": { - "version": "1.14.3", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "estraverse": { - "version": "4.3.0" - } - } - }, - "delayed-stream": { - "version": "1.0.0" - }, - "delegates": { - "version": "1.0.0", - "optional": true, - "peer": true - }, - "depd": { - "version": "1.1.2" - }, - "destroy": { - "version": "1.0.4" - }, - "detect-libc": { - "version": "1.0.3", - "optional": true, - "peer": true - }, - "detect-newline": { - "version": "3.1.0", - "dev": true - }, - "dicer": { - "version": "0.2.5", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - } - }, - "diff": { - "version": "4.0.2" - }, - "diff-sequences": { - "version": "27.0.6", - "dev": true - }, - "domexception": { - "version": "2.0.1", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "dev": true - } - } - }, - "dotenv": { - "version": "8.6.0" - }, - "ecc-jsbn": { - "version": "0.1.2", - "optional": true, - "peer": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1" - }, - "electron-to-chromium": { - "version": "1.3.843", - "dev": true - }, - "emittery": { - "version": "0.8.1", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0" - }, - "encodeurl": { - "version": "1.0.2" - }, - "end-of-stream": { - "version": "1.4.4", - "optional": true, - "peer": true, - "requires": { - "once": "^1.4.0" - } - }, - "escalade": { - "version": "3.1.1" - }, - "escape-html": { - "version": "1.0.3" - }, - "escape-string-regexp": { - "version": "2.0.0", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "4.0.1" - }, - "estraverse": { - "version": "5.2.0", - "dev": true - }, - "esutils": { - "version": "2.0.3" - }, - "etag": { - "version": "1.8.1" - }, - "execa": { - "version": "5.1.1", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "dev": true - }, - "expand-template": { - "version": "2.0.3", - "optional": true, - "peer": true - }, - "expect": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-regex-util": "^27.0.6" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "express": { - "version": "4.17.1", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "express-async-errors": { - "version": "3.1.1", - "requires": {} - }, - "extend": { - "version": "3.0.2", - "optional": true, - "peer": true - }, - "extsprintf": { - "version": "1.3.0", - "optional": true, - "peer": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "optional": true, - "peer": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "devOptional": true - }, - "fast-levenshtein": { - "version": "2.0.6" - }, - "fb-watchman": { - "version": "2.0.1", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "figlet": { - "version": "1.5.2" - }, - "file-uri-to-path": { - "version": "1.0.0", - "optional": true, - "peer": true - }, - "fill-range": { - "version": "7.0.1", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "find-yarn-workspace-root": { - "version": "2.0.0", - "requires": { - "micromatch": "^4.0.2" - } - }, - "forever-agent": { - "version": "0.6.1", - "optional": true, - "peer": true - }, - "form-data": { - "version": "4.0.0", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0" - }, - "fresh": { - "version": "0.5.2" - }, - "fs-constants": { - "version": "1.0.0", - "optional": true, - "peer": true - }, - "fs-extra": { - "version": "7.0.1", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "optional": true, - "peer": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0" - }, - "fstream": { - "version": "1.0.12", - "optional": true, - "peer": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "optional": true, - "peer": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "ftp": { - "version": "0.3.10", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - } - }, - "function-bind": { - "version": "1.1.1", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "optional": true, - "peer": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "optional": true, - "peer": true - }, - "strip-ansi": { - "version": "3.0.1", - "optional": true, - "peer": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5" - }, - "get-package-type": { - "version": "0.1.0", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "dev": true - }, - "get-uri": { - "version": "3.0.2", - "requires": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "requires": { - "ms": "2.1.2" - } - }, - "file-uri-to-path": { - "version": "2.0.0" - }, - "fs-extra": { - "version": "8.1.0", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "ms": { - "version": "2.1.2" - } - } - }, - "getpass": { - "version": "0.1.7", - "optional": true, - "peer": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "github-from-package": { - "version": "0.0.0", - "optional": true, - "peer": true - }, - "glob": { - "version": "7.1.7", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.12.0", - "dev": true - }, - "graceful-fs": { - "version": "4.2.8" - }, - "har-schema": { - "version": "2.0.0", - "optional": true, - "peer": true - }, - "har-validator": { - "version": "5.1.5", - "optional": true, - "peer": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1" - } - } - }, - "has-flag": { - "version": "4.0.0" - }, - "has-unicode": { - "version": "2.0.1", - "optional": true, - "peer": true - }, - "helmet": { - "version": "4.6.0" - }, - "highlight.js": { - "version": "10.7.3" - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3" - } - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2" - } - } - }, - "http-signature": { - "version": "1.2.0", - "optional": true, - "peer": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2" - } - } - }, - "human-signals": { - "version": "2.1.0", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1" - }, - "ignore-walk": { - "version": "3.0.4", - "optional": true, - "peer": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-local": { - "version": "3.0.2", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4" - }, - "ini": { - "version": "1.3.8", - "optional": true, - "peer": true - }, - "ip": { - "version": "1.1.5" - }, - "ipaddr.js": { - "version": "1.9.1" - }, - "is-ci": { - "version": "3.0.0", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "is-core-module": { - "version": "2.6.0", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-docker": { - "version": "2.2.1" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "optional": true, - "peer": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-generator-fn": { - "version": "2.1.0", - "dev": true - }, - "is-number": { - "version": "7.0.0" - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "devOptional": true - }, - "is-wsl": { - "version": "2.2.0", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "0.0.1" - }, - "isexe": { - "version": "2.0.0" - }, - "isstream": { - "version": "0.1.2", - "optional": true, - "peer": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/core": "^27.2.0", - "import-local": "^3.0.2", - "jest-cli": "^27.2.0" - } - }, - "jest-changed-files": { - "version": "27.1.1", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/environment": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.2.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - } - }, - "jest-cli": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/core": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "prompts": "^2.0.1", - "yargs": "^16.0.3" - }, - "dependencies": { - "jest-config": { - "version": "27.2.0", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.0", - "@jest/types": "^27.1.1", - "babel-jest": "^27.2.0", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.2.0", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0" - } - } - } - }, - "jest-diff": { - "version": "27.2.0", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - } - }, - "jest-docblock": { - "version": "27.0.6", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0" - } - }, - "jest-environment-jsdom": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" - } - }, - "jest-get-type": { - "version": "27.0.6", - "dev": true - }, - "jest-haste-map": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.2.0", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.2.0", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.2.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0", - "throat": "^6.0.1" - } - }, - "jest-leak-detector": { - "version": "27.2.0", - "dev": true, - "requires": { - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - } - }, - "jest-matcher-utils": { - "version": "27.2.0", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.2.0", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - } - }, - "jest-message-util": { - "version": "27.2.0", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.1.1", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "27.0.6", - "dev": true - }, - "jest-resolve": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "escalade": "^3.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "resolve": "^1.20.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.2.0" - } - }, - "jest-runner": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/environment": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-haste-map": "^27.2.0", - "jest-leak-detector": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - } - }, - "jest-runtime": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/globals": "^27.2.0", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.0.3" - } - }, - "jest-serializer": { - "version": "27.0.6", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "27.2.0", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.2.0", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.2.0", - "jest-get-type": "^27.0.6", - "jest-haste-map": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-util": "^27.2.0", - "natural-compare": "^1.4.0", - "pretty-format": "^27.2.0", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-util": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "leven": "^3.1.0", - "pretty-format": "^27.2.0" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "dev": true - } - } - }, - "jest-watcher": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.2.0", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "27.2.0", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "optional": true, - "peer": true - }, - "jsdom": { - "version": "16.7.0", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "optional": true, - "peer": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "optional": true, - "peer": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "optional": true, - "peer": true - }, - "json5": { - "version": "2.2.0", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0" - }, - "jsonwebtoken": { - "version": "8.5.1", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3" - }, - "semver": { - "version": "5.7.1" - } - } - }, - "jsprim": { - "version": "1.4.1", - "optional": true, - "peer": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jwa": { - "version": "1.4.1", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "klaw-sync": { - "version": "6.0.0", - "requires": { - "graceful-fs": "^4.1.11" - } - }, - "kleur": { - "version": "3.0.3", - "dev": true - }, - "lambert-server": { - "version": "1.2.12", - "requires": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "leven": { - "version": "3.1.0", - "dev": true - }, - "levn": { - "version": "0.3.0", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "dev": true - }, - "lodash.includes": { - "version": "4.3.0" - }, - "lodash.isboolean": { - "version": "3.0.3" - }, - "lodash.isinteger": { - "version": "4.0.4" - }, - "lodash.isnumber": { - "version": "3.0.3" - }, - "lodash.isplainobject": { - "version": "4.0.6" - }, - "lodash.isstring": { - "version": "4.0.1" - }, - "lodash.once": { - "version": "4.1.1" - }, - "lru-cache": { - "version": "6.0.0", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "make-error": { - "version": "1.3.6" - }, - "makeerror": { - "version": "1.0.11", - "dev": true, - "requires": { - "tmpl": "1.0.x" - } - }, - "media-typer": { - "version": "0.3.0" - }, - "merge-descriptors": { - "version": "1.0.1" - }, - "merge-stream": { - "version": "2.0.0", - "dev": true - }, - "methods": { - "version": "1.1.2" - }, - "micromatch": { - "version": "4.0.4", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0" - }, - "mime-db": { - "version": "1.49.0" - }, - "mime-types": { - "version": "2.1.32", - "requires": { - "mime-db": "1.49.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "dev": true - }, - "mimic-response": { - "version": "2.1.0", - "optional": true, - "peer": true - }, - "minimatch": { - "version": "3.0.4", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "minipass": { - "version": "2.9.0", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "optional": true, - "peer": true - } - } - }, - "minizlib": { - "version": "1.3.3", - "optional": true, - "peer": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "missing-native-js-functions": { - "version": "1.2.18" - }, - "mkdirp": { - "version": "0.5.5", - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp-classic": { - "version": "0.5.3", - "optional": true, - "peer": true - }, - "ms": { - "version": "2.0.0" - }, - "multer": { - "version": "1.4.3", - "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - } - }, - "mz": { - "version": "2.7.0", - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "napi-build-utils": { - "version": "1.0.2", - "optional": true, - "peer": true - }, - "natural-compare": { - "version": "1.4.0", - "dev": true - }, - "needle": { - "version": "2.9.1", - "optional": true, - "peer": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "optional": true, - "peer": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "optional": true, - "peer": true - } - } - }, - "negotiator": { - "version": "0.6.2" - }, - "netmask": { - "version": "2.0.2" - }, - "nice-try": { - "version": "1.0.5" - }, - "node-abi": { - "version": "2.30.1", - "optional": true, - "peer": true, - "requires": { - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "optional": true, - "peer": true - } - } - }, - "node-addon-api": { - "version": "3.2.1", - "optional": true, - "peer": true - }, - "node-fetch": { - "version": "2.6.7", - "requires": { - "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3" - }, - "webidl-conversions": { - "version": "3.0.1" - }, - "whatwg-url": { - "version": "5.0.0", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, - "node-gyp": { - "version": "3.8.0", - "optional": true, - "peer": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "optional": true, - "peer": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.3.0", - "optional": true, - "peer": true - }, - "which": { - "version": "1.3.1", - "optional": true, - "peer": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-int64": { - "version": "0.4.0", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "dev": true - }, - "node-pre-gyp": { - "version": "0.11.0", - "optional": true, - "peer": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "dependencies": { - "nopt": { - "version": "4.0.3", - "optional": true, - "peer": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "rimraf": { - "version": "2.7.1", - "optional": true, - "peer": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "optional": true, - "peer": true - }, - "tar": { - "version": "4.4.19", - "optional": true, - "peer": true, - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, - "yallist": { - "version": "3.1.1", - "optional": true, - "peer": true - } - } - }, - "node-releases": { - "version": "1.1.75", - "dev": true - }, - "nopt": { - "version": "3.0.6", - "optional": true, - "peer": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "dev": true - }, - "npm-bundled": { - "version": "1.1.2", - "optional": true, - "peer": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "optional": true, - "peer": true - }, - "npm-packlist": { - "version": "1.4.8", - "optional": true, - "peer": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-run-path": { - "version": "4.0.1", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "optional": true, - "peer": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "optional": true, - "peer": true - }, - "nwsapi": { - "version": "2.2.0", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "optional": true, - "peer": true - }, - "object-assign": { - "version": "4.1.1" - }, - "on-finished": { - "version": "2.3.0", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.4.2", - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "optionator": { - "version": "0.8.3", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "optional": true, - "peer": true - }, - "os-tmpdir": { - "version": "1.0.2" - }, - "osenv": { - "version": "0.1.5", - "optional": true, - "peer": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-each-series": { - "version": "2.2.0", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "dev": true - }, - "pac-proxy-agent": { - "version": "5.0.0", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2" - } - } - }, - "pac-resolver": { - "version": "5.0.0", - "requires": { - "degenerator": "^3.0.1", - "ip": "^1.1.5", - "netmask": "^2.0.1" - } - }, - "packet-reader": { - "version": "1.0.0" - }, - "parent-require": { - "version": "1.0.0" - }, - "parse5": { - "version": "6.0.1" - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "requires": { - "parse5": "^6.0.1" - } - }, - "parseurl": { - "version": "1.3.3" - }, - "patch-package": { - "version": "6.4.7", - "requires": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^7.0.1", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.0", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "ci-info": { - "version": "2.0.0" - }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" - }, - "cross-spawn": { - "version": "6.0.5", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "escape-string-regexp": { - "version": "1.0.5" - }, - "has-flag": { - "version": "3.0.0" - }, - "is-ci": { - "version": "2.0.0", - "requires": { - "ci-info": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1" - }, - "rimraf": { - "version": "2.7.1", - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1" - }, - "shebang-command": { - "version": "1.2.0", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0" - }, - "slash": { - "version": "2.0.0" - }, - "supports-color": { - "version": "5.5.0", - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1" - }, - "path-key": { - "version": "3.1.1", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7" - }, - "performance-now": { - "version": "2.1.0", - "optional": true, - "peer": true - }, - "pg": { - "version": "8.7.1", - "requires": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.4.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - } - }, - "pg-connection-string": { - "version": "2.5.0" - }, - "pg-int8": { - "version": "1.0.1" - }, - "pg-pool": { - "version": "3.4.1", - "requires": {} - }, - "pg-protocol": { - "version": "1.5.0" - }, - "pg-types": { - "version": "2.2.0", - "requires": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - } - }, - "pgpass": { - "version": "1.0.4", - "requires": { - "split2": "^3.1.1" - } - }, - "picocolors": { - "version": "1.0.0" - }, - "picomatch": { - "version": "2.3.0" - }, - "pirates": { - "version": "4.0.1", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "postgres-array": { - "version": "2.0.0" - }, - "postgres-bytea": { - "version": "1.0.0" - }, - "postgres-date": { - "version": "1.0.7" - }, - "postgres-interval": { - "version": "1.2.0", - "requires": { - "xtend": "^4.0.0" - } - }, - "prebuild-install": { - "version": "6.1.4", - "optional": true, - "peer": true, - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - } - }, - "prelude-ls": { - "version": "1.1.2" - }, - "pretty-format": { - "version": "27.2.0", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "process-nextick-args": { - "version": "2.0.1" - }, - "prompts": { - "version": "2.4.1", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "proxy-addr": { - "version": "2.0.7", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "proxy-agent": { - "version": "5.0.0", - "requires": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "requires": { - "ms": "2.1.2" - } - }, - "lru-cache": { - "version": "5.1.1", - "requires": { - "yallist": "^3.0.2" - } - }, - "ms": { - "version": "2.1.2" - }, - "yallist": { - "version": "3.1.1" - } - } - }, - "proxy-from-env": { - "version": "1.1.0" - }, - "psl": { - "version": "1.8.0", - "devOptional": true - }, - "pump": { - "version": "3.0.0", - "optional": true, - "peer": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "devOptional": true - }, - "qs": { - "version": "6.7.0" - }, - "querystringify": { - "version": "2.2.0" - }, - "range-parser": { - "version": "1.2.1" - }, - "raw-body": { - "version": "2.4.0", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "optional": true, - "peer": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "reflect-metadata": { - "version": "0.1.13" - }, - "request": { - "version": "2.88.2", - "optional": true, - "peer": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "optional": true, - "peer": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.2", - "optional": true, - "peer": true - }, - "tough-cookie": { - "version": "2.5.0", - "optional": true, - "peer": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "require-directory": { - "version": "2.1.1" - }, - "requires-port": { - "version": "1.0.0" - }, - "resolve": { - "version": "1.20.0", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.2.1" - }, - "safer-buffer": { - "version": "2.1.2" - }, - "sax": { - "version": "1.2.4" - }, - "saxes": { - "version": "5.0.1", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "semver": { - "version": "6.3.0", - "dev": true - }, - "send": { - "version": "0.17.1", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.1" - } - } - }, - "serve-static": { - "version": "1.14.1", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "optional": true, - "peer": true - }, - "setprototypeof": { - "version": "1.1.1" - }, - "sha.js": { - "version": "2.4.11", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "dev": true - }, - "signal-exit": { - "version": "3.0.4", - "devOptional": true - }, - "simple-concat": { - "version": "1.0.1", - "optional": true, - "peer": true - }, - "simple-get": { - "version": "3.1.1", - "optional": true, - "peer": true, - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sisteransi": { - "version": "1.0.5", - "dev": true - }, - "slash": { - "version": "3.0.0", - "dev": true - }, - "smart-buffer": { - "version": "4.2.0" - }, - "socks": { - "version": "2.6.1", - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "socks-proxy-agent": { - "version": "5.0.1", - "requires": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2" - } - } - }, - "source-map": { - "version": "0.6.1" - }, - "source-map-support": { - "version": "0.5.20", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "split2": { - "version": "3.2.2", - "requires": { - "readable-stream": "^3.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "dev": true - }, - "sqlite3": { - "version": "5.0.2", - "optional": true, - "peer": true, - "requires": { - "node-addon-api": "^3.0.0", - "node-gyp": "3.x", - "node-pre-gyp": "^0.11.0" - } - }, - "sshpk": { - "version": "1.16.1", - "optional": true, - "peer": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-utils": { - "version": "2.0.5", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "statuses": { - "version": "1.5.0" - }, - "streamsearch": { - "version": "0.1.2" - }, - "string_decoder": { - "version": "0.10.31" - }, - "string-length": { - "version": "4.0.2", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "optional": true, - "peer": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "optional": true, - "peer": true - }, - "strip-ansi": { - "version": "3.0.1", - "optional": true, - "peer": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "strip-ansi": { - "version": "6.0.0", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-bom": { - "version": "4.0.0", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "optional": true, - "peer": true - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "symbol-tree": { - "version": "3.2.4", - "dev": true - }, - "tar": { - "version": "2.2.2", - "optional": true, - "peer": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, - "tar-fs": { - "version": "2.1.1", - "optional": true, - "peer": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "tar-stream": { - "version": "2.2.0", - "optional": true, - "peer": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "optional": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "terminal-link": { - "version": "2.1.1", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "thenify": { - "version": "3.3.1", - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "throat": { - "version": "6.0.1", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.5", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0" - }, - "tough-cookie": { - "version": "4.0.0", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - } - }, - "tr46": { - "version": "2.1.0", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "ts-node": { - "version": "10.2.1", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "0.6.1", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "yn": "3.1.1" - }, - "dependencies": { - "acorn-walk": { - "version": "8.2.0", - "dev": true - } - } - }, - "tslib": { - "version": "2.3.1" - }, - "tunnel-agent": { - "version": "0.6.0", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "optional": true, - "peer": true - }, - "type-check": { - "version": "0.3.2", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typeorm": { - "version": "0.2.38", - "requires": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "debug": "^4.3.1", - "dotenv": "^8.2.0", - "glob": "^7.1.6", - "js-yaml": "^4.0.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.1.0", - "xml2js": "^0.4.23", - "yargonaut": "^1.1.4", - "yargs": "^17.0.1", - "zen-observable-ts": "^1.0.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1" - }, - "buffer": { - "version": "6.0.3", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "debug": { - "version": "4.3.2", - "requires": { - "ms": "2.1.2" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0" - }, - "js-yaml": { - "version": "4.1.0", - "requires": { - "argparse": "^2.0.1" - } - }, - "mkdirp": { - "version": "1.0.4" - }, - "ms": { - "version": "2.1.2" - }, - "string-width": { - "version": "4.2.2", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "17.1.1", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "typescript": { - "version": "4.4.3" - }, - "typescript-json-schema": { - "version": "0.50.1", - "requires": { - "@types/json-schema": "^7.0.7", - "@types/node": "^14.14.33", - "glob": "^7.1.6", - "json-stable-stringify": "^1.0.1", - "ts-node": "^9.1.1", - "typescript": "~4.2.3", - "yargs": "^16.2.0" - }, - "dependencies": { - "ts-node": { - "version": "9.1.1", - "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "typescript": { - "version": "4.2.4" - } - } - }, - "universalify": { - "version": "0.1.2" - }, - "unpipe": { - "version": "1.0.0" - }, - "uri-js": { - "version": "4.4.1", - "optional": true, - "peer": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse": { - "version": "1.5.10", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2" - }, - "utils-merge": { - "version": "1.0.1" - }, - "uuid": { - "version": "3.4.0", - "optional": true, - "peer": true - }, - "v8-to-istanbul": { - "version": "8.0.0", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "dev": true - } - } - }, - "vary": { - "version": "1.1.2" - }, - "verror": { - "version": "1.10.0", - "optional": true, - "peer": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "optional": true, - "peer": true - } - } - }, - "vm2": { - "version": "3.9.7", - "requires": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "dependencies": { - "acorn-walk": { - "version": "8.2.0" - } - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "dev": true, - "requires": { - "makeerror": "1.0.x" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.3", - "optional": true, - "peer": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "word-wrap": { - "version": "1.2.3" - }, - "wrap-ansi": { - "version": "7.0.0", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0" - }, - "string-width": { - "version": "4.2.2", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2" - }, - "write-file-atomic": { - "version": "3.0.3", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.5", - "dev": true, - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "dev": true - }, - "xml2js": { - "version": "0.4.23", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1" - }, - "xmlchars": { - "version": "2.2.0", - "dev": true - }, - "xregexp": { - "version": "2.0.0" - }, - "xtend": { - "version": "4.0.2" - }, - "y18n": { - "version": "5.0.8" - }, - "yallist": { - "version": "4.0.0", - "devOptional": true - }, - "yargonaut": { - "version": "1.1.4", - "requires": { - "chalk": "^1.1.1", - "figlet": "^1.1.1", - "parent-require": "^1.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1" - }, - "ansi-styles": { - "version": "2.2.1" - }, - "chalk": { - "version": "1.1.3", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5" - }, - "strip-ansi": { - "version": "3.0.1", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0" - } - } - }, - "yargs": { - "version": "16.2.0", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0" - }, - "string-width": { - "version": "4.2.2", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "yargs-parser": { - "version": "20.2.9" - }, - "yn": { - "version": "3.1.1" - }, - "zen-observable": { - "version": "0.8.15" - }, - "zen-observable-ts": { - "version": "1.1.0", - "requires": { - "@types/zen-observable": "0.8.3", - "zen-observable": "0.8.15" - } - } - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "dev": true - }, - "@jest/console": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.2.5", - "jest-util": "^27.2.5", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/console": "^27.2.5", - "@jest/reporters": "^27.2.5", - "@jest/test-result": "^27.2.5", - "@jest/transform": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.2.5", - "jest-config": "^27.2.5", - "jest-haste-map": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.5", - "jest-resolve-dependencies": "^27.2.5", - "jest-runner": "^27.2.5", - "jest-runtime": "^27.2.5", - "jest-snapshot": "^27.2.5", - "jest-util": "^27.2.5", - "jest-validate": "^27.2.5", - "jest-watcher": "^27.2.5", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ci-info": { - "version": "3.2.0", - "dev": true - }, - "is-ci": { - "version": "3.0.0", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "jest-config": { - "version": "27.2.5", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.5", - "@jest/types": "^27.2.5", - "babel-jest": "^27.2.5", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.2.5", - "jest-environment-jsdom": "^27.2.5", - "jest-environment-node": "^27.2.5", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.5", - "jest-runner": "^27.2.5", - "jest-util": "^27.2.5", - "jest-validate": "^27.2.5", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.5" - } - } - } - }, - "@jest/environment": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "jest-mock": "^27.2.5" - } - }, - "@jest/fake-timers": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.2.5", - "jest-mock": "^27.2.5", - "jest-util": "^27.2.5" - } - }, - "@jest/globals": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/environment": "^27.2.5", - "@jest/types": "^27.2.5", - "expect": "^27.2.5" - } - }, - "@jest/reporters": { - "version": "27.2.5", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.2.5", - "@jest/test-result": "^27.2.5", - "@jest/transform": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.2.5", - "jest-resolve": "^27.2.5", - "jest-util": "^27.2.5", - "jest-worker": "^27.2.5", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "@jest/source-map": { - "version": "27.0.6", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "@jest/test-result": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/console": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/test-result": "^27.2.5", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.5", - "jest-runtime": "^27.2.5" - } - }, - "@jest/transform": { - "version": "27.2.5", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.2.5", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.2.5", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "@jest/types": { - "version": "27.2.5", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@mapbox/node-pre-gyp": { - "version": "1.0.5", - "requires": { - "detect-libc": "^1.0.3", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.1", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "rimraf": "^3.0.2", - "semver": "^7.3.4", - "tar": "^6.1.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@sentry/core": { - "version": "6.16.1", - "requires": { - "@sentry/hub": "6.16.1", - "@sentry/minimal": "6.16.1", - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1" - } - } - }, - "@sentry/hub": { - "version": "6.16.1", - "requires": { - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1" - } - } - }, - "@sentry/minimal": { - "version": "6.16.1", - "requires": { - "@sentry/hub": "6.16.1", - "@sentry/types": "6.16.1", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1" - } - } - }, - "@sentry/node": { - "version": "6.16.1", - "requires": { - "@sentry/core": "6.16.1", - "@sentry/hub": "6.16.1", - "@sentry/tracing": "6.16.1", - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "dependencies": { - "cookie": { - "version": "0.4.1" - }, - "tslib": { - "version": "1.14.1" - } - } - }, - "@sentry/tracing": { - "version": "6.16.1", - "requires": { - "@sentry/hub": "6.16.1", - "@sentry/minimal": "6.16.1", - "@sentry/types": "6.16.1", - "@sentry/utils": "6.16.1", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1" - } - } - }, - "@sentry/types": { - "version": "6.16.1" - }, - "@sentry/utils": { - "version": "6.16.1", - "requires": { - "@sentry/types": "6.16.1", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1" - } - } - }, - "@sinonjs/commons": { - "version": "1.8.3", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.0.1", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@sqltools/formatter": { - "version": "1.2.3" - }, - "@tootallnate/once": { - "version": "1.1.2" - }, - "@types/amqplib": { - "version": "0.8.2", - "dev": true, - "requires": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "@types/babel__core": { - "version": "7.1.16", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.3", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/bcrypt": { - "version": "5.0.0", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/bluebird": { - "version": "3.5.36", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.1", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/cookiejar": { - "version": "2.1.2", - "dev": true - }, - "@types/express": { - "version": "4.17.13", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.24", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/i18next-node-fs-backend": { - "version": "2.1.1", - "dev": true, - "requires": { - "i18next": ">=17.0.11" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "27.0.1", - "dev": true, - "requires": { - "jest-diff": "^27.0.0", - "pretty-format": "^27.0.0" - } - }, - "@types/jest-expect-message": { - "version": "1.0.3", - "dev": true, - "requires": { - "@types/jest": "*" - } - }, - "@types/json-schema": { - "version": "7.0.9", - "dev": true - }, - "@types/jsonwebtoken": { - "version": "8.5.5", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/mime": { - "version": "1.3.2", - "dev": true - }, - "@types/morgan": { - "version": "1.9.3", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/multer": { - "version": "1.4.7", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/node": { - "version": "14.18.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz", - "integrity": "sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw==" - }, - "@types/node-fetch": { - "version": "2.5.12", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "@types/notp": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/notp/-/notp-2.0.2.tgz", - "integrity": "sha512-JUcVYN9Tmw0AjoAfvjslS4hbv39fPBbZdftBK3b50g5z/DmhLsu6cd0UOEBiQuMwy2FirshF2Gk9gAvfWjshMw==", - "requires": { - "@types/node": "*" - } - }, - "@types/prettier": { - "version": "2.4.1", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.10", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "dev": true - }, - "@types/strip-bom": { - "version": "3.0.0", - "dev": true - }, - "@types/strip-json-comments": { - "version": "0.0.30", - "dev": true - }, - "@types/superagent": { - "version": "4.1.13", - "dev": true, - "requires": { - "@types/cookiejar": "*", - "@types/node": "*" - } - }, - "@types/supertest": { - "version": "2.0.11", - "dev": true, - "requires": { - "@types/superagent": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "dev": true - }, - "@yarnpkg/lockfile": { - "version": "1.1.0" - }, - "@zerollup/ts-helpers": { - "version": "1.7.18", - "dev": true, - "requires": { - "resolve": "^1.12.0" - } - }, - "@zerollup/ts-transform-paths": { - "version": "1.7.18", - "dev": true, - "requires": { - "@zerollup/ts-helpers": "^1.7.18" - } - }, - "abab": { - "version": "2.0.5", - "dev": true - }, - "abbrev": { - "version": "1.1.1" - }, - "accepts": { - "version": "1.3.7", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "8.7.0" - }, - "acorn-globals": { - "version": "6.0.0", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "dev": true - } - } - }, - "acorn-walk": { - "version": "7.2.0", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "requires": { - "debug": "4" - } - }, - "ajv": { - "version": "8.6.2", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "requires": { - "ajv": "^8.0.0" - } - }, - "amqplib": { - "version": "0.8.0", - "requires": { - "bitsyntax": "~0.1.0", - "bluebird": "^3.7.2", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "safe-buffer": "~5.2.1", - "url-parse": "~1.5.1" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1" - }, - "ansi-styles": { - "version": "4.3.0", - "requires": { - "color-convert": "^2.0.1" - } - }, - "any-promise": { - "version": "1.3.0" - }, - "anymatch": { - "version": "3.1.2", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-path": { - "version": "3.0.0" - }, - "append-field": { - "version": "1.0.0" - }, - "aproba": { - "version": "1.2.0" - }, - "are-we-there-yet": { - "version": "1.1.7", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0" - }, - "readable-stream": { - "version": "2.3.7", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2" - }, - "string_decoder": { - "version": "1.1.1", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "arg": { - "version": "4.1.3", - "devOptional": true - }, - "argparse": { - "version": "1.0.10", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "1.1.1" - }, - "assert": { - "version": "1.5.0", - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "ast-types": { - "version": "0.13.4", - "requires": { - "tslib": "^2.0.1" - } - }, - "asynckit": { - "version": "0.4.0" - }, - "babel-jest": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/transform": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.2.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.2.0", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.2.2", - "dev": true, - "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.2.2", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.2.5", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2", - "core-js-compat": "^3.16.2" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.2.2", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.2.2" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.2.0", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.2.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2" - }, - "base64-js": { - "version": "1.5.1" - }, - "basic-auth": { - "version": "2.0.1", - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "bcrypt": { - "version": "5.0.1", - "requires": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^3.1.0" - } - }, - "binary-extensions": { - "version": "2.2.0", - "dev": true - }, - "bitsyntax": { - "version": "0.1.0", - "requires": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - }, - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "bluebird": { - "version": "3.7.2" - }, - "body-parser": { - "version": "1.19.0", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "boolbase": { - "version": "1.0.0" - }, - "brace-expansion": { - "version": "1.1.11", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "dev": true - }, - "browserslist": { - "version": "4.17.0", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", - "escalade": "^3.1.1", - "node-releases": "^1.1.75" - } - }, - "bser": { - "version": "2.1.1", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer-equal-constant-time": { - "version": "1.0.1" - }, - "buffer-from": { - "version": "1.1.2" - }, - "buffer-more-ints": { - "version": "1.0.0" - }, - "busboy": { - "version": "0.2.14", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - } - }, - "bytes": { - "version": "3.1.0" - }, - "call-bind": { - "version": "1.0.2", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001257", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "dev": true - }, - "cheerio": { - "version": "1.0.0-rc.10", - "requires": { - "cheerio-select": "^1.5.0", - "dom-serializer": "^1.3.2", - "domhandler": "^4.2.0", - "htmlparser2": "^6.1.0", - "parse5": "^6.0.1", - "parse5-htmlparser2-tree-adapter": "^6.0.1", - "tslib": "^2.2.0" - } - }, - "cheerio-select": { - "version": "1.5.0", - "requires": { - "css-select": "^4.1.3", - "css-what": "^5.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0", - "domutils": "^2.7.0" - } - }, - "chokidar": { - "version": "3.5.2", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "2.0.0" - }, - "ci-info": { - "version": "2.0.0" - }, - "cjs-module-lexer": { - "version": "1.2.2", - "dev": true - }, - "cli-highlight": { - "version": "2.1.11", - "requires": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "dependencies": { - "parse5": { - "version": "5.1.1" - } - } - }, - "cliui": { - "version": "7.0.4", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0" - }, - "string-width": { - "version": "4.2.3", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "co": { - "version": "4.6.0", - "dev": true - }, - "code-point-at": { - "version": "1.1.0" - }, - "collect-v8-coverage": { - "version": "1.0.1", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4" - }, - "colorette": { - "version": "1.4.0", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "component-emitter": { - "version": "1.3.0" - }, - "concat-map": { - "version": "0.0.1" - }, - "concat-stream": { - "version": "1.6.2", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0" - }, - "readable-stream": { - "version": "2.3.7", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2" - }, - "string_decoder": { - "version": "1.1.1", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "console-control-strings": { - "version": "1.1.0" - }, - "content-disposition": { - "version": "0.5.3", - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "content-type": { - "version": "1.0.4" - }, - "convert-source-map": { - "version": "1.8.0", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "dev": true - } - } - }, - "cookie": { - "version": "0.4.0" - }, - "cookie-signature": { - "version": "1.0.6" - }, - "cookiejar": { - "version": "2.1.2" - }, - "core-js-compat": { - "version": "3.18.3", - "dev": true, - "requires": { - "browserslist": "^4.17.3", - "semver": "7.0.0" - }, - "dependencies": { - "browserslist": { - "version": "4.17.4", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001265", - "electron-to-chromium": "^1.3.867", - "escalade": "^3.1.1", - "node-releases": "^2.0.0", - "picocolors": "^1.0.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001267", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.870", - "dev": true - }, - "node-releases": { - "version": "2.0.0", - "dev": true - }, - "semver": { - "version": "7.0.0", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.3" - }, - "create-require": { - "version": "1.1.1", - "devOptional": true - }, - "cross-spawn": { - "version": "7.0.3", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "css-select": { - "version": "4.1.3", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" - } - }, - "css-what": { - "version": "5.0.1" - }, - "cssom": { - "version": "0.4.4", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "dev": true - } - } - }, - "data-uri-to-buffer": { - "version": "3.0.1" - }, - "data-urls": { - "version": "2.0.0", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decimal.js": { - "version": "10.3.1", - "dev": true - }, - "dedent": { - "version": "0.7.0", - "dev": true - }, - "deep-is": { - "version": "0.1.4" - }, - "deepmerge": { - "version": "4.2.2", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "dev": true, - "requires": { - "object-keys": "^1.0.12" - } - }, - "degenerator": { - "version": "3.0.1", - "requires": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.3" - }, - "dependencies": { - "escodegen": { - "version": "1.14.3", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "estraverse": { - "version": "4.3.0" - }, - "source-map": { - "version": "0.6.1", - "optional": true - } - } - }, - "delayed-stream": { - "version": "1.0.0" - }, - "delegates": { - "version": "1.0.0" - }, - "depd": { - "version": "1.1.2" - }, - "destroy": { - "version": "1.0.4" - }, - "detect-libc": { - "version": "1.0.3" - }, - "detect-newline": { - "version": "3.1.0", - "dev": true - }, - "dicer": { - "version": "0.2.5", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - } - }, - "diff": { - "version": "4.0.2", - "devOptional": true - }, - "diff-sequences": { - "version": "27.0.6", - "dev": true - }, - "dom-serializer": { - "version": "1.3.2", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domelementtype": { - "version": "2.2.0" - }, - "domexception": { - "version": "2.0.1", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "dev": true - } - } - }, - "domhandler": { - "version": "4.2.2", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "dotenv": { - "version": "8.6.0" - }, - "dynamic-dedupe": { - "version": "0.3.0", - "dev": true, - "requires": { - "xtend": "^4.0.0" - } - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1" - }, - "electron-to-chromium": { - "version": "1.3.840", - "dev": true - }, - "emittery": { - "version": "0.8.1", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0" - }, - "encodeurl": { - "version": "1.0.2" - }, - "entities": { - "version": "2.2.0" - }, - "escalade": { - "version": "3.1.1" - }, - "escape-html": { - "version": "1.0.3" - }, - "escape-string-regexp": { - "version": "1.0.5" - }, - "escodegen": { - "version": "2.0.0", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true, - "optional": true - } - } - }, - "esprima": { - "version": "4.0.1" - }, - "estraverse": { - "version": "5.2.0", - "dev": true - }, - "esutils": { - "version": "2.0.3" - }, - "etag": { - "version": "1.8.1" - }, - "execa": { - "version": "5.1.1", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "dev": true - }, - "expect": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-regex-util": "^27.0.6" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "express": { - "version": "4.17.1", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - }, - "safe-buffer": { - "version": "5.1.2" - } - } - }, - "express-async-errors": { - "version": "3.1.1", - "requires": {} - }, - "fast-deep-equal": { - "version": "3.1.3" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6" - }, - "fast-safe-stringify": { - "version": "2.1.1" - }, - "fb-watchman": { - "version": "2.0.1", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "file-uri-to-path": { - "version": "2.0.0" - }, - "fill-range": { - "version": "7.0.1", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0" - } - } - }, - "find-up": { - "version": "4.1.0", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "find-yarn-workspace-root": { - "version": "2.0.0", - "requires": { - "micromatch": "^4.0.2" - } - }, - "form-data": { - "version": "3.0.1", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "formidable": { - "version": "1.2.2" - }, - "forwarded": { - "version": "0.2.0" - }, - "fresh": { - "version": "0.5.2" - }, - "fs-extra": { - "version": "8.1.0", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0" - }, - "ftp": { - "version": "0.3.10", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - } - }, - "function-bind": { - "version": "1.1.1" - }, - "gauge": { - "version": "2.7.4", - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1" - }, - "strip-ansi": { - "version": "3.0.1", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5" - }, - "get-intrinsic": { - "version": "1.1.1", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-package-type": { - "version": "0.1.0", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "dev": true - }, - "get-uri": { - "version": "3.0.2", - "requires": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-prefix": { - "version": "3.0.0", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "globals": { - "version": "11.12.0", - "dev": true - }, - "graceful-fs": { - "version": "4.2.8" - }, - "growly": { - "version": "1.3.0", - "dev": true, - "optional": true, - "peer": true - }, - "has": { - "version": "1.0.3", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0" - }, - "has-symbols": { - "version": "1.0.2" - }, - "has-unicode": { - "version": "2.0.1" - }, - "helmet": { - "version": "4.6.0" - }, - "highlight.js": { - "version": "10.7.3" - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "dev": true - }, - "htmlparser2": { - "version": "6.1.0", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "http-errors": { - "version": "1.7.2", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3" - } - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "human-signals": { - "version": "2.1.0", - "dev": true - }, - "i18next": { - "version": "19.9.2", - "requires": { - "@babel/runtime": "^7.12.0" - } - }, - "i18next-http-middleware": { - "version": "3.1.4" - }, - "i18next-node-fs-backend": { - "version": "2.1.3", - "requires": { - "js-yaml": "3.13.1", - "json5": "2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1" - }, - "image-size": { - "version": "1.0.0", - "requires": { - "queue": "6.0.2" - } - }, - "import-local": { - "version": "3.0.3", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4" - }, - "ini": { - "version": "1.3.8", - "dev": true - }, - "interpret": { - "version": "1.4.0", - "dev": true - }, - "ip": { - "version": "1.1.5" - }, - "ipaddr.js": { - "version": "1.9.1" - }, - "is-binary-path": { - "version": "2.1.0", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-ci": { - "version": "2.0.0", - "requires": { - "ci-info": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.6.0", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-docker": { - "version": "2.2.1" - }, - "is-extglob": { - "version": "2.1.1", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-generator-fn": { - "version": "2.1.0", - "dev": true - }, - "is-glob": { - "version": "4.0.1", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0" - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "0.0.1" - }, - "isexe": { - "version": "2.0.0" - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.0.5", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/core": "^27.2.5", - "import-local": "^3.0.2", - "jest-cli": "^27.2.5" - } - }, - "jest-changed-files": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/environment": "^27.2.5", - "@jest/test-result": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.2.5", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.5", - "jest-matcher-utils": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-runtime": "^27.2.5", - "jest-snapshot": "^27.2.5", - "jest-util": "^27.2.5", - "pretty-format": "^27.2.5", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - } - }, - "jest-cli": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/core": "^27.2.5", - "@jest/test-result": "^27.2.5", - "@jest/types": "^27.2.5", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.2.5", - "jest-util": "^27.2.5", - "jest-validate": "^27.2.5", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "dependencies": { - "ci-info": { - "version": "3.2.0", - "dev": true - }, - "is-ci": { - "version": "3.0.0", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "jest-config": { - "version": "27.2.5", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.5", - "@jest/types": "^27.2.5", - "babel-jest": "^27.2.5", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.2.5", - "jest-environment-jsdom": "^27.2.5", - "jest-environment-node": "^27.2.5", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.5", - "jest-runner": "^27.2.5", - "jest-util": "^27.2.5", - "jest-validate": "^27.2.5", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.5" - } - } - } - }, - "jest-diff": { - "version": "27.2.5", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.5" - } - }, - "jest-docblock": { - "version": "27.0.6", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "jest-util": "^27.2.5", - "pretty-format": "^27.2.5" - } - }, - "jest-environment-jsdom": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/environment": "^27.2.5", - "@jest/fake-timers": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "jest-mock": "^27.2.5", - "jest-util": "^27.2.5", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/environment": "^27.2.5", - "@jest/fake-timers": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "jest-mock": "^27.2.5", - "jest-util": "^27.2.5" - } - }, - "jest-expect-message": { - "version": "1.0.2", - "dev": true - }, - "jest-get-type": { - "version": "27.0.6", - "dev": true - }, - "jest-haste-map": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.2.5", - "jest-worker": "^27.2.5", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.2.5", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.2.5", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.2.5", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.5", - "jest-matcher-utils": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-runtime": "^27.2.5", - "jest-snapshot": "^27.2.5", - "jest-util": "^27.2.5", - "pretty-format": "^27.2.5", - "throat": "^6.0.1" - } - }, - "jest-leak-detector": { - "version": "27.2.5", - "dev": true, - "requires": { - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.5" - } - }, - "jest-matcher-utils": { - "version": "27.2.5", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.2.5", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.5" - } - }, - "jest-message-util": { - "version": "27.2.5", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.2.5", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.5", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "27.0.6", - "dev": true - }, - "jest-resolve": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "chalk": "^4.0.0", - "escalade": "^3.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.5", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.2.5", - "jest-validate": "^27.2.5", - "resolve": "^1.20.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.2.5" - } - }, - "jest-runner": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/console": "^27.2.5", - "@jest/environment": "^27.2.5", - "@jest/test-result": "^27.2.5", - "@jest/transform": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.2.5", - "jest-environment-node": "^27.2.5", - "jest-haste-map": "^27.2.5", - "jest-leak-detector": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-resolve": "^27.2.5", - "jest-runtime": "^27.2.5", - "jest-util": "^27.2.5", - "jest-worker": "^27.2.5", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - } - }, - "jest-runtime": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/console": "^27.2.5", - "@jest/environment": "^27.2.5", - "@jest/fake-timers": "^27.2.5", - "@jest/globals": "^27.2.5", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.5", - "@jest/transform": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-mock": "^27.2.5", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.5", - "jest-snapshot": "^27.2.5", - "jest-util": "^27.2.5", - "jest-validate": "^27.2.5", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.2.0" - } - }, - "jest-serializer": { - "version": "27.0.6", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "27.2.5", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.2.5", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.2.5", - "jest-get-type": "^27.0.6", - "jest-haste-map": "^27.2.5", - "jest-matcher-utils": "^27.2.5", - "jest-message-util": "^27.2.5", - "jest-resolve": "^27.2.5", - "jest-util": "^27.2.5", - "natural-compare": "^1.4.0", - "pretty-format": "^27.2.5", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-util": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - }, - "dependencies": { - "ci-info": { - "version": "3.2.0", - "dev": true - }, - "is-ci": { - "version": "3.0.0", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - } - } - }, - "jest-validate": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "leven": "^3.1.0", - "pretty-format": "^27.2.5" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "dev": true - } - } - }, - "jest-watcher": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/test-result": "^27.2.5", - "@jest/types": "^27.2.5", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.2.5", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "27.2.5", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.7.0", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0" - }, - "json5": { - "version": "2.0.0", - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "dev": true - }, - "jsonwebtoken": { - "version": "8.5.1", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - } - }, - "jwa": { - "version": "1.4.1", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "dev": true - }, - "klaw-sync": { - "version": "6.0.0", - "requires": { - "graceful-fs": "^4.1.11" - } - }, - "kleur": { - "version": "3.0.3", - "dev": true - }, - "lambert-server": { - "version": "1.2.12", - "requires": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "leven": { - "version": "3.1.0", - "dev": true - }, - "levn": { - "version": "0.3.0", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "locate-path": { - "version": "5.0.0", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "dev": true - }, - "lodash.debounce": { - "version": "4.0.8", - "dev": true - }, - "lodash.includes": { - "version": "4.3.0" - }, - "lodash.isboolean": { - "version": "3.0.3" - }, - "lodash.isinteger": { - "version": "4.0.4" - }, - "lodash.isnumber": { - "version": "3.0.3" - }, - "lodash.isplainobject": { - "version": "4.0.6" - }, - "lodash.isstring": { - "version": "4.0.1" - }, - "lodash.once": { - "version": "4.1.1" - }, - "lru_map": { - "version": "0.3.3" - }, - "lru-cache": { - "version": "6.0.0", - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0" - } - } - }, - "make-error": { - "version": "1.3.6", - "devOptional": true - }, - "makeerror": { - "version": "1.0.11", - "dev": true, - "requires": { - "tmpl": "1.0.x" - } - }, - "media-typer": { - "version": "0.3.0" - }, - "merge-descriptors": { - "version": "1.0.1" - }, - "merge-stream": { - "version": "2.0.0", - "dev": true - }, - "methods": { - "version": "1.1.2" - }, - "micromatch": { - "version": "4.0.4", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0" - }, - "mime-db": { - "version": "1.49.0" - }, - "mime-types": { - "version": "2.1.32", - "requires": { - "mime-db": "1.49.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "minipass": { - "version": "3.1.5", - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "missing-native-js-functions": { - "version": "1.2.18" - }, - "mkdirp": { - "version": "0.5.5", - "requires": { - "minimist": "^1.2.5" - } - }, - "morgan": { - "version": "1.10.0", - "requires": { - "basic-auth": "~2.0.1", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-finished": "~2.3.0", - "on-headers": "~1.0.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "2.0.0" - }, - "ms": { - "version": "2.0.0" - } - } - }, - "ms": { - "version": "2.1.2" - }, - "multer": { - "version": "1.4.3", - "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - } - }, - "mz": { - "version": "2.7.0", - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "natural-compare": { - "version": "1.4.0", - "dev": true - }, - "negotiator": { - "version": "0.6.2" - }, - "netmask": { - "version": "2.0.2" - }, - "nice-try": { - "version": "1.0.5" - }, - "node-2fa": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-2fa/-/node-2fa-2.0.3.tgz", - "integrity": "sha512-PQldrOhjuoZyoydMvMSctllPN1ZPZ1/NwkEcgYwY9faVqE/OymxR+3awPpbWZxm6acLKqvmNqQmdqTsqYyflFw==", - "requires": { - "@types/notp": "^2.0.0", - "notp": "^2.0.3", - "thirty-two": "1.0.2", - "tslib": "^2.1.0" - } - }, - "node-addon-api": { - "version": "3.2.1" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, - "node-int64": { - "version": "0.4.0", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "dev": true - }, - "node-notifier": { - "version": "8.0.2", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "growly": "^1.3.0", - "is-wsl": "^2.2.0", - "semver": "^7.3.2", - "shellwords": "^0.1.1", - "uuid": "^8.3.0", - "which": "^2.0.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "which": { - "version": "2.0.2", - "dev": true, - "optional": true, - "peer": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-releases": { - "version": "1.1.75", - "dev": true - }, - "nopt": { - "version": "5.0.0", - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "dev": true - }, - "notp": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/notp/-/notp-2.0.3.tgz", - "integrity": "sha512-oBig/2uqkjQ5AkBuw4QJYwkEWa/q+zHxI5/I5z6IeP2NT0alpJFsP/trrfCC+9xOAgQSZXssNi962kp5KBmypQ==" - }, - "npm-run-path": { - "version": "4.0.1", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "nth-check": { - "version": "2.0.1", - "requires": { - "boolbase": "^1.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1" - }, - "nwsapi": { - "version": "2.2.0", - "dev": true - }, - "object-assign": { - "version": "4.1.1" - }, - "object-inspect": { - "version": "1.11.0" - }, - "object-keys": { - "version": "1.1.1", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "on-finished": { - "version": "2.3.0", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2" - }, - "once": { - "version": "1.4.0", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.4.2", - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "optionator": { - "version": "0.8.3", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-tmpdir": { - "version": "1.0.2" - }, - "p-limit": { - "version": "2.3.0", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "dev": true - }, - "pac-proxy-agent": { - "version": "5.0.0", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - } - }, - "pac-resolver": { - "version": "5.0.0", - "requires": { - "degenerator": "^3.0.1", - "ip": "^1.1.5", - "netmask": "^2.0.1" - } - }, - "parse5": { - "version": "6.0.1" - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "requires": { - "parse5": "^6.0.1" - } - }, - "parseurl": { - "version": "1.3.3" - }, - "patch-package": { - "version": "6.4.7", - "requires": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^7.0.1", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.0", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3" - }, - "cross-spawn": { - "version": "6.0.5", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "fs-extra": { - "version": "7.0.1", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "has-flag": { - "version": "3.0.0" - }, - "path-key": { - "version": "2.0.1" - }, - "rimraf": { - "version": "2.7.1", - "requires": { - "glob": "^7.1.3" - } - }, - "shebang-command": { - "version": "1.2.0", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0" - }, - "slash": { - "version": "2.0.0" - }, - "supports-color": { - "version": "5.5.0", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "path-exists": { - "version": "4.0.0", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1" - }, - "path-key": { - "version": "3.1.1", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7" - }, - "picocolors": { - "version": "1.0.0" - }, - "picomatch": { - "version": "2.3.0" - }, - "pirates": { - "version": "4.0.1", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "prelude-ls": { - "version": "1.1.2" - }, - "pretty-format": { - "version": "27.2.5", - "dev": true, - "requires": { - "@jest/types": "^27.2.5", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "dev": true - } - } - }, - "process-nextick-args": { - "version": "2.0.1" - }, - "prompts": { - "version": "2.4.2", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "proxy-addr": { - "version": "2.0.7", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "proxy-agent": { - "version": "5.0.0", - "requires": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "5.1.1", - "requires": { - "yallist": "^3.0.2" - } - }, - "yallist": { - "version": "3.1.1" - } - } - }, - "proxy-from-env": { - "version": "1.1.0" - }, - "psl": { - "version": "1.8.0", - "dev": true - }, - "punycode": { - "version": "2.1.1" - }, - "qs": { - "version": "6.7.0" - }, - "querystringify": { - "version": "2.2.0" - }, - "queue": { - "version": "6.0.2", - "requires": { - "inherits": "~2.0.3" - } - }, - "range-parser": { - "version": "1.2.1" - }, - "raw-body": { - "version": "2.4.0", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "react-is": { - "version": "17.0.2", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - }, - "dependencies": { - "string_decoder": { - "version": "0.10.31" - } - } - }, - "readdirp": { - "version": "3.6.0", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.6.2", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "reflect-metadata": { - "version": "0.1.13" - }, - "regenerate": { - "version": "1.4.2", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "9.0.0", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9" - }, - "regenerator-transform": { - "version": "0.14.5", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regexpu-core": { - "version": "4.8.0", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^9.0.0", - "regjsgen": "^0.5.2", - "regjsparser": "^0.7.0", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.5.2", - "dev": true - }, - "regjsparser": { - "version": "0.7.0", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1" - }, - "require-from-string": { - "version": "2.0.2" - }, - "requires-port": { - "version": "1.0.0" - }, - "resolve": { - "version": "1.20.0", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.2.1" - }, - "safer-buffer": { - "version": "2.1.2" - }, - "sax": { - "version": "1.2.4" - }, - "saxes": { - "version": "5.0.1", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "semver": { - "version": "5.7.1" - }, - "send": { - "version": "0.17.1", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0" - } - } - }, - "ms": { - "version": "2.1.1" - } - } - }, - "serve-static": { - "version": "1.14.1", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0" - }, - "setprototypeof": { - "version": "1.1.1" - }, - "sha.js": { - "version": "2.4.11", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "dev": true - }, - "shelljs": { - "version": "0.8.4", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "shellwords": { - "version": "0.1.1", - "dev": true, - "optional": true, - "peer": true - }, - "side-channel": { - "version": "1.0.4", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.4" - }, - "sisteransi": { - "version": "1.0.5", - "dev": true - }, - "slash": { - "version": "3.0.0", - "dev": true - }, - "smart-buffer": { - "version": "4.2.0" - }, - "socks": { - "version": "2.6.1", - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "socks-proxy-agent": { - "version": "5.0.1", - "requires": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - } - }, - "source-map": { - "version": "0.5.7", - "dev": true - }, - "source-map-support": { - "version": "0.5.20", - "devOptional": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "devOptional": true - } - } - }, - "sprintf-js": { - "version": "1.0.3" - }, - "stack-utils": { - "version": "2.0.4", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0", - "source-map-support": "^0.5.20" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "dev": true - } - } - }, - "statuses": { - "version": "1.5.0" - }, - "streamsearch": { - "version": "0.1.2" - }, - "string_decoder": { - "version": "1.3.0", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-length": { - "version": "4.0.2", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1" - }, - "strip-ansi": { - "version": "3.0.1", - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "strip-ansi": { - "version": "6.0.1", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "dev": true - }, - "superagent": { - "version": "6.1.0", - "requires": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.2", - "debug": "^4.1.1", - "fast-safe-stringify": "^2.0.7", - "form-data": "^3.0.0", - "formidable": "^1.2.2", - "methods": "^1.1.2", - "mime": "^2.4.6", - "qs": "^6.9.4", - "readable-stream": "^3.6.0", - "semver": "^7.3.2" - }, - "dependencies": { - "mime": { - "version": "2.5.2" - }, - "qs": { - "version": "6.10.1", - "requires": { - "side-channel": "^1.0.4" - } - }, - "readable-stream": { - "version": "3.6.0", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "semver": { - "version": "7.3.5", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "supertest": { - "version": "6.1.6", - "requires": { - "methods": "^1.1.2", - "superagent": "^6.1.0" - } - }, - "supports-color": { - "version": "7.2.0", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "symbol-tree": { - "version": "3.2.4", - "dev": true - }, - "tar": { - "version": "6.1.11", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4" - } - } - }, - "terminal-link": { - "version": "2.1.1", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "thenify": { - "version": "3.3.1", - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "thirty-two": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz", - "integrity": "sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==" - }, - "throat": { - "version": "6.0.1", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.5", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0" - }, - "tough-cookie": { - "version": "4.0.0", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - } - }, - "tr46": { - "version": "2.1.0", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "tree-kill": { - "version": "1.2.2", - "dev": true - }, - "ts-node": { - "version": "9.1.1", - "devOptional": true, - "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "ts-node-dev": { - "version": "1.1.8", - "dev": true, - "requires": { - "chokidar": "^3.5.1", - "dynamic-dedupe": "^0.3.0", - "minimist": "^1.2.5", - "mkdirp": "^1.0.4", - "resolve": "^1.0.0", - "rimraf": "^2.6.1", - "source-map-support": "^0.5.12", - "tree-kill": "^1.2.2", - "ts-node": "^9.0.0", - "tsconfig": "^7.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "ts-patch": { - "version": "1.4.4", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "glob": "^7.1.7", - "global-prefix": "^3.0.0", - "minimist": "^1.2.5", - "resolve": "^1.20.0", - "shelljs": "^0.8.4", - "strip-ansi": "^6.0.0" - } - }, - "tsconfig": { - "version": "7.0.0", - "dev": true, - "requires": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "dev": true - } - } - }, - "tslib": { - "version": "2.3.1" - }, - "type-check": { - "version": "0.3.2", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typeorm": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", - "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", - "requires": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1" - }, - "buffer": { - "version": "6.0.3", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "dotenv": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", - "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "js-yaml": { - "version": "4.1.0", - "requires": { - "argparse": "^2.0.1" - } - }, - "mkdirp": { - "version": "1.0.4" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" - } - } - }, - "typescript": { - "version": "4.4.3", - "devOptional": true - }, - "typescript-json-schema": { - "version": "0.50.1", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.7", - "@types/node": "^14.14.33", - "glob": "^7.1.6", - "json-stable-stringify": "^1.0.1", - "ts-node": "^9.1.1", - "typescript": "~4.2.3", - "yargs": "^16.2.0" - }, - "dependencies": { - "json-stable-stringify": { - "version": "1.0.1", - "dev": true, - "requires": { - "jsonify": "~0.0.0" - } - }, - "typescript": { - "version": "4.2.4", - "dev": true - } - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "dev": true - }, - "universalify": { - "version": "0.1.2" - }, - "unpipe": { - "version": "1.0.0" - }, - "uri-js": { - "version": "4.4.1", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse": { - "version": "1.5.10", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util": { - "version": "0.10.3", - "requires": { - "inherits": "2.0.1" - }, - "dependencies": { - "inherits": { - "version": "2.0.1" - } - } - }, - "util-deprecate": { - "version": "1.0.2" - }, - "utils-merge": { - "version": "1.0.1" - }, - "uuid": { - "version": "8.3.2" - }, - "v8-to-istanbul": { - "version": "8.1.0", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "dev": true - } - } - }, - "vary": { - "version": "1.1.2" - }, - "vm2": { - "version": "3.9.7", - "requires": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "dependencies": { - "acorn-walk": { - "version": "8.2.0" - } - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "dev": true, - "requires": { - "makeerror": "1.0.x" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "1.3.1", - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.3", - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "word-wrap": { - "version": "1.2.3" - }, - "wrap-ansi": { - "version": "7.0.0", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0" - }, - "string-width": { - "version": "4.2.3", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "wrappy": { - "version": "1.0.2" - }, - "write-file-atomic": { - "version": "3.0.3", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.5", - "dev": true, - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "dev": true - }, - "xml2js": { - "version": "0.4.23", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1" - }, - "xmlchars": { - "version": "2.2.0", - "dev": true - }, - "xregexp": { - "version": "2.0.0" - }, - "xtend": { - "version": "4.0.2" - }, - "y18n": { - "version": "5.0.8" - }, - "yallist": { - "version": "4.0.0" - }, - "yargs": { - "version": "16.2.0", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0" - }, - "string-width": { - "version": "4.2.3", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "yargs-parser": { - "version": "20.2.9" - }, - "yn": { - "version": "3.1.1", - "devOptional": true - } - } -} diff --git a/api/package.json b/api/package.json deleted file mode 100644 index 1fa85884..00000000 --- a/api/package.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "name": "@fosscord/api", - "version": "1.0.0", - "description": "This repository contains the HTTP API Server", - "main": "dist/index.js", - "types": "src/index.ts", - "scripts": { - "test:only": "npx jest --coverage --verbose --forceExit ./tests", - "test:routes": "npx jest --coverage --verbose --forceExit ./routes.test.ts", - "test": "npm run build && npm run test:only", - "test:watch": "npx jest --watch", - "start": "npm run build && node dist/start", - "build": "npx tsc -p .", - "dev": "npx tsnd --respawn src/start.ts", - "patch": "npx ts-patch install -s && npx patch-package", - "postinstall": "npm run patch", - "generate:docs": "node scripts/generate_openapi", - "generate:schema": "node scripts/generate_schema" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fosscord/fosscord-server.git" - }, - "keywords": [ - "discord", - "fosscord", - "fosscord-server", - "fosscord-api", - "discord open source", - "discord-open-source" - ], - "author": "Fosscord", - "license": "AGPL-3.0-only", - "bugs": { - "url": "https://github.com/fosscord/fosscord-server/issues" - }, - "homepage": "https://fosscord.com", - "devDependencies": { - "@babel/core": "^7.18.9", - "@babel/preset-env": "^7.18.9", - "@babel/preset-typescript": "^7.15.0", - "@types/bcrypt": "^5.0.0", - "@types/express": "^4.17.9", - "@types/i18next-node-fs-backend": "^2.1.0", - "@types/morgan": "^1.9.3", - "@types/multer": "^1.4.5", - "@types/node": "^18.0.6", - "jest": "^28.1.3", - "jest-expect-message": "^1.0.2", - "ts-node-dev": "^2.0.0", - "typescript": "^4.4.2", - "typescript-json-schema": "^0.54.0" - }, - "dependencies": { - "@babel/preset-typescript": "^7.15.0", - "@fosscord/util": "file:../util", - "ajv": "8.6.2", - "ajv-formats": "^2.1.1", - "bcrypt": "^5.0.1", - "body-parser": "^1.19.0", - "canvas": "^2.9.3", - "cheerio": "^1.0.0-rc.10", - "dotenv": "^16.0.1", - "express": "^4.17.1", - "i18next": "^21.8.14", - "i18next-http-middleware": "^3.1.3", - "i18next-node-fs-backend": "^2.1.3", - "image-size": "^1.0.0", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "morgan": "^1.10.0", - "multer": "^1.4.5-lts.1", - "node-2fa": "^2.0.3", - "node-fetch": "^2.6.7", - "patch-package": "^6.4.7", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "supertest": "^6.1.6", - "typeorm": "^0.3.7" - }, - "jest": { - "setupFiles": [ - "/jest/setup.js" - ], - "setupFilesAfterEnv": [ - "jest-expect-message" - ], - "globalSetup": "/jest/globalSetup.js", - "verbose": true - } -} diff --git a/api/patches/ajv+8.6.2.patch b/api/patches/ajv+8.6.2.patch deleted file mode 100644 index 3f54881b..00000000 --- a/api/patches/ajv+8.6.2.patch +++ /dev/null @@ -1,249 +0,0 @@ -diff --git a/node_modules/ajv/dist/compile/jtd/parse.js b/node_modules/ajv/dist/compile/jtd/parse.js -index 1eeb1be..7684121 100644 ---- a/node_modules/ajv/dist/compile/jtd/parse.js -+++ b/node_modules/ajv/dist/compile/jtd/parse.js -@@ -239,6 +239,9 @@ function parseType(cxt) { - gen.if(fail, () => parsingError(cxt, codegen_1.str `invalid timestamp`)); - break; - } -+ case "bigint": -+ parseBigInt(cxt); -+ break - case "float32": - case "float64": - parseNumber(cxt); -@@ -284,6 +287,15 @@ function parseNumber(cxt, maxDigits) { - skipWhitespace(cxt); - gen.if(codegen_1._ `"-0123456789".indexOf(${jsonSlice(1)}) < 0`, () => jsonSyntaxError(cxt), () => parseWith(cxt, parseJson_1.parseJsonNumber, maxDigits)); - } -+function parseBigInt(cxt, maxDigits) { -+ const {gen} = cxt -+ skipWhitespace(cxt) -+ gen.if( -+ _`"-0123456789".indexOf(${jsonSlice(1)}) < 0`, -+ () => jsonSyntaxError(cxt), -+ () => parseWith(cxt, parseJson_1.parseJsonBigInt, maxDigits) -+ ) -+} - function parseBooleanToken(bool, fail) { - return (cxt) => { - const { gen, data } = cxt; -diff --git a/node_modules/ajv/dist/compile/rules.js b/node_modules/ajv/dist/compile/rules.js -index 82a591f..1ebd8fe 100644 ---- a/node_modules/ajv/dist/compile/rules.js -+++ b/node_modules/ajv/dist/compile/rules.js -@@ -1,7 +1,7 @@ - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.getRules = exports.isJSONType = void 0; --const _jsonTypes = ["string", "number", "integer", "boolean", "null", "object", "array"]; -+const _jsonTypes = ["string", "number", "integer", "boolean", "null", "object", "array","bigint"]; - const jsonTypes = new Set(_jsonTypes); - function isJSONType(x) { - return typeof x == "string" && jsonTypes.has(x); -@@ -13,10 +13,11 @@ function getRules() { - string: { type: "string", rules: [] }, - array: { type: "array", rules: [] }, - object: { type: "object", rules: [] }, -+ bigint: {type: "bigint", rules: []} - }; - return { -- types: { ...groups, integer: true, boolean: true, null: true }, -- rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object], -+ types: { ...groups, integer: true, boolean: true, null: true, bigint: true }, -+ rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object, groups.bigint], - post: { rules: [] }, - all: {}, - keywords: {}, -diff --git a/node_modules/ajv/dist/compile/validate/dataType.js b/node_modules/ajv/dist/compile/validate/dataType.js -index 6319e76..8b50b4c 100644 ---- a/node_modules/ajv/dist/compile/validate/dataType.js -+++ b/node_modules/ajv/dist/compile/validate/dataType.js -@@ -52,7 +52,7 @@ function coerceAndCheckDataType(it, types) { - return checkTypes; - } - exports.coerceAndCheckDataType = coerceAndCheckDataType; --const COERCIBLE = new Set(["string", "number", "integer", "boolean", "null"]); -+const COERCIBLE = new Set(["string", "number", "integer", "boolean", "null","bigint"]); - function coerceToTypes(types, coerceTypes) { - return coerceTypes - ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === "array" && t === "array")) -@@ -83,6 +83,14 @@ function coerceData(it, types, coerceTo) { - }); - function coerceSpecificType(t) { - switch (t) { -+ case "bigint": -+ gen -+ .elseIf( -+ codegen_1._`${dataType} == "boolean" || ${data} === null -+ || (${dataType} == "string" && ${data} && ${data} == BigInt(${data}))` -+ ) -+ .assign(coerced, codegen_1._`BigInt(${data})`) -+ return - case "string": - gen - .elseIf(codegen_1._ `${dataType} == "number" || ${dataType} == "boolean"`) -@@ -143,6 +151,9 @@ function checkDataType(dataType, data, strictNums, correct = DataType.Correct) { - case "number": - cond = numCond(); - break; -+ case "bigint": -+ cond = codegen_1._`typeof ${data} == "bigint" && isFinite(${data})` -+ break - default: - return codegen_1._ `typeof ${data} ${EQ} ${dataType}`; - } -diff --git a/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json b/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json -index 7027a12..25679c8 100644 ---- a/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json -+++ b/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json -@@ -78,7 +78,7 @@ - "default": 0 - }, - "simpleTypes": { -- "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] -+ "enum": ["array", "boolean", "integer", "null", "number", "object", "string","bigint"] - }, - "stringArray": { - "type": "array", -diff --git a/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json b/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json -index e0ae13d..57c9036 100644 ---- a/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json -+++ b/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json -@@ -78,7 +78,7 @@ - "default": 0 - }, - "simpleTypes": { -- "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] -+ "enum": ["array", "boolean", "integer", "null", "number", "object", "string","bigint"] - }, - "stringArray": { - "type": "array", -diff --git a/node_modules/ajv/dist/refs/json-schema-draft-06.json b/node_modules/ajv/dist/refs/json-schema-draft-06.json -index 5410064..774435b 100644 ---- a/node_modules/ajv/dist/refs/json-schema-draft-06.json -+++ b/node_modules/ajv/dist/refs/json-schema-draft-06.json -@@ -16,7 +16,7 @@ - "allOf": [{"$ref": "#/definitions/nonNegativeInteger"}, {"default": 0}] - }, - "simpleTypes": { -- "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] -+ "enum": ["array", "boolean", "integer", "null", "number", "object", "string","bigint"] - }, - "stringArray": { - "type": "array", -diff --git a/node_modules/ajv/dist/refs/json-schema-draft-07.json b/node_modules/ajv/dist/refs/json-schema-draft-07.json -index 6a74851..fc6dd7d 100644 ---- a/node_modules/ajv/dist/refs/json-schema-draft-07.json -+++ b/node_modules/ajv/dist/refs/json-schema-draft-07.json -@@ -16,7 +16,7 @@ - "allOf": [{"$ref": "#/definitions/nonNegativeInteger"}, {"default": 0}] - }, - "simpleTypes": { -- "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] -+ "enum": ["array", "boolean", "integer", "null", "number", "object", "string","bigint"] - }, - "stringArray": { - "type": "array", -diff --git a/node_modules/ajv/dist/refs/jtd-schema.js b/node_modules/ajv/dist/refs/jtd-schema.js -index 1ee940a..1148887 100644 ---- a/node_modules/ajv/dist/refs/jtd-schema.js -+++ b/node_modules/ajv/dist/refs/jtd-schema.js -@@ -38,6 +38,7 @@ const typeForm = (root) => ({ - "uint16", - "int32", - "uint32", -+ "bigint", - ], - }, - }, -diff --git a/node_modules/ajv/dist/runtime/parseJson.js b/node_modules/ajv/dist/runtime/parseJson.js -index 2576a6e..e7447b1 100644 ---- a/node_modules/ajv/dist/runtime/parseJson.js -+++ b/node_modules/ajv/dist/runtime/parseJson.js -@@ -97,6 +97,71 @@ exports.parseJsonNumber = parseJsonNumber; - parseJsonNumber.message = undefined; - parseJsonNumber.position = 0; - parseJsonNumber.code = 'require("ajv/dist/runtime/parseJson").parseJsonNumber'; -+ -+function parseJsonBigInt(s, pos, maxDigits) { -+ let numStr = ""; -+ let c; -+ parseJsonBigInt.message = undefined; -+ if (s[pos] === "-") { -+ numStr += "-"; -+ pos++; -+ } -+ if (s[pos] === "0") { -+ numStr += "0"; -+ pos++; -+ } -+ else { -+ if (!parseDigits(maxDigits)) { -+ errorMessage(); -+ return undefined; -+ } -+ } -+ if (maxDigits) { -+ parseJsonBigInt.position = pos; -+ return BigInt(numStr); -+ } -+ if (s[pos] === ".") { -+ numStr += "."; -+ pos++; -+ if (!parseDigits()) { -+ errorMessage(); -+ return undefined; -+ } -+ } -+ if (((c = s[pos]), c === "e" || c === "E")) { -+ numStr += "e"; -+ pos++; -+ if (((c = s[pos]), c === "+" || c === "-")) { -+ numStr += c; -+ pos++; -+ } -+ if (!parseDigits()) { -+ errorMessage(); -+ return undefined; -+ } -+ } -+ parseJsonBigInt.position = pos; -+ return BigInt(numStr); -+ function parseDigits(maxLen) { -+ let digit = false; -+ while (((c = s[pos]), c >= "0" && c <= "9" && (maxLen === undefined || maxLen-- > 0))) { -+ digit = true; -+ numStr += c; -+ pos++; -+ } -+ return digit; -+ } -+ function errorMessage() { -+ parseJsonBigInt.position = pos; -+ parseJsonBigInt.message = pos < s.length ? `unexpected token ${s[pos]}` : "unexpected end"; -+ } -+} -+exports.parseJsonBigInt = parseJsonBigInt; -+parseJsonBigInt.message = undefined; -+parseJsonBigInt.position = 0; -+parseJsonBigInt.code = 'require("ajv/dist/runtime/parseJson").parseJsonBigInt'; -+ -+ - const escapedChars = { - b: "\b", - f: "\f", -diff --git a/node_modules/ajv/dist/vocabularies/jtd/type.js b/node_modules/ajv/dist/vocabularies/jtd/type.js -index 428bddb..fbc3070 100644 ---- a/node_modules/ajv/dist/vocabularies/jtd/type.js -+++ b/node_modules/ajv/dist/vocabularies/jtd/type.js -@@ -45,6 +45,9 @@ const def = { - cond = timestampCode(cxt); - break; - } -+ case "bigint": -+ cond = codegen_1._`typeof ${data} == "bigint" || typeof ${data} == "string"` -+ break - case "float32": - case "float64": - cond = codegen_1._ `typeof ${data} == "number"`; \ No newline at end of file diff --git a/api/patches/typescript-json-schema+0.54.0.patch b/api/patches/typescript-json-schema+0.54.0.patch deleted file mode 100644 index 2a319ec4..00000000 --- a/api/patches/typescript-json-schema+0.54.0.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/node_modules/typescript-json-schema/dist/typescript-json-schema.js b/node_modules/typescript-json-schema/dist/typescript-json-schema.js -index 78f97ba..790c516 100644 ---- a/node_modules/typescript-json-schema/dist/typescript-json-schema.js -+++ b/node_modules/typescript-json-schema/dist/typescript-json-schema.js -@@ -453,6 +453,9 @@ var JsonSchemaGenerator = (function () { - else if (flags & ts.TypeFlags.Boolean) { - definition.type = "boolean"; - } -+ else if (flags & ts.TypeFlags.BigInt) { -+ definition.type = "bigint"; -+ } - else if (flags & ts.TypeFlags.Null) { - definition.type = "null"; - } diff --git a/api/scripts/droptables.sql b/api/scripts/droptables.sql deleted file mode 100644 index 8a852048..00000000 --- a/api/scripts/droptables.sql +++ /dev/null @@ -1,31 +0,0 @@ -DROP TABLE applications; -DROP TABLE attachments; -DROP TABLE audit_logs; -DROP TABLE bans; -DROP TABLE connected_accounts; -DROP TABLE emojis; -DROP TABLE invites; -DROP TABLE member_roles; -DROP TABLE message_channel_mentions; -DROP TABLE message_role_mentions; -DROP TABLE message_stickers; -DROP TABLE message_user_mentions; -DROP TABLE messages; -DROP TABLE rate_limits; -DROP TABLE read_states; -DROP TABLE recipients; -DROP TABLE relationships; -DROP TABLE roles; -DROP TABLE sessions; -DROP TABLE stickers; -DROP TABLE team_members; -DROP TABLE teams; -DROP TABLE templates; -DROP TABLE voice_states; -DROP TABLE webhooks; -DROP TABLE channels; -DROP TABLE members; -DROP TABLE guilds; -DROP TABLE client_release; --- DROP TABLE users; --- DROP TABLE config; \ No newline at end of file diff --git a/api/scripts/generate_openapi.js b/api/scripts/generate_openapi.js deleted file mode 100644 index 9624a5b9..00000000 --- a/api/scripts/generate_openapi.js +++ /dev/null @@ -1,137 +0,0 @@ -// https://mermade.github.io/openapi-gui/# -// https://editor.swagger.io/ -const getRouteDescriptions = require("../jest/getRouteDescriptions"); -const path = require("path"); -const fs = require("fs"); -require("missing-native-js-functions"); - -const openapiPath = path.join(__dirname, "..", "assets", "openapi.json"); -const SchemaPath = path.join(__dirname, "..", "assets", "schemas.json"); -const schemas = JSON.parse(fs.readFileSync(SchemaPath, { encoding: "utf8" })); -const specification = JSON.parse(fs.readFileSync(openapiPath, { encoding: "utf8" })); - -function combineSchemas(schemas) { - let definitions = {}; - - for (const name in schemas) { - definitions = { - ...definitions, - ...schemas[name].definitions, - [name]: { ...schemas[name], definitions: undefined, $schema: undefined } - }; - } - - for (const key in definitions) { - specification.components.schemas[key] = definitions[key]; - delete definitions[key].additionalProperties; - delete definitions[key].$schema; - const definition = definitions[key]; - - if (typeof definition.properties === "object") { - for (const property of Object.values(definition.properties)) { - if (Array.isArray(property.type)) { - if (property.type.includes("null")) { - property.type = property.type.find((x) => x !== "null"); - property.nullable = true; - } - } - } - } - } - - return definitions; -} - -function getTag(key) { - return key.match(/\/([\w-]+)/)[1]; -} - -function apiRoutes() { - const routes = getRouteDescriptions(); - - const tags = Array.from(routes.keys()).map((x) => getTag(x)); - specification.tags = [...specification.tags.map((x) => x.name), ...tags].unique().map((x) => ({ name: x })); - - routes.forEach((route, pathAndMethod) => { - const [p, method] = pathAndMethod.split("|"); - const path = p.replace(/:(\w+)/g, "{$1}"); - - let obj = specification.paths[path]?.[method] || {}; - if (!obj.description) { - const permission = route.permission ? `##### Requires the \`\`${route.permission}\`\` permission\n` : ""; - const event = route.test?.event ? `##### Fires a \`\`${route.test?.event}\`\` event\n` : ""; - obj.description = permission + event; - } - if (route.body) { - obj.requestBody = { - required: true, - content: { - "application/json": { - schema: { $ref: `#/components/schemas/${route.body}` } - } - } - }.merge(obj.requestBody); - } - if (!obj.responses) { - obj.responses = { - default: { - description: "not documented" - } - }; - } - if (route.test?.response) { - const status = route.test.response.status || 200; - let schema = { - allOf: [ - { - $ref: `#/components/schemas/${route.test.response.body}` - }, - { - example: route.test.body - } - ] - }; - if (!route.test.body) schema = schema.allOf[0]; - - obj.responses = { - [status]: { - ...(route.test.response.body - ? { - description: obj.responses[status].description || "", - content: { - "application/json": { - schema: schema - } - } - } - : {}) - } - }.merge(obj.responses); - delete obj.responses.default; - } - if (p.includes(":")) { - obj.parameters = p.match(/:\w+/g)?.map((x) => ({ - name: x.replace(":", ""), - in: "path", - required: true, - schema: { type: "string" }, - description: x.replace(":", "") - })); - } - obj.tags = [...(obj.tags || []), getTag(p)].unique(); - - specification.paths[path] = { ...specification.paths[path], [method]: obj }; - }); -} - -function main() { - combineSchemas(schemas); - apiRoutes(); - - fs.writeFileSync( - openapiPath, - JSON.stringify(specification, null, 4).replaceAll("#/definitions", "#/components/schemas").replaceAll("bigint", "number") - ); -} - -main(); diff --git a/api/scripts/generate_schema.js b/api/scripts/generate_schema.js deleted file mode 100644 index 1badfd32..00000000 --- a/api/scripts/generate_schema.js +++ /dev/null @@ -1,95 +0,0 @@ -// https://mermade.github.io/openapi-gui/# -// https://editor.swagger.io/ -const path = require("path"); -const fs = require("fs"); -const TJS = require("typescript-json-schema"); -require("missing-native-js-functions"); -const schemaPath = path.join(__dirname, "..", "assets", "schemas.json"); - -const settings = { - required: true, - ignoreErrors: true, - excludePrivate: true, - defaultNumberType: "integer", - noExtraProps: true, - defaultProps: false -}; -const compilerOptions = { - strictNullChecks: true -}; -const Excluded = [ - "DefaultSchema", - "Schema", - "EntitySchema", - "ServerResponse", - "Http2ServerResponse", - "global.Express.Response", - "Response", - "e.Response", - "request.Response", - "supertest.Response", - - // TODO: Figure out how to exclude schemas from node_modules? - "SomeJSONSchema", - "UncheckedPartialSchema", - "PartialSchema", - "UncheckedPropertiesSchema", - "PropertiesSchema", - "AsyncSchema", - "AnySchema", -]; - -function modify(obj) { - for (let k in obj) { - if (typeof obj[k] === "object" && obj[k] !== null) { - modify(obj[k]); - } - } -} - -function main() { - const files = [ - ...walk(path.join(__dirname, "..", "..", "util", "src", "schemas")), - ]; - const program = TJS.getProgramFromFiles( - files, - compilerOptions - ); - const generator = TJS.buildGenerator(program, settings); - if (!generator || !program) return; - - let schemas = generator.getUserSymbols().filter((x) => (x.endsWith("Schema") || x.endsWith("Response")) && !Excluded.includes(x)); - console.log(schemas); - - let definitions = {}; - - for (const name of schemas) { - const part = TJS.generateSchema(program, name, settings, [], generator); - if (!part) continue; - - definitions = { ...definitions, [name]: { ...part } }; - } - - modify(definitions); - - fs.writeFileSync(schemaPath, JSON.stringify(definitions, null, 4)); -} - -main(); - -function walk(dir) { - let results = []; - let list = fs.readdirSync(dir); - list.forEach(function (file) { - file = dir + "/" + file; - let stat = fs.statSync(file); - if (stat && stat.isDirectory()) { - /* Recurse into a subdirectory */ - results = results.concat(walk(file)); - } else { - if (!file.endsWith(".ts")) return; - results.push(file); - } - }); - return results; -} diff --git a/api/scripts/stresstest/.gitignore b/api/scripts/stresstest/.gitignore deleted file mode 100644 index bde26fd4..00000000 --- a/api/scripts/stresstest/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/node_modules -config.json -accounts.json diff --git a/api/scripts/stresstest/accounts.json.example b/api/scripts/stresstest/accounts.json.example deleted file mode 100644 index 61904c5e..00000000 --- a/api/scripts/stresstest/accounts.json.example +++ /dev/null @@ -1 +0,0 @@ -[{"email":"org11ncxa8.wi732t9b4o@fosscord.com","password":"x.ibahfyqwle.ne4hajbzp11.gpc4lcup4"},{"email":"rek6kyprik.i5hldol255@fosscord.com","password":"1.o3w16haor2y.0e1ey2yk1x.1r0gn5o5h"},{"email":"07o37povsi.uk5q9dtxbp@fosscord.com","password":"8.6z64gcjavp1n.uar3qqymwfi.g0sfmmbd9m"},{"email":"94di5zaie4.n1vhzdfsj@fosscord.com","password":"1e.k3ijylxme1u.e9xr9yqbrk.3tir7qnvh"},{"email":"zbrqft4chj.yl73e5puq3@fosscord.com","password":"5.nkc3g8cvwl15.dmp8ywmkka.m79e9t4wij"},{"email":"br1wknv7k.6hw6yl69e@fosscord.com","password":"3.gimzx06u7mh.6rjrdflo9j1t.h3d8k2f5t"},{"email":"cdehs12h6h.iexxvg16xf@fosscord.com","password":"1i.5ab7e9rtwl1n.31qtfv7cz9.e1k313py9"},{"email":"pazx37jpra.mgsb8k50ip@fosscord.com","password":"d.eg5dwqvd981e.5qobehiyffe.6k5pb4fqm"},{"email":"vs6k62ak2o.xo1v4w0rj@fosscord.com","password":"c.hrkcrnlxlg1d.w18ztd39d1p.eycgehb49"},{"email":"u5d27rbewm.3p0wa7s899@fosscord.com","password":"s.1r7o1ur8o9k.puzbm1uuta9.an5m8bhh0a"},{"email":"vyp6x66fr.yv74eftomo@fosscord.com","password":"m.w0c7h21asf.pq2lj3uot6a.xnhv9ftqii"},{"email":"da0k6sra2n.qts4gs9ufg@fosscord.com","password":"h.8e42ud5f6r5.896sp1t8y6e.shwe0d8no9"},{"email":"l093koc05n.81vt1v8tsx@fosscord.com","password":"11.zhkv1jbhdf.0ub2po3mnu.no4lq8l4"},{"email":"115tfo7ct.muvy04u0tf@fosscord.com","password":"1c.4bpk2a17z1p.gw2h6qmvhez.57drs0quz"},{"email":"dq6bk1hjch.huw092gkhr@fosscord.com","password":"1l.kp28mclrtee.5i4dmacbpc1j.hcqgemsni"},{"email":"8g8q9v3wmk.l2frwpuds8@fosscord.com","password":"1n.i0wwg0njmv.teaiqjqalt1g.ib6551nh4"},{"email":"5b3y3neqxa.mmi0ex2hxd@fosscord.com","password":"8.tvz7q9uw0hm.6ufz6fu65c1a.88vp9di6e"},{"email":"mg28g3krsp.35h1akxrqj@fosscord.com","password":"s.y8j2n19iffr.qyecyrgo6ig.6hgrc5vy9"},{"email":"ehtumcok2j.2oozlhiq97@fosscord.com","password":"11.uq0up8g8h1q.ofvjsx29yd.pfwen3kr38"},{"email":"le98rah1uc.au4ug9tpnt@fosscord.com","password":"t.q15zsc0q2mt.2nj3jsdxhfc.leb9ba1xku"},{"email":"hrroex9f5n.6cl98h3jsi@fosscord.com","password":"17.qnqqhg2us4.kh92v74atg19.49ufgil7g"},{"email":"w95wrrn48.6gfnue7dcq@fosscord.com","password":"b.jnqgbi89oj1k.8rn0llovbll.kcblui80th"},{"email":"rqo4n0il5w.4gl1u8hlyc@fosscord.com","password":"17.41d1lpjmi0.d8ijhslby11w.sjn7sqhi9"},{"email":"6dv3yp4kon.pk7ye6q1r6@fosscord.com","password":"0.j70py6yysjz.sf56ebpp2gp.z68yo9hiim"},{"email":"knmi9qkige.5v1bg6h09w@fosscord.com","password":"1d.7n58xntwg1s.umnglex7h13.c5xrsfkosm"},{"email":"cefymgc7te.dd81jabws4@fosscord.com","password":"1u.73ea7dde1o.0i1fhyaird.sjk30nky1e"},{"email":"33xcwiqf73.r6khs46a7j@fosscord.com","password":"b.5p5gdmh1891f.11g4590n5a.vfoek6qjb9"},{"email":"9zcgmr84s6.utnlygoubi@fosscord.com","password":"8.g4v53t7kcl16.wgaiufzgg1u.pusdfdneb"},{"email":"26vpzekrdw.3bwq27wla@fosscord.com","password":"11.yxey8293lj1d.nxhkju2eke.hl86mcvswd"},{"email":"vvq6w36r84.lr1auhpfc@fosscord.com","password":"y.7vlqbpftom.6xfrtozd11k.ycf9ifi7o"},{"email":"6ejeiq64yo.zorve5saw4@fosscord.com","password":"o.eue50qp1frq.qi0rwphg3dv.psph7va2fb"},{"email":"6s0hu88ro8.hsckrmud1i@fosscord.com","password":"16.fc836nhb91a.ul37503ppg.l62wgser4i"},{"email":"h8qwchz2x9.5br1kcw1iv@fosscord.com","password":"l.iw1041wgy.6azyc9h6vb.br9cr0dmn8"},{"email":"yx13rst2hu.ybisfdwgv@fosscord.com","password":"8.5yasf5ba619.ir0toxu251p.tbgwjd18f"},{"email":"1j7vrr1trh.wqj0ozl357@fosscord.com","password":"1m.iucscoe7b0.6ca1jfaag361.c2trc36mnvk"},{"email":"9w2w572pzr.fv1rk360pp@fosscord.com","password":"t.labzw6qw8t3.33k42uvhgd1s.e1gj71h14"},{"email":"yf5e43ol4.6509owbcxa@fosscord.com","password":"12.jewy0uvx1m1m.ce28kht6dk.v2p0bzlvz"},{"email":"gzny2o1re.1xrl0ua7yd@fosscord.com","password":"h.3valf7r8jh.6bzfr4ions.r4b2mt0l0g"},{"email":"bc77a5kw9v.hu5barps6q@fosscord.com","password":"1a.jt11azsa81j.4v70jvm9d1o.hflrb1tigk"},{"email":"ltoezpefev.hrvnxmq9ee@fosscord.com","password":"b.v4f5lqrlc912.dx4dd4xq91v.zj345to03"},{"email":"svcpsuoenk.b8mfqxpbzg@fosscord.com","password":"1a.7aobev8b4r.xqqfybkcs1t.cjuswku0a"},{"email":"n0mroewqq.svq5iq57pe@fosscord.com","password":"1l.zxm1xhlavp.65rp7bz57x.01vjajdsc"},{"email":"trly6yupd.dt37kh07dn@fosscord.com","password":"1i.o2ieg72fz1j.er031tzerx.2ngg4dcvlh"},{"email":"ickkf14cqv.9pu2pnmx7n@fosscord.com","password":"18.pyhd9ruatl1k.erfchcjc95.wfd67r5e8x"},{"email":"5o4ornfwy9.yabymb8e2k@fosscord.com","password":"1g.117kmei8df10.cedozr4vee.08te5d44nb"},{"email":"p0ulegfi3.dgmar6qc2v@fosscord.com","password":"1h.tle7s3ed82.un20o5nv3dk.wnz4w802h8"},{"email":"58gejpvr6v.jolxrsl83p@fosscord.com","password":"e.ksw14117hbo.f0pgufr3na.ssrjys23al"},{"email":"vf349zeoja.r8bjel59kd@fosscord.com","password":"1o.79kh6e6glm9.d76d86g1jp16.u37p4jhf7"},{"email":"uc786nn0go.n9ygun6owj@fosscord.com","password":"m.xo4bwhct5be.lpokbj59w8p.z4l52dzv1r"},{"email":"5jgx24s87u.odlx0bfo0r@fosscord.com","password":"1k.ni9jyfol7h1g.vczzsa8dbg.r4bhoh5op"},{"email":"2v44408x8l.unfspunnnm@fosscord.com","password":"16.63njhji5b4.r4xkcf672f1a.x389dr603g"},{"email":"ityj8kcvrm.9djzannsll@fosscord.com","password":"1p.6jdbhaxiqc.nfnpw7e09g8.967dtt2dy3"},{"email":"8csbvl9qot.28etdf4pf@fosscord.com","password":"1b.52rdo5qmj3.ta9jw1wm3k9.m96fe27tp"},{"email":"dqndi38hsq.yv77wk3mov@fosscord.com","password":"k.zpjwpwxmlr1f.tbj03rxayn17.9x451qclu"},{"email":"ohwmvag9j.w6t8ngs4t@fosscord.com","password":"b.h1ta0mly991q.wzu1ssffyk1h.kc10wt8i2"},{"email":"2mmors2h0w.jwukibc7oi@fosscord.com","password":"y.xo4kgepqa1t.b77zwt1in5.3um79fx22r"},{"email":"ux0q6gvwnr.gnywxxrsn@fosscord.com","password":"g.52userbsonu.ny8omqaduf.rvhtwq4jer"},{"email":"0q12b4zet.y87zc04r8r@fosscord.com","password":"1t.79mg1a9q85.k66wagu67j14.ad0gw3caw"},{"email":"gatbconrvq.dsopxa8fkk@fosscord.com","password":"1n.fycl7y9roh1p.4yg37pst4k16.votnvabrf"},{"email":"mmp9g1b1v.xz1w4qzxee@fosscord.com","password":"1k.cjmz3huosl.jh502yz5jf1e.hyce7qc67"},{"email":"5s90s1hbns.b027pfiv3s@fosscord.com","password":"1l.86ipkmi6fg.scabtvproj4.yw4nb9qui9"},{"email":"l4zrvtrbpb.1r627sllk@fosscord.com","password":"1l.zzm1dunzzek.10sr7mp01ly.yyrjj1hsli"},{"email":"xih9rwk90i.rmdifv40g@fosscord.com","password":"15.db9k0pxci1v.hs6l033urm.5a1zv42fhl"},{"email":"55mq93jdq.2dhr1ps4f5@fosscord.com","password":"i.v5hpg2qez1u.xhs32cwes1h.n10pexmfff"},{"email":"5c0vb38rul.5su27w4pn8@fosscord.com","password":"12.y87q6jxq41m.qgiji2j0hm.gmy2wuavc"},{"email":"qjk2eoqeqq.ljq4dig10o@fosscord.com","password":"0.lpu8eio3hra12.mq8qcehpe1e.77p7zilh4"},{"email":"b45ltbf5d.o4oouuik1e@fosscord.com","password":"1u.wb7hn2b1x1k.jys5p3ri4j.9ew9jab3ll"},{"email":"1mw205tjri.gpi2h76eps@fosscord.com","password":"1g.kyh53pnamd13.5yufexmyv1h.r56pmhm7i"},{"email":"8y0psdjq2s.ifqyimhnkj@fosscord.com","password":"1d.fi03hlwk41u.b89w0vrd712.ljudzvdo6"},{"email":"ls73glp0q9.3rtqyb262@fosscord.com","password":"1.z70c4ef5hfi.fes9zmue2it.5cobkz3ah"},{"email":"ipe2um46bi.in93oau1l@fosscord.com","password":"5.a5he7keuru1n.l05ivx4n24.piohqdy51w"},{"email":"mt16ta8diq.krypy2t9cv@fosscord.com","password":"n.zk4goctn5p3.r1fhllqy1m1p.ni2q3y68w"},{"email":"qehwflm0ja.x5uvmxgfle@fosscord.com","password":"1e.r2sj0uimq1f.nmtozr8qd1s.xgvz4d62b"},{"email":"0ppn1iwd6.ivrqbvn17i@fosscord.com","password":"1n.fr6x1pbzjl.c8xwipgo6c.m1me2h2g58"},{"email":"xiiq47ofev.u9z0gndxs6@fosscord.com","password":"1t.7tfe0181ij.jbznx5eebs.ytm50kp5qf"},{"email":"kqhk3lt2mo.o4y7u23zbu@fosscord.com","password":"1b.bkoqmxjcf1l.c5q9oneuz1u.00x93z7l4"},{"email":"ri64c5o5zn.o429slph64@fosscord.com","password":"1r.mre2hu1gpu.401xyxa6eu.j98cetaplg"},{"email":"j5jpukoktw.q5bseyjfu@fosscord.com","password":"h.k1ar11fpx1m.n50t8tz4k4.9oj17rtdjw"},{"email":"cg8gyuhu16.jezv2bo8n@fosscord.com","password":"1c.vyfo117pd1b.hxlc7e9zve.j6ej7ho2rk"},{"email":"7ngysyss7w.yjy0whd5fh@fosscord.com","password":"12.pl4jjp66wi1r.xx7s13gsgy.v2slv2vyx"},{"email":"7uhylwdaiq.w557htx0x@fosscord.com","password":"1j.icm6w8m4mh.4qyoql77m8.ar8kliax0s"},{"email":"y6yn1ckm1e.7xxizerecm@fosscord.com","password":"1e.om7n18zisn1w.usblhxf4p1m.r9ke41xox"},{"email":"uwdsktqhuw.4vmh5gmg7d@fosscord.com","password":"6.cdte4bk24b16.cf1sbtxlx1o.n62w4weh9"},{"email":"8v1nt755y.w0y1jgfcgm@fosscord.com","password":"f.ozxpvznxj41o.bs5s5dhua1l.ffayy0gsy"},{"email":"rmy9b61cij.qir0bjorcm@fosscord.com","password":"1h.bxjxpx0u6f13.e97yh8g761c.j8zog74iql"},{"email":"93ir0yiyi9.1f7bfzt3fb@fosscord.com","password":"18.vky28kwlw14.w1wsoyu6c15.yhxbr725xe"},{"email":"g0kqw9plr.v2zcovhyg6@fosscord.com","password":"1r.3txq1jt4zl1d.ha0ejtekjh.xhjl9e6vqg"},{"email":"xmk2q5zxa.v1ka9gm3a8@fosscord.com","password":"1l.ryvykh3ihm16.rxea04ifq0.h14sz83yisv"},{"email":"mqt2bmltj9.53o16bc6xn@fosscord.com","password":"i.vt66ajtme1f.lllyzaprk16.yb0yh0o1z"},{"email":"4kvjyddsv.7u7lmex2df@fosscord.com","password":"1i.axaegtd0qz.2yvfr5n261g.8s8fprsd8"},{"email":"yigntcopcc.8bchnlmclm@fosscord.com","password":"n.b5yn5xried1d.siep9e4fb1t.h6s6erw5t"},{"email":"meubr1b03t.t97015wih6@fosscord.com","password":"5.wu3izi2gyqi.iurx5qpp7l.znq1htzuel"},{"email":"xz3gta0hi.1x5o83xyee@fosscord.com","password":"14.uafjiryde3.oin9k24w3510.vkjmjleb4i"},{"email":"9jkrkk9r6o.6ossrgj919@fosscord.com","password":"v.u9531wtw2o11.151eg145bf.bk57nd0s6u"},{"email":"kf9fdmnacv.67shfcubvn@fosscord.com","password":"1i.7f1olv2hkt.v2cso7zxlfw.8ylhl33g1"},{"email":"k8zuiett0r.0w299k0t9j@fosscord.com","password":"t.1mrpwsil15.999lbrfvz1h.7od0kjlxo"},{"email":"8m9rt3vgg.vkpf6apx9@fosscord.com","password":"1n.2ohz11tk412.5ezp8ujcwn8.rvqqrozh9s"},{"email":"rfavhpnhc.6xwy7o3ulm@fosscord.com","password":"11.ikd54271zj.vq3brjark7.h1ryvz7ap8"},{"email":"6zmju5azrd.4bes4a3cq@fosscord.com","password":"5.litb6taajto.ownyp3uhjkh.f543o47uc9"},{"email":"ml5pst7t3g.kbvn8b1vg@fosscord.com","password":"1q.co2aumj6fw.fa18frro5e.vnpotfg209"},{"email":"kaa1r6srjs.wjriguic5e@fosscord.com","password":"y.y635jqxai9.s4hcd1weni5.51i7z3c26r"},{"email":"n09uhfkuc5.9aqau9qyk@fosscord.com","password":"1f.wtjqoqzdwg6.mfvvtcwtx91t.8ujt3pwx4"},{"email":"6y5y3px9oa.4183pg5aq6@fosscord.com","password":"11.8a00uh75g1i.d462wzpqv1t.dnd8sdvr"},{"email":"aqdzadem03.f8uv1m4zv4@fosscord.com","password":"4.4ndx89thn53.afcjfzjqe51o.ivaemdp5hf"},{"email":"oqv3944yav.31ccatif3r@fosscord.com","password":"1w.9cstqu9o21f.p40uqca3vl19.iqnn79lqde"},{"email":"akzyzmigv.9c6w5aj4o@fosscord.com","password":"m.m382wa8nznr.szvso4c03ke.ttw2jhnwh8"},{"email":"13dqfm57jo.e05e711ggt@fosscord.com","password":"1b.t1b51jt7lf.rhi4j32rw91u.0foqthilf"},{"email":"3derfs5v66.s2kbedbm3o@fosscord.com","password":"t.e153si8xso1m.9rv9il857fd.e3i0di3ope"},{"email":"92k9vmws7.dt9mvv6ijh@fosscord.com","password":"1r.r8oy0su9c1e.irtwz9gdna.3fddwt8k4n"},{"email":"w1huzvblr.q9qp44japt@fosscord.com","password":"1v.dfdr92srfs.3x2wd25frh15.z73xb3vol"},{"email":"vne3an2fif.32eq9woyl@fosscord.com","password":"7.lurd6n689ek.sf3gedrf711.5xclyfsn3"},{"email":"298zj4dvxf.5sfh7f2e2m@fosscord.com","password":"n.1rbv0z54wr1n.nt2041ujks.0gwbe80zyl"},{"email":"ywp1ssr2zh.gl97epixxu@fosscord.com","password":"1w.gfpvze8vq1p.is7b2795819.4hilzah3"},{"email":"kqzujy4m5j.ocydwl4yyh@fosscord.com","password":"1c.sqxzxuareez.fgczf2qh3en.yi5vo23phn"},{"email":"ck8n5p7d6d.2vu4cdm6iw@fosscord.com","password":"1o.g3lq6grnm1t.otf44zgiw1c.jfdgqubfjl"},{"email":"s3vqe9bzj.muec34461t@fosscord.com","password":"1u.i4u3eidof19.tl8hf5fpdv.mvbij0fdgc"},{"email":"7hedrsktw.oqe4hym4us@fosscord.com","password":"1j.orlptqc2h.hs6661zehh1r.ngepsoldvf"},{"email":"44tm2rsu6j.oxrw5ib1np@fosscord.com","password":"1o.n71dxtllrf9.htwjv6fsi81l.5w9pyr8eee"},{"email":"o28saa2e4t.m49530ir45@fosscord.com","password":"16.z31xrcp6li12.uaklzxvskl.nqyq23zqb"},{"email":"aaz3kkwx2q.u42rdyacy6@fosscord.com","password":"1k.aohk44bxqkq.6lec7k6yfa14.geiq4ok3b"},{"email":"ntw1oc87mh.js3q1iqxrh@fosscord.com","password":"15.li45vduoy15.h90fv4ytl1t.3v78qdvcq"},{"email":"cpkgoh313.lkdhhl039a@fosscord.com","password":"3.fdw00uv0dn1v.qz6frlgeh0.3g0c7xnn9le"},{"email":"wznnajnyww.3f5s5cf0lt@fosscord.com","password":"4.3d2ro1uvag2.9yum8m4gd5t.yd1zriwovn"},{"email":"odwdxlk49g.m113aywba@fosscord.com","password":"y.24hnap1ckh.n0q1dtobf717.0tzaopasse"},{"email":"0xt66uuwbs.24qfa4w82q@fosscord.com","password":"e.3cfcd0usw57.oydvjpl5wm1b.sxnf38ihh"},{"email":"4pxgasro0t.xifcrlp26f@fosscord.com","password":"1d.oxpqgh8jbgb.6epjawtwga1u.o5d33jm"},{"email":"l202g9q8xo.t4ck4xu44v@fosscord.com","password":"d.gyul2yhu7h1g.163rzn4kqik.e5qlstdwp"},{"email":"8mwzma33ko.b9on13ypjl@fosscord.com","password":"b.0sdy90whqr1o.rruwt57r8l14.hjejwclmr"},{"email":"h8dm19fu77.hzpnw8famh@fosscord.com","password":"s.q49kg1uq8gc.046rudurb1o.2lqegjfds"},{"email":"exkp3ve6z7.mdydbk9jy@fosscord.com","password":"16.bq8o0d13sd8.tri7wtdjpro.2ebtbyqgtt"},{"email":"n8fe02yphv.huwi91ywha@fosscord.com","password":"1d.8qp5wkq541k.ulwk4bzjsm19.q3qbxorto"},{"email":"lsslgvrdyb.u86qng3p7o@fosscord.com","password":"11.9q1m8gwavd.9z3kflcg5k1e.lrux8aqm8"},{"email":"0jur86ya2p.gb26btuz7@fosscord.com","password":"n.fflp1f1yksg.10rh6etc61.yld8y7u9hi"},{"email":"raseda2c45.vl9resp89r@fosscord.com","password":"b.6gd8az3ljg.es1yjenqskk.i4i8m466p"},{"email":"jmam7ha069.b96jzg1bkl@fosscord.com","password":"1f.2z41vc92bo.84f3d3j3gra.5yev9enzv"},{"email":"pp2rki7hjd.a037bg6u6@fosscord.com","password":"3.nktq53a97c19.khsapwl0wd.ej16kksime"},{"email":"c35l8m3ikr.e7vx8nmbil@fosscord.com","password":"2.oryjofui8mu.7jes36sirs1u.oclq1geaf"},{"email":"ufhsl7tn5u.j4ey0abswv@fosscord.com","password":"14.uctn73o6h1n.t75arwloxgf.nvgdr4l41o"},{"email":"8ru4fr2ed.kf8ffg9ko8@fosscord.com","password":"n.hqxwr2ypwd1l.vu23byfp3c.nzgszptoqk"},{"email":"6gmjeij67o.ep5256bmf@fosscord.com","password":"1i.237gs5pk5j1w.yvuhvp9ho15.l4qibsw5i"},{"email":"4wrhgqel0w.e0sz7l0zki@fosscord.com","password":"w.g09qtor0p1g.a5uzjl6u3g17.v3z6rhb9h"},{"email":"3860ixs8g.6pha1slnur@fosscord.com","password":"m.o7o62cqw3g.wkkaak7zz8.h82m4nenbf"},{"email":"wnnpg8stto.zwsxqfp38i@fosscord.com","password":"c.k2b6jn1b3r14.ojpvlbxil1r.rpkncuyqp"},{"email":"t04ss33dlw.98dpq7j8rg@fosscord.com","password":"5.7zgfmumai7.iphztcsjfw1h.sq2kp3j9j"},{"email":"hy53et7kw6.vsku4tebj9@fosscord.com","password":"3.ayjddj0roe1m.ngz1qajzlgu.xue35w1d1d"},{"email":"252ueajele.j4euv8la1d@fosscord.com","password":"h.tw1utyw7mh9.ydii1rkvp4.8xafwfxrqd"},{"email":"ye2mi1d86.uqa7ig7qxb@fosscord.com","password":"j.pn3eoar1ft1e.k8febwch91o.fzau5lnbx"},{"email":"4cq5y22mm8.q33hk612wu@fosscord.com","password":"1l.7tx03ihc9e1a.3i2l76ur5.28yffumat8"},{"email":"d9op87vvj7.vbu23p4mnq@fosscord.com","password":"10.z7pgyokesip.0i0axexmwpa.0p5xrlag9k"},{"email":"tnhgsqizxh.14ulf4jinl@fosscord.com","password":"j.8p0jucy5xk10.creosnkf2o.vzznt05x"},{"email":"8h2h3w3ex5.8ogl7f027n@fosscord.com","password":"1b.08wkhdm03g3.8hdklh1zj41t.fq57w9raf"},{"email":"ommn4ocwtn.1fkdjbz2v8@fosscord.com","password":"1e.i8k15b9uk1p.70n34lxbzf.4inv63cwt8"},{"email":"fnxg92zeqn.ljg5uumt3e@fosscord.com","password":"w.ltho2dsgveu.d1ome2w0x8j.7wr2hq1wk8"},{"email":"lzi8aurosp.mck9i974of@fosscord.com","password":"u.zezf4qdz2p0.l2g634tak98.ql0n1tg6sq"},{"email":"fdhv4fccm5.o9x209i94g@fosscord.com","password":"5.2o84u6v43619.4c0c71a9gk7.n9cmjegefv"},{"email":"tuedrm1ajt.bxjgzsyj4s@fosscord.com","password":"1m.ng2h807gvu.rhd056e6bbb.lkvewwp2tg"},{"email":"488bryb32a.x928qzsf8g@fosscord.com","password":"y.n2c3x3irffa.fz9xwiimno8.nnpvm280oc"},{"email":"n928oorjaa.kj35rf9p35@fosscord.com","password":"1l.flvmvopcj16.pmx6n9hi7hi.v9odjzq3at"},{"email":"emzd8qz0f8.b972dvhf0m@fosscord.com","password":"3.7umgbd5apm18.0n6yi8ol9g.m4607npuc"},{"email":"g7jzdulwv5.0a2wzws2ua@fosscord.com","password":"10.1u1sac19wkf.lvi2qwfhtq16.8wbdddpms"},{"email":"giuivahumo.7iqapfnbfr@fosscord.com","password":"q.pzck5qtbype.llhl9ypv6b1e.3dz8gsv0pg"},{"email":"0t84mm2pj9.kycgvqkuag@fosscord.com","password":"1t.kpvjmvipo14.kwv0np3ordv.ustw31ifu"},{"email":"vx5t6yurg7.pocn2c069m@fosscord.com","password":"f.gdwgrk0wia1u.7m1ozam0b0.d5y62kwyih5"},{"email":"p7arvq1hha.7wryrvhvl@fosscord.com","password":"1v.eb62r3rx71h.d3fhbfdxa1l.4gzcu184s"},{"email":"adp64dkhdd.q2nc2qvy3@fosscord.com","password":"q.96rt5rc517h.3f0foodom4.h1wee4z428"},{"email":"pfhrq2kv8.92dq9bxy8a@fosscord.com","password":"1g.nfaha2xx7hi.vtng22emxs1l.fpbra2wo6h"},{"email":"jjnysdssoc.eqr6v2pqeo@fosscord.com","password":"1.112arb9m3cb.w3yfq6ekz1d.keb15ptd5"},{"email":"m5rab6dhrc.p1tnxv9feg@fosscord.com","password":"1.3guc8m7j0uj4.xphgg3121714.7ii7ah6g7f"},{"email":"zgq1iount.blsiqtyvc6@fosscord.com","password":"16.dzt6188au1w.ilwc3p3ds17.7j7lcsqur"},{"email":"ix7nx1ce4a.3wj4gs8b7p@fosscord.com","password":"13.p2v1p2nwa1t.2yarcqsmzk.ay7w9u0p1r"},{"email":"5jh7wm63ug.feyytgy11g@fosscord.com","password":"10.otpp2mz0smb.uv94hcp26c8.a3nlz16n14"},{"email":"9cd7yy1ps4.jet2fn1fdb@fosscord.com","password":"9.bjtfocm7zk12.sushyeb1yg.lhtmj6a70t"},{"email":"20u20f6dlk.l8n5tvh2re@fosscord.com","password":"19.qfrr25rarj.4tzf063a9n4.3i5s3vm30b"},{"email":"b1hnmmwcb.q21mrflg1h@fosscord.com","password":"3.ysh10ultyjz.nz8azt84216.lxn1kgvly"},{"email":"j7nhj8s2d.aqaeidbi8m@fosscord.com","password":"g.nlnw7ejuqbz.41exhwj2wiv.1yr0njmd"}] \ No newline at end of file diff --git a/api/scripts/stresstest/config.json.example b/api/scripts/stresstest/config.json.example deleted file mode 100644 index 73f52f05..00000000 --- a/api/scripts/stresstest/config.json.example +++ /dev/null @@ -1,5 +0,0 @@ -{ - "url": "", - "text-channel": "", - "invite": "" -} diff --git a/api/scripts/stresstest/index.js b/api/scripts/stresstest/index.js deleted file mode 100644 index 740a9011..00000000 --- a/api/scripts/stresstest/index.js +++ /dev/null @@ -1,38 +0,0 @@ -const register = require("./src/register"); -const login = require("./src/login/index"); -const config = require("./config.json"); -const figlet = require("figlet"); -const sendMessage = require("./src/message/send"); -const fs = require("fs"); -figlet("Fosscord Stress Test :)", function (err, data) { - if (err) { - console.log("Something went wrong..."); - console.dir(err); - return; - } - console.log("\x1b[32m", data); -}); -setInterval(() => { - generate(); -}, 1000 * 5); -setInterval(() => { - getUsers(); -}, 60 * 1000); -async function generate() { - let accounts = await JSON.parse(fs.readFileSync("accounts.json")); - console.log(accounts); - let account = await register(); - accounts.push(account); - fs.writeFileSync("accounts.json", JSON.stringify(accounts)); - console.log(accounts.length); - let y = await login(account); - sendMessage(y); -} -async function getUsers() { - let accounts = await JSON.parse(fs.readFileSync("accounts.json")); - accounts.forEach(async (x) => { - let y = await login(x); - console.log(y); - sendMessage(y); - }); -} diff --git a/api/scripts/stresstest/package-lock.json b/api/scripts/stresstest/package-lock.json deleted file mode 100644 index 81c9b817..00000000 --- a/api/scripts/stresstest/package-lock.json +++ /dev/null @@ -1,856 +0,0 @@ -{ - "name": "stresstest", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "stresstest", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "figlet": "^1.5.2", - "node-fetch": "^2.6.6", - "request": "^2.88.2" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/figlet": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz", - "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "figlet": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz", - "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } -} diff --git a/api/scripts/stresstest/package.json b/api/scripts/stresstest/package.json deleted file mode 100644 index 8d94d05b..00000000 --- a/api/scripts/stresstest/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "stresstest", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1", - "start": "node ." - }, - "author": "", - "license": "ISC", - "dependencies": { - "figlet": "^1.5.2", - "node-fetch": "^2.6.6", - "request": "^2.88.2" - } -} diff --git a/api/scripts/stresstest/src/login/index.js b/api/scripts/stresstest/src/login/index.js deleted file mode 100644 index ab6c9719..00000000 --- a/api/scripts/stresstest/src/login/index.js +++ /dev/null @@ -1,20 +0,0 @@ -const fetch = require("node-fetch"); -const fs = require("fs"); -let config = require("./../../config.json"); -module.exports = login; -async function login(account) { - let body = { - fingerprint: "805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", - login: account.email, - password: account.password - }; - let x = await fetch(config.url + "/auth/login", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify(body) - }); - console.log(x); - x = await x.json(); - console.log(x); - return x; -} diff --git a/api/scripts/stresstest/src/message/send.js b/api/scripts/stresstest/src/message/send.js deleted file mode 100644 index d1b86914..00000000 --- a/api/scripts/stresstest/src/message/send.js +++ /dev/null @@ -1,23 +0,0 @@ -const fetch = require("node-fetch"); -const fs = require("fs"); -let config = require("./../../config.json"); -module.exports = sendMessage; -async function sendMessage(account) { - let body = { - fingerprint: "805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", - content: "Test", - tts: false - }; - let x = await fetch(config.url + "/channels/" + config["text-channel"] + "/messages", { - method: "POST", - headers: { - "Content-Type": "application/json", - Authorization: account.token - }, - body: JSON.stringify(body) - }); - console.log(x); - x = await x.json(); - console.log(x); - return x; -} diff --git a/api/scripts/stresstest/src/register/index.js b/api/scripts/stresstest/src/register/index.js deleted file mode 100644 index 578b9022..00000000 --- a/api/scripts/stresstest/src/register/index.js +++ /dev/null @@ -1,34 +0,0 @@ -const fetch = require("node-fetch"); -const fs = require("fs"); -let config = require("./../../config.json"); -module.exports = generate; -async function generate() { - let mail = (Math.random() + 10).toString(36).substring(2); - mail = mail + "." + (Math.random() + 10).toString(36).substring(2) + "@stresstest.com"; - let password = - (Math.random() * 69).toString(36).substring(-7) + - (Math.random() * 69).toString(36).substring(-7) + - (Math.random() * 69).toString(36).substring(-8); - console.log(mail); - console.log(password); - let body = { - fingerprint: "805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", - email: mail, - username: "Fosscord Stress Test", - password: password, - invite: config.invite, - consent: true, - date_of_birth: "2000-04-04", - gift_code_sku_id: null, - captcha_key: null - }; - let x = await fetch(config.url + "/auth/register", { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify(body) - }); - console.log(x); - x = await x.json(); - console.log(x); - return { email: mail, password: password }; -} diff --git a/api/src/Server.ts b/api/src/Server.ts deleted file mode 100644 index 136f9814..00000000 --- a/api/src/Server.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { Server, ServerOptions } from "lambert-server"; -import { Authentication, CORS } from "./middlewares/"; -import { Config, getOrInitialiseDatabase, initEvent, registerRoutes } from "@fosscord/util"; -import { ErrorHandler } from "./middlewares/ErrorHandler"; -import { BodyParser } from "./middlewares/BodyParser"; -import { Router, Request, Response, NextFunction } from "express"; -import path from "path"; -import { initRateLimits } from "./middlewares/RateLimit"; -import TestClient from "./middlewares/TestClient"; -import { initTranslation } from "./middlewares/Translation"; -import morgan from "morgan"; -import { initInstance } from "./util/handlers/Instance"; -import { red } from "picocolors" - -export interface FosscordServerOptions extends ServerOptions {} - -declare global { - namespace Express { - interface Request { - // @ts-ignore - server: FosscordServer; - } - } -} - -export class FosscordServer extends Server { - public declare options: FosscordServerOptions; - - constructor(opts?: Partial) { - // @ts-ignore - super({ ...opts, errorHandler: false, jsonBody: false }); - } - - async start() { - await getOrInitialiseDatabase(); - await Config.init(); - await initEvent(); - await initInstance(); - - let logRequests = process.env["LOG_REQUESTS"] != undefined; - if (logRequests) { - this.app.use( - morgan("combined", { - skip: (req, res) => { - let skip = !(process.env["LOG_REQUESTS"]?.includes(res.statusCode.toString()) ?? false); - if (process.env["LOG_REQUESTS"]?.charAt(0) == "-") skip = !skip; - return skip; - } - }) - ); - } - - this.app.use(CORS); - this.app.use(BodyParser({ inflate: true, limit: "10mb" })); - - const app = this.app; - const api = Router(); // @ts-ignore - this.app = api; - - api.use(Authentication); - await initRateLimits(api); - await initTranslation(api); - - this.routes = await registerRoutes(this, path.join(__dirname, "routes", "/")); - - api.use("*", (error: any, req: Request, res: Response, next: NextFunction) => { - if (error) return next(error); - res.status(404).json({ - message: "404 endpoint not found", - code: 0 - }); - next(); - }); - - this.app = app; - - //app.use("/__development", ) - //app.use("/__internals", ) - app.use("/api/v6", api); - app.use("/api/v7", api); - app.use("/api/v8", api); - app.use("/api/v9", api); - app.use("/api", api); // allow unversioned requests - - this.app.use(ErrorHandler); - TestClient(this.app); - - if (logRequests) console.log(red(`Warning: Request logging is enabled! This will spam your console!\nTo disable this, unset the 'LOG_REQUESTS' environment variable!`)); - - return super.start(); - } -} \ No newline at end of file diff --git a/api/src/global.d.ts b/api/src/global.d.ts deleted file mode 100644 index 7751af8f..00000000 --- a/api/src/global.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -declare global { - namespace Express { - interface Request { - user_id: any; - token: any; - } - } -} diff --git a/api/src/index.ts b/api/src/index.ts deleted file mode 100644 index adc7649c..00000000 --- a/api/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./Server"; -export * from "./middlewares/"; -export * from "./util/"; diff --git a/api/src/middlewares/Authentication.ts b/api/src/middlewares/Authentication.ts deleted file mode 100644 index 2d9ccf57..00000000 --- a/api/src/middlewares/Authentication.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { NextFunction, Request, Response } from "express"; -import { HTTPError } from "@fosscord/util"; -import { checkToken, Config, Rights } from "@fosscord/util"; - -export const NO_AUTHORIZATION_ROUTES = [ - // Authentication routes - "/auth/login", - "/auth/register", - "/auth/location-metadata", - "/auth/mfa/totp", - // Routes with a seperate auth system - "/webhooks/", - // Public information endpoints - "/ping", - "/gateway", - "/experiments", - "/updates", - "/downloads/", - "/scheduled-maintenances/upcoming.json", - // Public kubernetes integration - "/-/readyz", - "/-/healthz", - // Client analytics - "/science", - "/track", - // Public policy pages - "/policies/instance", - // Asset delivery - /\/guilds\/\d+\/widget\.(json|png)/ -]; - -export const API_PREFIX = /^\/api(\/v\d+)?/; -export const API_PREFIX_TRAILING_SLASH = /^\/api(\/v\d+)?\//; - -declare global { - namespace Express { - interface Request { - user_id: string; - user_bot: boolean; - token: string; - rights: Rights; - } - } -} - -export async function Authentication(req: Request, res: Response, next: NextFunction) { - if (req.method === "OPTIONS") return res.sendStatus(204); - const url = req.url.replace(API_PREFIX, ""); - if (url.startsWith("/invites") && req.method === "GET") return next(); - if ( - NO_AUTHORIZATION_ROUTES.some((x) => { - if (typeof x === "string") return url.startsWith(x); - return x.test(url); - }) - ) - return next(); - if (!req.headers.authorization) return next(new HTTPError("Missing Authorization Header", 401)); - - try { - const { jwtSecret } = Config.get().security; - - const { decoded, user }: any = await checkToken(req.headers.authorization, jwtSecret); - - req.token = decoded; - req.user_id = decoded.id; - req.user_bot = user.bot; - req.rights = new Rights(Number(user.rights)); - return next(); - } catch (error: any) { - return next(new HTTPError(error?.toString(), 400)); - } -} diff --git a/api/src/middlewares/BodyParser.ts b/api/src/middlewares/BodyParser.ts deleted file mode 100644 index 35db3c6f..00000000 --- a/api/src/middlewares/BodyParser.ts +++ /dev/null @@ -1,19 +0,0 @@ -import bodyParser, { OptionsJson } from "body-parser"; -import { NextFunction, Request, Response } from "express"; -import { HTTPError } from "@fosscord/util"; - -export function BodyParser(opts?: OptionsJson) { - const jsonParser = bodyParser.json(opts); - - return (req: Request, res: Response, next: NextFunction) => { - if (!req.headers["content-type"]) req.headers["content-type"] = "application/json"; - - jsonParser(req, res, (err) => { - if (err) { - // TODO: different errors for body parser (request size limit, wrong body type, invalid body, ...) - return next(new HTTPError("Invalid Body", 400)); - } - next(); - }); - }; -} diff --git a/api/src/middlewares/CORS.ts b/api/src/middlewares/CORS.ts deleted file mode 100644 index 20260cf9..00000000 --- a/api/src/middlewares/CORS.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { NextFunction, Request, Response } from "express"; - -// TODO: config settings - -export function CORS(req: Request, res: Response, next: NextFunction) { - res.set("Access-Control-Allow-Origin", "*"); - // TODO: use better CSP - res.set( - "Content-security-policy", - "default-src * data: blob: filesystem: about: ws: wss: 'unsafe-inline' 'unsafe-eval'; script-src * data: blob: 'unsafe-inline' 'unsafe-eval'; connect-src * data: blob: 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src * data: blob: ; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';" - ); - res.set("Access-Control-Allow-Headers", req.header("Access-Control-Request-Headers") || "*"); - res.set("Access-Control-Allow-Methods", req.header("Access-Control-Request-Methods") || "*"); - - next(); -} diff --git a/api/src/middlewares/ErrorHandler.ts b/api/src/middlewares/ErrorHandler.ts deleted file mode 100644 index 8a046e06..00000000 --- a/api/src/middlewares/ErrorHandler.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { NextFunction, Request, Response } from "express"; -import { HTTPError } from "@fosscord/util"; -import { ApiError, FieldError } from "@fosscord/util"; -const EntityNotFoundErrorRegex = /"(\w+)"/; - -export function ErrorHandler(error: Error, req: Request, res: Response, next: NextFunction) { - if (!error) return next(); - - try { - let code = 400; - let httpcode = code; - let message = error?.toString(); - let errors = undefined; - - if (error instanceof HTTPError && error.code) code = httpcode = error.code; - else if (error instanceof ApiError) { - code = error.code; - message = error.message; - httpcode = error.httpStatus; - } else if (error.name === "EntityNotFoundError") { - message = `${error.message.match(EntityNotFoundErrorRegex)?.[1] || "Item"} could not be found`; - code = httpcode = 404; - } else if (error instanceof FieldError) { - code = Number(error.code); - message = error.message; - errors = error.errors; - } else { - console.error(`[Error] ${code} ${req.url}\n`, errors || error, "\nbody:", req.body); - - if (req.server?.options?.production) { - // don't expose internal errors to the user, instead human errors should be thrown as HTTPError - message = "Internal Server Error"; - } - code = httpcode = 500; - } - - if (httpcode > 511) httpcode = 400; - - res.status(httpcode).json({ code: code, message, errors }); - } catch (error) { - console.error(`[Internal Server Error] 500`, error); - return res.status(500).json({ code: 500, message: "Internal Server Error" }); - } -} diff --git a/api/src/middlewares/RateLimit.ts b/api/src/middlewares/RateLimit.ts deleted file mode 100644 index 47180b62..00000000 --- a/api/src/middlewares/RateLimit.ts +++ /dev/null @@ -1,215 +0,0 @@ -import { Config, getRights, listenEvent, Rights } from "@fosscord/util"; -import { NextFunction, Request, Response, Router } from "express"; -import { getIpAdress } from "@fosscord/api"; -import { API_PREFIX_TRAILING_SLASH } from "./Authentication"; - -// Docs: https://discord.com/developers/docs/topics/rate-limits - -// TODO: use better caching (e.g. redis) as else it creates to much pressure on the database - -/* -? bucket limit? Max actions/sec per bucket? -(ANSWER: a small fosscord instance might not need a complex rate limiting system) - -TODO: delay database requests to include multiple queries -TODO: different for methods (GET/POST) - -> IP addresses that make too many invalid HTTP requests are automatically and temporarily restricted from accessing the Discord API. Currently, this limit is 10,000 per 10 minutes. An invalid request is one that results in 401, 403, or 429 statuses. - -> All bots can make up to 50 requests per second to our API. This is independent of any individual rate limit on a route. If your bot gets big enough, based on its functionality, it may be impossible to stay below 50 requests per second during normal operations. - -*/ - -type RateLimit = { - id: "global" | "error" | string; - executor_id: string; - hits: number; - blocked: boolean; - expires_at: Date; -}; - -let Cache = new Map(); -const EventRateLimit = "RATELIMIT"; - -export default function rateLimit(opts: { - bucket?: string; - window: number; - count: number; - bot?: number; - webhook?: number; - oauth?: number; - GET?: number; - MODIFY?: number; - error?: boolean; - success?: boolean; - onlyIp?: boolean; -}): any { - return async (req: Request, res: Response, next: NextFunction): Promise => { - // exempt user? if so, immediately short circuit - if (req.user_id) { - const rights = await getRights(req.user_id); - if (rights.has("BYPASS_RATE_LIMITS")) return; - } - - const bucket_id = opts.bucket || req.originalUrl.replace(API_PREFIX_TRAILING_SLASH, ""); - let executor_id = getIpAdress(req); - if (!opts.onlyIp && req.user_id) executor_id = req.user_id; - - let max_hits = opts.count; - if (opts.bot && req.user_bot) max_hits = opts.bot; - if (opts.GET && ["GET", "OPTIONS", "HEAD"].includes(req.method)) max_hits = opts.GET; - else if (opts.MODIFY && ["POST", "DELETE", "PATCH", "PUT"].includes(req.method)) max_hits = opts.MODIFY; - - let offender = Cache.get(executor_id + bucket_id); - - if (offender) { - let reset = offender.expires_at.getTime(); - let resetAfterMs = reset - Date.now(); - let resetAfterSec = Math.ceil(resetAfterMs / 1000); - - if (resetAfterMs <= 0) { - offender.hits = 0; - offender.expires_at = new Date(Date.now() + opts.window * 1000); - offender.blocked = false; - - Cache.delete(executor_id + bucket_id); - } - - if (offender.blocked) { - const global = bucket_id === "global"; - // each block violation pushes the expiry one full window further - reset += opts.window * 1000; - offender.expires_at = new Date(offender.expires_at.getTime() + opts.window * 1000); - resetAfterMs = reset - Date.now(); - resetAfterSec = Math.ceil(resetAfterMs / 1000); - - console.log("blocked bucket: " + bucket_id, { resetAfterMs }); - return ( - res - .status(429) - .set("X-RateLimit-Limit", `${max_hits}`) - .set("X-RateLimit-Remaining", "0") - .set("X-RateLimit-Reset", `${reset}`) - .set("X-RateLimit-Reset-After", `${resetAfterSec}`) - .set("X-RateLimit-Global", `${global}`) - .set("Retry-After", `${Math.ceil(resetAfterSec)}`) - .set("X-RateLimit-Bucket", `${bucket_id}`) - // TODO: error rate limit message translation - .send({ message: "You are being rate limited.", retry_after: resetAfterSec, global }) - ); - } - } - - next(); - const hitRouteOpts = { bucket_id, executor_id, max_hits, window: opts.window }; - - if (opts.error || opts.success) { - res.once("finish", () => { - // check if error and increment error rate limit - if (res.statusCode >= 400 && opts.error) { - return hitRoute(hitRouteOpts); - } else if (res.statusCode >= 200 && res.statusCode < 300 && opts.success) { - return hitRoute(hitRouteOpts); - } - }); - } else { - return hitRoute(hitRouteOpts); - } - }; -} - -export async function initRateLimits(app: Router) { - const { routes, global, ip, error, disabled } = Config.get().limits.rate; - if (disabled) return; - await listenEvent(EventRateLimit, (event) => { - Cache.set(event.channel_id as string, event.data); - event.acknowledge?.(); - }); - // await RateLimit.delete({ expires_at: LessThan(new Date().toISOString()) }); // cleans up if not already deleted, morethan -> older date - // const limits = await RateLimit.find({ blocked: true }); - // limits.forEach((limit) => { - // Cache.set(limit.executor_id, limit); - // }); - - setInterval(() => { - Cache.forEach((x, key) => { - if (new Date() > x.expires_at) { - Cache.delete(key); - // RateLimit.delete({ executor_id: key }); - } - }); - }, 1000 * 60); - - app.use( - rateLimit({ - bucket: "global", - onlyIp: true, - ...ip - }) - ); - app.use(rateLimit({ bucket: "global", ...global })); - app.use( - rateLimit({ - bucket: "error", - error: true, - onlyIp: true, - ...error - }) - ); - app.use("/guilds/:id", rateLimit(routes.guild)); - app.use("/webhooks/:id", rateLimit(routes.webhook)); - app.use("/channels/:id", rateLimit(routes.channel)); - app.use("/auth/login", rateLimit(routes.auth.login)); - app.use("/auth/register", rateLimit({ onlyIp: true, success: true, ...routes.auth.register })); -} - -async function hitRoute(opts: { executor_id: string; bucket_id: string; max_hits: number; window: number; }) { - const id = opts.executor_id + opts.bucket_id; - let limit = Cache.get(id); - if (!limit) { - limit = { - id: opts.bucket_id, - executor_id: opts.executor_id, - expires_at: new Date(Date.now() + opts.window * 1000), - hits: 0, - blocked: false - }; - Cache.set(id, limit); - } - - limit.hits++; - if (limit.hits >= opts.max_hits) { - limit.blocked = true; - } - - /* - let ratelimit = await RateLimit.findOne({ where: { id: opts.bucket_id, executor_id: opts.executor_id } }); - if (!ratelimit) { - ratelimit = new RateLimit({ - id: opts.bucket_id, - executor_id: opts.executor_id, - expires_at: new Date(Date.now() + opts.window * 1000), - hits: 0, - blocked: false - }); - } - - ratelimit.hits++; - - const updateBlock = !ratelimit.blocked && ratelimit.hits >= opts.max_hits; - - if (updateBlock) { - ratelimit.blocked = true; - Cache.set(opts.executor_id + opts.bucket_id, ratelimit); - await emitEvent({ - channel_id: EventRateLimit, - event: EventRateLimit, - data: ratelimit - }); - } else { - Cache.delete(opts.executor_id); - } - - await ratelimit.save(); - */ -} diff --git a/api/src/middlewares/TestClient.ts b/api/src/middlewares/TestClient.ts deleted file mode 100644 index 4fe631cb..00000000 --- a/api/src/middlewares/TestClient.ts +++ /dev/null @@ -1,152 +0,0 @@ -import express, { Request, Response, Application } from "express"; -import fs from "fs"; -import path from "path"; -import fetch, { Response as FetchResponse, Headers } from "node-fetch"; -import ProxyAgent from 'proxy-agent'; -import { Config } from "@fosscord/util"; -import { AssetCacheItem } from "../util/entities/AssetCacheItem" -import { green } from "picocolors"; - -export default function TestClient(app: Application) { - const agent = new ProxyAgent(); - - //build client page - let html = fs.readFileSync(path.join(__dirname, "..", "..", "client_test", "index.html"), { encoding: "utf8" }); - html = applyEnv(html); - html = applyInlinePlugins(html); - html = applyPlugins(html); - html = applyPreloadPlugins(html); - - //load asset cache - let newAssetCache: Map = new Map(); - let assetCacheDir = path.join(__dirname, "..", "..", "assets", "cache"); - if(process.env.ASSET_CACHE_DIR) - assetCacheDir = process.env.ASSET_CACHE_DIR - - console.log(`[TestClient] ${green(`Using asset cache path: ${assetCacheDir}`)}`) - if(!fs.existsSync(assetCacheDir)) { - fs.mkdirSync(assetCacheDir); - } - if(fs.existsSync(path.join(assetCacheDir, "index.json"))) { - let rawdata = fs.readFileSync(path.join(assetCacheDir, "index.json")); - newAssetCache = new Map(Object.entries(JSON.parse(rawdata.toString()))); - } - - app.use("/assets", express.static(path.join(__dirname, "..", "..", "assets"))); - app.get("/assets/:file", async (req: Request, res: Response) => { - delete req.headers.host; - let response: FetchResponse; - let buffer: Buffer; - let assetCacheItem: AssetCacheItem = new AssetCacheItem(req.params.file); - if(newAssetCache.has(req.params.file)){ - assetCacheItem = newAssetCache.get(req.params.file)!; - assetCacheItem.Headers.forEach((value: any, name: any) => { - res.set(name, value); - }); - } - else { - console.log(`[TestClient] Downloading file not yet cached! Asset file: ${req.params.file}`); - response = await fetch(`https://discord.com/assets/${req.params.file}`, { - agent, - // @ts-ignore - headers: { - ...req.headers - } - }); - - //set cache info - assetCacheItem.Headers = Object.fromEntries(stripHeaders(response.headers)); - assetCacheItem.FilePath = path.join(assetCacheDir, req.params.file); - assetCacheItem.Key = req.params.file; - //add to cache and save - newAssetCache.set(req.params.file, assetCacheItem); - fs.writeFileSync(path.join(assetCacheDir, "index.json"), JSON.stringify(Object.fromEntries(newAssetCache), null, 4)); - //download file - fs.writeFileSync(assetCacheItem.FilePath, await response.buffer()); - } - - assetCacheItem.Headers.forEach((value: string, name: string) => { - res.set(name, value); - }); - return res.send(fs.readFileSync(assetCacheItem.FilePath)); - }); - app.get("/developers*", (_req: Request, res: Response) => { - const { useTestClient } = Config.get().client; - res.set("Cache-Control", "public, max-age=" + 60 * 60 * 24); - res.set("content-type", "text/html"); - - if(!useTestClient) return res.send("Test client is disabled on this instance. Use a stand-alone client to connect this instance.") - - res.send(fs.readFileSync(path.join(__dirname, "..", "..", "client_test", "developers.html"), { encoding: "utf8" })); - }); - app.get("*", (req: Request, res: Response) => { - const { useTestClient } = Config.get().client; - res.set("Cache-Control", "public, max-age=" + 60 * 60 * 24); - res.set("content-type", "text/html"); - - if(req.url.startsWith("/api") || req.url.startsWith("/__development")) return; - - if(!useTestClient) return res.send("Test client is disabled on this instance. Use a stand-alone client to connect this instance.") - if (req.url.startsWith("/invite")) return res.send(html.replace("9b2b7f0632acd0c5e781", "9f24f709a3de09b67c49")); - - res.send(html); - }); - - -} - -function applyEnv(html: string): string { - const CDN_ENDPOINT = (Config.get().cdn.endpointClient || Config.get()?.cdn.endpointPublic || process.env.CDN || "").replace( - /(https?)?(:\/\/?)/g, - "" - ); - const GATEWAY_ENDPOINT = Config.get().gateway.endpointClient || Config.get()?.gateway.endpointPublic || process.env.GATEWAY || ""; - - if (CDN_ENDPOINT) { - html = html.replace(/CDN_HOST: .+/, `CDN_HOST: \`${CDN_ENDPOINT}\`,`); - } - if (GATEWAY_ENDPOINT) { - html = html.replace(/GATEWAY_ENDPOINT: .+/, `GATEWAY_ENDPOINT: \`${GATEWAY_ENDPOINT}\`,`); - } - return html; -} - -function applyPlugins(html: string): string { - // plugins - let files = fs.readdirSync(path.join(__dirname, "..", "..", "assets", "plugins")); - let plugins = ""; - files.forEach(x =>{if(x.endsWith(".js")) plugins += `\n`; }); - return html.replaceAll("", plugins); -} - -function applyInlinePlugins(html: string): string{ - // inline plugins - let files = fs.readdirSync(path.join(__dirname, "..", "..", "assets", "inline-plugins")); - let plugins = ""; - files.forEach(x =>{if(x.endsWith(".js")) plugins += `\n\n`; }); - return html.replaceAll("", plugins); -} - -function applyPreloadPlugins(html: string): string{ - //preload plugins - let files = fs.readdirSync(path.join(__dirname, "..", "..", "assets", "preload-plugins")); - let plugins = ""; - files.forEach(x =>{if(x.endsWith(".js")) plugins += `\n`; }); - return html.replaceAll("", plugins); -} - -function stripHeaders(headers: Headers): Headers { - [ - "content-length", - "content-security-policy", - "strict-transport-security", - "set-cookie", - "transfer-encoding", - "expect-ct", - "access-control-allow-origin", - "content-encoding" - ].forEach(headerName => { - headers.delete(headerName); - }); - return headers; -} diff --git a/api/src/middlewares/Translation.ts b/api/src/middlewares/Translation.ts deleted file mode 100644 index baabf221..00000000 --- a/api/src/middlewares/Translation.ts +++ /dev/null @@ -1,28 +0,0 @@ -import fs from "fs"; -import path from "path"; -import i18next from "i18next"; -import i18nextMiddleware from "i18next-http-middleware"; -import i18nextBackend from "i18next-node-fs-backend"; -import { Router } from "express"; - -export async function initTranslation(router: Router) { - const languages = fs.readdirSync(path.join(__dirname, "..", "..", "locales")); - const namespaces = fs.readdirSync(path.join(__dirname, "..", "..", "locales", "en")); - const ns = namespaces.filter((x) => x.endsWith(".json")).map((x) => x.slice(0, x.length - 5)); - - await i18next - .use(i18nextBackend) - .use(i18nextMiddleware.LanguageDetector) - .init({ - preload: languages, - // debug: true, - fallbackLng: "en", - ns, - backend: { - loadPath: __dirname + "/../../locales/{{lng}}/{{ns}}.json" - }, - load: "all" - }); - - router.use(i18nextMiddleware.handle(i18next, {})); -} diff --git a/api/src/middlewares/index.ts b/api/src/middlewares/index.ts deleted file mode 100644 index f0c50dbe..00000000 --- a/api/src/middlewares/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./Authentication"; -export * from "./BodyParser"; -export * from "./CORS"; -export * from "./ErrorHandler"; -export * from "./RateLimit"; diff --git a/api/src/routes/-/healthz.ts b/api/src/routes/-/healthz.ts deleted file mode 100644 index f7bcfebf..00000000 --- a/api/src/routes/-/healthz.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; -import { getConnection } from "typeorm"; - -const router = Router(); - -router.get("/", route({}), (req: Request, res: Response) => { - try { - // test that the database is alive & responding - getConnection(); - return res.sendStatus(200); - } catch (e) { - res.sendStatus(503); - } -}); - -export default router; diff --git a/api/src/routes/-/readyz.ts b/api/src/routes/-/readyz.ts deleted file mode 100644 index f7bcfebf..00000000 --- a/api/src/routes/-/readyz.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; -import { getConnection } from "typeorm"; - -const router = Router(); - -router.get("/", route({}), (req: Request, res: Response) => { - try { - // test that the database is alive & responding - getConnection(); - return res.sendStatus(200); - } catch (e) { - res.sendStatus(503); - } -}); - -export default router; diff --git a/api/src/routes/applications/#id/entitlements.ts b/api/src/routes/applications/#id/entitlements.ts deleted file mode 100644 index cfcfe40f..00000000 --- a/api/src/routes/applications/#id/entitlements.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.get("/", route({}), (req: Request, res: Response) => { - // TODO: - //const { exclude_consumed } = req.query; - res.status(200).send([]); -}); - -export default router; diff --git a/api/src/routes/applications/detectable.ts b/api/src/routes/applications/detectable.ts deleted file mode 100644 index 28ce42da..00000000 --- a/api/src/routes/applications/detectable.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - //TODO - res.send([]).status(200); -}); - -export default router; diff --git a/api/src/routes/applications/index.ts b/api/src/routes/applications/index.ts deleted file mode 100644 index 033dcc51..00000000 --- a/api/src/routes/applications/index.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; -import { Application, OrmUtils, Team, trimSpecial, User } from "@fosscord/util"; - -const router: Router = Router(); - -export interface ApplicationCreateSchema { - name: string; - team_id?: string | number; -} - -router.get("/", route({}), async (req: Request, res: Response) => { - //TODO - let results = await Application.find({where: {owner: {id: req.user_id}}, relations: ["owner", "bot"] }); - res.json(results).status(200); -}); - -router.post("/", route({}), async (req: Request, res: Response) => { - const body = req.body as ApplicationCreateSchema; - const user = await User.findOne({where: {id: req.user_id}}) - if(!user) res.status(420); - let app = OrmUtils.mergeDeep(new Application(), { - name: trimSpecial(body.name), - description: "", - bot_public: true, - owner: user, - verify_key: "IMPLEMENTME", - flags: 0 - }); - await app.save(); - res.json(app).status(200); -}); - -export default router; \ No newline at end of file diff --git a/api/src/routes/auth/location-metadata.ts b/api/src/routes/auth/location-metadata.ts deleted file mode 100644 index f4c2bd16..00000000 --- a/api/src/routes/auth/location-metadata.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -import { getIpAdress, IPAnalysis } from "@fosscord/api"; -const router = Router(); - -router.get("/",route({}), async (req: Request, res: Response) => { - //TODO - //Note: It's most likely related to legal. At the moment Discord hasn't finished this too - const country_code = (await IPAnalysis(getIpAdress(req))).country_code; - res.json({ consent_required: false, country_code: country_code, promotional_email_opt_in: { required: true, pre_checked: false}}); -}); - -export default router; diff --git a/api/src/routes/auth/login.ts b/api/src/routes/auth/login.ts deleted file mode 100644 index 9fc5924d..00000000 --- a/api/src/routes/auth/login.ts +++ /dev/null @@ -1,87 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; -import bcrypt from "bcrypt"; -import { Config, User, generateToken, adjustEmail, FieldErrors, LoginSchema } from "@fosscord/util"; -import crypto from "crypto"; - -const router: Router = Router(); -export default router; - -router.post("/", route({ body: "LoginSchema" }), async (req: Request, res: Response) => { - const { login, password, captcha_key, undelete } = req.body as LoginSchema; - const email = adjustEmail(login); - - const config = Config.get(); - - if (config.login.requireCaptcha && config.security.captcha.enabled) { - if (!captcha_key) { - const { sitekey, service } = config.security.captcha; - return res.status(400).json({ - captcha_key: ["captcha-required"], - captcha_sitekey: sitekey, - captcha_service: service - }); - } - - // TODO: check captcha - } - - const user = await User.findOneOrFail({ - where: [{ phone: login }, { email: login }], - select: ["data", "id", "disabled", "deleted", "settings", "totp_secret", "mfa_enabled"] - }).catch((e) => { - throw FieldErrors({ login: { message: req.t("auth:login.INVALID_LOGIN"), code: "INVALID_LOGIN" } }); - }); - - if (undelete) { - // undelete refers to un'disable' here - if (user.disabled) await User.update({ id: user.id }, { disabled: false }); - if (user.deleted) await User.update({ id: user.id }, { deleted: false }); - } else { - if (user.deleted) return res.status(400).json({ message: "This account is scheduled for deletion.", code: 20011 }); - if (user.disabled) return res.status(400).json({ message: req.t("auth:login.ACCOUNT_DISABLED"), code: 20013 }); - } - - // the salt is saved in the password refer to bcrypt docs - const same_password = await bcrypt.compare(password, user.data.hash || ""); - if (!same_password) { - throw FieldErrors({ password: { message: req.t("auth:login.INVALID_PASSWORD"), code: "INVALID_PASSWORD" } }); - } - - if (user.mfa_enabled) { - // TODO: This is not a discord.com ticket. I'm not sure what it is but I'm lazy - const ticket = crypto.randomBytes(40).toString("hex"); - - await User.update({ id: user.id }, { totp_last_ticket: ticket }); - - return res.json({ - ticket: ticket, - mfa: true, - sms: false, // TODO - token: null, - }) - } - - const token = await generateToken(user.id); - - // Notice this will have a different token structure, than discord - // Discord header is just the user id as string, which is not possible with npm-jsonwebtoken package - // https://user-images.githubusercontent.com/6506416/81051916-dd8c9900-8ec2-11ea-8794-daf12d6f31f0.png - - res.json({ token, settings: user.settings }); -}); - -/** - * POST /auth/login - * @argument { login: "email@gmail.com", password: "cleartextpassword", undelete: false, captcha_key: null, login_source: null, gift_code_sku_id: null, } - - * MFA required: - * @returns {"token": null, "mfa": true, "sms": true, "ticket": "SOME TICKET JWT TOKEN"} - - * Captcha required: - * @returns {"captcha_key": ["captcha-required"], "captcha_sitekey": null, "captcha_service": "recaptcha"} - - * Sucess: - * @returns {"token": "USERTOKEN", "settings": {"locale": "en", "theme": "dark"}} - - */ diff --git a/api/src/routes/auth/mfa/totp.ts b/api/src/routes/auth/mfa/totp.ts deleted file mode 100644 index 421dbafa..00000000 --- a/api/src/routes/auth/mfa/totp.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -import { BackupCode, FieldErrors, generateToken, TotpSchema, User } from "@fosscord/util"; -import { verifyToken } from "node-2fa"; -import { HTTPError } from "lambert-server"; -const router = Router(); - -router.post("/", route({ body: "TotpSchema" }), async (req: Request, res: Response) => { - const { code, ticket, gift_code_sku_id, login_source } = req.body as TotpSchema; - - const user = await User.findOneOrFail({ - where: { - totp_last_ticket: ticket, - }, - select: [ - "id", - "totp_secret", - "settings", - ], - }); - - const backup = await BackupCode.findOne({ where: { code: code, expired: false, consumed: false, user: { id: user.id } } }); - - if (!backup) { - const ret = verifyToken(user.totp_secret!, code); - if (!ret || ret.delta != 0) - throw new HTTPError(req.t("auth:login.INVALID_TOTP_CODE"), 60008); - } - else { - backup.consumed = true; - await backup.save(); - } - - await User.update({ id: user.id }, { totp_last_ticket: "" }); - - return res.json({ - token: await generateToken(user.id), - user_settings: user.settings, - }); -}); - -export default router; diff --git a/api/src/routes/auth/register.ts b/api/src/routes/auth/register.ts deleted file mode 100644 index 09366a12..00000000 --- a/api/src/routes/auth/register.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { Request, Response, Router } from "express"; -import { Config, generateToken, Invite, FieldErrors, User, adjustEmail, trimSpecial, RegisterSchema } from "@fosscord/util"; -import { route, getIpAdress, IPAnalysis, isProxy } from "@fosscord/api"; -import bcrypt from "bcrypt"; -import { HTTPError } from "@fosscord/util"; - -const router: Router = Router(); - -router.post("/", route({ body: "RegisterSchema" }), async (req: Request, res: Response) => { - const body = req.body as RegisterSchema; - const { register, security } = Config.get(); - const ip = getIpAdress(req); - - // email will be slightly modified version of the user supplied email -> e.g. protection against GMail Trick - let email = adjustEmail(body.email); - - // check if registration is allowed - if (!register.allowNewRegistration) { - throw FieldErrors({ - email: { code: "REGISTRATION_DISABLED", message: req.t("auth:register.REGISTRATION_DISABLED") } - }); - } - - // check if the user agreed to the Terms of Service - if (!body.consent) { - throw FieldErrors({ - consent: { code: "CONSENT_REQUIRED", message: req.t("auth:register.CONSENT_REQUIRED") } - }); - } - - if (register.disabled) { - throw FieldErrors({ - email: { - code: "DISABLED", - message: "registration is disabled on this instance" - } - }); - } - - if (register.requireCaptcha && security.captcha.enabled) { - if (!body.captcha_key) { - const { sitekey, service } = security.captcha; - return res?.status(400).json({ - captcha_key: ["captcha-required"], - captcha_sitekey: sitekey, - captcha_service: service - }); - } - - // TODO: check captcha - } - - if (!register.allowMultipleAccounts) { - // TODO: check if fingerprint was eligible generated - const exists = await User.findOne({ where: { fingerprints: body.fingerprint }, select: ["id"] }); - - if (exists) { - throw FieldErrors({ - email: { - code: "EMAIL_ALREADY_REGISTERED", - message: req.t("auth:register.EMAIL_ALREADY_REGISTERED") - } - }); - } - } - - if (register.blockProxies) { - if (isProxy(await IPAnalysis(ip))) { - console.log(`proxy ${ip} blocked from registration`); - throw new HTTPError("Your IP is blocked from registration"); - } - } - - // TODO: gift_code_sku_id? - // TODO: check password strength - - if (email) { - // replace all dots and chars after +, if its a gmail.com email - if (!email) { - throw FieldErrors({ email: { code: "INVALID_EMAIL", message: req?.t("auth:register.INVALID_EMAIL") } }); - } - - // check if there is already an account with this email - const exists = await User.findOne({ where: { email: email } }); - - if (exists) { - throw FieldErrors({ - email: { - code: "EMAIL_ALREADY_REGISTERED", - message: req.t("auth:register.EMAIL_ALREADY_REGISTERED") - } - }); - } - } else if (register.email.required) { - throw FieldErrors({ - email: { code: "BASE_TYPE_REQUIRED", message: req.t("common:field.BASE_TYPE_REQUIRED") } - }); - } - - if (register.dateOfBirth.required && !body.date_of_birth) { - throw FieldErrors({ - date_of_birth: { code: "BASE_TYPE_REQUIRED", message: req.t("common:field.BASE_TYPE_REQUIRED") } - }); - } else if (register.dateOfBirth.required && register.dateOfBirth.minimum) { - const minimum = new Date(); - minimum.setFullYear(minimum.getFullYear() - register.dateOfBirth.minimum); - body.date_of_birth = new Date(body.date_of_birth as Date); - - // higher is younger - if (body.date_of_birth > minimum) { - throw FieldErrors({ - date_of_birth: { - code: "DATE_OF_BIRTH_UNDERAGE", - message: req.t("auth:register.DATE_OF_BIRTH_UNDERAGE", { years: register.dateOfBirth.minimum }) - } - }); - } - } - - if (body.password) { - // the salt is saved in the password refer to bcrypt docs - body.password = await bcrypt.hash(body.password, 12); - } else if (register.password.required) { - throw FieldErrors({ - password: { code: "BASE_TYPE_REQUIRED", message: req.t("common:field.BASE_TYPE_REQUIRED") } - }); - } - - if (!body.invite && (register.requireInvite || (register.guestsRequireInvite && !register.email))) { - // require invite to register -> e.g. for organizations to send invites to their employees - throw FieldErrors({ - email: { code: "INVITE_ONLY", message: req.t("auth:register.INVITE_ONLY") } - }); - } - - const user = await User.register({ ...body, req }); - - if (body.invite) { - // await to fail if the invite doesn't exist (necessary for requireInvite to work properly) (username only signups are possible) - await Invite.joinGuild(user.id, body.invite); - } - - return res.json({ token: await generateToken(user.id) }); -}); - -export default router; - -/** - * POST /auth/register - * @argument { "fingerprint":"805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", "email":"qo8etzvaf@gmail.com", "username":"qp39gr98", "password":"wtp9gep9gw", "invite":null, "consent":true, "date_of_birth":"2000-04-04", "gift_code_sku_id":null, "captcha_key":null} - * - * Field Error - * @returns { "code": 50035, "errors": { "consent": { "_errors": [{ "code": "CONSENT_REQUIRED", "message": "You must agree to Discord's Terms of Service and Privacy Policy." }]}}, "message": "Invalid Form Body"} - * - * Success 200: - * @returns {token: "OMITTED"} - */ diff --git a/api/src/routes/channels/#channel_id/followers.ts b/api/src/routes/channels/#channel_id/followers.ts deleted file mode 100644 index 641af4f8..00000000 --- a/api/src/routes/channels/#channel_id/followers.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { Router, Response, Request } from "express"; -const router: Router = Router(); -// TODO: - -export default router; - -/** - * - * @param {"webhook_channel_id":"754001514330062952"} - * - * Creates a WebHook in the channel and returns the id of it - * - * @returns {"channel_id": "816382962056560690", "webhook_id": "834910735095037962"} - */ diff --git a/api/src/routes/channels/#channel_id/index.ts b/api/src/routes/channels/#channel_id/index.ts deleted file mode 100644 index bb8b868b..00000000 --- a/api/src/routes/channels/#channel_id/index.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { - Channel, - ChannelDeleteEvent, - ChannelPermissionOverwriteType, - ChannelType, - ChannelUpdateEvent, - emitEvent, - Recipient, - handleFile, - ChannelModifySchema -} from "@fosscord/util"; -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; -import { OrmUtils } from "@fosscord/util"; - -const router: Router = Router(); -// TODO: delete channel -// TODO: Get channel - -router.get("/", route({ permission: "VIEW_CHANNEL" }), async (req: Request, res: Response) => { - const { channel_id } = req.params; - - const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - - return res.send(channel); -}); - -router.delete("/", route({ permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { - const { channel_id } = req.params; - - const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients"] }); - - if (channel.type === ChannelType.DM) { - const recipient = await Recipient.findOneOrFail({ where: { channel_id, user_id: req.user_id } }); - recipient.closed = true; - await Promise.all([ - recipient.save(), - emitEvent({ event: "CHANNEL_DELETE", data: channel, user_id: req.user_id } as ChannelDeleteEvent) - ]); - } else if (channel.type === ChannelType.GROUP_DM) { - await Channel.removeRecipientFromChannel(channel, req.user_id); - } else { - await Promise.all([ - Channel.delete({ id: channel_id }), - emitEvent({ event: "CHANNEL_DELETE", data: channel, channel_id } as ChannelDeleteEvent) - ]); - } - - res.send(channel); -}); - -router.patch("/", route({ body: "ChannelModifySchema", permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { - let payload = req.body as ChannelModifySchema; - const { channel_id } = req.params; - if (payload.icon) payload.icon = await handleFile(`/channel-icons/${channel_id}`, payload.icon); - - let channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - channel = OrmUtils.mergeDeep(channel, payload); - - await Promise.all([ - channel.save(), - emitEvent({ - event: "CHANNEL_UPDATE", - data: channel, - channel_id - } as ChannelUpdateEvent) - ]); - - res.send(channel); -}); - -export default router; diff --git a/api/src/routes/channels/#channel_id/invites.ts b/api/src/routes/channels/#channel_id/invites.ts deleted file mode 100644 index b5c65c0d..00000000 --- a/api/src/routes/channels/#channel_id/invites.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Router, Request, Response } from "express"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { random } from "@fosscord/api"; -import { Channel, Invite, InviteCreateEvent, emitEvent, User, Guild, PublicInviteRelation } from "@fosscord/util"; -import { isTextChannel } from "./messages"; -import { OrmUtils } from "@fosscord/util"; - -const router: Router = Router(); - -router.post("/", route({ body: "InviteCreateSchema", permission: "CREATE_INSTANT_INVITE", right: "CREATE_INVITES" }), - async (req: Request, res: Response) => { - const { user_id } = req; - const { channel_id } = req.params; - const channel = await Channel.findOneOrFail({ where: { id: channel_id }, select: ["id", "name", "type", "guild_id"] }); - isTextChannel(channel.type); - - if (!channel.guild_id) { - throw new HTTPError("This channel doesn't exist", 404); - } - const { guild_id } = channel; - - const expires_at = new Date(req.body.max_age * 1000 + Date.now()); - - const invite = await OrmUtils.mergeDeep(new Invite(),{ - temporary: req.body.temporary || true, - max_uses: req.body.max_uses, - max_age: req.body.max_age, - expires_at, - guild_id, - channel_id, - inviter_id: user_id - }).save(); - //TODO: check this, removed toJSON call - const data = JSON.parse(JSON.stringify(invite)); - data.inviter = await User.getPublicUser(req.user_id); - data.guild = await Guild.findOne({ where: { id: guild_id } }); - data.channel = channel; - - await emitEvent({ event: "INVITE_CREATE", data, guild_id } as InviteCreateEvent); - res.status(201).send(data); -}); - -router.get("/", route({ permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { - const { channel_id } = req.params; - const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - - if (!channel.guild_id) { - throw new HTTPError("This channel doesn't exist", 404); - } - const { guild_id } = channel; - - const invites = await Invite.find({ where: { guild_id }, relations: PublicInviteRelation }); - - res.status(200).send(invites); -}); - -export default router; diff --git a/api/src/routes/channels/#channel_id/messages/#message_id/ack.ts b/api/src/routes/channels/#channel_id/messages/#message_id/ack.ts deleted file mode 100644 index 041f4d5e..00000000 --- a/api/src/routes/channels/#channel_id/messages/#message_id/ack.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { emitEvent, getPermission, MessageAckEvent, ReadState, Snowflake } from "@fosscord/util"; -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; -import { OrmUtils } from "@fosscord/util"; - -const router = Router(); - -router.post("/", route({ body: "MessageAcknowledgeSchema" }), async (req: Request, res: Response) => { - const { channel_id, message_id } = req.params; - - const permission = await getPermission(req.user_id, undefined, channel_id); - permission.hasThrow("VIEW_CHANNEL"); - - let read_state = await ReadState.findOne({ where: { user_id: req.user_id, channel_id } }); - if (!read_state) read_state = OrmUtils.mergeDeep(new ReadState(), { user_id: req.user_id, channel_id }) as ReadState; - read_state.last_message_id = message_id; - - await read_state.save(); - - await emitEvent({ - event: "MESSAGE_ACK", - user_id: req.user_id, - data: { - channel_id, - message_id, - version: 3763 - } - } as MessageAckEvent); - - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts b/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts deleted file mode 100644 index b2cb6763..00000000 --- a/api/src/routes/channels/#channel_id/messages/#message_id/crosspost.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.post("/", route({ permission: "MANAGE_MESSAGES" }), (req: Request, res: Response) => { - // TODO: - res.json({ - id: "", - type: 0, - content: "", - channel_id: "", - author: { id: "", username: "", avatar: "", discriminator: "", public_flags: 64 }, - attachments: [], - embeds: [], - mentions: [], - mention_roles: [], - pinned: false, - mention_everyone: false, - tts: false, - timestamp: "", - edited_timestamp: null, - flags: 1, - components: [] - }).status(200); -}); - -export default router; diff --git a/api/src/routes/channels/#channel_id/messages/#message_id/index.ts b/api/src/routes/channels/#channel_id/messages/#message_id/index.ts deleted file mode 100644 index d7e27062..00000000 --- a/api/src/routes/channels/#channel_id/messages/#message_id/index.ts +++ /dev/null @@ -1,199 +0,0 @@ -import { - Attachment, - Channel, - Embed, - DiscordApiErrors, - emitEvent, - FosscordApiErrors, - getPermission, - getRights, - Message, - MessageCreateEvent, - MessageDeleteEvent, - MessageUpdateEvent, - Snowflake, - uploadFile, - MessageCreateSchema -} from "@fosscord/util"; -import { Router, Response, Request } from "express"; -import multer from "multer"; -import { route } from "@fosscord/api"; -import { handleMessage, postHandleMessage } from "@fosscord/api"; -import { HTTPError } from "@fosscord/util"; - -const router = Router(); -// TODO: message content/embed string length limit - -const messageUpload = multer({ - limits: { - fileSize: 1024 * 1024 * 100, - fields: 10, - files: 1 - }, - storage: multer.memoryStorage() -}); // max upload 50 mb - -router.patch("/", route({ body: "MessageCreateSchema", permission: "SEND_MESSAGES", right: "SEND_MESSAGES" }), async (req: Request, res: Response) => { - const { message_id, channel_id } = req.params; - let body = req.body as MessageCreateSchema; - - const message = await Message.findOneOrFail({ where: { id: message_id, channel_id }, relations: ["attachments"] }); - - const permissions = await getPermission(req.user_id, undefined, channel_id); - - const rights = await getRights(req.user_id); - - if ((req.user_id !== message.author_id)) { - if (!rights.has("MANAGE_MESSAGES")) { - permissions.hasThrow("MANAGE_MESSAGES"); - body = { flags: body.flags }; -// guild admins can only suppress embeds of other messages, no such restriction imposed to instance-wide admins - } - } else rights.hasThrow("SELF_EDIT_MESSAGES"); - - const new_message = await handleMessage({ - ...message, - // TODO: should message_reference be overridable? - // @ts-ignore - message_reference: message.message_reference, - ...body, - author_id: message.author_id, - channel_id, - id: message_id, - edited_timestamp: new Date() - }); - - await Promise.all([ - new_message!.save(), - await emitEvent({ - event: "MESSAGE_UPDATE", - channel_id, - data: { ...new_message, nonce: undefined } - } as MessageUpdateEvent) - ]); - - postHandleMessage(message); - - return res.json(message); -}); - - -// Backfill message with specific timestamp -router.put( - "/", - messageUpload.single("file"), - async (req, res, next) => { - if (req.body.payload_json) { - req.body = JSON.parse(req.body.payload_json); - } - - next(); - }, - route({ body: "MessageCreateSchema", permission: "SEND_MESSAGES", right: "SEND_BACKDATED_EVENTS" }), - async (req: Request, res: Response) => { - const { channel_id, message_id } = req.params; - let body = req.body as MessageCreateSchema; - const attachments: Attachment[] = []; - - const rights = await getRights(req.user_id); - rights.hasThrow("SEND_MESSAGES"); - - // regex to check if message contains anything other than numerals ( also no decimals ) - if (!message_id.match(/^\+?\d+$/)) { - throw new HTTPError("Message IDs must be positive integers", 400); - } - - const snowflake = Snowflake.deconstruct(message_id) - if (Date.now() < snowflake.timestamp) { - // message is in the future - throw FosscordApiErrors.CANNOT_BACKFILL_TO_THE_FUTURE; - } - - const exists = await Message.findOne({ where: { id: message_id, channel_id: channel_id }}); - if (exists) { - throw FosscordApiErrors.CANNOT_REPLACE_BY_BACKFILL; - } - - if (req.file) { - try { - const file: any = await uploadFile(`/attachments/${req.params.channel_id}`, req.file); - attachments.push({ ...file, proxy_url: file.url }); - } catch (error) { - return res.status(400).json(error); - } - } - const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients", "recipients.user"] }); - - const embeds = body.embeds || []; - if (body.embed) embeds.push(body.embed); - let message = await handleMessage({ - ...body, - type: 0, - pinned: false, - author_id: req.user_id, - id: message_id, - embeds, - channel_id, - attachments, - edited_timestamp: undefined, - timestamp: new Date(snowflake.timestamp), - }); - - //Fix for the client bug - delete message.member - - await Promise.all([ - message.save(), - emitEvent({ event: "MESSAGE_CREATE", channel_id: channel_id, data: message } as MessageCreateEvent), - channel.save() - ]); - - postHandleMessage(message).catch((e) => { }); // no await as it shouldnt block the message send function and silently catch error - - return res.json(message); - } -); - -router.get("/", route({ permission: "VIEW_CHANNEL" }), async (req: Request, res: Response) => { - const { message_id, channel_id } = req.params; - - const message = await Message.findOneOrFail({ where: { id: message_id, channel_id }, relations: ["attachments"] }); - - const permissions = await getPermission(req.user_id, undefined, channel_id); - - if (message.author_id !== req.user_id) permissions.hasThrow("READ_MESSAGE_HISTORY"); - - return res.json(message); -}); - -router.delete("/", route({}), async (req: Request, res: Response) => { - const { message_id, channel_id } = req.params; - - const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - const message = await Message.findOneOrFail({ where: { id: message_id } }); - - const rights = await getRights(req.user_id); - - if ((message.author_id !== req.user_id)) { - if (!rights.has("MANAGE_MESSAGES")) { - const permission = await getPermission(req.user_id, channel.guild_id, channel_id); - permission.hasThrow("MANAGE_MESSAGES"); - } - } else rights.hasThrow("SELF_DELETE_MESSAGES"); - - await Message.delete({ id: message_id }); - - await emitEvent({ - event: "MESSAGE_DELETE", - channel_id, - data: { - id: message_id, - channel_id, - guild_id: channel.guild_id - } - } as MessageDeleteEvent); - - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/channels/#channel_id/messages/#message_id/reactions.ts b/api/src/routes/channels/#channel_id/messages/#message_id/reactions.ts deleted file mode 100644 index d0ab35bb..00000000 --- a/api/src/routes/channels/#channel_id/messages/#message_id/reactions.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { - Channel, - emitEvent, - Emoji, - getPermission, - Member, - Message, - MessageReactionAddEvent, - MessageReactionRemoveAllEvent, - MessageReactionRemoveEmojiEvent, - MessageReactionRemoveEvent, - PartialEmoji, - PublicUserProjection, - User -} from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { Router, Response, Request } from "express"; -import { HTTPError } from "@fosscord/util"; -import { In } from "typeorm"; - -const router = Router(); -// TODO: check if emoji is really an unicode emoji or a prperly encoded external emoji - -function getEmoji(emoji: string): PartialEmoji { - emoji = decodeURIComponent(emoji); - const parts = emoji.includes(":") && emoji.split(":"); - if (parts) - return { - name: parts[0], - id: parts[1] - }; - - return { - id: undefined, - name: emoji - }; -} - -router.delete("/", route({ permission: "MANAGE_MESSAGES" }), async (req: Request, res: Response) => { - const { message_id, channel_id } = req.params; - - const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - - await Message.update({ id: message_id, channel_id }, { reactions: [] }); - - await emitEvent({ - event: "MESSAGE_REACTION_REMOVE_ALL", - channel_id, - data: { - channel_id, - message_id, - guild_id: channel.guild_id - } - } as MessageReactionRemoveAllEvent); - - res.sendStatus(204); -}); - -router.delete("/:emoji", route({ permission: "MANAGE_MESSAGES" }), async (req: Request, res: Response) => { - const { message_id, channel_id } = req.params; - const emoji = getEmoji(req.params.emoji); - - const message = await Message.findOneOrFail({ where: { id: message_id, channel_id } }); - - const already_added = message.reactions.find((x) => (x.emoji.id === emoji.id && emoji.id) || x.emoji.name === emoji.name); - if (!already_added) throw new HTTPError("Reaction not found", 404); - message.reactions.remove(already_added); - - await Promise.all([ - message.save(), - emitEvent({ - event: "MESSAGE_REACTION_REMOVE_EMOJI", - channel_id, - data: { - channel_id, - message_id, - guild_id: message.guild_id, - emoji - } - } as MessageReactionRemoveEmojiEvent) - ]); - - res.sendStatus(204); -}); - -router.get("/:emoji", route({ permission: "VIEW_CHANNEL" }), async (req: Request, res: Response) => { - const { message_id, channel_id } = req.params; - const emoji = getEmoji(req.params.emoji); - - const message = await Message.findOneOrFail({ where: { id: message_id, channel_id } }); - const reaction = message.reactions.find((x) => (x.emoji.id === emoji.id && emoji.id) || x.emoji.name === emoji.name); - if (!reaction) throw new HTTPError("Reaction not found", 404); - - const users = await User.find({ - where: { - id: In(reaction.user_ids) - }, - select: PublicUserProjection - }); - - res.json(users); -}); - -router.put("/:emoji/:user_id", route({ permission: "READ_MESSAGE_HISTORY", right: "SELF_ADD_REACTIONS" }), async (req: Request, res: Response) => { - const { message_id, channel_id, user_id } = req.params; - if (user_id !== "@me") throw new HTTPError("Invalid user"); - const emoji = getEmoji(req.params.emoji); - - const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - const message = await Message.findOneOrFail({ where: { id: message_id, channel_id } }); - const already_added = message.reactions.find((x) => (x.emoji.id === emoji.id && emoji.id) || x.emoji.name === emoji.name); - - if (!already_added) req.permission!.hasThrow("ADD_REACTIONS"); - - if (emoji.id) { - const external_emoji = await Emoji.findOneOrFail({ where: { id: emoji.id } }); - if (!already_added) req.permission!.hasThrow("USE_EXTERNAL_EMOJIS"); - emoji.animated = external_emoji.animated; - emoji.name = external_emoji.name; - } - - if (already_added) { - if (already_added.user_ids.includes(req.user_id)) return res.sendStatus(204); // Do not throw an error ¯\_(ツ)_/¯ as discord also doesn't throw any error - already_added.count++; - } else message.reactions.push({ count: 1, emoji, user_ids: [req.user_id] }); - - await message.save(); - - const member = channel.guild_id && (await Member.findOneOrFail({ where: { id: req.user_id } })); - - await emitEvent({ - event: "MESSAGE_REACTION_ADD", - channel_id, - data: { - user_id: req.user_id, - channel_id, - message_id, - guild_id: channel.guild_id, - emoji, - member - } - } as MessageReactionAddEvent); - - res.sendStatus(204); -}); - -router.delete("/:emoji/:user_id", route({}), async (req: Request, res: Response) => { - let { message_id, channel_id, user_id } = req.params; - - const emoji = getEmoji(req.params.emoji); - - const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - const message = await Message.findOneOrFail({ where: { id: message_id, channel_id } }); - - if (user_id === "@me") user_id = req.user_id; - else { - const permissions = await getPermission(req.user_id, undefined, channel_id); - permissions.hasThrow("MANAGE_MESSAGES"); - } - - const already_added = message.reactions.find((x) => (x.emoji.id === emoji.id && emoji.id) || x.emoji.name === emoji.name); - if (!already_added || !already_added.user_ids.includes(user_id)) throw new HTTPError("Reaction not found", 404); - - already_added.count--; - - if (already_added.count <= 0) message.reactions.remove(already_added); - - await message.save(); - - await emitEvent({ - event: "MESSAGE_REACTION_REMOVE", - channel_id, - data: { - user_id: req.user_id, - channel_id, - message_id, - guild_id: channel.guild_id, - emoji - } - } as MessageReactionRemoveEvent); - - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/channels/#channel_id/messages/bulk-delete.ts b/api/src/routes/channels/#channel_id/messages/bulk-delete.ts deleted file mode 100644 index 24a33d2d..00000000 --- a/api/src/routes/channels/#channel_id/messages/bulk-delete.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { Router, Response, Request } from "express"; -import { Channel, Config, emitEvent, getPermission, getRights, MessageDeleteBulkEvent, Message } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { In } from "typeorm"; - -const router: Router = Router(); - -export default router; - -// should users be able to bulk delete messages or only bots? ANSWER: all users -// should this request fail, if you provide messages older than 14 days/invalid ids? ANSWER: NO -// https://discord.com/developers/docs/resources/channel#bulk-delete-messages -router.post("/", route({ body: "BulkDeleteSchema" }), async (req: Request, res: Response) => { - const { channel_id } = req.params; - const channel = await Channel.findOneByOrFail({ id: channel_id }); - if (!channel.guild_id) throw new HTTPError("Can't bulk delete dm channel messages", 400); - - const rights = await getRights(req.user_id); - rights.hasThrow("SELF_DELETE_MESSAGES"); - - let superuser = rights.has("MANAGE_MESSAGES"); - const permission = await getPermission(req.user_id, channel?.guild_id, channel_id); - - const { maxBulkDelete } = Config.get().limits.message; - - const { messages } = req.body as { messages: string[] }; - if (messages.length === 0) throw new HTTPError("You must specify messages to bulk delete"); - if (!superuser) { - permission.hasThrow("MANAGE_MESSAGES"); - if (messages.length > maxBulkDelete) throw new HTTPError(`You cannot delete more than ${maxBulkDelete} messages`); - } - - await Message.delete({ id: In(messages) }); - - await emitEvent({ - event: "MESSAGE_DELETE_BULK", - channel_id, - data: { ids: messages, channel_id, guild_id: channel.guild_id } - } as MessageDeleteBulkEvent); - - res.sendStatus(204); -}); diff --git a/api/src/routes/channels/#channel_id/messages/index.ts b/api/src/routes/channels/#channel_id/messages/index.ts deleted file mode 100644 index 9ab0d97d..00000000 --- a/api/src/routes/channels/#channel_id/messages/index.ts +++ /dev/null @@ -1,241 +0,0 @@ -import { Router, Response, Request } from "express"; -import { - Attachment, - Channel, - ChannelType, - Config, - DmChannelDTO, - emitEvent, - getPermission, - getRights, - Message, - MessageCreateEvent, - Snowflake, - uploadFile, - Member, - MessageCreateSchema -} from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { handleMessage, postHandleMessage, route } from "@fosscord/api"; -import multer from "multer"; -import { FindManyOptions, LessThan, MoreThan } from "typeorm"; -import { URL } from "url"; - -const router: Router = Router(); - -export default router; - -export function isTextChannel(type: ChannelType): boolean { - switch (type) { - case ChannelType.GUILD_STORE: - case ChannelType.GUILD_VOICE: - case ChannelType.GUILD_STAGE_VOICE: - case ChannelType.GUILD_CATEGORY: - case ChannelType.GUILD_FORUM: - case ChannelType.DIRECTORY: - throw new HTTPError("not a text channel", 400); - case ChannelType.DM: - case ChannelType.GROUP_DM: - case ChannelType.GUILD_NEWS: - case ChannelType.GUILD_NEWS_THREAD: - case ChannelType.GUILD_PUBLIC_THREAD: - case ChannelType.GUILD_PRIVATE_THREAD: - case ChannelType.GUILD_TEXT: - case ChannelType.ENCRYPTED: - case ChannelType.ENCRYPTED_THREAD: - return true; - default: - throw new HTTPError("unimplemented", 400); - } -} - -// https://discord.com/developers/docs/resources/channel#create-message -// get messages -router.get("/", async (req: Request, res: Response) => { - const channel_id = req.params.channel_id; - const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - if (!channel) throw new HTTPError("Channel not found", 404); - - isTextChannel(channel.type); - const around = req.query.around ? `${req.query.around}` : undefined; - const before = req.query.before ? `${req.query.before}` : undefined; - const after = req.query.after ? `${req.query.after}` : undefined; - const limit = Number(req.query.limit) || 50; - if (limit < 1 || limit > 100) throw new HTTPError("limit must be between 1 and 100", 422); - - let halfLimit = Math.floor(limit / 2); - - const permissions = await getPermission(req.user_id, channel.guild_id, channel_id); - permissions.hasThrow("VIEW_CHANNEL"); - if (!permissions.has("READ_MESSAGE_HISTORY")) return res.json([]); - - let query: FindManyOptions & { where: { id?: any; }; } = { - order: { id: "DESC" }, - take: limit, - where: { channel_id }, - relations: ["author", "webhook", "application", "mentions", "mention_roles", "mention_channels", "sticker_items", "attachments"] - }; - - - if (after) { - if (after > new Snowflake()) return res.status(422); - query.where.id = MoreThan(after); - } - else if (before) { - if (before < req.params.channel_id) return res.status(422); - query.where.id = LessThan(before); - } - else if (around) { - query.where.id = [ - MoreThan((BigInt(around) - BigInt(halfLimit)).toString()), - LessThan((BigInt(around) + BigInt(halfLimit)).toString()) - ]; - } - - const messages = await Message.find(query); - const endpoint = Config.get().cdn.endpointPublic; - - return res.json( - messages.map((x: any) => { - (x.reactions || []).forEach((x: any) => { - // @ts-ignore - if ((x.user_ids || []).includes(req.user_id)) x.me = true; - // @ts-ignore - delete x.user_ids; - }); - // @ts-ignore - if (!x.author) x.author = { id: "4", discriminator: "0000", username: "Fosscord Ghost", public_flags: "0", avatar: null }; - x.attachments?.forEach((y: any) => { - // dynamically set attachment proxy_url in case the endpoint changed - const uri = y.proxy_url.startsWith("http") ? y.proxy_url : `https://example.org${y.proxy_url}`; - y.proxy_url = `${endpoint == null ? "" : endpoint}${new URL(uri).pathname}`; - }); - - /** - Some clients ( discord.js ) only check if a property exists within the response, - which causes erorrs when, say, the `application` property is `null`. - **/ - - for (let curr in x) { - if (x[curr] === null) - delete x[curr]; - } - - return x; - }) - ); -}); - -// TODO: config max upload size -const messageUpload = multer({ - limits: { - fileSize: 1024 * 1024 * 100, - fields: 10, - // files: 1 - }, - storage: multer.memoryStorage() -}); // max upload 50 mb -/** - TODO: dynamically change limit of MessageCreateSchema with config - - https://discord.com/developers/docs/resources/channel#create-message - TODO: text channel slowdown (per-user and across-users) - Q: trim and replace message content and every embed field A: NO, given this cannot be implemented in E2EE channels - TODO: only dispatch notifications for mentions denoted in allowed_mentions -**/ -// Send message -router.post( - "/", - messageUpload.any(), - async (req, res, next) => { - if (req.body.payload_json) { - req.body = JSON.parse(req.body.payload_json); - } - - next(); - }, - route({ body: "MessageCreateSchema", permission: "SEND_MESSAGES", right: "SEND_MESSAGES" }), - async (req: Request, res: Response) => { - const { channel_id } = req.params; - let body = req.body as MessageCreateSchema; - const attachments: Attachment[] = []; - - const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients", "recipients.user"] }); - if (!channel.isWritable()) { - throw new HTTPError(`Cannot send messages to channel of type ${channel.type}`, 400) - } - - const files = req.files as Express.Multer.File[] ?? []; - for (let currFile of files) { - try { - const file: any = await uploadFile(`/attachments/${channel.id}`, currFile); - attachments.push({ ...file, proxy_url: file.url }); - } - catch (error) { - return res.status(400).json(error); - } - } - - const embeds = body.embeds || []; - if (body.embed) embeds.push(body.embed); - let message = await handleMessage({ - ...body, - type: 0, - pinned: false, - author_id: req.user_id, - embeds, - channel_id, - attachments, - edited_timestamp: undefined, - timestamp: new Date() - }); - - channel.last_message_id = message.id; - - if (channel.isDm()) { - const channel_dto = await DmChannelDTO.from(channel); - - // Only one recipients should be closed here, since in group DMs the recipient is deleted not closed - Promise.all( - channel.recipients!.map((recipient) => { - if (recipient.closed) { - recipient.closed = false; - return Promise.all([ - recipient.save(), - emitEvent({ - event: "CHANNEL_CREATE", - data: channel_dto.excludedRecipients([recipient.user_id]), - user_id: recipient.user_id - }) - ]); - } - }) - ); - } - - //Defining member fields - var member = await Member.findOneOrFail({ where: { id: req.user_id }, relations: ["roles"] }); - // TODO: This doesn't work either - // member.roles = member.roles.filter((role) => { - // return role.id !== role.guild_id; - // }).map((role) => { - // return role.id; - // }); - message.member = member; - // TODO: Figure this out - // delete message.member.last_message_id; - // delete message.member.index; - - await Promise.all([ - message.save(), - emitEvent({ event: "MESSAGE_CREATE", channel_id: channel_id, data: message } as MessageCreateEvent), - message.guild_id ? Member.update({ id: req.user_id, guild_id: message.guild_id }, { last_message_id: message.id }) : null, - channel.save() - ]); - - postHandleMessage(message).catch((e) => { }); // no await as it shouldnt block the message send function and silently catch error - - return res.json(message); - } -); - diff --git a/api/src/routes/channels/#channel_id/permissions.ts b/api/src/routes/channels/#channel_id/permissions.ts deleted file mode 100644 index 34052fe5..00000000 --- a/api/src/routes/channels/#channel_id/permissions.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { - Channel, - ChannelPermissionOverwrite, - ChannelPermissionOverwriteSchema, - ChannelPermissionOverwriteType, - ChannelUpdateEvent, - emitEvent, - getPermission, - Member, - Role -} from "@fosscord/util"; -import { Router, Response, Request } from "express"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.put( - "/:overwrite_id", - route({ body: "ChannelPermissionOverwriteSchema", permission: "MANAGE_ROLES" }), - async (req: Request, res: Response) => { - const { channel_id, overwrite_id } = req.params; - const body = req.body as ChannelPermissionOverwriteSchema; - - let channel = await Channel.findOneOrFail({ where: {id: channel_id} }); - if (!channel.guild_id) throw new HTTPError("Channel not found", 404); - - if (body.type === 0) { - if (!(await Role.count({ where: { id: overwrite_id } }))) throw new HTTPError("role not found", 404); - } else if (body.type === 1) { - if (!(await Member.count({ where: { id: overwrite_id } }))) throw new HTTPError("user not found", 404); - } else throw new HTTPError("type not supported", 501); - - // @ts-ignore - let overwrite: ChannelPermissionOverwrite = channel.permission_overwrites.find((x) => x.id === overwrite_id); - if (!overwrite) { - // @ts-ignore - overwrite = { - id: overwrite_id, - type: body.type - }; - channel.permission_overwrites!.push(overwrite); - } - overwrite.allow = String(req.permission!.bitfield & (BigInt(body.allow) || BigInt("0"))); - overwrite.deny = String(req.permission!.bitfield & (BigInt(body.deny) || BigInt("0"))); - - await Promise.all([ - channel.save(), - emitEvent({ - event: "CHANNEL_UPDATE", - channel_id, - data: channel - } as ChannelUpdateEvent) - ]); - - return res.sendStatus(204); - } -); - -// TODO: check permission hierarchy -router.delete("/:overwrite_id", route({ permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => { - const { channel_id, overwrite_id } = req.params; - - const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - if (!channel.guild_id) throw new HTTPError("Channel not found", 404); - - channel.permission_overwrites = channel.permission_overwrites!.filter((x) => x.id === overwrite_id); - - await Promise.all([ - channel.save(), - emitEvent({ - event: "CHANNEL_UPDATE", - channel_id, - data: channel - } as ChannelUpdateEvent) - ]); - - return res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/channels/#channel_id/pins.ts b/api/src/routes/channels/#channel_id/pins.ts deleted file mode 100644 index 003638c5..00000000 --- a/api/src/routes/channels/#channel_id/pins.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { - Channel, - ChannelPinsUpdateEvent, - Config, - emitEvent, - getPermission, - Message, - MessageUpdateEvent, - DiscordApiErrors -} from "@fosscord/util"; -import { Router, Request, Response } from "express"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.put("/:message_id", route({ permission: "VIEW_CHANNEL" }), async (req: Request, res: Response) => { - const { channel_id, message_id } = req.params; - - const message = await Message.findOneOrFail({ where: { id: message_id } }); - - // * in dm channels anyone can pin messages -> only check for guilds - if (message.guild_id) req.permission!.hasThrow("MANAGE_MESSAGES"); - - const pinned_count = await Message.count({ where: { channel: { id: channel_id }, pinned: true } }); - const { maxPins } = Config.get().limits.channel; - if (pinned_count >= maxPins) throw DiscordApiErrors.MAXIMUM_PINS.withParams(maxPins); - - await Promise.all([ - Message.update({ id: message_id }, { pinned: true }), - emitEvent({ - event: "MESSAGE_UPDATE", - channel_id, - data: message - } as MessageUpdateEvent), - emitEvent({ - event: "CHANNEL_PINS_UPDATE", - channel_id, - data: { - channel_id, - guild_id: message.guild_id, - last_pin_timestamp: undefined - } - } as ChannelPinsUpdateEvent) - ]); - - res.sendStatus(204); -}); - -router.delete("/:message_id", route({ permission: "VIEW_CHANNEL" }), async (req: Request, res: Response) => { - const { channel_id, message_id } = req.params; - - const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - if (channel.guild_id) req.permission!.hasThrow("MANAGE_MESSAGES"); - - const message = await Message.findOneOrFail({ where: { id: message_id } }); - message.pinned = false; - - await Promise.all([ - message.save(), - - emitEvent({ - event: "MESSAGE_UPDATE", - channel_id, - data: message - } as MessageUpdateEvent), - - emitEvent({ - event: "CHANNEL_PINS_UPDATE", - channel_id, - data: { - channel_id, - guild_id: channel.guild_id, - last_pin_timestamp: undefined - } - } as ChannelPinsUpdateEvent) - ]); - - res.sendStatus(204); -}); - -router.get("/", route({ permission: ["READ_MESSAGE_HISTORY"] }), async (req: Request, res: Response) => { - const { channel_id } = req.params; - - let pins = await Message.find({ where: { channel_id, pinned: true } }); - - res.send(pins); -}); - -export default router; diff --git a/api/src/routes/channels/#channel_id/purge.ts b/api/src/routes/channels/#channel_id/purge.ts deleted file mode 100644 index 1ef6e1d7..00000000 --- a/api/src/routes/channels/#channel_id/purge.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { HTTPError, PurgeSchema } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { isTextChannel } from "./messages"; -import { FindManyOptions, Between, Not } from "typeorm"; -import { Channel, Config, emitEvent, getPermission, getRights, Message, MessageDeleteBulkEvent } from "@fosscord/util"; -import { Router, Response, Request } from "express"; -import { In } from "typeorm"; - -const router: Router = Router(); - -export default router; - -/** -TODO: apply the delete bit by bit to prevent client and database stress -**/ -router.post("/",route({ /*body: "PurgeSchema",*/ }), async (req: Request, res: Response) => { - const { channel_id } = req.params; - const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - - if (!channel.guild_id) throw new HTTPError("Can't purge dm channels", 400); - isTextChannel(channel.type); - - const rights = await getRights(req.user_id); - if (!rights.has("MANAGE_MESSAGES")) { - const permissions = await getPermission(req.user_id, channel.guild_id, channel_id); - permissions.hasThrow("MANAGE_MESSAGES"); - permissions.hasThrow("MANAGE_CHANNELS"); - } - - const { before, after } = req.body as PurgeSchema; - - // TODO: send the deletion event bite-by-bite to prevent client stress - - let query: FindManyOptions & { where: { id?: any } } = { - order: { id: "ASC" }, - // take: limit, - where: { - channel_id, - id: Between(after, before), // the right way around - author_id: rights.has("SELF_DELETE_MESSAGES") ? undefined : Not(req.user_id) - // if you lack the right of self-deletion, you can't delete your own messages, even in purges - }, - relations: ["author", "webhook", "application", "mentions", "mention_roles", "mention_channels", "sticker_items", "attachments"] - }; - - const messages = await Message.find(query); - const endpoint = Config.get().cdn.endpointPublic; - - if (messages.length == 0) { - res.sendStatus(304); - return; - } - - await Message.delete({ id: In(messages) }); - - await emitEvent({ - event: "MESSAGE_DELETE_BULK", - channel_id, - data: { ids: messages.map((x) => x.id), channel_id, guild_id: channel.guild_id } - } as MessageDeleteBulkEvent); - - res.sendStatus(204); - } -); diff --git a/api/src/routes/channels/#channel_id/recipients.ts b/api/src/routes/channels/#channel_id/recipients.ts deleted file mode 100644 index 069212e2..00000000 --- a/api/src/routes/channels/#channel_id/recipients.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { Request, Response, Router } from "express"; -import { - Channel, - ChannelRecipientAddEvent, - ChannelType, - DiscordApiErrors, - DmChannelDTO, - emitEvent, - PublicUserProjection, - Recipient, - User -} from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { OrmUtils } from "@fosscord/util"; - -const router: Router = Router(); - -router.put("/:user_id", route({}), async (req: Request, res: Response) => { - const { channel_id, user_id } = req.params; - const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients"] }); - - if (channel.type !== ChannelType.GROUP_DM) { - const recipients = [...channel.recipients!.map((r) => r.user_id), user_id].unique(); - - const new_channel = await Channel.createDMChannel(recipients, req.user_id); - return res.status(201).json(new_channel); - } else { - if (channel.recipients!.map((r) => r.user_id).includes(user_id)) { - throw DiscordApiErrors.INVALID_RECIPIENT; //TODO is this the right error? - } - - channel.recipients!.push(OrmUtils.mergeDeep(new Recipient(), { channel_id, user_id: user_id })); - await channel.save(); - - await emitEvent({ - event: "CHANNEL_CREATE", - data: await DmChannelDTO.from(channel, [user_id]), - user_id: user_id - }); - - await emitEvent({ - event: "CHANNEL_RECIPIENT_ADD", - data: { - channel_id: channel_id, - user: await User.findOneOrFail({ where: { id: user_id }, select: PublicUserProjection }) - }, - channel_id: channel_id - } as ChannelRecipientAddEvent); - return res.sendStatus(204); - } -}); - -router.delete("/:user_id", route({}), async (req: Request, res: Response) => { - const { channel_id, user_id } = req.params; - const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients"] }); - if (!(channel.type === ChannelType.GROUP_DM && (channel.owner_id === req.user_id || user_id === req.user_id))) - throw DiscordApiErrors.MISSING_PERMISSIONS; - - if (!channel.recipients!.map((r) => r.user_id).includes(user_id)) { - throw DiscordApiErrors.INVALID_RECIPIENT; //TODO is this the right error? - } - - await Channel.removeRecipientFromChannel(channel, user_id); - - return res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/channels/#channel_id/typing.ts b/api/src/routes/channels/#channel_id/typing.ts deleted file mode 100644 index 99460f6e..00000000 --- a/api/src/routes/channels/#channel_id/typing.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Channel, emitEvent, Member, TypingStartEvent } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { Router, Request, Response } from "express"; - -const router: Router = Router(); - -router.post("/", route({ permission: "SEND_MESSAGES" }), async (req: Request, res: Response) => { - const { channel_id } = req.params; - const user_id = req.user_id; - const timestamp = Date.now(); - const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - const member = await Member.findOne({ where: { id: user_id, guild_id: channel.guild_id }, relations: ["roles", "user"] }); - - await emitEvent({ - event: "TYPING_START", - channel_id: channel_id, - data: { - ...(member ? { member: { ...member, roles: member?.roles?.map((x) => x.id) } } : null), - channel_id, - timestamp, - user_id, - guild_id: channel.guild_id - } - } as TypingStartEvent); - - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/channels/#channel_id/webhooks.ts b/api/src/routes/channels/#channel_id/webhooks.ts deleted file mode 100644 index b11c8eb9..00000000 --- a/api/src/routes/channels/#channel_id/webhooks.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; -import { Channel, Config, getPermission, trimSpecial, Webhook } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { isTextChannel } from "./messages/index"; -import { DiscordApiErrors } from "@fosscord/util"; - -const router: Router = Router(); -//TODO: implement webhooks -router.get("/", route({}), async (req: Request, res: Response) => { - res.json([]); -}); - -// TODO: use Image Data Type for avatar instead of String -router.post("/", route({ body: "WebhookCreateSchema", permission: "MANAGE_WEBHOOKS" }), async (req: Request, res: Response) => { - const channel_id = req.params.channel_id; - const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); - - isTextChannel(channel.type); - if (!channel.guild_id) throw new HTTPError("Not a guild channel", 400); - - const webhook_count = await Webhook.count({ where: { channel_id } }); - const { maxWebhooks } = Config.get().limits.channel; - if (webhook_count > maxWebhooks) throw DiscordApiErrors.MAXIMUM_WEBHOOKS.withParams(maxWebhooks); - - let { avatar, name } = req.body as { name: string; avatar?: string }; - name = trimSpecial(name); - if (name === "clyde") throw new HTTPError("Invalid name", 400); - - // TODO: save webhook in database and send response - res.json(new Webhook()); -}); - -export default router; diff --git a/api/src/routes/discoverable-guilds.ts b/api/src/routes/discoverable-guilds.ts deleted file mode 100644 index 35ecf28c..00000000 --- a/api/src/routes/discoverable-guilds.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Guild, Config } from "@fosscord/util"; - -import { Router, Request, Response } from "express"; -import { route } from ".."; -import { Like } from "typeorm"; - -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { offset, limit, categories } = req.query; - let showAllGuilds = Config.get().guild.discovery.showAllGuilds; - let configLimit = Config.get().guild.discovery.limit; - // ! this only works using SQL querys - // const guilds = await Guild.find({ where: { features: "DISCOVERABLE" } }); //, take: Math.abs(Number(limit)) }); - let guilds; - if (categories == undefined) { - guilds = showAllGuilds - ? await Guild.find({ take: Math.abs(Number(limit || configLimit)) }) - : await Guild.find({ where: { features: Like("%DISCOVERABLE%") }, take: Math.abs(Number(limit || configLimit)) }); - } else { - guilds = showAllGuilds - ? await Guild.find({ where: { primary_category_id: Number(categories) }, take: Math.abs(Number(limit || configLimit)) }) - : await Guild.find({ - where: { primary_category_id: Number(categories), features: Like("%DISCOVERABLE%") }, - take: Math.abs(Number(limit || configLimit)) - }); - } - - const total = guilds ? guilds.length : undefined; - - res.send({ - total: total, - guilds: guilds, - offset: Number(offset || Config.get().guild.discovery.offset), - limit: Number(limit || configLimit) - }); -}); - -export default router; diff --git a/api/src/routes/discovery.ts b/api/src/routes/discovery.ts deleted file mode 100644 index 30c418c6..00000000 --- a/api/src/routes/discovery.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Categories } from "@fosscord/util"; -import { Router, Response, Request } from "express"; -import { route } from ".."; - -const router = Router(); - -router.get("/categories", route({}), async (req: Request, res: Response) => { - // TODO: - // Get locale instead - - const { locale, primary_only } = req.query; - - const out = primary_only ? await Categories.find() : await Categories.find({ where: {is_primary: true} }); - - res.send(out); -}); - -export default router; diff --git a/api/src/routes/downloads.ts b/api/src/routes/downloads.ts deleted file mode 100644 index 44530353..00000000 --- a/api/src/routes/downloads.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from ".."; -import { Release, Config } from "@fosscord/util"; - -const router = Router(); - -router.get("/:branch", route({}), async (req: Request, res: Response) => { - const { client } = Config.get(); - const { branch } = req.params; - const { platform } = req.query; - //TODO - - if(!platform || !["linux", "osx", "win"].includes(platform.toString())) return res.status(404) - - const release = await Release.findOneOrFail({ where: { name: client.releases.upstreamVersion } }); - - res.redirect(release[`win_url`]); -}); - -export default router; diff --git a/api/src/routes/experiments.ts b/api/src/routes/experiments.ts deleted file mode 100644 index fcbd9271..00000000 --- a/api/src/routes/experiments.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from ".."; - -const router = Router(); - -router.get("/", route({}), (req: Request, res: Response) => { - // TODO: - res.send({ fingerprint: "", assignments: [], guild_experiments:[] }); -}); - -export default router; diff --git a/api/src/routes/gateway/bot.ts b/api/src/routes/gateway/bot.ts deleted file mode 100644 index f1dbb9df..00000000 --- a/api/src/routes/gateway/bot.ts +++ /dev/null @@ -1,40 +0,0 @@ -import { Config } from "@fosscord/util"; -import { Router, Response, Request } from "express"; -import { route, RouteOptions } from "@fosscord/api"; - -const router = Router(); - -export interface GatewayBotResponse { - url: string; - shards: number; - session_start_limit: { - total: number; - remaining: number; - reset_after: number; - max_concurrency: number; - }; -} - -const options: RouteOptions = { - test: { - response: { - body: "GatewayBotResponse" - } - } -}; - -router.get("/", route(options), (req: Request, res: Response) => { - const { endpointPublic } = Config.get().gateway; - res.json({ - url: endpointPublic || process.env.GATEWAY || "ws://localhost:3002", - shards: 1, - session_start_limit: { - total: 1000, - remaining: 999, - reset_after: 14400000, - max_concurrency: 1 - } - }); -}); - -export default router; diff --git a/api/src/routes/gateway/index.ts b/api/src/routes/gateway/index.ts deleted file mode 100644 index 9bad7478..00000000 --- a/api/src/routes/gateway/index.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Config } from "@fosscord/util"; -import { Router, Response, Request } from "express"; -import { route, RouteOptions } from "@fosscord/api"; - -const router = Router(); - -export interface GatewayResponse { - url: string; -} - -const options: RouteOptions = { - test: { - response: { - body: "GatewayResponse" - } - } -}; - -router.get("/", route(options), (req: Request, res: Response) => { - const { endpointPublic } = Config.get().gateway; - res.json({ url: endpointPublic || process.env.GATEWAY || "ws://localhost:3002" }); -}); - -export default router; diff --git a/api/src/routes/gifs/search.ts b/api/src/routes/gifs/search.ts deleted file mode 100644 index 1099dc4a..00000000 --- a/api/src/routes/gifs/search.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Router, Response, Request } from "express"; -import fetch from "node-fetch"; -import ProxyAgent from 'proxy-agent'; -import { route } from "@fosscord/api"; -import { getGifApiKey, parseGifResult } from "./trending"; - -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - // TODO: Custom providers - const { q, media_format, locale } = req.query; - - const apiKey = getGifApiKey(); - - const agent = new ProxyAgent(); - - const response = await fetch(`https://g.tenor.com/v1/search?q=${q}&media_format=${media_format}&locale=${locale}&key=${apiKey}`, { - agent, - method: "get", - headers: { "Content-Type": "application/json" } - }); - - const { results } = await response.json() as any; - - res.json(results.map(parseGifResult)).status(200); -}); - -export default router; diff --git a/api/src/routes/gifs/trending-gifs.ts b/api/src/routes/gifs/trending-gifs.ts deleted file mode 100644 index 2b28d9d2..00000000 --- a/api/src/routes/gifs/trending-gifs.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Router, Response, Request } from "express"; -import fetch from "node-fetch"; -import ProxyAgent from 'proxy-agent'; -import { route } from "@fosscord/api"; -import { getGifApiKey, parseGifResult } from "./trending"; - -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - // TODO: Custom providers - const { media_format, locale } = req.query; - - const apiKey = getGifApiKey(); - - const agent = new ProxyAgent(); - - const response = await fetch(`https://g.tenor.com/v1/trending?media_format=${media_format}&locale=${locale}&key=${apiKey}`, { - agent, - method: "get", - headers: { "Content-Type": "application/json" } - }); - - const { results } = await response.json() as any; - - res.json(results.map(parseGifResult)).status(200); -}); - -export default router; diff --git a/api/src/routes/gifs/trending.ts b/api/src/routes/gifs/trending.ts deleted file mode 100644 index 61eb76c4..00000000 --- a/api/src/routes/gifs/trending.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { Router, Response, Request } from "express"; -import fetch from "node-fetch"; -import ProxyAgent from 'proxy-agent'; -import { route } from "@fosscord/api"; -import { Config } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; - -const router = Router(); - -export function parseGifResult(result: any) { - return { - id: result.id, - title: result.title, - url: result.itemurl, - src: result.media[0].mp4.url, - gif_src: result.media[0].gif.url, - width: result.media[0].mp4.dims[0], - height: result.media[0].mp4.dims[1], - preview: result.media[0].mp4.preview - }; -} - -export function getGifApiKey() { - const { enabled, provider, apiKey } = Config.get().gif; - if (!enabled) throw new HTTPError(`Gifs are disabled`); - if (provider !== "tenor" || !apiKey) throw new HTTPError(`${provider} gif provider not supported`); - - return apiKey; -} - -router.get("/", route({}), async (req: Request, res: Response) => { - // TODO: Custom providers - // TODO: return gifs as mp4 - const { media_format, locale } = req.query; - - const apiKey = getGifApiKey(); - - const agent = new ProxyAgent(); - - const [responseSource, trendGifSource] = await Promise.all([ - fetch(`https://g.tenor.com/v1/categories?locale=${locale}&key=${apiKey}`, { - agent, - method: "get", - headers: { "Content-Type": "application/json" } - }), - fetch(`https://g.tenor.com/v1/trending?locale=${locale}&key=${apiKey}`, { - agent, - method: "get", - headers: { "Content-Type": "application/json" } - }) - ]); - - const { tags } = await responseSource.json() as any; - const { results } = await trendGifSource.json() as any; - - res.json({ - categories: tags.map((x: any) => ({ name: x.searchterm, src: x.image })), - gifs: [parseGifResult(results[0])] - }).status(200); -}); - -export default router; diff --git a/api/src/routes/guild-recommendations.ts b/api/src/routes/guild-recommendations.ts deleted file mode 100644 index bd0140d6..00000000 --- a/api/src/routes/guild-recommendations.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Guild, Config } from "@fosscord/util"; - -import { Router, Request, Response } from "express"; -import { route } from ".."; -import {Like} from "typeorm" - -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { limit, personalization_disabled } = req.query; - let showAllGuilds = Config.get().guild.discovery.showAllGuilds; - // ! this only works using SQL querys - // TODO: implement this with default typeorm query - // const guilds = await Guild.find({ where: { features: "DISCOVERABLE" } }); //, take: Math.abs(Number(limit)) }); - - const genLoadId = (size: Number) => [...Array(size)].map(() => Math.floor(Math.random() * 16).toString(16)).join(''); - - const guilds = showAllGuilds - ? await Guild.find({ take: Math.abs(Number(limit || 24)) }) - : await Guild.find({ where: { features: Like('%DISCOVERABLE%') }, take: Math.abs(Number(limit || 24)) }); - res.send({ recommended_guilds: guilds, load_id: `server_recs/${genLoadId(32)}`}).status(200); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/audit-logs.ts b/api/src/routes/guilds/#guild_id/audit-logs.ts deleted file mode 100644 index b54835fc..00000000 --- a/api/src/routes/guilds/#guild_id/audit-logs.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; -const router = Router(); - -//TODO: implement audit logs -router.get("/", route({}), async (req: Request, res: Response) => { - res.json({ - audit_log_entries: [], - users: [], - integrations: [], - webhooks: [], - guild_scheduled_events: [], - threads: [], - application_commands: [] - }); -}); -export default router; diff --git a/api/src/routes/guilds/#guild_id/bans.ts b/api/src/routes/guilds/#guild_id/bans.ts deleted file mode 100644 index 3d405344..00000000 --- a/api/src/routes/guilds/#guild_id/bans.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { Request, Response, Router } from "express"; -import { DiscordApiErrors, emitEvent, getPermission, GuildBanAddEvent, GuildBanRemoveEvent, Guild, Ban, User, Member, BanRegistrySchema, BanModeratorSchema } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { getIpAdress, route } from "@fosscord/api"; -import { OrmUtils } from "@fosscord/util"; - -const router: Router = Router(); - -/* TODO: Deleting the secrets is just a temporary go-around. Views should be implemented for both safety and better handling. */ - -router.get("/", route({ permission: "BAN_MEMBERS" }), async (req: Request, res: Response) => { - const { guild_id } = req.params; - - let bans = await Ban.find({ where: { guild_id } }); - let promisesToAwait: object[] = []; - const bansObj: object[] = []; - - bans.filter((ban) => ban.user_id !== ban.executor_id); // pretend self-bans don't exist to prevent victim chasing - - bans.forEach((ban) => { - promisesToAwait.push(User.getPublicUser(ban.user_id)); - }); - - const bannedUsers: object[] = await Promise.all(promisesToAwait); - - bans.forEach((ban, index) => { - const user = bannedUsers[index] as User; - bansObj.push({ - reason: ban.reason, - user: { - username: user.username, - discriminator: user.discriminator, - id: user.id, - avatar: user.avatar, - public_flags: user.public_flags - } - }); - }); - - return res.json(bansObj); -}); - -router.get("/:user", route({ permission: "BAN_MEMBERS" }), async (req: Request, res: Response) => { - const { guild_id } = req.params; - const user_id = req.params.ban; - - let ban = await Ban.findOneOrFail({ where: { guild_id, user_id } }) as BanRegistrySchema; - - if (ban.user_id === ban.executor_id) throw DiscordApiErrors.UNKNOWN_BAN; - // pretend self-bans don't exist to prevent victim chasing - - /* Filter secret from registry. */ - - ban = ban as BanModeratorSchema; - - delete ban.ip - - return res.json(ban); -}); - -router.put("/:user_id", route({ body: "BanCreateSchema", permission: "BAN_MEMBERS" }), async (req: Request, res: Response) => { - const { guild_id } = req.params; - const banned_user_id = req.params.user_id; - - if ( (req.user_id === banned_user_id) && (banned_user_id === req.permission!.cache.guild?.owner_id)) - throw new HTTPError("You are the guild owner, hence can't ban yourself", 403); - - if (req.permission!.cache.guild?.owner_id === banned_user_id) throw new HTTPError("You can't ban the owner", 400); - - const banned_user = await User.getPublicUser(banned_user_id); - - const ban = OrmUtils.mergeDeep(new Ban(),{ - user_id: banned_user_id, - guild_id: guild_id, - ip: getIpAdress(req), - executor_id: req.user_id, - reason: req.body.reason // || otherwise empty - }); - - await Promise.all([ - Member.removeFromGuild(banned_user_id, guild_id), - ban.save(), - emitEvent({ - event: "GUILD_BAN_ADD", - data: { - guild_id: guild_id, - user: banned_user - }, - guild_id: guild_id - } as GuildBanAddEvent) - ]); - - return res.json(ban); -}); - -router.put("/@me", route({ body: "BanCreateSchema"}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - - const banned_user = await User.getPublicUser(req.params.user_id); - - if (req.permission!.cache.guild?.owner_id === req.params.user_id) - throw new HTTPError("You are the guild owner, hence can't ban yourself", 403); - - const ban = OrmUtils.mergeDeep(new Ban(), { - user_id: req.params.user_id, - guild_id: guild_id, - ip: getIpAdress(req), - executor_id: req.params.user_id, - reason: req.body.reason // || otherwise empty - }); - - await Promise.all([ - Member.removeFromGuild(req.user_id, guild_id), - ban.save(), - emitEvent({ - event: "GUILD_BAN_ADD", - data: { - guild_id: guild_id, - user: banned_user - }, - guild_id: guild_id - } as GuildBanAddEvent) - ]); - - return res.json(ban); -}); - -router.delete("/:user_id", route({ permission: "BAN_MEMBERS" }), async (req: Request, res: Response) => { - const { guild_id, user_id } = req.params; - - let ban = await Ban.findOneOrFail({ where: { guild_id, user_id } }); - - if (ban.user_id === ban.executor_id) throw DiscordApiErrors.UNKNOWN_BAN; - // make self-bans irreversible and hide them from view to avoid victim chasing - - const banned_user = await User.getPublicUser(user_id); - - await Promise.all([ - Ban.delete({ - user_id: user_id, - guild_id - }), - - emitEvent({ - event: "GUILD_BAN_REMOVE", - data: { - guild_id, - user: banned_user - }, - guild_id - } as GuildBanRemoveEvent) - ]); - - return res.status(204).send(); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/channels.ts b/api/src/routes/guilds/#guild_id/channels.ts deleted file mode 100644 index 8f2d3643..00000000 --- a/api/src/routes/guilds/#guild_id/channels.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Router, Response, Request } from "express"; -import { Channel, ChannelUpdateEvent, getPermission, emitEvent, ChannelModifySchema, ChannelReorderSchema } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - const channels = await Channel.find({ where: { guild_id } }); - - res.json(channels); -}); - -router.post("/", route({ body: "ChannelModifySchema", permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { - // creates a new guild channel https://discord.com/developers/docs/resources/guild#create-guild-channel - const { guild_id } = req.params; - const body = req.body as ChannelModifySchema; - - const channel = await Channel.createChannel({ ...body, guild_id }, req.user_id); - - res.status(201).json(channel); -}); - -router.patch("/", route({ body: "ChannelReorderSchema", permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { - // changes guild channel position - const { guild_id } = req.params; - const body = req.body as ChannelReorderSchema; - - await Promise.all([ - body.map(async (x) => { - if (x.position == null && !x.parent_id) throw new HTTPError(`You need to at least specify position or parent_id`, 400); - - const opts: any = {}; - if (x.position != null) opts.position = x.position; - - if (x.parent_id) { - opts.parent_id = x.parent_id; - const parent_channel = await Channel.findOneOrFail({ - where: { id: x.parent_id, guild_id }, - select: ["permission_overwrites"] - }); - if (x.lock_permissions) { - opts.permission_overwrites = parent_channel.permission_overwrites; - } - } - - await Channel.update({ guild_id, id: x.id }, opts); - const channel = await Channel.findOneOrFail({ where: { guild_id, id: x.id } }); - - await emitEvent({ event: "CHANNEL_UPDATE", data: channel, channel_id: x.id, guild_id } as ChannelUpdateEvent); - }) - ]); - - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/delete.ts b/api/src/routes/guilds/#guild_id/delete.ts deleted file mode 100644 index e2624651..00000000 --- a/api/src/routes/guilds/#guild_id/delete.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Channel, emitEvent, GuildDeleteEvent, Guild, Member, Message, Role, Invite, Emoji } from "@fosscord/util"; -import { Router, Request, Response } from "express"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; - -const router = Router(); - -// discord prefixes this route with /delete instead of using the delete method -// docs are wrong https://discord.com/developers/docs/resources/guild#delete-guild -router.post("/", route({}), async (req: Request, res: Response) => { - let { guild_id } = req.params; - - const guild = await Guild.findOneOrFail({ where: { id: guild_id }, select: ["owner_id"] }); - if (guild.owner_id !== req.user_id) throw new HTTPError("You are not the owner of this guild", 401); - - await Promise.all([ - Guild.delete({ id: guild_id }), // this will also delete all guild related data - emitEvent({ - event: "GUILD_DELETE", - data: { - id: guild_id - }, - guild_id: guild_id - } as GuildDeleteEvent) - ]); - - return res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/discovery-requirements.ts b/api/src/routes/guilds/#guild_id/discovery-requirements.ts deleted file mode 100644 index ad20633f..00000000 --- a/api/src/routes/guilds/#guild_id/discovery-requirements.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Guild, Config } from "@fosscord/util"; - -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - // TODO: - // Load from database - // Admin control, but for now it allows anyone to be discoverable - - res.send({ - guild_id: guild_id, - safe_environment: true, - healthy: true, - health_score_pending: false, - size: true, - nsfw_properties: {}, - protected: true, - sufficient: true, - sufficient_without_grace_period: true, - valid_rules_channel: true, - retention_healthy: true, - engagement_healthy: true, - age: true, - minimum_age: 0, - health_score: { - avg_nonnew_participators: 0, - avg_nonnew_communicators: 0, - num_intentful_joiners: 0, - perc_ret_w1_intentful: 0 - }, - minimum_size: 0 - }); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/emojis.ts b/api/src/routes/guilds/#guild_id/emojis.ts deleted file mode 100644 index 4bf4bdcd..00000000 --- a/api/src/routes/guilds/#guild_id/emojis.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { Router, Request, Response } from "express"; -import { Config, DiscordApiErrors, emitEvent, Emoji, EmojiCreateSchema, EmojiModifySchema, GuildEmojisUpdateEvent, handleFile, Member, Snowflake, User } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { OrmUtils } from "@fosscord/util"; - -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - - await Member.IsInGuildOrFail(req.user_id, guild_id); - - const emojis = await Emoji.find({ where: { guild_id: guild_id }, relations: ["user"] }); - - return res.json(emojis); -}); - -router.get("/:emoji_id", route({}), async (req: Request, res: Response) => { - const { guild_id, emoji_id } = req.params; - - await Member.IsInGuildOrFail(req.user_id, guild_id); - - const emoji = await Emoji.findOneOrFail({ where: { guild_id: guild_id, id: emoji_id }, relations: ["user"] }); - - return res.json(emoji); -}); - -router.post("/", route({ body: "EmojiCreateSchema", permission: "MANAGE_EMOJIS_AND_STICKERS" }), async (req: Request, res: Response) => { - const { guild_id } = req.params; - const body = req.body as EmojiCreateSchema; - - const id = Snowflake.generate(); - const emoji_count = await Emoji.count({ where: { guild_id } }); - const { maxEmojis } = Config.get().limits.guild; - - if (emoji_count >= maxEmojis) throw DiscordApiErrors.MAXIMUM_NUMBER_OF_EMOJIS_REACHED.withParams(maxEmojis); - if (body.require_colons == null) body.require_colons = true; - - const user = await User.findOneOrFail({ where: { id: req.user_id } }); - body.image = (await handleFile(`/emojis/${id}`, body.image)) as string; - - const emoji = await OrmUtils.mergeDeep(new Emoji(), { - id: id, - guild_id: guild_id, - ...body, - user: user, - managed: false, - animated: false, // TODO: Add support animated emojis - available: true, - roles: [] - }).save(); - - await emitEvent({ - event: "GUILD_EMOJIS_UPDATE", - guild_id: guild_id, - data: { - guild_id: guild_id, - emojis: await Emoji.find({ where: { guild_id } }) - } - } as GuildEmojisUpdateEvent); - - return res.status(201).json(emoji); -}); - -router.patch( - "/:emoji_id", - route({ body: "EmojiModifySchema", permission: "MANAGE_EMOJIS_AND_STICKERS" }), - async (req: Request, res: Response) => { - const { emoji_id, guild_id } = req.params; - const body = req.body as EmojiModifySchema; - - const emoji = await OrmUtils.mergeDeep(new Emoji(), { ...body, id: emoji_id, guild_id: guild_id }).save(); - - await emitEvent({ - event: "GUILD_EMOJIS_UPDATE", - guild_id: guild_id, - data: { - guild_id: guild_id, - emojis: await Emoji.find({ where: { guild_id } }) - } - } as GuildEmojisUpdateEvent); - - return res.json(emoji); - } -); - -router.delete("/:emoji_id", route({ permission: "MANAGE_EMOJIS_AND_STICKERS" }), async (req: Request, res: Response) => { - const { emoji_id, guild_id } = req.params; - - await Emoji.delete({ - id: emoji_id, - guild_id: guild_id - }); - - await emitEvent({ - event: "GUILD_EMOJIS_UPDATE", - guild_id: guild_id, - data: { - guild_id: guild_id, - emojis: await Emoji.find({ where: { guild_id } }) - } - } as GuildEmojisUpdateEvent); - - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/index.ts b/api/src/routes/guilds/#guild_id/index.ts deleted file mode 100644 index a9712c71..00000000 --- a/api/src/routes/guilds/#guild_id/index.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { Request, Response, Router } from "express"; -import { DiscordApiErrors, emitEvent, getPermission, getRights, Guild, GuildUpdateEvent, GuildUpdateSchema, handleFile, Member } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { OrmUtils } from "@fosscord/util"; - -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - - const [guild, member] = await Promise.all([ - Guild.findOneOrFail({ where: { id: guild_id } }), - Member.findOne({ where: { guild_id, id: req.user_id } }) - ]); - if (!member) throw new HTTPError("You are not a member of the guild you are trying to access", 401); - - // @ts-ignore - guild.joined_at = member?.joined_at; - - return res.send(guild); -}); - -router.patch("/", route({ body: "GuildUpdateSchema"}), async (req: Request, res: Response) => { - const body = req.body as GuildUpdateSchema; - const { guild_id } = req.params; - - - const rights = await getRights(req.user_id); - const permission = await getPermission(req.user_id, guild_id); - - if (!rights.has("MANAGE_GUILDS")||!permission.has("MANAGE_GUILD")) - throw DiscordApiErrors.MISSING_PERMISSIONS.withParams("MANAGE_GUILD"); - - // TODO: guild update check image - - if (body.icon) body.icon = await handleFile(`/icons/${guild_id}`, body.icon); - if (body.banner) body.banner = await handleFile(`/banners/${guild_id}`, body.banner); - if (body.splash) body.splash = await handleFile(`/splashes/${guild_id}`, body.splash); - - let guild = await Guild.findOneOrFail({ - where: { id: guild_id }, - relations: ["emojis", "roles", "stickers"] - }); - // TODO: check if body ids are valid - guild = OrmUtils.mergeDeep(guild, body); - - //TODO: check this, removed toJSON call - const data = JSON.parse(JSON.stringify(guild)); - // TODO: guild hashes - // TODO: fix vanity_url_code, template_id - delete data.vanity_url_code; - delete data.template_id; - - await Promise.all([guild.save(), emitEvent({ event: "GUILD_UPDATE", data, guild_id } as GuildUpdateEvent)]); - - return res.json(data); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/integrations.ts b/api/src/routes/guilds/#guild_id/integrations.ts deleted file mode 100644 index 90650111..00000000 --- a/api/src/routes/guilds/#guild_id/integrations.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { Channel, ChannelUpdateEvent, getPermission, emitEvent } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; -const router = Router(); - -//TODO: implement integrations list -router.get("/", route({}), async (req: Request, res: Response) => { - res.json([]); -}); -export default router; diff --git a/api/src/routes/guilds/#guild_id/invites.ts b/api/src/routes/guilds/#guild_id/invites.ts deleted file mode 100644 index b7534e31..00000000 --- a/api/src/routes/guilds/#guild_id/invites.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { getPermission, Invite, PublicInviteRelation } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { Request, Response, Router } from "express"; - -const router = Router(); - -router.get("/", route({ permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { - const { guild_id } = req.params; - - const invites = await Invite.find({ where: { guild_id }, relations: PublicInviteRelation }); - - return res.json(invites); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/members/#member_id/index.ts b/api/src/routes/guilds/#guild_id/members/#member_id/index.ts deleted file mode 100644 index 794369d8..00000000 --- a/api/src/routes/guilds/#guild_id/members/#member_id/index.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { Request, Response, Router } from "express"; -import { Member, getPermission, getRights, Role, GuildMemberUpdateEvent, emitEvent, Sticker, Emoji, Rights, Guild, MemberChangeSchema } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { OrmUtils } from "@fosscord/util"; - -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id, member_id } = req.params; - await Member.IsInGuildOrFail(req.user_id, guild_id); - - const member = await Member.findOneOrFail({ where: { id: member_id, guild_id } }); - - return res.json(member); -}); - -router.patch("/", route({ body: "MemberChangeSchema" }), async (req: Request, res: Response) => { - let { guild_id, member_id } = req.params; - if (member_id === "@me") member_id = req.user_id; - const body = req.body as MemberChangeSchema; - - const member = await Member.findOneOrFail({ where: { id: member_id, guild_id }, relations: ["roles", "user"] }); - const permission = await getPermission(req.user_id, guild_id); - const everyone = await Role.findOneOrFail({ where: { guild_id: guild_id, name: "@everyone", position: 0 } }); - - if (body.roles) { - permission.hasThrow("MANAGE_ROLES"); - - if (body.roles.indexOf(everyone.id) === -1) body.roles.push(everyone.id); - member.roles = body.roles.map((x) => OrmUtils.mergeDeep(new Role(), { id: x })); // foreign key constraint will fail if role doesn't exist - } - - await member.save(); - - member.roles = member.roles.filter((x) => x.id !== everyone.id); - - // do not use promise.all as we have to first write to db before emitting the event to catch errors - await emitEvent({ - event: "GUILD_MEMBER_UPDATE", - guild_id, - data: { ...member, roles: member.roles.map((x) => x.id) } - } as GuildMemberUpdateEvent); - - res.json(member); -}); - -router.put("/", route({}), async (req: Request, res: Response) => { - - // TODO: Lurker mode - - const rights = await getRights(req.user_id); - - let { guild_id, member_id } = req.params; - if (member_id === "@me") { - member_id = req.user_id; - rights.hasThrow("JOIN_GUILDS"); - } else { - // TODO: join others by controller - } - - let guild = await Guild.findOneOrFail({ - where: { id: guild_id } - }); - - let emoji = await Emoji.find({ - where: { guild_id: guild_id } - }); - - let roles = await Role.find({ - where: { guild_id: guild_id } - }); - - let stickers = await Sticker.find({ - where: { guild_id: guild_id } - }); - - await Member.addToGuild(member_id, guild_id); - res.send({ ...guild, emojis: emoji, roles: roles, stickers: stickers }); -}); - -router.delete("/", route({}), async (req: Request, res: Response) => { - const permission = await getPermission(req.user_id); - const rights = await getRights(req.user_id); - const { guild_id, member_id } = req.params; - if (member_id !== "@me" || member_id === req.user_id) { - // TODO: unless force-joined - rights.hasThrow("SELF_LEAVE_GROUPS"); - } else { - rights.hasThrow("KICK_BAN_MEMBERS"); - permission.hasThrow("KICK_MEMBERS"); - } - - await Member.removeFromGuild(member_id, guild_id); - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/members/#member_id/nick.ts b/api/src/routes/guilds/#guild_id/members/#member_id/nick.ts deleted file mode 100644 index a6c71333..00000000 --- a/api/src/routes/guilds/#guild_id/members/#member_id/nick.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { getPermission, Member, PermissionResolvable } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { Request, Response, Router } from "express"; - -const router = Router(); - -router.patch("/", route({ body: "MemberNickChangeSchema" }), async (req: Request, res: Response) => { - let { guild_id, member_id } = req.params; - let permissionString: PermissionResolvable = "MANAGE_NICKNAMES"; - if (member_id === "@me") { - member_id = req.user_id; - permissionString = "CHANGE_NICKNAME"; - } - - const perms = await getPermission(req.user_id, guild_id); - perms.hasThrow(permissionString); - - await Member.changeNickname(member_id, guild_id, req.body.nick); - res.status(200).send(); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/members/#member_id/roles/#role_id/index.ts b/api/src/routes/guilds/#guild_id/members/#member_id/roles/#role_id/index.ts deleted file mode 100644 index 8f5ca7ba..00000000 --- a/api/src/routes/guilds/#guild_id/members/#member_id/roles/#role_id/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { getPermission, Member } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { Request, Response, Router } from "express"; - -const router = Router(); - -router.delete("/", route({ permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => { - const { guild_id, role_id, member_id } = req.params; - - await Member.removeRole(member_id, guild_id, role_id); - res.sendStatus(204); -}); - -router.put("/", route({ permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => { - const { guild_id, role_id, member_id } = req.params; - - await Member.addRole(member_id, guild_id, role_id); - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/members/index.ts b/api/src/routes/guilds/#guild_id/members/index.ts deleted file mode 100644 index 2ed28bda..00000000 --- a/api/src/routes/guilds/#guild_id/members/index.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Request, Response, Router } from "express"; -import { Guild, Member, PublicMemberProjection } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { MoreThan } from "typeorm"; -import { HTTPError } from "@fosscord/util"; - -const router = Router(); - -// TODO: send over websocket -// TODO: check for GUILD_MEMBERS intent - -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - const limit = Number(req.query.limit) || 1; - if (limit > 1000 || limit < 1) throw new HTTPError("Limit must be between 1 and 1000"); - const after = `${req.query.after}`; - const query = after ? { id: MoreThan(after) } : {}; - - await Member.IsInGuildOrFail(req.user_id, guild_id); - - const members = await Member.find({ - where: { guild_id, ...query }, - select: PublicMemberProjection, - take: limit, - order: { id: "ASC" } - }); - - return res.json(members); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/premium.ts b/api/src/routes/guilds/#guild_id/premium.ts deleted file mode 100644 index 75361ac6..00000000 --- a/api/src/routes/guilds/#guild_id/premium.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -const router = Router(); - -router.get("/subscriptions", route({}), async (req: Request, res: Response) => { - // TODO: - res.json([]); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/prune.ts b/api/src/routes/guilds/#guild_id/prune.ts deleted file mode 100644 index 673f022f..00000000 --- a/api/src/routes/guilds/#guild_id/prune.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Router, Request, Response } from "express"; -import { Guild, Member, Snowflake } from "@fosscord/util"; -import { LessThan, IsNull } from "typeorm"; -import { route } from "@fosscord/api"; -const router = Router(); - -//Returns all inactive members, respecting role hierarchy -export const inactiveMembers = async (guild_id: string, user_id: string, days: number, roles: string[] = []) => { - let date = new Date(); - date.setDate(date.getDate() - days); - //Snowflake should have `generateFromTime` method? Or similar? - let minId = BigInt(date.valueOf() - Snowflake.EPOCH) << BigInt(22); - - /** - idea: ability to customise the cutoff variable - possible candidates: public read receipt, last presence, last VC leave - **/ - let members = await Member.find({ - where: [ - { - guild_id, - last_message_id: LessThan(minId.toString()) - }, - { - last_message_id: IsNull() - } - ], - relations: ["roles"] - }); - console.log(members); - if (!members.length) return []; - - //I'm sure I can do this in the above db query ( and it would probably be better to do so ), but oh well. - if (roles.length && members.length) members = members.filter((user) => user.roles?.some((role) => roles.includes(role.id))); - - const me = await Member.findOneOrFail({ where: { id: user_id, guild_id }, relations: ["roles"] }); - const myHighestRole = Math.max(...(me.roles?.map((x) => x.position) || [])); - - const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); - - members = members.filter( - (member) => - member.id !== guild.owner_id && //can't kick owner - member.roles?.some( - (role) => - role.position < myHighestRole || //roles higher than me can't be kicked - me.id === guild.owner_id //owner can kick anyone - ) - ); - - return members; -}; - -router.get("/", route({}), async (req: Request, res: Response) => { - const days = parseInt(req.query.days as string); - - let roles = req.query.include_roles; - if (typeof roles === "string") roles = [roles]; //express will return array otherwise - - const members = await inactiveMembers(req.params.guild_id, req.user_id, days, roles as string[]); - - res.send({ pruned: members.length }); -}); - -router.post("/", route({ permission: "KICK_MEMBERS", right: "KICK_BAN_MEMBERS" }), async (req: Request, res: Response) => { - const days = parseInt(req.body.days); - - let roles = req.query.include_roles; - if (typeof roles === "string") roles = [roles]; - - const { guild_id } = req.params; - const members = await inactiveMembers(guild_id, req.user_id, days, roles as string[]); - - await Promise.all(members.map((x) => Member.removeFromGuild(x.id, guild_id))); - - res.send({ purged: members.length }); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/regions.ts b/api/src/routes/guilds/#guild_id/regions.ts deleted file mode 100644 index 308d5ee5..00000000 --- a/api/src/routes/guilds/#guild_id/regions.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Config, Guild, Member } from "@fosscord/util"; -import { Request, Response, Router } from "express"; -import { getVoiceRegions, route } from "@fosscord/api"; -import { getIpAdress } from "@fosscord/api"; - -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); - //TODO we should use an enum for guild's features and not hardcoded strings - return res.json(await getVoiceRegions(getIpAdress(req), guild.features.includes("VIP_REGIONS"))); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts b/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts deleted file mode 100644 index d4422a9c..00000000 --- a/api/src/routes/guilds/#guild_id/roles/#role_id/index.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { Router, Request, Response } from "express"; -import { Role, Member, GuildRoleUpdateEvent, GuildRoleDeleteEvent, emitEvent, handleFile, RoleModifySchema } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { HTTPError } from "@fosscord/util"; -import { OrmUtils } from "@fosscord/util"; - -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id, role_id } = req.params; - await Member.IsInGuildOrFail(req.user_id, guild_id); - const role = await Role.findOneOrFail({ where: { guild_id, id: role_id } }); - return res.json(role); -}); - -router.delete("/", route({ permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => { - const { guild_id, role_id } = req.params; - if (role_id === guild_id) throw new HTTPError("You can't delete the @everyone role"); - - await Promise.all([ - Role.delete({ - id: role_id, - guild_id: guild_id - }), - emitEvent({ - event: "GUILD_ROLE_DELETE", - guild_id, - data: { - guild_id, - role_id - } - } as GuildRoleDeleteEvent) - ]); - - res.sendStatus(204); -}); - -// TODO: check role hierarchy - -router.patch("/", route({ body: "RoleModifySchema", permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => { - const { role_id, guild_id } = req.params; - const body = req.body as RoleModifySchema; - - if (body.icon) body.icon = await handleFile(`/role-icons/${role_id}`, body.icon as string); - - const role = OrmUtils.mergeDeep(new Role(), { - ...body, - id: role_id, - guild_id, - permissions: String(req.permission!.bitfield & BigInt(body.permissions || "0")) - }); - - await Promise.all([ - role.save(), - emitEvent({ - event: "GUILD_ROLE_UPDATE", - guild_id, - data: { - guild_id, - role - } - } as GuildRoleUpdateEvent) - ]); - - res.json(role); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/roles/index.ts b/api/src/routes/guilds/#guild_id/roles/index.ts deleted file mode 100644 index 17f0b5e9..00000000 --- a/api/src/routes/guilds/#guild_id/roles/index.ts +++ /dev/null @@ -1,98 +0,0 @@ -import { Request, Response, Router } from "express"; -import { - Role, - getPermission, - Member, - GuildRoleCreateEvent, - GuildRoleUpdateEvent, - GuildRoleDeleteEvent, - emitEvent, - Config, - DiscordApiErrors, - handleFile, - RoleModifySchema, - RolePositionUpdateSchema -} from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { OrmUtils } from "@fosscord/util"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const guild_id = req.params.guild_id; - - await Member.IsInGuildOrFail(req.user_id, guild_id); - - const roles = await Role.find({ where: { guild_id } }); - - return res.json(roles); -}); - -router.post("/", route({ body: "RoleModifySchema", permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => { - const guild_id = req.params.guild_id; - const body = req.body as RoleModifySchema; - - const role_count = await Role.count({ where: { guild_id } }); - const { maxRoles } = Config.get().limits.guild; - - if (role_count > maxRoles) throw DiscordApiErrors.MAXIMUM_ROLES.withParams(maxRoles); - - let role: Role = OrmUtils.mergeDeep(new Role(),{ - // values before ...body are default and can be overriden - position: 0, - hoist: false, - color: 0, - mentionable: false, - ...body, - guild_id: guild_id, - managed: false, - permissions: String(req.permission!.bitfield & BigInt(body.permissions || "0")), - tags: undefined, - icon: null, - unicode_emoji: null - }); - - await Promise.all([ - role.save(), - emitEvent({ - event: "GUILD_ROLE_CREATE", - guild_id, - data: { - guild_id, - role: role - } - } as GuildRoleCreateEvent) - ]); - - res.json(role); -}); - -router.patch("/", route({ body: "RolePositionUpdateSchema" }), async (req: Request, res: Response) => { - const { guild_id } = req.params; - const body = req.body as RolePositionUpdateSchema; - - const perms = await getPermission(req.user_id, guild_id); - perms.hasThrow("MANAGE_ROLES"); - - await Promise.all(body.map(async (x) => Role.update({ guild_id, id: x.id }, { position: x.position }))); - - const roles = await Role.find({ where: body.map((x) => ({ id: x.id, guild_id })) }); - - await Promise.all( - roles.map((x) => - emitEvent({ - event: "GUILD_ROLE_UPDATE", - guild_id, - data: { - guild_id, - role: x - } - } as GuildRoleUpdateEvent) - ) - ); - - res.json(roles); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/stickers.ts b/api/src/routes/guilds/#guild_id/stickers.ts deleted file mode 100644 index 71c9dfcd..00000000 --- a/api/src/routes/guilds/#guild_id/stickers.ts +++ /dev/null @@ -1,121 +0,0 @@ -import { - emitEvent, - GuildStickersUpdateEvent, - handleFile, - Member, - ModifyGuildStickerSchema, - Snowflake, - Sticker, - StickerFormatType, - StickerType, - uploadFile -} from "@fosscord/util"; -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -import multer from "multer"; -import { HTTPError } from "@fosscord/util"; -import { OrmUtils } from "@fosscord/util"; -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - await Member.IsInGuildOrFail(req.user_id, guild_id); - - res.json(await Sticker.find({ where: { guild_id } })); -}); - -const bodyParser = multer({ - limits: { - fileSize: 1024 * 1024 * 100, - fields: 10, - files: 1 - }, - storage: multer.memoryStorage() -}).single("file"); - -router.post( - "/", - bodyParser, - route({ permission: "MANAGE_EMOJIS_AND_STICKERS", body: "ModifyGuildStickerSchema" }), - async (req: Request, res: Response) => { - if (!req.file) throw new HTTPError("missing file"); - - const { guild_id } = req.params; - const body = req.body as ModifyGuildStickerSchema; - const id = Snowflake.generate(); - - const [sticker] = await Promise.all([ - OrmUtils.mergeDeep(new Sticker(), { - ...body, - guild_id, - id, - type: StickerType.GUILD, - format_type: getStickerFormat(req.file.mimetype), - available: true - }).save(), - uploadFile(`/stickers/${id}`, req.file) - ]); - - await sendStickerUpdateEvent(guild_id); - - res.json(sticker); - } -); - -export function getStickerFormat(mime_type: string) { - switch (mime_type) { - case "image/apng": - return StickerFormatType.APNG; - case "application/json": - return StickerFormatType.LOTTIE; - case "image/png": - return StickerFormatType.PNG; - case "image/gif": - return StickerFormatType.GIF; - default: - throw new HTTPError("invalid sticker format: must be png, apng or lottie"); - } -} - -router.get("/:sticker_id", route({}), async (req: Request, res: Response) => { - const { guild_id, sticker_id } = req.params; - await Member.IsInGuildOrFail(req.user_id, guild_id); - - res.json(await Sticker.findOneOrFail({ where: { guild_id, id: sticker_id } })); -}); - -router.patch( - "/:sticker_id", - route({ body: "ModifyGuildStickerSchema", permission: "MANAGE_EMOJIS_AND_STICKERS" }), - async (req: Request, res: Response) => { - const { guild_id, sticker_id } = req.params; - const body = req.body as ModifyGuildStickerSchema; - - const sticker = await OrmUtils.mergeDeep(new Sticker(), { ...body, guild_id, id: sticker_id }).save(); - await sendStickerUpdateEvent(guild_id); - - return res.json(sticker); - } -); - -async function sendStickerUpdateEvent(guild_id: string) { - return emitEvent({ - event: "GUILD_STICKERS_UPDATE", - guild_id: guild_id, - data: { - guild_id: guild_id, - stickers: await Sticker.find({ where: { guild_id } }) - } - } as GuildStickersUpdateEvent); -} - -router.delete("/:sticker_id", route({ permission: "MANAGE_EMOJIS_AND_STICKERS" }), async (req: Request, res: Response) => { - const { guild_id, sticker_id } = req.params; - - await Sticker.delete({ guild_id, id: sticker_id }); - await sendStickerUpdateEvent(guild_id); - - return res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/templates.ts b/api/src/routes/guilds/#guild_id/templates.ts deleted file mode 100644 index 9c79692d..00000000 --- a/api/src/routes/guilds/#guild_id/templates.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { Request, Response, Router } from "express"; -import { Guild, Template } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { generateCode } from "@fosscord/api"; -import { OrmUtils } from "@fosscord/util"; - -const router: Router = Router(); - -const TemplateGuildProjection: (keyof Guild)[] = [ - "name", - "description", - "region", - "verification_level", - "default_message_notifications", - "explicit_content_filter", - "preferred_locale", - "afk_timeout", - "roles", - // "channels", - "afk_channel_id", - "system_channel_id", - "system_channel_flags", - "icon" -]; - -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - - let templates = await Template.find({ where: { source_guild_id: guild_id } }); - - return res.json(templates); -}); - -router.post("/", route({ body: "TemplateCreateSchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { - const { guild_id } = req.params; - const guild = await Guild.findOneOrFail({ where: { id: guild_id }, select: TemplateGuildProjection }); - const exists = await Template.findOneOrFail({ where: { id: guild_id } }).catch((e) => {}); - if (exists) throw new HTTPError("Template already exists", 400); - - const template = await OrmUtils.mergeDeep(new Template(), { - ...req.body, - code: generateCode(), - creator_id: req.user_id, - created_at: new Date(), - updated_at: new Date(), - source_guild_id: guild_id, - serialized_source_guild: guild - }).save(); - - res.json(template); -}); - -router.delete("/:code", route({ permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { - const { code, guild_id } = req.params; - - const template = await Template.delete({ - code, - source_guild_id: guild_id - }); - - res.json(template); -}); - -router.put("/:code", route({ permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { - const { code, guild_id } = req.params; - const guild = await Guild.findOneOrFail({ where: { id: guild_id }, select: TemplateGuildProjection }); - - const template = await OrmUtils.mergeDeep(new Template(), { code, serialized_source_guild: guild }).save(); - - res.json(template); -}); - -router.patch("/:code", route({ body: "TemplateModifySchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { - const { code, guild_id } = req.params; - const { name, description } = req.body; - - const template = await OrmUtils.mergeDeep(new Template(), { code, name: name, description: description, source_guild_id: guild_id }).save(); - - res.json(template); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/vanity-url.ts b/api/src/routes/guilds/#guild_id/vanity-url.ts deleted file mode 100644 index ff92ce8d..00000000 --- a/api/src/routes/guilds/#guild_id/vanity-url.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { Channel, ChannelType, getPermission, Guild, Invite, trimSpecial, VanityUrlSchema } from "@fosscord/util"; -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -import { HTTPError } from "@fosscord/util"; -import { OrmUtils } from "@fosscord/util"; - -const router = Router(); - -const InviteRegex = /\W/g; - -router.get("/", route({ permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { - const { guild_id } = req.params; - const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); - - if (!guild.features.includes("ALIASABLE_NAMES")) { - const invite = await Invite.findOne({ where: { guild_id: guild_id, vanity_url: true } }); - if (!invite) return res.json({ code: null }); - - return res.json({ code: invite.code, uses: invite.uses }); - } else { - const invite = await Invite.find({ where: { guild_id: guild_id, vanity_url: true } }); - if (!invite || invite.length == 0) return res.json({ code: null }); - - return res.json(invite.map((x) => ({ code: x.code, uses: x.uses }))); - } -}); - -router.patch("/", route({ body: "VanityUrlSchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { - const { guild_id } = req.params; - const body = req.body as VanityUrlSchema; - const code = body.code?.replace(InviteRegex, ""); - - const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); - if (!guild.features.includes("VANITY_URL")) throw new HTTPError("Your guild doesn't support vanity urls"); - - if (!code || code.length === 0) throw new HTTPError("Code cannot be null or empty"); - - const invite = await Invite.findOne({ where: { code } }); - if (invite) throw new HTTPError("Invite already exists"); - - const { id } = await Channel.findOneOrFail({ where: { guild_id, type: ChannelType.GUILD_TEXT } }); - - await OrmUtils.mergeDeep(new Invite(), { - vanity_url: true, - code: code, - temporary: false, - uses: 0, - max_uses: 0, - max_age: 0, - created_at: new Date(), - expires_at: new Date(), - guild_id: guild_id, - channel_id: id - }).save(); - - return res.json({ where: { code } }); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/voice-states/#user_id/index.ts b/api/src/routes/guilds/#guild_id/voice-states/#user_id/index.ts deleted file mode 100644 index 28a9e8c1..00000000 --- a/api/src/routes/guilds/#guild_id/voice-states/#user_id/index.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Channel, ChannelType, DiscordApiErrors, emitEvent, getPermission, VoiceState, VoiceStateUpdateEvent, VoiceStateUpdateSchema } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { Request, Response, Router } from "express"; -import { OrmUtils } from "@fosscord/util"; - -const router = Router(); -router.patch("/", route({ body: "VoiceStateUpdateSchema" }), async (req: Request, res: Response) => { - const body = req.body as VoiceStateUpdateSchema; - let { guild_id, user_id } = req.params; - if (user_id === "@me") user_id = req.user_id; - - const perms = await getPermission(req.user_id, guild_id, body.channel_id); - - /* - From https://discord.com/developers/docs/resources/guild#modify-current-user-voice-state - You must have the MUTE_MEMBERS permission to unsuppress others. You can always suppress yourself. - You must have the REQUEST_TO_SPEAK permission to request to speak. You can always clear your own request to speak. - */ - if (body.suppress && user_id !== req.user_id) { - perms.hasThrow("MUTE_MEMBERS"); - } - if (!body.suppress) body.request_to_speak_timestamp = new Date(); - if (body.request_to_speak_timestamp) perms.hasThrow("REQUEST_TO_SPEAK"); - - let voice_state = await VoiceState.findOne({ - where: { - guild_id, - channel_id: body.channel_id, - user_id - } - }); - if (!voice_state) throw DiscordApiErrors.UNKNOWN_VOICE_STATE; - - voice_state = OrmUtils.mergeDeep(voice_state, body) as VoiceState; - const channel = await Channel.findOneOrFail({ where: { guild_id, id: body.channel_id } }); - if (channel.type !== ChannelType.GUILD_STAGE_VOICE) { - throw DiscordApiErrors.CANNOT_EXECUTE_ON_THIS_CHANNEL_TYPE; - } - - await Promise.all([ - voice_state.save(), - emitEvent({ - event: "VOICE_STATE_UPDATE", - data: voice_state, - guild_id - } as VoiceStateUpdateEvent) - ]); - return res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/webhooks.ts b/api/src/routes/guilds/#guild_id/webhooks.ts deleted file mode 100644 index c8c1eb5c..00000000 --- a/api/src/routes/guilds/#guild_id/webhooks.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { Channel, ChannelUpdateEvent, getPermission, emitEvent } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; -const router = Router(); - -//TODO: implement webhooks -router.get("/", route({}), async (req: Request, res: Response) => { - res.json([]); -}); -export default router; diff --git a/api/src/routes/guilds/#guild_id/welcome_screen.ts b/api/src/routes/guilds/#guild_id/welcome_screen.ts deleted file mode 100644 index d08300ba..00000000 --- a/api/src/routes/guilds/#guild_id/welcome_screen.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Request, Response, Router } from "express"; -import { Guild, getPermission, Snowflake, Member, GuildUpdateWelcomeScreenSchema } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const guild_id = req.params.guild_id; - - const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); - await Member.IsInGuildOrFail(req.user_id, guild_id); - - res.json(guild.welcome_screen); -}); - -router.patch("/", route({ body: "GuildUpdateWelcomeScreenSchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { - const guild_id = req.params.guild_id; - const body = req.body as GuildUpdateWelcomeScreenSchema; - - const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); - - if (!guild.welcome_screen.enabled) throw new HTTPError("Welcome screen disabled", 400); - if (body.welcome_channels) guild.welcome_screen.welcome_channels = body.welcome_channels; // TODO: check if they exist and are valid - if (body.description) guild.welcome_screen.description = body.description; - if (body.enabled != null) guild.welcome_screen.enabled = body.enabled; - - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/widget.json.ts b/api/src/routes/guilds/#guild_id/widget.json.ts deleted file mode 100644 index 37739418..00000000 --- a/api/src/routes/guilds/#guild_id/widget.json.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { Request, Response, Router } from "express"; -import { Config, Permissions, Guild, Invite, Channel, Member } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { random, route } from "@fosscord/api"; -import { OrmUtils } from "@fosscord/util"; - -const router: Router = Router(); - -// Undocumented API notes: -// An invite is created for the widget_channel_id on request (only if an existing one created by the widget doesn't already exist) -// This invite created doesn't include an inviter object like user created ones and has a default expiry of 24 hours -// Missing user object information is intentional (https://github.com/discord/discord-api-docs/issues/1287) -// channels returns voice channel objects where @everyone has the CONNECT permission -// members (max 100 returned) is a sample of all members, and bots par invisible status, there exists some alphabetical distribution pattern between the members returned - -// https://discord.com/developers/docs/resources/guild#get-guild-widget -// TODO: Cache the response for a guild for 5 minutes regardless of response -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - - const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); - if (!guild.widget_enabled) throw new HTTPError("Widget Disabled", 404); - - // Fetch existing widget invite for widget channel - let invite = await Invite.findOne({ where: { channel_id: guild.widget_channel_id } }); - - if (guild.widget_channel_id && !invite) { - // Create invite for channel if none exists - // TODO: Refactor invite create code to a shared function - const max_age = 86400; // 24 hours - const expires_at = new Date(max_age * 1000 + Date.now()); - const body = { - code: random(), - temporary: false, - uses: 0, - max_uses: 0, - max_age: max_age, - expires_at, - created_at: new Date(), - guild_id, - channel_id: guild.widget_channel_id, - inviter_id: null - }; - - invite = await OrmUtils.mergeDeep(new Invite(), body).save(); - } - - // Fetch voice channels, and the @everyone permissions object - const channels = [] as any[]; - - (await Channel.find({ where: { guild_id: guild_id, type: 2 }, order: { position: "ASC" } })).filter((doc) => { - // Only return channels where @everyone has the CONNECT permission - if ( - doc.permission_overwrites === undefined || - Permissions.channelPermission(doc.permission_overwrites, Permissions.FLAGS.CONNECT) === Permissions.FLAGS.CONNECT - ) { - channels.push({ - id: doc.id, - name: doc.name, - position: doc.position - }); - } - }); - - // Fetch members - // TODO: Understand how Discord's max 100 random member sample works, and apply to here (see top of this file) - let members = await Member.find({ where: { guild_id } }); - - // Construct object to respond with - const data = { - id: guild_id, - name: guild.name, - instant_invite: invite?.code, - channels: channels, - members: members, - presence_count: guild.presence_count - }; - - res.set("Cache-Control", "public, max-age=300"); - return res.json(data); -}); - -export default router; diff --git a/api/src/routes/guilds/#guild_id/widget.png.ts b/api/src/routes/guilds/#guild_id/widget.png.ts deleted file mode 100644 index ec0ac85c..00000000 --- a/api/src/routes/guilds/#guild_id/widget.png.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { Request, Response, Router } from "express"; -import { Guild } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import fs from "fs"; -import path from "path"; - -const router: Router = Router(); - -// TODO: use svg templates instead of node-canvas for improved performance and to change it easily - -// https://discord.com/developers/docs/resources/guild#get-guild-widget-image -// TODO: Cache the response -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - - const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); - if (!guild.widget_enabled) throw new HTTPError("Unknown Guild", 404); - - // Fetch guild information - const icon = guild.icon; - const name = guild.name; - const presence = guild.presence_count + " ONLINE"; - - // Fetch parameter - const style = req.query.style?.toString() || "shield"; - if (!["shield", "banner1", "banner2", "banner3", "banner4"].includes(style)) { - throw new HTTPError("Value must be one of ('shield', 'banner1', 'banner2', 'banner3', 'banner4').", 400); - } - - // Setup canvas - const { createCanvas } = require("canvas"); - const { loadImage } = require("canvas"); - const sizeOf = require("image-size"); - - // TODO: Widget style templates need Fosscord branding - const source = path.join(__dirname, "..", "..", "..", "..", "assets", "widget", `${style}.png`); - if (!fs.existsSync(source)) { - throw new HTTPError("Widget template does not exist.", 400); - } - - // Create base template image for parameter - const { width, height } = await sizeOf(source); - const canvas = createCanvas(width, height); - const ctx = canvas.getContext("2d"); - const template = await loadImage(source); - ctx.drawImage(template, 0, 0); - - // Add the guild specific information to the template asset image - switch (style) { - case "shield": - ctx.textAlign = "center"; - await drawText(ctx, 73, 13, "#FFFFFF", "thin 10px Verdana", presence); - break; - case "banner1": - if (icon) await drawIcon(ctx, 20, 27, 50, icon); - await drawText(ctx, 83, 51, "#FFFFFF", "12px Verdana", name, 22); - await drawText(ctx, 83, 66, "#C9D2F0FF", "thin 11px Verdana", presence); - break; - case "banner2": - if (icon) await drawIcon(ctx, 13, 19, 36, icon); - await drawText(ctx, 62, 34, "#FFFFFF", "12px Verdana", name, 15); - await drawText(ctx, 62, 49, "#C9D2F0FF", "thin 11px Verdana", presence); - break; - case "banner3": - if (icon) await drawIcon(ctx, 20, 20, 50, icon); - await drawText(ctx, 83, 44, "#FFFFFF", "12px Verdana", name, 27); - await drawText(ctx, 83, 58, "#C9D2F0FF", "thin 11px Verdana", presence); - break; - case "banner4": - if (icon) await drawIcon(ctx, 21, 136, 50, icon); - await drawText(ctx, 84, 156, "#FFFFFF", "13px Verdana", name, 27); - await drawText(ctx, 84, 171, "#C9D2F0FF", "thin 12px Verdana", presence); - break; - default: - throw new HTTPError("Value must be one of ('shield', 'banner1', 'banner2', 'banner3', 'banner4').", 400); - } - - // Return final image - const buffer = canvas.toBuffer("image/png"); - res.set("Content-Type", "image/png"); - res.set("Cache-Control", "public, max-age=3600"); - return res.send(buffer); -}); - -async function drawIcon(canvas: any, x: number, y: number, scale: number, icon: string) { - // @ts-ignore - const img = new require("canvas").Image(); - img.src = icon; - - // Do some canvas clipping magic! - canvas.save(); - canvas.beginPath(); - - const r = scale / 2; // use scale to determine radius - canvas.arc(x + r, y + r, r, 0, 2 * Math.PI, false); // start circle at x, and y coords + radius to find center - - canvas.clip(); - canvas.drawImage(img, x, y, scale, scale); - - canvas.restore(); -} - -async function drawText(canvas: any, x: number, y: number, color: string, font: string, text: string, maxcharacters?: number) { - canvas.fillStyle = color; - canvas.font = font; - if (text.length > (maxcharacters || 0) && maxcharacters) text = text.slice(0, maxcharacters) + "..."; - canvas.fillText(text, x, y); -} - -export default router; diff --git a/api/src/routes/guilds/#guild_id/widget.ts b/api/src/routes/guilds/#guild_id/widget.ts deleted file mode 100644 index dbb4cc0c..00000000 --- a/api/src/routes/guilds/#guild_id/widget.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Request, Response, Router } from "express"; -import { Guild, WidgetModifySchema } from "@fosscord/util"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -// https://discord.com/developers/docs/resources/guild#get-guild-widget-settings -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - - const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); - - return res.json({ enabled: guild.widget_enabled || false, channel_id: guild.widget_channel_id || null }); -}); - -// https://discord.com/developers/docs/resources/guild#modify-guild-widget -router.patch("/", route({ body: "WidgetModifySchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { - const body = req.body as WidgetModifySchema; - const { guild_id } = req.params; - - await Guild.update({ id: guild_id }, { widget_enabled: body.enabled, widget_channel_id: body.channel_id }); - // Widget invite for the widget_channel_id gets created as part of the /guilds/{guild.id}/widget.json request - - return res.json(body); -}); - -export default router; diff --git a/api/src/routes/guilds/index.ts b/api/src/routes/guilds/index.ts deleted file mode 100644 index e4d66192..00000000 --- a/api/src/routes/guilds/index.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Router, Request, Response } from "express"; -import { Role, Guild, Snowflake, Config, getRights, Member, Channel, DiscordApiErrors, handleFile, GuildCreateSchema } from "@fosscord/util"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -//TODO: create default channel - -router.post("/", route({ body: "GuildCreateSchema", right: "CREATE_GUILDS" }), async (req: Request, res: Response) => { - const body = req.body as GuildCreateSchema; - - const { maxGuilds } = Config.get().limits.user; - const guild_count = await Member.count({ where: { id: req.user_id } }); - const rights = await getRights(req.user_id); - if ((guild_count >= maxGuilds)&&!rights.has("MANAGE_GUILDS")) { - throw DiscordApiErrors.MAXIMUM_GUILDS.withParams(maxGuilds); - } - - const guild = await Guild.createGuild({ ...body, owner_id: req.user_id }); - - const { autoJoin } = Config.get().guild; - if (autoJoin.enabled && !autoJoin.guilds?.length) { - // @ts-ignore - await Config.set({ guild: { autoJoin: { guilds: [guild.id] } } }); - } - - await Member.addToGuild(req.user_id, guild.id); - - res.status(201).json({ id: guild.id }); -}); - -export default router; diff --git a/api/src/routes/guilds/templates/index.ts b/api/src/routes/guilds/templates/index.ts deleted file mode 100644 index 3a0de9e8..00000000 --- a/api/src/routes/guilds/templates/index.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Request, Response, Router } from "express"; -import { Template, Guild, Role, Snowflake, Config, User, Member, DiscordApiErrors, OrmUtils, GuildTemplateCreateSchema } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import fetch from "node-fetch"; -const router: Router = Router(); - -router.get("/:code", route({}), async (req: Request, res: Response) => { - const { allowDiscordTemplates, allowRaws, enabled } = Config.get().templates; - if (!enabled) res.json({ code: 403, message: "Template creation & usage is disabled on this instance." }).sendStatus(403); - - const { code } = req.params; - - if (code.startsWith("discord:")) { - if (!allowDiscordTemplates) return res.json({ code: 403, message: "Discord templates cannot be used on this instance." }).sendStatus(403); - const discordTemplateID = code.split("discord:", 2)[1]; - - const discordTemplateData = await fetch(`https://discord.com/api/v9/guilds/templates/${discordTemplateID}`, { - method: "get", - headers: { "Content-Type": "application/json" } - }); - return res.json(await discordTemplateData.json()); - } - - if (code.startsWith("external:")) { - if (!allowRaws) return res.json({ code: 403, message: "Importing raws is disabled on this instance." }).sendStatus(403); - - return res.json(code.split("external:", 2)[1]); - } - - const template = await Template.findOneOrFail({ where: { code } }); - res.json(template); -}); - -router.post("/:code", route({ body: "GuildTemplateCreateSchema" }), async (req: Request, res: Response) => { - const { enabled, allowTemplateCreation, allowDiscordTemplates, allowRaws } = Config.get().templates; - if (!enabled) return res.json({ code: 403, message: "Template creation & usage is disabled on this instance." }).sendStatus(403); - if (!allowTemplateCreation) return res.json({ code: 403, message: "Template creation is disabled on this instance." }).sendStatus(403); - - const { code } = req.params; - const body = req.body as GuildTemplateCreateSchema; - - const { maxGuilds } = Config.get().limits.user; - - const guild_count = await Member.count({ where: { id: req.user_id } }); - if (guild_count >= maxGuilds) { - throw DiscordApiErrors.MAXIMUM_GUILDS.withParams(maxGuilds); - } - - const template = await Template.findOneOrFail({ where: { code } }); - - const guild_id = Snowflake.generate(); - - const [guild, role] = await Promise.all([ - OrmUtils.mergeDeep(new Guild(), { - ...body, - ...template.serialized_source_guild, - id: guild_id, - owner_id: req.user_id - }).save(), - (OrmUtils.mergeDeep(new Role(), { - id: guild_id, - guild_id: guild_id, - color: 0, - hoist: false, - managed: true, - mentionable: true, - name: "@everyone", - permissions: BigInt("2251804225"), - position: 0, - tags: null - }) as Role).save() - ]); - - await Member.addToGuild(req.user_id, guild_id); - - res.status(201).json({ id: guild.id }); -}); - -export default router; diff --git a/api/src/routes/invites/index.ts b/api/src/routes/invites/index.ts deleted file mode 100644 index 1b434505..00000000 --- a/api/src/routes/invites/index.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Router, Request, Response } from "express"; -import { emitEvent, getPermission, Guild, Invite, InviteDeleteEvent, User, PublicInviteRelation } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { HTTPError } from "@fosscord/util"; - -const router: Router = Router(); - -router.get("/:code", route({}), async (req: Request, res: Response) => { - const { code } = req.params; - - const invite = await Invite.findOneOrFail({ where: { code }, relations: PublicInviteRelation }); - - res.status(200).send(invite); -}); - -router.post("/:code", route({right: "USE_MASS_INVITES"}), async (req: Request, res: Response) => { - const { code } = req.params; - const { guild_id } = await Invite.findOneOrFail({ where: { code } }) - const { features } = await Guild.findOneOrFail({ where: { id: guild_id} }); - const { public_flags } = await User.findOneOrFail({ where: { id: req.user_id } }); - - if(features.includes("INTERNAL_EMPLOYEE_ONLY") && (public_flags & 1) !== 1) throw new HTTPError("Only intended for the staff of this server.", 401); - if(features.includes("INVITES_CLOSED")) throw new HTTPError("Sorry, this guild has joins closed.", 403); - - const invite = await Invite.joinGuild(req.user_id, code); - - res.json(invite); -}); - -// * cant use permission of route() function because path doesn't have guild_id/channel_id -router.delete("/:code", route({}), async (req: Request, res: Response) => { - const { code } = req.params; - const invite = await Invite.findOneOrFail({ where: { code } }); - const { guild_id, channel_id } = invite; - - const permission = await getPermission(req.user_id, guild_id, channel_id); - - if (!permission.has("MANAGE_GUILD") && !permission.has("MANAGE_CHANNELS")) - throw new HTTPError("You missing the MANAGE_GUILD or MANAGE_CHANNELS permission", 401); - - await Promise.all([ - Invite.delete({ code }), - emitEvent({ - event: "INVITE_DELETE", - guild_id: guild_id, - data: { - channel_id: channel_id, - guild_id: guild_id, - code: code - } - } as InviteDeleteEvent) - ]); - - res.json({ invite: invite }); -}); - -export default router; diff --git a/api/src/routes/oauth2/tokens.ts b/api/src/routes/oauth2/tokens.ts deleted file mode 100644 index bd284221..00000000 --- a/api/src/routes/oauth2/tokens.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - //TODO - res.json([]); -}); - -export default router; diff --git a/api/src/routes/outbound-promotions.ts b/api/src/routes/outbound-promotions.ts deleted file mode 100644 index 411e95bf..00000000 --- a/api/src/routes/outbound-promotions.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - //TODO - res.json([]).status(200); -}); - -export default router; diff --git a/api/src/routes/partners/#guild_id/requirements.ts b/api/src/routes/partners/#guild_id/requirements.ts deleted file mode 100644 index 545c5c78..00000000 --- a/api/src/routes/partners/#guild_id/requirements.ts +++ /dev/null @@ -1,40 +0,0 @@ - -import { Guild, Config } from "@fosscord/util"; - -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { guild_id } = req.params; - // TODO: - // Load from database - // Admin control, but for now it allows anyone to be discoverable - - res.send({ - guild_id: guild_id, - safe_environment: true, - healthy: true, - health_score_pending: false, - size: true, - nsfw_properties: {}, - protected: true, - sufficient: true, - sufficient_without_grace_period: true, - valid_rules_channel: true, - retention_healthy: true, - engagement_healthy: true, - age: true, - minimum_age: 0, - health_score: { - avg_nonnew_participators: 0, - avg_nonnew_communicators: 0, - num_intentful_joiners: 0, - perc_ret_w1_intentful: 0 - }, - minimum_size: 0 - }); -}); - -export default router; diff --git a/api/src/routes/ping.ts b/api/src/routes/ping.ts deleted file mode 100644 index 3c1da2c3..00000000 --- a/api/src/routes/ping.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; -import { Config } from "@fosscord/util"; - -const router = Router(); - -router.get("/", route({}), (req: Request, res: Response) => { - const { general } = Config.get(); - res.send({ - ping: "pong!", - instance: { - id: general.instanceId, - name: general.instanceName, - description: general.instanceDescription, - image: general.image, - - correspondenceEmail: general.correspondenceEmail, - correspondenceUserID: general.correspondenceUserID, - - frontPage: general.frontPage, - tosPage: general.tosPage, - }, - }); -}); - -export default router; diff --git a/api/src/routes/policies/instance/domains.ts b/api/src/routes/policies/instance/domains.ts deleted file mode 100644 index 20cd07ba..00000000 --- a/api/src/routes/policies/instance/domains.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -import { Config } from "@fosscord/util"; -import { config } from "dotenv" -const router = Router(); - -router.get("/",route({}), async (req: Request, res: Response) => { - const { cdn, gateway } = Config.get(); - - const IdentityForm = { - cdn: cdn.endpointPublic || process.env.CDN || "http://localhost:3001", - gateway: gateway.endpointPublic || process.env.GATEWAY || "ws://localhost:3002" - }; - - res.json(IdentityForm); -}); - -export default router; diff --git a/api/src/routes/policies/instance/index.ts b/api/src/routes/policies/instance/index.ts deleted file mode 100644 index e3da014f..00000000 --- a/api/src/routes/policies/instance/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -import { Config } from "@fosscord/util"; -const router = Router(); - - -router.get("/",route({}), async (req: Request, res: Response) => { - const { general } = Config.get(); - res.json(general); -}); - -export default router; diff --git a/api/src/routes/policies/instance/limits.ts b/api/src/routes/policies/instance/limits.ts deleted file mode 100644 index 7de1476b..00000000 --- a/api/src/routes/policies/instance/limits.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -import { Config } from "@fosscord/util"; -const router = Router(); - -router.get("/",route({}), async (req: Request, res: Response) => { - const { limits } = Config.get(); - res.json(limits); -}); - -export default router; diff --git a/api/src/routes/scheduled-maintenances/upcoming_json.ts b/api/src/routes/scheduled-maintenances/upcoming_json.ts deleted file mode 100644 index 83092e44..00000000 --- a/api/src/routes/scheduled-maintenances/upcoming_json.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -const router = Router(); - -router.get("/scheduled-maintenances/upcoming.json",route({}), async (req: Request, res: Response) => { - res.json({ - "page": {}, - "scheduled_maintenances": {} - }); -}); - -export default router; diff --git a/api/src/routes/science.ts b/api/src/routes/science.ts deleted file mode 100644 index 8556a3ad..00000000 --- a/api/src/routes/science.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.post("/", route({}), (req: Request, res: Response) => { - // TODO: - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/stage-instances.ts b/api/src/routes/stage-instances.ts deleted file mode 100644 index 411e95bf..00000000 --- a/api/src/routes/stage-instances.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - //TODO - res.json([]).status(200); -}); - -export default router; diff --git a/api/src/routes/sticker-packs/index.ts b/api/src/routes/sticker-packs/index.ts deleted file mode 100644 index e6560d12..00000000 --- a/api/src/routes/sticker-packs/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; -import { StickerPack } from "@fosscord/util"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const sticker_packs = await StickerPack.find({ relations: ["stickers"] }); - - res.json({ sticker_packs }); -}); - -export default router; diff --git a/api/src/routes/stickers/#sticker_id/index.ts b/api/src/routes/stickers/#sticker_id/index.ts deleted file mode 100644 index b484a7a1..00000000 --- a/api/src/routes/stickers/#sticker_id/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Sticker } from "@fosscord/util"; -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { sticker_id } = req.params; - - res.json(await Sticker.find({ where: { id: sticker_id } })); -}); - -export default router; diff --git a/api/src/routes/stop.ts b/api/src/routes/stop.ts deleted file mode 100644 index 7f8b78ba..00000000 --- a/api/src/routes/stop.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -import { User } from "@fosscord/util"; - -const router: Router = Router(); - -router.post("/", route({}), async (req: Request, res: Response) => { - //EXPERIMENTAL: have an "OPERATOR" platform permission implemented for this API route - const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["rights"] }); - if((Number(user.rights) << Number(0))%Number(2)==Number(1)) { - console.log("user that POSTed to the API was ALLOWED"); - console.log(user.rights); - res.sendStatus(200) - process.kill(process.pid, 'SIGTERM') - } - else { - console.log("operation failed"); - console.log(user.rights); - res.sendStatus(403) - } -}); - -export default router; - -//THIS API CAN ONLY BE USED BY USERS WITH THE 'OPERATOR' RIGHT (which is the value of 1) ONLY IF ANY OTHER RIGHTS ARE ADDED OR IF THE USER DOESNT HAVE PERMISSION, -//THE REQUEST WILL RETURN 403 'FORBIDDEN' diff --git a/api/src/routes/store/published-listings/applications.ts b/api/src/routes/store/published-listings/applications.ts deleted file mode 100644 index 060a4c3d..00000000 --- a/api/src/routes/store/published-listings/applications.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/:id", route({}), async (req: Request, res: Response) => { - //TODO - const id = req.params.id; - res.json({ - id: "", - summary: "", - sku: { - id: "", - type: 1, - dependent_sku_id: null, - application_id: "", - manifets_labels: [], - access_type: 2, - name: "", - features: [], - release_date: "", - premium: false, - slug: "", - flags: 4, - genres: [], - legal_notice: "", - application: { - id: "", - name: "", - icon: "", - description: "", - summary: "", - cover_image: "", - primary_sku_id: "", - hook: true, - slug: "", - guild_id: "", - bot_public: "", - bot_require_code_grant: false, - verify_key: "", - publishers: [ - { - id: "", - name: "" - } - ], - developers: [ - { - id: "", - name: "" - } - ], - system_requirements: {}, - show_age_gate: false, - price: { - amount: 0, - currency: "EUR" - }, - locales: [] - }, - tagline: "", - description: "", - carousel_items: [ - { - asset_id: "" - } - ], - header_logo_dark_theme: {}, //{id: "", size: 4665, mime_type: "image/gif", width 160, height: 160} - header_logo_light_theme: {}, - box_art: {}, - thumbnail: {}, - header_background: {}, - hero_background: {}, - assets: [] - } - }).status(200); -}); - -export default router; diff --git a/api/src/routes/store/published-listings/applications/#id/subscription-plans.ts b/api/src/routes/store/published-listings/applications/#id/subscription-plans.ts deleted file mode 100644 index 54151ae5..00000000 --- a/api/src/routes/store/published-listings/applications/#id/subscription-plans.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - //TODO - res.json([ - { - id: "", - name: "", - interval: 1, - interval_count: 1, - tax_inclusive: true, - sku_id: "", - fallback_price: 499, - fallback_currency: "eur", - currency: "eur", - price: 4199, - price_tier: null - } - ]).status(200); -}); - -export default router; diff --git a/api/src/routes/store/published-listings/skus.ts b/api/src/routes/store/published-listings/skus.ts deleted file mode 100644 index 060a4c3d..00000000 --- a/api/src/routes/store/published-listings/skus.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/:id", route({}), async (req: Request, res: Response) => { - //TODO - const id = req.params.id; - res.json({ - id: "", - summary: "", - sku: { - id: "", - type: 1, - dependent_sku_id: null, - application_id: "", - manifets_labels: [], - access_type: 2, - name: "", - features: [], - release_date: "", - premium: false, - slug: "", - flags: 4, - genres: [], - legal_notice: "", - application: { - id: "", - name: "", - icon: "", - description: "", - summary: "", - cover_image: "", - primary_sku_id: "", - hook: true, - slug: "", - guild_id: "", - bot_public: "", - bot_require_code_grant: false, - verify_key: "", - publishers: [ - { - id: "", - name: "" - } - ], - developers: [ - { - id: "", - name: "" - } - ], - system_requirements: {}, - show_age_gate: false, - price: { - amount: 0, - currency: "EUR" - }, - locales: [] - }, - tagline: "", - description: "", - carousel_items: [ - { - asset_id: "" - } - ], - header_logo_dark_theme: {}, //{id: "", size: 4665, mime_type: "image/gif", width 160, height: 160} - header_logo_light_theme: {}, - box_art: {}, - thumbnail: {}, - header_background: {}, - hero_background: {}, - assets: [] - } - }).status(200); -}); - -export default router; diff --git a/api/src/routes/store/published-listings/skus/#sku_id/subscription-plans.ts b/api/src/routes/store/published-listings/skus/#sku_id/subscription-plans.ts deleted file mode 100644 index 723a5160..00000000 --- a/api/src/routes/store/published-listings/skus/#sku_id/subscription-plans.ts +++ /dev/null @@ -1,142 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -const skus = new Map([ - [ - "521842865731534868", - [ - { - id: "511651856145973248", - name: "Premium Monthly (Legacy)", - interval: 1, - interval_count: 1, - tax_inclusive: true, - sku_id: "521842865731534868", - currency: "usd", - price: 0, - price_tier: null - }, - { - id: "511651860671627264", - name: "Premium Yearly (Legacy)", - interval: 2, - interval_count: 1, - tax_inclusive: true, - sku_id: "521842865731534868", - currency: "usd", - price: 0, - price_tier: null - } - ] - ], - [ - "521846918637420545", - [ - { - id: "511651871736201216", - name: "Premium Classic Monthly", - interval: 1, - interval_count: 1, - tax_inclusive: true, - sku_id: "521846918637420545", - currency: "usd", - price: 0, - price_tier: null - }, - { - id: "511651876987469824", - name: "Premium Classic Yearly", - interval: 2, - interval_count: 1, - tax_inclusive: true, - sku_id: "521846918637420545", - currency: "usd", - price: 0, - price_tier: null - } - ] - ], - [ - "521847234246082599", - [ - { - id: "642251038925127690", - name: "Premium Quarterly", - interval: 1, - interval_count: 3, - tax_inclusive: true, - sku_id: "521847234246082599", - currency: "usd", - price: 0, - price_tier: null - }, - { - id: "511651880837840896", - name: "Premium Monthly", - interval: 1, - interval_count: 1, - tax_inclusive: true, - sku_id: "521847234246082599", - currency: "usd", - price: 0, - price_tier: null - }, - { - id: "511651885459963904", - name: "Premium Yearly", - interval: 2, - interval_count: 1, - tax_inclusive: true, - sku_id: "521847234246082599", - currency: "usd", - price: 0, - price_tier: null - } - ] - ], - [ - "590663762298667008", - [ - { - id: "590665532894740483", - name: "Server Boost Monthly", - interval: 1, - interval_count: 1, - tax_inclusive: true, - sku_id: "590663762298667008", - discount_price: 0, - currency: "usd", - price: 0, - price_tier: null - }, - { - id: "590665538238152709", - name: "Server Boost Yearly", - interval: 2, - interval_count: 1, - tax_inclusive: true, - sku_id: "590663762298667008", - discount_price: 0, - currency: "usd", - price: 0, - price_tier: null - } - ] - ] -]); - -router.get("/", route({}), async (req: Request, res: Response) => { - // TODO: add the ability to add custom - const { sku_id } = req.params; - - if (!skus.has(sku_id)) { - console.log(`Request for invalid SKU ${sku_id}! Please report this!`); - res.sendStatus(404); - } else { - res.json(skus.get(sku_id)).status(200); - } -}); - -export default router; diff --git a/api/src/routes/teams.ts b/api/src/routes/teams.ts deleted file mode 100644 index 7ce3abcb..00000000 --- a/api/src/routes/teams.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - //TODO - res.send([]); -}); - -export default router; diff --git a/api/src/routes/template.ts.disabled b/api/src/routes/template.ts.disabled deleted file mode 100644 index fcc59ef4..00000000 --- a/api/src/routes/template.ts.disabled +++ /dev/null @@ -1,11 +0,0 @@ -//TODO: this is a template for a generic route - -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -const router = Router(); - -router.get("/",route({}), async (req: Request, res: Response) => { - res.json({}); -}); - -export default router; diff --git a/api/src/routes/track.ts b/api/src/routes/track.ts deleted file mode 100644 index 8556a3ad..00000000 --- a/api/src/routes/track.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.post("/", route({}), (req: Request, res: Response) => { - // TODO: - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/updates.ts b/api/src/routes/updates.ts deleted file mode 100644 index a24e94c1..00000000 --- a/api/src/routes/updates.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; -import { Config, Release } from "@fosscord/util"; - -const router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { client } = Config.get(); - - const release = await Release.findOneOrFail({ where: { name: client.releases.upstreamVersion } }) - - res.json({ - name: release.name, - pub_date: release.pub_date, - url: release.url, - notes: release.notes - }); -}); - -export default router; diff --git a/api/src/routes/users/#id/index.ts b/api/src/routes/users/#id/index.ts deleted file mode 100644 index bdb1060f..00000000 --- a/api/src/routes/users/#id/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Router, Request, Response } from "express"; -import { User } from "@fosscord/util"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const { id } = req.params; - - res.json(await User.getPublicUser(id)); -}); - -export default router; diff --git a/api/src/routes/users/#id/profile.ts b/api/src/routes/users/#id/profile.ts deleted file mode 100644 index 7a995a8c..00000000 --- a/api/src/routes/users/#id/profile.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Router, Request, Response } from "express"; -import { PublicConnectedAccount, PublicUser, User, UserPublic, Member } from "@fosscord/util"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -export interface UserProfileResponse { - user: UserPublic; - connected_accounts: PublicConnectedAccount; - premium_guild_since?: Date; - premium_since?: Date; -} - -router.get("/", route({ test: { response: { body: "UserProfileResponse" } } }), async (req: Request, res: Response) => { - if (req.params.id === "@me") req.params.id = req.user_id; - const user = await User.getPublicUser(req.params.id, { relations: ["connected_accounts"] }); - - let mutual_guilds: object[] = []; - let premium_guild_since; - const requested_member = await Member.find( { where: { id: req.params.id, } }) - const self_member = await Member.find( { where: { id: req.user_id, } }) - - for(const rmem of requested_member) { - if(rmem.premium_since) { - if(premium_guild_since){ - if(premium_guild_since > rmem.premium_since) { - premium_guild_since = rmem.premium_since; - } - } else { - premium_guild_since = rmem.premium_since; - } - } - for(const smem of self_member) { - if (smem.guild_id === rmem.guild_id) { - mutual_guilds.push({id: rmem.guild_id, nick: rmem.nick}) - } - } - } - res.json({ - connected_accounts: user.connected_accounts, - premium_guild_since: premium_guild_since, // TODO - premium_since: user.premium_since, // TODO - mutual_guilds: mutual_guilds, // TODO {id: "", nick: null} when ?with_mutual_guilds=true - user: { - username: user.username, - discriminator: user.discriminator, - id: user.id, - public_flags: user.public_flags, - avatar: user.avatar, - accent_color: user.accent_color, - banner: user.banner, - bio: req.user_bot ? null : user.bio, - bot: user.bot - } - }); -}); - -export default router; diff --git a/api/src/routes/users/#id/relationships.ts b/api/src/routes/users/#id/relationships.ts deleted file mode 100644 index 61655c25..00000000 --- a/api/src/routes/users/#id/relationships.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Router, Request, Response } from "express"; -import { User } from "@fosscord/util"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -export interface UserRelationsResponse { - object: { - id?: string, - username?: string, - avatar?: string, - discriminator?: string, - public_flags?: number - } -} - - -router.get("/", route({ test: { response: { body: "UserRelationsResponse" } } }), async (req: Request, res: Response) => { - let mutual_relations: object[] = []; - const requested_relations = await User.findOneOrFail({ - where: { id: req.params.id }, - relations: ["relationships"] - }); - const self_relations = await User.findOneOrFail({ - where: { id: req.user_id }, - relations: ["relationships"] - }); - - for(const rmem of requested_relations.relationships) { - for(const smem of self_relations.relationships) - if (rmem.to_id === smem.to_id && rmem.type === 1 && rmem.to_id !== req.user_id) { - let relation_user = await User.getPublicUser(rmem.to_id) - - mutual_relations.push({id: relation_user.id, username: relation_user.username, avatar: relation_user.avatar, discriminator: relation_user.discriminator, public_flags: relation_user.public_flags}) - } - } - - res.json(mutual_relations) -}); - -export default router; diff --git a/api/src/routes/users/@me/activities/statistics/applications.ts b/api/src/routes/users/@me/activities/statistics/applications.ts deleted file mode 100644 index 014df8af..00000000 --- a/api/src/routes/users/@me/activities/statistics/applications.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.get("/", route({}), (req: Request, res: Response) => { - // TODO: - res.json([]).status(200); -}); - -export default router; diff --git a/api/src/routes/users/@me/affinities/guilds.ts b/api/src/routes/users/@me/affinities/guilds.ts deleted file mode 100644 index 8d744744..00000000 --- a/api/src/routes/users/@me/affinities/guilds.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.get("/", route({}), (req: Request, res: Response) => { - // TODO: - res.status(200).send({ guild_affinities: [] }); -}); - -export default router; diff --git a/api/src/routes/users/@me/affinities/users.ts b/api/src/routes/users/@me/affinities/users.ts deleted file mode 100644 index 6d4e4991..00000000 --- a/api/src/routes/users/@me/affinities/users.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.get("/", route({}), (req: Request, res: Response) => { - // TODO: - res.status(200).send({ user_affinities: [], inverse_user_affinities: [] }); -}); - -export default router; diff --git a/api/src/routes/users/@me/applications/#app_id/entitlements.ts b/api/src/routes/users/@me/applications/#app_id/entitlements.ts deleted file mode 100644 index 411e95bf..00000000 --- a/api/src/routes/users/@me/applications/#app_id/entitlements.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - //TODO - res.json([]).status(200); -}); - -export default router; diff --git a/api/src/routes/users/@me/billing/country-code.ts b/api/src/routes/users/@me/billing/country-code.ts deleted file mode 100644 index 33d40796..00000000 --- a/api/src/routes/users/@me/billing/country-code.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - //TODO - res.json({ country_code: "US" }).status(200); -}); - -export default router; diff --git a/api/src/routes/users/@me/billing/payment-sources.ts b/api/src/routes/users/@me/billing/payment-sources.ts deleted file mode 100644 index 014df8af..00000000 --- a/api/src/routes/users/@me/billing/payment-sources.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.get("/", route({}), (req: Request, res: Response) => { - // TODO: - res.json([]).status(200); -}); - -export default router; diff --git a/api/src/routes/users/@me/billing/subscriptions.ts b/api/src/routes/users/@me/billing/subscriptions.ts deleted file mode 100644 index 411e95bf..00000000 --- a/api/src/routes/users/@me/billing/subscriptions.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - //TODO - res.json([]).status(200); -}); - -export default router; diff --git a/api/src/routes/users/@me/channels.ts b/api/src/routes/users/@me/channels.ts deleted file mode 100644 index ad483529..00000000 --- a/api/src/routes/users/@me/channels.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Request, Response, Router } from "express"; -import { Recipient, DmChannelDTO, Channel, DmChannelCreateSchema } from "@fosscord/util"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const recipients = await Recipient.find({ - where: { user_id: req.user_id, closed: false }, - relations: ["channel", "channel.recipients"] - }); - res.json(await Promise.all(recipients.map((r) => DmChannelDTO.from(r.channel, [req.user_id])))); -}); - -router.post("/", route({ body: "DmChannelCreateSchema" }), async (req: Request, res: Response) => { - const body = req.body as DmChannelCreateSchema; - res.json(await Channel.createDMChannel(body.recipients, req.user_id, body.name)); -}); - -export default router; diff --git a/api/src/routes/users/@me/connections.ts b/api/src/routes/users/@me/connections.ts deleted file mode 100644 index 411e95bf..00000000 --- a/api/src/routes/users/@me/connections.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - //TODO - res.json([]).status(200); -}); - -export default router; diff --git a/api/src/routes/users/@me/delete.ts b/api/src/routes/users/@me/delete.ts deleted file mode 100644 index 1d81c2b9..00000000 --- a/api/src/routes/users/@me/delete.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Router, Request, Response } from "express"; -import { Guild, Member, User } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import bcrypt from "bcrypt"; -import { HTTPError } from "@fosscord/util"; - -const router = Router(); - -router.post("/", route({}), async (req: Request, res: Response) => { - const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["data"] }); //User object - let correctpass = true; - - if (user.data.hash) { - // guest accounts can delete accounts without password - correctpass = await bcrypt.compare(req.body.password, user.data.hash); - if (!correctpass) { - throw new HTTPError(req.t("auth:login.INVALID_PASSWORD")); - } - } - - // TODO: decrement guild member count - - if (correctpass) { - await Promise.all([User.delete({ id: req.user_id }), Member.delete({ id: req.user_id })]); - - res.sendStatus(204); - } else { - res.sendStatus(401); - } -}); - -export default router; diff --git a/api/src/routes/users/@me/devices.ts b/api/src/routes/users/@me/devices.ts deleted file mode 100644 index 8556a3ad..00000000 --- a/api/src/routes/users/@me/devices.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.post("/", route({}), (req: Request, res: Response) => { - // TODO: - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/users/@me/disable.ts b/api/src/routes/users/@me/disable.ts deleted file mode 100644 index 4aff3774..00000000 --- a/api/src/routes/users/@me/disable.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { User } from "@fosscord/util"; -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; -import bcrypt from "bcrypt"; - -const router = Router(); - -router.post("/", route({}), async (req: Request, res: Response) => { - const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["data"] }); //User object - let correctpass = true; - - if (user.data.hash) { - // guest accounts can delete accounts without password - correctpass = await bcrypt.compare(req.body.password, user.data.hash); //Not sure if user typed right password :/ - } - - if (correctpass) { - await User.update({ id: req.user_id }, { disabled: true }); - - res.sendStatus(204); - } else { - res.status(400).json({ message: "Password does not match", code: 50018 }); - } -}); - -export default router; diff --git a/api/src/routes/users/@me/email-settings.ts b/api/src/routes/users/@me/email-settings.ts deleted file mode 100644 index 3114984e..00000000 --- a/api/src/routes/users/@me/email-settings.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.get("/", route({}), (req: Request, res: Response) => { - // TODO: - res.json({ - categories: { - social: true, - communication: true, - tips: false, - updates_and_announcements: false, - recommendations_and_events: false - }, - initialized: false - }).status(200); -}); - -export default router; diff --git a/api/src/routes/users/@me/entitlements.ts b/api/src/routes/users/@me/entitlements.ts deleted file mode 100644 index 341e2b4c..00000000 --- a/api/src/routes/users/@me/entitlements.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.get("/gifts", route({}), (req: Request, res: Response) => { - // TODO: - res.json([]).status(200); -}); - -export default router; diff --git a/api/src/routes/users/@me/guilds.ts b/api/src/routes/users/@me/guilds.ts deleted file mode 100644 index 4d4fccd4..00000000 --- a/api/src/routes/users/@me/guilds.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { Router, Request, Response } from "express"; -import { Guild, Member, User, GuildDeleteEvent, GuildMemberRemoveEvent, emitEvent, Config } from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import { route } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - const members = await Member.find({ relations: ["guild"], where: { id: req.user_id } }); - - let guild = members.map((x) => x.guild); - - if ("with_counts" in req.query && req.query.with_counts == "true") { - guild = []; // TODO: Load guilds with user role permissions number - } - - res.json(guild); -}); - -// user send to leave a certain guild -router.delete("/:guild_id", route({}), async (req: Request, res: Response) => { - const { autoJoin } = Config.get().guild; - const { guild_id } = req.params; - const guild = await Guild.findOneOrFail({ where: { id: guild_id }, select: ["owner_id"] }); - - if (!guild) throw new HTTPError("Guild doesn't exist", 404); - if (guild.owner_id === req.user_id) throw new HTTPError("You can't leave your own guild", 400); - if (autoJoin.enabled && autoJoin.guilds.includes(guild_id) && !autoJoin.canLeave) { - throw new HTTPError("You can't leave instance auto join guilds", 400); - } - - await Promise.all([ - Member.delete({ id: req.user_id, guild_id: guild_id }), - emitEvent({ - event: "GUILD_DELETE", - data: { - id: guild_id - }, - user_id: req.user_id - } as GuildDeleteEvent) - ]); - - const user = await User.getPublicUser(req.user_id); - - await emitEvent({ - event: "GUILD_MEMBER_REMOVE", - data: { - guild_id: guild_id, - user: user - }, - guild_id: guild_id - } as GuildMemberRemoveEvent); - - return res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/users/@me/guilds/premium/subscription-slots.ts b/api/src/routes/users/@me/guilds/premium/subscription-slots.ts deleted file mode 100644 index 014df8af..00000000 --- a/api/src/routes/users/@me/guilds/premium/subscription-slots.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.get("/", route({}), (req: Request, res: Response) => { - // TODO: - res.json([]).status(200); -}); - -export default router; diff --git a/api/src/routes/users/@me/index.ts b/api/src/routes/users/@me/index.ts deleted file mode 100644 index 7d095451..00000000 --- a/api/src/routes/users/@me/index.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { Router, Request, Response } from "express"; -import { User, PrivateUserProjection, emitEvent, UserUpdateEvent, handleFile, FieldErrors, UserModifySchema } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import bcrypt from "bcrypt"; -import { OrmUtils, generateToken } from "@fosscord/util"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - res.json(await User.findOne({ select: PrivateUserProjection, where: { id: req.user_id } })); -}); - -router.patch("/", route({ body: "UserModifySchema" }), async (req: Request, res: Response) => { - var token = null as any; - const body = req.body as UserModifySchema; - - if (body.avatar) body.avatar = await handleFile(`/avatars/${req.user_id}`, body.avatar as string); - if (body.banner) body.banner = await handleFile(`/banners/${req.user_id}`, body.banner as string); - let user = await User.findOneOrFail({ where: { id: req.user_id }, select: [...PrivateUserProjection, "data"] }); - - if (body.password) { - if (user.data?.hash) { - const same_password = await bcrypt.compare(body.password, user.data.hash || ""); - if (!same_password) { - throw FieldErrors({ password: { message: req.t("auth:login.INVALID_PASSWORD"), code: "INVALID_PASSWORD" } }); - } - } else { - user.data.hash = await bcrypt.hash(body.password, 12); - } - } - - if (body.new_password) { - if (!body.password && !user.email) { - throw FieldErrors({ - password: { code: "BASE_TYPE_REQUIRED", message: req.t("common:field.BASE_TYPE_REQUIRED") } - }); - } - user.data.hash = await bcrypt.hash(body.new_password, 12); - user.data.valid_tokens_since = new Date(); - token = await generateToken(user.id) as string; - } - - if(body.username){ - let check_username = body?.username?.replace(/\s/g, ''); - if(!check_username) { - throw FieldErrors({ - username: { code: "BASE_TYPE_REQUIRED", message: req.t("common:field.BASE_TYPE_REQUIRED") } - }); - } - } - - user = OrmUtils.mergeDeep(user, body); - await user.save(); - - // @ts-ignore - delete user.data; - - // TODO: send update member list event in gateway - await emitEvent({ - event: "USER_UPDATE", - user_id: req.user_id, - data: user - } as UserUpdateEvent); - - res.json({ - ...user, - token - }); -}); - -export default router; -// {"message": "Invalid two-factor code", "code": 60008} diff --git a/api/src/routes/users/@me/library.ts b/api/src/routes/users/@me/library.ts deleted file mode 100644 index 7ac13bae..00000000 --- a/api/src/routes/users/@me/library.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Response, Request } from "express"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.get("/", route({}), (req: Request, res: Response) => { - // TODO: - res.status(200).send([]); -}); - -export default router; diff --git a/api/src/routes/users/@me/mfa/codes.ts b/api/src/routes/users/@me/mfa/codes.ts deleted file mode 100644 index 4224a1c0..00000000 --- a/api/src/routes/users/@me/mfa/codes.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -import { BackupCode, Config, FieldErrors, generateMfaBackupCodes, MfaCodesSchema, User } from "@fosscord/util"; -import bcrypt from "bcrypt"; - -const router = Router(); - -// TODO: This route is replaced with users/@me/mfa/codes-verification in newer clients - -router.post("/", route({ body: "MfaCodesSchema" }), async (req: Request, res: Response) => { - const { password, regenerate } = req.body as MfaCodesSchema; - - const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["data"] }); - - if (!await bcrypt.compare(password, user.data.hash || "")) { - throw FieldErrors({ password: { message: req.t("auth:login.INVALID_PASSWORD"), code: "INVALID_PASSWORD" } }); - } - - var codes: BackupCode[]; - if (regenerate && Config.get().security.twoFactor.generateBackupCodes) { - await BackupCode.update( - { user: { id: req.user_id } }, - { expired: true } - ); - - codes = generateMfaBackupCodes(req.user_id); - await Promise.all(codes.map(x => x.save())); - } - else { - codes = await BackupCode.find({ - where: { - user: { - id: req.user_id, - }, - expired: false - } - }); - } - - return res.json({ - backup_codes: codes.map(x => ({ ...x, expired: undefined })), - }) -}); - -export default router; diff --git a/api/src/routes/users/@me/mfa/totp/disable.ts b/api/src/routes/users/@me/mfa/totp/disable.ts deleted file mode 100644 index 2fe9355c..00000000 --- a/api/src/routes/users/@me/mfa/totp/disable.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Router, Request, Response } from "express"; -import { route } from "@fosscord/api"; -import { verifyToken } from 'node-2fa'; -import { HTTPError } from "lambert-server"; -import { User, generateToken, BackupCode, TotpDisableSchema } from "@fosscord/util"; - -const router = Router(); - -router.post("/", route({ body: "TotpDisableSchema" }), async (req: Request, res: Response) => { - const body = req.body as TotpDisableSchema; - - const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["totp_secret"] }); - - const backup = await BackupCode.findOne({ where: { code: body.code } }); - if (!backup) { - const ret = verifyToken(user.totp_secret!, body.code); - if (!ret || ret.delta != 0) - throw new HTTPError(req.t("auth:login.INVALID_TOTP_CODE"), 60008); - } - - await User.update( - { id: req.user_id }, - { - mfa_enabled: false, - totp_secret: "", - }, - ); - - await BackupCode.update( - { user: { id: req.user_id } }, - { - expired: true, - } - ); - - return res.json({ - token: await generateToken(user.id), - }); -}); - -export default router; \ No newline at end of file diff --git a/api/src/routes/users/@me/mfa/totp/enable.ts b/api/src/routes/users/@me/mfa/totp/enable.ts deleted file mode 100644 index ac668d1d..00000000 --- a/api/src/routes/users/@me/mfa/totp/enable.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { Router, Request, Response } from "express"; -import { User, generateToken, BackupCode, generateMfaBackupCodes, Config, TotpEnableSchema } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import bcrypt from "bcrypt"; -import { HTTPError } from "lambert-server"; -import { verifyToken } from 'node-2fa'; - -const router = Router(); - -router.post("/", route({ body: "TotpEnableSchema" }), async (req: Request, res: Response) => { - const body = req.body as TotpEnableSchema; - - const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["data"] }); - - // TODO: Are guests allowed to enable 2fa? - if (user.data.hash) { - if (!await bcrypt.compare(body.password, user.data.hash)) { - throw new HTTPError(req.t("auth:login.INVALID_PASSWORD")); - } - } - - if (!body.secret) - throw new HTTPError(req.t("auth:login.INVALID_TOTP_SECRET"), 60005); - - if (!body.code) - throw new HTTPError(req.t("auth:login.INVALID_TOTP_CODE"), 60008); - - if (verifyToken(body.secret, body.code)?.delta != 0) - throw new HTTPError(req.t("auth:login.INVALID_TOTP_CODE"), 60008); - - let backup_codes: BackupCode[] = []; - if (Config.get().security.twoFactor.generateBackupCodes) { - backup_codes = generateMfaBackupCodes(req.user_id); - await Promise.all(backup_codes.map(x => x.save())); - } - - await User.update( - { id: req.user_id }, - { mfa_enabled: true, totp_secret: body.secret } - ); - - res.send({ - token: await generateToken(user.id), - backup_codes: backup_codes.map(x => ({ ...x, expired: undefined })), - }); -}); - -export default router; \ No newline at end of file diff --git a/api/src/routes/users/@me/notes.ts b/api/src/routes/users/@me/notes.ts deleted file mode 100644 index f938f088..00000000 --- a/api/src/routes/users/@me/notes.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; -import { User, Note, emitEvent, Snowflake } from "@fosscord/util"; - -const router: Router = Router(); - -router.get("/:id", route({}), async (req: Request, res: Response) => { - const { id } = req.params; - - const note = await Note.findOneOrFail({ - where: { - owner: { id: req.user_id }, - target: { id: id }, - } - }); - - return res.json({ - note: note?.content, - note_user_id: id, - user_id: req.user_id, - }); -}); - -router.put("/:id", route({}), async (req: Request, res: Response) => { - const { id } = req.params; - const owner = await User.findOneOrFail({ where: { id: req.user_id } }); - const target = await User.findOneOrFail({ where: { id: id } }); //if noted user does not exist throw - const { note } = req.body; - - if (note && note.length) { - // upsert a note - if (await Note.findOne({ where: { owner: { id: owner.id }, target: { id: target.id } } })) { - Note.update( - { owner: { id: owner.id }, target: { id: target.id } }, - { owner, target, content: note } - ); - } - else { - Note.insert( - { id: Snowflake.generate(), owner, target, content: note } - ); - } - } - else { - await Note.delete({ owner: { id: owner.id }, target: { id: target.id } }); - } - - await emitEvent({ - event: "USER_NOTE_UPDATE", - data: { - note: note, - id: target.id - }, - user_id: owner.id, - }); - - return res.status(204); -}); - -export default router; diff --git a/api/src/routes/users/@me/relationships.ts b/api/src/routes/users/@me/relationships.ts deleted file mode 100644 index f7464b99..00000000 --- a/api/src/routes/users/@me/relationships.ts +++ /dev/null @@ -1,204 +0,0 @@ -import { - RelationshipAddEvent, - User, - PublicUserProjection, - RelationshipType, - RelationshipRemoveEvent, - emitEvent, - Relationship, - Config -} from "@fosscord/util"; -import { Router, Response, Request } from "express"; -import { HTTPError } from "@fosscord/util"; -import { DiscordApiErrors } from "@fosscord/util"; -import { route } from "@fosscord/api"; -import { OrmUtils } from "@fosscord/util"; - -const router = Router(); - -const userProjection: (keyof User)[] = ["relationships", ...PublicUserProjection]; - -router.get("/", route({}), async (req: Request, res: Response) => { - const user = await User.findOneOrFail({ - where: { id: req.user_id }, - relations: ["relationships", "relationships.to"], - select: ["relationships"] - }); - - //TODO DTO - const related_users = user.relationships.map((r) => { - return { - id: r.to.id, - type: r.type, - nickname: null, - user: r.to.toPublicUser() - }; - }); - - return res.json(related_users); -}); - -router.put("/:id", route({ body: "RelationshipPutSchema" }), async (req: Request, res: Response) => { - return await updateRelationship( - req, - res, - await User.findOneOrFail({ where: { id: req.params.id }, relations: ["relationships", "relationships.to"], select: userProjection }), - req.body.type ?? RelationshipType.friends - ); -}); - -router.post("/", route({ body: "RelationshipPostSchema" }), async (req: Request, res: Response) => { - return await updateRelationship( - req, - res, - await User.findOneOrFail({ - relations: ["relationships", "relationships.to"], - select: userProjection, - where: { - discriminator: String(req.body.discriminator).padStart(4, "0"), //Discord send the discriminator as integer, we need to add leading zeroes - username: req.body.username - } - }), - req.body.type - ); -}); - -router.delete("/:id", route({}), async (req: Request, res: Response) => { - const { id } = req.params; - if (id === req.user_id) throw new HTTPError("You can't remove yourself as a friend"); - - const user = await User.findOneOrFail({ where: { id: req.user_id }, select: userProjection, relations: ["relationships"] }); - const friend = await User.findOneOrFail({ where: { id: id }, select: userProjection, relations: ["relationships"] }); - - const relationship = user.relationships.find((x) => x.to_id === id); - const friendRequest = friend.relationships.find((x) => x.to_id === req.user_id); - - if (!relationship) throw new HTTPError("You are not friends with the user", 404); - if (relationship?.type === RelationshipType.blocked) { - // unblock user - - await Promise.all([ - Relationship.delete({ id: relationship.id }), - emitEvent({ - event: "RELATIONSHIP_REMOVE", - user_id: req.user_id, - data: relationship.toPublicRelationship() - } as RelationshipRemoveEvent) - ]); - return res.sendStatus(204); - } - if (friendRequest && friendRequest.type !== RelationshipType.blocked) { - await Promise.all([ - Relationship.delete({ id: friendRequest.id }), - await emitEvent({ - event: "RELATIONSHIP_REMOVE", - data: friendRequest.toPublicRelationship(), - user_id: id - } as RelationshipRemoveEvent) - ]); - } - - await Promise.all([ - Relationship.delete({ id: relationship.id }), - emitEvent({ - event: "RELATIONSHIP_REMOVE", - data: relationship.toPublicRelationship(), - user_id: req.user_id - } as RelationshipRemoveEvent) - ]); - - return res.sendStatus(204); -}); - -export default router; - -async function updateRelationship(req: Request, res: Response, friend: User, type: RelationshipType) { - const id = friend.id; - if (id === req.user_id) throw new HTTPError("You can't add yourself as a friend"); - - const user = await User.findOneOrFail({ - where: { id: req.user_id }, - relations: ["relationships", "relationships.to"], - select: userProjection - }); - - let relationship = user.relationships.find((x) => x.to_id === id); - const friendRequest = friend.relationships.find((x) => x.to_id === req.user_id); - - // TODO: you can add infinitely many blocked users (should this be prevented?) - if (type === RelationshipType.blocked) { - if (relationship) { - if (relationship.type === RelationshipType.blocked) throw new HTTPError("You already blocked the user"); - relationship.type = RelationshipType.blocked; - await relationship.save(); - } else { - relationship = await (OrmUtils.mergeDeep(new Relationship(), { to_id: id, type: RelationshipType.blocked, from_id: req.user_id }) as Relationship).save(); - } - - if (friendRequest && friendRequest.type !== RelationshipType.blocked) { - await Promise.all([ - Relationship.delete({ id: friendRequest.id }), - emitEvent({ - event: "RELATIONSHIP_REMOVE", - data: friendRequest.toPublicRelationship(), - user_id: id - } as RelationshipRemoveEvent) - ]); - } - - await emitEvent({ - event: "RELATIONSHIP_ADD", - data: relationship.toPublicRelationship(), - user_id: req.user_id - } as RelationshipAddEvent); - - return res.sendStatus(204); - } - - const { maxFriends } = Config.get().limits.user; - if (user.relationships.length >= maxFriends) throw DiscordApiErrors.MAXIMUM_FRIENDS.withParams(maxFriends); - - let incoming_relationship = OrmUtils.mergeDeep(new Relationship(), { nickname: undefined, type: RelationshipType.incoming, to: user, from: friend }); - let outgoing_relationship = OrmUtils.mergeDeep(new Relationship(), { - nickname: undefined, - type: RelationshipType.outgoing, - to: friend, - from: user - }); - - if (friendRequest) { - if (friendRequest.type === RelationshipType.blocked) throw new HTTPError("The user blocked you"); - if (friendRequest.type === RelationshipType.friends) throw new HTTPError("You are already friends with the user"); - // accept friend request - incoming_relationship = friendRequest as any; //TODO: checkme, any cast - incoming_relationship.type = RelationshipType.friends; - } - - if (relationship) { - if (relationship.type === RelationshipType.outgoing) throw new HTTPError("You already sent a friend request"); - if (relationship.type === RelationshipType.blocked) throw new HTTPError("Unblock the user before sending a friend request"); - if (relationship.type === RelationshipType.friends) throw new HTTPError("You are already friends with the user"); - outgoing_relationship = relationship as any; //TODO: checkme, any cast - outgoing_relationship.type = RelationshipType.friends; - } - - await Promise.all([ - incoming_relationship.save(), - outgoing_relationship.save(), - emitEvent({ - event: "RELATIONSHIP_ADD", - data: outgoing_relationship.toPublicRelationship(), - user_id: req.user_id - } as RelationshipAddEvent), - emitEvent({ - event: "RELATIONSHIP_ADD", - data: { - ...incoming_relationship.toPublicRelationship(), - should_notify: true - }, - user_id: id - } as RelationshipAddEvent) - ]); - - return res.sendStatus(204); -} diff --git a/api/src/routes/users/@me/settings.ts b/api/src/routes/users/@me/settings.ts deleted file mode 100644 index 7578d36e..00000000 --- a/api/src/routes/users/@me/settings.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Router, Response, Request } from "express"; -import { User, UserSettings } from "@fosscord/util"; -import { route } from "@fosscord/api"; - -const router = Router(); - -router.patch("/", route({ body: "UserSettingsSchema" }), async (req: Request, res: Response) => { - const body = req.body as UserSettings; - if (body.locale === "en") body.locale = "en-US"; // fix discord client crash on unkown locale - - const user = await User.findOneOrFail({ where: { id: req.user_id, bot: false }, relations: ["settings"] }); - user.settings = { ...user.settings, ...body } as UserSettings; - await user.save(); - - res.sendStatus(204); -}); - -export default router; diff --git a/api/src/routes/voice/regions.ts b/api/src/routes/voice/regions.ts deleted file mode 100644 index 4de304ee..00000000 --- a/api/src/routes/voice/regions.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Router, Request, Response } from "express"; -import { getIpAdress, route } from "@fosscord/api"; -import { getVoiceRegions } from "@fosscord/api"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - res.json(await getVoiceRegions(getIpAdress(req), true)); //vip true? -}); - -export default router; diff --git a/api/src/start.ts b/api/src/start.ts deleted file mode 100644 index 98beb1fa..00000000 --- a/api/src/start.ts +++ /dev/null @@ -1,36 +0,0 @@ -process.on("uncaughtException", console.error); -process.on("unhandledRejection", console.error); - -import { config } from "dotenv"; -config(); -import { FosscordServer } from "./Server"; -import cluster from "cluster"; -import os from "os"; -let cores = 1; -try { - cores = Number(process.env.THREADS) || os.cpus().length; -} catch { - console.log("[API] Failed to get thread count! Using 1...") -} - -if (cluster.isPrimary && process.env.NODE_ENV == "production") { - console.log(`Primary ${process.pid} is running`); - - // Fork workers. - for (let i = 0; i < cores; i++) { - cluster.fork(); - } - - cluster.on("exit", (worker, code, signal) => { - console.log(`worker ${worker.process.pid} died, restart worker`); - cluster.fork(); - }); -} else { - let port = Number(process.env.PORT) || 3001; - - const server = new FosscordServer({ port }); - server.start().catch(console.error); - - // @ts-ignore - global.server = server; -} diff --git a/api/src/util/entities/AssetCacheItem.ts b/api/src/util/entities/AssetCacheItem.ts deleted file mode 100644 index 160dece6..00000000 --- a/api/src/util/entities/AssetCacheItem.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class AssetCacheItem { - constructor(public Key: string, public FilePath: string = "", public Headers: any = null as any) {} -} \ No newline at end of file diff --git a/api/src/util/entities/blockedEmailDomains.txt b/api/src/util/entities/blockedEmailDomains.txt deleted file mode 100644 index eb88305d..00000000 --- a/api/src/util/entities/blockedEmailDomains.txt +++ /dev/null @@ -1,123978 +0,0 @@ -0-00.usa.cc -0-180.com -0-30-24.com -0-420.com -0-900.com -0-aa.com -0-attorney.com -0-mail.com -0-z.xyz -00.msk.ru -00.pe -000000pay.com -00043015.com -000476.com -000521.xyz -000777.info -00082aa.com -00082cc.com -00082ff.com -00082ii.com -00082mm.com -00082rr.com -00082ss.com -00082uu.com -00082xx.com -00082zz.com -000865b.com -000865e.com -000865g.com -000865j.com -0009827.com -000av.app -000br88.com -000xxoo.com -001.igg.biz -0010.monster -0018k7.com -001913.com -0019k7.com -001xs.net -001xs.org -001xs.xyz -002.city -002288211.com -002r.com -002t.com -0031casino.com -003271.com -0033.pl -003388211.com -0039.cf -0039.ga -0039.gq -0039.ml -003919.com -003j.com -004697.com -004k.com -004r.com -005005.xyz -005588211.com -0058.ru -005f4.xyz -006j.com -006o.com -006z.com -007.surf -007946.com -007948.com -007dotcom.com -007game.ru -007security.com -008106.com -0083015.com -008g8662shjel9p.xyz -0094445.com -009988211.com -009qs.com -00b2bcr51qv59xst2.cf -00b2bcr51qv59xst2.ga -00b2bcr51qv59xst2.gq -00b2bcr51qv59xst2.ml -00b2bcr51qv59xst2.tk -00daipai.com -00g0.com -00reviews.com -00xht.com -01-lund.ru -0100110tomachine.com -01011099.com -0101888dns.com -0104445.com -01080.ru -010880.com -01092019.ru -010pc28.com -010xfhs.com -01106.monster -0111vns.com -01122200.com -01122233.com -01122255.com -01133322.com -01133333.com -01133377.com -01144422.com -01144488.com -01144499.com -01155555.com -0124445.com -0134445.com -01428570.xyz -01502.monster -0164445.com -0168.cd -01689306707.mobi -0174445.com -0184445.com -0188.info -0188019.com -01911.ru -019352.com -019625.com -0199902.com -0199903.com -0199906.com -0199908.com -0199912.com -0199917.com -0199918.com -0199919.com -0199920.com -0199921.com -0199923.com -0199924.com -0199926.com -0199930.com -0199931.com -0199934.com -0199935.com -0199937.com -0199938.com -0199941.com -0199942.com -0199945.com -0199946.com -0199947.com -0199948.com -0199949.com -0199950.com -0199952.com -0199954.com -0199956.com -0199959.com -0199960.com -0199961.com -0199963.com -0199965.com -0199968.com -0199970.com -0199971.com -0199972.com -0199973.com -0199974.com -0199976.com -0199980.com -0199983.com -0199984.com -0199985.com -0199986.com -01bktwi2lzvg05.cf -01bktwi2lzvg05.ga -01bktwi2lzvg05.gq -01bktwi2lzvg05.ml -01bktwi2lzvg05.tk -01g.cloud -01hosting.biz -01mc.ru -01rexell.website -02.pl -020-82278622.com -0204445.com -020yiren.com -020zlgc.com -021-club.live -021-game.live -021-games.live -0212nosorgulama.com -021go.org -021vip.org -0234445.com -02433.monster -02466.cf -02466.ga -02466.gq -02466.ml -02540.xyz -0264445.com -027168.com -0274445.com -02831.monster -02914.monster -0294445.com -02a2k17zaxk9cal.xyz -02bmw.ru -02didi.com -02nss.icu -02rexell.website -02zbji.us -03-genkzmail.ga -0304445.com -0310ww.com -0317123.cn -031803.com -031804.com -031806.com -031823.com -031825.com -031827.com -031829.com -031832.com -031834.com -031836.com -031837.com -031839.com -031845.com -031850.com -031859.com -031870.com -031873.com -031879.com -031892.com -031897.com -031905.com -031906.com -0322.info -03343.monster -0334445.com -0335g.com -0351an.com -0354445.com -0374445.com -039837.com -039mch.info -03group.ru -03rexell.website -03riri.com -03vtg9.us -04.biz -04022019usercontent.cf -0403site01.fun -0403site02.fun -04058.monster -0406.group -0440tlrfm056aznoelu9775.com -0440tvrzee5qzzbpreu8481.com -045.net -04514.monster -0454445.com -046189.icu -04700.xyz -04834.xyz -04840.monster -0484445.com -049335.com -049356.com -04ocdi.us -04rexell.website -04t687ck855wd6u.xyz -050506.com -05088.xyz -0513rl.com -0530fk.com -05379.monster -0543sh.com -0551149.xyz -0553jt.com -0554445.com -05555.monster -05602.monster -05643.monster -0575520.com -0579city.com -058583.com -05873.monster -05didi.com -05gb.com -05net.info -05ovik.com -05rexell.website -0614445.com -061642.icu -0623456.com -0624445.com -062ee.com -062ii.com -062jj.com -062nn.com -0644445.com -06460.monster -064742.com -065260.com -0654445.com -06600.monster -0662dq.com -06961616.xyz -069827.com -069837.com -06inci.xyz -06rexell.website -07-izvestiya.ru -07-vesti.ru -0704445.com -0713wang.com -07157.com -071qs.com -0734445.com -074445.com -074kiu.us -0752baby.com -0754445.com -0755.us -0755baozhuang.com -0759.us -0764445.com -077077.xyz -077112.com -07718888.com -07819.cf -07819.ga -07819.gq -07819.ml -07819.tk -078698.com -0788.info -078qs.com -07900010.com -079827.com -079i080nhj.info -07d.xyz -07didi.com -07habermagazin.com -07lnyi.us -07lxym.info -07rexell.website -07riri.com -07stees.online -08-gazeta.ru -08-life.ru -08-mir.ru -08-novosti.ru -08034.monster -080mail.com -0815.ru -0815.su -08221.monster -08236.monster -082qs.com -0845.ru -084ltxr6.ink -085341.com -0854445.com -08839.club -0884445.com -0888vns.com -08cente.com -08didi.com -08gcla.com -08rexell.website -08ty8.icu -08yft7.us -09090kosmos.site -092092111.com -0924445.com -092hd.com -092kjw.com -0934445.com -093457.com -095cz.com -095ipnone.com -096189.com -096206.com -0964445.com -0974445.com -09796.monster -0984445.com -099837.com -0999vns.com -09cente.com -09e14e.club -09ojsdhad.info -09rexell.website -09stees.online -0a7fk6.info -0accounts.com -0adzp1.us -0ak.org -0an.ru -0aswhv.us -0b3dc612.xyz -0b7zwe.com -0box.eu -0box.net -0c4538c.club -0c5139f.xyz -0cadb.club -0celot.com -0cindcywrokv.cf -0cindcywrokv.ga -0cindcywrokv.gq -0cindcywrokv.ml -0cindcywrokv.tk -0clickemail.com -0clock.net -0clock.org -0costofivf.com -0cv23qjrvmcpt.cf -0cv23qjrvmcpt.ga -0cv23qjrvmcpt.gq -0cv23qjrvmcpt.ml -0cv23qjrvmcpt.tk -0cydlx.stream -0d00.com -0d1vii.us -0d4dcc.xyz -0droow.host -0dyqp.com -0eevsq.online -0ehtkltu0sgd.ga -0ehtkltu0sgd.ml -0ehtkltu0sgd.tk -0experts.com -0f590da1.bounceme.net -0f739b2f.xyz -0fcftwpreu5qvxlnreu5201.com -0fit2z.com -0flxvl.us -0fru8te0xkgfptti.cf -0fru8te0xkgfptti.ga -0fru8te0xkgfptti.gq -0fru8te0xkgfptti.ml -0fru8te0xkgfptti.tk -0fu.com -0fzs7d.us -0gag.com -0gf.com -0h26le75d.pl -0havda.us -0hboy.com -0hcow.com -0hdear.com -0hdxlk.us -0hio.net -0hio.org -0hio0ak.com -0hiolce.com -0hioln.com -0hxoea.us -0i5cjq.us -0icdes.us -0igxcd.us -0ils.net -0ils.org -0ioi.net -0ito9e.us -0iz891s1c1whvw0.xyz -0izyq.us -0jm79.buzz -0jralz2qipvmr3n.ga -0jralz2qipvmr3n.ml -0jralz2qipvmr3n.tk -0jylaegwalss9m6ilvq.cf -0jylaegwalss9m6ilvq.ga -0jylaegwalss9m6ilvq.gq -0jylaegwalss9m6ilvq.ml -0jylaegwalss9m6ilvq.tk -0kj4.us -0kok.net -0kok.org -0l87d.com -0lbs.com -0ld0ak.com -0ld0x.com -0live.org -0ll2au4c8.pl -0lm.com -0lsta7.us -0mel.com -0mfs0mxufjpcfc.cf -0mfs0mxufjpcfc.ga -0mfs0mxufjpcfc.gq -0mfs0mxufjpcfc.ml -0mfs0mxufjpcfc.tk -0mixmail.info -0n0ff.net -0nb9zti01sgz8u2a.cf -0nb9zti01sgz8u2a.ga -0nb9zti01sgz8u2a.gq -0nb9zti01sgz8u2a.ml -0nb9zti01sgz8u2a.tk -0nce.net -0ne0ak.com -0ne0ut.com -0ne3qc.us -0nedrive.cf -0nedrive.ga -0nedrive.gq -0nedrive.ml -0nedrive.tk -0nelce.com -0nes.net -0nes.org -0nlinetova.ru -0nlinetovar.ru -0nly.org -0nrg.com -0nshwb.club -0nshwb.online -0o9.cc -0oxgvfdufyydergd.cf -0oxgvfdufyydergd.ga -0oxgvfdufyydergd.gq -0oxgvfdufyydergd.ml -0oxgvfdufyydergd.tk -0penhouse.com -0peo0pe0.shop -0pkgbj.host -0place.org -0px.com -0qaakx.info -0r0wfuwfteqwmbt.cf -0r0wfuwfteqwmbt.ga -0r0wfuwfteqwmbt.gq -0r0wfuwfteqwmbt.ml -0r0wfuwfteqwmbt.tk -0rdered.com -0rdering.com -0regon.net -0regon.org -0ryjm.us -0seav.com -0sg.net -0sp.me -0swvak.us -0sx.ru -0t31.buzz -0t5123enk41x6v8.xyz -0t6bsc.us -0t9dl4.us -0tct.icu -0tczdl.info -0tdgeh.com -0th-world.com -0th-world.net -0th-world.org -0tinak9zyvf.cf -0tinak9zyvf.ga -0tinak9zyvf.gq -0tinak9zyvf.ml -0tinak9zyvf.tk -0tk8a3a1q4t94.space -0tl.org -0to6oiry4ghhscmlokt.cf -0to6oiry4ghhscmlokt.ga -0to6oiry4ghhscmlokt.gq -0to6oiry4ghhscmlokt.ml -0to6oiry4ghhscmlokt.tk -0u.ro -0ub2je.us -0ulook.com -0utln.com -0uxpgdvol9n.cf -0uxpgdvol9n.ga -0uxpgdvol9n.gq -0uxpgdvol9n.ml -0uxpgdvol9n.tk -0v.ro -0w.ro -0wenku.com -0wmfq2.us -0wn3d.pl -0wnd.net -0wnd.org -0wos8czt469.ga -0wos8czt469.gq -0wos8czt469.tk -0x00.name -0x000.cf -0x000.ga -0x000.gq -0x000.ml -0x01.gq -0x01.tk -0x02.cf -0x02.ga -0x02.gq -0x02.ml -0x02.tk -0x03.cf -0x03.ga -0x03.gq -0x03.ml -0x03.tk -0x207.info -0x7121.com -0xcafebabe.com -0xpomn.us -0xshincode.de -0ye1sg.us -0za7vhxzpkd.cf -0za7vhxzpkd.ga -0za7vhxzpkd.gq -0za7vhxzpkd.ml -0za7vhxzpkd.tk -0zc7eznv3rsiswlohu.cf -0zc7eznv3rsiswlohu.ml -0zc7eznv3rsiswlohu.tk -0zspgifzbo.cf -0zspgifzbo.ga -0zspgifzbo.gq -0zspgifzbo.ml -0zspgifzbo.tk -1-2-3-direct.com -1-3-3-7.net -1-8.biz -1-800-bajafun.com -1-800-cuba-info.com -1-800-free-spirit.com -1-800-rockies.com -1-800-ski-deal.com -1-800-ski-europe.com -1-j.org -1-million-rubley.xyz -1-up.cf -1-up.ga -1-up.gq -1-up.ml -1-up.tk -1-w.net -1.atm-mi.cf -1.atm-mi.ga -1.atm-mi.gq -1.atm-mi.ml -1.atm-mi.tk -1.batikbantul.com -1.emaile.org -1.emailfake.ml -1.fackme.gq -1.kerl.cf -1.localaddres.com -1.sheikhdailyshop.com -10-minute-mail.com -10-minute-mail.de -10-minuten-mail.de -10-tube.ru -10.dns-cloud.net -1000.frecciarossa.tk -100008544398863.online -10000websites.miasta.pl -1000kostumov.ru -1000kti.xyz -1000mail.com -1000mail.tk -1000maketov.ru -1000rebates.stream -1000rub.com -1000segodnia.ru -100101.ru -1001jobs.org -1001onlinegames.com -1004net.shop -1004toon.shop -1007920195136.icu -100b.live -100b.site -100bet.online -100bet.store -100bet.xyz -100beteto.com -100bets.info -100bets.pro -100biz.ru -100cd.com -100da.ga -100dollarburger.com -100exchange.ru -100female.ru -100guanya.com -100hot.ru -100kkk.ru -100kti.xyz -100lat.com.pl -100likers.com -100lvl.com -100m.hl.cninfo.net -100meterdash.com -100percentlegal.com -100percentlegal.net -100percentlegal.org -100pet.ru -100projets.com -100ra-design.ru -100ss.ru -100stul.ru -100tb-porno.ru -100timebet.com -100vesov24.ru -100vokalistov.ru -100xbet.com -10100.ml -101027.xyz -1010vision.com -10147.monster -10158a.com -101c62b.club -101cs.ru -101ead9a74b8.club -101peoplesearches.com -101pl.us -101price.co -101reasonstoquit.com -101searchen.com -101todaynews.site -1020986532.info -1020pay.com -102508.icu -102comfort.site -102cq.com -102ndarmyband.com -102pc.site -102pinbahis.com -1034493459167.online -1034productions.com -104pinbahis.com -1050.gq -105402.com -105403.com -105415.com -105417.com -105427.com -105452.com -105455.com -105459.com -105463.com -105472.com -105482.com -105495.com -105514.com -105528.com -105554.com -105598.com -10562.app -105632.com -10564.app -10565.app -105672.com -10568.app -10569.app -1056windtreetrace.com -105kg.ru -1069wjrj.com -10746.monster -107dronewaiver.com -107punto7.com -1092df.com -10bet881088.com -10bet88888.com -10bir.com -10bo888810.com -10bwy.space -10cafe.ru -10fpjo.us -10host.top -10kilo.us -10launcheds.com -10m.email -10m.in -10mail.com -10mail.org -10mail.tk -10mi.org -10minut.com.pl -10minut.xyz -10minute-email.com -10minute.cf -10minutemail.be -10minutemail.cf -10minutemail.co.uk -10minutemail.co.za -10minutemail.com -10minutemail.de -10minutemail.ga -10minutemail.gq -10minutemail.info -10minutemail.ml -10minutemail.net -10minutemail.nl -10minutemail.org -10minutemail.pl -10minutemail.pro -10minutemail.ru -10minutemail.us -10minutemail2.com -10minutemailbox.com -10minutemails.in -10minutenemail.de -10minutesmail.com -10minutesmail.fr -10minutesmail.net -10minutesmail.ru -10minutetempemail.com -10minutmail.pl -10mldl2020.com -10mt.cc -10panx.com -10pmdesign.com -10rexell.website -10star.app -10star.casino -10star.events -10star.football -10star.hockey -10star.how -10star.partners -10star.services -10star.soccer -10star.solutions -10star.systems -10star.tennis -10star.tools -10star.wiki -10stupidestmistakes.com -10tasty.com -10th-market-shopp.online -10togel.club -10top-product.ru -10vitalya.fun -10vpn.info -10x.es -10x10-bet.com -10x10.bet -10x10bet.net -10x9.com -10xbet.org -10xtaas.com -10xtbet.com -11-32.cf -11-32.ga -11-32.gq -11-32.ml -11-32.tk -110202.com -1108885.com -1108891.com -1108897.com -110line.biz -110mail.net -111000.shop -1111.ru -11111.ru -1111122223333.xyz -11111cn.com -11113339.com -111151007.buzz -111159129.buzz -1111homes.com -111206.cc -111222.pl -11141z.com -11163.com -1119837.com -111btbt.com -111bubu.com -111hhhh.com -111iiii.com -111lulu.com -111pupu.com -111vt.com -11216812520.com -112211111.com -112288211.com -1122fa.info -11277hd.com -11277jgj.com -11296.monster -112f.net -112soeks.ru -11314.monster -113388211.com -113nu.com -113wo.com -113yo.com -113zi.com -114207.com -114dianying5.xyz -115200.xyz -115588211.com -115mail.net -115mo.com -115nu.com -115ou.com -115su.com -1166t.com -116ss.com -117.yyolf.net -117788211.com -1177d.com -118lbl.com -11974.monster -119988211.com -119mail.com -119winter.com -11a-klass.ru -11ant.org -11b-klass.ru -11booting.com -11cows.com -11fortune.com -11hg.app -11hg.bet -11hhqp.com -11himchistka.ru -11lu.org -11mot.ru -11ngu01.fun -11ngu02.fun -11ngu04.fun -11ngu05.fun -11rexell.website -11shlf.com -11thhourgospelgroup.com -11tn.xyz -11top.xyz -11trafsfdmn.club -11vitalya.icu -11xz.com -11yh.app -12-m.com -12-znakov.ru -12001.net -120mail.com -120wenyi.com -121ac.com -1221locust.com -123-m.com -123-weight-loss.com -123.dns-cloud.net -123.insure -1231247.com -1231253.com -1231254.com -1231266.com -123321asedad.info -1234567.website -123456798.xyz -1234liuhe.com -1236456.com -1239827.com -123amateucam.com -123anddone.com -123box.org -123coupons.com -123erfgb.xyz -123fsb.com -123fxtrading.com -123gal.com -123gmail.com -123hummer.com -123info.ru -123kid.club -123kissanime.net -123mail.ml -123market.com -123movies-to.xyz -123movies.rent -123movies.tours -123moviesfree.one -123moviesonline.club -123moviesweb.com -123parfemy.sk -123salesreps.com -123tlv.com -123w321.ru -123win.club -123worldcup.com -124033.com -12488aaa.com -12488bbb.com -12488cc.com -12488ccc.com -12499aaa.com -12499bb.com -12499bbb.com -12499cc.com -12499ccc.com -125-jahre-kudamm.de -1257.website -125av.net -125mail.cf -125mail.ga -125mail.gq -125mail.ml -125mail.tk -126.com.com -12602.monster -126game.com -126mali.cn -126sell.com -126ue.space -12734.monster -1281984.com -1281988.com -1281989.com -128celtabet.com -128dewa.net -128won.com -129aastersisyii.info -12ab.info -12bet247.mobi -12blogwonders.com -12chans.com -12clones.com -12freebet.com -12funnet.club -12guitar.com -12hosting.net -12houremail.com -12minutemail.com -12minutemail.net -12minutospordia.com -12monkeystattoo.com -12monthsloan1.co.uk -12ny.com -12pkpk.xyz -12playpoker.info -12r81.buzz -12rexell.website -12search.com -12shoe.com -12stelle.com -12steps-to-happiness.ru -12storage.com -12ur8rat.pl -12voice.com -12wqeza.com -13-stones.ru -131009.com -13195.monster -131qs.com -1333337.xyz -1337.email -1337.no -1337xx.best -133mail.cn -135mail.cn -13602.monster -136889.com -1369.ru -1373757.info -137mail.cn -1380.ga -13816.xyz -139.com -13929973100.xyz -13976448255.com -139av.net -13coin.ru -13d940.xyz -13dk.net -13e0.xyz -13fishing.ru -13go.site -13hsv.us -13rexell.website -13sasytkgb0qobwxat.cf -13sasytkgb0qobwxat.ga -13sasytkgb0qobwxat.gq -13sasytkgb0qobwxat.ml -13sasytkgb0qobwxat.tk -140002.com -140unichars.com -14140x3013.xyz -1434f.xyz -144206.com -14546.monster -145484.com -1455a2.xyz -146027.com -147.cl -147gmail.com -1481650.xyz -14895.monster -1490wntj.com -149356.com -149827.com -149837.com -14dayshift.com -14ersposter.com -14f992.xyz -14hgf.us -14n.co.uk -14nikatro.ru -14p.in -14rexell.website -14richiefamous.ru -14ru.com -1500klass.ru -15057700.com -15057722.com -15057755.com -15057777.com -15057799.com -150bc.com -151qs.com -15207.xyz -1531188.net -153369.com -1534625231.xyz -15349.monster -154884.com -156ac.com -156mail.cn -157mail.cn -1580887.com -1581232.com -1581235.com -1581686.com -158877.com -1588pj.com -158av.net -158dj44.com -158dj55.com -158mail.cn -15906.site -15907.site -15908.site -15910.site -15asia.com -15darkyears.com -15qm-mail.red -15qm.com -15rexell.website -1600daily.news -1601617.com -1601619.com -1601628.com -1601629.com -1601646.com -1601654.com -1601656.com -160899.com -161332.com -16178.monster -161936.com -161aaa161.com -161cc161.com -161ee161.com -161fff161.com -161gg161.com -161ii161.com -161jjj161.com -161ooo161.com -161uu161.com -161yyy161.com -1621188.net -163fy.com -163gx.site -16401.monster -16443.monster -164qq.com -16620.xyz -16626.monster -166ac.com -1676.ru -167mail.com -1687300.com -16888star.com -1688daogou.com -168bfo.com -168cyg.com -168hy.xyz -168vegus.net -168wbtoto3.club -16b33d.club -16cnc.com -16didi.com -16ik7egctrkxpn9okr.ga -16ik7egctrkxpn9okr.ml -16ik7egctrkxpn9okr.tk -16kilogramm.ru -16rexell.website -16up.ru -1700599.com -1701host.com -1716000.app -171611.app -171612.app -171616.app -171621.app -171625.app -171626.app -171629.app -171630.app -171631.app -171634.app -171635.app -171637.app -171640.app -171641.app -171644.app -171646.app -171648.app -171650.app -1716555.app -1716666.app -1716777.app -1716888.app -1716999.app -1716aaa.com -1716bbb.com -1716jjj.com -1716kkk.com -1716lll.com -1716www.com -1716xxx.com -172tuan.com -174podarka.ru -1756bb.com -1758indianway.com -1766258.com -1768aa.com -1768cc.com -1769022.com -1769050.com -1769070.com -1769113.com -1769117.com -1769220.com -1769221.com -1769225.com -1769300.com -1769330.com -1769337.com -1769553.com -1769660.com -1769661.com -1769700.com -1769771.com -1769779.com -1769aaa.com -1769bbs.com -1769blog.com -1769book.com -1769ccc.com -1769f.com -1769fff.com -1769h.com -1769kk.com -1769ll.com -1769mp4.com -1769sss.com -1769t.com -1769www.com -1769yy.com -1771716.com -1771719.com -1771724.com -1771727.com -1771745.com -17746980.xyz -1776patriotsupportonline.com -178fo.com -178mem94.monster -179bet.club -17adh.xyz -17co3x74.xyz -17goals.live -17heixiu.com -17moa01.com -17tgo.com -17tgy.com -17upay.com -18-19.cf -18-19.ga -18-19.gq -18-19.ml -18-19.tk -18-9-2.cf -18-9-2.ga -18-9-2.gq -18-9-2.ml -18-9-2.tk -1800-americas.info -1800033.com -1800doorpros.com -1800endo.net -1800formybaby.com -1800waterdamagefranchise.info -1800waterdamagefranchise.net -182100.ru -1824p.com -1824q.com -1824t.com -1824u.com -18273.monster -1828k.com -1831188.net -183carlton.changeip.net -18408180x38.xyz -184717.site -185ac.com -1866sailobx.com -1871188.net -1877production.com -1881182.com -1881185.com -188133756.ru -1881684.com -1888547.com -1888564.com -188881-e.com -188881-g.com -188881-k.com -188881-p.com -188881-s.com -188881-u.com -188881-y.com -188betqq.com -188indobet.me -188ku.club -188liga.onl -188mbsport.net -188xin.com -189.cn -1891188.net -1895photography.com -18a8q82bc.pl -18acabfd.club -18am.ru -18chiks.com -18clubin.com -18clubtw.com -18dealblast.com -18dealnshop.com -18dealscash.com -18dealtires.com -18dno.site -18e95e9.xyz -18ladies.com -18luck.domains -18moa10.net -18pic.com -18seuparolss.space -18siotragola.space -18sotok.ru -18wheeltruckaccidents.com -18x18x.com -18xapp.com -18xdh.com -18xtv.com -19-crimes.ru -190326start.website -1903bjk.net -1913qipai.com -1919-2009ch.pl -1919666.net -191ac.com -19216811.host -19292.monster -193029.com -193120.ru -193283.com -1935hurricane.com -19424445.com -19439.monster -194802.site -194kg7.com -19504445.com -195kai.com -19608037.com -196206.com -196ks.com -1981pc.com -198208.com -1984tee.com -1984yesitsgenocide.org -1985abc.com -1985ken.net -19874445.com -19879.monster -198funds.com -1991955.com -1991956.com -1991957.com -1991958.com -1991959.com -1991972.com -1991973.com -19922.cf -19922.ga -19922.gq -19922.ml -19955355555.com -1998g.com -1999buy.com -1999flowers.info -199accessories.com -199cases.com -19f6cop53ghzrys.xyz -19kysg.ru -19pink.com -19q.ru -19quotes.com -1a-flashgames.info -1abvote.com -1adir.com -1afbwqtl8bcimxioz.cf -1afbwqtl8bcimxioz.ga -1afbwqtl8bcimxioz.gq -1afbwqtl8bcimxioz.ml -1afbwqtl8bcimxioz.tk -1airpods.ru -1amdevsites.xyz -1ank6cw.gmina.pl -1ankh0ngthebjetdc.space -1ano.gratis -1aolmail.com -1apviz.com -1asdasd.com -1asexchat.com -1aujk9.host -1automovers.info -1ayj8yi7lpiksxawav.cf -1ayj8yi7lpiksxawav.ga -1ayj8yi7lpiksxawav.gq -1ayj8yi7lpiksxawav.ml -1ayj8yi7lpiksxawav.tk -1bahisno1.com -1bedpage.com -1betslife.com -1biyabet2020.com -1bizshop.ru -1blackmoon.com -1blueymail.gq -1bola88.com -1bola88.social -1bolaku.biz -1bolaku.club -1bolaku88.com -1boxtv.com -1bstb.ru -1bthd.com -1bup.com -1bx-a.icu -1bxaepy68dgiz63.xyz -1bythetimeweclick.online -1c-spec.ru -1caa4c.club -1cdds.ru -1ce.us -1centdruck.com -1chan.club -1chelper.site -1chsdjk7f.pl -1chuan.com -1ckursy.ru -1claud.site -1clck2.com -1click-me.info -1clou.site -1club4d.com -1clublive.com -1clubpoker.com -1clubslot.com -1cmmit.ru -1cocosmail.co.cc -1cost.ru -1cp3tnzok0nyr4t.xyz -1cw1mszn.pl -1d1c.com -1d6c.club -1dask-raxe.ru -1datingintheusa.com -1dds23.com -1dmedical.com -1dne.com -1dollarwindowshosting.com -1drby3.site -1drive.cf -1drive.ga -1drive.gq -1drv.digital -1dv37p.info -1dxcme.us -1e1kazayaptim.net -1e4e4b.xyz -1e72.com -1e80.com -1ebestday.online -1ec-v.icu -1email.ru -1eo-v.icu -1errz9femsvhqao6.cf -1errz9femsvhqao6.ga -1errz9femsvhqao6.gq -1errz9femsvhqao6.ml -1errz9femsvhqao6.tk -1etp.ru -1euqhmw9xmzn.cf -1euqhmw9xmzn.ga -1euqhmw9xmzn.gq -1euqhmw9xmzn.ml -1euqhmw9xmzn.tk -1exch.live -1eyedg.com -1f3t.com -1f4.xyz -1fa2b.club -1fatbitch.com -1feb3.club -1fedlaprosir.space -1firstdayofa.online -1forthemoney.com -1fsdfdsfsdf.tk -1fv.info -1game.store -1gatwickaccommodation.info -1gdaily-profit.site -1ghosts.com -1ghtyu.com -1gi.info -1gmail.com -1googlemail.com -1gsn.us -1hdbt.com -1hdd.site -1hdek9.us -1heizi.com -1hermesbirkin0.com -1hi.info -1hmoxs72qd.cf -1hmoxs72qd.ga -1hmoxs72qd.ml -1hmoxs72qd.tk -1hotmail.com -1hp0x.us -1hsoagca2euowj3ktc.ga -1hsoagca2euowj3ktc.gq -1hsoagca2euowj3ktc.ml -1hsoagca2euowj3ktc.tk -1hxffe.com -1ifawc.com -1intimshop.ru -1itsoft.site -1jutakg.com -1jypg93t.orge.pl -1kingbetting.com -1kmnorff.com -1kues.info -1l24ac.us -1l9fd.us -1letras.info -1liqu1d.gq -1load-fiiliiies.ru -1lp7j.us -1lv.in -1lvt220yzdgn5z1.xyz -1lwr.us -1mail.ml -1mail.uk.to -1manbet.info -1marsbet.com -1metr.info -1milliondollars.xyz -1minutemedia.com -1mn-u.icu -1mojadieta.ru -1moresurvey.com -1mport.ru -1mqn2g.host -1mspkvfntkn9vxs1oit.cf -1mspkvfntkn9vxs1oit.ga -1mspkvfntkn9vxs1oit.gq -1mspkvfntkn9vxs1oit.ml -1mspkvfntkn9vxs1oit.tk -1mu3.com -1mz.com -1mz.net -1n220ei4n58hht0.xyz -1n2us.us -1nb7.icu -1nenod.xyz -1noc0w.info -1nppx7ykw.pl -1num.ru -1nut.com -1o4nww.us -1oh1.com -1oim.ru -1om.co -1oooo.ru -1ouboutinshoes.com -1ouisvuitton1.com -1ouisvuittonborseit.com -1ouisvuittonfr.com -1p6yx8.us -1pad.de -1palacebet365.com -1pap-company.buzz -1pay-o.club -1pay-s.club -1pay1mypay.ru -1paymy1pay.ru -1penceauction.co.uk -1persian360.site -1pervd.us -1pfeyw.us -1pi.org -1pmok.site -1pornin.xyz -1print-kazan.ru -1printkazan.ru -1pt.net -1pw8qy.us -1qpatglchm1.cf -1qpatglchm1.ga -1qpatglchm1.gq -1qpatglchm1.ml -1qpatglchm1.tk -1qut3i.com -1qwezaa.com -1r7bsm.us -1rentcar.top -1rererer.ru -1richprize.com -1riladg.mil.pl -1rmgqwfno8wplt.cf -1rmgqwfno8wplt.ga -1rmgqwfno8wplt.gq -1rmgqwfno8wplt.ml -1rmgqwfno8wplt.tk -1rnydobtxcgijcfgl.cf -1rnydobtxcgijcfgl.ga -1rnydobtxcgijcfgl.gq -1rnydobtxcgijcfgl.ml -1rnydobtxcgijcfgl.tk -1roff.site -1ru-c.icu -1rumk9woxp1.pl -1rzk1ufcirxtg.ga -1rzk1ufcirxtg.ml -1rzk1ufcirxtg.tk -1rzpdv6y4a5cf5rcmxg.cf -1rzpdv6y4a5cf5rcmxg.ga -1rzpdv6y4a5cf5rcmxg.gq -1rzpdv6y4a5cf5rcmxg.ml -1rzpdv6y4a5cf5rcmxg.tk -1s.fr -1s1uasxaqhm9.cf -1s1uasxaqhm9.ga -1s1uasxaqhm9.gq -1s1uasxaqhm9.ml -1s1uasxaqhm9.tk -1scr.ru -1secmail.com -1secmail.net -1secmail.org -1secmail.xyz -1seria.ru -1sheshobet.site -1shivom.com -1sj2003.com -1slate.com -1soq14.club -1soq14.online -1sourcevideo.net -1spcziorgtfpqdo.cf -1spcziorgtfpqdo.ga -1spcziorgtfpqdo.gq -1spcziorgtfpqdo.ml -1spcziorgtfpqdo.tk -1sport7.com -1sport7.org -1sportplay24.com -1sqare.com -1ss.noip.me -1st-forms.com -1stadhouderskade.com -1stbest.info -1stcallsecurity.com -1stcircuit.com -1stcommercialrealty.com -1sthandfoundation.org -1stimme1schritt.com -1stlibe.website -1stoffer.com -1stopbeautyshop.com -1stpatrol.info -1ststepdetoxcenter.net -1sydney.net -1syn.info -1ta.org -1tasvegas.club -1thecity.biz -1tmail.ltd -1to1mail.org -1to1mix.com -1turkeyfarmlane.com -1tware.com -1tyc222.com -1u3.ru -1u6hqr.us -1ul-u.icu -1up.orangotango.gq -1upcyber.com -1us-v.icu -1usemail.com -1utk81n8xa0p5ue.xyz -1vitsitoufficiale.com -1vs1.app -1vsitoit.com -1vt.com -1vvb.ru -1vwd.biz -1wanbet.info -1webmail.info -1website.net -1weirdfood.com -1wgapljizpfn3f1.xyz -1wk.site -1x1zsv9or.pl -1x2.run -1x3.download -1xbeet90.org -1xbet-1bet.site -1xbet-web-cm.net -1xbets-bk-onlines.ru -1xbkbet.com -1xgolxdbxt.online -1xkfe3oimup4gpuop.cf -1xkfe3oimup4gpuop.ga -1xkfe3oimup4gpuop.gq -1xkfe3oimup4gpuop.ml -1xkfe3oimup4gpuop.tk -1xnwh.host -1xowua.site -1xstabka.ru -1xstats.com -1xstavka-app.ru -1xy86py.top -1ybm5.us -1yci.com -1yvicd.com -1zaem.ru -1zc.info -1zd.info -1ze9d7uml.xyz -1zhuan.com -1zl.org -1zxzhoonfaia3.cf -1zxzhoonfaia3.ga -1zxzhoonfaia3.gq -1zxzhoonfaia3.ml -1zxzhoonfaia3.tk -2-attorney.com -2-bee.tk -2-ch.space -2-l.net -2-zatona.ru -2-znakomstva.ru -2.batikbantul.com -2.chatpuffs.pro -2.emailfake.ml -2.fackme.gq -2.kerl.cf -2.mmspa.cf -2.safemail.cf -2.safemail.tk -2.sexymail.ooo -2.tebwinsoi.ooo -2.vvsmail.com -20-20pathways.com -20-20trustees.com -20.dns-cloud.net -20.gov -2000-plus.pl -2000rebates.stream -2002mm01.fun -2002mm02.fun -2002mm04.fun -2002mm05.fun -200555.com -2006sf.net -200740534.xyz -2008firecode.info -2008radiochat.info -200da.ga -200ok.ru -2010tour.info -2011cleanermail.info -2011rollover.info -2012-2016.ru -2012-2019-compensac.site -2012ajanda.com -2012burberryhandbagsjp.com -2012casquebeatsbydre.info -2012moncleroutletjacketssale.com -2012nflnews.com -2012pandoracharms.net -2013-ddrvers.ru -2013-lloadboxxx.ru -2013cheapnikeairjordan.org -2013dietsfromoz.com -2013fitflopoutlet.com -2013longchamppaschere.com -2013louboutinoutlets.com -2013mercurialshoeusa.com -2013nikeairmaxv.com -2013spmd.ru -2014mail.ru -2017597.com -2018-12-23.ga -20181141916151820.com -201813143.com -2019-hydra.com -2019-pozdravleniya.ru -201910031.com -201910032.com -201910041.com -201910042.com -201910044.com -201910055.com -201910056.com -201910066.com -201910068.com -201910073.com -201910077.com -201910078.com -201910082.com -201910083.com -201910086.com -201910093.com -201910094.com -201910095.com -201910162.com -201920047.com -201920054.com -201920065.com -201920100.com -201920103.com -201920108.com -201920110.com -201920113.com -201920116.com -201920119.com -2019x.cf -2019x.ga -2019x.gq -2019x.ml -2019y.cf -2019y.ga -2019y.gq -2019y.ml -2019z.cf -2019z.ga -2019z.gq -2019z.ml -2019z.tk -2020-ford-bronco.com -202064.net -2020ads01.xyz -2020ads02.xyz -2020ads03.xyz -2020bearmarket.com -2020honorbowl.com -2020yy.net -20218037.com -20223339.com -20258037.com -20268037.com -20288037.com -202qs.com -20303.host -20344445.com -20368037.com -2044445.com -204qs.com -2051333.ru -20520.com -2054445.com -2061144.com -2061177.com -206154.com -206156.com -206163.com -206164.com -206167.com -206169.com -206176.com -206182.com -206206206.com -206214.com -206224.com -206241.com -206242.com -206243.com -206244.com -206252.com -206254.com -206261.com -206267.com -206270.com -206274.com -206304.com -206305.com -206314.com -206324.com -206340.com -206361.com -206367.com -206372.com -206374.com -206376.com -206385.com -206422.com -206423.com -206424.com -206427.com -206430.com -206438.com -206439.com -2064445.com -206490.com -206514.com -206516.com -206526.com -206534.com -206536.com -206541.com -206547.com -206560.com -206561.com -206576.com -206584.com -206617.com -206637.com -206701.com -206704.com -206716.com -206726.com -206736.com -206740.com -206748.com -206757.com -206762.com -206763.com -206773.com -206790.com -206802.com -206806.com -206810.com -206816.com -206817.com -206821.com -206827.com -206830.com -206834.com -206836.com -206841.com -206847.com -206854.com -206859.com -206860.com -206871.com -206873.com -206890.com -206891.com -206892.com -206894.com -206896.com -206897.com -206901.com -206907.com -206912.com -206917.com -206921.com -206923.com -206925.com -206926.com -206927.com -206930.com -206932.com -206942.com -206945.com -206947.com -206948.com -206953.com -206954.com -206956.com -206961.com -206962.com -206963.com -206971.com -206973.com -206975.com -206ddd.com -206fff.com -206hhh.com -206iii.com -206j.net -206jjj.com -206m.net -206n.net -206o.net -206ooo.com -206ppp.com -206q.net -206qqq.com -206rrr.com -206s.net -206vvv.com -206w.net -206x.net -206yth.net -2074445.com -20760.monster -2079shipin.xyz -207am.com -2084-antiutopia.ru -2088pj.com -209179.site -2094445.com -209827.com -209op.link -20abc.ru -20b8d52d.club -20bit.ru -20boxme.org -20daysof.com -20email.eu -20email.it -20german.online -20hsolutions.com -20likegoda.top -20mail.eu -20mail.in -20mail.it -20min.email -20minute.email -20minutemail.com -20minutemail.it -20mm.eu -20nastya.press -20nastya.tech -20sep.net -20sep.online -20september.online -20twelvedubstep.com -20wolff.xyz -20yeye.com -21047.monster -21081.monster -2109827.com -210ms.com -211153079.buzz -211157563.buzz -211158710.buzz -211319.xyz -211379.xyz -2114445.com -211619.xyz -2120001.net -2124445.com -21266.monster -2127.info -212812.com -212912.com -212staff.com -213269.xyz -2134445.com -213969.xyz -213989.xyz -2140884843zll.xyz -2144445.com -21451.xyz -2147483648.com -215329.xyz -215369.xyz -215529.xyz -215565.com -215579.xyz -215679.xyz -215779.xyz -215819.xyz -215829.xyz -215839.xyz -215859.xyz -215889.xyz -215969.xyz -215979.xyz -216169.xyz -216179.xyz -216219.xyz -216239.xyz -216259.xyz -2164445.com -216539.xyz -216559.xyz -216636.com -2166tow6.mil.pl -216729.xyz -216959.xyz -2174445.com -217lll.com -2184445.com -2188019.com -218bet.com -2194445.com -219ac.com -21biolevel.ru -21cselling.com -21daysugardetoxreview.org -21den.ru -21email4now.info -21gw.info -21jag.com -21kky.club -21lr12.cf -21sp.xyz -21stcenturyfitness.net -21timebet.com -21yearsofblood.com -21yyinsani.com -22-bet.life -22-bet.org -22003.fun -220088211.com -22020.ru -220w.net -221188211.com -2211m.com -221884.com -221921.com -221ac.com -221bnw15rt.com -221zz.com -222288211.com -2222bienbet.com -2225258.com -2227728.com -2229837.com -222bubu.com -222mmmm.com -222reklam.com -223388211.com -2234445.com -22443.monster -224eee.com -224hhh.com -224lll.com -224power.com -224ppp.com -224qs.com -224sss.com -224zzz.com -225522.ml -225588211.com -22602.monster -22613.xyz -2264445.com -226688211.com -2266av.com -2267pp.com -2267vv.com -2267xx.com -2267yy.com -2274445.com -22794.com -228581.com -2288av.com -229988211.com -22aday-notok.info -22aday-notok.mobi -22bet.co.bi -22bet.co.rw -22ccf.com -22eb.club -22ffnrxk11oog.cf -22ffnrxk11oog.ga -22ffnrxk11oog.gq -22ffnrxk11oog.tk -22hg.app -22hg.bet -22hhqp.com -22meds.com -22money.xyz -22mot.ru -22office.com -22ov17gzgebhrl.cf -22ov17gzgebhrl.gq -22ov17gzgebhrl.ml -22ov17gzgebhrl.tk -22pesok.ru -22stttn.xyz -22xx33.xyz -22zollmonitor.com -23-february-posdrav.ru -23037.monster -2314445.com -2323bryanstreet.com -2334445.com -2336900.com -233bt.com -233calliope4.com -233dy.com -234.pl -23403.monster -23413.monster -23443.fun -2344445.com -23445656.xyz -234546764.xyz -234567875.xyz -2345678901.xyz -234927.com -234asdadsxz.info -234dhyjgj.com -235francisco.com -235gm.com -237367.com -23791.monster -237bets.com -238ac.com -2394445.com -239qs.com -23all.com -23f951.xyz -23fanofknives.com -23h4y.us -23i9k.site -23owqo5r.xyz -23ox.xyz -23pxdb.us -23sfeqazx.com -23swap.site -23thingstodoxz.com -24-7-demolition-adelaide.com -24-7-fencer-brisbane.com -24-7-plumber-brisbane.com -24-7-retaining-walls-brisbane.com -24-ex.ru -240305.com -24030917.xyz -2404445.com -24297.monster -242nn.net -242tt.net -24337.xyz -24408.monster -244206.com -244spencer.com -246hltwog9utrzsfmj.cf -246hltwog9utrzsfmj.ga -246hltwog9utrzsfmj.gq -246hltwog9utrzsfmj.ml -246hltwog9utrzsfmj.tk -247blog.com -247gmail.com -247jockey.com -247prohost.com -247web.net -248790.com -2488682.ru -249827.com -24ali.ru -24betty.ru -24cable.ru -24cafe.ru -24cheapdrugsonline.ru -24consulting.ru -24ddw6hy4ltg.cf -24ddw6hy4ltg.ga -24ddw6hy4ltg.gq -24ddw6hy4ltg.ml -24ddw6hy4ltg.tk -24facet.com -24fitness.ru -24fm.org -24hbanner.com -24hinbox.com -24horas-aust.host -24hotesl.com -24hourfitness.com -24hourloans.us -24hourmail.com -24hourmail.net -24hrcalladoctor.info -24hrcallmd.info -24hrphoneadoc.info -24hrphoneamd.info -24hrsofsales.com -24kcbd-plus.com -24kcbd.net -24kcbdplus.net -24kinfused.com -24kuai.com -24mail.top -24mail.xyz -24medic-news.ru -24meds.com -24na8.ru -24news24.ru -24online-marketing.ru -24openlock.ru -24prm.ru -24repporter.ru -24score.kg -24skey.ru -24smartwatch.ru -24tops.site -24vice.biz -24vlk.biz -24vlk.link -24vlk.xyz -24volcano.net -24vul-canm.com -24vul-slot.net -24x7daily.com -24xj.us -24youla.ru -2511188.net -2514445.com -2524445.com -252507.com -2525bienbet.com -252hg.com -25310.monster -2534445.com -253lv.com -253mo.com -253ou.com -253pu.com -25419.monster -25430044.com -25430077.com -25430268.com -25431113.com -25431115.com -25431117.com -25431118.com -25431119.com -25431120.com -25431126.com -25432233.com -25433456.com -25434455.com -25436789.com -25438.monster -25438899.com -2554445.com -257379.xyz -2574445.com -25806.monster -2584445.com -2594445.com -2595966.com -25betturka.com -25comp.ru -25fwlp1ih7av5ym.xyz -25mails.com -25olney.online -26032.monster -2614445.com -2621188.net -2626bienbet.com -262fo.com -262gu.com -262ju.com -262lo.com -262lv.com -262pi.com -262re.com -2635-13.com -26352.monster -2635yy.com -2636552.com -263mali.cn -263meet.com -26465.com -26487.com -2654445.com -26564.xyz -26581.monster -265ac.com -265ke.com -265ne.com -265re.com -265sa.com -26610.monster -266ac.com -2674445.com -267918.com -2694445.com -269ac.com -26c7.club -26ca93.xyz -26euro.ga -26evbkf6n.aid.pl -26fuli.com -26llxdhttjb.cf -26llxdhttjb.ga -26llxdhttjb.gq -26llxdhttjb.ml -26llxdhttjb.tk -26m.net -26mishki.ru -26pg.com -26timebet.com -26x8da.us -271529.xyz -2716ca.xyz -271729.xyz -271759.xyz -272274.xyz -27384.com -27422.monster -2750303.site -2754445.com -275ac.com -275d.club -2764445.com -2774445.com -27770.monster -277782474.xyz -27787.monster -2784445.com -27850999.net -278ac.com -27911b.com -27a169.xyz -27casinox.com -27hotesl.com -2802211.com -2814445.com -28177.monster -2820666hyby.com -2828766.com -2834445.com -283993.com -2844.xyz -284kf.com -28572.monster -2864445.com -2880688.com -2881788.com -2889188.com -28c000.com -28c0033.com -28c0055.com -28c0066.com -28c0088.com -28c11.com -28c1122.com -28c33.com -28c333.com -28c44.com -28c555.com -28c66.com -28c777.com -28c888.com -28it.ru -28musicbaran.us -28onnae92bleuiennc1.cf -28onnae92bleuiennc1.ga -28onnae92bleuiennc1.gq -28onnae92bleuiennc1.ml -28onnae92bleuiennc1.tk -28pc888.com -28pinbahis.com -28voma.info -28woman.com -28z8d5fu7yyrdbg.xyz -29007.monster -291.usa.cc -2911.net -291q.com -29231.buzz -2924445.com -292692.com -292892.com -29296819.xyz -2934445.com -2944445.com -2950d69b.xyz -29530.xyz -296969bb.com -296969tt.com -296969ww.com -296969zz.com -29753.monster -2990303.ru -29980011.com -29987.monster -29gbmc.com -29hoki9.xyz -29q62.buzz -29t3.com -29wrzesnia.pl -2a479bf8.club -2ad66df3.club -2adiamonds.com -2adltw.us -2aitycnhnno6.cf -2aitycnhnno6.ga -2aitycnhnno6.gq -2aitycnhnno6.ml -2aitycnhnno6.tk -2all.xyz -2and2mail.tk -2anime.org -2ankemthilamxao.space -2anom.com -2aoytd.com -2av.biz -2avz.net -2bcgxx.us -2bestbet90.xyz -2bfan.com -2bi.ru -2bin.ru -2bpgta.online -2br.in -2brooke.com -2brutus.com -2bucksagig.com -2bussines.ru -2buyshop.ru -2bxapl.info -2c0.net -2c225.club -2c2f494.club -2cdof1.us -2ch.coms.hk -2ch.daemon.asia -2ch.orgs.hk -2china.site -2ckf.com -2cnlh.us -2cny2bstqhouldn.cf -2cny2bstqhouldn.ga -2cny2bstqhouldn.gq -2cny2bstqhouldn.ml -2cny2bstqhouldn.tk -2container.com -2coolchops.info -2cor9.com -2cpeerr.club -2cpezrr.club -2ctech.net -2cy123.com -2cyapp.com -2cybbs.com -2cyblog.com -2cybt.com -2cyp.com -2cypan.com -2cypic.com -2cyshop.com -2d-art.ru -2d485c.club -2dapp.com -2dbt.com -2detox.com -2dfmail.ga -2dfmail.ml -2dfmail.tk -2dgate.com -2dge1.us -2dgo.com -2di9ul.us -2dku.com -2dsectv.ru -2edgklfs9o5i.cf -2edgklfs9o5i.ga -2edgklfs9o5i.gq -2edgklfs9o5i.ml -2edgklfs9o5i.tk -2emailock.com -2emea.com -2eq8eaj32sxi.cf -2eq8eaj32sxi.ga -2eq8eaj32sxi.gq -2eq8eaj32sxi.ml -2eq8eaj32sxi.tk -2ether.net -2ewldu.us -2ez6l4oxx.pl -2f1fv16ljgb88nj.xyz -2f2tisxv.bij.pl -2f5b8c.xyz -2fat4me.com -2fdgdfgdfgdf.tk -2ffja3uf.agency -2filmshd.online -2fly.xyz -2folddoor.com -2fyba7.site -2gbndigital.com -2gear.ru -2gep2ipnuno4oc.cf -2gep2ipnuno4oc.ga -2gep2ipnuno4oc.gq -2gep2ipnuno4oc.ml -2gep2ipnuno4oc.tk -2getyou.com -2go-mail.com -2gocasino.net -2goodnews.site -2gufaxhuzqt2g1h.cf -2gufaxhuzqt2g1h.ga -2gufaxhuzqt2g1h.gq -2gufaxhuzqt2g1h.ml -2gufaxhuzqt2g1h.tk -2gurmana.ru -2gvn.com -2hand.xyz -2have.net -2hermesbirkin0.com -2hg000.com -2hg11.com -2hg1111.com -2hg15.com -2hg16.com -2hg17.com -2hg18.com -2hg19.com -2hg22.com -2hg333.com -2hg4.com -2hg55.com -2hg555.com -2hg6.com -2hg99.com -2hgw111.com -2hgw22.com -2hgw44.com -2hgw444.com -2hgw666.com -2hgw999.com -2hotmail.com -2houndsdesigns.com -2hq5om.us -2i3tjz.com -2iikwltxabbkofa.cf -2iikwltxabbkofa.ga -2iikwltxabbkofa.gq -2iikwltxabbkofa.ml -2instagram.ru -2iror47qx.xyz -2iuzngbdujnf3e.cf -2iuzngbdujnf3e.ga -2iuzngbdujnf3e.gq -2iuzngbdujnf3e.ml -2iuzngbdujnf3e.tk -2j06.buzz -2jckh7.info -2jn.space -2k.vin -2k18.mailr.eu -2k20.mailr.eu -2kcr.win -2kolesaclub.ru -2kpda46zg.ml -2kwebserverus.info -2kyv36.info -2l7g4s.us -2la.info -2leg.com -2lf.info -2lgvhy.us -2listen.ru -2lj.info -2lqkqz.us -2lug.com -2lyvui3rlbx9.cf -2lyvui3rlbx9.ga -2lyvui3rlbx9.gq -2lyvui3rlbx9.ml -2m36.space -2m40.space -2m46.space -2m51.space -2m55.space -2m5u.com -2mailcloud.com -2mailnext.com -2mailnext.top -2mao.xyz -2maudacieuse.org -2mbet.info -2mcfha.site -2mhtw.info -2movierulz.club -2movierulz.one -2movierulz.org -2nd-mail.xyz -2ndamendmentguns.net -2ndamendmenttactical.com -2nf.org -2niqqw.us -2npfba.host -2o3ffrm7pm.cf -2o3ffrm7pm.ga -2o3ffrm7pm.gq -2o3ffrm7pm.ml -2o3ffrm7pm.tk -2oceanview.com -2odem.com -2onacxpmdzuco57.xyz -2oqqouxuruvik6zzw9.cf -2oqqouxuruvik6zzw9.ga -2oqqouxuruvik6zzw9.gq -2oqqouxuruvik6zzw9.ml -2oqqouxuruvik6zzw9.tk -2orkid.com -2osq1y.site -2oz.net -2p-mail.com -2p7u8ukr6pksiu.cf -2p7u8ukr6pksiu.ga -2p7u8ukr6pksiu.gq -2p7u8ukr6pksiu.ml -2p7u8ukr6pksiu.tk -2pair.com -2papa.ooo -2pay-e.club -2pay-n.club -2pay-s.club -2pay-w.club -2pays.ru -2prong.com -2ptech.info -2pwwbt.us -2pwwmb.us -2pxmpu.com -2r1znbwk.fun -2rix.com -2rna.com -2rntkv.us -2rus.ru -2ryajg.us -2rz6no.us -2s2bmanagement.com -2s4uke.us -2s9qa.us -2sap.com -2scxlq.us -2sea.org -2sea.xyz -2seuparolss.space -2sharp.com -2sim-gsm.ru -2skjqy.pl -2slq5o.us -2snokot.site -2sunssolutions.ru -2svun8.us -2tellmystory.com -2timebet.com -2tl2qamiivskdcz.cf -2tl2qamiivskdcz.ga -2tl2qamiivskdcz.gq -2tl2qamiivskdcz.ml -2tl2qamiivskdcz.tk -2tl9hz.us -2tmk.icu -2tug.com -2twpu9ne.net -2uisk2man.xyz -2umail.org -2ursxg0dbka.cf -2ursxg0dbka.ga -2ursxg0dbka.gq -2ursxg0dbka.ml -2ursxg0dbka.tk -2v3vjqapd6itot8g4z.cf -2v3vjqapd6itot8g4z.ga -2v3vjqapd6itot8g4z.gq -2v3vjqapd6itot8g4z.ml -2v3vjqapd6itot8g4z.tk -2v45m.us -2viewerl.com -2vkahi.host -2vznqascgnfgvwogy.cf -2vznqascgnfgvwogy.ga -2vznqascgnfgvwogy.gq -2vznqascgnfgvwogy.ml -2vznqascgnfgvwogy.tk -2way2win.info -2wc.info -2web.com.pl -2wjxak4a4te.cf -2wjxak4a4te.ga -2wjxak4a4te.gq -2wjxak4a4te.ml -2wjxak4a4te.tk -2wm3yhacf4fvts.ga -2wm3yhacf4fvts.gq -2wm3yhacf4fvts.ml -2wm3yhacf4fvts.tk -2world.pl -2wy9b4h36f6hsw7.xyz -2x45bet.net -2xd.ru -2xfit.site -2xhl.icu -2xpush.com -2xup.site -2xxx.com -2y4u.ru -2yannecker.xyz -2ycr9p.us -2yd4bo.site -2ydk.com -2yh6uz.bee.pl -2yigoqolrmfjoh.gq -2yigoqolrmfjoh.ml -2yigoqolrmfjoh.tk -2yldy.biz -2young4u.ru -2yvxt8.us -2z6vrd.online -2zozbzcohz3sde.cf -2zozbzcohz3sde.gq -2zozbzcohz3sde.ml -2zozbzcohz3sde.tk -2zpph1mgg70hhub.cf -2zpph1mgg70hhub.ga -2zpph1mgg70hhub.gq -2zpph1mgg70hhub.ml -2zpph1mgg70hhub.tk -3-attorney.com -3-debt.com -3.batikbantul.com -3.emailfake.ml -3.fackme.gq -3.kerl.cf -3.vvsmail.com -30.dns-cloud.net -300-lukoil.ru -300book.info -300da.ga -300ktournament.biz -300mbmovies.shop -300vegans.org -30150005.com -30158.monster -301er.com -301omp.link -301server.net -301url.info -3023vip.com -3027a.com -303030.ru -3032.ru -30378844.com -303online.org -30669.monster -30718.monster -30739.monster -30742061.xyz -3074445.com -307468021.xyz -308980.com -309356.com -3094445.com -30abc.ru -30daycycle.com -30daygoldmine.com -30daystothinreview.org -30diasparaemagrecer.site -30don.ru -30euro.ga -30it.ru -30madden.com -30mail.ir -30minutemail.com -30minutenmail.eu -30morqca.info -30mot.ru -30rd.com -30rip.ru -30secondsmile-review.info -30set.ru -30traveller.com -30vcd.com -30wave.com -30yo.site -3104445.com -311156553.buzz -311159521.buzz -311584.com -31292.monster -313102.com -3134445.com -31397.monster -313bt1.com -313bt1.net -313communications.com -31415926535.net -3158.cd -316206.com -31711555.com -31711577.com -31711599.com -31711633.com -31711655.com -31711666.com -31711677.com -31711822.com -31711877.com -31711955.com -31711966.com -31711988.com -31722133.com -31722188.com -31722266.com -31722299.com -31722366.com -31722377.com -31722399.com -31722511.com -31722533.com -31722555.com -31722622.com -31722722.com -31722755.com -31722788.com -31722888.com -31722922.com -31722955.com -31722999.com -31733222.com -31733355.com -31733388.com -31733399.com -31733511.com -31733577.com -31733588.com -31733599.com -31733611.com -31733622.com -31733633.com -31733722.com -31733777.com -31733833.com -31733855.com -31733922.com -31733977.com -31733988.com -31755155.com -31755199.com -31755211.com -31755255.com -31755333.com -31755355.com -31755366.com -31755388.com -31755511.com -31755522.com -31755555.com -31755633.com -31755688.com -31755699.com -31755788.com -31755855.com -31755866.com -31755888.com -31755933.com -31755988.com -31862.monster -318factory.com -318road.com -318tuan.com -319358.com -31980.monster -31di.club -31k.it -31lossweibox.com -31s.info -32.biz -3202.com -32021.xyz -3204445.com -321-email.com -32194.monster -321appblog.xyz -321appclub.xyz -321dasdjioadoi.info -321ideas.com -321mail.ir -321marinetowing.com -322appville.xyz -322capital.xyz -322dental.xyz -322events.xyz -322live.xyz -322llc.xyz -322mc.xyz -322na.com -322nj.xyz -322photo.xyz -322productions.xyz -323ac.com -323designhome.xyz -323enterprises.xyz -323fm.xyz -323grouphome.xyz -323law.xyz -324445.com -32499.monster -32528.monster -3254445.com -3255566.net -325city.xyz -325dayclub.xyz -325designcentre.xyz -325online.xyz -325shop.xyz -3261188.net -3261r.com -326herry.com -326law.xyz -326photo.xyz -326sao.com -326tech.xyz -326usa.xyz -327communications.xyz -327designexperts.xyz -327dev.xyz -327enterprises.xyz -327mag.xyz -327pictures.xyz -327plus.xyz -327studios.xyz -327web.xyz -328037.com -328art.xyz -328center.xyz -328club.xyz -328grouppoint.xyz -328herry.com -328hetty.com -328music.xyz -328net.xyz -328photo.xyz -329blog.xyz -329capital.xyz -329club.xyz -329designsolutions.xyz -329events.xyz -329hotel.xyz -329inc.xyz -329music.xyz -329nj.xyz -329pr.xyz -329press.xyz -329ru.com -329shop.xyz -329si.com -329store.xyz -329trading.xyz -329wo.com -329xu.com -32a6.club -32bfe2.xyz -32doso.com -32inchledtvreviews.com -32rnhp.com -32try.com -32y.ru -32zbl.xyz -330561.com -330563.com -330565.com -330a330.com -330d330.com -330g330.com -330j330.com -330n330.com -330o330.com -330q330.com -330r330.com -330x330.com -330z330.com -331main.com -33212e.com -33212g.com -33212i.com -33212k.com -33212q.com -33212r.com -332288211.com -3324445.com -3325804.com -333-exemptions.net -333.igg.biz -333001d.com -333001e.com -333001h.com -333001x.com -3335258.com -3337426.com -3338a.com -333933.com -3339u.com -333br88.com -333kao.com -333qp.com -333ua.com -333ub.com -333uh.com -333uq.com -333uw.com -333vk.com -333yeye.com -334206.com -334488211.com -335588211.com -33760.xyz -33833.xyz -338888211.com -338aqq.net -339206.com -3398766.com -339ac.com -33bit.ru -33di.club -33hg.bet -33hhqp.com -33jisu.com -33m.co -33mail.com -33protector.ru -33s.info -33sil.site -33xliczvveq9ukw7.best -3404445.com -340c.club -3414445.com -34150c19.xyz -341858.com -34487.fun -344vip31.com -344vip32.com -345.pl -34545656.xyz -3459827.com -345v345t34t.cf -345v345t34t.ga -345v345t34t.gq -345v345t34t.ml -345v345t34t.tk -346345473.xyz -3464445.com -34828.monster -3484445.com -348es7arsy2.cf -348es7arsy2.ga -348es7arsy2.gq -348es7arsy2.ml -348es7arsy2.tk -349827.com -34favorisen.com -34rf6y.as -34rfwef2sdf.co.pl -34se.biz -34svet.site -350qs.com -351qs.com -35216.monster -3522173.site -3524445.com -3529842636452.info -35349.monster -3535.site -35382.monster -353ac.com -3554445.com -3555js.com -356qs.com -356ue.space -3574445.com -357merry.com -357ue.space -3584445.com -358ue.space -359956.com -359ue.space -35b638.xyz -35betx.xyz -35bit.ru -35favorisen.com -35german.online -35ihe.us -35top.space -35yuan.com -360.associates -360.auction -360.band -360.bargains -360.black -360.camp -360.catering -360.church -360.clinic -360.contractors -360.dance -360.delivery -360.directory -360.education -360.equipment -360.exposed -360.express -360.forsale -360.furniture -360.gives -360.hosting -360.industries -360.institute -360.irish -360.lgbt -360.limo -360.markets -360.melbourne -360.monster -360.moscow -360.motorcycles -360.museum -360.navy -360.partners -360.pics -360.recipes -360.soccer -360.study -360.surgery -360.tires -360.toys -360.vet -36061.monster -36080.monster -360832.com -360975.com -360artem.xyz -360casefullprotection.xyz -360chs.site -360cinema.ru -360discountgames.info -360la.buzz -360onefirm.com -360reviews.net -360shopat.com -360spel.se -360woodworking.com -3611188.net -3614445.com -36233.monster -362332.com -3629927.com -362ue.space -363.net -3634445.com -3637glendonave.com -3644445.com -364ue.space -365-day.ru -365.moe -3651ri.com -3651se.com -3651she.com -36534.monster -36552a.com -36552b.com -36552e.com -36552g.com -36552k.com -36552o.com -36552u.com -36552x.com -36552y.com -36552z.com -365600.info -365600.net -365600.xyz -3657she.com -365generators.com -365jjs.com -365live7m.com -365me.info -365scotland.com -365tickets.global -365ue.space -366655.net -366yr.com -366zy.com -3675.mooo.com -36832.monster -36868a.com -368904.com -368herry.com -368hetty.com -368pan.com -369hetty.com -369mimi.com -36c4.xyz -36degreebuilders.com -36fd.club -36poker.ru -36ru.com -36rzd.ru -36xx.biz -37045.monster -370shop.com -370z-uk.com -37141190.xyz -3714445.com -37146.monster -37285.monster -374kj.com -374r.com -3754445.com -37556.monster -375piksel.xyz -3761188.net -37613.monster -3764445.com -3782wqk.targi.pl -37870.monster -37art.com -37ddpe.us -37dnah.us -380064.com -3804445.com -38117.monster -38365.monster -38399.host -3844445.com -38488.fun -38528.com -385619.com -385manbetx.com -386a101.com -386a102.com -386catering.ru -386herry.com -386hetty.com -38759.monster -38768.monster -3880988.com -3882988.com -38850006.com -38850007.com -38850008.com -3885688.com -3885988.com -3886123.com -3886128.com -3886129.com -3886190.com -3886388.com -3887388.com -3887788.com -38992.monster -38bhsx.us -38bvn.net -38favorisen.com -38l0wf.info -38sy.bet -38timebet.com -3903.com -3914445.com -391881.com -3924445.com -3938hg.com -39397.monster -3940hg.com -3942hg.com -3943hg.com -3944hg.com -3945hg.com -3946hg.com -3947hg.com -3948hg.com -3950hg.com -3952hg.com -3954445.com -3955566.net -3957hg.com -39584.xyz -3959hg.com -395dy.com -396206.com -3964445.com -3964hg.com -396ac.com -396hetty.com -398314.com -3983gg.com -3983ii.com -3983mm.com -3983pp.com -3983tt.com -3983vv.com -3984445.com -398ac.com -39bio.net -39d78.club -39hair.com -39koyr.us -39p.ru -39pop.com -39shipin.xyz -3a-trust.ru -3abenv.us -3ac5e.xyz -3aenuu.us -3agg8gojyj.ga -3agg8gojyj.gq -3agg8gojyj.ml -3aijs.us -3amrous.ga -3arn.net -3at7w.us -3avz.net -3axe.pro -3b5fzy.com -3ba.online -3bdyw.info -3bffpe.us -3bo1grwl36e9q.cf -3bo1grwl36e9q.ga -3bo1grwl36e9q.gq -3bo1grwl36e9q.ml -3bo1grwl36e9q.tk -3boshi.info -3c0zpnrhdv78n.ga -3c0zpnrhdv78n.gq -3c0zpnrhdv78n.ml -3c0zpnrhdv78n.tk -3c168.com -3c63e56.club -3c9d8ecb.xyz -3ce5jbjog.pl -3chefsoriginal.com -3colormaster.site -3czfe.site -3d-films.ru -3d-live.ru -3d-magical-magnet.ru -3d-painting.com -3d-sculptor.ru -3d180.com -3d34.space -3d36.space -3d4299.xyz -3d4o.com -3d98mz.us -3dadultdate.com -3dadultsim.com -3darchitekci.com.pl -3dautomobiles.com -3day.us -3db7.xyz -3dbca2b4.club -3dcamcorders.com -3dcollection.ru -3dcopyme.ru -3dfsfdfdfddffd.com -3dgct7.info -3dgit.com -3dgit.info -3dgit.net -3dheadsets.net -3dholography.info -3dhome26.ru -3dhor.com -3diifwl.mil.pl -3dmail.top -3dnevvs.ru -3doggrafx.com -3dollarcafe.net -3doyunlar24.com -3dpen-msk01.ru -3dporte.site -3dprinter-vl.ru -3drugs.com -3dsculpter.com -3dsculpter.net -3dsgateway.eu -3dsimulator.ru -3dstartups.net -3dtovari.ru -3dwstudios.net -3ebdb9.site -3efc7c.club -3eli.ru -3enrg.com -3escaladcdh.site -3etvi1zbiuv9n.cf -3etvi1zbiuv9n.ga -3etvi1zbiuv9n.gq -3etvi1zbiuv9n.ml -3etvi1zbiuv9n.tk -3eu2hy.com -3ew.usa.cc -3fb7to.best -3fhjcewk.pl -3fkq7b.us -3fsv.site -3fy1rcwevwm4y.cf -3fy1rcwevwm4y.ga -3fy1rcwevwm4y.gq -3fy1rcwevwm4y.ml -3fy1rcwevwm4y.tk -3g24.pl -3g2bpbxdrbyieuv9n.cf -3g2bpbxdrbyieuv9n.ga -3g2bpbxdrbyieuv9n.gq -3g2bpbxdrbyieuv9n.ml -3g2bpbxdrbyieuv9n.tk -3g9c.club -3gauto.co.uk -3gk2yftgot.cf -3gk2yftgot.ga -3gk2yftgot.gq -3gk2yftgot.ml -3gk2yftgot.tk -3gly.com -3gmovierulz.com -3gmtlalvfggbl3mxm.cf -3gmtlalvfggbl3mxm.ga -3gmtlalvfggbl3mxm.gq -3gmtlalvfggbl3mxm.ml -3gmtlalvfggbl3mxm.tk -3gnet.ru -3goam9.xyz -3goodnews.space -3h6tey.us -3hdmku.us -3hermesbirkin0.com -3hvp5pvdzamlkpj.xyz -3i6vxc.us -3ib54k5n.space -3imaginarygirls.com -3ipmo.us -3issamewlaidofficail.space -3izo1a.us -3j0rq.us -3j4rnelenwrlvni1t.ga -3j4rnelenwrlvni1t.gq -3j4rnelenwrlvni1t.ml -3j4rnelenwrlvni1t.tk -3jiepai.xyz -3jl.ru -3jq.info -3jxux4awkcrz3oz.xyz -3kbyueliyjkrfhsg.ga -3kbyueliyjkrfhsg.gq -3kbyueliyjkrfhsg.ml -3kbyueliyjkrfhsg.tk -3ker23i7vpgxt2hp.cf -3ker23i7vpgxt2hp.ga -3ker23i7vpgxt2hp.gq -3ker23i7vpgxt2hp.ml -3ker23i7vpgxt2hp.tk -3kh990rrox.cf -3kh990rrox.ml -3kh990rrox.tk -3kk20.com -3kk23.com -3kk27.com -3kk29.com -3kk38.com -3kk41.com -3kk43.com -3knloiai.mil.pl -3kqvns1s1ft7kenhdv8.cf -3kqvns1s1ft7kenhdv8.ga -3kqvns1s1ft7kenhdv8.gq -3kqvns1s1ft7kenhdv8.ml -3kqvns1s1ft7kenhdv8.tk -3krtqc2fr7e.cf -3krtqc2fr7e.ga -3krtqc2fr7e.gq -3krtqc2fr7e.ml -3krtqc2fr7e.tk -3kurge.us -3l6.com -3m4i1s.pl -3m8vt.icu -3mail.ga -3mail.gq -3mail.rocks -3mailapp.net -3mbet.info -3mcoin.info -3mcoin.org -3md.xyz -3mi.org -3million3.com -3milyoner365.com -3mir4osvd.pl -3monthloanseveryday.co.uk -3movierulzz.club -3mx.biz -3ndbw8.host -3nixmail.com -3nn0y.site -3ntiqo.info -3ntongm4il.ga -3ntxtrts3g4eko.cf -3ntxtrts3g4eko.ga -3ntxtrts3g4eko.gq -3ntxtrts3g4eko.ml -3ntxtrts3g4eko.tk -3ohwhrgn.website -3on.tech -3p11.club -3p30.club -3p9c2m.racing -3papa.ooo -3pily.ru -3pl-distribution.net -3pleasantgentlemen.com -3pozsm.us -3pscsr94r3dct1a7.cf -3pscsr94r3dct1a7.ga -3pscsr94r3dct1a7.gq -3pscsr94r3dct1a7.ml -3pscsr94r3dct1a7.tk -3pxsport.com -3q138.com -3q7j3h.online -3qaths.info -3qi6hy.us -3qp6a6d.media.pl -3qpplo4avtreo4k.cf -3qpplo4avtreo4k.ga -3qpplo4avtreo4k.gq -3qpplo4avtreo4k.ml -3qpplo4avtreo4k.tk -3qxfar.us -3qzcpn.us -3r5onu.site -3r8pmr.site -3raspberryketonemonster.com -3rdeyeassociates.com -3rdhour.com -3rdwavefashion.com -3redbatsaffiliates.com -3rmduz.us -3rood.website -3s3n.info -3s3n.org -3s3n.us -3s8831.com -3s8888.net -3skzlr.site -3spoker.com -3spoker.net -3spraut.ru -3sprauts.ru -3ssfif.pl -3suisses-3pagen.com -3sw17d.us -3tcini.info -3tfnnk.us -3th-market-shopp.online -3tp.ru -3trtretgfrfe.tk -3twewx.online -3ucq.us -3uiexk.us -3uptc.us -3utasmqjcv.cf -3utasmqjcv.ga -3utasmqjcv.gq -3utasmqjcv.ml -3utasmqjcv.tk -3utilities.com -3voip.ru -3vuwk8.info -3wbetx.info -3wcgah.us -3win.live -3wmnivgb8ng6d.cf -3wmnivgb8ng6d.ga -3wmnivgb8ng6d.gq -3wmnivgb8ng6d.ml -3wmnivgb8ng6d.tk -3wxhmv.info -3wxoiia16pb9ck4o.cf -3wxoiia16pb9ck4o.ga -3wxoiia16pb9ck4o.ml -3wxoiia16pb9ck4o.tk -3x0ex1x2yx0.cf -3x0ex1x2yx0.ga -3x0ex1x2yx0.gq -3x0ex1x2yx0.ml -3x0ex1x2yx0.tk -3x56.com -3xb90.club -3xjg0x.us -3xk.xyz -3xmoney.ru -3xophlbc5k3s2d6tb.cf -3xophlbc5k3s2d6tb.ga -3xophlbc5k3s2d6tb.gq -3xophlbc5k3s2d6tb.ml -3xophlbc5k3s2d6tb.tk -3xpl0it.vip -3ykacb.us -3z1ybp.host -3zar0252773.xyz -3zar0631533.xyz -3zar4406240.xyz -3zar5092660.xyz -3zar5960488.xyz -3zar9560167.xyz -3zar9582935.xyz -3zar9588159.xyz -3zar9610850.xyz -3zar9648137.xyz -3zar9649755.xyz -3zar9679233.xyz -3zar9711484.xyz -3zar9727694.xyz -3zar9747292.xyz -3zar9751254.xyz -3zar9751917.xyz -3zar9754677.xyz -3zar9770435.xyz -3zar9774507.xyz -3zar9787007.xyz -3zar9817748.xyz -3zar9855085.xyz -3zar9857698.xyz -3zar9869835.xyz -3zar9879852.xyz -3zar9889771.xyz -3zar9902505.xyz -3zar9906626.xyz -3zar9913256.xyz -3zar9920018.xyz -3zar9928344.xyz -3zar9941846.xyz -3zar9968623.xyz -3zar9979186.xyz -3zumchngf2t.cf -3zumchngf2t.ga -3zumchngf2t.gq -3zumchngf2t.ml -3zumchngf2t.tk -3zxdwj.site -4-boy.com -4-credit.com -4-debt.com -4-n.us -4.batikbantul.com -4.emailfake.ml -4.fackme.gq -40.volvo-xc.ml -40.volvo-xc.tk -4004445.com -4006444444.com -4006633333.com -4006677777.com -400br88.com -400da.ga -400domov.ru -40112.monster -4014445.com -401k300.live -401k300.ninja -401khedgefund.com -401kinvestmentadvisers.com -4034445.com -403qs.com -404box.com -404lorn.com -404qs.com -4057.com -4059.com -405piksel.xyz -4064445.com -406net.works -40837.monster -409356.com -40abc.ru -40andfitformen.com -40az.com -40bit.ru -40channels.com -40daikonkatsu-kisarazusi.xyz -40e0f2df.xyz -40favorisen.com -40gm40.club -40rip.ru -40rty.shop -40set.ru -40siri90.com -410piksel.xyz -411206.com -4114445.com -411beach.com -411beaches.com -411brides.com -411jobsblog.xyz -411jobsclub.xyz -411jobshomes.xyz -411jobslife.xyz -411jobsshop.xyz -411reversedirectory.com -411todayblog.xyz -411todayclub.xyz -411todaygroup.xyz -411todayhome.xyz -411todayone.xyz -411todayonline.xyz -411todayshop.xyz -41255.monster -4136552.com -4144445.com -415piksel.xyz -417homesphotography.xyz -417homesservices.xyz -417realtyclub.xyz -418.dk -418.se -4188019.com -419827.com -419833.com -41baoku.com -41blueslipnyc.com -41designclub.xyz -41eoyr.us -41plusdrive.xyz -41plusfoundation.xyz -41plusonline.xyz -41plusphotography.xyz -41scu.us -41uno.com -41uno.net -41usa.xyz -41v1relaxn.com -41y.ru -4204445.com -420baby.store -420blaze.it -420ico.bid -420pure.com -42380398.xyz -424267.com -42507.com -426074.com -42691.monster -427qs.com -4284445.com -429080.com -429356.com -4294445.com -429827.com -429a5d2.club -42assets.com -42betlike.com -42j3qfxroi.xyz -42o.org -42papa.com -42pets.com -42pinbahis.com -42trust.com -42u902u41t0.online -42u902u41t0.space -42u902u41t01t0.online -42u902u41t01t0.space -42u902u41t0924.online -42u902u41t0924.space -42u902u442i90j.online -42u902u442i90j.space -42u902u4924.online -42u902u4924.space -42u902u49241t0.online -42u902u49241t0.space -42u902u4924924.online -42u902u4924924.space -42u902u4h33u19.online -42u902u4vhh13h.online -42u902u4vhh13h.space -43070.monster -431qs.com -432206.com -4329827.com -433080.com -433206.com -4333840.site -4334445.com -433g.net -433qs.com -4344445.com -43601.xyz -438037.com -438800.com -438manbetx.com -4394445.com -439827.com -43adsdzxcz.info -43day365.xyz -43daydrive.xyz -43dayone.xyz -43dayshop.xyz -43dayway.xyz -43design365.xyz -43designclub.xyz -43designdrive.xyz -43designone.xyz -43designphotography.xyz -43designshop.xyz -43designway.xyz -43donschool.ru -43events.xyz -43manbetx.com -43papa.com -43sdvs.com -43site.xyz -43w6ft.netmail.tk -4404445.com -441206.com -443206.com -443388211.com -444044.xyz -44422.app -44443339.com -444449a.com -4444bbb.com -4444gao.com -4444riri.com -4444ru.com -4444sqw.com -4444vod.com -4444yin.com -4445aomenjinsha.com -4445i.com -4445j.com -4445jinsha.com -4445ms.com -4445n.com -4445q.com -4445sc.com -4445v.com -4445wap.com -4445x.com -4449837.com -444gege.com -444riri.com -444yiyi.com -444yyhh.com -44556677.igg.biz -445588211.com -445e8b.club -445t6454545ty4.cf -445t6454545ty4.ga -445t6454545ty4.gq -445t6454545ty4.ml -445t6454545ty4.tk -446206.com -446688211.com -446988.com -447206.com -44741.monster -4474445.com -448206.com -448440.com -4484445.com -448888211.com -449206.com -449988211.com -44ant.biz -44bit.ru -44bubu.com -44din.com -44favorisen.com -44hg.app -44mot.ru -44msc.biz -44scores.com -44stttn.xyz -45.biz -4504445.com -45058.monster -450com.com -450piksel.xyz -4510471.com -4510471.xyz -4524445.com -453000.win -453007.site -4533.top -4545.a.hostable.me -45456455.xyz -45460703.xyz -4547b3.com -454jackpot.com -455206.com -4555yh.com -456.dns-cloud.net -45632155.xyz -4564445.com -45656743.xyz -45656753.xyz -456575675.xyz -4569827.com -456b4564.cf -456b4564.ga -456b4564.gq -456b4564.ml -456b4564ev4.ga -456b4564ev4.gq -456b4564ev4.ml -456b4564ev4.tk -4574445.com -45780b1.club -4584445.com -459356.com -459d.club -45bt2.club -45e6.club -45favorisen.com -45hotesl.com -45it.ru -45kti.xyz -45up.com -46018.monster -460328.com -4604445.com -46059e0.xyz -4636552.com -463bv.space -465279.com -466453.usa.cc -46735.xyz -4674445.com -467uph4b5eezvbzdx.cf -467uph4b5eezvbzdx.ga -467uph4b5eezvbzdx.gq -467uph4b5eezvbzdx.ml -468391.com -4685dg.download -468671.info -46885c3f.xyz -469827.com -469837.com -46beton.ru -46designclub.xyz -46designdrive.xyz -46designhotel.xyz -46designplace.xyz -46homes.xyz -46international.xyz -46lclee29x6m02kz.cf -46lclee29x6m02kz.ga -46lclee29x6m02kz.gq -46lclee29x6m02kz.ml -46lclee29x6m02kz.tk -46plusone.xyz -46timebet.com -46world.xyz -47057.xyz -470qs.com -4720799.club -4744445.com -4754445.com -475829487mail.net -476429.com -47660.monster -476812763.info -4774445.com -47871.monster -478webhost.biz -4794445.com -479827.com -47ad119.club -47bit.ru -47c8kp.site -47designhomes.xyz -47designonline.xyz -47designphotography.xyz -47global.xyz -47l6g.us -47stmedia.com -47t.de -47webclub.xyz -47webone.xyz -47webonline.xyz -47webplace.xyz -480972.com -48164.monster -4818barsun.com -4824e.xyz -48365.xyz -48411.monster -4844445.com -4849.ru -48643.monster -4864445.com -487.nut.cc -48725.monster -4874445.com -48745.monster -4897c.club -4899w.com -48b3f73f.club -48dayclub.xyz -48daymovie.xyz -48ent.xyz -48m.info -48marketing.xyz -48nga.com -48plusclub.xyz -48plushomes.xyz -48plusmovie.xyz -48plusone.xyz -48plusphotography.xyz -48plusshop.xyz -48step.xyz -48usa.xyz -48way.xyz -4904445.com -4924445.com -492949a.com -493085.com -4944445.com -495-5454-695.ru -4954445.com -495metrov.ru -4964445.com -49696.xyz -4984445.com -498546511.xyz -499494a.com -49com.com -49dayblog.xyz -49daydrive.xyz -49dayhome.xyz -49dayhomes.xyz -49dayonline.xyz -49designblog.xyz -49designhome.xyz -49designone.xyz -49dgx.us -49ersproteamshop.com -49erssuperbowlproshop.com -49ersuperbowlshop.com -49guide.xyz -49pinbahis.com -49qoyzl.aid.pl -49thcoffee.club -49xq.com -49zuhbfwo9pfk13.xyz -4a12003.club -4agr.com -4alltradezmall.store -4alphapro.com -4avz.net -4b5yt45b4.cf -4b5yt45b4.ga -4b5yt45b4.gq -4b5yt45b4.ml -4b5yt45b4.tk -4baptists.com -4bb01643e14b.xyz -4bees.org -4bettergolf.com -4bf7eh.us -4blogers.com -4brothersdevelopment.com -4btec.com -4bver2tkysutf.cf -4bver2tkysutf.ga -4bver2tkysutf.gq -4bver2tkysutf.ml -4bver2tkysutf.tk -4bvm5o8wc.pl -4c1jydiuy.pl -4c5kzxhdbozk1sxeww.cf -4c5kzxhdbozk1sxeww.gq -4c5kzxhdbozk1sxeww.ml -4c5kzxhdbozk1sxeww.tk -4ca0d5c0.club -4callofduty.com -4chan.club -4cheaplaptops.com -4chnan.org -4cloud47.xyz -4cs-laser.com -4d2.online -4d2.rocks -4d2.solutions -4d2.store -4d2.world -4dentalsolutions.com -4diabetes.ru -4dincheon.info -4dincheon.org -4dlive.info -4dmacan.org -4dpondok.biz -4dtianjin.info -4dtianjin.org -4dx.pw -4e50ky.us -4easyemail.com -4eofbxcphifsma.cf -4eofbxcphifsma.ga -4eofbxcphifsma.gq -4eofbxcphifsma.ml -4eofbxcphifsma.tk -4etkwggjit7n4o6.xyz -4evangelicals.com -4ex30.us -4exporters.com -4ezloss.com -4fbdeo.us -4fcw4lt.best -4fda.club -4fengli.com -4fly.ga -4fly.ml -4fm9zk.us -4fou.com -4free.li -4freemail.org -4funpedia.com -4gamersbygamers.com -4gamesale.club -4gei7vonq5buvdvsd8y.cf -4gei7vonq5buvdvsd8y.ga -4gei7vonq5buvdvsd8y.gq -4gei7vonq5buvdvsd8y.ml -4gei7vonq5buvdvsd8y.tk -4georgia.org -4gfdsgfdgfd.tk -4gmovierulz.com -4grtkr.site -4gtula.us -4guam.org -4gwpencfprnmehx.cf -4gwpencfprnmehx.ga -4gwpencfprnmehx.gq -4gwpencfprnmehx.ml -4gwpencfprnmehx.tk -4hd8zutuircto.cf -4hd8zutuircto.ga -4hd8zutuircto.gq -4hd8zutuircto.ml -4hd8zutuircto.tk -4heat.ru -4hilton.net -4homeschooling.com -4hsxniz4fpiuwoma.ga -4hsxniz4fpiuwoma.ml -4hsxniz4fpiuwoma.tk -4illinois.org -4ima1x.us -4indiana.org -4indianews.com -4itcv3.us -4j3bvd.stream -4j9kl3ocq7.best -4j9tm.com -4jojo.com -4k2glw.us -4kd.ru -4kentucky.org -4kqk58d4y.pl -4kse.xyz -4kvadro.ru -4kzsjg.com -4l7r.icu -4lasoankhokthich.space -4lfqre.us -4louisiana.org -4lvpet.us -4mail.cf -4mail.ga -4mail.top -4mbet.info -4milyoner365.com -4minnesota.org -4mispc8ou3helz3sjh.cf -4mispc8ou3helz3sjh.ga -4mispc8ou3helz3sjh.gq -4mispc8ou3helz3sjh.ml -4mispc8ou3helz3sjh.tk -4mjrad.us -4mnsuaaluts.cf -4mnsuaaluts.ga -4mnsuaaluts.gq -4mnsuaaluts.ml -4mnsuaaluts.tk -4mnvi.ru -4mobile.pw -4mod.com -4money.site -4movierulzfree.com -4mpdsv.us -4mqrehwp.monster -4mtxds.us -4mwgfceokw83x1y7o.cf -4mwgfceokw83x1y7o.ga -4mwgfceokw83x1y7o.gq -4mwgfceokw83x1y7o.ml -4mwgfceokw83x1y7o.tk -4myloveones.com -4na3.pl -4nb.info -4nextmail.com -4nl.info -4nmpjhlrfp3uy06.xyz -4nmv.ru -4nv9v.us -4oawtg.site -4ocly.us -4ocmmk87.pl -4of671adx.pl -4ofqb4hq.pc.pl -4oi.ru -4oklahoma.org -4orty.com -4ozqi.us -4padpnhp5hs7k5no.cf -4padpnhp5hs7k5no.ga -4padpnhp5hs7k5no.gq -4padpnhp5hs7k5no.ml -4padpnhp5hs7k5no.tk -4pass.tk -4pet.ro -4pkr15vtrpwha.cf -4pkr15vtrpwha.ga -4pkr15vtrpwha.gq -4pkr15vtrpwha.ml -4pkr15vtrpwha.tk -4prkrmmail.net -4puertorico.org -4q9tw.site -4qmail.com -4rakipbet.com -4rdbt.icu -4red.ru -4rfv6qn1jwvl.cf -4rfv6qn1jwvl.ga -4rfv6qn1jwvl.gq -4rfv6qn1jwvl.ml -4rfv6qn1jwvl.tk -4rl.info -4rxiet.us -4rybu.us -4s9ryg.us -4sakej.us -4sauna.ru -4sculpting.com -4se.us -4search.global -4search.pictures -4security.ru -4securityguards.com -4senditnow.com -4senior.life -4shizzleyo.com -4simpleemail.com -4siri90.com -4sjgy8.us -4softsite.info -4starmaids.com -4stroy.info -4stroy.pl -4struga.com -4studio43.xyz -4suf6rohbfglzrlte.cf -4suf6rohbfglzrlte.ga -4suf6rohbfglzrlte.gq -4suf6rohbfglzrlte.ml -4suf6rohbfglzrlte.tk -4sumki.org.ua -4supermarkets.com -4sygo.com -4tb.host -4tbny5.site -4testimonials.com -4timesover.com -4tmail.com -4tmail.net -4tphy5m.pl -4trainers.ru -4trumpers.com -4u2web.com -4u36s.us -4up3vtaxujpdm2.cf -4up3vtaxujpdm2.ga -4up3vtaxujpdm2.gq -4up3vtaxujpdm2.ml -4up3vtaxujpdm2.tk -4vc0pezfz7oppcv.xyz -4verified.com -4vjtan.com -4vlasti.net -4vny8e.us -4vocal.com -4vq19hhmxgaruka.cf -4vq19hhmxgaruka.ga -4vq19hhmxgaruka.gq -4vq19hhmxgaruka.ml -4vq19hhmxgaruka.tk -4w.io -4w0sz.us -4w4w4w.xyz -4wanbet.org -4warding.com -4warding.net -4warding.org -4wpgxw.info -4wu2et.us -4wyoming.org -4x10.ru -4x1y3n98pdus.online -4x4-team-usm.pl -4x4man.com -4x4n.ru -4x5aecxibj4.cf -4x5aecxibj4.ga -4x5aecxibj4.gq -4x5aecxibj4.ml -4x5aecxibj4.tk -4x888.com -4xmail.net -4xmail.org -4xyitv.site -4xzotgbunzq.cf -4xzotgbunzq.ga -4xzotgbunzq.gq -4xzotgbunzq.ml -4xzotgbunzq.tk -4y3zos.us -4yhcmx.us -4yodarbestfdish.xyz -4yooufoodsme.xyz -4you.de -4youalamitech.xyz -4youbet.info -4youbet.org -4youbuzzza.xyz -4youchoicce.store -4youfoodalami.xyz -4youihibasouit.xyz -4ypbc.us -4ywzd.xyz -4zbt9rqmvqf.cf -4zbt9rqmvqf.ga -4zbt9rqmvqf.gq -4zbt9rqmvqf.ml -4zbt9rqmvqf.tk -4ze1hnq6jjok.cf -4ze1hnq6jjok.ga -4ze1hnq6jjok.gq -4ze1hnq6jjok.ml -4ze1hnq6jjok.tk -4zhens.info -4zm1fjk8hpn.cf -4zm1fjk8hpn.ga -4zm1fjk8hpn.gq -4zm1fjk8hpn.ml -4zm1fjk8hpn.tk -5-attorney.com -5-box.ru -5-mail.info -5-star.repair -5.emailfake.ml -5.fackme.gq -500-0-501.ru -500-rub.ru -50000t.com -50000z.com -5000302.ru -500555.app -50056.monster -500888.app -5009778.com -500au.com -500da.ga -500loan-payday.com -500ml.art -500obyavlenii.ru -500qf.com -50271.monster -5044445.com -504718.com -50573c.com -505812.com -5064445.com -506760.com -5074445.com -508227.com -509journey.com -50abc.ru -50c0bnui7wh.cf -50c0bnui7wh.ga -50c0bnui7wh.gq -50c0bnui7wh.ml -50c0bnui7wh.tk -50daikonkatsu-oumihatimansi.xyz -50it.ru -50jin.ru -50mb.ml -50offsale.com -50plusfitnesscenters.com -50sale.club -50sale.edu.vn -50saleclub.com -50set.ru -51.com -510014.com -510520.org -510md.com -510sc.com -511153126.buzz -511157544.buzz -5114445.com -5124445.com -5129927.com -512jsq.com -51329.monster -514loans.net -515.tech -5154445.com -5159927.com -5164445.com -516ac.com -516qs.com -517577aa.com -517577ff.com -517577hh.com -517577jj.com -517577oo.com -517dnf.com -517she.com -517wanzhuan.com -517xc.space -5184445.com -5188yg.com -5194445.com -519art.com -51azinoijefomcf.icu -51cp66.com -51forex.online -51icq.com -51jel.com -51jiaju.net -51kayak.com -51kfb.xyz -51kky.club -51kyb.com -51lya8.site -51lyt.com -51mfty.com -51stocks.xyz -51store.ru -51ttkx.com -51xh.fun -51xiuqi.com -51xoyo.com -51zws.com -5200001.top -5202010.com -5202011.com -5202012.com -5202016.com -5204445.com -5204567.com -520mgm1.com -520mgm2.com -520mgm5.com -520mgm9.com -520pp.xyz -520wukong.com -520xjapp.com -52110.monster -52154.monster -5217.website -5218ag.com -523gbt.com -52438.xyz -524713.com -5258aaa.com -5258ccc.com -5258cz.com -5258ddd.com -5258hhh.com -5258iii.com -5258kj.com -5258kkk.com -5258lll.com -5258m.com -5258mmm.com -5258n.com -5258nnn.com -5258r.com -5258rrr.com -5258ttt.com -5258u.com -5258v.com -5258vvv.com -5258www.com -5258xxx.com -5258y.com -5258z.com -5258zf.com -5258zzz.com -5259d1.xyz -525kou.com -5261188.net -52694.xyz -526ba.com -526ca.com -526di.com -526en.com -526ge.com -526ji.com -526ke.com -526li.com -528037.com -52896.monster -5289927.com -5294445.com -52964.xyz -529ac.com -529qs.com -52akb.ru -52astar.com -52avpzg.info -52gmail.com -52it.ru -52moe.com -52panda.info -52siwa.xyz -52smooth.com -52subg.org -52tbao.com -52tour.com -52xjapp.com -5304445.com -530run.com -530run.net -5311188.net -5314445.com -5325566.net -53256.monster -532qs.com -533ac.com -5351188.net -5354445.com -536898.club -5369927.com -5376k.com -5380b.club -53822.monster -538a.xyz -538hd.com -53978.monster -539b82a0.club -53vtbcwxf91gcar.cf -53vtbcwxf91gcar.ga -53vtbcwxf91gcar.gq -53vtbcwxf91gcar.ml -53vtbcwxf91gcar.tk -54177.monster -541lfh.us -54268426542654.info -5434445.com -543dsadsdawq.info -545kp.info -5464445.com -54693.monster -54770.xyz -5485.website -548fqr.us -54916.monster -549356.com -549827.com -54988.com -54artistry.com -54ewma.us -54mguitcku64n7f.xyz -54np.club -54pyy.com -54tiljt6dz9tcdryc2g.cf -54tiljt6dz9tcdryc2g.ga -54tiljt6dz9tcdryc2g.gq -54tiljt6dz9tcdryc2g.ml -54tiljt6dz9tcdryc2g.tk -54zxl.info -55002123.com -550088211.com -5500jc4.com -5500jc6.com -5500xz.com -550559.info -55206.cc -552288211.com -55229.net -5524445.com -553388211.com -5534445.com -554206.com -5544445.com -5544499.info -554ds.com -555000jc4.com -555000jc9.com -555536566.com -55555cn.com -5555fun.com -5555lx.com -55581555.com -55586555.com -55593555.com -555gmail.com -555papa.com -555uh.com -555ur.com -5564445.com -5566178.com -5566358.com -5566368.com -5566508.com -5566518.com -5566528.com -5566538.com -556655vn.com -5566598.com -5566617.com -5566623.com -5566627.com -5566628.com -5566653.com -5566658.com -5566659.com -5566672.com -5566681.com -5566682.com -5566691.com -5566693.com -5566738.com -5566758.com -556688211.com -557652.com -5579927.com -558-10.com -558-11.com -558-22.com -558-33.com -558-44.com -558-66.com -558-77.com -558-8.com -558-88.com -5581788.com -5588600.com -558888211.com -5588rt.space -55919b.com -5594445.com -5599rt.space -55abx.xyz -55c1bda2.xyz -55dy.info -55hg.app -55hg.bet -55hosting.net -55mariettastreet.com -56123m.com -56234m.com -5624445.com -5629927.com -5634445.com -56466233sb1.xyz -564b.club -5654445.com -56567m.com -5664445.com -567107.com -56787.com -5679827.com -568ac.com -56k.tokyo -56toyk.us -570nk.com -5714445.com -57151711.xyz -5717.ru -571ri.com -571sa.com -571se.com -571te.com -571yi.com -571za.com -5724445.com -57291.xyz -5739222.com -574c9d1.club -5754445.com -576166nn.com -576166ss.com -576166ww.com -576166zz.com -576cce70.xyz -576qs.com -5774445.com -5788hy.com -57994.xyz -57ffdjz.host -57timebet.com -57top.ru -57up.com -57xd.icu -5801000.ru -5804445.com -580628.com -5814445.com -5829927.com -582ds.com -5858.cd -5864445.com -586qs.com -587922.com -588-10.net -588-9.net -5880088.com -5880288.com -5880388.com -5880688.com -5882088.com -5882388.com -5884445.com -5885678.com -5886088.com -5886388.com -588card.com -588indo.com -588v2.info -5897f.com -58994.xyz -58as.com -58cam.live -58cam.site -58ec7.club -58h.de -58k.ru -59003456.com -59188cp.com -5925566.net -592ac.com -593ds.com -594qs.com -595ac.com -597401.com -597517.com -5979837.com -597j.com -5989927.com -5994445.com -59avtovokzal.ru -59o.net -59smi.ru -59solo.com -5a58wijv3fxctgputir.cf -5a58wijv3fxctgputir.ga -5a58wijv3fxctgputir.gq -5a58wijv3fxctgputir.ml -5a58wijv3fxctgputir.tk -5aaa.ru -5acmkg8cgud5ky.cf -5acmkg8cgud5ky.ga -5acmkg8cgud5ky.gq -5acmkg8cgud5ky.ml -5acmkg8cgud5ky.tk -5ajfk.us -5am5ung.cf -5am5ung.ga -5am5ung.gq -5am5ung.ml -5am5ung.tk -5avzu4.host -5azino777.org -5b2rak.com -5biya2otdnpkd7llam.cf -5biya2otdnpkd7llam.ga -5biya2otdnpkd7llam.gq -5biya2otdnpkd7llam.ml -5blayg.site -5btxankuqtlmpg5.cf -5btxankuqtlmpg5.ga -5btxankuqtlmpg5.gq -5btxankuqtlmpg5.ml -5btxankuqtlmpg5.tk -5c0804b6.xyz -5c86f93c.xyz -5cac.club -5cbc.com -5ciyuan.com -5cjvx4dbh4rvv6c.xyz -5cyzrn.us -5d763.xyz -5ddgrmk3f2dxcoqa3.cf -5ddgrmk3f2dxcoqa3.ga -5ddgrmk3f2dxcoqa3.gq -5ddgrmk3f2dxcoqa3.ml -5ddgrmk3f2dxcoqa3.tk -5dsmartstore.com -5e66.xyz -5ekufm.us -5el5nhjf.pl -5erdft.info -5euro.ga -5evr3o.site -5f9x2r.stream -5fengli.com -5fingershoesoutlet.com -5foods.asia -5fp31.site -5fr2hnaflkpl10f.xyz -5fwl03.info -5g.events -5g.glass -5g009.com -5g4.us -5gamdo.com -5game.ink -5gdeos.net -5gdytt.com -5gdyxz.com -5ghgfhfghfgh.tk -5gnulq.us -5gpdx.net -5gr6v4inzp8l.cf -5gr6v4inzp8l.ga -5gr6v4inzp8l.gq -5gr6v4inzp8l.ml -5gramos.com -5gvergelijker.com -5haj3n.us -5hcc9hnrpqpe.cf -5hcc9hnrpqpe.ga -5hcc9hnrpqpe.gq -5hcc9hnrpqpe.ml -5hcc9hnrpqpe.tk -5hcioh.us -5hfmczghlkmuiduha8t.cf -5hfmczghlkmuiduha8t.ga -5hfmczghlkmuiduha8t.gq -5hfmczghlkmuiduha8t.ml -5hfmczghlkmuiduha8t.tk -5hiu2b.site -5i8gvs.us -5ikos.us -5ixa0b.us -5iznnnr6sabq0b6.cf -5iznnnr6sabq0b6.ga -5iznnnr6sabq0b6.gq -5iznnnr6sabq0b6.ml -5iznnnr6sabq0b6.tk -5jchkz.us -5jddaxewlm6gump.xyz -5jir9r4j.pl -5jjh3o.best -5july.org -5jy5.icu -5ketonemastery.com -5kgube.us -5kife.us -5kino.ru -5kmklh82yh72tk0.xyz -5kzdxs.com -5l3jh.us -5ljkf.icu -5ljqim.us -5lmpsj.com -5lqwcl.us -5lydpa.space -5lzfn.icu -5m6wa.us -5mail.cf -5mail.ga -5mail.xyz -5mails.xyz -5manbetx.info -5manbetx.org -5masters.site -5mi3rb.us -5minutetrip.com -5mot.ru -5music.info -5music.top -5muvf9cd4.xyz -5my.ru -5n9f1.xyz -5nqkxprvoctdc0.cf -5nqkxprvoctdc0.ga -5nqkxprvoctdc0.gq -5nqkxprvoctdc0.ml -5nqkxprvoctdc0.tk -5nvsoc.com -5nwnks.fun -5oclockmonkey.online -5ocwa7.com -5od56.site -5ogessl0pnue88t.xyz -5ok6.com -5osjrktwc5pzxzn.cf -5osjrktwc5pzxzn.ga -5osjrktwc5pzxzn.gq -5osjrktwc5pzxzn.ml -5osjrktwc5pzxzn.tk -5ouce2.us -5ouhkf8v4vr6ii1fh.cf -5ouhkf8v4vr6ii1fh.ga -5ouhkf8v4vr6ii1fh.gq -5ouhkf8v4vr6ii1fh.ml -5ouhkf8v4vr6ii1fh.tk -5oz.ru -5papa.ooo -5qjgt.us -5qq59.xyz -5quickrecipes.com -5quq5vbtzswx.cf -5quq5vbtzswx.ga -5quq5vbtzswx.gq -5quq5vbtzswx.ml -5quq5vbtzswx.tk -5r6atirlv.pl -5rakipbet.com -5rclxb.com -5rdqv3.us -5rfscr.us -5rof.cf -5rxsy.us -5se.life -5se.mobi -5se01.com -5se04.com -5se17.com -5se24.com -5se30.com -5se43.com -5se46.com -5se48.com -5se50.com -5se56.com -5se57.com -5se63.com -5se68.com -5se70.com -5se74.com -5se79.com -5se81.com -5se85.com -5se89.com -5se94.com -5shoecoupon.com -5slap.com -5slmjs.com -5so1mammwlf8c.cf -5so1mammwlf8c.ga -5so1mammwlf8c.gq -5so1mammwlf8c.ml -5so1mammwlf8c.tk -5starsretail.com -5steps-site.ru -5sun.net -5t2e.us -5t42.space -5tb-pix.ru -5tb-video.ru -5tgrfy.com -5u4nms.us -5u612b.com -5uet4izbel.cf -5uet4izbel.ga -5uet4izbel.gq -5uet4izbel.ml -5uet4izbel.tk -5umbw2.us -5urhrt.us -5vaubc.host -5vcxwmwtq62t5.cf -5vcxwmwtq62t5.ga -5vcxwmwtq62t5.gq -5vcxwmwtq62t5.ml -5vcxwmwtq62t5.tk -5vlimcrvbyurmmllcw0.cf -5vlimcrvbyurmmllcw0.ga -5vlimcrvbyurmmllcw0.gq -5vlimcrvbyurmmllcw0.ml -5vlimcrvbyurmmllcw0.tk -5vpn.org -5vviio.us -5wanbetx.org -5watch5.com -5wjft.us -5x25.com -5xgzdu.com -5y5u.com -5yatc.site -5ygeqi.us -5yh55.com -5yi9xi9.mil.pl -5yk.idea-makers.tk -5ymail.com -5ytff56753kkk.cf -5ytff56753kkk.ga -5ytff56753kkk.gq -5ytff56753kkk.ml -5ytff56753kkk.tk -5yxhkg.us -5zan.us -5zvt9h.us -6-6-6.cf -6-6-6.ga -6-6-6.igg.biz -6-6-6.ml -6-6-6.nut.cc -6-6-6.usa.cc -6-attorney.com -6-debt.com -6.emailfake.ml -6.fackme.gq -60-minuten-mail.de -60.volvo-xc.ml -60.volvo-xc.tk -600br88.com -600da.ga -600pro.com -60127.monster -6018pc.com -601ds.com -60236.monster -6024445.com -602ds.com -6034500.info -603ds.com -604799588.xyz -605f45.xyz -6060search.com -6064445.com -60950.cn -609k23.pl -60dayworkoutdvd.info -60g2.icu -60leaves.com -60minutemail.com -60paydayloans.co.uk -60set.ru -61042.xyz -610ds.com -6114445.com -612ds.com -6136552.com -613cycling.com -6144445.com -61466.monster -614ds.com -61508.monster -6154445.com -616202.com -6169927.com -6174445.com -618011.com -61802.xyz -6194445.com -619va2h8.info -61movierulz.com -61xb.com -620047.com -6204445.com -62181.monster -621ac.com -62277.monster -6239927.com -623ac.com -62712.xyz -627ds.com -62897a64.club -62it.ru -62rwb3.info -63086.xyz -630aa.com -630ds.com -6314445.com -631ds.com -6321066.com -6321067.com -6321069.com -6321070.com -6325a.com -63305.monster -6334445.com -6339092.com -633bp.com -6344445.com -6353020.site -6369927.com -636niu.com -6375566.net -638c2997.xyz -638ds.com -63cc.net -63euro.ga -6404445.com -640niu.com -64255.xyz -644ds.com -645251.com -645lpd.site -64632.monster -64655.monster -6467.host -646dl1.com -6474445.com -6483769.xyz -6484445.com -649827.com -64a8f.us -64gvj.buzz -64mo7b.online -64uxbcwkcy8.website -650489632148.xyz -6524445.com -6530348.com -6530358.com -6530378.com -6530418.com -6530428.com -6530458.com -6530468.com -6530498.com -6530508.com -6530528.com -6530548.com -653147.com -6533c.club -6534668.com -6534848.com -6534928.com -6534948.com -6534978.com -6534998.com -653niu.com -6542984265429.info -6546500656.info -6549827.com -655559999.com -655qs.com -6564445.com -6568899.com -656niu.com -65705.xyz -657niu.com -658hg.com -659niu.com -65nryny6y7.cf -65nryny6y7.ga -65nryny6y7.gq -65nryny6y7.ml -65nryny6y7.tk -65uwtobxcok66.cf -65uwtobxcok66.ga -65uwtobxcok66.gq -65uwtobxcok66.ml -65uwtobxcok66.tk -6600a10.com -6600a16.com -6600a18.com -6600a19.com -6600a22.com -6600a23.com -6600a25.com -6600a27.com -6600a32.com -6600a33.com -6600a34.com -6600a43.com -6600a44.com -6600a48.com -6600a50.com -6600a54.com -6600a56.com -6600a57.com -6600a61.com -6600a62.com -6600a66.com -6600a67.com -6600a68.com -6600a69.com -6600a71.com -6600a72.com -6600a80.com -6600a83.com -6600a84.com -6600a85.com -6600a86.com -6600a87.com -6600a89.com -6600a92.com -6600a96.com -6600jc3.com -6604445.com -660niu.com -6615566.net -6616818.com -6618ca.com -66227d.com -6624445.com -663388211.com -663niu.com -664niu.com -665588211.com -665niu.com -665qs.com -666-evil.com -666-satan.cf -666-satan.ga -666-satan.gq -666-satan.ml -666-satan.tk -666.run -666002.xyz -66663339.com -666688211.com -666777bb.com -6667988.com -6668288.com -6668658.com -666866aa.com -666866bb.com -666866cc.com -666866dd.com -666866ee.com -666866ff.com -666866ii.com -666866jj.com -666866ll.com -666866nn.com -666866pp.com -666866rr.com -666866ss.com -666866tt.com -666866uu.com -666866vip.com -666866vv.com -666866ww.com -666866zz.com -6668788.com -6668978.com -6669008.com -6669188.com -6669318.com -6669388.com -6669398.com -6669588.com -6669628.com -6669668.com -6669868.com -6669e.com -666betgiris.net -666fsd.com -666mai.com -666nyg.com -666se16.top -666store.xyz -666vu.com -666yiyi.com -666zagrusssski.ru -666zwzm.com -6672.website -667766vn.com -6678.info -6678788.com -667niu.com -667tv.com -6681788.com -6682188.com -6682388.com -6682588.com -6683088.com -6683188.com -6683588.com -6683788.com -6685988.com -6686088.com -6688256.com -6688257.com -6688260.com -668888211.com -6690088.com -6690288.com -6690588.com -6692288.com -6692388.com -6692588.com -6692688.com -6693188.com -6693288.com -6693388.com -6693688.com -6695088.com -6695188.com -6695288.com -6695388.com -6695588.com -6695688.com -6696188.com -6696388.com -6697688.com -6698088.com -6698388.com -669988211.com -66a101.com -66a102.com -66a106.com -66a41.com -66a44.com -66a47.com -66a54.com -66a71.com -66a76.com -66a80.com -66a85.com -66a90.com -66a96.com -66abc.ru -66br88.com -66ddy.com -66ec16.xyz -66fc96b.xyz -66hg.bet -66hhqp.com -66jin.ru -66rrnn.com -66secao.icu -66shun.biz -66stttn.xyz -66tower.com -66ttll.com -66ty.online -66ty.space -66uuaa.com -66uugg.com -66uurr.com -66uutt.com -66vvee.com -66vvmm.com -66vvrr.com -66vvss.com -66wwcc.com -66wwrr.com -66wwzz.com -66zzll.com -66zzpp.com -6704445.com -670niu.com -671niu.com -67244de.xyz -672643.net -67296666.com -67297777.com -6734445.com -673506.com -6736552.com -6751188.net -675hosting.com -675hosting.net -675hosting.org -676199.com -676ac.com -676niu.com -6774445.com -677lu.com -677niu.com -67832.cf -67832.ga -67832.ml -67832.tk -6789038.com -6789058.com -6789108.com -6789128.com -6789138.com -6789158.com -6789178.com -6789208.com -6789248.com -6789258.com -6789358.com -6789548.com -6789618.com -6789648.com -6789658.com -6789827.com -6789848.com -6789938.com -6789978.com -6789v.com -678jav.com -678niu.com -678nu.com -678ou.com -678si.com -679045.icu -67998.monster -679niu.com -679yo.com -679zi.com -67azck3y6zgtxfoybdm.cf -67azck3y6zgtxfoybdm.ga -67azck3y6zgtxfoybdm.gq -67azck3y6zgtxfoybdm.ml -67azck3y6zgtxfoybdm.tk -67nref.info -67qcqm.com -67rzpjb2im3fuehh9gp.cf -67rzpjb2im3fuehh9gp.ga -67rzpjb2im3fuehh9gp.gq -67rzpjb2im3fuehh9gp.ml -67rzpjb2im3fuehh9gp.tk -67sharov.ru -67xxzwhzv5fr.cf -67xxzwhzv5fr.ga -67xxzwhzv5fr.gq -67xxzwhzv5fr.tk -67y9.icu -680niu.com -680rve.us -68168136.com -681hu.com -681lv.com -681ne.com -681niu.com -681pa.com -681pi.com -681qi.com -682653.com -682ne.com -682niu.com -682pa.com -6831.host -6831.space -684niu.com -68583.xyz -685niu.com -686206.com -6875666.com -6883188.com -6883688.com -6884688.com -6885788.com -6885988.com -6886088.com -6886188.com -6887088.com -6887188.com -6887588.com -6888588.com -6889188.com -6889588.com -688as.org -689ac.com -68ace.net -68apps.com -68azpqh.pl -68mail.com -68s.info -68weijiaoyi.com -69-ew.tk -6904445.com -690805611.xyz -6911666.com -691ds.com -6921666.com -6930666.com -694069190.xyz -6944445.com -6946.buzz -6948.buzz -6949.buzz -6954445.com -6957.buzz -6957666.com -695ty.xyz -6961666.com -6963.buzz -6964.buzz -6964445.com -6965666.com -6967.buzz -6967666.com -696ac.com -6970.buzz -6975.buzz -6980066.com -698024.com -698025.com -698026.com -698027.com -698029.com -698031.com -698035.com -698042.com -698052.com -698053.com -698054.com -6981.buzz -698149.com -698154.com -698164.com -698174.com -698180.com -698201.com -698203.com -698204.com -698207.com -698224.com -6982277.com -698240.com -698241.com -698244.com -698246.com -698248.com -698254.com -698264.com -698274.com -698284.com -698294.com -698309.com -698341.com -698342.com -698343.com -698344.com -698354.com -6983666.com -698394.com -698403.com -698404.com -698405.com -698406.com -698407.com -698409.com -698410.com -698414.com -698416.com -698417.com -698420.com -698424.com -698425.com -698426.com -698427.com -698428.com -698429.com -698430.com -698432.com -698434.com -698435.com -698437.com -698438.com -698441.com -698443.com -6984433.com -6984455.com -698447.com -698460.com -698464.com -698467.com -698480.com -698485.com -698490.com -698493.com -698497.com -698540.com -698549.com -6985522.com -698554.com -698574.com -698590.com -698604.com -698610.com -698620.com -698634.com -698640.com -698642.com -698643.com -698649.com -6986655.com -698674.com -698694.com -698706.com -698742.com -6987711.com -6987722.com -6987733.com -698794.com -698907.com -698914.com -698924.com -698934.com -698974.com -6989911.com -698994.com -6989966.com -698ac.com -6991.buzz -6991666.com -699695.com -69e10d94.xyz -69postix.info -69s.buzz -69sp.art -69sp.mobi -69sp.red -69sp.sale -69t03rpsl4.cf -69t03rpsl4.ga -69t03rpsl4.gq -69t03rpsl4.ml -69t03rpsl4.tk -69tv.art -69xba.xyz -69xinpian.xyz -69xk4.us -69yogo.xyz -6a1.xyz -6a24bzvvu.pl -6a4.xyz -6a7dtwpreu5qvxlnreu5201.com -6a7dtxpjne1uwxhnelk6136.com -6a81fostts.cf -6a81fostts.ga -6a81fostts.gq -6a81fostts.ml -6a81fostts.tk -6a84da.club -6acg.com -6aplgd.info -6aqm2c.us -6asocx.us -6b58.xyz -6brmwv.cf -6brmwv.ga -6brmwv.gq -6brmwv.ml -6brmwv.tk -6c171.club -6c5bf61.club -6cbc.com -6ciku.us -6cq9epnn.edu.pl -6cv.info -6cw.info -6d5.xyz -6d6bc6.com -6dadcx.us -6dx.info -6dz.info -6ed.info -6ed9cit4qpxrcngbq.cf -6ed9cit4qpxrcngbq.ga -6ed9cit4qpxrcngbq.gq -6ed9cit4qpxrcngbq.ml -6ed9cit4qpxrcngbq.tk -6ei.info -6ek.info -6elkf86.pl -6en.info -6en9mail2.ga -6eng-zma1lz.ga -6eogvwbma.pl -6eq.info -6etix1.site -6eu.info -6ev.info -6f.pl -6f4af.club -6faw.icu -6fengli.com -6fihtu.com -6fqwxa.info -6g.glass -6gavlf.online -6gbixl.site -6gotkl.us -6gumwj.us -6hermesbirkin0.com -6hjgjhgkilkj.tk -6hk.info -6hq6.com -6ip.us -6iv1mc.com -6j8onr9olu54u3c.xyz -6k4wm9.info -6kelb5.info -6kg8ddf6mtlyzzi5mm.cf -6kg8ddf6mtlyzzi5mm.ga -6kg8ddf6mtlyzzi5mm.gq -6kg8ddf6mtlyzzi5mm.ml -6kg8ddf6mtlyzzi5mm.tk -6koxz4.us -6lb1kb.us -6lhp5tembvpl.cf -6lhp5tembvpl.ga -6lhp5tembvpl.gq -6lhp5tembvpl.ml -6lhp5tembvpl.tk -6lr.info -6mail.cc -6mail.cf -6mail.ga -6mail.ml -6mail.top -6mails.com -6manbetx.info -6mbetx.info -6monthscarinsurance.co.uk -6movierulz.net -6nb5.us -6nns09jw.bee.pl -6od.info -6osjcz.us -6ox.com -6papa.ooo -6paq.com -6pzukk.host -6q70sdpgjzm2irltn.cf -6q70sdpgjzm2irltn.ga -6q70sdpgjzm2irltn.gq -6q70sdpgjzm2irltn.ml -6q70sdpgjzm2irltn.tk -6qssmefkx.pl -6qstz1fsm8hquzz.cf -6qstz1fsm8hquzz.ga -6qstz1fsm8hquzz.gq -6qstz1fsm8hquzz.ml -6qstz1fsm8hquzz.tk -6qwkvhcedxo85fni.cf -6qwkvhcedxo85fni.ga -6qwkvhcedxo85fni.gq -6qwkvhcedxo85fni.ml -6qwkvhcedxo85fni.tk -6qzwgn.us -6ra8wqulh.pl -6rndtguzgeajcce.cf -6rndtguzgeajcce.ga -6rndtguzgeajcce.gq -6rndtguzgeajcce.ml -6rndtguzgeajcce.tk -6rrtk52.mil.pl -6s2duahvy0da2fum.space -6s5z.com -6scwis5lamcv.gq -6somok.ru -6tevf8.us -6th-market-shopp.online -6trsqu.us -6tumdl.site -6twkd1jggp9emimfya8.cf -6twkd1jggp9emimfya8.ga -6twkd1jggp9emimfya8.gq -6twkd1jggp9emimfya8.ml -6twkd1jggp9emimfya8.tk -6u1fuh.info -6ugzob6xpyzwt.cf -6ugzob6xpyzwt.ga -6ugzob6xpyzwt.gq -6ugzob6xpyzwt.ml -6ugzob6xpyzwt.tk -6url.com -6v9haqno4e.cf -6v9haqno4e.ga -6v9haqno4e.gq -6v9haqno4e.ml -6v9haqno4e.tk -6vdmep.us -6vgflujwsc.cf -6vgflujwsc.ga -6vgflujwsc.gq -6vgflujwsc.ml -6wkaez.site -6wtms1.com -6xozla.us -6xtx.com -6yh66.com -6yhlim.host -6z2uwj53vosfvgr.xyz -6zbih.us -6zl1e.us -6zxpbk.us -7-attorney.com -7.emailfake.ml -7.fackme.gq -70000000.xyz -7005tkrbne16ttvnale3924.com -7005tkrnmu5eazfnrgc9508.com -7005tkrnne56stforfu2545.com -700br88.com -700m.site -702action.com -702called.xyz -702whitepages.xyz -702yl.com -703041.icu -7034445.com -7036552.com -703xanmf2tk5lny.cf -703xanmf2tk5lny.ga -703xanmf2tk5lny.gq -703xanmf2tk5lny.ml -703xanmf2tk5lny.tk -7043w.com -7054445.com -7060dy.com -7064445.com -7068001.com -7068003.com -70742e.club -707579.com -7088708.biz -708997.com -708ugg-boots.com -7094445.com -70abc.ru -70don.ru -70k6ylzl2aumii.cf -70k6ylzl2aumii.ga -70k6ylzl2aumii.gq -70k6ylzl2aumii.ml -70k6ylzl2aumii.tk -70lg8cbebpd5mst.com -70lgat.us -70mot.ru -70rang.net -70rang.org -70s.ink -710manbetx.com -711.shop -7119.net -711d895.xyz -7139927.com -713ewm5.com -713ewm6.com -713ewm7.com -713ewm8.com -713properties.com -7154445.com -715801.site -7174445.com -718037.com -719x.com -71btdutk.blogrtui.ru -71cnb.space -71compete.com -71d0.club -71squared.net -7204445.com -72153.monster -7219ii.com -7219jj.com -7219kk.com -7219ll.com -7219nn.com -7219oo.com -7219pp.com -7219rr.com -7219tt.com -7219xx.com -7219yy.com -7219zz.com -722552.com -7234445.com -72388dzz.com -72388sx.com -72388yh.com -723ds.com -726xhknin96v9oxdqa.cf -726xhknin96v9oxdqa.gq -726xhknin96v9oxdqa.ml -726xhknin96v9oxdqa.tk -727qs.com -72825.monster -7284445.com -729904.com -729ac.com -72hremergencypack.com -72w.com -72yin.com -730490.com -73052.monster -73189.monster -731ds.com -733ac.com -733manbetx.com -7345.host -734manbetx.com -734santamaria.com -738037.com -7384445.com -738ac.com -739837.com -7399837.com -73999r.com -73ac4b.us -73cnb.space -73n.app -73t1xa.us -73up.com -73wire.com -73xk2p39p.pl -7414445.com -741bfa10.xyz -7426118.com -74507.monster -7474445.com -747c67.club -749356.com -7494445.com -749827.com -749837.com -749manbetx.com -74cnb.space -74d30a57.club -74jw.com -74shequ.icu -74xa6v.com -750shipping.com -7511188.net -7519927.com -751ac.com -7524445.com -75271.monster -7544445.com -75470.xyz -7555.info -755820.com -755978.com -7567fdcvvghw2.cf -7567fdcvvghw2.ga -7567fdcvvghw2.gq -7567fdcvvghw2.ml -7567fdcvvghw2.tk -757199.com -7583.host -758ac.com -759b02.com -759b03.com -759b100.com -759b101.com -759b103.com -759b104.com -759b107.com -759b110.com -759b112.com -759b114.com -759b116.com -759b120.com -759b121.com -759b123.com -759b125.com -759b129.com -759b130.com -759b133.com -759b134.com -759b136.com -759b139.com -759b140.com -759b141.com -759b143.com -759b150.com -759b152.com -759b160.com -759b161.com -759b166.com -759b169.com -759b171.com -759b173.com -759b191.com -759b192.com -759b193.com -759b195.com -759b196.com -759b197.com -759b212.com -759b259.com -759b272.com -759b273.com -759b43.com -759b45.com -759b57.com -759b58.com -759b61.com -759b72.com -759b73.com -759b75.com -759b76.com -759b87.com -759b88.com -759b89.com -759b90.com -759b93.com -759b94.com -759c51.com -75bt2y.site -75e6dbc.xyz -75gf7g7h.xyz -75happy.com -75hosting.com -75hosting.net -75hosting.org -75it.ru -7614445.com -7615089.site -7619837.com -765manbetx.com -765qs.com -7664445.com -76654422.com -76654433.com -76654488.com -76654499.com -76655511.com -76655533.com -76655544.com -76655555.com -76655566.com -76655577.com -76655588.com -76655599.com -76656644.com -76656655.com -76656688.com -76657777.com -76657788.com -76657799.com -76658800.com -76658811.com -76658833.com -76658855.com -76658866.com -76658877.com -76659911.com -76659922.com -76659944.com -76659966.com -76659977.com -768037.com -768699.com -76938.monster -76ctr.us -76ersbasketballpro.com -76etij.us -76jdafbnde38cd.cf -76jdafbnde38cd.ga -76jdafbnde38cd.gq -76jdafbnde38cd.ml -76jdafbnde38cd.tk -76l5ht.us -76rcnf.us -76servers.com -76up.com -7700xj.com -770206.com -7714445.com -771e05.club -772245.com -772288211.com -77230.monster -7728ccc.com -7728s.com -7728u.com -7728w.com -7728wx.com -7728x.com -7728y.com -7733111.com -7736552.com -7739927.com -773yz.com -774257.icu -77448b.com -77448bb.com -77448c.com -77448cc.com -77448d.com -77448dd.com -77448e.com -77448f.com -77448g.com -77448h.com -77448ii.com -77448j.com -77448jj.com -77448k.com -77448l.com -77448ll.com -77448m.com -77448mm.com -77448n.com -77448nn.com -77448pp.com -77448qq.com -77448r.com -77448s.com -77448ss.com -77448vv.com -77448w.com -77448ww.com -77448x.com -77448xx.com -77448y.com -77448z.com -77448zz.com -7752050.ru -7754445.com -775588211.com -7755bbb.com -7755c0.com -775tit.com -777-pm945.ru -777-rox999.ru -777-university.ru -777.net.cn -7770199.com -77744.app -7776e.com -77777778888888.com -77778.cd -777788211.com -7777bbtt.com -7777bubu.com -7777lulu.com -7777yeye.com -7778989.ru -7779u.com -777azino-duac.icu -777et.com -777fortune.com -777game1.xyz -777jsc.com -777originals.win -777score-ag.com -777score-ca.com -777score-fj.com -777score-gg.com -777score-gu.com -777score-kn.com -777score-ky.com -777score-lr.com -777score-mv.com -777score-rw.com -777score-sc.com -777score-to.com -777score-vi.com -777slots-online.com -777y.buzz -777y.monster -778789.com -779118.com -779988211.com -779e0f1u7f7bivc.xyz -77betbet.info -77cnb.space -77corner.com -77game.ru -77jin.ru -77mot.ru -77q2j.com -77q3f.com -77q4g.com -77q4j.com -77q5f.com -77q5g.com -77q6h.com -77q6m.com -77q7g.com -77q8f.com -77q8g.com -77q8k.com -77q8m.com -77q9h.com -77q9j.com -77royal.online -77royal.site -77xht.com -78012m.com -780667.com -78123m.com -7814445.com -78345m.com -7836552.com -7837788.com -78456m.com -784666.net -7854445.com -78567m.com -78678m.com -786gambling.com -786gambling.games -786gambling.net -787199.com -787y849s.bij.pl -788c1.com -789.dns-cloud.net -789.game -789.tips -789327.app -7894.website -7894445.com -789456123mail.ml -7899w.top -789club.fun -789movies.com -789toto.org -78avalon.green -78avalon.land -78e4f9a.club -78el.ru -78jxs.com -78zjx.com -78zjxs.com -790060.com -7900wan.com -790344.com -7904445.com -7924445.com -792646.com -7929837.com -7936552.com -79422.monster -7954445.com -796ty.com -7984445.com -798ac.com -7994445.com -79966.xyz -799fu.com -79mail.com -7ag83mwrabz.ga -7ag83mwrabz.ml -7ag83mwrabz.tk -7ahug9.us -7at2psgzt6689u9.xyz -7avz.net -7aw.ru -7awa.live -7azino777.org -7bafilmy.ru -7banrz.us -7bcc935.club -7be.org -7belt.com -7beta90.org -7bhmsthext.cf -7bhmsthext.ga -7bhmsthext.gq -7bhmsthext.ml -7bhmsthext.tk -7bhtm0suwklftwx7.cf -7bhtm0suwklftwx7.ga -7bhtm0suwklftwx7.gq -7bhtm0suwklftwx7.ml -7bhtm0suwklftwx7.tk -7bolgesigorta.xyz -7c3d0ba2.xyz -7cc8a0.xyz -7d7ebci63.pl -7dach-market.ru -7days-printing.com -7dd.info -7ddf32e.info -7dewapoker.net -7di5vd603tkzk9h.xyz -7dicas.online -7dmail.com -7doin.info -7e42hrmxv14s.best -7ecdmj.us -7ecfps.us -7ef9e0.club -7efwe0.com -7f20.icu -7f40.club -7fewrg.com -7fge6u.us -7figureadvisorsecrets.com -7figurealliance.com -7figureconsultants.com -7figurehq.com -7figuresalesmachines.com -7figuresalespipeline.com -7figuresecretsauce.com -7ful.com -7fyg2l.com -7go.info -7gpvegspglb8x8bczws.cf -7gpvegspglb8x8bczws.ga -7gpvegspglb8x8bczws.gq -7gpvegspglb8x8bczws.ml -7gpvegspglb8x8bczws.tk -7gr.pl -7h3ybn.us -7hqcwl.us -7hxt5zbkt7jihsf.xyz -7hy4qy.us -7ihd9vh6.edu.pl -7ijabi.com -7jbsrsj4fzfl61x.xyz -7kcv1y.com -7ki.club -7ktrtk.site -7kuiqff4ay.cf -7kuiqff4ay.ga -7kuiqff4ay.gq -7kuiqff4ay.ml -7kuiqff4ay.tk -7l6qix.us -7liveinfo.com -7lvl44.club -7lzgfpq05bkumst.com -7m3aq2e9chlicm.cf -7m3aq2e9chlicm.ga -7m3aq2e9chlicm.gq -7m3aq2e9chlicm.ml -7m3aq2e9chlicm.tk -7magazinov.ru -7mail.ga -7mail.io -7mail.ml -7mail.xyz -7mail7.com -7manbet.org -7med24.co.uk -7mtff.us -7n2a.us -7ncsjy.us -7nglhuzdtv.cf -7nglhuzdtv.ga -7nglhuzdtv.gq -7nglhuzdtv.ml -7nglhuzdtv.tk -7nka4e.us -7nsska.us -7o3zds.online -7o4g2.us -7oalyv.com -7obgt.us -7ocnju.site -7od.biz -7odibr.us -7oicpwgcc8trzcvvfww.cf -7oicpwgcc8trzcvvfww.ga -7oicpwgcc8trzcvvfww.gq -7oicpwgcc8trzcvvfww.ml -7oicpwgcc8trzcvvfww.tk -7opp2romngiww8vto.cf -7opp2romngiww8vto.ga -7opp2romngiww8vto.gq -7opp2romngiww8vto.ml -7opp2romngiww8vto.tk -7oryat.com -7p29u3zshrfe.com -7p3bme.us -7p6kz0omk2kb6fs8lst.cf -7p6kz0omk2kb6fs8lst.ga -7p6kz0omk2kb6fs8lst.gq -7p6kz0omk2kb6fs8lst.ml -7p6kz0omk2kb6fs8lst.tk -7pccf.cf -7pccf.ga -7pccf.gq -7pccf.ml -7pccf.tk -7pdqpb96.pl -7pfmnw.us -7pirlh.us -7qrtbew5cigi.cf -7qrtbew5cigi.ga -7qrtbew5cigi.gq -7qrtbew5cigi.ml -7qrtbew5cigi.tk -7qxme5zd.xyz -7rdhli.us -7rent.top -7rtay.info -7rx24.com -7seatercarsz.com -7sisko.com -7slot.fun -7star.ninja -7startruckdrivingschool.com -7tags.com -7th-market-shopp.online -7thcircuitreview.com -7thposition.org -7thsons.org -7tiqqxsfmd2qx5.cf -7tiqqxsfmd2qx5.ga -7tiqqxsfmd2qx5.gq -7tiqqxsfmd2qx5.ml -7tiqqxsfmd2qx5.tk -7tp8b4tfevfpvew.xyz -7tqzu.info -7tsjf6nmvzud3jj.xyz -7tsrslgtclz.pl -7twlev.bij.pl -7txk4c.best -7u2yob.site -7u61.space -7u64.space -7u65.space -7u77.space -7u7rdldlbvcnklclnpx.cf -7u7rdldlbvcnklclnpx.ga -7u7rdldlbvcnklclnpx.gq -7u7rdldlbvcnklclnpx.ml -7u7rdldlbvcnklclnpx.tk -7u80.space -7uoeta.info -7uy35p.cf -7uy35p.ga -7uy35p.gq -7uy35p.ml -7uy35p.tk -7v.app -7vc.info -7vchsh.us -7vcntir8vyufqzuqvri.cf -7vcntir8vyufqzuqvri.ga -7vcntir8vyufqzuqvri.gq -7vcntir8vyufqzuqvri.ml -7vcntir8vyufqzuqvri.tk -7vj.info -7vl.info -7wafa.com -7wager.com -7wd45do5l.pl -7we2x0.us -7wn.net -7woz2k.us -7wzctlngbx6fawlv.cf -7wzctlngbx6fawlv.ga -7wzctlngbx6fawlv.gq -7wzctlngbx6fawlv.ml -7wzctlngbx6fawlv.tk -7xnk9kv.pl -7ymdfc.site -7yt1l6.us -7z3026peeg82ay9.xyz -7z4hjm.us -8-mail.com -8-sun.com -8.dnsabr.com -8.emailfake.ml -8.fackme.gq -800hotspots.info -800sacramento.tk -801272.com -8020cockpit.com -8020simrig.com -8020wheelstand.com -802260.com -802charities.org -803760.com -8037bet.com -8037by.com -8037dt4.com -8037dt5.com -8037dt8.com -8037kf.com -8037vip.com -8037wap.com -8037xs.com -80401.monster -80449.club -80476.monster -804m66.pl -805318gj11t0.online -805318gj11t0.space -805318gj1924.online -805318gj1924.space -806.flu.cc -80600.net -80665.com -80887.monster -808app.com -808hjc.com -808qs.com -8090jd.com -80abc.ru -80br88.com -80cnb.space -80hcy.com -80i3ba.best -80it.ru -80mot.ru -80pu.info -80r0zc5fxpmuwczzxl.cf -80r0zc5fxpmuwczzxl.ga -80r0zc5fxpmuwczzxl.gq -80r0zc5fxpmuwczzxl.ml -80r0zc5fxpmuwczzxl.tk -80rip.ru -80ro.eu -80set.ru -80siri90.com -80smoviequotes.com -80zooiwpz1nglieuad8.cf -80zooiwpz1nglieuad8.ga -80zooiwpz1nglieuad8.gq -80zooiwpz1nglieuad8.ml -80zooiwpz1nglieuad8.tk -81004.xyz -81111199.com -81122266.com -81122277.com -811ac.com -81263.monster -812676354.xyz -8127ep.com -8131.fun -813471.com -813nn.com -813oo.com -813tt.com -813uu.com -813zf.com -81462.site -81512c.com -81519gcu.orge.pl -816206.com -816qs.com -8179927.com -8187222.com -8190.fun -8191.at -819110.com -819760.com -819978f0-0b0f-11e2-892e-0800200c9a66.com -81baby.com -81cnb.space -81iot.com -81qtwk.site -8218d.club -821e54e.xyz -821xc.space -8220.fun -82299pay.com -822xc.space -8236552.com -824351081.xyz -8250o.com -8260213.com -8260613.com -8261013.com -8261313.com -8261513.com -8262413.com -8262513.com -8262613.com -826297.com -8263513.com -8263813.com -8264213.com -8264313.com -8264513.com -8265013.com -8265913.com -8266613.com -8268013.com -8268213.com -8268513.com -8268613.com -8268913.com -8269013.com -8269513.com -826xc.space -8282-tit.com -8282pa.com -82842.monster -8290.com -82c8.com -82cnb.space -82j2we.pl -82mss4.site -8309.fun -8312.fun -831243.com -83127.monster -83194.monster -8336552.com -834s.biz -8350.fun -8351399.com -8351699.com -8351799.com -8352099.com -8352299.com -8352599.com -8352p.com -8353099.com -8353199.com -8353299.com -8353399.com -8353599.com -8353799.com -8355.host -8355099.com -8355399.com -8355566.net -8355699.com -8355799.com -8356099.com -8356299.com -8356599.com -8356699.com -8356799.com -8357099.com -8357299.com -8357399.com -8357699.com -8357899.com -8358199.com -8358399.com -8358699.com -8359199.com -8359599.com -8359699.com -835qs.com -8360199.com -8360299.com -8360399.com -8360699.com -8361399.com -8361699.com -8361899.com -8362599.com -8362799.com -8363099.com -8363199.com -8363299.com -8363399.com -8363799.com -8363899.com -8365199.com -8365299.com -8365599.com -8365799.com -8365899.com -8366099.com -8366799.com -8366899.com -8367199.com -8367299.com -8367399.com -8367699.com -8367899.com -8368299.com -8368399.com -8368799.com -8369199.com -8369299.com -8369599.com -837p1070n.site -8382.fun -8392.fun -839604.icu -839qs.com -83a7.icu -83csj0.best -83gd90qriawwf.cf -83gd90qriawwf.ga -83gd90qriawwf.gq -83gd90qriawwf.ml -83gd90qriawwf.tk -84310.xyz -8436552.com -844206.com -8449955.com -845097.com -845102.com -845103.com -845106.com -845137.com -845144.com -84517.xyz -845172.com -845192.com -845227.com -845240.com -845242.com -845269.com -845276.com -845279.com -845280.com -845293.com -845294.com -845297.com -8453.fun -845302.com -845325.com -845343.com -845391.com -845405.com -845418.com -845427.com -845457.com -845470.com -845471.com -845493.com -845512.com -845524.com -845532.com -845542.com -845561.com -845562.com -845574.com -845583.com -84569.xyz -84651609846540.info -847103.com -847120.com -847125.com -847160.com -847174.com -847187.com -847194.com -847225.com -847262.com -847263.com -847331.com -847391.com -847403.com -847409.com -847425.com -847446.com -847460.com -847467.com -847482.com -847509.com -847524.com -847540.com -847541.com -84758.monster -847583.com -84863.monster -84863.xyz -849356.com -84b16.club -84bit.ru -84mce5gufev8.cf -84mce5gufev8.ga -84mce5gufev8.gq -84mce5gufev8.ml -84mce5gufev8.tk -84rhilv8mm3xut2.cf -84rhilv8mm3xut2.ga -84rhilv8mm3xut2.gq -84rhilv8mm3xut2.ml -84rhilv8mm3xut2.tk -8505.fun -8532.fun -8538.fun -8539927.com -8547.fun -855pkr.life -858585m.com -858585n.com -858585o.com -858585p.com -858585r.com -858585t.com -858585v.com -858585w.com -858585x.com -858585y.com -858585z.com -858ac.com -859ac.com -85fc653.club -85it.ru -85rrt.site -8601.ru -8618.fun -8619927.com -86263d.com -86263v.com -8636.fun -8639927.com -864443.com -86492.xyz -865034.com -865qs.com -866303.com -86682.xyz -8673.fun -868757.com -86876.xyz -86883hd.online -86883hd.website -8695.fun -8696.fun -8699006.com -86ac26f5.club -86cnb.space -86d14866fx.ml -86kk.net -86uiu.site -86vns.net -86xlig.us -8701collins.com -871-tit.com -8715.fun -8723891.com -872953.com -87296.club -873391.com -873396.com -873827.com -8742.website -8751.fun -8753.host -875369.com -875655234954.xyz -87605599.com -876518.xyz -8768.fun -8769827.com -8769837.com -8769927.com -8772.fun -8787733.com -8789837.com -879023.xyz -879326.com -87959app.com -87959vip.com -879762.com -879828555.xyz -8799837.com -87cnb.space -87e939e.club -87gjgsdre2sv.cf -87gjgsdre2sv.ga -87gjgsdre2sv.gq -87gjgsdre2sv.ml -87gjgsdre2sv.tk -87mmwdtf63b.cf -87mmwdtf63b.ga -87mmwdtf63b.gq -87mmwdtf63b.ml -87mmwdtf63b.tk -87nxtc.us -87yhasdasdmail.ru -88000234.com -88000345.com -88000567.com -88000789.com -880888e.com -8808go.com -88116.xyz -8812.fun -88122.xyz -88123666.com -88126.xyz -88140.xyz -88146.xyz -8815.fun -88152.xyz -88153.xyz -88155.xyz -88161.xyz -88175.xyz -88176.xyz -8819.fun -88200.xyz -88206.xyz -88208.xyz -88209.xyz -882112233.com -882112244.com -882113322.com -882113377.com -882113399.com -882114422.com -882114433.com -882114455.com -882114477.com -882114488.com -882114499.com -882115522.com -882115544.com -882115555.com -882115566.com -882115577.com -882115588.com -882115599.com -882116611.com -882116633.com -882116644.com -882116655.com -882116666.com -882116688.com -882116699.com -882117711.com -882117722.com -882117733.com -882117744.com -882117766.com -882117777.com -882118811.com -882118822.com -882118877.com -882118888.com -882118899.com -882119900.com -882119911.com -882119955.com -88224.xyz -88227.xyz -8822855.com -88230.xyz -88242.xyz -88243.xyz -88244.xyz -88262.xyz -88264.xyz -88270.xyz -88277.xyz -8828zhuce.com -88290.xyz -88295.xyz -88296.xyz -88299.xyz -88303.xyz -88304.xyz -88306.com -88309.xyz -88312.xyz -88318.xyz -88325.xyz -88329.xyz -883388211.com -88356.xyz -88357.xyz -88365.xyz -88373.xyz -88374.xyz -88381.xyz -88386.xyz -88387.xyz -88388.org -88393.xyz -8839837.com -883q9.com -88407.xyz -88409.xyz -88410.xyz -88411.monster -884118.com -88412.xyz -8841778.com -8841878.com -8842958.com -88432.xyz -88437.xyz -88448.xyz -884488211.com -88451.xyz -88454.xyz -88477.xyz -8848.net -88492.xyz -88503.xyz -88506.xyz -8852.fun -886688211.com -8867.fun -888-app.ru -888-casino.ru -888.dns-cloud.net -888.gen.in -888001.xyz -888005.xyz -888008.xyz -888234.xyz -8883229.com -8883236.com -8883372.com -8883488.com -8883919.com -8883936.com -88868804.com -88868810.com -888888211.com -8888bubu.com -8888iii.com -8888rere.com -888dyqp.com -888getcare.com -888luckys.net -888qq59.xyz -888tron.biz -888tron.info -888tron.life -888tron.net -888tron.org -888z5.cf -888z5.ga -888z5.gq -888z5.ml -888z5.tk -889931666.com -88998.com -889988211.com -88av.net -88bubu.com -88bwin88.com -88chaye.com -88clean.pro -88cnb.space -88cot.info -88jin.ru -88kaskings.com -88kaskings.net -88macaupools.com -88mon.space -88rbrb.com -88solo.space -88sun11.com -88sun22.com -88sun33.com -88sy000.com -88sy22.com -88sy222.com -88sy33.com -88sy333.com -88sy44.com -88sy444.com -88sy55.com -88sy555.com -88sy666.com -88sy77.com -88sy777.com -88sy888.com -88sy99.com -88sy999.com -88ter.space -88trader.com -88urtyzty.pl -88videos.site -88yiyi.com -88zzf.space -8906.fun -891157.com -891172.com -891175.com -8919927.com -89234m.com -8929927.com -8938.fun -893ac.com -8949.fun -8954.fun -895971.com -8959837.com -8959b2.club -897116.com -897152.com -897629.com -89769988.com -897744.app -897925.com -897su.com -897tu.com -897wu.com -8983.fun -89861.monster -898ac.com -899079.com -8993.fun -89979.club -8999837.com -89b8.club -89dnxs.site -89ghferrq.com -89mom.space -89sese.space -89solo.space -89yliughdo89tly.com -8a37d104.xyz -8a4e.club -8a4wcr.host -8a818.club -8a9itx.online -8aj.net -8americain.fr -8angue9wtjv4dwa9.com -8avz.net -8b05kwh1y2l90cw.xyz -8ballroulette.com -8betslife.com -8byjrn.info -8c03a46b.xyz -8c8.club -8ca761.xyz -8chan.co -8cl3.icu -8clv5u.com -8cqznp.us -8dipbk.online -8dizhi.xyz -8e6d9wk7a19vedntm35.cf -8e6d9wk7a19vedntm35.ga -8e6d9wk7a19vedntm35.gq -8e6d9wk7a19vedntm35.ml -8e7168b6.club -8ecaf.club -8eoqovels2mxnxzwn7a.cf -8eoqovels2mxnxzwn7a.ga -8eoqovels2mxnxzwn7a.gq -8eoqovels2mxnxzwn7a.ml -8eoqovels2mxnxzwn7a.tk -8estcommunity.org -8ev9nir3ilwuw95zp.cf -8ev9nir3ilwuw95zp.ga -8ev9nir3ilwuw95zp.gq -8ev9nir3ilwuw95zp.ml -8ev9nir3ilwuw95zp.tk -8f1.club -8f2bf5.club -8fd1v9.us -8ffn7qixgk3vq4z.cf -8ffn7qixgk3vq4z.ga -8ffn7qixgk3vq4z.gq -8ffn7qixgk3vq4z.ml -8ffn7qixgk3vq4z.tk -8fmr93.us -8fuur0zzvo8otsk.cf -8fuur0zzvo8otsk.ga -8fuur0zzvo8otsk.gq -8fuur0zzvo8otsk.ml -8fuur0zzvo8otsk.tk -8ghfai.site -8gnkb3b.sos.pl -8h40vw.us -8hadrm28w.pl -8hdjw.us -8hermesbirkin0.com -8hfzqpstkqux.cf -8hfzqpstkqux.ga -8hfzqpstkqux.gq -8hfzqpstkqux.ml -8hfzqpstkqux.tk -8hj3rdieaek.cf -8hj3rdieaek.ga -8hj3rdieaek.gq -8hj3rdieaek.ml -8hj3rdieaek.tk -8hkvcr.us -8i7.net -8imefdzddci.cf -8imefdzddci.ga -8imefdzddci.gq -8imefdzddci.ml -8imefdzddci.tk -8jstc.us -8k4tns.us -8kazino-slotv1.ru -8kcpfcer6keqqm.cf -8kcpfcer6keqqm.ml -8kcpfcer6keqqm.tk -8kej4c.us -8klddrkdxoibtasn3g.cf -8klddrkdxoibtasn3g.ga -8klddrkdxoibtasn3g.gq -8klddrkdxoibtasn3g.ml -8klddrkdxoibtasn3g.tk -8kut.us -8laypf.us -8liffwp16.pl -8live.biz -8ltepf.info -8m6qu.us -8mail.cf -8mail.ga -8mail.ml -8mailpro.com -8mbetx.info -8mbetx.org -8mdtpl.us -8mhjz.us -8mnqpys1n.pl -8mot.ru -8mpulsa.org -8n1.in -8nbh2m.site -8ndonc.us -8nujq9.us -8oboi80bcv1.cf -8oboi80bcv1.ga -8oboi80bcv1.gq -8os2qr.online -8ouyuy5.ce.ms -8pc2ztkr6.pl -8pukcddnthjql.cf -8pukcddnthjql.ga -8pukcddnthjql.gq -8pukcddnthjql.ml -8pukcddnthjql.tk -8px6jo.us -8pyda.us -8pyqkw0jg6jimst.com -8qdanx.us -8qdw3jexxncwd.cf -8qdw3jexxncwd.ga -8qdw3jexxncwd.gq -8qdw3jexxncwd.ml -8qdw3jexxncwd.tk -8qwh37kibb6ut7.cf -8qwh37kibb6ut7.ga -8qwh37kibb6ut7.gq -8qwh37kibb6ut7.ml -8qwh37kibb6ut7.tk -8rp2rre7wn4t98s.xyz -8rskf3xpyq.cf -8rskf3xpyq.ga -8rskf3xpyq.gq -8rskf3xpyq.ml -8rskf3xpyq.tk -8rygn.com -8t0sznngp6aowxsrj.cf -8t0sznngp6aowxsrj.ga -8t0sznngp6aowxsrj.gq -8t0sznngp6aowxsrj.ml -8t0sznngp6aowxsrj.tk -8turbo.com -8u4e3qqbu.pl -8ujf53.com -8um9zsaxf4peky7.xyz -8umrsb.us -8urls.gq -8usmwuqxh1s1pw.cf -8usmwuqxh1s1pw.ga -8usmwuqxh1s1pw.gq -8usmwuqxh1s1pw.ml -8usmwuqxh1s1pw.tk -8vd.ru -8verxcdkrfal61pfag.cf -8verxcdkrfal61pfag.ga -8verxcdkrfal61pfag.gq -8verxcdkrfal61pfag.ml -8verxcdkrfal61pfag.tk -8vkopg.us -8vnond.us -8w903.buzz -8wehgc2atizw.cf -8wehgc2atizw.ga -8wehgc2atizw.gq -8wehgc2atizw.ml -8wehgc2atizw.tk -8wkkrizxpphbm3c.cf -8wkkrizxpphbm3c.ga -8wkkrizxpphbm3c.gq -8wkkrizxpphbm3c.ml -8wkkrizxpphbm3c.tk -8wwxmcyntfrf.cf -8wwxmcyntfrf.ga -8wwxmcyntfrf.gq -8wwxmcyntfrf.ml -8x8x.site -8xcdzvxgnfztticc.cf -8xcdzvxgnfztticc.ga -8xcdzvxgnfztticc.gq -8xcdzvxgnfztticc.tk -8xcfu.us -8xduee.us -8xfin.com -8xfing.com -8xfong.com -8xfui.com -8xfve.com -8xgan.com -8xgang.com -8xgei.com -8xgen.com -8xgeng.com -8xger.com -8xgie.com -8xgiu.com -8xgong.com -8xgui.com -8xgun.com -8xgve.com -8xi.org -8xyz8.dynu.net -8xzr.com -8ycxiazai.com -8ycxz.com -8ythwpz.pl -8ywnv.us -8zbpmvhxvue.cf -8zbpmvhxvue.ga -8zbpmvhxvue.gq -8zbpmvhxvue.ml -8zbpmvhxvue.tk -9.emailfake.ml -9.fackme.gq -90.volvo-xc.ml -90.volvo-xc.tk -9006l.com -900br88.com -900dafa.com -900k.es -901.email -901fernie.com -9036552.com -9046.life -90480.xyz -9049.life -9050.life -9054.life -9065.life -9068.life -9069.life -906dafa.com -9088.life -908997.com -908dafa.com -9090ach.xyz -9090stttn.xyz -9091.life -9094.life -9094pay.com -9094vip.com -909dafa.com -90abc.ru -90bit.ru -90bola.link -90br88.com -90catkrbne16ttvnale3924.com -90catlrnmk1uutroak04863.com -90caturbmk9eqxlorfe0244.com -90cnb.space -90dy.net -90ksb.club -90money90.xyz -90rip.ru -90seconds.live -90set.ru -90shemroon.xyz -90siri90.com -90sp.xyz -90stttn.xyz -90vipstttn.xyz -90xbbt.club -90xbt.club -90zakhar.xyz -91.land -91000.com -91026.club -9111.life -9120.info -9136552.com -913jg913j1t0.online -913jg913j1t0.space -913jg913j42i90j.online -913jg913j924.online -913jg913jh33u19.online -913jg913jjrbh2h4.online -913jg913jjrbh2h4.space -913qs.com -9154.fun -916w1ckjejaa140.xyz -918.ninja -918cai.net -918lott.net -9191lao.cd -9199837.com -91b1e.xyz -91cod7mjala7k99.xyz -91gxfl11.info -91gxfl111.info -91gxfl123.info -91gxfl333.info -91gxfl555.info -91gxfl567.info -91gxfl666.info -91gxfl77.info -91gxfl777.info -91gxfl88.info -91gxfl888.info -91gxfl987.info -91gxfl99.info -91gxfl999.info -91gxflaa.info -91gxflclub.info -91gxflgo.info -91gxflok.info -91kanpian.xyz -91maishen.com -91mfsp.xyz -91minecraft.com -91nydh.xyz -91pan.org -91rb6.xyz -91sedh.xyz -91shuxin.com -91taoliuliang.com -91tiaojiao.com -91zp6.xyz -91zp7.xyz -91zp8.xyz -920qs.com -921.best -92140.monster -92149.com -92178b.com -92178c4.com -92178c8.com -92178d.com -92178d1.com -92178d2.com -92178d4.com -92178d8.com -92178e.com -9227bet.com -9227bq.com -9227dh.com -9227jc.com -9227xpj.com -923218.com -9236552.com -925067429.xyz -926tao.com -9279837.com -928ps.com -929.be -92dyj.com -92gui.com -92macau.com -92no3o.us -92ooxx.xyz -930.dog -930zb.com -9310.ru -93144.info -931512.com -931862.com -93398bb.com -933j.com -9354445.com -9364943601.com -9369837.com -938.dog -9394445.com -9399837.com -93cdfc.site -93eeok.com -93fxf.site -93k0ldakr6uzqe.cf -93k0ldakr6uzqe.ga -93k0ldakr6uzqe.gq -93k0ldakr6uzqe.ml -93k0ldakr6uzqe.tk -93ki.com -93mon.space -93solo.space -94.biz -9404445.com -940qs.com -9414.fun -9414445.com -9418.fun -9424445.com -942789.com -944.dog -944206.com -94502.info -9454445.com -945xl.com -9461.fun -9474445.com -9476.fun -948.dog -9484445.com -9495.fun -949lax.com -94bit.ru -94jo.com -94xtyktqtgsw7c7ljxx.co.cc -9504445.com -9514445.com -9522900.com -95253.monster -9529837.com -9536552.com -95367.fun -9544445.com -95478.monster -95566pay.net -956ac.com -957.dog -959.dog -95926.monster -95998833.net -95ta.com -95vbp4.us -96058.monster -96081.monster -961.dog -9619837.com -961mold.com -96303.monster -96320.xyz -9634445.com -964.dog -9644445.com -965334.com -9654.fun -96553b.com -96553c.com -96553d.com -96553e.com -96553f.com -96553g.com -96553h.com -96553j.com -96553r.com -96553ss.com -96553sss.com -96553t.com -96553ttt.com -96553u.com -96553vvv.com -96553w.com -96553x.com -96553xx.com -96553y.com -96553yy.com -96553z.com -96553zz.com -9659837.com -9666z.com -9669837.com -967333app.com -9694445.com -9696.eu -96966data.xyz -9699837.com -96c9236.xyz -96ulas.com -96wql.buzz -970.dog -970av.com -97138e.xyz -9714445.com -97178b.com -97178c1.com -97178c2.com -97178c5.com -97178c6.com -97207q.com -9722.us -9724445.com -9727a.com -973.dog -9734445.com -97432.monster -9744445.com -97470.monster -97471.monster -9751188.net -9754445.com -977.dog -977206.com -9784445.com -979.dog -97949.monster -97962.monster -97av4.com -97av5.com -97b23a.club -97bns.com -97bo2.com -97bo5.com -97cos.xyz -97di.club -97dy3.com -97dy4.com -97kx.biz -97so1ubz7g5unsqgt6.cf -97so1ubz7g5unsqgt6.ga -97so1ubz7g5unsqgt6.gq -97so1ubz7g5unsqgt6.ml -97so1ubz7g5unsqgt6.tk -97sp4.com -9827aa.com -9827ag.com -9827app.com -9827bet.com -9827cc.com -9827d.com -9827dt.com -9827e.com -9827eee.com -9827fff.com -9827ggg.com -9827h.com -9827hh.com -9827k.com -9827kkk.com -9827l.com -9827ll.com -9827mm.com -9827n.com -9827nn.com -9827oo.com -9827ooo.com -9827p.com -9827pp.com -9827ppp.com -9827qqq.com -9827rrr.com -9827s.com -9827sq.com -9827ss.com -9827ttt.com -9827uu.com -9827uuu.com -9827v.com -9827vv.com -9827vvv.com -9827www.com -9827wz.com -9827x.com -9827xl.com -9827xs.com -9827xxx.com -9827y.com -9827yh.com -9827z.com -9827zz.com -9827zzz.com -9837aomenbaliren.com -9837dl.com -9837hao.com -9837wap.com -9837xl.com -983gan.com -983wz.com -9854445.com -985466.xyz -9859837.com -985box.com -986206.com -98757.app -9880388.com -9880588.com -9884.xyz -98862.monster -9888037.com -9889927.com -9898610.com -9899089.com -9899090.com -9899w.top -98bdii.site -98cfc72.club -98hg.app -98hg.bet -98hgv.app -98usd.com -99-brand.com -99.com -990.net -99029.monster -99061.xyz -9908nn.com -990amtheanswer.com -99102.xyz -99104.xyz -99112.xyz -991188211.com -99120.xyz -99129.xyz -99131.xyz -99133.xyz -99140.xyz -99142.xyz -99161.xyz -9916878.xyz -99173.xyz -99181.xyz -99183.xyz -991888h.com -99191.xyz -99194.xyz -99197.xyz -99204.xyz -99211.xyz -992288211.com -99229.xyz -99236.xyz -99238.xyz -99240.xyz -99253.xyz -99259.xyz -9927208.com -99278.xyz -9927bc.com -9927dh.com -9927win.com -99281.xyz -99284.xyz -992tv.fun -99308.xyz -99314.xyz -99324.xyz -99326.xyz -993344.xyz -99336208.club -993388211.com -99342.xyz -99345.xyz -99348.xyz -99360.xyz -99369.xyz -99375.xyz -99386.xyz -99390.xyz -99398.xyz -99399.xyz -99405.xyz -99417.xyz -99418.xyz -99446.xyz -994488211.com -99450.xyz -99452.xyz -99458.xyz -99467.xyz -99469.xyz -99470.xyz -99471.xyz -99472.xyz -99484.xyz -99490.xyz -99491.xyz -99498.xyz -995176.com -99534.monster -995588211.com -99569.monster -99587.monster -996688211.com -996902.com -997788211.com -9977x.space -99781.monster -997f.club -9985yx.com -998830.xyz -998boss.net -999132.com -9992588.com -99927dh.com -99927win.com -99927xl.com -99976.monster -99993339.com -99999.cd -99999cn.com -9999bbtt.com -9999lulu.com -9999mimi.com -9999pk.xyz -9999x.space -999bjw.com -999c9.com -999capital.com -999intheshade.net -999lucky-thai.net -999o.buzz -999rbrb.com -99ac2.xyz -99betbax.club -99br88.com -99celtabet.com -99cows.com -99daohang.xyz -99depressionlists.com -99email.xyz -99experts.com -99hacks.us -99hgv.app -99hhqp.com -99hy.xyz -99lb95.com -99lb96.com -99lb97.com -99mail.cf -99mimpi.com -99perkasa.com -99pg.group -99price.co -99pubblicita.com -99publicita.com -99rezuixin.com -99sanwen.com -99situs.online -99thstchiropracticclinic.com -99top.ru -99tt9.com -99ubcj.com -99uuv2.com -99vpn.best -99x99.com -99yh.app -9admor.us -9ale6.us -9ate.com -9avz.net -9awrr.site -9b5ca5af.club -9b678af.xyz -9b84ade.xyz -9beb1.club -9betslife.com -9c4s2z.info -9c5ba9.club -9c5y.com -9cdw6n.com -9cvlhwqrdivi04.cf -9cvlhwqrdivi04.ga -9cvlhwqrdivi04.gq -9cvlhwqrdivi04.ml -9cvlhwqrdivi04.tk -9d666.app -9daqunfzk4x0elwf5k.cf -9daqunfzk4x0elwf5k.ga -9daqunfzk4x0elwf5k.gq -9daqunfzk4x0elwf5k.ml -9daqunfzk4x0elwf5k.tk -9ded2.club -9dgxw.us -9dp1cl0xf6ewswz.xyz -9dra.us -9dzinw.info -9e2.xyz -9e3.site -9e9c6.xyz -9ebrcj.us -9ebrklpoy3h.cf -9ebrklpoy3h.ga -9ebrklpoy3h.gq -9ebrklpoy3h.ml -9ebrklpoy3h.tk -9ejz6q.us -9en6mail2.ga -9et1spj7br1ugxrlaa3.cf -9et1spj7br1ugxrlaa3.ga -9et1spj7br1ugxrlaa3.gq -9et1spj7br1ugxrlaa3.ml -9et1spj7br1ugxrlaa3.tk -9evxp6prl.fun -9eyf.us -9f04d.xyz -9f182.xyz -9f3d9ad9.club -9f52.club -9f6819cd.club -9fdy8vi.mil.pl -9gals.com -9gmovierulz.com -9gqiwe.com -9h2020.com -9h35j9031t0.online -9h35j9031t0.space -9h35j9031t01t0.online -9h35j9031t0924.online -9h35j9031t0924.space -9h35j90342i90j.online -9h35j90342i90j.space -9h35j903924.online -9h35j903924.space -9h35j9039241t0.online -9h35j9039241t0.space -9h35j903924924.online -9h35j903h33u19.online -9h35j903h33u19.space -9h35j903vhh13h.online -9h35j903vhh13h.space -9h3ucx.us -9hh03.com -9hh30.com -9hjrw90hj1t0.online -9hjrw90hj1t0.space -9hjrw90hj924.online -9hvtig.info -9hxjao.us -9hzfyd7i5sbc.com -9jaapp.com -9jo05w.site -9jw5zdja5nu.pl -9k27djbip0.cf -9k27djbip0.ga -9k27djbip0.gq -9k27djbip0.ml -9k27djbip0.tk -9kfifc2x.pl -9kfttq.best -9klsh2kz9.pl -9kowsr.us -9l58kybst0bepmy.xyz -9lbaqq.us -9ljunl.us -9lmqmg.com -9lvkur.host -9mail.cf -9mail9.cf -9me.site -9mhftl.com -9mmovies.com -9monsters.com -9mot.ru -9mvjk6.us -9n4msc.us -9nnvwy.online -9nobility.ltd -9nobility.network -9nols.us -9nteria.pl -9nung9.xyz -9o04xk8chf7iaspralb.cf -9o04xk8chf7iaspralb.ga -9o04xk8chf7iaspralb.gq -9o04xk8chf7iaspralb.ml -9o8ck.us -9oobs.xyz -9oul.com -9ox.net -9p0rmx.us -9papa.ooo -9phum.com -9pmiik.us -9pshkz.us -9ptiwu.site -9pyo.us -9q.ro -9q402.com -9q8eriqhxvep50vuh3.cf -9q8eriqhxvep50vuh3.ga -9q8eriqhxvep50vuh3.gq -9q8eriqhxvep50vuh3.ml -9q8eriqhxvep50vuh3.tk -9qq59.xyz -9qwkev.com -9rakipbet.com -9rok.info -9rtkerditoy.info -9rtn5qjmug.cf -9rtn5qjmug.ga -9rtn5qjmug.gq -9rtn5qjmug.ml -9rtn5qjmug.tk -9rwjfs.us -9skcqddzppe4.cf -9skcqddzppe4.ga -9skcqddzppe4.gq -9skcqddzppe4.ml -9skcqddzppe4.tk -9t7xuzoxmnwhw.cf -9t7xuzoxmnwhw.ga -9t7xuzoxmnwhw.gq -9t7xuzoxmnwhw.ml -9t7xuzoxmnwhw.tk -9th-market-shopp.online -9times.club -9to5athomeclub.net -9toplay.com -9ufqd6.us -9ufveewn5bc6kqzm.cf -9ufveewn5bc6kqzm.ga -9ufveewn5bc6kqzm.gq -9ufveewn5bc6kqzm.ml -9ufveewn5bc6kqzm.tk -9ve5dz.us -9vjurc.us -9vlb.us -9vvoccxt8t638iy.xyz -9w26ql.space -9w93z8ul4e.cf -9w93z8ul4e.ga -9w93z8ul4e.gq -9w93z8ul4e.ml -9w93z8ul4e.tk -9wanbetx.org -9wbetx.info -9wet34.accountant -9wrc2v.us -9x2t2amr.xyz -9xcnp.icu -9xmail.xyz -9y00.app -9y0000.app -9y1.app -9y10.app -9y11.app -9y111.app -9y1111.app -9y11111.app -9y111111.app -9y222.app -9y2222.app -9y22222.app -9y222222.app -9y3.app -9y33.app -9y33333.app -9y333333.app -9y4.app -9y555.app -9y5555.app -9y55555.app -9y66.app -9y666.app -9y6666.app -9y66666.app -9y666666.app -9y7.app -9y777.app -9y7777.app -9y77777.app -9y8.app -9y88.app -9y888888.app -9y9.app -9y99.app -9y99999.app -9ya.de -9yc4hw.us -9youtodasbech.club -9ziqmkpzz3aif.cf -9ziqmkpzz3aif.ga -9ziqmkpzz3aif.gq -9ziqmkpzz3aif.ml -9ziqmkpzz3aif.tk -9zjz7suyl.pl -a-1.site -a-action.ru -a-b.co.za -a-bc.net -a-cottage.ru -a-creator.ru -a-digital.monster -a-dnk.ru -a-fdfet.site -a-ge.ru -a-glittering-gem-is-not-enough.top -a-great-in-jobs-in-ca.zone -a-great-taxprep.fyi -a-great-uae-hemorrhoid-treatment.zone -a-great-uae-jobs.fyi -a-great-uae-online-therapy.zone -a-href.ru -a-invest.biz -a-kinofilm.ru -a-mule.cf -a-mule.ga -a-mule.gq -a-mule.ml -a-mule.tk -a-nd.info -a-party.com -a-prime-macular-degeneration.fyi -a-rodadmitssteroids.in -a-sen.ru -a-sound.ru -a-spy.xyz -a-takamnan.ru -a-tb.biz -a-vot-i-ya.net -a.a.fbmail.usa.cc -a.b.c.netmail.tk -a.betr.co -a.com -a.hido.tech -a.kerl.gq -a.mailcker.com -a.netmail.tk -a.polosburberry.com -a.sach.ir -a.safe-mail.gq -a.uditt.cf -a.vztc.com -a.wxnw.net -a.yertxenor.tk -a0.igg.biz -a01a3c.club -a01h3.com -a01kj.xyz -a02sjv3e4e8jk4liat.cf -a02sjv3e4e8jk4liat.ga -a02sjv3e4e8jk4liat.gq -a02sjv3e4e8jk4liat.ml -a02sjv3e4e8jk4liat.tk -a0f7ukc.com -a0fnjd.us -a0reklama.pl -a0txa.icu -a0ywhm.us -a1.usa.cc -a10mail.com -a15jh.site -a1678991.xyz -a1aemail.win -a1b2.cf -a1b2.gq -a1b2.ml -a1b31.xyz -a1bvcfdg.xyz -a1exch.com -a1ymj4ef705tmzm.xyz -a2.flu.cc -a23.buzz -a24hourpharmacy.com -a2hb36-mail.xyz -a2mail.com -a2mail.info -a2mail.website -a2miravanbrenk.xyz -a2msolutions.com -a2smartnutrition.hk -a2thfixer.com -a2zculinary.com -a2zphones.ca -a3.bigpurses.org -a333yuio.uni.cc -a389f2.club -a389lxio.buzz -a396yasg.buzz -a39tx.site -a3an.com -a3ho7tlmfjxxgy4.cf -a3ho7tlmfjxxgy4.ga -a3ho7tlmfjxxgy4.gq -a3ho7tlmfjxxgy4.ml -a3ho7tlmfjxxgy4.tk -a40.com -a41odgz7jh.com -a41odgz7jh.com.com -a45.in -a458a534na4.cf -a46yv.site -a482vuhb.buzz -a489acoz.buzz -a490ypfv.buzz -a4craft.ru -a4dine.online -a4h4wtikqcamsg.cf -a4h4wtikqcamsg.ga -a4h4wtikqcamsg.gq -a4hk3s5ntw1fisgam.cf -a4hk3s5ntw1fisgam.ga -a4hk3s5ntw1fisgam.gq -a4hk3s5ntw1fisgam.ml -a4hk3s5ntw1fisgam.tk -a4optovik.ru -a4otpg.us -a4papersize.net -a4rpeoila5ekgoux.cf -a4rpeoila5ekgoux.ga -a4rpeoila5ekgoux.gq -a4rpeoila5ekgoux.ml -a4rpeoila5ekgoux.tk -a4snab.ru -a4zerwak0d.cf -a4zerwak0d.ga -a4zerwak0d.gq -a4zerwak0d.ml -a4zerwak0d.tk -a50502.com -a506rdqx.buzz -a50kvw.info -a522yeec.buzz -a52ep.site -a530folz.buzz -a531xhow.buzz -a534vxdf.buzz -a53qgfpde.pl -a54pd15op.com -a55app.com -a575gdcw.buzz -a578xbxa.buzz -a57wb.com -a585guhw.buzz -a586xqkw.buzz -a5freighter.website -a5i7sp.us -a5m9aorfccfofd.cf -a5m9aorfccfofd.ga -a5m9aorfccfofd.gq -a5m9aorfccfofd.ml -a5solutions.biz -a5xi.us -a60609.com -a617irwe.buzz -a6185.xyz -a620ocgh.buzz -a66olkp.buzz -a67doki.buzz -a69hi.space -a6a.nl -a6e26.buzz -a6lrssupliskva8tbrm.cf -a6lrssupliskva8tbrm.ga -a6lrssupliskva8tbrm.gq -a6lrssupliskva8tbrm.ml -a6lrssupliskva8tbrm.tk -a6mail.net -a6treaty.website -a707nxid.buzz -a709pjby.buzz -a719hzzl.buzz -a722552.com -a738faeb.buzz -a740nrmc.buzz -a741ktzi.buzz -a742ygyz.buzz -a7665.com -a782.biz -a78qp.com -a78tuztfsh.cf -a78tuztfsh.ga -a78tuztfsh.gq -a78tuztfsh.ml -a78tuztfsh.tk -a795fgnc.buzz -a798uyoz.buzz -a7996.com -a7family.net -a7lashe.com -a7qoei.us -a80jx.space -a84doctor.com -a85555.com -a87777.com -a88.org -a882ebgl.buzz -a8cycle.website -a8i.cz -a90906.com -a90907.com -a90908.com -a94gl.site -a9523b38.club -a97ag.com -a99999.ce.ms -a9jcqnufsawccmtj.cf -a9jcqnufsawccmtj.ga -a9jcqnufsawccmtj.gq -a9jcqnufsawccmtj.ml -a9jcqnufsawccmtj.tk -a9miyu.us -aa-jlb.com -aa.da.mail-temp.com -aa0318.com -aa0765.com -aa1775.com -aa20.ru -aa2465.com -aa4773.com -aa57822.com -aa5j3uktdeb2gknqx99.ga -aa5j3uktdeb2gknqx99.ml -aa5j3uktdeb2gknqx99.tk -aa5zy64.com -aa6pmo.us -aa7252.com -aa89.xyz -aa9827.com -aa9vun.us -aaa117.com -aaa4.pl -aaa5.pl -aaa6.pl -aaaa22222.info -aaaa66666.info -aaaaa1.pl -aaaaa2.pl -aaaaa3.pl -aaaaa4.pl -aaaaa5.pl -aaaaa6.pl -aaaaa7.pl -aaaaa8.pl -aaaaa9.pl -aaaaaaa.de -aaaagency.net -aaaf.ru -aaagr.xyz -aaaip.org -aaamail.online -aaamc.net -aaathats3as.com -aaaw45e.com -aababes.com -aabagfdgks.net -aabamian.site -aabatriu.site -aabbt.com -aabiu.xyz -aabpm.xyz -aabvf.xyz -aac8.xyz -aacgr.xyz -aacnw.xyz -aacons.site -aacrc.xyz -aacxb.xyz -aad9qcuezeb2e0b.cf -aad9qcuezeb2e0b.ga -aad9qcuezeb2e0b.gq -aad9qcuezeb2e0b.ml -aad9qcuezeb2e0b.tk -aadcg.xyz -aadht.xyz -aadidassoccershoes.com -aadmm.xyz -aaewr.com -aafabet.com -aafddz.ltd -aag6.live -aagijim.site -aahs.co.pl -aaimbees.site -aaj-ekb.ru -aajj234.com -aajlayj.website -aakashbansal.info -aakashrelan.com -aakb.ru -aakk.de -aalaa4.xyz -aalimli4.site -aalishaan.ooo -aaliyah.sydnie.livemailbox.top -aalkut.space -aall.de -aallaa.org -aalna.org -aals.co.pl -aalsmeerrp.online -aalsmeerrp.shop -aalyaa.com -aamail.co -aamail.com -aamanah.cf -aaml-nj.org -aaoqzf.us -aap79.com -aaphace.ml -aaphace1.ga -aaphace2.cf -aaphace3.ml -aaphace4.ga -aaphace5.cf -aaphace6.ml -aaphace7.ga -aaphace8.cf -aaphace9.ml -aapiesnetwork.online -aaplgroup.info -aaravpathology.com -aardvarkcomputers.net -aarkolt.com -aaronboydarts.com -aaronbriggs.buzz -aaronlittles.com -aarons-cause.org -aaronson.cf -aaronson1.onedumb.com -aaronson2.qpoe.com -aaronson3.sendsmtp.com -aaronson6.authorizeddns.org -aaronwolford.com -aarpal.tokyo -aarrowdev.us -aasgashashashajh.cf -aasgashashashajh.ga -aasgashashashajh.gq -aastabettingsnupp.xyz -aatch.net -aateam.pl -aautostabilbetsnup.xyz -aavaceroo.site -aayulifesciences.com -aazdey.us -aazixwrzca.com -aazzn.com -ab-coaster.info -ab-demo.com -ab-ins.us -ab-institute.com -ab-volvo.cf -ab-volvo.ga -ab-volvo.gq -ab-volvo.ml -ab-volvo.tk -ab0.igg.biz -ab1.pl -ab789bet.com -abab11111.info -ababmail.ga -abac-compressoren.ru -abacuswe.us -abagael.best -abakiss.com -abalapmag.ml -abandonee.info -abanksat.us -abanpub.com -abarrotesfanny.com -abarth.ga -abarth.gq -abarth.tk -abasdes.com -abasem.gq -abasem.ml -abasem.tk -abaspolybank.com -abastecedoragrafica.com -abastonet.org -abaytiegypt.com -abb.dns-cloud.net -abb.dnsabr.com -abba.co.pl -abbassalameh.website -abbelt.com -abbeygate-portugal.com -abbeyrose.info -abbiebarrett.buzz -abbonamenti.click -abbonamenti.gratis -abbonamentigratis.online -abbonamentitv.click -abbonamentitv.gratis -abbonamentitv.net -abbstore.website -abbuzz.com -abc-payday-loans.co.uk -abc1.ch -abc1918.xyz -abc2018.ru -abcaga.cf -abcaga.ga -abcaga.gq -abcaga.ml -abcaga.tk -abcaptcha.com -abcda.tech -abcdef1234abc.ml -abcdiscoverycenter.com -abcfunding.xyz -abchospital.net -abciarum.info -abcinema.xyz -abcmail.email -abcmail.men -abcnetworkingu.pl -abcpaydayloans.co.uk -abcremonty.com.pl -abcsport.xyz -abcstore.icu -abctoto.biz -abctoto.live -abctq.com -abcv.info -abcz.info.tm -abdathletics.com -abdominoplastylongisland.com -abdomiylcu.space -abducent.site -abductttmz.site -abdulalnahasrealtor.com -abdullahcan123.tk -abdullahcan1234.ml -abdullahcan1234.tk -abdvawssas.icu -abednegocoffee.org -abedwvas.icu -abegegr0hl.cf -abegegr0hl.ga -abegegr0hl.gq -abegegr0hl.ml -abegegr0hl.tk -abejar-uy.com -abejn.site -abeloori.com -abem.info -abendkleidergunstig.net -abenzymes.us -abercrombieepascheresyffr.info -abercrombiefitch-shop.com -abercrombiefitch-store.com -abercrombiefpacherfr.com -abercrombiepascherefrance.fr -abercrombieppascher.com -abercrombiesalejp.com -abereceipes.xyz -aberfeldy.pl -abesanss.space -abeshop.space -abessdesign.xyz -abetterlifethroughchrist.com -abexag.cf -abexag.ga -abexag.ml -abexag.tk -abfbusiness.com -abg.nikeshoesoutletforsale.com -abg0i9jbyd.cf -abg0i9jbyd.ga -abg0i9jbyd.gq -abg0i9jbyd.ml -abg0i9jbyd.tk -abhacholidays.com -abhatil.cf -abhatil.ga -abhatil.gq -abhishek.site -abhretyfo.site -abiasa.online -abigail11halligan.ga -abigail69.sexy -abigailbatchelder.com -abigcruisesfab.live -abigcruisesfan.live -abigcruisesget.live -abikmail.com -abilify.site -abilityskillup.info -abilitywe.us -abillity.tech -abimillepattes.com -abirelwardmaternelle.com -abista.space -abkcnjiga.com -abkernglad.site -abky6k.com -ablacja-nie-zawsze.info -ablacja-nie-zawsze.info.pl -ableflourishsdgaloncreedtra.me -ablegkiy.site -ablerabailque.com -ablombards.info -abloomingscribe.com -ablpoker.online -ably.co.pl -abmoney.xyz -abmr.waw.pl -abmultitax.com -abnamro.usa.cc -abnasi.cf -abnasi.gq -abnasi.ml -abnasi.tk -abnemd.site -abnermontessori.org -abobrain.mobi -abodemaldives.com -abogadanotariapr.com -abogadodeaccidentehouston.net -abogadomall.com -abogadoporminuto.com -abogados-divorcio.info -aboh913i2.pl -abol.gq -abolizers.fun -abonc.com -abondance.info -abone.us -abook.buzz -abookb.site -aboral.xyz -aboriginalartaustralia.info -aborigine.info -abos.co.pl -abosgratis.com -abosnypizza.com -abot5fiilie.ru -abot5zagruz.ru -abot8fffile.ru -about.com-posted.org -aboutallah.net -aboutbothann.org -aboutfitness.net -aboutphones.club -aboutphones.xyz -aboutsleeping.com -abovde.cf -abovde.gq -above-ton.xyz -abovetheseaoffog.com -abovewe.us -abpaness.cf -abpaness.ga -abpaness.gq -abpaness.ml -abparkncharge.com -abqdubop.site -abqenvironmentalstory.org -abqkravku4x36unnhgu9.co.cc -abredoik.ga -abri.co.pl -abrighterfutureday.com -abriment.net -abrina.ru -abrminer.com -abrmining.com -abroad.pub -abroadedu.ru -abroadgrid.site -abrs.email -abrucht.site -abs-esp.ru -abs-shaper.info -abscessedtoothhomeremedy.com -absensidikjari.com -absetesen.tk -absity.live -absixpack.info -absolut-digital.dev -absolut-partner.ru -absolutebit.com -absolutecarefunerals.com -absoluteexcellence.com -absolutelyecigs.com -absolutepaintingcompany.com -absolutesuccess.win -absolutewe.us -absolutewounder.com -absorbe.cyou -absorbenty.pl -absorblovebed.com -absorbuj.pl -abstolbik.site -abstract.cafe -abstracter.site -abstraction-is-often-one-floor-above-you.top -abstractiontechnology.com -abstractmovieposters.com -abstruses.com -abstruses.net -absurdcam.com -abt-travel.mobi -abt90.design -abt90ap.info -abt90ap.org -abt90bet.net -abt90ll.org -abtextual.site -abtw.de -abudhabi-lottery.info -abudhabi-lottery.net -abudhabi-lottery.org -abudhabirealestate.biz -abudhabirentals.net -abundanceit.com -abundantwe.us -abunprodvors.xyz -abusedb.net -abuseknowledge.info -abuselist.com -abusemail.de -abuser.eu -abut.co.pl -abutcher.org -abuyatheem.com -abuzzcreative.host -abvbook.com -abwertofeg.site -abx90x.xyz -abycrm.ru -abyrnelaw.com -abyshop.space -abyssemail.com -abyssmail.com -abyssnet.org -abza.email -abzaretehran.com -abzerkalce.site -abzerno.site -abzokt.ru -ac-jk.com -ac-nation.club -ac20mail.in -ac3d64b9a4n07.cf -ac3d64b9a4n07.ga -ac3d64b9a4n07.gq -ac3d64b9a4n07.tk -ac4d.online -ac895.cf -ac895.ga -ac895.gq -ac895.ml -ac99dollars.com -ac9fqq0qh6ucct.cf -ac9fqq0qh6ucct.ga -ac9fqq0qh6ucct.gq -ac9fqq0qh6ucct.ml -ac9fqq0qh6ucct.tk -aca5.com -acaccoun.cf -acaccoun.ga -acaccoun.gq -acaccoun.ml -acaccoun.tk -academail.net -academiadelcancer.com -academiammnpro.online -academiccommunity.com -academmail.info -academyofleadership.global -academyofmissionrenewal.com -academywe.us -acadteh.ru -acai-berry.es -acaiadvisors.com -acaihelp.com -acaiycongelados.com -acanadianpharmacy.com -acaneed.ga -acaneed.gq -acaneed.ml -acapitolaffair.com -acara-nesa.ru -acasabianca.com -acb1918.xyz -acbiyfbur.store -acbuk.site -acc24h.shop -acc2t9qnrt.cf -acc2t9qnrt.ga -acc2t9qnrt.gq -acc2t9qnrt.ml -acc2t9qnrt.tk -accademiadiscanto.org -accanext.org -acccheaps.com -accebay.site -acceleratewe.us -accent.home.pl -accentri.com -accenture-rugby.com -accentwe.us -acceptbadcredit.ru -acceptionalminds.com -acceptmail.net -acceptwe.us -accesorii.info -access.com-posted.org -accesschicago.net -accesshigh.win -accessibletraveleurope.com -accesslivingllc.net -accessoire-piscine-accessoire.net -accessoriesjewelry.co.cc -accessrailsolutions.com -accez.site -accidentaladversary.com -accidentalbusiness.com -accidentalopiodaddiction.info -accidentalopiodaddiction.net -accidentalopiodaddiction.org -accidentattorneyct.net -accidentattorneysalaska.com -accidentes.art -accidentlawcolorado.com -accidentlawyerct.net -accidentlawyermckinney.com -acciobit.net -accion.ngo -accionambiente.org -acclaimwe.us -acclimatize495ok.online -accminscard.com -accmt-servicefundsprefer.com -accompany032.icu -accompany146.icu -accord.ong -accordcomm.com -accordmail.net -accordwe.us -accordwood.top -account3423usffe.site -accountabilitycalendar.com -accountanten.com -accountantruth.cf -accounting11-tw.org -accountingaudit.com -accountingintaylor.com -accountrainbow.store -accounts-datalyticsbase.online -accounts-leadsdatalytics.info -accounts-login.ga -accounts4sell.com -accountsadtracker.com -accpremium.ga -accprm.com -accreditedwe.us -accs.website -accsstripe.com -acctokensme.com -accu-chek.cd -acculturate.org -accumolecular.com -accur8.net -accuracyis.com -accuranker.tech -accuratecallabs.com -accuratecallabs.net -accurateforum.info -accuratehealthman.xyz -accurateto.com -accurbrinue.biz -accutaneonlinesure.com -acd0.xyz -acds-restaurant.biz -ace-11111.com -ace-mail.net -ace.ace.gy -ace180.com -ace333.info -aceaf.live -acebabe.com -aced.co.pl -acee9.live -aceh.coffee -aceiio.space -aceleradionsdaleitura.info -aceleradordaleitura.online -aceleradores-bronceado.com -acem2021.com -acemail.info -acemovingservices.com -acemr.live -acentri.com -aceohm.com -acequickloans.co.uk -acerest.xyz -acerosmetal.nl -acesandale.com -acesatmelb.com -aceslot888.net -acessandodescontosplus.com -acetesz.com -acetonic.info -aceuh.com -aceventscatering.com -acexchange.com -acfddy.ltd -acfunny.site -acg.news -acg11.com -acg8.com -acgapk.com -acgapp.com -acgapp.hk -acgbits.com -acgblog.net -acgcard.com -acgcdn.com -acgchan.com -acgcili.com -acgcms.com -acgdoge.com -acgdown.com -acgfile.com -acghj.com -acgjob.com -acgleaderboard.info -acglib.com -acglist.com -acgmark.com -acgmaster.com -acgmetals.com -acgn.best -acgn.info -acgnapp.com -acgnote.com -acgpad.com -acgpage.com -acgpic.com -acgplan.com -acgproxy.com -acgpt.com -acgpush.com -acgqun.com -acgsearch.com -acgsns.com -acgsong.com -acgstock.com -acgstory.com -acgsuki.com -acgtest.com -acgtorrent.com -acgtt.com -acgtube.com -acgtxt.com -acgui.com -acgup.com -acgvpn.com -acgwear.com -acgwiki.org -ach0u.info -ach90.xyz -ach90ach.xyz -achatairjordansfrance.com -achatairjordansfrshop.com -achatjordansfrshop.com -achatz.ga -ache.co.pl -acheterairmaxs.com -achetertshirt.com -achievementwe.us -achieversconsulting.org -achievewe.us -achievewithdenise.com -achievingbalancedliving.com -achillesinvestment.com -achillesinvestments.com -achoevacu.com -achterhoekrp.online -achy.co.pl -acidlsdpyshop.com -acidrefluxdiseasecure.com -acike.com -acipoker.net -aclothespeak.site -acm25.com -acmail.com -acmeco.tk -acmehpunk.ga -acmehpunk.gq -acmehpunk.tk -acmemessaging.com -acmenet.org -acmilanbangilan.cf -acmily.com -acmimail.com -acmta.com -acmuci.org -acn-philippines.com -acnatu.com -acne.co.pl -acne.com -acnebrufolirime43.eu -acnemethods.com -acnenomorereviewed.info -acneproduction.com -acneproductions.com -acnerd.com -acnonline.com -acofmail.com -acogab.cf -acogab.ga -acogab.gq -acogab.ml -acogab.tk -acontenle.eu -acoolday.com -acoporthope.org -acornsbristol.com -acornwe.us -acoukr.pw -acousticcafenh.com -acousticlive.net -acpodo.cf -acpodo.ga -acpodo.gq -acpodo.ml -acpodo.tk -acpokerguide.com -acq.cz -acqm38bmz5atkh3.cf -acqm38bmz5atkh3.ga -acqm38bmz5atkh3.gq -acqm38bmz5atkh3.ml -acqm38bmz5atkh3.tk -acqnl9.download -acquaintance70.cf -acquaintance70.ga -acquaintance70.gq -acquaintance70.ml -acquaintance70.tk -acreno.info -acreno.services -acres.asia -acrilicoemosasco.ml -acrilicosemosasco.ml -acrilworld.ml -acro.app -acro.video -acroexch.us -acrone.website -acrowizard.com -acroyoga.academy -acroyoga.agency -acroyoga.app -acroyoga.cam -acroyoga.fun -acroyoga.ltd -acroyogaballet.com -acroyogabook.com -acroyogadance.academy -acroyogadance.agency -acroyogadance.club -acroyogadance.coach -acroyogadance.fun -acroyogadanceacademy.com -acroyogadanceteachertraining.online -acroyogateachertraining.online -acroyogavinyasa.com -acrscostseg.com -acrylicchairs.org -acrylicnumberplate.com -acrylicwe.us -acs.net -acserveur.net -acsisa.net -acta.co.pl -actdiets.com -actemrainformation.net -actemrainfusion.com -actemrainfusion.net -actemrainsights.net -actemraiv.com -actemralawsuit.com -actemralawsuit.net -actemralawsuits.com -actemralies.com -actemralipids.com -actemralitigation.com -acticipate.com -actimask.info -acting-guide.info -actingblog.com -actingtruthfully.com -action12.ru -actionprize04.icu -actiplaster.com -actipotenssolution.online -activaihmj.xyz -activarmisiones.org -activate.insure -activatedcharcoalteeth.com -activatelinks.com -activatewe.us -activator.cf -active-future-vendor.space -active-marketing-official.ru -active-realty.com -active.au-burn.net -activeaginggame.com -activeaginggames.com -activecaptains.com -activecrypto.online -activelywell.com -activemonologues.com -activeonlineshoppers.info -activestore.xyz -activewellnessfitnessbootcamp.com -activilla.com -activites-cyclistes-ufolep.info -activity.market -activitysports.ru -activitywe.us -activmir24.online -actix.fun -actprepnyc.com -actrevenge.us -actrosday.site -actrucla.ga -actrucla.gq -actrucla.tk -acts.co.pl -acttruckstaffing.us -actual-stv.ru -actuallyhere.com -actyvate.org -acuarun.com -acucre.com -acuitywe.us -acuk.top -acumendart-forcepeace-darter.com -acumensavvyagility-flair.com -acumenwe.us -acunak.ga -acunak.gq -acunsleep.cf -acunsleep.ga -acunsleep.gq -acunsleep.tk -acupuncturecharlottenorthcarolina.com -acupunctureithaca.com -acupuncturenews.org -acurate.ru -acuslsqa.net -acusupply.com -acutechrealty.org -acuteiro.space -acuteswor.us -acv0up.com -acvihis.cf -acvihis.gq -acvihis.tk -acvllc.org -acwdgq.us -acwiki.com -acwritav.cf -acwritav.ga -acwritav.gq -acwritav.ml -acyclovir.website -acyl.co.pl -acys.de -acysw.info -aczbej.info -ad-schoonmaak-hygiene.site -ad-seo.com -ad0676d.xyz -ad165.com -ad1zpg.us -ad2linx.net -ad2linx.org -ad6.net -ada-duit.ga -ada-janda.ga -adacalabuig.com -adachiu.me -adadass.cf -adadass.ga -adadass.gq -adadass.ml -adadass.tk -adal.kg -adal33.net -adal34.net -adal36.com -adal38.com -adal39.net -adal40.net -adal41.com -adal41.net -adal43.com -adal45.net -adal46.net -adal47.com -adal48.com -adal49.net -adal50.com -adamand.info -adamastore.co -adamsandadamsfinancial.com -adamsiia.com -adamsportgear.com -adamtraffic.com -adamvelma.com -adamwood.us -adanacconstruction.com -adanacconstruction.xyz -adanademirsporkulubu.xyz -adapazarihost.xyz -adapazarirehber.com -adapazarirehber.xyz -adapdev.com -adapromo.com -adaptalk.com -adapticlass.org -adaptivewe.us -adaptivno.icu -adaptix.cloud -adaptwe.us -adaraluxury.com -adashev.ru -adastars333.com -adastralflying.com -adasupeyzaj.xyz -adawis-web.com -adax360.com -adazmail.com -adbet.co -adbheg.net -adblockerhyper.us -adblog.com -adc71.space -adcar.pro -adcat.network -adclaborataries.com -adcloud.us -adconcept.ru -adcpharmaceutical.com -adctreatment.com -add-intl-preowned-cars-ok.live -add3000.pp.ua -add6site.tk -addcharlotte.com -addevalue.com -addgabriella.com -addictedtocheap.com -addictedtogirls.com -addictingtrailers.com -addictioncontentwriters.com -addictioncontentwriters.info -addictioncontentwriters.net -addictioninterventionhelp.com -addictionmarketingethics.info -addictionmarketingethics.net -addictionnj.com -addictiontreatment.marketing -addictiontreatmentcenterwebdesign.com -addictiontreatmentethics.com -addictiontreatmentethics.info -addictiontreatmentmarketingethics.com -addictiontreatmentmarketingethics.info -addimagestore.com -addio-tossine.com -addiostanchezza.com -addique.com -addisinvestment.com -addisonchurchill.net -additiavux.fun -additionaledu.ru -additioncorp.net -additive.center -addixtions.com -addjen.com -addmobigoto.online -addonupdater.com -addressunlock.com -addsigns.com -addtocurrentlist.com -adduguesthouses.com -addyoubooks.com -addys-sox.com -adeata.com -adecad.gq -adecad.tk -adel.asia -adelaide.bike -adelaideoutsideblinds.com.au -adelakhunova.site -adelarthra.best -adelbets.biz -adelinabubulina.com -adelu.tk -adenose.info -adentaltechnician.com -adept.dev -adeptwe.us -aderispharm.com -adesaoapp.online -adesktop.com -adf4th.us -adfilter.org -adfits.com -adfly.comx.cf -adfuard.com -adgento.com -adgloselche.esmtp.biz -adgpro.com -adgrant.services -adguemin.cf -adguemin.ga -adguemin.ml -adguemin.tk -adhaute.com -adhibit.site -adhong.com -adidas-fitness.eu -adidas-porsche-design-shoes.com -adidasasoccershoes.com -adidasibuni.info -adidasisport.info -adidasshoesshop.com -adidasto.com -adilub.com -adins.website -adipex7z.com -adiq.eu -adirondackhearthandhome.com -adit.co.pl -aditavideo.icu -aditiwedsvinay.com -aditus.info -adiyamanevlilik.xyz -adjun.info -adjustmyfontsize.com -adjwsaws.icu -adk66.ru -adkchecking.com -adkcontracting.com -adkecochecking.com -adldentallab.com -adleep.org -adlinking2.com -adlinks.org -adlinx.org -adlioprof.cf -adlioprof.gq -adlioprof.ml -adlioprof.tk -adm2work.xyz -admail.com -admaiq.com -admf12.site -admimailer2.com -admin-jg.com -admin-panels.xyz -admin-pt.com -admin-ru.ru -admin4cloud.net -adminator.ru -adminiecqp.online -adminiecqp.ru -administratiemedewerkers.com -administrativo.world -adminlette.org -admins.page -admintong.win -admiral-casino.win -admiral1.best -admiral4.best -admiral5.best -admiralcazino777.com -admiralwe.us -admiralx-mobile.xyz -admiralx-vhod.com -admmo.com -admnt-k.net -admonishments.com -adnc7mcvmqj0qrb.cf -adnc7mcvmqj0qrb.ga -adnc7mcvmqj0qrb.gq -adnc7mcvmqj0qrb.ml -adnc7mcvmqj0qrb.tk -adnocogtechnologies.com -adnzxh.com -ado888.biz -ado888.xyz -adobe-masters.ru -adobeccepdm.com -adobesignaturemoments.com -adolescenteatingdisorderplan.com -adolescenteatingdisorderprogram.com -adolescenteatingdisorderprogramreviews.com -adolescenteatingdisorderprograms.com -adolescenteatingdisordertreatmentcenters.com -adolescentedtreatmentcenters.com -adolf-hitler.cf -adolf-hitler.ga -adolf-hitler.gq -adolf-hitler.ml -adolfhitlerspeeches.com -adonghotel.com -adonisgoldenratioreviews.info -adoniswe.us -adoptionfraudnetwork.com -adopzen.com -adorable.org -adorateur.com -adorncosmetics.us -adottouncane.net -adpings.com -adpmfxh0ta29xp8.cf -adpmfxh0ta29xp8.ga -adpmfxh0ta29xp8.gq -adpmfxh0ta29xp8.ml -adpmfxh0ta29xp8.tk -adpozium.ru -adproc.com -adproc.org -adprofjub.cf -adprofjub.ga -adprofjub.gq -adprofjub.tk -adprojnante.xyz -adpromot.net -adpugh.org -adpurl.com -adquieremasclientes.com -adrakhmanovart.online -adramail.com -adrautodesign.com -adrespocztowy.pl -adresseemailtemporaire.com -adriacardsy.info -adrianneblackvideo.com -adrianou.gq -adrianraharja.uk.to -adrinks.ru -adriveriep.com -adrmwn.me -adroit.asia -adry.cloud -adscert.net -adsd.org -adsensesite.shop -adshealth.xyz -adsondeal.icu -adsorboil.com -adspecials.us -adsphere.online -adstabym.cf -adstabym.ml -adstabym.tk -adstra.dev -adstreet.es -adtalarmsbuffalo.com -adtemps.org -adtika.online -adtraden.cf -adtraden.ga -adtraden.gq -adtraden.ml -adtraden.tk -adtrader.adult -adu368.net -adubacarat.org -adubandar.com -adubiz.info -adukmail.com -adulktrsvp.com -adult-biz-forum.com -adult-db.net -adult-free.info -adult-work.info -adultbabybottles.com -adultbadlist.com -adultcamzlive.com -adultchat67.uni.cc -adultdayhealth.info -adultesex.net -adultexile.com -adultfacebookinfo.info -adulthosting.club -adulthublink.org -adultlearner360.com -adultlivingcommunity.org -adultlivingcommunityinfo.com -adultmagsfinder.info -adultnobl.recipes -adultop.icu -adultop.xyz -adultoper.xyz -adultosmayores.org -adultpian.icu -adulttimestore.com -adulttoy20117.co.tv -adulttoybox.ca -adulttoys.com -adultuk.xxx -adultvidlite.com -aduqq.org -aduski.info -adv-ingames.club -adv-plus.ru -advair.website -advance-edit.com -advanceamk.online -advanced-chiro-center.com -advanced-medical-supplements.app -advanceddiversification.com -advancedinternetmedia.com -advancedmedicalnetwork.info -advancedsurvival.net -advancedwebstrategiesinc.com -advanceedit.com -advanceskinfitness.com -advanstarhealthcare.com -advantage-intentions.site -advantage-smart.site -advantage-study.site -advantagechoice.site -advantageintentions.site -advantagesmart.site -advantagesofsocialnetworking.com -advantagestudy.site -advantagewe.us -advantek1.ru -advantimal.com -advantimals.com -advantimo.com -advapp.ru -advd.site -advdent.net -advdesignss.info -advents.icu -adventureabroadawaits.com -adventurewe.us -adventwe.us -adventwelfare.global -adverstudio.com -advertforyou.info -advertiseall.com -advertising-digitalsignage.com -advertisingblog.com -advertisinggreatness.com -advertisingmarketingfuture.info -advertmix85.xyz -adverts.page -advextreme.com -advicehill.icu -advidsesrest.xyz -advious.net -advious.org -advisercensorshipmark.website -advisorframework.com -advisorwe.us -adviva-odsz.com -advocacyanthology.com -advocat-klimanov.ru -advocatewe.us -advogadoespecializado.com -advokat24-msk.online -advokats.info -advorta.com -advrocket.com -advrocket.ru -adwaterandstir.com -adwc.cd -adwnasw.icu -adwordsbuilders.com -adwordscampaigner.com -adwordscontacts.com -adwordsopus.com -adwukong.com -adx-telecom.com -ady12.design -adyladlp.shop -adze.co.pl -adzillastudio.com -ae-mail.pl -ae.pureskn.com -ae68790.xyz -ae69a50.club -ae9d1t.host -aeacides.info -aeai.com -aeasystabilitybetsnupp20.xyz -aebfish.com -aed-cbdoil.com -aed5lzkevb.cf -aed5lzkevb.ga -aed5lzkevb.gq -aed5lzkevb.ml -aed5lzkevb.tk -aededwed.club -aeepha.com -aegde.com -aegia.net -aegis-conference.eu -aegiscorp.net -aegiswe.us -aegmefquw.shop -aegoneinsurance.cf -aegonilfe.com -aegyptisches-museum-berlin.info -aehmusic.com -aekl.email -aelbp.info -aeliatinos.com -aelo.es -aenikaufa.com -aenmail.net -aenterprise.ru -aeo6px.us -aeon.tk -aeonpsi.com -aeorierewrewt.co.tv -aeorwbpox.shop -aeotec.xyz -aepc2022.org -aepifoundation.com -aepistore.net -aerectiledysfunction.com -aeriesroboticsai.com -aerion.mobi -aerionaerospace.com -aerioncorp.biz -aerioncorp.info -aerioncorp.net -aeriontechnology.com -aeripix.com -aeritoon.cf -aernuo.icu -aero-fashion.com -aero-files.net -aero.ilawa.pl -aero1.co.tv -aero2.co.tv -aerobia.com -aerobicaerobic.info -aerobicfresh.com -aeroblog.com -aerochart.co.uk -aerocityvaranasi.com -aerodictionary.com -aeroglossary.com -aeronauticaldictionary.com -aeroponics.edu -aeroport78.co.tv -aeroshack.com -aerospaceblog.com -aerospaceglossary.com -aerotec.org -aeroteez.com -aerteur73.co.tv -aertewurtiorie.co.cc -aertyeme.site -aesamedayloans.co.uk -aesbasns.space -aesirwatches.com -aesopsfables.net -aestabbetting.xyz -aesthetic.dev -aestheticclinic.org -aesthetiqveins.com -aestrony6.com -aestyria.com -aetnainsurancecoversrehab.com -aetorieutur.tk -aev333.cz.cc -aewh.info -aewituerit893.co.cc -aewn.info -aewutyrweot.co.tv -aewy.info -aexa.info -aexd.info -aexf.info -aexg.info -aexk.ru -aexw.info -aexy.info -aeyq.info -aeze0qhwergah70.cf -aeze0qhwergah70.ga -aeze0qhwergah70.gq -aeze0qhwergah70.ml -aeze0qhwergah70.tk -aezga.com -aezl.info -af2przusu74mjzlkzuk.cf -af2przusu74mjzlkzuk.ga -af2przusu74mjzlkzuk.gq -af2przusu74mjzlkzuk.ml -af2przusu74mjzlkzuk.tk -af353.com -af4lqr.com -afadob.cf -afadob.ga -afadob.gq -afadog.cf -afadog.ga -afadog.ml -afadog.tk -afaracuspurcatiidintara.com -afat1loaadz.ru -afat2fiilie.ru -afat3sagruz.ru -afat9faiili.ru -afatt3fiilie.ru -afatt7faiili.ru -afb.business -afb.global -afbarta.ga -afbarta.ml -afbowr.com -afcgroup40.com -afcxw.us -afdzj1.site -afelab.org -afelov.ml -afelov.tk -aff-marketing-company.info -affairsprofiles.com -affcats.com -affebe1.xyz -affel.network -affgrinder.com -affilialogy.com -affiliate-marketing2012.com -affiliate-nebenjob.info -affiliate-pari-match.com -affiliate-tora.com -affiliatebreakthrough.com -affiliatedwe.us -affiliatehustle.com -affiliatenova.com -affiliateseeking.biz -affiliatesmarkabet.com -affiliatesonline.info -affiliatez.net -affilikingz.de -affinityfci.com -affinitywe.us -affirmationassistant.com -affirmhealth.net -affirmhealthclinic.com -affitti24.com -afflated.site -afflictionmc.com -afflive.gq -affluentwe.us -affordable55apartments.com -affordableattic.net -affordablescrapbook.com -affordablevisitors.com -affordablevoiceguy.com -affordablewastewatersolutions.com -affordablewe.us -affricca.com -affstb.com -afftar.site -afganbaba.com -afgone.website -afhu3x.best -afifilm.net -afiliadoaprendiz.com -afiliasi-fbs.com -afilliyanlizlik.xyz -afilmizle.online -afirst.site -afiscreenation.com -afisha.biz.ua -afishaonline.info -afja4u.us -afjhjhyt16505.cf -afjhjhyt16505.ga -afjhjhyt16505.ml -afjhjhyt16505.tk -afjhjhyt36473.ml -afjhjhyt36473.tk -afjhjhyt53041.cf -afjhjhyt53041.ml -afjhjhyt58183.cf -afjhjhyt58183.ga -afjhjhyt58183.ml -afjhjhyt60105.cf -afjhjhyt60105.ml -afjhjhyt60105.tk -afjhjhyt62958.ml -afjhjhyt85545.cf -afjhjhyt85545.ga -afjhjhyt85545.ml -afjhjhyt85545.tk -afjhjhyt99856.ml -afjhjhyt99856.tk -afjrotc.org -afk.bet -aflam06.com -aflamyclub.com -afmail.com -afonsequinha.com -afopmail.com -aforyzmy.biz -afqkxvzw.xyz -afr564646emails.com -afrahost.net -afraidmc.club -afranceattraction.com -afre676007mails.com -afre67677mails.com -afremails.com -africa-council.com -africalibrary.org -african-mango-opinie-cena.xyz -african3000.com -africanamerican-hairstyles.org -africanmangoactives.com -africanprogressiveeconomist.com -africanthoughtpartners.com -africanwildlife.tours -afriel.info -afriend.fun -afriend.gmail.com.gmail.com.m.oazis.site -afriend.site -afriendship.ru -afrikakonseyi.org -afrikalive.com -afrikfoodcorner.net -afro.com-posted.org -afrobacon.com -afrodizyakdamlalar.xyz -afronorilsk.ru -afroprides.com -afscmelocal2181.org -afsf.de -afsp.net -aftabnetdaily.net -aftarebwie.tk -afteir.com -afterabc.biz -aftercurro.com -aftereight.pl -afterhourswe.us -aftermedical.xyz -afternoonchameleon.com -afternoonsinthegarden.org -afterpeg.com -afterschoolncac.com -aftership.biz -afterspace.net -afterthediagnosisthebook.com -aftertherain.icu -aftksrabv.shop -aftnfeyuwtzm.cf -aftnfeyuwtzm.ga -aftnfeyuwtzm.gq -aftnfeyuwtzm.ml -aftnfeyuwtzm.tk -aftttrwwza.com -afunthingtodo.com -afuture.date -afwira.cf -afwira.ml -afwira.tk -afyonalisveris.xyz -afyonbilgisayar.xyz -afyonlusanal.com -afyonlusanal.xyz -afyonyumurta.com -afyonyumurta.xyz -ag.us.to -ag02dnk.slask.pl -ag163.top -ag8.men -ag95.cf -ag95.ga -ag95.gq -ag95.ml -ag95.tk -agafera2015.cd -agagmail.com -agaigoizalo.com -againautoparts.info -againautoparts.net -againsughu.website -agamail.com -agamoney.icu -aganardineroporinternet.com -agapenutrition.net -agapetus.info -agaqra.cf -agaqra.ga -agaqra.gq -agaqra.ml -agar.co.pl -agariohub.org -agartstudio.com.pl -agartutorials.com -agasj.com -agasolicitors.org -agatho.info -agb7qj.site -agbiome.bio -agbiome.directory -agbiome.live -agbiome.works -agbots.com -agcnelco.com -agdrtv.com -age-cool.ru -age52-toriaezu-tubuyaitoko.site -ageathomehappy.com -agedlist.com -agedmail.com -ageing-in-europe.org -agen-casino.net -agen-domino.top -agen-poker.top -agen45.biz -agen45.com -agen45.org -agenbola.com -agenbola9.com -agencabo.com -agenciaemdigital.com -agenciasviajesrepublicadominicana.com -agencjaatrakcji.pl -agencjainteraktywna.com -agencjareklamowanestor.pl -agencyad.online -agencyadvert.online -agencygrowthhacking.com -agencynet.us -agendawe.us -agendeto.com -agendka.mielno.pl -agengaming.net -agengaming.org -agenimc6.com -agenjudieuro.com -agenpulsamabruk.club -agenresmipokeridn.com -agenstvo-komforta.ru -agent388a-casinoonline.org -agentblog.com -agentogelasia.com -agentoto4d.org -agentshipping.com -agentsosmed.com -agenziaditraduzione.com -agenzieinvestigativetorino.it -ageoftheworld.com -ageofvalor.com -ageokfc.com -ageousa.shop -agesong.com -agewellgame.com -agewellgames.com -agfdgks.com -agfw01.com -agger.ro -agget5fiilie.ru -agget6fiilie.ru -agget6loaadz.ru -aggrandized673jc.online -agh-rip.com -agha.co.pl -aghoriti.website -agibdd.ru -agilecoding.com -agilefl.xyz -agileflin.xyz -agilekz.com -agilewe.us -agilis.cloud -agilityforeigntrade.com -agimpact.org -aginskaya.online -agistore.co -agkut1.site -aglobetony.pl -aglugimp.cf -aglugimp.ga -aglugimp.gq -aglugimp.ml -aglugimp.tk -agma.co.pl -agmail.com -agmoney.xyz -agmueidq.shop -agn88.net -agnachleo.ga -agnachleo.gq -agnachleo.ml -agnachleo.tk -agnieszkaobara.com -agnxbhpzizxgt1vp.cf -agnxbhpzizxgt1vp.ga -agnxbhpzizxgt1vp.gq -agnxbhpzizxgt1vp.ml -agnxbhpzizxgt1vp.tk -agocj.us -agoda.lk -agogbag.website -agogogames.com -agogotogel.com -agonize535qq.online -agonizingly7gi.online -agorawe.us -agostabbet.xyz -agostinho.net -agovol.cf -agovol.gq -agpforum.com -agq6.com -agr-energy.com -agramas.cf -agramas.ml -agramerica.com -agrariant.com -agrariant.net -agrarnaja-politika.ru -agreeone.ga -agreetoshop.com -agri-bank.net -agri-profocus.com -agri.agriturismopavi.it -agri.com-posted.org -agribisnews.xyz -agricalc.org -agriculture-ball.xyz -agrif.org -agrifood-ric.org -agrilinkllc.com -agrilinkllc.xyz -agriokss.com -agriologybg.info -agristyleapparel.us -agriturismocollepaciocco.it -agriturismomontefieno.com -agrofoodstartups.com -agrofort.com -agrolaw.ru -agrostor.com -agrourense.info -agsf8x.us -agsgames.club -agsjr.com -agskincare.us -agsmechanicalinc.com -agsphysicaltherapy.com -agterms.com -agtx.net -aguablancasbr.com -aguamail.com -aguamexico.com.mx -aguardhome.com -aguarios1000.com.mx -aguastinacos.com -aguastrieastor1.business -ague.co.pl -aguepanela.co -aguide.site -agustaa.top -agustusmp3.xyz -agwbyfaaskcq.cf -agwbyfaaskcq.ga -agwbyfaaskcq.gq -agwbyfaaskcq.ml -agwbyfaaskcq.tk -agwestvalley.com -agxazvn.pl -agxngcxklmahntob.cf -agxngcxklmahntob.ga -agxngcxklmahntob.gq -agxngcxklmahntob.ml -agxngcxklmahntob.tk -ah3mto.us -ahaappy0faiili.ru -ahajusthere.com -ahamit.com -ahamoney.xyz -ahappycfffile.ru -ahardrestart.com -aharmovie2.info -ahasavannah.com -ahavastyle.com -ahbapbet26.com -ahbapbet27.com -ahbapbet28.com -ahbz.xyz -ahcsolicitors.co.uk -ahdxsjy.com -aheadwe.us -ahem.email -ahf.ong -ahffilms.com -ahgae-crews.us.to -ahgpharma.info -ahhmail.info -ahhos.com -ahhtee.com -ahk.jp -ahketevfn4zx4zwka.cf -ahketevfn4zx4zwka.ga -ahketevfn4zx4zwka.gq -ahketevfn4zx4zwka.ml -ahketevfn4zx4zwka.tk -ahliqq.info -ahmadidik.cf -ahmadidik.ga -ahmadidik.gq -ahmadidik.ml -ahmed-ould-daddah.org -ahmedgomaa.tech -ahmedmouici.xyz -ahmetamanvermez.com -ahmetcan.ml -ahmetcan.tk -ahmetcan123.ga -ahmetcan1234.ga -ahmetcan1234.ml -ahmetcan1234.tk -ahmetliarmut.ml -ahmetmahmut.ml -ahmetmehmet.cf -ahoj.co.uk -ahojmail.pl -ahomeforjames.org -ahomesolution.com -ahomework.ru -ahong142.site -ahoora-band.com -ahopmail.com -ahoxavccj.pl -ahrnsd.site -ahrr59qtdff98asg5k.cf -ahrr59qtdff98asg5k.ga -ahrr59qtdff98asg5k.gq -ahrr59qtdff98asg5k.ml -ahrr59qtdff98asg5k.tk -ahrt.email -ahsb.de -ahsozph.tm.pl -ahtigames.se -ahtnacontractors.com -ahtnafacilities.net -ahtnafacilityservices.com -ahtnaprofessionalservices.com -ahtnaprofessionalservices.net -ahtnasts.biz -ahtnasts.info -ahtnasts.net -ahtnasts.org -ahtongtailor.monster -ahtubabar.ru -ahwbo1.site -ahxhjggc.com -ahyars.site -ai-pct.com -ai-report.ru -ai.aax.cloudns.asia -ai.edu.aiot.ze.cx -ai.hsfz.info -ai.vcss.eu.org -ai2111.com -ai4000.com -ai4trade.info -ai6188.com -ai6554.com -aiadvertising.xyz -aiafrica.xyz -aiatlanta.xyz -aiauction.xyz -aiaustralia.xyz -aiba777.com -aibm.email -aibotflows.com -aicai8.biz -aicai88.biz -aicai88.org -aicanada.xyz -aicash.one -aicasino.xyz -aichao5.com -aichou.org -aichristmas.xyz -aiciphering.com -aiclbd.com -aicomplete.com -aicryptoctrading.com -aide.co.pl -aidjw.space -aidomain.xyz -aidotcomau.com -aidotcomru.com -aidoushi.net -aidownload.xyz -aidpaidf.shop -aidshops.ru -aidtouchair.website -aiduisoi3456ta.tk -aidweightloss.co.uk -aieen.com -aielders.com -aiemail.xyz -aiemoney.xyz -aienvr.com -aifares.info -aiflesh.com -aifmhymvug7n4.ga -aifmhymvug7n4.gq -aifmhymvug7n4.ml -aifmhymvug7n4.tk -aifootballpredictions.tips -aifree.xyz -aigame.xyz -aihent.com -aihnoa.com -aihongkong.xyz -aiidriver.icu -aiigs.live -aiij8.space -aiindia.xyz -aiindonesia.xyz -aiiots.net -aiislam.xyz -aiisrael.xyz -aiistanbul.xyz -aijiangyuan.com -aijitu.icu -aijuxuan.com -aikeng91.icu -ailainaz.com -ailasvegas.xyz -ailem.info -ailenien.com -ailideng.club -ailiking.com -ailluin.site -ailme.pw -ailmedia.press -ailtex.com -aim-v.ru -aimboss.ru -aimeenorman.buzz -aimer-agency.net -aimexico.xyz -aimhire.me -aimodel.xyz -aims.co.pl -aimupset.com -ainbz.com -ainebalara.com -ainixx.xyz -aink.gq -aink.ml -ainmedia.press -ainra.space -ains.co.pl -aioneclick.com -aionline.xyz -aiot.aiphone.eu.org -aiot.creo.site -aiot.creou.dev -aiot.dmtc.dev -aiot.ptcu.dev -aiot.vuforia.us -aiot.ze.cx -aipi8x.com -aipian.info -aipmail.ga -aipp.tech -aipp31.com -aipp35.com -aipp37.com -aipp43.com -aipp47.com -aipp52.com -aipp53.com -aipp54.com -aipp59.com -aipp62.com -aipp63.com -aipp67.com -aipp69.com -aipp74.com -aipp79.com -aipp84.com -aipp85.com -aipp88.com -aipp92.com -aipp94.com -aipp97.com -aipptech.tech -aiprogenitor.com -aips.store -aipuma.com -air-blog.com -air-bubble.bedzin.pl -air-games.icu -air-maxshoesonline.com -air-tips.com -air.stream -air2token.com -air3d.icu -airaegeans.info -airaf.site -airandheat.contractors -airballons.ru -airbbs.com -airbexdelivery.com -airblasttrampolinepark.com -airbnbexperts.net -airbrush-tattoo.ru -airbrushism.com -airbytes.se -aircapitol.net -aircareshop.live -aircargomax.us -aircln.ru -aircolehaan.com -aircomfortforhomes.biz -airconditionermaxsale.us -airconditioning99dollars.com -airconditioningninetyninedollars.com -airconditioningservicetampafl.com -aircourriel.com -aircraftdictionary.com -aircraftfinishing.net -airdrietruck.com -airealestate.xyz -aireashop.space -airebook.com -aires.travel -airfareswipe.com -airfiltersmax.us -airforceonebuy.net -airforceonesbuy.com -airframce.club -airfresco.net -airg.app -airhawk.ru -airhelp.dev -airhimalayas.net -airhorn.org -airhue.com -airideas.us -airj0ranpascher.com -airj0ranpascher2.com -airjodanpasfranceshoes.com -airjodansshoespascherefr.com -airjoranpasachere.com -airjordan-france-1.com -airjordanacheter.com -airjordanafrance.com -airjordanapascher.com -airjordanapascherfrance.com -airjordanaustraliasale.com -airjordancchaussure.com -airjordaneenlignefr.com -airjordanffemme.com -airjordanfranceeee.com -airjordannpascherr.com -airjordannsoldes.com -airjordanochaussure.com -airjordanoutletcenter.us -airjordanoutletclub.us -airjordanoutletdesign.us -airjordanoutletgroup.us -airjordanoutlethomes.us -airjordanoutletinc.us -airjordanoutletmall.us -airjordanoutletonline.us -airjordanoutletshop.us -airjordanoutletsite.us -airjordanoutletstore.us -airjordanoutletusa.us -airjordanoutletwork.us -airjordanpaschefr.com -airjordanpascher1.com -airjordanpaschereshoes.com -airjordanpascherjordana.com -airjordanpaschermagasinn.com -airjordanpascherrfr.com -airjordanpascherrr.com -airjordanpascherrssoldes.com -airjordanpaschersfr.com -airjordanpaschersoldesjordanfr.com -airjordanpasschemagasin.com -airjordanpasscher.com -airjordanretro2013.org -airjordanscollection.com -airjordanshoesfrfrancepascher.com -airjordansofficiellefrshop.com -airjordanspascher1.com -airjordansshoes2014.com -airjordansstocker.com -airjuniors.info -airknox.com -airlagu.me -airmail.cc -airmail.tech -airmailbox.website -airmailhub.com -airmart.ru -airmax-sale2013club.us -airmax1s.com -airmaxdesignusa.us -airmaxgroupusa.us -airmaxhomessale2013.us -airmaxnlinesaleinc.us -airmaxonlineoutlet.us -airmaxonlinesaleinc.us -airmaxpower.us -airmaxprooutlet2013.us -airmaxrealtythesale.us -airmaxsaleonlineblog.us -airmaxschuhev.com -airmaxsde.com -airmaxshoessite.com -airmaxshopnike.us -airmaxslocker.com -airmaxsmart.com -airmaxsneaker.us -airmaxspascherfrance.com -airmaxsproshop.com -airmaxsstocker.com -airmaxstoresale2013.us -airmaxstyles.com -airmaxtn1-90paschers.com -airmaxtnmagasin.com -airmaxukproshop.com -airn.co.pl -airnons.info -airold.net -airon116.su -aironheating.com -airparkmax.us -airplane2.com -airplanedesire.com -airplay.elk.pl -airpodscu.site -airpodshop.shop -airport-atirau.ru -airport-transfers-malaga.com -airportbusride.com -airportendoscopy.center -airportlimoneworleans.com -airportlimousinenyc.com -airportparkingcincinnati.net -airporttaxisinloughborough.org -airporttaxisinquorn.org -airporttransfershuttles.com -airporttransfersistanbul.net -airpriority.com -airpurifiermax.us -airriveroutlet.us -airshowmax.us -airsi.de -airsight.app -airsofa.icu -airsoftshooters.com -airspaskeb.space -airsport.top -airsuspension.com -airtravelmaxblog.us -airturbine.pl -airuc.com -airwaysaviationonline.com -airwayy.us -airxr.ru -airybreeze.com -airyofe.space -aisaelectronics.com -aiseattle.xyz -aiseeker.com -aishenma.xyz -aisingapore.xyz -aisitu.icu -aisiys.com -aisports.xyz -aist-lipetsk.ru -aistis.xyz -aistocks.xyz -aisushigranada.com -aiswitzerland.xyz -aitaiwan.xyz -aitraffic.xyz -aitravel.xyz -aitu.asia -aitu.help -aity.icu -aiv.pl -aivtxkvmzl29cm4gr.cf -aivtxkvmzl29cm4gr.ga -aivtxkvmzl29cm4gr.gq -aivtxkvmzl29cm4gr.ml -aivtxkvmzl29cm4gr.tk -aiwan-deals.com -aiwashington.xyz -aiwhois.xyz -aiwireless.xyz -aixjbv.space -aizennsasuke.cf -aizennsasuke.ga -aizennsasuke.gq -aizennsasuke.ml -aizennsasuke.tk -aj4jesus.com -aja-tech.com -ajabdshown.com -ajaibtogel.website -ajanlatok.online -ajansberna.site -ajansesperto.site -ajanslog.top -ajansmaster.xyz -ajansparis.xyz -ajanstinder.xyz -ajanstwo.xyz -ajarnow.com -ajaxapp.net -ajaxdesign.org -ajaxsys.com -ajbrosan.com -ajbsoftware.com -ajcreationsonline.com -ajeeb.email -ajeesh.email -ajeroportvakansii20126.co.tv -ajexen.ga -ajexen.gq -ajexen.ml -ajexen.tk -ajfasy.com -ajfzqs.us -ajgpyt.com -ajhfjhasjkr30977.cf -ajhfjhasjkr30977.ga -ajhfjhasjkr30977.tk -ajhfjhasjkr40538.ga -ajhfjhasjkr47858.cf -ajhfjhasjkr47858.ga -ajhfjhasjkr47858.ml -ajhfjhasjkr47858.tk -ajhfjhasjkr87650.cf -ajhfjhasjkr87650.ga -ajhfjhasjkr87650.ml -ajhfjhasjkr87650.tk -ajhfjhasjkr97564.cf -ajhfjhasjkr97564.tk -aji.kr -ajiagustian.com -ajjdf.com -ajmail.com -ajmandreampalacespa.info -ajnabar.com -ajobabroad.ru -ajobfind.ru -ajodirect.com -ajoivjortkobptr.info -ajoqq.org -ajoxmail.com -ajpapa.net -ajqff.us -ajqn2h.us -ajreviewnews.com -ajrf.in -ajruqjxdj.pl -ajsd.de -ajsdawks.icu -aju.onlysext.com -ajua.africa -ajua.tech -ajustementsain.club -ajy47.space -ajyuahsj.tech -ak-ex.ru -ak13.net -ak46.biz -ak751.site -aka2.pl -akabubbles.com -akademichesky.info -akademisaati.org -akademiyauspexa.xyz -akainventorysystem.com -akaliy.com -akamaized.cf -akamaized.ga -akamaized.gq -akamarkharris.com -akanpjoyp.shop -akanshabhatia.com -akapost.com -akara-ise.com -akash9.gq -akaunt.info -akaunt.org -akazq33.cn -akb-12.icu -akb-75.icu -akb007.com -akbobinajelektrik.xyz -akbqvkffqefksf.cf -akbqvkffqefksf.ga -akbqvkffqefksf.gq -akbqvkffqefksf.ml -akbqvkffqefksf.tk -akbxv.us -akcaoglutesisat.xyz -akcebet1.club -akcebetbonus1.club -akcebetgiris1.club -akcebetgirisadresi1.club -akcebetuyelik1.club -akcesoria-dolazienki.pl -akcesoria-telefoniczne.pl -akciivipusk.xyz -akcneletak.sk -akcritning.cf -akcritning.ga -akcritning.ml -akcritning.tk -akd-k.icu -akedits.com -akee.co.pl -akekee.com -akelshop.net -akemakep.shop -akerd.com -akerin.xyz -akerna.net -akeyt.host -akfioixtf.pl -akgq701.com -akhalfpricelisting.com -akhavi.org -akhbarak.org -akhisaranahtar.xyz -akhmadi.cf -akhost.trade -aki-miz.biz -akiavenue.com -akillietkinlik.xyz -akinesis.info -akinsoftsivas.com -akiol555.vv.cc -akiowrertutrrewa.co.tv -akira4d.info -akissaboe.us -akjewelery-kr.info -akk.ro -akkecuwa.ga -akkiproducts.com -akkivk.ru -aklqo.com -akma.email -akmail.com -akmaila.org -akmandken.tk -akoncasino1.com -akoncasino4.com -akorde.al -akqgs.live -akqkky.com -akragames.win -akramed.ru -akrolreklam.xyz -akronquote.com -akronrt.net -akrula.site -akryn4rbbm8v.cf -akryn4rbbm8v.ga -akryn4rbbm8v.gq -akryn4rbbm8v.tk -aksanticom.cd -aksarat.eu -aksarayhabertv.com -aksaraylisesi.xyz -aksarayorospulari.xyz -aksarayotoekspertiz.com -aksearches.com -akserviceonline.com -aksesorisa.com -aksioma.store -aksjtjkast12186.cf -aksjtjkast12186.ga -aksjtjkast12186.tk -aksjtjkast19012.cf -aksjtjkast19012.ga -aksjtjkast19012.ml -aksjtjkast33108.ga -aksjtjkast33108.ml -aksjtjkast34501.ml -aksjtjkast34501.tk -aksjtjkast49181.cf -aksjtjkast49181.ga -aksjtjkast49181.ml -aksjtjkast49181.tk -aksjtjkast49209.cf -aksjtjkast49209.ml -aksjtjkast49209.tk -aksjtjkast52344.ga -aksjtjkast52344.ml -aksjtjkast99932.ml -aksjtjkast99932.tk -akstel32.icu -aktiefmail.nl -aktifkartu.net -aktionsinfo.com -aktoyota.com -aktoyotaguam.com -akudik.bid -akula012.vv.cc -akumaofficiall.live -akumulatorysamochodowe.com -akumulatoryszczecin.top -akunamatata.site -akunprm.com -akusayyangkamusangat.ga -akusayyangkamusangat.ml -akusayyangkamusangat.tk -akustyka2012.pl -akutamvan.com -akuudahlelah.com -akvabionica.icu -akvaeha.icu -akvaltis.icu -akvapolivblg.ru -akvaristlerdunyasi.com -akvluzbeo.shop -akwyf.xyz -akxpert.com -akxtsm.icu -akxugua0hbednc.cf -akxugua0hbednc.ga -akxugua0hbednc.gq -akxugua0hbednc.ml -akxugua0hbednc.tk -akyildizeticaret.com -akyildizkahve.com -akyildizkahve.org -akzwayynl.pl -al-cinema.info -al-jazeera.comx.cf -al-qaeda.us -al26kt.info -al3a4t.info -al3ood.com -alabama-4k.com -alabama-get.loan -alabama-nedv.ru -alabamaaddictiontreatment.center -alabamacocainerehab.com -alabamadetox.center -alabamaopiaterehab.com -alabamaquote.com -alabamavape.com -alabana.net -alabapestenoi.com -aladdin-voyage.com -aladincash.org -alaeditions.com -alaeditions.net -alahahmohafard.online -alaimogroup.us -alainazaisvoyance.com -alaire.shop -alaisfornitura.com -alakart.info -alaki.ga -alalkamalalka.cf -alalkamalalka.ga -alalkamalalka.gq -alalkamalalka.ml -alalkamalalka.tk -alamalfrosiah.icu -alamedacountyprobate.com -alamedahomealarm.com -alameen.ong -alameinhotel.com -alaminews.online -alanadi.xyz -alanci.cf -alanci.ga -alanci.gq -alanci.ml -alanci.tk -alanischaritynetwork.com -alankxp.com -alannahtriggs.ga -alanwilliams2008.com -alanyadevekusu.xyz -alanyaligheyeti.xyz -alanyamado.xyz -alapage.ru -alappuzhanews.com -alarabi24.com -alaret.ru -alarm-nice.ru -alarmcentrale.shop -alarmclockhq.org -alarmpermits.com -alarmsfire.ru -alarmsysteem.online -alarmsysteem.shop -alarmydoowectv.com -alasin.site -alaska-nedv.ru -alaskacocainerehab.com -alaskagrab.com -alaskanartisan.com -alaskaquote.com -alaskavalentine.com -alatechsource.com -alatechsource.net -alazan.biz -albadefilippis.com -albamail.ga -alban-nedv.ru -albanychristianspirit.com -albasmahart.com -albaspecials.com -albasport.com -albayan-magazine.net -albaziinlebanon.com -albazzini.com -albendazole.website -albertacan.net -albertina.me -albertlotito.info -albertoparley.net -albertwang.me -albico.su -albinupp.xyz -albionwe.us -alblasserwaard.works -alblogic.com -alborzfilms.com -alboucher.host -albumlob.com -albumpri.icu -albumpri.xyz -albumpric.icu -albuquerqueaddictiontreatment.com -albuquerquealcoholrehab.com -alburov.com -alburyfloatroom.com -albvid.org -albyjacob.com -alcatraz.org -alcegi.ga -alcegi.gq -alcegi.ml -alcegi.tk -alcha.ru -alchemywe.us -alchevsk-car.ru -alco-city.site -alco-magazin2.info -alcobar.bar -alcobazar.site -alcobutik2.bar -alcobutik37.ru -alcobutik38.ru -alcobutik39.ru -alcobutik75.ru -alcodealer12.ru -alcodealer13.ru -alcohol-rehab-costs.com -alcoholbuddy.com -alcoholetn.com -alcoholicsanonymoushotline.com -alcoholtreatmentdetoxcenters.com -alconight17.site -alconights41.ru -alcopresentspb.ru -alcoprost-pomoch.ru -alcostar.site -alcosynth.reviews -alcotix.fun -alcsehar.ga -alcsehar.gq -alcsehar.ml -alcsehar.tk -alcsx.site -alcyonoid.info -aldawaeya.org -aldealdi.shop -aldeaminera.info -aldemimea.xyz -aldeyaa.ae -aldndcxh.host -aldooshoes.com -ale35anner.ga -aleagustina724.cf -aleaisyah710.ml -aleamanda606.cf -aleanna704.cf -aleanwisa439.cf -alebas.ru -alebutar-butar369.cf -alec.co.pl -alectronik.com -aledestrya671.tk -aledrioroots.youdontcare.com -alee.co.pl -aleelma686.ml -aleepapalae.gq -alefachria854.ml -alefika98.ga -alegrabrasil.com -alegracia623.cf -alegradijital.com -aleherlin351.tk -aleigo.com -aleja111.com -alejandroirizarry.com -alekfamili.ru -alekfamily.ru -alekikhmah967.tk -aleks-berlev.ru -alekseymalyamov.ru -alekseyzaharenko.ru -alemail.club -alemalakra.com -alemaureen164.ga -alembic.ltd -alemeutia520.cf -alenaberezina.ru -alenina729.tk -aleno.com -alenoor903.tk -alenovita373.tk -aleomailo.com -aleqodriyah730.ga -alerfv.info -alerioncharleston.com -alerionventures.info -alerionventures.org -alerionventures.us -alert-cellphone.club -alert-cleaner.club -alert-cleaner1.site -alert-fixer.club -alert-phone.club -alert.ong -alertbus.org -alertslit.top -alesam.info -alesandreo.net -alesapto153.ga -alesaq.info -aleshiami275.ml -alessandrasells.com -alessi9093.co.cc -alessia1818.site -alessth.shop -alesulalah854.tk -aletar.ga -aletasya616.ml -alex-owens.info -alexa-ranks.com -alexaclub.icu -alexacms.org -alexadomain.info -alexanas.ru -alexanderfedorov.com -alexandersvet.ru -alexandrabielanski.com -alexandrafulton.com -alexandravolkova.ru -alexandredossantos.com -alexandreleclercq.com -alexandria.chat -alexandria.codes -alexandria.fund -alexanozkz.website -alexayers.com -alexbeaudet.com -alexblogs.net -alexbox.online -alexbrola.com -alexbrowne.info -alexcampbell.xyz -alexcline.us -alexcowan.net -alexdarrell.info -alexdrivers00.ru -alexdrivers2013.ru -alexecristina.com -alexeymalyamov.ru -alexforseth.com -alexhero.com -alexhorton.ru -alexis4d.xyz -alexisfawx.best -alexpeattie.com -alexrengel.net -alexri.icu -alexsolutins.site -alextech-sweetbriar.com -alexwn.us -alfa-memes.shop -alfa-romeo.cf -alfa-romeo.ga -alfa-romeo.gq -alfa-romeo.ml -alfa.papa.wollomail.top -alfa.tricks.pw -alfadesignweb.com -alfaex.net -alfaex.org -alfaglobalholding.com -alfailaq.store -alfamailr.org -alfaomega24.ru -alfapaper.ru -alfaprim.ru -alfaromeo.igg.biz -alfaromeo147.cf -alfaromeo147.gq -alfaromeo147.ml -alfaromeo147.tk -alfasigma.spithamail.top -alfasolutions.ru -alfastras.info -alfbet.xyz -alfcare.com -alfonsodg.info -alfra.ltd -alfredosandor.com -alfredotv.club -alfredsungperfumes.com -alfurjandubai.net -alfurqan.ru -alga.co.pl -algaepanel.com -algaetec.asia -algarve-direkt.nl -algary.xyz -alge528.ga -algeco-rus.ru -algeria-nedv.ru -algerie-culture.com -algicidal.info -algobot.one -algobot.org -algranut.cf -algranut.ga -algranut.gq -algranut.tk -alhadattv.com -alhalfpricelistings.com -alhamadealmeria.com -alhashareslectronics.com -alhemyaria.news -alhzfw.us -ali-baba.info -aliagaberrakemlak.com -alianza-editores.com -aliases.tk -aliasnetworks.info -aliaswave.com -aliaswe.us -alibaba.cd -alibaba4india.online -alibabor.com -alibestdeal.com -alibirelax.ru -aliblue.top -alic.info -aliceenjoy.com -alicefern.com -alicemchard.com -aliciaflynn.buzz -aliciaspas.info -alidioa.tk -alidog.ru -aliebright.com -aliefeince.com -aliemli.site -alienadmiral.com -aliens.onl -alienware13.com -aliex.co -alif.co.pl -alifdz.com -alifestyle.ru -aligamel.com -alight.mobi -aligmli.site -alignyourtechchakras.com -aligreen.top -alihanlab.com -alihkan.com -aliiphone.com -aliito.icu -alijben.space -alike-position.xyz -alilafe.icu -alilo.toys -alilomalyshariki.ru -alilyaflix.site -alimail.bid -alimainemail.cf -alimainemail.gq -alimainemail.ml -alimentarydesign.com -alimentivzisk.xyz -alimli13.site -alimli14.site -alimli15.site -alimli2.site -alimli20.site -alimli3.site -alimunjaya.xyz -alinavits.icu -alindropromo.com -alinehouse.co -alinfotimes.com -alinmis.best -alioka759.vv.cc -aliorbaank.pl -aliquippatirepros.com -alired.top -alishafield.buzz -aliskebabandpizzahouse.com -alisoftued.com -alisonebright.com -alisongamel.com -alisonsheffieldinteriors.com -alissahouse.co -alistantravellinert.com -alisverisistan.net -alitaj.com -alitsecure.site -alittle.website -alivance.com -aliveinlosangeles.com -alivemail.cf -alivemail.ga -alivemail.gq -alivemail.ml -alivemail.tk -alivewe.us -alivi8.net -aliwegwpvd.ga -aliwegwpvd.gq -aliwegwpvd.ml -aliwegwpvd.tk -aliwhite.top -aliyandex.ru -aliyubillionsblog.com -aliyummail.cf -aliyunmm.cn -alizof.com -aljoyce.com -alk44.icu -alkalinewaterus.com -alkila-lo.com -alkila-lo.net -alkoholeupominki.pl -alkoprost-lucshy.ru -alky.co.pl -all-about-cars.co.tv -all-about-health-and-wellness.com -all-cats.ru -all-inclusive-holiday.com -all-knowledge.ru -all-mail.net -all-starninjas.info -all-starninjas.net -all-starninjas.org -all-store24.ru -all2day.info -all4engineering.com -all4mail.cn.pn -all4me.info -all4oneseo.com -all4piping.com -allaboutebay2012.com -allaboutemarketing.info -allaboutlabyrinths.com -allaccesstixx.net -allaccesswe.us -allacontractors.com -alladyn.unixstorm.org -allaelectric.com -allairjordanoutlet.us -allairmaxsaleoutlet.us -allamericanmiss.com -allamericanwe.us -allanimal.ru -allanjosephbatac.com -allapparel.biz -allardprize.com -allaroundwe.us -allartworld.com -allbags.biz -allbest-games.ru -allbest.site -allbest4u.ru -allbet3vip.com -allbet698.com -allbetauto.com -allbetvip.com -allbitcoinjobs.com -allblogs.com -allboutiques.com -allcalhomes.com -allcards.su -allchart.ru -allchristianlouboutinshoesusa.us -allclass.club -allclown.com -allcodecenter.com -allcures.info -alldao.org -alldavirdaresinithesjy.com -allday247.ru -alldc.website -alldelhiescort.com -alldirectbuy.com -alldiscount.icu -alldude.site -allegiancewe.us -allegr.ru -allegrowe.us -allemailyou.com -allemaling.com -allemojikeyboard.com -allen.nom.za -allengrangearms.com -allennannie.com -allenpeiffer.com -allenrichter.com -allenrothclosetorganizer.com -allergibruger.website -allerguxfpoq.com -allergybuddyapp.com -allergypeanut.com -allergytalk.net -allesgutezumgeburtstag.info -allesoprood.com -allesoverwebshops.shop -allesoverwebwinkels.shop -allev.net -alleviam.asia -alleviam.org -allevium.org -allfactory.com -allfamus.com -allfolk.ru -allfordfocus.biz -allforeign.boutique -allforeignboutique.com -allfreer.site -allfregwe.ga -allfrree.xyz -allg00d.com -allgaiermogensen.com -allgamemods.name -allgolfhats.com -allgoodwe.us -allgreatshop.xyz -allhomesincharlotte.net -allhostguide.com -allhoz.ru -alliance-writing.com -alliance-writings.club -alliancewe.us -alliedfullmovie.info -alliehenner.com -alliesassured.com -alliescoin.net -alliescoin.org -alliescoins.com -allincludedpuntacana.com -allinclusivesandiegowedding.com -allinonewe.us -allirelandcarrentals.com -alliscasual.org.ua -allisonrolish.com -allitevglu.site -allkemerovo.ru -allkitchenrecipe.com -allmails.site -allmarkshare.info -allminsk.info -allmmogames.com -allmp3stars.com -allmtr.com -allmyemployees.net -allnationsuniversity.org -allneedscomputers.com -allnet.org -allnewsblog.ru -allnewsblogs.ru -allnightnews.ru -allo-tv.ru -allofthem.net -allofthesepeople.com -alloggia.de -allogrkudc.space -allonthego.info -allopurinolonline.info -allortech.online -alloutwe.us -allowbuil.icu -allowdram.xyz -allowed.org -allowene.buzz -allowglov.site -allowhea.recipes -allowwidt.email -alloygirl.com -alloyquest.com -alloywe.us -allpaydayloans.info -allpdfmanuales.xyz -allpetsupply.biz -allpickuplines.info -allpk.ru -allpro.plumbing -allprohandyman618-0440.com -allprolert.tk -allpronetve.ml -allprosto.icu -allprowe.us -allquestionsolve.com -allresae.site -allretrojordans.com -allroundawesome.com -allroundnews.com -allseasonswe.us -allserch.net -allslickdeals.com -allsnap.app -allsoftreviews.com -allsoftwareservices.com -allsolenoids.com -allsportsinc.net -allstar-brisbane-orthodontist.com -allstardaytours.com -allstarload.monster -allstarshowstopperrs.com -allstartop.xyz -allstarwe.us -allsuperinfo.com -alltagstipps.site -alltempmail.com -allthatnow.com -allthegoodnamesaretaken.org -allthemuchiz.icu -allthetexts.com -allthetimeyoudisappear.com -alltheweights.top -allthewp.com -allthingsbloodpressure.com -allthingsprogress.com -allthingswoodworking.com -alltopmail.com -alltopmovies.biz -alltrozmail.club -allukschools.com -allurewe.us -allute.com -allviant.com -allviant.net -allvoipphoneok.com -allwatch-shop.icu -allwynrefunds.com -ally-fun.com -ally.co.pl -ally.icu -allyourcheats.com -allyournerd.us -allyours.xyz -alma3bet360.xyz -almada-group.net -almail.com -almail.xyz -almajedy.com -almanabo.icu -almanara.info -almasbet606.xyz -almascapitalparnters.com -almathemes.info -almazkeys.ru -almazkrest.ru -alme.co.pl -almikoorfih.xyz -almondcosmetic.com -almondwe.us -almoner.xyz -almostic.ru -almovie.info -almresort-nassfeld.info -almubaroktigaraksa.com -alneboklima.com -alnewcar.co.uk -alnieser.cf -alnyus.com -aloceplira.com -aloceplira.net -aloemie.com -aloeverachat.com -aloftventure.com -alogon.net -alohaball.org -alohagroup808.com -alohagroup808.net -alohaziom.pl -alohomora.biz -aloimail.com -alonbog.cf -alonbog.ga -alonbog.ml -alonbog.tk -alonetry.com -alonto.cf -alonto.ga -alonto.gq -alonto.ml -alonto.tk -alonzo1121.club -alonzos-end-of-career.online -aloofdress.email -alooffig.xyz -alooffigh.xyz -aloofivo.email -alooflem.xyz -aloofpo.xyz -aloofpou.xyz -aloofpoun.xyz -aloofweed.us -aloowi.com -alormbf88nd.cf -alormbf88nd.ga -alormbf88nd.gq -alormbf88nd.ml -alormbf88nd.tk -aloshahreketab.org -alosttexan.com -alouettethedragon.com -aloutas.cf -aloveplus.xyz -alovobasweer.co.tv -alovsur.cf -alovsur.ga -alovsur.gq -alovsur.tk -alpabuild.ru -alpacaburger.com -alpaltan.com -alpechino.com -alper2500vp.ga -alper2500vp.tk -alperkarayama.com -alperoc.ga -alperoc.tk -alperyayinde.ml -alperyayinde.tk -alpfabetart.icu -alph.wtf -alpha-jewelry.com -alpha-lamp.ru -alpha-p2.ru -alpha-pack.ru -alpha-web.net -alpha.uniform.livemailbox.top -alpha1property.com -alpha3solar.com -alphabooster.com -alphacare4you.site -alphacodeincubate.club -alphaconquista.com -alphadefensegear2.com -alphadelivered.online -alphadev.online -alphafrau.de -alphageekbrewing.com -alphaluxmusclenow.com -alphanaltan.com -alphaneutron.com -alphaomegawe.us -alphaphalpha74.com -alphaprint56.ru -alphard.works -alpharecipes.com -alphatech.llc -alphatechusainc.us -alphaupsilon.thefreemail.top -alphavid.net -alphaxboost.club -alphonsebathrick.com -alpicley.ga -alpicley.gq -alpicley.tk -alpinecave.com -alpinesg.info -alpinewe.us -alplann.shop -alpnames.xyz -alpoindexter.org -alptoker.com -alqeeat.org -alqiblah.net -alqy5wctzmjjzbeeb7s.cf -alqy5wctzmjjzbeeb7s.ga -alqy5wctzmjjzbeeb7s.gq -alqy5wctzmjjzbeeb7s.ml -alqy5wctzmjjzbeeb7s.tk -alr0.icu -alrabee3.org -alraej.net -alreadypurchase.com -alreadyselected1.com -alreemabudhabi.com -alreemisland.org -alrmail.com -alsadeqoun.com -alsaimli.site -alseginy.com -alsfw5.bee.pl -alsheim.no-ip.org -alsirajalmonir.org -alsisa.cf -alsisa.ga -alsisa.gq -alsisa.ml -alsisa.tk -alsjegeloofd.com -alsoget.com -alsosearch.network -alt.one -alt04i.us -alta-klinik.com -altadefinizione.download -altadefinizione01.buzz -altadviser.com -altairwe.us -altamontespringspools.com -altcoinadvantage.org -altdesign.info -altecused.com -altehandys.online -alter.capital -alteredrhythm.com -alterego.life -alterity.xyz -altern.biz -alternate-universe.online -alternatetomattermark.com -alternatetoprospectify.com -alternatetounomy.com -alternatifsbobet.link -alternativa-ug.ru -alternativedemocratfacts.com -alternativeforminoxidil.com -alternativepropertybuyers.net -alternativeto.online -alternativetoclearbit.com -alternativetodatanyze.com -alternativetominoxidil.com -alternativetoprospectify.com -alternativetounomy.com -alternatormc.com -alternavox.net -alterthemood.com -although-soft-sharp-nothing.xyz -althwho.shop -alti-gor.icu -alti2ude.com -altinbasaknesriyat.com -altincasino.club -altincasino.xyz -altincasino11.com -altincasino13.com -altincasino14.com -altincasino33.com -altinciayak.com -altinkumpropertysales.com -altis-uspeh.ru -altitudecdn.net -altitudewe.us -altmails.com -altnewshindi.com -altoonachampssportsgrill.com -altoris.pl -altostima.com -altred.site -altrmed.ru -altromaliv.gq -altrucommunity.com -alttc.ru -altuswe.us -altwebshop.com -altwow.ru -altxiv.com -altxxx.fun -altxxx.site -altynkazyna.kg -aluboats.com -alufelgenprs.de -aluloronse.icu -aluminiumboten.com -aluminiumjon.com -aluminumbrush.us -aluminumbrushes.org -aluminumbrushes.us -alumix.cf -alumni.com -alumnimp3.xyz -alumnioffer.com -alunord.com -alunord.pl -aluppriv.cf -aluppriv.gq -aluppriv.ml -aluumi.com -aluzzi.com -alvasegyetem.shop -alvechurchacousticroots.com -alvemi.cf -alvemi.ga -alvemi.gq -alvemi.ml -alvemi.tk -alvinje.cf -alvinje.ga -alvinje.ml -alvinneo.com -alvinsi.com -alvob5.info -alwaqtnews.com -always-dependable.com -always-open.app -alwernia.co.pl -alwise.site -alx69.space -alyamanal3raby.org -alykpa.biz.st -alyscha.online -alyssa.allie.wollomail.top -alytics.info -alzheimerslibrary.com -alzheimersmemoryloss.com -am-am.su -am-dv.ru -am-koleso.icu -am-static.net -am-static.org -am-usercontent.net -am263.space -am2g.com -am55d.com -am55e.com -am55f.com -am55j.com -am55n.com -am55o.com -am55p.com -am55s.com -am55v.com -am631.site -am66b.com -am66c.com -am66e.com -am66g.com -am66h.com -am66k.com -am66o.com -am66p.com -am66r.com -am66w.com -am66z.com -am990-theanswer.com -am99k.com -am99n.com -am99o.com -am99r.com -am99t.com -am99u.com -am99w.com -ama-trade.de -ama-trans.de -amadaferig.org -amadamus.com -amadeuswe.us -amail.club -amail.com -amail.gq -amail.men -amail1.com -amail3.com -amail4.me -amaill.ml -amailr.net -amajority.icu -amal55.link -amalur.icu -amandhibuclivid.com -amanj.krd -amantapkun.com -amanual.site -amapp01.com -amaracruises.com -amarandnikita.com -amarilloquote.com -amark-carpet-cleaning.com -amarkbo.com -amasyaeotegitimi.xyz -amasyamucerentacar.xyz -amatblog.eu -amateur.monster -amateur69.info -amateurbondagesex.com -amateurflixx.com -amateurolympia.ru -amateursonly.net -amateurspot.net -amatriceporno.eu -amav.ro -amayil.com -amazing-games-fire.com -amazingapplicationsshow.com -amazingbagsuk.info -amazingbenefitsofapplecidervinegar.com -amazingchristmasgiftideas.com -amazingclothingandgifts.com -amazingdomain.name -amazingdomaindeals.com -amazingemailsforyou.tk -amazinghandbagsoutlet.info -amazinghotelratescalifornia.com -amazinghotelratesmexico.com -amazinglifequotes.com -amazinglowprices.com -amazingpractice.net -amazingrem.uni.me -amazingself.net -amazon-aws.org -amazon-black-friday99.ru -amazon-blackfriday.host -amazon-travel.info -amazon.coms.hk -amazonbitcoin.net -amazonianseller.com -amazonomat.com -amazonsellers.legal -amazonshopbuy.com -amazonshopcash.com -amazonshopsite.com -amazonshopsource.com -amazonshopzen.com -amazonwilderness.com -ambalajciambalaj.com -ambalajciambalaj.xyz -ambaritaputra.info -ambassadedenhaag.com -ambassadorwe.us -ambaththoor.com -amberlogy.com -amberofoka.org -amberpetsupplies.com -amberwe.us -ambiancewe.us -ambilqq.com -ambimbo.xyz -ambitiouswe.us -ambwd.com -amconcept.xyz -amdxgybwyy.pl -ameba.us -amecve.cf -amecve.ga -amecve.gq -amecve.tk -amedia.life -amelabs.com -ameli-fr.club -ameliachoi.com -ameliariver.club -amelimoncompte.info -amellux.com -amentionq.com -ameraldmail.com -america-sp.com.br -americaaa316.xyz -americaatthemoviesafi.com -americacoverage.fun -americacoverage.live -americacoverage.site -americacoverage.world -americacoverage.xyz -americahomecare.net -americajin.com -americamoviesafi.com -american-closeouts.com -american-image.com -americanadvertisingawards.org -americanassociationofnaturalremedies.com -americanawe.us -americanbags.us -americancryptonetwork.com -americandistributionco.net -americanelectricsolutionsaz.com -americanevolution.online -americanheroescarlisle.com -americanhm.com -americanimportstore.com -americanlibrarieslive.com -americanlibrarieslive.net -americanroofer.xyz -americansolarquotes.com -americansummerluxuries.com -americansystemnetwork.com -americanwealthgap2019.com -americanwindowsglassrepair.com -americasbestwe.us -americasmorningnews.mobi -americaswe.us -amerikanbuyutucu.online -amerikanbuyutucu.xyz -amesamed.shop -amesbulletinboard.com -amex-online.ga -amex-online.gq -amex-online.ml -amex-online.tk -amexjewel.fun -amexyedekparca.com -ameyatravel.info -ameyprice.com -amfm.de -amfmachine.com -amg-private-lounge.org -amg-recycle.com -amgprivatelounge.org -amgprivateloungeromania.org -amguki.cf -amguki.ga -amguki.gq -amguki.tk -amhar.asia -amharem.katowice.pl -amharow.cieszyn.pl -amicuswe.us -amid.co.pl -amidevous.tk -amiga-life.ru -amigosdofuturo.website -amigoshosts.com -amigowe.us -amigurumilove.website -amigurumipatterns.website -amiksingh.com -amilegit.com -amililb.net -amimail.com -amimu.com -amin.co.pl -amin.consulting -amineoffice.com -aminois.ga -aminoprimereview.info -aminudin.me -amiramov.ru -amiri.net -amirig.info -amirig.net -amirig.tech -amiriindustries.com -amitraj.net -amitywe.us -amkursk.ru -aml5egjiu8af.xyz -amlodipin.website -amlopedia.com -amman.site -ammazzatempo.com -ammnbabdbeguw.online -ammolite.biz -ammosummit.com -amnicdvuu.space -amnioclepsis.best -amogan.ga -amogan.ml -amokqidwvb630.ga -amoksystems.com -amongusshirt.site -amor-clab.icu -amoran.icu -amornino.com -amourafrique-mali.org -amourafrique.org -amovies.in -amoxilonlineatonce.com -ampasinc.com -amphynode.com -ampicillin.website -ampicillinpills.net -ampivory.com -ample.run -ampleglov.xyz -ampleid.fun -amplewallet.com -amplewe.us -amplifiedwe.us -amplifywe.us -ampoules-economie-energie.fr -amprb.com -amproced.cf -amproced.gq -amproced.ml -amproced.tk -ampsylike.com -ampuleqbxr.space -amrous.ga -ams-australia.com -amsalebridesmaid.com -amsellemgourmet.com -amseller.ru -amsengineering.app -amsgkmzvhc6.cf -amsgkmzvhc6.ga -amsgkmzvhc6.gq -amsgkmzvhc6.tk -amsignsonline.com -amsoilblog.com -amsspecialist.com -amsterdamblog.com -amsterdamhotelsmotels.info -amsterdamsmut.com -amstratdata.com -amt3security.com -amteyss1.club -amthuc24.net -amthucvietnam.info -amthucvn.net -amtibiff.cf -amtibiff.gq -amtibiff.ml -amtibiff.tk -amtmsg.site -amttesting.com -amule.cf -amule.ga -amule.gq -amule.ml -amulet149.ru -amuletee.website -amuletph.icu -amunglas.ml -amunra4.com -amunra5.com -amunra6.com -amusedr.icu -amuseid.icu -amusestal.icu -amusewre.xyz -amwaybitva.ru -amxj1122.com -amxj5588.com -amyalysonfans.com -amyhref.com -amyhzr1314520.com -amyl112.app -amymary.us -amyotonic.info -amysdirect.com -amysink.com -amytcon.cf -amytcon.ga -amytcon.gq -amytcon.ml -amytcon.tk -amyxrolest.com -amz-aws.host -amz-psd2.info -amz30.ru -amz5913.com -amzclub.club -an-it-oxygenconcentrators-ok.live -an-it-tu-new-car-ok.live -an-it-tu-new-car-ok.livecvdsale.top -an-uong.net -an.id.au -an0n.host -an78xx.us -ana555.com -anabethonline.xyz -anabolicscreworiginal.com -anabordas.info -anacliri.tk -anacoms.com -anacronym.info -anaddo.ga -anaddo.ml -anaddo.tk -anadoluhirdavat.xyz -anadyr-airport.ru -anaelisacaetano.com -anafentos.com -anaglyph.xyz -anahad.ong -anahaton.icu -anaheimcocainerehab.com -anaheimhillsoptometrist.com -anaheimnursejobs.com -anaheimopiaterehab.com -anaheimquote.com -anakavi.net -anakayam99.live -anakharam.online -anakjalanan.ga -anakjembutad.cf -anakjembutad.ga -anakjembutad.gq -anakjembutad.ml -anakjembutad.tk -anal.accesscam.org -anal.com -analabeevers.site -analenfo111.eu -analitics2020.best -analogekameras.com -analogsky.com -analogwe.us -analteredreality.com -analysan.ru -analysisaot.email -analysiswe.us -analyst-omega.info -analyticahq.com -analyticalwe.us -analyticauto.com -analyticsemails.com -analyticsgurus.net -analyticsmasters.org -analyticsmonster.com -analyticsmonster.net -analyticswe.us -analyticswebcontacts.com -analyticwe.us -analyza.org -analyzable857ax.online -anamuremlakofisi.xyz -anamz-oubby-con.monster -ananam2.com -anandimshad.ga -ananno.cf -ananno.ga -ananno.ml -ananno.tk -anansou.com -anapim.cf -anapim.ga -anapim.gq -anapim.ml -anapim.tk -anaploxo.cf -anaploxo.ga -anaploxo.gq -anaploxo.ml -anaploxo.tk -anapoker.website -anappfor.com -anappthat.com -anaptanium.com -anarice.info -anasdet.site -anatjosephtherapy.com -anatolygroup.com -anayelizavalacitycouncil.com -anayikt.cf -anayikt.ga -anayikt.gq -anayikt.ml -anbe.ru -anbinhnet.com -ancesan.shop -ancestralfields.com -ancestryacademy.cloud -anchorageheroinrehab.com -anchoragequote.com -anchorhardik.com -anchorprice.com -anchorteamrealty.com -anchorvalelane.com -anchrisbaton.acmetoy.com -ancientalchemy.org -ancientart.co -ancientcivil.com -ancientwords.mobi -anconadue.it -and-dentalimplants-rad.live -and.celebrities-duels.com -andaluxia.monster -andbest.site -andbitcoins.com -andbwas.icu -ander.us -andersenconsultations.com -andersonfamilysteaks.com -andersonvalley4h.com -andetne.win -andfreekt.ga -andhani.ml -andia.services -andinamotors.co -andirinotel.xyz -andlume.com -andmeatballs.com -andorra-nedv.ru -andreaauerbach.com -andreagilardi.me -andreamatt.biz -andreams.ru -andreasparadise.com -andreatorreano.com -andreay.codes -andreihusanu.ro -andremanzoni.com -andresandina.com -andreshampel.com -andrew-cook.org -andrewbuelow.net -andrewhopkins.buzz -andrewjanus.com -andrewm.art -andrewmurphy.org -andrewongphotography.com -andrewsbridals.info -andrewschess.com -andrewssportconditioning.com -andrewssportsacademy.com -andrewwisor.com -andrey-simki.ru -andreych1.host -andreych2.host -andreych4.host -andreych5.host -andreych7.host -andreymaltsev.info -android-quartet.com -androidcredit.com -androidevolutions.com -androidex.ru -androidfun.website -androidinstagram.org -androidmobile.mobi -androidnulled.club -androidsapps.co -androidsloty.com -androidworld.tw -andromedacrush.com -andromedae.xyz -androotosy.icu -andros-greece.com -andruchef.ru -andry.de -andsee.org -andstoneall.website -andthen.us -andthentheresmaude.com -andwalkintubsok.live -andwandt.shop -andwe.site -andweightlosshelpsok.live -andwl.us -andy1mail.host -andyes.net -andynugraha.net -andysairsoft.com -andywestphotography.com -andyx.com -andyyxc45.biz -aneaproducciones.com -anearbooks.info -anekad42.asia -anekapoker.site -anekaqq.best -aneklok.com -anellomom.ru -anemiom.kobierzyce.pl -anemoku.net -anepear.cf -anepear.gq -anepear.ml -anepear.tk -anesmattress.site -anesthetic12bd.online -anetsai.ru -anette.website -aneuch.info -aneup.site -aneus.club -anew-news.ru -anewangleonlife.com -anewpath.us -anewstabilbettingsnapp.xyz -anfk35df.xyz -anforpost.ru -angeangh.shop -angee.icu -angel-bank.com -angel-cube.icu -angel4djp.com -angel4djp.net -angelabacks.com -angelacorrias.com -angelads.trade -angelamission.com -angelandcurve.com -angelaslatercomposer.com -angelasupport.com -angelawhite.site -angelbees.com -angeldollcompany.com -angeles.live -angeles.team -angeles.tours -angelescity.download -angeli-di-pietra.com -angelicablog.com -angelinthemist.com -angelinway.icu -angeliquecail.com -angelovgabriel.ru -angelpoker.bet -angelpoker.click -angelpoker.ltd -angelpoker88.best -angelpoker88.com -angelpoker99.com -angelsoflahore.com -angerha.xyz -angerhab.icu -angerstall.site -angesti.tech -anggraas.club -anggrasaza.xyz -angi.com -angiad.xyz -angiehomeservices.com -angielski.edu -angielskie.synonimy.com -angioblast.info -angkabursa.org -angkahoki.club -angkajitu.site -angkoair.com -angksoeas.club -angkueastras.club -angleda.icu -angleflin.icu -anglepoise-inc.com -angleprin.recipes -anglesblowers.top -angleseiz.com -angletea.xyz -anglican.xyz -angola-nedv.ru -angoplengop.cf -angriasan.club -angriasfa.xyz -angrityas.club -angry-online.icu -angryalena.com -angrybirdsbabyj.icu -angrybirdsforpc.info -angrypicnic.com -angularcheilitisguide.info -angushof.de -angyonline.online -anhala.com -anhkhung.tk -anhthu.org -anhuiczm.com -anhxyz.ml -ani24.de -anibym.gniezno.pl -anidub.site -anidub.xyz -anikamenon.com -anikasharpe.com -anilbhat.info -anilozturk.tech -animacuratio.ru -animadancegroup.com -animagefromsomewhere.com -animalads.co.uk -animalalliesnj.org -animalbuildingblocks.com -animalextract.com -animalize631xu.online -animalrescueprofessional.com -animalright21.com -animalsneakers.com -animalwallpaper.site -animata.info -animatecss.com -animation-studios.com -animatorzywarszawa.pl -anime365.com -animeappeal.com -animebt.com -animecn.com -animefreakz.xyz -animehasu.net -animeindo.website -animekiksazz.com -animepoc.site -animeru.tv -animes-streaming.xyz -animesos.com -animevector.org -aninameu2endijks.xyz -anindaskor.mobi -anindaskor.website -aningres.ru -aningrop.xyz -aningto.xyz -aniplay.xyz -anisimovcapital.ru -anit.ro -anitadarkvideos.net -anitdatingnew.live -anitoveractivebladderok.live -anitspanishautoinsurancebay.live -anitspanishautoinsurancebig.live -anitspanishautoinsurancebuy.live -anitspanishautoinsurancefed.live -anitspanishautoinsuranceget.live -anitspanishautoinsurancekey.live -anitspanishautoinsurancemax.live -anitspanishautoinsurancenew.live -anitspanishautoinsurancenow.live -anitspanishautoinsuranceone.live -anitspanishautoinsurancerad.live -anitspanishautoinsuranceray.live -anitspanishautoinsurancetab.live -anitspanishautoinsurancetop.live -aniub.com -aniy.site -anjaybgo.com -anjeysatori.com -anjing.cool -anjingkokditolak.cf -anjingkokditolak.ga -anjingkokditolak.gq -anjingkokditolak.ml -anjingkokditolak.tk -ankaclan.com -ankankan.com -ankaotel.info -ankarahaliyikamaciniz.xyz -ankarajen.com -ankarakaraagac.com -ankarakuzey.com -ankarapansiyonlari.com -ankarapazari.xyz -ankarasacsimilasyonu.com -anketka.de -anklefo.email -anklereb.xyz -ankoninc.pw -ankorbeton.icu -ankplacing.com -ankt.de -anliabc.com -anmail.com -anmaya110.com -anmiecon.ga -anmiecon.gq -anmiecon.ml -anmiecon.tk -anmlvapors.com -ann-estetyka.biz -ann-tiessweetthings.com -anna-tut.ru -annabless.co.cc -annaclingan.com -annafathir.cf -annalusi.cf -annamike.org -annanakal.ga -annanasliarmut.cf -annanasliarmut.ga -annanasliarmut.tk -annaninorekesi.ml -annapayday.net -annarahimah.ml -annasblog.info -annatravels.ru -annavarikova.ru -annavasina-teacher.ru -annawaschke.com -annazahra.cf -anneholdenlcsw.com -anneomeara.com -annesdiary.com -annetteturow.com -annhandelman.com -annidh.site -annie-apps.com -anniesdorsetkitchencomv.com -anniversaryblog.com -anniversarygiftideasnow.com -annmariewilke.com -anno90.nl -annoallestero.info -annoncegratuiteenligne.com -annoncegratuiteliens.com -annonspriser.se -annoor.us -annother-snowstorm.info -annraya.org -annuaire-ebook.xyz -annuaire-referencement.info -annuaire-seotons.com -annuaire.casa -annualcred8treport.com -annuale.best -annualgatheringint.org -annuityassistance.com -annwilde.com -ano-mail.net -anocinpackpainv1.site -anocinpackpainv2.site -anocor.ga -anocor.gq -anocor.ml -anocor.tk -anodizing781jd.xyz -anogarmoniya.ru -anogenics.info -anom.xyz -anomail.club -anomail.com -anomail.us -anon-mail.de -anon.leemail.me -anon.subdavis.com -anonbox.net -anonemailbox.com -anonib.su -anoniemgesprek.online -anonimous-email.bid -anonimousemail.bid -anonimousemail.trade -anonimousemail.win -anonmail.top -anonmail.xyz -anonmails.de -anonpop.com -anonsocks.xyz -anontee.com -anonymagic.icu -anonymail.dk -anonymbox.com -anonymize.com -anonymized.org -anonymous-email.net -anonymous-vfx.com -anonymousfeedback.net -anonymoushosting.org -anonymousmail.org -anonymousness.com -anonymousspeech.com -anonymstermail.com -anorexiasupport.net -anorling.com -another-1drivvers.ru -anotherblast2013.com -anotherdomaincyka.tk -anoukmatton.com -anpatoptan.xyz -anperbue.cf -anperbue.ga -anperbue.gq -anperbue.ml -anpolitics.ru -anpost.website -anpravoslavnoe.ru -anprostore.com -anquanyoujian.com -anquestory.com -anrdiasyuas.club -anrofas.cf -anrofas.ga -anrofas.gq -anrofas.ml -ansaldo.cf -ansaldo.ga -ansaldo.gq -ansaldo.ml -ansaldobreda.cf -ansaldobreda.ga -ansaldobreda.gq -ansaldobreda.ml -ansaldobreda.tk -ansatko.cf -ansatko.ga -ansatko.ml -ansatko.tk -ansbanks.ru -anschool.ru -anselme.edu -ansenlg.com -anseolio.cf -anseolio.ga -anseolio.ml -anseolio.tk -anserva.cf -anserva.ga -anserva.gq -anserva.ml -anserva.tk -ansforr.shop -ansgjypcd.pl -ansibleemail.com -ansmh.us -ansoaco.ml -ansoluc.com -anstravel.ru -answer-me.info -answer-question.info -answer-questions.info -answerauto.ru -answers.xyz -answersfortrivia.ml -answersworld.ru -ant-q.net -antabuse.website -antabuse247.video -antakyamadoevi.xyz -antalex7.ru -antalyaescortkizlar.com -antalyaescortlar.site -antalyamasajsalonutr.xyz -antalyamatbaacilari.xyz -antamo.com -antandiante.design -antares-logistic.ru -antarvasna.mobi -antebahis23.com -antegame.com -anteprimaisotta.xyz -anterin.online -antetude.xyz -anteyltd.icu -anthagine.cf -anthagine.ga -anthagine.gq -anthagine.ml -antherdihen.eu -anthologized430ut.online -anthony-junkmail.com -anthonyfrederick.com -anthonyhartley.buzz -anthonyrhodes.buzz -anthroarts.com -anthroarts.net -anthropologycommunity.com -anti-aav.com -anti-p62.com -anti-ronflement.info -anti-staticbrush.net -anti-staticbrush.us -anti-staticbrushes.biz -anti-staticbrushes.net -anti-staticbrushes.org -anti-staticbrushes.us -antiageingsecrets.net -antiaginggames.com -antiagingserumreview.net -antiangular.best -antibioticgeneric.com -anticavetreria.vacations -anticheat.network -antichef.com -antichef.net -antichef.org -antico19.online -antico19.ru -anticonsumer.org -anticrisis78.ru -antidrinker.com -antigua-nedv.ru -antiguabars.com -antiguaguatemala.org -antika-vintage-smycken.se -antikored.xyz -antilles.xyz -antilopa.pro -antimalware360.co.uk -antimbee.xyz -antiminer.website -antipolomka.site -antipremia-js.org -antiquebarberchairs.org -antiquerestorationwork.com -antiquestores.us -antiradar360.ru -antireg.com -antireg.ru -antisemitewatch.org -antisnoringdevicesupdate.com -antispam.de -antispam24.de -antispammail.de -antistaticbrush.biz -antistaticbrush.net -antistaticbrush.us -antistaticbrushes.biz -antistream.cf -antistream.ga -antistream.gq -antistream.ml -antistream.tk -antistress-raskraski.ru -antiterror-orel.ru -antivirus.casa -antiviruswiz.com -antiwrinklehandbook.com -antlerwild.com -antlogic.org -antmine.com -antocha.ru -anton.zone -antoniamail.club -antonietta1818.site -antonija.com -antoniojaydonmercado.com -antoniou-consulting.com -antonlinemarketing.com -antonme.dev -antonveneta.cf -antonveneta.ga -antonveneta.gq -antonveneta.ml -antonveneta.tk -antrustions.site -antsdo.com -antspick.site -anttohelp.pet -anttrafik.com -antuong.asia -antvids.com -antwerp.shopping -antykoncepcjabytom.pl -antylichwa.pl -antywirusyonline.pl -anuan.tk -anuicvqxbvnbuo-ghjj13fggf.buzz -anultrasoundtechnician.com -anunciacos.net -anunturigratis.info -anuong24h.info -anuong360.com -anuonghanoi.net -anurbir.cf -anurbir.ga -anurbir.gq -anurbir.tk -anut7gcs.atm.pl -anversahome.se -anvillondon.net -anvizbiometric.ru -anwintersport.ru -anxietydisorders.biz -anxietyeliminators.com -anxietymeter.com -anxincaifu.xyz -anxiousmonk.com -anxjpv.site -anxmalls.com -any-gsm-network.top -anyagrey.com -anyalias.com -anydata.best -anydtf.site -anyett.com -anyinstalldealtheclicks.icu -anymate.site -anyopoly.com -anyoptionerfahrungen.net -anypen.accountant -anyqx.com -anytimejob.ru -anytube.site -anyunda.us -anyvitaminant.website -anyweightlosshelpok.live -anywhere.pw -anywherebookmarks.com -anywherebusinessbook.com -anyxnxx.fun -anyxxx.fun -anzy.xyz -ao-quadradogaleria.com -ao3wuu.us -ao4ffqty.com -ao5.gallery -aoa852.com -aoahomes.com -aoalelgl64shf.ga -aocdoha.com -aodlewxww.ml -aoeiualk36g.ml -aoeuhtns.com -aogmoney.xyz -aojd-online.com -aokfeo.online -aol.edu -aolimail.com -aolinemail.cf -aolinemail.ga -aoll.com -aolmail.pw -aolo.com -aolopdep.org -aoltimewarner.cf -aoltimewarner.ga -aoltimewarner.gq -aoltimewarner.ml -aoltimewarner.tk -aomejl.pl -aomrock.com -aomvnab.pl -aonbola.biz -aonbola.club -aonbola.org -aonbola.store -aoneie.site -aonezippers.com -aonhom.org -aopconsultants.com -aophong.org -aorecd.online -aorl.com -aorry.live -aoshihczc.com -aosomi.org -aostats.com -aothun.site -aothunnhom.com -aotuchem.com -aotujx.xyz -aotusp.xyz -aouhxtdiq.shop -aow88.com -aowvihrm.shop -aoxlso.site -aoyou1588.com -aoyou1688.com -aoyou8899.com -ap0w.us -ap4ro8.info -ap7wio.us -apachejunctionapartments.com -apadrinalo.com -apagitu.biz.tm -apagitu.chickenkiller.com -apahalal.com -apakahandasiap.com -apalo.tk -apanrai.cf -apanrai.ml -apanrai.tk -aparades.com -aparelhosmedicos.net -apartcombo.ru -apartiko.ru -apartment.supplies -apartmentpropertyinvesting.com -apartments-lela.com -apartmentsdubai.biz -apartmentsforrentlittlerockarkansas.com -apartmentsseattlewashington.com -apartnessljh.site -apartotels.com -apasier.com -apaymail.com -apcd.online -apcleaningjservice.org -apcm29te8vgxwrcqq.cf -apcm29te8vgxwrcqq.ga -apcm29te8vgxwrcqq.gq -apcm29te8vgxwrcqq.ml -apcm29te8vgxwrcqq.tk -apebkxcqxbtk.cf -apebkxcqxbtk.ga -apebkxcqxbtk.gq -apebkxcqxbtk.ml -apel88.com -apelsin-shop.ru -apelsin64.icu -apemail.com -apenpet.ga -apenpet.gq -apenpet.ml -apepic.com -aperal.cf -aperal.ga -aperal.tk -apexhealthandwellness.com -apexize.app -apexwheelrepair.com -apfelkorps.de -apfzdogpi.shop -aphgcocc.shop -aphimonline.com -aphlog.com -aphpresyb.cf -aphpresyb.gq -aphpresyb.ml -aphpresyb.tk -aphroditehalfmarathon.com -aphthic.best -aphydroming.xyz -api-apps.icu -api32.com -apicker.online -apidewa.info -apidiligence.net -apidiligence.org -apidle.cf -apidle.ga -apidle.gq -apidle.tk -apiempat.xyz -apih2h.com -apiland.pl -apilasansor.com -apimail.com -apipulsa.com -apirealty.icu -apis101.us -apivcolon.com -apivin.ru -apk-download.site -apk-download.website -apk-download.xyz -apk1000.com -apk2download.net -apkfun.club -apklitestore.com -apkload.com -apkmd.com -apkmoe.com -apknew.ru -apkshake.com -apksilo.com -apktoel.website -apkujong.tk -aplando.com -aplay-official.website -apleo.com -aplikacje.com -apliquedecabelo.net -aplo.me -aplpy.com -apluskid.org -aplyurl.com -apmp.info -apnalan.site -apnastreet.com -apocztaz.com.pl -apoimail.com -apoimail.net -apokloj.site -apollo-led.ru -apollogpxrk.email -apollon-market.store -apollope.tk -apollosclouds.com -apollossuperstore.com -apophalypse.com -apophoret.xyz -apophtio.cf -apophtio.ga -apophtio.gq -apophtio.tk -apoplectically.best -apoplenyvb.space -apor.site -apostlelife.com -apotekerid.com -apotheke-ed.org -apown.com -apoyrwyr.gq -apozemail.com -app-b-br.online -app-expert.com -app-inc-vol.ml -app-lex-acc.com -app-mailer.com -app0vedi.club -app1e.xyz -app2020feb.site -app826.mobi -appaji.net -appalachianproject.org -appalachiantrailconservancy.org -appboolean.com -appbotbsxddf.com -appc.se -appcrossings.org -appdeliverynetworks.com -appdev.science -appdev47.best -appdollars.com -appealsassasins.com -appeartiu.tk -appendonly.network -appfellas.com -appflow.design -appfund.biz -appgallery.club -appinventor.nl -appitide.com -appixie.com -appjot.com -appl-syn.ru -appl3.cf -appl3.ga -appl3.gq -appl3.ml -appl3.tk -applaudthecause.com -applaudthecause.org -apple-account.app -apple.dnsabr.com -appleaccount.app -appleblog.com -applecraft.online -appledev.online -appledocks.com -appledress.net -applefaerie.com -applefordparts.com -applegift.xyz -applehotelalor.com -applehotelkl.com -applejftwn.club -applejftwn.host -applejftwn.site -applejftwn.website -applerewards.live -applerobot.info -apples4sale.com -appleservices.online -appleshps.website -applesmokedmeats.com -applet.live -appleton-lettings.com -appletreecabin.com -applewatchoutlet.com -applg.online -appliance-resource.info -applianceremoval.ca -appliancerepairburbank.com -appliancerepairdenver.biz -appliancerepairlancaster.com -appliancesdelivered.com -appliancesshop.futbol -applied-cax.com -appliedinclusion.com -applphone.ru -apply.health -apply4more.com -applyguy.com -applynow0.com -applyremote.online -applyremote.xyz -applyto.study -applytome.com -appmail.top -appmail24.com -appmaillist.com -appmanx1.com -appmarketspy.com -appmingle.com -appmobile-documentneedtoupload.com -appmonitors.com -appmovel.online -appmyboat.online -appnativeco.com -appnfo.com -appnode.xyz -appnowl.ml -appnox.com -appointmentfunnel.com -appointmentone.com -appolicestate.org -apppassionate.com -appreeciate.com -apprendrelepiano.com -apprisens.monster -apprit.live -approvaljmz.email -approve-thankgenerous.com -approvedbydrew-marketing.com -approvedfireextinguishers.com -apprubix.net -apps.dj -apps.eus -appsec.link -appseer.com -apptalker.com -apptelstabl.monster -apptied.com -apptip.net -apptova.com -apptraker.cd -appvention.com -appwatch.icu -apqueasmog.cf -apqueasmog.ga -apqueasmog.ml -apqueasmog.tk -apqw.info -apra.info -apranakikitoto.pw -aprazatos.club -aprender-ingles.app -apreprid.com -aprice.co -apriles.ru -aprilfoolspranks2014.com -aprilmovo.com -aprilyvette.biz -aprimail.com -aprinta.com -aprioridemo.com -aprm-africanunion.org -apro-don.biz -aproangler.com -aprosti.ru -aprutana.ru -apssdc.ml -apster.com -aptaseniorlivingrad.live -aptaseniorlivingray.live -aptaseniorlivingrun.live -aptaweightlosshelpok.live -aptcha.com -aptee.me -apteka-medyczna.waw.pl -aptel.org -aptnumber.com -aptoideforios.website -aptseniorlivingtab.live -aptweightlosshelpok.live -apuns.live -aputmail.com -apuymail.com -apzipo.cf -aq8kvw.us -aqatdl.com -aqazstnvw1v.cf -aqazstnvw1v.ga -aqazstnvw1v.gq -aqazstnvw1v.ml -aqazstnvw1v.tk -aqdmg1.us -aqdyed.com -aqdyei.com -aqdyet.com -aqdyez.com -aqgi0vyb98izymp.cf -aqgi0vyb98izymp.ga -aqgi0vyb98izymp.gq -aqgi0vyb98izymp.ml -aqgi0vyb98izymp.tk -aqjy.site -aqomail.com -aqqit.com -aqqq.icu -aqqty.live -aqrbdc.us -aqrium.ru -aqsiq.biz -aqst.ru -aqua-gold.shop -aqua-therm-stv.ru -aquabliss.info -aquacreek.ru -aquagrazz-ru.online -aquagrazz-ru.ru -aquaguide.ru -aquamarina.app -aquamarina.online -aquanautsdive.com -aquapro.biz -aquapult.ru -aquarians.co.uk -aquashieldroofingcorporate.com -aquastonecoasters.com -aquatherm-koenigsberg.ru -aquavante.com -aquazilla.ca -aquiesqueretaro.com -aquifoliaceae.best -aquilesfaillace.com -aqumail.com -aquog.space -aquoralspray.net -aquyo.xyz -aqw88.com -aqwuvy.site -aqxfzrdv.shop -aqyv0c.us -aqz.us -aqzbodr.com -ar-records.ru -ar.szcdn.pl -ar0dc0qrkla.cf -ar0dc0qrkla.ga -ar0dc0qrkla.gq -ar0dc0qrkla.ml -ar0dc0qrkla.tk -ar2tingyan.com -ar6j5llqj.pl -arab-internet.com -arab-torrents.org -arabdemocracy.info -arabgottalent.net -arabia.net -arabianranchesrent.com -arabiasecret.xyz -arabic-post.net -arabicliquidman.site -arabicpost.org -arabnannies.com -arabshop.biz -arabtabs.com -arabtorrent.org -aracteria.space -arael.tech -araelectrics.com -aragonbet3.com -aragonbet5.com -arahal.online -arahal.ru -arak.ml -arakcarpet.ir -aralor.cf -aralor.gq -aralor.ml -aralor.tk -aramamotor.net -aranelab.com -araniera.net -aranjis.com -arankavto.icu -arantxaalcubierre.com -arapski.website -ararten.ga -ararten.gq -ararten.ml -ararten.tk -arasempire.com -arashkarimzadeh.com -arasj.net -arazpardaz.site -arb4-company.site -arbat5.icu -arbitrajyurist.xyz -arbitrating.best -arblogal.cf -arblogal.ga -arblogal.gq -arblogal.ml -arblogal.tk -arbor-masters.com -arbordigital.com -arburyfoundation.com -arbvc.com -arc-mebel.ru -arcadesatx.com -arcadespecialist.com -arcadiadesigns.site -arcadiafairytales.com -arcanemachine.com -arcanite.com -arcarwea.cf -arcarwea.ga -arcarwea.gq -arcarwea.ml -arcarwea.tk -arcb.site -arcelikservisleri.org -arcelormittal-construction.pl -arch.cd -archaicindustries.buzz -archbotcher.best -archeage-gold.co.uk -archeage-gold.de -archeage-gold.us -archeagegoldshop.com -archerrygames.com -archetypes.cd -archevron.com -archex.pl -architectblog.com -architektwarszawaa.pl -archiveus.best -archivewest.com -arclinea-roma.com -arcmarts.com -arcompus.net -arconatech.com -arconplast.com -arcsig.com -arcticleaf.app -arcticside.com -arctocbhuh.info -arcu.site -ardagokalp.ga -ardagokalp.ml -ardahananadolulisesi.xyz -ardahanvitrin.xyz -ardakaan.tk -ardaninabbasiyim.tk -ardaq.ga -ardaq.ml -ardaq.tk -ardavin.ir -ardengiyim.xyz -ardentyoga.com -ardetoxcenter.com -ardianto.net -ardindental.com -ardona.co -ardor-delight.online -ardudi.cf -ardudi.ga -ardudi.gq -ardudi.ml -ardudi.tk -arduino.hk -are-we-nearly-there.com -area-thinking.de -area327.xyz -areacomms.com -aread.shop -arealzestforlife.com -areannuitiesforme.com -areasevenvision.com -areatoto.us -areatrend.hk -arecaref.shop -arefiev.photo -areltiyan.com -aremania.cf -aremanita.cf -aremop.cf -aremop.ga -aremop.gq -aremop.ml -aremyannuityadvisors.com -arena-sever.ru -arena212.org -arena2betting.org -arenahardware.xyz -arenanike.sk -arenapkr.com -arenda-avtobetononasosa.ru -arenda-s-vykupom.info -arenda-yamoburakrana.ru -arendabatumi24.ru -arendaspec24.ru -arengvillage.com -areole.ru -aresanob.cf -aresanob.ga -aresanob.gq -aresanob.ml -aresanob.tk -aresting.com -areswebstudio.com -areto.ml -arewealone.space -areweightlosshelpok.live -arewethere.fun -arewethere.host -areweupordown.com -arewhich.com -areyouavid.net -areyouhealthy.com -areyouthere.org -arfamed.com -argame.name -argand.nl -argentin-nedv.ru -argentina-foro.com -argentumcore.site -argilette.us -argnt.world -argo-pro.site -argocasino-official.online -argomax.site -argons098.me -argorouting4.com -argot.io -arhalfpricedlistings.com -arhalfpricelistings.com -arhidom39.ru -arhizine.ru -arhshtab.ru -arhx1qkhnsirq.cf -arhx1qkhnsirq.ga -arhx1qkhnsirq.gq -arhx1qkhnsirq.ml -arhx1qkhnsirq.tk -ari5p7.site -aria.engineer -aria7bet.org -ariaa8.live -ariacharge.xyz -ariametin2.site -ariana.keeley.wollomail.top -arianahouse.co -arianbet.info -arianbet.net -arianbet.org -arianbetcas.com -ariasexy.tk -ariaz.jetzt -aribeth.ru -aricen.cf -aricen.ga -aricen.ml -aricen.tk -aricompton.com -aridasarip.ru -ariderclothing.com -arielvalls.com -ariesqq.com -arietesale.site -arifcanv2.ga -arifcanv2.ml -arifcanv2.tk -arifvedassagi.ga -arifvedassagi.ml -arigpol.cf -arigpol.gq -arigpol.ml -arigpol.tk -arimidex.website -arimlog.co.uk -arina.app -arinakliye.xyz -ariproch.ga -ariproch.gq -ariproch.ml -ariproch.tk -arisecreation.com -arisgans.xyz -aristino.co.uk -aristockphoto.com -ariston.ml -aristovamuz.ru -arizona-golf-vacations.com -arizona-nedv.ru -arizona-rp.space -arizonaaddictiontreatment.center -arizonaalcoholdetox.center -arizonaapr.com -arizonabirthinjuryattorneys.com -arizonabirthinjurylawyer.com -arizonablogging.com -arizonadrivingschools.net -arizonamovo.com -arizonaquote.com -arizonaseniorcommunity.com -arizonaspots.com -arizonavalentine.com -arizonavip.com -arjuna-web.ru -ark-hunter.com -arkada-audit.ru -arkafort.app -arkafort.org -arkafortdatacentre.com -arkafortvc.com -arkafortvoiceconsole.com -arkansasbiomechanics.com -arkansasdetox.center -arkansasheroinrehab.com -arkansasloves.com -arkansasopiaterehab.com -arkansasquote.com -arkansasschw.com -arkansasvalentine.com -arkanzas-nedv.ru -arkas.site -arkehr.info -arkhamgame.com -arklfchxs.shop -arknet.tech -arkonnide.cf -arkotronic.pl -arkresponse.email -arkresponse.net -arkresponse.news -arkritepress.com -arktive.com -arlenstepanov35.online -arlinc.org -arlingtoncaraccidentlawyers.com -arlingtonelectricalcontractor.net -arlingtonnursejobs.com -arlingtonopiaterehab.com -arlingtonquote.com -arlingtonrescue.org -arlingtonvillagecourtyard.com -arlowest.net -armabet21.com -armabet22.com -armabet23.com -armabet25.com -armabet29.com -armabet30.com -armada-ekb.ru -armada4d.com -armada4d.net -armadatogel.com -armail.com -armail.in -armandwii.me -armanichasi.ru -armanik.ru -armanstrong.com -armatny.augustow.pl -armbarapparel.com -armcams.com -armedlong4.site -armenik.ru -armiasrodek.pl -armind.com -armirotto.com -armocompany.ru -armonitimes.com -armorbag.com -armorguatemala.com -armormail.net -armormodules.com -armsrueito.website -armss.site -armstrongbuildings.com -armstronglove.net -army-news.online -army.gov -armyan-nedv.ru -armyglossary.com -armylaw.ru -armyofthought.com -armyourself.online -armyspy.com -armystart.ru -arnalan.site -arndzg.site -arno.fi -arnode.com -arnoldohollingermail.org -arnoldwegman.com -arnonidev.com -arnottcapitalbank.com -arnoyengros.se -aro.stargard.pl -arockee.com -aromalovers.shop -aromalovers.store -aromaroomonion.xyz -aromat-best.ru -aromaterapi.club -aromatic31ru.ru -aromatics.store -aron.us -aronbet19.com -aronbet20.com -aronek.cf -aronek.ga -aronek.gq -aronek.ml -aronek.tk -arorle.cf -arorle.ga -arorle.gq -arorle.ml -arormail.com -arowmail.com -arpahosting.com -arpcog.info -arpqgg.us -arqos-co-uk.monster -arquisul.com -arrai.org -arrangeditems.website -arrayofbytes.net -arrels.info -arrendadorazoe.com -arrgenta.icu -arriage.best -arriankorko.com -arristm502g.com -arrivedercisigaretta.com -arriviture.net -arrogcargo.xyz -arroisijewellery.com -arroscience.org -arrowdentalsmile.com -arrowpointinspect.com -arschloch.com -arseente.site -arsena.tk -arsenagotu.cf -arsenal-smtp.net -arsenalsmtp.net -arsenalsmtp.us -arshawteselance.com -arsindo.cloud -arsinh.com -arslongaviajes.com -arss.me -arstudioart.com -art-books-monographs.online -art-coco.com -art-en-ligne.pro -art-hawk.net -art-oboy.ru -artaa316.xyz -artaak.com -artafericirii.net -artaho.net -artamebel.ru -artan.fr -artatrainslondon.com -artatrainstokyo.com -artbellrules.info -artblast.store -artbykiomi.com -artching.com -artdrip.com -arteizle10.com -arteizle3.com -arteizle5.com -arteizle7.com -artelleriet.se -artemisanet.com -artemmel.info -artemshypulya.dns.army -arteol.pl -artex-cream.tech -artexplumbing.com -artgmilos.de -artgostore.com -artheyw.shop -arthobbies.info -arthols.ru -artholst-store.ru -arthrorenov.com -arthurmurrayven.com -arthursbox.com -articlearistrocat.info -articlebase.net -articlebigshot.info -articlechief.info -articlejaw.com -articlemagnate.info -articlemogul.info -articlenag.com -articlenewsflasher.com -articlerose.com -articles4women.com -articlesearchenginemarketing.com -articleslive191.com -articlesmaximizer.com -articlespring.com -articleswebsite.net -articleswiki.com -articletarget.com -articlewicked.com -articlewritingguidelines.info -articula.us -articzone.online -artifact.bet -artificial-center.xyz -artificialbelligerence.com -artificialgrassrecycling.com -artificialintelligence.productions -artificialintelligenceseo.com -artigosusados.xyz -artiidex.space -artikulli.info -artinterpretation.org -artisanbooth.com -artisbokepasia.com -artistgap.com -artistrystrategic.com -artistsfortrauma.com -artlocate.com -artlok.space -artlover.shop -artman-conception.com -artmedinaeyecare.net -artmix.net.pl -artmweb.pl -artnames-contemporaryart.online -artnames-cubism.online -artnames-dadaart.online -artnames-folkart.online -artnames-oil.online -artnames-portraiture.online -artnames-sculpture.online -artnames-surrealism.online -artnet.design -artnetconsignor.com -artnetjobs.com -artnetportfolio.com -artntheory.com -artofboss.com -artofhypnosis.net -artofimagine.com -artofmuse.net -artofmuse.org -artofthehearts.com -artouki.net -artpdfmanuales.xyz -artproduct.org -artprophoto.ru -artquery.info -artresources.website -artrit.info -artroodex.site -artrovex-dealer.ru -artshandsa.info -artswear.store -arttica.com -arttte.com -arturremonty.pl -artvindendogal.com -artvinepress.com -artwerks.com -artwitra.pl -artwomen.club -artykuly-na-temat.pl -artymarket.ru -aruanimeporni20104.cz.cc -arudi.ru -aruguy20103.co.tv -arumail.com -arunachalnews.com -aruqmail.com -arur01.tk -arurgitu.gq -arurimport.ml -arvadalandsurveying.com -arvato-community.de -arvestloanbalanceeraser.com -arw88.com -arwana21.net -arwana21.org -arwanajp.org -arwanatop.com -arwanatop.net -arwashingtonpost.com -aryagate.net -aryangiftshop.com -aryavpn.site -arybebekganteng.cf -arybebekganteng.ga -arybebekganteng.gq -arybebekganteng.ml -arybebekganteng.tk -aryildizcutlery.com -aryirawangrop.online -arylabs.co -aryodjojohadikusumo.com -arypro.tk -arysc.ooo -aryston.xyz -arystonhub.xyz -arzeju.icu -arzplus2.com -arzuhane.net -as-soug.com -as.onlysext.com -as01.cf -as01.ga -as01.gq -as01.ml -as02.ga -as02.gq -as02.ml -as03.cf -as03.ga -as03.gq -as03.ml -as21.club -as48337.com -as8218.net -asa-dea.com -asahi.cf -asahi.ga -asahi.one -asamber.com -asana.biz -asanpay.shop -asanpay.site -asapbox.com -asapp-consultoria.com -asaroad.com -asart53.com -asas1.co.tv -asb-mail.info -asbakpinuh.club -asbdasds.space -asbdsadss.space -asbestosandmold.org -asbestoslawyersguide.com -asbet-game.club -asbetter20.xyz -asbomsk.ru -ascad-pp.ru -ascaz.net -ascendventures.cf -ascensionschool.org -aschenbrandt.net -asclckujx.shop -ascona-discount.com -ascotairporlinks.co.uk -ascotairporltinks.co.uk -ascotairportlinks.co.uk -ascotchauffeurs.co.uk -ascparishad.icu -asculpture.ru -asd323.com -asd3886uklll.com -asd654.uboxi.com -asdadw.com -asdas.xyz -asdascxz-sadasdcx.icu -asdascxz-sadxzcwaasdcx.icu -asdasd.co -asdasd.nl -asdasd.ru -asdasd1231.info -asdasdadshdasd2.ga -asdasdasd5.site -asdasdasd7.site -asdasdasd9.site -asdasdd.com -asdasdfds.com -asdasdweqee.com -asdawqa.com -asdbasnds.space -asdbwegweq.xyz -asdcartones.xyz -asddddmail.org -asdeqwqborex.com -asdewqrf.com -asdf.pl -asdfasd.co -asdfasdf.co -asdfasdfmail.com -asdfasdfmail.net -asdfdonate.com -asdfghmail.com -asdfhired.com -asdfmail.net -asdfmailk.com -asdfnews.org -asdfooff.org -asdfpost.com -asdfsdf.co -asdfsdfjrmail.com -asdfsdfjrmail.net -asdfsearch.com -asdhad12.top -asdhgsad.com -asdjioj31223.info -asdjjrmaikl.com -asdjmail.org -asdkwasasasaa.ce.ms -asdogksd.com -asdooeemail.com -asdooeemail.net -asdqwee213.info -asdqwevfsd.com -asdrxzaa.com -asdsd.co -asdversd.com -asdvewq.com -aseanhgh.com -aseas-asdk.ru -aseewr1tryhtu.co.cc -aseq.com -aserbo.ga -aserbo.gq -aserbo.tk -aserookadion.uni.cc -aserrpp.com -asertol1.co.tv -ases.info -asetbet.online -asewrggerrra.ce.ms -aseyreirtiruyewire.co.tv -aseztakwholesale.com -asf-stroy-71.ru -asfda.site -asfdasd.com -asfedass.uni.me -asfjdjny.cf -asfjdjny.ga -asfjdjny.ml -asfjdjny.tk -asfjhahjs13433.ml -asfjhahjs13433.tk -asfjhahjs23068.ga -asfjhahjs23068.ml -asfjhahjs23068.tk -asfjhahjs57619.ml -asfjhahjs57619.tk -asfjhahjs72541.ml -asfjhahjs72541.tk -asfjhahjs79218.cf -asfjhahjs79218.ga -asfjhahjs79218.ml -asfjhahjs79218.tk -asfjhahjs88928.ml -asfjhahjs88928.tk -asfjhahjs89097.ml -asfjhahjs89097.tk -asfn.cd -asfnnnyt.cf -asfnnnyt.ga -asfnnnyt.ml -asfnnnyt.tk -asfnyn.cf -asfnyn.ga -asfnyn.ml -asfnyn.tk -asgaccse-pt.cf -asgaccse-pt.ga -asgaccse-pt.gq -asgaccse-pt.ml -asgaccse-pt.tk -asgardia-space.tk -asgasgasgasggasg.ga -asgasgasgasggasg.ml -asgasghashashas.cf -asgasghashashas.ga -asgasghashashas.gq -asgasghashashas.ml -asgcxb.icu -asghashasdhasjhashag.ml -asha-dhsh.ru -ashamelejk.club -ashellgame.net -ashevillegivecamp.org -ashfoundation.com -ashiapjamet.com -ashik2in.com -ashina.men -ashiquichats.com -ashishsingla.com -ashleyandrew.com -ashleyfurniturehomestorenorth.com -ashleystoys.com -ashopping.site -ashotmail.com -ashtony.xyz -asi72.ru -asia-me.review -asia-pasifikacces.com -asia.dnsabr.com -asia303.space -asia303.xyz -asiabet66.xyz -asiablog.com -asiafetteratom.website -asiahot.jp -asiame.review -asiamegagroup.com -asian-handicap.org.uk -asian-wife-finder.com -asianbeauty.app -asianbusinesscatalog.com -asianeggdonor.info -asianextremecinema.com -asianflushtips.info -asiangangsta.site -asianmarket.best -asianmeditations.ru -asianpartsmarket.com -asianpkr88.info -asianrelease.website -asiansasians.com -asiantakeout.com -asianyouthchess.com -asiapacificexecutives.org -asiapmail.club -asiapoker303.space -asiaprofiles.com -asiaqq59.xyz -asiaqq7.com -asiaqq8.com -asiaqq9.com -asiarap.usa.cc -asiaunited.blog -asiaunited.cloud -asiaunited.directory -asiaunited.network -asiaunited.online -asiaunited.party -asiaunited.xyz -asiawin77.asia -asics.com -asicshoesmall.com -asicsonshop.org -asicsrunningsale.com -asicsshoes.com -asicsshoes005.com -asicsshoesforsale.com -asicsshoeskutu.com -asicsshoesonsale.com -asicsshoessale.com -asicsshoessite.net -asicsshoesworld.com -asifboot.com -asik2in.biz -asik2in.com -asiki2in.com -asikmainbola.com -asikmainbola.org -asikpoker99.com -asikqq168.net -asikqq168.org -asilgrupotomotiv.xyz -asimplemodule.com -asin2ean.com -asino-luck.net -asino7.fun -asino7.site -asinondemand.com -asinproplus.com -asinspector.org -asio.club -asioncriblomatic.com -asioncriblomatic.live -asisec.cf -asisec.ga -asisec.gq -asisec.ml -asisec.tk -asistx.info -asistx.net -asistx.org -asjfjhtr.cf -asjfjhtr.ga -asjtjkasx36523.ml -asjtjkasx36523.tk -asjtjkasx52382.cf -asjtjkasx52382.ga -asjtjkasx52382.ml -asjtjkasx52382.tk -asjtjkasx78198.ml -asjtjkasx78198.tk -ask-bo.co.uk -ask-mail.com -ask-zuraya.com.au -ask2me.online -askandhire700.info -askantiqueexpert.com -askarturejeki.online -askbam.com -askcasino.ru -askddoor.org -askdigitalgully.com -askfirsthand.net -askfirsthand.org -askhaymond.net -askhaymond.org -askhaymondlaw.info -askhaymondlawfirm.net -askimpromptu.com -askingprice.click -askjennytnow.com -askjob.asia -askjtjk15970.ml -askjtjk15970.tk -askjtjk26334.cf -askjtjk26334.ga -askjtjk26334.tk -askjtjk57172.ml -askjtjk57172.tk -askjtjk88328.cf -askjtjk88328.ga -askjtjk88328.ml -askjtjk88328.tk -askjtjk94934.cf -askjtjk94934.ga -askjtjk94934.ml -askjtjk94934.tk -asklala.com -asklexi.com -askman.tk -askmyfaith.org -askopindo.com -askoqopoiweiwe.online -askot.org -askozy.com -askpirate.com -asktheselfstorageexperts.com -askyouth.com -askyouth.org -asl13.cf -asl13.ga -asl13.gq -asl13.ml -asl13.tk -aslanstore.xyz -aslaugsig.com -aslibayar.com -aslibayar.org -aslldsa.site -asls.ml -asltizffe.ml -asm.snapwet.com -asmagermeyapi.com -asmail.com -asmailproject.info -asmailz1.pl -asmrlib.com -asmryy.xyz -asmwebsitesi.info -asn.services -asndasbds.space -asndassbs.space -asnieceila.xyz -asnpk88.org -asobin.ga -asobin.gq -asoes.tk -asofinder.com -asokevli.xyz -asokla.cf -asokla.ga -asokla.tk -asonbet.xyz -asoniashop.ru -asooemail.com -asooemail.net -asopenhrs.com -asorent.com -asors.org -asosfr.info -asouses.ru -aspasiamaldives.com -aspavabet.com -aspenclean.net -aspenleitersewandvac.com -aspenshipping.com -aspergeeks.com -asperorotutmail.com -aspfitting.com -asphalt-9-legends.ru -aspinallcars.com -aspiredoge.com -aspiringweb.net -aspiringweb.org -asportsa.ru -asportscoach.app -aspotgmail.org -asri.ie -ass-o-ass.com -ass.bike -ass.llc -ass.pp.ua -assadi.su -assadvi.ga -assadvi.ml -assadvi.tk -assalamualayka.net -assalamualayka.org -assamsales.com -assayplate.com -asseenontvllc.com -assembleareus.info -assertiongame.com -asset-val.com -assetcdn.online -assetcrypto.com -assetfinanceaggregator.com -assetscoin.com -assfire.online -assimiired.space -assimiliate.com -assist-nets-secure.net -assistance-bureautique.com -assistedlivingfacilitesnearme.org -assistedlivingfacilityfinder.org -assistedlivingfacilityinfo.org -assistedlivingfacilitynearme.org -assitance-entreprise.com -assitv.site -assmadness.com -associazionearia.org -assohass.com -assomail.com -assortiekb.ru -asspoo.com -asss.com -assuranceprops.fun -assurances-maladie-fr.com -assurancespourmoi.eu -assureplan.info -assurmail.net -astabbettsnupp2020.xyz -astabetingsnup.xyz -astabetsnup.xyz -astabilbettsnapp.xyz -astabilitybetsnapp.xyz -astaghfirulloh.cf -astaghfirulloh.ga -astaghfirulloh.gq -astaghfirulloh.ml -astalias.host -astalias.us -astanahotels.org -astanca.pl -astar2wishupon.net -astaza.net -asteimmobiliarialert.org -asteraavia.ru -asterhostingg.com -asterialop.site -astermebel.com.pl -asteron.info -astheatbu.cf -astheatbu.ga -astheatbu.gq -astheatbu.ml -astheiss.gr -astibo.com -asticce.gq -astiglass.org -astigmatnedir.net -astigmattedavisi.com -astonut.cf -astonut.ga -astonut.ml -astonut.tk -astonvpshostelx.com -astoredu.com -astoriago.com -astoryending.com -astos.online -astos.space -astraeusairlines.xyz -astral-polet.ru -astralcars.com -astralhotel.net -astramail.ml -astretsovskayaigrushka.ru -astrevoyance.com -astrial.su -astridmyshop.com -astrkkd.org.ua -astro4d.net -astroempires.info -astrofactions.club -astrolexikon.de -astrolix.site -astrolo.ga -astrologiepro.com -astrology.host -astropaynoktasi.com -astropharm.com -astropink.com -astroscardsapp.com -astrosmurfs.cf -astrotogel.net -astrototog.com -astrototoh.com -astrototoi.com -astrowave.ru -astrthelabel.xyz -astutedesignstudio.com -astxixi.com -asu.mx -asu.party -asu.su -asuaia.xyz -asub1.bace.wroclaw.pl -asuctp.info -asukanet.com -asurnamealwayspaystheirbills.com -asus-vivostick.online -aswaqinfodz.com -aswatna-eg.net -asweetuni.ooo -aswertyuifwe.cz.cc -asy1333.com -asyabahis10.com -asyabahis11.com -asyabahis13.com -asyabahis135.com -asyabahis15.com -asyabahis18.com -asyabahis2.com -asyabahis21.com -asyabahis25.com -asyabahis26.com -asyabahis27.com -asyabahis3.com -asyabahis315.com -asyabahis319.com -asyabahis333.com -asyabahis356.com -asyabahis365.com -asyabahis376.com -asyabahis425.com -asyabahis448.com -asyabahis459.com -asyabahis469.com -asyabahis488.com -asyabahis724.com -asyabahis777.com -asyabahis888.com -asyabahis9.com -asyabahisgiris.xyz -asylvan.com -asyncekspert.net -asyncexpert.net -asynchbwls.ru -asyncsoft.com -aszx77.xyz -at-desires-unanderra-i.blue -at-funeral.com -at-leads.ru -at-news3.net -at.hm -at0mik.org -ataaalkhayer.net -atadatat.shop -atakanarisoy.online -atakbahis.net -atakei.icu -atakkitap.net -atalai.tk -atanetorg.org -atansid.cf -atansid.ga -atansid.ml -atansid.tk -atar-dinami.com -atarax.website -atariazteca.com -atariblockchainpartners.com -atarif.ga -atarif.gq -atarif.ml -atarif.tk -atarigamepartners.com -atarinewvcs.com -atarivcs.net -atarivideocomputersystem.com -atasehirsuit.com -atatteve.website -ataudes.online -atbeoffroad.com -atbhatby.shop -atcuxffg.shop -atearl.com -atech5.com -ateculeal.info -atedateh.shop -atefswalgent.tk -ateh.su -ateliebar.com -atelier-generations.be -atelierprojeturbain.com -ateliersprojeturbain.com -atemail.com -ateng.ml -atengtom.cf -atenk99.ml -atenolol.website -atenolol247.video -atfoak.us -atfshminm.pl -atharroi.cf -atharroi.gq -atharroi.ml -atharroi.tk -athebettsnaps.xyz -athenafarm.com -athens-loft.com -athens5.com -athensmaritime.info -athensmaritime.org -athensmusician.org -athensmusician.us -atherea.info -atherea.org -atherogngm.space -athfacrebes.cf -athleticinterests.com -athleticmen.ru -athleticsupplement.xyz -athomeinjacksonhole.info -athomeinjacksonhole.net -athomeinjacksonhole.org -athomewealth.net -atihatim.shop -atiku.website -atimp.com -atimphar.cf -atinvestment.pl -ationalas.icu -atisecuritysystems.us -ativin.ru -atka.info -atkia.com -atkirson.press -atlanta-rv-rentals.com -atlanta4d.com -atlantacocainerehab.com -atlantadaybook.com -atlantafalconsproteamshop.com -atlantagaeldercare.com -atlantagahomes.com -atlantagaragefloor.com -atlantaquote.com -atlantaweb-design.com -atlanticcanada-japan.com -atlanticcanadacruise.com -atlanticmc.shop -atlanticyu.com -atlantisbahis37.com -atlantisbahis48.com -atlantisbahis5.com -atlantisbahis55.com -atlantisbahis6.com -atlantisbahis7.com -atlantisbahis9.com -atlantisbeds.com -atlasbet400.com -atlasbets.com -atlasjams.com -atlastresorts.com -atlaswatersolutions.net -atlcarpentry.com -atleha.africa -atlsportsep.com -atlteknet.com -atm-mi.cf -atm-mi.ga -atm-mi.gq -atm-mi.ml -atm-mi.tk -atmexweb.com -atmosfera-kazan.ru -atmospheremaxhomes.us -atms4z.site -atnalan.site -atneon.space -atnextmail.com -atnight.me -atolyezen.com -atomq.org -atomread.com -atomtoys.ru -atopticus.biz -atourfinest.com -atoverthetopshop.com -atoyot.cf -atoyot.ga -atoyot.gq -atoyot.ml -atoyot.tk -atoz.community -atoz.support -atozbangladesh.com -atozcashsystem.net -atozconference.com -atp-dz.com -atpfinals.ru -atpworldtour-2016.com -atqpq.live -atrais-kredits24.com -atrakcje-nestor.pl -atrakcjedladziecii.pl -atrakcjenaimprezki.pl -atrakcjenawesele.pl -atrakcyjneimprezki.pl -atrezje.radom.pl -atrium.cd -atriushealth.info -atscam.online -atsirtinda.ml -atstifin.cf -atstifin.ga -atstifin.gq -atstifin.tk -atsw.de -att-warner.cf -att-warner.ga -att-warner.gq -att-warner.ml -att-warner.tk -attaber.cf -attaber.ga -attaber.gq -attaber.ml -attaber.tk -attack.icu -attack11.com -attacking.live -attacking.network -attacking.site -attackonfreespeech.com -attackonkingslanding.net -attackonknightslanding.net -attacks.cloud -attacks.email -attacks.life -attacks.live -attacks.news -attacks.social -attake0fffile.ru -attakka.com -attax.site -attckdigital.com -attempt103.com -attemptify.com -attention-message.support -attention.support -attentv.com -atthecentre.com -atticforg.icu -atticst.icu -attnetwork.com -attobas.cf -attobas.gq -attobas.ml -attobas.tk -attop46.xyz -attorney-recruiter.com -attpaygopayment.com -attract-sensitive.xyz -attract-too.xyz -attractdreamlife.com -attractionmarketing.net.nz -attraktiv.nu -atulya.gq -atulyahelp.gq -atunendog.tk -atux.de -atuyutyruti.ce.ms -atvclub.msk.ru -atvdiscplow.com -atwankbe3wcnngp.ga -atwankbe3wcnngp.ml -atwankbe3wcnngp.tk -atwellpublishing.com -atwerpfj.shop -atyone.website -au-tts.ru -au3.support -au462.site -au651.site -au6msx.com -auauau.host -aub6jbkk.xyz -aubootfans.co.uk -aubootfans.com -aubootsoutlet.co.uk -aubreyequine.com -aucenter.info -auchandirekt.pl -auction315.xyz -auctionfrog.org -auctionzones.com -audfuht.ml -audfuht.tk -audi-r8.cf -audi-r8.ga -audi-r8.gq -audi-r8.ml -audi-r8.tk -audi-tt.cf -audi-tt.ga -audi-tt.gq -audi-tt.ml -audi-tt.tk -audi.igg.biz -audill.xyz -audimiramar.com -audio.delivery -audio.now.im -audioalarm.de -audiobookmonster.com -audiobrush.com -audioequipmentstores.info -audiofu.com -audiohi-fi.ru -audioorgasm.net -audios3d.club -audioslim.com -audiossl.stream -audioswitch.info -audipartshub.com -audise.xyz -audit-buhgalteria.ru -auditenvy.org -auditnv.com -audoscale.net -audrey11reveley.ga -audvik.ru -audytwfirmie.pl -auelite.ru -aueriq.icu -auey1wtgcnucwr.cf -auey1wtgcnucwr.ga -auey1wtgcnucwr.gq -auey1wtgcnucwr.ml -auey1wtgcnucwr.tk -augmentai.org -augmentationtechnology.com -augmentin.ru -augmentin875mg.info -augrabiesfallsnationalpark.com -augstusproductions.com -auguridibuonapasqua.info -auguryans.ru -augustmovo.com -augustone.ru -auiiqj.best -aukcionsaitov.ru -aukcionsajtov.ru -auktionsbutler.se -aulaline.com -aumentarpenis.net -aumento-de-mama.es -auntshop.xyz -auoi53la.ga -auoie.com -auolethtgsra.uni.cc -auon.org -aupforrez.shop -aupiurao.xyz -aur0vk.us -auralfix.com -auraliv.com -aurangabadlive.com -auraqq.com -aurawire.com -aurcasino.com -aureliajobs.com -aureliaprime.net -aurelstyle.ru -aures-autoparts.com -auresormi7m002.xyz -aurile.xyz -aurill.xyz -auroombet.fun -auroombet.online -aurora-flare.com -aurora-flares.com -aurora-ru.ru -auroraaddictiontreatment.com -auroraalcoholrehab.com -auroraheroinrehab.com -auroraooo.xyz -aurorapacking.ru -aus.schwarzmail.ga -ausdance.org -ausdocjobs.com -ausdoctors.info -ausgefallen.info -auslaenderberatunge-erfurt.press -auspaccornerstone.com -auspb.com -auspicy.best -aussie.finance -aussie.loan -aussieboat.loan -aussiebulkdiscounting.com -aussiecampertrailer.loan -aussiecampertrailer.loans -aussiecar.loans -aussiecaravan.loan -aussiegroups.com -aussieknives.club -aussielesiure.loans -aussiematureclub.com -aussiepersonal.loan -aussiepersonal.loans -aussiesmut.com -austbikemart.com -austimail.com -austinamazinggaragefloors.com -austinbell.name -austincar.club -austincocainerehab.com -austincohousing.org -austinheroinrehab.com -austinmedicaljobs.com -austinopiaterehab.com -austinquote.com -austinsherman.me -austintexashomebuyers.com -austinveterinarycenter.net -australiaasicsgel.com -australiadirect.xyz -australiamining.xyz -australiandoctorplus.com -australianfinefood.com -australianlegaljobs.com -australianmail.gdn -australianwinenews.com -australiapioneerlida.com -australiasunglassesonline.net -austriayoga.com -austrycastillo.com -auta.host -autaogloszenia.pl -auth.legal -auth.page -authensimilate.com -authentic-guccipurses.com -authenticautograph.net -authenticawakeningadvanced.com -authenticchanelsbags.com -authenticpayments.net -authenticsportsshop.com -authinfomobupdate.xyz -author24.su -authoritycelebrity.com -authorityleadership.com -authorityredirect.com -authorityvip.com -authorize97pn.online -authorizedoffr.com -authorship.com -authortheme.co -authupdate.biz -auti.st -autismbehavioraltherapists.com -autismcarecenternetwork.com -autismcarecentersnearme.com -autismcentermarketingagency.com -autismcenterwebdesign.com -autismcenterwebmarketing.com -autisminfo.com -autismtherapycentersforadults.com -autismtherapycentersnetwork.com -autismtreatmentcentersofamerica.com -autismtreatmentforadults.com -autismtreatmentpractices.com -autisticsociety.info -autlook.com -autlook.es -autluok.com -auto-complete.info -auto-consilidation-settlements.com -auto-correlator.biz -auto-gar.ru -auto-glass-houston.com -auto-lab.com.pl -auto-mobille.com -auto-pay.info -auto-tco.ru -auto-zapchast.info -auto327.xyz -auto37.ru -auto411jobs.xyz -auto417.xyz -autoaa317.xyz -autoadvisorscanada.com -autoairjordanoutlet.us -autobodyspecials.com -autobroker.tv -autobuzz.asia -autocadsymbols.com -autocar.cd -autocardesign.site -autocarinjury.com -autochistka18.ru -autocloud49.xyz -autocoverage.ru -autocpet.ru -autodienstleistungen.de -autodiler.net -autofiber.site -autofinity.pro -autofleetpay.com -autognz.com -autogradka.pl -autograph34.ru -autoguruja.com -autohotline.us -autoimmunedisorderblog.info -autoinsurance-help.zone -autoinsurancesanantonio.xyz -autoknowledge.ru -autolainat.com -autolicious.info -autoloan.org -autoloanhub.online -autoloans.org -autoloans.us -autoloansonline.us -automatedpersonnel.com -automatedsalesfunneltips.xyz -automaticforextrader.info -automationintensive.com -automatizes768jm.online -automechanics.net -automenosa.info -automisely.org -automiselymail.com -automiselymail.info -automiselymail.net -automisly.info -automisly.org -automizeapi.com -automizely.info -automizelymail.info -automizelymail.net -automizelymail.org -automizen.com -automizly.com -automizly.info -automizly.net -automizly.org -automobiledeals.net -automobilerugs.com -automotive-mediaventions.com -automotiveshop.life -automotivesort.com -autonoreste.com -autoodzaraz.com.pl -autoodzaraz.pl -autoonlineairmax.us -autoparts73.ru -autopartsinternational.com -autopdfmanuales.xyz -autopilotcfo.com -autopilotexecutive.com -autopilotintensive.com -autoplusinsurance.world -autopro24.de -autorace.pt -autorepairaustralia.xyz -autorepairtech.press -autorijschoolpoul.com -autorim.org -autorobotica.com -autosace.com -autoscan.info -autosdis.ru -autosearch411.xyz -autosendmail.com -autoshake.ru -autosoars.info -autosouvenir39.ru -autostabilbetsnup.xyz -autostupino.ru -autotalon.info -autotest.ml -autotrackeranalyzer.com -autotropic.site -autotwollow.com -autoums.info -autour-des-auteurs.info -autowb.com -autozestanow.pl -autozine.net -autozoomer.ru -auttt.xyz -autumnfalls.site -autway.agency -auw88.com -auweek.net -auwgo.live -auwinnewphone.site -auxi.auction -auxifyboosting.ga -auxometer.site -auxometer.xyz -auxoqq.com -auzakup979.ru -av-8.buzz -av-ap.pro -av-ap6.pro -av-ap7.pro -av-rent.ru -av.jp -av112.xyz -av113.xyz -av117.club -av117.news -av117.online -av117.video -av119.xyz -av1639.com -av1684.com -av1689.com -av1719.com -av1726.com -av1729.com -av1730.com -av200.xyz -av300.xyz -av303.xyz -av9090.top -av9090.xyz -av9707.com -ava-studio.ru -avaba.ru -avadickinson.buzz -avaiatorpower.com -availablemail.igg.biz -avalancheartisans.com -avalonglobal.in -avalonpregnancycoaching.com -avalop.org -avanafilprime.com -avanamotorsport.com -avanbom.xyz -avangard-kapital.ru -avantageexpress.ca -avantatravel.ru -avantbazaar.com -avantcreditoffer.com -avantgardescientificjournal.xyz -avapardaz9.info -avaphpnet.com -avaphpnet.net -avast.ml -avastinstitut.com -avasts.net -avastyble.com -avatastar.com -avathohouse.co -avatrade.trading -avava.site -avaya.team -avbeafun.ga -avbeafun.gq -avbeafun.ml -avcc.tk -avchina.live -avchina.us -avchoiju.cf -avchoiju.ga -avchoiju.gq -avchoiju.ml -avchoiju.tk -avciseti.xyz -avdspace.com -avelani.com -avelec.ru -avengersfanboygirlongirl.com -avenir-biz.com -avenirshoes.ru -avenpor.com -avenue.careers -avenuesilver.com -avenueway.com -aver.com -averdov.com -averona72.ru -aversale.com -avery.jocelyn.thefreemail.top -averyhart.com -avesorogold.com -avganrmkfd.pl -avglatga.cf -avglatga.ga -avglatga.gq -avglatga.ml -avglatga.tk -avgtm3.best -avhell.ml -avhmq.icu -avhuanle.com -avia-krepe.online -avia-krepo.online -avia-sex.com -avia-tonic.fr -aviabilety-kupit-bilety.ru -aviani.com -aviapartner.media -aviaperetuk.info -aviationlingo.com -aviatorrayban.com -avibrahimkoyuncu.xyz -avicc.website -avidblur.com -avidmanager.net -avidniro.com -avihefub.shop -avikd.tk -avilez.best -avinsurance2018.top -avio.cf -avio.ga -avio.gq -avio.ml -avioaero.cf -avioaero.ga -avioaero.gq -avioaero.ml -avioaero.tk -aviocreditpromocode.com -aviro.com -aviromassociates.com -avisa.blue -avisfarms.com -avishekgyawali.com -avissena.com -avitamedical.info -avito-boxberry.ru -avito-dilivery.ru -avito-office.ru -avito-package.ru -avito-payshops.ru -avito-repayment.online -avito-safe-order.online -avito-safe.online -avito-save.online -avitoguard.online -avitosafe.online -avitoxpress.online -avkdubai.com -avls.pt -avmali.club -avmynv.us -avn7t.us -avnews101.net -avnnews.review -avo-ap.pro -avocadorecipesforyou.com -avofcb.com -avoidyourforeclosuretexas.com -avokhel.ml -avondalefarm.com -avonforlady.ru -avonnychildcare.com -avoori-newsletters.com -avorybonds.com -avosbka.ru -avosdesign.art -avosdesign.org -avozo.us -avp1brunupzs8ipef.cf -avp1brunupzs8ipef.ga -avp1brunupzs8ipef.gq -avp1brunupzs8ipef.ml -avp1brunupzs8ipef.tk -avpai.biz -avpai.info -avpai.live -avpai.org -avpai.video -avr.ze.cx -avr1.org -avrbo.net -avrbo.org -avrora62.ru -avrupabet151.com -avrupabet153.com -avrupabet154.com -avrupabet163.com -avrupabet164.com -avrupabet168.com -avrupabet170.com -avrupalianne.com -avslenjlu.pl -avsofficeconcepts.com -avsow.com -avstria-nedv.ru -avtarhelp.com -avto-ap.pro -avto-details.ru -avto-fakt.ru -avto-klinika.online -avto-op.pro -avto-parts24.ru -avtobalans.ru -avtobym.ru -avtoklimatpro.ru -avtomani.com -avtomatika-stout.ru -avtomationline.net -avtopark.men -avtoproin16.ru -avtoservis-acura.ru -avtoservis-bmvv.ru -avtoservis-cadillac.ru -avtoservis-chrysler.ru -avtoservis-citroen.ru -avtoservis-dodge.ru -avtoservis-fiat.ru -avtoservis-ford.ru -avtoservis-geely.ru -avtoservis-honda.ru -avtoservis-isuzu.ru -avtoservis-jeep.ru -avtoservis-kla.ru -avtoservis-landrover.ru -avtoservis-lexus.ru -avtoservis-mazda.ru -avtoservis-mercedes.ru -avtoservis-opel.ru -avtoservis-peugeot.ru -avtoservis-porsche.ru -avtoservis-rangerover.ru -avtoservis-seat.ru -avtoservis-ssangyong.ru -avtoservis-subaru.ru -avtoservis-suzuki.ru -avtoservis-v-podolske.ru -avtoservisrus.ru -avtoshkolaexpert.ru -avtoshtorka.ru -avtospasatel39.ru -avtosputnik.ru -avtostiker.ru -avtotalon.com -avtovokzal-krasnodar.ru -avtovukup.ru -avtovyshkann.ru -avtt3599.com -avuimkgtbgccejft901.cf -avuimkgtbgccejft901.ga -avuimkgtbgccejft901.gq -avuimkgtbgccejft901.ml -avuimkgtbgccejft901.tk -avukatbul.org -avukatportali.com -avumail.com -avventurepersposati-confirmed.com -avventurepersposati-meet.com -avvmail.com -avvraedu.online -avwang.club -avxdic.us -avxpay.money -avxpay.org -avxrja.com -avya4.com -avyv.email -avz0.net -avz1.net -avz3.net -avzvuk.ru -aw.kikwet.com -aw135.com -aw5u.us -awahal0vk1o7gbyzf0.cf -awahal0vk1o7gbyzf0.ga -awahal0vk1o7gbyzf0.gq -awahal0vk1o7gbyzf0.ml -awahal0vk1o7gbyzf0.tk -awakeningwomenglobal.com -awakmedia.com -awarecro.xyz -awareiv.recipes -awarejune.com -awarenessu.com -awarenj.net -awaresout.xyz -awaretab.icu -awarewri.us -awartisan.com -awatum.de -awca.eu -awchronran.cf -awchronran.ga -awchronran.gq -awchronran.ml -awcon.online -awdrt.com -awdrt.net -awdrt.org -awea.icu -aweather.ru -awebo6688.com -aweh.icu -aweightlossguide.com -awel.icu -awemail.com -aweo.icu -awep.icu -awep.net -aweq.icu -awer.icu -awesome.no -awesome.reviews -awesome4you.ru -awesomebikejp.com -awesomeemail.com -awesomeofferings.com -awesomereviews.com -awesomewellbeing.com -awewallet.com -awex.icu -awez.icu -awiki.org -awionka.info -awkrm1.site -awkwardboxes.com -awloywro.co.cc -awmxcu.site -awngqe4qb3qvuohvuh.cf -awngqe4qb3qvuohvuh.ga -awngqe4qb3qvuohvuh.gq -awngqe4qb3qvuohvuh.ml -awngqe4qb3qvuohvuh.tk -awningdetailers.info -awnns.live -awoiyt.us -awol.best -awol.fun -aworldof17hats.com -aworldofeasier.com -awpernist.cf -awphj3.us -awprofta.cf -awprofta.ga -awprofta.gq -awprofta.ml -awprofta.tk -awrp3laot.cf -aws.creo.site -aws910.com -awsomesoft.com -awsoo.com -awsupplyk.com -awumail.com -awwm.icu -awwsnj.com -ax0c.tel -ax80mail.com -axa-hh.com -axactis.com -axaz.email -axbahis77.com -axbet.live -axbyur.info -axcenze.cloud -axefactoryrun.com -axelsoos.com -axeltigertears.com -axeprim.eu -axeroleplay.com -axerupi.ru -axevolution-sf.net -axexch.com -axgd5m2et5kmwdn.xyz -axham.org -axhamgames.net -axiomasmovie.com -axiomboatworks.com -axiongard.net -axischurchbend.com -axitrader.ph -axiz.digital -axiz.org -axjpvj.com -axkleinfa.com -axmail.com -axman.ru -axmluf8osv0h.cf -axmluf8osv0h.ga -axmluf8osv0h.gq -axmluf8osv0h.ml -axmluf8osv0h.tk -axmodine.tk -axnxx.site -axomcinema.com -axon7zte.com -axsup.net -axt5ub.us -axuwv6wnveqhwilbzer.cf -axuwv6wnveqhwilbzer.ga -axuwv6wnveqhwilbzer.gq -axuwv6wnveqhwilbzer.ml -axuwv6wnveqhwilbzer.tk -axwel.in -axz6ii.us -axzmgl.best -ay33rs.flu.cc -ayabozz.com -ayabt.com -ayakkaoutlet.xyz -ayalamail.men -ayalu.com -ayamaria.net -ayamrempahdosting.com -ayandon.xyz -ayanyalvarado.com -ayberkys.ga -ayberkys.ml -ayberkys.tk -ayblieufuav.cf -ayblieufuav.ga -ayblieufuav.gq -ayblieufuav.ml -ayblieufuav.tk -aycereview.com -aycnep.com -aydinhafriyat.xyz -aydinlila.com -aydinliq.xyz -aydinmoda.xyz -aydinsgold.xyz -ayearinmemes.com -ayecapta.in -aygg888.com -ayimail.com -ayitimizik.org -ayizkufailhjr.cf -ayizkufailhjr.ga -ayizkufailhjr.gq -ayizkufailhjr.ml -ayizkufailhjr.tk -aynacaphe.com -aynbpx.us -aynenknkajsfkn83278.cf -aynenknkajsfkn83278.ga -aynenknkajsfkn83278.ml -aynenknkajsfkn83278.tk -aynenknkasnfk14034.cf -aynginaboys.club -aynnaynnsfkm23829.cf -aynnaynnsfkm23829.tk -ayobsharafinia.ir -ayohave.fun -ayomail.com -ayonae.info -ayopoker.win -ayotech.com -ayrintiyayinlari.net -ayro-music.site -ayron-shirli.ru -aysendemir.com -aytos.ru -ayu.no -ayuawd.com -ayudafacebook.com -ayuh.myvnc.com -ayumail.com -ayurvedablog.com -ayurvedamassagen.de -ayurvedanepal.online -ayurvedayogashram.com -ayurvedicresorts.club -ayurvedmedicines.com -ayyjes.com -ayzah.com -ayzrx1.site -az-mob-go.site -az.com -az.usto.in -az3goods.space -az4wd.com -az8fja.us -azacavesuite.com -azacmail.com -azaddictiontreatmentcenter.com -azamat-farisovich.ru -azanisgroup.com -azart-player.ru -azartplay-casino-official.online -azartplay.space -azazazatashkent.tk -azbooka.fr -azbuka-manikura.ru -azcmpu.us -azcomputerworks.com -azcork.com -azehiaxeech.ru -azel.xyz -azemail.com -azemar.cf -azemar.tk -azentron.com -azer-nedv.ru -azerinannies.com -azerion-one.net -azerion.biz -azerion.info -azerion.net -azerion.org -azerionone.com -azerionone.org -azest.us -azfkbayci.shop -azfvbwa.pl -azh1tq.site -azhirock.com -azhour.fr -aziamail.com -azino-777.vin -azino-i.website -azino1.info -azino7.info -azino7.net -azino7.org -azino777-vip.club -azino7788.ru -azinoobyk777.icu -azipeas.cf -azipeas.ga -azipeas.gq -azipeas.ml -azipeas.tk -azizogludanismanlik.xyz -azjuggalos.com -azjyys.site -azmeil.tk -azmn.info -azmyspace.com -azmziarat.com -aznayra.co.tv -azocoin.com -azomain.xyz -azon-review.com -azooma.ru -azorescarsrental.com -azosmail.com -azote.cf -azote.ga -azote.gq -azpopparitvur.xyz -azpuma.com -azqtbv.info -azra.net -azrooh.ru -azrvdvazg.pl -azsh0j.us -azspartners.ru -azsportsnetwork.net -aztecspecialties.us -azterul.ru -aztrailsapp.org -aztraumacenter.com -azulaomarine.com -azulgold.com -azumail.com -azunyan.net -azure.cloudns.asia -azureexplained.com -azurelend.com -azurny.mazowsze.pl -azwb.site -azxddgvcy.pl -azxhzkohzjwvt6lcx.cf -azxhzkohzjwvt6lcx.ga -azxhzkohzjwvt6lcx.gq -azxhzkohzjwvt6lcx.ml -azxhzkohzjwvt6lcx.tk -azzurro.cf -azzurro.ga -azzurro.gq -azzurro.ml -b-clickp-company.site -b-clicks-company.site -b-conplxaza.online -b-expert.xyz -b-geamuritermopan-p.com -b-geamuritermopane-p.com -b-idp.com -b-preturitermopane-p.com -b-preturitermopane.com -b-response.com -b-sky-b.cf -b-sky-b.ga -b-sky-b.gq -b-sky-b.ml -b-sky-b.tk -b-termopanepreturi-p.com -b-time114.com -b-time117.com -b-ud-s.site -b.cr.cloudns.asia -b.kerl.gq -b.polosburberry.com -b.reed.to -b.royal-syrup.tk -b.smelly.cc -b.yertxenor.tk -b0.nut.cc -b002qxsr.online -b003adkl.online -b004cugm.online -b005nwbl.online -b006ewrb.buzz -b006jftg.club -b007jkkm.club -b008kfni.club -b009aloh.club -b00sting.com -b010keio.club -b010zsmg.buzz -b011wagq.cloud -b012fvao.cloud -b013qxvb.cloud -b014mafv.cloud -b014ohrh.buzz -b015hrda.cloud -b0231e60.xyz -b028rfvv.buzz -b031rapb.best -b032grbd.best -b033wwgw.best -b035oemn.best -b036npuo.monster -b037gmes.monster -b038jnkq.monster -b039syla.monster -b03pg.site -b040ncjr.monster -b042okoy.website -b043nrsq.website -b044lefb.website -b044qhwh.buzz -b045riie.website -b046fesb.uno -b047fchg.uno -b048jkns.uno -b049eppa.uno -b050yryr.uno -b051ykec.site -b052cqix.site -b053lbrq.site -b054pdzc.site -b055mujo.site -b056luvv.fun -b057bf.pl -b058xrhd.fun -b059xxsz.fun -b097hgj.club -b099kkrs.buzz -b0ts7k.us -b101studio.net -b10sk.site -b122vlah.buzz -b123cxai.buzz -b128jxzq.buzz -b12b4d5.club -b182omao.buzz -b183mmsj.buzz -b18dc.xyz -b199woyg.buzz -b1diet.com -b1gmail.epicgamer.org -b1mbt.cloud -b1of96u.com -b1p5xtrngklaukff.cf -b1p5xtrngklaukff.ga -b1p5xtrngklaukff.gq -b1p5xtrngklaukff.tk -b206jotu.buzz -b213zfog.buzz -b228rcek.buzz -b22b80e1.xyz -b24.fan -b247netq.buzz -b248fzdv.buzz -b24api.xyz -b24api03.xyz -b24api1.xyz -b25fh.space -b272nk.site -b29dc.site -b2b-tara.ru -b2b4business.com -b2bmail.bid -b2bmail.download -b2bmail.men -b2bmail.stream -b2bmail.trade -b2bstar.net -b2bx.net -b2chn.com -b2cmail.de -b2csmartshop.com -b2email.win -b2g6anmfxkt2t.cf -b2g6anmfxkt2t.ga -b2g6anmfxkt2t.gq -b2g6anmfxkt2t.ml -b2g6anmfxkt2t.tk -b2y78.us -b301lpdn.buzz -b33xs.space -b363nquh.buzz -b3650010.com -b3651111.com -b3654444.com -b373qbon.buzz -b374fkbz.buzz -b38oa.com -b397myqg.buzz -b3duvn.us -b3ed96a.club -b3nxdx6dhq.cf -b3nxdx6dhq.ga -b3nxdx6dhq.gq -b3nxdx6dhq.ml -b3stup1oad1.xyz -b400ytcc.buzz -b401njxz.buzz -b404rpek.buzz -b437pbws.buzz -b43gxf.online -b43ll6sd.info -b43qgo.best -b45win.biz -b45win.org -b45winlaw.biz -b460jlhp.buzz -b4dr2u.com -b4in.biz -b4je.icu -b4nv.us -b4top.tk -b4umxf.us -b4xfzg.us -b514qgly.buzz -b51wc.space -b536jxzf.buzz -b540zoes.buzz -b554wxyt.buzz -b556ejvu.buzz -b55b56.cf -b55b56.ga -b55b56.gq -b55b56.ml -b55b56.tk -b571qqnl.buzz -b572elzs.buzz -b59da.xyz -b59qph.us -b5gtfghtt.xyz -b5hjwqda.xyz -b5r5wsdr6.pl -b5raj.info -b5safaria.com -b602mq.pl -b619sbls.buzz -b676jojn.buzz -b6o7vt32yz.cf -b6o7vt32yz.ga -b6o7vt32yz.gq -b6o7vt32yz.ml -b6o7vt32yz.tk -b6q31.xyz -b6vscarmen.com -b6xh2n3p7ywli01.cf -b6xh2n3p7ywli01.ga -b6xh2n3p7ywli01.gq -b6xufbtfpqco.cf -b6xufbtfpqco.ga -b6xufbtfpqco.gq -b6xufbtfpqco.ml -b6xufbtfpqco.tk -b6yule.biz -b720skck.buzz -b724jiuu.buzz -b732gitu.buzz -b735jmny.buzz -b738ilrf.buzz -b764agxi.buzz -b7670c87.xyz -b769paka.buzz -b797ifqa.buzz -b799rpts.buzz -b79pv.com -b7ba4ef3a8f6.ga -b7t98zhdrtsckm.ga -b7t98zhdrtsckm.ml -b7t98zhdrtsckm.tk -b824sxal.buzz -b83gritty1eoavex.cf -b83gritty1eoavex.ga -b83gritty1eoavex.gq -b83gritty1eoavex.ml -b83gritty1eoavex.tk -b841wedc.buzz -b8799.com -b88sport.info -b88vc.space -b8acfgimyfbkutr.xyz -b8b5txpjne1uwxhnelk6136.com -b8b7w9mejuzoefz.xyz -b911d.xyz -b9199.com -b95md.com -b96620.xyz -b97ae.site -b98.live -b99sj.com -b9adiv5a1ecqabrpg.cf -b9adiv5a1ecqabrpg.ga -b9adiv5a1ecqabrpg.gq -b9adiv5a1ecqabrpg.ml -b9adiv5a1ecqabrpg.tk -b9cash.club -b9x45v1m.com -b9x45v1m.com.com -ba-ca.com -ba572.site -ba616o8hwee96yl.site -ba62.net -ba971a8.club -baacloud7.com -baaio.tk -baalism.info -baang.co.uk -baannaryu.com -baao8x.com -baartaxis.info -baasdomains.info -baasharj.com -baat.site -bab81.club -babaaruhaz.info -bababox.info -baban.ml -babassu.info -babaterligi.cf -babau.cf -babau.flu.cc -babau.ga -babau.gq -babau.igg.biz -babau.ml -babau.mywire.org -babau.nut.cc -babau.usa.cc -babayigithukuk.xyz -babe-idol.com -babe-store.com -babe-wars.com -babehealth.ru -babei-idol.com -babelsrevenge.com -babesstore.com -babevape.xyz -babezprivate.com -babiczka.az.pl -babimost.co.pl -babinski.info -babirousa.ml -babirusa.info -babiszoni.pl -babiwatch.ru -babknehtpoyas.space -bablo-hoshim.fun -bablukaprimer.space -babmarkapoyas.space -babooncooler.com -babooncoolers.com -babraja.kutno.pl -babroc.az.pl -babrushnikpal.space -babski.az.pl -babssaito.com -babssaito.net -babtisa.com -babwert.online -baby-loaf.name -baby-loaf.us -baby-mat.com -babyb1og.ru -babybaby.info -babybet16.xyz -babycounter.com -babyfriendly.app -babygatesshop.life -babygearshop.life -babyiowa.com -babyk.gq -babykefdsdsd84.online -babylissshoponline.org -babylissstore.com -babyloaf.name -babyloaf.us -babylonish.com -babylonize.com -babymails.com -babymattress.me -babymem.com -babymongoose.info -babymoose.info -babynamelabs.com -babyonlinedress.online -babyqiang.com -babyrezensionen.com -babyro.ru -babyroomdecorations.net -babyrousa.info -babysfavoritepictures.com -babysfavoritetoys.com -babysheets.com -babyshowerandmore.com -babysmartwatchgps.ru -babystaxxx.net -babystuff.icu -babytoysshop.life -babytrainers.info -babyvideoemail.com -babywalker.me -babywalzgutschein.com -babywatches-q360.ru -babyyy.live -bac24.de -baca-cod.com -baca-cof.com -bacaberitabola.com -bacahavalandirma.xyz -bacai70.net -bacapedia.web.id -bacapedia.website -bacarakor.com -bacarakorea.com -baccan.top -baccarates.com -bacchumfnr.space -bacf3e20.xyz -bacfonline.org -bacharg.com -bachelorblog.com -bachelorblogs.com -bachelorette.com -bacheloretteparty.com -bachelorpartyprank.info -bachkhoatoancau.com -bachus-dava.com -bacillsagc.space -back-replace-happy-speech.xyz -back2barack.info -back2bsback.com -backalleybowling.info -backalleydesigns.org -backbone.works -backcorrector.info -backdropcheck.xyz -backeroo.com -backfensu.cf -backfensu.ga -backfensu.ml -backfensu.tk -backflip.cf -backgroundcheck702.xyz -backhardcomp.ml -backhardcomp.tk -backity.com -backlesslady.com -backlesslady.net -backlink.mygbiz.com -backlinkaufbauservice.de -backlinkcity.info -backlinkhorsepower.com -backlinks.we.bs -backlinkscheduler.com -backlinkseo.monster -backlinkservice.me -backlinkskopen.net -backlinksparser.com -backmail.ml -backnopsi.ga -backnopsi.ml -backnopsi.tk -backpack-mam.ru -backpackadore.site -backpackcenter.site -backpackdeals.site -backpackestore.com -backpackserbia.com -backpackshops.site -backpacs.online -backpainadvice.info -backrank.com -backrespsa.cf -backrespsa.gq -backrespsa.ml -backrespsa.tk -backsaveagain.com -backspace.nyc -backtax.us -backthatsiteup.com -backtobasicsbluegrass.com -backtoliferecovery.org -backtoschoolpbc.com -backtownmic.cf -backtownmic.ga -backtownmic.gq -backtownmic.ml -backupbeaver.com -backupbeturway.com -backupblaze.com -backupbuffalo.com -backupcritic.com -backvictimbald.website -backyard-revolution.online -backyardbff.com -backyardduty.com -backyardfood.com -backyardgardenblog.com -bacninhmail.us -bacoem.icu -bacok.org -baconarro.icu -baconflu.site -baconporker.com -baconsoi.tk -baconstor.icu -bacooze.space -bacremedi.ga -bacsinhan.com -bact.site -bacti.org -bacu8x.com -bad4wyoming.com -badabingfor1.com -badaboommail.xyz -badamm.us -badatib.cf -badatib.gq -badatib.ml -badatib.tk -badatorreadorr.com -badboycompacttractor.com -badboygirlpowa.com -badboytractorpartsonline.com -badcreditloans.elang.org -badcreditloanss.co.uk -baddiefunz.com -badebal.com -badger.tel -badgerbrushes.biz -badgerbrushes.net -badgerbrushes.org -badgerbrushes.us -badgerland.eu -badgettingnurdsusa.com -badgo.ru -badgroomer.com -badhus.org -badixort.eu -badkubeh.org -badlion.co.uk -badmili.com -badmintonshop.life -badnewsol.com -badochka.ru -badonz.site -badoo.live -badoop.com -badpotato.tk -badrit.com -badroleplay.ml -badroleplay.tk -badromsrenoveringsodertalje.se -badrooms.online -badrumsrenoveringgavle.se -badsekdev.tk -badtear.buzz -badtransaction.com -badumtssboy.com -badumtxolo.com -badutqiu.website -badutquinza.com -bae-systems.tk -baebaebox.com -baelas.space -baer8x.com -baffin.dev -baffvercba.cf -baffvercba.ga -baffvercba.gq -baffvercba.tk -bafraerisun.xyz -bafrem3456ails.com -bafzci.com -bag-shopper.ru -bag-solo.ru -bag2.ga -bag2.gq -bagam-nedv.ru -bagbackca.cf -bagbackca.ga -bagbackca.gq -bagbot.com -bagcilarhastanesi.xyz -bagcilarinsesi.com -bagcilarinsesi.xyz -bagcloser.net -bagfdgks.com -bagfdgks.net -bagfillers.net -baggerpros.com -bagging.site -baghehonar.art -baghehonar.website -bagivideos.com -bagmommy.ru -bagonsalejp.com -bagoutletjp.com -bagpaclag.com -bagrgallery.ru -bagscheaplvvuitton.com -bagscheaps.org -bagscoachoutleonlinestore.com -bagscup.club -bagsguccisaleukonliness.co.uk -bagshare.com -bagshare.org -bagslouisvuitton2012.com -bagsofficer.info -bagsonline-store.com -bagsops.club -bagsowl.club -bagsray.club -bagsred.club -bagssee.club -bagsshop.futbol -bagsshopjp.com -bagssun.club -bagszap.club -bagto.earth -baguio-cns2.com -bagx.site -bagycyo.website -bahairants.org -bahcespor.info -bahgcondio.ga -bahgcondio.ml -bahgcondio.tk -bahisbaronu.com -bahiscarki.com -bahiscasinoparayatirma.xyz -bahisinkralicesi.com -bahislion1.com -bahislion14.com -bahislion2.com -bahislion22.com -bahislion34.com -bahislive.net -bahisno.bet -bahisno.info -bahisno.mobi -bahisno.site -bahisno.website -bahisno23.com -bahisno27.com -bahisnoadresi.com -bahispub.info -bahispub.org -bahissor.com -bahisstar208.com -bahisstar209.com -bahisstar211.com -bahisstar213.com -bahisstar221.com -bahisstar226.com -bahisstar228.com -bahisstar229.com -bahistek11.com -bahistek23.com -bahistek36.com -bahistek39.com -bahistek40.com -bahistek52.com -bahistek58.com -bahistek86.com -bahistek97.com -bahisturk14.com -bahisturk17.com -bahisturk23.com -bahisturk26.com -bahisturk4.com -bahisturk43.com -bahisturk44.com -bahisturk45.com -bahisturk6.com -bahisturk61.com -bahisturk65.com -bahisturk67.com -bahisturk72.com -bahisturk75.com -bahisturk76.com -bahisturk78.com -bahisturk79.com -bahisturk85.com -bahisturk86.com -bahisturk89.com -bahisturk91.com -bahisturk92.com -bahisturk95.com -bahisturk98.com -bahisturkpanel.com -bahisvegas52.com -bahisvegas55.com -bahisvegas73.com -bahiswin.net -bahisyap102.com -bahisyap107.com -bahisyap112.com -bahisyap119.com -bahisyap120.com -bahisyap123.com -bahisyap125.com -bahisyap127.com -bahisyap130.com -bahisyap138.com -bahisyap144.com -bahisyap150.com -bahisyap51.com -bahisyap54.com -bahisyap56.com -bahisyap58.com -bahisyap59.com -bahisyap60.com -bahisyap62.com -bahisyap67.com -bahisyap69.com -bahisyap71.com -bahisyap73.com -bahisyap75.com -bahisyap80.com -bahisyap84.com -bahisyap85.com -bahisyap92.com -bahisyap95.com -bahisyap98.com -bahrithe.cf -bahrithe.ga -bahrithe.gq -bahrithe.ml -bahrithe.tk -bahsinetv12.com -bahsinetv13.com -bahsinetv14.com -bahsinetv17.com -bai201.com -bai5010.com -baicaicai.com -baicaill.com -baichuan-yl.com -baicmotormyanmar.com -baiconference.com -baidadiy.com -baidarank.com -baidea.com -baidu888com.com -baidubaidu123123.info -baiducloudfile.com -baidulink.xyz -baidulove88.com -baih14.us -baijiacha.club -baikal-21.ru -baikal-autotravel.ru -baikalconsult.ru -bailbondsdirect.com -baileyb.best -baileyfamilydental.us -bailingwiredirect.com -baimena.ga -baimena.gq -baimena.ml -baimoe.com -baineeducation.com -bainesbathrooms.co.uk -baing123.club -bainspuzzle.com -baireselfie.net -baitify.com -baixarlegenda.com -bajabrewingcompany.org -bajardepesoahora.org -bajarpeso24.es -bajathough.cf -bajathough.ga -bajathough.gq -bajathough.tk -bajatyoutube.com -bajery-na-imprezy.pl -bajerydladzieci.pl -bajerynaimprezy.pl -bajyma.ru -bak.la -baka123.com -bakacloud.com -bakagame.com -bakamail.info -bakar.bid -bakaratkeliling.org -bakarina.aa.am -bakarmckennzie.com -bakatool.com -bakawiki.com -bakecakecake.com -bakerai.space -bakersfield.florist -bakersfieldoilandgas.com -bakhaus.ru -bakingandfoodconnections.net -bakingonstone.com -bakkenoil.org -baklsera.site -baknrotuslovi.xyz -bakrotizi.xyz -bala-safa.xyz -balabush.ru -balacar.club -balacavaloldoi.com -balagolfutbal.com -balalaikaguesthomes.com -balanc3r.com -balanceboard.shop -balanced.press -balancedbodypractice.org -balancedcannabis.com -balancehomespot.club -balancer.capital -balanest.com -balansfx.info -balanz.asia -balanz.care -balanz.chat -balanz.church -balanz.coffee -balanz.earth -balanz.energy -balanz.farm -balanz.fund -balanz.health -balanz.homes -balanz.llc -balanz.marketing -balanz.pet -balanz.plus -balanz.properties -balanz.rentals -balanz.social -balanz.support -balanz.team -balatmakine.xyz -balaton.com -balaway.com -balaways.com -balconat.com -balconestowers.com -balcovalisesi.xyz -balderdash.org -baldpuppy.info -baldwinparkapartments.com -baldyahea.cf -baldyahea.ga -balenciagabag.co.uk -balenko.site -balfortmyers.com -balibestresorts.com -balibrewcoffee.com -balijordytour.com -balikesirevdenevenakliyatci.xyz -balikesirgunesplastik.xyz -balikesirlilokman.xyz -balikesirotel.xyz -balimeloveyoulongtime.com -balipropertybuilder.com -balk783ke.online -balkan-club.ru -balkanrrjj.space -ball-religion.xyz -ballaratsteinerprep.in -ballardplumbingfox.com -ballavenue.xyz -ballballict.com -ballballsoft.com -balldiffuser.com -ballmails.xyz -ballman03.ml -ballman05.ml -balloonscappadocia.net -ballrosti.cf -ballrosti.ga -ballrosti.gq -ballrosti.ml -ballsod4u.com -ballsofsteel.net -ballstab.us -ballustra.net.pl -ballysale.com -balon.dev -baloondf.ga -baloqe.xyz -baloszyce-elektroluminescencja-nadpilicki.top -balparmakaricilikakademisi.com -balpha90.xyz -balsameoiw.ru -baltecosalon.ru -baltik-hollyday.ru -baltimore2.freeddns.com -baltimore4.ygto.com -baltimoreairporthotels.com -baltimorechildrensbusinessfair.com -baltimoreheroinrehab.com -baltimoreshowerglass.com -baltmetcom.ru -baltvegas.mobi -balujo.info -bam4x5.host -bamaci.com -bamastangguy.com -bambase.com -bambasmujer.com -bambee.tk -bambibutik.xyz -bambis.cat -bambkroped.cf -bambkroped.ga -bambkroped.gq -bambkroped.tk -bambtastics.online -bambtastics.space -bambuseros.com -bamcall3.com -bamcs2.com -bamcs3.com -bamdal10.com -bamdosi10.com -bamelectronic.store -bamfadmin.com -bamhub02.net -bamhunter.shop -bamminproductions.com -bamsin119.net -bamulatos.net -bamz02.com -bamz03.com -banana18.com -bananabreadrecipes.xyz -bananafarming.net -bananamails.info -bananashakem.com -bananatv.xyz -banatbatouta.com -banateknoloji.com -bancatran.net -banciaoqq59.xyz -banciomoer.com -bancobit.com -bancoopen.com -band-freier.de -bandafgr.tk -bandai.nom.co -bandamn.ru -bandar6.org -bandar66.website -bandarahoki88.com -bandarbolapialadunia.xyz -bandarcolok.info -bandarduniasbobet.com -bandarhk.site -bandarhk.website -bandarindo.casino -bandarisin4d.com -bandarjudiqq.rocks -bandarq.life -bandband1.com -bandcalledmill.com -bandeausyi.ru -bandirmagezgini.com -bandobast.xyz -bandon-cheese.name -bandon-cheese.us -bandon.name -bandoncheese.biz -bandoncheese.name -bandoncheese.us -bandoncoastfoods.biz -bandoncoastfoods.name -bandoncoastfoods.us -bandoneons.info -bandons-cheese.biz -bandons-cheese.us -bandons.name -bandons.us -bandonscheese.name -bandonscheese.us -bandraqq365.life -bandsoap.com -bandtpools.com -bandung4d.info -bandung4d.org -bandvegasy.info -bandwidthalliance.com -bandwidthalliance.net -banetc.com -bangalorearchitects.com -bangalorefoodfete.com -bangaloreinvestments.com -bangers.app -banggiaxecu.net -bangilan.ga -bangilan.ml -bangjudi.com -bangkok-mega.com -bangkok.cash -bangkok9sonoma.com -bangkokls.com -bangladesh-nedv.ru -banglamusic.co -banglanatok.co -bangsa365.xyz -bangsat.in -bangsforbuck.com -bangthagrely.xyz -bangumi.party -bangweuluwetlands.com -bangxxx.site -banhammer.network -banhbeovodich.vn -banhga.cf -banhga.ga -banhga.ml -banikata.ru -banistersdirect.com -banit.club -banit.me -banjarworo.ga -banjarworo.ml -banjarworocity.cf -bank-konstancin.pl -bank-opros1.ru -bank-tinkoff-cabinet.ru -bankaccountexpert.tk -bankcoinreserve.gives -bankcommon.com -bankcreditcardforcredit.xyz -bankermathews.com -bankinginasnap.com -bankingpartneronline.com -bankingresources.xyz -bankings.top -bankionline.info -bankloan-offer.xyz -bankofearth.earth -bankomatt.ru -bankonur.com -bankoutsider.com -bankovskaya-karta-tele2.ru -bankownedfairfieldcountyhomes.com -bankparibas.pl -bankpravo.ru -bankrobbersindicators.com -bankrotbankodin.xyz -bankrotbud.xyz -bankrotfinans.xyz -bankrotomstat.xyz -bankrotorg.xyz -bankrotsdelaem.xyz -bankrotsumma.xyz -bankrotvzim.xyz -bankrtbankkred.xyz -bankrupt1.com -bankruptcycopies.com -banks-review.ru -banks.africa -banksnearme.net -banktex.ml -banletructuyen.website -bannangem.online -bannedpls.online -banner-31.com -banner-41.com -banner-rehabhospitals.org -banner4traffic.com -bannerko.ru -bannerstandpros.com -banofamerican.best -banot.net -banqqood.ru -banquyen.xyz -banskocoliving.com -bantenpoker.website -bantin30s.online -bantisik.com -bantler.com -banubadaeraceva.com -banyakhadiah.xyz -banyanclearbrook.com -banyanclearbrook.info -banyanclearbrook.org -banyy.net -banz.site -bao160.com -baodaoxp.com -baodoisongphunu.com -baojianxue.com -baokecacchaulamviec.tk -baoloc.city -baomoi.site -baordroommedia.com -baos.site -baoslots.info -baothoitrang.org -baovephunu.site -baowengou.com -baoye365.com -baphled.com -bapter.design -baptistcreationcare.org -baptizes78lc.online -bapu.gq -bapu.ml -bapumoj.cf -bapumoj.ga -bapumoj.gq -bapumoj.ml -bapumoj.tk -bapumojo.ga -bapumojo.tk -bar24.top -baraccudacoach.ru -baracudapoolcleaner.com -barafa.gs -barajasmail.bid -barakademin.se -baramoda.com -barandesho.biz -barandesho.club -barangbekas.market -barangsuntuk221.com -barannoor.com -barasiakoa.mobi -barbabas.space -barbados-nedv.ru -barbarabottini.com -barbarianfestival.com -barbarianfestival.org -barbarious.best -barbarizes454th.online -barbaroferro.com -barbarra-com.pl -barbarrianking.com -barbeariapaulista.com -barbecueliquidators.com -barberinhills.info -barbieoyungamesoyna.com -barbodae.com -barcakana.tk -barcalovers.club -barcin.co.pl -barcinohomes.ru -barciq.com -barclays-plc.cf -barclays-plc.ga -barclays-plc.gq -barclays-plc.ml -barclays-plc.tk -barcntenef.cf -barcntenef.ga -barcntenef.gq -barcntenef.ml -barcntenef.tk -bardecor.ru -bardellins.com -bardetective.com -bardharti.cf -bardharti.ga -bardharti.gq -bardharti.ml -bards.net -bardsdadgas.space -barebackedtsc.website -bareburgers.com -barecases.com -bareck.net -bareed.ws -bareface.social -barefootcook.com -barefoottheory.com -baregyal.com -baren.org -barenshop.ru -barfanidada.com -barfdastbloc.cf -barfdastbloc.ga -barfdastbloc.tk -bargainbrowser.net -bargainho.com -bargainthc.com -bargesa.cf -bargesa.gq -bargesa.ml -bargesa.tk -baridasari.ru -baringgifts.com -bariritus.online -baris.shop -barislight.com -barking.design -barkito.se -barkmanfoods.biz -barkochicomail.com -barlas1.site -barna.bike -barna.futbol -barnebas.space -barnesandnoble-couponcodes.com -barny.space -barnyarthartakar.com -baroedaksaws.website -baronshop.com -barosuefoarteprost.com -barotir.xyz -barping.asia -barrabravaz.com -barretodrums.com -barrhq.com -barrieevans.co.uk -barrill.org -barrindia.com -barryogorman.com -barrypov.com -barrysbagel.com -barryspov.com -barrytaitz.com -barsan4818.com -barseeker.com -barsikvtumane.cf -barsikvtumane.ga -barsikvtumane.gq -barsikvtumane.ml -barsikvtumane.tk -barsmerco.cf -barsmerco.ga -barsmerco.gq -barsmerco.tk -bart-net.com -bartdevos.be -bartendersreference.com -barterboards.com -barterboards.net -bartholemy.space -bartholomeo.space -bartholomeus.space -bartizan819ch.online -bartolemo.space -bartoparcadecabinet.com -bartsch.cd -baruchcc.edu -barzan.mielno.pl -bas0scg0.xyz -basak.cf -basak.ml -basakgidapetrol.com -basakhaber.org -basalts.best -basarhamdionat.com -basatlas.xyz -basbackso.cf -basbackso.ga -basbackso.ml -basbackso.tk -bascope.icu -basculas.online -base-all.ru -base-weight.com -baseballboycott.com -basedafg.ml -baseddopl.tk -basefeeder.com -basehipovk.space -basenetradio.net -baseny-mat.com.pl -baserelief.ru -basetime.us -basgoo.com -basharg.com -basharj.com -basharje.com -bashke.info -bashke.org -bashmak.info -bashnya.info -basic-colo.com -basicbusinessinfo.com -basicgla.buzz -basicinstinct.com.us -basiclaw.ru -basicmov.xyz -basicseo.top -basicskillssheep.com -basicsofinternetmarketing.com -basingbase.com -basitcappuccino.com -basjoker.ga -basjoreb.site -basketandbath.com -basketball2in.com -basketballcite.com -basketballontv.com -basketballvoice.com -basketinfo.net -baskieninfo.se -baskinoco.ru -basnnmt.tk -basogi.xyz -basogu.xyz -basresscam.cf -basresscam.ga -basresscam.gq -bassam.xyz -basscisla.cf -basscisla.ga -basscisla.gq -basscisla.tk -basscode.org -bassot-genevieve.com -bassottipalermo.info -basssi.today -bastamail.cf -bastauop.info -bastiananke.xyz -bastianfiera.com -bastnone.site -bastore.co -bastsellstripe.com -bastwisp.ru -basurtest55ckr.tk -basvur.xyz -basy.cf -bat-990.com -bat-999.com -batanik-mir.ru -batches.info -batdongsanmiennam.xyz -batefy.info -baterias.xyz -batesmail.men -bath-slime.com -bathandbodyworksoutlettest.org -batherforearm.top -bathroomaustralia.xyz -bathrooms1.com -bathroomsbristol.com -bathshop.live -bathworks.info -batiktirnaktedavi.com -batiro.cf -batiro.ga -batiro.gq -batiro.ml -batiro.tk -batkyai.com -batlmamad.gq -batman303.biz -batmancocukterapisi.com -batmitzvahmagazine.com -batnacapitaledesaures.com -batonrougealcoholrehab.com -batonrougecocainerehab.com -batonrougeheroinrehab.com -batonrougequote.com -batpat.it -batpeer.site -batstorebuyshop.online -battelknight.pl -batteri.app -batterybargains.com -battey.me -battle-royale-games.ru -battledirector.com -battlefield1beta.com -battlegroundnc.org -battleinbmore.com -battlejuicedrink.com -battlengur.space -battleperks.com -battlepong.info -battpackblac.cf -battpackblac.ga -battpackblac.gq -battpackblac.ml -battpackblac.tk -battricks.com -batudeco.com -batugoncang.org -batumeskort.com -baturhsfm42716.cf -baturhsfm42716.ga -baturhsfm42716.ml -baturhsfm42716.tk -bau-peler.business -bau-peler.com -baubosgarden.com -bauchtanzkunst.info -bauimail.ga -baumhaus.me -baumhotels.de -bautista.club -bauwerke-online.com -bawangbodas.online -bax0599.com -baxomale.ht.cx -baxymfyz.pl -bayanarkadas.info -bayani.ru -bayareamobileeventservices.com -bayareatrim.com -bayareavegfest.org -bayburtbal.com -bayburtbal.xyz -bayburtkoyu.xyz -bayelsastatemot.icu -bayendurebeg.website -bayfibmo.cf -bayfibmo.ga -bayfibmo.ml -bayfibmo.tk -baykers.space -baykuskitabevi.xyz -baykuskitap.xyz -baylead.com -bayrakligazetesi.xyz -bayriatrap.cf -bayriatrap.ga -bayriatrap.gq -bayriatrap.ml -bayriatrap.tk -bayrjnf.pl -bayshore.edu -baysidepublishing.org -baysportfishing.net -baytrilfordogs.org -bazaaboom.com -bazaarcovers.com -bazaarfashionmagazines.com -bazakts.ru -bazaorg.ru -bazarop.com -bazavashdom.info -bazerulodge.com -bazhen.ru -bazi1399.site -bazmool.com -bazoocam.co -bazreno.com -bazybgumui.pl -bb-ins.us -bb-system.pl -bb1197.com -bb2.ru -bb24hr.com -bb24hr.net -bb265.com -bb42d8b5.xyz -bb4445.com -bb4f0c2.club -bb57822.com -bb7665.com -bb888.tk -bb9827.com -bba24.de -bba42t.us -bbabblebeanh.site -bbabblespherem.site -bbabyswing.com -bbadcreditloan.com -bbb.hexsite.pl -bbb991.com -bbbb00000.info -bbbb22222.info -bbbb44444.info -bbbbyyzz.info -bbbest.com -bbblanket.com -bbbonus.net -bbbooks.site -bbbsfoundation.com -bbc-dz.com -bbc-news-today.host -bbc-news-today.space -bbc-news24.site -bbcaijing.pro -bbcbbc.com -bbcok.com -bbcs.me -bbdd.info -bbdownz.com -bbestssafd.com -bbetweenj.com -bbfishing.ru -bbg123.com -bbhardingproducts.us -bbhatta.info -bbhost.us -bbibbaibbobbatyt.cf -bbibbaibbobbatyt.ga -bbibbaibbobbatyt.gq -bbibbaibbobbatyt.ml -bbibbaibbobbatyt.tk -bbintd.com -bbisvm.com -bbl4.net -bblogstormn.site -bblounge.co.za -bbmail.win -bbmoe.com -bbn.cloud -bborddd.live -bbov9y.us -bbox.com -bboygarage.com -bboysd.com -bbq-nation.net -bbq.monster -bbq59.xyz -bbqpeople.com -bbqstore.org -bbreghodogx83cuh.ml -bbrightclubd.site -bbrightflowe.site -bbrowsechato.site -bbruastripe.com -bbryk.live -bbs.edu -bbs8den8teudng.xyz -bbs96.us -bbsat.tk -bbse185.com -bbse191.com -bbse193.com -bbse195.com -bbse198.com -bbse199.com -bbser.org -bbsmoodle.com -bbswordiwc.com -bbtop.com -bbtotobet.online -bbtspage.com -bbubblecubed.site -bbugblanket.com -bburberryoutletufficialeit.com -bbuzzwares.site -bbw.monster -bbwin188.com -bbwin188.net -bbwin99.com -bbyth.com -bc3322.com -bc4mails.com -bc5569.com -bc590d0b.xyz -bc8037.com -bc9827.com -bc9c.com -bcamerapeak.info -bcaoo.com -bcast.store -bcast.vote -bcast.ws -bcb.ro -bcbet8989.com -bcbgblog.org -bccecac.club -bccplease.com -bccto.me -bcdick.best -bcdmail.date -bcdtrack.rocks -bcedetyam.ru -bcedetyam1.ru -bcedetyam2.ru -bcedetyam3.ru -bcfcfans.space -bcflinnovators.com -bcflplanners.com -bcg-adwokaci.pl -bchatz.ga -bchousingnews.com -bcjm4.icu -bcle.de -bcnsc.online -bcodes.site -bcompiled3.com -bconsbee.com -bcoreap.com -bcp16.site -bcpfm.com -bcqjwz.online -bcs-d.com -bcssupplies.info -bcst8.com -bctqa.host -bcvm.de -bcxaiws58b1sa03dz.cf -bcxaiws58b1sa03dz.ga -bcxaiws58b1sa03dz.gq -bcxaiws58b1sa03dz.ml -bcxaiws58b1sa03dz.tk -bcxpartners.com -bczwy6j7q.pl -bd-football.com -bd.dns-cloud.net -bd.if.ua -bd51tf.com -bd9b6555.club -bdbcba.com -bdbdqbdkdx.xyz -bdbdqbdkfb.xyz -bdbdqbdkxx.xyz -bdbdqbikbx.xyz -bdbdqbikfb.xyz -bdbdqbikqb.xyz -bdbdqbxkbx.xyz -bdbdqbxkdx.xyz -bdbdqbxkfb.xyz -bdbdqbxkqb.xyz -bdbdqbxkxx.xyz -bdbdqddkeb.xyz -bdbdqddkib.xyz -bdbdqddkxx.xyz -bdbdqdkbxb.xyz -bdbdqdkibb.xyz -bdbdqdksbb.xyz -bdbdqdxkdx.xyz -bdbdqdxknb.xyz -bdbdqdxkqb.xyz -bdbdqdxkxx.xyz -bdbdqedkbx.xyz -bdbdqedkfb.xyz -bdbdqedknb.xyz -bdbdqedksb.xyz -bdbdqekbxb.xyz -bdbdqekebb.xyz -bdbdqeknbb.xyz -bdbdqekxxb.xyz -bdbdqexkbx.xyz -bdbdqexkeb.xyz -bdbdqexkib.xyz -bdbdqexksb.xyz -bdbdqfdkdx.xyz -bdbdqfdkib.xyz -bdbdqfdknb.xyz -bdbdqfdkqb.xyz -bdbdqfkebb.xyz -bdbdqfkkbb.xyz -bdbdqfknbb.xyz -bdbdqfxkbx.xyz -bdbdqfxkdx.xyz -bdbdqfxkfb.xyz -bdbdqfxkib.xyz -bdbdqfxkkb.xyz -bdbdqfxkqb.xyz -bdbdqfxksb.xyz -bdbdqidkdx.xyz -bdbdqidkeb.xyz -bdbdqidkib.xyz -bdbdqidkkb.xyz -bdbdqidknb.xyz -bdbdqikebb.xyz -bdbdqikfbb.xyz -bdbdqikibb.xyz -bdbdqikxxb.xyz -bdbdqixkeb.xyz -bdbdqixknb.xyz -bdbdqixkqb.xyz -bdbdqixksb.xyz -bdbdqixkxx.xyz -bdbdqkdkeb.xyz -bdbdqkdkfb.xyz -bdbdqkdkib.xyz -bdbdqkdknb.xyz -bdbdqkkbxb.xyz -bdbdqkkdxb.xyz -bdbdqkknbb.xyz -bdbdqkkqbb.xyz -bdbdqkxkbx.xyz -bdbdqkxkib.xyz -bdbdqkxkkb.xyz -bdbdqkxknb.xyz -bdbdqndkeb.xyz -bdbdqndkfb.xyz -bdbdqnkebb.xyz -bdbdqnkqbb.xyz -bdbdqnksbb.xyz -bdbdqnxkeb.xyz -bdbdqnxkqb.xyz -bdbdqnxksb.xyz -bdbdqnxkxx.xyz -bdbdqqdkbx.xyz -bdbdqqdkkb.xyz -bdbdqqdknb.xyz -bdbdqqdksb.xyz -bdbdqqkfbb.xyz -bdbdqqknbb.xyz -bdbdqqkqbb.xyz -bdbdqqksbb.xyz -bdbdqqxkbx.xyz -bdbdqqxkdx.xyz -bdbdqqxkeb.xyz -bdbdqqxkfb.xyz -bdbdqqxkkb.xyz -bdbdqqxknb.xyz -bdbdqqxkqb.xyz -bdbdqqxksb.xyz -bdbdqsdkeb.xyz -bdbdqsdkfb.xyz -bdbdqsdkxx.xyz -bdbdqskdxb.xyz -bdbdqskebb.xyz -bdbdqskfbb.xyz -bdbdqskkbb.xyz -bdbdqskqbb.xyz -bdbdqsxksb.xyz -bdbdqxdkfb.xyz -bdbdqxdkxx.xyz -bdbdqxikkb.xyz -bdbdqxkbxb.xyz -bdbdqxkkbb.xyz -bdbdqxkqbb.xyz -bdbdqxksbb.xyz -bdbdqxxkib.xyz -bdbdqxxkkb.xyz -bdbdqxxknb.xyz -bdbdqxxksb.xyz -bdcl73.us -bdcw.us -bde.me -bdf.bz -bdf118.com -bdf343rhe.de -bdg56.site -bdigitalsignage.com -bdjb.xyz -bdmobiles.com -bdmuzic.pw -bdsmglossary.com -bdsvietnam24h.com -bdv3.icu -bdvsthpev.pl -be-a-dentalimplants-inone.live -be-a-savingsaccountwow.live -be-a-suvhub.live -be-a-trucksfab.live -be-a-trucksget.live -be-a-trucksjet.live -be-an-intl-new-york-hotelsnow.live -be-breathtaking.net -be-care-giver-medicaids-ok.live -be-creditcardnofeeca-ok.live -be-ergo.com -be-greatreverse-ok.mortgage -be-intl-new-york-hotels-one.live -be-intravelinsurances-ok.live -be-line.me -be-tax-prep-ok.live -be-trucks-hub.live -be0vsn.com -be321app.xyz -be401kinquiryok.com -bea32.ru -beabedbugremovalok.live -beacepu.cf -beacepu.gq -beacepu.ml -beacepu.tk -beach-homes.com -beachbodysucces.net -beachdormsy.info -beaches-in-costa-rica.com -beachfront-llc.us -beachhaven.company -beachhaven.fun -beachhouse.online -beachpeopleco.com -beacon-opt.com -beaconhillluxurylisting.com -beaconnewspaper.com -beaconstreetgroup.management -beaconstreetgroup.shop -beacordbloodbankhelpok.live -beadgolfper.cf -beadgolfper.ga -beadgolfper.gq -beadgolfper.ml -beadgolfper.tk -beadscarbons.top -beaivi.institute -bealeadershipcoach.com -bealector.com -bealsforcongress.com -beamcharger.com -bean.farm -beancooker.com -beand.org -beaniemania.net -beanimplantsjet.live -beanlignt.com -beanteamgroup.com -beanteamstaffing.com -beantein.com -beaplumbereducationok.rocks -beaplumbereducationok.sale -bear.cd -bear.supappl.me -bearcreekauto.com -beardfirst.com -bearegone.pro -bearer.net -bearer.org -bearingman.net -bearmarket2020.com -bears-rosessale.ru -bearsarefuzzy.com -bearwork.us -beastagram.com -beastmagic.com -beastmailer.com -beastrapleaks.blogspot.com -beatbase.se -beatboxer.com -beatboxyedonebashe.xyz -beatcruisesok.live -beatelse.com -beatmaker-drumkit.xyz -beatrizppe2enburg.xyz -beatrose.com -beats-discount.ru -beats-rock.com -beatsaheadphones.com -beatsbudredrkk.com -beatsbydre18.com -beatsbydredk.com -beatsdr-dreheadphones.com -beatsdre.info -beatsdydr.com -beatskicks.com -beatsportsbetting.com -beatz-shop.ru -beatztr.com -beaucomte.com -beauthey.website -beautifulhomes.us -beautifulifeurns.com -beautifulinhouses.com -beautifulinteriors.info -beautifullifestyleblog.com -beautifulmassage.ru -beautifulonez.com -beautifulrising.com -beautifulsa.space -beautifulsmile.info -beautifulvideo.ru -beautifybrides.com -beauty-gids.shop -beauty-israel.com -beauty-lamp.ru -beauty-mania.monster -beauty-pro.info -beauty-secret.info -beauty.guitars -beauty.kaufen -beauty1.website -beautybabby.xyz -beautyboo.ru -beautyboost.ru -beautycareklin.xyz -beautycentry.xyz -beautyfashionnews.com -beautyfungo.com -beautyincbd.com -beautyinthestreet.com -beautyiwona.pl -beautyjewelery.com -beautykz.store -beautylinks.info -beautylovesthebeast.com -beautynewsforyou.com -beautyothers.ru -beautypromdresses.net -beautypromdresses.org -beautysecrets.space -beautysecretss.xyz -beautyskincarefinder.com -beautytesterin.de -beautyvibesmag.com -beautywelldress.com -beautywelldress.org -beauxgadgets.com -beaverboob.info -beaverbreast.info -beaverhooters.info -beaverkit.com -beaverknokers.info -beavertits.info -beavoipphonerun.com -beaway.online -beba.icu -bebarefoot.com -bebasmovie.com -bebeautyco.com -bebedbugremovalsok.live -bebedemarcha.com -bebedemarka.com -bebegimizolsun.com -bebekbattaniyesi.xyz -bebekliyor.xyz -bebemeuescumpfoc.com -beben.xyz -bebet322.xyz -bebet327.xyz -beboldbebald.com -bebotoxok.live -bebulen.site -bebwe.com -bec-ing.com -becanada-mail.com -becas.digital -becausethenight.cf -becausethenight.ml -becausethenight.tk -becaxklo.info -becerromail.club -bechtac.pomorze.pl -beck-it.net -becksurbancanvas.com -becky.fitness -beckyandtets.com -beckygri.pw -becomestions.com -becometime.xyz -becomingelf.com -beconfidential.com -beconfidential.net -becongchongsok.live -becordbloodbankhelpok.live -becordbloodbankhelpsok.live -bedatsky.agencja-csk.pl -bedbathandbeyond-couponcodes.com -bedbgns.site -bedbooms.info -bedbugsize.club -beddingshop.futbol -beddingsshop.live -beddly.com -bedebertozino.xyz -bedeniniincelt.site -bedfadsfaidsok.live -bedore.com -bedpay.net -bedrokcommunity.org -bedroombugs.com -bedstyle2015.com -bedul.net -bedulsenpai.net -bedz.ml -bedz.tk -bee-wi.ru -beechatz.ga -beechatzz.ga -beechworthchildcare.com -beed.ml -beefback.com -beefbars.com -beefmilk.com -beefnomination.info -beefstock.buzz -beeftagflq.space -beeg69.site -beejjewels.net -beemabazar.com -beemanagementinc.org -beenfiles.com -beeonlineteens.site -beer911.app -beerchamberbeep.website -beerm.icu -beermarkit.com -beermash.com -beermonkey.org -beerolympics.se -beerpairing.org -beerpievader.com -beetlecan.com -beeveedigital.com -beeviee.cf -beeviee.ga -beeviee.gq -beeviee1.cf -beeviee1.ga -beeviee1.gq -beeviee1.ml -beeviee1.tk -beewooden.com -beforeveal.icu -begagnadebocker.se -begiehexa.com -beginagon.icu -beginchart.email -beginmeri.icu -beginnergeek.net -beginsma.xyz -beginsw.xyz -beginswi.xyz -beginswin.xyz -beginwro.recipes -beginwron.recipes -begisobaka.cf -begisobaka.ga -begisobaka.gq -begisobaka.ml -begisobaka.tk -begivverh.xyz -begnthp.tk -begoz.com -beguh.com -behandlingmarke.website -behavioral.co -behavioralhealthdata.info -behavioralhealthdata.org -behavioralhealthoutcomedata.info -behavioraloutcomesdata.info -behax.net -behindthebubbles.com -behindthescenesvideos.club -behsanacademy.com -bei.kr -beibilga.ga -beibilga.gq -beibilga.ml -beibilga.tk -beibis.com -beibleid.ru -beiclubna.ga -beiclubna.tk -beihai012.com -beihai013.com -beihai054.com -beihai068.com -beihai071.com -beihai072.com -beihai083.com -beihai086.com -beihai091.com -beihoffer.com -beijing-devops.com -beijinhuixin.com -beimplantsray.live -beincash.xyz -beiop.com -beitmak.ru -beiwody.info -bekadsjr.host -bekaselektrik.com -bekasiindihome.com -beke.site -bekirqua.cf -bekirqua.ml -bekirr.com -bel-airevisual.com -bel-seo.ru -bel.kr -belafonte.us -belairdentistry.com -belairshowerglass.com -belamail.org -belanjaonlineku.web.id -belanjaterus.shop -belapoker.biz -belarus-nedv.ru -belastingdienst-fod.email -belastingdienst.pw -belchertownfuneralhome.com -belediyeevleri2noluasm.com -belekbelediyesi.xyz -belence.cf -belence.ga -belence.gq -belence.ml -belence.tk -belengendwin.com -belfastdistilleryco.com -belgia-nedv.ru -beli4d.com -belibeli.shop -beliefnet.com -belieti.com -believeintn.org -believesex.com -belisatu.net -belisor.info -beliz-nedv.ru -belizeoasisalabang.com -belkacar.online -belkastconsulting.com -bell-bar.com -bellacheveuxhairstudio.com -bellaitaliavalencia.com -bellanotte.cf -bellaserababy.com -bellasio.net -bellavanireview.net -bellavistacosmetics.online -bellavistacosmetics.shop -bellavistagourmet.com -bellbet24.org -belleairjordanoutlet.us -belleairmaxingthe.us -belleantiques.com -bellefroghuis.com -bellenuits.com -bellevueboychoir.com -bellezaahora.xyz -bellingham-ma.us -belljonestax.com -bellmofac.ga -bellshoalsanimalhospitalofbrandon.com -bellshoalsvet.com -bellster.biz -bellster.name -bellwellcharters.com -bellyblasterkit.com -belnasil.digital -belorus-kosmetix.ru -belovedhavanese.com -belprepaid.space -belqa.com -belrochesdistribution.com -belspb.ru -belstilo.com -belt.io -beltlannio.ga -beltlannio.gq -beltlannio.ml -beltlannio.tk -beltpin.com -beltrik.ru -beluckygame.com -belujah.com -beluowu.xyz -bemacares.info -bembonitastudio.com -bembryn.xyz -bemestarfit.host -bemestarfit.space -bemony.com -bemounci.com -bemvip.online -bemvip.xyz -bemynode.com -ben-kinney-cracking.services -ben10benten.com -ben424.com -benandrose.com -benashley.net -benbircocugum.xyz -benchjacken.info -benchmarkmineralintelligence.com -benchsbeauty.info -bendingmc.online -bendini.cf -bendini.ga -bendini.gq -bendini.ml -bendini.tk -bendlinux.net -bendmerch.com -bendstays.com -benefacto.ru -benefit-badgal.ru -benefitsofchamomiletea.com -benefitsofflaxseeds.com -benefitsofglutenfree.com -benefitsofkombucha.com -benefitsquitsmoking.com -benevolo.us -benforhilldale.com -benfragladb.cf -benfragladb.ga -benfragladb.gq -benfragladb.tk -benfrey.com -bengbeng.me -bengkelseo.com -benh33mnb.buzz -benh34vcb.buzz -benhasdiscountedhomes.com -benhgaicotsong.info -benhoxie.com -benhvienmatsaigon.com -beni36kjh.buzz -beni37ggb.buzz -beni39ijh.buzz -benimatran.com -benipaula.org -benitomendezsanchez.com -benj40eii.buzz -benjamin-roesch.com -benjaminpflasterer.com -benjaminquinn.com -benjaminquinn.net -benjaminquinn.org -benjavip.com -benjis.life -benlotusmail.com -benningnavs.com -bennistdod.cf -bennistdod.gq -bennistdod.ml -bennistdod.tk -bennyrosen.com -benpict.xyz -bensebbs.org -bensinstantloans.co.uk -bental.xyz -bentblogging.com -bentleypaving.com -bentoboxmusic.com -bentolabs.com -bentonshome.cf -bentonshome.tk -bentonstesting.cf -bentonstesting.tk -bentonvillepropertylistings.com -bentwillys.info -benwola.pl -benwoodburn.news -benzi.app -beo.kr -beoemyxa.shop -beoff.me -beoilchangesbuy.live -beoilchangewow.live -beonweb.ru -beoutq.stream -bepackaging.com -bepc417.xyz -bepdfmanuales.xyz -bepdientugiare.net -beplumbereducationok.sale -beplumbereducationok.video -bepoibepa.com -beporitukl.ml -beppumaru.online -beqonay.site -beranabooks.info -berandi.com -beratokus.tk -berawa-beach.com -berbaban.cf -berbaban.gq -berbaban.tk -berbowsra.cf -berbowsra.ml -berbowsra.tk -bercstuferca.tk -berdeen.com -beremkredit.info -bereniki.com -bererece.com -beresleting.cf -beresleting.ga -beresleting.gq -beresleting.ml -beresleting.tk -beret-prolithium.online -berettachiro.net -berettachiropractic.net -berfamily.com -bergandridge.shop -bergandridge.store -bergandridge.us -bergmoneyclub.ru -bergpegkupt.gq -bergpegkupt.ml -bergpegkupt.tk -beri-delay.ru -beriarenda.ru -beriastuias.club -beriazadda.club -beribase.ru -beribaza.ru -beridelo.ru -beriglobal.ru -berigroup.ru -beriinfo.ru -berirabotay.ru -berischool.ru -beriseikeb.live -berishkola.ru -beristeam.ru -beritagila.com -beritaproperti.com -beritvorit.ru -beriudlugi.ru -beriuslugi.ru -berizals.world -berizter.club -berjaya777.live -berkah-herbal.com -berkahwkr.com -berkatrb.com -berkeleytree.com -berkem12.tk -berkmelek.tk -berkmj.info -berkshireheatingandac.com -berlincoding.com -berlios.online -berlusconi.cf -berlusconi.ga -berlusconi.gq -berlusconi.ml -bermang.com -bermr.org -bern4love.com -berna.kim -bernhardshipps.com -bernieruess.com -bernsja.com -bernsndrs4.us -beroazsd.xyz -berodomoko.be -beroigased.gq -beroinavik.tk -beroitum.gq -berouzresaan.com -berouzresan.com -berozresaan.com -berquist.org -berracom.ph -berry-race.com -berryang.icu -berryblitzreview.com -berryclo.xyz -berrycloc.xyz -berrymail.men -berrypi.xyz -berrypian.xyz -berrypl.xyz -berryslawn.com -berryswipe.buzz -berrywh.xyz -bersama365.club -bershka-terim.space -bertackbi.ga -bertackbi.gq -bertarikkofish.xyz -bertiaxza.site -bertisa-store.club -beruka.org -besasang.com -besguses.pro -beshc.us -beshox.fun -besirogullarilojistik.xyz -besltd.net -besmartheal.ru -besome401kinquiriesok.com -besomedfadsfaidok.live -besometopcrossoversonthemarketsok.live -besplatnie-conspecti.ru -besplatnoigraj.com -besplodie.info -besseller.com -best-2222.com -best-advert-for-your-site.info -best-airmaxusa.us -best-asianbrides.org -best-bet999.com -best-bonus-zone2.life -best-carpetcleanerreviews.com -best-casino.online -best-cruiselines.com -best-day.pw -best-deal.host -best-detroit-doctors.info -best-electric-cigarettes.co.uk -best-email.bid -best-firewall.com -best-fiverr-gigs.com -best-info-greate.ru -best-mail.net -best-market-search.com -best-money.ru -best-news.website -best-nj.com -best-of-british.net -best-paydayloan24h7.com -best-personal-loan-in-town.info -best-pneumatics.ru -best-pnevmatic.ru -best-promo-codes.us -best-scifi.com -best-seller.icu -best-store.me.uk -best-tanning-lotions.com -best-things.ru -best-ugg-canada.com -best-vavada48.ru -best-womennow2.com -best121adultdates.com -best1x.site -best46.xyz -best4you2021.space -best566.xyz -best8520rv.com -bestacupuncturecharlotte.com -bestad2020.host -bestadvertisingsolutions.info -bestantiwrinklesolutions.com -bestats.top -bestattach.gq -bestbagaffordable.online -bestbaltimoreattorney.com -bestbaltimorelawyer.com -bestbanyabochka.ru -bestbargaindealz.org -bestbdplayer.com -bestbestbest.club -bestbets123.net -bestbooksite.site -bestbrush.org -bestbrushcompany.net -bestbrushcompany.org -bestbrushcompany.us -bestbrushes.us -bestbugstudio.com -bestbuy-couponcodes.com -bestbuyssites.com -bestbuysswebbs.com -bestbuysswebs.com -bestbuysswebss.com -bestbuyswebs.com -bestbuyvips.com -bestbyuaty.ru -bestcanadagoosejacketsoutlet.com -bestcarpetcleanerreview.org -bestcarshost.com -bestcastlevillecheats.info -bestchannelstv.info -bestcharlottedecompression.com -bestcharm.net -bestcheapdeals.org -bestcheapshoesformenwomen.com -bestchecker.club -bestchertynore.club -bestchoiceofweb.club -bestchoiceroofingmacon.com -bestchoiceroofingnewportnews.com -bestchoiceusedcar.com -bestcigarettemarket.net -bestcityinformation.com -bestcloudhostingforasp.com -bestcoasthomes.app -bestcodingbooks.com -bestcoins.xyz -bestcommercialmortgagerates.com -bestcontractorumbrella.com -bestcouponindia.xyz -bestcpacompany.com -bestcraftsshop.com -bestcreditcart-v.com -bestcustomlogo.com -bestdamndadever.com -bestdarkspotcorrector.org -bestdates.xyz -bestdateshere23.com -bestdavenportchiropractor.com -bestday.pw -bestdealsdiscounts.co.in -bestdentistofficenearme.com -bestdento.site -bestdesign2020.website -bestdickpills.info -bestdiningarea.com -bestdizua.cf -bestdizua.ga -bestdizua.ml -bestdizua.tk -bestdmvevents.com -bestdogovornyematchi.ru -bestdownjackets.com -bestdvdblurayplayer.com -beste-slots-online.host -bestelectroscooters.com -bestemail.bid -bestemail.stream -bestemail.top -bestemail2014.info -bestemail24.info -bestenuhren.com -bestescort4u.com -besteurotrip.xyz -besteverseocompany.com -bestevidencebasedpractice.com -bestexerciseequipmentguide.com -bestfaithfilms.com -bestfakenews.xyz -bestfinancecenter.org -bestfitnessidia.host -bestfitnessidia.space -bestfitnesstips.site -bestforexbroker.ru -bestfork0di.com -bestfuelefficientsuvs.com -bestfun88.com -bestfunctionalrehab.com -bestfuture.pw -bestg1rls.ru -bestgames.ch -bestgames.icu -bestgames4fun.com -bestgamingmonitorden.com -bestgenericviagra.website -bestgifok.ru -bestglockner.com -bestglutenfreerecipes.org -bestgoodsz.com -bestguccibags.com -bestguidesapp.com -bestgunsafereviews.org -besthairbrushstraightener.com -besthdtelevisions.com -besthealthinsurance.ru -besthendge.ru -besthistorytour.com -besthomeamateurxxx.info -besthostever.xyz -besthunting.ru -bestindexes.com -bestinfonow.cf -bestinfonow.tk -bestinfurniture.com -bestinnature.ca -bestinstrumentiyq.ru -bestintershop.ru -bestinvertergeneratorinfo.com -bestitb.online -bestitem.icu -bestjerseysforu.com -bestjewelrycrafts.club -bestkeylogger.org -bestkitchenknifeset.today -bestkitchens.fun -bestlakertickets.com -bestlawyerinhouston.com -bestlistbase.com -bestlocalrating.net -bestloot.tk -bestlordsmobilehack.eu -bestlovesms.com -bestlovestatus.website -bestlucky.pw -bestmail-host.info -bestmail2016.club -bestmail365.eu -bestmailer.gq -bestmailer.tk -bestmailgen.com -bestmails.tk -bestmailtoday.com -bestmarksites.info -bestmedicinedaily.net -bestmedicinehat.net -bestmemory.net -bestmitel.tk -bestmlmleadsmarketing.com -bestmogensen.com -bestmonopoly.ru -bestn4box.ru -bestnecklacessale.info -bestnerfblaster.com -bestneuropathytreatment.com -bestnewnashville.com -bestnews365.info -bestnewvacuums.com -bestnycweb.com -bestofamor.com -bestofbarcelona.net -bestofbest.biz -bestofferforbigwin.site -bestofferguidez.com -bestoffersite.store -bestoffersonline.stream -bestoffworld.ru -bestofironcounty.com -bestofprice.co -bestoftodaynews.site -bestofyou.blog -bestofyou.news -bestofyours.com -bestoilchangeinmichigan.com -bestonlinecasinosworld.com -bestonlineusapharmacy.ru -bestoption25.club -bestowed.ru -bestparfum43.ru -bestpaycenter2.com -bestpdfmanuales.xyz -bestpestsydney.com -bestphilippinebrides.com -bestphonecasesshop.com -bestpieter.com -bestpochtampt.ga -bestpokerlinks.net -bestposta.cf -bestpozitiv.ru -bestpracticesneurologicrehab.com -bestpressgazette.info -bestprice.exchange -bestprice2020.store -bestpricehotwater.com -bestprizesinside.com -bestquizmaker.com -bestraros.cf -bestraros.ga -bestraros.gq -bestraros.ml -bestraros.tk -bestrecipes99.com -bestregardsmate.com -bestregisteredagentservices.org -bestrestaurantguides.com -bestreviewsonproducts.com -bestrhinopills.com -bestrhums.com -bestring.org -bestsaid.net -bestsellerbookfunnels.net -bestsellingbookfunnelsecrets.com -bestseniorlivinghomenearme.com -bestsentence2020.host -bestsentence2020.site -bestsentence2020.space -bestsentence2020.xyz -bestseojobs.com -bestseomail.cn -bestservice.me -bestserviceforwebtraffic.info -bestshopcoupon.net -bestshoppingmallonline.info -bestshopsoffer.com -bestshows.xyz -bestsidebiz.com -bestsleeping.com -bestsmesolutions.com -bestsnowgear.com -bestsoundeffects.com -bestspeakingcourses.com -bestspiral.info -bestspmall.com -bestsportsnutrition.shop -bestsquad.org -bestsunshine.org -besttalent.org -besttandberg.com -besttantvil.cf -besttantvil.ga -besttantvil.gq -besttantvil.ml -besttantvil.tk -besttaxlawfirms.net -bestteethwhiteningstripss.com -besttempmail.com -bestthailandbrides.com -besttoggery.com -besttonighttopdating.com -besttop.info -besttopadultdating.com -besttopbeat.com -besttopbeatssale.com -besttopdeals.net -besttrade24.ru -besttrialpacksmik.com -besttrommler.com -besttttparsigrrram.club -besttwoo1.info -bestudio327.xyz -bestudio41.xyz -bestudio48.xyz -bestudio49.xyz -bestuggbootsoutletshop.com -bestuniformscrubs.com -bestvalentinedayideas.com -bestvalue-properties.com -bestvaluehomeappliances.com -bestvashikaran.com -bestvideogamesevermade.com -bestvirtualrealitysystems.com -bestvpn.top -bestvpshostings.com -bestw.space -bestwatches.com -bestways.ga -bestwebsitebuilder.com -bestweightlossfitness.com -bestwesternpromotioncode.org -bestwindows7key.net -bestwish.biz -bestwishes.pw -bestworldcasino.com -bestworldsbiz.com -bestworldwidestore.com -bestwrinklecreamnow.com -bestyoumail.co.cc -bestyourchoiceofproducts.site -besun.cf -bet-boom202.com -bet-boom203.com -bet-boom206.com -bet-boom208.com -bet-boom209.com -bet-boom210.com -bet-boom212.com -bet-boom215.com -bet-boom216.com -bet-boom219.com -bet-boom223.com -bet-boom224.com -bet-boom225.com -bet-boom227.com -bet-boom228.com -bet-boom231.com -bet-boom232.com -bet-boom233.com -bet-boom236.com -bet-boom237.com -bet-boom242.com -bet-boom243.com -bet-boom246.com -bet-boom249.com -bet-boom252.com -bet-boom253.com -bet-boom255.com -bet-boom257.com -bet-boom258.com -bet-boom259.com -bet-boom260.com -bet-boom261.com -bet-boom262.com -bet-boom263.com -bet-boom264.com -bet-boom265.com -bet-boom266.com -bet-boom267.com -bet-boom269.com -bet-boom270.com -bet-boom271.com -bet-boom274.com -bet-boom275.com -bet-boom276.com -bet-boom281.com -bet-boom283.com -bet-boom284.com -bet-boom285.com -bet-boom286.com -bet-boom287.com -bet-boom289.com -bet-boom290.com -bet-boom291.com -bet-boom292.com -bet-boom294.com -bet-boot.net -bet-fi.info -bet-g365.com -bet-sliv.ru -bet2c.com -bet321online.xyz -bet321site.xyz -bet323apartments.xyz -bet323service.xyz -bet325group.xyz -bet365agent.com -bet43design.xyz -bet49day.xyz -bet49design.xyz -bet4shop.com -bet79.us -bet9.biz -bet9.mobi -bet90.design -beta-access.online -beta.inter.ac -beta.tyrex.cf -betabhp.pl -betaboks.com -betaboks.net -betaboks.org -betaforcemusclereview.com -betangeles150.com -betano7.com -betanywhere.com -betaprice.co -betarbeton.ru -betasoftechnologies.net -betasus125.com -betasusgiris1.com -betatomail.com -betauer.com -betayun.com -betbalnew.xyz -betbarg1.org -betbargone.com -betbargone.org -betbax.com -betbet.club -betbien5.com -betbigo100.com -betbigo102.com -betbigo78.com -betbigo99.com -betbing.com -betbola88.biz -betboom-partnerka.ru -betboss28.com -betboss29.com -betboss31.com -betboss32.com -betboss37.com -betboss38.com -betboyclub.com -betcashafrica.com -betchan22.com -betcity-app.ru -betcity-in.ru -betcity-ok.ru -betcity.app -betclubdf5.site -betclup.com -betcmc.xyz -betcoen.com -betcooks.com -betcups.info -betcups.net -betcups.org -betdepo.com -betdolar4.com -betdolar9.com -betdr7.com -beteajah.ga -beteajah.gq -beteajah.ml -beteajah.tk -betebartarr777.online -betemail.cf -betermalvps.com -betestream11.com -betestream23.com -betestream25.com -betestream27.com -betestream28.com -betestream29.com -betestream30.com -betestream31.com -betestream32.com -betestream35.com -betestream36.com -betestream37.com -betestream38.com -betestream39.com -betestream40.com -betestream41.com -betestream42.com -betestream44.com -betestream46.com -betestream48.com -betestream49.com -betexper23tv.com -betexpertv5.com -betezpro.com -betfafa.com -betfairinfo.ru -betfenomen.org -betfest10.com -betfest8.com -betfire24.com -betflix.ru -betforbet1.com -betforward.design -betforward.poker -betforward.review -betfred888.net -betfun.ru -betgen.space -betgen999.com -betgiris.space -betgit46.com -betgit48.com -betgo6.run -betgramtv29.com -betgrey.net -bethandethan.info -bethanynixon.buzz -bethbrombal.com -bethe401kinquiryok.com -bethere4mj4ever.com -bethesdashowerglass.com -bethesedfadsfaidsok.live -bethesetopcrossoversonthemarketsok.live -bethguimitchie.xyz -bethongkong.live -bethosedfadsfaidok.live -bethoughtfulfox.com -betico47.com -betidn.org -betindo88.com -betinebet105.com -betinebet106.com -betinebet107.com -betinmexico.com -betipster.app -betiran35.bet -betiran38.bet -betistyenigiris.xyz -betjek3.com -betkarat.com -betkarat20.com -betkava.com -betlae.com -betland.fun -betlenssu.cf -betlenssu.ga -betlenssu.gq -betlenssu.tk -betlevis.com -betliketv10.com -betliketv13.com -betliketv16.com -betliketv17.com -betliketv18.com -betliketv19.com -betliketv20.com -betliketv21.com -betliketv23.com -betliketv24.com -betliketv25.com -betliketv8.com -betliketv9.com -betmahaltv.com -betmanset103.com -betmanset104.com -betmanset111.com -betmarinotv.com -betmarj.com -betmarlo10.com -betmars.net -betmaru.com -betmasterss2.ru -betmax88.net -betmili.ga -betmili.ml -betmili.tk -betmoon.net -betmoon.org -betmoon25.com -betmoonaffiliates.net -betmoonaffiliates.org -betmoris126.com -betmove888.com -betnano102.direct -betnano103.direct -betnano104.direct -betnano105.direct -betnano37.direct -betnano38.direct -betnano44.com -betnano62.direct -betnano68.direct -betnano71.com -betnano72.com -betnano95.direct -betnano99.direct -betnaste.tk -betnesia.net -betnis40.com -betnis86.com -betnis87.com -betnis89.com -betodesa.com -betoffice206.com -betoffice224.com -betofis.net -betofis10.com -betofis101.com -betofis103.com -betofis105.com -betofis106.com -betofis107.com -betofis108.com -betofis109.com -betofis110.com -betofis111.com -betofis113.com -betofis114.com -betofis115.com -betofis118.com -betofis121.com -betofis123.com -betofis124.com -betofis126.com -betofis127.com -betofis128.com -betofis129.com -betofis130.com -betofis131.com -betofis133.com -betofis134.com -betofis135.com -betofis138.com -betofis14.com -betofis140.com -betofis141.com -betofis142.com -betofis143.com -betofis145.com -betofis146.com -betofis147.com -betofis148.com -betofis149.com -betofis150.com -betofis16.com -betofis18.com -betofis19.com -betofis2.com -betofis20.com -betofis21.com -betofis22.com -betofis23.com -betofis25.com -betofis26.com -betofis28.com -betofis29.com -betofis30.com -betofis31.com -betofis32.com -betofis34.com -betofis37.com -betofis4.com -betofis40.com -betofis41.com -betofis42.com -betofis43.com -betofis47.com -betofis49.com -betofis5.com -betofis50.com -betofis55.com -betofis57.com -betofis58.com -betofis6.com -betofis62.com -betofis63.com -betofis64.com -betofis65.com -betofis66.com -betofis68.com -betofis69.com -betofis7.com -betofis70.com -betofis71.com -betofis73.com -betofis74.com -betofis75.com -betofis76.com -betofis77.com -betofis78.com -betofis8.com -betofis81.com -betofis83.com -betofis85.com -betofis86.com -betofis88.com -betofis90.com -betofis91.com -betofis95.com -betofis96.com -betofis97.com -betofis98.com -betofis99.com -betographs.online -betohas.xyz -betoji38.com -betonchehov.ru -betonhim.ru -betonoweszambo.com.pl -betonpolitics.email -betonpolitics.global -betonpolitics.mobi -betonpolitics.news -betonpolitics.social -betonpolitics.support -betonsports.dev -betontv.com -betoob.online -betopcrossoversonthemarketok.live -betpab50.club -betpapel.info -betpara1000.com -betpara200.com -betpara300.com -betpara38.com -betpara400.com -betpara43.com -betpara44.com -betpara46.com -betpara500.com -betpara51.com -betpara52.com -betpara53.com -betpara54.com -betpara55.com -betpara56.com -betpara57.com -betpara59.com -betpara60.com -betpara600.com -betpara63.com -betpara67.com -betpara69.com -betpara71.com -betpara72.com -betpara74.com -betpara76.com -betpara78.com -betpara79.com -betpara80.com -betpara81.com -betpara82.com -betpara83.com -betpara85.com -betpara86.com -betpara88.com -betpara89.com -betpara90.com -betpara92.com -betpara93.com -betpara94.com -betpara95.com -betpara96.com -betpara97.com -betpara98.com -betpara99.com -betperform.fun -betplaypartner.com -betpluton.fun -betpoundsgunceladres.com -betpoundssikayet.com -betr.co -betrax.ml -betrekabet46.com -bets-spor.com -bets-ten.com -bets10uyeol.co -betsalon004.com -betsalon007.com -betsalon065.com -betsalon37.com -betsalon38.com -betsanal.com -betsat89.com -betsatgirisi.xyz -betsbest24.ru -betscsgo.pro -betscsgo2.org -betsdot22.com -betsdot24.com -betsdot29.com -betsdot34.com -betsend26.com -betsend29.com -betsend30.com -betsend33.xyz -betsendsikayet.com -betshoma.club -betsidney109.com -betsilin4.com -betsilin43.com -betsitem404.com -betsitem874.com -betsnap.xyz -betsntips.info -betsoo26.com -betsuing.com -betswiss.net -betsygeorge.com -better-built-homes-and-gardens.com -better-place.pl -better.in.net -better06.site -betterathome.live -betterbusinesswebs.com -bettercoffe.com -betterdiagnostics.online -betterlab.net -betterlink.info -betterlivingofrochester.com -bettermail24.eu -bettermail384.biz -bettermedicine.net -bettermfg.com -betterorganizedgarages.com -betterproperty.com -bettershop.biz -bettersmell.com -bettersmokefree.com -bettersmokefree.net -bettersmokefree.org -bettersunbath.co.uk -betterwaydelivery.info -betterwisconsin.com -betterwisconsin.net -betterwisconsin.org -bettilt70.com -betting777.net -betting786.net -bettingsnap.xyz -bettiret.tk -betto888.com -bettsnap2020.xyz -betttt.info -betturan.com -bettycropper.com -bettysnewyork.com -betvakti55.com -betvakti58.com -betvakti81.com -betvakti86.com -betvakti92.com -betvietbank.com -betvirtus.com -betwim.info -betxlarge14.com -betxtr88.com -betxtr90.com -betyap12.com -betyap13.com -betyap15.com -betyap17.com -betyap2.com -betyap23.com -betyap25.com -betyap27.com -betyap3.com -betyap49.com -betyap50.com -betyap6.com -betyap7.com -betyap8.com -betzakhar.xyz -betzan3.com -beuczbkq.shop -beumebu.cf -beupmore.win -beutyfz.com -bever2ymits.xyz -beveragedictionary.com -beverageglossary.com -beveragesshop.life -beverlyharing55places.com -beverlyhillstelecom.com -beverlytx.com -bevhattaway.com -bevsemail.com -bewakingscamera.shop -beweb.xyz -bewedfv.com -beweightlossinfoesok.live -bewleysnorthamerica.com -bewleysusa.com -bewumarkets.site -beyazceviz.xyz -beyazitnewporthotel.com -beyazmuzayede.istanbul -beymail.com -beyoglunet.xyz -beyogluprofiloservisi.com -beyoncenetworth.com -beyondecstasy.info -beyondsightfoundation.org -beyondthemall.com -beyondwallssquash.org -beyreklam1.xyz -beysehirlimited.xyz -beytavder.org -beyzaalemci.cf -beyzadeavukatlik.xyz -bez-kompleksov.site -bezblednik.pl -bezique.info -bezlimitu.waw.pl -bezosfamilyfoundation.ong -bezpartyjnikukiz.org -bezpartyjnisamorzadowcykukiz.org -bezsraciek.sk -bezvodki.ru -bezzppearar.cf -bezzppearar.ga -bezzppearar.tk -bezzsewheelw.cf -bezzsewheelw.ga -bezzsewheelw.gq -bezzsewheelw.ml -bezzsewheelw.tk -bf053.com -bf3hacker.com -bf8819.org -bf8878.com -bfat7fiilie.ru -bfax.email -bfbr6.us -bfdsfgrg8bnvce.monster -bfdwam.us -bfdyn.com -bffdwgrg.shop -bfg1yh.best -bfgasdsd.site -bfhbrisbane.com -bfhgh.com -bfig.xyz -bfile.site -bfitcpupt.pl -bflier.com -bfo.kr -bfory.ru -bfoyk.live -bfre675456mails.com -bfremails.com -bfsnan.com -bftoyforpiti.com -bfuli.xyz -bfull.site -bfuz8.pl -bfzutpeo.shop -bg-di.com -bg-report.com -bg4llrhznrom.cf -bg4llrhznrom.ga -bg4llrhznrom.gq -bg4llrhznrom.ml -bg4llrhznrom.tk -bg613.top -bgboad.ga -bgboad.ml -bgchan.net -bgd32.com -bget0loaadz.ru -bget3sagruz.ru -bgfibank.cd -bgget2zagruska.ru -bgget4fajli.ru -bgget8sagruz.ru -bgi-sfr-i.pw -bgisfri.pw -bgmilya.ru -bgmktgsolutions.net -bgolive.org -bgoy24.pl -bgpwall.org -bgsaddrmwn.me -bgsb.site -bgsimpson.com -bgtechnik.tk -bgtedbcd.com -bgth.site -bgtmail.com -bgtmirror.ru -bgtservices.com -bgx.ro -bgzbbs.com -bhaappy0faiili.ru -bhaappy1loadzzz.ru -bhadoomail.com -bhag.us -bhakti-tree.com -bhambriinternational.com -bhappy0sagruz.ru -bhappy1fajli.ru -bhappy2loaadz.ru -bhappy3zagruz.ru -bhapy1fffile.ru -bhapy2fiilie.ru -bhapy3fajli.ru -bharatpatel.org -bhay.org -bhbh.online -bhbh.shop -bhbh.space -bhbh.website -bhcfp.com -bhcompliance.net -bhcompliance.org -bhd3ch.com -bhddmwuabqtd.cf -bhddmwuabqtd.ga -bhddmwuabqtd.gq -bhddmwuabqtd.ml -bhddmwuabqtd.tk -bhebhemuiegigi.com -bheriyji.shop -bhfeed.com -bhgm7.club -bhhsblake.biz -bhk.casino -bhk9c1su3.xyz -bhk9yp6glh.men -bhkvzgkzx.shop -bhmhg.com -bhmhtaecer.pl -bhmobilemail.com -bho.hu -bho.kr -bhollander.com -bhpdariuszpanczak.pl -bhqxv.us -bhrenovarb.ru -bhringraj.net -bhrofficial.online -bhrpsck8oraayj.cf -bhrpsck8oraayj.ga -bhrpsck8oraayj.gq -bhrpsck8oraayj.ml -bhrpsck8oraayj.tk -bhs70s.com -bhslaughter.com -bhss.de -bhswlx.com -bhtcnpm.ga -bhu1b.info -bhuiyanadagency.com -bhumi.ong -bhuyarey.ga -bhuyarey.ml -bhwshop.com -bhx.money -bhzdqb.us -bi-meca.com -bi0qq.us -bi456.com -bia.digital -bia20446216.xyz -bia20645613.xyz -bia20866047.xyz -bia21168958.xyz -bia21995383.xyz -bia22010427.xyz -bia23207112.xyz -bia24485224.xyz -bia24751152.xyz -bia25249609.xyz -bia25424823.xyz -bia25829333.xyz -bia26272077.xyz -bia27414248.xyz -bia27461573.xyz -bia28413456.xyz -bia28952946.xyz -bia29541220.xyz -bia29547088.xyz -bia29548522.xyz -bia29556265.xyz -bia29564886.xyz -bia29568185.xyz -bia29571547.xyz -bia29582343.xyz -bia29595493.xyz -bia29598272.xyz -bia29612283.xyz -bia29621328.xyz -bia29622726.xyz -bia29626744.xyz -bia29667004.xyz -bia29701556.xyz -bia29716378.xyz -bia29726932.xyz -bia29734429.xyz -bia29742659.xyz -bia29743532.xyz -bia29753635.xyz -bia29753640.xyz -bia29782852.xyz -bia29785320.xyz -bia29821800.xyz -bia29862834.xyz -bia29882873.xyz -bia29890050.xyz -bia29894373.xyz -bia29902971.xyz -bia29905875.xyz -bia29924068.xyz -bia29926145.xyz -bia29939022.xyz -bia2baazi.com -bialy.agencja-csk.pl -bialystokkabury.pl -bian.capital -bianat.net -bianco.cf -bianco.ga -bianco.ml -biaplunsuc.cf -biaplunsuc.ga -biaplunsuc.gq -biaplunsuc.tk -biazz2.live -bibars.cloud -bibbiasary.info -bibersurubu.site -bibibet.network -bibicaba.cf -bibicaba.ga -bibicaba.gq -bibicaba.ml -bibizesor.com -bible-survey.com -bibleblog.com -bibleshark.com -biblesmuggler.com -bibliadoemagracimento.com -bibliapopular.org -bibliavulgata.com -biblica.dev -biblicallongevitymiracle.com -biblider.ru -biblio-globus.space -bibliobot.net -bibliobot.org -bibliographic.info -bibliomani.se -biblioostrov.ru -bibliotecadigital.site -bibliotecavirtualturner.com -bibliotekadomov.com -bibnchip.net -biboxcons.cf -biboxcons.ga -biboxcons.gq -biboxcons.ml -biboxcons.tk -bibucabi.cf -bibucabi.ga -bibucabi.gq -bibucabi.ml -bicbank.cd -bicence.com -biceoutlets.site -bicienvia.com -bickwanck.com -bico.site -bicyclddjg.space -bicyclemaze.com -bicyclesforum.com -bid4africa.com -bid4wheels.com -bidb8r.xyz -bidcoin.cash -bidcoin.money -bidcoin.site -bidcoin.space -bidcoins.network -bidcoins.online -bidcoins.space -bidelateptque.com -bidjapan.net -bidli.com -bidly.pw -bidolukampanya.online -bidolukampanya.xyz -bidoubidou.com -bidourlnks.com -bidplatform.click -bidplatform.org -bidplatform.space -bidslammer.org -bidstreamer.net -bidu.cf -bidu.gq -bidvmail.cf -bieberclub.net -biedaw.xyz -biedra.pl -biedron2020.com -biegamsobie.pl -bielizna.com -bieliznasklep.net -bienparisy.info -bier.cool -bierstadtlagerhaus.com -bieszczadyija.info.pl -bietthunghiduong.website -bievent.xyz -biewogofo.ml -bieyfcanp.ml -bieyfcanpaad.ml -bifaqp.com -bifaqp.net -bifayl.com -bifayl.net -bifayouxi.net -bifayule.net -bifrost.su -bifvlog.com -big-cactus.host -big-dig.ru -big-discounts.online -big-max24.info -big-mro.com -big-news.top -big-phone.ru -big-possible.net -big-post.com -big-prizes-place4.life -big-sales.ru -big-wife.xyz -big1.us -big2poker.online -big5time.com -big777a.org -big88bet.online -bigatel.info -bigbang-1.com -bigbangfairy.com -bigbash.ru -bigbayouyouth.com -bigbearshop.ru -bigbeastbucks.com -bigbet4d.com -bigbetco.info -bigbetco.org -bigbets90.org -bigbluqffr.space -bigbn.com -bigbobs.com -bigbohmmer252.com -bigboobyasians.com -bigboostmaxpro.com -bigbowltexas.info -bigboy.org -bigbreast-nl.eu -bigbro.website -bigbropoker.best -bigbropoker.biz -bigcactus.space -bigchance.com -bigcock.black -bigcock.monster -bigcocklive.com -bigcoin.best -bigcrazystore.com -bigcrop.pro -bigdat.fun -bigdeal.media -bigdealinc.co -bigdepo-onlinecasi2020.online -bigdogautoparts.com -bigdresses.pw -bigeasytobacco.com -bigeasytobacconist.com -bigel.com -bigfangroup.info -bigfangroup.name -bigfastmail.com -bigfatmail.info -bigfoottickets.com -bigg.pw -biggblamgen.cf -biggblamgen.ml -biggblamgen.tk -biggboss12.us -biggerbuttsecretsreview.com -biggestdeception.com -biggestgay.com -biggestresourcelink.info -biggestresourceplanning.info -biggestresourcereview.info -biggestresourcetrek.info -biggestyellowpages.info -bigguy.site -bighome.site -bighost.bid -bighost.download -bigideamastermindbyvick.com -bigify.com -bigimages.pl -biginfoarticles.info -bigjoes.co.cc -biglietta.online -biglinks.me -biglive.asia -bigload.fun -biglol.club -bigmail.info -bigmine.ru -bigmon.ru -bigmood.xyz -bigoofficial.com -bigorbust.net -bigotes.org -bigpicnic.ru -bigpicturecharts.com -bigplace.online -bigprizesishere10.life -bigprofessor.so -bigredtour.net -bigseopro.co.za -bigsizetrend.com -bigsocalfestival.info -bigspotpanel.com -bigstart.us -bigstring.com -bigtetek.cf -bigtetek.ga -bigtetek.gq -bigtetek.ml -bigtetek.tk -bigtoken.cryptolovers.id -bigtokenican2.hmail.us -bigtokenican3.hmail.us -bigtonehorsens.com -bigtuyul.me -bigtw.at -bigua.info -bigvalleybingo.com -bigvalleydesign.com -bigvietnam.online -bigwavedigital.com -bigwhoop.co.za -bigwiki.xyz -bigwin333.org -bigxxx.space -bigzmei.site -bih2dd.com -biiba.com -bij.pl -bijouterie-savinel.com -bijouxredo.com -bikebee.ru -bikebee.space -bikebee.website -bikebee.xyz -bikebees.bike -bikebees.biz -bikebees.guru -bikebees.info -bikebees.net -bikebees.online -bikeforthebuns.info -bikehikecanada.com -bikekhabri.com -bikelabel.com -bikerboof.com -bikerbrat.com -bikerglossary.com -bikerslawyer.com -bikesatnight.com -bikesculpture.com -bikesculptures.com -bikesshop.live -bikethebyways.com -biketrend.se -bikevideos.ro -bikeway.online -bikingwithevidence.info -bikiniclock.com -bikinihiitchallenge.com -bikissimo.com -bikser.ru -bikubiku.com -bilans-bydgoszcz.pl -bilbyihva.space -bilderbergmeetings.org -bilderservice.org -bildikyerim.com -bile.best -bilecikorganizasyon.com -bilestone.best -biletalsat.xyz -biletgrup.com -biletsavia.ru -biletteatr24.ru -bileuder.site -bilgetrade.com -biliberdovich.ru -bilingualbibles.org -bilisimyayincilik.com -bilistand.site -bill-consolidation.info -bill.pikapiq.com -bill.vote -billardhall.com -billcarpenterservicesinc.com -billcromie.net -billewingconstruction.com -billgatescoin.site -billgatescoins.site -billho.website -billiament.info -billig-vvs.se -billigerliefern.com -billiges-notebook.de -billigpillersverige.xyz -billionaire-project777.ru -billionaireblog.com -billiondollargoal.com -billionmakers.com -billionvj.com -billkros.net.pl -billmooz.com -billofiegb.space -billpayo.com -billpoisonbite.website -billseo.com -billspropertymaintenance.com -billsremndr.xyz -billwizardrewards.com -billybasin.online -billycarson.ga -billyjoellivetix.com -bilovor.ru -bilri-car.ru -bilytica.africa -bim-aloman.ru -bimarketdigital.com -bimehshoma.com -bimgir.net -bimishops.site -bimky.ru -bimmarket.com -bimmerdieselna.com -bimt.us -binancebbt.net -binarenoptionenhandeln.de -binary-bonus.net -binary7day.com -binaryoptions.ru -binarytrendprofits.com -binatangmall.com -binaural.design -binboss.ru -binbug.xyz -bindrup62954.co.pl -bindware.app -bineshsarmad.com -bingakilo.ga -bingakilo.ml -bingbaloney.com -binge.com -binghuodao.com -bingo-bets.com -bingo-game-set.com -bingobet83.com -bingobyen.com -bingoindonesia.com -bingolarackiralama.com -bingolife.biz -bingomama.com -bingotonight.co.uk -bingzone.net -bingzz.live -binka.me -binkgisjunc.cf -binkgisjunc.gq -binkmail.com -binnary.com -binnerbox.info -binnicmail.ga -bino-jobs.info -binoculars-rating.com -binojobs.info -binoma.biz -binumartep.cf -binwindvil.cf -binwindvil.ga -binwindvil.ml -binwindvil.tk -binxic.ru -bio-bolsas.com -bio-consultant.com -bio-gym.com -bio-muesli.info -bio-muesli.net -bio-tonus.site -bio.clothing -bio.tj -bio.toys -bio.trade -bio4skin.ru -bioauto.info -biobalance-dietstylenow.com -biobalancefitnow.com -biobalancemaletoday.com -biobemi.ga -biobemi.gq -biobemi.ml -bioberreld.cf -bioberreld.ga -bioberreld.gq -bioberreld.tk -bioblogfi.cf -bioblogfi.ga -bioblogfi.gq -bioblogfi.tk -biobreak.net -biocaf.dev -biocharculture.xyz -biocompute.africa -biodieselrevealed.com -biodomstroy.ru -biodynamicchildbirth.org -biodynamicman.com -biofitstudios.com -bioflokus.com -biofuelsmarketalert.info -biogard-bio.site -biogard24.space -biogardys.space -biogardys.website -biogeniq.net -biohackworldwide.com -bioinformatics.rocks -biolaqq.com -biolisri.cf -biolisri.ga -biolisri.gq -biolisri.ml -biolisri.tk -biologybookworld.com -biologyreverse.us -biomba.xyz -biometicsliquidvitamins.com -bionagneu.cf -bionagneu.gq -bionagneu.tk -bionamic.com -bioncore.com -bione.co -bionikgame.ru -bionome.com -bionomeskin.com -bionomtherapy.com -bionomtheraworks.com -bioperformancecenter.net -bioperformancecenter.org -bioperformancecenter.us -bioperformancelab.org -bioperformancelab.us -biopharma.website -biopharmax.org -bioplasticproduct.com -bioresonanthome.ru -biorezonans-warszawa.com.pl -biorocketblasttry.com -biorosen1981.ru -bioschwartz.ru -biosciptrx.com -bioshure.com -bioskop.design -bioskopxxi.online -biosmail.net -biosmetica.com -biosolarpanels.com -biosor.cf -biosoznanie.ru -biostatistique.com -biostatstudio.org -biosupre.net -biosupre.org -biosyniksx.space -biotasix.com -biotechhub.com -biotika.es -biowerk.com -biperca.cf -biperca.ga -biperca.gq -biperca.ml -biperca.tk -bips.best -birabet.xyz -biraci.gq -biraci.ml -biraci.tk -birangona.org -birbakmobilya.com -bird-gifts.net -bird.support -birdbro.club -birdcagephotobooth.com -birderstravel.net -birdlover.com -birdnacan.gq -birdnacan.tk -birdoneoxl.space -birdonn.com -birdseed.shop -birdsfly.press -birebirbahis.com -birecruit.com -birgind.com -birgtrk.website -birkenstockadmin.site -birkinbags.info -birkinhermese.com -birmana.cf -birmana.ml -birmandesign.com -birminghamaddictiontreatment.com -birminghamalcoholrehab.com -birminghamcocainerehab.com -birminghamfans.com -birminghamheroinrehab.com -birminghamquote.com -birngames.site -biro.gq -biro.ml -biro.tk -biroistvan.eu -birsanduskabin.com -birsanmimarlik.com -birtattantuni.com -birtbannister.com -birthassistant.com -birthcarestaffing.com -birthday-cards.com -birthday-gifts.info -birthday-party.info -birthmomsummit.com -birthmothermentors.com -birthmothersummit.com -birtmail.com -biruni.cc.marun.edu.tr -biruni.cc.mdfrun.edu.tr -biscutt.us -bisdak.xyz -biser.woa.org.ua -bishake.club -bishkechki.com -bishopdrkpyohannan.org -bishoptimon74.com -bisiklopedi.net -biskampus.ga -biskvitus.ru -bisnisbisnis.net -bisonte.best -bissabiss.com -bissellballantyne.net -bistonplin.com -bistroottawa.net -bistrosignatures.net -bisuteriazaiwill.com -bit-degree.com -bit-ion.net -bit-led.ru -bit-tehnika.in.ua -bit2tube.com -bit3716.com -bit4826.com -bitassetira.com -bitatilsec.com -bitbanger.systems -bitbaysafe.com -bitbeat.site -bitbees.com -bitbet.bet -bitbet.xyz -bitbet24.ru -bitbucks.org -bitbuymu.cf -bitbuymu.ga -bitbuymu.gq -bitbuymu.ml -bitchmail.ga -bitco-change.ru -bitcoin-miners.org -bitcoin-norge.org -bitcoin-payroll.com -bitcoin.ngo -bitcoin2014.pl -bitcoinandmetals.com -bitcoinarmory.org -bitcoinbattle.fun -bitcoinbattle.org -bitcoinbet.us -bitcoinbonus.org -bitcoincodesafe.space -bitcoindocumentation.com -bitcoinexchange.cash -bitcoinfabric.com -bitcoini-bestchange.ru -bitcoininvestmentforum.com -bitcoinisland.org -bitcoinplanning.com -bitcoinpoke.com -bitcoinrevolt.biz -bitcoins-circuit.com -bitcoinsandblockchainssc.com -bitcointradenow.site -bitcointrader24.site -bitconecct.ru -bitcooker.com -bitcorp.space -bitcryptofund.com -biteindustry.tech -bitesatlanta.com -bitevolution.website -bitex.market -biteye.one -bitfwd.net -bitini.club -bitkey.com -bitkihane.online -bitkiselcozumleri.xyz -bitkizenlosyon.xyz -bitkizenlosyonu.xyz -bitkrak.com -bitlessthegame.com -bitlinux.org -bitlisisrehberi.xyz -bitlislisesi.xyz -bitlisnemrut.com -bitlly.xyz -bitloan.one -bitlucky.com -bitly.space -bitly.website -bitmain-antminer-s17.com -bitmarketnow.com -bitmax-io.host -bitmax-website.host -bitmeads.com -bitmonkey.xyz -bitovik-rostov.ru -bitpk.trade -bitpost.site -bitrage.app -bitrix-market.ru -bitrohan.ml -bits-n-bytes2015.com -bitsbuilder.com -bitsbuilder.org -bitsharesbts.com -bitsio.net -bitsminir.com -bitso.design -bitsofshit.com -bitsslto.xyz -bitsybox.com -bitterpanther.info -bitterrootrestoration.com -bittfera.com -bittorrentsearchweb.rentals -bituronline.com -bitvg.live -bitwerke.com -bitwhites.top -bitx.nl -bitxu.online -bityakuza.com -bityemedia.com -bitymails.us -bitzonasy.info -biuro-naprawcze.pl -bived.com -bivehe.xyz -bixbet161.com -biyamitibushveldcamp.com -biyeshop.site -biyiklicafe.icu -biyo-recipe.com -biz-giant.com -biz-king.com -biz-monster.com -biz.st -bizalem.com -bizalon.com -bizax.org -bizbiz.tk -bizcast.com -bizcitizens.com -bizcomail.com -bizfests.com -bizfi.xyz -bizhacks.org -bizhardware.com -bizhig.com -bizimails.com -bizimalem-support.de -bizimbahis.net -bizimbahis133.net -bizimbahis14.net -bizimbahis52.net -bizimbahis76.net -bizimbahis87.net -bizimle.net -bizkvadr.ru -bizlaunchuniversity.info -biznagadecolores.com -biznes-pravo.ru -biznetpentest.com -bizoncovers.com -bizplace.info -bizsearch.info -bizsportsnews.com -bizsportsonlinenews.com -biztime.tk -biztoolkit.com -bizuteriazklasa.pl -bizybin.com -bizybot.com -bizzinfos.info -bj-tmg.com -bj027.site -bj1fx.host -bjaum.us -bjbekhmej.pl -bjdhrtri09mxn.ml -bjhaicheng.net -bjif.net -bjin000.com -bjin333.com -bjj.icu -bjjeex.rest -bjjj.ru -bjldwx.com -bjmd.cf -bjmsulawesi.xyz -bjog.blog -bjog.tech -bjornmeulendijks.online -bjq53.space -bjqjvtodz.shop -bjsnc.com -bjsy6p.com -bjtpg.us -bjwc.us -bjxinshili.com -bjxt.ml -bjxtech.com -bjzshw.com -bjzxb.com -bk19e6.us -bk2010.club -bkbgzsrxt.pl -bkbmfb.fun -bkckc.com -bkdmll.fun -bkegfwkh.agro.pl -bkfarm.fun -bkfturkiye.com -bkg4rk.com -bkhmmb.fun -bki1.ru -bki7rt6yufyiguio.ze.am -bkijhtphb.pl -bkikontrol.ru -bkiug1.site -bkjmnx.fun -bkjmsk.fun -bkjmtp.fun -bkk-tour.info -bkkk.ru -bkkmaps.com -bkkpkht.cf -bkkpkht.ga -bkkpkht.gq -bkkpkht.ml -bklmbs.fun -bklmyt.host -bklynofficial.com -bklynskyway.com -bkm43.com -bknugywge.shop -bko.kr -bkpmht.fun -bkpmny.fun -bkpmwr.fun -bkqmks.fun -bkrmln.fun -bkrointernational.site -bksho.club -bktmyf.fun -bkukevanittersum.xyz -bkwmpr.fun -bkwmtd.fun -bkxdwnpvje.site -bkxmby.fun -bkxmqm.fun -bky168.com -bl.ctu.edu.gr -bl0.info -bl3xo7.us -bl5ic2ywfn7bo.cf -bl5ic2ywfn7bo.ga -bl5ic2ywfn7bo.gq -bl5ic2ywfn7bo.ml -bl5ic2ywfn7bo.tk -bl60.com -bl70.com -blablaboiboi.com -blablaboyzs.com -blabladoizece.com -blablo2fosho.com -blablop.com -blaboyhahayo.com -blacbuschia.tk -blaciser.cf -blaciser.ga -blaciser.gq -blaciser.ml -blaciser.tk -black-latte24.ru -black-magi.ru -black-magick.ru -black-mountain.tech -black-privoroti.ru -black-sharks.ru -black-stones.ru -black.bianco.cf -black2x.com -blackbabysitters.net -blackbeshop.com -blackbird.ws -blackbookdate.info -blackbox-official.ru -blackbox.cd -blackcashledger.com -blackcumsplatters.com -blackdiamondcc.org -blackdns.site -blackdragonfireworks.com -blackdrebeats.info -blacked-com.ru -blackeyedpeasmusic.biz -blackfer.xyz -blackfishdiscos.com -blackfriday.cd -blackfridayadvice2011.cc -blackfridaypanama.com -blackgarlictea.site -blackgate.tk -blackgoldagency.ru -blackgranitetop.top -blackgreenotl.xyz -blackgreenwastetyre.xyz -blackgreenwt.xyz -blackhat-seo-blog.com -blackhatmafia.com -blackhawkcurlingclub.com -blackheadkiller.net -blackhole.djurby.se -blackhole.targeter.nl -blackholezero.com -blackinbox.com -blackinbox.org -blackjack-gambling4money.com -blackjackmeesters.com -blacklab.ru -blacklabhosting.com -blacklatte-natural.ru -blacklattekahve.site -blackmagi.ru -blackmagicblog.com -blackmagick.ru -blackmagicspells.co.cc -blackmail.ml -blackmarket.su -blackmarket.to -blackmobile-1.info -blackpetty.recipes -blackprivoroti.ru -blackriverfirearms.com -blackrock-plat.com -blackrockasfaew.com -blackrutor.site -blacksarecooleryo.com -blackseo.top -blackshipping.com -blackswanbooksandmusic.com -blacktiemagician.com -blacktopscream.com -blackturtle.xyz -blackunicornconsulting.com -blackvioletbaby.com -blackwelltechnical.com -blacteocrafworth.tk -blaczajrang.ga -blaczajrang.ml -blaczajrang.tk -bladdebbzw.space -bladeandsoul-gold.us -blademod.icu -bladeshoc.fun -bladesmail.net -blagremont.ru -blahg.net -blahxhou.shop -blainvillecjd.com -blairdaly.com -blairhair.com -blak.net -blakasuthaz52mom.tk -blakekrueger.com -blakemail.men -blakepowell.org -blakesregisteredagents.com -blalachwhi.gq -blalachwhi.tk -blan.tech -blancheblatter.co -blanchhouse.co -blandbrin.xyz -blandcoconstruction.com -blandiose.org -blangbling784yy.tk -blankalive.us -blankgre.xyz -blankhe.buzz -blankhotel.com -blankwidth.fun -blarakfight67dhr.ga -blarneytones.com -blashatuff.cf -blashatuff.ga -blashatuff.ml -blashatuff.tk -blastcloud.com -blastcolos.ru -blastgods.ru -blasthron.ru -blastmail.biz -blastol.com -blasttru.xyz -blasttrus.xyz -blastxlreview.com -blatchfordrenewableenergy.com -blatopgunfox.com -blavixm.ie -blawg.net -blawg.org -blazercast.com -blazestreamz.xyz -blazinrod.com -bldg77.org -bldrogy.ru -bleakhalls.info -bleblebless.pl -bleederas.ga -bleederas.gq -bleederas.ml -bleederas.tk -bleedmaroon.com -blendercompany.com -blendertv.com -blerg.com -blessedwillow.com -blessient.monster -blessingvegetarian.com -blessloop.com -bletchleycipher.com -bleubers.com -blexx.eu -blfranco.com -blghq.xyz -blgs.xyz -blgshq.xyz -blgsly.xyz -blibrary.site -bliear.pro -bliejeans.com -blightpro.org -blightybrewery.com -blindpanda.info -blindparrot.info -blindshouston.com -blindskunk.info -blinkmage.com -blinkmatrix.com -blinkster.info -blinkweb.bid -blinkweb.top -blinkweb.trade -blinkweb.win -blip.ch -blippet.com -blissmusic.online -blitzed.space -blitzprogripthatshizz.com -bljekdzhekkazino.org -blkbright.com -blkchainvrfy.net -blkday.com -blm7.net -blm9.net -blmgw0.com -blmgw6.com -blndrco.com -blnkt.net -blntm.site -bloatbox.com -bloc.quebec -block-account.ru -block-coinhub.info -block-node.com -block-node.net -block-node.org -block.bdea.cc -blockblocks.bid -blockblocks.party -blockbudg.xyz -blockbusterhits.info -blockbusterkiosk.com -blockchain-wallet.live -blockchainalternativeinvestment.com -blockchaindesktop.com -blockchainlegal.technology -blockchainworldawards.com -blockchainworldeurope.com -blockchainworldexhibition.com -blockchainworldfund.com -blockchainworldfundmanagement.com -blockchn-fza4i.com -blockdigichain.com -blockenstock.com -blockersspy.com -blockgemini.org -blockhousecalifornia.com -blockhouseco.com -blocklattice.xyz -blockmonent.com -blocknames.bid -blocknetdx-coinhub.info -blockopsteam.com -blockoviacoinpay.com -blockoviapay.com -blocksolved.com -blockthatmagefcjer.com -blocktrail.org -blockzer.com -bloconprescong.xyz -blocquebecois.quebec -blocurrem.cf -blocurrem.ga -blocurrem.gq -blocurrem.ml -blog-1.ru -blog-couteau.com -blog-galaxy.com -blog-perfect.club -blog-shopping.info -blog-stanislav.ru -blog.annayake.pl -blog.metal-med.pl -blog.net.gr -blog.quirkymeme.com -blog.sjinks.pro -blog.yourelection.net -blog101.com -blog34.xyz -blog365.com -blog4us.eu -blog5984.ru -blog68h.site -blogaddict.com -blogagent.com -blogalert.com -blogalog.com -blogamerica.com -blogarama.org -blogauction.com -blogauctions.com -blogav.ru -blogbaseball.com -blogbash.com -blogbuffet.com -blogbuildingu.com -blogbusiness.com -blogcash.com -blogcast.blog -blogcast.lgbt -blogcast.money -blogcast.us -blogcast.wtf -blogcensorship.com -blogchampionship.com -blogchannels.com -blogcollege.com -blogcomics.com -blogconcierge.com -blogcouture.com -blogdad.com -blogdiary.live -blogdobg.com -blogdollars.com -blogdomain.com -blogdr.com -blogdynamics.com -blogemail.com -blogertsd.net -blogerus.ru -blogeurope.com -blogexperts.com -blogfilm.com -blogfolsom.com -blogfortetreinosuplementos.com -bloggames.com -bloggear.com -blogger-dvd.ru -bloggermailinfo.info -bloggermania.info -bloggersxmi.com -bloggg.de -blogging.com -bloggingargentina.com.ar -bloggingblog.com -bloggingdoc.com -bloggingnow.club -bloggingnow.pw -bloggingpro.fun -bloggingpro.host -bloggingpro.info -bloggingpro.pw -bloggistamomma.info -blogglobal.com -bloggorextorex.com -bloggroups.com -bloghaiti.com -bloghandbook.com -bloghangbags.com -bloghawaii.com -bloghost.com -bloghosting.website -blogiddaa.xyz -bloginc.com -blogindustry.com -blogiraq.com -blogisit.cf -blogisit.ga -blogisit.gq -blogisit.tk -blogisrael.com -blogistanbul.xyz -blogjamatlantic.com -blogjustice.com -blogketer.com -blogking.com -blogla.com -bloglab.com -bloglabs.com -bloglbs.xyz -bloglocal.com -bloglurichardnet.info -blogmania.site -blogmaska.ru -blogmastercom.net -blogmasters.com -blogmastery.com -blogmate.com -blogmechanic.com -blogmen.com -blogmexico.com -blogmommy.com -blogmovies.com -blogmulher.online -blogmusic.com -blogmyway.org -blogneproseo.ru -blogneton.site -blogneton.xyz -blognetworks.com -blognewbies.com -blognews.com -blognow.com -blognutrition.com -blogoagdrtv.pl -blogodietax.ru -blogographies.com -blogomaiaidefacut.com -blogomob.ru -blogondemand.com -blogonews2015.ru -blogos.com -blogos.net -blogosfer.com -blogoworke.ru -blogox.net -blogpartner.com -blogpartners.com -blogpay.com -blogpentruprostisicurve.com -blogperks.com -blogpersonals.com -blogpetition.com -blogpinmag.xyz -blogplanet.com -blogplus.com -blogpoints.com -blogpolitics.com -blogpr.com -blogpress.info -blogpress.pro -blogpsychic.com -blogpsychics.com -blogpundit.com -blogpundits.com -blogradar.com -blogremote.com -blogroll.com -blogrtui.ru -blogs.com -blogsanjose.com -blogsapp.xyz -blogschool.edu -blogsecure.com -blogsgaia.com -blogshoponline.com -blogsingles.com -blogsiteonline.com -blogslabs.xyz -blogslbs.xyz -blogsly.xyz -blogsme.ru -blogsmundi.com -blogsoap.com -blogsoaps.com -blogsoccer.com -blogspam.ro -blogspangea.com -blogsports.com -blogspot.miami -blogspot.work -blogspot1325.ru -blogspp.xyz -blogster.host -blogster.info -blogstudent.com -blogtabloids.com -blogthis.com -blogtickets.com -blogtraining.com -blogtribe.com -blogtribes.com -blogtron.com -blogtycoon.com -blogues.org -blogwatchdog.com -blogwiki.com -blogwireless.com -blogwithbloggy.net -blogxxx.biz -blogyearbook.com -blogzone.com -blolohaibabydot.com -blolololbox.com -blomail.com -blomail.info -blonded.club -blonnik1.az.pl -blood-pressure.tipsinformationandsolutions.com -blood.house -blood.link -bloodbuckets.com -bloodchain.org -bloodofmybrother.com -bloodonyouboy.com -bloodpresssureformula1.online -bloodrunsdownamountain.net -bloodsugarprogram.com -bloodysally.xyz -bloog-24.com -bloog.me -bloom.coupons -bloomable.info -bloomable.store -bloombrief.com -bloomintg.tk -bloominvoice.com -bloommarket.com -bloomning.com -bloomning.net -bloompi.ru -bloomsbycelebrations.com -bloop.host -blop.bid -blop.cloud -bloq.ro -bloqmental.ru -bloqstock.com -bloszone.com -blow-job.nut.cc -blowersusa.com -blowtac.net -blowterlu.cf -blowterlu.ga -blowterlu.ml -blowterlu.tk -blowzip.com -blowzy715pj.online -blox.eu -bloxter.cu.cc -blqthexqfmmcsjc6hy.cf -blqthexqfmmcsjc6hy.ga -blqthexqfmmcsjc6hy.gq -blqthexqfmmcsjc6hy.ml -blqthexqfmmcsjc6hy.tk -blr5888.com -blr698.com -blr9837.com -blrt.email -blrt.guru -blrt.link -blrt.mobi -blrt.site -blrt.video -blrtapp.net -blrtplugin.com -bls-i.icu -bls-v.icu -blspiwvv.shop -blst.gov -blttorrent.site -bltzloto.ru -blucd.org -blue-magic.red -blue-mail.org -blue-rain.org -blueauramassage.com -bluebabyrecordings.com -bluebaylocation.com -bluebottle.com -bluecherry.xyz -bluechipinvestments.com -bluecitynews.com -bluecollarguitarpickupsonline.com -bluecoreshorties.com -bluecrossrehabcenters.com -bluedanubetours.com -bluedelivery.store -bluedeluge.com -bluedomebooks.com -bluedumpling.info -bluefishpond.com -blueforcemedia.net -bluefriday.info -bluefriday.top -bluegingerchinesetakeaway.com -bluegorillatradesman.info -bluegrassforum.com -bluehorizonsoftware.net -bluejansportbackpacks.com -bluejaysjerseysmart.com -bluejube.org -bluelagoonnationalpark.com -bluelawllp.com -blueleafhosting.com -bluelinebuy.com -bluemangocafewaterford.com -bluemountainrainharvestingsystems.com -bluemountainrainwaterharvesting.com -bluemountainrainwaterharvestingsystems.com -bluenebula.us -bluenwhiteatl.com -blueocean-worldwide.com -blueoceanrecruiting.com -blueorchidballinteer.com -blueowlhomepros.com -bluepacificcapital.com -bluepage.shop -bluepills.pp.ua -bluepowersite.com -blueprintbet.com -blueprintci.com -blueprintconnections.com -blueridgebeast.com -blueright.net -blueriverclub.com -blueriverknights.com -bluerootssparkle.com -blueseashotels.com -bluesestodo.com -blueskytutorials.com -bluesmail.pw -bluespiderart.com -bluestaremst.com -bluestonethreads.com -bluetoothbuys.com -bluetoothheadset4u.com -bluetoothmodulefactory.com -bluetree.family -bluetree.holiday -bluetreephuket.fun -bluetreephuket.holiday -bluewall.dev -bluewerks.com -blueyi.com -bluffersguidetoit.com -blulapis.com -blulapka.pl -blumfirmfrog.cf -blumfirmfrog.ga -blumfirmfrog.gq -blumfirmfrog.tk -blumpjam.com -blundstoneurbans.com -blunomval.cf -blunomval.ga -blupeardesign.com -blurbulletbody.website -blurmail.net -blurme.net -blurp.tk -blurpemailgun.bid -blutig.me -blutmapound.tk -bluwinks.com -bluwurmind234.cf -bluwurmind234.ga -bluwurmind234.gq -bluwurmind234.ml -bluwurmind234.tk -bluyondr.com -bluyondr.org -blz700.com -blzbd.us -bm-osipov.ru -bm-xy.com -bm0371.com -bm2grihwz.pl -bmaker.net -bmall.sk -bmca114.com -bmcmail.org -bmdwc.net -bmetfy.info -bmgm.info -bmi-facts.org -bmkc6k.com -bmllw.com -bmonlinebanking.com -bmonte.world -bmpk.org -bmpqx1.site -bmronsgr.pro -bmsdfw.biz -bmsojon4d.pl -bmswup.us -bmteach.info -bmtjokqa.shop -bmvcfp.us -bmw-ag.cf -bmw-ag.ga -bmw-ag.gq -bmw-ag.ml -bmw-ag.tk -bmw-i8.gq -bmw-keyauto.site -bmw-mini.cf -bmw-mini.ga -bmw-mini.gq -bmw-mini.ml -bmw-mini.tk -bmw-raspily.ru -bmw-rollsroyce.cf -bmw-rollsroyce.ga -bmw-rollsroyce.gq -bmw-rollsroyce.ml -bmw-rollsroyce.tk -bmw-service-mazpol.pl -bmw-x5.cf -bmw-x5.ga -bmw-x5.gq -bmw-x5.ml -bmw-x5.tk -bmw-x6.ga -bmw-x6.gq -bmw-x6.ml -bmw-x6.tk -bmw-z4.cf -bmw-z4.ga -bmw-z4.gq -bmw-z4.ml -bmw-z4.tk -bmw4life.com -bmw4life.edu -bmwgroup.cf -bmwgroup.ga -bmwgroup.gq -bmwgroup.ml -bmwinformation.com -bmwmail.pw -bmwqq.website -bmwqqq.info -bmwriders.com -bmyw.us -bn373.top -bnaishop.site -bnb.monster -bnb.nu -bnbmb.com -bnbwarnet.com -bnbx.email -bncedeolendkc54042.cf -bncedeolendkc54042.ga -bnckms.cf -bnckms.ga -bnckms.gq -bnckms.ml -bncoastal.com -bnd.app -bndapp.xyz -bndata.icu -bneorc.site -bneus.club -bnfgtyert.com -bnghdg545gdd.gq -bngui.live -bnimanchesternorth.com -bnintl.com -bnle844z.xyz -bnm612.com -bnmjhbkj.site -bnoko.com -bnote.com -bnsfilms.com -bntmvo.com -bnuis.com -bnv0qx4df0quwiuletg.cf -bnv0qx4df0quwiuletg.ga -bnv0qx4df0quwiuletg.gq -bnv0qx4df0quwiuletg.ml -bnv0qx4df0quwiuletg.tk -bnwbrg.com -bnxp5h.site -bnyzw.info -bo5e.icu -bo7uolokjt7fm4rq.cf -bo7uolokjt7fm4rq.ga -bo7uolokjt7fm4rq.gq -bo7uolokjt7fm4rq.ml -bo7uolokjt7fm4rq.tk -boabusinessfunding.com -boacoco.cf -boacoco.ga -boacoco.gq -boacoco.ml -boacoco.tk -boaconsswal.cf -boaconsswal.tk -boacreditcard.org -boamericaadvrs.space -boardbets90.net -boardroom.productions -boardroom.video -boardroommedia.asia -boardsandstuff.com -boardscriptz.xyz -boardshades.com -boardtime.ru -boarebec.cf -boarebec.ga -boarebec.gq -boarebec.ml -boastfullaces.top -boastfusion.com -boat59.website -boatchartersflores.com -boatcoersdirect.net -boater-x.com -boatgypsys.info -boating.page -boatloanz.com -boatmail.us -boatmoon.com -boatparty.today -boatrampapp.com -boatrentalsmarcoisland.com -bob.inkandtonercartridge.co.uk -bobablast.com -bobaetown.com -bobandvikki.club -bobashiping4.com -bobashiping5.com -bobasp123.com -bobastore.site -bobazy2.com -bobazy3.com -bobazy6.com -bobazy8.com -bobbakazoo.com -bobbal7.net -bobbal9.net -bobberubethevillages.com -bobbohotel.online -bobby-unique.ru -bobbydcrook.com -bobcasino20.com -bobfilm.xyz -bobfilmclub.ru -bobfournier.com -bobisback.com -bobmail.info -bobmensch.com -bobmurchison.com -bobocie4.site -bobocooler.com -bobohieu.tk -boborobocobo.com -bobq.com -bobs.dyndns.org -bobscellju.cf -bobscellju.ga -bobscellju.ml -bobsdetice.ml -bobtix.fun -bobzc.com -bocaneyobalac.com -bocasartist.net -bocav.com -bocba.com -boccelmicsipitic.com -boceuncacanar.com -bochkacraft.ru -bochkovski.ru -bocigesro.xyz -bocil.tk -bockerme.com -bocldp7le.pl -bocps.biz -bod7942.com -bod8282.com -bodachina.com -bodeproreview.com -bodhi.lawlita.com -bodlet.com -bodmod.ga -bodog-asia.net -bodog-poker.net -bodog180.net -bodog198.net -bodrumcozummilas.xyz -bodrummixs.info -bodrumsozluk.xyz -body55.info -bodybuildingdieta.co.uk -bodybuildings24.com -bodybyrob.org -bodycareshop.life -bodydiamond.com -bodyenhancexl.com -bodyhackt.com -bodyhealthyself.info -bodylangaugela.com -bodylasergranada.com -bodylinedesign.com -bodymb.online -bodyplanes.com -bodyscrubrecipes.com -bodyshop.life -bodystyle24.de -bodysurfingchallenge.com -bodywraps.us -boee-property.com -boeltehall.com -boementers.ru -boeogoxy.site -boero.info -boersy.com -boes.info -boeutyeriterasa.cz.cc -bofamily.ru -boffoi.tokyo -bofrateyolele.com -bofseme.ga -bofseme.ml -bofseme.tk -bofthew.com -bofywyi.space -bog3m9ars.edu.pl -bogalec.cf -bogalec.ga -bogalec.gq -bogalec.ml -bogalec.tk -bogdad.com -bogdanchikodyvanchik.ga -boggledosh.com -bogiez.org -bogir.club -bogneronline.ru -bogor-mitsubishi.com -bogotaconf.co -bogotadc.info -bogotaredetot.com -bogsmoutlet.com -bohani.cf -bohani.ga -bohani.gq -bohani.ml -bohani.tk -bohead.com -bohemiantoo.com -bohobuffet.com -bohoce.xyz -bohook.net -bohoupa.cf -bohoupa.ga -bohoupa.gq -bohoupa.ml -bohoupa.tk -bohrer-shop.ru -bohuilc.com -boian.ru -boijitogel.net -boikasedon.ga -boiler-stout.ru -boimail.com -boinkmas.top -boise-real-estate.com -boisebasketbrigade.com -boisecityquote.com -boisehill.com -boisehomerebate.com -boiserockssocks.com -boisevirtual.tours -bojagi.com -bojcheski.dev -bojiaman.com -bojio.online -bojiogame.net -bojogalax.ga -bojuke.club -bok-6400.info -boke055.com -boke17.com -boke177.com -boke34.com -boke388.com -boke399.com -boke41.com -boke44.com -boke53.com -boke577.com -boke700.com -boke74.com -boke755.com -boke955.com -bokel.dev -bokep.video -bokepmelayu.org -bokepmovie.online -bokikstore.com -bokilaspolit.tk -boklipased.tk -bokllhbehgw9.cf -bokllhbehgw9.ga -bokllhbehgw9.gq -bokllhbehgw9.ml -bokllhbehgw9.tk -bokongindah.com -boks.site -boks4u.gq -boksclubibelieve.online -bokstone.com -bol228.site -bola208.com -bola2289.online -bola228run.com -bola59.net -bola918.com -bola918.net -bola918.org -bolaaman.com -bolaeuro.com -bolagemar.online -bolahokiqq.club -bolahokiqq.online -bolaklikwin188.xyz -bolaku88.xyz -bolalogam.com -bolalogam.online -bolalogam.org -bolamas88.online -bolamivo.net -bolaparis.org -bolaqq11.com -bolaqq11.net -bolaqq11.xyz -bolasedot.com -bolatmakine.xyz -bolawd.org -bolawinner88.org -bold.ovh -boldie.media -boldlifemovement.com -boldporpa.ml -boldporpa.tk -boldtechusa.com -boleisinaqjskf42682.cf -boletaelectronicachile.com -bolg-nedv.ru -bolinq.shop -bolinylzc.com -bolisad.com -boliviya-nedv.ru -bollouisvuittont.info -bollyastro.com -bollywoodbabylon.com -bollywoodu.com -bolomycarsiscute.com -bolshakova-studio.ru -bolshakovastudio.ru -bolsherechye.ru -bolt-bolt.info -bolt-opt.info -bolt.net -bolususumerapi.com -boluxman.xyz -bombamail.icu -bombay-cuisine-carlow.com -bombay-cuisine-takeaway.com -bombay-tandoori-tralee.com -bombayornaments.com -bombayspeaks.com -bombaytandooritakeaway.com -bombermanba.com -bombgovernorbrow.website -bomboladielioperpalloncini.com -bombshellbrewers.com -bombsquad.com -bomcodigo.com -bommails.ml -bomontifiltresiz.com -bomprogram.com -bomtool.com -bon7.icu -bon99.com -bonagany.info -bonce.site -bonche-tobacco.ru -boncoin.icu -boncommunication.se -bondageglossary.com -bondageresources.com -bondagesimulator.com -bondatea.com -bondbahis28.com -bondbahis30.com -bondlayer.net -bondlayer.org -bondmail.men -bondmiamis.info -bondrewd.cf -boneng.us -bones.hk -bonfireofthevanities.net -bonfunrun15.site -bongacams.buzz -bongdafun.info -bongo.cf -bongo.gq -bongobank.net -bongobongo.cf -bongobongo.flu.cc -bongobongo.ga -bongobongo.gq -bongobongo.igg.biz -bongobongo.ml -bongobongo.nut.cc -bongobongo.tk -bongobongo.usa.cc -bongoperfectmatch.com -bongopiggybank.com -boniaqq.com -bonicious.xyz -boningly.com -bonkodi.com -bonleo.com -bonnellproject.org -bono-777.com -bonobo.email -bonproduction.se -bonus-fresh849.ru -bonus4betting.com -bonusal.club -bonusdominoonline.com -bonuses.su -bonusfreerub.ru -bonushunters.ru -bonuslier.ru -bonusoil.ru -bonussaati.site -bonussaati.xyz -bonva.site -bonvoyagetravelnetwork.com -bonw.icu -booaid.com -boobies.pro -boodschappenbezorgen.amsterdam -boogiejunction.com -boogiemunsters.com -booglecn.com -book-buzzes.com -book316.com -bookabachpasifika.com -bookabargecruise.com -bookabus.org -bookadir.site -bookafil.site -bookaholic.site -bookall.site -bookarest.site -bookat.us -bookb.site -bookc.site -bookclick.online -bookd.site -bookerdooker.site -bookf.site -bookfish.site -bookh.site -bookhotel.site -booking-event.de -booking-fr.pro -bookingdiving.com -bookingoasis.com -bookingpricewatch.com -bookings.onl -bookingtouch.net -bookingzagreb.com -bookj.site -bookjumpstart.com -bookkeepingitreal.com -bookkeepr.ca -bookking.club -bookl.site -bookliop.xyz -bookloader.site -bookmabe.cf -bookmabe.gq -bookmabe.ml -bookmabe.tk -bookmarklali.win -bookmarks.edu.pl -bookmastersdistribution.com -bookmyoffice.xyz -booko.site -bookofhannah.com -bookoneem.ga -bookov.com -bookp.site -bookpinyin.app -bookpinyin.com -bookq.site -bookquoter.com -bookreviewessay.com -books-bestsellers.info -books-for-kindle.info -books1.tk -booksahara.com -booksbooksbooks.site -booksdescr.xyz -booksdload.site -bookserv.site -booksforcontractors.com -booksfusion.com -booksloving.xyz -booksmillion.best -booksohu.com -bookspack.site -booksreloaded.site -booksthathelp.com -bookstorage.site -booksunlimited.site -booksurvival.com -booksworth.com -bookt.site -booktangier.com -bookthemmore.com -bookthis.biz -booktonlook.com -booktoplady.com -bookv.site -bookvirusz.com -bookwithgeorge.com -bookworm.site -bookwrt.com -bookx.site -bookyah.com -bookyourhealer.com -bookzone.site -bookzy.com -booleserver.mobi -boolify.org -booloo.xyz -boombeachgenerator.cf -boombeats.info -boomdate.xyz -boomerangcentral.com -boomerinternet.com -boomm.site -boomsaer.com -boomtango.com -boomykqhw.pl -boomzik.com -booneoutdoors.net -booooble.com -boopmail.com -boopmail.info -boostingecosystems.org -boostmoresmm.com -boostoid.com -bootax.com -bootcampmania.co.uk -bootdeal.com -boothbaycottages.org -bootiebeer.com -bootkp8fnp6t7dh.cf -bootkp8fnp6t7dh.ga -bootkp8fnp6t7dh.gq -bootkp8fnp6t7dh.ml -bootkp8fnp6t7dh.tk -bootlejtsh.space -boots-eshopping.com -bootsaletojp.com -bootscanadaonline.info -bootscootinmusic.com -bootsformail.com -bootsgos.com -bootshoes-shop.info -bootshoeshop.info -bootsmann.info -bootson-sale.info -bootsosale.com -bootsoutletsale.com -bootssale-uk.info -bootssheepshin.com -bootstrade.ru -bootstrapdigitallab.com -bootstringer.com -bootsukksaleofficial1.com -bootsvalue.com -bootybay.de -bootybug.com -bootynbud.com -boow.cf -boow.ga -boow.gq -boow.ml -boow.tk -booyabiachiyo.com -bopares.info -boper.xyz -bopra.xyz -bopunkten.se -boquetelifestyle.com -boquetening.net -boraa.xyz -borakvalley.com -boramotels.info -borancaliskan.com -boranmark.cf -boranmark.ga -boranmark.ml -boranmark.tk -boranora.com -borderflowerydivergentqueen.top -bordersequalzero.com -bordslopare.se -bored.dog -boredbin.com -boreequationcare.website -borefestoman.com -borexedetreaba.com -borged.com -borged.net -borged.org -borgish.com -borguccioutlet1.com -boringplace.ru -boris4x4.com -bornboring.com -bornovaboran.xyz -bornprettyjewels.xyz -borntufftrainer.com -boroda.tech -boromirismyherobro.com -borsa-gayrimenkul.xyz -borschoff.biz -borsebbysolds.com -borseburberryoutletitt.com -borseburbery1.com -borseburberyoutlet.com -borsebvrberry.com -borsechan1.com -borsechane11.com -borsechaneloutletonline.com -borsechaneloutletufficialeit.com -borsechanemodaitaly.com -borsechanlit.com -borsechanlit1.com -borsechanlit2.com -borsechanuomomini1.com -borsechanuomomini2.com -borsechelzou.com -borseeguccioutlet.com -borseelouisvuittonsitoufficiale.com -borsegucc1outletitaly.com -borsegucciitalia3.com -borseguccimoda.com -borsegucciufficialeitt.com -borseitaliavendere.com -borseitalychane.com -borseitguccioutletsito4.com -borselouisvuitton-italy.com -borselouisvuitton5y.com -borselouisvuittonitalyoutlet.com -borselouvutonit9u.com -borselvittonit3.com -borselvoutletufficiale.com -borsemiumiuoutlet.com -borsesvuitton-it.com -borsety.com -borsevuittonborse.com -borsevuittonit1.com -borthutin.cf -borthutin.ga -borthutin.gq -borthutin.ml -borthutin.tk -borwildchels.cf -borwildchels.ga -borwildchels.gq -borwildchels.tk -borza-takeaway.com -borzacastleknock.com -borzalaurellodge.com -borzaparnell.com -bos-ger-nedv.ru -bos21.club -bos228.org -bosahek.com -bosbeer.best -bosceme.fun -bosceme.site -bosceme.website -bosceme.xyz -bosch-ghg.online -bosch-gpl.online -bosch-pkp.online -boscheasyvac.online -boscialiquor.com -bosdal.com -bosgrit.tech -boshuizen.org -bosi.website -bosific.cf -bosific.ga -bosific.gq -bosific.tk -bositoy.ru -bosk1.live -bosletak.com -bosonology.com -bospokers.net -bosqq.mobi -bosquepatagonico.cl -bosquesdeprovidencia.com -bosrekan.com -boss.cf -boss901.com -bossbola.com -bosscapsa.xyz -bossceme.xyz -bosscycling.com -bossemail.info -bossesin30s.com -bossesin30seconds.com -bossmail.de -boston-towing-service.info -bostoncocainerehab.com -bostoncreampieco.com -bostonheroinrehab.com -bostonhydraulic.com -bostonopiaterehab.com -bostonplanet.com -bostonquote.com -bostontshirtclub.com -bostonwebmedia.com -bot.nu -botaksport.biz -botaksport.net -botal.live -botanizes244tg.online -botasuggm.com -botasuggsc.com -botay.asia -botcha.org -botellon.website -botenear.com -bothelpdesk.com -bothgames.com -botig.xyz -botinki-rus.site -botkaislove.ru -botkinalop.tk -botox-central.com -botrych.ru -botseats.info -botswana-finlife.com -bottesuggds.com -bottinifuels.com -bottinioil.com -bottlacfue.cf -bottlacfue.gq -bottlacfue.ml -bottlacfue.tk -bottledin.com -bottlewood.com -botville.org -botz.online -boudoirbible.com -boudreauxproperties.com -boulahia2.store -boulderproblems.com -boulonnerie-des-quatre-coins.com -boun.cr -bouncebackcloud.com -bounceesolutions.com -bouncingcow.com -bouncr.com -bouncygrape.com -boundles.dev -boundless.app -boundless.deals -boundlesscdn.com -boundlesslabs.dev -boundlesspoint.com -bountea.biz -bountifulgrace.org -bounyang1004.com -bouquetslule.shop -bourbonintheblind.com -bourdeniss.gr -bourkeexecutivecoaching.com -bournemouthitsolutions.com -boursiha.com -bouss.net -bouterkin.tk -bouterpla.cf -bouterpla.gq -bouterpla.ml -bouterpla.tk -boutinc.shop -boutique24.amsterdam -boutiqueaccom.com -boutiqueenlignefr.info -boutiquehotelhanoi.com -bovegas.casino -bovinaisd.net -bovinefu.com -bovitin.cf -bovitin.ga -bovitin.gq -bovitin.ml -bovitin.tk -bowamaranth.website -bowelbac.site -bowelkn.xyz -bowelto.xyz -boweltoot.xyz -boweroitik.tk -bowingkgcy.space -bowlinglawn.com -bowlofcats.com -bowrescom.org -bowtrolcolontreatment.com -box-email.ru -box-emaill.info -box-mail.ru -box.comx.cf -box.ra.pe -box.yadavnaresh.com.np -box4mls.com -boxa.host -boxaee.xyz -boxapi.dev -boxbeats.com -boxberru-pay.ru -boxcoin-cach.ru -boxerboks.ru -boxermail.info -boxerstore2019.ru -boxescrow.com -boxformail.in -boximail.com -boxing55.com -boxingcoalition.com -boxingsuperseries.ru -boxless.info -boxlogas.com -boxloges.com -boxlogos.com -boxmail.co -boxmailbox.club -boxmailers.com -boxmy-files.online -boxppy.ru -boxsmoke.com -boxsquat.com -boxtemp.com.br -boxtwos.com -boxxbery.online -boy-scout-slayer.com -boyalovemyniga.com -boybanger.com -boycey.space -boycie.space -boyfargeorgica.com -boygenius.com -boygenius.net -boyhanb.best -boykdp.club -boykov.net -boyoboygirl.com -boysblog.com -boysbook.shop -boythatescaldqckly.com -boytim.org -boyu201.com -boyu202.com -boyu207.com -boyztomenlove4eva.com -boz-baudienste.com -bozbu.xyz -bozenarodzenia.pl -bp3xxqejba.cf -bp3xxqejba.ga -bp3xxqejba.gq -bp3xxqejba.ml -bp3xxqejba.tk -bpapa.ooo -bpb7l.us -bpcenters.net -bpcenters.org -bpcwebdesign.com -bpda.cn -bpda.de -bpda1.com -bpdf.site -bper.cf -bper.ga -bper.gq -bper.tk -bpfgaypi.shop -bpghmag.com -bpham.info -bpl10.club -bplinlhunfagmasiv.com -bpmsound.com -bpoint99.live -bpornd.com -bpospe.info -bpqwnefou.com -bpusqfze.xyz -bpvi.cf -bpvi.ga -bpvi.gq -bpvi.ml -bpvi.tk -bqc4tpsla73fn.cf -bqc4tpsla73fn.ga -bqc4tpsla73fn.gq -bqc4tpsla73fn.ml -bqc4tpsla73fn.tk -bqcoffee.ru -bqhost.top -bqjew.com -bqm2dyl.com -bqmjotloa.pl -br-plat.com -br.mintemail.com -br53dd.com -br588.fun -br5ns1.site -br6qtmllquoxwa.cf -br6qtmllquoxwa.ga -br6qtmllquoxwa.gq -br6qtmllquoxwa.ml -br6qtmllquoxwa.tk -br7fdx.com -br88.fun -br88.mobi -br88.trade -br880.com -br88bet.app -br88helps.com -br88thailand.com -brackettmail.com -bracyenterprises.com -brad-haas.org -bradan.space -bradburntownhomes.com -bradleedental.info -bradypacha.com -bradyphasia.best -braedstrup.info -braginun.cf -braginun.ml -braginun.tk -bragpackers.com -bragstats.com -braide.app -brain-1-shoping.online -brain-2-shoping.online -brain-4-shoping.online -brain-5-shoping.online -brain-shop.online -brain-shops.online -brainboostingsupplements.org -braindollar.com -brainfoodmagazine.info -brainframes.com -brainfras.cf -brainglue.com -brainhacksonline.com -brainhard.net -brainpowernootropics.xyz -brains-market.online -brains-shop.online -brainsmix.com -brainsworld.com -braintsunami.com -brainwave.media -brainwire.co -brainworm.ru -brainydad.com -brainysoftware.net -brakecu.xyz -brakecups.info -brakepai.site -brakepl.xyz -brakestor.icu -brakeunc.xyz -brakhman.ru -bralbrol.com -braless.monster -bramaros.cf -bramaros.ga -bramaros.gq -bramaros.ml -bramaros.tk -brambletyehomes.com -bramblo.com -bramper.ru -brancadenevesx.monster -branch.dating -branchcoding.com -branchxijy.space -brand-horse.ru -brand-like.site -brand-love.ru -brand-sell.ru -brand8usa.com -brandallday.net -brandbaskit.com -brandbaskit.net -brandbaskit.org -brandbeuro.com -brandcrucial.com -brandcruz.com -brandear.online -brandednumber.com -branden1121.club -brandi.eden.aolmail.top -branding.goodluckwith.us -branding.ooo -brandjamshop.com -brandlandshop.com -brandlinza.ru -brandly.tech -brandministers.com -brandnameshirts.com -brandnamewallet.com -brando.games -brandonivey.info -brandonivey.org -brandonscody.live -brandonstore.com -brandonwhetsel.online -brandoshnaya.com -brandroot.info -brandroot.org -brandroot.us -brandroot.xyz -brandsdigitalmedia.com -brandshoelondon.com -brandshoeshunter.com -brandslogisticgroup.com -brandsvip.ru -brandupl.com -brandyouressence.com -brandyourselfwebsite.com -braninvi.cf -braninvi.tk -brank.io -branniganslaw.org -bransonchoice.com -bransonweddingchapels.com -bras-bramy.pl -brasbeeralcaladehenares.com -brasil-nedv.ru -brasillimousine.com -brassband2.com -brassbrush.biz -brassbrush.org -brassbrush.us -brassbrushes.biz -brassbrushes.org -brassbrushes.us -brasshardsgroup.com -brassites.com -brasx.org -bratfond.ru -bratsey.com -bratwurst.dnsabr.com -braun-llc.com -braun4email.com -braunturkiyesiparis.site -brave.chat -braveblossom2023.com -bravecoward.com -bravenewworkforce.us -bravenmjz.ru -braveofheart.org -braverish.com -bravesite-info.ru -braveworkforce.com -braveworkforce.org -bravit.nyc -bravod.ru -bravohotel.webmailious.top -brawlstars.tech -brazilbites.com -braziletech.com -brazza.ru -brborganikhayvancilik.com -brbqx.com -brdas.com -brdpkwcty.shop -breach.icu -breachofoath.com -breackingnews.site -bread-and-bones.com -breadboardpies.com -breadglossary.com -breadnbuttershorttermplantrental.com -breadqu.press -breadshape.us -breadtimes.press -breadysmasamagrell.com -break5.gq -breakabal.ga -breakabal.gq -breakabal.ml -breakaxpipilo.host -breakfastnearme.net -breakfastshop.life -breakloose.pl -breakteala.cf -breakteala.gq -breakteala.tk -breaktheall.org.ua -breakthru.com -breaktime.space -brealynnvideos.com -breanna.kennedi.livemailbox.top -brearas.info -breashe.website -breatheandlivegood.com -breathestime.org.ua -breathoflifefamilyservices.com -brecksneverstomac.com -bredimedia.xyz -bredlau.com -breedaboslos.xyz -breedersbis.com -breemillsfilms.com -breethase.cf -breetiwe.cf -breeze.eu.org -breezyflight.info -brefmail.com -bregerter.org -breitbandanbindung.de -breitlingsale.org -breizhmarechalerie.com -bremet.net -brendonweston.info -brennanlc.com -brennendesreich.de -brentchen.com -brentgardnernow.us -brentnunez.website -brentr53-orthn.website -brentstore.org -brentwoodofficial.com -bresanclin.cf -bresanclin.ga -bresanclin.gq -bresanclin.ml -bresanclin.tk -bresslertech.com -bretania.tk -breumd.icu -brevardgaragedoors.com -brevn.net -brevnopen.ru -brewbuddies.website -brewdin.com -brewkraft.org -brewplans.com -brewposturecart.website -brewskiboard.com -brewstudy.com -brexitbet.com -brexiten.com -brflix.com -brflk.com -brgo.ru -brhelwig.com -brianamento.com -brianandbarrybuchanan.com -brianbell.biz -brianclem.org -briandavideoff.org -briandbry.us -brianeoff.com -brianksims.com -brianmcdaniel.org -briarhillmontville.com -brickgrabber.com -brickoll.tk -brickrodeosteam.org -brickstreetbuyers.com -bricolagecheck.xyz -bricomedical.info -bricsales.info -bricsets.info -bridalku.com -bridavex.cf -bridavex.ga -bridavex.gq -bridavex.ml -brideofheaven.com -brides-dating.com -bridescatalog.com -brideselect.com -bridesmailorder.com -bridgecityseed.com -bridgeportchicagobook.com -bridgesacademysc.com -bridgetgonzalez.win -bridgetowneeast.com -bridyk.monster -briefcase4u.com -briefcaseoffice.info -briefkasten2go.de -brigachbreg.com -brigadeofhonor.org -briggsmarcus.com -bright365.org -brightadult.com -brightbay.online -brightdefense.net -brightdefense.tech -brightekled.cn -brighterbroome.org -brightlightfever.com -brightlighttouch.com -brightonchoy.com -brightonontheweb.com -brightscoe.com -brightscoppe.com -brigsgoevi.download -brigthstorm.icu -brilliantbutler.com -brilliantconceptsinmotion.com -brilliantdashboard.cloud -brillianthosting.cloud -brilliantignite.com -brilliantinventory.com -brilliantnews.live -brilliantstarsschool.com -brillionhistoricalsociety.com -brillmed.com -brillob.com -bring-luck.pw -bringluck.pw -bringmea.org.ua -bringthatnumberdown.info -bringthatnumberdown.org -bringtheclick.com -brinkbr.xyz -brinkstor.xyz -brinkvagu.buzz -brinkvideo.win -brisbanegastro.com -brisbanelivemusic.com -brisbanelogistics.com -brisbanephotobooth.com -bristlebrush.us -bristlebrushes.biz -bristlebrushes.us -bristol-drones.com -britainst.com -britbarnmi.ga -britbarnmi.gq -britbarnmi.ml -britbarnmi.tk -britemail.info -british-leyland.cf -british-leyland.ga -british-leyland.gq -british-leyland.ml -british-leyland.tk -britishboy.com -britishintelligence.co.uk -britishpropolis.xyz -britneybicz.pl -brittler.online -brittlily.xyz -brittneyamour.website -brittneyhollinger.com -brittneywerthcouseling.com -brixmail.info -brizzolari.com -brk4dv.us -brksqx.us -brliffebody.host -brliffebody.online -brlotus.com -brmailing.com -brncanta.xyz -brnhhqcya.shop -brniesndrs.us -brnm.me -brnmedya.xyz -brnsndrs4.us -brnsrs4.us -bro.fund -bro4xk.us -broadbandninja.com -broadbandwiring.com -broadbankv2.ga -broadbankv2.tk -broadcastsandiego.com -broadman17.com -broadnetalliance.org -broadway-new-york-eatery.com -broadway-west.com -broadwaynewyorkeatery.com -broadwaypackagingsolutions.com -brocase.org -broccoli.store -brocks.website -brocvintage.com -brodwaybuzz.com -brodzikowsosnowiec.pl -brofamilys.ru -brogrammers.com -broilone.com -brokaler.ga -brokaler.gq -brokaler.ml -brokaler.tk -brokenemailcheck.com -brokenemailchecker.com -brokenplanet.net -brokersdoor.com -brokersgroup.net -broknote.com -broknotes.com -bromailservice.xyz -bromleydotcom.com -bromtedlicyc.xyz -bronaotdyhe.site -broncomower.xyz -bronews.ru -bronhit.info -broniesqc.com -bronix.ru -bronxcountylawyerinfo.com -bronxdentistny.com -bronyfarm.com -bronzevalve.com -brookehorton.buzz -brookewilson.buzz -brookfieldplumbers.com -brooklyn-camera.com -brooklyn.cd -brooklynacura.com -brooklynbookfestival.mobi -brooklynparkapartments.com -brooklynweddingphotography.com -brookwalk.com -broomavenuebr53bs.com -broomwoodroadbr52jj.com -broomwoodroadbr52jp.com -brosan.net -brosbook.shop -broshkindom.ru -brosj.net -brosrockcrew.com -brossigscomp.cf -brossigscomp.ga -brossigscomp.gq -brostream.net -broszreforhoes.com -brothercs6000ireview.org -brotherprinterdrivershq.com -brothersontheblockincva.com -brotvwxyz.com -brouerg.fun -brouilly.org -brous.ru -browardfamp.com -browebstore.ru -brownal.net -brownbeaver.info -browndecorationlights.com -browndril.us -browne-trading.org -brownes.info -brownetrading.net -brownetrading.org -browniesgoreng.com -brownieslumer.com -brownindian.com -brownindians.com -brownlandscapingutah.com -brownpelican.info -brownricecooker.com -brownsl.xyz -brownslu.xyz -brownsvillequote.com -brownwoodtexasattorney.com -browriter.world -browse-movies.xyz -browsechat.eu -browseforinfo.com -browselounge.pl -browserflare.com -browserpot.com -browserscout.com -browsertab.xyz -browsesafesearch.com -browsing.page -brqh.us -brql.email -brrmail.gdn -brrmedia.asia -brrra-infragrant.com -brrvpuitu8hr.cf -brrvpuitu8hr.ga -brrvpuitu8hr.gq -brrvpuitu8hr.ml -brrvpuitu8hr.tk -brrwd.com -brtonthebridge.org -bru-himki.ru -bru.chat -brubank.club -bruceguetta.com -brudd.me -brunhilde.ml -brunico.best -brunomarsconcert2014.com -brunotakeaway.com -brunswick.apartments -brunto.ru -brushcros.icu -brushes.org -brushinabox.org -brushmaker.net -brushmaker.us -brushmanufacturer.biz -brushmanufacturer.us -brushvwhite.com -bruson.ru -brussellottery.net -brussellottery.org -brusselstylelogblog.com -brutaldate.com -brutaljack.com -bruzdownice-v.pl -brvbfj.shop -brxqoy.cf -bryanle.com -bryanlgx.com -bryanslist.com -brymstonne.org -brypeterson.com -bryskumde.cf -bryskumde.gq -bryskumde.ml -bryzwebcahw.cf -bryzwebcahw.ga -bryzwebcahw.ml -bryzwebcahw.tk -bs-internal.com -bs-shipsmanagement.net -bs5003.com -bs6006.com -bs6bjf8wwr6ry.cf -bs6bjf8wwr6ry.ga -bs6bjf8wwr6ry.gq -bs6bjf8wwr6ry.ml -bs8005.com -bs8007.com -bsaloving.com -bsbhz1zbbff6dccbia.cf -bsbhz1zbbff6dccbia.ga -bsbhz1zbbff6dccbia.ml -bsbhz1zbbff6dccbia.tk -bsc.anglik.org -bschhirdavatcilik.site -bschost.com -bsctoolkit.com -bsctv.cd -bsderqwe.com -bsecure.ir -bseomail.com -bsesu.us -bsezjuhsloctjq.cf -bsezjuhsloctjq.ga -bsezjuhsloctjq.gq -bsezjuhsloctjq.ml -bsezjuhsloctjq.tk -bsfadmin.org -bshasho.xyz -bshoespeak.site -bshyetrla.xyz -bsidesfl.org -bsjluitp.shop -bsjnz.com -bskbb.com -bskvzhgskrn6a9f1b.cf -bskvzhgskrn6a9f1b.ga -bskvzhgskrn6a9f1b.gq -bskvzhgskrn6a9f1b.ml -bskvzhgskrn6a9f1b.tk -bskyb.cf -bskyb.ga -bskyb.gq -bskyb.ml -bsmird.site -bsml.de -bsnders.us -bsnmed.com -bsnow.net -bsoundbest.info -bspamfree.org -bspex.com -bspin.club -bspooky.com -bsquochoai.ga -bss19.space -bsservice.info -bst-72.com -bsuakrqwbd.cf -bsuakrqwbd.ga -bsuakrqwbd.gq -bsuakrqwbd.ml -bsuakrqwbd.tk -bsylyp.shop -bt-bitcoin.ru -bt0zvsvcqqid8.cf -bt0zvsvcqqid8.ga -bt0zvsvcqqid8.gq -bt0zvsvcqqid8.ml -bt0zvsvcqqid8.tk -bt2022.xyz -bt2pt.com -bt3019k.com -bt369.live -bt522.com -bt757.site -btab.pw -btacg.com -btapi.com -btb-notes.com -btb109.online -btb11.xyz -btb46.club -btbazir.xyz -btbaziran.xyz -btbdf.com -btbt588.com -btc-mail.net -btc-payroll.com -btc-worldl.site -btc.email -btc.glass -btc24.org -btcanalizler.com -btcgenerators.com -btcgivers.com -btchange.xyz -btcinfinitypools.com -btcmail.pw -btcmail.pwguerrillamail.net -btcmanaged.com -btcmod.com -btcomic.com -btcontracts.com -btcoon.info -btcoon.org -btcplay777.com -btcposters.com -btcprestige.net -btcproductkey.com -btcprostorage.com -btcpurchases.site -btctele.com -btczw.com -btd4p9gt21a.cf -btd4p9gt21a.ga -btd4p9gt21a.gq -btd4p9gt21a.ml -btd4p9gt21a.tk -bteditor.com -btemp.com -btexch.com -btexchange1.live -btgal.com -btglkf.com -btgmka0hhwn1t6.cf -btgmka0hhwn1t6.ga -btgmka0hhwn1t6.ml -btgmka0hhwn1t6.tk -btgo90us.net -btgo90us.org -btgt.email -bticigd.xyz -btintenet.com -btiran.com -btiternet.com -btizet.pl -btj.pl -btj2uxrfv.pl -btlcalculator.com -btmoe.com -btmtoon4.com -btmtoon6.com -btob6.club -btqingwa.xyz -btrabbits.net -btracker.date -btrkwbtfclb89bd.xyz -btrmp6.com -btry56.us -bts-888.com -bts-monitoring.com -btsese.com -btsmerch.shop -btstr.lowbi.xyz -bttime44.xyz -bttime55.xyz -btuglp.us -btukskkzw8z.cf -btukskkzw8z.ga -btukskkzw8z.gq -btukskkzw8z.ml -btukskkzw8z.tk -btuyx.website -btv8uy.info -btw.onl -btx3338.com -btx62828.com -btxdtl.ga -btxfovhnqh.pl -btynodozx.shop -btyunsou8.net -btz3kqeo4bfpqrt.cf -btz3kqeo4bfpqrt.ga -btz3kqeo4bfpqrt.ml -btz3kqeo4bfpqrt.tk -bu-ali-takeaway.com -bu.mintemail.com -bu5lhm.info -buam.space -buatwini.tk -buayapoker.online -buayapoker.xyz -bub7yjt5p0uzewl.xyz -bubbasblue.com -bubbkirkpenma.tk -bubblesfloat.com -bubo1.net -bubuface.tv -bucausa.xyz -bucbdlbniz.cf -bucbdlbniz.ga -bucbdlbniz.gq -bucbdlbniz.ml -bucbdlbniz.tk -buccalmassage.ru -buchach.info -buchananinbox.com -buchhandlung24.com -bucketlistfilter.com -bucklafi.cf -bucklafi.ga -bucklafi.gq -bucklafi.tk -buckleysryewhiskey.com -buckrubs.us -bucksdogrescue.org -bucol.net -bucoscertificate.com -bucoscertificate.pro -bucrita.cf -bucrita.ga -bucrita.gq -bucrita.ml -bucrita.tk -bucsc.com -bud-zdorov-03.site -bud-zdorov-07.site -budapest2040.com -budapestdailydeal.com -buday.htsail.pl -budaya-tionghoa.com -budayationghoa.com -budbankrot.xyz -buddhismblog.com -buddhismglobal.com -buddhistblog.com -buddieswindsor.com -buddycarroll.com -buddystart.com -budgeequal.us -budgemars.icu -budgequot.press -budgetblankets.com -budgetdoc.com -budgetgoods.ru -budgethotel.cd -budgetinvestingsite.online -budgetmoscow.com -budgetocean.com -budgetted.com -budgetwoman.me -budgjhdh73ctr.gq -budin.men -budmedia.fund -budokainc.com -budowa-domu-rodzinnego.pl -budowadomuwpolsce.info -budowlaneusrem.com -budrem.com -budtek.info -budylz.xyz -budzdorov-03.site -budzdorov-07.site -budzdorov07.site -buefkp11.edu.pl -buenavidabeograd.com -buenosaires-argentina.com -buenosaireslottery.com -bueschlen.info -bufaloie.site -bufbootcamp.com -buffalo-poland.pl -buffaloaddictiontreatment.com -buffaloalcoholrehab.com -buffaloopiaterehab.com -buffaloquote.com -buffalorunwinery.com -buffalos-pizza-pie.com -buffbook.shop -buffemail.com -bufferliajy.email -buford.us.to -bufyrjkdhu.xyz -bug.cl -bugdomain9.com -bugeyedbugs.com -bugmenever.com -bugmenot.com -bugmenot.ml -bugs.su -buhkit.com -buhogume.site -buhomail.club -buhype.ru -bui-in-samara.ru -bui9cj.us -buicasino.ru -buidaru.cf -buidaru.ga -buidaru.tk -build-logix.com -build-your-business-stronger.com -buildabsnow.com -buildadefense.com -buildanonprofit.org -buildersglossary.com -builderua.online -building-bridges.com -buildingandtech.com -buildingfastmuscles.com -buildinghopekeystone.org -buildlogicsllc.com -buildly.store -buildmydream.kitchen -buildopia.com -buildsrepair.ru -buildsucceeded.org -buildthefutureon.tech -buildwithbubble.com -buildwithdrupal9.com -buildyourbizataafcu.com -builtindishwasher.org -buinasrad.ml -buissness.com -buitanan.me -bujatv7.fun -bujatv8.fun -buk2fw.host -bukalapakqq.club -bukanline.today -bukansarjana.com -buketeriya.ru -buketgurmana.ru -bukleti-vizitki.ru -bukmekerskajakontora.ru -bukopet.ru -bukq.in.ua -bukti99.com -bukuki.info -bukv.site -bukwos7fp2glo4i30.cf -bukwos7fp2glo4i30.ga -bukwos7fp2glo4i30.gq -bukwos7fp2glo4i30.ml -bukwos7fp2glo4i30.tk -bulahxnix.pl -bulaindianandorientalcuisine.com -bulantoto.com -bulantoto.net -bulbasures.com -bulbtiger.com -buldozer-rent92.ru -bulegoblog.com -bulemasukkarung.digital -bulent.ml -bulentfb.ml -bulentfb.tk -bulgarian.house -bulgogi.xyz -bulgsaltge.cf -bulgsaltge.gq -bulgsaltge.ml -bulgsaltge.tk -bulguru.com -bulkbacklinks.in -bulkcleancheap.com -bulkcoop.com -bulkemailregistry.com -bulkgeocode.com -bulksmsad.net -bullbeer.net -bullbeer.org -bullcourt.top -bullet1960.info -bulletblunt.com -bulletinadvice.com -bulletinarchive.com -bulleyedarts.com -bullhorn30.com -bullinthesport.com -bullionbeast.com -bullosafe.com -bullseyelink.com -bullseyewebsitedesigns.com -bullstore.net -bulltime.net -bullystakeaway.com -bulmisen.ga -bulmisen.gq -bulmisen.ml -bulmp3.net -buloo.com -bulrushpress.com -bulso-law.com -bulumonster.com -bulurhotels.site -bulutdns.com -bulvintorg.ru -bum.net -bum05.xyz -bum06.xyz -bum07.xyz -bum08.xyz -bum09.xyz -bum69.club -bumaga.host -bumbleevbx.space -bumblomti.cf -bumblomti.gq -bumblomti.ml -bumingjueli.com -bumppack.com -bumpymail.com -bun-cha.com -bunbearsligh.gq -buncar.ru -bunchcarsa.info -bunchofidiots.com -bund.us -bundes-li.ga -bundjoca.cf -bundjoca.ga -bundjoca.gq -bundjoca.ml -bunengbumingbai.com -bunfive.com -bungabunga.cf -bungatidur.com -bungatogel8.com -bunkbedsforsale.info -bunkmemorialcave.website -bunkstoremad.info -bunmoc.website -bunny88vip.com -bunnyhasofficiallypissedoffgreengay.tk -bunnysitesqa.com -bunnyze.info -bunsenhoneydew.com -bunteks.online -buntuty.cf -buntuty.ga -buntuty.ml -buodhied.online -buon.club -buonprod.site -buphisti.ga -buphisti.gq -buphisti.tk -buppel.com -buqre.online -buqre.site -buqre.xyz -burakarda.xyz -buratin7.ru -burberry-australia.info -burberry-blog.com -burberry4u.net -burberrybagsjapan.com -burberryoutlet-uk.info -burberryoutletmodauomoit.info -burberryoutletsalezt.co.uk -burberryoutletsscarf.net -burberryoutletsshop.net -burberryoutletstore-online.com -burberryoutletukzt.co.uk -burberryoutletzt.co.uk -burberryukzt.co.uk -burberrywebsite.com -burcaticatu.space -burcler.site -burcopsg.org -burdayimcanim.ml -burdet.xyz -burdurfm.xyz -burenie.space -bureslav.ru -burgas.vip -burgaznet.xyz -burgazrap.xyz -burger56.ru -burgercentral.us -burgerjointtakeaway.com -burgerking.icu -burglighhu.cf -burglighhu.ml -burgoscatchphrase.com -burguesinhas.com -burjanet.ru -burjkhalifarent.com -burjnet.ru -burkaukra1.site -burkaukra2.site -burklabs.com -burlingtonfancynails.com -burlingtonxku.com -burnacidgerd.com -burner-email.com -burner.fund -burnermail.io -burniawa.pl -burningasylum.net -burningthemanrvrentals.com -burningthemanrvrentals.us -burnmail.ca -burnthespam.info -burobedarfrezensionen.com -burobrandov.ru -burpeep.club -burritos.ninja -burroortega.online -burry.house -bursa303.wang -bursa303.win -bursadekorhaliyikama.online -bursadekorhaliyikama.xyz -bursaevlilikterapisi.com -bursahealth.com -bursakomoditi.xyz -bursaservis.site -bursayolu.xyz -burstmail.info -burtsevy.ru -burundipools.com -burundxkpt.space -burwide.cf -burwide.gq -burwide.ml -burwide.tk -buryticklerchap.website -burzoe.website -bus-motors.com -bus9alizaxuzupeq3rs.cf -bus9alizaxuzupeq3rs.ga -bus9alizaxuzupeq3rs.gq -bus9alizaxuzupeq3rs.ml -bus9alizaxuzupeq3rs.tk -busanb12.net -busanb19.net -buscarlibros.info -buscarltd.com -buscarnombre.com -buscarpr.com -buschgardenshotel.com -buscoempleoya.info -busemdisticaret.com -bushiresydney.company -bushnellofficial.ru -busidevelops.com -businesideas.ru -business-agent.info -business-bank-account.com -business-boosters.info -business-education-system.com -business-goods.ru -business-intelligence-vendor.com -business-life.club -business-loan-financing.com -business-sfsds-advice.com -business-tv.site -business-tv.website -business-websites-hosting.us -business1300numbers.com -businessaccelerationevents.com -businessagent.email -businessandnews.com -businessattorneysorangecounty.com -businessbackend.com -businessbayproperty.com -businessblog.com -businessblogs.com -businessbrokermassachusetts.com -businesscardcases.info -businesscny.com -businesscoachitalia.net -businessconstruction.ru -businesscredit.xyz -businesscreditcard.dev -businesselite.site -businessfinancetutorial.com -businessfindernearme.com -businessgig.org -businesshowtobooks.com -businesshowtomakemoney.com -businessideasformoms.com -businessinfo.com -businessinfoservicess.com -businessinfoservicess.info -businessloansingapore.sg -businessmakeoverexperience.com -businessmexicotoday.com -businessneo.com -businessowner.money -businessphonelookup.com -businessresourcefindernearme.com -businessscansite.club -businesssitenames.com -businesssource.net -businesssuccessislifesuccess.com -businessthankyougift.info -businesstutorialsonline.org -businessvendorsnearme.com -buskingbarangaroo.com -buskopan.ru -busmys.info -buspad.org -bussdisc.com -bussinessmail.info -bussinessmonkeynews.com -bussinesvortex.ru -bussitussi.com -bussitussi.net -bustamove.tv -bustaquiz.com -bustedondashcam.com -bustedyoke.com -busten.info -busten.site -busthere.cf -busthere.ml -bustsa.site -busty.monster -busy-do-holandii24.pl -busyginal.cf -busyresourcebroker.info -butbetterthanham.com -butchparks.com -buthec.xyz -butler411.com -butning.ru -butrew.ru -buttbreeder.com -butter9x.com -butterflycupsusa.com -butterflyeffectsounds.com -butterteddy.ru -buttliza.info -buttluvr.com -buttonfans.com -buttonrulesall.com -buumew-auto.ru -buurunleson.site -buvertu.cf -buvertu.ga -buvertu.gq -buvertu.ml -buvetti.com -buxap.com -buxl.com -buxod.com -buy-acomplia.info -buy-bags-online.com -buy-blog.com -buy-caliplus.com -buy-canadagoose-outlet.com -buy-car.net -buy-cement.ru -buy-cialis.net -buy-clarisonicmia.com -buy-clarisonicmia2.com -buy-instagram.com -buy-iphone-xs.ru -buy-lp.ru -buy-mail.eu -buy-new-like.ru -buy-nikefreerunonline.com -buy-ugly-homes.com -buy-viagracheap.info -buy.tj -buy003.com -buy024.com -buy4me.store -buy6more2.info -buyad.ru -buyairjordan.com -buyalli.site -buyallopurinol.website -buyamf.com -buyamoxilonline24h.com -buyandsmoke.net -buyanessaycheape.top -buyaninfographic.com -buyatenolol.website -buyaugmentin.site -buyback.best -buybacklinkshq.com -buybere.cf -buybere.ga -buybere.ml -buybere.tk -buybestheadphonesonline.com -buyblindsnow.com -buycanadagoose-ca.com -buycaverta12pills.com -buycbd2.com -buycheapbeatsbydre-outlet.com -buycheapcipro.com -buycheapfacebooklikes.net -buycheapfireworks.com -buycialis-usa.com -buycialisgennrx.xyz -buycialisusa.com -buycialisusa.org -buycialisz.xyz -buyclarisonicmiaoutlet.com -buyclarisonicmiasale.com -buycow.org -buycsgoitems.com -buycultureboxes.com -buycustompaper.review -buyday.site -buydeltasoneonlinenow.com -buydfcat9893lk.cf -buydiabloaccounts.com -buydiablogear.com -buydiabloitem.com -buydiamox.info -buydispensary.icu -buydubaimarinaproperty.com -buyemail.org -buyeqaslim.com -buyeriacta10pills.com -buyershop.info -buyessays-nice.org -buyfacebooklikeslive.com -buyfcbkfans.com -buyfifa19.com -buyfollowers247.com -buyfollowers365.co.uk -buyfrombull.com -buygapfashion.com -buygenericswithoutprescription.com -buygolfclubscanada.com -buygolfmall.com -buygoods.com -buygoodshoe.com -buygooes.com -buygsalist.com -buyhairstraighteners.org -buyhardwares.com -buyhegotgame13.net -buyhegotgame13.org -buyhegotgame13s.net -buyhenryhoover.co.uk -buyhermeshere.com -buyhouseorangecounty.com -buyhousesquickcash.com -buyhunts.com -buyhunts.net -buyingafter.com -buyingessays.com -buyintagra100mg.com -buyitforlife.app -buyjoker.com -buykamagraquick.com -buykarenmillendress-uk.com -buykdsc.info -buykyc.com -buylaptopsunder300.com -buylevitra-us.com -buylevitra.website -buylikes247.com -buylimu.biz -buylouisvuittonbagsjp.com -buymethotrexate.info -buymichaelkorsoutletca.ca -buymileycyrustickets.com -buymondo.com -buymoreplays.com -buymotocyclefairings.com -buymotors.online -buynewmakeshub.info -buynewtrends.com -buynexiumpills.com -buynolvadexonlineone.com -buynorcaltickets.com -buynow.host -buynowandgo.info -buyonlinestratterapills.com -buyordie.info -buyovz.com -buypill-rx.info -buyprice.co -buyprotopic.name -buyproxies.info -buyraybansuk.com -buyrehabrentrefinancerepeat.com -buyreliablezithromaxonline.com -buyrenovaonlinemeds.com -buyreplicastore.com -buyresourcelink.info -buyrocaltrol.name -buyrx-pill.info -buyrxclomid.com -buyselleos.com -buysellonline.in -buysellsignaturelinks.com -buyseo.services -buyserverpart.com -buysomething.me -buyspecs.biz -buysspecialsocks.info -buysteroids365.com -buystlouischeap.com -buyto.website -buytodayproperties.com -buytwitterfollowersreviews.org -buyu0003.com -buyu0004.com -buyu0009.com -buyu0111.com -buyu043.com -buyu046.com -buyu0590.com -buyu082.com -buyu085.com -buyu112.com -buyu117.com -buyu126.com -buyu135.com -buyu139.com -buyu148.com -buyu150.com -buyu153.com -buyu154.com -buyu167.com -buyu172.com -buyu174.com -buyu181.com -buyu182.com -buyu183.com -buyu184.com -buyu190.com -buyu191.com -buyu194.com -buyu199.com -buyu279.com -buyu282.com -buyu284.com -buyu286.com -buyu289.com -buyu299.com -buyu304.com -buyu306.com -buyu307.com -buyu308.com -buyu310.com -buyu316.com -buyu317.com -buyu319.com -buyu323.com -buyu325.com -buyu336.com -buyu341.com -buyu343.com -buyu345.com -buyu347.com -buyu348.com -buyu368.com -buyu373.com -buyu376.com -buyu377.com -buyu380.com -buyu383.com -buyu387.com -buyu389.com -buyu390.com -buyu391.com -buyu398.com -buyu403.com -buyu406.com -buyu407.com -buyu408.com -buyu415.com -buyu416.com -buyu420.com -buyu421.com -buyu422.com -buyu423.com -buyu424.com -buyu427.com -buyu428.com -buyu431.com -buyu434.com -buyu443.com -buyu446.com -buyu447.com -buyu450.com -buyu451.com -buyu454.com -buyu455.com -buyu457.com -buyu460.com -buyu465.com -buyu471.com -buyu473.com -buyu476.com -buyu477.com -buyu479.com -buyu481.com -buyu483.com -buyu486.com -buyu489.com -buyu490.com -buyu491.com -buyu492.com -buyu493.com -buyu494.com -buyu495.com -buyu496.com -buyu502.com -buyu508.com -buyu515.com -buyu523.com -buyu529.com -buyu532.com -buyu533.com -buyu538.com -buyu540.com -buyu543.com -buyu544.com -buyu548.com -buyu551.com -buyu552.com -buyu564.com -buyu567.com -buyu571.com -buyu573.com -buyu581.com -buyu583.com -buyu585.com -buyu586.com -buyu587.com -buyu592.com -buyu594.com -buyu596.com -buyu610.com -buyu612.com -buyu614.com -buyu616.com -buyu620.com -buyu621.com -buyu626.com -buyu627.com -buyu628.com -buyu629.com -buyu631.com -buyu632.com -buyu634.com -buyu639.com -buyu642.com -buyu645.com -buyu652.com -buyu653.com -buyu654.com -buyu657.com -buyu661.com -buyu662.com -buyu663.com -buyu665.com -buyu676.com -buyu680.com -buyu684.com -buyu687.com -buyu690.com -buyu697.com -buyu699.com -buyu730.com -buyu734.com -buyu739.com -buyu745.com -buyu746.com -buyu747.com -buyu751.com -buyu752.com -buyu755.com -buyu756.com -buyu757.com -buyu761.com -buyu772.com -buyu775.com -buyu779.com -buyu781.com -buyu784.com -buyu790.com -buyu794.com -buyu795.com -buyu802.com -buyu803.com -buyu807.com -buyu811.com -buyu814.com -buyu816.com -buyu826.com -buyu827.com -buyu828.com -buyu829.com -buyu830.com -buyu831.com -buyu836.com -buyu841.com -buyu843.com -buyu849.com -buyu852.com -buyu855.com -buyu857.com -buyu859.com -buyu883.com -buyu887.com -buyu893.com -buyu894.com -buyu896.com -buyu897.com -buyu901.com -buyu913.com -buyu920.com -buyu924.com -buyu925.com -buyu926.com -buyu930.com -buyu931.com -buyu932.com -buyu935.com -buyu939.com -buyu947.com -buyu950.com -buyu951.com -buyu952.com -buyu953.com -buyu954.com -buyu959.com -buyu960.com -buyu963.com -buyu967.com -buyukbetbayi5.com -buyukcekmeceesnaflari.xyz -buyukcekmecelisesi.xyz -buyurightnow.com -buyusabooks.com -buyusedlibrarybooks.org -buyvaltrexonline.store -buyviagracheapmailorder.us -buyviagraonline-us.com -buyvpn.xyz -buywinstrol.xyz -buywithoutrxpills.com -buywowgold2.com -buyxanaxonlinemedz.com -buyyourtoledohome.com -buyyoutubviews.com -buzlat.org -buzlin.club -buzzcluby.com -buzzcompact.com -buzzdating.info -buzzdeck.com -buzzdimo.com -buzzdomain.com -buzzedibles.org -buzzjoint.com -buzzuoso.com -buzzvirale.xyz -buzzzyaskz.site -bv2mpm.us -bv9dec.us -bvegtewrs.ml -bvictor3.org -bvigo.com -bvitamini.site -bvkjgnbg.xyz -bvkn04.us -bvmvbmg.co -bvndah.club -bvngf.com -bvqaaivso.shop -bvqjwzeugmk.pl -bvqk.email -bvs93v.us -bvtravelnews.com -bvuathletics.org -bvz8k1.us -bvzoonm.com -bwa33.net -bwcfn1.site -bwdny.com -bwgworldwide.com -bwhey.com -bwjdk1.site -bwltir.com -bwnkwx.site -bwpyt.live -bwtdmail.com -bwwsrvvff3wrmctx.cf -bwwsrvvff3wrmctx.ga -bwwsrvvff3wrmctx.gq -bwwsrvvff3wrmctx.ml -bwwsrvvff3wrmctx.tk -bwww.icu -bwyv.com -bx6r9q41bciv.cf -bx6r9q41bciv.ga -bx6r9q41bciv.gq -bx6r9q41bciv.ml -bx6r9q41bciv.tk -bx8.pl -bx800.site -bx8w34.us -bx9puvmxfp5vdjzmk.cf -bx9puvmxfp5vdjzmk.ga -bx9puvmxfp5vdjzmk.gq -bx9puvmxfp5vdjzmk.ml -bx9puvmxfp5vdjzmk.tk -bxbjq.site -bxbofvufe.pl -bxbsale.top -bxfmtktkpxfkobzssqw.cf -bxfmtktkpxfkobzssqw.ga -bxfmtktkpxfkobzssqw.gq -bxfmtktkpxfkobzssqw.ml -bxfmtktkpxfkobzssqw.tk -bxhktmllk11812.cf -bxhktmllk31874.tk -bxhktmllk84478.ga -bxhktmllk84478.tk -bxis.email -bxm2bg2zgtvw5e2eztl.cf -bxm2bg2zgtvw5e2eztl.ga -bxm2bg2zgtvw5e2eztl.gq -bxm2bg2zgtvw5e2eztl.ml -bxm2bg2zgtvw5e2eztl.tk -bxs1yqk9tggwokzfd.cf -bxs1yqk9tggwokzfd.ga -bxs1yqk9tggwokzfd.ml -bxs1yqk9tggwokzfd.tk -by-akg.online -by-simply7.tk -by-who.com -by7au1.us -by8006l.com -by8hw.us -by9827.com -bybe.site -bybike.com -bybklfn.info -bycollective.com -bycy.xyz -byd686.com -bydenyingh.icu -byebyemail.com -byedacetin.net -byel.email -byespm.com -byetextbooks.com -byeworker.best -byfstg.com -bygga-infrabastu.se -byggcheapabootscouk1.com -byhabeo.space -byhouse.icu -byj53bbd4.pl -bykefu.online -bykefu.site -bykefu.xyz -bykov-stroj.ru -bykuzen.xyz -bymahades.com -byng.de -byngo.com -bynyqs.com -byom.de -bypass-captcha.com -bypebbles.info -bypebbles.net -byplxu.com -byporax.live -byq85.com -byqv.ru -byredo-parfums.online -byribu.info -byrnefamilyfarm.com -byrnewear.com -byrostudios.com -bysky.ru -bytegift.com -byteleaders.amsterdam -bytesundbeats.de -bytheglass-usa.com -bythegrapes.com -bythewater.net -bytik-flower.ru -bytom-antyraddary.pl -byukgztw.shop -byustore.xyz -byviuz.site -byw2288.com -byw3388.com -byw4488.com -byw5588.com -bywuicsfn.pl -bz-365e.com -bz-555.com -bz-888.com -bz-cons.ru -bz-mytyshi.ru -bz8l.com -bzdkx.us -bzgnqx.icu -bzhso1.info -bzidohaoc3k.cf -bzidohaoc3k.ga -bzidohaoc3k.gq -bzidohaoc3k.ml -bzidohaoc3k.tk -bzip.site -bzmoe.com -bzmt6ujofxe3.cf -bzmt6ujofxe3.ga -bzmt6ujofxe3.gq -bzmt6ujofxe3.ml -bzmt6ujofxe3.tk -bzmxeu.us -bzof89lyd3lfy51.xyz -bzone-111.com -bzone-777.com -bzone234.com -bzone555.com -bztf1kqptryfudz.cf -bztf1kqptryfudz.ga -bztf1kqptryfudz.gq -bztf1kqptryfudz.ml -bztf1kqptryfudz.tk -bztravogd.shop -bzujd1.site -bzwikuis.com -bzymail.top -bzzi.net -c-14.cf -c-14.ga -c-14.gq -c-14.ml -c-c-p.de -c-doudoo.com -c-dreams.com -c-lvl.pro -c-mail.cf -c-mail.gq -c-mail.online -c-n-shop.com -c-newstv.ru -c-onetv.com -c-responses.org -c-resultsfitness.com -c-tg.com -c-wrench.com -c.alabamavape.com -c.andreihusanu.ro -c.hcac.net -c.kadag.ir -c.kerl.gq -c.nut.emailfake.nut.cc -c.polosburberry.com -c.theplug.org -c.wlist.ro -c002hwpf.buzz -c005qmdb.buzz -c006mpkz.buzz -c007dcea.buzz -c008ydwu.buzz -c009fkiu.buzz -c012tury.buzz -c013dikj.buzz -c014irpp.buzz -c015smno.buzz -c016bkmw.buzz -c017dkop.buzz -c018jplo.buzz -c020ftyu.buzz -c021gtyp.buzz -c022byui.buzz -c023gsrk.buzz -c024kius.buzz -c025gsik.buzz -c026dkrn.buzz -c028fsok.buzz -c029ekbb.buzz -c031bbjr.buzz -c032bjik.buzz -c033vusm.buzz -c034hkdv.buzz -c035nirf.buzz -c036hsrp.buzz -c037sjut.buzz -c038cder.buzz -c041jhre.buzz -c044vhju.buzz -c045bjwx.buzz -c047hkjo.buzz -c048bhos.buzz -c049lrdf.buzz -c0ach-outlet.com -c0ach-outlet1.com -c0achoutletonlinesaleus.com -c0achoutletusa.com -c0achoutletusa2.com -c0cka.info -c0d.club -c0lkp4.us -c0rp0r4te.com -c0rtana.cf -c0rtana.ga -c0rtana.gq -c0rtana.ml -c0rtana.tk -c0sau0gpflgqv0uw2sg.cf -c0sau0gpflgqv0uw2sg.ga -c0sau0gpflgqv0uw2sg.gq -c0sau0gpflgqv0uw2sg.ml -c0sau0gpflgqv0uw2sg.tk -c1101.club -c1775.com -c17d.club -c19coalition.net -c1b842.xyz -c1er4u.site -c1jlpo.us -c1obm.icu -c1oramn.com -c1yyad.us -c2.hu -c20vussj1j4glaxcat.cf -c20vussj1j4glaxcat.ga -c20vussj1j4glaxcat.gq -c20vussj1j4glaxcat.ml -c20vussj1j4glaxcat.tk -c21rd.site -c23media.com -c2ayq83dk.pl -c2ccams.com -c2clover.info -c2csoft.com -c2nu8i.us -c306bb.com -c306ccc.com -c306dd.com -c306e.com -c306f.com -c306ggg.com -c306h.com -c306hhh.com -c306i.com -c306ii.com -c306mmm.com -c306n.com -c306nnn.com -c306ooo.com -c306qqq.com -c306u.com -c306vv.com -c32tr.site -c3cyt.info -c3e3r7qeuu.cf -c3e3r7qeuu.ga -c3e3r7qeuu.gq -c3e3r7qeuu.ml -c3e3r7qeuu.tk -c3email.win -c3gn9t.us -c3jsw.com -c3rodc.info -c3zkn9.us -c40eh.site -c4anec0wemilckzp42.ga -c4anec0wemilckzp42.ml -c4anec0wemilckzp42.tk -c4e34ad.club -c4fe4d1.club -c4jie.us -c4ster.gq -c4u0tn.us -c4ugr9.us -c4utar.cf -c4utar.ga -c4utar.gq -c4utar.ml -c4utar.tk -c51vsgq.com -c520p.com -c52fp4.info -c52p.com -c58n67481.pl -c59io.site -c5a7342v.xyz -c5ccwcteb76fac.cf -c5ccwcteb76fac.ga -c5ccwcteb76fac.gq -c5ccwcteb76fac.ml -c5ccwcteb76fac.tk -c5kassociates1.com -c5qawa6iqcjs5czqw.cf -c5qawa6iqcjs5czqw.ga -c5qawa6iqcjs5czqw.gq -c5qawa6iqcjs5czqw.ml -c5qawa6iqcjs5czqw.tk -c60vy.top -c6384.com -c63e.com -c63f.com -c63g.com -c63i.com -c63j.com -c63n.com -c63o.com -c63q.com -c63r.com -c63t.com -c63u.com -c63v.com -c64c6d29.club -c6760db2.club -c686q2fx.pl -c68e210.xyz -c6bc07a3.xyz -c6ebii.us -c6h12o6.cf -c6h12o6.ga -c6h12o6.gq -c6h12o6.ml -c6h12o6.tk -c6loaadz.ru -c70321.com -c70456.com -c7048.com -c70567.com -c70654.com -c70jm.site -c72iv.space -c72zc.com -c73cd.space -c74pf8.us -c74pt.space -c7665.com -c7fk799.com -c7z3dxb81xns6bz.xyz -c81hofab1ay9ka.cf -c81hofab1ay9ka.ga -c81hofab1ay9ka.gq -c81hofab1ay9ka.ml -c81hofab1ay9ka.tk -c82323.com -c84ih.site -c88987.club -c89taj.info -c8hwap.com -c8pz34.download -c8tdau.us -c99.me -c999.biz -c9gbrnsxc.pl -c9ra1v.site -ca-canadagoose-jacets.com -ca-canadagoose-outlet.com -ca.verisign.cf -ca.verisign.ga -ca.verisign.gq -ca11.cf -ca203k.com -ca5934ec.club -caadroneregistration.com -caadroneregistry.com -caaspi.live -cab22.com -cab2f8.club -cabal72750.co.pl -caballo-blanco.com -caballosonline.net -cabalpeerage.space -caban8x.com -cabddisque.cf -cabddisque.ga -cabddisque.gq -cabddisque.ml -cabddisque.tk -cabekeriting99.com -cabela.ru -cabezonoro.cl -cabify.cl -cabildocongo.com -cabinet-74.ru -cabinet-benedikt.com -cabinet-valerie-alonso.com -cabinets-chicago.com -cabinmirosy.info -cablecour.xyz -cableetmaterieldelevage.com -cablefev.xyz -cablefeve.icu -cablestore.hk -cablesword.email -cabm114.com -cabm89.com -cabm98.com -cabob.best -caboexpat.org -cabonmania.ga -cabonmania.tk -cabonobaddays.com -cabotog.net -cabotwebworks.com -cabrogamer.com -cabromotor.com -cabry.website -cabuddti.cf -cabuddti.ga -cabuddti.ml -cabuddti.tk -cabwclhf.shop -caca69.com -cacanhbaoloc.com -cacao.organic -cachedot.net -cachehosting.com -cachlamdep247.com -cachon.netmail.tk -cacingnaga.net -cacingnaga123.com -cacodemon998od.online -cacoink.ru -cad.edu.creo.tips -cad.edu.gr -caddegroup.com -caddelll12819.info -caddie.co -caddoazga.space -caden.science -cadetjobs.com -cadewey.com -cadillac-ats.tk -cadillacupstate.com -cadliafor.cf -cadliafor.ga -cadliafor.gq -cadliafor.ml -cadliafor.tk -cadmiurphj.space -cado68.com -cadomoingay.info -cadrbranch.ru -cads.tel -cadsaf.us -caeblan.com -caeboyleg.cf -caeboyleg.ga -caeboyleg.ml -caeboyleg.tk -caefrj.icu -caerwyn.com -caewite.cf -caewite.ga -caewite.gq -caewite.ml -cafe46design.xyz -cafebacke.com -cafebacke.net -cafecar.xyz -cafejomo.com -cafemilano-toomevera.com -cafepure.com -cafeqrmenu.xyz -caferagout.ru -cafergot.website -cafergot247.video -caferomatakeaway.com -cafesayang.com -cafesecretary.buzz -cafesiete.es -caffedelpalladio.com -caffeineandpregnancy.org -cafrem3456ails.com -cafuno.com -cagare.cf -cagare.ga -cagare.gq -cagare.ml -cagare.tk -cagdasdemokrattoplumcumimarlar.xyz -cageymail.info -cagi.ru -cagoi.net -cagolfboo.cf -cagolfboo.gq -cagolfboo.tk -cahalfpricelisting.com -cahalfpricelistings.com -cahayasenja.online -cahir-takeaway-cahir.com -cahkerjo.tk -cahoye.net -cahsintru.cf -cahturbate.club -cahturbate.org -cai-nationalmuseum.org -cai813.com -caidadepeloyal26.eu -caidime.ga -caidime.gq -caidime.tk -caifayulezc.com -caifos.net -caih.asia -cailega.cf -cailega.ga -cailega.ml -cainongbang.xyz -caipiao9837.com -cairdominoqq.info -caishang123.xyz -caishangpai.xyz -caishen10.fun -caishen11.fun -caishen13.fun -caishen16.fun -caishen6.fun -caishen8.fun -caishen9.fun -caistore.com -caitlynfarrowphotography.com -caiwenhao.cn -cajacket.com -cajero.net -cajun-claws.com -cajunglossary.com -cajunricecookers.com -cajydo.info -cakabahis.com -cakenxibenv.email -cakeonline.ru -cakesrecipesbook.com -cakewalktech.org -cakk.us -cakokalrect.tk -cakottery.com -calagreens.info -calandarstudy.com -calav.site -calcimine.club -calciuvpht.space -calcm8m9b.pl -calculatedchaos.net -calculatord.com -calcy.org -caldeiragroup.org -calderonpublicidad.com -caldwellbanker.in -calffiercechic.website -calfocus.com -calgarymortgagebroker.info -caliberaccounting.com -caliberaccountinggroup.com -calibericvilafrancadelpenedes.com -calibex.com -calibra-travel.com -califityoga.com -califohdsj.space -california-nedv.ru -california-resident-agent.com -californiaaddictiontreatment.center -californiaaws.com -californiabloglog.com -californiacolleges.edu -californiadroneworks.com -californiafarmwedding.com -californiafitnessdeals.com -californiagambler.com -californiamovo.com -californianetizen.com -californiaoutdoorwedding.com -californiaquote.com -californiaranchwedding.com -californiaufc.com -californiavalentine.com -caligulux.co -calisfei.cf -calisfei.ga -calisfei.gq -calisfei.tk -calismak.xyz -call-aide.com -call-direct.net -call-rick.com -callankebabishandindian.com -callbikes.com -callbsa.website -callcenter-support-qapr9h24zdpxlg9x.best -callcenter.works -callcentersolo.online -callcenterthevirtual.online -callcenterthink.online -callcentreit.com -callejondelosmilagros.com -callemoda.com -caller.reviews -calliope2.org -callmsv.website -calloneessential.com -callout.app -callrick.properties -callthegymguy.top -callthemainguy.top -calltheweb.com -calltracks.ru -callwestgate.com -calmdown.site -calmkeepalma.ml -calnam.com -calnaser.cf -calnaser.ga -calnaser.gq -calnaser.ml -calninfculning.ga -caloriebuddyapp.com -caloriecloaks.com -caloriesandwghtlift.co.uk -calphemi.cf -calphemi.ga -calphemi.ml -calphemi.tk -calumeno.net -calvadaho.com -calvarwxnp.space -calvarycloud.com -calver.biz -calverleyparish.host -calvertscatering.com -calvinkleinbragas.com -calypsoservice.com -calyx.site -cam2d.com -cam4you.cc -camachohome.com -camalize.com -camaloon.mobi -camaloon.net -camaradamail.club -camaradeaguasdetenerife.com -camau24h.info -cambiadorparabebe.com -cambiardeseguro.com -cambodiaheritage.net -cambridge-satchel.com -cambridgeapartments.info -cambridgechina.org -cambridgepropertylisting.com -cambridgize.com -camcaribbean.com -camcei.dynamic-dns.net -camciety.com -camcordershop.life -camcum.ru -camcuypop.cf -camcuypop.gq -camcuypop.ml -camcuypop.tk -camdenchurchofchrist.com -camedicalcannabis.expert -camelisete.ru -camelotcostumes.com -camerabewaking.shop -camerabuy.info -camerabuy.ru -camerachoicetips.info -cameraregistration.com -cameratouch-849.ru -cameravinh.com -cameroncook.buzz -cameronpalmer.com -cameroon365.com -camgirlexposed.com -camgirls.de -camifix.xyz -camilhouse.co -camille.pw -camillosway.com -camilokolomi.com -caminoaholanda.com -camionesrd.com -camisetascomohongos.com -camisetashollisterbrasil.com -camisolandia.com -camlive.ooo -cammk.com -camnangdoisong.com -camo-covers.com -camobet365.com -camocovers.com -camoney.xyz -camorgasmo.com -campano.cl -campcuts.com -campeonbet24.com -camphillchiropractic.com -camping-grill.info -campingandoutdoorsgear.com -campinghackers.xyz -campingtribe.com -campmas.com -camposol-linea-etica.com -campouts.app -camprv.com -campsaver.ru -campusblog.com -campuscorruption.com -campuscoverage.org -campusofmediators.ong -camrecs.com -camren.club -camrynhaley.com -camsetif19.com -camspov.com -camsuki.com -camthaigirls.com -camworldfree.com -camxxx.ooo -camxxx.tech -camxxx.xyz -can5292.com -can5584.com -canabisonfire.com -canadacoachhandbags.ca -canadafamilypharm.com -canadafreedatingsite.info -canadagoosecashop.com -canadagoosedoudounepascher.com -canadagoosejakkerrno.com -canadagoosets.info -canadalivecasinos.com -canadan-pharmacy.info -canadaonline.biz -canadaonline.pw -canadapharm.email -canadapharmaciesonlinebsl.bid -canadapharmacyonlinebestcheap.com -canadaweb.info -canadawebmail.ca.vu -canadian-fury.com -canadian-onlinep-harmacy.com -canadian-pharmacy.xyz -canadian-pharmacys.com -canadiancourts.com -canadianhackers.com -canadianonline.email -canadianpharmaciesbnt.com -canadianpharmacymim.com -canadianpharmacyseo.us -canadians.biz -canadiantopcasinos.com -canadianvaping.com -canadlan-pharmacy.info -canadph.com -canaimaburger.com -canakkalekartallari.xyz -canakkalelilernakliyat.com -canakkalelilernakliyat.xyz -canakkalemotorsiklet.xyz -canakkaleotels.xyz -canakkalevillagarden.com -canakkaleyildiznakliyat.com -canalinfo.online -canallow.com -canalpilates.net -canalpointhomes.com -canarytool.com -canbay.cf -canbay.tk -canborrowhot.com -cancecharb.cf -cancecharb.ga -cancecharb.gq -cancecharb.ml -cancecharb.tk -cancerbattlewear.com -cancerbuddyapp.com -cancermoon.org -canchimi.cf -canchimi.ga -canchimi.gq -canchimi.ml -canchimi.tk -cancun-transfers.us -cancunhikes.online -cancunholidaytours.us -cancunhotelpackages.tech -cancunpackages.space -cancunresortspackages.online -cancunweddingpackages.us -candahouse.co -candcluton.com -candesign.systems -candida-remedy24.com -candidteenagers.com -candlesticks.org -candokyear.com -candsdenterprises.com -canduqq.best -candy-blog-adult.ru -candy-captcha.com -candy-private-blog.ru -candyjapane.ml -candylee.com -candyloans.com -candymail.de -candynet.shop -candyranch.online -candysweetday.com -candywrapperbag.com -candywrapperbag.info -candyyxc45.biz -cane.pw -canextend.net -canextenz.com -canextenz.net -canfima.cf -canfima.ml -canfima.tk -cangdazzdec.ga -cangdazzdec.gq -cangdazzdec.ml -cangdazzdec.tk -cangdet.club -canggih.net -cangrejopistoleroediciones.com -canguroos.ml -cangzm.us -canhac.vn -canhacaz.com -canhacvn.net -canhardco.cf -canhardco.ga -canhardco.ml -canhcvn.net -canhoehome4.info -canholaimianquan2.net -canibots.com -canie.assassins-creed.org -canilvonhauseferrer.com -caniracpuebla.com -canitta.icu -cankaushikshave.site -cankirilimited.xyz -canlialem.xyz -canlibahisoyunu.xyz -canlidizi.com -canlidoviz.site -canligorusme.com -canlimacizler9.club -canlitvizle.pro -canmorenews.com -cannabel.org -cannabidiol.organic -cannabis-investor.com -cannabis-registration.com -cannabis-registration.net -cannabis-registry.org -cannabis918.shop -cannabisa-net.su -cannabisaktiennews.com -cannabisispiritual.com -cannabislong.com -cannabisregulacionya.com -cannabisresoulution.net -cannabisscom.com -cannabpharmis.com -cannabulizers.com -cannacbdpharm.com -cannado.art -cannagize.com -cannagize.net -cannalytics.app -cannapharm2relax.com -cannapharmacom.com -cannapharmcybis.com -cannapleaz.com -cannapurefarms.com -cannarcrm.com -cannawild.com -cannawild.net -cannedsoft.com -cannedsoft.net -canneplex.com -canneplex.net -cannextend.com -cannextenz.net -cannextenze.com -cannextenze.net -cannn.com -cannonbet77.com -cannoncrew.com -canonlensmanual.com -canonwirelessprinters.com -canpha.com -canpu.website -canrelnud.com -cansome.online -cantadeniziniz.xyz -cantaesin.online -cantamagazam.xyz -cantate-gospel.de -canteenfineasiancuisine.com -canterburyaccountancy.com -canterburynewzealanddirect.info -canthhogem.cf -canthhogem.ml -canthhogem.tk -cantikmanja.online -canton-fair.ru -cantondoctors.com -cantonwaterford.com -canuster.xyz -canvasium.com -canvaslouisiana.com -canvasshoes.club -canvasshoeswholesalestoress.info -canvastailoring.com -canwest.net -canyonrimhoneybees.com -canyouhearmenow.cf -canytimes.com -canzones.best -cao2sd4.xyz -cao6sd.xyz -cao7yhf.xyz -caob5c2.xyz -caod4w4.xyz -caodang.cd -caoew75.xyz -caof1d2.xyz -caofd21.xyz -caogf1c.xyz -caolh36.xyz -caoliu33.app -caomedge.ga -caongo.com -caonima.gq -caoq12df.xyz -caoq5do.xyz -caoser.com -caouyt21.xyz -caow32s.xyz -caoxy.xyz -cap-ogx.com -capablily.xyz -capabraintu.monster -capacitando-me.com -capatal.com -capba.site -capeandislandshearing.com -capeaudiology.com -capebretonpost.com -capecodaudiology.com -capecodear.com -capecodtinnituscenter.com -capecodtinnitustreatment.com -capecoralnailsalons.com -capehearing.com -capehu.ga -capehu.ml -capehu.tk -capetownactiva.com -capetownexcursions.com -capeture.com -capisci.org -capitakfqe.site -capital-capital.ru -capital-city.info -capital-humano.cl -capital-turkish-kebab-house.com -capitalbasicnews.com -capitalcommunityathletics.info -capitaldesign.info -capitalequityreport.com -capitalis-europa.com -capitalistdilemma.com -capitalizable.one -capitalme.app -capitalme.sk -capitalregionusa.biz -capitalregionusa.info -capitalswarm.com -capitolartscomplex.org -capitolcrypto.com -capkakitiga.pw -capnography.info -capo-daca1.ru -cappadociadaytours.com -capper-azia.ru -cappriccio.ru -caprealty-grp.com -capri-crumlin.com -capriviews.info -capsamu.com -capsaoke.info -capsaoke.net -capsaoke.org -capsaoke.xyz -capsapoker.xyz -capsawinshoki88.net -capsawinspkr.com -capsjutab.cf -capsjutab.ga -capsjutab.ml -capsjutab.tk -capsulizing906vc.online -captain4bins.com -captainamericagifts.com -captaindocker.com -captaindocker.org -captainjack.casino -captainsandguides.com -captaintlr.com -captionmediaservices.com -capturedbychelle.com -capturehisheartreviews.info -caputareg.ga -caputoesp.llc -caqmmw.shop -caqsasxc.art -car-and-girls.co.cc -car-arom.ru -car-fur.ru -car-innovcamera.ru -car-insurances.us -car-wik.com -car-wik.tk -car.storage -car101.pro -car48plus.xyz -caraa317.xyz -caraalami.xyz -caraccidentlawyernetwork.net -carackkat.online -caraff.com -caramail.pro -carambla.com -caramelize931tp.online -caramelopurohabano.com -caramerica.site -caraparcal.com -caraper.tk -caraqua.ru -caratane.com -carati02.online -carati03.online -caratsjewelry.com -caraudiomarket.ru -carautoinjury.com -caravan-express.com -carazfi.cf -carazfi.ga -carazfi.ml -carazfi.tk -carbazaarchandigarh.com -carbbackloadingreviews.org -carbo-boks.pl -carbonationgame.com -carbonationsim.com -carbonbrush.us -carbonbrushes.biz -carbonbrushes.us -carbonequity.us -carbonfiberbrush.biz -carbonfiberbrush.com -carbonfiberbrush.net -carbonfiberbrush.us -carbonfiberbrushes.biz -carbonfiberbrushes.net -carbonfiberbrushes.org -carbonfiberbrushes.us -carbonhans.com -carbonia.de -carbonnotr.com -carbtc.net -carcaremag.com -carcdr.com -carcloud49.xyz -carcoverstoday.com -card.zp.ua -cardawe.com -cardetailerchicago.com -cardiae.info -cardiffartisan.com -cardivings.info -cardmellloshop.com -cardour.com -cardpayonline.site -cardpg90sbt.xyz -cardsagainsthrones.com -cardsexpert.ru -cardsjustice.com -cardsthornton.com -cardtested.com -cardthis.com -cardtribute.com -carearoverseas.com -careconnectbeta.com -caredeliveryu.com -caredeliveryuniversity.com -caredex.com -caree9.com -careerassessmentsystem.org -careerladder.org -careermans.ru -careersinentertainmenttour.org -careersschool.com -careerupper.ru -careerwill.com -carefreefloor.com -carefreesoccer.com -caregraf.net -carehabcenter.com -carehelping.buzz -careless-whisper.com -carenetdesign.com -carerunner.com -caresforfish.com -careuters.com -carfola.site -cargids.site -cargobalikpapan.com -cargoefren.cf -cargoships.net -carhireok.com -cariadrecords.com -caribbeancruisessale.com -carinamiranda.org -caringforourwatersheds.cd -carins.io -carinsurance2018.top -carinsurancebymonth.co.uk -carinsuranceflorida.fun -cariocawayoflife.com -carissahouse.co -caritashouse.org -caritto.ru -carlasampaio.com -carlavis.info -carleasingdeals.info -carloansbadcredit.ca -carlosandrade.co -carlosdejesustotalfitness.com -carlossanchez.ga -carlossanchez.ml -carlossanchez.tk -carloszbs.ru -carlow-kebabish.com -carmafunderburg.co -carmail.com -carmelrealestateagents.com -carminemarceno2020.com -carminemarcenoforsheriff.com -carmit.info -carnalo.info -carnavalbetting31.com -carnegieacademyrealestate.com -carnegieacademytaxlien.com -carney.website -carnocha.cf -carnocha.gq -carnocha.tk -carny.website -caroil-coupon.xyz -caroil-promo.xyz -carolelectronic.com -carolers754py.online -carolinamodel.com -carolinarecords.net -carolinashoe.ru -caroline-petit.com -carolineagreen.com -carolinecrane.net -carolinejeanbaptiste.net -caroliqsdi.space -carolserpa.com -carolstaxes.org -carolus.website -carolynlove.website -caronic.shop -carpaltunnelguide.info -carpet-cleaner-northampton.co.uk -carpet-oriental.org -carpetblue.shop -carpetcareseattle.com -carpetcareseattle.net -carpetcleaningventura.net -carpetmartrugs.com -carpetremoval.ca -carpetstore.se -carpin.org -carpoo.com -carpool.design -carpuppets.info -carras.ga -carrepair.press -carrereclock.ru -carribeanpremierleague.com -carrick-hut-takeaway.com -carrickfergusknights.com -carriedennis.us -carriwell.us -carrnelpartners.com -carrolltonaccidentlawyer.com -carrolltonaccidentlawyers.com -carrolltoninjuryattorney.com -carrolltonpersonalinjuryattorneys.com -carrosusadoscostarica.com -carrygian.xyz -carrygr.icu -carrygran.xyz -carrys.site -carrytough.com -cars.cd -cars2.club -carsaa318.xyz -carsabas.info -carsencyclopedia.com -carslon.info -carspost.ru -carsyakaz.xyz -cartaodetodos.site -carte3ds.org -cartelera.org -cartelparaeventos.com -cartelrevolution.co.uk -cartelrevolution.com -cartelrevolution.de -cartelrevolution.net -cartelrevolution.org -cartelrevolutions.com -carterasdesilicona.com -cartersvillewebdesign.com -cartflare.com -carthagen.edu -cartmails.com -cartone.fun -cartoonarabia.com -cartoonnet.shop -cartoonsors.com -cartoontextures.com -cartsoonalbumsales.info -cartuningshop.co.uk -cartwright-morris.com -carubull.com -carvaleters.com -carvecolo.site -carvehabi.xyz -carver.website -carverid.xyz -carveride.icu -carvideoshop.life -carwashautopay.com -cary.website -caryamen.com -caryl.website -cas-01.com -casa-versicherung.de -casa.myz.info -casa.systems -casa98.bet -casacaymanrealestate.com -casadecampo.online -casadepaellalasrozas.com -casadimilano.com -casampiters.com -casanova-up.pro -casar.website -casaresgolfandcountryclub.com -casaromatakeaway.com -casarosita.info -casaruralsolidariacaceres.com -casavincentia.org -casavoletv2.com -casavoletv3.com -casaytierrallc.net -cascadevps.com -cascaisnetradio.com -case4pads.com -casecab.com -caseedu.tk -caseincancer.com -casekoga.ru -caseritodelibery.com -casesurfer.com -casetine.icu -casetnibo.xyz -caseyfarina.net -caseylaris.com -cash.camera -cash.org -cash128.com -cash1loans.loans -cash2.xyz -cash4.xyz -cash4houses.us -cash4nothing.de -cash5.xyz -cash6.xyz -cash7.xyz -cash8.xyz -cash9.xyz -cashadvance.com -cashadvance.us -cashadvancer.net -cashadvances.us -cashbabmzp.ru -cashbacklisting.com -cashbackr.com -cashbazi.club -cashewnutfromvietnam.com -cashfeed.net -cashfeeding.com -cashforhouseskc.com -cashforjunkcarsmanhattan.info -cashhloanss.com -cashierdecinema.com -cashlater.com -cashlinesreview.info -cashloan.org -cashloan.us -cashloannetwork.org -cashloannetwork.us -cashloans.com -cashloans.org -cashloans.us -cashloansnetwork.com -cashmons.net -cashpal.app -cashplus.us -cashproposals.com -cashspincasino.com -cashstroked.com -cashtogoods.com -cashvpn.com -casiboom.com -casino-119.com -casino-admiral10.com -casino-bingo.nl -casino-bonus-kod.com -casino-champion-official-site.com -casino-joser.com -casino-online.rocks -casino-vulkan-24.win -casino-x.co.uk -casino4me.ru -casino892.com -casinoaa316.xyz -casinoaustralia-best.com -casinobandar.net -casinobest.ru -casinobingosportsbetting.info -casinobit.bet -casinobit.club -casinobonusual2.com -casinochan2.com -casinocuan.club -casinocyprus1.ru -casinoelit47.com -casinoeridanmark.com -casinofundaily.info -casinogreat.club -casinojack.xyz -casinokun.hu -casinoleaks.info -casinomarin13.com -casinomarin22.com -casinomegapot.com -casinomolnia.com -casinoohnedeutschelizenz.net -casinoonline.cd -casinoove5.com -casinopharaonbet9.ru -casinopharaononline9.ru -casinoplorer.com -casinoremix.com -casinoreviewscanada.com -casinos-online.ru -casinos.ninja -casinos4winners.com -casinosport88.pro -casinotopwinplay.best -casinoturk.net -casinovaz.com -casinovegas.com -casinovegas69.com -casinovip.ru -casinowin.us -casinowin88.org -casinoxzerkalo.ru -casinoz.fun -casinoz.site -casinoz777.space -casio-edu.cf -casio-edu.ga -casio-edu.gq -casio-edu.ml -casio-edu.tk -casiobet.live -casitsupartners.com -caslno-faraon.ru -casmud.tk -casoron.info -casp3ss.com -casperlouis.com -caspianfan.ir -caspianshop.com -caspiantejarat.com -caspit.site -casquebeatsdrefrance.com -cassaundra.club -cassidony.info -cassinoonlinebacana.com -cassinoonlinebacanaplay.com -cassio3e.club -cassiomurilo.com -cassius.website -casstream.online -castanheiraleilao.com -castellochinese.com -castillodepavones.com -castiron-jeans.com -castiron.clothing -castkidninf.cf -castkidninf.ga -castkidninf.ml -castkidninf.tk -castle-kebab-takeaway.com -castlebranchlogin.com -castlecamelot.net -castlecary.org -castlekebabhouse.com -castlelawoffice.com -castlerockdoctors.com -castles-carey.com -castlevania.online -castlock.us -castlpoir.ga -castmerkezi.net -castorsunglasses.online -castplayer.net -castri.com -castromail.bid -castudio.shop -castwinners.space -casualdx.com -casuallclub.ru -casualtreff-confirmed.com -casualtreff-meet-backup.com -casualtreff-meet.com -cat-breeders.biz -cat.pp.ua -catalinaloves.com -catalog8.ru -catalogimunity.com -cataloniaoffers.icu -catalystnetwork.info -catalystrealtygroup.com -catalystwallet.info -catalystwms.com -cataratafortuna.com -cataumetclubcamp.com -catcafe.online -catch.everton.com -catch12345.tk -catchadj.com -catchall.fr -catchemail1.xyz -catchemail5.xyz -catchletter.com -catchmamo.cf -catchmamo.ga -catchmamo.gq -catchmamo.tk -catchmeifyoucan.xyz -catchmino.xyz -catchonline.ooo -catchthr.xyz -catchtos.info -catchtricop.cf -catchtricop.ga -catchtricop.gq -catchtricop.ml -catchtricop.tk -catcrakzup.website -cate-sd.com -categon.cf -categon.ga -categon.gq -categorize587tb.com -catercla.icu -catercolorado.com -caterho.icu -catering.com -caterwatc.xyz -caterwire.com -catessa.com -catfish101.com -cath17.com -cathead.ru -catherina.club -catherinegreco55places.com -catholicsla.com -catholicsla.org -cathouseninja.com -catighpul.cf -catighpul.gq -catighpul.ml -catighpul.tk -catindiamonds.com -catliuxin.xyz -catnipcat.net -catorpnd.club -catretainerbug.website -catson.us -cattleclub.net -catturarelavita.com -catty.wtf -catypo.site -caucomda.cf -caucomda.gq -caucomda.ml -cauf.email -caufurjo.cf -caufurjo.ml -caufurjo.tk -caughtinthemiddle.org -caugiay.tech -cauri.ru -causamail.club -causedelta.org -causeforalife.com -causesofheadaches.net -causetoshare.com -causikir.cf -causikir.ga -causikir.gq -causikir.ml -cauthanggooccho.com -cautiocon.cf -cautiocon.ga -cautiocon.gq -cautiocon.tk -cav000.com -cav002.com -cav006.com -cav111.com -cavi.mx -caviarsmoke.store -caviaruruguay.com -cavilers639kx.online -cavisto.ru -cavlbx.us -cawo8x.com -cawxrsgbo.pl -cax-aksmmor.ru -caxa.site -caybrac.com -caycebalara.com -cayrdzhfo.pl -caywrisun.cf -caywrisun.gq -caywrisun.ml -caywrisun.tk -cazerumka.ru -cazino777.pro -cazinoid.ru -cazinomolniya.com -cazinovulkan777.ru -cazinoz.biz -cazir.live -cazis.fr -cazzie.website -cazzo.cf -cazzo.ga -cazzo.gq -cb365.space -cb367.space -cb381.space -cb44ay.com -cb4p1f.us -cb5.xyz -cb6ed.xyz -cb6it0.us -cb7ohx6dhgy1ikl.xyz -cbagian.buzz -cbair.com -cbajl.live -cbajlo.site -cbamboo.com -cbaplex.net -cbarato.plus -cbarato.pro -cbarato.vip -cbav12.xyz -cbav9.xyz -cbaweqz.com -cbbwabci.shop -cbc-2020.website -cbc-canada2020.site -cbca.xyz -cbcfpermanence.com -cbd-bites.net -cbd-direct.net -cbd-mart.net -cbd-pills.net -cbd-snack.net -cbd-snacks.net -cbd-treats.com -cbd-treats.net -cbd.clothing -cbd47.com -cbd4less.net -cbd911.life -cbdarthritisrelief.com -cbdbites.net -cbdbydrakc.com -cbdcake.com -cbdelivered.net -cbdeserts.net -cbdforbirds.com -cbdforcure.com -cbdforless.net -cbdforms.com -cbdgeeks.org -cbdgumcanada.online -cbdhealthnuts.com -cbdhealthpro.com -cbdhealthpro.net -cbdjungle.com -cbdlandia.pl -cbdnut.com -cbdnuts.net -cbdofthemonth.com -cbdol.ru -cbdpackage.net -cbdpicks.com -cbdreleafmedway.com -cbdshield.net -cbdslim.net -cbdstars.net -cbdtodaynow.com -cbdw.pl -cbe96.xyz -cbes.net -cbgame.club -cbgh.ddns.me -cbhj.email -cbjr.tk -cbjunkie.com -cbkariyer.com -cbmcalgary.com -cbmg.email -cbms.online -cboshuizen.com -cbot1fajli.ru -cbproofs.com -cbreviewproduct.com -cbrit.com -cbs0r3.us -cbspoker.net -cbsua.ga -cbuapv.club -cbxapp.com -cby95.com -cbyourself.com -cbzmail.tk -cc-cc.usa.cc -cc-lucky9.com -cc-s3x.cf -cc-s3x.ga -cc-s3x.gq -cc-s3x.ml -cc-s3x.tk -cc.mailboxxx.net -cc.netmail.tk -cc0d.com -cc272.net -cc2ilplyg77e.cf -cc2ilplyg77e.ga -cc2ilplyg77e.gq -cc2ilplyg77e.ml -cc2ilplyg77e.tk -cc33.online -cc3770.com -cc4av.info -cc57822.com -cc9356.com -cc9oif.com -ccacomunicacao.com -ccamerapeak.site -ccat.cf -ccat.ga -ccat.gq -ccavinun.cf -ccavinun.gq -ccavinun.ml -ccavinun.tk -ccbd.com -ccbilled.com -ccc-119.com -ccc526.xyz -ccc9827.com -cccc.com -ccccmontreal.com -ccclmail.com -ccdd.site -cce.coop -cceee.net -cceks.com -ccfcd46.xyz -ccgtoxu3wtyhgmgg6.cf -ccgtoxu3wtyhgmgg6.ga -ccgtoxu3wtyhgmgg6.gq -ccgtoxu3wtyhgmgg6.ml -ccgtoxu3wtyhgmgg6.tk -cchaddie.website -cchatpulsek.site -cchatwarer.site -cchatz.ga -cchetsbdc7.uno -cciatori.com -ccid.de -ccikarate.com -ccisnorth.org -cclend.website -ccmail.men -ccmgweb.com -ccmoe.com -ccmskillscamp.com -ccn35.com -ccoinxsm.site -ccon4.xyz -ccpad.ml -cctrl.org -cctvcamerasrus.xyz -cctyoo.com -ccustaffing.com -ccuttonics.com -ccwld.com -ccxdvo.icu -ccxpnthu2.pw -ccyansu.com -cd.mintemail.com -cd.usto.in -cd212f77.xyz -cd2in.com -cd921a07.club -cd9cki.us -cdaeastlands.com -cdbook.club -cdcbkidsdentist.com -cdclot.com -cdcmail.date -cdcovers.icu -cdekhouse.space -cdjcy.com -cdjiazhuang.com -cdkey.com -cdmoe.com -cdn.rent -cdnaas.com -cdnaas.net -cdnfree.gq -cdnplayvideos.xyz -cdnqa.com -cdntunnel.com -cdofutlook.com -cdoza.live -cdp6.com -cdpa.cc -cdpchurch.com -cdpluss.com -cdpokem.ru -cdressesea.com -cdrhealthcare.com -cdrmovies.com -cdsljk.com -cdsshv.info -cdtwb1.site -cdvig.com -ce.mintemail.com -cebaffshop.store -cebahis29.com -cebgcefd.ga -cebithannover.ru -cebolsarep.ga -cebong.cf -cebong.ga -cebong.gq -cebong.ml -cebong.tk -cecerbuyshouses.com -cecilihouse.co -ceco3kvloj5s3.cf -ceco3kvloj5s3.ga -ceco3kvloj5s3.gq -ceco3kvloj5s3.ml -ceco3kvloj5s3.tk -cecrlem.top -cedarcitybusinessbrokers.com -cedarcomputerssite.club -cedarfallsapartments.com -cedarloghomestn.biz -cedarrapidsrealestateagents.com -cedijournal.com -cedoiruty.cf -cedwa.us -ceed.se -ceefax.co -cefer.xyz -cefind.net -ceftvhxs7nln9.cf -ceftvhxs7nln9.ga -ceftvhxs7nln9.gq -ceftvhxs7nln9.ml -ceftvhxs7nln9.tk -cegisau.space -cehage.ga -cehage.gq -cehage.ml -cehage.tk -cehami.com -cehomeagencyinc.org -cehu.site -ceifiohous.ga -ceifiohous.gq -ceifiohous.ml -ceifiohous.tk -ceilysa.cf -ceilysa.ga -ceilysa.tk -ceinasu.ru -ceipanto.cf -ceipanto.ga -ceipanto.ml -ceipanto.tk -ceiraafrac.cf -ceiraafrac.gq -cek-resi.website -cek-tagihan.website -cek.pm -cekajahhs.tk -cekilisli.space -ceklaww.ml -cekmovie.com -cekygr.icu -celakafe.xyz -celdelest.cf -celdelest.ga -celdelest.gq -celdelest.tk -cele.ro -celebandtrend.com -celebans.ru -celebes.us -celebfap.net -celebleak.co -celebmarket.net -celebmetrics.com -celebratelifebc.info -celebrinudes.com -celebriporn.net -celebritiesblog.com -celebritron.app -celebrity-whiz.com -celebrityadz.com -celebritydiscounts.club -celebrityweighthack.com -celebrus.email -celebsbreakingnews.com -celebslive.net -celebwank.com -celerirouge.com -celerto.tk -celestineliving.com -celiacenzyme.com -celikhanlimited.xyz -celikogullaritraktor.xyz -celinea.info -celinebags2012.sg -celinecityitalia.com -celinehandbagjp.com -celinehandbagsjp.com -celinejp.com -celinesoldes.com -celinestores.com -celinevaska.com -celiro.ru -cellartravel.com -cellmotion.com -cellphoneaccessoriesdepo.com -cellphonegpstracking.info -cellphoneparts.tk -cellphonespysoftware2012.info -cellsata.cf -cellsata.ga -cellsata.gq -cellsata.ml -cellsata.tk -cellular-phone-accessories-center.com -cellularispia.info -cellularispiaeconomici.info -cellulite-clinics.com -celluliteremovalmethods.com -cellurl.com -celocopac.fun -celsiuscapitalinc.com -celtabet127.com -celtabet184.com -celtabet33.com -celtode.cf -celtode.ga -celtode.gq -celtode.ml -celtode.tk -celtric.org -celyi.live -cem.net -cemailes.com -cemalettinv1.ml -cemalettinv1.tk -cemdevelopers.com -cemdevelopers.info -cemdevelopers.org -cementkazan.ru -cemeqq.poker -cemouton.com -cempece.site -cenanatovar.ru -ceneio.pl -cenglandb.com -cenkdogu.cf -cenkdogu.tk -cenodrom.ru -cent.cd -cent23.com -centa93.icu -center-kredit.de -center-sicherheit-abteilung-update.xyz -center-zemli.ru -centercoupon.ru -centeredconversation.com -centerforresponsiveschools.com -centerforresponsiveschools.info -centerforresponsiveschools.org -centerhash.com -centerlasi.ml -centerlasi.tk -centermail.com -centermail.net -centerpointecontractors.info -centerpointecontractors.net -centerpointecontractors.org -centervilleapartments.com -centimeter.online -centleadetai.eu -centnerschools.net -centnetploggbu.eu -centol.us -centou45.icu -centoviki.cf -centoviki.gq -centoviki.ml -centr-doors.ru -centr-fejerverkov28.ru -centr-luch.ru -centr-med-orenburg.ru -centr-p-i.ru -central-asia.travel -central-cargo.co.uk -central-grill-takeaway.com -central-realestate.com -central-series.com -central-servers.xyz -central-teater.ru -centralatomics.com -centralcomprasanitaria.com -centraldasaude.xyz -centraldecomunicacion.es -centrale.waw.pl -centralgrillpizzaandpasta.com -centralheatingproblems.net -centralizes920zw.online -centraljoinerygroup.com -centrallosana.ga -centralmicro.net -centralniagaraminorhockey.com -centralplatforms.com -centralstaircases.com -centralstairisers.com -centralteam.org -centraltoto.biz -centralux.org -centralwisconsinfasteners.com -centrenola.com -centreofarmonia.com -centresanteglobaleles4chemins.com -centresanteles4chemins.com -centrodeolhoscampos.com -centrodesaude.website -centrodesaude.xyz -centroone.com -centrosprevencion.com -centrulvechi.info -centrvi.online -century-pool-advice-make.xyz -century21coloradoriverrealty.com -century21nz.com -centuryfinley.site -centuryminingsr.com -centvps.com -centy.cf -centy.ga -centy.gq -centy.tk -cenue8x.com -cenun8x.com -ceo-online.ru -ceocili.gq -ceocili.ml -ceocili.tk -ceoll.com -ceomk.live -ceos.us -ceos.xyz -cepatbet.com -cepdelira.xyz -cepechil.ml -cepechil.tk -cepetede.cd -cephalexin247.video -cephtech.com -cepie8x.com -cepin8x.com -cepwslow.works -ceramica-mk.ru -ceramicdinos.com -ceramicsbensu.com -ceramicsouvenirs.com -ceramictile-outlet.com -ceranode.net -ceranode.org -cerb2.com -cerb3.com -cerbapp.com -cerberushelpdesk.com -cerberuslabs.com -cerbidurch.cf -cerbidurch.ga -cerbidurch.gq -cerbidurch.tk -cerdikiawan.me -cereally.com -cerebal-palsey.com -cerebalpalseyattorney.com -cerebalpalsyattorneys.com -cerebral-palsey-attorneys.com -cerebral-palsy-attorneys.net -cerebral-palsy-law-firm.net -cerebral-palsy-law-firm.org -cerebralpalseyattorney.com -cerebralpalseylawyer.com -cerebralpalsyattorneys.com -cerebralpalsyattorneys.info -cerebralpalsyattorneysgroup.com -cerebralpalsyattorneysnetwork.com -cerebralpalsylaw.org -cerebralpalsylawfirm.net -cerebralpalsylawyer.info -cerebralpalsylawyers.org -ceremonydress.net -ceremonydress.org -ceremonydresses.com -ceremonydresses.net -ceremonyparty.com -cereponsu.website -cerf-science.org -cergon.com -cerinaong.com -ceritaku.me -ceritaseksdewasa.org -cerkesnumunemektebi.org -ceroa.com -ceroitemas.ga -certansia.net -certificatievisure.com -certifiedautismtherapists.com -certifiedautismtherapy.com -certifiedfinancialeducation.com -certifiedorganichairproducts.com -certifiedprobatehousesellers.com -certifiedtgp.com -certiflix.com -certifyd.email -certphysicaltherapist.com -certstatus.live -cerukal.ru -cervantesusa.com -cerve.site -cervejeiromestre.com.br -cervezaartesanal.pub -cerysmclean.buzz -cesbfledin.cf -cesbfledin.gq -cesbfledin.ml -ceshi02.xyz -ceshizhuanyong4.icu -cesindy2018.com -ceskarapublika.info -cesknurs69.de -cesmecigida.xyz -cesmemarin.xyz -cesmeogretmenevi.online -cesmeogretmenevi.xyz -cesmetatilcesme.xyz -cessmarwa.gq -cessmarwa.ml -cessmarwa.tk -cessmonre.cf -cessmonre.ga -cessmonre.gq -cessmonre.ml -cessmonre.tk -cestdudigital.info -cestocon.ga -cestocon.gq -cestocon.ml -cestocon.tk -cesur.pp.ua -cetamastelverse.com -cetinraf.com -cetpass.com -cetssc.org -cetta.com -cevdet.tk -ceviriciler.net -cevoboutique.site -cewaby.info -ceweknakal.cf -ceweknakal.ga -ceweknakal.ml -cewtrte555.cz.cc -cex1z9qo.cf -cexkg50j6e.cf -cexkg50j6e.ga -cexkg50j6e.gq -cexkg50j6e.ml -cexkg50j6e.tk -ceyfc.xyz -ceyhantesisat.xyz -ceyhuncan123.tk -ceylonleaf.com -ceylonmusic.com -ceylontravell.icu -cezujao7.online -cezujao7.site -cf393.site -cf99ba7f8a69c93729.xyz -cfa81.space -cfaffiliateap.com -cfaffiliateapp.com -cfat9fajli.ru -cfat9loadzzz.ru -cfatt6loadzzz.ru -cfcae.org -cfdripfunnel.com -cfe21.com -cfejd.us -cfifa.net -cfire-sale.ru -cfllx7ix9.pl -cflnja.us -cfmercantile.net -cfml.ninja -cfn.productions -cfo2go.ro -cfocentre.se -cfoto24.pl -cfremails.com -cfromero.com -cfsf.org -cfskrxfnsuqck.cf -cfskrxfnsuqck.ga -cfskrxfnsuqck.gq -cfskrxfnsuqck.ml -cfskrxfnsuqck.tk -cfspart-impots-gouv.site -cftest123.cam -cftrextriey-manage1.com -cfxsjw.shop -cfyawstoqo.pl -cfzfkypq.shop -cganlefunt.xyz -cgbjxt.tk -cgco.ru -cget0faiili.ru -cget3zaggruz.ru -cget4fiilie.ru -cget6zagruska.ru -cgfirst.dev -cgfrinfo.info -cgfrredi.info -cgget5zaggruz.ru -cgget5zagruz.ru -cghdgh4e56fg.ga -cghvj.site -cghyoh6u7b8hjnr.xyz -cgilogistics.com -cgjt0.us -cgls.shop -cgnz7xtjzllot9oc.cf -cgnz7xtjzllot9oc.ga -cgnz7xtjzllot9oc.gq -cgnz7xtjzllot9oc.ml -cgnz7xtjzllot9oc.tk -cgredi.info -cgrtstm0x4px.cf -cgrtstm0x4px.ga -cgrtstm0x4px.gq -cgrtstm0x4px.ml -cgrtstm0x4px.tk -cgrwmp.icu -cgtj45iht1.men -cgucpa.org -cgvxoom.com -cgwrgmha.shop -cgyeezyus.com -ch.tc -ch13sfv.com -ch13sv.com -ch82sz.us -cha-cha.org.pl -cha17.com -chaamtravel.org -chaappy9zagruska.ru -chabak.net -chabbirtoy.com -chabbirtoy.icu -chabujin.top -chacebao.com -chachajichashmewale.com -chachazz.com -chachia.net -chachupa.com -chachyn.site -chacuo.net -chadu8.com -chaeumacademy.com -chaffyboater.icu -chagacup.ru -chahojoon.com -chahuacun.com -chaibehu.cf -chaibehu.ga -chaibehu.gq -chaibehu.tk -chaiberia.us -chaichuang.com -chaiikz.pro -chaikz.pro -chain-4m.pro -chain-kz.pro -chain11kz.pro -chain13kz.pro -chain2kz.pro -chain2kzb.pro -chain6kz.pro -chain7kz.pro -chain8kz.pro -chain9kz.pro -chaincreator.tech -chaincreator.university -chaincreatorexchange.com -chaincurve.com -chainer.ru -chainius-solutions.biz -chainius-solutions.info -chainius-solutions.net -chainlinkthemovie.com -chainly.net -chainnhtqby.pro -chainrestaurantsolutions.biz -chainru.xyz -chairfly.net -chairmassagekc.com -chairple.us -chairpotatoe.com -chajnik-bokal.info -chalemarket.online -chaletmotel.net -chalkfiel.press -challengeoo.email -challenges.pub -chalti.com -chalupaurybnicku.cz -chamberofshipping.org -chammakchallo.com -chammy.info -champagneposters.com -champbennett.com -champcaps.com -champing.org -champion-ins.com -championcasino.su -championix.com -championscomputersspot.club -champmails.com -champqryq.space -champtheawa.ml -chamsocdavn.com -chamsocvungkin.vn -chanadabilli.shop -chancekey.com -chancemorris.co.uk -chanddonerkebabterrassa.com -chandlerhairsalons.com -chaneborseoutletmodaitaly.com -chanel-bag.co -chanel-outletbags.com -chanelbagguzu.com -chanelcheapbagsoutlett.com -chanelforsalejp.org -chanelhandbagjp.com -chanelkirov43.ru -chanellepace.com -chaneloutlettbagsuus.com -chanelstore-online.com -chaneoutletcheapbags.com -chaneoutletuomoitmini1.com -chaneoutletuomoitmini2.com -changansj.com -change-bitcoin.ru -change.charity -changebarn.com -changefuturenow.com -changemail.cf -changemindchangefuture.org -changenypd.com -changenypd.org -changeofname.net -changesmile.org.ua -changetheway.org.ua -changethewayyoubank.org -changetheworkclimate.com -changing.info -changingemail.com -changnguyen.com -changshutea-official.ru -chanhleoz.com -chanhxa3offer.xyz -chanic.ru -chanluuuk.com -chanmelon.com -channable.us -channel9.cf -channel9.ga -channel9.gq -channel9.ml -channelbrushes.org -channelbrushes.us -channelized437mh.online -channelmovies.net -chans360.xyz -chansdouglas.com -chantel.space -chantellegribbon.com -chantsencounters.com -chanura.website -chaochuiav.com -chaolang39.com -chaolang45.com -chaolang49.com -chaonamdinh.com -chaonhe.club -chaosawa.fun -chaosawful.com -chaosfen.com -chaoshea.us -chaosi0t.com -chaosmachine.net -chaostrut.icu -chaosvalue.us -chaovideo04.com -chaovideo06.com -chaovideo09.com -chaovideo11.com -chaoxs.xyz -chaozhuan.com -chap-chi.com -chapar.cf -chaparmail.tk -chapmanfuel.com -chappy1faiili.ru -chappy9sagruz.ru -chaptermultimediatumble.website -characterizing205yn.online -charcoalforteeth.com -charcoalpowder.net -charfoce.cf -charfoce.ga -charfoce.gq -charfoce.ml -charfoce.tk -chargecell.xyz -chargeco.xyz -chargedmuscles.com -chargeduprewards.com -chargekitty.com -chargerin.com -charitablehomesite.club -charity.pizza -charityfloor.com -charityforpoorregions.com -charityfullcircle.org -charitysmith.com -charitysmith.us -charitysmithfunds.org -charjmostaghim.com -charjmostagim.com -charleschadwick.com -charlescottrell.com -charlesheflin.com -charlesjordan.com -charlesmoesch.com -charleston-titleloans.com -charlestonpersonaltrainer.net -charlie.mike.spithamail.top -charlie.omega.webmailious.top -charlielainevideo.com -charlieonparole.com -charlotteaddictiontreatment.com -charlottechiropracticneurology.com -charlottecocainerehab.com -charlotteheroinrehab.com -charlottehomeautomation.com -charlotteixp.com -charlottemajorleaguesoccer.com -charlottenorthcarolinachiropracticneurologist.com -charlotteopiaterehab.com -charlottequote.com -charlottesullivan.buzz -charlotteverywell.com -charltons.biz -charmhive.com -charmingdesigngirl.com -charminggirl.net -charmlessons.com -charmrealestate.com -charms-shop.com -chartconcierge.com -chartercatamaranthailand.com -charterfouri.com -charteroflove.com -chartersecurities.com -chartersnyc.com -chartier.name -chartnov.xyz -chartsma.press -chartsocials.com -chartubate.club -chartubate.info -chartubate.org -chartubate.xyz -chartube.club -chartube.org -chartube.xyz -chasefreedomactivate.com -chaseharnack.com -chasingyards.com -chasseurimmobiliernantes.com -chassi-nc.cf -chat316.com -chatabate.club -chatbelgique.com -chatbotbucket.com -chatbotpack.net -chatbotpack.org -chatdays.com -chatdig.com -chateastern.com -chatfap.info -chatflh.net -chatfrenchguiana.com -chatgirl.tech -chatinho.net -chatjunky.com -chatkiste.net -chatlines.club -chatlines.wiki -chatpolynesie.com -chatsite.shop -chattanoogarealestateagents.com -chatterdrive.xyz -chatur21bate.com -chaturbatism.com -chaturbatist.com -chaturbatoid.com -chatwith.it -chauhanz.tk -chaussresbuys.com -chaussure-air-max.com -chaussure-air-maxs.com -chaussure-airmaxfr.com -chaussure-airmaxs.com -chaussureairmaxshop.com -chaussuresadaptees.com -chaussuresairjordansoldes.com -chaussuresllouboutinpascherfr.com -chaussureslouboutinmagasinffr.com -chaussureslouboutinpascherfrance.com -chaussureslouboutinpascherparis.com -chaussuresslouboutinpascherfrance.com -chaussuresslouboutinppascher.com -chaussurs1ouboutinffrance.com -chavhanga.com -chaweihsu.com -chay-market.com -chaz.live -chazakbracelets.com -chbrhr.icu -chbx7.com -chclzq.com -cheap-beatsbydre-online.com -cheap-carinsurancecanada.info -cheap-carinsuranceuk.info -cheap-carinsuranceusa.info -cheap-coachpurses.us -cheap-ghdaustraliastraightener.com -cheap-inflatables.com -cheap-led-grow-lights.com -cheap-monsterbeatsdre-headphones.com -cheap-mp3s.com -cheap-nikefreerunonline.com -cheap-tadacip.info -cheap.lighting -cheap.photography -cheap2trip.com -cheap3ddigitalcameras.com -cheap43.xyz -cheap46.xyz -cheap4u.ru -cheap5831bootsukonsale.co.uk -cheapabeatsheadphones.com -cheapabercrombieuk.com -cheapadidasashoes.com -cheapairjordan.org -cheapairmaxukv.com -cheapantivirussoftwaress.info -cheapbacklink.net -cheapbagsblog.org -cheapbagsmlberryuksale.co.uk -cheapbarbourok.com -cheapbeatsbuynow.com -cheapbedroomsets.info -cheapbootsonuksale1.co.uk -cheapcar.com -cheapcarinsurancecanada.com -cheapcarinsurancerus.co.uk -cheapcarrentalparis.info -cheapcellphonesplus.com -cheapchaneljp.com -cheapcheapppes.org -cheapchristianllouboutinshoes.info -cheapchristianlouboutindiscount.com -cheapchristinlouboutinshoesusa.com -cheapcoacbagsoutletusa.com -cheapcoachbagsonlineoutletusa.com -cheapcoachfactoryyonlineus.com -cheapcoachotletstore.com -cheapcoachoutletonlinestoreusa.com -cheapcoachstoreonlinesale.com -cheapcoahoutletstoreonline.com -cheapcoahusa.com -cheapcubatravel.net -cheapdiamond.net -cheapdji.online -cheapdsgames.org -cheapeffexoronline.net -cheapelectronicreviews.info -cheaperautorepair.com -cheapercarrepair.com -cheaperredbottoms.com -cheapershop.host -cheaperthandrit.com -cheapessaywriting.top -cheapest-offers.ml -cheapestmaldivespackages.com -cheapestnewdriverinsurance.co.uk -cheapestnikeairmaxtz.co.uk -cheapestnikeairmaxzt.co.uk -cheapfacebooklikes.net -cheapfashionbootsa.com -cheapfashionshoesbc.com -cheapfashionshoesbd.com -cheapfashionshoesbg.com -cheapfashionshoesbu.com -cheapfootwear-sale.info -cheapforexrobot.com -cheapgenericciprosure.com -cheapgenericdiflucansure.com -cheapgenericdostinexsure.com -cheapgenericlexaprosure.com -cheapgenericlipitorsure.com -cheapgenericnexiumsure.com -cheapgenericnorvascsure.com -cheapgenericpropeciasure.com -cheapgenericvaltrexsure.com -cheapgenericxenicalsure.com -cheapgenericzoviraxsure.com -cheapggbootsuksale1.com -cheapghdahairstraighteneraghduksale.co.uk -cheapghddssaleukonlinestraighteners.co.uk -cheapghdsaleaustralia.co.uk -cheapghdstraightenerghdsale.co.uk -cheapghdstraighteneruk.co.uk -cheapghduksalee.co.uk -cheapgildantees.com -cheapgraphicscards.info -cheapgreenteabags.com -cheapgucchandbags.com -cheapgucchandbas.com -cheapgucchandsbags.com -cheapguccoutlet.com -cheaph.com -cheaphandbagssite.net -cheaphanestees.com -cheaphatswholesaleus.com -cheaphealth.website -cheaphie.com -cheaphorde.com -cheaphub.net -cheapills.info -cheapisabelmarantsneakerss.info -cheapjerseysprostore.com -cheapjerseyssoccer.com -cheapjerseysstoreusa.com -cheapkidstoystore.com -cheapkitchens-direct.co.uk -cheaplinksoflondoncharms.net -cheapllvoutlet.com -cheaplouboutinshoesuksale.co.uk -cheaplouisvuitton-handbags.info -cheaplouisvuittonaubags.com -cheaplouisvuittonukzt.co.uk -cheaplouisvuittoonusoutletusa.com -cheaplvbags.net -cheaplvbagss.com -cheapmenssuitsus.com -cheapmichaelkorsonsaleuus.com -cheapminibootssonsaleuk.co.uk -cheapminibootssonsaleuk1.co.uk -cheapminibootssonsaleuk2.co.uk -cheapmlberryuksalebags.co.uk -cheapmonster098.com -cheapmulberrysalebagsuk.co.uk -cheapn1keshoes.com -cheapnamedeals.info -cheapncaajerseysforwholesale.com -cheapnetbooksunder200.net -cheapnfjacketsusvip.com -cheapnicedress.net -cheapnikeairmax1shoes.co.uk -cheapnikeairmax1ukvip.co.uk -cheapnikeairmax1vip.co.uk -cheapnikeairmax90shoes.co.uk -cheapnikeairmax90zu.co.uk -cheapnikeairmax95uk.co.uk -cheapnikeairmax95zt.co.uk -cheapnikeairmaxmvp.co.uk -cheapnikeairmaxshoesus.com -cheapnikeairmaxuktz.co.uk -cheapniketrainersuksale.co.uk -cheapnitros.com -cheapnorthfacejacketsoutlet.net -cheapoakley-storeus.com -cheapoakleyoutletvip.com -cheapoakleystoreus.com -cheapoakleysunglasseshotsale.com -cheapoakleysunglassesoutlet.org -cheapoakleysunglasseszt.co.uk -cheapoakleyvipa.com -cheapoakleyzt.co.uk -cheapoksunglassesstore.com -cheapooakleysunglassesussale.com -cheapoutlet10.com -cheapoutlet11.com -cheapoutlet12.com -cheapoutlet3.com -cheapoutlet6.com -cheapoutlet9.com -cheapoutletonlinecoachstore.com -cheapoutlettoms.com -cheappandoracharms.biz -cheappbootsuksale.com -cheappghdstraightenersoutlet1.co.uk -cheappradabagau.com -cheappradaoutlet.us -cheapprescriptionspectacles.in -cheappropeciaonlinepills.com -cheapraybanswayfarersunglassesoutlet.com -cheapraybanukoutlett.com -cheaprbsunglasses.website -cheaps5.com -cheapscript.net -cheapseahawksjerseys.us -cheapshoeslouboutinsale.co.uk -cheapsnowbootsus.com -cheapsphere.com -cheapsslcoupon.com -cheapstomshoesoutlet.com -cheapthelouboutinshoesusa1.com -cheapthenorthfacesalee.com -cheapthermalpaper.com -cheaptheuksaleface.com -cheaptiffanyandcoclub.co.uk -cheaptomshoesoutlet.com -cheaptomshoesoutlet.net -cheaptomsshoeoutletstore.com -cheaptoothpicks.com -cheaptraineruk.com -cheaptravelguide.net -cheapuggbootonsaleus.com -cheapuggbootsslippers.com -cheapuggbootsuk-store.info -cheapuggoutletmall.com -cheapuggoutletonsale.com -cheapukbootsbuy.com -cheapuknikeairmaxsale.co.uk -cheapukniketrainers.co.uk -cheapukniketrainerssale.co.uk -cheapuksalehandbagsoutletlv.co.uk -cheapukstraightenerssale.info -cheapusbspeakers.info -cheapviagra.org -cheapwatch.store -cheapwebtraffic.com -cheapweekendgetawaysforcouples.com -cheapxboxlive.com -cheatautomation.com -cheatbanned.ru -cheater.com -cheaterboy.com -cheatmail.de -cheatsgenerator.online -cheatsorigin.com -cheattuts.com -cheblin.ru -chechnya.conf.work -check-novo.net -check-prizes-now6.life -check-prizesonline.life -checkacc.org -checkalertfriends.info -checkaskfriends.info -checkbesthosting.com -checkbox.biz -checkcow.icu -checkemail.biz -checken.press -checkertesting.ml -checkforwreck.com -checkgirls.site -checklepoun.cf -checklepoun.ga -checklepoun.tk -checkmaster-fail-flsitebuilder.com -checkmaster-pass-flsitebuilder.com -checkmatebill.com -checkmatemail.info -checknew.pw -checknowmail.com -checksbibalance.info -checkthelobby.com -ched.online -chediak-higashi.org -cheekyart.net -cheepchix.com -cheerclass.com -cheeriocharters.com -cheerleading-perm.ru -cheerluiei.space -cheerprosper.com -cheerylynn.com -cheesepin.info -cheesethecakerecipes.com -cheetabet.club -cheetabet12.com -cheetahcyprus.com -cheezoo.com -chef.asana.biz -chefbowmeow.com -chefenmore.com -cheffyclub.ru -chefmeaningclay.website -chefs-office.com -chefsipa.cf -chefsipa.ga -chefsipa.ml -chefsipa.tk -chefskitchenfoodservice.com -chefstakeaways.com -chehov-beton-zavod.ru -cheikh-rouhou.com -cheinepi.cf -cheinepi.gq -cheinepi.tk -chejily.com -chekibenin.com -chekist.info -chelahi.tk -cheliped.info -chellup.info -chelny.press -chelseaartsgroup.com -chelseafranklin.buzz -chelseagardensmossvale.com -chelseaheath.buzz -chelyab-nedv.ru -chembidz.com -chemeng-masdar.com -chemiaakwariowabytom.pl -chemiahurt.eu -chemicalmass.com -chemo.space -chemodanymos.com -chemolysis.info -chemonite.info -chemosorb.info -chempacpharma.com -chengren.ru -chengshinv.com -chengshiso.com -chennaidiabetes.com -chennaigip.org -chens-chinese-restaurant.com -chens-oriental-kitchen.com -chenschineserathfarnham.com -chenshaohua.org -chensimiao.org -chenstakeaway.com -chenteraz.flu.cc -chenyue.org -chequeado.ml -cher.cd -cherbeli.cf -cherbeli.gq -cherbeli.ml -cherbeli.tk -cherchesalope.eu -chernogory-nedv.ru -chernokk.ru -chernukhin.ru -chernyshow.ru -cherriesdate.com -cherrycake01.ru -cherryorgems.com -cherrytidu.space -chery-australia.club -chery-clubs.ru -chesapeakecocainerehab.com -chesapeakehairsalons.com -chesapeakeopiaterehab.com -chesapeakequote.com -cheska-nedv.ru -chesles.com -chesscrunch.com -chessjs.org -chessliquidators.com -chesstr.com -chesterstyle.ru -chesteryachtsquadron.com -chestnuthillhomelistings.com -chesvlas.website -chetabet.info -chevachi.com -chevrolet-aveo.club -chevrolet-tahoe.club -chevybizs.info -chew-on-this.org -chewcow.com -chewiemail.com -chewnchat.com -chewydonut.com -chewytrain.com -chexsystemsaccount.com -chfound.best -chfp.de -chfromu.shop -chhkhmer.com -chhmail.cf -chhmail.ga -chhmail.gq -chhmail.ml -chhmail.tk -chi-news.ru -chiangmai4sale.com -chiangmaicellars.com -chiasehoctap.net -chiasemienphi.info -chibakenma.ml -chibifyme.com -chicago-central.com -chicago4d.com -chicagoanprints.com -chicagobears-jersey.us -chicagochurch.info -chicagoconsumerlawblog.com -chicagocuttingtools.com -chicagodress.ru -chicagoguesthouses.com -chicagohopes.org -chicagopetphotoandvideo.com -chicagoquote.com -chicagotribunesnewsa13.com -chicasdesnudas69.com -chicasticas.info -chicco.com.es -chicco.org.es -chicdressing.com -chicha.net -chichichichi.com -chickditen.cf -chickditen.ga -chickditen.gq -chickditen.ml -chickditen.tk -chicken-girl.com -chicken-hut-cavan.com -chickenadobo.org -chickenbreeds.net -chickenexpressonline.com -chickenkiller.com -chickenlickn.com -chickennetwork.online -chickenrecipe.net -chickieclickie.com -chickkingtakeaway.com -chicomaps.com -chicorealestateagents.com -chicpick.ru -chidelivery.com -chider.com -chiefab.icu -chiefcoder.com -chieferfoundten.tech -chiefir.icu -chiefpizzalimerick.com -chiefse.xyz -chiefshort.recipes -chiefsmana.com -chiefsustainabilityofficer.courses -chiefsustainabilityofficer.org -chiefyagan.com -chiehalan.cf -chiehalan.ga -chiehalan.gq -chiehalan.ml -chielo.com -chiet.ru -chieusangcaocap.com -chihairstraightenerv.com -chik.cash -chikazadwa.online -chikd73.com -chikendinner.com -chikkala.net -child-ready.xyz -childeatingdisordertreatment.com -childeatingdisordertreatmentcenters.com -childfree.rocks -childrendream.info -childrenofprivilege.com -childrenoftheelements.org -childrenofthesyrianwar.com -childrensclock.ru -childrenshealthcarecenter.net -childsavetrust.org -childsclaims.com -childswirlocean.xyz -chile-cloud.com -chilelinks.cl -chilepro.cc -chiletc.com -chili-nedv.ru -chiliclubd2.com -chilicooker.com -chilicookers.com -chilkat.com -chill81.live -chill89.live -chillhard.ru -chilli.biz -chillikebabish.com -chillleo.com -chilloutpro.me -chimeecom.cf -chimeecom.gq -chimeecom.ml -chimeecom.tk -chimera.pub -chimerasport.store -chimesearch.com -chimpytype.com -chimpytype.info -chimpytype.org -china-link-takeaway.com -china-manniu.com -china-mattress.org -china-nedv.ru -china-palace-finglas.com -china-promogoods.ru -china183.com -china188bet.com -china1mail.com -chinabaijiaji.com -chinabank.com -chinabristlebrush.biz -chinabristlebrushes.org -chinabristlebrushes.us -chinacourttakeaway.com -chinadynastygoatstown.com -chinagardenchinese.com -chinagold.com -chinakitchen-bray.com -chinalww.com -chinamanometer.com -chinamarkets.xyz -chinamoondublin.com -chinanew.com -chinaopendata.org -chinapetrochemicals.com -chinapetrochemicals.net -chinapowerti.com -chinashredders.com -chinastar-sallynoggin.com -chinatourcenter.com -chinatov.com -chinatowerletterkenny.com -chinatowertakeaway.com -chinauncombidding.com -chinaznews022.com -chinchai.ru -chinchilla.su -chinchillaspam.com -chineafrique.com -chinescars.ru -chinese-opportunity.com -chineseclothes12345678.net -chinesefoodorlando.com -chinesepoker.website -chinesetomatoes.com -chingachung.ru -chingbawork.cf -chingbawork.ga -chingbawork.gq -chingbawork.tk -chinglamad.ga -chinookeyecare.com -chiogofun.cf -chiogofun.ga -chiogofun.gq -chiogofun.ml -chiohonsau.cf -chiohonsau.ga -chiohonsau.gq -chiohonsau.ml -chiohonsau.tk -chipandbib.com -chipbankasi.com -chipekii.cf -chipekii.ga -chiphop.ru -chipkolik.com -chiplat.online -chiplat.xyz -chipmunkbox.com -chipscasinotips.com -chiptechtim.com -chipz2go.com -chique.xyz -chiquimail.club -chiragbus.com -chiragra.pl -chirashizushisushibaracoruna.com -chiroinroswell.com -chiromasterclass.com -chironglobaltechnologies.com -chiropracticaction.com -chiropractorsalbuquerque.com -chisel.design -chisilk.net -chistiisad.site -chistopole.ru -chithi.tk -chithi.xyz -chithinh.com -chitofficial.ru -chitrakutdhamtalgajarada.org -chitrarupacha.com -chitwanholidays.com -chivasso.cf -chivasso.ga -chivasso.gq -chivasso.ml -chivasso.tk -chivesilicone.com -chixindianzi.com -chmail.cf -chmembership.com -chmento.com -chnhh.com -chnikolov.com -chnwfsb.com -cho.com -choang.asia -chockandblock.com -chocklet.us -choco-late-portugal.club -choco-late.site -choco.la -chocolate-hungary.online -chocolate-netherlands.online -chocolate-portugal.live -chocolate-portugal.online -chocolate100.com -chocolateclub.online -chocolategiftschoice.info -chocolatelithuania.club -chocolatelithuania.online -chocolatepoland.club -chocolateportu.club -chocolates-portugal.online -chocolatesbybenoit.com -chocolatesgodiva.com -chocolathungary.club -chocolato39mail.biz -chocourl.com -chodal2.net -chodas.com -chodinh.com -chogmail.com -choi789.fun -choice-intentions.site -choice-network.site -choicecomputertechnologies.com -choicefoods.ru -choicemail1.com -choiceoneem.ga -choicepointprg.net -choiditermmi.tk -choigamezowin.com -choikingfun.com -choiyo88.xyz -chokehntld.space -chokiwnl.men -cholaban.cf -cholaban.gq -cholaban.ml -choladhisdoctor.com -cholesterolbuddy.com -cholesterolbuddyapp.com -cholestifinshop.info -chomagor.com -chomas.pw -chombefoods.net -chondropharyngeus.best -chondrumjq.ru -chong-mail.com -chong-mail.net -chong-mail.org -chong-soft.net -chongblog.com -chongseo.cn -chongsoft.cn -chongsoft.com -chongsoft.org -chonongnghiep.website -choocho-telegram.ru -chookie.com -chooky.site -choose-health.online -choose-health.store -choose-news.club -choose-news.online -choosebitcash.ru -choosedean.org -chooseyoulearningcenter.com -chooseyourownbizventure.com -chooseyourprizes8.life -chooseyourscent.com -choosietv.com -chop-saratov.ru -chopchopdublin.com -chopsticks-takeaway.com -chopstixchinesetakeaway.com -choqr6r4.com -choquangcao.website -chordguitar.us -chordmi.com -choronosaat.site -chorrera.com -chort.eu -chosen1realestate.com -chosinhviennongnghiep.com -chothuevinhomesquan9.com -chothuexeonline.com -chotibachi.club -chotm1.site -chowderco.net -choxetoanquoc.com -chr-transactions.com -chratechbeest.club -chris.burgercentral.us -chrisanhill.com -chriscd.best -chriscollinsart.com -chrisdavegreen.com -chrisgomabouna.eu -chrishartjes.com -chrishoffman.info -chrisitina.com -chrisjoyce.net -chrisllorca.com -chrislouie.com -chrislyons.net -chrismcharles.com -chrispaden.com -chrispettus.info -chrissycostanza.com -christ.show -christ.tools -christadonaldphotography.com -christian-louboutin.com -christian-louboutin4u.com -christian-louboutinsaleclearance.com -christian-topics.info -christian.cd -christianity.app -christianlouboutin-uk.info -christianlouboutinaustralia.info -christianlouboutincanada.info -christianlouboutinccmagasin.com -christianlouboutinmagasinffr.com -christianlouboutinmagasinffrance1.com -christianlouboutinmagasinfra.com -christianlouboutinnoutlet.com -christianlouboutinnreplica.com -christianlouboutinopascherfr.com -christianlouboutinoutletstores.info -christianlouboutinpascherenligne.com -christianlouboutinpascherffr.com -christianlouboutinpascherr.com -christianlouboutinportugal.com -christianlouboutinppascher.com -christianlouboutinppaschers.com -christianlouboutinrfrance.com -christianlouboutinsale-shoes.info -christianlouboutinsaleshoes.info -christianlouboutinshoe4sale.com -christianlouboutinsuk.net -christianlouboutinukshoes.info -christianlouboutsshoes.com -christianmarket.team -christianmason.com -christianmason.org -christiantube.team -christina365.cn -christinacarolmiller.com -christinaforney.org -christinyou-ministries.com -christmas-shindig.com -christmpkz.space -christophepythoud.com -christopherbainryan.com -christopherfretz.com -christopheriqbal.buzz -christopherlittle.buzz -christophersosa.com -christosia.website -chriswebconsulting.com -chrisycac.gq -chrisycac.tk -chroeppel.com -chrom.cf -chromail.info -chromatichealthcare.com -chromestreetcars.com -chronic-fatigue.us -chronichealing.net -chronicjunkie.com -chronicradar.com -chronisbo.ml -chronisbo.tk -chronocrusade.com -chronogolf.business -chronogolf.info -chronogolf.org -chronologee.com -chronosport.ru -chronostore.org -chrspkk.ru -chrysant.info -chrysler-india.club -chtrbt.com -chttgdd6.uno -chuaccounting.com -chuachezhei.com -chuangso888.com -chuangtouquan.app -chuangxueyuan.com -chubby.monster -chubbychihuahua-designs.com -chubbyteenmodels.com -chubbyvidz.com -chuckbennettcontracting.com -chuckbrockman.com -chuckbtelb.space -chucksfamilybuffet.com -chucwopi.cf -chucwopi.ga -chucwopi.gq -chucwopi.ml -chucwopi.tk -chudmailer2.com -chudosbor-yagodnica.ru -chue.today -chuj.de -chukenpro.tk -chulavistahairsalons.com -chulavistaheroinrehab.com -chumpstakingdumps.com -chunfengxixi.space -chungcumienbac24h.xyz -chungfundraiser.com -chunglede.net -chungnhanisocert.com -chungricto.cf -chungricto.ga -chungricto.gq -chungricto.ml -chungricto.tk -chungtatre.com -chunjanet.shop -chuntianwiremesh.com -chuongtrinhcanhac.com -chuongtrinhchaobuoisang.xyz -churchgrowth.info -churchmember.org -churchofo.com -churchtactue.cf -churchtactue.ga -churchtactue.gq -churchtactue.ml -churchtactue.tk -churning.app -churreriachocolateriaroncerosalamanca.com -chutichdisopam.space -chutneyskerries.com -chuyennha37.com -chuyenphatnghean.com -chuzx.com -chvbill247.com -chvtqkb.pl -chwilowkiibezbik.pl -chwilowkiionlinebezbik.pl -chwytyczestochowa.pl -chxxfm.com -chydesad.ru -ci26vmxukn.xyz -cia-spa.com -ciaburgca.cf -ciaburgca.gq -ciaburgca.tk -cialis-20.com -cialis20mgrxp.us -cialiscouponss.com -cialisgeneric-us.com -cialisgeneric-usa.com -cialisgenericx.us -cialisietwdffjj.com -cialiskjsh.us -cialisonline-20mg.com -cialisonlinenopresx.us -cialisonlinerxp.us -cialisorderbymail.website -cialispills-usa.com -cialisqw.com -cialissuperactivesure.com -cialiswithoutadoctorprescriptions.com -cialiswithoutadoctorsprescription.website -cialisy.info -ciameca.ga -ciameca.gq -ciameca.ml -ciameca.tk -cianehigh.cf -cianehigh.ga -cianehigh.gq -cianehigh.ml -cianehigh.tk -cianicu.cf -cianicu.ga -cianicu.gq -cianicu.ml -cianicu.tk -ciaodearborn.net -ciaoitaliano.info -ciaplugas.cf -ciaplugas.ga -ciaplugas.ml -ciaplugas.tk -ciaracrossan.com -ciastannews.cf -ciastannews.ga -ciastannews.gq -ciastannews.ml -ciastannews.tk -ciberbrain.ru -ciberdietas.com -cibernews.ru -cibidi.ru -cicek12.xyz -cicek13.xyz -cicek20.xyz -cicek46.com -cicek5.xyz -cicek8.xyz -cicekcibatman.xyz -ciceronegermany.org -ciceronespanish.org -ciceroneuk.com -ciceroneuk.org -cicie.club -cickoz.info -ciconia.tours -cicop.ru -cid.kr -cidagift.cf -cidagift.ga -cidagift.gq -cidagift.ml -cidagift.tk -cidecitalia.org -cideckkrik.cf -cideckkrik.ga -cideckkrik.gq -cideckkrik.ml -cideckkrik.tk -cidstudio.ru -ciecaperc.cf -ciecaperc.ga -ciecaperc.gq -ciecaperc.ml -ciecaperc.tk -ciefenslink.cf -ciefenslink.gq -ciefenslink.ml -ciefenslink.tk -ciekawa-strona-internetowa.pl -ciekawastronainternetowa.pl -ciekawostkii.eu -ciekawostkilol.eu -cieloglobalhealthmedia.com -ciensun.co.pl -cientifica.org -cieraheadphone.com -ciesforec.cf -ciesforec.ga -ciesforec.gq -ciesperu.com -cifa.info -cifamall.site -cifjxgapk.shop -cifra-pro.ru -cifro.tech -cifrotrain.ru -cigar-auctions.com -cigar-vape.com -cigarettepacks.ru -cigarshark.com -cigdemakin.com -cigdemoguzoglu.info -ciglionline.xyz -cignainsurancecoversrehab.info -cihancaglarcankaya.online -cihancaglarcankaya.xyz -cikamalls.site -cikhuh.us -cikmaotomotorlari.xyz -cikuh.com -cikveyika.com -cileepen.cf -cileepen.ga -cileepen.gq -cileepen.ml -cileepen.tk -cilemail.ga -cilikuaisou.com -cililianfuli.net -cililianfuli.org -cilimao8.net -cilo.us -cimaclub.app -cimaclub.fan -cimaclub.network -cimaclub.rocks -cimaclub.social -cimaclub.world -cimaclub.zone -cimas.info -cimkocar-lor.ru -cinchapi.org -cincihandyman.com -cincinnatiaddictiontreatment.com -cincinnatialcoholrehab.com -cincinnatialliance.com -cincinnatihairsalons.com -cincinnatihospitaljobs.com -cincinnatiopiaterehab.com -cincogotas.com -cincyhotdeals.com -cincyrealestatedeal.com -cincysuperdeal.com -cinderblast.top -cinderear.com -cindy64.com -cindybarrett.com -cindygarcie.com -cindylikes.com -cineastamovel.com -cineblog01.pub -cinema-online.net -cinemacollection.ru -cinemaestelar.com -cinemalive.info -cinemaplaces.ru -cinemasouth.org -cinematicgames.com -cinemay.icu -cinemmerse.site -cinerue.com -cinetaquillas.com -cinetrika.ru -cingcaroug.cf -cingcaroug.ga -cingcaroug.gq -cingcaroug.ml -cingcaroug.tk -cingcawow.guru -cingram.org -cingular.us -cinhog.us -cinj0q.info -cinnamondread.com -cinotuq.net -cinselseks.com -cintaipoker.net -cintaqq.net -ciobanu-art.com -cioin.pl -ciosopka.cf -ciosopka.ml -ciosopka.tk -ciosose.cf -ciosose.ga -ciosose.ml -ciosose.tk -cioudusrei.cf -cioudusrei.ga -cioudusrei.gq -cioudusrei.tk -cipadam.xyz -cipaeu.icu -cipaxa.cf -cipaxa.ga -cipaxa.gq -cipaxa.ml -cipaxa.tk -cipchotab.cf -cipchotab.ga -cipchotab.gq -cipchotab.tk -cipher.onl -ciprofloxacin500mg.store -ciproonlinesure.com -ciprorxpharma.com -ciputraceme.com -ciquren.com -ciqv53tgu.pl -ciragansarayi.com -circ-bitcoin.com -circchondbrac.cf -circchondbrac.ga -circchondbrac.gq -circchondbrac.tk -circiassian.cf -circiassian.ga -circiassian.ml -circinmbgl.ru -circle.gift -circlechat.org -circlenervesmooth.website -circlestarranch.info -circlingtables.com -circuitropolis.com -circular-source.shop -circularindustries.com -circularmonday.se -cirengisibom.guru -cireslie.cf -cireslie.gq -cireslie.ml -cireslie.tk -ciromarina.net -cirrushdsite.com -cirrusvillage.com -cirugiaestetica10.com -cishanghaimassage.com -cispikt.ru -cists.site -cit-progress.ru -citadel-nn.ru -citadelcorp.net -citadellaw.biz -citadellaw.info -citadellaw.net -citadellaw.org -citadellawcorp.com -citasyencuentros-confirmed.com -citasyencuentros-meet-backup.com -citationslist.com -cite.name -citeme.info -citibanquesi.space -cities-countries.ru -citiesdeskpc.com -citiinter.com.sg -citippgad.ga -citippgad.gq -citippgad.ml -citippgad.tk -citizencheck.com -citizenguide.earth -citizenkane.us -citizenlaw.ru -citizens.earth -citizensearth.org -citizensvegas.com -citoyensdefrance.ngo -citrines.store -citroen-argentina.club -citroen-mexico.club -citron-client.ru -citron-toque.tk -citrusheightsattorneys.com -city-drones.com -city-girls.org -cityanswer.ru -citybeautifulnews.com -citycenterclinic.com -citycentrehotelslondon.com -citydent96.ru -cityguide.store -cityhotelbergenopzoom.com -citylightsart.com -citylightsbham.org -cityliwgvq.online -citymdisp.ga -citymdisp.gq -citymdisp.ml -cityofbatesvillems.com -cityofnah.com -cityquote.com -cityroyal.org -cityscene.org -cityscram.com -citysdk.com -citytorate.ru -citytowercasino.com -citytrendspainting.com -cityverve.com -citywhitepages.com -citywinerytest.com -citywinetour.com -cityxguide.center -cityxp.app -ciudad-activa.com -ciudadano.net -ciutada.com -ciutada.net -ciutada.org -civbc.com -civic-link.org -civicinnovation.institute -civicviz.com -civilengineertop.com -civilium.com -civilizationdesign.xyz -civilizationtour.com -civilokant903.cf -civilokant903.ga -civilokant903.gq -civilokant903.ml -civilokant903.tk -civilroom.com -civilyze.com -civisp.site -civoo.com -civvic.ro -civx.org -ciweltrust33deep.tk -cix07.space -ciyeshops.site -ciyuan.moe -cizulaa.space -cizzv.live -cj2v45a.pl -cjakeuapr.gq -cjck.eu -cjfs8z.us -cjkvd.top -cjnep.us -cjpcoqha.shop -cjpeg.com -cjr99.com -cjsandwiches.com -cjuprf2tcgnhslvpe.cf -cjuprf2tcgnhslvpe.ga -cjuprf2tcgnhslvpe.gq -cjuprf2tcgnhslvpe.ml -cjuprf2tcgnhslvpe.tk -cjymanbetx.com -ck1024.rocks -ck12.cf -ck12.ga -ck12.gq -ck12.ml -ck12.tk -ck2ts.site -ckaazaza.tk -ckancheck.xyz -ckatalog.pl -ckc9du.xyz -ckcarpetcare.com -ckcltd.ru -ckcmzm.fun -ckdvjizln.pl -ckfibyvz1nzwqrmp.cf -ckfibyvz1nzwqrmp.ga -ckfibyvz1nzwqrmp.gq -ckfibyvz1nzwqrmp.ml -ckfibyvz1nzwqrmp.tk -ckfirmy.pl -ckfmqf.fun -ckfsunwwtlhwkclxjah.cf -ckfsunwwtlhwkclxjah.ga -ckfsunwwtlhwkclxjah.gq -ckfsunwwtlhwkclxjah.ml -ckfsunwwtlhwkclxjah.tk -ckhmfk.fun -ckhouse.hk -ckicp.ru -ckiso.com -ckjmpt.fun -ckjmyn.fun -ckjmyp.fun -ckk59.xyz -ckkmkm.fun -ckkmnh.fun -ckland.ru -cklmbx.fun -ckme1c0id1.cf -ckme1c0id1.ga -ckme1c0id1.gq -ckme1c0id1.ml -ckme1c0id1.tk -ckmmfg.fun -ckmmfm.fun -cknmsm.fun -cknoell.best -cko.kr -ckoie.com -ckpmlk.fun -ckw3vt.best -ckwmzm.fun -ckxen.info -ckxmct.fun -ckxoe.us -ckymgw.fun -ckymyx.fun -ckyxtcva19vejq.cf -ckyxtcva19vejq.ga -ckyxtcva19vejq.gq -ckyxtcva19vejq.ml -ckyxtcva19vejq.tk -ckz.us -ckzmyd.fun -cl-cl.org -cl-outletonline.info -cl-pumps.info -cl-pumpsonsale.info -cl.gl -cl0ne.net -cl2004.com -claimab.com -claimdai.xyz -claimdair.xyz -claimmea.xyz -claimmean.xyz -claimspree.club -claimspree.xyz -claimtaxrebate.com -claimtoday.win -claimyourprize.life -claimyourprize46.life -claire.moe -clairefernandes.com -clairelomas.com -clairvoir.com -clamiver.cf -clamiver.ga -clamiver.ml -clamiver.tk -clamor584kf.online -clamresdeu.ga -clamresdeu.gq -clamsight.com -clan-emi.com -clan.emailies.com -clanbase.club -clanbase.xyz -clancygreen55places.com -clandest.in -clanlenpa.cf -clanlenpa.ga -clanlenpa.gq -clanlenpa.ml -clanlenpa.tk -clanopia.com -clanrank.com -clanranks.com -clansconnect.com -clanstorm.com -clanvas.com -clapmers.cf -clapnaser.tk -clapryocon.ga -clapryocon.gq -clapryocon.ml -claracosmo.com -claresguide.com -clarestakeaway.com -claritance.xyz -clarkgriswald.net -clarkown.com -clarksvillecomputers.com -clarksvillequote.com -clarksvilleshowerglass.com -claro-digital.com -clashatclintonemail.com -clashcasts.com -clashgems2016.tk -clashkings.ru -clashlive.com -clashofclanshackdeutsch.xyz -clashroyale-br.com -clasicoloto.ru -clasponoti.gq -class1air.com -classactioner.com -classactshop.xyz -classerator.com -classesmail.com -classgess.com -classibooster.com -classic-buy-outlet.host -classic.cd -classicalconvert.com -classicaltantra.com -classicdom.com -classicdvdtv.com -classicebook.com -classicexch.com -classichandbagsforsale.info -classicjewelryboutiques.com -classicjewelrygroups.com -classiclouisvuittonsale.com -classicnfljersey.com -classicopizza.online -classictiffany.com -classicudderbalm.net -classicustyle.com -classicweightloss.org -classiestefanatosmail.net -classificadosdourados.com -classificadosdourados.org -classified.zone -classifiedonline.org -classitheme.com -classivmvm.ru -classivox.com -classydeveloper.com -classytrump.works -classywebsite.co -clathasul.cf -clathasul.ga -clathasul.gq -clathasul.ml -clathasul.tk -claud.info -claudiaamaya.com -claudiabest.com -claudialmeida.com -claudonsecurity.com -claus.tk -clavlisor.cf -clavlisor.ga -clavlisor.gq -clavlisor.tk -clawpaw.xyz -clay.xyz -clayandplay.ru -claymorepool.com -clayponds.net -claytonnashhomes.com -clayware.com -clckgumshoe.us -clcraftworks.com -cldqbt.icu -cldsale.top -clean-calc.de -clean-living-ventures.com -clean.adriaticmail.com -clean.pro -cleanad.icu -cleanandgreencar.com -cleanandgreencar.org -cleanauthz.com -cleaneatingmoms.com -cleaning-co.ru -cleaningcompanybristol.com -cleaningdirectllc.com -cleaningpluscompany.com -cleaningshop.futbol -cleaningtalk.com -cleanmoraled.us -cleanpat.xyz -cleanroombrush.net -cleanroombrush.org -cleanroombrush.us -cleanroombrushes.us -cleansafemail.com -cleansidingmd.com -cleansu.xyz -cleantalkorg2.ru -cleantranscorp.online -cleanyourmail.net -clear-code.ru -clear-project.ru -clear23.rest -clear2join.com -clear2pray.com -clear2school.com -clear2vote.com -clearancebooth.com -clearbri.xyz -clearbrookatbanyan.com -clearbrookbanyan.com -clearjaxfl.com -clearlyskinroutine.com -clearmail.online -clearnmsdfkl64733.ml -clearnmsdfkl64733.tk -clearnmsdfkl85753.tk -clearnmsdfkl86115.tk -clearpia.us -clearwaterarizona.com -clearwatermail.info -clearwaycommumitysolar.com -clearworry.com -cledbel-24k-gold-kupit.ru -clegesli.cf -clegesli.gq -clegesli.ml -clegesli.tk -clemons-law.com -clendere.asia -clene.xyz -cleonika.ru -clericisbc.site -clerk.legal -clesasiv.cf -clesasiv.ga -clesasiv.gq -clesasiv.ml -clesasiv.tk -clesrora.cf -clesrora.gq -clesrora.ml -clevahub.com -clevelandaddictiontreatment.com -clevelandalcoholrehab.com -clevelandheroinrehab.com -clevelandquote.com -clever-game.ru -clever-reporterflair-blogger-brilliance.com -clever4you.ru -clevinab.ga -clevinab.gq -clevinab.ml -clfkzc.icu -clfpt.com -clhscy.icu -clic8edgt.monster -clicbiober.cf -clicbiober.ga -clicbiober.gq -clicbiober.ml -clicbiober.tk -click-4m.pro -click-email.com -click-heyp.pro -click-kznew.pro -click-mail.net -click-mail.top -click-me2.com -click-me3.com -click-me4.com -click-me5.com -click-me6.com -click-p.pro -click-pru.pro -click-r.pro -click-rb.pro -click-rr.pro -click10kz.pro -click11kz.pro -click12kz.pro -click14kz.pro -click15kz.pro -click1cler.pro -click1clr.pro -click1euru.pro -click1lder.pro -click1ldr.pro -click24.site -click2designers.com -click2dns.com -click2e-mail.com -click2ed.pro -click2email.com -click2engineers.com -click2ern.pro -click2eu.pro -click2eur.pro -click2eurb.pro -click2euru.pro -click2k.pro -click2kz.pro -click2kzld.pro -click2m.pro -click2mail.net -click2new.pro -click2otag.pro -click2p.pro -click2p.world -click2reps.com -click2snow.pro -click2spec.com -click2technology.com -click2u.pro -click3eu.pro -click3hey.pro -click4fnow.pro -click4kz.pro -click4kzcl.pro -click4lnow.pro -click4m.pro -click4md.pro -click4rhey.pro -click4rnow.pro -click5kz.pro -click6kz.pro -click9kz.pro -clickandgo-do-go.space -clickanerd.net -clickas.ru -clickbank.life -clickbank.name -clickbank.today -clickbank.world -clickcws.online -clickdeal.co -clickercl.pro -clickerld.pro -clickernews.com -clickeu.pro -clickfgo.pro -clickfun.ru -clickik.pro -clickknow.pro -clicklead.app -clicklinksolutions.com -clicklo.site -clickmagnit.ru -clickmail.info -clickmenetwork.com -clickmil.pro -clickminew.pro -clickmp.pro -clickmpnew.pro -clicknett.com -clicknowk.pro -clickp.pro -clickpet.online -clickpm.pro -clickpnow.pro -clickpp.pro -clickpricing.com -clickr.pro -clickrebill.com -clickro1.pro -clickrr.pro -clicks2you.com -clicksearch.network -clicksp.pro -clicktrack.ru -clicktrack.xyz -clicku.pro -clickwowm.pro -client-side.ru -clientesftp55.info -clientologist.net -clientreviews.org -clientsconnector.com -clientstats.org -cliffcarrs.info -cliffsvillage.com -clikco.ru -clikhere.net -clil51isf.buzz -clil53drf.buzz -clil54ghf.buzz -clim59iyy.buzz -climate-changing.info -climatecontrolled.com -climattica.net -climbing-dancing.info -climchabjale.tk -climdo.app -clin60oio.buzz -clindamycin.website -clinerut.cf -clinerut.ga -clinerut.gq -clinerut.ml -clinerut.tk -clinicacarabanchel.com -clinicalcellculture.com -clinicane.com -clinicatbf.com -cliniquedarkspotcorrector.com -clinko.com -clintonemailhearing.com -clintonemerson.com -clintonsparks.com -clip-hot-philippin.tk -clipclip.email -clipmail.cf -clipmail.eu -clipmail.ga -clipmail.gq -clipmail.ml -clipmail.tk -clipmails.com -clippersystems.com -clips.pics -clipscreen.com -clipshaker.net -cliptik.net -cliqueone.com -clit.games -clit.loan -clitinrasphi.ml -clitlickers.com -clitor-tube.com -clixoft.com -clixser.com -clk-safe.com -clk2020.co -clk2020.com -clk2020.info -clk2020.net -clk2020.org -clk2021.com -clm-blog.pl -clmkoc.us -clnsandbox.com -cloacking.space -clock-sale24.ru -clock64.ru -clockat.xyz -clockatt.xyz -clockequi.us -clockkne.recipes -clockobes.xyz -clockrest.com -clockstr.xyz -clockups.recipes -clockus.ru -clockworkpropmgmt.com -clocupproj.cf -clocupproj.ga -clocupproj.gq -clocupproj.ml -clomid.info -clomidonlinesure.com -clonchectu.cf -clonchectu.ga -clonchectu.gq -clonchectu.ml -clonefbtmc1.club -cloneforsale.com -clonequick.com -cloneroad.com -cloneviptmc1.club -clonidine.website -cloningclass.com -clord.online -closdeal.net -close-room.ru -close.vote -closed-rooms.ru -closeforme.com -closerscrm.org -closesla.buzz -closetcreative.org -closeticv.space -closetonyc.info -closetraid.me -closevide.xyz -closewo.xyz -closium.com -closurist.com -closurize.com -clothingbrands2012.info -clothinglias.com -clothingshop.info -clotrack.online -cloud-casts.com -cloud-mail.net -cloud-mail.top -cloud-node.online -cloud-server.email -cloud22020.xyz -cloud41photography.xyz -cloud41productions.xyz -cloud41service.xyz -cloud41studios.xyz -cloud43er.xyz -cloud43films.xyz -cloud43music.xyz -cloud43productions.xyz -cloud47art.xyz -cloud47design.xyz -cloud47photo.xyz -cloud47photography.xyz -cloud47shop.xyz -cloud49plus.xyz -cloud49services.xyz -cloud99.pro -cloud99.top -cloud9suite.com -cloudcamber.com -cloudcarib.net -cloudcasts.xyz -cloudcohol.com -cloudcohol.net -cloudcohol.org -clouddisruptor.com -cloudeflare.com -cloudemail.xyz -cloudflare-london.com -cloudflaremedia.com -cloudflaremedia.net -cloudflaremedia.org -cloudgo5.com -cloudhorizon.org -cloudhosting.info -cloudido.com -cloudinfo.website -cloudlfront.com -cloudmail.gq -cloudmail.tk -cloudmarriage.com -cloudmchost.tk -cloudminer.center -cloudnativechicago.com -cloudns.asia -cloudns.cc -cloudns.cf -cloudns.cx -cloudns.gq -cloudonf.com -cloudoom.com -cloudosys.com -cloudpath.dev -cloudprivatbay.com -cloudprivatbay.name -cloudpush.com -cloudrepository.ru -cloudsaveapp.com -cloudserver.store -cloudservicesproviders.net -cloudstat.top -cloudstreaming.info -cloudsyou.com -cloudt12server01.com -cloudturnos.com -cloudyfood.com -clounatiks.ru -cloutlet-vips.com -clover-limerick.com -cloverdelldesign.com -clovisattorneys.com -clowncloudmusic.com -clownflair.com -clpers.us -clpuqprtxtxanx.cf -clpuqprtxtxanx.ga -clpuqprtxtxanx.gq -clpuqprtxtxanx.ml -clpuqprtxtxanx.tk -clqmgytk.club -clrjjsnsl.shop -clrmail.com -cls-audio.club -clsaimli.space -clsalisveris.club -clsn.top -clsn1.com -clt.dev -cltj5.us -club-pchelka.ru -club127.com -club4skin.ru -club55vs.host -cluba.site -clubam.ru -clubarabiata.com -clubatv.ru -clubbackpacker.com -clubbeast.com -clubbingfrance.com -clubcadete.biz -clubcarpcon.cf -clubcarpcon.ga -clubcarpcon.gq -clubcarpcon.ml -clubcarpcon.tk -clubcaterham.co.uk -clubdelgusto.info -clubdetirlefaucon.com -clubdiariodeyucatan.com -clubedouniversitario.com -clubeovelhas.com -clubexnis.ga -clubexnis.gq -clubexnis.ml -clubexnis.tk -clubfanshd.com -clubfier.com -clubforthefuture.org -clubhowse.com -clubhyatt.com -clubjeep.es -clublife.ga -clubmailonline.com -clubmercedes.net -clubnew.uni.me -clubnews.ru -cluboholic.com -clubonline.top -clubsanswers.ru -clubscountries.com -clubstt.com -clubtestsa.info -clubuggboots.com -clubvipstar.com -clubzmail.club -clucentmeri.site -clue-1.com -clue.bthow.com -cluevoid.com -cluevoid.org -clunker.org -clunkymembrane.com -cluster.click -clusterconference2016.eu -clutchbagsguide.info -clutteredweb.com -clutthob.com -clutunpodli.ddns.info -cluu.de -clwellsale.com -cly1au.us -cm01b5.us -cm2019.net -cm4s.com -cm69.club -cm6slv.us -cma4x3.com -cmail.club -cmail.com -cmail.host -cmail.net -cmail.org -cmailing.com -cmamso.site -cmarw.com -cmastertrk.com -cmawfxtdbt89snz9w.cf -cmawfxtdbt89snz9w.ga -cmawfxtdbt89snz9w.gq -cmawfxtdbt89snz9w.ml -cmawfxtdbt89snz9w.tk -cmbapp.net -cmbet365.com -cmbjsn.com -cmc88.tk -cmcbet88.xyz -cmcc.cd -cmccarbuyers.com -cmcgwinn.com -cmconv.com -cmcosmetics.ru -cmdgame.ru -cmdmadecheck.xyz -cmdshare.com -cmdsync.com -cmdvao.ru -cmea.cd -cmecsgocup.ru -cmepexpo.com -cmewin.pro -cminulfi.ga -cminulfi.gq -cminulfi.ml -cminulfi.tk -cmjinc.com -cmksquared.com -cmm-moving.com -cmmgtuicmbff.ga -cmmgtuicmbff.ml -cmmgtuicmbff.tk -cmoki.pl -cmoplay.us -cmqtt.com -cms-rt.com.com -cms8hz.us -cmsalpha.net -cmsk.cd -cmsp3.com -cmsp4.com -cmsp5.com -cmsp6.com -cmsq0.com -cmsq2.com -cmsq3.com -cmsq4.com -cmtcenter.org -cmtt3.com -cmtt5.com -cmuddshc.shop -cmxx.store -cmyk.se -cmykyazilim.xyz -cn-chipled.com -cn-chivalry.com -cn9n22nyt.pl -cnamed.com -cnaska.site -cnba.xyz -cnbishi.com -cncb.de -cncfabrication.us -cncmachiningservice.us -cncnfc.com -cncsystems.de -cnctape.com -cncy69.xyz -cnd.net.au -cnd8704.com -cndh.cd -cndps.com -cnetmail.net -cnew.ir -cnewsgroup.com -cnfrmtion.xyz -cnh.industrial.ga -cnh.industrial.gq -cnhdjf.com -cnhhs.net -cnhindustrial.cf -cnhindustrial.ga -cnhindustrial.gq -cnhindustrial.ml -cnhindustrial.tk -cni9jz.us -cninefails.us -cnj.agency -cnkacyoz.shop -cnlesson.com -cnlgaming.site -cnmk3t950vo5x2c.xyz -cnmsg.net -cnn.coms.hk -cnnenc.com -cnnglory.com -cnobb.website -cnojobs.com -cnovelhu.com -cnplace.com -cnsa.biz -cnsds.de -cnsg-host.com -cnshosti.in -cnshouyin.com -cnsmnt.com -cntinnuo.com -cntnyuan.com -cnwyxq.com -cnzhongtuo.net -co-aa214.stream -co-uk-online.xyz -co.cc -co.mailboxxx.net -co.uk.com -co1vgedispvpjbpugf.cf -co1vgedispvpjbpugf.ga -co1vgedispvpjbpugf.gq -co1vgedispvpjbpugf.ml -co1vgedispvpjbpugf.tk -co2-regulator.com -co3i.icu -coaatal24.com -coacecss.net -coach-outletonlinestores.info -coach-purses.info -coachartbagoutlet.com -coachbagoutletjp.org -coachbagsforsalejp.com -coachbagsonlinesale.com -coachbagsonsalesjp.com -coachbagssalesjp.com -coachbagsshopjp.com -coachcheapjp.com -coachchoooutlet.com -coachexile.us -coachfactorybagsjp.com -coachfactorystore-online.us -coachfactorystoreonline.us -coachfit.ru -coachhandbags-trends.us -coachhandbagsjp.net -coaching-supervision.at -coachingmarketingdereseau.com -coachlea.xyz -coachmaverick.com -coachmavericks.com -coachnetworkmarketing.com -coachnewoutlets.com -coachonlinejp.com -coachonlinepurse.com -coachoutletbagscaoutlet.ca -coachoutletlocations.com -coachoutletonline-stores.us -coachoutletonlinestores.info -coachoutletpop.org -coachoutletstore.biz -coachoutletstore9.com -coachoutletstoreonlinenyc.com -coachoutletvv.net -coachplea.icu -coachquest.net -coachsalejp.com -coachsalestore.net -coachseriesoutlet.com -coachstorejp.net -coachstoresjp.com -coachtransformationacademy.com -coachupoutlet.com -coagro.net -coahla.net -coahla.org -coalamails.com -coalhollow.org -coalitionfightmusic.com -coalitionofchiefs.com -coalizaopeloevangelho.com -coapp.net -coareli.cf -coareli.gq -coareli.tk -coastal-trails.com -coastalantennas.com -coastalwindspublishinghouse.com -coastertools.com -coastglas.us -coastlay.xyz -coastlinebaptistchurch.org -coastmagician.com -coaststoo.us -coatsnicejp.com -coaxregimentcopy.website -cobaltcrowproductions.com -cobaltcrowproductions.xyz -cobarekyo1.ml -cobete.cf -cobhammurphy.com -cobin2hood.com -cobin2hood.company -cobizfunding.com -cobratandooritakeaway.com -cobrei.app -cocabooka.site -cocacomi.com -cocaine.ninja -cocainerehab.center -coccx1ajbpsz.cf -coccx1ajbpsz.ga -coccx1ajbpsz.gq -coccx1ajbpsz.ml -coccx1ajbpsz.tk -cochatz.ga -cochecoveterinaryhospital.com -cochisi.cf -cochisi.gq -cochisi.tk -cochranmail.men -cocinacadadia.com -cock.email -cock.li -cock.lu -cocknass.com -cockpitdigital.com -coclaims.com -cocloseams.cf -cocloseams.gq -cocloseams.ml -cocloseams.tk -coco.be -cocoacars.info -cocoaplrqm.space -cocobahis40.com -cocobahis47.com -cocobahis48.com -cocobahis49.com -cocobahis50.com -cocobet77.com -cocochaneljapan.com -cocodani.cf -cocodivo.com -cocoidprzodu.be -cocoivy.site -cocomobay.com -coconberbere.com -coconnect.tech -coconuthotelguest.com -coconutrandom.org -cocosaiindia.com -cocosandcoffee.net -cocotakeaway.com -cocovpn.com -cocreators.tech -cocreatorsinstitute.com -cocreatorsinstitute.net -cocreatorsinstitute.org -cocreatorsnetwork.org -cocreatorstech.net -cocreatorstech.org -cocreatorsventures.com -cocreatorsventures.net -cocureate.org -cocyo.com -codaoutlets.site -codb.site -codc.site -code-mail.com -code4less.biz -codealam.com -codealam.org -codeandcontrol.me -codeandconvert.com -codeandscotch.com -codebandits.com -codebender.org -codecamerica.net -codefarm.dev -codeforgerycrab.website -codefree24.de -codegency.com -codehermit.net -codekia.com -codemystartup.com -codenative.info -codenexty.com -codeorbecoded.com -codepromo.cc -coderconfs.com -coderoutemaroc.com -coderpixel.com -codersandfounders.org -coderspeech.top -codetox.center -codetoxcenter.com -codeular.com -codeulous.com -codeuoso.com -codeworkswell.com -codewritinglessons.com -codingfury.tv -codingliteracy.com -codingschool.dev -codivide.com -codiviti.com -codupmyspace.com -codyfosterandco.com -codyting.com -coemecal.ga -coemecal.gq -coemecal.ml -coemecal.tk -coepoe.cf -coepoe.ga -coepoe.tk -coepoebete.ga -coepoekorea.ml -coercivity.best -coexistglobal.org -coexn.com -coezhojz.shop -cofactormarketing.com -coffee-26.ru -coffee-time.online -coffeecruelty.org -coffeelovers.life -coffeemakers101.info -coffeeok.net -coffeepancakewafflebacon.com -coffeepoint.tech -coffeeseur.com -coffeeshipping.com -cofied.online -cognalize.com -cognalizer.com -cognalsearch.com -cognata.com -cognitiveways.xyz -cogpal.com -cohalfpricedlisting.com -cohchecovet.com -coidrafho.cf -coidrafho.ga -coidrafho.ml -coieo.com -coilbrush.net -coilbrush.us -coilbrushes.us -coin-bearer.net -coin-games.com -coin-host.net -coin-hub.net -coin-link.com -coin-mail.com -coin-one.com -coin114.net -coin888.host -coinalgotrader.com -coinbearer.com -coinbearer.net -coinbet.games -coinbin.cafe -coinbroker.club -coincal.org -coincheckup.net -coincomposer.com -coincrowd.ventures -coindie.com -coinecon.com -coinero.com -coinexchange365.com -coinfinexx.exchange -coinhelp123.com -coinific.com -coininsight.com -coinlez.com -coinlife.net -coinlink.club -coinlocal.com -coinmasterhack.website -coinmati.net -coinnect.net -coinnews.ru -coino.eu -coinpappy.net -coinshop24.biz -coinshowsevents.com -coinsmail.net -coinspices.com -coinsteemit.com -coinstrade.biz -cointunnel.com -coinvers.com -coinyoutube.com -coinzone.pro -coinzs.us -coiosidkry57hg.gq -coiphim.online -cojita.com -cojqh5.com -cokbilmis.site -cokeley84406.co.pl -cokewinkel.online -cokils.com -coksikildim.ml -coksikildim.tk -cokxj.us -cola.cool -colabcolibri.site -colabital.com -colacoce.com -colafanta.cf -colaik.com -colchesterelderlawgroup.com -colchicine247.video -coldcoldstorage.xyz -colde-mail.com -coldemail.info -coldenent.com -coldirondesign.com -coldlander.us -coldmail.ga -coldmail.gq -coldmail.ml -coldmail.tk -coldstreamforge.com -colebrager.com -coledawson.com -colefamilydentistcom.com -colemantaylorreman.com -coleure.com -colevillecapital.com -colicinbabies.online -colicinbabies.xyz -colinabet.com -colinmounier.com -colinrofe.co.uk -colinzaug.net -colitasdeangel.com -colivingbansko.com -collabio.dev -collablayer.com -collagekeepsakes.com -collapse3b.com -collapsehtn.website -collecta.org -collectionboxoffice.com -collectionlive.com -collectionmvp.com -collectionsohio.com -collectivemtl.com -collectors.global -collectors.international -collectors.solutions -colledoo.com -collegedate.online -collegedate.store -collegee.net -collegeforcanon.org -collegefornurse.com -collegehockeyblogs.com -collegelakesdentistry.com -collegeofpublicspeaking.com -collegepolos.com -colleges.cd -collegestationbaseball.com -collegetester.com -colletteparks.com -collisiondatabase.com -collnaca.cf -collnaca.tk -colloidalsilversolutions.com -colloware.com -colmek.xyz -colmeks.com -colnoiball.cf -colnoiball.ga -colnoiball.tk -colobus.best -coloc.venez.fr -colocimmo.org -cologies.site -cologno.cf -cologuard.us -cologuard45plus.com -cologuardcrc.net -colokjeep.org -coloncleanse.club -coloncleansereview1.org -coloncleansingplan.com -colonialconsulting.net -coloniallifee.com -coloninsta.tk -colonized736my.xyz -colonyzone.online -coloplus.ru -colopnw.com -coloquintida.best -color4you.ru -colorado-nedv.ru -coloradoaddictiontreatment.center -coloradocattlefeeders.com -coloradococainerehab.com -coloradodetoxcenter.com -coloradofieldhockey.com -coloradofreshstart.com -coloradoheroinrehab.com -coloradomarijuanadispensaries.com -coloradomasterhomebuyers.com -coloradoquote.com -coloradospringscocainerehab.com -coloradospringsheroinrehab.com -colorants656em.online -colorflower.net -colorflowers.net -colorists889fc.online -colorweb.cf -colorworld.info -colosgods.ru -coloshild.ru -coloshron.ru -colosjoy.ru -colossuscloud.us -colourandcode.com -colournamer.com -colt45forsale.tk -coltonattorneys.com -columbiapopalock.com -columbuscasino.design -columbuseldercare.com -columbusinfo.xyz -columbusnm.net -columbusquote.com -columbustaps.com -com-04536875422364784521.top -com-101634586696.help -com-1024493459167.online -com-1028952384656065698650.top -com-14147678891143.top -com-19428504172.icu -com-21036823570248695140.top -com-358207258746541784.xyz -com-54547894563525454.top -com-access-wallet.info -com-bqdf8uzwyo.com -com-bv8e8b9ond.com -com-d804xgpj8j.com -com-daily.win -com-dailywin.cloud -com-dailywin.info -com-dailywin.live -com-dailywin.online -com-dailywin.site -com-g5rjsgg93w.com -com-gh.xyz -com-hr0s02qp09.com -com-item.today -com-log.xyz -com-ma.net -com-mobilealert.com -com-posted.org -com-surveywin.info -com-surveywin.online -com-surveywin.site -com-tca64rtel.xyz -com-ty.biz -com-xd5r29y97r.com -com-xvrv6yt51g.com -com.ninja -com3b.com -com40239049392.icu -com50239049392.icu -comactivate.site -comagrilsa.com -comam.ru -comantra.net -comarchiemountbattenwindsor.com -comarketpartners.com -comaro-compressoren.ru -comatoze.com -combicheria.com -combindjqy.space -combined.investments -combined.site -combinedinvestments.org -combo88.com -combofan.space -combofile.site -comboload.site -comboparlay.com -combrotech77rel.gq -combustore.co -combyo.com -comcapfactoring.org -comdotslashnet.com -come-on-day.pw -come-to-win.com -comebacktere.site -comececerto.com -comeclosertojesus.com -comectrix.com -comedimagrire24.it -comedy-battl.best -comelinola.space -comella54173.co.pl -comenothayarc.com -comenow.info -comeonday.pw -comeonfind.me -comeporon.ga -comer281food3.cf -comercialsindexa.com -comersant7.site -comesa.cd -comespiaresms.info -comespiareuncellulare.info -comespiareuncellularedalpc.info -cometloansonline.com -cometoclmall.com -comfort-tech.co -comfortableshoejp.com -comfortbodypillow.com -comfortmamia.ru -comfytrait.xyz -comicblog.com -comicogu271.ga -comicollection.com -comilzilla.org -cominghamm.com -comingsoon.support -comissioncrowd.com -comitatofesteteolo.com -comitatofesteteolo.xyz -comlive.ga -comlive.gq -comlive.ml -comlive.tk -comm.craigslist.org -commande-sp.com -comments2g.com -commentstache.com -commercant.online -commerce-magazine-undersell.ru -commerce-now.online -commercecrypto.com -commercemix.com -commerchand.com -commercialpropertiesphilippines.com -commercialtrashcompactors.com -commercialunits.com -commercialwindowcoverings.org -commercieel.works -commergot.cf -commicoastroly.us -commisioncrowd.com -committeddesigns.com -commoditymantra.com -commonentranceexam.net -commonentrancelaw.com -commonmangazette.com -commonred.net -commonsensei69.org -commonsensesystems.com -commonwalk.org -commpeak.cloud -communicate-with-women.com -communifin.com -communitize.net -community-currency.org -community-focus.com -communityans.ru -communitybuildingworks.xyz -communitycinemahouston.org -communityforumcourse.com -communitymarketleader.net -commutwqtw.space -comnorerk.cf -comnorerk.ga -comnorerk.gq -comnorerk.ml -comnorerk.tk -comnow.icu -comnya.com -comoestudarsozinho.com.br -comofazernegociosonline.com -comofazerumsitepassoapasso.com -comogin.com -comohacer.club -comohacerunmillon.com -comolohacenpr.com -comonred.com -comoplantartomates.com -comostevyal.tech -comostsicurezza.com -compactstudy.com -compali.com -compandlap.xyz -company-mails.com -company.legal -companycoder.com -companykeyword.com -companynews.com -companynotifier.com -companytitles.com -compaq.com -comparabet.es -comparatable.com -comparateurchaises.com -comparatore.xyz -compare-carinsurancecanada.info -compare-carinsuranceusa.info -comparecyan.com -comparedigitalcamerassidebyside.org -comparegoodshoes.com -compareimports.com -comparepetinsurance.biz -compareshippingrates.org -comparethemiaowcat.com -compartedata.com.ar -comparteinformacion.com.ar -compartirhosting.com -compass4x.asia -compasschat.ru -compasslodge.org -compbooksra.tk -compcoddmeg.ga -compcoddmeg.gq -compcoddmeg.ml -competenergy.com -competeshop.xyz -competirinternacional.website -competition-black.xyz -compgentcrev.cf -compgentcrev.ga -compgentcrev.gq -compgentcrev.ml -compgentcrev.tk -comphelpforu.ru -compilvuer.space -complaze.cf -complet.stream -complete-hometheater.com -completecleaningmaintenance.com -completedesign.info -completegolfswing.com -completehitter.com -completeiq.com -completelycruising.com -complexitygaming.net -complextender.ru -complicatedsound.com -complikqhg.space -complimentaryxae.website -compositional.best -compostrevolution.net -compoundtown.com -compradacasa.online -comprafacilpe.com -compraho.ga -compraho.ml -compraho.tk -compraresteroides.xyz -comprarfarmacia.site -comprarsoatenlinea.com -comprehensivesearchinitiatives.com -compressionrelief.com -compscorerric.eu -compsol.se -comptophone.net -comptravel.ru -compuhelper.org -compuofertas.net -compupedia.com -compusys2000.com -computationalfinance.com -computations.me -computatrum.online -computedsharing.com -computer-dokter.com -computer-remont21.ru -computer-service-in-heidelberg.de -computer-service-in-heilbronn.de -computer-service-sinsheim.de -computercrown.com -computerdrucke.de -computerengineering4u.com -computerexpress.us -computerhardware2012.info -computerinformation4u.com -computerlookup.com -computerrepairinfosite.com -computerrepairredlands.com -computers-wizards.ru -computers1st.com -computersciencecoursesusa.com -computerslistnews.site -computersoftware2012.info -computerspeakers22.com -computersshop.futbol -computingzone.org -computingzone.us -compvershy.cf -compvershy.ga -compvershy.gq -compvershy.ml -compvershy.tk -compwilbi.ga -compwilbi.gq -compwilbi.ml -compwilbi.tk -compxino.cf -comremas.cf -comremas.ga -comremas.gq -comremas.ml -comremas.tk -coms.hk -comsafe-mail.net -comspotsforsale.info -comtrialoffer.com -comunicapp.com -comunidadmujer.app -comunique.net -comvicheria.com -comwest.de -comwtf.com -comyci.website -conarcross.com -conbactgab.cf -conbactgab.gq -conbactgab.ml -conbactgab.tk -conboxtv.com -concavodka.com -concdysre.ga -concdysre.gq -concdysre.ml -concealed.company -concentriccreativity.com -concepac.ga -concepac.ml -concepac.tk -conceptdesigninc.com -conceptionmayday.com -conceptiontragedy.com -conceptprojectawards.com -conceptroom.com -conceptspringstudio.com -concertations-nationales.cd -concertized570lt.online -concetomou.eu -conchiform.xyz -conchonddis.cf -conchonddis.ga -conchonddis.tk -conciergenb.pl -conciertocostarica.com -concisestudy.com -concordpayments.net -concoursedb.org -concoursup.com -concretebi.com -concretebotherroad.website -concretecheck.xyz -concretegrinding.melbourne -concretepolishinghq.com -concreteremoval.ca -concursosoftwarelibremalaga.org -concussia.info -condaliv.com -condating.info -condico.cf -condico.ga -condico.ml -condico.tk -conditionalbreakpoint.com -condominiumcollection.com -condoombezorger.com -condoordet.com -condorsnestprophouse.com -condorviajes.com -condovallarta.info -condovestments.com -conducivedev.com -conducivedevelopment.com -conduct.vote -conductivebrush.biz -conduscient.org -condys.app -conf.work -confeccionesdelnorte.com -confeitariaelaine.online -conferenceahead.com -conferencecallfree.net -conferencenationale.org -conferencewallingford.com -confessionblog.com -confessium.com -confidencemakeover.net -confidential.life -confidential.tips -config.work -confighub.eu -confir-mail1.com -confirm.live -confirma.center -confirma.express -confirmist.com -conflict-theory.org -conflicttheory.net -conforkxum.space -confriti.ga -confriti.gq -confriti.ml -confriti.tk -confrontationfuel.buzz -confrontstars.net -confrontstars.org -confsisal.cf -confsisal.ga -confsisal.ml -confsisal.tk -congdong.mobi -congdong43.com -congdongmu.net -congdongviettrung.com -congdongxaydung.com -congketoan.com -congmart.live -congnghemoi.top -congnghesaigon.net -congoentreprise.cd -congotex.cd -congress.earth -congroli.gq -congroli.ml -congroli.tk -congthanhtoan.website -congthongtin247.net -congtymaydongphuc.org -congtythangmay.top -conicode.com -coniemporium.site -conkeafe.cf -conkeafe.ga -conkeafe.gq -conkeafe.ml -conmato.cf -conmato.ga -conmato.ml -conmato.tk -conmochila.app -connacle.com -connatser.com -connect-auto.info -connect1to1.com -connect365.us -connectdeshi.com -connected-project.online -connecticut-nedv.ru -connecticutdetox.center -connecticutquote.com -connectiontheory.org -connectmail.online -connectme.name -connectwithjournalists.com -connelly-llc.com -connexion.website -connorgoodwin.buzz -connr.com -connriver.net -conone.ru -conqfmnwo.shop -conquergods.net -conquest.shop -conquest.store -conquestchain.icu -conquestofcastles.ru -conradtubbs.com -conrafo.cf -conrafo.ga -conrafo.gq -conrafo.ml -conrafo.tk -conravi.cf -conravi.gq -conravi.ml -conreaquar.ga -conreaquar.gq -conreaquar.ml -conreaquar.tk -conreva.cf -conreva.tk -conroymultimedia.com -consciousagingconference.com -consciousbreathing.net -conseilaf-energie.com -conselhosaude.org -consemoret.site -consentientgroup.com -conservation.africa -conservativedaily.org -conservativegetaway.com -conservativerepublican.news -conservativesagainstbush.com -conservativeworlddaily.com -consfant.com -consignag.com -consimail.com -consliric.cf -console3.net -consolumb.cf -consolumb.ga -consolumb.gq -consolumb.ml -consolumb.tk -consphlegin.cf -consphlegin.ga -conspicuousmichaelkors.com -conspiracyfreak.com -conspiracygraph.com -consrapo.cf -consrapo.ga -consrapo.gq -consrapo.tk -constantandassociates.com -constantinsbakery.com -constelacaofamiliar.website -constelacaonerd.com -constellational.com -constright.ru -constructionandesign.xyz -constructiondojo.com -constructionsoftwareadvisor.com -construinforme.net -construtrabajo.com -construyendovidas.org -constuctech.com -consul.dev -consulhosting.site -consultant.com -consultantaseo.ro -consultantneuropsychiatrist.com -consultationfluctuationsulphur.website -consulte-online.com -consultingcorp.org -consultoriaempresarialgo.info -consultus-dz.com -consumablespointofsale.com -consumer-oriented.host -consumercreditcounseling4u.com -consumerdictionary.com -consumerreports.space -consumerriot.com -consumers-health.org -consumestl.com -consuna.cf -consuna.ga -consuna.gq -consuna.ml -consuna.tk -consutoriodaray.com -contabilitate.ws -contabilizandotalentos.com -contacman.com -contact-munchet.club -contact-munchet.ltd -contact.fifieldconsulting.com -contacterpro.com -contactmanagersuccess.com -contactos-casuales.us -contactout1000.ga -contadordesuscriptores.com -container.org -containergroup.com.au -contbay.com -contcalpa.cf -contcalpa.ga -contcalpa.gq -contcalpa.ml -contecksto.club -contemis.ga -contemis.gq -contemporarycomputerssite.club -content.rocks -contentcreatorshub.com -contentculturegroup.com -contentmarketing.community -contentmarketingconferences.com -contentpeacock.com -contentsmagazine.net -contentwanted.com -contestincentiveawardnational.club -contextconversation.com -contextconversation.org -contextmenu.org -contfiripre.tk -conthydterp.cf -conthydterp.gq -conthydterp.ml -conthydterp.tk -contigxite.ru -continental-europe.ru -contingency-power.com -continuationbushdifficulty.website -continumail.com -contiocho.cf -contiocho.ga -contiocho.gq -contiocho.ml -contiocho.tk -contmy.info -contopo.com -contrabanradio.com -contracommunications.com -contract.legal -contract431.xyz -contractnotify.com -contractor.net -contractor.tax -contractoraccountant.ltd -contractorssupplydepot.com -contractorsupport.org -contractortax.contractors -contrarygarden.com -contrasted.org -contrasto.cu.cc -contratistaspr.com -contravu.xyz -contrl.digital -control-bki.ru -controlinbox.com -controllerblog.com -controllernation.com -controlshiftn.com -conttirdia.cf -conttirdia.ga -conttirdia.gq -conttirdia.ml -conttirdia.tk -conttogon.cf -conttogon.gq -conttogon.tk -contumail.com -contywil.ga -contywil.gq -contywil.ml -conuos.net -convectair.net -conventionalizing691bj.online -conventionpreview.com -conventionstrategy.win -conventionwatch.com -convergico.com -conversadigitalbrasil.com -conversejapan.com -conversyo.org -convert-attachment.com -convert-five.ru -convert.africa -convert.blue -convertallvideo.org -convertonline.com -convertor.app -convery.store -convexmirrortop.com -conveyancersnsw.com -conveyorbrush.net -conveyorbrush.org -conveyorbrush.us -conveyorbrushes.us -convivemail.club -convostoppers.com -convoswithcosmo.info -convowall.com -conwayinterfaithclinic.org -conwex.cf -conwex.ml -conwex.tk -conyiz.us -coo621.com -coo68141.com -coo721.com -coo8171.com -coobz0gobeptmb7vewo.cf -coobz0gobeptmb7vewo.ga -coobz0gobeptmb7vewo.gq -coobz0gobeptmb7vewo.ml -coobz0gobeptmb7vewo.tk -coochie.pro -cooconti.cf -cooconti.ga -cooconti.ml -cooconti.tk -coofy.net -cooiblue.online -cook-islands-accommodation.com -cook-islands-holiday.com -cookadoo.com -cookeraccessories.company -cookiealwayscrumbles.co.uk -cookiecollector.com -cookiecooker.de -cookiepuss.info -cookingbooko.club -cookingclassesnapavalley.com -cookinghelpsite.com -cookingonthecar.com -cookingwithpeeps.com -cookiriebooks.com -cookjapan.com -cookmasterok.ru -cookskill.com -cookwareshop.live -cookwsyc.space -cool-pay-to-win.space -cool-your.pw -cool.fr.nf -coolandwacky.us -coolbaby.org -coolbikejp.com -coolbild.ru -coolbluemedia.com -coolbye2.fun -coolcarsnews.net -coolchinaconference.com -coolclimatesolutions.com -coolcombine.com -coolcompanychallenge.com -cooldestinationshq.com -coolemailer.info -coolemails.info -cooleswohnzimmer.me -coolex.site -coolgadge.com -coolgoodsmarket.info -coolgranny.net -coolhobbyideas.club -coolidgeproject.org -coolimpool.org -cooljordanshoesale.com -coolkeywestwatersports.com -coolledgifts.com -coollyjuti-ro.com -coolmail.com -coolmail.ooo -coolmailcool.com -coolmailer.info -coolmanuals.com -coolmecca.com -coolminigift.com -coolminnesota.com -coolmonaco.com -coolmoviez.icu -coolorganizertraining.com -coolplaceto.bike -coolplut.ru -coolpoland.com -coolprototyping.com -coolshopsing.ru -coolsouthbeach.com -coolstyleusa.com -coolurl.tk -coolvesti.ru -coolvirginislands.com -coolwisconsindells.com -coolyarddecorations.com -coolyour.pw -coolzurich.com -coomungie.com -coomungiechelseagardens.com -coonalleystudios.com -coonvo.care -cooola.info -coopals.com -coordinator.earth -cop5.net -copagratis.com -copasdechampagne.com -copasi.ga -copastore.co -copastw.xyz -copd.edu -copdfmanuales.xyz -copeasier.com -copenhagenstreet-art.com -copi.site -copingkit.com -copistaed.ga -copiv8.us -copjlix.de.vc -copland-os.com -copland-os.org -copomo.com -copones.cf -copones.ga -copones.gq -copones.ml -copones.tk -copot.info -coppellfamilydentist.com -copper.lighting -copperascoveapartments.com -copperbacksplash.us -coppercounter.us -copperemail.com -coppersmithfamily.com -coppertreeanalytics.mobi -coppicsjqv.space -coprolite.com -copticnn.net -copycashvalve.com -copycookbook.com -copymanprintshop.com -copyright-gratuit.net -copyrightdesk.com -copytrade.investments -coqmail.com -cora.marketdoors.info -coracleansehelp.com -coral-tour.space -coralgablesguide.com -coralgablesstraighttalk.com -coralsnake.studio -corau.com -coraxnetworks.com -corborno.info -cordcraft.com -cordcutting.news -cordellassetprotection.com -cordex.exchange -cordfreevacuum.com -cordialco.com -cordisphuket.com -cordisresortnvillas.com -cordisresortvillas.com -cordisvillas.com -cordivamedical.com -cordlessduoclean.com -cordlessshark.com -core-pack.at -core-rehab.org -core4.app -coreblockchain.academy -coreclip.com -coreletter.com -corelife.biz -corelife.org -corenels.xyz -corepliantcuff.website -coreral.cf -coreral.ga -coreral.gq -coreral.ml -coreral.tk -corewi.cf -corewi.ga -corewi.gq -corewi.ml -corewi.tk -coreysfishingcharters.com -corfid.ru -corfuspiritualhealthretreat.com -corhandpevol.ml -corianiofoundation.com -corleone.org -corlufotografkulubu.xyz -corluzubeydehanimao.xyz -cormg.net -corn-gratuito.top -cornavirus.attorney -cornerfraud.us -cornerstitchdesigns.com -cornerstonebapt.org -corngroupsupplies-au.com -cornmusihr.space -cornstowagecure.website -cornwallmotorfactors.com -corona-virus-live.ru -corona-virus.institute -corona.how -corona99.net -coronachurch.org -coronacijfers.shop -coronacoffee.com -coronaflix.xyz -coronaforums.com -coronagg.com -coronahulpdeliemers.online -coronanewsupdate.com -coronaotel.com -coronascan.ru -coronastats.shop -coronatest-ig.online -coronavirus-covid-19.today -coronavirus-mir.com -coronavirusguide.online -coronavirusrecoverycommission.com -coronaviruss.website -coronawrongfuldeath.com -corosocial.net -corouge.best -corovit.xyz -corp.ereality.org -corpoalnaturale.com -corporate.doctor -corporate.foundation -corporateembezzler.com -corporatelitigationlawyerboston.com -corporateplaydays.info -corporateplaydays.net -corporatesocialresponsibilityatlcbo.com -corporateturnaroundconsultation.com -corpuschristicocainerehab.com -corpuschristiopiaterehab.com -corpuscleve.com -corpuscqyd.space -correio.monster -correllohome.info -correllohome.org -correo.blogos.net -correofa.ga -correoparacarlos.ga -correos-es.site -corrientelatina.net -corrupt.life -corsairdre.com -corsanywhere.tech -corsarius.net -corsj.net -corsovenezia.com -cortex.kicks-ass.net -cortexconcept.com -cortexnode.online -cortneysplace.com -corumkardesleremlak.com -corvallisdoctors.com -corveelijst.online -corveelijsten.online -corveelijstje.online -corveelijstjes.online -corvid19.ru -corychase.site -corychase.xyz -cos9c.us -cosad.ca -cosad.info -cosanola.com -cosasuccede.info -coseh6.us -coslots.gdn -cosmela.ru -cosmeticddsnearme.com -cosmeticgid.ru -cosmeticprocedure.org -cosmeticsdermatology.com -cosmeticsurgery.com -cosmetika-krasnodar.ru -cosmetixs.ru -cosmetwzzi.space -cosmic-joy.com -cosmicart.ru -cosmogame.site -cosmogia.net -cosmogulf.xyz -cosmohealth.care -cosmolo.ga -cosmolot-slot.site -cosmopokers.net -cosmorph.com -cosmos.com -cosmoshost.com -cosmyc.network -cosmycnetwork.com -cosnx.com -cosplayblog.com -cosplays.name -cosplays.pro -cosplaystores.com -cosplaystrippers.com -cosplaywigs.org -cospolspen.cf -cospolspen.ga -cospolspen.gq -cospolspen.ml -cospolspen.tk -costaakkan.xyz -costablancaphoto.com -costablubodrumotel.com -costaricabestrips.com -costco.tel -costcompared.com -costhewca.cf -costhewca.gq -costhewca.tk -costinluis.com -costprogbou.ml -costprogbou.tk -cosynookoftheworld.com -cotastic.com -cotatiphil.org -cotefi.site -cotenets.info -cotlmk.us -cotmandenecrescentbr5.com -cotocheetothecat12.com -cotodaynews.site -cotro.fun -cottage-delight.com -cottagein.ru -cottageoakpropertie.com -cottongods.net -cottonnovdx.email -cottononloverz.com -cottonsleepingbags.com -cottonwoodcoveresort.net -cotynet.pl -couchhappens.org -couchtour.com -couchtv.biz -coudmango.com -coudmango.net -coudmango.org -cougargonzo.com -coughone.com -couhl.live -couldbe.shop -couleurelle.com -coullion.com -coulterberrytales.com -council.vote -councous.shop -coundjees.com -counntryfinancial.com -counsellingmenbrisbane.com -counter.cd -counterduster.biz -counterduster.net -counterduster.us -counterdusters.biz -counterdusters.us -counterempiricaldamage.website -countertracking.com -counterweigh.com -countkilo.cf -countmathula.com -countmoney.ru -countrryfinancial.com -countrycommon.com -countryfinaancial.com -countryfinabcial.com -countryfinanncial.com -countryhotel.org -countrymade.com -countryofearth.app -countryofearth.foundation -countryroadsbaseball.org -countrysong.ru -countryyfinancial.com -coupandev.shop -coupdefoudre.immo -couplesandtantra.com -coupon-reviewz.com -couponbaboon.com -couponcode.agency -couponcodey.com -couponhouse.info -couponm.net -couponmoz.org -couponsdisco.com -couponsgod.in -couponslauncher.info -couponsmountain.com -couponx.ru -couponyes.ru -coupor.com -courriel.fr.nf -courrieltemporaire.com -course-fitness.com -course.nl -courseair.com -courses.farm -coursesall.ru -court-records.org -courtatcrossroads.com -courtch.xyz -courtesans.international -courtfi.icu -courtfib.icu -courthousehotelcarlow.com -courtivo.space -courtrf.com -courtstreetofficesupplies.com -courtun.icu -courtyardcavaliers.com -cousinit.mooo.com -coutinho.news -covechurch.mobi -covelocoop.com -cover360.net -coverglar.icu -coverhove.us -coverification.org -covermebag.global -covermygodfromsummer.com -coveryo.xyz -coveryourpills.org -coveryout.xyz -coveted-clicks.site -covfefe-mail.gq -covfefe-mail.tk -covid19.how -covid19flix.com -covid19temphelp.com -covid2020.online -covidfinder.asia -covidfinder.best -covidfinder.club -covidfinder.digital -covidfinder.network -covidfinder.rocks -covidfinder.space -covidfinder.xyz -covteh37.ru -cowabungamail.com -cowaramupwines.com -cowavewifi.com -cowavewifi.net -cowaway.com -cowboyglossary.com -cowboywmk.com -cowcell.com -cowerkn.com -cowgirljules.com -cowisdom.com -cowokbete.ga -cowokbete.ml -cowork.click -coworking-bansko.com -coworkingabroad.com -coworkingabroad.org -coworkinghalifax.com -coworkrating.com -cowshipin.net -cowstore.net -cowstore.org -cowtube.club -cowtv.club -cowvideo.info -cowvtjui.xyz -coxbete.cf -coxbete99.cf -coxnet.cf -coxnet.ga -coxnet.gq -coxnet.ml -coyotebio-usa.com -coystigis.cf -coystigis.ga -coystigis.gq -coza.ro -cozmagicskincare.com -cozmingusa.info -cozre.site -cozyboomerangllc.com -cp0730.com -cp668y.com -cpa.digital -cpaawards.ru -cpabn.com -cpacartago.site -cpafhd.us -cpamail.net -cpanelhome.com -cpanellicense.shop -cpaoz.com -cpapa.ooo -cparm.cf -cpaycard.asia -cpb-online.com -cpc.cx -cpcjobfair.com -cpederal.com -cpelws.tokyo -cpffinanceiro.club -cpg39b-mail.xyz -cpgpanel.com -cph.su -cphfaucet.com -cphoneos.com -cpib.email -cpizgz.site -cpldevice.com -cplicensing.shop -cpluldsvd.shop -cplusfinanzen.com -cpmail.life -cpmm.ru -cpno.email -cpo-inc.net -cpolp.com -cpoo.pro -cppvwb6vjocx2zf.xyz -cpsboard.com -cpsboard.net -cpshomebuys.com -cpsipalmsprings.com -cpspainshop.com -cpsystems.ru -cpt-emilie.org -cpteach.com -cpuk3zsorllc.cf -cpuk3zsorllc.ga -cpuk3zsorllc.gq -cpuk3zsorllc.ml -cpuk3zsorllc.tk -cpuwindows.com -cpviy.com -cpz889.com -cq5j.icu -cq692.site -cqczth.com -cqdebryansk.ru -cqebhyy.com -cqj1ht.site -cqjda.com -cqn1.com -cqrax.live -cqrenben.com -cqtest.ru -cqtnbyy.com -cqutssntx9356oug.cf -cqutssntx9356oug.ga -cqutssntx9356oug.gq -cqutssntx9356oug.ml -cqutssntx9356oug.tk -cqweqe-naonc.icu -cqwmokhnv6.xyz -cqzktj.com -cr.cloudns.asia -cr01.xyz -cr219.com -cr3wmail.sytes.net -cr3wxmail.servequake.com -cr7cr8cr9.com -cr8.website -cr8robotics.online -cr97mt49.com -cra1g.com -crablove.in -crabsheadache.com -crabtreejewelers.com -crabvietnam.com -crackdra.icu -crackfreedown.com -crackherakati.me -crackingaccounts.ga -crackinglab.cd -crackmail.cc -crackmail.thekingstim.tk -crackofdawnale.com -cracksens.us -crackthematch.com -cracowtoday.com -cradle-me.com -craet.top -craftbanner.com -craftbrands.net -craftcannabisclass.com -craftcate.us -craftd.org -craftfiga.site -craftings.org -craftletter.com -craftpixel.online -craftproject.net -craftsfrommissouri.com -craftsology.net -craftsrussia.ru -crafttheweb.com -crafttigh.press -craftval.xyz -craftvalu.xyz -craftygardening.solutions -craftymall.com -cragavpivo.tk -craigjoseph.net -crainca.ru -crana.us -crankengine.net -crankhole.com -crankmails.com -cranpiwy.gq -cranpiwy.ml -crap.kakadua.net -crapcoin.com -crapiris.cf -crapiris.ga -crapiris.ml -crapmail.org -crappertracker.com -crappykickstarters.com -crapsonline.com -crapsseal.se -crapulo.us -crashkiller.ovh -crashlandstudio.com -crashproofcrypto.com -crashproofcryptocurrency.com -crashquota.com -crass.com -crastination.de -cratcrao.shop -crates.blog -cratfoutlet.com -crator.com -cratorster.cf -cratorster.ga -cratorster.gq -cratorster.ml -cratorster.tk -cratos724.com -cratosslot202.com -cratosslot205.com -cratosslot206.com -cratosslot209.com -cratosslot210.com -cratosslot211.com -cravenpublishing.com -craveyatq.space -cravinger.xyz -cravingery.online -cravingify.xyz -crawler.report -crayonseo.com -crazaholic.xyz -crazeoutlets.site -crazepage.com -crazespaces.pw -crazies.club -crazies.dev -crazies.love -crazies.photos -crazies.rocks -crazies.today -crazikim.club -crazy-xxx.ru -crazy18.xyz -crazyclothes.ru -crazydoll.us -crazydomains.com -crazyijustcantseelol.com -crazykids.info -crazykittens.xyz -crazylemonssafe.space -crazymail.info -crazymail.online -crazymailing.com -crazypizzaandpasta.online -crazypro.xyz -crazyshitxszxsa.com -crazyt.tk -crazyworldshop.ru -crazywot.net -crazzzyballs.ru -crc20.com -crdyzx.info -cre8to6blf2gtluuf.cf -cre8to6blf2gtluuf.ga -cre8to6blf2gtluuf.gq -cre8to6blf2gtluuf.ml -cre8to6blf2gtluuf.tk -creality3dturkiye.com -creality3dturkiye.xyz -cream.pink -creamail.info -creambrak.icu -creamcheesefruitdipps.com -creamcras.fun -creamgl.icu -creamglo.icu -creampiemoviez.com -creamwor.buzz -creamworr.buzz -crearartearacataca2019.com -crearenmexico.com -creasily.xyz -creasimkor.cf -creasimkor.ga -creasimkor.gq -creasimkor.ml -creasimkor.tk -creasite-auvergne.com -creaspere.cf -creaspere.ga -creaspere.gq -creaspere.ml -creaspere.tk -create-email.com -createabooking.com -createaliar.com -createaonlineincome.com -createavatar.org -createdrive.com -createdrive.net -createhut.ml -createkits.com -createlink.xyz -createphase.com -createyourcream.com -creatingafairworld.com -creatingcozy.com -creatingyournew.website -creatingyourstyles.com -creation-site-web-bordeaux.net -creationmeditation.org -creationsfestives.com -creationsgrecques.com -creationuq.com -creativainc.com -creativas.de -creative-mates.sk -creative365.ru -creativecommonsza.org -creativecomputerlabs.com -creativedynamics.pro -creativeenergyworks.com -creativeinfo.ru -creativejinx.com -creativelicenseshop.com -creativemates.sk -creativemix.info -creativepantry.online -creativeplus.info -creativeshocker.com -creativesols.com -creativesystemsconsulting.net -creativethemeday.com -creativetools.info -creativewebgarden.com -creativeweddingphotograph.org -creativezone.info -creatorwage.com -creazionisa.com -crebbo.org -credd.me -credenic.cf -credenic.ga -credenic.gq -credenic.ml -credenic.tk -credeqclev.cf -credeqclev.ga -credeqclev.ml -credeqclev.tk -credinti.cf -credinti.ml -credinti.tk -credit-007.com -credit-alaconsommation.com -credit-alter.online -credit-card-98.ru -credit-credit.ru -credit-finder.info -credit-line.pl -credit-online.mcdir.ru -creditaccesshub.com -creditcardconsolidation.cc -creditcardcounsel.com -creditcarddumpsites.ru -creditcardforums.org -creditcardg.com -creditcards.land -creditcards.ninja -creditcardsfinancial.com -credite.best -crediti-banki.ru -creditonegocios.com -creditorexchange.com -creditplaza.site -creditrepair4u.site -creditreportreviewblog.com -creditsafesverige.biz -creditsafesverige.info -creditsafesverige.net -creditscore-changes.com -creditspread.biz -crednomas.cf -crednomas.ga -crednomas.gq -crednomas.ml -crednomas.tk -credopizzaitalian.com -credtaters.cf -credtaters.ga -credtaters.gq -credtaters.ml -credtaters.tk -credup.ru -creekbottomfarm.com -creekwooddesoto.com -creepydol.com -creepydol.org -crefdw.com -cremasmediterraneas.com -cremationcon.com -cremcalsult.cf -cremcalsult.gq -cremcalsult.tk -creo.cloudns.cc -creo.ctu.edu.gr -creo.iotu.nctu.me -creo.nctu.me -creou.dev -crescendu.com -cresquiju.cf -cresquiju.ga -cresquiju.gq -cresquiju.ml -cresquiju.tk -cresset.site -cressom.cd -crestonstudents.org -crestwave.online -cretalscowad.xyz -cretinblog.com -cretovcae.cf -cretovcae.ga -cretovcae.gq -cretovcae.tk -crevus.org -crewinsurance.ru -crezjumevakansii20121.cz.cc -crfastbofk.online -criarblogue.com -cribafmasu.co.tv -cribcomfort.com -cricbett.icu -cricerev.cf -cricerev.gq -cricerev.ml -crickcrack.net -cricketcraft.net -cricketersfoodtruck.com -cricketnigeria.org -crillix.com -crim3-house.ml -crimea-kurort-online.ru -criminal-lawyer-attorney.biz -criminal-lawyer-texas.net -criminalattorneyhouston.info -criminalattorneyinhouston.info -criminalattorneyinhouston.org -criminalisticsdegree.com -criminality.biz -criminalize9pk.online -criminalizes233iy.online -criminallawyersinhoustontexas.com -criminalsearch1a.com -crimpastprep.cf -crimpastprep.ga -crimpastprep.ml -crimpastprep.tk -crimright.ru -criptoluxury.store -criptonic.co -criptonic.xyz -criqclscdl.space -crisis-media.ru -crisiscrisis.co.uk -crisislookout.com -crisp.monster -cristal365.ru -cristalin.ru -cristauxinc.com -cristianecarvalho.icu -cristicookeprograms.com -cristlocksapt.buzz -cristywhitman.com -crisuabil.cf -crisuabil.ga -crisuabil.ml -crisuabil.tk -critcijo.cf -critcijo.ga -critcijo.gq -critcijo.ml -critical-studies.info -criticalcaremonthly.com -criticallythink.com -criticalnerds.com -crjtvgaj.shop -crk.review -crm-mebel.ru -crm-souz.ru -crmapex.com -crmartinrealestate.com -crmlands.net -crmplant.ru -crmrc.us -crnr.store -croatia-nedv.ru -croatiaresidence.com -crobinkson.hu -croboldu.cf -croboldu.ga -croboldu.gq -croboldu.ml -crockegecy.space -crocobets.com -croftcare.group -cromelet.ga -cromelet.gq -cromelet.tk -cron.black -cron.network -cronexus.com -cronicasdepicnic.com -cronostv.site -cronx.com -crookedstovepipe.ca -croontites.cf -croontites.ga -croontites.gq -croontites.ml -croontites.tk -cropshots.org -cropuv.info -cropyloc.com -crosbygraphics.biz -crosmereta.eu -cross-group.ru -cross-law.ga -cross-law.gq -cross.cash -crossborderapps.net -crossbrand.ru -crosscree.icu -crosscwums.host -crosscwums.site -crossed.de -crossfirecheats.org -crossfitbaza.ru -crossfitcoastal.com -crossfra.email -crossingbridgeestates.com -crossmail.bid -crossroadsmail.com -crossroadsone.com -crossroadsone.org -crosstroo.email -crosswatershed.org -crosswordchecker.com -crosswordtracker.net -crossyroadhacks.com -crotslep.ml -crotslep.tk -croudmails.info -crow.gq -crow.ml -crowd-mail.com -crowd-mobile.com -crowd.works -crowdaffiliates.com -crowdali.icu -crowdaliv.xyz -crowdanimoji.com -crowdanimoji.net -crowdcate.us -crowdcoin.biz -crowdcoinnetwork.com -crowdcoins.info -crowdeos.com -crowdga.icu -crowdgeographer.com -crowdlegal.org -crowdlycoin.com -crowdmobile.biz -crowdmobile.org -crowdpiggybank.com -crowdpiggybank.org -crowdpl.xyz -crowdplea.xyz -crowdstoo.site -crowdwi.xyz -crowdwid.xyz -crowity.com -crowndata.com -crowned.global -crownestates20.com -crowneurope.com -crowsv2.ml -crowsv2.tk -crscreditapi.tech -crsea.ru -crsqdy.info -crstl.net -crstl.org -crstnvrn.website -crtrecycling.net -crturner.com -crub.cf -crub.ga -crub.gq -crub.ml -crub.tk -crublowjob20127.co.tv -crublowjob20127.com -crublowjob20129.co.tv -crudeillustratecontent.website -crudeoildemulsifier.com -crudewag.icu -crufreevideo20123.cz.cc -cruisecentraladviser.com -cruisefloppy.com -cruisessale.com -crulle.ru -crumlin-grill.com -crunchcompass.com -crunchsharing.com -crunchybiscuits.space -crushblog.com -crushdv.com -crushes.com -crushfilix.site -crushmyfood.org -crushnova.com -crusronhorn.cf -crusronhorn.ga -crusronhorn.ml -crusronhorn.tk -crusthost.com -crutenssi20125.co.tv -cruxmail.info -cruxsite.com -cruzenow.com -cry.pub -crydeck.com -crymail2.com -crymire.website -cryodrakon.com -cryodrakon.info -cryodrakon.pro -cryodrakon.space -cryojo.xyz -cryotik.com -cryozzy.xyz -cryp.email -crypecar.cf -crypecar.ml -crypecar.tk -crypemail.info -crypinchom.cf -crypinchom.ga -crypinchom.gq -crypinchom.tk -crypstats.top -cryptca.net -cryptfox.net -crypticelement.cloud -crypticelement.club -crypticelement.games -crypticinvestments.com -crypto-lock.net -crypto-net.club -crypto-nox.com -crypto-rates.info -crypto.tyrex.cf -crypto1x1.info -crypto1x1.org -crypto1x1.xyz -crypto3pl.net -cryptobazar.ru -cryptobitbyte.xyz -cryptoblaze.info -cryptocapitalism.pro -cryptocean.cards -cryptocean.info -cryptocean.online -cryptocitycenter.com -cryptocron.com -cryptocrowd.mobi -cryptodinbog.com -cryptodough.life -cryptofriends.network -cryptofuture.website -cryptogameshub.com -cryptogamming.net -cryptogrow.global -cryptogrow.store -cryptogrow.tech -cryptoinvestar.com -cryptoinvestmentsummit.com -cryptoiravault.com -cryptoligarch.com -cryptolist.cf -cryptoloot.life -cryptomelli.net -cryptomoments24.com -cryptone.market -cryptone.tel -cryptonet.top -cryptontrade.ga -cryptopatron.org -cryptopda.com -cryptope.xyz -cryptopiggybank.info -cryptopiggybank.mobi -cryptopiggybank.org -cryptoprobes.com -cryptoprocessingnow.com -cryptoreaper.com -cryptosimple.club -cryptoslant.com -cryptosmileys.com -cryptosoloira.com -cryptostack401k.com -cryptostackcapital.com -cryptostackfund.com -cryptostackfunds.com -cryptostackrothira.com -cryptostackventurefund.com -cryptoszone.ga -cryptotravis.com -cryptoupdates.live -cryptowalletstore.com -cryptowned.com -cryptstagram.com -crystal7.biz -crystalbahis4.com -crystalbahis5.com -crystalboattakeaway.com -crystalfallsfas.com -crystalflask.com -crystalgroupind.com -crystalkckq.email -crystalmoon.org -crystalplatter.com -crystalrp.ru -crystaltapes.com -crystle.club -crytpocurrency.biz -cryxus.net -cryxus.org -cs-24.ru -cs-go-club.ru -cs-murzyn.pl -cs.email -cs4h4nbou3xtbsn.cf -cs4h4nbou3xtbsn.ga -cs4h4nbou3xtbsn.gq -cs4h4nbou3xtbsn.ml -cs4h4nbou3xtbsn.tk -cs5xugkcirf07jk.cf -cs5xugkcirf07jk.ga -cs5xugkcirf07jk.gq -cs5xugkcirf07jk.ml -cs5xugkcirf07jk.tk -cs6688.com -cs715a3o1vfb73sdekp.cf -cs715a3o1vfb73sdekp.ga -cs715a3o1vfb73sdekp.gq -cs715a3o1vfb73sdekp.ml -cs715a3o1vfb73sdekp.tk -cs89.biz -csbfr8.site -csbnradio.com -cscasessteam.com -csccblida.com -csccsports.com -cschammel.com -cscrddata.com -csdinterpretingonline.com -csdm73.ru -csdoland.net -csek.net -csendek.icu -csepxf.com -csf24.de -csfait.com -csfav4mmkizt3n.cf -csfav4mmkizt3n.ga -csfav4mmkizt3n.gq -csfav4mmkizt3n.ml -csfav4mmkizt3n.tk -csgo-funknife.ru -csgo-market.ru -csgo-moon.org -csgo2.org -csgoaim.ru -csgoanalyzer.com -csgoauth.fun -csgobestbet.com -csgobomj.com -csgobus.com -csgodeal.net -csgodemos.win -csgodose.com -csgodumbaz.ru -csgoeasybets3.com -csgofan.club -csgofast2.com -csgofast3.com -csgofreem4.fun -csgofreeze.com -csgogamblingsites.com -csgokyril.fun -csgologin5.site -csgomaxbet.com -csgomoon.xyz -csgomsk.info -csgopositive.xyz -csgopowerplay.net -csgosave.ru -csgoterem.fun -csgotradehub.com -csh.ro -cshauthor.biz -cshauthor.com -cshauthor.net -cshauthor.org -cshauthor.us -cshoesfirst.info -csi-miami.cf -csi-miami.ga -csi-miami.gq -csi-miami.ml -csi-miami.tk -csi-newyork.cf -csi-newyork.ga -csi-newyork.gq -csi-newyork.ml -csi-newyork.tk -csiplanet.com -csk22.site -csnapbet.xyz -csneon.com -csoftmail.cn -csomerlotdesign.com -csontvary.org -cspeakingbr.com -cspfbyy.com -cspointblank.com -cspsid-rodnik.ru -csrbot.com -csrbots.com -csreports.space -csringreece.me -cssans.com -cssccw.com -cssisfun.com -csstestapp.xyz -cssu.edu -cssu.wiki -csupes.com -csuzetas.com -csvclubs.org -csvpubblicita.com -csweihua.com -csys.host -cszbl.com -ct345fgvaw.cf -ct345fgvaw.ga -ct345fgvaw.gq -ct345fgvaw.ml -ct345fgvaw.tk -ct3bowties.com -ct4lpj.us -ctasprem.pro -ctatal39200.tk -ctatal81439.ga -ctatal81439.tk -ctax-plan.com -ctdetoxcenter.com -ctdfms.us -ctexas.net -ctexpos.com -ctgbrdlpe.shop -cti-stopforeclosure.com -cticharts.com -ctkcec.org -ctmailing.us -ctmhwbc.site -cto-on.com -ctorssu.shop -ctos.ch -ctoyule.com -ctrehabcenters.com -ctri.website -ctrobo.com -ctrpgz.us -cts-lk-i.cf -cts-lk-i.ga -cts-lk-i.gq -cts-lk-i.ml -cts-lk-i.tk -ctshp.org -cttake1fiilie.ru -cttlju.us -ctvfacebook.site -ctycter.com -ctyctr.com -ctypark.com -ctznqsowm18ke50.cf -ctznqsowm18ke50.ga -ctznqsowm18ke50.gq -ctznqsowm18ke50.ml -ctznqsowm18ke50.tk -cu.cc -cu8wzkanv7.cf -cu8wzkanv7.gq -cu8wzkanv7.ml -cu8wzkanv7.tk -cuabs.us -cuadongplaza.com -cuantoesta.com -cuarl.com -cuasotrithuc.com -cubabrothers.com -cubadave.com -cuban-beaches.com -cubanculturalheritage.org -cubansandwichshow.com -cubanschool.info -cubavision.info -cubb6mmwtzbosij.cf -cubb6mmwtzbosij.ga -cubb6mmwtzbosij.gq -cubb6mmwtzbosij.ml -cubb6mmwtzbosij.tk -cubbycc.com -cubecart-demo.com -cubedwolf.tk -cubefox.com -cubehost.us -cubeschina.fun -cubeshack.com -cubicleremoval.ca -cubiclink.com -cubitoid.com -cubitoids.com -cuci4scr.info -cuckmere.org.uk -cucku.cf -cucku.ml -cuco.store -cucummail.com -cuddleflirt.com -cuddlybuddys.com -cuddlysingles.com -cudimex.com -cuedigy.com -cuedingsi.cf -cuedingsi.gq -cuedingsi.tk -cuelmail.info -cuendita.com -cuenmex.com -cuentamelotodo.com -cuentamemas.website -cuentanos.com -cuentemelo.com -cuentemelotodo.com -cuentenos.com -cuentosblanditos.com -cueslumpbuy.website -cuevanago.net -cueyoultd.com -cuffa.com -cufibr.com -cufibr.net -cufibrazil.com -cufibrazil.org -cufihn.org -cufihonduras.com -cufihonduras.net -cufihonduras.org -cufikids.net -cugod.com -cuidado-ancianos.com -cuidado-mayores.info -cuidatupropiedad.com -cuikezhijia.com -cuirushi.org -cuisi.xyz -cuisine-recette.biz -cuisinorama.org -cukurovailan.xyz -cul0.cf -cul0.ga -cul0.gq -cul0.ml -cul0.tk -culapotu.site -culdemamie.com -culinary-rus.ru -culletonstakeaway.com -culletonstraditional-kilkenny.com -culnetfcyc.ga -culnetfcyc.ml -culnetfcyc.tk -culoareacurcubeului.club -culsanab.cf -culsanab.ml -culsanab.tk -cult-labs.net -cult-reno.ru -cult2day.ru -cultcounselling.org -cultivatefoods.com -cultmovie.com -culturafr.com -culturallyconnectedcook.org -culturallyconnectedcooking.org -culture-nsk.ru -culturemachines.info -cultureofideas.org -culturesnacks.us -culturofil.net -culvercitydoctors.com -culvercityrealestateagents.com -cum.camera -cum.sborra.tk -cumallover.me -cumangeblog.net -cumanuallyo.com -cumbeeclan.com -cumedes.ga -cumedes.ml -cumedes.tk -cumidbins.cf -cumidbins.ga -cumidbins.tk -cumonfeet.org -cumonherface.org -cumucore.org -cungmua.vn -cungmuachung.net -cungmuachungnhom.com -cungsuyngam.com -cungtam.com -cunhamail.gq -cunngregco.com -cunnilingus.party -cunnntf.website -cunqiong.club -cuocquangtri.club -cuocsongmuonmau247.com -cuocsongmuonmau99.com -cuocsongsaigon.net -cuoilendi24h.com -cuoiz.com -cuoly.com -cuongvumarketingseo.com -cupaoutlet.site -cupatee.shop -cupcakemine.ru -cupeda.info -cupf6mdhtujxytdcoxh.cf -cupf6mdhtujxytdcoxh.ga -cupf6mdhtujxytdcoxh.gq -cupf6mdhtujxytdcoxh.ml -cupf6mdhtujxytdcoxh.tk -cupidblog.com -cupideyes.info -cupidscloud.com -cupom.mobi -cupomzeiro.com -cuponhostgator.org -cuppingtherapy.info -cupq.net -cupremplus.com -cupu.site -cupua.com -curajare.site -cure2children.com -cureartstudio.com -curechs.org -curediseases.info -curednow.com -curentjobs.info -curhalller.ga -curhalller.gq -curhalller.ml -curhalller.tk -curiaregis.net -curinglymedisease.com -curinpie.cf -curinpie.ga -curinpie.gq -curinpie.ml -curiouscats.net -curiousitivity.com -curity.shop -curitya.shop -curletter.com -curlhph.tk -curlycollection.com -curongwang.com -currencyandstocks.com -currencyassistant.com -currencyglossary.com -currencymeter.com -currencyy.xyz -current.best -currentmatch.tk -currentmortgageratescentral.com -curriculumsystems.com -curryandricedublin.com -currygardenindian.com -curryhouseoriental.com -currymail.bid -currymail.men -curryspeedformapollo.xyz -curryworld.de -cursasa.ga -cursasa.gq -cursasa.ml -cursasa.tk -cursedmoons.com -curseforgeminecraft.com -cursitor.best -curso-de-escrita-audiovisual.com -curso.tech -cursoconsertodecelular.top -cursocrocheonline.site -cursodeinglesgratis.us -cursodemicropigmentacao.us -cursosonlinechefcarlamaia.com -cursosprofissionalize.online -cursusbeffen.online -curtebebe.com -curtinicheme-sc.com -curtise.live -curtwphillips.com -curvehq.com -cuscuscuspen.life -cushingsdisease.in -cushions.ru -cuspy.ru -cust.in -custmon.net -custmon.org -custom-make.com -custom-wp.com -custom12.tk -customanu.ru -customaxima.com -custombrush.org -custombrush.us -custombrushes.biz -custombrushes.org -custombrushes.us -customcardmaker.com -customcoconut.com -customdeploy.com -customdesigner.site -customdesktop.xyz -customdevices.ru -customer-poll-zone.online -customer-surveys-panel.online -customercove.com -customerplaner.online -customersupportdepartment.ga -customerwant.com -customeyeslasik.com -customframingby2vets.com -customice.app -customiseyourpc.xyz -customizedfatlossreviews.info -customizedsolar.com -customizing225ll.online -customlogogolf-balls.com -custommaxima.com -custommediarooms.com -customrifles.info -customright.com -customrose.ru -customs.red -customs2g3.com -customshop4us.com -customsmf.net -customsnapbackcap.com -customusli.ru -customweightlossplan.com -customwriting.company -cut-the-cord.news -cuteblanketdolls.com -cuteboyo.com -cutecloud.fun -cutekinks.com -cutemailbox.com -cuteness.cloud -cutey.com -cutiemporium.site -cutivnpt.biz -cutivnpt.com -cutivnpt.info -cutivnpt.org -cutivnpt.us -cutjhw.ml -cutlerbayapartments.com -cutlersmartart.com -cutout.club -cuttherope2.space -cuttheropefullfree.com -cutthrrcpc.space -cutti.net -cuttingedgeprospects.com -cutwoeq.space -cuuhorobot.info -cuvkpd.icu -cuvox.de -cuvvgwo3j064hl8.xyz -cuwinmyu.shop -cuxade.xyz -cuxen4.us -cuzuryy.space -cv-tt.com -cv436.site -cv4s7.host -cvbqfl.info -cvbshopbuy.com -cvd8idprbewh1zr.cf -cvd8idprbewh1zr.ga -cvd8idprbewh1zr.gq -cvd8idprbewh1zr.ml -cvd8idprbewh1zr.tk -cvdkr.us -cvdsale.top -cveiguulymquns4m.cf -cveiguulymquns4m.ga -cveiguulymquns4m.gq -cveiguulymquns4m.ml -cveiguulymquns4m.tk -cvelbar.com -cveti-omsk.ru -cvetmet124.ru -cvetomuzyk-achinsk.ru -cvety-russia.ru -cvety-sankt-peterburg.ru -cvetynadom.site -cvijqth6if8txrdt.cf -cvijqth6if8txrdt.ga -cvijqth6if8txrdt.gq -cvijqth6if8txrdt.ml -cvijqth6if8txrdt.tk -cvlvp.site -cvndr.com -cvo55.ru -cvo9ym.us -cvpf.net -cvriverside.biz -cvs-couponcodes.com -cvscool.com -cvscout.com -cvse.icu -cvstr.us -cvu0at.online -cvurb5g2t8.cf -cvurb5g2t8.ga -cvurb5g2t8.gq -cvurb5g2t8.ml -cvurb5g2t8.tk -cvwvxewkyw.pl -cvxnoom.com -cvxooms.com -cvzzoom.com -cw8xkyw4wepqd3.cf -cw8xkyw4wepqd3.ga -cw8xkyw4wepqd3.gq -cw8xkyw4wepqd3.ml -cw8xkyw4wepqd3.tk -cw9bwf5wgh4hp.cf -cw9bwf5wgh4hp.ga -cw9bwf5wgh4hp.gq -cw9bwf5wgh4hp.ml -cw9bwf5wgh4hp.tk -cwdt5owssi.cf -cwdt5owssi.ga -cwdt5owssi.gq -cwdt5owssi.ml -cwdt5owssi.tk -cwduhb.online -cwembk.site -cwerwer.net -cwiprojects.icu -cwith.website -cwkdx3gi90zut3vkxg5.cf -cwkdx3gi90zut3vkxg5.ga -cwkdx3gi90zut3vkxg5.gq -cwkdx3gi90zut3vkxg5.ml -cwkdx3gi90zut3vkxg5.tk -cwmco.com -cwn1r.us -cwrlf.org -cwrn3b.us -cwuekt.us -cwyk.us -cx.de-a.org -cx4div2.pl -cxago.com -cxalj.club -cxalj.xyz -cxbhxb.site -cxboxcompone20121.cx.cc -cxcc.cf -cxcc.gq -cxcc.ml -cxcc.tk -cxcycn.com -cxdina1117.info -cxkpbaeb.shop -cxmyal.com -cxoc.us -cxosbv.us -cxpcgwodagut.cf -cxpcgwodagut.ga -cxpcgwodagut.gq -cxpcgwodagut.ml -cxpcgwodagut.tk -cxsqqk.com -cxsr.email -cxt66.com -cxv98.space -cxvixs.com -cxvnhbxhcjv13075.cf -cxvnhbxhcjv13075.ga -cxvnhbxhcjv13075.ml -cxvnhbxhcjv13075.tk -cxvooc.com -cxvxcv8098dv90si.ru -cxvxecobi.pl -cxxom.com -cxxqbj.com -cxznjvjkxz37512.tk -cxznjvjkxz44859.cf -cxznjvjkxz44859.ga -cxznjvjkxz44859.ml -cxznjvjkxz44859.tk -cxznjvjkxz73214.ml -cxznjvjkxz73214.tk -cxznjvjkxz77008.cf -cxznjvjkxz77008.tk -cxznjvjkxz95290.ml -cxznjvjkxz95290.tk -cxzpkbspi.shop -cxzvx.site -cyaffshop.store -cyano.website -cyantools.com -cyaovox.site -cybanlhyb.site -cyber-audit.com -cyber-host.net -cyber-innovation.club -cyber-phone.eu -cyber-security-career.com -cyber-team.us -cyber-tron.ru -cyber-video-poker-wagering.com -cybercommunist.com -cybercommunist.org -cybercommunistparty.org -cyberdive.net -cyberelites.com -cybergfl.com -cybergroup.shop -cyberguilds.org -cyberhardening.com -cyberhohol.tk -cyberian.net -cyberintel.onl -cyberiso.com -cyberkumbh.org -cyberoligarch.ru -cyberpay.shop -cyberper.net -cyberpointeservices.com -cyberresponse.link -cybersecurity.mba -cybersecurityforentrepreneurs.com -cybersex.com -cyberspatial.org -cybersporttour.ru -cyberstreamz.online -cyberstudio.company -cyberstudio.digital -cybertechinfosolution.com -cybervm.shop -cybervors.online -cybexc.com -cybrew.com -cybsec.shop -cyciha.cf -cyciha.ml -cyciha.tk -cycleaccess.com -cyclebrowser.com -cyclecrm.com -cycledynamicexert.site -cycleflo.xyz -cyclejudg.recipes -cycletrailsnelson.com -cyclingshop.live -cyclisme-roltiss-over.com -cyclo.co -cyclocart.icu -cyclonetree.net -cyconentertainment.com -cydco.org -cydotic.cf -cydotic.ga -cydotic.ml -cyfu.icu -cygcoquan.cf -cygcoquan.ga -cygcoquan.gq -cygcoquan.ml -cygcoquan.tk -cyjg66k85khvl1d.xyz -cylab.org -cylinderbrush.biz -cylinderbrushes.biz -cylinderbrushes.net -cylinderbrushes.us -cylindricalbrush.us -cylindricalbrushes.us -cylink.life -cylzcyned.shop -cyme.ru -cymuj1.site -cyng.com -cyoragex.xyz -cyormedia.com -cypher.onl -cyphername.net -cyphershop.net -cyprusbesthome.com -cypseline.site -cypsoyr.xyz -cyretta.com -cyrptocurrencyforecasts.com -cytm1p.club -cytotranscleaning.site -cytphebes.cf -cytphebes.gq -cytphebes.ml -cytphebes.tk -cyu404.com -cyyl-hyzc.com -cyyl95.com -cyzoone.xyz -cz076.com -cz3gknv9phg3a7j.xyz -cz4kdk.us -czaresy.info -czarinaallanigue.com -czarny.agencja-csk.pl -czbird.com -czblog.info -czc66.xyz -czeescibialystok.pl -czershiasa.icu -czeta.wegrow.pl -czguangyus.com -czip.site -czn-sait.ru -cznyaw.us -czpanda.cn -czpivquq.shop -czpvcshoe.com -czqjii8.com -czsabidbs.shop -czuj-czuj.pl -czwtky.us -czxc16a1-qwewqqw.icu -czyjtonumer.com -czystydywan.elk.pl -czzyeezyshoes.com -d-ax.site -d-cont.biz -d-gray-man.com -d-health.site -d-link.cf -d-link.ga -d-link.gq -d-link.ml -d-link.tk -d-prov.se -d-race5.com -d-sadokam.ru -d-skin.com -d-v-w.de -d.bgsaddrmwn.me -d.megafon.org.ua -d.polosburberry.com -d.seoestore.us -d00700.com -d029ksfd.buzz -d081xdyn.buzz -d086gyzb.buzz -d088iyij.buzz -d098xyzo.buzz -d0ipqg.info -d10.michaelkorssaleoutlet.com -d10ftkrnne56stforfu2545.com -d10fturbmk9eqxlorfe0244.com -d10ftvrrnu5qazjoamm9667.com -d123.com -d12kj.space -d1333.com -d154cehtp3po.cf -d154cehtp3po.ga -d154cehtp3po.gq -d154cehtp3po.ml -d154cehtp3po.tk -d15a6s1d6-sadxzcwaasdcx.icu -d1818.com -d18ux.space -d190c0a5.xyz -d1rt.net -d1xs.net -d1yun.com -d220.club -d2dtoolbox.com -d2hfdg.com -d2plives.com -d2pstar.com -d2pwqdcon5x5k.cf -d2pwqdcon5x5k.ga -d2pwqdcon5x5k.gq -d2pwqdcon5x5k.ml -d2pwqdcon5x5k.tk -d2v3yznophac3e2tta.cf -d2v3yznophac3e2tta.ga -d2v3yznophac3e2tta.gq -d2v3yznophac3e2tta.ml -d2v3yznophac3e2tta.tk -d301da66.xyz -d32ba9ffff4d.servebeer.com -d3439.com -d34b.club -d3888.com -d39oh.space -d3account.com -d3gears.com -d3mrz2.us -d3obcy.us -d3omilitary.com -d3p.dk -d4422.com -d46.gr -d47uz.site -d4923.club -d4eclvewyzylpg7ig.cf -d4eclvewyzylpg7ig.ga -d4eclvewyzylpg7ig.gq -d4eclvewyzylpg7ig.ml -d4eclvewyzylpg7ig.tk -d4ffwamjrua3ayp.xyz -d4jgpnug.xyz -d4networks.org -d50az.com -d52.online -d52tm.com -d54a169.club -d5721c98.xyz -d58pb91.com -d5ewoi.us -d5fffile.ru -d5ipveksro9oqo.cf -d5ipveksro9oqo.ga -d5ipveksro9oqo.gq -d5ipveksro9oqo.ml -d5ipveksro9oqo.tk -d5qlcz.us -d5wwjwry.com.pl -d5xb7.us -d62f78c.club -d64qb.site -d65faf2.club -d667.com -d66rc.site -d6gypc.site -d7474.com -d74qp.space -d75d8ntsa0crxshlih.cf -d75d8ntsa0crxshlih.ga -d75d8ntsa0crxshlih.gq -d75d8ntsa0crxshlih.ml -d75d8ntsa0crxshlih.tk -d7665.com -d77wt.site -d78.xyz -d7899.com -d78qp.com -d7bpgql2irobgx.cf -d7bpgql2irobgx.ga -d7bpgql2irobgx.gq -d7bpgql2irobgx.ml -d7crews.com -d7curtainwalls.com -d7design.com -d7electrical.com -d7floors.com -d7kj.net -d7lights.com -d7painting.com -d7paving.com -d7restoration.com -d7solar.com -d7storefronts.com -d8555.com -d892akcr.buzz -d8db.club -d8group.asia -d8tam.space -d8u.us -d8wjpw3kd.pl -d8yvf0.us -d8zzxvrpj4qqp.cf -d8zzxvrpj4qqp.ga -d8zzxvrpj4qqp.gq -d8zzxvrpj4qqp.ml -d8zzxvrpj4qqp.tk -d90b.xyz -d90bs8.us -d93xxp.us -d9faiili.ru -d9jdnvyk1m6audwkgm.cf -d9jdnvyk1m6audwkgm.ga -d9jdnvyk1m6audwkgm.gq -d9jdnvyk1m6audwkgm.ml -d9jdnvyk1m6audwkgm.tk -d9tl8drfwnffa.cf -d9tl8drfwnffa.ga -d9tl8drfwnffa.gq -d9tl8drfwnffa.ml -d9tl8drfwnffa.tk -d9wow.com -da-bro.ru -da-da-da.cf -da-da-da.ga -da-da-da.gq -da-da-da.ml -da-da-da.tk -da1413.com -da4it.buzz -da829.xyz -daabox.com -daahjy.tokyo -daaiyurongfu.com -daawah.info -dab.ro -dab.systems -dabbhouti.ga -dabbhouti.gq -dabbhouti.ml -dabbhouti.tk -dabest.ru -dabestizshirls.com -dabjam.com -dabrigs.review -dabstuff.com -dabstuff.net -dabtatinar.gq -dacarirato.com.my -dacasjahr.cf -dacasjahr.ga -dacasjahr.gq -dacasjahr.ml -dacasjahr.tk -dacentecrefugees.com -dacha-24.ru -dachahut.com -dacia-sandero.club -daciasandero.cf -daciasandero.ga -daciasandero.gq -daciasandero.ml -daciasandero.tk -daconfrontare.com -dacoolest.com -dacre.us -dacredit365.online -dacrib.monster -dacsancantho.net -dacsanxuthanh.com -dad.biprep.com -dadamoffice.shop -dadbgspxd.pl -dadc.space -dadc.website -dadc.xyz -dadd.kikwet.com -daddah.org -daddybegood.com -daddykeys.ru -dadeanfamily.com -dadensa.online -dadensa.shop -daditrade.com -dadsdefense.com -dadukiukiu.com -dae-bam.net -daedaulusvipinsider.com -daef.cn -daekano.com -daelogi.cf -daelogi.ga -daelogi.gq -daelogi.ml -daelogi.tk -daemoniac.info -daemsteam.com -daesungmicron.com -daewoo.gq -daewoo.ml -dafa107.com -dafa109.com -dafa215.com -dafa510.com -dafa572.com -dafa576.com -dafa580.com -dafa581.com -dafaapp55.com -dafabetfun.com -dafam88.com -dafardoi1.com -dafconsde.tk -daffettion.monster -daffodilssociety.ong -daffstyle.shop -dafgtddf.com -dafinally.com -dafrem3456ails.com -daftardetikcapsa.com -daftarjudimixparlay.com -daftarkoinqq.site -daftarkoinqq.website -daftarpokerhokibet88.net -daftarpokerhokibet88.org -daftm.ru -dag76.site -dag8gi7ryh893b4.xyz -dagagd.pl -dagao.live -dagodiscoentertainment.com -dagougou.org -dahaka696.co -dahaka696.com -dahelvets.cf -dahelvets.ga -dahelvets.gq -dahelvets.ml -dahelvets.tk -dahongying.net -dahypy.info -dai-one.online -daibond.info -daicliclong.cf -daicliclong.ga -daicliclong.ml -daicliclong.tk -daiettodorinku.com -daifopour.cf -daifopour.ga -daifopour.gq -daifopour.ml -daifopour.tk -daigleconstructioninc.com -daikin-centr.ru -daiklinh.com -daily-email.com -daily-today-flashemoteobserver-vitality.com -dailyautoapprovedlist.blogmyspot.com -dailyawesomedeal.com -dailybanhtrungthubrodard.com -dailybible.xyz -dailybitcoinlotto.com -dailycasino.ru -dailycryptomedia.com -dailydeliverykw.com -dailydichos.com -dailydodger.net -dailyflats.org -dailyhealthclinic.com -dailyideas.me -dailyjp4.club -dailyladylog.com -dailylaunchoffers.com -dailylonghorn.com -dailyloon.com -dailymicrosoft.com -dailymovies.biz -dailynewmedia.com -dailypublish.com -dailyquinoa.com -dailysocialpro.com -dailyteleserye.ru -dailywebnews.info -daimlerag.cf -daimlerag.ga -daimlerag.gq -daimlerag.ml -daimlerag.tk -daimlerchrysler.cf -daimlerchrysler.gq -daimlerchrysler.ml -dainaothiencung.vn -daintly.com -daiphim.com -dairyawf.icu -dairyawfu.xyz -dairyfarm-residences-sg.com -dairygreat.email -dairyque.icu -dairythank.site -dairythi.xyz -dairythig.xyz -dairywiselabs.us -daisapodatafrate.com -daisymacgardens.com -dait.cf -dait.ga -dait.gq -dait.ml -dait.tk -daitarli.cf -daitarli.ga -daitarli.gq -daitarli.ml -daitarli.tk -daithresdoor.cf -daithresdoor.gq -daithresdoor.ml -daithresdoor.tk -daivatal.ga -daivatal.ml -daivatal.tk -daiwa-kohga.online -daiyun300.com -dajin18.com -dajreamdigital.com -dajuju.com -dakgunaqsn.pl -daki6v.us -dakimakura.com -dakkapellen-tilburg.com -dakkapellenbreda.com -dakshub.org -dalailamahindi.org -dalamananadolulisesi.xyz -dalamanporttransfer.xyz -dalamanturkishvillas.xyz -dalanila.tk -dalatrk.site -dalatvirginia.com -dalbam7.net -daleadershipinstitute.org -dalebrooks.life -dalecagie.online -daleloan.com -dalevillevfw.com -dalexport.ru -dali-guard.online -dali-vdali.ru -daliamodels.pl -dalianseasun.com -dalianshunan.com -dalins.com -dalis-kursu.xyz -dallas-ix.org -dallas.gov -dallas4d.com -dallasbuzz.org -dallascheapdrinks.com -dallascolo.biz -dallascowboysjersey.us -dallascriminaljustice.com -dallasdaybook.com -dallasdebtsettlement.com -dallasftworthdaybook.com -dallaslandscapearchitecture.com -dallaslotto.com -dallaspentecostal.org -dallaspooltableinstallers.com -dallassalons.com -dalremi.cf -dalremi.ga -dalremi.tk -daltongullo.com -daltonmillican.com -daltv14.com -daltv15.com -daltv19.com -daltv20.com -daly.malbork.pl -dalyoko.com -dalyoko.ru -damachinegame.net -damaginghail.com -damai.webcam -damail.ga -damanik.ga -damanik.tk -damastand.site -damatiy.space -damde.space -damebreak.com -damian-ekb.ru -daminhptvn.com -daminnes.info -damirtursunovic.com -damistso.cf -damistso.ga -damistso.ml -damistso.tk -damliners.biz -dammexe.net -damnser.co.pl -damnthespam.com -damonacos.info -damonza.net -damoreavenue.icu -damoshka.ru -damptus.co.pl -damvl.site -damwolves.com -damwolves.shop -dan-it.site -dan.lol -dan72.com -dana-markovskaya.ru -danaabadisekolah.com -danaabadisekolah.org -danaia.ru -danamail.com -danamon66.net -danapointsmile.com -danaproses.com -danavibeauty.com -dance-king-man.com -dance-school.me -dance4z.info -dance4zz.info -dancealb.com -dancefibr.icu -danceguess.buzz -danceinwords.com -danceliketiffanyswatching.org -dancemanual.com -danceml.win -dancend.info -dancethis.org.ua -dandanmail.com -dandantwo.com -dandcbuilders.com -dandikmail.com -dandinoo.com -dandrewsify.com -danecarsa.info -danelliott.live -dangbatdongsan.com -dangemp.com -dangerbox.org -dangerouscriminal.com -dangerousdickdan.com -dangersdesmartphone.site -dangirt.xyz -dangkibum.org -dangkibum.xyz -dangkygame.win -dangwild.xyz -danhenry.watch -daniarturos.club -danica1121.club -danielabrousse.com -danielcisar.com -danielfinnigan.com -danielfrysinger.com -danielfrysinger.net -danielfrysinger.org -danielgemp.info -danielgemp.net -danieljweb.net -danielkennedyacademy.com -danielkrout.info -danielsagi.xyz -danielurena.com -daniilhram.info -danilkinanton.ru -danilwsus.online -danirafsanjani.com -danish4kids.com -daniya-nedv.ru -danjohnson.biz -danklitmemes.com -dankmedical.com -dankmeme.zone -dankq.com -dankrangan77jui.ga -danlathel.cf -danlathel.ga -danlathel.gq -danlathel.ml -danlathel.tk -danlingjewelry.com -danmark.cd -danmoulson.com -danncollier.com -danneocheck.xyz -danniel-karr.ru -danns.cf -danny-mickey.ru -dannyantle.com -dannycrichton.org -dannyhosting.com -dannystonecelebrant.com -danoiara.xyz -danollascastlebar.com -danora.cf -danora.gq -danora.ml -danring.org -danslesenvirons.cd -dansova.online -dantevirgil.com -danthomas.me -dantri.com -danycompay.com -danycomsms.com -danzeralla.com -danzlogo.com -dao7j4.us -daoduytu.net -daof.cn -daofengyun.com -daogarden.ru -daolemi.com -daotan.org -daotaolamseo.com -daotzimin.cf -daotzimin.ga -daotzimin.gq -daotzimin.ml -daotzimin.tk -daoxiangpalmademallorca.com -dap38.space -daphnee1818.site -daphnetann.com -dapk.site -dapopo.xyz -dapperraptor.com -dapplica.com -daqbank.net -daqbank.org -daqbit.org -daqexc.org -daqianbet.com -daqmart.one -daqmart.org -daqsec.org -daquytinnghia.tech -dar098.xyz -dar123.xyz -dar23.xyz -daraart.com -daracombe.com -darafsheh.com -darazdigital.com -darblaga.ru -darcagold.cf -darcagold.ga -darcagold.gq -darcagold.ml -darcagold.tk -darcheteb.cf -darcheteb.ga -darcheteb.gq -darcheteb.ml -darcypierlot.com -darcyzhang.com -dareblog.com -darenmclean.com -dareo.site -darga24.space -darga24.website -dargah120.club -dargah9090.xyz -dargahdomainxtra.best -dargahian2.xyz -dargahparsi.xyz -dargahvaset2.xyz -darguncu.com -daricadishastanesi.com -daridarkom.com -darienelderlawgroup.com -darina12.ru -dariosblanchardstown.com -dark-tempmail.zapto.org -dark.lc -dark.support -dark2.ru -darkabyss.studio -darkbluevandred.ru -darkcitychat.com -darkclubintheworld.ru -darkcolo.net -darkcoremu.online -darkest-dungeon.ru -darkestday.tk -darkharvestfilms.com -darklabpc.ru -darklenta.online -darkmarket.live -darknet.technology -darknode.org -darkstone.com -darkwulu79jkl.ga -darlene.club -darlenemerronemarie.us -darlibirneli.space -darlingaga.com -darlinggoodsjp.com -darlingtonradio.net -darloneaphyl.cf -darmowedzwonki.waw.pl -darnellmooremusic.com -darobertas.com -darporalgo.info -darrowsponds.com -darrylcharrison.com -darsbyscman.ga -darsbyscman.tk -darsonline.com -dartak.site -darter-empirehonest-monk-honest.com -dartmouthhearingaids.com -dartsgirls.com -dartsoftwareautomation.com -dartv2.ga -dartwader.club -darv.xyz -darwinantivirus.net -darwinav.com -darwinav.net -darwins.app -darwinsgame.app -daryun.ru -daryxfox.net -das-abitur-nachholen.net -das-polopom1.ru -das.market -dasarip.ru -dasayo.space -dasayo.website -dasayo.xyz -dasbeers.com -dasdasdas23123.xyz -dasdasdascyka.tk -dasefashion.com -dasegr.club -dash-pads.com -dash8pma.com -dashabase.com -dashalens.ru -dashanddot.club -dashangyi.com -dashaustralia.com -dashbpo.net -dashengpk.com -dashiav.xyz -dashifood.com -dashoffer.com -dashseat.com -dashskin.net -daskoievinoihs.xyz -dasmarc.net -dasmarc.org -dasoft-hosting.com -dasprinting.com -daspsinc.com -dasttanday.ga -dasttanday.gq -dasttanday.ml -dasttanday.tk -dasty-pe.fun -dasxe.online -dasymeter.info -daszyfrkfup.targi.pl -data-003.com -data1.nu -dataaas.com -dataarca.com -dataazurro.com -datab.info -databnk.com -databootcamp.org -datacenteritalia.cloud -datacion.icu -datacion.pw -datacion.top -datacion.xyz -datacoeur.com -datacogin.com -datafordinner.com -datafres.ru -datafundcapital.com -dataharga.org -dataleak01.site -datalysator.com -dataminors.com -datamodelingwiki.com -datapaneli.xyz -dataplicity.sk -datapurse.com -datarator.com -datarca.com -dataretrievalharddrive.net -datasoma.com -datastorage.icu -datasurvey.org -datauoso.com -dataworldclub.com -datawurld.com -datazo.ca -datcaexpres.xyz -datcamermaid.com -datchka.ru -datdiamh.shop -dateligenu-confirmed.com -dateligenu-meet-backup.com -dateligenu-meet.com -datendesf.cf -datendesf.ml -datendesf.tk -datenschutz.ru -dates.cd -datesofevents.com -datesweetcherrygirls.xyz -dathingspool.cf -dathingspool.gq -dathingspool.ml -dathingspool.tk -dati69.com -dating-right-now2.com -dating-sky.ru -dating2020.top -dating4you-cc.net -datinganalysis.com -datingapr.website -datingbio.info -datingbistro.com -datingbit.info -datingcloud.info -datingcomputer.info -datingcon.info -datingeco.info -datingfails.com -datingfood.info -datinggeo.info -datinggetdown.website -datinggreen.info -datinghacks.org -datinghyper.info -datinginternet.info -datingmm.uk -datingphotos.info -datingpix.info -datingplaces.ru -datingreal.info -datingshare.info -datingstores.info -datingsun.info -datingtruck.info -datingwebs.info -datingworld.com -datingworld.email -datlab.space -datotira.cf -datovej.ninja -datrainternusa.com -datrr.gq -datsun311parts.com -datthocu.xyz -datum2.com -datumdelugeexile.site -daufzq.us -daughertymail.bid -daughterplastic.xyz -daun4d.live -daunpkr2.org -daunplay.org -davecooke.eu -davedrapeau.com -davegoodine.com -davemartin.today -davening613.com -davenportiowachiropractic.com -davenportiowachiropractor.com -davesbillboard.biz -davesbillboard.com -davesdadismyhero.com -davetiyesokagi.xyz -davewomach.com -david279.us -davidandmarc.com -davidcasinghino.com -davidcrozier.com -daviddjroy.com -daviddrapeau.com -davidedeluca.com -davidhathawayconsulting.com -davidjrparker.com -davidjwinsor.com -davidkoh.net -davidlcreative.com -davidmiller.org -davidmorgenstein.org -davido.africa -davidodere.com -davidorlic.com -davidqq.net -davidqq.org -davidsaunders.buzz -davidsonschiller.com -davidtaylormp.com -davidtbernal.com -davidvogellandscaping.com -davies-club.com -davietblogger.com -daviiart.com -davikla.com -davilo-press.ru -davinci-dent.ru -davinci-institute.org -davincidiamonds.com -davis.exchange -davomo.com -davuboutique.site -davutkavranoglu.com -dawaa.xyz -dawang777.org -dawcraft.com -dawetgress72njx.cf -dawin.com -dawn-smit.com -dawnnews.live -dawoosoft.com -dawozopa.site -dawri.live -daxfi1.info -daxur.xyz -daxurymer.net -day-holiday.ru -day-one.pw -day1campaign.org -daycubanart.com -dayemall.site -daygrandprizes9.life -dayibiao.com -daykemmonhoa.icu -dayking.icu -daylive.ru -dayloo.com -daymail.cf -daymail.ga -daymail.gq -daymail.life -daymail.men -daymail.ml -daymail.tk -daymailonline.com -daynews.site -daynightstory.com -dayone.pw -dayrep.com -dayreth.site -dayrosre.cf -dayrosre.ga -dayrosre.gq -dayrosre.tk -daysgox.ru -dayshow100.cn -daysofourlivesrecap.com -daytau.com -daytimos.com -daytobeyou.com -daytondonations.com -daytrippers.org -dayuzxg.com -dazate.gq -dazate.tk -dazbet2.com -dazere.info -dazplay.com -dazzlemysmile.biz -dazzlingcountertops.com -dazzvijump.cf -dazzvijump.ga -db-vets.com -db214.com -db2sports.com -db2zudcqgacqt.cf -db2zudcqgacqt.ga -db2zudcqgacqt.gq -db2zudcqgacqt.ml -db4t534.cf -db4t534.ga -db4t534.gq -db4t534.ml -db4t534.tk -db4t5e4b.cf -db4t5e4b.ga -db4t5e4b.gq -db4t5e4b.ml -db4t5e4b.tk -db4t5tes4.cf -db4t5tes4.ga -db4t5tes4.gq -db4t5tes4.ml -db4t5tes4.tk -dba26.com -dbadhe.com -dbadhe.icu -dbanote.net -dbatalk.com -dbataturkioo.com -dbatlogistics.com -dbawgrvxewgn3.cf -dbawgrvxewgn3.ga -dbawgrvxewgn3.gq -dbawgrvxewgn3.ml -dbawgrvxewgn3.tk -dbb-valve.com -dbbd8.club -dbcvdo.com -dbenoitcosmetics.com -dbits.biz -dblets.com -dbmmedia.org -dbo.kr -dbook.pl -dbook.site -dboss3r.info -dbot2zaggruz.ru -dbpages.com -dbrflk.com -dbseo.ru -dbsocd.com -dbst.band -dbt841.xyz -dbt845.xyz -dbt848.xyz -dbt862.xyz -dbt863.xyz -dbt864.xyz -dbt868.xyz -dbt871.xyz -dbt873.xyz -dbt878.xyz -dbt880.xyz -dbt891.xyz -dbt895.xyz -dbt896.xyz -dbtt.org -dbunker.com -dbvirtualizer.com -dbxola.rest -dby910.com -dbycivil.com -dbyrfpnd.xyz -dbz25.com -dbz5mchild.com -dc-business.com -dc0hah.us -dc213.org -dc45a2.com -dc7f8.xyz -dc99.app -dc9a7694.xyz -dcabmyoi.shop -dcantextli.gq -dcantextli.ml -dcantey.ru -dcapsul.xyz -dcastello.ru -dcbarr.com -dccsvbtvs32vqytbpun.ga -dccsvbtvs32vqytbpun.ml -dccsvbtvs32vqytbpun.tk -dce0.xyz -dcemail.com -dcemail.men -dcfnw.us -dcgs.ru -dcibb.xyz -dckb.email -dcluxuryrental.com -dcmnbb.com -dcndiox5sxtegbevz.cf -dcndiox5sxtegbevz.ga -dcndiox5sxtegbevz.gq -dcndiox5sxtegbevz.ml -dcndiox5sxtegbevz.tk -dcnlive.com -dconpla.biz -dcrnkqdn.space -dcru.email -dcscgroup.com -dcstranded.ru -dct-art.com -dct-industries.com -dct-robotics.com -dct-web.com -dctbooksonline.com -dctgames.com -dctm.de -dcv583.com -dcverowjd.shop -dcyfsu.stream -dd-lucky9.com -dd1234.com -dd18269.com -dd57822.com -dd8833.com -dd9966.com -dd9nax.us -dda1fd.club -ddancestudio.ru -ddataliste.site -ddbb99.xyz -ddblanding.com -ddboxdexter.com -ddcrew.com -ddd062.com -ddd9827.com -dddddd.com -dddk.de -dddoudounee.com -ddemilrk.site -ddevbotm.site -ddevtabd.site -ddgame999.org -ddgay.com -ddgzdmsg.xyz -ddi-solutions.com -ddigiwirew.site -ddimsfjr.shop -ddinternational.net -ddividegs.com -ddkin.com -ddlg.info -ddllkg.info -ddload3.xyz -ddlre.com -ddmail.win -ddmp3.com -ddn.kz -ddnkinvestglobal.com -ddns.ml -ddns.net -ddns.plus -ddnsfree.com -ddorai.net -ddosed.us -ddoudounemonclerboutiquefr.com -ddrabes.best -ddrf00.com -ddrt66.com -ddsongyy.com -ddsports.live -ddukbam03.com -ddukcafe2.com -ddxsoftware.com -ddynaliay.site -ddyy531.com -ddyy537.com -ddyy538.com -ddyy539.com -ddyy555.com -ddyy557.com -ddyy565.com -ddyy567.com -ddyy571.com -ddyy579.com -ddyy597.com -ddyy599.com -ddyy611.com -ddz79.com -de-2019-datenschutz-aktualisierung.xyz -de-a.org -de-classified.com -de-fake.instafly.cf -de-farmacia.com -de-lyrics.ru -de.introverted.ninja -de.newhorizons.gq -de.sytes.net -de.vipqq.eu.org -de4ce.gq -de5.pl -de5m7y56n5.cf -de5m7y56n5.ga -de5m7y56n5.gq -de5m7y56n5.ml -de5m7y56n5.tk -de6a6f.club -de99.xyz -dea-love.net -dea.soon.it -deadaddress.com -deadangarsk.ru -deadboypro.com -deadchildren.org -deadfake.cf -deadfake.ga -deadfake.ml -deadfake.tk -deadliftexercises.com -deadlinehomesite.club -deadlyspace.com -deadmobsters.com -deadproject.ru -deadsmooth.info -deadspam.com -deafchi.com -deagot.com -deahs.com -deaimagazine.xyz -deal-mega-original.ru -deal-retail-prod.ru -deal-store-seasons.ru -dealble.com -dealbonkers.com -dealcombiner.com -dealcost.com -dealcungmua.info -dealer.name -dealeredit.adult -dealergroupsummit.com -dealerlms.com -dealersautoweb.com -dealgiare.info -dealgongmail.com -dealingwithabully.com -dealja.com -dealligg.com -dealmuachung.info -dealnlash.com -dealpop.us -dealrek.com -dealremod.com -deals-from-wheels.com -deals.legal -deals4pet.com -dealsbath.com -dealsealer.org -dealshare.info -dealshint.xyz -dealsoc.info -dealsontheweb.org -dealsopedia.com -dealsource.info -dealsplace.info -dealsshack.com -dealsway.org -dealsyoga.com -dealthrifty.com -dealtim.shop -dealvn.info -dealyoyo.com -dealzbrow.com -dealzing.info -deamless.com -deamuseum.online -dean8x.com -deanbarlow.com -deanoumik.tk -dearisi.cf -dearisi.ga -dearisi.gq -dearisi.ml -dearisi.tk -dearistanbul.xyz -dearlittlegirl.com -dearoid.xyz -dearputin.net -dearputin.org -deasod.com -death-ko.xyz -deathbycounciltax.com -deathfilm.com -deathliteracy.org -deathqsweepdy.site -deathward.info -deba8x.com -debahis.com -debak.host -debak.xyz -debaresporrota.com -debaresporsanlucar.com -debarneuresarofimendeavour.org -debate.vote -debatedeals.com -debatehistory.com -debatetayo.com -debb.me -debela.cf -debela.ga -debela.gq -debela.ml -debela.tk -debet.asia -debet.info -debetvn.xyz -debforgione55places.com -debierkelder.com -debizuqiu.com -debonair-designs.com -debonnehumeur.com -deborahosullivan.com -deborahpodolsky.org -deborahvess.org -debradelfino.com -debran-indian-swords.com -debrauwadvocaten.online -debsbluemoon.com -debsmail.com -debspetandhousesitting.com -debtdestroyers.com -debthelp.biz -debtloans.org -debtrelief.us -debuglab.net -debuilding.ru -debute.cyou -debutter.com -deby.site -decacerata.info -decantr.com -decao88.org -decasino.ru -decassisya.info -decavn.org -deccanix.net -deccore.ml -deccore.tk -decd.site -december1977.com -decembermovo.com -decentraland.website -decentralproject.net -decentrust.com -deceptionindustries.com -decginfo.info -decibalblue.com -decibelblue.net -decibelworship.org -decidaenriquecer.com -decidasermagra.com -decimalizes270zr.online -decirculated.com -decisijevo.space -deckerniles.com -deckfasli.cf -deckfasli.gq -deckfasli.tk -deckscrubbrush.biz -deckscrubbrush.us -deckscrubbrushes.org -declined-active.best -deco-rator.edu -decobar.ru -decode.ist -decode.istanbul -decodeexpo.xyz -decodefuar.com -decodist.biz -decodream.ro -decography.ru -decolabsinc.com -decolonized643vu.online -decolonizes941gc.xyz -decoplagerent.com -decor-idea.ru -decorandhouse.com -decoratefor.com -decoratingfromtheheart.com -decoratinglfe.info -decorationdiy.site -decorative-m.com -decorativeaccents.exposed -decoratupiel.com -decoratupiel.es -decorigin.com -decox.ru -decoymail.com -decoymail.mx -decoymail.net -decreas.ru -decriminalization90lw.online -decriminalizes610vv.online -dector.live -decupam.buzz -decuypere.com -ded-moroz-vesti.ru -dedd.email -dede10hrs.site -dedetox.center -dedicateddivorcelawyer.com -dedimath.com -dedmail.com -dedmoroz-vesti.ru -dedmorozkoz.ru -dedom.info -deeded.best -deedinvesting.info -deekayen.us -deekris.info -deemail.xyz -deemfit.com -deemzjewels.com -deenahouse.co -deepadnetwork.net -deepankar.info -deepavenue.com -deepbreedr.com -deepcleanac.com -deepdicker.com -deeper-sonar.online -deepexam.com -deepfsisob.cf -deepfsisob.ga -deepfsisob.ml -deepfsisob.tk -deepgameslab.org -deeplysimple.org -deepshop.space -deepshop.xyz -deepsouthclothingcompany.com -deepstaysm.org.ua -deepstore.online -deepstore.site -deepstore.space -deepthroat.monster -deepttoiy.cf -deepvpn.site -deepvpn.space -deerecord.org.ua -deerest.co -deermokosmetyki-a.pl -deerparkrealestateagents.com -deesje.nl -deezstore.website -defandit.com -defaultdomain.ml -defaulywzw.space -defdb.com -defeatmyticket.com -defebox.com -defeet.ru -defenceds.com -defend-pc-servlce3.info -defenderconvention.com -defenderyou.com -defendpay.com -defendrrg.info -defendthemaarket.com -defengyaoye07.com -defensemart.com -defenseofthegospel.com -defenseoutfitter.ru -deferrableassets.info -defi-printemps.org -defiant.poker -defibank.technology -defibank24.com -defimole.com -definesmain.com -definingjtl.com -defmyx.xyz -defomail.com -defqon.ru -defreader.com -defvit.com -defyournumber.com -degar.xyz -degradedfun.net -degreesofseperationtoday.com -degrowlight.com -degrowlight.net -degrowlights.com -degwl4e.xyz -degydi.info -dehalfpricelistings.com -dehoutfrezer.com -deiforce.com -deifreegup.cf -deifreegup.ga -deifreegup.gq -deifreegup.ml -deinbox.com -deintier.shop -deinwebradio.com -deionized129br.online -deipostoe.cf -deipostoe.ga -deipostoe.gq -deipostoe.tk -deisanvu.gov -deishmann.pl -deityproject.net -deityproject.org -deiwoodcons.cf -deiwoodcons.ga -deiwoodcons.tk -dejamart.site -dejamedia.com -dejavafurniture.com -dejavu.moe -dejtinggranska.com -dekabet56.com -dekao59.icu -dekartaboards.ru -dekatri.cf -dekatri.ga -dekatri.gq -dekatri.ml -dekaufen.com -dekmauricie.com -dekoracjeholajda.pl -dekorated.com -dekoratifkaplamalar.net -dekorationideen.me -dekuki.info -del58.com -delaemsami18.ru -delaladz.com -delanazwetsloot.info -delanoforeclosures.com -delaware-nedv.ru -delawarecocainerehab.com -delawaredropbox.com -delawareheroinrehab.com -delawareo.com -delawaresecure.com -delawareshowerglass.com -delaxoft.cf -delaxoft.ga -delaxoft.gq -delaxoft.tk -delayedflights.com -delayequa.xyz -delayload.com -delayload.net -delayover.com -delaysvoe.ru -delcan.me -delcomweb.com -deldoor.ru -delefonkia.info -deleomotosho.com -delepoted.email -deleriousdrip.tk -deletedmessages.net -deletme.xyz -delhipalacemallow.com -delhispicetakeaway.com -delicacybags.com -delicate-accent.ru -delicategames.com -delichev.su -delicieuxbakery.com -deliciousnutritious.com -deliciousthings.net -delieus.site -delightbox.com -delightfulpayroll.com -delightfulworkspace.org -delighthimalaya.com -delignate.xyz -delikkt.de -delimapoker.website -delimiter.cloud -delimiterrefugees.com -delinuts.app -deliomart.com -deliriumshop.de -deliverancetrucking.com -deliverfreak.com -deliverme.top -delivery377.monster -deliveryconcierge.com -deliveryquebec.com -deliveu.site -delivvr.com -deliy.ru -dell-couponcodes.com -dellfroi.ga -dellingr.com -delmang.com -deln.info -delo4n.pro -deloittesmartreports.com -delonguiseavolt.ca -delorehouse.co -delorieas.cf -delorieas.ml -delotti.com -delowd.com -delphinine.xyz -delphiniza.xyz -delrikid.cf -delrikid.gq -delrikid.ml -delrikid.tk -delta.xray.thefreemail.top -delta8cartridge.com -deltabeta.livefreemail.top -deltacplus.info -deltakilo.ezbunko.top -deltalumen.gr -deltaoscar.livefreemail.top -deltapearl.partners -deltashop-4g.ru -deltechasia.com -deluxedesy.info -deluxetakeaway-sandyford.com -deluxewrappingmail.com -demail3.com -demalasprontas.net -demand56.website -demanddawgs.info -demandfull.date -demandmagic.com -demandrelationship.com -demandsxz.com -demen.ml -demencia.page -dementiaforumx.se -demesmaeker.fr -demgau.com -demianopp.net -demiclen.sk -demienb.ru -demigod.space -demilleturfarm.com -deminyx.eu -demirelotomanisa.online -demirelotomanisa.xyz -demirprenses.com -demlik.org -demmail.com -demo-royamhotel.website -demo.neetrix.com -democratic.army -democratized730yw.online -demodaas.host -demodesk.dev -demodron.tech -demoforeks24.com -demokrasiveatilimpartisi.net -demonclerredi.info -demonetizes756hm.online -demonpo.ga -demonpo.gq -demonpo.ml -demopitora.space -demotea.com -demotivatorru.info -demotywator.com -demreturizm.xyz -dena.ga -dena.ml -denarcteel.com -denationalization534lc.online -denationalizing899ee.xyz -denattehond.online -denaturalizing603oc.online -denbaker.com -dencxvo.com -dendomrecptic.website -dendride.ru -dendrions.ga -deneeky.ru -denehznoe-derevo.ru -denemebonuslari.info -denemeincele.com -deneukboot.online -dengekibunko.cf -dengekibunko.ga -dengekibunko.gq -dengekibunko.ml -dengi-news.ru -dengi-pod-zalok-pts.ru -dengivbank.ru -dengizaotvet.ru -denhues.info -deniath.com -denisderzhavin.com -denisecase.com -denisespellberg.com -denispushkin.ru -denithor.gq -denizenation.info -denizlimedyaajansi.xyz -denizlipostasi.com -denizlisayfasi.com -denizyolulashing.com -denki.guru -denniehoopingarner.info -dennisburge.com -denniscoltpackaging.com -dennisgabor.com -dennisgpike.com -dennisss.top -dennmail.win -dennymail.host -denomla.com -denovocompany.com -denovocybersecurity.com -denpasoda.com -denracad.cf -denracad.ga -denracad.ml -denracad.tk -denseregencyexpel.site -denservise.ru -densify.org -density2v.com -denstudio.pl -dentafinder.com -dental-and-spa.pl -dentalassociationgloves.com -dentaldiscover.com -dentaldoctornearme.com -dentalemergencyroom.com -dentalexcellencephoenix.com -dentalfarma.net -dentalhealthline.info -dentaljazz.info -dentallabmanager.com -dentalmarketingcouncil.com -dentalmdnearme.com -dentalpracticedigitalmarketing.com -dentalpracticeseoagency.com -dentalpracticeweb.com -dentalpride.ru -dentalscript.com -dentcarepro.website -dentegi.cf -dentegi.ga -dentegi.gq -dentegi.ml -dentegi.tk -denthite.ga -denthite.gq -denthite.ml -denthite.tk -dentistmarketplace.com -dentistry32norma.ru -dentistrybuzz.com -dentistryoffer.com -dentistryu.org -dentists.digital -dentistwebsitepackages.com -dentoiwama.ru -dentonaccidentattorney.com -dentonaccidentattorneys.com -dentonaccidentlawyer.com -dentoninjuryattorneys.com -dentoninjurylawyer.com -dentonpersonalinjury.com -dentonpersonalinjurylawyers.com -dentz.net -denverareadirectory.com -denverbroncosproshoponline.com -denverbroncosproteamjerseys.com -denvercathospital.com -denvercocainerehab.com -denvercyberdefence.com -denvergeek.com -denverquote.com -denverwebhost.net -denwin.com -denyfromall.org -deo.edu -deoanthitcho.site -deoanthitdau.site -deocaaocaelvallenosetoca.cf -deocamno.cf -deocamno.ga -deocamno.gq -deocamno.tk -deocrystal.ru -deodorizing465uh.online -deonline.coach -deonlineklas.online -deorehigh.cf -deorehigh.ga -deorehigh.gq -deorehigh.ml -deos.email -deos.onl -deos.tech -deov5x.info -dep88.win -depadua.eu -depaduahootspad.eu -depdfmanuales.xyz -depend.best -dependenceinspiretelevision.website -depented.space -deplatform.live -deployeasy.com -deployments.pro -depogross.com -depoidn.poker -depoladang.com -depolitika.com -deponote.org -depopar.net -depormania.es -depors12.xyz -deposit.ml -depositbtc.ru -depositshub1.com -depositshub2.com -deposma.cf -deposma.ga -deposma.gq -deposma.ml -deposma.tk -depostventaindustrial.com -deposventa.com -depotviolet.com -depradoork.gq -depradoork.ml -depressurizes908qo.online -deps-way2.com -deptgadcha.cf -deptgadcha.gq -deptgadcha.ml -deput.site -der-kombi.de -der.madhuratri.com -derano.site -derblitithe.tk -derbmalo.cf -derbmalo.ga -derbmalo.gq -derbmalo.ml -derbydales.co.uk -derbydancefestival.com -derder.net -derdisoft.com -deredik.info -derefed.com -derektwilight.com -derevenka.biz -derg.pro -dergmirbio.cf -dergmirbio.ga -dergmirbio.gq -dergmirbio.ml -dergmirbio.tk -derhaai.com -deribitguide.org -derickventer.com -derinbet14.com -derisuherlan.info -derivative.studio -derkombi.de -derliforniast.com -derlusac.cf -derlusac.gq -derlusac.ml -derluxuswagen.de -dermacareguide.com -dermacareshop.life -dermacoat.com -dermalmedsblog.com -dermatendreview.net -dermatitistreatmentx.com -dermatologistaportoalegre.com -dermatologistasaopaulo.com -dermatologistcliniclondon.com -dermatologycenterofboston.com -dermoli.xyz -dermorab.xyz -dermote.xyz -dermozi.xyz -dermpurereview.com -dernie.best -deromise.tk -derpfactor.com -derpfactor.net -derphouse.com -derpingfordays.com -derpy.info -derraro.cf -derraro.ga -derraro.gq -derraro.ml -derraro.tk -derroce.cf -derroce.ga -derroce.gq -derroce.ml -derroce.tk -dersdern.shop -derssataff.cf -derssataff.ga -derssataff.gq -derssataff.tk -derstefo.cf -derstefo.ga -derstefo.gq -derstefo.ml -derstefo.tk -derthtsz.shop -dertul.xyz -des-law.com -des1gn.tech -desahucioporinternet.com -desaptoh07yey.gq -desarrollo.online -desarte.info -descarga.gratis -descargalo.org -descargar-mp3.name -descargar-mp3.one -descargar-mp3.uno -descargarhotmail.com -descargarjuegosswitch.com -descargarplaystore.app -descducguepargo.space -descher.ml -deschprochel.cf -deschprochel.ga -deschprochel.gq -deschprochel.ml -deschprochel.tk -desconecta.info -descrive.info -desecratedsorrow.com -deselcard.cf -deselcard.ga -deselcard.gq -deselcard.tk -deselling.com -desenedublate.xyz -desert49.website -desertcan.com -desertcart.org -desertdigest.com -desertfinancoal.com -deserthillsbiblechurch.com -desertinancial.com -desertspringscov.church -desertstardesign.com -deshevo.travel -deshevosuper.ru -deshivideos.com -deshiz.net -desi-tashan.su -design-42.ru -design-doma.site -design-generator.ru -design.tours -design199.com -designable.info -designagency.ooo -designalpha.site -designavenue.info -designbydelacruz.com -designbyparts.com -designcreativegroup.com -designdemo.website -designea.ru -designerbagsoutletstores.info -designerclothingwear.com -designereasy.ru -designergeneral.com -designerhandbagstrends.info -designersadda.com -designerwatches-tips.info -designerwatchestips.info -designforleadership.com -designfortwayne.com -designfox.org -designfreebies.ru -designfuture.info -designingenium.com -designingireland.com -designingknights.com -designland.info -designmint.site -designmybrick.com -designobserverconference.com -designog.com -designprint.co.nz -designsbydelacruz.com -designsolutionstl.com -designsource.info -designstudien.de -designstudioinc.net -designtemple.info -designthinkingcenter.com -designvk.ru -designwaretech.com -designwigs.info -designyourbrick.com -desiheroine.com -desinfestacao.com -desingerexperience.com -desinghw.ga -desinglab.fun -desioutlets.site -desiruleztv.site -desisdesis.com -desitashan.su -desitvforums.su -deskality.net -deskinsagriculture.com -deskinsmanure.com -deskinswatertreatment.com -deskofday.app -deskova.com -deskport.net -desksgaloreandmore.com -desksonline.com.au -desktimeaustin.com -desktimechicago.com -desktop.events -desktopbitcoin.com -deskwareapp.com -desloratadipris.website -desmo.cf -desmo.ga -desmo.gq -desmodfhye.space -desmoinesquote.com -desmondpvc.com -desmondrichardson.com -desocupa.org -desouth.net -desouth.org -desoutilspourapprendre.com -desoz.com -despairsquid.xyz -despalar.ml -despalar.tk -despam.it -despammed.com -despgilpers.cf -despgilpers.ga -despiporren.com -desplainesapartments.com -dessertideasnowa14.com -dessuitesy.info -destcon.cd -desteketut.com -destent.net -destinationbrazil.com -destinationsouthernafrica.xyz -destinour.tk -destjusbaff.ml -destjusbaff.tk -destkinggen.cf -destkinggen.gq -destkinggen.tk -destroyertactics.com -destructiveblog.com -destructocat.com -destypad.gq -destypad.ml -destypad.tk -desultorydrivel.com -desuze.info -deszn1d5wl8iv0q.cf -deszn1d5wl8iv0q.ga -deszn1d5wl8iv0q.gq -deszn1d5wl8iv0q.ml -deszn1d5wl8iv0q.tk -detabur.com -detailernews.com -detalii.ru -detalushka.ru -detash.kg -detayappliances.online -detayappliances.xyz -deteenergy.com -detektywenigma.pl -detentroom.ru -determined2.net -determing.website -detestais.xyz -detetive.online -detexx.com -dethedown.cf -dethedown.gq -dethongminh.com -dethzoo.xyz -detikcapsa.biz -detikcapsa.net -detikcapsa.org -detikcapsaonline.com -detikcash.com -detikpoker88.net -detipoisk.ru -detkisad.ru -detonic02.ru -detox.marketing -detoxcenterfinder.com -detoxcontentwriters.net -detoxprogram.center -detoxstartsnow.com -detoxstartsnow.org -detran.site -detribalizing644gz.online -detroitalcoholrehab.com -detroitberlin.org -detroitdaily.com -detroitelectric.biz -detroithairsalons.com -detroitheroinrehab.com -detroitlionsjerseysstore.us -detroitmipersonalinjurylawyer.com -detroitopiaterehab.com -detroitquote.com -detroitroadsters.com -detrude.info -detskiechasy72.ru -detskietime.ru -detsky-pokoj.net -dettol.cf -dettol.ga -dettol.gq -dettol.ml -dettol.tk -deubomac.ga -deubomac.gq -deubomac.ml -deubomac.tk -deucemail.com -deuplus.com -deutchto.ru -deutestax.xyz -deutsch-nedv.ru -deutsch-sprachschule.de -deutschland-sicherheit.top -deutschland-update-sicherheit-241236.top -deutschlandcasinos.host -dev-api.ru -dev-gaming.org -dev-mclub.com -dev-null.cf -dev-null.ga -dev-null.gq -dev-null.ml -dev-point.biz -dev-testing.website -dev-tips.com -dev01d.ml -dev286.com -devachek.org -devadeva.ru -devakaudicien.net -devapartisi.name -devax.pl -devbahis666.com -devbaris.info -devblock.com -devcard.com -devcourse.ru -devdating.info -devdeb.ru -develhelp.com -develop.coop -developan.ru -developedwithstyle.info -developer401k.com -developerblog.org -developers401k.com -developfuel.com -developing.org -developmentaldesigns.net -developmentaldesignsms.com -developmentstack.com -developmentwebsite.co.uk -devere-group-banking.com -devere-hungary.com -devere-malta.com -deverob.com -devexp.us -devfiltr.com -devge.com -devicefoods.ru -devicemaker.com -devicemods.ru -devicesshop.futbol -devildollar.com -devilrainstudio.com -devilsasians.com -devilsgrannies.com -devilsredheads.com -devinelittleleague.org -devinmariam.coayako.top -devist.com -devletgirisimcidestekleri.com -devmoe.com -devmongo.com -devnaught.com -devnullmail.com -devo.black -devo.blog -devo.dance -devo.dating -devo.deals -devo.direct -devo.events -devo.fitness -devo.gallery -devo.management -devo.photos -devo.productions -devo.reviews -devo.style -devo.tech -devo.tours -devo.training -devo.ventures -devo.vision -devoidgpoc.space -devonandamanda.com -devone.cf -devone.ga -devonki.mobi -devonxdavon.com -devops.cheap -devops.country -devopsjournal.net -devopsmeetup.live -devosair.site -devotedent.com -devotions316.com -devreg.org -devremulk.biz -devrient.gent -devrient.info -devs.chat -devself.com -devset.space -devskateboards.com -devuan.online -devushka-fo.com -devxtesting.info -devxtesting.net -devxtesting.org -devyun.com -dew.com -dew007.com -dewa-lotto.club -dewa-lotto.org -dewa-sgp.net -dewa-togel99.net -dewa189qq.net -dewa633.online -dewa855.com -dewabet99.net -dewabola303.com -dewacapsawins.net -dewadaun.xyz -dewadaunqq.com -dewadaunqq.net -dewadewipoker.com -dewahk.info -dewahk.live -dewahk.online -dewahkb.net -dewajudi368.live -dewajudi999.com -dewakartu.org -dewaklik388.com -dewanagatoto.net -dewaneon.net -dewanonton21.com -dewapkvdomino.com -dewapoker2020.biz -dewarsengines.com -dewascore.info -dewawiro.com -dewayim.site -dewchenkam.ru -deweyscoffee.com -dewi368.net -dewightanderson.com -dewightssalon.com -dewihk.xyz -dewly9.info -deworconssoft.xyz -dexhibition.com -dexibu.xyz -dextm.ro -dextzobur.cf -dextzobur.gq -dextzobur.ml -dextzobur.tk -deyom.com -deypo.com -dezcentr56.ru -dezedd.com -dezend.shop -dezenfekteurunlerim.xyz -dezitouch.com -dezzire.ru -df-re.com -df59e.com -df7d95.xyz -df8c.online -df9876.com -dfagsfdasfdga.com -dfat0fiilie.ru -dfat0zagruz.ru -dfat1zagruska.ru -dfatt6zagruz.ru -dfb55.com -dfcmdgame1.com -dfde7.club -dfdfdfd.site -dfdfdfdf.com -dfdgfsdfdgf.ga -dfeatherston.com -dfet356ads1.cf -dfet356ads1.ga -dfet356ads1.gq -dfet356ads1.ml -dfet356ads1.tk -dff.buzz -dff55.dynu.net -dffhfjfj.website -dffwer.com -dfg456ery.ga -dfg6.kozow.com -dfgds.in -dfgeqws.com -dfgggg.org -dfgh.net -dfghj.ml -dfgtbolotropo.com -dfigeea.com -dfiles.fun -dfiles.online -dfind.online -dfjunkmail.co.uk -dfmjvd.com -dfmstaging.com -dfnqxymfm.cf -dfoofmail.com -dfoofmail.net -dfooshjqt.pl -dfqpqwsawe5566.com -dfre.ga -dfremails.com -dfshndls.com -dfssbm.com -dfthna.us -dftrekp.com -dfwaccidentattorneys.com -dfwautoaccidentlawyer.com -dfwautodetailing.com -dfwcaraccidentattorneys.com -dfwdaybook.com -dfwin88.info -dfwk968gbin4o1z.xyz -dfwlqp.com -dfworld.net -dfwpauzbc.shop -dfwyard.com -dfy2413negmmzg1.ml -dfy2413negmmzg1.tk -dfyxmwmyda.pl -dg27jv.us -dg8899.com -dg88affgame.com -dg9.org -dgame.site -dgb-toon4.com -dgbhhdbocz.pl -dgbikejxw.shop -dgcustomerfirst.site -dgd.mail-temp.com -dgdbmhwyr76vz6q3.cf -dgdbmhwyr76vz6q3.ga -dgdbmhwyr76vz6q3.gq -dgdbmhwyr76vz6q3.ml -dgdbmhwyr76vz6q3.tk -dgedy.live -dget1fajli.ru -dget8fajli.ru -dgfghgj.com.us -dgget0zaggruz.ru -dgget1loaadz.ru -dggslwdn.shop -dghyxu.xyz -dgidpo.icu -dgiuqr.us -dgjhg.com -dgjhg.net -dgjsrajh.shop -dgjxh9.us -dgkcismd.shop -dgmarbie.com -dgnghjr5ghjr4h.cf -dgnxcc.com -dgpa.cd -dgpoker88.online -dgpqdpxzaw.cf -dgpqdpxzaw.ga -dgpqdpxzaw.gq -dgpqdpxzaw.ml -dgpqdpxzaw.tk -dgseoorg.org -dgstore24.ru -dgthailand.net -dgtotu-tada.ru -dgvjjcgf.xyz -dgyx.xyz -dh-musfbdic.online -dh-u.club -dh03.xyz -dh04.xyz -dh05.xyz -dh06.xyz -dh07.xyz -dh08.xyz -dh09.xyz -dh2cuj.us -dh545.site -dh8.xyz -dh98.xyz -dh9837.com -dhabfontdec.cf -dhabfontdec.ga -dhabfontdec.gq -dhabfontdec.tk -dhabjouanes.cf -dhabjouanes.ga -dhabjouanes.gq -dhabjouanes.ml -dhana.info -dhapy7loadzzz.ru -dharatal.org -dharmaspirituality.com -dharmatel.net -dharoharfarms.com -dharoharmilk.com -dhbeuxet.shop -dhbusinesstrade.info -dhc6parts.com -dhc6pma.com -dhc8pma.com -dhcustombaling.com -dhead3r.info -dhfyqn.shop -dhgbeauty.info -dhhmxmwo.shop -dhivutsicing.tk -dhl-uk.cf -dhl-uk.ga -dhl-uk.gq -dhl-uk.ml -dhl-uk.tk -dhlkurier.pl -dhlzpjppr.shop -dhm.ro -dhmu5ae2y7d11d.cf -dhmu5ae2y7d11d.ga -dhmu5ae2y7d11d.gq -dhmu5ae2y7d11d.ml -dhmu5ae2y7d11d.tk -dhooniraajje.xyz -dhr1wm.us -dhruvseth.com -dhsjyy.com -dhtdht.com -dhudinuaj.xyz -dhufjnaunstop.club -dhwilp.com -dhy.cc -di9yy.info -dia-gram.ru -dia-rus.ru -diaaline.ru -diabasil.com -diabet4k.top -diabetesbuddyapp.com -diabeteschennai.net -diabetesresearchchennai.com -diabetestelemedicine.com -diabeticcakerecipes.org -diabeticlotion.com -diablo3character.com -diablo3goldsite.com -diablo3goldsupplier.com -diabloaccounts.net -diablocharacter.com -diablodawg.com -diablogears.com -diablogold.net -diablowallpapers.com -diabolizing227ni.online -diacamelia.online -diacelte.ga -diacelte.ml -diachidulich.com -diacustin.com -diademail.com -diadeoclic.cf -diadeoclic.gq -diadeoclic.ml -diadiemquanan.com -diadiemquangngai.com -diadisolmi.xyz -diadoo.xyz -diafporidde.xyz -diagnosisdoublecheck.com -diagnosistreatmentprograms.com -diagnostic-kit.com -diagnostikaavtov.ru -diagrams.online -dialarabia.com -dialinee.ru -dialogmagazine.org -dialognt.ru -dialogus.com -dialsweetlydeny.website -dialtools.ru -dialtrust.ru -dialysis-attorney.com -dialysis-injury.com -dialysis-lawyer.com -dialysisattorney.info -dialysislawyer.info -diamants.cd -diamantservis.ru -diamo.website -diamond9casino.com -diamondbar.online -diamondbarestates.com -diamonddogrescue.org -diamondfacade.net -diamondglass.website -diamondlogistics.se -diamondt201.com -diamondvalleytri.com -dian.ge -dian96.com -dianadadmehr.com -dianamora.com -diandrade2den.xyz -diane35.pl -dianefenzl.com -dianeharrison.com -dianetiks.ru -dianhabis.ml -dianjing068.com -dianjing166.com -dianjing700.com -dianjing800.com -dianjing900.com -dianlanwangtao.com -diannsahouse.co -diantrk.site -dianyingzhongguo.cn -diapacham.cf -diapacham.ga -diapacham.ml -diapacham.tk -diaparji.ga -diaparji.gq -diaparji.ml -diaparji.tk -diapaulpainting.com -diaper.lk -diaperbagbackpacks.info -diaphragmtv.com -diapoberf.cf -diapoberf.ga -diapoberf.gq -diapoberf.tk -diaraizi.cf -diaraizi.ga -diaraizi.ml -diaraizi.tk -diariocolatino.net -diariodigital.info -diarioretail.com -diariototal.com -diarioturismo.com -diaryinza.com -diaryofahairtransplant.com -diaryofsthewholesales.info -diascan24.de -diasisindia.com -diasumpha.gq -diasumpha.ml -diazincenter.xyz -diazinsatisi.xyz -dibbler1.pl -dibbler2.pl -dibbler3.pl -dibbler4.pl -dibbler5.pl -dibbler6.pl -dibbler7.pl -dibisen.cf -dibisen.ga -dibisen.gq -dibisen.tk -dibon.site -diboride.info -dibtec.store -dicasdacasabaher.com -dicedica.shop -dicejobalertsa13.com -dicepic.com -dicepicks.com -dicerollplease.com -diceservices.com -diceservices.net -diceservices.org -dichalorli.xyz -dichthuattructuyen.com -dichvugroupc.com -dichvuseothue.com -dickdoc.net -dickdoc.org -dickmorrisservice.com -dickrx.net -dicksinhisan.us -dicksinmyan.us -dicksoncountyag.com -dickwangdong.net -dickwangdong.org -dicountsoccerjerseys.com -dicycfeo.cf -dicycfeo.ga -dicycfeo.gq -dicycfeo.tk -dicyemail.com -didacvidal.com -didarcrm.com -didawljy.com -didiermampasi.cd -didikselowcoffee.cf -didikselowcoffee.ga -didikselowcoffee.gq -didikselowcoffee.ml -didim-altinkum.xyz -didimaraja.xyz -didimkontor.com -didimreizen.xyz -didjinnal.com -didncego.ru -dido-peinture.com -diecastsuperstore.com -diegewerbeseiten.com -diegogamingmail.ml -diegovts.tk -diegoyoutuber.tk -diendanhocseo.com -diennuocnghiahue.com -diepesi.cf -diepesi.ga -diepesi.gq -diepesi.ml -diepesi.tk -dierachegottes666.tk -dieran.info -dierirovertcor.space -diesacan.ga -diesacan.gq -diesel-bullery-armani.ru -dieselcbd.com -dieseldriver.com -dieselexhaustfluid.biz -dieselmotorhomes4rent.com -diet-eating.site -diet105.xyz -dietamedia.ru -dietaryneeds.org -dietarysubstitutes.com -diethenorp.cf -diethenorp.gq -diethenorp.ml -diethenorp.tk -dietingadvise.club -dietinsight.org -dietmastery.org -dietology-quest.online -dietpill-onlineshop.com -dietrich-group.com -dietsecrets.edu -dietsolutions.com -dietstart.biz -dietsvegetarian.com -dietysuplementy.pl -dieukydieuophonggiamso7.com -dievemar.cf -dievemar.ga -dievemar.gq -dievemar.ml -dievemar.tk -diffamr.com -diffamr.net -differencefactory.com -diflucanrxmeds.com -difora.cf -difora.gq -difora.ml -diforcejobs.com -diforceworks.com -difwestnun.ga -difwestnun.gq -difwestnun.ml -difwestnun.tk -difz.de -digading.com -digdown.xyz -digestletter.com -diggcrypto.com -diggiesupport.com -diggmail.club -digh.net -digi-bay.com -digi-games.ru -digi-magsonline.com -digi-magsonline.org -digi-women.com -digibeat.pl -digibet.biz -digibet.net -digibet.org -digibetbox.com -digibetwetten.com -digicampus.dev -digicampus.info -digicash.org -digicontentnetwork.com -digicures.com -digier365.pl -digimating.com -digimexplus.com -digimktgworld.com -digimuse.org -digimusics.com -digintory.com -digiprice.co -digisam.repair -digisam.services -digisamservice.com -digisimpli.com -digisnaxxx.com -digital-bootcamp.com -digital-designs.ru -digital-doctrine.ru -digital-email.com -digital-everest.ru -digital-frame-review.com -digital-garage.app -digital-ground.info -digital-message.com -digital-resilience.info -digital-signage.ru -digital-work.net -digital10network.com -digitalagency.ooo -digitalbankingsummits.com -digitalbristol.org -digitalbull.net -digitalbutler.biz -digitalcameradevice.com -digitalcarpenters.com -digitalcasanet.com -digitalcashnews.com -digitalcoldwallet.com -digitalcustomeracquisition.info -digitalcustomeracquisition.org -digitaldefencesystems.com -digitaldron.com -digitalesbusiness.info -digitalestore.info -digitalfocuses.com -digitalgadget.info -digitalhaunting.com -digitaljobs.press -digitaljschool.com -digitalmail.info -digitalmariachis.com -digitalmarketingcoursesusa.com -digitalmarketingpositions.com -digitalmktgworld.com -digitalmobster.com -digitalneuron.biz -digitalnewspaper.de -digitalnomad.exchange -digitalobscure.info -digitaloutrage.com -digitalpdfmanuales.xyz -digitalryno.net -digitalsanctuary.com -digitalsc.edu -digitalscandinavia.net -digitalsearch.info -digitalseopackages.com -digitalsignage.ru -digitalsole.info -digitalsolutionsdaraz.com -digitalstoragepro.com -digitaltechnic.ru -digitaltechsf.com -digitaltransarchive.net -digitaltransformationsaas.com -digitaltrueindia.com -digitalvideoexperts.net -digitalwarriorblueprint.com -digitalwebring.com -digitalwebus.com -digitalxpozure.com -digitalyou.media -digitalzeroone.com -digitava.com -digitex.ga -digitex.gq -digiuoso.com -digiwood.design -digizoom.ru -digl-team.net -digmeha.cf -digmeha.ga -dignityhealthazcancer.biz -digsandcribs.com -digsignals.com -digstaug.org -digumo.com -dihistores.site -dihuantech.com -diialine.ru -diide.com -diifo.com -diigo.club -dijesupermart.site -dijibilisim.xyz -dijitalbulten.com -dikbzn.site -dikeyzebraperde.com -dikitin.com -dikixty.gr -dikop.ru -dikovics.com -dikriemangasu.cf -dikriemangasu.ga -dikriemangasu.gq -dikriemangasu.ml -dikriemangasu.tk -dikydik.com -dilapidation.org -dilaracelikyapi.com -dilayda.com -dildemi.xyz -dildosfromspace.com -dilekevsen.com -dilemmaggar.email -dilherute.pl -dililimail.com -dilipits.cf -dilipits.ga -dilipits.gq -dilipits.tk -dillarduniversity.com -dillonbrooks.com -dilofoud.ga -dilofoud.ml -dilofoud.tk -dilon-rp.ru -dilts.ru -dilusol.cf -dilusol.ga -dilusol.ml -dim-coin.com -dimadde.cf -dimadde.ga -dimadde.gq -dimadde.ml -dimadde.tk -dimasdomeni.press -dimasprofit.press -dimepe.xyz -dimex.su -dimia.xyz -dimimail.ga -diminbox.info -dimjkfsh.shop -dimlruzz.shop -dimpusburger.com -dimsumbuffet.com -dimy.site -dinaattar.com -dinamika96.ru -dinamikser44.ru -dinarsanjaya.com -dinartaabreu.com -dinasti4d.xyz -dinastitoto.club -dinbang.com -dinbogcoin.com -dinbogtoken.com -dincama.cf -dincama.ga -dincama.ml -dincama.tk -dincelemlak.xyz -dincoin.biz -dincon.ru -dindalutiflivid.com -dindon4u.gq -dineroparacasa.com -dineroua.xyz -dingbone.com -dingdong4d.com -dingeno.shop -dingi-rekoi.ru -dingniu00.com -dingtorbi.gq -dingtorbi.ml -dingtorbi.tk -dingyizixin.com -dinhatban.info -dinheiroextranaweb.com -dinheironet.life -dinhtamdan.com -dinic.xyz -dining-car.app -dinkmail.com -dinksai.ga -dinksai.ml -dinly.icu -dinnernorthconway.com -dinnersbydiane.com -dino56pey.com -dinoandnight.com -dinoautomation.com -dinocaira.com -dinogam.com -dinorc.com -dinoschristou.com -dinosloto7.ru -dinospacegame.com -dinospizza-kilkenny.com -dinotek.top -dinoza.pro -dinozorcocuk.com -dinozorcocuk.net -dinozy.net -dinsfirsgu.cf -dinsfirsgu.ga -dinsfirsgu.gq -dinsfirsgu.ml -dinsfirsgu.tk -dint.site -dinteria.pl -dintughreb.fun -dinubaforeclosures.com -dioemail.ml -diofeci.cf -diofeci.ml -diofeci.tk -diogenov.ru -diokgadwork.cf -diokgadwork.ga -diokgadwork.gq -diokgadwork.ml -diokgadwork.tk -diolid.ru -dioneijunior.com -diopipymestoa.space -diopire.ga -diopire.gq -diopire.ml -diopire.tk -dioplumar.cf -dioplumar.gq -dioplumar.ml -dioplumar.tk -diornz.com -diosasdelatierra.com -diotedpers.cf -diotedpers.ga -diotedpers.gq -diotedpers.ml -diotedpers.tk -diotelli.cf -diotelli.ga -diotelli.gq -diotelli.ml -diotelli.tk -diotimen.cf -diotimen.ml -diovaqe.cf -diovaqe.gq -diovaqe.ml -diovaqe.tk -dioxv.us -dipak-bhadra.com -dipalmadental.com -dipath.com -dipes.com -diphtherotoxin.info -diplo.cd -diplom-voronesh.ru -diploma-of-human-resource-management.com -diplomadviser.info -diplomnaya-jakutsk.ru -diplomnaya-rabota.com -diplomvirkutske.ru -diplyp.com -dipoelast.ru -dipontio.cf -dipontio.ga -dipontio.gq -dipontio.ml -dipontio.tk -dipremp.ru -dipsdhilwan.com -dipshitz.net -diputadobeltrones.com -dipworld.ru -diq0wq.info -diqalaciga.warszawa.pl -dir43.org -dira.fun -diral.ru -dirane.website -dircuti.ga -dircuti.gq -dircuti.ml -dircuti.tk -direct-mail.info -direct-mail.top -direct.ditchly.com -directdepositviaach.com -directhatch.com -directjacuzzi.space -directmail.top -directmail24.net -directmessenger.app -directmonitor.nl -directoryblog.info -directoryofbooks.site -directpaymentviaach.com -directphp.com -directpmail.info -directproductinvesting.com -directsea.icu -directtoguest.com -directworldusa.com -direktorysubcep.com -direness.com -diretrizecese.org -direugg.cc -dirgapoker.com -dirkandarrow.com -dirkdigler.online -dirlend.xyz -diromail29.biz -dirtbikebits.com -dirtdrooperver.ru -dirtmail.ga -dirtremoval.ca -dirtsportklop.ru -dirty.gr -dirtybeg.press -dirtycam.tech -dirtydicksrub.com -dirtyloos.fun -dirtymailer.cf -dirtymailer.ga -dirtymailer.gq -dirtymailer.ml -dirtymailer.tk -dirtymax.com -dirtyoffset.com -dirtypetrol.com -dirtyplai.email -dirtyplain.email -dirtysex.top -dirtysli.email -dirtyslice.email -dirtyvagu.icu -dis59cikygm5j3k.xyz -disabilitylawatlanta.com -disabilitylawyersatlanta.com -disabledgamer.com -disadapt.org -disapprover.best -disaq.com -disardan.xyz -disaricikmamlazim.tk -disario.info -disastermare.com -disasterserviceleads.com -disavow.social -disbox.net -disbox.org -discach90dfm.ru -discar.club -discard-email.cf -discard.cf -discard.email -discard.ga -discard.gq -discard.ml -discard.tk -discardemail.cf -discardemail.ga -discardmail.cf -discardmail.com -discardmail.de -discardmail.ml -discardmail.tk -discbrand.com -discdots.com -discfoo.com -dischannel.hk -discjumsa.tk -disckracuvna.cf -disclasuc.cf -disclasuc.ga -disclasuc.gq -disclasuc.ml -disclasuc.tk -discmarpe.cf -discmarpe.gq -discmarpe.ml -discmarpe.tk -discobolus.site -discofan.com -discolo.red -disconorma.pl -discopied.com -discoplus.ca -discord.ml -discordapp.app -discordbotlijst.space -discordbotlist.xyz -discordbots.ovh -discordguide.xyz -discordmail.com -discordreviews.org -discos4.com -discosubjectfixed.site -discount-medical-books.com -discount-stock-factory.ru -discount-undersell-wow.space -discountappledeals.com -discountblade.com -discountbuyreviews.org -discountcasino15.com -discountcasino23.com -discountcasino24.com -discountchargeback.com -discountcouponcodes2013.com -discountdealsohio.com -discounted-glasses.com -discounted-store.com -discountgaslantern.com -discountholidaysadvice.com -discountmall.site -discountmanager.ru -discountmilitarystore.com -discountnikejerseysonline.com -discountoakleysunglassesokvip.com -discounts5.com -discountscrubsuniforms.com -discountsmbtshoes.com -discountsplace.info -discounttoyotaparts.com -discountwinkscrubs.com -discountz.uno -discoveraviationcenter.net -discovercheats.com -discovermanuals.com -discovermystrengthsnow.com -discoverportugaltravel.site -discoverproblems.com -discoverwatch.com -discoverylanguages.com -discoveryparksofamerica.net -discovino.com -discreet-retreats.com -discreet-romance.com -discreetfuck.top -discreetvpn.com -discretevtd.com -discslot.com -discspace.com -disctase.cf -disctase.ga -disctase.gq -disctase.ml -disctase.tk -discus24.de -discusprog.com -discussads.com -discussion.website -discussmusic.ru -diseasetrackers.net -disenfects.com -diseni.info -disfkeenews.cf -disfkeenews.ga -disfkeenews.gq -disfkeenews.ml -disfrazables.net -disfrut.es -dish-tvsatellite.com -dishmiss.com -dishscience.com -dishtvpackage.com -dishwashers-list.space -disign-concept.eu -disign-revelation.com -disignblog.ru -disillo.cf -disillo.ga -disillo.ml -disillo.tk -disincniua.online -diskilandcruiser.ru -diskio.tech -diskobmizik.net -diskslot.com -dislike.cf -disneka.info -disnessta.ga -disnessta.gq -disnessta.ml -disnessta.tk -disney.cd -disneyfox.cf -disneykinderfietsen.online -disneyparkbench.site -disneystudioawards.com -dispatchers.top -dispatcherscourse.com -dispatchsolutions.club -displaying.page -displaylightbox.com -displays2go.com -displaystar.com -displayverse.com -dispmailproject.info -dispo.in -dispomail.eu -dispomail.win -dispomail.xyz -disporthcoc.cf -disporthcoc.ml -disporthcoc.tk -disposable-e.ml -disposable-email.ml -disposable-mail.com -disposable.al-sudani.com -disposable.cf -disposable.dhc-app.com -disposable.ga -disposable.ml -disposable.nogonad.nl -disposable.site -disposableaddress.com -disposableemail.org -disposableemailaddresses.com -disposableemailaddresses.emailmiser.com -disposableinbox.com -disposablemail.space -disposablemail.top -disposablemails.com -dispose.it -disposeamail.com -disposemail.com -disposicaosaudavel.com -dispostable.com -dispotomen.tk -disppropli.cf -disppropli.ga -disppropli.gq -disppropli.tk -disputespecialists.com -disquieted.best -disrawhen.cf -disrawhen.ga -disrawhen.gq -disrupting.tech -dissertatsija.ru -dissonance.app -dissonant-tech.com -distainess.cf -distainess.gq -distainess.ml -distainess.tk -distancerei.email -distant-info.ru -distant-mind.com -distanzechilometriche.org -distdurchbrumi.xyz -disterubebdfsd.xyz -distnewskhal.cf -distnewskhal.gq -distnewskhal.ml -distnewskhal.tk -distorylty.host -distplo.cc -distrackbos.com -distrelec-noroeste.com -distressed.club -distribuidorafloral.com -distributed.us -distributorphuceng.online -distrify.net -distrow.info -distrowstore.com -disusedtube.com -diswino.ga -diswino.gq -diswino.ml -ditac.site -ditchpa.press -ditchpr.icu -ditchtaste.recipes -ditigal-brand.com -ditills.ru -ditinggal.online -ditsantjob.com -dituiwang.club -diu.best -diujungsenja.online -diutiurnal.site -diuz.com -diva.live -divad.ga -divalith.ru -divamodelslive.com -divan-matras.info -divan-stroy.ru -divaphone.com -divaphone.net -divasantiques.com -divchata.ru -divcot.ru -diveaboardtheconception.com -diveandseek.com -diveexpeditions.com -divelogconception.com -divemasterconception.com -divermail.com -diversaoemcasa.site -diversaoemcasa.website -diverseness.ru -diversify.us -diversitycheckup.com -diversitygaming.online -diverslogconception.com -divertidoemcasa.site -divestfromthebanks.org -divestops.com -divfree.com -divfree.net -divfree.org -divideandconquerdesigns.com -dividendxk.com -dividerecords.com -divinecakestudio.com -divinecaketoppers.com -divinehealthcenter.info -divinekine.com -divinerecords.com -divingnippe.com -divinois.com -divisets.com -divisionzerocup.com -divismail.ru -diviwoolayouts.com -divorcelawyersguide.xyz -divorcenapa.com -divorsing.ru -divrsicon.com -divrush.com -divtz1.us -diwan.store -diwangkx.com -diwanieh.org -diwanx.com -diwaq.com -diwenyq.com -diwudao.com -dixect.org -dixonpilotshop.com -diy-seol.net -diyadeja.site -diyarbakir-nakliyat.xyz -diyarbakirengelliler.xyz -diyarbakirhaberler.xyz -diyarbakirisitmemerkezi.xyz -diyarbakirkiralikaraba.com -diyarbakirlilardernegi.xyz -diyarbakirtmgd.xyz -diybookmarks.com -diyfilms.com -diyfurnituremakeovers.net -diygardeningtips.shop -diyhomedecorz.me -diyixs.xyz -diymail.cf -diymarketing.academy -diymarketinguniversity.com -diyombrehair.com -diypostconpi.ml -diytaxes.com -diywithpaul.com -diz-store.online -dizain-gox.ru -dizibb.org -dizibox.mobi -dizifenomeny.xyz -diziizle.tube -dizinmarket.online -dizinmarket.xyz -dizz.website -dj5882.com -dj9887.com -djan.de -djazmis.best -djdfkwro182-privdfejt.host -djdnq.online -djdwzaty3tok.cf -djdwzaty3tok.ga -djdwzaty3tok.gq -djdwzaty3tok.ml -djdwzaty3tok.tk -djeada.live -djemail.net -djembassy.ru -djennam.xyz -djerseys.com -djhy888.com -djigurdagox.online -djj82.com -djmag.digital -djmftaggb.pl -djmiamisteve.com -djnkkout.tk -djondemand.com -djqueue.com -djrh.email -djrobbo.net -djrqta.com -djsfw.com -djsys.xyz -djubya.us -djuncan-shop.online -djuncan-shop.space -djuncan.space -djxky.com -djyoli.us -djzqswix.shop -dk-osaka.ru -dk-volgodon.ru -dk0aip.us -dk3vokzvucxolit.cf -dk3vokzvucxolit.ga -dk3vokzvucxolit.gq -dk3vokzvucxolit.ml -dk3vokzvucxolit.tk -dkbmpm.fun -dkbmsc.fun -dkcfineart.com -dkdmsq.fun -dkdmxy.fun -dkert2mdi7sainoz.cf -dkert2mdi7sainoz.ga -dkert2mdi7sainoz.gq -dkert2mdi7sainoz.ml -dkert2mdi7sainoz.tk -dkfgnjfd.xyz -dkfmrt.fun -dkgmkc.fun -dkgmkp.fun -dkgmzt.fun -dkgram.com -dkhhf.club -dkhmyd.fun -dkids.xyz -dkinodrom20133.cx.cc -dkjmkc.fun -dkjmks.fun -dkjmtc.fun -dkjmxh.fun -dkkffmail.com -dkkmjq.fun -dkkmjz.fun -dkljdf.eu -dkljfkbvdf4.club -dklmln.fun -dklmmd.fun -dkmont.dk -dknmhq.fun -dknmjw.fun -dknmpy.fun -dko.kr -dkpkepri.info -dkpnpmfo2ep4z6gl.cf -dkpnpmfo2ep4z6gl.ga -dkpnpmfo2ep4z6gl.gq -dkpnpmfo2ep4z6gl.ml -dkpnpmfo2ep4z6gl.tk -dkqhx.xyz -dkqqpccgp.pl -dks97.space -dksmnm.fun -dksureveggie.com -dkt1.com -dkt24.de -dkthervr.shop -dktmnb.fun -dkuinjlst.shop -dkymjf.fun -dkywquw.pl -dl-thegedsection.com -dl0hcr.com -dl163.com -dl5oc2.info -dl812pqedqw.cf -dl812pqedqw.ga -dl812pqedqw.gq -dl812pqedqw.ml -dl812pqedqw.tk -dl9227.com -dl9827.com -dldbpj.icu -dldmg.com -dle.funerate.xyz -dlemail.ru -dlesha.ru -dlexpert.com -dlfiles.ru -dlfree.net -dlhaiteng.com -dliiv71z1.mil.pl -dlink.cf -dlink.gq -dlinlyga.ga -dlinlyga.gq -dlinlyga.ml -dlinlyga.tk -dlipb2.com -dlj6pdw4fjvi.cf -dlj6pdw4fjvi.ga -dlj6pdw4fjvi.gq -dlj6pdw4fjvi.ml -dlj6pdw4fjvi.tk -dljzuqnx.com -dlkwbs.icu -dll-ne-nayden.ru -dll32.ru -dllonhquan.com -dllpiper.com -dllyjamalk.com -dlman.site -dlmkme.ga -dlmkme.ml -dload.fun -dload.site -dlovew.xyz -dlpfbyy.com -dlpt7ksggv.cf -dlpt7ksggv.ga -dlpt7ksggv.gq -dlpt7ksggv.ml -dlpt7ksggv.tk -dls-ecme.com -dlserial.site -dlservermods.xyz -dltjitu.net -dltz.net -dluxuriousvehicles.com -dlwatch.ru -dlwdudtwlt557.ga -dlxglamour.com -dlyasnoff.ru -dlyavasfrend.ru -dlyemail.com -dlyludeey.ru -dlympics.com -dlzltyfsg.pl -dm-project.ru -dm3zv0.online -dm7xse.us -dm9bqwkt9i2adyev.ga -dm9bqwkt9i2adyev.ml -dm9bqwkt9i2adyev.tk -dma.in-ulm.de -dma2x7s5w96nw5soo.cf -dma2x7s5w96nw5soo.ga -dma2x7s5w96nw5soo.gq -dma2x7s5w96nw5soo.ml -dma2x7s5w96nw5soo.tk -dmackag.com -dmail.kyty.net -dmail.unrivaledtechnologies.com -dmail1.net -dmaildd.com -dmailpro.net -dmailx.com -dmailz.tech -dmaji.ddns.net -dmaji.ml -dmarc.ro -dmarksagency.com -dmarshallmarketing.com -dmaster39.ru -dmc-12.cf -dmc-12.ga -dmc-12.gq -dmc-12.ml -dmc-12.tk -dmc4u.tk -dmcchampion.site -dmcd.ctu.edu.gr -dmcforex.com -dmcgames.store -dmcqcnzq.shop -dmdea.com -dmedicals.com -dmeproject.com -dmetzh.us -dmfjrgl.turystyka.pl -dmfm7b.site -dmftfc.com -dmg-consulting.org -dmg222333.com -dmg55555.com -dmg5566.com -dmg9.com -dmglj.com -dmhy.moe -dmihit1myc.cf -dmihitmyc.cf -dmirekt.ru -dmireswordeuropespitoldage.me -dmitemtikog.gq -dmitext.net -dmitrysushenkov.ru -dmkt.studio -dmkyb.live -dmm-corifp.online -dmmhosting.co.uk -dmnservtrcksrvr.xyz -dmnwnkanj.shop -dmo3.club -dmodels.site -dmoffers.co -dmosi.com -dmslovakiat.com -dmt-project.com -dmtc.edu.pl -dmtqrnqrb.shop -dmtu.ctu.edu.gr -dmuxgi.icu -dmv911.com -dmwiki.com -dmwr.email -dmxs8.com -dmzj.moe -dmzyhe.xyz -dn293633.xyz -dn5eoc.us -dn98n.buzz -dna.holiday -dnabdsns.icu -dnabgwev.pl -dnaglobalpartners.site -dnagoldcrypto.com -dnaindebouw.com -dnaradiuscap.website -dnatechgroup.com -dnatestingaidforyou.live -dnatestingaidsforyou.com -dnatestingaidsforyou.live -dnatestingforyou.live -dnatestingsforyou.live -dnawr.com -dncjdh665.com -dnd.simplus.com.br -dnd5echaractersheet.website -dndbs.net -dndcak.us -dndent.com -dndiprlondon.com -dndl.site -dndoqi.tokyo -dndpoker.xyz -dnek.com -dnestrauto.com -dnhddoszz.shop -dnkpc.com -dnld.fun -dnld.online -dnld.site -dnlds.site -dnocoin.com -dnplayer.com -dnqq6.us -dns-cloud.net -dns-privacy.com -dns123.org -dns4urpns.com -dns889.com -dns9227.com -dns9827.com -dns9837.com -dnsabr.com -dnsbridge.com -dnsdeer.com -dnses.ro -dnsguard.net -dnsxdns.com -dnsxdns.net -dnt-domain-test.com -dnw1wp.us -dnwplatform.asia -dnzhb.com -do-be-french-cars-ok.live -do-creditcardnofeecas-ok.live -do-in-dental-implant-ok.live -do-in-luxury-suvs-ok.live -do-intl-austin-real-estate-ok.live -do-intl-austin-real-estates-ok.live -do-steel.com -doa-game.com -doabedbugremovalok.live -doameyux.com -doanart.com -doanlp.com -doatre.com -doawildthing.com -dob.jp -dobaoholaodong.net -dobedbugremovalok.live -dobidding.net -dobitocudeponta.com -dobleveta.com -doblyat.site -dobor-pozyczek.info -dobord.land -dobrabet56.com -dobrabet58.com -dobrabet59.com -dobrainspiracja.pl -dobramama.pl -dobrapoczta.com -dobraya-italia.ru -dobrodeyarf.ru -dobrodomik.com -dobroholod.ru -dobroinatura.pl -dobry-procent-lokaty.com.pl -dobrychvirta.ru -dobryesovety.ru -dobrytata.pl -dobywe.info -doc-jukebox.info -doc-mail.net -doc1.xyz -doc2pdftool.com -doc5.xyz -doc6.xyz -doc8.xyz -docasnyemail.cz -docasnymail.cz -docb.site -docconnect.com -doceke.ru -docent.ml -docesgourmetlucrativo.com -docib.us -docinsider.com -dock.city -dock.direct -docker-news.com -docker-news.org -dockerpeer.com -dockhaus.com -dockwa.net -docmail.com -docmail.cz -docmana.ga -docmana.gq -docmana.tk -docordbloodbankhelpok.live -docordbloodbankhelpsok.live -docs.coms.hk -docsandtv.com -doctgifma.cf -doctgifma.ga -doctgifma.gq -doctgifma.tk -doctor-orvi.ru -doctor-slim.ru -doctor.holiday -doctoralaurasanchez.com -doctorbarron.com -doctorbgarlictea.site -doctorbranding.co -doctordiamondclub.com -doctordieu.xyz -doctorfitness.net -doctorgarter.ru -doctorlane.info -doctormcknight.com -doctormed-secret.site -doctornewsnetwork.com -doctornilangi.com -doctornilangi.net -doctorsimsoffice.com -doctorsmb.info -doctorspopper.com -doctorz.app -doctovc.com -doctruyemoi.com -doctxyle.cf -doctxyle.gq -doctxyle.ml -doctxyle.tk -docu.me -documentingyellowstone.com -documentlegalisation.net -documentstorage4.com -docv.site -docx-expert.online -docx.site -dodachachayo.com -doddleandco.ru -dodeltas.info -dodge-challenger.club -dodge-india.club -dodge-ram.club -dodgeit.com -dodgemail.de -dodgit.com -dodgit.org -dodgitti.com -dodnitues.gr -dodogame88.info -dodogame88.org -dodongdaibai.info -dodorito.ru -dodsi.com -dodugix.online -dodungjapan.com -doetsreizen.net -dofile.pl -dofree4k.com -dofuskamasgenerateurz.fr -dofutlook.com -dog-n-cats-shelter.ru -dog.coino.pl -dogalisec.com -dogberries.ru -dogcagesshop.life -dogcastmedia.com -dogcrate01.com -dogdaydevelopers.com -dogelux.ir -dogemoon.club -dogestake.site -dogfishmail.com -doggamenew.ru -doggy-lovers-email.bid -doggyloversemail.bid -doghairprotector.com -dogiloveniggababydoll.com -doglisteneroftheeast.com -dognewsshow.com -dogobet109.com -dogobet110.com -dogodesignandart.com -dogood.news -dogpoop.app -dogrkd.site -dogs-blog.ru -dogs-city.ru -dogsandus.guru -dogsdo.com -dogsines.ga -dogsines.ml -dogsines.tk -dogsportshop.de -dogstarclothing.com -dogsupplies4sale.com -dogtrainersnewjersey.com -dogtrainingobedienceschool.com -dogtravelreviews.net -dogwood.website -dogwoozxog.space -dogzoa.shop -dohalatharin.host -dohangdaquan.xyz -dohmail.info -dohodi.info -doibaietisiofatafoxy.com -doiea.com -doierk.club -doimain309842h1.com -doimatch.com -doimmn.com -doinformowani.online -doinformowani.site -doinicioaolucro.com -dointo.com -doipor.site -doiposle28.ru -doitagile.com -doitnao.com -dok4.ru -dokaker.xyz -dokast.xyz -dokifriends.info -dokisaweer.cz.cc -dokist.net -dokist.org -doknews.ru -dokterns.info -doktor-div.ru -doktordiv.ru -doktoremail.eu -dokumakonserbileklik.com -dokuzbilisim.com -dolcher.ru -dolequ.com -dolina2018.ru -dolinak.ru -dollar-plus.ru -dollargiftcards.com -dollargoback.com -dollars4homes.com -dollartreeseeds.com -dollarzone.ru -dolldrooperver.ru -dollingrel.gq -dollingrel.ml -dollpolemicdraw.website -dollpop.com -dollscountry.ru -dollsshop.live -dollxbetpinup.ru -dolmentor.com -dolnaa.asia -dolorehouse.co -doloresantander.org -dolorihouse.co -dolphiding.icu -dolphincityrecords.com -dolphinhost.space -dolphinmail.org -dolphinnet.net -doludunya.xyz -dolunitra.cf -dom-cleverland.ru -dom-drakona.club -dom-drakona.ru -dom-mo.ru -dom-okna.com -dom855.live -doma-sad.ru -domafisha.ru -domain-99k.com -domain1dolar.com -domainables.biz -domainabuser.com -domainaing.cf -domainaing.ga -domainaing.gq -domainaing.ml -domainaing.tk -domaincatisi.com -domaindan.com -domaindomain5.com -domaindoug.com -domainegorn.com -domainhacked.com -domainhacking.com -domainleak.com -domainlease.xyz -domainnamemobile.com -domainnameoffice.com -domainploxkty.com -domainresellerinindia.com -domainscan.ro -domainseoforum.com -domainwizard.win -domajabro.ga -domamulet.ru -domapress.ru -domast.ru -domavnegoroda.ru -dombio.ru -dombrugova.ru -domby.ru -domdomsanaltam.com -dome-camp.ru -domeek.ru -domeerer.com -domen-treker.space -domeninfo.info -domenkaa.com -domenvds135.ru -domerdi.cf -domerdi.ga -domerdi.gq -domerdi.ml -domerdi.tk -domforfb1.tk -domforfb18.tk -domforfb19.tk -domforfb2.tk -domforfb23.tk -domforfb27.tk -domforfb29.tk -domforfb3.tk -domforfb4.tk -domforfb5.tk -domforfb6.tk -domforfb7.tk -domforfb8.tk -domforfb9.tk -domi855.live -domiansoch.ru -domiclips.com -domien.ru -domil.xyz -dominatingg.top -dominationozuwari.club -dominatome.com -dominguesweb.net -dominicanreload.com -dominikan-nedv.ru -dominionbotarena.com -dominivohw.ru -domino777.pro -domino789.com -domino789.info -domino789.net -dominoasli.website -dominoemas.org -dominoitu.com -dominoqq855.com -dominoqq855.live -dominototo.com -dominuzxpe.space -domiokna.ru -domitai.net -domitai.org -domklimat.info -dommebeli-vyksa.ru -dommebeli.ru -domnster.site -domodedovo-beton-zavod.ru -domorewhlrv.com -domorewithheartlandrv.com -domostroy18.ru -domozmail.com -dompetpt.com -domremonta-nv.ru -domru.online -domshops.site -domsoffer.xyz -domstroitell.ru -domstroytv.ru -domtecnologi.ru -domusasset.net -domwahlwin.cf -domwahlwin.gq -domwahlwin.ml -domy-balik.pl -domy.me -domywokolicy.com.pl -domywokolicy.pl -domyz-drewna.pl -don-m.online -donadero.com -donagoyas.info -donaldduckmall.com -donaldmcgavran.org -donaldvandrewsscholarship.org -donat.club -donate-car-to-charity.net -donatedollar.com -donateforstudies.org -donatex.cafe -donateyourfavorite.com -donationkat.com -donations.com -donbas.in -donboz.ru -dondiegosrestaurant.com -dondom.ru -doneck24.ru -donemail.ru -donevest.ru -donew.fun -donew.host -donew.space -donew.website -donewithacne.com -dongen.info -dongeng.site -dongfangzx.com -donghogiare.org -dongisi.ga -dongisi.gq -dongisi.tk -dongphuc.site -dongphucaokhoac.net -dongphucaophong.org -dongphucbongda.net -dongphuchocsinh.org -dongphucnhahang.net -dongphucnhom.net -dongphucsomi.com -dongqing365.com -dongru.top -dongrup.com -dongyoubaohujh.xyz -doni42.com -donikolupr.cf -donkers.icu -donkey-out.xyz -donkey.com -donlg.top -donmail.mooo.com -donmaill.com -donn6.xyz -donnaappell.com -donnlasher.com -donnyandmarietour.com -donnyboypony.com -donnybrook-fair-d4.com -donnystiefel.com -donoboz.ru -donor-penza.ru -donorfr.xyz -donorfro.xyz -donorguid.site -donorthcoworking.org -donortigh.us -donorto.icu -donorwide.xyz -donot-reply.com -donotconvert.com -donotpetme.com -dons.com -donsalvatorepalmademallorca.com -donskayasoch.ru -dontblameyourears.com -dontcallmeanartist.com -dontgocuba.com -dontmesswithmypet.org -dontrackme.com -dontreg.com -dontrushhub.info -dontsendmespam.de -donutkidsclub.hk -dony24.shop -dooboop.com -doodlepop.ru -doodooexpress.com -dooel.info -dooglecn.com -doohee.email -dooi.email -doolanlawoffice.com -doom-metal.cd -doom.com.pl -doom898.xyz -doomein.com -doommail.com -doomsdayapocalypse.com -doomsdayprep.org -doonung2u.com -doonungonlinefree.com -doorandwindowrepairs.com -doorbloq.biz -doorbloq.com -doorgifted.com -doorlocker.shop -doorprice.icu -doorsteploansfast24h7.co.uk -doory.sk -doospage.host -doostanmobl.com -dopabiotics.com -dopepedalers.com -dopestkicks.ru -dophs.stream -dopisivanje.in.rs -dopp.me -doppelgengler.com -dopsy.ru -doquier.tk -dor4.ru -dorablabsoomatic.com -dorada.ga -doradztwo-pracy.com -doranscale.com -dorcasinofeet.ru -dorelliphotographie.com -doriane.website -dorivaimoveis.site -dorjq.buzz -dorkalicious.co.uk -dormokis.cf -dormokis.ga -dormokis.ml -dormokis.tk -dormontazh.ru -dorne.ml -dorneycourt.com -doroobo-bet.ru -dorotheastuart.com -dorrkupong.com -dorrkupongen.com -dorywalski.pl -dosait.ru -doscobal.com -dosirakm.com -dosmallishthings.com -dostatniapraca.pl -dostavim1.xyz -dostavimpokazani.ru -dostavka-24-7.ru -dostavka-avito.site -dostavkakazani.ru -dostavkapokazani.ru -dostavkapoz.ru -dostupnaya-ipoteka.ru -dosug-kolomna.ru -dosug-nevinnomyssk.ru -dosugryazan1.com -dosusra.cf -dosusra.ga -dosusra.gq -dosusra.ml -dosusra.tk -dot-coin.com -dot-mail.top -dot-ml.ml -dot-ml.tk -dota-leader.fun -dota2-bets1.com -dota2-bets2.com -dota2-tapedjtape.info -dota2bets.net -dota2bettingsites.com -dota2betz3.com -dotabet105.com -dotabet107.com -dotabet109.com -dotabet110.com -dotabet112.com -dotabet113.com -dotabet114.com -dotabet115.com -dotabet116.com -dotabet117.com -dotabet118.com -dotabet119.com -dotabet120.com -dotabet123.com -dotabet126.com -dotabet127.com -dotabet128.com -dotabet129.com -dotabet130.com -dotabet131.com -dotabet132.com -dotabet134.com -dotabet136.com -dotabet137.com -dotabet138.com -dotabet140.com -dotabet141.com -dotabet142.com -dotabet143.com -dotabet144.com -dotabet145.com -dotabet146.com -dotabet147.com -dotabet148.com -dotabet149.com -dotabet150.com -dotanews.ru -dotastat.ru -dotbit.one -dotcmscheck.xyz -dotcompliance.online -dotcrown.com -dotfixed.com -dothisforyourself.info -dotland.net -dotlethu.cf -dotlethu.gq -dotlethu.ml -dotlethu.tk -dotlvay3bkdlvlax2da.cf -dotlvay3bkdlvlax2da.ga -dotlvay3bkdlvlax2da.gq -dotlvay3bkdlvlax2da.ml -dotlvay3bkdlvlax2da.tk -dotmail.cf -dotman.de -dotmsg.com -dotnetnukeskins.net -dotph.website -dotproperty.asia -dots.market -dotslashrage.com -dotspe.info -dottyproducts.com -dottyprojects.com -doublebellybuster.com -doublecommas.com -doublemail.de -doublemoda.com -doublescanner.com -doubletale.com -doublewave.ru -doubleyourappointments.com -doubtfirethemusical.com -douchelounge.com -doudoune-ralphlauren.com -doudounecanadagoosesoldesfrance.com -doudouneemonclermagasinfr.com -doudounemoncledoudounefr.com -doudounemoncleenligne2012.com -doudounemoncler.com -doudounemonclerbouituque.com -doudounemonclerdoudounefemmepascher.com -doudounemonclerdoudounefrance.com -doudounemonclerdoudounespascher.com -doudounemonclerenlignepascherfra.com -doudounemonclerfemmefr.com -doudounemonclermagasinenfrance.com -doudounemonclerpascherfra.com -doudounemonclerrpaschera.com -doudounemonclerrpaschera1.com -doudounemonclersiteofficielfrance.com -doudounepaschermonclerpascher1.com -doudounesmonclerfemmepascherfrance.com -doudounesmonclerhommefr.com -doudounesmonclerrpascher.com -doudounmonclefrance.com -doudounmonclepascher1.com -doughblogger.com -doughmaine.xyz -doughnuts21.ru -doughty-australia.com -doughvestor.com -dougkrever.com -douglasnazareth.com -douithardt.xyz -doulabee.com -doulocracy.site -doumao993.com -dourdneis.gr -dourvhna.space -dousmakos.com -douyin888.xyz -dov86hacn9vxau.ga -dov86hacn9vxau.ml -dov86hacn9vxau.tk -dovequando.info -dovereducationlink.com -doverone.ru -dovizapi.xyz -dovqz6.host -dovusoyun.com -dowesync.com -dowlex.co.uk -dowloadplus.xyz -down888.club -downersgroveattorneys.com -downgentai.cf -downgentai.ga -downgentai.gq -downgentai.ml -downgentai.tk -downhillbillies.org -downlayer.com -download-master.net -download-software.biz -download-warez.com -downloadarea.net -downloadbaixarpdf.com -downloadbase.info -downloadclub.ru -downloadeguide.mywire.org -downloadfree.space -downloadmortgage.com -downloadmoviefilm.net -downloadplaystore.app -downloadplaystore.org -downloadsecurecloud.com -downloadthebook.site -downloadvideo.biz -downloadvideotiktok.net -downlowd.com -downportal.tk -downpoza.cf -downpoza.ga -downpoza.gq -downpoza.ml -downpoza.tk -downquibbledung.website -downsizingandestates.com -downsmail.bid -downtonabbeykitchen.com -downtownabilene.com -downtownairportlimo.com -downtownanchorage.com -downtownaurora.com -downtownbeaumont.com -downtowncalhoun.com -downtowncoldwater.com -downtownfremont.com -downtowngarland.com -downtownhomeboston.com -downtownisthe.place -downtownpoint.org -downtowntulsaoffice.com -dowohiho.ostrowiec.pl -dowsaajung.cf -dowsaajung.gq -dowsaajung.ml -dowsaajung.tk -doxamall.site -doxcity.net -doxeo.cloud -doxeo.global -doxeo.info -doxeo.live -doxeo.mobi -doxeo.net -doxeo.org -doxod-v-seti.ru -doxsale.top -doxy124.com -doxy77.com -doxycycline247.video -doy.kr -doyouneedrenovation.id -doyouneedrenovation.net -doyousonder.com -doyoutravel.net -doyuoutlets.site -dozarb.agency -dozarb.online -dozarb.org -dozarb.space -dozarb.store -dozarb.tech -dozen-spins1.ru -dozencommonaviationattrac.me -dozenspins-cas.ru -dozenspinsonline.ru -dozvon-spb.ru -dp76.com -dp84vl63fg.cf -dp84vl63fg.ga -dp84vl63fg.gq -dp84vl63fg.ml -dp84vl63fg.tk -dpanel.site -dpapa.ooo -dpasanhall.host -dpaydpal.shop -dpbbo5bdvmxnyznsnq.ga -dpbbo5bdvmxnyznsnq.ml -dpbbo5bdvmxnyznsnq.tk -dpcitz.com -dpcm.cf -dpcm.ga -dpcm.gq -dpcm.ml -dpdf.site -dpfbilling.com -dpgwzwy.site -dpics.fun -dplmek.ga -dpluse.net -dpm5g8.us -dpmchqfi.shop -dpmcinternational.com -dpmwybaff.shop -dpnf.us -dpnwoyov.shop -dpokesheat.cf -dpokesheat.ga -dpokesheat.gq -dpokesheat.ml -dpokesheat.tk -dport.fun -dport.site -dpp7q4941.pl -dpriders.com -dprinceton.edu -dprots.com -dps-sandpoint.com -dpsrs.org -dpttso8dag0.cf -dpttso8dag0.ga -dpttso8dag0.gq -dpttso8dag0.ml -dpttso8dag0.tk -dpwlvktkq.pl -dpworld.net -dpxqczknda.pl -dpzrzj.icu -dq4yvh.com -dqajb1.site -dqb9zj.info -dqchx.com -dqhs.site -dqkerui.com -dqkjt6.com -dqnwara.com -dqpw7gdmaux1u4t.cf -dqpw7gdmaux1u4t.ga -dqpw7gdmaux1u4t.gq -dqpw7gdmaux1u4t.ml -dqpw7gdmaux1u4t.tk -dqtpwv.us -dqw58.space -dr-hospitals.ru -dr-jieju.com -dr-mail.net -dr-nasir-alzahrani.org -dr-shopping.info -dr-sinan-goker.com -dr0m.ru -dr0pb0x.ga -dr5.xyz -dr69.site -dr7.xyz -dracaras.cf -dracaras.ga -dracaras.gq -dracaras.ml -dracaras.tk -dracc.me -draconites.xyz -draduationdresses.com -drafpalo.cf -drafpalo.ga -drafpalo.ml -drafpalo.tk -draftanimals.ru -draftfirs.icu -draftfosterfloat.site -drafthabi.xyz -draftsheetpro.com -drag1metal.ru -drag2upapp.com -dragaknee.com -dragao31.com -dragcok2.cf -dragcok2.gq -dragcok2.ml -dragcok2.tk -dragfalsbag.cf -dragfalsbag.ga -dragfalsbag.gq -dragfalsbag.ml -dragome.fun -dragon-palace-glanmire.com -dragon-pool.com -dragon-pool.net -dragonads.net -dragonballxenoversecrack.com -dragonboatchinese.com -dragoncapital.us -dragoncitydanang.com -dragonfly.africa -dragonflydanlier.com -dragonflyna.com -dragonflypure.com -dragonmanialegendshacks.website -dragonprana.com -dragons-spirit.org -dragonsborn.com -dragonslair.site -dragontigerseal-my.com -dragwave.us -drainage-birmingham.net -drainservices.com -drake.casino -drakeslansdowne.com -drakorfor.me -draktar.online -dralselahi.com -drama.tw -drama2tv.com -dramabt.com -dramashow.ru -dramatization758is.online -dramdesra.ga -dramdesra.gq -dramdesra.ml -dramdesra.tk -drameral.cf -drameral.gq -drameral.ml -drameral.tk -dramor.com -drangeladraughon.com -dranitajohnson.com -draperacupuncture.com -drar.de -draussenzuhause.me -draviero.info -drawify.art -drawing-new.ru -drawinginfo.ru -drawingmoose.com -drawingwithjeffrey.com -drawme.site -drawmeans.com -drawmedia.org -drawquest.net -drazen.dev -drbenson.net -drblog.com -drcanadasa.info -drcoppersmith.com -drcresseveurreed.com -drcuh.live -drcynthiah.com -drdeals.site -drdr.email -drdrb.com -drdrb.net -drdreheadphone.biz -drdreoutletstores.co.uk -dream417.xyz -dreamact.com -dreamaror.ga -dreamaror.gq -dreamaror.ml -dreambangla.com -dreambooker.ru -dreambuket.ru -dreamcapewebsites.com -dreamcatcher.email -dreamed776ll.online -dreamerbusinesssolutions.com -dreamersglobal.com -dreamfin.ru -dreamfishfoundation.org -dreamfortheworld.com -dreamfortuna.com -dreamgoods.biz -dreamhacker.xyz -dreamhomes4u.net -dreamhostcp.info -dreamingcleaning.com -dreamingoffoofighters.com -dreamingtrack.com -dreamleaguesoccer2016.gq -dreamlover.dating -dreamoz.info -dreampian.xyz -dreams-postely.ru -dreamsale.info -dreamsareforliving.com -dreamsat.ru -dreamscape.marketing -dreamscapemartech.com -dreamscapemobile.com -dreamscapeprogrammaticadvertising.com -dreamscapetraffic.com -dreamsindex.com -dreamsink.com -dreamsites.xyz -dreamstar1.com -dreamstosucceed.com -dreamswithhope.com -dreamvie.com -dreamvotes.com -dreamweddingplanning.com -dreamyfinance.ru -dreamyoursoulhome.com -drechsler.digital -dred.ru -dredwardgoldin.com -dreebies.com -dregvide.cf -dregvide.ga -dregvide.ml -dregvide.tk -drehstuhl.discount -dremixd.com -drempleo.com -drentfotografengroep.online -drepinym.cf -drepinym.ga -drepinym.ml -drepinym.tk -dreric-es.com -dress.cd -dress9x.com -dresscinderella.com -dresscomeon.online -dresselegant.net -dressesbubble.com -dressesbubble.net -dressescelebrity.net -dressesflower.com -dressesflower.net -dressesgrecian.com -dressesgrecian.net -dresseshappy.com -dresseshappy.net -dressesmodern.com -dressesmodern.net -dressesnoble.com -dressesnoble.net -dressesromantic.com -dressesromantic.net -dressesunusual.com -dressesunusual.net -dressfactories.com -dressfess.com -dressmail.com -dresspo.icu -dresssmall.com -dressswholesalestores.info -dressunawaretruth.website -dressupsummer.com -dressyouressence.com -dretety.ru -drevo.si -drevobrus.ru -drevorouz.ru -drewna24.pl -drewnianachata.com.pl -drewry.info -drexenterprises.com -dreylefilsdepute.cf -drf.email -drfarukerzengin.com -drfindia.com -drg.email -drgokhanakturk.com -drgpay.xyz -drgpayir.xyz -drgrinesdds.com -drharini.com -drharrymlohmeyer.info -drhassanidds.com -driade.website -driancorp.xyz -driankorp.com -dricca.com -drid1gs.com -driedflowertea.com -driems.org -driftcabo.com -driftcasino-in.ru -driftcasino.design -driftrig.xyz -driftsna.host -driftwr.icu -drigez.com -drill8ing.com -drillbitcrypto.info -drillbitcrypto.net -drillroad.ru -drimnaghtakeaway.com -drinala.com -drinkbride.com -drinkchaser.com -drinkcola.ga -drinkdrankdrunkdeck.com -drinkhealthywaters.biz -drinkingcoffee.info -drinkquot.xyz -drinktruvi.com -dripgit.app -dripovin.cf -dripovin.ga -dripovin.ml -dripovin.tk -drisc.org -drishvod.ru -dristypat.com -drive-v.com -drivecompanies.com -drivecruzenow.com -drivedisputeflood.site -driveguar.email -drivehublernissan.com -driveleave.email -drivelegalnowga.com -drivenbyjam.site -drivenyvss.space -drivepolitely.com -driverakademi.online -driverbooster-soft.ru -driverimprove.com -driversgood.ru -driverstorage-bokaxude.tk -drivesotp7.com -drivetagdev.com -drivewayrepairburbank.info -drivingcars.world -drivingjobsinindiana.com -drixmail.info -drizzers.life -drizzersturkiye.life -drjeffreygalvin.com -drjocept.com -drjoelangel.com -drjohnbodycombe.com -drkartinki.ru -drkenfreedmanblog.com -drkenfreedmanblog.xyz -drkenlaw.net -drkorpi.com -drlexus.com -drlucky.xyz -drmail.net -drmail.pw -drmaryannscaccia.com -drmohansdiabetes.net -drmohansdiabetes.org -drmonetas.info -drnatashafinlay.com -drobbase.xyz -drobosucks.info -drobosucks.net -drobosucks.org -drocun.net -drocun.org -drogistxxl.com -droid3.net -droidcloud.mobi -droide.ru -droidemail.projectmy.in -droider.name -droidmill.com -droits-de-revente.site -drolembu.cf -drolembu.gq -drolembu.ml -drolembu.tk -drolwestces.ga -drolwestces.gq -drolwestces.ml -drolzucby.cf -drolzucby.ga -drolzucby.gq -drolzucby.ml -drolzucby.tk -dromancehu.com -dron.mooo.com -drone-waiver.com -dronedeals.trade -dronehire.org -droneleaves.ru -dronemeuphigh.com -dronemini.rest -dronerealestatevideo.net -dronespot.net -dronesshop.futbol -dronesshop.live -dronolater.com -dronplace.info -dronstroi16.ru -dronuregemen.com -droolingfanboy.de -droomhuisje.com -drop-max.info -drop.ekholm.org -dropcake.de -dropclubamz.com -dropcode.ru -dropcramponpencil.ru -dropcramponpig.ru -dropd.ru -dropdetecter.com -drope.ml -dropfinerball.ru -dropfinercat.ru -dropfinerdirt.ru -dropfinerhat.ru -dropfinermeat.ru -dropfinermen.ru -dropfinerpig.ru -dropfinerriver.ru -dropfresh.net -dropjar.com -droplar.com -droplister.com -dropmail.cc -dropmail.cf -dropmail.ga -dropmail.gq -dropmail.me -dropmail.ml -dropmail.tk -dropmire.org -dropopttrends.site -droppingsize.com -dropshipbikinis.com -dropshipguitars.com -dropshipjackets.com -dropshiplego.com -dropshipping.bio -dropshipping.click -dropshipping.gratis -dropshippingrich.com -dropshipwallart.com -dropstart.site -droptechnologies.info -dropthespot.com -droptools.store -drorevsm.com -drottleworld.com -drovarouz.ru -droverpzq.com -drovharsubs.cf -drovharsubs.ga -drovharsubs.gq -drovharsubs.ml -drovharsubs.tk -drovi.cf -drovi.ga -drovi.gq -drovi.ml -drovi.tk -drovyanik.ru -drowcash.ru -drowdrow.ru -drowfast.ru -drowfox.ru -drowfraaaank.ru -drowizi.ru -drowlink.ru -drowlist.ru -droworne.cf -droworne.ga -droworne.ml -drowpin.ru -drowpups.ru -drowtitle.ru -drpangolin.com -drpphreviews.com -drrodos.info -drshope.website -drsiebelacademy.com -drsiriusa.info -drt8c.us -drtgaming.com -drthedf.org -drthst4wsw.tk -drublowjob20138.cx.cc -druckpatronenshop.de -druckwerk.info -drueckglueck.se -drugca.com -drugnorx.com -drugordr.com -drugsellr.com -drugvvokrug.ru -druhbeltsireland.com -drukair.ph -drukarniarecept.pl -drumimul.cf -drumimul.ga -drumimul.gq -drumimul.ml -drumimul.tk -druniskaa.ga -druniskaa.gq -druniskaa.ml -druniskaa.tk -drunix.site -drunkmunki.stream -drunolgret.cf -drunolgret.ga -drunolgret.gq -drunolgret.tk -drupaladdons.brainhard.net -drupalcamponline.net -drupalek.pl -drupaler.org -drupalmails.com -drupalnc.org -drushmake.org -drusigpren.cf -drusigpren.ga -drusigpren.gq -drusigpren.ml -drusigpren.tk -druz.cf -drvcognito.com -drvictorbellera.com.ve -drvideosreport.com -drvmohan.net -drwo.de -drwunderlich.com -drxdvdn.pl -drxepingcosmeticsurgery.com -dryfrosty.ru -drygulch.xyz -drylonganfruit.com -dryly962kt.online -drymop.us -drymops.biz -drymops.org -drymops.us -drymulov.cf -drymulov.ga -drymulov.ml -drynic.com -dryoneone.com -dryriverboys.com -drzibners.com -drzwi.edu -drzwi.turek.pl -ds-3.cf -ds-3.ga -ds-3.gq -ds-3.ml -ds-3.tk -ds24.media -ds8vmg-mail.xyz -dsad.de -dsaevents.com -dsafsa.ch -dsajdhjgbgf.info -dsapoponarfag.com -dsas.de -dsatpv.ru -dsatrack.ru -dscc.net -dsda.de -dsdadas.website -dsecurelyx.com -dsejfbh.com -dsepimis.ga -dsepimis.gq -dsepimis.ml -dserv.site -dsewas.online -dsfdeemail.com -dsfgasdewq.com -dsfgbb.com -dsfgdsgmail.com -dsfgdsgmail.net -dsfgerqwexx.com -dsfkasdmnre.space -dsgawerqw.com -dsgmsystems.com -dsgs.com -dsgvo.ru -dshidshe.shop -dshop.se -dshqughcoin9nazl.cf -dshqughcoin9nazl.ga -dshqughcoin9nazl.gq -dshqughcoin9nazl.ml -dshqughcoin9nazl.tk -dsiay.com -dsjoss.com -dskin.com -dskkolovrat.ru -dsleeping09.com -dslrclub.ru -dsng8742g85fwent83g485dsfn8245.com -dspmok.us -dspwebservices.com -dsresearchins.org -dsrkjj.us -dssvet.ru -dstchicago.com -dstefaniak.pl -dsvgfdsfss.tk -dsweetuni.info -dszg2aot8s3c.cf -dszg2aot8s3c.ga -dszg2aot8s3c.gq -dszg2aot8s3c.ml -dszg2aot8s3c.tk -dt2g5427.com -dt2p9.site -dt3456346734.ga -dt35428.com -dt8037.com -dtb.news -dtbgllc.com -dtbooks.site -dtby888.com -dtcleanertab.site -dtcuawg6h0fmilxbq.ml -dtcuawg6h0fmilxbq.tk -dtdh.xyz -dtdns.us -dte3fseuxm9bj4oz0n.cf -dte3fseuxm9bj4oz0n.ga -dte3fseuxm9bj4oz0n.gq -dte3fseuxm9bj4oz0n.ml -dte3fseuxm9bj4oz0n.tk -dteesud.com -dtfnow.fun -dtfx.buzz -dtfyes.site -dtgo.app -dthetepr.xyz -dthlxnt5qdshyikvly.cf -dthlxnt5qdshyikvly.ga -dthlxnt5qdshyikvly.gq -dthlxnt5qdshyikvly.ml -dthlxnt5qdshyikvly.tk -dtkrcs.us -dtkursk.ru -dtlabs.org -dtlx.us -dtmricambi.com -dtools.info -dtrendsolution.com -dtrspypkxaso.cf -dtrspypkxaso.ga -dtrspypkxaso.gq -dtrspypkxaso.ml -dtrspypkxaso.tk -dtspf8pbtlm4.cf -dtspf8pbtlm4.ga -dtspf8pbtlm4.gq -dtspf8pbtlm4.ml -dtspf8pbtlm4.tk -dttt9egmi7bveq58bi.cf -dttt9egmi7bveq58bi.ga -dttt9egmi7bveq58bi.gq -dttt9egmi7bveq58bi.ml -dttt9egmi7bveq58bi.tk -dtv42wlb76cgz.cf -dtv42wlb76cgz.ga -dtv42wlb76cgz.gq -dtv42wlb76cgz.ml -dtv42wlb76cgz.tk -dtv7600teyp.xyz -dtvcloud.net -dtwihk.us -dtyler.rocks -duacgel.info -dualajans.xyz -dualpouchunderwear.com -dualscreenplayer.com -duam.net -duanedegler.net -duanedegler.org -duanehar.pw -duanlaimiangalaxy.com -duanxian8.com -dubai22.com -dubai33.com -dubaicurrencyexchange.com -dubaiexperiment.com -dubaigifts.website -dubainaturalsoap.com -dubbunnies.com -dubee.xyz -dubidze.website -dubilowski.com -dubinbikepolo.com -dublin-kozharu.ru -dublinbirds.com -dubna.today -dubo.email -duboyangjiage.com -dubstepthis.com -dubzone.com -duck2.club -duckbao.com -duckcover.com -duckerfiveone.online -duckling.us -ducklingapp.com -ducklingapp.net -ducklingapp.us -ducklington.org -duckmail.cf -duckreliablecold.website -ducmaca.ga -ducmaca.tk -ducquan91.tk -ducquangialai.com -ducruet.it -ductdota.ga -ductdota.ml -ductdota.tk -ducttape.art -ducutuan.cn -ducvdante.pl -dudddede.cf -dudddede.ga -dudddede.gq -dudddede.tk -dudecloo.tk -dudetech.com -dudinkonstantin.ru -dudleymail.bid -dudmail.com -duffy.cd -dufu.site -duhocnhatban.org -dui-attorney-news.com -duivavlb.pl -duj25.space -dujgpddc.shop -dujuke.icu -duk33.com -dukatikas.tk -dukcasinosoda.ru -dukecitymedia.com -dukedish.com -dukesdeli.biz -dulapchiy.info -dulcefunfreakybabemia.com -dulei.ml -dullynwu.info -duluaqpunyateman.com -dulycoded.com -dumail.com -dumankayamodern.com -dumantv.com -dumbdroid.info -dumbledore.cf -dumbledore.ga -dumbledore.gq -dumbledore.ml -dumbrepublican.info -dumena.com -dumlipa.cf -dumlipa.ga -dumlipa.tk -dumlupinarteknokent.online -dumlupinarteknokent.xyz -dummie.com -dumoac.net -dump-email.info -dumpandjunk.com -dumpmail.de -dumprestaurantpressure.website -dumpsterfire.space -dumpsters-ks.com -dumpyemail.com -dun985.com -dunakeyandklattpc.com -duncancorp.usa.cc -duncanmassink.online -dundeerootcanals.com -dundeeusedcars.co.uk -dunderbookie.com -dundermifflin.site -dundersport.net -dundersportsbook.com -dundersportwetten.com -dundo.tk -dungeon-mini.com -dungzvip.best -duniacewek.net -duniawirosableng.com -duniyadeals.com -dunkathon.com -dunmauwel.ga -dunmauwel.gq -dunmauwel.ml -dunmauwel.tk -dunprx9u4gv1ji9.xyz -dunyacasino.bet -dunyacasino.net -duo-alta.com -duocaidou.xyz -duocpham.website -duocphamchinhhang.online -duodana.com -duodeka.academy -duodeo.xyz -duoduo.cafe -duogasm.club -duotravel.ru -dupaci.com -dupaemailk.com.uk -dupazsau2f.cf -dupazsau2f.ga -dupazsau2f.gq -dupazsau2f.ml -dupazsau2f.tk -duplipho.cf -duplipho.ga -duplipho.ml -duplipho.tk -dupontdevelopment.com -dupontmails.com -duqhkdg.site -duqofuo.ru -duracelliran.com -duran.life -durandinterstellar.com -durex-team.website -durexguy.com -durginelectricsolutions.com -durhamheroinrehab.com -durhamopiaterehab.com -duroroot.com -durosoft.net -durpdv.site -durttime.com -durukurdoglu.com -durwe.website -dusdegirmeni.com -duskmail.com -duskst.one -dusmvudq.tech -dusnedesigns.ml -dusterpickup.ru -dustfreetileremovalofflorida.org -dustinandsharon.com -dustinpitcher.com -dustinplains.buzz -dustreaming.host -dustreaming.info -dustreaming.live -dustreaming.pro -dustreaming.website -dustreaming.xyz -duta303.net -duta303.org -dutch-central.online -dutchcabinhouses.com -dutchconnie.com -dutchdevs.com -dutchfemales.info -dutchmail.com -dutchmeadows.com -dutchpoldering.org -dutchselected.online -dutchvinyl.com -dutco.org -duthuyenhoanglong.com -dutiesu0.com -dutybux.info -duukies-beachsocks.ru -duvaoutlet.site -duvazu.com -duvmont.com -duwy.site -duxberg.net -duximall.site -duybuy.com -duzceekran.xyz -duzcefenlisesi.xyz -duzcevitrin.xyz -duzybillboard.pl -dv24.store -dv6w2z28obi.pl -dvakansiisochi20139.cx.cc -dvd.dns-cloud.net -dvd.dnsabr.com -dvd315.xyz -dvdallnews.com -dvdcloset.net -dvdexperts.info -dvdjapanesehome.com -dvdkrnbooling.com -dvdnewshome.com -dvdnewsonline.com -dvdrezensionen.com -dvds.cd -dvdsetsale.biz -dvdxpress.biz -dvej3i.us -dveri-okna-vorota.ru -dveri5.ru -dverikupit96.ru -dverishpon.ru -dvery35.ru -dvfdsigni.com -dvi-hdmi.net -dvigatelsaita.ru -dvin4u.com -dviuvbmda.pl -dvlotterygreencard.com -dvmap.ru -dvojnayradost.ru -dvrupdates.com -dvs18.ru -dvsdg34t6ewt.ga -dvspitfuh434.cf -dvspitfuh434.ga -dvspitfuh434.gq -dvspitfuh434.ml -dvspitfuh434.tk -dvsplus18.ru -dvstolyarchuk.ru -dvsusa.ru -dvtr4i.us -dvvxwaub.shop -dvx.dnsabr.com -dvyqnf.us -dvzmd.zapto.org -dw.now.im -dw2fmp.us -dw8u7.buzz -dwa.wiadomosc.pisz.pl -dwang8.org -dwango.cf -dwango.ga -dwango.gq -dwango.ml -dwango.tk -dwboya.org -dwdpoisk.info -dweezlemail.crabdance.com -dweldimang.cf -dweldimang.ga -dweldimang.gq -dweldimang.ml -dweldimang.tk -dwfguqpsf.ga -dwikuyz.com -dwipalinggantengyanglainlewat.cf -dwipalinggantengyanglainlewat.ga -dwipalinggantengyanglainlewat.gq -dwipalinggantengyanglainlewat.ml -dwipalinggantengyanglainlewat.tk -dwj455.com -dwj773.com -dwj774.com -dwj775.com -dwj855.com -dwj883.com -dwj884.com -dwj886.com -dwj955.com -dwj990.com -dwj992.com -dwj993.com -dwj994.com -dwjbtr0403bzri7.xyz -dwn2ubltpov.cf -dwn2ubltpov.ga -dwn2ubltpov.gq -dwn2ubltpov.ml -dwn2ubltpov.tk -dwqmgi.rest -dwqsrp.info -dwse.edu.pl -dwsfhe.us -dwsongs.net -dwswd8ufd2tfscu.cf -dwswd8ufd2tfscu.ga -dwswd8ufd2tfscu.gq -dwswd8ufd2tfscu.ml -dwswd8ufd2tfscu.tk -dwsywm.us -dwt-damenwaeschetraeger.org -dwukwiat4.pl -dwukwiat5.pl -dwukwiat6.pl -dwutuemzudvcb.cf -dwutuemzudvcb.ga -dwutuemzudvcb.gq -dwutuemzudvcb.ml -dwutuemzudvcb.tk -dwwen.com -dwxfle.us -dwyj.com -dx.abuser.eu -dx.allowed.org -dx.awiki.org -dx.ez.lv -dx.sly.io -dx01.space -dx03.space -dx05.space -dx08.space -dx10.space -dx11.space -dx17.space -dx6600.com -dx8804.com -dx8805.com -dx8808.com -dx8809.com -dx8tkk.com -dxdblog.com -dxitv.com -dxk6tw.com -dxlenterprises.net -dxmk148pvn.cf -dxmk148pvn.ga -dxmk148pvn.gq -dxmk148pvn.ml -dxmk148pvn.tk -dxulg.live -dy138t.com -dy138t.net -dy187.info -dy190.info -dy191.info -dy3033.com -dy7fpcmwck.cf -dy7fpcmwck.ga -dy7fpcmwck.gq -dy7fpcmwck.ml -dy7fpcmwck.tk -dyajer-alaod.com -dyca4d.us -dyceroprojects.com -dyerif.com -dyfealu.cf -dyfealu.ga -dyfealu.gq -dyfealu.ml -dyfealu.tk -dyfxosaj.shop -dyggo.com -dygr9y.host -dyinglanguage.com -dyinglanguage.net -dyj333.app -dyjfp0.us -dykcj4.info -dylanharris.buzz -dylans.email -dylansummers.buzz -dylib.dev -dymnawynos.pl -dymuitmwq.shop -dynabird.com -dynafuze-malenow.com -dynafuzemaletoday.com -dynafuzeproductsnow.com -dynainbox.com -dynamic-semantics.com -dynamicdiet.com -dynamicdietplan.com -dynamicsmoneynews.com -dynamiteendurance.coach -dynamitetype.nyc -dynaro.online -dynastyalliancellc.com -dynastyantique.com -dynlitypy.monster -dynofusion-developments.com -dynqtu.site -dynu.net -dyre.site -dyru.site -dysadapt.org -dysjzp09.com -dyskretna-pomoc.pl -dyspdh.xyz -dyspharnprep.ga -dyspharnprep.gq -dyspharnprep.tk -dyspnea659fk.online -dystopianamerica.com -dyuvpl.us -dywg0e.us -dyx9th0o1t5f.cf -dyx9th0o1t5f.ga -dyx9th0o1t5f.gq -dyx9th0o1t5f.ml -dyx9th0o1t5f.tk -dyybartti.cf -dyybartti.gq -dyybartti.ml -dyybartti.tk -dyynamic.net -dz-bac.com -dz-geek.org -dz-madwana-tech.com -dz.usto.in -dz0371.com -dz17.net -dz4ahrt79.pl -dz57taerst4574.ga -dzaf.net -dzagi.site -dzalaev-advokat.ru -dzank.cn -dzavnvqr.shop -dzddouvgi.shop -dzeucq.com -dzewa6nnvt9fte.cf -dzewa6nnvt9fte.ga -dzewa6nnvt9fte.gq -dzewa6nnvt9fte.ml -dzewa6nnvt9fte.tk -dzfphcn47xg.ga -dzfphcn47xg.gq -dzfphcn47xg.ml -dzfphcn47xg.tk -dzgiftcards.com -dzhesopr.ru -dzhinsy-platja.info -dziecio-land.pl -dziekan1.pl -dziekan2.pl -dziekan3.pl -dziekan4.pl -dziekan5.pl -dziekan6.pl -dziekan7.pl -dziesiec.akika.pl -dzimbabwegq.com -dzinerchic.com -dzinesbylace.org -dzinoy58w12.ga -dzinoy58w12.gq -dzinoy58w12.ml -dzinoy58w12.tk -dzip.site -dzjrys.icu -dznf.net -dzprosat.com -dzsyr.com -dzubn.ru -dzw.fr -dzw6np36h84j05p.xyz -dzxsx.com -dzxtvl.com -e-aidatdestektech.org -e-apteka24.ru -e-b-s.pp.ua -e-besik.com -e-bhpkursy.pl -e-cig36.ru -e-cigarette-x.com -e-cigreviews.com -e-clicks.online -e-clip.info -e-commex.ru -e-comsupport.com -e-drapaki.eu -e-factorystyle.pl -e-filme.net -e-globe.xyz -e-hamilegiyim.com -e-horoskopdzienny.pl -e-hospitals.com -e-jaroslawiec.pl -e-kpd.ru -e-mail-amazon.cf -e-mail.cafe -e-mail.com -e-mail.comx.cf -e-mail.igg.biz -e-mail.net -e-mail.org -e-mail.webcity.ml -e-mail365.eu -e-mailbox.comx.cf -e-mailbox.ga -e-mali.ml -e-marketstore.ru -e-mbtshoes.com -e-medicum.com -e-monstro.ru -e-mule.cf -e-mule.ga -e-mule.gq -e-mule.ml -e-mule.tk -e-news.org -e-nom.nu -e-nrg.us -e-nsk.ru -e-numizmatyka.pl -e-pay.icu -e-pierdoly.pl -e-poradnikowo24.pl -e-postkasten.com -e-postkasten.de -e-postkasten.eu -e-postkasten.info -e-postman.host -e-prima.com.pl -e-radio.africa -e-radio.app -e-s-m.ru -e-shoponline.info -e-snab.ru -e-swieradow.pl -e-swojswiat.pl -e-taksa.com -e-tikhvin.ru -e-tomarigi.com -e-tongarashi.com -e-tongshop.com -e-torrent.ru -e-trader.live -e-trend.pl -e-vents2009.info -e-zlunchbox.com -e.amav.ro -e.arno.fi -e.benlotus.com -e.bgsaddrmwn.me -e.blogspam.ro -e.discard-email.cf -e.milavitsaromania.ro -e.nodie.cc -e.polosburberry.com -e.seoestore.us -e.shapoo.ch -e.socialcampaigns.org -e.wupics.com -e04ajj.site -e08yw.site -e0iulu.us -e0jak.us -e0yk-mail.ml -e10digital.com -e13100d7e234b6.noip.me -e164-deos.net -e164-deos.org -e168.online -e16cs.space -e1775.com -e17gx.com -e1dn7v.us -e1u.xyz -e1y4anp6d5kikv.cf -e1y4anp6d5kikv.ga -e1y4anp6d5kikv.gq -e1y4anp6d5kikv.ml -e1y4anp6d5kikv.tk -e27dxbe4.xyz -e27wo.site -e283c52d.club -e2e4d7d5.ru -e2ento.us -e2estudios.com -e2m.store -e2n11lm1.buzz -e2qoitlrzw6yqg.cf -e2qoitlrzw6yqg.ga -e2qoitlrzw6yqg.gq -e2qoitlrzw6yqg.ml -e2qoitlrzw6yqg.tk -e2trg8d4.priv.pl -e3011.club -e30d.xyz -e32b66b7.xyz -e33ta.com -e36talk.com -e3b.org -e3z.de -e423z5ffcc5o94t.xyz -e425lr.live -e44db.club -e46me.space -e4febx.us -e4i.ru -e4ivstampk.com -e4t5exw6aauecg.ga -e4t5exw6aauecg.ml -e4t5exw6aauecg.tk -e4ward.com -e4wfnv7ay0hawl3rz.cf -e4wfnv7ay0hawl3rz.ga -e4wfnv7ay0hawl3rz.gq -e4wfnv7ay0hawl3rz.ml -e4wfnv7ay0hawl3rz.tk -e501eyc1m4tktem067.cf -e501eyc1m4tktem067.ga -e501eyc1m4tktem067.ml -e501eyc1m4tktem067.tk -e56r5b6r56r5b.cf -e56r5b6r56r5b.ga -e56r5b6r56r5b.gq -e56r5b6r56r5b.ml -e57.pl -e58xn.site -e5by64r56y45.cf -e5by64r56y45.ga -e5by64r56y45.gq -e5by64r56y45.ml -e5by64r56y45.tk -e5ki3ssbvt.cf -e5ki3ssbvt.ga -e5ki3ssbvt.gq -e5ki3ssbvt.ml -e5ki3ssbvt.tk -e5r6ynr5.cf -e5r6ynr5.ga -e5r6ynr5.gq -e5r6ynr5.ml -e5r6ynr5.tk -e5txqn.us -e5v7tp.pl -e5z1lhl9k7dd2bo.xyz -e66.buzz -e67dz.com -e6hq33h9o.pl -e71e.ru -e72sh.com -e73ca.xyz -e7666.com -e7ghn0.com -e7n06wz.com -e7xcfk7etkjxjnb.xyz -e82323.com -e84ywua9hxr5q.cf -e84ywua9hxr5q.ga -e84ywua9hxr5q.gq -e84ywua9hxr5q.ml -e84ywua9hxr5q.tk -e85dh.site -e88zl.space -e8999.com -e89fi5kt8tuev6nl.cf -e89fi5kt8tuev6nl.ga -e89fi5kt8tuev6nl.gq -e89fi5kt8tuev6nl.ml -e89fi5kt8tuev6nl.tk -e8dymnn9k.pl -e8g93s9zfo.com -e8ref.com -e8tzp9.us -e90.biz -e9557.com -e9561.com -e9563.com -e9568.com -e9581.com -e9586.com -e9592.com -e96xlm.stream -e9886.com -e9f4e664.club -e9jfq.info -e9khcd.host -ea7qpw.info -ea9.org -eaa620.org -eaaeus.com -eabockers.com -eaclub.bet -eads0w.us -eadskj.rest -eadvertsyst.com -eaek.cc -eafabet.com -eafrem3456ails.com -eaganapartments.com -eagermiserlyflour.site -eagledigitizing.net -eaglegroup.us -eaglehandbags.com -eagleholsters.com -eagleinbox.com -eaglelondon.net -eaglemail.top -eaglepointe.biz -eagleracingengines.com -eaglerder.com -eaglesfootballpro.com -eaglespo.xyz -eagroup.me -eahmoney.icu -eahzla.site -eail.com -eajfciwvbohrdbhyi.cf -eajfciwvbohrdbhyi.ga -eajfciwvbohrdbhyi.gq -eajfciwvbohrdbhyi.ml -eajfciwvbohrdbhyi.tk -eakga.com -eamail.com -eamarian.com -eami85nt.atm.pl -eamon.online -ean2asin.com -eanb.email -eandeanr.shop -eanok.com -eanreand.shop -eapncs.com -eaqb4.us -eaqso209ak.cf -eaqso209ak.ga -eaqso209ak.gq -eaqso209ak.ml -ear.ong -earlemcontre.site -earlev2.ga -earlev2.ml -earlev2.tk -earlunchly.com -earlybirdandtheworm.com -earlychurchlessons.com -earlytobed.com -earlyvotingstats.org -earn-now.ru -earndaily.com -earnfrom.website -earning2x.online -earningsonline2you.ru -earningsph.com -earnlink.ooo -earnosethroatcareers.com -earnripplecoin.online -earntrontokens.xyz -earnwithbtc.com -earpitchtraining.info -earth.doesntexist.org -earthbonus.host -earthdrygoods.com -earthforhealth.club -earthisours.net -earthorbit.net -earthorbit.org -earthsbestessentialoils.com -earthtod.site -earthtrekkers.net -earthtrekkers.org -earthwindandsnow.com -earthworksyar.cf -earthworksyar.ml -earzx.us -ease.cd -easemail.com -easi-piesi.org -easiestcollegestogetinto.com -easilyremovewrinkles.com -easinoschrom.tk -easm.site -easporrts.com -east-west-conference.ru -eastagusall.email -eastboundtravels.com -easternhempco.com -easternstar.website -easteuropepa.com -easthavenelderlawgroup.com -eastlansingdentists.com -eastmanww.com -eastpolknews.net -eastrivergondola.com -eastrockchiro.net -eastsideag.com -eastsidecounselingcenters.com -eastwan.net -eastwestcargo.ru -easy-apps.info -easy-deploy.com -easy-link.org -easy-magazine-offer.host -easy-mail.top -easy-trash-mail.com -easy-vdi.com -easy-winner.net -easy2ride.com -easy2tra.online -easyacord.com -easyandhardwaysout.com -easyasphi.com -easybedb.site -easybirthingsolutions.com -easyblogs.biz -easybranches.ru -easybuygos.com -easybuyol.store -easycdn.pro -easydinnerrecipes.net -easydinnerrecipes.org -easydirectory.tk -easydrop.shop -easyemail.info -easyfbcommissions.com -easyflowers.site -easyfortuna.com -easyguitarlessonsworld.com -easyico.org -easyiphoneunlock.top -easyjimmy.cz.cc -easyjiujitsu.com -easylistbuildingsecrets.com -easymail.ga -easymail.igg.biz -easymail.top -easymailing.top -easymarry.com -easymbtshoes.com -easymedgo.com -easymoney.cd -easymylife.org -easynetwork.info -easyonlinecollege.com -easyopenpay.com -easyopros6-ml.website -easypaperplanes.com -easyrecipesguide.life -easyrecipetoday.com -easyrecipezone.com -easyricecooker.com -easys.site -easyshortcut.com -easysnapfilters.com -easystabilitybetsnupp20.xyz -easysystem.cash -easytechroraima.com -easytotrip.ru -easytrashmail.com -easyustaad.com -easyweathercheck.com -easyxsnews.club -eat-drink.live -eatarkansas.com -eatbeat.com -eatdrink518.com -eaterytools.com -eatgood.site -eatinginseason.com -eatlikeahuman.com -eatlogs.com -eatlove.com -eatme69.top -eatmea2z.club -eatmea2z.top -eatreplicashop.com -eatrnet.com -eatruvi.com -eatsleepwoof.com -eatstopeatdiscount.org -eatthegarden.co.uk -eauctiontrade.com -eautofsm.com -eautoskup.net -eawm.de -eay.jp -eazedeliverynow.com -eazeemail.info -eazishop.site -eb-dk.biz -eb1ey.site -eb2cda7c.xyz -eb3.biz -eb46r5r5e.cf -eb46r5r5e.ga -eb46r5r5e.gq -eb46r5r5e.ml -eb46r5r5e.tk -eb4hnc.com -eb4te5.cf -eb4te5.ga -eb4te5.gq -eb4te5.ml -eb4te5.tk -eb56b45.cf -eb56b45.ga -eb56b45.gq -eb56b45.ml -eb56b45.tk -eb609s25w.com -eb655b5.cf -eb655b5.ga -eb655b5.gq -eb655b5.ml -eb655b5.tk -eb655et4.cf -eb655et4.ga -eb655et4.gq -eb655et4.ml -eb7gxqtsoyj.cf -eb7gxqtsoyj.ga -eb7gxqtsoyj.gq -eb7gxqtsoyj.ml -eb7gxqtsoyj.tk -eb9b1d.club -ebacus.cf -ebacus.ga -ebacus.gq -ebacus.ml -ebacus.tk -ebahczno.shop -ebamen.cf -ebamen.ga -ebamen.gq -ebamen.tk -ebanglanewspaper.com -ebano.campano.cl -ebarg.net -ebay-sale-shop.ru -ebaymail.com -ebbie.ru -ebbob.com -ebctc.com -ebd68.com -ebdbuuxxy.pl -ebectren.cf -ebenebiz.online -ebeschlussbuch.de -ebestaudiobooks.com -ebhiq.us -ebignews.com -ebijouterie.com -ebilsad.net -ebimpactcompany.com -ebing.com -ebizblog.com -ebiztimes.net -ebjza.space -ebkrobots.com -ebloodbanking.org -ebm7.com -ebmail.com -ebmzh1.site -ebnaoqle657.cf -ebnaoqle657.ga -ebnaoqle657.gq -ebnaoqle657.ml -ebnaoqle657.tk -ebnevelde.org -ebnsya.com -ebocmail.com -ebogk4.host -eboise.com -ebolawho.com -ebonized995jc.online -ebony.monster -ebonyfemale.com -ebookbiz.info -ebookdesign.pro -ebookway.us -ebookwiki.org -ebozor.info -ebrightskinbatam.com -ebrker.pl -ebrolift.com -ebruaryand.net -ebruaryand.org -ebruaryh.com -ebruaryh.org -ebrumayfker.cf -ebrumayfker.ml -ebrumayfker.tk -ebs.com.ar -ebtekar-semnan.com -ebtukukxnn.cf -ebtukukxnn.ga -ebtukukxnn.gq -ebtukukxnn.ml -ebtukukxnn.tk -ebusiness-training.com -ebusvipreviews.info -ebuyfree.com -ebv9rtbhseeto0.cf -ebv9rtbhseeto0.ga -ebv9rtbhseeto0.gq -ebv9rtbhseeto0.ml -ebv9rtbhseeto0.tk -ebvaus.us -ebvvlrf.ru -ec-app-ios.com -ec-app-windows.com -ec8sli.us -ec97.cf -ec97.ga -ec97.gq -ec97.ml -ec97.tk -ecaihang.xyz -ecallen.com -ecallheandi.com -ecanc.com -ecaoffl.org -ecasp4tn.com -eccayk.icu -eccfilms.com -eccgulf.net -ecclighting.com -ecco-discount-shoes.ru -ecco-shoes.store -ecco-shoes24.ru -ecea.de -ecf730de.club -echathouse.com -echeaplawnmowers.com -echelon-company.com -echendia.ga -echendia.gq -echendia.ml -echendia.tk -echinology.best -echocbd.com -echodarlings.com -echoroukonline.org -echosgraphics.online -echosofspirit.com -echt-mail.de -echta.com -echtacard.com -echtheidskenmerken.com -echtzeit.website -ecidirecto.cat -ecig36.ru -ecigarette.ru -ecigarettereviewonline.net -ecigwizard.net -ecigwizardrmu.net -ecimail.com -eciresidential.com -eckendonkverwarming.online -eclaecll.shop -eclipsey.online -eclipseye.com -ecllecla.shop -ecmail.com -ecmcxm.tokyo -ecmij0.us -ecn37.ru -ecni1.us -eco-88brand.com -eco-brand.com -eco-crimea.ru -eco-lock.ru -eco-xmas.com -eco.ilmale.it -ecoamulet.ru -ecoarabia.space -ecoblogger.com -ecobution.com -ecocap.cf -ecocap.ga -ecocap.gq -ecocap.ml -ecocap.tk -ecochecking.com -ecocloud.com -ecodark.com -ecodecouverte.com -ecodiemlatam.com -ecodom75.ru -ecoe.de -ecoforfun.website -ecoforsea.website -ecoforsky.website -ecoglace.com -ecogribnica.ru -ecokrasota-kz.ru -ecolaundrysystems.com -ecole-post-bac.org -ecolith.xyz -ecolivingshake.xyz -ecollum.org -ecolo-online.fr -ecologyguys.xyz -ecolvita.com -ecomail.com -ecomclubadvisers.com -ecomclubcoach.com -ecomediahosting.net -ecomercado.shop -ecommbbq.dev -ecommerceaustria.com -ecommercebaltics.com -ecommercebbq.dev -ecommerceservice.cc -ecommerceslovakia.com -ecomoni.ga -ecomrevealed.com -ecomsecure.org -econaturella.store -econconferences.net -econconferences.org -econducts.icu -econeom.com -econofixauto.com -economic-articles.ru -economicrethink.com -economideslaw.com -econvention2007.info -ecooktops.com -ecoonly.com -ecoorno.com -ecopressmail.us -ecorepast.ru -ecoresort.club -ecoright.ru -ecosdelpamplonita.com -ecoshed.org -ecosmartfire.us -ecotrafik-spb.ru -ecotrekking.africa -ecour.se -ecovosearch.com -ecowhey.com -ecowisehome.com -ecpsscardshopping.com -ecqmuskw.shop -ecrin.tk -ecsite.info -ecsporra.ga -ecsporra.gq -ecsporra.ml -ecsporra.tk -ecsspay.com -ecstasyworld.ru -ectix.fun -ectncenter.com -ectseep.site -ecuadoranfood.com -ecudeju.olkusz.pl -ecumenopolis.online -ecumte.cf -ecumte.ga -ecumte.ml -ecumte.tk -ecunflec.cf -ecunflec.gq -ecunflec.ml -ecunflec.tk -ecuwmyp.pl -ecvashop.ru -ecybqsu.pl -eczadanstoklusatis.site -eczanedenurunler3.site -eczavm.net -eczema.red -eczemared.com -ed-hardybrand.com -ed-pillole.it -ed1crhaka8u4.cf -ed1crhaka8u4.ga -ed1crhaka8u4.gq -ed1crhaka8u4.ml -ed1crhaka8u4.tk -ed1de2f.xyz -ed235.com -edagolic.ru -edalist.ru -edaned.cf -edaned.ga -edaned.tk -edapovara.ru -edarwn.site -edaserkan.cf -edaserkan.ga -edaserkan.ml -edat.site -edavpohod.ru -edaysdeal.com -edcar-sacz.pl -edcs.de -edcstore.website -eddieawards.org -eddiecolumbia.com -eddxml.com -eddyhotels.info -ede47t2wgee4og4.xyz -edealclip.com -edealcode.com -edealdash.com -edealgolf.com -edealhome.com -edealmove.com -edealpets.com -edeals420.com -edealspet.com -edealtogo.com -edeedu.icu -edelion.site -edelweis.website -edenbrides.com -edenizli.net -edenprairieapartments.com -edenris.info -edf.ca.pn -edfast-medrx.com -edfinanciall.com -edfromcali.info -edgac.com -edgdcfwp.shop -edge-of-oblivion.com -edgecontrolclub.com -edgecontrolformen.com -edgehillcenter.org -edgenet.dev -edgenet.monster -edgenet.today -edgeseeker.com -edgeserviceworkers.net -edgewaterfrontcondos.com -edgex.ru -edhardy-onsale.com -edhardy886.com -edhardyfeel.com -edhardyown.com -edhardypurchase.com -edhardyuser.com -edi.legal -edialcamp.com -edialdentist.com -edialspas.com -edibles-cannabis.com -edifice.ga -edigitalwaves.com -edikmail.com -edilm.site -edimail.com -edinacabs.info -edinardiamond.com -edinburgh-airporthotels.com -edinburgh.cd -edirnearackiralama.com -edirnekizyurdu.com -edirneligheyeti.xyz -edirnetasarim.xyz -edirneulkuocaklari.com -edisar.cf -edisar.gq -edisar.ml -edisar.tk -edit-2ch.biz -editengine.org -edithis.info -editicon.info -editingmagzines.live -editorialize498ay.online -editorialluz.com -editory.design -edkfnget.shop -edkvq9wrizni8.cf -edkvq9wrizni8.ga -edkvq9wrizni8.gq -edkvq9wrizni8.ml -edkvq9wrizni8.tk -edlweise.com -edmail.com -edmiston.media -edmontonportablesigns.com -edoamb.site -edomail.com -edopegitim.com -edotzxdsfnjvluhtg.cf -edotzxdsfnjvluhtg.ga -edotzxdsfnjvluhtg.gq -edotzxdsfnjvluhtg.ml -edotzxdsfnjvluhtg.tk -edouardkouzougiandmd.com -edovqsnb.pl -edpillsrx.us -edproblem.com -edqpra.us -edqy3g.us -edras-hosting.com -edrashosting.net -edrashosting.ovh -edremitmehmetakif.xyz -edrishn.xyz -edsocia.shop -edsxwu.info -edsym.com -edu-archive.com -edu-paper.com -edu-track.net -edu.aiot.ze.cx -edu.auction -edu.creo.site -edu.dmtc.dev -edu.dmtc.press -edu.hstu.eu.org -eduahora.com -eduanswer.ru -educate316.com -education.eu -educationalretirementplanning.com -educationleaders-ksa.com -educationvn.cf -educationvn.ga -educationvn.gq -educationvn.ml -educationvn.tk -educatolica.org -eduenterprise.net -eduinfoline.com -edukacyjny.biz -edukat.com -edukid.online -edunk.com -eduostia.com -edupost.pl -edurealistic.ru -edusamail.net -eduverum.com -eduverum.org -edv.fund -edv.to -edwardbell.tk -edwardbell62.ml -edwardnmkpro.design -edwardsullivan.buzz -edwardsvillevisioncenter.info -edystne.com -edzjrd.rest -ee-lucky.com -ee-papieros.pl -ee.anglik.org -ee062.com -ee1.pl -ee18269.com -ee2.pl -ee8ty.com -eea888.com -eeanoodlem.site -eeaum.us -eecgot.site -eedgechatk.site -eedgewaree.site -eedgez.site -eee062.com -eeeeeeee.pl -eeemail.pl -eeemail.win -eeeverything.com -eegxvaanji.pl -eehfmail.org -eeifi.site -eeinduo.site -eeligib.shop -eellee.org -eelmail.com -eemeklilik.com -eeolk.us -eerees.com -eesresponseconsulting.org -eetcafedebrakkegrond.com -eexie.space -eexndi.us -eezojq3zq264gk.cf -eezojq3zq264gk.ga -eezojq3zq264gk.gq -eezojq3zq264gk.ml -eezojq3zq264gk.tk -ef0o2i.us -ef0ysjdwsd.com -ef2files.com -ef2qohn1l4ctqvh.cf -ef2qohn1l4ctqvh.ga -ef2qohn1l4ctqvh.gq -ef2qohn1l4ctqvh.ml -ef2qohn1l4ctqvh.tk -ef4l.us -ef87cg.accountant -ef88.xyz -ef8f.com -ef8udz.info -ef9ppjrzqcza.cf -ef9ppjrzqcza.ga -ef9ppjrzqcza.gq -ef9ppjrzqcza.ml -ef9ppjrzqcza.tk -efacs.net -efago.space -efamiliesfoundation.com -efasttrackwatches.com -efatt2fiilie.ru -efcdn3.info -efd.buzz -efd0x.us -efdal.info -efdjfw.com -efelermt2.com -efepala.kazimierz-dolny.pl -efesbahi60.com -efesbahi61.com -efesnahis47.com -efetusomgx.pl -effacers.best -effect-help.ru -effective-democracy.org -effective-neurosystem.ru -effective-thai.com -effectivebusinessgrowth.xyz -effectivelyweb.com -effectual.net -effff.site -effiemena.com -effrvjpn.shop -efhmerides.com -efhuxvwd.pl -efishdeal.com -efiterra.ru -efitgro.shop -eflstudyabroad.com -efmitoc.cf -efmitoc.ga -efmitoc.ml -efmitoc.tk -efmsts.xyz -efo.kr -efo8r.us -efoiefol.shop -efolefoi.shop -eforefor.shop -eformula.ru -efratsadeli.xyz -efreaknet.com -efremails.com -efsunumma58066.cf -efsunumma58066.ga -efsunyarraq.ga -efsunyarraq.ml -efsunyarraq.tk -eft.one -efta.cd -efteldream.online -eftura.cf -eftura.gq -eftura.ml -efu114.com -efxi.us -efxs.ca -eg0tm3.us -eg723.com -eg85qf.com -egafar.cf -egafar.ga -egafar.gq -egafar.ml -egafar.tk -egames20.com -egames4girl.com -egava.ru -egawc6234.tech -egberghs.online -egbest.net -egdrop.online -egear.store -egebahis.com -egeg-990.com -egemendalgicpompa.xyz -egenes.ga -egenes.gq -egenes.ml -eget1loadzzz.ru -eget9loaadz.ru -egg-fri.com -egg-fri.org -eggcelentecafe.com -egget4fffile.ru -egget8zagruz.ru -eggfri.org -eggharborfesthaus.com -eggnova.com -eggplantlove.com -eggplantplay.net -eggrade.com -eggscryptoinvest.xyz -egibet101.com -egipet-nedv.ru -egitimlekazan.net -eglenceliokul.net -eglenkazan.site -eglft.in -ego-in-bmw.ru -egobomb.com -egocp17.net -egocp18.net -egocp21.net -egocp27.net -egocp28.net -egocp32.net -egocp35.net -egocp41.net -egocp52.net -egocp54.net -egocp58.net -egocp59.net -egocp6.net -egocp61.net -egocp62.net -egocp68.net -egocp71.net -egocp74.net -egocp75.net -egocp80.net -egocp83.net -egocp84.net -egocp90.net -egocp92.net -egocp96.net -egocp97.net -egodmail.com -egofan.ru -egolottery.com -egoodbyes.com -egoplay.pro -egoqp.com -egorkanorka.space -egrn-ofical.ru -egs8zzgzsjo05090.buzz -egteam.ru -eguccibag-sales.com -egvxoqfhz.shop -egwuvbsdx.online -egypthacker.com -egzmail.top -eh2jvt.site -eh4rlw.info -ehawehav.shop -ehdigsi.cf -ehdigsi.ga -ehdigsi.ml -ehealthcareconsultants.com -eherbaly.com -ehgrg.live -ehhxbsbbdhxcsvzbdv.ml -ehhxbsbbdhxcsvzbdv.tk -ehleber.cf -ehleber.ga -ehleber.gq -ehleber.ml -ehleber.tk -ehlp.us -ehmail.com -ehmwi6oixa6mar7c.cf -ehmwi6oixa6mar7c.ga -ehmwi6oixa6mar7c.gq -ehmwi6oixa6mar7c.ml -ehmwi6oixa6mar7c.tk -eho.kr -ehoie03og3acq3us6.cf -ehoie03og3acq3us6.ga -ehoie03og3acq3us6.gq -ehoie03og3acq3us6.ml -ehoie03og3acq3us6.tk -ehomeconnect.net -ehousesdev.com -ehowtobuildafireplace.com -ehsanalrifai.com -ehvgfwayspsfwukntpi.cf -ehvgfwayspsfwukntpi.ga -ehvgfwayspsfwukntpi.gq -ehvgfwayspsfwukntpi.ml -ehvgfwayspsfwukntpi.tk -ehwj.com -ehyafest.com -ehyvaz.faith -eiakr.com -eiappleshoes.com -eib-systems.ru -eictik.site -eids.de -eidumail.com -eiendomme.info -eight.emailfake.ml -eight.fackme.gq -eighty-seven-chinese-takeaway.com -eightysevenchinese.com -eigoemail.com -eigthbron.cf -eigthbron.ml -eigthbron.tk -eik3jeha7dt1as.cf -eik3jeha7dt1as.ga -eik3jeha7dt1as.gq -eik3jeha7dt1as.ml -eik3jeha7dt1as.tk -eik8a.avr.ze.cx -eikadb.rest -eikfr.club -eimadness.com -eimail.com -einfach.to -einmalmail.de -einmeinr.shop -einrot.com -einrot.de -eins-zwei.cf -eins-zwei.ga -eins-zwei.gq -eins-zwei.ml -eins-zwei.tk -einsteino.com -einsteino.net -eintagsmail.de -eircjj.com -eiren.dev -eiriyqaab.shop -eirtsdfgs.co.cc -eisenbergpublishing.com -eisenfall.de -eisenhemds.info -eishinsha.ga -eislumpwejr57.ru -eitan-ofer.biz -eitan-ofer.com -eitan-ofer.info -eitanofer.biz -eitanofer.info -eitanofer.net -eitanofer.org -eithern.website -eitude.xyz -ejaculationbycommandreviewed.org -ejaculationprecoce911.com -ejaculationtrainerreviewed.com -ejajmail.com -ejapangirls.com -ejdy1hr9b.pl -ejerciciossalud.com -ejh3ztqvlw.cf -ejh3ztqvlw.ga -ejh3ztqvlw.gq -ejh3ztqvlw.ml -ejh3ztqvlw.tk -ejjsuspw.shop -ejkovev.org -ejmcuv7.com.pl -ejnzj.com -ejrt.co.cc -ejrtug.co.cc -ejucbb.us -ejuhv6.us -ejustinsimone.com -ek8wqatxer5.cf -ek8wqatxer5.ga -ek8wqatxer5.gq -ek8wqatxer5.ml -ek8wqatxer5.tk -ekaap.site -ekalbet.xyz -ekameal.ru -ekapoker.com -ekapoker.net -ekapoker.xyz -ekata.tech -ekatalogstron.ovh -ekb-nedv.ru -ekbep.live -ekc-2020-ruf.best -ekc-2020-ruk.best -ekc-2020-rur.best -ekc-2020-rus.best -ekc-2020-rut.best -ekc-2020-rux.best -ekcuzkux.shop -ekdcp1.site -ekforha.cf -ekforha.ga -ekforha.gq -ekforha.ml -ekforha.tk -ekholotdeeper.ru -ekibim.design -ekii.cf -ekiiajah.ga -ekiibete.ml -ekiibeteaja.cf -ekiibetekorea.tk -ekiikorea99.cf -ekiikorea99.ga -ekiilinkinpark.ga -ekkoboss.com.ua -eklement-v5.site -ekmektarifi.com -ekmekvepasta.online -ekmekvepasta.xyz -ekmqkw.com -eknowapp.com -eknqgq.info -eknvfw.icu -eko-europa.com -ekocosmetika.ru -ekodi.ga -ekohash.com -ekomaski.ru -ekomoyka.com -ekor.info -ekotuman54.ru -ekphm.site -ekpzsec3.xyz -ekredyt.org -ekselyapi.com -eksenler.site -eksf.cd -ekspresambalaj.xyz -ekspresforeks.com -eksprespedycja.pl -ekstra.pl -ektatrk.site -ekumail.com -ekupa.xyz -ekyku.site -ekzi.info -el-kassa.info -el-mahdy.com -el-mundo.website -el-toro-takeaway.com -el-tulipan.com -el.cash -el.efast.in -el4nyw.us -el6jkb.us -elaffshop.store -elainamroberts.com -elaineshoes.com -elalinosantafe.com -elancreditcards.net -elangqq.fun -elangquiqiu.net -elaparatico.net -elapou.info -elappi.site -elaseweightloss.com -elastichealth.com -elatscal.cf -elatscal.ga -elatscal.gq -elatscal.ml -elatscal.tk -elaven.cf -elaven.ga -elaven.gq -elaven.ml -elaveyargalari.ml -elaveyargalari.tk -elavilonlinenow.com -elavmail.com -elazigcozumguvenlik.com -elaziggaziosmanpasa.xyz -elazigmezaryapi.online -elazigmezaryapi.xyz -elazigturkocaklari.xyz -elazigugurluemlak.xyz -elbenyamins.com -elbomboncito.net -elbow4.tk -elcajonrentals.com -elcalless.cf -elcalless.ga -elcalless.gq -elcalless.ml -elcejas.org -elcentrodentists.com -elcid-dz.com -elclicbubb.cf -elclicbubb.ml -elcyberbrujo.com -eldermud.com -eldertraining.com -eldiam.ru -eleanorallen.me -elearningjournal.org -elearningtopia.net -eleccionesath.com -electcr.icu -electcra.xyz -electdesean.com -electionwatch.info -electpreoccupationhandy.website -electric-lion.com -electric-net.com -electricalchemy.org -electricalpowertransmissiononlineclasses.com -electricbikemotor.org -electriccarvehicle.com -electriccityrw.com -electrician-colchester.com -electricistas.cat -electricistasdepr.com -electricistaurgente.net -electrick.ru -electrickeychain.com -electriclongboard.online -electricskymedia.com -electricswitch.info -electro-roliki.ru -electro.mn -electrodrone.ru -electrofic.xyz -electrofunds.com -electroheatchina.com -electromax.us -electronexpress.ru -electrongem.buzz -electronic-smoke.com -electronic-stores.org -electronicdirectories.com -electronicearprotection.net -electronicenergycoins.com -electronicgate-annabi.net -electronicmail.us -electronicpostcards.net -electronicproductsusa.com -electronicsbrushes.com -electronicsbrushes.us -electronicsearch.solutions -electronicshotv.xyz -electronicshotx.info -electronicsvipa.xyz -electronicsvipc.info -electronicsvipf.xyz -electronicvonfrey.com -electronizer.com -electroprem.se -electroproluxex.eu -electrosamokat2.ru -electrostal-dveri.ru -electrostaticbrush.net -electrostaticbrush.us -electrostaticbrushes.us -electrumlove.com -electrumly.pro -electrumsecuredownload.com -electrumtravel.com -eleganaff.com -elegantcopywriting.net -elegantdir.com -elegantmessblog.com -elegantthemes.top -elektrik03.ru -elektrische-auto.info -elektro-grobgerate.com -elektro-roliki.ru -elektronikekspertiz.com -elektroniksigara.xyz -elektroninenurheilu.net -elektroninenurheilu.org -elelhal.xyz -eleman34.com -elemedialabs.com -elementalstorm.com -elementaltraderforex.com -elementalwellnesscare.com -elementify.com -elementosdejuicio.com -elementsofartny.com -elementsofjoy.org -elementwell.com -elenafuriase.com -elenagolunova.site -elenamiller-shop.ru -elenasport.com -elenberger.ru -eleniumania.site -elenon.com -elenotoneshop.com -elepam.ga -elepam.gq -elepam.ml -elepam.tk -elephantlae.email -elephantpizza-cabra.com -elephantvalleylodge.org -elerrisgroup.com -elesaganter.ru -elesb.net -elestella.blog -eletp6.info -eletrium.com -eletskyart.ru -elettrofaidate.com -elevareurhealth.com -elevatelosangelescf.cafe -elevationgroupvip.com -elevationplatform.net -elevationrecoverycenter.info -elevatn.net -elevatorshoes-wholesalestores.info -eleven-wet-rubbed-rise.xyz -elevens4d.net -elevmedia.net -elex-net.ru -elexbetgunceladres.com -elexbetguncelgiris.com -elexusbet159.com -elexusbet165.com -elfagrfan.com -elfagrsports.net -elfagrsports.org -elfbt.com -elfox.net -elftraff.com -elgin-dentist.com -elhammam.com -elhddbha.com -elhida.com -eliasandtheerror.com -eliconomy.site -elifestyle.tk -elijahgray.pro -elilind.info -elilogan.us -elimam.org -elimidebtconsultants.com -eliminategout.com -eliminatetrend.info -elinakamiren.ru -elinbox.com -elinore1818.site -elipsys.ru -eliselifewire.com -elisione.pl -elisioyuncak.net -elisioyuncak.xyz -elisium.org -elispector.com -elisspizzeria.com -elite-altay.ru -elite-seo-marketing.com -elite-trend.ru -elite12.mygbiz.com -eliteadultdating.com -eliteavangers.pl -elitebabeslondon.com -elitebusinessphone.com -elitecolor.us -elitecraft.online -eliteesig.org -eliteeventvenue.net -elitegunshop.com -elitehostmanagement.com -elitemotions.com -eliteppccourses.com -elitescortistanbul.net -eliteseniors.online -eliteseo.net -elitesinglejdhj.xyz -elitestoneimporters.net -elitethetrend.com -elitevipatlantamodels.com -elitewindowsanddoorsllc.com -elitewot.ru -elitewou.press -elitistarmory.com -elitokna.com -elixircycles.com -eliyes.icu -elizabeadan.com -elizabelder.com -elizabethjacques.com -elizabethlacio.com -elizabethporterdesigns.com -elizabethroberts.org -elizstudio.ru -eljadida24.org -eljkblwjys.icu -eljzcl.us -elkathy.cf -elkathy.ga -elkathy.ml -elkgroveses.com -elkhornautocare.com -elki-iskusstvennie.ru -elki-mkzn.ru -elki-v-chelyabinske.ru -elkwielp.site -ellendino.com -ellesecret.com -ellesoufi.com -ellight.ru -ellineswitzerland.com -ellingtonmarascio.com -ellingtonvets.com -ellinismosonline.com -elliotbuckley.buzz -elliotcavanaugh.com -elliotmccarthy.buzz -elliotrhodes.buzz -ellisontraffic.com -ellmh.us -elloboxlolongti.com -elloimmigration.com -ellstromstrafikskola.se -ellur.ru -elmarquesbanquetes.com -elmcoin.com -elmenormi.tk -elmexicanodebcn.com -elmhurstdentalcare.com -elmiracap.com -elmontaitocaceres.com -elmoscow.ru -elmoust.ru -elmundillodental.com -elograder.com -elokalna.pl -elon-spb.ru -eloom.live -elorift.com -elorios.info -eloud.info -elouhouse.co -elp0xn.us -elpacar.cf -elpacar.ga -elpacar.ml -elparquetelpuig.com -elpasoaddictiontreatment.com -elpasococainerehab.com -elpasoquote.com -elpatevskiy.com -elpatio.su -elpisfil.org -elqaelsc.shop -elraen.cf -elraen.ga -elraen.tk -elraenv2.ga -elraenv2.ml -elreverde.com -elreykebabbarcelona.com -elrincondelbarbudo.ovh -els396lgxa6krq1ijkl.cf -els396lgxa6krq1ijkl.ga -els396lgxa6krq1ijkl.gq -els396lgxa6krq1ijkl.ml -els396lgxa6krq1ijkl.tk -elsa.su -elsajean.mobi -elsayoung.world -elscootersverige.se -elsdrivingschool.net -else.best -else.watch -elsecity.cash -elsecity.email -elsecity.info -elsecity.life -elsecity.link -elsecity.org -elsecity.today -elsecity.xyz -elseme.com -elsethriftexam.website -elsevierheritagecollection.org -elsew0rld.org -elseworld.info -elseworld.net -elsexo.ru -elsiedrs.info -elsingular.com -elslotsredirect.com -elsoberano.net -elsotanoderadiobelgrado.com -elswabad.cf -elswabad.ga -elswabad.gq -elswabad.ml -elswabad.tk -eltasmu.cf -eltasmu.ml -eltasmu.tk -elteh.me -eltombis.pl -eltronx.org -elunenna.tk -elus-rsm.net -elusiveprime.net -eluxurycoat.com -elva.app -elvavgiyim.com -elversoft.space -elverturkiye.com -elvis-pizza.com -elvisor.org -elviszem.com -elwafidinetours.com -ely.kr -elyamnel3raby.org -elyamnelaraby.org -elykarina.com -elysium.ml -elysiumfund.com -elysiumfund.net -elysiumfund.org -elysiumfundation.net -elysiumfundation.org -elzyro.com -em-box.ru -em-meblekuchenne.pl -emab4i.us -emacs.info -emacsgifs.com -emagrecendocomasol.com -emagrecendocomrenata.com -emagrecendototal.com -emagrecer-rapido-urgente.com -emagrecerapidohoje.com -emagrecerdevezbr.com -emagrecimentoagil.com -emagrecimentodiadia.com -emaiden.com -email-24x7.com -email-4-everybody.bid -email-9.com -email-bomber.info -email-boxes.ru -email-fake.cf -email-fake.com -email-fake.ga -email-fake.gq -email-fake.ml -email-fake.tk -email-host.info -email-jetable.fr -email-lab.com -email-list.online -email-mail.pw -email-me.bid -email-reviews.com -email-server.info -email-sms.com -email-sms.net -email-splashbeachresort.com -email-t.cf -email-t.ga -email-t.gq -email-t.ml -email-t.tk -email-temp.com -email-vigrish.ru -email-wizard.com -email.cbes.net -email.comx.cf -email.cykldrzewa.pl -email.freecrypt.org -email.infokehilangan.com -email.net -email.org -email.viola.gq -email.wassusf.online -email.webcity.ml -email0.cf -email0.ga -email0.gq -email0.ml -email0.tk -email1.gq -email1.pro -email2.cf -email2.gq -email2.ml -email2.tk -email2020.mehrpoy.ir -email2an.ga -email2twitter.info -email3.cf -email3.ga -email3.gq -email3.ml -email3.tk -email4all.info -email4everybody.bid -email4everyone.co.uk -email4everyone.com -email4spam.org -email4work.xyz -email5.net -email60.com -emailage.cf -emailage.ga -emailage.gq -emailage.ml -emailage.tk -emailanto.com -emailappp.com -emailapps.in -emailapps.info -emailate.com -emailautomator.com -emailay.com -emailbaruku.com -emailber.com -emailboot.com -emailbot.org -emailbox.comx.cf -emailchepas.cf -emailchepas.ga -emailchepas.gq -emailchepas.ml -emailchepas.tk -emailcom.org -emailcoordinator.info -emailcu.icu -emaildfga.com -emaildienst.de -emaildrop.io -emaildublog.com -emailed.com -emaileen.com -emailertr.com -emailfake.cf -emailfake.com -emailfake.ga -emailfake.gq -emailfake.ml -emailfake.nut.cc -emailfake.usa.cc -emailfalsa.cf -emailfalsa.ga -emailfalsa.gq -emailfalsa.ml -emailfalsa.tk -emailforme.pl -emailforyounow.com -emailfowarding.com -emailfreedom.ml -emailgap.com -emailgenerator.de -emailgo.de -emailgratis.info -emailgsio.us -emailguy.info -emailhearing.com -emailhost99.com -emailhosts.org -emailhot.com -emailias.com -emailibre.com -emailigo.de -emailinbox.xyz -emailinfive.com -emailirani.ir -emailismy.com -emailist.tk -emailisvalid.com -emailjonny.net -emailket.online -emailkg.com -emailkjff.com -emailko.in -emailkoe.com -emailkoe.xyz -emaill.host -emaillalala.org -emaillime.com -emaillist.fun -emailll.org -emailmarket.fun -emailmarket.space -emailmc2.com -emailme.accountant -emailme.bid -emailme.men -emailme.racing -emailme.win -emailmenow.info -emailmiser.com -emailmktsolutions.com -emailmobile.net -emailmonkey.club -emailmynn.com -emailmysr.com -emailna.co -emailna.life -emailno.in -emailnode.net -emailnope.com -emailnube.com -emailo.pro -emailofnd.cf -emailondeck.com -emailonline.me -emailonlinefree.com -emailonn.in -emailoo.cf -emailpalbuddy.com -emailpops.cz.cc -emailportal.info -emailpro.cf -emailproxsy.com -emailr.win -emailrambler.co.tv -emailrecup.info -emailreg.org -emailresort.com -emailreviews.info -emailrii.com -emailrtg.org -emails-like-snails.bid -emails.ga -emails92x.pl -emailsalestoday.info -emailsecurer.com -emailsensei.com -emailsforall.com -emailsingularity.net -emailsky.info -emailslikesnails.bid -emailsolutions.xyz -emailspam.cf -emailspam.ga -emailspam.gq -emailspam.ml -emailspam.tk -emailspot.org -emailspro.com -emailspro.site -emailsteel.com -emailswhois.com -emailsy.info -emailsys.co.cc -emailtea.com -emailtech.info -emailtemporal.org -emailtemporanea.com -emailtemporanea.net -emailtemporar.ro -emailtemporario.com.br -emailtex.com -emailthe.net -emailtmp.com -emailto.de -emailtocard.com -emailtocard.site -emailtoo.ml -emailtown.club -emailure.net -emailvenue.com -emailwarden.com -emailworldwide.info -emailworth.com -emailx.at.hm -emailx.org -emailxfer.com -emailxpress.co.cc -emailz.cf -emailz.ga -emailz.gq -emailz.ml -emakina.digital -emakmintadomain.co -emall.ml -emanual.site -emanuele.dev -emanus.cd -emaomail.com -emapmail.com -emarketeng.com -emarktshop.com -emarkwebsolutions.com -emasqiuqiu.info -emasqiuqiu.org -emasqq.info -emaw.email -embalaje.us -embeddedconsulting.com -embeddedengineer.org -embeddedresearch.com -embedhelp.com -embergone.cf -embergone.ga -embergone.gq -embergone.ml -embergone.tk -embergonebro.cf -embergonebro.ga -embergonebro.gq -embergonebro.ml -embergonebro.tk -emberhookah.com -emblemail.com -embower.site -embraceqqef.email -embracetheminivan.com -embrapamail.pw -embudoshighticket.com -emcchicago.com -emcinfo.pl -emco-time.ru -emdwgsnxatla1.cf -emdwgsnxatla1.ga -emdwgsnxatla1.gq -emdwgsnxatla1.ml -emdwgsnxatla1.tk -emedia.nl -emegaplex.com -emeil.cf -emeil.in -emeil.ir -emember.site -emenage.com -emerald-court-takeaway.com -emerald-shop.ru -emeraldcluster.com -emeraldsocietynews.club -emeraldvalleyhouse.com -emeraldwebmail.com -emergen.biz -emergency-alert.org -emergency-alerts.org -emergencyredalerts.org -emergenie.net -emerial.su -emeshopbuy.store -emext.com -emeyle.com -emfucan.cf -emfucan.gq -emfucan.tk -emfunhigh.cf -emfunhigh.gq -emfunhigh.ml -emfunhigh.tk -emi360.net -emial.com -emicomfort.com -emigrantdfz.fun -emigration.blog -emihziyermaj.site -emil.com -emilee.best -emilybeckner.com -emilybeearts.com -emilydates.review -emilylawson.buzz -emilynall.com -emilywillis.site -emina7.com -emina7.net -eminempwu.com -eminent.property -eminilathe.info -eminitrading.net -emirati-nedv.ru -emirmail.ga -emiro.ru -emissarycsr.com -emisser.ru -emitirfacil.com -emjvbq.com -emka3.vv.cc -emkei.cf -emkei.ga -emkei.gq -emkei.ml -emkei.tk -emkesupermarket.com -eml.pp.ua -emlhub.com -emlivetech.com -emlpro.com -emltmp.com -emm.pet -emmail.com -emmail.info -emmailoon.com -emmamolly.net -emmasart.com -emmasmale.com -emmetttillmuseum.com -emmtjv.best -emmune.com -emmys.life -emnbp6.us -emobilidade.net -emohawk.xyz -emojiday.win -emojit.net -emojit.org -emojot.xyz -emolmot.cf -emolmot.gq -emolmot.ml -emolmot.tk -emoneysecrets.com -emonroy.site -emops.net -emops.us -emoreforworkx.com -emoreno.tk -emoser.ga -emoser.gq -emoser.ml -emoshin.com -emotetimingleft-bright-bright.com -emotionengineering.com -emotoc.tk -emozoro.de -emp3i.info -emp4lbr3wox.ga -empaltahu24best.gq -empayna.cf -empayna.ml -empayna.tk -empdesguace.com -empek.tk -emphasysav.com -empik-music.com -empik.photo -empikmuzyka.com -empire-report.com -empire-subtleagility.com -empire-unchained.com -empireanime.ga -empireapp.org -empireartsnews.club -empiremail.de -empiremonk-timeagilefitness.com -empireofbeauty.co.uk -empiresro.com -empiricalnerd.com -empistllc.com -emplathe.monster -emplawyernet.com -empleoentuciudad.com -empleoline.com -emplkbilety.com -emploi-france.com -employeedictionary.com -employeeglossary.com -employerdictionary.com -employerglossary.com -employmentagencyusa.com -employmentcontract.works -employzzfh.space -empowerbyte.com -empowerdcu.com -empoweredservices.org -empowerffcu.com -empowering.zapto.org -empoweringgirlz.com -empoweringgirlz.net -empowerlex.com -empowermentparent.com -empowerplasticsurgery.com -empowerrfcu.com -empowerrss.com -empowerslife.com -empreendasemfronteiras.com -empregoaqui.site -empregosdesucesso.com -empregosemgoias.com -empresagloriasamotderoman.com -empty.support -emptylousersstop.com -empurarefrigeration.com -emqe.email -emran.cf -emroligh.cf -emroligh.ga -emroligh.gq -emroligh.ml -emroligh.tk -emrullahakgun.xyz -emsapp.net -emscentr.ru -emscongo.cd -emstjzh.com -emtdevhouse.com -emtelrilan.xyz -emtepsi.cf -emtepsi.ga -emtepsi.gq -emtepsi.ml -emtrn9cyvg0a.cf -emtrn9cyvg0a.ga -emtrn9cyvg0a.gq -emtrn9cyvg0a.ml -emtrn9cyvg0a.tk -emucasino.app -emule.cf -emule.ga -emule.gq -emunmail.com -emuvig.us -emuwarez.com -emvil.com -emvnf.live -emvr.net -emwe.ru -emwuzoom.com -emy.kr -emydsu.us -emysg.icu -emz.net -en2dhm.us -en565n6yt4be5.cf -en565n6yt4be5.ga -en565n6yt4be5.gq -en565n6yt4be5.ml -en565n6yt4be5.tk -en5ew4r53c4.cf -en5ew4r53c4.ga -en5ew4r53c4.gq -en5ew4r53c4.ml -en5ew4r53c4.tk -enabi.best -enablediversity.com -enables.us -enagav.cf -enagav.ga -enagav.gq -enagav.ml -enagav.tk -enagicman.com -enaksekali.ga -enalapril.ru -enamproshed.tk -enarmed.com -enasyn.com -enayu.com -enbago.net -enbdmh.ml -encadreurcycliste.com -encandenados.com -encartes.online -encedrop.site -enchantedindiancoffee.com -enciar.xyz -encinodata.com -encinowire.com -encloudhd.com -encodium.com -encorebancshares.com -encorehighenddesigners.com -encouragepress.com -encoybet1.com -encrot.uk.ht -encryptedmail.xyz -encryptedonion.com -encrytech.com -encuentra24.app -encuestas-diarias.online -encyclopedia-annabi.com -endamoebic.best -endeffectgaming.com -endergraph.com -endermospa.cd -endgamez.live -endler.network -endodonticassociate.com -endohost.com -endoscopicweightlosssoluctions.com -endosferes.ru -endozogkqq.site -endpoint-hosting.online -endrix.org -enduranceblue-original.website -endzonebet.net -eneasun.cf -eneasun.ga -eneasun.gq -enedes.cf -enedes.gq -enedes.ml -enedes.tk -enelaw.cf -enelaw.ga -enelaw.gq -enelaw.ml -enelaw.tk -enemiesofman.com -enemydon.xyz -enemydono.icu -enemyxuyj.space -enercranyr.eu -energetic-news.ru -energeticcity.net -energetus.pl -energiedeals.online -energieloket.tools -energon-co.ru -energy-analyzer.com -energyce.cyou -energycomplianceinsight.com -energydonwell.com -energyfriendlyhome.com -energylord.best -energymail.co.cc -energymails.com -energymedicineglobal.com -energymonitor.pl -energysavvy.info -energysavvy.net -energysavvy.org -energysavvyoptix.com -energywatch.mobi -energywidetimes.com -enestmep.com -enevthom.gq -enevthom.ml -enevthom.tk -enewheretm.tk -enewscoralgables.com -enexgwen.ml -eneyatokar12.com -enf9m.live -enfejar90.xyz -enfgrs.site -enforkatoere.com -enformakhirdavat.site -enfsmq2wel.cf -enfsmq2wel.ga -enfsmq2wel.gq -enfsmq2wel.ml -enfsmq2wel.tk -enfusion.cam -enfusion.systems -enfusion.website -enfusion.xyz -eng-learning.ru -engadinstmoritz-booking.com -engagecoin.info -engagecoin.net -engagecoin.org -engagementfirm.com -engagextremely.com -engelwaldfarm.com -enggalman.ga -enggalman.ml -enginarmacunu.site -engine110.com -enginebasic.com -enginedirectory.info -engineemail.com -engineeredforsimplicity.com -engineeredforsimplicity.net -engineering-ai.com -enginemail.co.cc -enginetuwh.site -enginwork.com -engit.live -england4d.com -englandnews.info -englandvs.com -englearner.ru -englewoodedge.net -englishexp.com -englishlearn.org -englishmiaskype.ru -englishteachingfriends.com -englishviaskypes.ru -engsocial.com -engteach.com -enhancedsurgicalrecovery.com -enhancemalepotency.com -enhanceronly.com -enhancingworkforceleadership.com -enhancingworkforceleadership.org -enic.cd -eniddoctors.com -enidford.net -enigma-n.pro -enigma2n.pro -enigma4n.pro -enigmaff.pro -enigmagames.net -enigmaticowl.com -enikova.ru -eniyikahve.online -enj0yourfile.com -enjeolonmoda.xyz -enjobit.com -enjoy-lifestyle.us -enjoybag.website -enjoyingeachjourney.com -enjoyiqos.ru -enjoypixel.com -enkayasam.net -enkeldate-confirmed.com -enkeldate-meet-backup.com -enkeldate-meet.com -enlargement-xl.com -enlargementz.com -enlerama.eu -enlesho.ru -enligent.com -enmail.com -enmail1.com -enmenli.cf -enmenli.ga -enmenli.gq -enmenli.ml -enmenli.tk -enml.net -enmtuxjil7tjoh.cf -enmtuxjil7tjoh.ga -enmtuxjil7tjoh.gq -enmtuxjil7tjoh.ml -enmtuxjil7tjoh.tk -enneagramglobalschool.com -ennemail.ga -ennyslau.cf -ennyslau.ga -ennyslau.gq -ennyslau.ml -ennyslau.tk -enobu.live -enokgreen.cf -enokgreen.ga -enokgreen.gq -enokgreen.ml -enokgreen.tk -enometry.com -enonenerjiotomasyon.com -enpeare.ga -enpeare.tk -enput.com -enqd.com -enqd.net -enriched-health.site -enrollyourhealth.net -enron.cf -enron.ga -enron.gq -enron.ml -enroncorp.cf -enroncorp.ga -enroncorp.gq -enroncorp.ml -enroncorp.tk -enroute.africa -enseade.cf -enseade.ga -enseade.gq -enseade.ml -enseade.tk -ensembledynamics.com -ensight-usa.com -ensight-vn.com -ensonbahis.com -ensotv.net -enspara.energy -enspiral.mobi -enssycofa.com -ensudgesef.com -entekhab.group -entekhabeirani.com -enterbles.fun -enteremail.us -enterprise-secure-registration.com -enterprisebitcoin.com -enterpriseln.us -enterprisepackets.com -entertainerblog.com -entertainmebillings.com -entertainment-database.com -entertainment-pass.com -entertainmentblog.com -entertainmentphuket.fun -entertainmentstockmarket.com -enterto.com -enterxxx.net -entibeatz.online -entication.net -entirelynl.nl -entopios.net -entopios.org -entrastd.com -entrate.info -entreepreneurship.com -entrega-transportadora.ml -entregandobiblia.com.br -entrenuvols.net -entrenuvols.org -entreum.com -entropy.email -entrupy.info -entrupy.net -entrybl.xyz -entrylunc.us -entsm.com -entuziast-center.ru -enu.kr -enuygunbankalar.online -enuygunbankalar.xyz -enuygunfinansman.online -enuygunfinansman.xyz -env.tools -envatobundles.com -envelop2.tk -enviroconceptinternational.com -enviroconceptinternational.net -environmentastwork.com -envirophoenix.com -envisia.ru -envisica.cd -envolplus.com -envy17.com -envysa.com -envywork.ru -enwi7gpptiqee5slpxt.cf -enwi7gpptiqee5slpxt.ga -enwi7gpptiqee5slpxt.gq -enwi7gpptiqee5slpxt.ml -enwi7gpptiqee5slpxt.tk -eny.kr -enypoh.us -enythgehiqe.ru -enzomail.tk -enzooty.best -enzos-parnell-st-ennis.com -eo-z.com -eo5ser.us -eoapps.com -eob6sd.info -eocilspf.shop -eoctxd.icu -eodfku.info -eoffice.top -eoinbalara.com -eojiu1.site -eol.digital -eolif.com -eolot.site -eomail.com -eoncasino.com -eonmech.com -eoopy.com -eopleopp.shop -eoppeopl.shop -eorbs.com -eos-ram.info -eos24.media -eos2mail.com -eosonlinelearning.com -eotoplenie.ru -eovdfezpdto8ekb.cf -eovdfezpdto8ekb.ga -eovdfezpdto8ekb.gq -eovdfezpdto8ekb.ml -eovdfezpdto8ekb.tk -eovgyawwy.cf -eozxzcbqm.pl -epaj40wss.buzz -epam-hellas.org -eparis.pl -eparty.online -epayvip88.com -epb.ro -epcgpn.site -epchurchgh.org -epdsale.top -epenpoker.com -epewmail.com -ephemail.net -ephemeral.black -ephemeral.email -ephysiotherapist.com -epi-invest.ru -epiar.net -epic-forum.org -epic-tech.org -epic.swat.rip -epicallies.org -epicbait.site -epiccarry.ru -epicentrogt.com -epicfalls.com -epicgamers.mooo.com -epicmoney.gold -epicpresence.company -epicqq.info -epicreactblacksale.com -epicreactwomenssale.com -epics.cards -epicsap.site -epicsmagazine.com -epicsuccessteam.com -epictv.pl -epicwave.desi -epicwebdesigners.com -epicxel.com -epidamnus.com -epideme.xyz -epidifiak.info -epieye.com -epigeneticsconference.org -epigeneticstation.com -epigeneticstest.com -epiglotteres.com -epinzen.site -epionepavilion.com -episcope.site -episodul.online -epit.info -epitheaurq.space -epitin.cf -epitin.ga -epitin.ml -epitin.tk -epitom.com -epizmail.com -eplaytherapy.com -eplixs.com -epmail.com -epmnko.site -epnleqj.site -epomail.com -epoqjoie.shop -eporadnictwo.pl -eposredniak.pl -epostmail.comx.cf -epot.ga -epot.pro -epowerhousepc.com -epozn.net -eppicsi.site -eppik.ru -eppvcanks.shop -epr49y5b.bee.pl -epreng.net -eprimeinc.com -eprofitacademy.net -epropertytaxappeal.net -epropertytaxappeal.org -epscinc.com -epshop.online -epsilonzulu.webmailious.top -eptnxuffm.shop -epubb.site -epulat.com -epvmo.us -epvzs5.com -epw88.com -epwenner.de -epweqdlzy.shop -epwnhsss.xyz -epwwrestling.com -epxs.email -epyc.asia -epycn1.site -epyontech.net -epypqm.shop -eq-trainer.ru -eq2shs5rva7nkwibh6.cf -eq2shs5rva7nkwibh6.ga -eq2shs5rva7nkwibh6.gq -eq2shs5rva7nkwibh6.ml -eq2shs5rva7nkwibh6.tk -eqador-nedv.ru -eqasmail.com -eqbill.com -eqbo62qzu2r8i0vl.cf -eqbo62qzu2r8i0vl.ga -eqbo62qzu2r8i0vl.gq -eqbo62qzu2r8i0vl.ml -eqbo62qzu2r8i0vl.tk -eqeqeqeqe.tk -eqgigyhce.shop -eqiluxspam.ga -eqimail.com -eqlifecoaching.com -eqop.email -eqqsale.top -eqra.news -eqrsxitx.pl -eqstqbh7hotkm.cf -eqstqbh7hotkm.ga -eqstqbh7hotkm.gq -eqstqbh7hotkm.ml -eqstqbh7hotkm.tk -eqtlvr.us -equalitywalk.org -equalizer700je.online -equalla.icu -equallyblessed.com -equalpi.xyz -equalscra.fun -equalsn.icu -equateur.cd -equerrenjv.space -eques.jobs -equestrianjump.com -equfic.xyz -equiapp.men -equicapital.co.uk -equicapital.net -equicapital.org -equicrypto.com -equiemail.com -equilibriumfusion.com -equility.info -equinemania.com -equiparen.buzz -equipcare.ru -equipde.icu -equipdeb.xyz -equipgl.icu -equiphub.us -equipment.solutions -equipmentglossary.com -equipmentshop.futbol -equipoidexa.org -equiteo.net -equiteoavocats.com -equiteoavocats.org -equity-management.cd -equityen.com -equityglobal.cloud -equonecredite.com -equorum.nu -equorum.online -equorum.se -equpio.com -equuate.ru -eqzvvsyx.shop -er-50.com -er0ysu.us -er98.top -era-logic.com -era7mail.com -eradio.africa -eraghou.cf -eraghou.ga -eraghou.gq -eraghou.ml -eraghou.tk -erailcomms.net -erajuditogel.org -eramis.ga -eramupload.website -eranhome.com -erarkhol.ga -erarkhol.gq -erarkhol.ml -erarkhol.tk -erasedebt.gq -erasedpaining.xyz -eraseo.com -erasf.com -eratetlo.tech -eratorcancelcousineg.me -erauiltyn.com -erbendao.com -erbfdssdgdg.xyz -erbpalsey.com -erbreathox.cf -erbreathox.ga -erbreathox.gq -erbreathox.ml -erbs-palsy-attorney.com -erc.city -ercanzincir.com -erciyesbali.com -erconserva.icu -erdem.se -erdemkitap.com -erdemyayinlari.com -erdyufaelesa.space -ereaderreviewcentral.com -ereaper.best -erebos120.xyz -erec-dysf.com -erec.tel -erecete.org -erectiele-nl.info -erectiestoornisoplossing.com -erectil-es.info -erectiledysf.com -erectiledysfunctionpillsest.com -erectiledysfunctionpillsonx.com -erection-us.com -erektil-no.info -erelthy.cf -erelthy.ga -erelthy.gq -erelthy.ml -erelthy.tk -erematotupet.host -erempoweredlife.com -erencan.ga -erermail.com -ereroc.ga -ereroc.gq -ereroc.ml -ereroc.tk -erersaju.xyz -erertmail.com -eresistor.net -erethism.site -eretoth.cf -eretoth.ga -eretoth.gq -eretoth.ml -eretoth.tk -erevusolutions.com -erexcolbart.eu -erexcolbart.xyz -erexgxddbx.site -erfoer.com -erge-grev-efef.online -ergma.ru -ergo-design.com.pl -ergo-ryukzak.ru -ergobabyrussian.ru -ergopsycholog.pl -ergthh34gefg43g.xyz -erguvanhaber.xyz -erh375j.xyz -eriakis.biz -eriakis.info -eriakis.net -eriakis.org -eric-bml.info -ericasfinejewelry.com -ericdisque.com -ericdmcguire.com -ericfilson.com -ericfress.com -ericherrmann.net -ericjohnson.ml -ericjwallace.com -erickmadrigal.ml -ericrberg.com -ericreyess.com -ericsieker.com -ericsreviews.com -erictelford.com -eriell.info -eriell.life -eriell.live -eriell.xyz -erikharvey.com -eriksendesign.com -erikthorsen.com -erinaria.info -erindalton.net -erinfe.cf -erinfe.ga -erinfe.ml -erinfe.tk -erinfortney.com -eringking.com -erinmccoycoaching.com -erinnfrechette.com -erinparkstud.com -erisfika.online -erjit.in -erk7oorgaxejvu.cf -erk7oorgaxejvu.ga -erk7oorgaxejvu.gq -erk7oorgaxejvu.ml -erk7oorgaxejvu.tk -erkadekorasyon.xyz -erkeksentikla.com -erkeksoru.xyz -erlera.cf -erlera.ga -erlera.gq -erlera.tk -ermacgroup.cd -ermail.cf -ermail.ga -ermail.gq -ermail.ml -ermail.tk -ermailo.com -ermawork.cf -ermawork.ga -ermawork.gq -ermawork.ml -ermawork.tk -ermcousa.net -ermcousa.us -ermeson.tk -ermusyapiinsaat.xyz -ernplk.tech -ero-host.ru -ero-king.com -ero-tube.org -ero-vr-matome.xyz -ero123.com -erocewar.site -erodate.com -erodate.fr -eroererwa.vv.cc -erofan.org -erofree.pro -erogluteknik.com -eroioppai.xyz -erokawa.biz -eroker.pl -eromail.com -eropicgi.site -eroquiz.ru -eros.cd -erotaiwan.com -erothde.cf -erothde.ga -erothde.gq -erothde.ml -erothde.tk -eroticadultdvds.com -eroticplanet24.de -erotopathy.site -erotubes.pro -erotyczna.eu -erotyka.pl -erovideo.pro -erovidos.com -eroxs.info -eroyal.net -erpin.org -erpr21n.buzz -erpratgey.cf -erpratgey.ga -erpratgey.gq -erpratgey.ml -erpratgey.tk -err33.com -erreemail.com -error-10by25.stream -error-codexx159.xyz -errorsinlogic.com -errorstud.io -ersantravels.com -ersatzauto.ch -ersatzs.com -ersaym.com -ersbizz.com -erseolog.cf -erseolog.ga -erseolog.ml -erseolog.tk -erslni.net -erslni.org -erssuperbowlshop.com -erstelecom.com -ersxdmzzua.pl -ersyersy.shop -ertacperde.com -ertanrecep.ga -ertanrecep123.tk -ertemaik.com -ertewurtiorie.co.cc -erti.de -ertki.online -erttobacco.online -erttobacco.xyz -ertuet5.tk -ertyuio.pl -eruj33y5g1a8isg95.cf -eruj33y5g1a8isg95.ga -eruj33y5g1a8isg95.gq -eruj33y5g1a8isg95.ml -eruj33y5g1a8isg95.tk -erunko.cf -erunko.ga -erunko.gq -erunko.tk -eruopwfv.shop -eruslook.ru -ervackrdes.xyz -ervbz.live -ervgre-rfer.online -erw.com -erwinvanstrien.online -erwsh.live -erx.mobi -eryoritwd1.cf -eryoritwd1.ga -eryoritwd1.gq -eryoritwd1.ml -eryoritwd1.tk -erythromycin.website -erzashelby.com -erzincanalperen.xyz -erzincankurufasulye.com -erzincanyildizbakir.com -erzurumankaranakliyat.com -erzurumemlaklari.online -erzurumhabercisi.com -erzurumhaberi.xyz -erzurumkizyurdu.online -erzurumsesveisik.xyz -erzurumyildizevdenevenakliyat.com -es2kbi.us -es2wyvi7ysz1mst.com -esa-one.com -esa-today.com -esabwhiua.shop -esaccas.cf -esaccas.ga -esaccas.gq -esaccas.tk -esamario.com -esanimalhospital.net -esanmail.com -esarwes.cf -esarwes.ga -esarwes.gq -esarwes.tk -esawblin.ga -esawblin.gq -esawblin.tk -esbano-magazin.ru -esbano-online.ru -esbano-ru.ru -esboba.store -esbuah.nl -esc.la -escacd.com -escalaaotronivel.com -escanor99.com -escapadas.online -escape2cruise.com -escapecomponents.store -escapehatchapp.com -escapeling.com -escapeteams.ru -escher-feynman.art -escherfeynman.organic -escholcreations.com -escholgroup.com.au -eschooltopia.net -esckiz.xyz -escolesobertes.cat -escoltesiguies.net -escondidoflorists.net -esconlu.cf -esconlu.gq -esconlu.ml -esconlu.tk -escorpianas.com -escortankara06.com -escortbayanport.com -escortcumbria.co.uk -escorthatti.com -escorts-in-prague.com -escortsaati.com -escortsdudley.com -escortvitrinim.com -escortworcester.co.uk -escritoriolojacenter1.site -escritossad.net -escsft.com -escuelanegociodigital.com -escuelaspoderosainfancia.com -esdbrush.us -esdbrushes.biz -esdbrushes.net -ese.kr -esemail.club -esemay.com -esender18.com -esenlernak.xyz -esenyurt-travesti.online -esenyurt-travesti.xyz -esenyurttravesti.fun -esenyurttravesti.info -esenyurttravesti.website -eseoconsultant.org -esfahanfood.com -esforum.us -esgame.pl -esgecsesli.xyz -esgeneri.com -esginvestments.com -esglesiatrevol.com -esgpromos.com -esherguo.com -eshipped.com -eshkmassage.site -eshta-cdn.com -eshta-studio.com -eshta.com -eshtacapital.com -eshtacdn.com -eshtafinance.com -eshtaholdings.com -eshtajobs.com -eshtal.com -eshtamall.com -eshtanet.com -eshtapay.com -eshtr.online -esidin.cf -esidin.ga -esidin.gq -esidin.ml -esidin.tk -esiix.com -esika.cd -esipfed.online -esiresid.shop -esishyd.cf -esishyd.ga -esishyd.tk -esivkov-spb.ru -esj1r8odwoo7eui.xyz -eskctgah.xyz -eskile.com -eskisehirdizayn.com -eskisehirhgm.xyz -eskortbayanizmir.net -eskortlar.biz -eslattice.site -eslchartsgg.com -eslechealth.cf -eslechealth.ga -eslechealth.ml -eslechealth.tk -eslicepizzaboqueriabarcelona.com -esltmc.online -esm.com -esmaczki.pl -esmaeeli.us -esmagpe.cf -esmeraldamagina.com -esmqp.com -esmst.ru -esmuse.me -esmvke.com -esonesox.shop -esotericans.ru -esoumail.com -esoundbest.info -esoxeson.shop -esoxnews.com -esoxy.xyz -espaceclient.live -espacepersonnel.pro -espaintimestogo.info -espaintimestogo.us -espamted3kepu.cf -espamted3kepu.ga -espamted3kepu.gq -espamted3kepu.ml -espamted3kepu.tk -espana-official.com -espanafarmaciaonline.xyz -espanatabs.com -espavosolutions.ru -espcialidadedacasa.website -especially-beam.xyz -espera-supplements.app -espera-supplements.ru -espera-supplements.us -espheratus.com -espi-cdn.com -espil-place-zabaw.pl -espinozadev.com -espinozamail.men -espinozaop.org -espiritusanto.org -esportenanet.com -esportgaming.com -esportmeesters.com -esportscoaching.net -esprit-pixel.com -espritblog.org -esprity.com -espycameras.com -esr.foundation -esrialternative.com -essanorakglad.site -essaouira.xyz -essay-introduction-buy.xyz -essay-top.biz -essayhelp.top -essaypian.email -essayrigh.space -essaysandthesis.online -essaysofthelight.org -essayto.buzz -essburyametel.site -essecs.com -essenard.gq -essentiaionized.com -essentialbabyitems.com -essentialm2.com -essentialsecurity.com -esseriod.com -essgladsuhoy.site -essh.ca -essjayar.com -esskernkofta.site -essmetelvyuga.site -esspurgagrafa.site -esspurgaparka.site -esssuhoyshuba.site -esszvenonomer.site -est.une.victime.ninja -esta-system.com -estabbetting.xyz -estalya.us -estate-invest.fr -estateboss.com -estatenearby.com -estateplanninglawyerscalifornia.com -estaterussia.info -estchnakerster.com -esteembpo.com -estekepcekulak.com -estekiskele.online -estekiskele.xyz -estelefon.site -estelove.com -esteplastikcerrahi.com -esterogeneraldentist.com -estesacekim.com -esteticum.ru -estetik.pw -estevespartners.com -estilsom.xyz -estimacao.ngo -estimat.info -estimatd.com -estivates793kg.online -estkolonya.site -eston.best -estonia-nedv.ru -estoniacv.online -estoniacv.xyz -estopg.com -estrate.ga -estress.net -estudent.edu.pl -estudiarcurso.online -estudio-gato.com -esuitesneakpeak.com -esveneckern.site -eswobd.info -eswseswo.shop -esxgrntq.pl -esy.es -eszernohleba.site -eszksy.us -eszmflzd.shop -et4veh6lg86bq5atox.cf -et4veh6lg86bq5atox.ga -et4veh6lg86bq5atox.gq -et4veh6lg86bq5atox.tk -et9p6.site -etaajir.net -etaalpha.spithamail.top -etabox.info -etachkila.com -etaetae46gaf.ga -etagirf.best -etaksa.com -etalase1.com -etang.com -etarochester.org -etas-archery.com -etaxmail.com -etbclwlt.priv.pl -etbicodys.site -etbiym.rest -etc.xyz -etchedinsilicon.com -etcone.net -etdcr5arsu3.cf -etdcr5arsu3.ga -etdcr5arsu3.gq -etdcr5arsu3.ml -etdcr5arsu3.tk -etdkewlpzb.space -etelford.net -etermin.info -eternalfitonline.com -eternalist.ru -eternalnymphets.net -eternity-craft.ru -etfstudies.com -etgdev.de -etgm9v.us -eth2btc.info -ethanolmarketplace.com -ethanschutzman.net -ether123.net -etherbackup.com -ethereal.email -etherealplunderer.com -ethereum-bestchange.ru -ethereum-code.site -ethereum1.top -ethereum24.ru -ethereumcodes.net -ethereumru.ru -etherinlmanalper.ga -etherinlmanalper.ml -etherinlmanalper.tk -ethermes.com -ethermes.org -etherpress.com -ethersports.org -ethersportz.info -etherstorm.org -ethicalencounters.org.uk -ethicallystrapped.com -ethiccouch.xyz -ethicsdishmoving.website -ethicsiq.org -ethicsliteracy.org -ethicusassetmanagement.com -ethiopia-nedv.ru -ethiopianmanufacturing.com -ethnicfoodrestaurants.com -ethnicingredients.com -ethreach.org -ethweneam.info -ethworks.org -etican.ga -etican.gq -etican.ml -eticaret.cloud -eticof.cf -eticof.ga -eticof.gq -eticof.ml -eticof.tk -etinpsychel.tk -etio90.org -etio90day.biz -etiology167vz.online -etiquetteconfidencecredibility.com -etiquettelatex.com -etisbew.xyz -etisun.com -etj64.space -etkilihaber.com -etlbox.com -etlgr.com -etlmgr.shop -etmail.com -etmail.top -etmexplorer.com -etnipuzzle.com -etoaffo.shop -etobx.xyz -etochq.com -etoic.com -etonracingboats.co.uk -etopmail.com -etoreo.com -etorkar.top -etorrent.shop -etotaal.info -etotvibor.ru -etovar.net.ua -etoymail.com -etpgajol.shop -etr500.cf -etr500.ga -etr500.gq -etr500.ml -etr500.tk -etr610.cf -etr610.ga -etr610.gq -etr610.ml -etr610.tk -etrackarchitect.com -etranquil.com -etranquil.net -etranquil.org -etras.ru -etravelgo.info -etreband.ru -etruxiod.shop -etrytmbkcq.pl -ets-products.ru -ets2android.mobi -ets6y.com -etsiptv.xyz -etspirt.ru -etszys.com -ettke.com -ettsetth.shop -etunad.cf -etunad.ga -etunad.ml -etunad.tk -eturist.info -etutplanlama.xyz -etvdruqm.shop -etwienmf7hs.cf -etwienmf7hs.ga -etwienmf7hs.gq -etwienmf7hs.ml -etxm.gq -etzdnetx.com -eu-med4.site -eu-portals.info -eu.dlink.cf -eu.dlink.gq -eu.dns-cloud.net -eu.dnsabr.com -eu.igg.biz -eu42ti.site -eu6genetic.com -eu83t4nncmxv3g2.xyz -euabds.com -euaqa.com -eubicgjm.pl -euchante.com -euchlidlabs.com -eucryptoassociation.org -eudemon422po.xyz -eue51chyzfil0.cf -eue51chyzfil0.ga -eue51chyzfil0.gq -eue51chyzfil0.ml -eue51chyzfil0.tk -eugenecentral.com -eugeneexperiencedrealtors.com -eugenehairsalons.com -euieua.com -eujyrtrffvdtrts.xyz -eukip.site -euleadong.site -eulogized693df.online -eupandevae.icu -euparknow.com -eur-sec1.cf -eur-sec1.ga -eur-sec1.gq -eur-sec1.ml -eur-sec1.tk -eur0.cf -eur0.ga -eur0.gq -eur0.ml -eurasiaaesthetic.com -eurasiamedia.biz -eurasiandigitalventures.fund -euratom.cd -eurazx.com -eurntm.com -euro2021football.com -euro24.bet -euro24.casino -euro24bet11.com -euro24bet12.com -euroaromalab.org -eurobail.com -eurobenchmark.net -eurobet88.net -eurobrazilcorretora.com -eurocasinos.biz -eurochocolate.club -eurochocolates.online -eurocuisine2012.info -eurodmain.com -eurofurniturelondon.com -eurogenet.com -eurohoopsdome.com -eurointex.ru -euromail.tk -euromech.com -euromillionsresults.be -europa-takeaway.com -europakebabdos.com -europartsmarket.com -europe-daily-news.host -europeaa318.xyz -europeamericabanglanews.com -europeanestate.com -europeanopenseries.online -europeanservicegroup.com -europeanvoice.info -europecruisessale.com -europeforcreators.com -europeforcreators.org -europeproducts2020.website -europesmail.gdn -europesurgery-uk.com -eurostyle46.ru -eurotrip-now.xyz -eurotripdeal.xyz -eurouniversitybahrain.com -eurovag.com -euroweb.email -eurox.eu -eusale2020.website -eusouempreendedoronline.com -euwbvkhuqwdrcp8m.cf -euwbvkhuqwdrcp8m.ml -euwbvkhuqwdrcp8m.tk -euwettensy.info -eux6oep.space -ev-ee.com -ev-mc.ru -ev.camp -ev1.nl -eva.bigmail.info -eva.fyi -evacarstens.fr -evacuator-bronnitcy.ru -evaelfie.mobi -evaforum.info -evaherbals.info -evakuator-teh.ru -evalovia.best -evaluatorapp.com -evalusave.com -evamail.com -evanackmann.net -evandro.cd -evanfox.info -evanhamilton.buzz -evanlifesciences.com -evanodonnell.buzz -evansimmonsmft.net -evanstonrealestateblog.com -evansville.com -evaonspace.com -evasea.com -evashirts.net -evavbe.ga -evavbe.gq -evavbe.ml -evavbe.tk -evavoyance.com -evbank.ru -evbholdings.com -evbholdingsllc.com -evcmail.com -evcr8twoxifpaw.cf -evcr8twoxifpaw.ga -evcr8twoxifpaw.gq -evcr8twoxifpaw.ml -evcr8twoxifpaw.tk -evcsoft.com -evdemutfakta.com -evdenekonomi.xyz -evdenevenakliyat.link -evdnbppeodp.mil.pl -evdy5rwtsh.cf -evdy5rwtsh.ga -evdy5rwtsh.gq -evdy5rwtsh.ml -evdy5rwtsh.tk -eveadamsinteriors.com -eveav.com -eveaz.xyz -eveb5t5.cf -eveb5t5.ga -eveb5t5.gq -eveb5t5.ml -eveb5t5.tk -evelandtrading.com -evelinecharlespro.com -evelineshoes.com -evelynnichols.com -evendmjishj.email -evengtough.xyz -evengwassevent.xyz -evenmoralistface.website -evenor-tech.net -eventao.com -eventexchange.ru -eventmeile1.com -eventplanneradvisor.com -eventpronto.com -events24.space -eventsbylinya.com -eventslane.com -eventsmith.net -eventtrainingsingapore.com -ever-market.ru -everestcast.net -evergo.igg.biz -evergreenghana.net -evergreenideas.info -evergreensenior.site -everifies.com -everlest.ru -everleto.ru -eversonia.net -evertime-revolution.biz -everto.us -everwallapi.com -everwallwedding.com -every-day-living.com -everyamerican.pub -everybabes.com -everybes.tk -everybodyone.org.ua -everybodyweb.com -everyday1234.live -everydayclub.ru -everydoorhasastory.com -everydroid.com -everyhomeforchrist.live -everyhomeforchrist.net -everynewr.tk -everyoneapparel.com -everyoneisdisappointed.com -everyshop.us -everytg.ml -everything-it.us -everythingcqc.org -everythingideas.com -everythingisnothing.com -everythinglifehouse.com -everythingpages.com -everythingstyle.com -everythingtheory.club -everythingtheory.org -everythingtheory.science -everythingz.club -everyusb.org -everywear-store.online -everywhen.best -evesage.com -evesmobile.com -evetdogrudurnm33349.cf -evetdogrudurnm33349.ml -evgaumgfh.shop -evgmodern.ru -evhybrid.club -evictionlawyersflorida.com -evidencebasedhealthclinic.com -evidencebasedneurologyclinic.com -evidenceintoaction.org -evidu.org -eviemccarthy.buzz -evil.download -evilbruce.com -evilcomputer.com -evilcore.tk -evilempire.website -evilin-expo.ru -evilmachines.net -evimekargocanta.xyz -evimrenk.net -evinad.cf -evinad.gq -evinad.ml -evironmentalrefugee.com -evischool.hk -evisumloket.com -evitamini.site -eviteuk.live -evkiwi.de -evlenmiyorum.com -evliyaogluotel.com -evlon1.us -evmail.com -evo.financial -evo.gold -evo.industries -evo.institute -evo.legal -evo.loans -evoaled091h.cf -evoaled091h.ga -evoaled091h.gq -evoaled091h.ml -evoaled091h.tk -evoandroidevo.me -evobmail.com -evocurrencies.com -evodigital.global -evodinner.com -evogame88.com -evolueselon.site -evolution.cd -evolution.financial -evolution24.de -evolutiongene.com -evolutionofintelligence.com -evolve-fireworks.com -evolveconsulting.biz -evolvedprofits.org -evolvedrecreationnews.club -evolvedworld.net -evolvedworld.online -evomindset.org -evonb.com -evonne.space -evonse.com -evopad.cf -evopad.ga -evopad.gq -evopad.ml -evopad.tk -evopeak-malenow.com -evopo.com -evopurr.com -evoraclinic.com -evoresidentialstopforeclosure.com -evoro.eu -evortal.eu -evoseed.com -evosocceronline.com -evotimer.com -evoveo.com -evpatiy.ru -evpskp.site -evq2.com -evr1.net -evropost.top -evropost.trade -evsmpi.net -evt5et4.cf -evt5et4.ga -evt5et4.gq -evt5et4.ml -evt5et4.tk -evuwbapau3.cf -evuwbapau3.ga -evuwbapau3.gq -evuwbapau3.ml -evwig.com -evxmail.net -evyush.com -ew-purse.com -ewa.kr -ewarjkit.in -ewatchesnow.com -eweathervane.com -ewebpills.com -ewebzine.net -eweemail.com -ewer.ml -ewerewea.shop -ewfcfew.online -ewgzsi.us -ewhig.xyz -ewjklflets.com -ewjklfmy.com -ewjklfweb.com -ewjklfyour.com -ewofjweooqwiocifus.ru -eworldplaza.com -ewpropertymanagement.info -ewpropertymanagement.net -ewpropertymanagement.org -ewrfw17.xyz -ewroteed.com -ewt35ttwant35.tk -ewtrip.club -ewumail.com -ewuobxpz47ck7xaw.cf -ewuobxpz47ck7xaw.ga -ewuobxpz47ck7xaw.gq -ewuobxpz47ck7xaw.ml -ewuobxpz47ck7xaw.tk -ewuyry.icu -eww.ro -ewwq.eu -ewxvrbhl.shop -ex-you.com -ex21pars.com -exactfitrepaircoupling.com -exactmail.com -exadrental.com -exaltatio.com -exaltic.com -examanedemanejocr.com -examcheap.com -examentechnique-site.com -exammission.website -examplefirem.org.ua -exampleforall.org.ua -examsread.com -exas20.site -exathat.cf -exathat.gq -exathat.ml -exathat.tk -exatpay.gq -exatpay.ml -exatpay.tk -exbackonline.com -exbcgj.rest -exboag.us -exboxlivecodes.com -exbte.com -exbts.com -excavatea.com -excavateljb.email -excavationmoon.xyz -excavatorhydrostaticpumps.biz -excavatorpumpparts.info -excavatorpumps.biz -excavatorrepairparts.biz -exceedexpose.us -exceedlaw.buzz -exceedproducts.club -excel-biz.ru -excel-guru.ru -excel-master.ru -excel-seminar.ru -exceleste.online -excellencance.xyz -excellencery.online -excellent-chinese-takeaway.com -excellent-supporting.com -excellentpro.ru -excellx.com -excelta.us -excelwfinansach.pl -exceptionalgiftshop.online -exceptionance.xyz -excersisedaystas.xyz -exchange-wallet.info -exchangefinancebroker.org -exchangefundsrealtime.com -excho.ru -excipientadvisor.com -excipientbook.com -excipientnet.com -excipientnetwork.com -excipientregister.com -excipientsadvisor.com -excipientshome.com -excipientstrade.com -excipientswiki.com -excipientwiki.com -excisemanship.best -excitedchat.com -excitingsupreme.info -excitingz.club -exclusivetravels.ru -exclusivewebhosting.co.uk -excursionista.ru -excursionshop.ru -exdisplaykitchens1.co.uk -exdocor.cf -exdocor.ml -exdocor.tk -execnursetech.com -executive-protection.org -executive.name -executiveleadershipsummit.com -executivelounge.media -executivenomads.com -executjcjh.bar -execuzio.xyz -exemptchildprefer.website -exems.net -exent.global -exent.melbourne -exent.online -exent.sydney -exentv1.com -exercio.online -exercisechain.com -exercisetrainer.net -exerdi.cf -exerdi.ga -exerdi.ml -exerdi.tk -exergaming.academy -exertwheen.com -exf5iqst87.icu -exfactor.com -exfcui.rest -exgenere.com -exhesi.cf -exhesi.ga -exhesi.gq -exhesi.ml -exi.kr -exi8tlxuyrbyif5.cf -exi8tlxuyrbyif5.ga -exi8tlxuyrbyif5.gq -exi8tlxuyrbyif5.ml -exile-rp.xyz -exileslime.buzz -eximail.com -exiq0air0ndsqbx2.cf -exiq0air0ndsqbx2.ga -exiq0air0ndsqbx2.ml -existiert.net -exisys.com -exitlag.ru -exitstageleft.net -exkiyx.xyz -exmichaled.tk -exmoordistillery.com -exmooroajn.space -exmx.icu -exneta.cf -exneta.ga -exneta.gq -exneta.ml -exnhxagu.site -exo-eco-photo.net -exo6s.site -exocmet.cf -exocmet.ga -exocmet.gq -exocmet.ml -exocmet.tk -exohab.com -exolozinium.ru -exoly.com -exordize.best -exoticcloth.net -exoticcoupons.com -exovel.ga -exovel.gq -exovel.ml -expanda.net -expandcode.com -expandiro.info -expansioncharm.com -expansivehr.com -expanstbrn.space -expatinsurances.com -expatjourney.app -expatjourney.world -expatmama.net -expectationsmusic.com -expeditionunderdog.com -expensa.com -experianprotect.com -experienceamg.com -experiencenormandy.com -experiencesegment.com -experienciacarmelo.com -experimentaljetset.xyz -experis-technology-solutions.com -expert-a.ru -expert-monster.ru -expert-ufo.ru -expertadnt.com -expertadvisormt4ea.com -expertcad.com -experthoney.com -expertmanager.ru -expertmarketinginfo.com -expertpestcontrolcallusnow.com -expertroofingbrisbane.com -expertruby.com -expirebox.com -expirebox.email -expirebox.me -expirebox.net -expirebox.org -expl0rer.cf -expl0rer.ga -expl0rer.gq -expl0rer.ml -expl0rer.tk -explicitgamer.com -explicitnwg.email -explodemail.com -exploit-pack.net -explorandoorlando.com -explorationfunder.com -explorativeeng.com -exploraxb.com -exploredcmetro.com -explorehotel.xyz -exploreonlinecolleges.com -exploresplit.com -explosin.online -explosivecandy.com -expo2020.media -expo2021dubai.media -expobids.info -exporthailand.com -expos3d.com -exposifood.com -exposureweb.net -expotavrida.ru -expozy.ru -expresgrup.com -express-date-having-else.xyz -express-mail.info -express-mvr.com -express-souq.website -express.net.ua -express1040.space -expressambalaj.com -expressambalaj.online -expressambalaj.xyz -expressbahiscasino.xyz -expressbest.ru -expressbuy2011.info -expressbuynow.com -expresscafe.info -expresscashcanada.com -expressemail.org -expressgopher.com -expresslan24.eu -expressmedtransportation.com -expressnote.press -expressui.com -expressyourselfceramics.com -expreswin42.com -expreswin77.com -expreswin81.com -expreswin82.com -expreswin88.com -exprisoner.com -exprosliver.com -expwebdesign.com -exrelay.app -exrp.cf -exrp.tk -exrutor.site -exserver.top -exsyde.com -ext-where-is-the-panel.info -extafas.gq -extafas.ml -extanewsmi.zzux.com -extels.ru -extendmale.com -extendsdesign.com -extendswindows.com -extenzereview1.net -extgeo.com -extic.com -extinheck.ga -extinheck.gq -extinheck.ml -extinheck.tk -extra-breast.info -extra-penis-enlargement.info -extra.oscarr.nl -extraaaa.tk -extraaaa2.ga -extraaaa2.tk -extraale.com -extraam.loan -extrabooks.site -extracccolorrfull.com -extracoloorfull.com -extradingsystems.com -extradouchebag.tk -extraguide.site -extraguides.site -extralib.site -extramama.ru -extramanual.site -extramanuals.site -extraprofit.ru -extrarole.com -extrasize.biz -extrasize.info -extraterretstrial.store -extraterretstrial.website -extravagandideas.com -extravagant.pl -extravangantlyloved.life -extremail.ru -extremcase.com -extreme-trax.com -extremebacklinks.info -extremedown.ninja -extremeeasy.com -extremeideasnow.info -extry.org -exttract.email -extureme.com -exwta.us -exxale.shop -exxale.space -exxon-mobil.tk -exxoncars.com -exxx.club -exy.email -ey5kg8zm.mil.pl -ey943m8deswkmst.com -eyal-golan.com -eyandex.ru -eyaok1.us -eybnmgbd.shop -eybtjr.us -eyeballstore.com -eyecanyrdo.space -eyecaredoctors.net -eyecaremangement.net -eyeemail.com -eyefullproductions.com -eyejewlzz.net -eyelashextensionsinottawa.com -eyelashinottawa.com -eyelidsflorida.com -eyeonprisons.com -eyepain.org -eyepaste.com -eyepatchesforboys.com -eyesandfeet.com -eyesandfruitloops.com -eyespains.info -eyesshop.live -eyetique.info -eyimail.com -eykr7a.com -eylqny.xyz -eylulbasimevi.com -eym69.com -eym69.me -eymail.com -eymenege211.ml -eyndc.com -eyqkwn.info -eyso.de -eysoe.com -eytnpggb.xyz -eyusedf.shop -eywa-stroy.ru -eywheywi.shop -eyx4g9.com -eyyvuguo.shop -ez-shopping.info -ez.lv -ez2zc.com -ezadvantage.com -ezaklady.net.pl -ezanalytics.info -ezbatteryconditioning.com -ezbetlive.com -ezboost.tk -ezdato.com -ezeble.site -ezebora.com -ezeca.com -ezehe.com -ezekush.com -ezen43.pl -ezen74.pl -ezentreeslt.com -ezerplus.com -ezetpar.cf -ezetpar.ga -ezetpar.gq -ezetpar.ml -ezetpar.tk -ezfill.club -ezfill.com -ezfree.online -ezgaga.com -ezhandui.com -ezhulenev.fvds.ru -ezico.loan -eziegg.com -ezimail.com -ezinmj.us -ezip.site -ezisource.com -ezlearningcourses.com -ezlk0.info -ezlo.co -ezmaexprees.com -ezmail.top -ezmailbox.info -ezmails.info -ezmine.online -ezmspcloud.com -eznul.live -ezowerth.cf -ezowerth.ga -ezowerth.tk -ezoworld.info -ezpackandpost.com -ezprice.co -ezprvcxickyq.cf -ezprvcxickyq.ga -ezprvcxickyq.gq -ezprvcxickyq.ml -ezprvcxickyq.tk -ezpulse.com -ezralandry.com -ezriderairride.com -ezriderairshocks.com -ezsi.email -ezskoolz.com -ezstest.com -ezuneed.com -ezvsmk.tk -ezweeedonline.best -ezy2buy.info -ezybarber.com -ezyscholarships.com -ezz.bid -ezze.tech -ezzzi.com -f-aq.info -f-best.net -f-best.org -f-ckjack.com -f-clubtv.com -f-hanayoshi.com -f-itnes.com -f-look.ru -f-nacarisk.ru -f-neyrosystem.ru -f-oproz.ru -f-response.net -f-response.org -f-unicorn.com -f-wheel.com -f.bgsaddrmwn.me -f.moza.pl -f.polosburberry.com -f.seoestore.us -f00d-network.com -f0205.trustcombat.com -f0ae7.club -f0d1rdk5t.pl -f0k4vk.us -f0nbot.us -f1775.com -f18yqi.info -f1batt.com -f1batteries.com -f1betiran.net -f1betiran.org -f1bob.com -f1fan.xyz -f1kzc0d3.cf -f1kzc0d3.ga -f1kzc0d3.gq -f1kzc0d3.ml -f1kzc0d3.tk -f1mohsc5r17tuv8.xyz -f1pt.com -f1s4rr.us -f1ty6b.site -f1wr04.us -f2021.me -f2bcasino.info -f2bcasino.net -f2bcasino.org -f2dtransfer10.com -f2ht.us -f2i.ru -f2ksirhlrgdkvwa.cf -f2ksirhlrgdkvwa.ga -f2ksirhlrgdkvwa.gq -f2ksirhlrgdkvwa.ml -f2ksirhlrgdkvwa.tk -f2movies.club -f2movies.fun -f2movies.online -f2movies.xyz -f301.com -f31dc8.info -f342.club -f39mltl5qyhyfx.cf -f39mltl5qyhyfx.ga -f39mltl5qyhyfx.gq -f39mltl5qyhyfx.ml -f3a2kpufnyxgau2kd.cf -f3a2kpufnyxgau2kd.ga -f3a2kpufnyxgau2kd.gq -f3a2kpufnyxgau2kd.ml -f3a2kpufnyxgau2kd.tk -f3c1jl.online -f3osyumu.pl -f3r2x5.com -f3wv61.us -f4445.com -f44el.site -f499a.club -f49e4ad.xyz -f4af545634b4a6ae0c.xyz -f4i20j.casa -f4k.es -f5.si -f538.xyz -f53tuxm9btcr.cf -f53tuxm9btcr.ga -f53tuxm9btcr.gq -f53tuxm9btcr.ml -f53tuxm9btcr.tk -f5brmn.us -f5cb9.site -f5d0b.club -f5f6a.xyz -f5foster.com -f5tv.site -f5u3m.top -f5xzer.site -f64kn.site -f64uf.com -f691.club -f6g2w9.accountant -f6kbl.cloud -f6vexe.us -f6w0tu0skwdz.cf -f6w0tu0skwdz.ga -f6w0tu0skwdz.gq -f6w0tu0skwdz.ml -f6w0tu0skwdz.tk -f7e6.xyz -f7qmww.online -f7scene.com -f81tl.site -f843de1a.xyz -f88store.com -f8r1ux.site -f8x1eb.us -f9094.com -f9164.club -f921935.xyz -f97vfopz932slpak.cf -f97vfopz932slpak.ga -f97vfopz932slpak.gq -f97vfopz932slpak.ml -f97vfopz932slpak.tk -f9827.com -f9c3df.club -f9enterprises.icu -f9ut7.icu -fa23d12wsd.com -fa23dfvmlp.com -fa38.club -fa416.site -fa452.xyz -fa4pmz.us -faa-certification.com -faaakb000ktai.ga -faacertificateofwaiver.com -faadictionary.com -faadronewaiver.com -faaliyetim.xyz -faan.de -faatest.info -faatest.net -faawaiver.info -faawaiver.net -fabaporter.com -fabelk.monster -fabfabhome.com -fabhax.com -fabianschlaepfer.com -fabioscapella.com -fabnicalsa.tk -fabricrebublic.store -fabricsonmillst.com -fabricsukproperty.com -fabricsvelvet.com -fabricsxla.com -fabricszarin.com -fabrum.ru -fabrykakadru.pl -fabrykakoronek.pl -fabstract.org -fabu11.site -fabu14.site -fabu6.site -fabulouslifestyle.tips -face-club.website -face-tamtam.site -face2face-cafe.site -facebaby.life -facebak.online -facebook-adult.com -facebook-arenda.ru -facebook-egy.com -facebook-email.cf -facebook-email.ga -facebook-email.ml -facebook199.xyz -facebooklol.ga -facebookmail.gq -facebookmail.ml -facebooky.shop -facech.com -facedropship.com -faceepicentre.com -faceimagebook.com -facemaskbox.com -facenewsk.fun -faceplacefoto.com -facepook.ru -faceporn.me -facerodate.fun -faceshop.live -facestate.com -facetlabs.net -facewaka.site -facialboook.site -facilesend.com -facilitation.buzz -facilityservices24.de -fackme.gq -facpidif.ga -facpidif.gq -facpidif.ml -facpidif.tk -factnotfiction.org -factopedia.pl -factor-10.com -factorizalo.com -factorlibidox.icu -factorquemagrasacomprar.com -factory-action-hit.space -factoryburberryoutlet.com -factorydrugs.com -factoryfutsal.com -factoryhealth.website -factorypeople.com -factsabouteverything.org -factsandtops.ru -factsofturkey.net -factume.online -factume.shop -facturecolombia.info -factuur.org -factwalk.com -faculdade.global -faculdadejk.net -faculdadejk.org -facy-jp.com -fada6868.com -fades-sad.ru -fadingemail.com -fadingemails.com -fadluna.com -fadve.ru -fae412wdfjjklpp.com -fae42wsdf.com -fae45223wed23.com -fae4523edf.com -fae452we334fvbmaa.com -fae4dew2vb.com -faea2223dddfvb.com -faea22wsb.com -faea2wsxv.com -faeaswwdf.com -faecesmail.me -faekos.website -faer.oazis.site -faer2.oazis.site -faer3.oazis.site -faer5.oazis.site -faeress.ru -faerynicethings.info -faerynicethings.net -faerynicethings.org -faes-dev1.info -faesdev1.host -faesiher.cf -faesiher.ga -faesiher.tk -fafacheng.com -fafamai.com -fafrem3456ails.com -fag.wf -fagbemi.biz -fagbxy1iioa3ue.cf -fagbxy1iioa3ue.ga -fagbxy1iioa3ue.gq -fagbxy1iioa3ue.ml -fagbxy1iioa3ue.tk -fagkn.live -fagozi.store -fahad-tamimi.info -fahastores.site -fahmi-amirudin.tech -fahutanpraise.website -faicarde.cf -faicarde.ga -faicarde.gq -faicarde.ml -faicarde.tk -faiencaqkw.space -failbone.com -failgifs.com -failinga.nl -failmega.ru -failoftheweek.com -failoftheweek.net -failoftheyear.com -failure.zone -failureoftheday.com -failureoftheweek.com -faiphoge.cf -faiphoge.ga -faiphoge.gq -faiphoge.ml -faiphoge.tk -fair-paski.pl -fair-tour.ru -fairandcostly.com -fairchildsystems.com -fairdealing.org -fairesonmasque.com -fairfaxbracesdoctor.com -fairholmepartner.com -fairhousingmd.com -fairieslagoon.net -fairleigh15733.co.pl -fairmontzimbalilodge.com -fairocketsmail.com -fairprice.house -fairwammqi.space -fairylig.xyz -fairymails.net -fairynicethings.net -fairytaleworld.info -faisalnabulsi.com -faispechab.cf -faispechab.ml -faispechab.tk -faithbox.email -faithbox.us -faithecchurch.org -faithin.org -faithkills.com -faithkills.org -faithmail.org -faithmountainbaptist.net -faithq.org -faithrelegateframe.site -faizsizaraba.com -faizsizev.net -fajarqq.org -fajeras.design -fajillasparavasosdepapel.com -fajnadomena.pl -fajrsystem.com -fake-box.com -fake-email.pp.ua -fake-foakleys.org -fake-mail.cf -fake-mail.ga -fake-mail.gq -fake-mail.live -fake-mail.ml -fake-mail.tk -fake-raybans.org -fake-wegwerf.email -fake.goodge.ca -fake.toys -fake.zerofly.blog -fakecallapp.com -fakedemail.com -fakedoctorsnote.net -fakeemail.de -fakeemail.tk -fakeinbox.cf -fakeinbox.com -fakeinbox.ga -fakeinbox.info -fakeinbox.ml -fakeinbox.tk -fakeinformation.com -fakelouisvuittonrun.com -fakemail.com -fakemail.fr -fakemail.intimsex.de -fakemail.net -fakemail.win -fakemail93.info -fakemailgenerator.com -fakemailgenerator.net -fakemails.cf -fakemails.ga -fakemails.gq -fakemails.ml -fakemailz.com -fakemyinbox.cf -fakemyinbox.com -fakemyinbox.ga -fakemyinbox.gq -fakemyinbox.ml -fakeoakleys.net -fakeoakleysreal.us -fakesatiricfeud.website -faketagheuer.top -faketemp.email -fakewings.com -fakher.dev -fakima.com -fakiralio.ga -fakiralio.ml -faktionlabs.com -faktoper.ru -fakyah.ga -fakyah.ml -falazone.com -falcer.xyz -falconcapital.investments -falconheavylaunch.net -falconsportsshop.com -falconsproteamjerseys.com -falconsproteamsshop.com -falconssportshoponline.com -falffers.com -falguckpet.ml -falguckpet.tk -fall-sale-offers.shop -fallin1.ddns.me.uk -fallin2.dyndns.pro -fallinlove.info -fallloveinlv.com -fallmt2.com -fallog.com -fallschurchdentalwellnesscenter.com -fallschurchshowerglass.com -fallsforyou.com -fallsopc.com -fallstyleforu.com -falmeto.cf -falmeto.ga -falmeto.gq -falmeto.ml -falmeto.tk -falove.com -falrxnryfqio.cf -falrxnryfqio.ga -falrxnryfqio.gq -falrxnryfqio.ml -falrxnryfqio.tk -famail.win -famalsa.cf -famalsa.ga -famalsa.gq -famalsa.ml -famalsa.tk -famarecords.com -fameabstract.buzz -famemc.net -famemma.net -famenyc.org -familia-forum.ru -familiaresiliente.com -familiarizeyourself.com -familiashop.ru -familiekersten.tk -familienhomepage.de -famillet.com -family-class.ru -family-medical.website -familyandlife.ru -familycreeps.com -familyfallriver.org -familyfive.ru -familyhomesecurity.com -familyindependent.com -familylist.ru -familyoo.com -familyprqs.club -familyprqs.host -familyright.ru -familysavingsz.com -familyschoolbell.com -familytoday.us -fammix.com -famousfamigliauae.com -famoustwitter.com -fampec.com -famsend.com -famsunny.com -fanabulous.page -fanack.info -fanatxclub.com -fanbasic.org -fancinematoday.com -fanclub.pm -fanclubgiusepperossiny.com -fancoder.xyz -fancung.com -fancung.net -fancung.org -fancy-tapes.com -fancycarnavalmasks.com -fancycats.net -fancygee.xyz -fandamtastic.info -fandastico.com -fandaygames.com -fandemic.co -fanebet.com -fanemone.com -fanera365.ru -fanformed.com -fangchemao.com -fangdaige.com -fangdrooperver.ru -fangeradelman.com -fangfoundry.com -fanghuayuanyule.com -fangoh.com -fangsustri.cf -fangsustri.gq -fangsustri.ml -fangsustri.tk -fanhaodaquan.xyz -fanlogs.com -fanmonero.dns.navy -fannewshop.live -fannny.cf -fannny.ga -fannny.gq -fannny.ml -fanonne.ru -fanow1.site -fanpagenews.com -fanpix.com -fanpoosh.net -fanposh.net -fanpoush.com -fanpoush.net -fanqiegu.cn -fanrecognition.com -fans2fans.info -fansgrid.net -fansgrid.org -fanstrading.com -fansub.us -fansubgroup.com -fansworldwide.de -fanta24.com -fantalk.ru -fantaseri.ru -fantask.online -fantasque.best -fantastictask.info -fantastictask.org -fantastictasks.org -fantastictees.us -fantasy.cd -fantasyfinish.site -fantasyfootballhacks.com -fantasyhatch.com -fantasymail.de -fantasypodcast.com -fantasyri.ru -fantasysportsmanager.com -fantelu7.com -fanters.org -fanters.site -fantoma.best -fantomail.tk -fantorg96.ru -fanz.info -fanzer.com -fanzuku.com -fap.buzz -fapa.com -fapestore.site -fapeta.info -fapfiction.com -fapfiction.net -fapfiction.org -fapfl1.us -faphd.pro -fapinghd.com -fapjerk.com -fapufio0.site -fapvideo.pro -fapxxx.pro -fapzo.com -fapzy.com -faqewebvizional.website -far-king.com -far51.website -faraon-cazino.online -faraon.biz.pl -farbar.site -farchact.com -fardadl.site -farebooking.online -faremart.website -faremzon.com -farendear.com -farenga.fun -farewelltothee.com -farewqessz.com -farfrontier.net -farfurmail.tk -farfuturefate.com -fargus.eu -farijagiratikamiki10.ru -farimusicgroup.com -farinut.club -farkhi5oiy.com -farkos.website -farma-shop.tk -farma-shop24.com -farmacialoreto.shop -farmaciaporvera.com -farmakoop.org -farmamail.pw -farmandkettlefoods.com -farmasine.online -farmatsept.com -farmaz.space -farmbotics.com -farmbotics.net -farmdeu.com -farmer.are.nom.co -farmerlife.us -farmerrr.tk -farmersdictionary.com -farmersreference.com -farmerstrader.adult -farmingdictionary.com -farmingglossary.com -farmisa.info -farmmonitor.org -farmphuel.com -farmsteadwines.com -farmtoday.us -farn0n.us -farolillos.online -farr40.ru -farrahouse.co -farrse.co.uk -farsbet.net -farsightsnepal.com -farsihoroscope.net -farsionebet.info -farsionebet.org -fartbet.ru -fartcasino1.fun -fartcazino.fun -farteam.ru -fartovoe1.fun -fartsoundeffect.com -fartwallet.com -farujewelleryforacause.com -farukkurtulus.com -farwqevovox.com -fasciaklinikerna.se -fasciaspa.com -fascinery.com -fasf-wf-stsd01.xyz -fashion-hairistyle.org -fashion-handbagsoutlet.us -fashionactivist.com -fashionans.ru -fashionbeauty.website -fashionbets1.com -fashionbets10.com -fashionbets11.com -fashionbets13.com -fashionbets14.com -fashionbets18.com -fashionbets2.com -fashionbets20.com -fashionbets22.com -fashionbets24.com -fashionbets26.com -fashionbets29.com -fashionbets3.com -fashionbets30.com -fashionbets32.com -fashionbets34.com -fashionbets4.com -fashionbettv10.com -fashionbettv3.com -fashionbettv5.com -fashionbettv7.com -fashiondesignclothing.info -fashiondesignershoes.info -fashionelect.com -fashionfwd.net -fashionglobe.com -fashionhandbagsgirls.info -fashionhandbagsonsale.info -fashionical.com -fashionlibrary.online -fashionplugfans.ru -fashionplugnews.ru -fashionprime.xyz -fashionqq59.xyz -fashionsealhealthcareuniforms.net -fashionshoestrends.info -fashionsportsnews.com -fashionstresser.online -fashionstudios.ru -fashiontips.net -fashionturktv.com -fashionturktv.info -fashionturktv.org -fashionvogueoutlet.com -fashionwallets2012.info -fashionwatches2012.info -fashionwomenaccessories.com -fashionzone69.com -fasigula.name -fask1300.info -faskoss.website -faspoto.ga -faspoto.ml -faspoto.tk -fassagforpresident.ga -fast-breast-augmentation.info -fast-coin.com -fast-content-producer.com -fast-email.info -fast-isotretinoin.com -fast-like-hit.ru -fast-loans-uk.all.co.uk -fast-mail.fr -fast-mail.one -fast-mart-like.space -fast-max.ovh -fast-sildenafil.com -fast-slimming.info -fast-weightloss-methods.com -fast.cd -fast1688.com -fast2bet.asia -fast3std0wnload.com -fast4me.info -fastacura.com -fastair.info -fastandfreebooks.site -fastbigfiles.ru -fastboattolembongan.com -fastcash.net -fastcash.org -fastcash.us -fastcashloannetwork.us -fastcashloans.us -fastcashloansbadcredit.com -fastcashohhomes.com -fastcashorhomes.com -fastcashwahomes.com -fastcdn.cc -fastchevy.com -fastchrysler.com -fastdeal.com.br -fastdownloadcloud.ru -fasteacher.com -fastedates.ru -fastee.edu -fastemails.us -fasterino.ru -fastermail.com -fastermand.com -fasternet.biz -fastestpurchase.com -fastestsmtp.com -fastestwayto-losebellyfat.com -fastfilemover.com -fastfitnessroutine.com -fastfoodlife.com -fastfoodrecord.com -fastfude.com -fastfwd.dev -fastfx.net -fastgetsoft.tk -fastgotomail.com -fastgrowthpodcast.com -fastighetsmaklarenerja.com -fastinfra.net -fastkawasaki.com -fastleads.in -fastloans.org -fastloans.us -fastloans1080.co.uk -fastlottery.net -fastmailer.cf -fastmailforyou.net -fastmailnode.com -fastmailnow.com -fastmailplus.com -fastmailservice.info -fastmazda.com -fastmeetup.site -fastmessaging.com -fastmitsubishi.com -fastmobileemail.win -fastmoney.pro -fastmsg.us -fastnissan.com -fastnotify.press -fastology.net -fastoutlook.ga -fastpass.com -fastpayday-loanscanada.info -fastpaydayloan.us -fastpaydayloans.com -fastpaydayloans.org -fastpaydayloans.us -fastpochta.cf -fastpochta.ga -fastpochta.gq -fastpochta.ml -fastpochta.tk -fastpolin.cf -fastprinters.joburg -fastrazvod.xyz -fastseller.icu -fastsent.gq -fastserna.cf -fastserna.gq -fastserna.ml -fastservice.com -fastshipcialis.com -fastshipping.ru -fastshippingrus.com -fastshippingweed.com -fastslimming.info -fastspacea.ru -fastsubaru.com -fastsurf.com -fastsuzuki.com -fasttoyota.com -fastupgrade.website -fastweightlossplantips.com -fastxxx.site -fasty.site -fasty.xyz -fastyamaha.com -fat-buddha-tallaght-village.com -fat-extinguisher.org -fat-larrys-athlone.com -fata2b.site -fatalisto.tk -fatalorbit.com -fatbelly-cork.com -fatboyhappy.com -fatboyschippy.com -fatcatguide.com -fateh-kimouche.net -fatehkimouche.biz -fatehkimouche.org -fatetiz.ru -fatfinger.co -fatflap.com -fatguys.pl -fathir.cf -fathoni.info -fatjukebox.com -fatk2b.site -fatloss.help -fatloss9.com -fatlossdietreviews.com -fatlossfactorfacts.com -fatlossspecialist.com -fatmagulun-sucu-ne.com -fatmize.com -fatnbald.com -fattahkus.app -fatter.cat -fatty.run -fatum.info -fatwhs.us -faucetpay.ru -fauko.com -faultbaselinefrock.site -fauna1flora.ru -favalabs.site -favebets.com -favfav.com -favit.xyz -favo360.com -favochat.com -favochat.net -favorbag.site -favoribahis.org -favoribahis79.com -favoribahis99.com -favorite-number.com -favoriticket.com -favouritefriedchicken.com -favouritespb.ru -favsin.com -favspr11.com -fawem-ridnga.ru -fawiwasi.site -fawr-danas.ru -fawwaz.cf -fawwaz.ga -fawwaz.gq -fawwaz.ml -fax.dix.asia -faxapdf.com -faxarounddos.website -faxbet2.com -faxbet3.com -faxbet30.com -faxbet34.com -faxbet35.com -faxjet.com -fayd13b.site -fayd14b.site -fayesilag.com -fayiman.com -faynexfarma.site -faynexpharma.club -faze.biz -fazeclan.space -fazer-site.net -fazipic.site -faziti.info -fazmail.net -fazpaso.ru -fb2obd.com -fb53c2.club -fb8753.site -fbasuperhero.com -fbceminence.org -fbckyqxfn.pl -fbd37.space -fbdata.ru -fbeaveraqb.com -fbender.ml -fbf24.de -fbfbmarket.ru -fbfpxbhub.ga -fbfree.ml -fbfriendbb.site -fbfriendtq.site -fbft.com -fbi.coms.hk -fbjs15.com -fblike.app -fbma.tk -fbmail.usa.cc -fbmail1.ml -fbooktracking.info -fbooktracking.online -fboss3r.info -fbpintl.asia -fbpubi.com -fbq4diavo0xs.cf -fbq4diavo0xs.ga -fbq4diavo0xs.gq -fbq4diavo0xs.ml -fbq4diavo0xs.tk -fbr20.xyz -fbr24.xyz -fbr25.xyz -fbr26.xyz -fbr27.xyz -fbrfj.live -fbs-afiliasi.com -fbs-investing.com -fbsaffiliate.com -fbseu.finance -fbseu.financial -fbseu.link -fbsh.org -fbshirt.com -fbstigmes.gr -fbstradereu.finance -fbsturkiye.com -fbsukien2019.com -fbv89.us -fbviral.biz -fbvyb.us -fc01a.xyz -fc66998.com -fc69e.xyz -fca-nv.cf -fca-nv.ga -fca-nv.gq -fca-nv.ml -fca-nv.tk -fca3nh.us -fcamerapeak.info -fcankay.xyz -fcccanton.org -fcemarat.com -fcf6.xyz -fcfermana.com -fcgfdsts.ga -fchgvj.site -fchief3r.info -fchina.net -fchn2b.site -fchs.network -fcinter.info -fcit.de -fcka.email -fckgoogle.pl -fckingnomad.se -fckrylatskoe2000.ru -fckxmu.us -fcml.mx -fcmtdqcgh.tk -fcn08.space -fcna3b.site -fcna5b.site -fcpablogconferences.com -fcq82r.us -fcqddz.rest -fcrpg.org -fctemp.top -fcucfzg.site -fcwnfqdy.pc.pl -fcww25.icu -fd-sale.ru -fd21.com -fd99nhm5l4lsk.cf -fd99nhm5l4lsk.ga -fd99nhm5l4lsk.gq -fd99nhm5l4lsk.ml -fd99nhm5l4lsk.tk -fdaswmail.com -fdata004.live -fdata009.live -fdbm.site -fddeutschb.com -fddns.ml -fde1a9.us -fderf.com -fdev.info -fdfdsfds.com -fdffdffd.tk -fdgdfgdfgf.ml -fdgh5rb.online -fdkgf.com -fdmail.net -fdmuov.com -fdn1if5e.pl -fdniw.live -fdownload.net -fdrsdp.com -fdstlm.us -fdtle8.us -fdtn.email -fdtntbwjaf.pl -fdxglo.info -fdze1mdi.rocks -fdzs.info -fe-pj.com -fe26.club -fe325.com -fe9tor.com -fea2fa9.servebeer.com -feadutalca.tk -feaethplrsmel.cf -feaethplrsmel.ga -feaethplrsmel.gq -feaethplrsmel.ml -feaethplrsmel.tk -fealstream.com -feamail.com -feanfilms.ru -feardombook.com -feartoclear.app -featherliftusa.com -feathersinthehat.com -featsure.com -featuredyacht.club -feaubl.us -febbraio.cf -febbraio.gq -febeks.com -febmail.com -febrararas.net -febula.com -feccy.com -feceso.online -fechl.com -fecofardc.cd -fectsrelam.cf -fectsrelam.gq -feculent.xyz -fecupgwfd.pl -fedemployeeadvisor.com -federal-rewards.com -federal.us -federalcash.com -federalcash.us -federalcashagency.com -federalcashloannetwork.com -federalcashloans.com -federalemployeeconsultant.com -federalflaws.com -federalloans.com -federalloans.us -federalwayautorepair.com -fedev.ru -fedfaiz.com -fedfaizorani.com -fedfaizoranikarari.com -fedghwpa.shop -fedrw.org -fedupe.com -feeak.space -feeblily.xyz -feecoins.com -feedback60.website -feedbackads.com -feedbackadvantage.com -feedbackadvertising.com -feedbackadvertising.org -feedbackvase.com -feedblade.com -feeder-club.ru -feedinghungrykids.org -feedmecle.com -feedmob.org -feedmycloud.info -feedspot.com -feedspotmailer.com -feedthezombiechildren.org -feedxana.com -feeladult.com -feelgoodsite.tk -feelingjy.com -feelitall.org.ua -feelmyenergy.com -feeloaders.com -feelogfd.xyz -feeney-ltd.com -feesearac.cf -feesearac.ga -feesearac.gq -feesearac.ml -feesearac.tk -feestoverpass.buzz -feeteves.com -fegdemye.ru -fehuje.ru -feibet.com -feic.icu -feieda.com -feifan123.com -feifeijiasuqi.org -feignbloc.xyz -feignlarg.xyz -feignmedal.recipes -feikamjue.cf -feikamjue.ml -feilongyule.net -feirujlingnad.tk -feistyfemales.com -feizhailol.xyz -fejm.pl -fekcasinocrow.ru -fekemanko.rocks -fela.site -felcromatizma.com -feldroy.org -feleohe.com -felesteen.net -felhler.best -felhonetwork.space -felibag.ru -feliciapressdepot.com -felinibrand.com -felipealmeyda.ga -felipearon.com -felipecorp.com -felixapartments.com -felixbaby.net -felixkanar.ru -felixkanar1.ru -felixkanar2.ru -felixscent.com -felizpago.com -feljackpun.cf -feljackpun.ga -feljackpun.ml -feljackpun.tk -fellow-me.pw -fellowme.pw -fellowtravelers.com -felmoca.best -felmondas.info -felpega.cf -felpega.ga -felpega.tk -feltutorscan.gq -fema.email -femail.com -femalefemale.com -femalepayday.net -femaleprofiles.com -femaleviagra100.com -femalexl.site -feminatup.net -feminineembodimentcourse.com -femininestyle.ru -feminism.app -feminosent.net -feminyx.biz -femme-dresses.ru -femme-store.com -fenbin.icu -fenceessa.xyz -fencemeup.net -fenceshe.icu -fenceve.com -fenda.us -fenesitz.cf -fenesitz.gq -fenesitz.ml -fenesitz.tk -fenevbahce.ml -fengli4.com -fengli5.com -fengli8.com -fengli9.com -fengliao11.icu -fengting01.mygbiz.com -fengyun.net -fengyunzaqi.xyz -fenionline.com -fenix-band.online -fenixmail.pw -fenomen.net -fenshou.app -fenzuo29.icu -feoeha.rest -fepalh.com -feqiba.info -fer-gabon.org -ferastya.cf -ferastya.ga -ferastya.gq -ferastya.ml -ferastya.tk -ferdojenik30days.xyz -ferdosi.org -ferencikks.org -fereycorp.com -fergley.com -ferial.site -feridunyilmazlar.xyz -ferins.xyz -ferm-kinder.ru -ferma-lambertov.ru -fermathadaproof.com -fermaxxi.ru -fermaxxl.ru -fermeodelil.com -fermer1.ru -fern2b.site -fernandogrillo.net -fernblade.com -fernl.pw -feroxhosting.online -feroxhosting.shop -feroxhosting.space -feroxo.com -ferragamobagsjp.com -ferragamoshoesjp.com -ferragamoshopjp.com -ferraletrx.com -ferrdechi.cf -ferrdechi.gq -ferrdechi.ml -ferrdechi.tk -ferrexalostoc-online.com -ferringfamily.com -ferrydr.icu -ferryswor.com -ferstbankrottut.xyz -fertigschleifen.de -fertilityapp.com -fertilityplanit.net -fertilization488zh.online -fertilizing991jp.online -fervex-lek.pl -fervex-stosowanie.pl -fervip999.xyz -ferz-led.ru -ferzplaybar.ru -fesabok.ru -festetics.org -festgiganten.nu -festie.net -festivalofpensions.com -festivarugs.com -festivuswine.com -festoolrus.ru -festplattencrash.eu -festtycon.cf -festtycon.ga -festtycon.gq -festtycon.ml -festtycon.tk -fet8gh7.mil.pl -fetch-an-in-jobs-in-ca.fyi -fetch-in-jobs-in-ca.fyi -fetchbarry.com -fetchnet.co.uk -fetclips.se -fetedesmeresfrenchy.com -fethiyecruises.com -fethiyedeyim.xyz -fetih1453istanbul.xyz -fetishmodel.com -fetko.pl -feto.site -fettol.info -fettometern.com -fetzhosi.cf -fetzhosi.gq -feudalist.best -feuerlauf-deutschland.com -fever.camera -feverboard.com -fevercamera.shop -fevercameras.shop -feverche.xyz -feverdetection.camera -feverdetectioncamera.shop -feverout.xyz -feverscreening.camera -feverscreening.events -fevkuulb.shop -fevzi45.ml -fevzi78.ml -fevziuzun.com -fewdaysmoney.com -fewfwefwef.com -fewminor.men -fexa.site -fexbox.org -fexbox.ru -fexpost.com -feyerhermt.ws -ff-flow.com -ff-stickers.website -ff16222.com -ff18269.com -ff5036yl.com -ff852win.com -ff9ee.xyz -ffacommunity.shop -ffamilyaa.com -ffctfcts.xyz -ffdeee.co.cc -ffeast.com -ffeedzonea.site -fff062.com -fff813.com -ffffw.club -ffffw.site -ffgjz.club -ffgoodfoodeco.xyz -ffhwz.club -ffjweosyoljm001.com -fflipsharee.site -ffmovies.su -ffoffer.com -fforeffort.info -ffssddcc.com -fft-mail.com -fftjxfxn.shop -ffwebookun.com -ffwy.xyz -ffx.su -ffxw4i.site -fg2cj7.us -fgaqkx.rest -fgbocp.us -fgdg.de -fgfg999.com -fgfpnd.rest -fgfstore.info -fggfqoim.shop -fggjghkgjkgkgkghk.ml -fghmail.net -fgjnxcps.site -fglf.site -fglf.xyz -fgmx.de -fgohhn.host -fgonki.ru -fgopeat.com -fgpgso.icu -fgpplu.icu -fgr20u.stream -fgsd.de -fgsoas.top -fgsradffd.com -fguncxc.com -fgywvb.tokyo -fh16555555.com -fhaloancalifornia.net -fhapp55.com -fhccc30.com -fhccc32.com -fhccc34.com -fhccc37.com -fhccc39.com -fhccc41.com -fhccc44.com -fhccc45.com -fhccc47.com -fhccc49.com -fhccc56.com -fhccc59.com -fhccc64.com -fhccc66.com -fhccc68.com -fhccc70.com -fhccc71.com -fhccc74.com -fhccc77.com -fhccc79.com -fhccc80.com -fhccc81.com -fhccc83.com -fhccc86.com -fhccc87.com -fhccc89.com -fhccc90.com -fhccc94.com -fhccc95.com -fhccc97.com -fhczy5.us -fhead3r.info -fhfcmffub.shop -fhgjlhwxv.shop -fhgrus.icu -fhhbh.club -fhhbh.xyz -fhhy66.com -fhir.cloud -fhjkh.host -fhldj.live -fhlij.us -fhole.us -fhptcdn.net -fhqtmsk.pl -fhrvm9.online -fhsuh3.site -fhtsystem.com -fhuai.live -fhvnzk.us -fhvvbbvvbb.com -fhvxkg2t.xyz -fhylonline.com -fhyve5.us -fi-pdl.cf -fi-pdl.ga -fi-pdl.gq -fi-pdl.ml -fi-pdl.tk -fi-sale.online -fi3k.icu -fi5qy.us -fialh.xyz -fiam.club -fianance4all.com -fiannaoshea.com -fiastubof.cf -fiastubof.gq -fiastubof.ml -fiastubof.tk -fiat-brasil.club -fiat-chrysler.cf -fiat-chrysler.ga -fiat-chrysler.gq -fiat-chrysler.ml -fiat-chrysler.tk -fiat-india.club -fiat-rs.ru -fiat500.cf -fiat500.ga -fiat500.gq -fiat500.ml -fiat500.tk -fiatcare.com -fiatgroup.cf -fiatgroup.ga -fiatgroup.gq -fiatgroup.ml -fibered763aa.online -fiberglassshowerunits.biz -fiberlitbuildings.org -fibermother.top -fiberoptics4tn.com -fibimail.com -fibram.tech -fibredrama.com -fibrelayer.com -fibremarkupgland.site -fibresp.icu -fibreth.xyz -fibrethe.xyz -fibretr.xyz -fibretrac.xyz -fibringlue.net -fica.ga -fica.gq -fica.ml -fica.tk -fichet-lisboa.com -fichetlisboa.com -fichetservice.com -ficken.de -fickfotzen.mobi -fickremis.ga -fickremis.gq -fickremis.ml -fickremis.tk -fictional.group -fictionalize112co.online -fictionsite.com -fid-x.net -fidawines.com -fiddleblack.net -fidelio.best -fidelium10.com -fidellemusic.com -fidelverta.me -fidesrodzinna.pl -fidilitipro.com -fido.be -fidxrecruiting.com -fiechecklib.cf -fiechecklib.ga -fiechecklib.gq -fiechecklib.ml -fieldbredspaniel.com -fieldcasinoopi.ru -fieldfin.press -fieldguideadvv.icu -fieldleaf.com -fieldopolis.com -fieldriv.xyz -fieldtheory.club -fiemountaingems.com -fierceswimwear.com -fierromenu.store -fierymeets.xyz -fif55.company -fifa555.biz -fifa555x.com -fifa55cen.name -fifa55cen.tel -fifa55credit.site -fifa55credit.space -fifa55credit.top -fifa55credit.xyz -fifa55nut.com -fifa55pug.com -fifa55rs.com -fifa55w.net -fifacity.info -fifalottoasia.com -fifalottoking.com -fifalottou.com -fifamain.com -fifecars.co.uk -fifthdesign.com -fifthleisure.com -fifthminuteloan.com -fiftyfootmedia.com -figantiques.com -figastand.site -figgma.com -fighpromol.cf -fighpromol.ga -fighpromol.gq -fighpromol.ml -fighpromol.tk -fight-zorge.ru -fightallspam.com -fightbacknews.info -fightbreach.top -fightth.press -fightwrinkles.edu -figjs.com -figlmueller-lugeck.com -figly.net -figmail.me -figshot.com -figtrail.com -figueredo.info -figurescoin.com -fihcana.net -fiheartly.cf -fiheartly.ga -fiheartly.ml -fiheartly.tk -fiifke.de -fiiritsmini.tk -fiitjee.tk -fiix-lweracn.ru -fiji-nedv.ru -fika-lamfesa.ru -fika.website -fikachovlinks.ru -fikada.com -fiki1.site -fikrihidayah.cf -fikrihidayah.ga -fikrihidayah.gq -fikrihidayah.ml -fikrihidayah.tk -fikrinhdyh.cf -fikrinhdyh.ga -fikrinhdyh.gq -fikrinhdyh.ml -fikrinhdyh.tk -fikstore.com -fikumik97.ddns.info -filadelfiacom.com -filager.com -filakhbar.com -filbert4u.com -filberts4u.com -filcowanie.net -file-hipo.info -file-load-free.ru -file-rutor.org -file-up.fr -filea.site -fileboutiques.site -filebuffer.org -filebyter.com -filecakefree.com -fileconverterexpress.com -filedirectory.site -filedn.site -filee.site -filef.site -filefugu.com -fileg.site -filegrotto.com -fileh.site -filei.site -filel.site -fileli.site -fileloader.site -filemakerplugins.com -filemakertechniques.com -filemark.com -fileo.site -fileprotect.org -filerforma.site -filerpost.xyz -files-disk.org -files-host-box.info -files-usb-drive.info -files.vipgod.ru -filesclip.com -filesdir.site -fileslib.site -filespike.com -filet.site -fileu.site -filex.site -filezilla.info -filingsportal.com -filipinonannies.net -filipinoweather.info -filix.site -filix.xyz -fillari.net -fillersmedals.top -fillyflair.info -film-blog.biz -film-hit.xyz -film-online.xyz -film-tv-box.ru -filmabin.com -filmak.pl -filmaticsvr.com -filmbak.com -filmbr.net -filmemack.com -filmenstreaming.esy.es -filmesemcasa.site -filmexxx.site -filmflix.space -filmfrancais2019.com -filmharatis.xyz -filmhd720p.co -filmhuset.net -filmifullhdizlesene.com -filmifundey.xyz -filmindo89.com -filmlicious.club -filmlicious.host -filmlicious.online -filmlicious.site -filmlicious.xyz -filmmodu.online -filmottola.com -filmporno2013.com -filmprenser.gq -filmprenser.ml -filmprenser.tk -films-online-kino.ru -filmscool.xyz -filmsemi.mobi -filmsfrombeyond.info -filmsseller1.ru -filmstreaming-vf.club -filmstreaming.cash -filmsuggest.com -filmtop10.com -filmtupia.com -filmujaz.com -filmvf.stream -filmwedding.ru -filmxy.org -filmyerotyczne.pl -filmym.pl -filmyonli.ru -filmyou.org -filmyzilla.network -filomesh.ru -filomoplace.ru -filoppy.net -filoppy.org -filqmuu.site -filsgg.ru -filterr.com -filtidysuqqpg.site -filtracoms.info -filtresizefes.com -filu.site -filzmail.com -fimghkumv.shop -fimoulchoi.ga -fimoulchoi.gq -fimoulchoi.ml -fimoulchoi.tk -fin-ans.ru -fin-assistant.ru -fin-guru.ru -finalcredit.biz -finaldes.com -finaldraftmerchandise.com -finaldraftsstore.com -finalep.fun -finalevil.com -finalexpenseguru.com -finalfinalfinal.com -finalflu.xyz -finalflus.xyz -finalgre.xyz -finalize595jg.online -finaljewe.press -finaljudgedomain.com -finaljudgeplace.com -finaljudgesite.com -finaljudgewebsite.com -finalndcasinoonline.com -finalpan.us -finaltig.us -finaltoo.us -financas.online -finance-simply.ru -finance-times.info -finance.uni.me -financeand.coffee -financegoldbling.com -financehowtolearn.com -financehy.com -financeideas.org -financeland.com -financemagazinespot.com -financementor.ru -financemoneyblog.club -financeprosto.ru -financetimes.tech -financetutorial.org -financial-options.online -financialabundance.org -financialabundanceuniversity.com -financialadvicescheme.org -financialaid35.us -financialaid39.us -financialblog.club -financialchannel.ru -financialfreedomeducation.com -financialgerontology.com -financialmarketsadvisor.com -financialmomentum.com -financialplanner.services -financialpublishingsystems.com -financialsocietynews.club -financnimagazin.com -finans-disciplina.ru -finans-edenitsa.ru -finans-zapas.ru -finansblogs.ru -finansmobil.com -finantial-tech2.com -finasnbankrot.xyz -finbetkz.com -finchsoftware.com -find-brides.org -find-me-watch.com -find-new-cars-option.market -find-new-ride-online.market -find-person.com -find-suv-pricing-guides.rocks -find-your-men10.com -find.cy -findacriminalrecord.com -findafriendlynow.com -findahomeonline.info -findalawyerct.info -findanopportunity.org -findazey.space -findbankrates.com -findbesthgh.com -findbetterwhatever.com -findbrides.us -findcheap.uno -findcheapmichaelkorsbag.biz -findcoatswomen.com -findcurtio.ga -findcurtio.ml -findcurtio.tk -finddocter.com -findebooktoday.com -findemail.info -findep.xyz -findercos.com -findexpertcare.pro -findexperthub.pro -findflightstatus.com -findfreejamaica.com -findgeras.ga -findguides.site -findhealthcareproviders.org -findhotmilfstonight.com -findingcomputerrepairsanbernardino.com -findingremedy.xyz -findingyourfinancialpower.com -finditfoxvalley.com -findlayhomeshow.com -findleyfit.com -findlocalusjobs.com -findmanual.site -findmanualx.site -findme.land -findmolik.tk -findmovieonline.website -findmovingboxes.net -findmyappraisal.com -findoasis.com -findourstore.xyz -findpassage.com -findstablevideos.pro -findu.pl -findwater.ru -findwindowtinting.com -fineartadoption.net -fineartpetsketches.com -finefact.info -finek.net -fineoddity.com -finery.pl -fingalcafe-swords.com -fingermouse.org -fingersystemeurope.com -finikeakdeniz.xyz -finioios.gr -finishtimingtrailers.com -finkin.com -finland-nedv.ru -finlaygreen.buzz -finleywarner.buzz -finlitca.com -finnahappen.com -finnaz.website -finne.online -finney4.com -finnishknives.com -finnstromsentreprenad.se -fino-case.ru -finpar.ru -finprokachka.ru -finrigtht.finance -finrigthtfinance.com -finseti.ru -finsilan.gq -finsilan.tk -finspreads-spread-betting1.com -fintechistanbul.net -fintechturkiye.net -fintechturkiye.org -fintemax.com -finuprbal.ru -finxmail.com -finxmail.net -fiocharrest.cf -fiocharrest.ga -fiocharrest.tk -fiqueisemdividas.com -fir.hk -firamax.club -firasbizzari.com -firatsari.cf -firatsari.ga -firatsari.ml -firatsari.tk -fireads.best -fireads.shop -fireads.work -firearmsglossary.com -firebabyto.space -firebit.online -fireclones.com -fireconsole.com -firecookie.ml -firedemon.xyz -fireden.net -firedepartment.ru -firef0x.cf -firef0x.ga -firef0x.gq -firef0x.ml -firef0x.tk -fireflies.edu -fireiptv.net -firekassa.com -firekiwi.xyz -firema.cf -firema.ga -firema.ml -firema.tk -firemail.cc -firemail.org.ua -firemail.uz.ua -firemailbox.club -firemansbalm.com -firemanscream.com -firemapprints.com -firematchvn.cf -firematchvn.ga -firematchvn.gq -firematchvn.ml -firematchvn.tk -firemymail.co.cc -fireontheconception.com -fireplace72.ru -firesalemanager.com -firesigns.xyz -firesters.com -firestore.pl -firestryke.com -firestylemail.tk -firetekfiringsystems.com -firetopia.online -firevisa.com -firewallremoval.com -firewiredigital.com -firezomibies.com -firkintun.com -firlvdftp.shop -firma-frugtordning.dk -firma-remonty-warszawa.pl -firma1c.su -firmaa.pl -firmaogrodniczanestor.pl -firmfinancecompany.org -firmographix.com -firmspp.com -firmtoon.com -firmyuradres.xyz -firrior.ru -firsatmarketim.com -firsharlea.cf -firsharlea.ga -firsharlea.gq -firsharlea.ml -firsharlea.tk -first-class-oriental-takeaway.com -first-email.net -first-mail.info -first-mood.fun -first.baburn.com -firstaidglossary.com -firstaidsupplies.futbol -firstaidtrainingmelbournecbd.com.au -firstalaskansinstitute.net -firstalaskansinstitute.org -firstanaltube.com -firstandbest.site -firstaust.com -firstbet10.com -firstbitelife.com -firstbusinessgroup.cd -firstcalldecatur.org -firstcapitalfibers.com -firstclassarticle.com -firstclassemail.online -firstclasssocial.com -firstcoin.world -firstcount.com -firstcrownmedical.com -firstdeals.info -firste.ml -firstelit.icu -firstexpertise.com -firstflooring.biz -firsthingsu.net -firsthingsu.org -firsthome.shop -firsthyip.com -firstin.ca -firstineu.site -firstinforestry.com -firstk.co.cc -firstloannow.com -firstmeta.com -firstmovie.club -firstnamesmeanings.com -firstpagepressrelease.com -firstpaydayloanuk.co.uk -firstpressumter.info -firstpressumter.net -firstpuneproperties.com -firstresponderrehab.com -firstrest.com -firstrow.app -firstshoes.club -firststepdetoxcenter.com -firststepdetoxcenter.net -firststepfloridadetox.com -firststepschildrensnursery.com -firststopmusic.com -firstthingsu.net -firsttimes.in -firsttradelimited.info -firt.site -firul.ru -fischkun.de -fish-market.club -fish.skytale.net -fishandchips.website -fishandchipsinlondon.com -fishandgamemagazine.com -fishantibioticsdirect.org -fishchiro.com -fishchiropractic.com -fishdating.net -fishdoctor.vet -fisher19851231.xyz -fisherinvestments.site -fishfoodshop.life -fishfortomorrow.xyz -fishgame.net -fishing-break.ru -fishing.cam -fishingleisure.info -fishingmobile.org -fishingshop.live -fishingtackle.net -fishinnpost.com -fishlozktm.space -fishnets.xyz -fishslack.com -fishtropic.com -fishwater.ru -fishyes.info -fistclick-company.ru -fistikci.com -fit-7979.com -fitanu.info -fitanu.net -fitanu.org -fitbizbooster.com -fitbody2020.website -fitchyasociados.com -fitcommons.com -fitepito.me -fitflopsandals-us.com -fitflopsandalsonline.com -fitfoodieindia.com -fitfopsaleonline.com -fitforme.app -fitgy.com -fithikerchick.com -fitiguera.space -fitil-dmc.com -fitimail.eu -fitmotiv.ru -fitneeses.site -fitneesx.site -fitneezz.info -fitneezz.site -fitnesrezink.ru -fitness-exercise-machine.com -fitness-weight-loss.net -fitness-wolke.de -fitnessblogger.com -fitnesscaretips.com -fitnessdigest.ru -fitnessjockey.org -fitnessmojo.org -fitnessondemand.net -fitnessreviewsonline.com -fitnessuniverse.africa -fitnesszbyszko.pl -fitnestv.best -fitnr.net -fitnr.org -fito.de -fitofive.ru -fitscapital.top -fitschool.be -fitschool.space -fitshopp.space -fitsport.shop -fittinggeeks.pl -fitwell.org -fitzgeraldforjudge.com -fivatu.info -five-club.com -five-plus.net -five.emailfake.ml -five.fackme.gq -five27lic.com -five88.bet -fiveasidegame.com -fivedollardomains.com -fivefineshine.org -fivemail.de -fivemails.com -fivemhosting.online -fivemice.ru -fivemlog.com -fiveofus.info -fiveoutingfile.website -fiveqs.com -fiver5.ru -fiverme.cf -fiverme.ga -fiverme.ml -fiverrfan.com -fiverrfan.net -fivesmail.org.ua -fivestarclt.com -fivestars-market.com -fivgenetic.com -fivmsinglebplayer.ml -fivmsinglebplayer.tk -fivoca.com -fiwatani.com -fix-macosx.org -fix-phones.ru -fix-prise-bonus.ru -fix-up48.ru -fixblurryphotos.com -fixcabletvok.live -fixdinsurance.com -fixee.net -fixethernet.com -fixifu.info -fixiva.com -fixkauf24.de -fixl.ru -fixlab.tel -fixmail.tk -fixmydiesel.com -fixnums.best -fixthiserror.com -fixthisrecipe.com -fixturelibrary.com -fixwindowserror-doityourself.com -fixxashop.xyz -fixyourbrokenrelationships.com -fizjozel.pl -fizmail.com -fizmail.win -fizo.edu.com -fizzyroute66.xyz -fj-sale.online -fj1971.com -fjer.info -fjer.us -fjfj.de -fjiepz.us -fjindan.com -fjklm.xyz -fjkwerhfui.com -fjltcgcp.shop -fjm0k3.us -fjmjqd.us -fjpop.live -fjqbdg5g9fycb37tqtv.cf -fjqbdg5g9fycb37tqtv.ga -fjqbdg5g9fycb37tqtv.gq -fjqbdg5g9fycb37tqtv.ml -fjqbdg5g9fycb37tqtv.tk -fjradvisors.net -fjrcsc.icu -fjrhp5.us -fjs4xawnej1ky7l.xyz -fjsxco.site -fjtjh.com -fjtsale.top -fjumlcgpcad9qya.cf -fjumlcgpcad9qya.ga -fjumlcgpcad9qya.gq -fjumlcgpcad9qya.ml -fjumlcgpcad9qya.tk -fjxh-meirong.com -fjyumo.com -fjzxjscl.com -fk-sale.ru -fkbmhj.fun -fkdsloweqwemncasd.ru -fke1o.us -fkfgmailer.com -fkgmrn.fun -fkinyu.com -fkksol.com -fklbiy3ehlbu7j.cf -fklbiy3ehlbu7j.ga -fklbiy3ehlbu7j.gq -fklbiy3ehlbu7j.ml -fklbiy3ehlbu7j.tk -fknblqfoet475.cf -fknmwk.fun -fkoh1p.us -fkoljpuwhwm97.cf -fkoljpuwhwm97.ga -fkoljpuwhwm97.gq -fkoljpuwhwm97.ml -fkpmkb.fun -fkrcdwtuykc9sgwlut.cf -fkrcdwtuykc9sgwlut.ga -fkrcdwtuykc9sgwlut.gq -fkrcdwtuykc9sgwlut.ml -fkrcdwtuykc9sgwlut.tk -fkrmdr.fun -fksmpx.fun -fksmyx.fun -fktflex.com -fktmpn.fun -fkughosck.pl -fkuih.com -fkul2b.site -fkxf888.com -fkxmcw.fun -fkyg10b.site -fkyg11b.site -fkyg12b.site -fl.hatberkshire.com -fl158.site -fl1zr6.us -fl2nyhomes.com -flackrzjh.space -flagai.org -flagelcivr.space -flageob.info -flagstaffdoctors.com -flagtoflagvideo.com -flagxbetpinup.ru -flaian.site -flairvigor.com -flais.space -flame-asian-tapasbar.com -flamesindiantakeaway.com -flamingchicken.org -flamingogo.info -flamonis.tk -flaresand.top -flarmail.ga -flaselektronik.online -flash-mail.pro -flash-mail.xyz -flash-sale.icu -flashbjgsp.site -flashcongo.cd -flashdelivery.com -flashdis.email -flashearcelulares.com -flashgh.icu -flashgoto.com -flashhasabigforehead.xyz -flashingboards.net -flashmail.co -flashmail.pro -flashonlinematrix.com -flashpdf.com -flashpressa.ru -flashrews.site -flashsaletoday.com -flashservice.online -flashtatto.ru -flashu.nazwa.pl -flashuni.press -flashvoi.recipes -flashvoice.email -flat-whose.win -flat150.com -flatanssanov.tk -flatdisruptfind.website -flatfilecms.com -flatidfa.org.ua -flatoledtvs.com -flatothout.cf -flatothout.ga -flatothout.gq -flatothout.ml -flatratecallanswering.com -flatriverwrestling.com -flauntify.com -flavejmi.cf -flavejmi.gq -flavejmi.tk -flaviacadime.com -flavor.market -flavotcon.cf -flavotcon.ga -flavotcon.gq -flavotcon.ml -flavrpill.com -flavrwire.com -flawedcrashgrain.website -flawless-cream.ru -flawless-epilation.ru -flawlessbeing.com -flax.organic -flax.technology -flax3.com -flaxpeople.info -flaxpeople.org -flaxseedlemonoilfacewash.com -flaxx.ru -flb718.info -flbdhphtz.shop -flbrittanyrescue.com -flbrittanyrescue.org -flcarpetcleaningguide.org -flcp919.com -flcp921.com -flcp929.com -flcp934.com -fldatacenter.com -fldecnbvz.ga -fldetoxcenters.com -fleabitesinfo.com -fleckens.hu -fleekedges.com -fleekproducts.com -fleetcommercialfinance.org -fleggins-official.ru -flekto.shop -flemail.com -flemail.ru -flemieux.com -flesh-tattoo.ru -fleshcape.top -flester.igg.biz -fletesya.com -fleurdsign.online -fleurgoldthorpe.com -fleuristeshwmckenna.com -fleurs-fabrique.space -flexapplab.com -flexbeltcoupon.net -flexcellent.com -flexcodejam.org -flexeerous.cf -flexeerous.ga -flexeerous.gq -flexeerous.ml -flexeerous.tk -flexfactor.info -flexhosting.xyz -flexiblebrushes.org -flexiblebrushes.us -flexibleled.com -flexibleleds.com -flexibleleds.net -flexibleleds.org -flexionars.info -flexlimosy.info -flexmotivatie.info -flexninori.ga -flexracer.com -flexreicnam.cf -flexreicnam.ga -flexreicnam.gq -flexreicnam.tk -flexrosboti.xyz -flexyvibe.com -flg100.xyz -flhalfpricedlistings.com -flhalfpricelistings.com -flickershoppe.com -flickshot.id -flidel.xyz -flier345xr.online -flightcaster.com -flightdictionary.com -flightr.net -flightsap.com -flightsavebyme.site -flightsquest.com -flighttogoa.com -flimcirckill.cf -flimcirckill.ga -flimcirckill.tk -flin-rp.ru -flindevqaj.space -flingmark.com -flintcasino.online -fliperama.org -flipflopgal.com -flipflopsqueegee.net -flipinvestclub.com -flipob2b.com -flipob2b.net -flippers-forum.com -flipping.biz -flippingfinds.com -fliptags.xyz -fliqse.com -flirtey.pw -flismeif.com -flitafir.de -flitify.com -flixdot.com -flixen.net -flixluv.com -flld8d.us -flnm1bkkrfxah.cf -flnm1bkkrfxah.ga -flnm1bkkrfxah.gq -flnm1bkkrfxah.ml -flnm1bkkrfxah.tk -float247.com -floatation.tv -floatcart.com -floatjuice.com -floatplane.store -floatplane.tech -floatpodpersonal.com -floatpools.com -flockdete.xyz -flockresemblegravy.site -flok.us -floodbrother.com -floodcaus.icu -flooded.site -floodiwac.cf -floodiwac.ga -floodiwac.gq -floodiwac.ml -floodiwac.tk -floodpla.press -floodto.press -flooha.com -floorbroom.net -floorbroom.org -floorbroom.us -floorbrooms.biz -floorbrooms.net -floorbrooms.org -floorbrooms.us -floorcl.press -floorcra.xyz -floorcro.icu -floordri.fun -floorimot.cf -floorimot.gq -floorimot.ml -floorimot.tk -flooringbestoptions.com -flooringuj.com -floorlampinfo.com -floorma.xyz -floororde.icu -floorpayablegraze.site -floorsqueegee.org -floorsqueegee.us -floorsqueegees.biz -floorsqueegees.org -floorsqueegees.us -floorstr.icu -floorvelsia.cf -floorvelsia.ml -flop.cloud -florafauna.cf -floralparknyattorney.com -floranswer.ru -florapetit.com -floreall.ru -florean.org -floreatriversidelodge.com -floregtor.cf -floregtor.ga -floregtor.gq -floregtor.ml -floregtor.tk -florer.ru -floresans.com -floresansprint.com -floresta.ml -floricckgq.space -florida-nedv.ru -floridaaug.com -floridabankinglawblog.com -floridabookshop.com -floridacims.com -floridacnn.com -floridacruiseinjury.com -floridadanceco.net -floridadressage.com -floridafleeman.com -floridaharvard.com -floridahome.store -floridamovo.com -floridanettv.com -floridaopiatereliefcenter.com -floridaproductdesign.com -floridaquote.com -floridarains.com -floridarlt.com -floridastatevision.info -floridavacationsrentals.org -floridianprints.com -floriscope.site -florissantattorneys.com -florissantrentals.com -florium.ru -flormidabel.com -florokerama.ru -flort.site -flossed.org -flossic.com -flossuggboots.com -flotprom.ru -flourdlqvwr.email -flourpar.icu -flourwhit.buzz -flourworr.icu -flowathes.cf -flowathes.ga -flowathes.gq -flowathes.ml -flowathes.tk -flowbolt.com -flowcoachingpro.com -flowcontrolsystems.us -flower-03.com -flower-russia.ru -flowerbulbrussia.com -flowercorner.net -flowercouponsz.com -flowerdija.space -floweretta.ru -flowerkey.ru -flowermerry.com -flowermerry.net -flowermoundapartments.com -flowerpot.rest -flowers-dreams.ru -flowersetcfresno.com -flowerss.website -flowerwyz.com -flowexa.com -flowfthroughbrush.net -flowfthroughbrush.org -flowfthroughbrush.us -flowmeterfaq.com -flowthroughbrushes.com -flowthroughbrushes.us -flowthrubrush.biz -flowthrubrush.us -flowthrubrushes.com -flowthrubrushes.org -flowthrubrushes.us -flowu.com -floyd-mayweather.info -floyd-mayweather2011.info -floydmayweathermarcosmaidana.com -flpay.org -flpropinvest.com -flq912.info -fls4.gleeze.com -flsaid.com -flsb03.com -flsb04.com -flsb05.com -flsb06.com -flsb07.com -flsb08.com -flsb09.com -flsb10.com -flsb11.com -flsb13.com -flsb14.com -flsb15.com -flsb16.com -flsb17.com -flsb18.com -flsb19.com -flsb20.com -flshirts.xyz -flshows.com -flskdfrr.com -fltf16b.site -flu-cc.flu.cc -flu.cc -flucas.eu -flucassodergacxzren.eu -flucc.flu.cc -flucteausonc.cf -flucteausonc.ga -flucteausonc.gq -flucteausonc.ml -flucteausonc.tk -fluenthealthspot.com -flufarm.com -fluffsac.com -fluffysamoyedgarden.us -fluggez.xyz -fluidcampaign.com -fluidensity.com -fluidensity.info -fluidensity.org -fluidforce.net -fluidsoft.us -fluidvpn.com -fluidway.net -fluinsureebb.website -flukify.com -fluoksetin.ru -fluorescentcat.info -flurostation.com -flurre.com -flurred.com -flushawfu.icu -flushblast.buzz -flushsc.xyz -fluteranal.tk -fluthelpnac.cf -fluthelpnac.gq -fluthelpnac.tk -flutiner.cf -flutiner.ga -flutiner.gq -flutiner.tk -fluxfinancial.com -fluz-fluz.ru -flvtomp3.xyz -flwgenixfiber.site -flxam1.us -flxzkw.icu -fly-free.org -fly-ts.de -flyalmostfree.net -flyalmostfree.org -flyashbricksmanufacturers.com -flybild.ru -flycasual.org -flychooses.site -flycocoons.info -flycongo.cd -flyer24.shopping -flyeragency.com -flyernet.com -flyernyc.com -flyfrv.tk -flyhack.com -flyingbundle.com -flyingfakir.com -flyinggeek.net -flyingjersey.info -flyingmminiamericans.org -flyingmouse.info -flyjet.net -flymining.ru -flymir.ru -flynauru.com -flynauru.net -flyognivo.ru -flyoveraerials.com -flypdx.org -flypicks.com -flyplut.ru -flyrics.ru -flysafely.info -flyspam.com -flyte.design -flytvdigital.ltd -flyvid.ru -flyvivo.ru -flywheel-exchange.com -flywheel-labs.com -flyxnet.pw -fm1055.org -fm19.app -fm21.app -fm22.app -fm23.app -fm24.app -fm25.app -fm26.app -fm30.app -fm31.app -fm34.app -fm35.app -fm36.app -fm365.com -fm37.app -fm42.app -fm43.app -fm44.app -fm45.app -fm46.app -fm48.app -fm52.app -fm53.app -fm55.app -fm56.app -fm58.app -fm59.app -fm60.app -fm62.app -fm64.app -fm66.app -fm69.cf -fm69.ga -fm69.gq -fm69.ml -fm69.tk -fm7.app -fm72.app -fm73.app -fm74.app -fm76.app -fm77.app -fm79.app -fm8.app -fm80.app -fm81.app -fm82.app -fm83.app -fm86.app -fm88.app -fm88vn.net -fm89.app -fm90.app -fm94.app -fm96.app -fm97.app -fm98.app -fmail.online -fmail.ooo -fmail.party -fmail.pw -fmail10.de -fmailx.tk -fmailxc.com -fmailxc.com.com -fman.site -fmfmk.com -fmft.email -fmgroup-jacek.pl -fmicloud.tk -fmiv2r.com -fmmxnskw.site -fmovies-se.best -fmovies-to.best -fmpromagazine.com -fmproworld.com -fmrecipes.com -fmrecipes.org -fmserv.ru -fmv13ahtmbvklgvhsc.cf -fmv13ahtmbvklgvhsc.ga -fmv13ahtmbvklgvhsc.gq -fmv13ahtmbvklgvhsc.ml -fmv13ahtmbvklgvhsc.tk -fmv69.com -fmzhwa.info -fn-sale.online -fn5258.com -fn6yzx.us -fn7p2ay310.site -fnap1x.ru -fnhzl.live -fnisj892kosoks29293939.heliohost.org -fnkzwmhyv.shop -fnmedia.site -fnnus3bzo6eox0.cf -fnnus3bzo6eox0.ga -fnnus3bzo6eox0.gq -fnnus3bzo6eox0.ml -fnnus3bzo6eox0.tk -fnord.me -fnrehab.com -fnsese.xyz -fnujwkthy.shop -fnuxu6.us -fnwv73le26z90cz.xyz -fnx65ktx4b98it7.xyz -fnxm.xyz -fnyt.xyz -fnzm.net -fo-sale.online -fo588.com -fo788.com -fo9t34g3wlpb0.cf -fo9t34g3wlpb0.ga -fo9t34g3wlpb0.gq -fo9t34g3wlpb0.ml -fo9t34g3wlpb0.tk -foakibu.ga -foakibu.gq -foakibu.ml -foakibu.tk -foakleyscheap.net -foamform.com -foamiranclub.ru -fobjsr.us -fobsos.ml -fobunbindeel.website -focallhprj.space -focavas.info -foclient.com -focolare.org.pl -focus-proxy.com -focus-proxy.net -focusapp.com -focusdezign.com -focusdiscover.com -focusedenterprisesltd.com -focusial.com -focusingministries.com -focusingministry.com -focusingministry.net -focusingministry.org -focusproxy.com -focussedbrand.com -focussocialshop.com -fod-belastingdienst.online -fod-myminfin.email -fodl.net -fodmaster21pbjp.cf -foeencuu.shop -fogenoughera.website -fogeycnsd.space -fogkkmail.com -fogmart.com -fogostakeaway.com -fogris.ru -fogsportjop.ru -fogusa.ru -foikumou.biz -fojcyi.xyz -foktura.ru -fokusmrt.ga -fol.mx -folardeche.com -foldbagsy.info -folderiowa.com -foleyarmory.com -folhadesaopaulo.club -folhadesaopaulo.site -folhadesaopaulo.website -folhadesaopaulo.xyz -folhaonline.site -foliaapple.pl -folianokia.pl -folieshops.com -folietemperatur.website -folifirvi.net -folixx.website -folk-teatr.ru -folkfena.cf -folkfena.ga -folkfena.gq -folkfena.ml -folkfena.tk -folklofolie.com -follargratis-confirmed.com -follargratis-meet-backup.com -followbias.com -followbrand.net -followerfilter.com -follownews.press -followthetshirt.com -followthewhiterabbit.ru -folpjp.site -fomentify.com -fomohosting.com -fomorno.cf -fomorno.ga -fomorno.gq -fomorno.ml -fomorno.tk -fonatel.ru -fonbet-app.ru -fonbet-faq.ru -fonbetik.ru -fondationdusport.org -fondato.com -fondgoroddetstva.ru -fones.site -fongozg.com -foninanator.com -fonnection.org -fonsori.org -fonsview.ml -fontaccusefish.website -fontak.com -fontconf.com -fontspring.net -fontspring.org -fontzillion.net -foobarbot.net -food-discovery.net -food-drink-recipes.com -food-facts.ru -food-fusion-takeaway.com -food-journals.com -food-like-art.com -food-tribes.com -food315.xyz -food4kid.ru -foodbank150.com -foodbank150.net -foodblogs.blog -foodblogs.media -foodbooto.com -foodenset.com -foodgurutakeaway.com -foodhallimburg.com -foodhat.net -foodics.store -foodiesandiet.com -foodiesforum.com -foodinnballyfermot.com -foodlabelling.info -foodprint.net -foodreamer.com -foodrecipe1.website -foodrestores.com -foodsfever.com -foodslosebellyfat.com -foodtherapy.top -foodunitesus.com -foodwheel.net -foomboo.best -foootball.icu -foopets.pl -foorama.com -fooremost.com -foot-streaming.online -foot.stream -footangelsocks.com -footard.com -football-zone.ru -footballan.ru -footballsaintsstore.online -footballstats24.com -footbcharlea.cf -footbcharlea.ga -footbcharlea.tk -footcareshop.life -foothardnfes.cf -foothardnfes.ga -foothardnfes.gq -foothardnfes.ml -foothillsurology.com -footprinttrading.wtf -footstrat.com -footstreaming.biz -footytrends.com -fopamarkets.site -foquita.com -for-all.pl -for0.net -for1mail.tk -for4.com -for4mail.com -foradoexpediente.com -forafore.shop -foragentsonky.com -forasy.host -forbeginners.shop -forbesa.com -forbet321.xyz -forcauction.com -force-loving-brilliancedart-clever.com -ford-edge.club -ford-escape.club -ford-flex.club -ford-fusion.club -ford-trucks.us -fordanceusa.com -forddomsy.info -fordinettelc.monster -fordonofritid.nu -fordson.club -foreaccustom.best -forecastertests.com -foreclosurefest.com -foreco.cd -foreeyesa.info -foreksinfo.ru -foremostt.com -foreo-luna2.ru -foreranks.best -foreriver.org -foresightpropertyinspections.org -foreskin.cf -foreskin.ga -foreskin.gq -foreskin.ml -foreskin.tk -foresmo.com -forest-reach-agree-snow.xyz -forestar.edu -forestbeekeeping.com -forestbeekeeping.us -forestcrab.com -forestermail.info -forestguardspro.info -foresthope.com -forestwards.best -foreverall.org.ua -foreveriptv.host -foreveronlinegames.com -forewarn.us -forex-demo.net -forex-for-u.net -forex-gv.ru -forex-iphone.com -forexaccessfx.com -forexblogs.ru -forexbudni.ru -forexbum.ru -forexcoin.trade -forexduel.com -forexgost.ru -forexhub.online -forexjobing.ml -forexmany777.ru -forexpro.re -forexregulator.info -forexregulator.net -forexregulator.org -forexshop.website -forexsite.info -forextra.online -forextradingsystemsreviews.info -forextrendtrade.com -forfilmsone.com -forgedfactions.net -forgetmail.com -forgetmenot.love -forgetmenotbook.com -forgetmenotsgrove.com -forgevpn.com -forgottenrelicsbooks.com -forhousandlife.ru -fork.codes -fork.support -forkai.cloud -forkai.email -forkanddumbbell.com -forkbot.cloud -forkd.app -forklift.edu -forlite.se -formaa.ru -formail22.dlinkddns.com -formareperincludere.com -formatpoll.net -formauqua.ga -formauqua.gq -formauqua.ml -formauqua.tk -formdmail.com -formdmail.net -formleads123.com -formmazi.us -formnitrogenflex.website -formonsdy.cf -formonsdy.ga -formonsdy.gq -formonsdy.ml -formonsdy.tk -formserwis.pl -formswift-next.com -formula-online.ru -formulafridays.com -formulanegociodesucesso.com -formulaqq.com -formulath.ru -formule.dev -formulemos.com -fornattodental.com -fornece.energy -fornow.eu -foronebuy.com -foronenight.best -forore.ru -forotenis.com -forp.us -forponto.club -forprice.co -forrealnetworks.com -forremost.com -forreplace.com -forsasquatch.shop -forsearchbo.cf -forsearchbo.ga -forsearchbo.gq -forsearchbo.ml -forsearchbo.tk -forserumsif.nu -forsgame.ru -forskolin1supply.com -forskolinwalmart.xyz -forsofort.info -forsoni.cf -forsoni.ga -forsoni.tk -forspam.net -forstreamer.com -forsy546854.site -forsythie.com -fortalease.com -fortbendbuyersgroup.com -fortcollinshairsalons.com -fortescent.xyz -fortfalday.cf -fortfalday.ga -fortfalday.ml -fortfalday.tk -fortforum.org -forthebestsend.com -fortheloveofdog.info -fortheloveofourchildren.org -forthgoing.best -fortinopizzabarmadrid.com -fortitortoise.com -fortlangleybeercompany.com -fortlangleybrewery.org -fortnite-accs.ru -fortnitebuy.ru -fortnitehub.ru -fortniteskill.com -fortpeckmarinaandbar.com -forttorssand.ru -forttuity.com -fortuacc.com -fortunadream.com -fortunatelady.com -fortunatelady.net -fortune-free.com -fortune-star-waterford.com -fortunechinesetakeaway.com -fortunetees.shop -fortwaynealcoholrehab.com -fortwayneclearbraces.com -fortwaynehairsalons.com -fortwayneheroinrehab.com -fortworthheroinrehab.com -forty-four-score.com -forum-bank.ru -forum-consumo.org -forum-diazrp.ru -forum-edu.ru -forum-feringer.ru -forum-guns.ru -forum.defqon.ru -forum.minecraftplayers.pl -forum.multi.pl -forumbacklinks.net -forumbegi.xyz -forumbisnis.org -forumdoconsumo.org -forumfi.xyz -forumies.com -forumk.net -forumoxy.com -forumrou.com -forumtroo.site -forusine.net -forvetbahis.org -forvetbet777.com -forvetbet788.net -forvetbet80.net -forvetbet89.net -forvetbetgrup.net -forvitta.com -forvk.ru -forward.cat -forward50.us -forwardhome.app -forwardshop.pro -forwardshop.site -forwardshop.store -forwardto.email -foryoumyfriend.online -foryoumyfriend.ru -foryoumyfriend.space -foryourrecords.com -forzandoarts.us -forzaneftchi.info -forzataraji.com -foshata.com -fosil.pro -fosinon.cf -fosrenstit.cf -fosrenstit.ga -fosrenstit.gq -fosrenstit.tk -fossclub.in -fosse776nr.online -fossimaila.info -fossimailb.info -fossimailh.info -fosterpromise.org -fostervet.net -fostervet.org -fota.email -fotblista.cyou -fotmvpe26.host -foto-contest.com -foto-creativ.ru -foto-videotrak.pl -foto-znamenitostei31.ru -fotoespacio.net -fotoglamour.ru -fotografiaslubnawarszawa.pl -fotografium.tv -fotoksiazkafotoalbum.pl -fotoliegestuhl.net -fotomontagem.info -fotonmail.com -fotonmotors.ru -fotons.ru -fotooboi-deluxe.ru -fotooboi-russ.ru -fotooboy-art.ru -fotoplik.pl -fotopromo.ru -fotorezensionen.info -fotosta.ru -fouadps.cf -fouadsarkisksa.com -fouddas.gr -fouin.icu -found-riches.com -foundationbay.com -foundationmorgan.com -foundbugs.com -foundersthatfight.com -foundersworldsummit.com -foundklinop.gq -foundlowell.com -fountainsandgardens.com -four.emailfake.ml -four.fackme.gq -fourdesign.info -fourfavorites.com -fouristic.us -fourminutemorgages.com -fourprosku.cf -fourprosku.ga -fourprosku.ml -fourprosku.tk -foursomethings.com -foursubjects.com -fourth.bgchan.net -fourthminuteloan.com -fourx.store -fouter.xyz -fowlereabe.space -fowlerwainwright.com -fowre.com -fox-skin.fun -fox-wolf.ru -fox4news.info -foxbanjo.com -foxbltt.com -foxcrayon.com -foxedcraft.space -foxgroups.xyz -foxhaq.site -foxhawks.com -foxja.com -foxmaii.cn -foxmontes.info -foxmunitions.com -foxnetwork.com -foxopros.ru -foxschool.edu -foxspizzadiberville.com -foxspizzanorthhuntingdon.com -foxtailights.com -foxtalebookshoppe.net -foxtrotter.info -foxwoods.com -foy.kr -fozmail.info -fp-sale.online -fp321.org -fpapa.ooo -fpc54.ru -fpdf.site -fperson.shop -fpf.team -fpfnlgaw.shop -fpga.monster -fpgfz.us -fpgh0blaxh3cmst.com -fphiulmdt3utkkbs.cf -fphiulmdt3utkkbs.ga -fphiulmdt3utkkbs.gq -fphiulmdt3utkkbs.ml -fphiulmdt3utkkbs.tk -fpkdbn.shop -fpkfdyed.shop -fplt21b.site -fplt22b.site -fplyk.fun -fpmatrix.com -fpmiev.icu -fpmo.cn -fptnamdinh.site -fpuob0sn0awiei3.xyz -fputra.xyz -fpvweb.com -fq1my2c.com -fq248.site -fq8sfvpt0spc3kghlb.cf -fq8sfvpt0spc3kghlb.ga -fq8sfvpt0spc3kghlb.gq -fq8sfvpt0spc3kghlb.ml -fq8sfvpt0spc3kghlb.tk -fqdggy.icu -fqing7.us -fqjfslpb.xyz -fqtxjxmtsenq8.cf -fqtxjxmtsenq8.ga -fqtxjxmtsenq8.gq -fqtxjxmtsenq8.ml -fqtxjxmtsenq8.tk -fqyrnuzn.club -fr-air-max.org -fr-air-maxs.com -fr-airmaxs.com -fr-fr.live -fr-good.xyz -fr.nf -fr33mail.info -fr3546ruuyuy.cf -fr3546ruuyuy.ga -fr3546ruuyuy.gq -fr3546ruuyuy.ml -fr3546ruuyuy.tk -fr4nk3nst3inersenuke22.com -fr4nk3nst3inerweb20.com -fracrent.com -fractal.golf -fractal.international -fractalauto.com -fractalforge.cloud -fractalforge.online -fractalt.com -fractalvisual.com -fractionalapartmentsflorence.com -fraddyz.ru -fragiletime.org -fragolina2.tk -fragranceplanet.com -frainklygaming.me -framean.xyz -frameang.xyz -frameappllance.xyz -frameitwintonsalem.com -frameless-chairs.ru -framemail.cf -framemod.email -framepipe.com -framesconfigurator.com -framezcontrolz.com -framinger.online -frananorver.cf -francamoveis.com -francanet.com.br -france-goto.xyz -france-monclers.com -france-nedv.ru -france3-44lafranceliberee.com -francemeteo.club -francemonclerpascherdoudoune1.com -francepoloralphlaurenzsgpascher.com -francesca.solutions -francescaross.buzz -francescasolutions.com -franchioffice.com -franchisemeter.com -franchiseremark.xyz -francia2018.com -francioni.dev -francistan.com -francisxkelly.com -franco.com -franding.info -franjanegra.com -frank-cazino-official.online -frank-girls.com -frank-magazine.ru -frank1swv.site -frankandfed.poker -frankcasino7.com -frankcraf.icu -frankelquotes.com -franken2020senate.com -frankenforall.com -frankflin.icu -frankfurtchevalierpremiademar.com -franklinschooleagles.com -franklintemoleton.com -franklintransportservices.com -frankoceanalbum.com -frankplay.ru -franks-takeaway-prosperous.com -franksdisco.de -frankstakeaway.com -franksunter.ml -frapmail.com -frappina.tk -frappina99.tk -fraproducts.com -frasabeq.cf -frasabeq.ga -frasabeq.gq -frasabeq.tk -frason.eu -fraternityofsound.org -fraternization946vg.xyz -fraudattorneys.biz -fraudcaller.com -fraudsniper.net -frauenspezifische.com -frazerltd.com -frdibill.icu -frdylicaniax.host -freadingsq.com -freakanin.cf -freakanin.ga -freakanin.ml -freakanin.tk -freakfm.ru -freakmail.co.cc -freakosop.ga -freakosop.gq -freakosop.ml -freakosop.tk -freaksnap.xyz -freakzmia.com -freally.com -frecciarossa.tk -frecklecertain.buzz -freclockmail.co.cc -fredanthropist.com -freddymail.com -frederiks.icu -fredol.live -fredperrycoolsale.com -fredy.store -free-4-everybody.bid -free-advertising-sites.xyz -free-backlinks.ru -free-chat-emails.bid -free-classifiedads.info -free-dl.com -free-email-address.info -free-email.cf -free-email.ga -free-episode.com -free-flash-games.com -free-gay-chat.club -free-installs-application-mine.club -free-installs-software-mine.club -free-ipad-deals.com -free-lancelot.com -free-like.xyz -free-mail.bid -free-mails.bid -free-max-base.info -free-names.info -free-online-roulette.org -free-rutorg.site -free-server.bid -free-softer.cu.cc -free-store.ru -free-temp.net -free-web-mails.com -free-webmail1.info -free.yhstw.org -free123mail.com -free4everybody.bid -freeaa317.xyz -freeaccnt.ga -freeachievement.info -freeadverts.org -freeail.hu -freealtgen.com -freeandsingle.us -freebabysittercam.com -freebeautyofsweden.se -freebee.com -freebie4teachers.com -freebies-daily.com -freebiker.su -freebin.ru -freebitcoinlottery.xyz -freeblackbootytube.com -freeblogger.ru -freebnas.site -freeboarder.org -freebookplace.site -freeboost.su -freebullets.net -freebusinessdomains.info -freecamnetwork.com -freecams3.live -freecams4u.com -freecat.net -freechargevn.cf -freechargevn.ga -freechargevn.gq -freechargevn.ml -freechargevn.tk -freechatemails.bid -freechatemails.men -freechickenbiscuit.com -freechristianbookstore.com -freeclassifiedsonline.in -freecodebox.com -freecontests.xyz -freecontractorfinder.com -freecrocobet.com -freecrot.undo.it -freedamoneway.blue -freedealworld.com -freedfromdesirly.website -freedgiftcards.com -freedivorcelawyers.net -freednn.org -freedoghouses.com -freedom-mail.ga -freedom.casa -freedom4you.info -freedomains.site -freedomcinema.ru -freedomfrompsychopaths.org -freedompop.us -freedomringspartnership.com -freedomroad.info -freedomvideo.org -freedomweb.org -freedomworkingcapital.com -freedownloadmedicalbooks.com -freeebooksusa.best -freeeducationvn.cf -freeeducationvn.ga -freeeducationvn.gq -freeeducationvn.ml -freeeducationvn.tk -freeeerf.com -freeekrat.cf -freeemail.online -freeemail4u.org -freeemailnow.info -freeemailproviders.info -freeemails.ce.ms -freeemails.racing -freeemailservice.info -freefattymovies.com -freefollowerhack.com -freefoodforest.com -freefoodforest.org -freeforall.site -freefuelrvrentals.com -freegamenjoy.com -freegamercards.com -freegatlinburg.com -freegetvpn.com -freegift.sale -freegmail.ga -freehealthadvising.info -freehealthytips.xyz -freehold-lawyer.com -freehosting.men -freehosting2010.com -freehotmail.net -freehsm.com -freehsm.net -freeimeicheck.com -freeimtips.info -freeinbox.email -freeindexer.com -freeinstallssoftwaremine.club -freeinvestoradvice.com -freeipadnowz.com -freeir90.net -freejoy.club -freekashmir.info -freekashmir.live -freeksfood.com -freelail.com -freelance-france.eu -freelance-france.euposta.store -freelancejobreport.com -freelanceposition.com -freelancergate.shop -freelancergoal.shop -freelasvegasshowtickets.net -freeletter.me -freelibraries.info -freelifetimexxxdates.com -freelivesex1.info -freelocalbusiness.com -freelookofficial.com -freelymail.com -freemail-host.info -freemail.bid -freemail.co.pl -freemail.men -freemail.ms -freemail.nx.cninfo.net -freemail.online.tj.cn -freemail.trade -freemail.trankery.net -freemail.tweakly.net -freemail.waw.pl -freemail000.pl -freemail3949.info -freemail4.info -freemailboxy.com -freemaillink.com -freemailmail.com -freemailnow.net -freemails.bid -freemails.cf -freemails.download -freemails.ga -freemails.men -freemails.ml -freemails.stream -freemailservice.tk -freemailsrv.info -freemailto.cz.cc -freemanual.asia -freemanualonline.asia -freemarket.site -freemask.ru -freemedipedia.org -freemeil.ga -freemeil.gq -freemeil.ml -freemeil.tk -freemindstrongbody.com -freeml.net -freemommyvids.com -freemoney.pw -freemr.site -freemusicdownload.website -freemy.email -freemymail.org -freemyworld.cf -freemyworld.ga -freemyworld.gq -freemyworld.ml -freemyworld.tk -freeneurons.com -freenfulldownloads.net -freeo.pl -freeoffers123.com -freeolamail.com -freeonlineke.com -freeoptics-els.site -freeoptics.site -freeourstreets.com -freeparur.cf -freeparur.ga -freeparur.gq -freeparur.ml -freepatpost.com -freepdfmagazines.club -freepdfmanuales.xyz -freephonenumbers.us -freephotoretouch.com -freeplongmels.cf -freeplongmels.gq -freeplongmels.ml -freeplongmels.tk -freeplumpervideos.com -freepoincz.net -freepop3.co.cc -freeporttoenaillasertreatment.com -freeprice.co -freeqi.xyz -freerangehuman.online -freeread.co.uk -freereinreport.com -freeringers.in -freeroid.com -freerubli.ru -freerunproshop.com -freerunprostore.com -freesamplesuk2014.co.uk -freesatom.cf -freesatom.gq -freesatom.ml -freesatom.tk -freeschoolgirlvids.com -freesearchany.info -freeserver.bid -freesexchats24.com -freesexshows.us -freeshemaledvds.com -freesistercam.com -freesistervids.com -freeskier.us -freesmsvoip.com -freespin.ru -freespinsguiden.com -freespinssaga.com -freespinstoplist.com -freespotfiles.site -freestrategy.info -freestreamboxwizard.com -freestuffonline.info -freestyle-heliopark.ru -freesystemtech.info -freetds.net -freeteenbums.com -freethemusic.net -freethought.ml -freetimeandfunallaround.info -freetmail.in -freetmail.net -freetraffictracker.com -freetrialsample.com -freetubearchive.com -freeunlimitedebooks.com -freeusenet.rocks -freevid.site -freevipbonuses.com -freewalet.website -freewatpret.tk -freewayverhuur.net -freeweb.email -freewebmail.ga -freewebmaile.com -freewebpages.bid -freewebpages.stream -freewebpages.top -freexms.com -freexrumer.com -freezeast.co.uk -freezersshop.live -freezipcode.com -freezzzm.site -freis.ru -fremails.com -fremiumhosting.icu -fremontalcoholrehab.com -frenchbedsonline777.co.uk -frenchcuff.org -frenchdrawings.org -frenk.dev -frenteadventista.com -frenzybudgeter.com -frenzytiger.com -frequential.info -freresphone.com -fresclear.com -fresco-pizzeria-ballybrittas.com -fresent.com -fresh91.casino -freshappcasgreen.ru -freshattempt.com -freshautonews.ru -freshbreadcrumbs.com -freshestcoffeepossible.com -freshestcoffeeyoucanbuy.com -freshfiles.xyz -freshflowersindoorplantscheap.net -freshkeys.ru -freshkiwi.ru -freshly.cloud -freshmail.com -freshmania24.ru -freshpato.com -freshpondcinema.com -freshportal.ru -freshprinceoftheblog.com -freshsmokereview.com -freshspike.com -freshthinkinggroup.group -freshthisweek.com -freshviralnewz.club -freshwatercomputersspot.site -freshwear.space -freshyoutop.ru -fresnococainerehab.com -fresnoforeclosures.com -fresnoheroinrehab.com -fresnokitchenremodel.com -fresnoopiaterehab.com -fresnoquote.com -freson.info -freson.org -fressmind.us -fretcraft.com -fretwizard.com -freunde.ru -freundin.ru -frexmail.co.cc -freybet40.com -freybet5.com -freybet6.com -freybet60.com -frezerovka-nsk.ru -frgviana-nedv.ru -frictionla.com -fridastoreh.xyz -fridaylaura.com -fridaymovo.com -friedchitlins.com -friedfriedfrogs.info -friedmansfinder.com -friendlyanarchists.org -friendlymail.co.uk -friendlypanther.info -friendlypuppy.info -friends-facebook.com -friendship-u.com -friendshipcounseling.com -friendsofglendon.com -friendsofgypsycats.org -friendsoflakeviewnola.com -friendsofretiredgreyhounds.info -friendsofriviera.com -friendsofsophiasurf.com -friendsofstpatricks.org -friendstotravel.info -friendtracking.ru -frightnight.org -frinned.com -frinselva.cf -frinselva.gq -frinselva.tk -frinsj.com -friomp.stream -friscaa.cf -friscaa.ga -friscaa.gq -friscaa.ml -friscaa.tk -friscoescaperooms.com -frishastmigfors.tk -friskytaphouse.com -frisyrer.website -frite-haus-takeaway.com -friteuseelectrique.net -frith.site -fritzkunze.net -frizbi.fr -frizzart.ru -frkdp.net -frl-hotel.com -frl973.us -frmonclerinfo.info -frmturkiye.com -frnfre.shop -frogdesign.info -frogflux.website -froglie.website -froidgaming.host -froking.xyz -froknowsphoto.org -frolrecam.cf -frolrecam.gq -frolrecam.ml -frolrecam.tk -from.eurasia.cloudns.asia -from.onmypc.info -fromdos.best -fromlitic.gq -fromlitic.ml -fromlitic.tk -frommalaysiawithlove.com -frommywithlove.com -fromsgwithlove.com -fromyourphone.com -fronation.com -fronddi.tk -front-end-dev.ru -front14.org -frontierfactions.org -frontierpets.com -frontiers.com -frontlinemanagementinstitute.com -frontoid.xyz -frontpointreview.com -frontspor.press -frooogle.com -frosowegunschem.space -frost-online.de -frost2d.net -frostpaper.ru -frosttopia.online -frouse.ru -frownmarc.email -frownte.host -frozen.com -frozenfund.com -frpascherbottes.com -frpinventory.info -frpinventory.org -frpinventory.us -frpscheduler.com -frso.info -frst-node.shop -fructuary.site -fruertwe.com -frugalpens.com -fruhaufsteher.com -fruitandvegetable.xyz -fruitasingletrack.com -fruitclos.buzz -fruitroug.fun -fruitsforreal.org -fruitshps.website -fruittrus.email -frunche.com -frusellboa.monster -frusidoc.cf -frusidoc.ga -frusidoc.gq -frusidoc.ml -frusidoc.tk -frutaa.website -fruticool.com -frutlinaepekarina.site -frutti-tutti.name -frxx.site -frycowe.pl -fryzer.com -fryzury-krotkie.pl -fs-fitzgerald.cf -fs-fitzgerald.ga -fs-fitzgerald.gq -fs-fitzgerald.ml -fs-fitzgerald.tk -fs-rs.net -fs-u.club -fs-y.club -fs00h.xyz -fs16dubzzn0.cf -fs16dubzzn0.ga -fs16dubzzn0.gq -fs16dubzzn0.ml -fs16dubzzn0.tk -fsagc.xyz -fsbi.online -fsbo-nc-coastal.com -fsbtrj.com -fsdfsdf.icu -fsdtgfgbhhrtpro.club -fse1xs.us -fsfsdf.org -fsgnq.xyz -fshare.ootech.vn -fshncgoqn.shop -fshopping.site -fsht3b.site -fsist.org -fsjautohub.com -fskatt.se -fskk.pl -fslm.de -fsmilitary.com -fsociety-br.online -fsociety.org -fsreg.cf -fsrfwwsugeo.cf -fsrfwwsugeo.ga -fsrfwwsugeo.gq -fsrfwwsugeo.ml -fsrfwwsugeo.tk -fstoner.com -fstopinterviews.com -fstore.org -fsuvoh.com -fswalk.com -fsxflightsimulator.net -fsxtrade.com -ft-sale.ru -ft0wqci95.pl -ft1004.com -ft1dox.us -ft7942.com -ftazl.buzz -ftcgroup.xyz -ftcrafdwp.shop -ftea.site -ftechlife.online -ftg8aep4l4r5u.cf -ftg8aep4l4r5u.ga -ftg8aep4l4r5u.gq -ftg8aep4l4r5u.ml -ftg8aep4l4r5u.tk -ftgb2pko2h1eyql8xbu.cf -ftgb2pko2h1eyql8xbu.ga -ftgb2pko2h1eyql8xbu.gq -ftgb2pko2h1eyql8xbu.ml -ftgb2pko2h1eyql8xbu.tk -ftgxn.site -fti3ht.club -ftkgnb.tokyo -ftnupdatecatalog.ru -ftoflqad9urqp0zth3.cf -ftoflqad9urqp0zth3.ga -ftoflqad9urqp0zth3.gq -ftoflqad9urqp0zth3.ml -ftoflqad9urqp0zth3.tk -ftp.sh -ftpbd.com -ftpinc.ca -ftqv8g.com -ftr4transcribers.com -ftr4transcript.com -ftrader.net -ftredo.site -ftrltd.org -ftrserver.info -ftrtranscript.com -ftsalons.com -ftsxthiw.site -ftuns.live -ftworld.ru -ftwzg1.site -ftyjyq.rest -ftyrki.com -ftzvsn.us -fu014.site -fu6znogwntq.cf -fu6znogwntq.ga -fu6znogwntq.gq -fu6znogwntq.ml -fu6znogwntq.tk -fuadd.me -fubkdjkyv.pl -fubsale.top -fuchsbau.rocks -fuchsringqg.icu -fuchuchc.online -fuckedupload.com -fuckingduh.com -fuckinhome.com -fuckme69.club -fucknloveme.top -fuckoramor.ru -fuckrosoft.com -fucktuber.info -fuckxxme.top -fuckzy.com -fucsovics.com -fucsovics.net -fucsovics.org -fudanwang.com -fudbuc.com -fudgerub.com -fuefreehzon.cf -fuefreehzon.ga -fuefreehzon.gq -fuefreehzon.ml -fuefreehzon.tk -fuelesssapi.xyz -fuelyourtypography.com -fuesculling.cf -fuesculling.ga -fuesculling.gq -fuesculling.tk -fufrh4xatmh1hazl.cf -fufrh4xatmh1hazl.ga -fufrh4xatmh1hazl.gq -fufrh4xatmh1hazl.ml -fufrh4xatmh1hazl.tk -fufuf.bee.pl -fuheqy.info -fuherudo.online -fuhil.xyz -fuhoy.com -fuirio.com -fujefa.info -fujifilmkaizen.com -fujifilmlifescienceusa.com -fujitv.cf -fujitv.ga -fujitv.gq -fukaru.com -fuke0551.com -fukkgod.org -fukolpza.com.pl -fuktard.co.in -fulahx.ru -fuli1024.biz -fuliansan.com -fullalts.cf -fullbellek.online -fullbet88.org -fullcaff.com -fulledu.ru -fullen.in -fullepisodesnow.com -fullermail.men -fullfilmizle2.com -fullframedesign.com -fullhomepacks.info -fulll.stream -fullmovie.shop -fullmoviesonline.space -fulloirai.cf -fulloirai.ga -fulloirai.ml -fulloirai.tk -fullphaubr.space -fullsemntg.ru -fullsignal.net -fullsoftdownload.info -fullsohbetler.xyz -fullssa-naver.xyz -fullstackscrum.com -fullsupport.cd -fultonsheen.net -fulvie.com -fuming.net -fumosity.site -fumw7idckt3bo2xt.ga -fumw7idckt3bo2xt.ml -fumw7idckt3bo2xt.tk -fun-cook.info -fun-dot.ru -fun-images.com -fun-kk.com -fun2.biz -fun2night.club -fun417.xyz -fun64.com -fun64.net -funandrun.waw.pl -funaro.org -funb201.com -funb301.com -funb401.com -funbabessnapz.com -funbangsan.ga -funbangsan.gq -funbangsan.ml -funbangsan.tk -funbet360.xyz -funbeti.com -funcat.best -functionalfullstackenterprise.com -functionalgeekery.net -functionalneurocenters.com -functionalneurologicrehab.com -functionalneurologycentercharlotte.com -functionalresults.com -functionaryyyu.fun -funda-foundation.com -fundacionfasta.org -fundacionhambrecerointernacional.org -fundacionretoaguasabiertas.org -fundadream.online -fundament.site -fundamentallifescore.com -fundamenty-pod-klyuch.ru -funddreamer.us -fundewa.com -fundgrowplus.com -fundgrowth.club -fundingsources.info -fundoomails.com -fundraisingak.com -fundraisingtactics.com -fundry.xyz -funeemail.info -funeralservicesgoldcoast.com -funexpert.info -funfar.pl -funfoodmachines.co.uk -funfriends.org -fungiftsforher.com -funhie.com -funinn.biz -funiyipe.site -funkleswhiru.tk -funktales.com -funktionsstrumpor.se -funkyboxer.com -funkyjerseysof.com -funlete.cf -funlete.ga -funlete.gq -funlete.ml -funlocen.ga -funlocen.tk -funminecraftservers.us -funnel.events -funnelcouponbook.com -funnelfarmmarketing.com -funnelhacker.best -funnelpipe.net -funnelpipe.org -funnelpipes.org -funnelprofitswebinar.com -funnelvswebsite.com -funnet.shop -funneuro.com -funnfests.com -funnieday.online -funniestonlinevideos.org -funny-ecards.com -funny-mom.ru -funny-moments.site -funny9flix.site -funnycodesnippets.com -funnyfev.xyz -funnyfrog.com.pl -funnyinde.buzz -funnylawyer.com -funnymail.de -funnypetpictures.com -funnyrabbit.icu -funnysmell.info -funnyve.icu -funpelican.ga -funprogoods.ru -funqweas.com -funriataty.com -funriataty.icu -funsportsgames.com -funsv.shop -funthingsoutdoor.com -funtriviagame.com -funxl.tk -funxmail.ga -funxs.tk -funxxxx.xyz -funyou.info -fupdate.site -fupunomxori.online -fuqi.info -fuqq.org -fuqtees.com -fuqus.com -fureverafteradopt.org -furieus.com -furigo.ru -furiousangel.com -furmol.website -furnicular.site -furnitt.com -furnitureinfoguide.com -furnitureliquidationconsultants.com -furnituresanddecor.com -furnitureshop.futbol -furnitureshop.life -furniturm.com -furosemide.website -furosemide247.video -furrycreations.com -furrydesires.info -furryprofiles.com -fursuit.info -fursuitcircus.com -further-details.com -furthermail.com -furthernewsun.best -furusato.tokyo -furycraft.ru -furzauflunge.de -fus-ro-dah.ru -fuse-vision.com -fusioninvoice.net -fusixgasvv1gbjrbc.cf -fusixgasvv1gbjrbc.ga -fusixgasvv1gbjrbc.gq -fusixgasvv1gbjrbc.ml -fusixgasvv1gbjrbc.tk -fussi.ru -fussilblld.site -fusskitzler.de -fussycataractgrove.site -futoboutique.site -futocasigames.com -futocasitop.com -futod.xyz -futuramarketing.we.bs -futuraseoservices.com -future-buy-mega.ru -future-planet.ru -future-sale-buy.ru -futureallstars.net -futurebuckets.com -futurecritical.xyz -futuredvd.info -futurefestival.ru -futureforkid.org -futuregenesplicing.in -futuregood.pw -futuremail.info -futureneutral.online -futureof2019.info -futureofscholarship.org -futureon.tech -futureplan4u.com -futuresoundcloud.info -futuresports.ru -futuresustainable.org -futureteam.club -futuretribeoffice.net -futurevoicesofnewmexico.blog -futuristicplanemodels.com -futzal.org -fuuken.com -fuuyoh.com -fuvesupermart.site -fuvptgcriva78tmnyn.cf -fuvptgcriva78tmnyn.ga -fuvptgcriva78tmnyn.gq -fuvptgcriva78tmnyn.ml -fuw65d.cf -fuw65d.ga -fuw65d.gq -fuw65d.ml -fuw65d.tk -fuwa.be -fuwa.li -fuwamofu.com -fuwwoi.info -fuwy.site -fux0ringduh.com -fuxuedai.club -fuxufilter.online -fuxufilter.xyz -fuxufiltration.xyz -fuxufiltre.xyz -fuyapiinsaat.com -fuzemt.online -fuzimill.site -fuzmail.info -fuzzpopstudio.com -fuzzytoad.com -fv-sale.ru -fveiowmi.space -fvg5fvrv4.win -fvhnqf7zbixgtgdimpn.cf -fvhnqf7zbixgtgdimpn.ga -fvhnqf7zbixgtgdimpn.gq -fvhnqf7zbixgtgdimpn.ml -fvhnqf7zbixgtgdimpn.tk -fvmpt7.club -fvqpejsutbhtm0ldssl.ga -fvqpejsutbhtm0ldssl.ml -fvqpejsutbhtm0ldssl.tk -fvsxedx6emkg5eq.gq -fvsxedx6emkg5eq.ml -fvsxedx6emkg5eq.tk -fvuch7vvuluqowup.cf -fvuch7vvuluqowup.ga -fvuch7vvuluqowup.gq -fvuch7vvuluqowup.ml -fvuch7vvuluqowup.tk -fvurtzuz9s.cf -fvurtzuz9s.ga -fvurtzuz9s.gq -fvurtzuz9s.ml -fvurtzuz9s.tk -fvusale.top -fvwozi.us -fw-nietzsche.cf -fw-nietzsche.ga -fw-nietzsche.gq -fw-nietzsche.ml -fw-nietzsche.tk -fw-sale.online -fw.moza.pl -fw025.com -fw2.me -fw4px9.com -fw6m0bd.com -fw90a4awyh.com -fw9tkv.us -fwca.xyz -fwd2m.eszett.es -fweurccje.shop -fwgybr.us -fwiqvv.site -fwmuqvfkr.pl -fws.fr -fwt855.com -fwxzvubxmo.pl -fx-banking.com -fx-brokers.review -fx-rac.site -fx-st.net -fx15.website -fx3666.com -fx3777.com -fx3888.com -fx4666.com -fx5666.com -fx5999.com -fx6111.com -fx6333.com -fx7444.com -fx8333.com -fx8999.com -fx9111.com -fx9555.com -fxcash.asia -fxfmail.com -fxgirl.net -fxkuva.us -fxmail.ws -fxmarkets1000.com -fxmender.com -fxnxs.com -fxokpp.rest -fxoso.com -fxprix.com -fxredefined.com -fxrental-kr.site -fxsanfrancisco.com -fxsuppose.com -fxunity.biz -fxvks.site -fxxx.site -fy-sale.ru -fy4rro.us -fy6.app -fy9.app -fyad7b.site -fybdc1.site -fybglz.tokyo -fycu.site -fydffh1-priviut.fun -fydffh1-priviut.info -fydffh1-priviut.site -fydffh1-priviut.space -fydffh1-priviut.xyz -fyii.de -fyimm.com -fyjiwa.com -fynuas6a64z2mvwv.cf -fynuas6a64z2mvwv.ga -fynuas6a64z2mvwv.gq -fynuas6a64z2mvwv.ml -fynuas6a64z2mvwv.tk -fyov.email -fyromtre.tk -fys2zdn1o.pl -fytbkx.icu -fyvdetayq.cf -fyvznloeal8.cf -fyvznloeal8.ga -fyvznloeal8.gq -fyvznloeal8.ml -fyvznloeal8.tk -fyys.life -fyytea.icu -fyziotrening.sk -fyzjgt.site -fz-gamvar1.ru -fzahafriyat.xyz -fzbdfyy.com -fziex.com -fzlol.us -fztvgltjbddlnj3nph6.cf -fztvgltjbddlnj3nph6.ga -fztvgltjbddlnj3nph6.gq -fztvgltjbddlnj3nph6.ml -fzyutqwy3aqmxnd.cf -fzyutqwy3aqmxnd.ga -fzyutqwy3aqmxnd.gq -fzyutqwy3aqmxnd.ml -fzyutqwy3aqmxnd.tk -g-2018.ru -g-asdjafwer.online -g-case.org -g-chance.ru -g-ffd.ru -g-fiore.ru -g-mailer.site -g-mailer.website -g-mailer.xyz -g-mailix.com -g-meil.com -g-neurosystem.ru -g-o-o-g-l-e.cf -g-o-o-g-l-e.ga -g-o-o-g-l-e.gq -g-o-o-g-l-e.ml -g-oproz.ru -g-radical.com -g-secretclass.website -g-share.biz -g-shoponline.info -g-starblog.org -g-timyoot.ga -g.hmail.us -g.polosburberry.com -g.seoestore.us -g.ycn.ro -g00g.cf -g00g.ga -g00g.gq -g00g.ml -g00g13.tk -g00gl3.gq -g00gl3.ml -g00glechr0me.cf -g00glechr0me.ga -g00glechr0me.gq -g00glechr0me.ml -g00glechr0me.tk -g00gledrive.ga -g00ib.com -g00qle.ru -g04p3.us -g05uo.site -g05zeg9i.com -g0mail.com -g0qva.us -g0zr2ynshlth0lu4.cf -g0zr2ynshlth0lu4.ga -g0zr2ynshlth0lu4.gq -g0zr2ynshlth0lu4.ml -g0zr2ynshlth0lu4.tk -g1118.com -g1119.com -g14l71lb.com -g1bet.com -g1ca82.us -g1hgun.us -g1kolvex1.pl -g1xmail.top -g2.brassneckbrewing.com -g20-publications.org -g2020.ru -g212dnk5.com -g22444.com -g22666.com -g2a.sk -g2am0.xyz -g2dcli.us -g2tpv9tpk8de2dl.cf -g2tpv9tpk8de2dl.ga -g2tpv9tpk8de2dl.gq -g2tpv9tpk8de2dl.ml -g2tpv9tpk8de2dl.tk -g2xmail.top -g368.online -g3conference.org -g3managemententerprises.com -g3nk2m41ls.ga -g3nkz-m4ils.ga -g3nkzmailone.ga -g3xmail.top -g4hdrop.us -g4mksw.com -g4o.ru -g4qmkw.us -g4re71kk.xyz -g4rm1nsu.com -g4zk7mis.mil.pl -g50hlortigd2.ga -g50hlortigd2.ml -g50hlortigd2.tk -g50pb.site -g56ce.com -g57sn.site -g59xg.space -g5tony.ru -g66ez.space -g6cjd4.site -g6ijuf.site -g7665.com -g77og.site -g78qp.com -g7kgmjr3.pl -g7kvam.us -g7lkrfzl7t0rb9oq.cf -g7lkrfzl7t0rb9oq.ga -g7lkrfzl7t0rb9oq.gq -g7lkrfzl7t0rb9oq.ml -g7lkrfzl7t0rb9oq.tk -g7n.xyz -g7news.website -g7rnu96pk4zv5mu.xyz -g7sz9n.online -g7tsiv.us -g9dxbu.us -g9pneh.info -ga-shop.online -ga46kd.xyz -ga7yhd.host -ga9dho.info -gaaffshop.store -gaairlines.com -gaanerbhubon.net -gababiotics.com -gabalot.com -gabbf.com -gabbygiffords.com -gabbymanagementsystem.com -gabbysgoodstuff.info -gabbysgoodstuff.net -gabbysgoodstuff.org -gabekey.ru -gabescott.co -gabesdownloadsite.com -gabice.info -gabineteeconomico.com -gableavlf.space -gabon-nedv.ru -gabooster.com -gabox.store -gabrieladiaz.net -gabrielamusic.org -gabrieldunn.buzz -gabrieljarvis.buzz -gabrielroesch.com -gabrielshmidt.com -gaby.social -gabydino.com -gac.deals -gacas-1dax.ru -gacaterpillar.com -gaccula.ga -gaccula.gq -gaccula.ml -gaccula.tk -gachngay.com -gachupa.com -gacifa.info -gacoky.info -gacus5.us -gadenmonastery.org -gadget-mania.com -gadget-space.com -gadgethitsshop.com -gadgetliv.club -gadgetreviews.net -gadgetsfair.com -gadgetsparadijs.online -gadingbola.info -gads-88.com -gadsnela.ga -gadsnela.gq -gadsnela.ml -gadsnela.tk -gaf.oseanografi.id -gaf4uv.us -gafemarket.site -gafrem3456ails.com -gafslr.icu -gafy.net -gag16dotw7t.cf -gag16dotw7t.ga -gag16dotw7t.gq -gag16dotw7t.ml -gag16dotw7t.tk -gagainter.com -gagalive.shop -gagged.xyz -gaggle.net -gaha.site -gaiaplanet.org -gaiasgarden.online -gaiasgarden.shop -gaibrubfor.cf -gaierdun.com -gailang.com -gailymealtimegrown.site -gainready.com -gainstronghealthymuscles.com -gainyournewsmarttech.review -gaish.space -gaiti-nedv.ru -gaivolgsi.cf -gaivolgsi.ga -gaivolgsi.ml -gaivolgsi.tk -gajahtoto.org -gajesajflk.cf -gajesajflk.gq -gajjmorit.ru -gakbec.us -gaki-osaka-si.xyz -gakkurang.com -gal5.com -gal8.com -galabettv22.com -galabettv25.com -galabettv28.com -galablogaza.com -galactofa.ga -galaevtekstil.xyz -galainfos.com -galamagonline.com -galamat.ru -galangmovie.com -galangshop.ga -galangstore.live -galasewrq.online -galaxy-s9.cf -galaxy-s9.ga -galaxy-s9.gq -galaxy-s9.ml -galaxy-s9.tk -galaxy-tip.com -galaxy.tv -galaxy20.xyz -galaxy996.com -galaxyarmy.tech -galaxybetting48.com -galaxybetting50.com -galaxybuds.fun -galaxypokerbet.org -galaxyrc.online -galaxyrc.store -galaxys8giveaway.us -galbuluueg.space -galco.dev -galdb.com -galenwalter.com -galerielarochelle.com -galeswordfoul.website -galgame.us -gali-village.ru -galice.info -galinastadnik.ru -galismarda.com -galleriafourty.com -gallerwdcm.space -gallery-annabi.com -gallery-annabi.org -gallery-des-artistes.com -gallerypruva.xyz -galleryroyal.com -gallfly.online -gallowayandfern.com -gallowaybell.com -gallowspointgg.com -gally.jp -galmarino.com -galotrf.site -galshotel.ru -galsns.com -galtool.com -galurl.com -galuzino.ru -galvanmail.men -galvestontexasrentals.com -galwaybirds.com -gamail.com -gamail.top -gamamail.tk -gamar.fun -gamarraonline.com -gambling-land.ru -gambling4me.ru -gambrush.shop -gamdspot.com -game-drop.ru -game-plus.online -game-rus.com -game-stock.ru -game-with.com -game-world.pro -game-zakup.ru -game.com -game1922.com -game2.de -game2533.com -game5262.com -gameaddiction.rehab -gameazart.ru -gamebaikingfun.net -gamebean.ru -gamebucks.online -gamechangingsalesperformance.com -gamecheatfree.xyz -gamecheats.best -gamecity888.com -gamecodebox.com -gamecodesfree.com -gamecofffer.cf -gamecofffer.ga -gamecofffer.ml -gamecredits.shop -gamecrook.net -gamecrook.org -gamedaytshirt.com -gamedeal.ru -gamedevshop.ru -gamedistri.com -gamedistribution.app -gamedoithuongking.com -gamedowlandepic.ga -gamedowlandepic.ml -gamefa.online -gameforlove.org -gamefreak.org -gamegild.ru -gamegoldies.org -gamegowin.net -gamegregious.com -gamekingparlour.com -gameloli.com -gamemacao.site -gamemanoidstore.com -gameme.men -gamemoney.app -gamenewclam.ru -gamenewkite.ru -gamenewpen.ru -gamenewrat.ru -gameon1ine.ru -gameonsports.live -gameonsportscenter.com -gameonsportslive.com -gamepi.ru -gamepromotion.ru -gameps5.ga -gameps5.ml -gamequocte.com -gamer-market.net -gamer.watch -gameran.ru -gamercosplay.pl -gamerentalreview.co.uk -gamerfu.com -gamergag.net -gamernews.com -gamers-like-us.com -gamersbrand.com -gamersland.club -gamerslive-shop.ru -games-box.info -games-germany.xyz -games-hosts.com -games-online24.co.uk -games-zubehor.com -games0.co.uk -games4free.flu.cc -games4free.info -gamesblog.com -gamesbrands.space -gameschool.online -gamescouncilsite.com -gamesemperiom.net -gameslabs.org -gamesliga.biz -gamesliga.net -gamesofthefarm.com -gamesonlinefree.ru -gamesonlinez.co.uk -gamesoonline.com -gamespoool.org -gamesportal.me -gamesredsite.club -gamesstreetnews.com -gamestips.ru -gametalks.ru -gameterrain.info -gamethegames.com -gametv.biz -gametv.pro -gamevillage.org -gamewedota.co.cc -gamexshop.online -gamgling.com -gamil.com -gaminators.org -gaming90.org -gamingant.com -gamingday.com -gamingpromo.com -gaminoageny.com -gamisfolia.com -gamma.org.pl -gammafoxtrot.ezbunko.top -gammageandburnham.com -gammageburnham.com -gammicism.site -gamno.config.work -gamora274ey.cf -gamora274ey.ga -gamora274ey.gq -gamora274ey.ml -gamora274ey.tk -gamosbaptish.com -gamosbaptisi.com -gamosvaptish.com -gamosvaptisi.net -gamr15.org -gamuci.com -gamutimaging.com -gamvip-com.app -gan.lubin.pl -gancio.online -gandepiaoliang.com -ganeshajitu.net -ganeshajitu.org -ganeshatogel.com -gangbazip2.club -gangcheng-guoji.com -gangchengguoji.com -gangeryslx.space -gangkindter.ga -gangkindter.gq -gangkindter.tk -gangli163.com -gangstersofharlem.com -gangtrk.site -gangu.cf -gangu.gq -gangu.ml -gangy.world -ganhardinheironainternethj.com -ganihomes.com -ganjipakhsh.shop -ganninarnold.com -gannoyingl.com -ganobet42.com -ganoderme.ru -ganohoy.com -ganol.online -ganool.bid -ganslodot.top -gansupwdjs.ru -gantellikz.info -gantellir.info -gantellmiri.info -gantraca.ga -gantraca.gq -gantraca.ml -gantraca.tk -ganyanhesaplama.xyz -ganymexujl.space -ganzhe4.app -ganzhe6.app -ganzhe7.app -ganzhe8.app -ganzhe9.app -gaojie.live -gaolcostingfuse.website -gaolrer.com -gaoqingtaotu.com -gaoqingwuma.com -gaoxiao2.biz -gaoxiao7.biz -gap0.net -gap0.social -gapdns.com -gapemail.ga -gapforceschoolgroups.com -gapl.ru -gapo.club -gapo.info -gapo.pro -gapo.vip -gappk89.pl -gapsapp.com -gapu23n23swc08f.xyz -gaqa.com -garage-saint-chamond.xyz -garage46.com -garageamazon.com -garagecfcaron.com -garageclubtarpon.com -garagedoor.marketing -garagedoormaricopas.com -garagedoormonkey.com -garagedoors-pa.com -garagedoorschina.com -garagedoorselmirage.com -garantibuyutucu.xyz -garantipazar.com -garantweb.com -garapraisal.com -garasikita.pw -garatoi.com -garaze-wiaty.pl -garbagecollector.org -garbagemail.org -garbagepossessionensure.website -garcia-y-vega.biz -garciniacambogiaextracts.net -gardconma.cf -gardel.org -gardemaks-official.space -gardemaks-official.website -garden-of-vegan.com -garden-plant.ru -gardenans.ru -gardencourt.online -gardengift.info -gardeningtips.shop -gardeniom.com -gardenpavingonline.net -gardenscape.ca -gardensgrow.com -gardenshop.futbol -gardentamcoc.com -gardercrm.ru -gardgispa.cf -gardgispa.ga -gardgispa.gq -gardgispa.tk -gardn.net -garenasukien.com -garfield-game.ru -garfieldsurvival.info -garibomail2893.biz -garillias22.net -garingsin.cf -garingsin.ga -garingsin.gq -garingsin.ml -garizo.com -garlandaccidentlawyers.com -garlanddusekmail.net -garlandnailsalons.com -garliclife.com -garlicmedia.site -garlicteaorjinal.site -garlictearesmi.site -garlictearesmisatis.info -garlictearesmisatis.site -garlictesatis.site -garmall.com -garmineshop.com -garmingpsmap64st.xyz -garnavia.xyz -garnett.us -garnettinvestmentstrategies.com -garnettmailer.com -garnous.com -garoth.com -garqelo.com -garrifulio.mailexpire.com -garriganlymaninside.com -garruko.ga -garrulous.me -garry-potter.net -garrymccooey.com -garrynacov.cf -garsasd.club -garsvisi.cf -garsvisi.gq -garsvisi.ml -gartenarbeiten-muenchen.ovh -garu.site -garudaesports.com -garyburge.net -garykruegerdds.com -garyschollmeier.com -garyshaw.net -gas-avto.com -gas-spark-plugs.pp.ua -gasdjklwe.online -gasech.xyz -gaselectricrange.com -gashik.site -gasly.info -gasocin.pl -gasofmass.com -gasp.live -gaspariniadv.com -gasprem.ru -gaspworkoutwear.com -gassfey.com -gasspecsa.info -gasssboss.club -gastchalga.ga -gastchalga.gq -gastchalga.ml -gastchalga.tk -gastivist.org -gasto.com -gastroioyb.space -gastrolekars.ru -gastructuralengineering.com -gastsandang.cf -gastsandang.ga -gastsandang.gq -gastsandang.ml -gastsandang.tk -gastterpie.gq -gastterpie.ml -gastterpie.tk -gaswirth.me -gasztrofalu.com -gatamala.com -gatariweb.com -gatdau.com -gate-repair-thousandoaks.info -gaterremeds1975.eu -gateway3ds.eu -gatewaytube.com -gathelabuc.almostmy.com -gatherenmedia.com -gatlisheco.icu -gatmoka.com -gato.com -gato.gq -gatosdebotella.icu -gatosk.net -gatou.store -gaubonghn.com -gaudianosporthorses.com -gaumontleblanc.com -gauzemolv.space -gav0.com -gavasol-url1.ru -gavelhost.com -gavinmeetings.com -gavyedekparca.com -gawab.com -gawai-nedv.ru -gawc6234.xyz -gawhatsapp.com -gawmail.com -gawuxu.xyz -gay-cams.club -gay-kontakte.online -gay.theworkpc.com -gayana-nedv.ru -gayatriaura.info -gayboysi.com -gaycock.ru -gaydaddy.ga -gaydatingheaven.com -gaydayexpo.com -gayflorida.net -gayken.org -gayluspjex.ru -gaymail2020.com -gaymoskva.net -gaymoviedome.in -gaynewworkforce.com -gayoranges.com -gayrimenkuluniversitesi.com -gaytag.club -gayvirtualworld.com -gaz-inv1st.space -gaz-invesst.space -gaz-promihlinost.space -gaz-prominest.website -gaz-prominvest.ru -gaz-proms.website -gazam.ru -gazebostoday.com -gazetajavore.net -gazetapracapl.pl -gazetawww.pl -gazetecizgi.com -gazettenews.info -gaziantepara.xyz -gaziantepbaca.online -gaziantepbaca.xyz -gazianteplitatlici.xyz -gaziemirfm.xyz -gaziemirlisesi.xyz -gazipasaklimaservisi.com -gazoproekct.space -gazpro2vesti.ru -gb-1004.com -gb186.site -gb6.ru -gbamiconstruction.com -gbamld.best -gbcmail.win -gberos-makos.com -gbf48123.com -gbgb1234.com -gbh1h.us -gbkfho.us -gbkutf8.com -gbmail.top -gbmouldings.com -gbnbancorp.com -gbois-stav.ru -gbouquete.com -gbpartners.net -gbqetv.info -gbqtfm.com -gbs7yitcj.pl -gbtxtloan.co.uk -gbuyeasy.com -gbvm.email -gbxuums.com -gbz01nn6.xyz -gcacweb.com -gcamhmgt.shop -gcantikored.pw -gcaoa.org -gcasino.fun -gcbcdiet.com -gcc-ibt.us -gcc138.com -gcciw.org -gcdj168.com -gcdn.hk -gcei3r.com -gcf84z.us -gcfleh.com -gchatz.ga -gckgw.info -gclubscr888.com -gcmail.top -gcordobaguerrero.com -gcosmic.ru -gcp.ong -gcscarshipping.com -gcsoftware.ru -gctqlypk.shop -gcvqin.us -gcwjw.info -gcyacademy.com -gczbpbe.site -gcznu5lyiuzbudokn.ml -gcznu5lyiuzbudokn.tk -gd5ose.online -gd6ubc0xilchpozgpg.cf -gd6ubc0xilchpozgpg.ga -gd6ubc0xilchpozgpg.gq -gd6ubc0xilchpozgpg.ml -gd6ubc0xilchpozgpg.tk -gdacg.com -gdb.armageddon.org -gdbpag.site -gdcmedia.info -gdcp84.com -gdcp868.com -gddao.com -gde-vzyat-ipoteku.ru -gde-zaim.online -gdekupit5.ru -gdemuzon.ru -gdf.it -gdfretertwer.com -gdfsafdhbag.website -gdgoodjob.com -gdgreat.online -gdgreat.ru -gdhkftp.com -gdian38.com -gdian39.com -gdian43.com -gdian44.com -gdian48.com -gdian49.com -gdian53.com -gdian54.com -gdian56.com -gdian57.com -gdian58.com -gdian59.com -gdian62.com -gdian63.com -gdian76.com -gdian78.com -gdian82.com -gdian83.com -gdian84.com -gdian85.com -gdian86.com -gdian87.com -gdian93.com -gdian95.com -gdian99.com -gdjdjqok.shop -gdkhox.us -gdl1rr.site -gdmail.top -gdmalls.com -gdmushifu.com -gdprcompliance.expert -gdprcompliance.solutions -gdqdaintb.ml -gdqdp2.us -gdqzhv.com -gdradr.com -gdstudyworkshop.net -gdsutzghr.pl -gdtjh.com -gdyiyh.us -gdynia.ru -gdzhya.com -gdziearchitektura.biz -ge1hsn.online -ge788.com -ge991.buzz -geadventure.com -geail.com -geanic.icu -geararticles.com -geardos.net -geargum.com -gearhead.app -gearheads.us -gears4camping.com -geartower.com -gearyourfuture.com -geauxday.com -geaviation.cf -geaviation.ga -geaviation.gq -geaviation.ml -geaviation.tk -gebaeudereinigungsfirma.com -gebicy.info -geburtstags.info -geburtstagsgruesse.club -geburtstagsspruche24.info -gebyarbet.info -gebyarpoker.com -gebzetuning.xyz -gecici.ml -gecotspeed04flash.ml -ged34.com -gedagang.co -gedagang.com -geddesandjill.com -gedhemu.ru -gedmail.win -gedore-rus.ru -gedotvtan.shop -gedsmail.com -gedungqq.site -geedeehewstone.me -geedt.icu -geek-poster.ru -geekcheatsheets.com -geekchiccouture.com -geekemailfreak.bid -geekforex.com -geekhack.network -geekhack.report -geekipedia.ru -geekology.com -geekpursuits.com -geekyogurt.tech -geekzhosting.com -geeqs.ru -geew.ru -geezmail.ga -gef.global -gefestglass.ru -gefpmjsfq.shop -gefriergerate.info -gegealabama.com -gegealaska.com -gegearizona.com -gegearkansas.com -gegedanbasi.tk -geggos673.com -gehensiemirnichtaufdensack.de -gehmitmiraus.xyz -gehu.site -geidragdio.ga -geidragdio.gq -geilmacher.com -geimager.com -gejaagd.online -gekhom.cd -gekk.edu -gekkogames.org -gekokerpde.tk -gekury4221mk.cf -gekury4221mk.ga -gekury4221mk.gq -gekury4221mk.ml -gekury4221mk.tk -gelarqq.com -gelatinize510jw.xyz -gelatoprizes.com -geld-verdienen-leicht-gemacht.online -gelddestges.cf -gelddestges.ga -geldverdienenalstiener.online -geldwaschmaschine.de -gelegenheidsdatingsites.online -gelendgiklove.ru -gelenekselgulsuyu.com -gelenium.ru -geleti.cf -geleti.gq -geleti.ml -geleti.tk -gelitik.in -gelnhausen.net -gelomart.site -geltopmarl.site -geludkita.cf -geludkita.ga -geludkita.gq -geludkita.ml -geludkita.tk -gemail.com -gemar-qq.live -gemarbola.icu -gemarbola.life -gemarbola.link -gemarbola.news -gemardepo.online -gemeentebanen.works -gemient.com -geminicg.com -gemmation.site -gemo-pro-svechi.ru -gemsgallerythailand.ru -gemsro.xyz -gen.uu.gl -gen16.me -genallinutritionals.com -genazvales.world -genclikvemedeniyet.online -genclikvemedeniyet.xyz -gencurebiomanufacturing.com -genderfuck.net -genderuzsk.com -gendutpoker.net -gendutpoker.org -genelmuteahhitlik.com -genelmuteahhitlik.net -genelteknikdestekhatti.com -generador.app -general-casino.info -general-electric.cf -general-electric.ga -general-electric.gq -general-electric.ml -general-motors.tk -generalbatt.com -generalhost.online -generalinguistics.com -generaltranz.top -generationcrypto.ru -generationscommunity.com -generationym.org -generatoa.com -generator.email -genericaccutanesure.com -genericcialis-usa.net -genericcialissure.com -genericcialisusa.net -genericclomidsure.com -genericcrestor.website -genericdiflucansure.com -genericflagylonline24h.com -genericlasixsure.com -genericlevitra-usa.com -genericmedrol.info -genericprednisonesure.com -genericpropeciaonlinepills.com -genericpropeciasure.com -genericretinaonlinesure.com -genericretinasure.com -genericsautralia.com -genericsingulairsure.com -genericventolin.info -genericviagra-onlineusa.com -genericviagra-usa.com -genericviagra69.bid -genericviagraonline-usa.com -genericwithoutaprescription.com -genericzithromaxonline.com -genericzoviraxsure.com -genericzyprexasure.com -generoushomebuyersllc.net -generousoptions4all.net -geneseeit.com -genesisvaluation.com -geneticdisease.org -genetics.farm -genetics.shop -genetiklab.com -genetoken.community -genevoid.com -genf20plus.com -genf20review1.com -gengencharities.net -gengencharties.net -gengxinji.com -gengzei.club -genicraft.ru -genioushacker.cf -geniusf.actor -geniusfactor.dev -genk5mail2.ga -genkibit.com -genkpoker2.xyz -genmobile.net -gennowhosting.com -gennox.com -genoa-cafe-rush.com -genoa-takeaway-athlone.com -genoacaferush.com -genoacafesallins.com -genonema.com -genotropin.in -genoutdo.eu -genrephotos.ru -genserv.xyz -gensetgas.com -genshure.com -gentakusumo.xyz -genteymac.net -gentlemancasino.com -gentlemen.ml -gentlemensbarbershop.club -genturi.it -genuinemicrosoftkeyclub.com -genuinestaunton.com -genuosofa.com -genusixhre.space -genusneyee.ru -genuspbeay.space -genusvnabf.space -genvia01.com -genx-training.com -genys.best -geo-crypto.com -geo.gallery -geobroodun.cf -geobroodun.ga -geobroodun.ml -geobroodun.tk -geoclaven.ml -geoclaven.tk -geoclsbjevtxkdant92.cf -geoclsbjevtxkdant92.ga -geoclsbjevtxkdant92.gq -geoclsbjevtxkdant92.ml -geoclsbjevtxkdant92.tk -geodeticdirections.info -geodezjab.com -geodoo.xyz -geofinance.org -geoglobe.com -geoinbox.info -geojson.app -geokomponent.ru -geolocalroadmap.com -geologgdpo.space -geologicpublications.net -geologik.biz -geomail.win -geometricescape.com -georaster.info -georedact.com -georestti.gq -georestti.tk -george-pooley.com -georgebox.net -georgeharvey.buzz -georgehood.com -georgeslaan.buzz -georgethefoods.com -georgevye.com -georgeztxc.host -georgia-tut.ru -georgiamcdonald.buzz -georgiamedicarenews.com -georgiamorley.buzz -georgiamountainlakehouses.com -georgiapearson.buzz -georgiaprobateservices.info -georide2.app -georights.net -geospirit.de -geostall.com -geotage.ga -geotage.gq -geotage.tk -geotamar.cf -geotamar.ga -geotamar.gq -geotamar.ml -geotamar.tk -geotemp.de -gepatitu-c.net -geposel.ga -geposel.gq -geposel.ml -geposel.tk -geraldbull.org -geraldinemoo.com -geraldlover.org -gerandos.ru -gerdese.online -gerdimenta.ru -gere.oazis.site -geremail.info -gerenc.host -gerenciacaixa.online -gerenciagran.com -gergilimembran.com -gerhanajitu.net -gerher3-privberh.fun -gerher3-privberh.host -gerher3-privberh.press -gerher3-privberh.site -gerher3-privberh.space -gerher3-privberh.website -geriatricos.page -geristore.xyz -gerkava.website -germainarena.com -germanmail.de.pn -germanmails.biz -germanytoday.club -germanyxon.com -germemembran.com -germemembranlar.com -germinahah.space -germred.site -germsurfacegain.website -gerncompmas.ga -gerncompmas.tk -gero.us -geroev.net -geronra.com -gerovarnlo.com -gers-phyto.com -gertenisembul.xyz -gerties.com.au -gertyisacas.club -gertyni.xyz -ges-online.ru -geschcahers.cf -geschcahers.gq -geschcahers.ml -geschcahers.tk -geschenk-aa.club -geschenk-ac.club -geschenk-ak.club -geschenk-am.club -geschenk-an.club -geschenk-v.club -geschenk-z.club -geschent.biz -gesotyb.tech -gestiondefortune.info -get-best-datings1.com -get-best-prize11.life -get-best-prize13.life -get-best-prize4.life -get-best-prize6.life -get-best-proxy.xyz -get-bestprize14.life -get-bestprize2.life -get-bestprize5.life -get-biobalancelashes.com -get-bitcoins.club -get-bitcoins.online -get-data-id-2.space -get-dental-implants-key.live -get-dental-implants-new.live -get-dental-implants.com -get-dynafuzelash.com -get-house-security-offer.market -get-insurance.com -get-interfxglassluxury.com -get-interfxproductsofluxury.com -get-liposuction-weightloss.live -get-mail.cf -get-mail.ga -get-mail.ml -get-mail.tk -get-my-offer.club -get-optmunblaze.com -get-papistop.site -get-psoriasis-solutions.market -get-psoriasis-treatment.market -get-thebonus-now6.life -get-thebonus-now9.life -get-truck-auto-spot.sale -get-ultrazeel-luxury.com -get.griyakuliner.com -get.pp.ua -get.tokyo -get1mail.com -get2mail.fr -get30daychange.com -get365.pw -get365.tk -get3bs.com -get417.xyz -get42.info -getadeals.biz -getahairstyle.com -getairmail.cf -getairmail.com -getairmail.ga -getairmail.gq -getairmail.ml -getairmail.tk -getalldental.net -getaloanfast.biz -getamailbox.org -getamalia.com -getandklj.gq -getapet.info -getapet.net -getapp.company -getappraisers.com -getaqu.info -getasolarpanel.co.uk -getautoloan.website -getautomata.org -getaviciitickets.com -getbackinthe.kitchen -getbearded.com -getbet.host -getblg.xyz -getblgs.xyz -getblogs.xyz -getbonce.com -getbreathegreencharcoal.com -getbreathtaking.com -getbriefr.com -getbusinessontop.com -getcashstash.com -getceen.com -getcelloskinbylittlemonkey.com -getchina.ru -getchopchop.com -getcleanskin.info -getcloudmango.net -getcmoji.com -getcoolmail.info -getcoolstufffree.com -getcorkgenius.com -getcustomdesigns.site -getdarkfast.com -getdocumentsdone.info -getdocumentsdone.org -getdoll.ru -getebookclick.com -geteit.com -getemail.tech -getemail9.com -getevange.com -getevangelised.com -getf.site -getfollowers24.biz -getfreecoupons.org -getfreefollowers.org -getfreshcut.com -getfrntrw.online -getfun.men -getgymbags.com -gethappysound.com -gethimbackforeverreviews.com -getimpromptu.com -getinboxes.com -getinharvard.com -getinshap.com -getinstafollowers.website -getinsuranceforyou.com -getintopci.com -getippt.com -getishop.xyz -getisrael.com -getit-beauty.com -getitfast.com -getivtreatment.org -getjar.pl -getjulia.com -getkitchen.club -getkl.site -getknot.app -getladiescoats.com -getlesshot.cf -getlesshot.ga -getlesshot.gq -getlesshot.ml -getlesshot.tk -getlink.website -getlinkyoutube.net -getllcservices.com -getlostin.com -getmaidanapinola.com -getmail.fun -getmails.eu -getmails.pw -getmails.tk -getmailsonline.com -getmaptab.com -getmba.ru -getmemyname.com -getmethefouttahere.com -getmoziki.com -getmy417.xyz -getmygoods.cloud -getmygooods.store -getmylivecam.online -getnada.cf -getnada.com -getnada.ga -getnada.gq -getnada.ml -getnada.tk -getnetfx.website -getnewnecklaces.com -getnflxnw.website -getnites.com -getnowdirect.com -getnowtoday.cf -getobeslim.host -getocity.com -getofferoline.space -getoffmylawn.org -getoffrentohio.com -getonemail.com -getonemail.net -getpaperz.com -getpaulsmithget.com -getpdfmanuales.xyz -getpier.com -getprogramstart.com -getqueenbedsheets.com -getridofacnecure.com -getridofherpesreview.org -getridofsteve.com -getrocketbox.com -getruvi.com -getsamar.com -getscripts.org -getsewingfit.website -getsimpleemail.com -getsnooperapp.com -getsplitpea.com -getspringsfast.com -getstructuredsettlement.com -getstuffedgoogle.com -getsuz.com -gett.icu -gettangent.com -gettempmail.com -getthemp3.com -gettinga.buzz -gettinhas.ml -gettoknowphilanthropy.org -gettopubg.com -gettruck-autospot.sale -gettruvi.com -getty-home.com -getty-lab.com -getty-labs.com -gettyam.com -gettycap.com -gettycm.com -gettyeng.com -gettyfamilyoffice.com -gettyfo.com -gettyfour.com -gettygolf.com -gettygrowth.com -gettyhq.com -gettyinvest.com -gettyoffice.com -gettyprojects.com -gettysburgfoundation.info -gettysburgleadership.org -gettyscienceengineering.com -gettysecretariat.com -gettysf.com -gettysp.com -getupagain.org -getvid.me -getvmail.net -getvpn.net -getwaterpulse.com -getwebsiter.com -getwetinc.net -getwomenfor.me -getwoothemes.com -getworlddirect.com -getyougadgets.com -getyourbook.site -getyourstudy.ru -getyourtantraon.com -getzradonpros.net -getzradonpros.org -geuur.live -gevemarket.site -gewinner-pose.com -gewqsza.com -geykurword.cf -geykurword.ga -geykurword.gq -geykurword.tk -gezaweisz.com -gezikolik.com -gf-roofing-contractors.co.uk -gf.wlot.in -gf15f1g.live -gf7w.com -gfades.site -gfan.gvoice.men -gfbjnu.com -gfcgp.club -gfcnet.com -gfcom.com -gfdbnmy21.info -gfdbnmy21.website -gfdc-bfdvd-dvs.online -gfdrwqwex.com -gfdyhrtyre.site -gfe83.space -gffcqpqrvlps.cf -gffcqpqrvlps.ga -gffcqpqrvlps.gq -gffcqpqrvlps.tk -gffgf.club -gffgf.site -gffjf.club -gfftxn.com -gfgfgf.org -gfgnw.icu -gfh522xz.com -gfhjk.com -gfhly.club -gfivj.icu -gflwpmvasautt.cf -gflwpmvasautt.ga -gflwpmvasautt.gq -gflwpmvasautt.ml -gflwpmvasautt.tk -gfmail.cf -gfmail.ga -gfmail.gq -gfmail.tk -gfmbh.xyz -gfmewrsf.com -gfounder.org -gfpiz1.site -gfpqlk.info -gfqmpn.tokyo -gfremail4u3.org -gfsbilling.com -gfsc.global -gfsoftwareapp.com -gfsw.de -gftodtyl.shop -gftpf.live -gful.fun -gful.store -gful.us -gfvgr2.pl -gfwjrmpa.shop -gfwlist.com -gfwsbs.us -gfxtool.buzz -gfyule8.com -gfzju.site -gg-byron.cf -gg-byron.ga -gg-byron.gq -gg-byron.ml -gg-byron.tk -gg-maramont.ru -gg-squad.ml -gg-zma1lz.ga -gg018.space -gg019.space -gg022.space -gg023.space -gg024.space -gg025.space -gg18269.com -gg2srxzj.com -gg57822.com -gg7665.com -gg9094.com -ggame3.site -ggame3.xyz -ggamerandomly.buzz -ggbags.info -ggbb45452.com -ggbc.email -ggbrop.net -ggdr0p.ru -ggdropx.ru -ggdropxl.ru -ggedell.site -ggergerherhhrehrgfd.club -ggfbp.xyz -ggfd.de -ggffh.club -ggffh.site -ggfgf.site -ggfutsal.cf -ggg.pp.ua -ggg062.com -ggg813.com -ggg9827.com -gggmail.pl -gggmarketingmail.com -gggt.de -gggvl.club -gggzh.com -gghfjjgt.com -ggigasetk.site -ggigasharee.site -ggijhd.com -ggiq.cn -ggmail.com -ggmail.guru -ggmob-us.fun -ggobu.net -ggooglecn.com -ggp58.com -ggpb.us -ggqfuc.rest -ggr-supportservices.com -ggroop.info -ggrreds.com -ggstandoff.ru -ggtoll.com -ggwest.ru -ggworxrld.shop -ggxx.com -gh-stroy.ru -gh.wlot.in -gh2xuwenobsz.cf -gh2xuwenobsz.ga -gh2xuwenobsz.gq -gh2xuwenobsz.ml -gh2xuwenobsz.tk -gh5sdq.us -gh5tdr.com -gh8bk.us -ghabzak.com -ghainod.ru -ghanalandbank.com -ghanun.info -ghatefar.com -ghcptmvqa.pl -ghcrublowjob20127.com -ghdfinestore.com -ghdhairstraighteneraq.com -ghdhairstraightenersuk.info -ghdpascheresfrfrance.com -ghdsaleukstore.com -ghdshophot.com -ghdshopnow.com -ghdshopuk.com -ghdstraightenersukshop.com -ghdstraightenersz.com -ghdvw.icu -ghea.ml -gheadfisa.ga -gheadfisa.gq -gheadfisa.ml -ghehop.com -ghet.ru -ghettochip.com -ghettoize768xv.online -ghffl.club -ghfh.de -ghgluiis.tk -ghid-afaceri.com -ghiglianocinzia.com -ghiscarbices.tk -ghjeb.live -ghkoyee.com.uk -ghkyukjb7-privytfg.host -ghkyukjb7-privytfg.press -ghkyukjb7-privytfg.space -ghkyukjb7-privytfg.xyz -ghodrancomplex.com -gholbifym.host -ghomonnirtel.site -ghor.us -ghork.live -ghost-squad.eu -ghost4snapchat.com -ghostadduser.info -ghostbustersgeneration.com -ghostcheck.xyz -ghostdiversnz.org -ghostgoop.icu -ghostncrypt.biz -ghosttexter.de -ghosttownmall.net -ghosttownmall.org -ghostyforinstagram.com -ghpb.org -ghqqmdqtgtqustunutqg.ru -ghrebuyhouses.com -ghrmw.info -ghservers.online -ghtr1q.us -ghtreihfgh.xyz -ghulamid.me -ghxdw.info -ghymail.com -ghymau.us -ghynvm.com -gi-pro.org -gi816.space -gi9z54.us -giabbse.com -giacht.com -giacmosuaviet.info -giadoni.com -giaimathanhcong.net -giaiphapmuasam.com -giallo.cf -giallo.gq -giallo.ml -giallo.tk -gianmendez.com -gianna1121.club -giantessfan.org -giantmail.de -giantnetwerk.online -giantsuperstores.com -giantwebs2010.info -giaoisgla35ta.cf -giaphacuatui.com -giapham.com -giapham.org -giapratescon.tk -giaveum.info -gibejo.cf -gibejo.ga -gibejo.gq -gibejo.ml -gibejo.tk -gibit.us -gibligens.ga -gibligens.gq -gibligens.ml -gibligens.tk -giblpyqhb.pl -gibran88.com -gibsonbigiron.net -gibsonmail.men -gicarep.cf -gicarep.ga -gicarep.gq -gicarep.tk -giccasv1.tk -gicua.com -gidabankaciligizirvesi.com -gidabankaciligizirvesi.info -gidabankaciligizirvesi.net -gidchardogu.cf -gidchardogu.ga -gidchardogu.ml -gidra-onion.club -gidstomm.website -gidtraveler.ru -gidzdorov.ru -giedewly.cf -giedewly.gq -giedewly.ml -giedewly.tk -gieldatfi.pl -gies.email -giessdorf.eu.org -gifanu.ga -gifanu.gq -gifanu.ml -gifanu.tk -gifchat.info -gifenix.com.mx -gifexpress.com -gifjlc.tokyo -gifletter.com -gifmehard.ru -gifmoe.com -gifora.com -gift-2020.site -gift-link.com -gift-listed.online -gift-listed.space -gift-of-love-solidarity.org -giftasdjafwer.online -giftbasketinformation.com -giftcardsgen.me -gifted.photo -giftedandcyber.com -giftelope.com -giftloss.us -giftmobile.space -giftnotruf.org -gifto12.com -giftopo.com -giftpackmail.com -giftproject.org -gifts4homes.com -giftsales.store -giftscrafts2012.info -giftsfromwalmart18.us -giftsshopuss.com -giftsspaces.com -giftwatches.info -giftyello.ga -giftyello.gq -giftyoulove.com -gigabitstreaming.com -gigaclick.tech -gigacylydm.space -gigaload.site -gigantix.co.uk -gigantmass.ru -gigapesen.ru -gigauoso.com -giggit.com -gigilyn.com -gigisalumificio.biz -gigism.com -gign-40.com -gigolocam.biz -gigpurchase.com -gigs.craigslist.org -gihoon.com -gihybe.us -gikemart.site -gikmail.com -gilaayam.com -gilababi1.ml -gilberthairsalons.com -gilby.limited -gilertelogg.xyz -giles020.top -giles037.top -giles117.top -giles129.top -giles157.top -giles164.top -giles197.top -giles198.top -giles220.top -giles232.top -giles263.top -giles291.top -giles449.top -gilfun.com -gilireyke.com -gillann.site -gillovhjol.space -gilmor1.com -gilmoreforpresident.com -gilo.ml -gilray.net -gimail.com -gimal.com -gimbalsstabilizer.futbol -gimei.live -gimel.net -gimesson.pe.hu -gimmedat.info -gimmehits.com -gimnasiolleno.com -gimp.us -gimpu.ru -gimsa-renamun.ru -gimshl.us -gimuepic.site -gina18.online -gina18.site -gina18.space -gina18.website -ginbottlelamps.com -gindatng.ga -gine.com -ginel.com -gingerbruce55places.com -gingertail.in -gingervietnamese.com -gingmeten.cf -gingmeten.ga -gingmeten.gq -gingmeten.ml -gingmeten.tk -gingreree.cf -gingreree.gq -gingreree.ml -gingreree.tk -ginkkvetbor.cf -ginkkvetbor.ga -ginkkvetbor.gq -ginkkvetbor.ml -ginkkvetbor.tk -ginn.cf -ginn.gq -ginn.ml -ginn.tk -ginnio.com -ginnygorgeousleaf.com -gino-takeaway.com -ginos-takeaway-navan.com -ginsarin.ga -ginsarin.gq -ginsarin.ml -ginxmail.com -ginzi.be -ginzi.co.uk -ginzi.es -ginzi.eu -ginzi.net -ginzy.co.uk -ginzy.eu -ginzy.org -giochi0.it -giochiz.com -giocorsio.tk -giofiodl.gr -giogio.cf -giogio.gq -giogio.ml -giohyrown.cf -giohyrown.ga -giohyrown.tk -giooig.cf -giooig.ga -giooig.gq -giooig.ml -giooig.tk -giordanofoundation.com -giorgio.ga -giotisi.cf -giotisi.ga -giotisi.gq -giotisi.ml -giotisi.tk -giourabca.ga -giourabca.gq -giourabca.ml -giourabca.tk -giovana.org -giozs.us -gipasco.cf -gipasco.ga -gipasco.gq -gipasco.ml -giplwsaoozgmmp.ga -giplwsaoozgmmp.gq -giplwsaoozgmmp.ml -giplwsaoozgmmp.tk -gipsowe.waw.pl -gipsrecycling.biz -gipwkv.com -giqsru.com -giraffe-school.online -giran.club -girbot.com -giresunajanssecim.xyz -giresunanaokulu.xyz -giresunfoto.xyz -giresunsuturunleri.com -giresuntasari.com -girisx.club -girl-beautiful.com -girl-cute.com -girl-nice.com -girlbo.shop -girlcosmetic.info -girldiary.ru -girleasy.com -girlemail.org -girlfriendflicks.com -girlgear.us -girlkiss.site -girlmail.win -girlmanss.info -girlmogulmagazine.com -girlncool.com -girlorgy.site -girlpower2022.com -girls-stars.ru -girls-xs.ru -girls54.pro -girlsdate.online -girlsforfun.tk -girlsindetention.com -girlsu.com -girlsundertheinfluence.com -girlsx.online -girlt.site -girlygirlshopping.com -giromail.club -giromail.info -girosgriegozaragoza.com -girth.xyz -girtipo.com -gishpuppy.com -gismoshopping.com -gisont.site -gispgeph6qefd.cf -gispgeph6qefd.ga -gispgeph6qefd.gq -gispgeph6qefd.ml -gispgeph6qefd.tk -gisthafea.cf -gisthafea.ga -gisthafea.gq -gisthafea.tk -gistnewgkal.cf -gistnewgkal.gq -gistnewgkal.ml -gistreel.net -gisttimens.cf -gisttimens.gq -gisttimens.ml -gisttimens.tk -git--help.com -git-help.com -gitarrenschule24.de -github.best -gitog.biz -gitovery.online -gitpost.icu -gitstage.net -gittigidiyorxym.xyz -gitumau.ga -gitumau.ml -gitumau.tk -gityun.com -giuras.club -giutrtf6-privtuyfy.fun -giutrtf6-privtuyfy.host -giutrtf6-privtuyfy.press -giutrtf6-privtuyfy.site -giutrtf6-privtuyfy.space -giutrtf6-privtuyfy.xyz -giuypaiw8.com -givdgive.shop -giveaspyt.com -giveaway-national-gift-weekly.club -givecoast.com -givedrop.xyz -givegivd.shop -giveh2o.info -givememail.club -givemeyourhand.info -givemoney2018.ru -giverank.us -giverprosperhotel.site -givespin6k.xyz -givethefalconslight.com -givinglottery.org -givity.ru -givluip.ml -givmail.com -givmy.com -givorlnjc.shop -giwwoljvhj.pl -giyam.com -giysigiydirmeoyunlari24.com -gizlicennetkibris.com -gizmobd.com -gizzmo.se -gj96m.info -gjbmyn.com -gjbnyb.com -gjcwao.com -gjgjg.pw -gjgklp.us -gjhdizhi.com -gjjgg.com -gjkk.de -gjknbb.com -gjnqv.us -gjrpegj15.host -gjscw.info -gjsrestoration.com -gjysaw.info -gjyuqd.us -gk-konsult.ru -gkcgrp.com -gkcmds.fun -gkcmfk.fun -gkcmkk.fun -gkcrhl.us -gkd06.space -gkdcsi.ru -gkhmpj.fun -gkjeee.com -gkjgsxupc.shop -gklohe.rest -gkmmcg.fun -gkmmhq.fun -gknmgd.fun -gknmwk.fun -gkolimp.ru -gkorii.com -gkplogistics.com -gkqmfl.fun -gkrmck.fun -gkrmfz.fun -gkrmnx.fun -gkuaisyrsib8fru.cf -gkuaisyrsib8fru.ga -gkuaisyrsib8fru.gq -gkuaisyrsib8fru.ml -gkuaisyrsib8fru.tk -gkvse.live -gkwerto4wndl3ls.cf -gkwerto4wndl3ls.ga -gkwerto4wndl3ls.gq -gkwerto4wndl3ls.ml -gkwerto4wndl3ls.tk -gkworkoutq.com -gkx87f-mail.xyz -gkxmmk.fun -gkxuem.site -gkyyepqno.pl -gkzbwv.com -gkzmwf.fun -gkznls.us -gl-do.com -gl-wk.com -glabinas.ga -glabinas.gq -glabinas.ml -glacialbottle.nu -glacialbottle.org -glaciercx.com -glacierfx.com -glad-lottery.com -gladchenko-coach.ru -gladiator.org -gladishouse.co -glados.life -gladwithbooks.site -gladysh.com -glakon.ru -glamino.ee -glamourbeauty.org -glamourcow.com -glamtagonist.com -glamurr-club.ru -glareinstalmosquito.website -glasgowmotors.co.uk -glashatay.info -glasrose.de -glass-cleaner.ru -glass-etching.com -glassaas.site -glasscanisterheaven.com -glassdisplaydoorgaskets.com -glasses88.com -glassesoutletsaleuk.co.uk -glassesoutletuksale.co.uk -glasshorseventures.com -glassided.space -glassok-cheff.ru -glasstowerwindows.com -glasswareexchange.com -glassworks.cf -glastore.uno -glaszakelijk.com -glatjobs.com -glavlead.com -glavsg.ru -glavsliv.club -glawsaibrak.cf -glawsaibrak.ga -glawsaibrak.gq -glawsaibrak.tk -glaxion.ga -glaxion.ml -glaxion44.ml -glaxion93.cf -glaxion93.ga -glaxukali.tk -gle.best -gleamlaau.space -gleeze.com -glendalequote.com -glendalerealestateagents.com -glendenningflowerdesign.com -glendepe.cf -glendepe.gq -glendepe.ml -glendepe.tk -glenmontshoppingcenter.com -glennvhalado.tech -glenresearch.net -glenresearch.org -glenwoodave.com -glessyturismo.com -glfjvfqzo.shop -glick.tk -glidefea.xyz -glidefun.xyz -glidescal.us -glidesh.icu -glidesh.xyz -gligsfall.ru -glimermann.com -glissecompany.ru -glissinternational.com -glitch.sx -glitchwar.com -glitchwave.it -gliuk.ru -gliwicemetkownice.pl -gllwgnlzv.shop -glmail.ga -glmail.top -glmknm.com -glmux.com -global-4d.com -global-4d.online -global-loto.ru -global.coach -global1markets.com -global1trader.com -global2.xyz -global365.site -global4d.online -globalcarinsurance.top -globalccashcard.com -globalcitizenhub.com -globalcube.site -globaldesignassociation.com -globaldisciple.com -globaldisciple.org -globaldomainnetwork.com -globalelectrum.com -globaleuro.net -globalfinanceblog.club -globalgossip.me -globalhealthfailures.com -globalii.xyz -globalimiz.xyz -globalinvestblog.club -globalitcert.com -globaliting.net -globaljetconcept.media -globaljetstore.com -globalkino.ru -globallowdown.net -globallowdown.org -globalmarijuanashop.com -globalmarketingcourse.com -globalmeshlabs.dev -globalmillionaire.com -globalmotorsalgeria.com -globalpoker99.club -globalpokerqq.net -globalpolicynetwork.org -globalpuff.org -globalsilverhawk.com -globaltechnologyinnovation.info -globaltechnologyinnovation.online -globaltechnologyinnovation.org -globaltouron.com -globaltravelnewsinformation.com -globalvietmedia.net -globalwarmingproblemsolvers.org -globegro.com -globepaymentway2.com -globistackcampaign.com -globlenews.xyz -globlh.com -globobet.com -globocg.com -glocality.com -glocalrecognition.com -glocalrecognition.info -glocalrecognition.org -glockneronline.com -glocknershop.com -glodaldate.fun -gloflycbd.com -glome.world -glomtiotu.cf -glomtiotu.ga -glomtiotu.gq -glomtiotu.ml -glomtiotu.tk -gloom.org -gloomage.buzz -gloomju.email -gloomspeed.fun -gloopyrobot.icu -glorfindell.com -gloria-tours.com -gloria.cd -gloriajeens.ru -gloriousfuturedays.com -gloryamuse.email -glorych.xyz -gloryfra.xyz -glorylottory.com -glorysteak.email -glorytr.xyz -glorytru.xyz -gloryws.com -gloservma.com -glosspremierideal.site -glossybee.com -gloucehuhy.space -glovesprotection.info -glovlly.com -glowciola.com -glowglories.com -glowhce.com -glowinbox.info -glowrecip.com -glpbalcashcard.com -glppncife.shop -glqbsobn8adzzh.cf -glqbsobn8adzzh.ga -glqbsobn8adzzh.gq -glqbsobn8adzzh.ml -glqbsobn8adzzh.tk -glrbio.com -glsaimli.space -glservice.online -glspring.com -gltrgundx.shop -glu64.space -glubex.com -glucconsmi.ga -glucconsmi.gq -glucconsmi.ml -glucconsmi.tk -glucogen.store -glucophage.website -glucosegrin.com -glues1.com -glutenfreeallpurposebread.com -glutenfreestaples.com -glutesyourunlock.xyz -glvihqen.xyz -glxy14x.site -glxynews.site -glycb.com -glycnoma.cf -glyctistre.cf -glyctistre.ga -glyctistre.gq -glyctistre.ml -glyctistre.tk -glynda.space -glynns-kitchen-pizzeria.com -glyphosaurus.com -gm-slots-casino.win -gm-slots24.online -gm5om.info -gma2il.com -gmabrands.com -gmaeil.com -gmai.com -gmaieredd.com -gmaiil.com -gmaiil.ml -gmaiil.us -gmaiilll.cf -gmaiilll.gq -gmaiils.club -gmaik.com -gmail-anjim.tk -gmail-box.com -gmail-fiji.gq -gmail.ax -gmail.com.bellwellcharters.com -gmail.com.cad.creou.dev -gmail.com.co -gmail.com.commercecrypto.com -gmail.com.creditcardforums.org -gmail.com.creou.dev -gmail.com.deadlyspace.com -gmail.com.derdisoft.com -gmail.com.devist.com -gmail.com.digitalmarketingcoursesusa.com -gmail.com.dirtypetrol.com -gmail.com.disusedtube.com -gmail.com.diybookmarks.com -gmail.com.elitegunshop.com -gmail.com.filemakertechniques.com -gmail.com.firstrest.com -gmail.com.gabrielshmidt.com -gmail.com.gmail.cad.creou.dev -gmail.com.gmail.com.m.oazis.site -gmail.com.gmail.gmail.cad.creou.dev -gmail.com.hassle-me.com -gmail.com.healthyheartforall.com -gmail.com.herbalsoftware.com -gmail.com.hitechinfo.com -gmail.com.mahoteki.com -gmail.com.matt-salesforce.com -gmail.com.nicolhampel.com -gmail.com.pesquisaplaca.com -gmail.com.pl -gmail.com.researchdetectors.com -gmail.com.skvorets.com -gmail.com.standeight.com -gmail.com.thetybeetimes.net -gmail.com.tokencoach.com -gmail.com.urbanban.com -gmail.com.waterbedblog.com -gmail.cu.uk -gmail.gr.com -gmail.keitin.site -gmail.meleni.xyz -gmail.net -gmail.pp.ua -gmail.xzsl.rr.nu -gmail.yopmail.fr -gmail4u.eu -gmailas.com -gmailasdf.com -gmailasdf.net -gmailasdfas.com -gmailasdfas.net -gmailbete.cf -gmailcomcom.com -gmaildd.com -gmaildd.net -gmaildfklf.com -gmaildfklf.net -gmaildll.com -gmaildort.com -gmaildottrick.com -gmaile.design -gmailer.top -gmailere.com -gmailere.net -gmaileria.com -gmailerttl.com -gmailerttl.net -gmailertyq.com -gmailfe.com -gmailgirl.net -gmailhost.net -gmailhre.com -gmailhre.net -gmailjj.com -gmailkeeper.org -gmaill.com -gmailldfdefk.com -gmailldfdefk.net -gmailll.cf -gmailll.ga -gmailll.gq -gmaillll.ga -gmaillll.ml -gmailllll.ga -gmaills.eu -gmailmail.ga -gmailmarina.com -gmailnator.com -gmailner.com -gmailnet.xyz -gmailnew.com -gmailom.co -gmailpop.ml -gmailpopnew.com -gmailppwld.com -gmailppwld.net -gmailr.com -gmails.com -gmailsdfd.com -gmailsdfd.net -gmailsdfsd.com -gmailsdfsd.net -gmailsdfskdf.com -gmailsdfskdf.net -gmailserver.org -gmailskm.com -gmailssdf.com -gmailu.ru -gmailup.com -gmailvn.net -gmailwe.com -gmailweerr.com -gmailweerr.net -gmailx.xyz -gmaily.tk -gmailzdfsdfds.com -gmailzdfsdfds.net -gmajs.net -gmal.com -gmall.com -gmasil.com -gmatch.org -gmaul.com -gmawfurbabies.com -gmblmania.club -gmc-sierra.club -gmcd.de -gmcsklep.pl -gmdabuwp64oprljs3f.ga -gmdabuwp64oprljs3f.ml -gmdabuwp64oprljs3f.tk -gmeail.com -gmeeail.com -gmeil.me -gmelk.com -gmg116hz.com -gmgmne.site -gmgmu.live -gmial.com -gmil.com -gmiosaummi.host -gmixi.com -gmjszulw.shop -gmkuwsnb.shop -gmleeuruki.com -gmm59.live -gmmails.com -gmmaojin.com -gmmx.com -gmodradio.com -gmoinside.net -gmojl.com -gmok.com -gmovierulz6.com -gmp-network.com -gmp3.info -gmpartsdiscount.net -gmpartssale.com -gmpartstogo.com -gms-deluxe-casino.win -gmsb-media.com -gmscourier.com -gmsdfhail.com -gmsdluxx.com -gmsgaminators.ru -gmsinvest.ru -gmssail.com -gmtv8.com -gmx.dns-cloud.net -gmx.dnsabr.com -gmx.fr.nf -gmx1mail.top -gmxip8vet5glx2n9ld.cf -gmxip8vet5glx2n9ld.ga -gmxip8vet5glx2n9ld.gq -gmxip8vet5glx2n9ld.ml -gmxip8vet5glx2n9ld.tk -gmxk.net -gmxmail.cf -gmxmail.gq -gmxmail.tk -gmxmail.top -gmxmail.win -gn1999.com -gn655.top -gn7567dh.com -gn8.cc -gnail.com -gnajuk.me -gnbhjm.com -gnctr-calgary.com -gnd198.com -gnd200.com -gndtul.info -gndxdl.com -gnetnagiwd.xyz -gnew.site -gnews.media -gnipgykdv94fu1hol.cf -gnipgykdv94fu1hol.ga -gnipgykdv94fu1hol.gq -gnipgykdv94fu1hol.ml -gnipgykdv94fu1hol.tk -gniwal.us -gnlk3sxza3.net -gnocesunglass.com -gnocewatch.com -gnom.com -gnomebots.com -gnomecollective.com -gnomi.ru -gnomni.com -gnon.org -gnorimies.xyz -gnplls.info -gnqp26.com -gnqp29.com -gnqp32.com -gnqp33.com -gnqp37.com -gnqp38.com -gnqp39.com -gnqp40.com -gns22.com -gns44.com -gns5.com -gns55.com -gns77.com -gns99.com -gnseagle.com -gnsk6gdzatu8cu8hmvu.cf -gnsk6gdzatu8cu8hmvu.ga -gnsk6gdzatu8cu8hmvu.gq -gnsk6gdzatu8cu8hmvu.ml -gnsk6gdzatu8cu8hmvu.tk -gntgear.com -gnumail.com -gnwpwkha.pl -go-a-creditcardnofeecaok.live -go-a-tu-new-carok.live -go-blogger.ru -go-centric.com -go-creditcardnofeeca-ok.live -go-creditcardnofeecas-ok.live -go-intl-online-ok.degree -go-moscow.ru -go-online-psychic-ok.live -go-parkinsons-ok.live -go-pp.com -go-trade.dev -go-trade.org -go-tu-new-cars-ok.live -go-vegas.ru -go.irc.so -go1.site -go2019.site -go220.icu -go222.site -go288.com -go2arizona.info -go2myportals.com -go2sights.online -go2site.info -go2usa.info -go2vpn.net -go2xal.us -go333.site -go345.icu -go4mail.net -go4organic.coffee -go4v.info -go555.site -goabaltihouse.com -goacardonationok.haus -goacc.ru -goaction.club -goadjunipergive.website -goafterdark.com -goal-city.ru -goalhere.cd -goalofgtr.tk -goalraitdvq.email -goalstats.net -goandget.site -goandrate.com -goasfer.com -goashmail.com -goat.coach -goat.si -goaustralianow.com -gob0u9.site -gobaby.online -gobahis98.com -gobar.app -gobedbugremovalok.live -gobet889.online -gobet889bola.com -gobet889skor.com -gobimission.org -gobizpros.com -goblinhammer.com -goblognow.com -gobo-projectors.ru -gobodoc.xyz -gobola.com -gobuffy.ru -gobumall.site -goc0knoi.tk -gocappadociatours.com -gocardless.app -gocardless.dev -gocardonationok.haus -gocardonationsok.haus -gocase.ru -gocekyatdoseme.xyz -gocengqq.us -gocfunny.info -gochicagoroofing.com -goci.email -gociboutique.site -gocrash.net -god-from-the-machine.com -god-mail.com -godaddyrenewalcoupon.net -godataflow.xyz -godcomplexuk.com -goddysey.com -godev083.site -godfrieddevries.online -godiox.com -godlike.us -godmail.gq -godman.club -godoityourself.club -godrej-forest-grove.info -godrej-forestgrove.com -godrej-park-greens.info -godrej-serenity.net -godrej-the-river-retreat.com -godrej-the-river-retreat.net -godrejnurturebangalore.com -godrejnurturebangalore.info -godrejnurtureecity.com -godrejpark-springs.net -godrejparkgreens.info -godrejproperties-forestgrove.com -godrejproperties-forestgrove.info -godrejproperties-parkgreens.org -godrejpropertiesforestgrove.com -godrejpropertiesforestgrove.info -godrejpropertiesnurture.com -godrejpropertiesparkgreens.net -godrejtheriverretreat.net -godrejtheriverretreat.org -godsale.ru -godsayluxsit.xyz -godslot.one -godsofguns.com -godude.site -godut.com -godwinpartners.com -goear.name -goear.net -goeasyhost.net -goedkoop-fietsen.online -goedkope-batterijen.online -goedkopeminecraftserver.online -goegypt.com -goemailgo.com -goencrypt.net -goerieblog.com -gofindbrides.com -gofrantic.com -gofuckporn.com -gog4dww762tc4l.cf -gog4dww762tc4l.ga -gog4dww762tc4l.gq -gog4dww762tc4l.ml -gog4dww762tc4l.tk -gogamba.com -gogigsgo.com -goglemail.cf -goglemail.ga -goglemail.ml -gogoanimes.xyz -gogoeyesa.info -gogogays.com -gogogmail.com -gogogohome.club -gogogorils.com -gogojav.com -gogolfalberta.com -gogomail.org.ua -gogomp3.ru -gogoogleitnow.com -gogreekfishbar.com -gogreeninc.ga -gogreenon.com -gohalalvietnam.com -gohappybuy.com -gohappytobuy.net -gohomeinspections.com -gohoslya.ga -gohoslya.gq -gohoslya.tk -goimlive.space -goinggrape.com -gojek303.info -gojinkatakeaway.com -gok.kr -gokey.info -gokhankag.xyz -gokmeesters.info -gokmen.kim -gokturkist.com -gokturkokullariobs.online -gokturkokullariobs.xyz -gol60f.site -golbasiveteriner.xyz -golbengi.shop -golc.de -gold-bowling.ru -gold-cup.org -gold-mania.com -gold-now.icu -gold-recepts.ru -goldbarcube.com -goldclassicstylerau.info -goldcoastplumbingcompany.com -goldcoastswimstars.com -golddietplus.com -golddurwyh.space -golden-cup.info -golden-cup.net -golden-mine.site -golden-skate.com -goldenalley.ru -goldenbahistv1.com -goldenbola.com -goldenbrow.com -goldencbddrops.com -goldendietpro.com -goldendragontakeaway.com -goldeneggbrand.com -goldeneggbrands.com -goldenegginvesting.net -goldenelephantdunlaoghaire.com -goldenepsilon.info -goldengo.com -goldengoosesneakers13.com -goldenguy.gq -goldenhorsestravel.com -goldenjeux.com -goldenkeyresorts.com -goldenkingdoms.shop -goldenlay.cd -goldenlifewire.com -goldenlilyglanmire.com -goldenllama.us -goldenmountainchinesetakeaway.com -goldenonyx.biz -goldenplaycasino.ru -goldenpowerball2.com -goldensandbeachclub.com -goldensea-carrick.com -goldenseatakeaway.com -goldenseniors.club -goldenslots2018.ru -goldensochi-remont.ru -goldenspark.ru -goldenstarchinesetakeaway.com -goldensunsetresort.com -goldenswamp.com -goldenteebanger.com -goldenwokchinesetakeaway.com -goldenwords.club -golder.cd -goldfishka97.com -goldfishka98.com -goldfishkadownload10.com -goldfishkadownload7.com -goldfox.ru -goldfruittrust.com -goldilacts.org -goldinbox.net -goldiphone.site -goldipro.com -goldlabletech.com -goldline.money -goldmanhomeblog.site -goldmtoken.com -goldnewsbc.site -goldridgedevco.com -goldringsstore.net -goldspores.net -goldstar365avm.com -goldswitzerland.org -goldtamil.info -goldtimecasino6.com -goldtopia.online -goldtube.site -goldvid.site -goldvote.org -goldwarez.org -golead.pro -golegol58.com -golegol64.com -golegol65.com -golegol72.com -golegol73.com -golegol74.com -golegol75.com -golegol76.com -golegol78.com -golegol80.com -golegol85.com -golegol86.com -golegol87.com -golegol90.com -golegol91.com -golegol92.com -golegol93.com -golegol97.com -golemico.com -golems.tk -golenia-base.pl -goler.org -golf417homes.xyz -golf4blog.com -golfblogjapan.com -golfcam.info -golfcloud.app -golfilla.info -golfjapanesehome.com -golfnewshome.com -golfnewsonlinejp.com -golfonblog.com -golfonthesquare.net -golfshop.live -golfsports.info -golftravelreview.com -goliathhost.com -golidi.net -golighcars.cf -golighcars.gq -golighcars.ml -golimar.com -goliokao.cf -goliokao.ga -goliokao.gq -goliokao.ml -goliszek.net -golivejasmin.com -gollanp.top -golld.us -golneypread.cf -golneypread.ga -golneypread.gq -golneypread.ml -golneypread.tk -golobster.com -golottowinner.com -golovolomka-money.ru -golpeavisa.com -gomail.in -gomail.pgojual.com -gomail4.com -gomail5.com -gomailbox.info -gomaild.com -gomaile.com -gomailstar.xyz -gomaxsecurity.com -gomedal4.xyz -gomedal5.xyz -gomedal6.xyz -gomedal7.xyz -gomedal8.xyz -gomelkosmos.site -gomessage.ml -gometrodesign.com -gomiso.com -gomogoor.com -gomovies-free.site -gomsubinhduong.com -gonah.ru -gonationmedia.com -goncangan.com -gondiel.space -gondskumis69.me -gonduras-nedv.ru -gone-fishing.xyz -gonetrippin.us -gonfalon.com -gongchinese.com -gongdelin.org -gongj5.com -gongj6.com -gongog.store -gongsagaming.com -goninja.com -gonomaddhom.com -gonotebook.info -gonpup.monster -gontek.pl -gonzaloerize.org -gonzosoccer.com -goo-gl2012.info -gooajmaid.com -goocalt-car.ru -good-autoskup.pl -good-college.ru -good-digitalcamera.info -good-electronicals.edu -good-ladies.com -good-little.space -good-luck-inchicore.com -good-method.club -good-names.info -good-product.website -good-recept.ru -good-sells.ru -good-teens.com -good-things-only.site -good007.net -good2culawn.com -good2cuwindows.com -gooday.pw -goodbakes.com -goodbead.biz -goodbussines.ru -goodchange.org.ua -gooddaystakeaway.com -gooddd.ru -gooddebird.ru -gooddllc.ru -goode.agency -goode.services -goode.solutions -goodelivery.ru -goodemail.top -goodessays.website -goodfitness.us -goodfood-perm.ru -goodfood-store-dublin.com -goodhealthbenefits.info -goodhealthwater.com -goodinternetmoney.com -goodjab.club -goodlifeenergysaver.com -goodlifeoutpost.com -goodluckforu.cn.com -goodmatik.ru -goodmovies.club -goodmusicfan.ml -goodnessdetox.com -goodnewsbadnewsmusic.com -goodnewslife.fun -goodnewsworld.space -goodpay-out.press -goodportal.info -goodprice.icu -goodqualityjerseysshop.com -goodresultsduke.com -goodreviews.tk -goods.com -goods4home.ru -goodseller.co -goodsforyours.com -goodsforyours.site -goodshepherdclinic.com -goodshepheredchurchseeta.com -goodshowsco.com -goodsmart.pw -goodspitanie.ru -goodstartup.biz -goodtee.online -goodthanks.media -goodtmail.com -goodturntable.com -goodvibes.ga -goodwin.games -goodwinazart.com -goodwincasino.asia -goodwincasino.live -goodwinpoker.com -goodwinsweep.com -goodwritingservices.website -goodx.online -goodyearchiropractic.club -goodymail.men -goofybee.info -goofycats.info -goofycopilot.com -goofyhippos.info -goofyostrich.info -googalise.com -googdad.tk -googl.win -googladsystems.website -googlays.com -google-clicker.com -google-email.ml -google-mail.me -google-mail.ooo -google-plays.com -google-visit-me.com -google2u.com -googleappmail.com -googleappsmail.com -googlebox.com -googlecn.com -googledottrick.com -googlefind.com -googlegarbage.com -googlelogin.online -googlelogin.site -googlemail.press -googlemarket.com -googlesite.org -googlet.com -googli.com -googmail.gdn -googole.com.pl -googoolshop.xyz -googulliver.site -goohle.co.ua -goomagnet.com -goons.us -goood-mail.com -goood-mail.net -goood-mail.org -gooolge.site -goooogle.flu.cc -goooogle.igg.biz -goooogle.nut.cc -goooogle.usa.cc -goooomail.com -goopianazwa.com -gooresctars.cf -gooresctars.ga -gooresctars.gq -gooresctars.ml -goosebox.net -gooseneckwines.com -goosenetwork.org -gooses.design -goosfactor.life -gooxd.com -gopdfmanuales.xyz -gophermail.info -gopherzaly.life -goplaygame.ru -goplaytech.com.au -gopldropbox1.tk -goplf1.cf -goplf1.ga -goplmega.tk -goplmega1.tk -gopo.email -gopoker303.org -gopowerlevel.com -goproaccessories.us -goprovs.com -gopty.xyz -gopu.site -gor-bilet.ru -goranko.ga -gorario.com -gorbapa.com -gorbapa4u.com -gordanbrush.com -gordanbrush.net -gordanbrush.us -gorden-spb.ru -gordenbrush.biz -gordenbrush.net -gordenbrush.us -gordon.prometheusx.pl -gordon1121.club -gordonbrush.net -gordonbrushes.com -gordonbrushes.org -gordonbrushwisconsin.com -gordonbrushwisconsin.org -gordoncastlehighlandgames.com -gordpizza.ru -goreadit.site -goremekelebek.com -gorgeousfirst.com -gorgi.ru -gorilanetwork.us -gorilla-bett.ru -gorilla-zoe.net -gorillainventory.com -gorillasharware.com -gorillaswithdirtyarmpits.com -gorillawild.life -gorizontiznaniy.ru -gorkacabinet.com -gormandizing232vg.online -gormandizing699en.xyz -gormezamani.com -gornostroyalt.ru -gorod-pobratim.ru -gorodrabotka.ru -goromail.ga -gorommasala.com -gorosc.ru -goroscop2019.ru -goround.info -gorpy.net -gorskie-noclegi.pl -gorukledeyasam.xyz -gorxje.com -goryachie-tury.ru -gos-money-programm.site -gos-money-programm.website -gos-money-programm.xyz -gos-pay-programm.space -gos-pay-programm.website -gos-pay-programm.xyz -gosait.icu -goscompxka.club -gosearchcity.us -goseeding.website -goseep.com -gosfinances.ru -goshisolo.ru -goshoppingpants.com -goshoppingt.xyz -goslippy.com -goslot88.com -gosne.com -gospaper.ru -gospel-deals.info -gospiderweb.net -gossippolitics.com -gossiprap.com -gosstroyrb.ru -gostabbet.xyz -gostayknow.com -gostdokcs.biz -gosteitoy.cf -gosteitoy.ga -gosteitoy.gq -gosteitoy.ml -gosteitoy.tk -gostina.com -gosumarket.ru -gosumarkt.ru -gosuslugg.ru -gosuslugi-info.ru -gosuslugi-spravka.ru -gosyslugi.host -gotartowice.pl -gotc.de -gotcertify.com -gotelefons.info -goth-friends.com -gothentai.com -gothere.biz -gothetalent.com -gothicdarkness.pl -gothill.com -gotimes.xyz -gotkmail.com -gotmail.com -gotmail.net -gotmail.org -gotmail.waw.pl -goto1xbet.ru -gotobag.info -gotobefijq.space -gotoinbox.bid -gotoluxurycountry.monster -gotomynvr.com -gotopbests.com -gotopgo.ru -gotosite.ru -gotovimzaim.club -gotovte-doma.ru -gotowebshop.site -gotowim-doma.ru -gotowkowy.eu -gotpayments.net -gotradecoin.net -gotruvi.com -gotspoiler.com -gotthebooks.site -gotti.otherinbox.com -gotunhien.info -goty-alocalemail.com -gotyalocal-email.com -gotyalocale-mail.com -gouanomarba.tk -gouapatpoa.cf -gouapatpoa.gq -gouapatpoa.ml -gouapatpoa.tk -gouguolu.com -gouhehe.com -goujinke.club -goumang.top -goupgouo.shop -gourmetburgercork.com -gourmetkitchen-cabra.com -gourmetoliveoilclub.com -gouruu.xyz -gouuadays.ru -gouwu116.com -gouwu98.com -gouxing.top -gov-mail.com -gov.en.com -govalvee.com -govcities.com -govdep5012.com -goverloe.com -governmentcomplianceservices.com -governmentgis.com -governmentpromises.com -governo.ml -govkor.com -govno.online -govnomail.xyz -govoxy.com -gowactivator.com -goweightlossinfoesok.live -gowhere.site -gowhere.tech -gowikibooks.com -gowikicampus.com -gowikicars.com -gowikifilms.com -gowikigames.com -gowikimusic.com -gowikimusic.great-host.in -gowikinetwork.com -gowikitravel.com -gowikitv.com -gowingo.xyz -gowion.com -gowj.com -gowngraphicsgolf.website -gox2lfyi3z9.ga -gox2lfyi3z9.gq -gox2lfyi3z9.ml -gox2lfyi3z9.tk -goxa.site -goxsoday.ru -goyardgoats.com -goyingagashop.com -gozicimercek.com -gozipui4.site -gp2277.com -gp2858.com -gp2cache.info -gp5155.com -gp5611.com -gp66gvwi.xyz -gp6786.com -gp7777.com -gp9ghb.us -gpapa.ooo -gpcharlie.com -gpfedh.us -gphsw.info -gpi10.xyz -gpi8eipc5cntckx2s8.cf -gpi8eipc5cntckx2s8.ga -gpi8eipc5cntckx2s8.gq -gpi8eipc5cntckx2s8.ml -gpi8eipc5cntckx2s8.tk -gpic4g.us -gpisbcmd.com -gpk99.live -gpkhb.com -gplvuka4fcw9ggegje.cf -gplvuka4fcw9ggegje.ga -gplvuka4fcw9ggegje.gq -gplvuka4fcw9ggegje.ml -gplvuka4fcw9ggegje.tk -gpmvsvpj.pl -gpoczt.net.pl -gpoker.online -gpouwumwp.shop -gppoww.info -gppozm.icu -gppreferral.com -gpride.xyz -gps.pics -gpscellphonetracking.info -gpsmobilephonetracking.info -gpsprosahop.xyz -gpssport.com -gpstrackerandroid.com -gpstrackingreviews.net -gptennislyon.com -gpui.ru -gpuj.us -gpwdrbqak.pl -gpwgw.info -gpxohp.club -gpy4f.us -gpy6f.us -gqioxnibvgxou.cf -gqioxnibvgxou.ga -gqioxnibvgxou.gq -gqioxnibvgxou.ml -gqioxnibvgxou.tk -gqlsryi.xyz -gqpujjnsf.shop -gqrqfimll.ml -gqtyojzzqhlpd5ri5s.cf -gqtyojzzqhlpd5ri5s.ga -gqtyojzzqhlpd5ri5s.gq -gqtyojzzqhlpd5ri5s.ml -gqtyojzzqhlpd5ri5s.tk -gqubjbngp.shop -gr5edu.info -gr5kfhihqa3y.cf -gr5kfhihqa3y.ga -gr5kfhihqa3y.gq -gr5kfhihqa3y.ml -gr5kfhihqa3y.tk -graal.codes -grabbyone.com -grabdealstoday.info -grabit.xyz -grabitfast.co -grabonyourway.com -gracefilledblog.com -gracehaven.info -graceitsystems.com -gracesingles.com -gracia.bheckintocash-here.com -graciovfvh.space -grade-quick-cell-actually.xyz -gradeweb.com -gradeweb.org -gradilium.xyz -gradozashita46.ru -graduationgiftsgalore.com -graeinc.info -graeinc.net -graeinc.org -graffitiresin.com -graffitt.ru -grafikerburada.online -grafisch.works -grafixmaven.com -grafluent.site -graftonbaptistchurchsbc.com -gragonissx.com -grahabet.info -graham-clan.net -grahamcentre.nyc -grails-comment.website -grainfr.xyz -grainglossary.com -graingue.fun -grainprinter.com -grainprinters.com -grainscooker.com -grainsh.xyz -grainsha.icu -grainsha.xyz -gralaborek.info -gramail.ga -gramail.net -gramail.org -gramlisjudg.ga -gramlisjudg.ml -gramlisjudg.tk -grammarbeats.com -grammasystems.com -gramy24.waw.pl -gramyonlinee.pl -grand-registration.ru -grand-slots.net -grandambar.ru -grandayy.net -grandbetting186.com -grandbonuzz.ru -grandcheap.site -grandclone.com -grandconnaughtrooms-media.com -grandemutuelle.live -grandherbalistoils.com -grandintim.ru -grandlaketheband.com -grandmamail.com -grandmasmail.com -grandmine.su -grandoodlez.com -grandopros.ru -grandpaswine.com -grandplug.com -grandprairieinjurylawyers.com -grandrapidskids.info -grandrapidsnailsalons.com -grandrapidspropertyfinders.com -grandspecs.info -grandstore.pro -grandstrandband.com -grandtheftdeath.com -grandviewcreek.com -grandw88.info -grandw88.net -grandw88.org -grandxxi.video -grangmi.cf -grangmi.ga -grangmi.gq -grangmi.ml -granhotelreymar.cat -granigranita.ru -graninclas.cf -graninclas.ga -graninclas.ml -graninclas.tk -graninul.cf -graninul.ml -graninul.tk -granitebaydesign.net -granitegravestone.xyz -granitememorial.xyz -granitklg.ru -grannytube.tk -granosma.ga -granosma.gq -granosma.tk -granoutan.gq -granoutan.ml -granoutan.tk -granpors.info -grantdon.xyz -grantdono.icu -grantfamilyonline.com -grantfwilkinson.com -grantha.org -grantor-shadow.com -grantor-shadow.org -grantorshadow.org -grantparkchildcare.com -grantpetrowsky.com -grantur.ru -grantutter.buzz -granufloclassaction.info -granuflolawsuits.info -granuflolawyer.info -granurim.cf -granurim.ga -granurim.gq -granurim.ml -granurim.tk -grape-com.com -grapebase.com -grapefznws.space -graphic-arts-international.com -graphic14.catchydrift.com -graphiccommunicationsinternational.com -graphictee.store -graphinasdx.com -graphriro.cf -graphriro.ml -graphriro.tk -graphtech.ru -graphtiobull.cf -graphtiobull.ga -graphtiobull.gq -graphtiobull.ml -graphtiobull.tk -graphway.com -grapplingvault.com -grase-shop.site -grasslandtechnology.com -grassless.best -grateful.adult -grateful.associates -grateful.black -grateful.blue -grateful.boutique -grateful.careers -grateful.coach -grateful.engineer -grateful.engineering -grateful.family -grateful.fitness -grateful.fun -grateful.gallery -grateful.health -grateful.host -grateful.jewelry -grateful.llc -grateful.ltd -grateful.partners -grateful.red -grateful.services -grateful.site -grateful.store -grateful.toys -gratefulvnf.email -grateshop24.xyz -gratis-gratis.com -gratisbumsen-confirmed.com -gratisbumsen-meet-backup.com -gratislink.net -gratislose.de -gratisneuke.be -gratitip.com -gratosmail.fr.nf -graur.ru -grauzone.pro -gravatavip.com -gravedag.cf -gravedag.ga -gravedag.ml -gravedag.tk -gravit-e.dev -gravitcraft.ru -gravitio.info -gravitio.net -gravitio.us -gravitytextile.com -gravsefor.cf -gravsefor.ga -gravsefor.gq -gravsefor.ml -gravsefor.tk -grayfortune.tech -grayfox.org -graygardens.info -grayhatcash.tech -grayistxxr.space -graylineportland.com -graymail.ga -grbei6.com -grcanyon.com -grdy.news -grdy.sale -greasymedia.com -great-host.in -great-names.info -great-pump.com -great2matchmaker3.com -greatbearcanoes.com -greatbeargroove.com -greatble.xyz -greatcellphonedeals.info -greatdas.site -greatditc.xyz -greate-easy-product.ru -greate-inform-mall.host -greatedhardy.com -greatemail.net -greatemailfree.com -greater-munich-immobilienfonds.com -greateraustin.homes -greatergoodpoker.com -greatergoodpoker.org -greaterhouse.org -greaterhoustonlivingteam.com -greatersalez.com -greatestfish.com -greatfait.recipes -greatfallsdentureclinic.com -greatferg.gq -greatfish.com -greatgrainsbrewery.com -greathimalayangrowers.com -greathotelgroup.info -greathousekeeping.xyz -greatigtota.tk -greatindiaportarlington.com -greatlastminutegifts.com -greatloanscompany.co.uk -greatloansonline.co.uk -greatmedicineman.net -greatmiin.gq -greatoutdoorpaintingchallenge.com -greatpl.xyz -greatpla.xyz -greatshoply.xyz -greatstuff.website -greattimes.ga -greattomeetyou.com -greatuncl.icu -greatwall-dublin1.com -greatwebcontent.info -greatweddingvenues.com -grecbibte.ga -grecbibte.gq -grecbibte.ml -grecc.me -grecourtbookshop.com -grederter.org -gree.gq -greecealive.com -greeceinvestorguide.online -greedy.fund -greedy.link -greekbag.website -greekcampus.org -greekforks.com -greekkindlejudge.site -greekrestaurants.net -greekstatues.net -green-coffe-extra.info -green-septik.ru -green-stone.info -green.jino.ru -greenapi1.club -greenassetdisposal.com -greenbandhu.com -greenbarley.net -greenbaypackersjerseysshop.us -greenbaypackerssale.com -greenbellfinance.com -greenbookdigital.com -greenbot.site -greencardsco.com -greencityhome.store -greencoepoe.cf -greencoffeebeanextractfaq.com -greencoffeebeanfaq.com -greencozy.icu -greencreektownship.org -greendike.com -greendipbench.cf -greendipbench.ga -greendipbench.gq -greendipbench.ml -greendipbench.tk -greendom67.ru -greenekiikoreabete.cf -greenerykingdom.com -greenestaes.com -greenflavoredtopic.com -greenforce.cf -greenforce.tk -greenfree.ru -greengenahead.com -greengridnewmexico.org -greenholidayresorts.com -greenhomelove.com -greenhousemail.com -greenicspir.cf -greenicspir.gq -greenicspir.ml -greenicspir.tk -greeninbox.org -greenlabs.ltd -greenleafmail.com -greenlifedergi.com -greenlifepages.com -greenlivingutopia.com -greenmilehigh.info -greenmilehigh.online -greenmilehigh.store -greenpdfmanuales.xyz -greenplanetfruit.com -greenpowerexplorer.com -greenreliefcream.com -greenrocketemail.com -greensboronailsalons.com -greensboroopiaterehab.com -greensboroquote.com -greenscreen.agency -greensforsydney.org -greenslim.site -greensloth.com -greenslots2017.co -greenspin1.bet -greenst.info -greensticky.info -greenstreev.xyz -greentear.com -greenteareviewer.com -greentech5.com -greenthumbdrives.info -greenthumbdrives.net -greentouwn.ru -greentravelblog.org -greentreeheavyequipment.com -greenvillebankruptcyattorneys.com -greenvillegraphics.com -greenwarez.org -greenwavefilters.net -greenwooddoctors.com -greenwoodrealestateagents.com -greenzclvea.email -greeriptv.live -greetingily.email -greetingsbot.com -greetsealedknife.site -gregallenartists.com -gregbritton.com -gregburnette.com -gregcompany.ru -greggamel.com -greggamel.net -gregoria1818.site -gregorsky.zone -gregorygamel.com -gregorygamel.net -gregroita.cf -gregroita.gq -gregroita.ml -gregroita.tk -grek-nedv.ru -grek1.ru -gremlinsfancocoon.com -grenada-nedv.ru -grenaddfqb.space -grencex.cf -grenn24.com -grenoble-avocats.com -grenso.com -grepekhyo65hfr.tk -gresyuip.com.uk -gretl.info -grew-sheridan.com -greyhouseatthewallacelodge.com -greyjack.com -greypebbles.cd -greystonessc.com -greywool.ru -grgc.org -grib04.ru -grib58.ru -grid.sale -gridmauk.com -grietjie.org -griffeyjrshoesstore.com -griffeyshoesoutletsale.com -griffinbone.com -griffininnovation.com -grigio.cf -grill-tandoori-dunshaughlin.com -grillertakeaway.com -grillishtakeaway.com -grilltown-dublin.com -grimjjowjager.cf -grimjjowjager.ga -grimjjowjager.gq -grimjjowjager.ml -grimjjowjager.tk -grimoiresandmore.com -grimper-a-vue.com -grimsbybd.online -grimsi.ml -grimsi.tk -grina.biz -grinagclev.cf -grinagclev.ga -grinagclev.ml -grinagclev.tk -grinbatolect.cf -grindandseal.melbourne -grindevald.ru -grindingly.best -grindli.icu -grindwea.xyz -grinn.in -gripbarchess.cf -gripbarchess.ga -gripbarchess.ml -gripbarchess.tk -gripspolice.top -grish.de -grisha.net -gritbasketheir.website -gritchart.com -gritscooker.com -griuc.schule -griusa.com -grizzlyfruit.gq -grizzlysealkits.com -grmvn.cf -grn.cc -grnermail.info -grnpublication.org -gro2soil.com -gro2turf.com -grobmail.com -groceriesshop.futbol -grocerysavings.online -grocerystars.site -grodins.ml -groei-vandaag.online -grokosan.website -grom-muzi.ru -grommail.fr -gronn.pl -groobler.com -groobox.info -groots.ong -grooveforcoaching.com -groovefortrainers.com -groovehype.com -groovetrove.com -groovetrove.org -groovypandas.info -groovypanthers.info -groovysquid.info -groovywolf.info -grosjoumouff.cf -grosjoumouff.ga -grosjoumouff.gq -grosjoumouff.ml -grosouk.com -grossiste-ambre.net -grotehamer.com -groundedradio.com -grounduktg.space -grounduowpx.email -groundworkusa.net -grounurur.cf -grounurur.ga -grounurur.gq -grounurur.tk -group-llc.cf -group-llc.ga -group-llc.gq -group-llc.ml -group-llc.tk -group-stock-store.ru -group-trade-offer.ru -group2motorsports.com -groupbuff.com -groupd-mail.net -groupe-acorus.com -groupe-psa.cf -groupe-psa.gq -groupe-psa.ml -groupe-psa.tk -groupe.cd -grouper.store -groupermail.com -groupersoftware.info -groupertechnologies.org -groupfunds.club -groupinvest.club -groupkami.com -groupmaidat.com -groupoches.cf -groupoches.ga -groupoches.gq -groupoches.ml -grouponeparts.com -groupous.com -groupteleserye.ru -grouserealty.com -grouvity.com -grovebra.cf -grovebra.gq -grovebra.tk -groveled59ee.xyz -groverstudio.com -grow-mail.com -grow-russia.ru -growaparts.info -growfitaccelerator.com -growhpostmi.cf -growhpostmi.ga -growhpostmi.gq -growhpostmi.tk -growintelligence.com -growlcombine.com -growlightkits.net -growmatter.com -growmybizonline.com -growndiamonds.com -grownwomen.biz -growseedsnow.com -growshop-moskva.ru -growsites.us -growsocial.net -growth-tools.fr -growth-tools.tk -growthenhancerplus.com -growthers.com -growthhike.us -growthlaboraties.com -growtopia.store -growxlreview.com -growyou.info -grpbbq.us -grqhly.site -grr.la -grruprkfj.pl -grtgertr.xyz -gru.company -grubsnapper.com -grubybenekrayskiego.pl -grubymail.com -grud-devushki.ru -grue.de -grufefse.cf -grugrug.ru -grumlylesite.com -grumpy-phpunit.com -grumpy-testing.com -grumpyglobetroter.com -grumpyrobot.icu -grumpyspaint.com -gruntimaps.org -grupatworczapik.pl -gruperio.net -grupik.ru -grupocapoeirabrasilraleigh.com -grupodinamax.com -grupos-telegram.com -gruposantander.cd -gruppa.club -gruppatelika.ru -gruppsakerhetssystem.se -gruz-m.ru -gruz-man.ru -gruzovyezapchasti.ru -gry-logiczne-i-liczbowe.pl -grycjanosmail.com -grydladziewczynek.com.pl -grylogiczneiliczbowe.pl -gryonlinew.pl -gryplaystation3-fr.pl -gs-arc.org -gs-lab.ru -gs-tube-x.ru -gs516.ru -gsa.yesweadvice.com -gsaemail.com -gsasearchengineranker.top -gsasearchengineranker.xyz -gsaseoemail.com -gsaverifiedlist.download -gsbalumni.com -gscfw.info -gsdcoalition.org -gsdwertos.com -gseevqvve.shop -gsfuu6.art -gsfwz.icu -gsg-exchange.com -gshopping.site -gsibiliaali1.xsl.pt -gslask.net -gsmmodem.org -gsmseti.ru -gsmwndcir.pl -gsnuyq.us -gspam.mooo.com -gspousea.com -gsredcross.org -gsrscs.xyz -gsrv.co.uk -gssa9fa5.fun -gstatic-cache-fra1.xyz -gstore96.ru -gstx1.xyz -gsweetuni.space -gsxjwd.us -gsxstring.ga -gsyqbkyng.shop -gszddl.icu -gt-baja.com -gt1111.com -gt446443ads.cf -gt446443ads.ga -gt446443ads.gq -gt446443ads.ml -gt446443ads.tk -gta-5.space -gta-offline.ru -gta4etw4twtan53.gq -gta5darkrp.ru -gta5deadstar.ru -gta5mp.com -gta5mp.net -gta5russia.ru -gtaa6.ru -gtafzq.tokyo -gtagolfers.com -gtamp.app -gtarp.app -gtavstreams.com -gtbanger.com -gtbooks.site -gtc2.club -gtcdqpctc.shop -gtcmnt.pl -gterebaled.com -gtfaway.net -gtfaway.org -gthgvt.site -gthosing.net -gthpprhtql.pl -gti8xq.us -gtime.com -gtk9.com -gtkesh.com -gtmail.com -gtmseal.com -gtntqeryp.ga -gtnv.email -gtoalumni.com -gtq59.xyz -gtrcinmdgzhzei.cf -gtrcinmdgzhzei.ga -gtrcinmdgzhzei.gq -gtrcinmdgzhzei.ml -gtrcinmdgzhzei.tk -gtrrrn.com -gtsmov.info -gtthnp.com -gtuae.us -gtxorv.us -gtymj2pd5yazcbffg.cf -gtymj2pd5yazcbffg.ga -gtymj2pd5yazcbffg.gq -gtymj2pd5yazcbffg.ml -gtymj2pd5yazcbffg.tk -gu0x9z.us -gu3x7o717ca5wg3ili.cf -gu3x7o717ca5wg3ili.ga -gu3x7o717ca5wg3ili.gq -gu3x7o717ca5wg3ili.ml -gu3x7o717ca5wg3ili.tk -gu4wecv3.bij.pl -gu5t.com -gu788.com -gualpeling.cf -gualpeling.ga -gualpeling.tk -guangxibxyl.com -guanyabo.com -guanyacn.com -guanyuky.com -guarali.cf -guarali.ga -guarali.gq -guarali.ml -guarali.tk -guaranteed-position.com -guaranteedinsuranceoptions.com -guarchibao-fest.ru -guarddimnlg.email -guarden.icu -guardprotection.website -guardvisor.ru -guatemala.org -guayturwork.cf -gubkiss.com -gucc1-magasin.com -gucci-ebagoutlet.com -gucci-eoutlet.net -guccibagshere.com -guccibagsuksale.info -gucciborseitalyoutletbags.com -guccicheapjp.com -guccihandbagjp.com -guccihandbags-australia.info -guccihandbags-onsale.us -guccihandbags-shop.info -guccihandbagsonsale.info -guccihandbagsonsaleoo.com -gucciinstockshop.com -gucciocchiali.net -gucciofficialwebsitebags.com -gucciofficialwebsitebags.com.com -guccionsalejp.com -guccioutlet-online.info -guccioutlet-onlinestore.info -guccioutlet-store.info -guccioutletmallsjp.com -guccioutletonline.info -guccioutletonlinestores.info -guccisacochepaschere.com -guccishoessale.com -guccitripwell.com -gucejanu.club -gud-game.ru -gud-magaz.ru -gudang0.net -gudang1.net -gudang2.net -gudang3.com -gudang3.net -gudang5.net -gudanglowongan.com -gudilika.fun -gudluck.ru -gudodaj-sie.pl -gudyejcia.xyz -gueecd.xyz -guefontmo.cf -guefontmo.ga -guefontmo.gq -guefontmo.ml -guegeldfor.cf -guegeldfor.ml -guegeldfor.tk -guehomo.top -guelmorper.icu -guelphdowntown.com -guepoker.org -guerillamail.biz -guerillamail.com -guerillamail.de -guerillamail.info -guerillamail.net -guerillamail.org -guerillamailblock.com -guernseynaturereserve.com -guerrillamail.biz -guerrillamail.com -guerrillamail.de -guerrillamail.info -guerrillamail.net -guerrillamail.org -guerrillamailblock.com -guesschaussurespascher.com -guessju.buzz -guessswin.site -guesstimatr.com -guesstri.xyz -guest-lock.com -guestblogify.com -guestify.com -guestlock.net -gueto2009.com -guewkw.us -gug.la -guge.de -guge.website -guglator.com -gugoumail.com -gugudadashop.com -gugulelelel.com -guhan.ru -guhandmade.com -guhtr.org -guhu.site -guia59.com -guiadelcusco.com -guiadomilionario.com -guiavip.net -guide2host.net -guide3.net -guide4fit.ru -guidebate.fun -guidebate.online -guidebate.site -guidebated.site -guidebates.site -guideborn.site -guidebut.site -guidebuted.site -guideflyfishing.com -guideformy.site -guideformyx.site -guidejpshop.com -guidelbe.site -guidelberg.site -guidelbert.site -guidelepwu.space -guidelia.site -guidelian.site -guideliber.site -guidelible.site -guidelic.site -guidelican.site -guidelicoe.site -guidelicon.site -guidelics.site -guidelineprice.com -guidelings.site -guideliot.site -guidelis.site -guideliter.site -guideliver.fun -guideliver.online -guideliver.site -guidelous.site -guidelphia.site -guidelyu.site -guidemails.gdn -guidemic.site -guidemical.site -guidemics.site -guidences.site -guidency.site -guidential.site -guidention.site -guideral.site -guidered.fun -guidered.online -guidered.site -guides4my.site -guidesandmanual.site -guidesforkids.com -guidespire.site -guidespita.site -guidespite.fun -guidespite.online -guidespite.site -guidet.site -guidetomentone.com -guidewal.site -guidewalls.site -guidewan.fun -guidewan.online -guidewan.site -guidewey.site -guidings.info -guidx.site -guidz.site -guildwars-2-gold.co.uk -guildwars-2-gold.de -guilotle.ml -guilotle.tk -guineafood.com -guineavgzo.space -guineegames.net -guiolpht.xyz -guitar.asia -guitardaddy.org -guitarjustforyou.com -guitarsxltd.com -guitoco.cf -guitoco.ga -guitoco.gq -guitoco.ml -guiwoallam.cf -guiwoallam.ga -guiwoallam.ml -guiwoallam.tk -guizefacefx.net -gujarat-bazaar.com -gujaratpetro.com -gujckksusww.com -gujika.org -gujpocel.ga -gujpocel.gq -gujpocel.ml -gujpocel.tk -gukibur.cf -gukibur.ga -gukibur.gq -gukibur.ml -gukibur.tk -gulcu.biz -gulfcoastcooking.com -gulfcoastcuisine.com -gulfcoastfoods.com -gulfcoastifr.com -gulfcoastseasonings.com -gulfgurl.com -gulfmedic.org -gulfofmexico.com -gulfshisha.com -gulfshoreshotels.org -gulftechology.com -gulipine.site -guliverenergija-igraonica.com -gulkokulukoy.com -gullaneplaygroup.com -gulletdopeyledore.com -gumhome.ru -gummosity.xyz -gummymail.info -gumrukkayip.com -gun1k.ru -gunalizy.mazury.pl -gunapedia.org -guncelco.com -guncelhesap.com -gundam-plamodel.info -gundogsclub.com -gundogtrainerarkansas.com -gunessaatoptik.com -gunscutlo.cf -gunscutlo.ml -gunscutlo.tk -gunsngames.com -gunsportklop.ru -gunyao.com -gunzuki.info -gunzuki.site -guojihui3.com -guojihui888.com -guojihuidizhi.net -guonancai.shop -guotongholdings.com -guowaishipin.xyz -gupiaozhenduanpt.com -guqage.ru -guqoo.com -gurgpola.cf -gurgpola.ga -gurgpola.gq -gurgpola.ml -gurgpola.tk -gurgtapar.ga -gurgtapar.gq -gurgtapar.ml -gurgtapar.tk -gurman1.space -gurmanabuket.ru -gurmeneczadepo1.club -gurneytintblog.com -gurpz.com -gurrifa.cf -gurrifa.ga -gurrifa.gq -gurrifa.ml -gurrifa.tk -gurubooks.ru -gurulegal.ru -gurumail.xyz -gurumediation.com -gurungkhabar.com -gurutransfer.com -gusarkazino777.com -guscares.com -gusevandy.ru -gush.wtf -gusronk.com -gussocu.cf -gussocu.gq -gussocu.ml -gussocu.tk -gustavocata.org -gustavosandoval.com -gustidharya.com -gustlabs.com -gustore.co -gustpay.com -gustr.com -gutenmorgen.site -gutezinsen.biz -gutierrezmail.bid -gutmensch.foundation -gutmenschen.center -gutmenschen.com -gutmenschen.company -gutmenschen.email -gutmenschen.expert -gutmenschen.guru -gutmenschen.money -gutmenschen.photos -gutmenschen.realty -gutmenschen.space -gutmenschen.systems -gutmenschen.tickets -gutmenschen.tools -gutmenschen.watch -gutmenschen.website -gutmenschen.works -gutmenschen.zone -gutmorgen.moscow -gutterguard.xyz -gutterscleanedmd.com -guuao.info -guudbzgeg.shop -guus02.guccisacsite.com -guvenliklietiket.xyz -guvewfmn7j1dmp.cf -guvewfmn7j1dmp.ga -guvewfmn7j1dmp.gq -guvewfmn7j1dmp.ml -guvewfmn7j1dmp.tk -guwjetsxm.shop -guwvje.us -guybox.info -guycuco.cf -guycuco.ga -guycuco.gq -guycuco.ml -guycuco.tk -guyfawkesfireworks.biz -guyfawkesfireworks.net -guykoshop.xyz -guyrkkyy.shop -guyromaniafor.website -guysdobi.com -guysdoguys.com -guystelchim.cf -guystelchim.ga -guystelchim.gq -guystelchim.ml -guystelchim.tk -guzelborc.online -guzelim.net -guzik-bux.ru -guzik-game.ru -guzik-loto.ru -guzmanbabe.com -guzqrwroil.pl -guzzthickfull.cf -guzzthickfull.ga -guzzthickfull.ml -guzzthickfull.tk -gvano.com -gvatemala-nedv.ru -gvdjb.xyz -gveihw.com -gvn4fg.info -gvnuclear.com -gvquij.rest -gvwconsulting.com -gvztim.gq -gw5jy.us -gwahtb.pl -gwaqiz.us -gwarpi.com -gwenbd94.com -gwfezmxd.shop -gwfh.cf -gwfh.ga -gwfh.gq -gwfh.ml -gwfh.tk -gwfmuaqt.xyz -gwhnhz.shop -gwindorseobacklink.com -gwix.net -gwkjw.club -gwkmw.info -gwllw.info -gwm1ws.site -gwm5a.us -gwmogi.gq -gwn0zh.com -gwok.info -gwp2.com -gwsdev4.info -gwspt71.com -gwt0402.online -gwt2201.buzz -gwtvmeqy.shop -gwynetharcher.com -gwyww.info -gwzjoaquinito01.cf -gx0n5n.best -gx161.site -gx2d.com -gx2k24xs49672.cf -gx2k24xs49672.ga -gx2k24xs49672.gq -gx2k24xs49672.ml -gx2k24xs49672.tk -gx7v4s7oa5e.cf -gx7v4s7oa5e.ga -gx7v4s7oa5e.gq -gx7v4s7oa5e.ml -gx7v4s7oa5e.tk -gxbaw.com -gxbnaloxcn.ga -gxbnaloxcn.ml -gxbnaloxcn.tk -gxchaincapital.cn -gxcpaydayloans.org -gxdbfe.us -gxdmw.info -gxemail.men -gxg07.com -gxglixaxlzc9lqfp.cf -gxglixaxlzc9lqfp.ga -gxglixaxlzc9lqfp.gq -gxglixaxlzc9lqfp.ml -gxglixaxlzc9lqfp.tk -gxglsy.com -gxgxg.xyz -gxhy1ywutbst.cf -gxhy1ywutbst.ga -gxhy1ywutbst.gq -gxhy1ywutbst.ml -gxhy1ywutbst.tk -gxklbl.us -gxlmw.info -gxlrgo.shop -gxm90b.us -gxmail.ga -gxmer.com -gxtx.com -gxtyfetry-manage5.com -gxvps.com -gxwww.com -gxxjld.com -gxyl666.net -gxyl666.org -gxzsrr.info -gy273.site -gyagwgwgwgsusiej70029292228.cloudns.cl -gybatu.info -gyberstore.top -gyblerefy.host -gybr88.com -gyddd.com -gydhru.us -gyhasdfytas13582.cf -gyhasdfytas13582.ga -gyhasdfytas13582.ml -gyhasdfytas13582.tk -gyhasdfytas61010.ml -gyhasdfytas61010.tk -gyhasdfytas79407.ml -gyhasdfytas79407.tk -gyheqi.info -gyhunter.org -gyigfoisnp560.ml -gyikgmm.pl -gymdep.site -gymgay.com -gymkampen.se -gymlesstrainingsystem.com -gymnasium-alsfeld.de -gymnasty.life -gymnasty.tech -gynn.org -gynzi.co.uk -gynzi.com -gynzi.es -gynzi.nl -gynzi.org -gynzy.at -gynzy.es -gynzy.eu -gynzy.gr -gynzy.info -gynzy.lt -gynzy.mobi -gynzy.pl -gynzy.ro -gynzy.ru -gynzy.sk -gyp1.site -gyp4.site -gyp5.site -gyp7.site -gypsypearltx.space -gyqa.com -gyro-net.ru -gyroproject.com -gyrosmalta.com -gyrosramzes.pl -gytiyu.com -gyu3on.us -gyul.ru -gyxohy.info -gyxq2d.us -gyzb.email -gz-tmg.com -gz168.net -gza5op.us -gzb.ro -gzc868.com -gzdkjxlw.shop -gzdqg.us -gzdwe6.com -gzesiek84bb.pl -gzhenghua112.com -gzip-proxy.ru -gzjdph.com -gzjz.email -gzk2sjhj9.pl -gzlsw.info -gznf.cc -gzns.cc -gzpl.cc -gzpljm.us -gzpq.cc -gzqg.cc -gzqyjtgs.com -gzrf.cc -gzrwx.com -gzvmwiqwycv8topg6zx.cf -gzvmwiqwycv8topg6zx.ga -gzvmwiqwycv8topg6zx.gq -gzvmwiqwycv8topg6zx.ml -gzvmwiqwycv8topg6zx.tk -gzxb120.com -gzxingbian.com -gzykw.info -gzyp21.net -gzziojhta.shop -h-b-p.com -h-response.com -h.mintemail.com -h.polosburberry.com -h.thc.lv -h0116.top -h02vat.host -h05fypawbzlg017.xyz -h09yb.space -h0i.ru -h0nwrgppwk8ryyt.xyz -h0t46e9.best -h0tmail.top -h1769.com -h1775.com -h1hecsjvlh1m0ajq7qm.cf -h1hecsjvlh1m0ajq7qm.ga -h1hecsjvlh1m0ajq7qm.gq -h1hecsjvlh1m0ajq7qm.ml -h1hecsjvlh1m0ajq7qm.tk -h1tler.cf -h1tler.ga -h1tler.gq -h1tler.ml -h1tler.tk -h1tw.buzz -h1z8ckvz.com -h2-yy.nut.cc -h2.delivery -h2.supplies -h20powerinc.com -h20solucaca.com -h219.com -h2o-gallery.ru -h2o-web.cf -h2o-web.ga -h2o-web.gq -h2o-web.ml -h2o-web.tk -h2ocn8f78h0d0p.cf -h2ocn8f78h0d0p.ga -h2ocn8f78h0d0p.gq -h2ocn8f78h0d0p.ml -h2ocn8f78h0d0p.tk -h2ocoffe.ru -h2otony.com -h2sprey.ru -h2wefrnqrststqtip.cf -h2wefrnqrststqtip.ga -h2wefrnqrststqtip.gq -h2wefrnqrststqtip.ml -h2wefrnqrststqtip.tk -h323.ru -h333.cf -h333.ga -h333.gq -h333.ml -h333.tk -h37jbl.us -h39wxs.com -h3fyu.us -h3o2.us -h3ssk4p86gh4r4.cf -h3ssk4p86gh4r4.ga -h3ssk4p86gh4r4.gq -h3ssk4p86gh4r4.ml -h3ssk4p86gh4r4.tk -h3xf.buzz -h3yv.us -h42fu.space -h467etrsf.cf -h467etrsf.gq -h467etrsf.ml -h467etrsf.tk -h4l69i.com -h546ns6jaii.cf -h546ns6jaii.ga -h546ns6jaii.gq -h546ns6jaii.ml -h546ns6jaii.tk -h5dslznisdric3dle0.cf -h5dslznisdric3dle0.ga -h5dslznisdric3dle0.gq -h5dslznisdric3dle0.ml -h5dslznisdric3dle0.tk -h5jiin8z.pl -h5k8.com -h5pstore.com -h5qaz.cn -h5srocpjtrfovj.cf -h5srocpjtrfovj.ga -h5srocpjtrfovj.gq -h5srocpjtrfovj.ml -h5srocpjtrfovj.tk -h5svo0.us -h5xepuv8eor7sd9.xyz -h635.com -h65syz4lqztfrg1.cf -h65syz4lqztfrg1.ga -h65syz4lqztfrg1.gq -h65syz4lqztfrg1.ml -h65syz4lqztfrg1.tk -h6gyj.us -h6kepf-mail.xyz -h6xoap.us -h7018.com -h7665.com -h78qp.com -h79ig.site -h7hfeo.xyz -h7ke6lb7rmqlhga0.buzz -h7l3jvlv40oot8y.xyz -h7qns.buzz -h7vpvodrtkfifq35z.cf -h7vpvodrtkfifq35z.ga -h7vpvodrtkfifq35z.gq -h7vpvodrtkfifq35z.ml -h7vpvodrtkfifq35z.tk -h7xbkl9glkh.cf -h7xbkl9glkh.ga -h7xbkl9glkh.gq -h7xbkl9glkh.ml -h7xbkl9glkh.tk -h80nm.site -h82323.com -h84tmp.us -h88fun.com -h8cp3.com -h8cp9.com -h8cpb.com -h8cpbb.com -h8cpcc.com -h8cpd.com -h8cpf.com -h8cpff.com -h8cpgg.com -h8cph.com -h8cpii.com -h8cpkk.com -h8cpl.com -h8cpll.com -h8cpmm.com -h8cpn.com -h8cpnn.com -h8cpo.com -h8cppp.com -h8cpq.com -h8cpt.com -h8cpv.com -h8cpvv.com -h8cpxx.com -h8cpz.com -h8s.org -h8usp9cxtftf.cf -h8usp9cxtftf.ga -h8usp9cxtftf.gq -h8usp9cxtftf.ml -h8usp9cxtftf.tk -h8vk9uk6g0o3f2c3vi7v.com -h8y8n.site -h91.info -h9js8y6.com -h9lxd2.info -h9uqwr.info -h9x3bz.online -ha1dq.us -ha4xwq.info -ha7d2.stream -haanybano.net -haar52.com -haatma.com -habacityi.com -habad.win -habb.futbol -habboftpcheat.com -haberarena.com -haberci.com -habere-maximus.info -haberfa.com -haberoku24.com -habitosderico.com -habitualferocity.com -habitue.net -hablemosdeorgasmos.com -habnbane.com -habnetfm.online -habrack.ru -habrew.de -hac1.com -hacccc.com -hack-seo.com -hackart.ru -hackathonfaq.com -hackathonresources.com -hackcheat.co -hackdenver.com -hacked.jp -hackedflashgame.com -hacken.company -hackepic.org -hacker.onl -hackerious.com -hackerndgiveaway.ml -hackers.onl -hackersquad.tk -hackertrap.info -hackervietnam.mobi -hackhack.org -hacking.onl -hackinglatinoamerica.net -hackingtruths.net -hackingyourfunnel.com -hacklet.com -hacknophobia.net -hackrz.xyz -hacksleague.ru -hacksly.com -hackspace.org -hackspire.com -hackthatbit.ch -hacktherazr.com -hacktherules.com -hacktoy.com -hackuser.net -hackwifi.org -hackwish.com -hackwish.net -hackzone.club -hactzayvgqfhpd.cf -hactzayvgqfhpd.ga -hactzayvgqfhpd.gq -hactzayvgqfhpd.ml -hactzayvgqfhpd.tk -had.twoja-pozycja.biz -hadal.net -haddego.cf -haddego.ga -haddego.gq -haddego.ml -haddo.eu -hade.com -hadenfletcher.design -hadesa.info -hadesegilmez.ml -hadesegilmez.tk -hadge.xyz -hadigel.net -hadimkoytv.xyz -hadits.app -hadits9imam.com -haditspilihan.com -hadmins.com -hadthetalk.org -haecvx.tokyo -haerdmoc.shop -hafan.sk -hafbak-reg.online -hafhvt.com -hafifyapi.com -hafin2.pl -hafluzzter.cf -hafluzzter.gq -hafluzzter.tk -hafnia.biz -hafrem3456ails.com -haft-time.com -hafutv.com -hafzo.net -hagglebeddle.com -haggreroren.gq -hagiasophiagroup.com -hagiasophiaonline.com -hagomedia.com -hagvo.live -hahabox.com -hahabu.net -hahalla.com -hahaslot.xyz -hahawrong.com -hahqzhnfc.ml -haiapoteker.com -haicao45.com -haicao47.com -haicao48.com -haicao54.com -haicao55.com -haicao65.com -haicao69.com -haicao77.com -haicao78.com -haicao80.com -haicao83.com -haicao99.com -haicaotv2.com -haicaotv3.com -haida-edu.cn -haidang.co -haide.com -haier-mail.com -haierair.biz -haierair.com -haieramerica.us -haieramerica.xyz -haieramericas.com -haieramericashop.com -haierplast.net -haifashaikh.com -haihan.vn -haihantnc.xyz -haikuforlovers.com -haikuinthemiddle.info -hailchat.com -hailonggame.com -hailuwuliu.com -haimai.pro -hainescitynews.net -hainopalm.cf -hainopalm.ga -hainopalm.ml -hainopalm.tk -haiok.cf -hair-shoponline.info -hair-stylestrends.com -hairagainreviews.org -hairbeautysave.com -hairbrushescombs.futbol -haircaresalonstips.info -haircareshop.life -hairgrowth.cf -hairgrowth.ml -hairgrwetp.site -hairjournal.com -hairjuiceformula.shop -hairlossshop.info -hairoo.com -hairpenaltyhigh.website -hairplunk.com -hairremovalplus.org -hairrenvennen.com -hairs-shoponline.info -hairs24.ru -hairsideas.ru -hairsite.website -hairstraighteneraustralia.info -hairstraightenercheapaustralia.info -hairstraightenernv.com -hairstyles360.com -hairstylesbase.com -hairstylesforshorthair.website -hairstyleszon.xyz -hairtcs.com -hairwizard.in -hairyvideos.pro -haitaous.com -haitiassurances.com -haitibateau.com -haitibox.com -haitibrasil.com -haiticadeau.com -haiticell.com -haiticonsult.com -haiticonsultants.com -haitiexchange.com -haitiholdings.com -haitilearning.com -haitiloan.com -haitimoto.com -haitipret.com -haitiproducts.com -haitirelief.org -haitirhum.com -haitisecurit.com -haitisell.com -haitisound.com -haititicket.com -haititraining.com -haititransfers.com -haitmail.ga -haitt-54.com -haitu.info -haiyundata.com -haizap.com -haizi360.com -hajckiey2.pl -hakandurmaz.live -hakimisoap.com -hakinsiyatifi.org -hakkarifotokopiservisi.com -hakwefs.online -hakwefs.xyz -hala-tv.net -halafun.com -halaltech.net -halamed724.com -halapenz.com -halarestaurant.com -haldihouse.net -hale-namiotowe.net.pl -halebale.com -haledamn.us -haleyhouse.co -half-blue.com -halfpricedlistingak.com -halfpricedlistingal.com -halfpricedlistingaz.com -halfpricedlistingct.com -halfpricedlistingin.com -halfpricedlistingky.com -halfpricedlistingla.com -halfpricedlistingmd.com -halfpricedlistingmi.com -halfpricedlistingmt.com -halfpricedlistingnc.com -halfpricedlistingoh.com -halfpricedlistingpa.com -halfpricedlistingsak.com -halfpricedlistingsca.com -halfpricedlistingsco.com -halfpricedlistingsde.com -halfpricedlistingsin.com -halfpricedlistingsks.com -halfpricedlistingsma.com -halfpricedlistingsmd.com -halfpricedlistingsnh.com -halfpricedlistingsnj.com -halfpricedlistingsny.com -halfpricedlistingsor.com -halfpricedlistingspa.com -halfpricedlistingssc.com -halfpricedlistingstn.com -halfpricedlistingsvt.com -halfpricedlistingswa.com -halfpricedlistingvt.com -halfpricedlistingwy.com -halfpricelistingal.com -halfpricelistingca.com -halfpricelistingco.com -halfpricelistingde.com -halfpricelistingin.com -halfpricelistingks.com -halfpricelistingky.com -halfpricelistingla.com -halfpricelistingma.com -halfpricelistingme.com -halfpricelistingnc.com -halfpricelistingne.com -halfpricelistingnj.com -halfpricelistingnm.com -halfpricelistingok.com -halfpricelistingor.com -halfpricelistingpa.com -halfpricelistingri.com -halfpricelistingsal.com -halfpricelistingsaz.com -halfpricelistingsc.com -halfpricelistingsco.com -halfpricelistingsde.com -halfpricelistingsia.com -halfpricelistingsin.com -halfpricelistingsks.com -halfpricelistingsmd.com -halfpricelistingsmn.com -halfpricelistingsmo.com -halfpricelistingssd.com -halfpricelistingstx.com -halfpricelistingswv.com -halfpricelistingswy.com -halfpricelistingut.com -halfpricelistingva.com -halfpricelistingwa.com -halfpricelistingwv.com -halfsale.info -halftisca.cf -halftisca.ga -halftisca.gq -halftisca.tk -halfwayhomepets.com -halgum.ru -halhani.site -halhuel.info -halibiotic.xyz -halidepo.com -halil.ml -halkasor.com -halkmedia.xyz -hallacamail.xyz -hallawallah.com -hallbarhetschefen.se -hallmark-trinidad.com -hallo.schule -hallo.singles -halloffame.page -hallovisa.site -hallsportklop.ru -hallsulrics.cf -hallsulrics.ga -hallsulrics.gq -hallsulrics.tk -halltail.info -halltail.org -halltail.us -halltale.info -halltale.org -halltale.us -hallvulcan.ru -halmstadstad.com -halofarmasi.com -halogeterer.monster -halongmedia.com -halopets.net -haloqq.info -halqaran.org -halsbrandburp.website -halsey3.com -haltospam.com -halumail.com -halvfet.com -hamakdupajasia.com -hamanian.site -hamarikahani.gq -hambhedehomang.space -hamburguesas.net -hamcagers.cf -hamcagers.gq -hamcagers.ml -hamcagers.tk -hamcollege.com -hamformrum.cf -hamformrum.ga -hamformrum.gq -hamiltondesign.ca -hamiltongiftbaskets.com -hamishdurkin.com -hamitk.info -hammbur.com -hammel-shredder-repair.com -hammer53.website -hammerdin.com -hammerthor.solutions -hamonclub.ru -hampanel.com -hampel.co -hamptonsmvp.com -hampusidan.com -hamroagro.com -hamrobeema.com -hamsagiftshop.com -hamsing.com -hamsterx.club -hamtapay24.com -hamtharo001.cf -hamtharo001.gq -hamtharo006.cf -hamtharo006.ga -hamtharo006.gq -hamtharo006.tk -hamtharo008.gq -hamtharoo005.gq -hamtwer.biz -hamusoku.cf -hamusoku.ga -hamusoku.gq -hamusoku.ml -hamusoku.tk -hamzayousfi.tk -hana-toge.online -hanaichizen.online -hanatravel.ru -handans.ru -handavesa.info -handavesy.info -handaxisy.info -handbagscanadastores.com -handbagscharming.info -handbagsfox.com -handbagslovers.info -handbagsluis.net -handbagsonlinebuy.com -handbagsoutlet-trends.info -handbagsshowing.com -handbagsshowingk.com -handbagsstoreslove.com -handbagstips2012.info -handbagwee.com -handcareshop.life -handcleanser.net -handcrafted.market -handcrafters.shop -handdecting.cf -handelo.com.pl -handev.ru -handgling.website -handikap35.com -handionline.org -handjobfantasy.com -handler.hk -handleride.com -handlingus.com -handlmassager.com -handmadecrochet.website -handmadegreekgifts.com -handphonecostume.com -handpickedhotels.media -handprep.vision -handrfabrics.com -hands2f.tk -handsanitizer.health -handsetcloud.com -handskinat.ga -handskinat.ml -handskinat.tk -handsntzr.com -handsojcwd.ru -handspowertool.online -handstand.cam -handsupot.net -handydou.host -handysca.xyz -handysnif.email -handystag.xyz -handywa.icu -handywast.xyz -handywi.press -handzonhealth.store -hanesamazon.com -hanfordlawyers.com -hangar18.org -hangcha.org -hangersshop.live -hanggiagoc.website -hanghot.club -hangifinansman.xyz -hanging-drop-plates.com -hangisiyi.online -hangisiyi.xyz -hangoutqueen.biz -hangover-over.tk -hangtimeimageclub.com -hangxomcuatoilatotoro.cf -hangxomcuatoilatotoro.ga -hangxomcuatoilatotoro.gq -hangxomcuatoilatotoro.ml -hangxomcuatoilatotoro.tk -hangzhoubarcelona.com -hangzhousongtang.com -hanhhuyen.ml -haningtonbrothers.xyz -haniuil.com -haniv.ignorelist.com -hankbed.site -hankbike.site -hankboy.site -hankbun.site -hankcan.site -hankclover.site -hankcrowd.site -hankday.site -hankfan.site -hankflag.site -hankjar.site -hankwards.info -hanleft.com -hanlinpalace.com -hanmama.zz.am -hannahbarclay.net -hannahouse.co -hannahphillipsreal.net -hannahsphotos.com -hanoi.video -hanoi24h.site -hanoigeckohotel.com -hanoimail.us -hanoimoi.site -hanoinews.org -hanoisapphirehotel.com -hanoitohalongbay.com -hanoitraveladvisor.com -hanoiyeuvn.website -hanovermarinetime.com -hanquanlalala.xyz -hansactic.online -hansahost.net -hansblbno.ustka.pl -hanse-trade.com -hansenfamily.info -hanson4.dynamicdns.me.uk -hanson7.dns-dns.com -hansonqualityplumbing.com -hanswurst.gmbh -hantem.bid -hanul.com -hanuman.fun -hanxue.com -hanyang.college -haoacg.com -haodd173.com -haodd178.com -haodd181.com -haodd182.com -haodd191.com -haodd193.com -haodd196.com -haodd197.com -haodewang.com -haodi123.com -haofangbi.com -haofangpo.com -haofangri.com -haofangsa.com -haofangsi.com -haogltoqdifqq.cf -haogltoqdifqq.ga -haogltoqdifqq.gq -haogltoqdifqq.ml -haogltoqdifqq.tk -haohuihh.com -haom7.com -haomei456.com -haoshouhu.com -haostuni.com -haosuhong.com -haotuk.site -haoy678.com -haoyaogeccx.com -haoyouo.com -haoyunde.com -haozanding.com -hapancy.ru -happelyhealthy.com -happenhotel.com -happiness-and-success.ru -happinesseveryday.ru -happinessplus.us -happinessz.club -happiray.com -happiseektest.com -happityhill.com -happy-ate.com -happy-garden-waterford.com -happy-house-tramore.com -happy-kz.club -happy-new-year.top -happy-relat.ru -happy-times-sallynoggin.com -happy-training.ru -happy4child.info -happyallsizes.com -happyalmostfriday.com -happybaby-store.ru -happybirthdayrishanth.live -happybirthdaywishes1.info -happycar24.space -happycash.app -happycashbox.com -happycat.space -happychance13.icu -happychance15.icu -happychangelog.com -happycore.shop -happydatingyou.site -happydoggies.xyz -happydomik.ru -happyedhardy.com -happyelephant.shop -happyellygoes.com -happyfamilysavings.site -happyfamilysavings.space -happyfreshdrink.com -happygolovely.xyz -happygoluckyclub.com -happyhealthtoday.com -happyhealthypeacefullife.com -happyhealthyvegan.life -happyhealthyveggie.com -happykorea.club -happykoreas.xyz -happymail.guru -happymoments.com.pl -happymovies.ru -happynsimple.com -happypath.land -happyplanettours.com -happyselling.com -happysilktravel.com -happysinner.co.uk -happytools72.ru -happyum.com -happywifree.com -happyyou.pw -hapremx.com -hapsomail.info -haqed.com -haqoci.com -harakirimail.com -haramod.com -harassduejockey.website -harbibet11.com -harbibet13.com -harborgoos.xyz -harbourtradecredit.com -hard-life.online -hard-life.org -hard-mark.ru -hardanswer.ru -hardassetalliance.com -hardbrewcoffee.club -hardclossio.ga -hardclossio.gq -hardclossio.tk -harddep.website -hardenend.com -hardergames.eu -hardily.site -hardingpost.com -hardleanbodies.com -hardmail.info -hardmughven.ga -hardmughven.gq -hardmughven.ml -hardmughven.tk -hardnews.us -hardpersonalblog.club -hardstylex.com -hardvard.edu -hardvecgeme.tk -hardwaretech.info -hardwarewalletira.com -hardwarewalletrothira.com -hardwoodflooringinla.com -hardyhouse.online -hareshop.site -harfordpi.com -hargadiskon.xyz -hargaku.org -hargaspek.com -harib0z31.xyz -haribu.com -haribu.net -harite.space -harkerheightsapartments.com -harkincap.com -harleymoj.pl -harleyspencer.com -harlingenapartments.com -harlowe-galway.com -harlowgirls.org -harlowhemp.com -harmampirs.com -harmani.info -harmonicanavigation.com -harmoniclizard.com -harmonikka.space -harmonized511uj.online -harmonyfiberart.com -harmonyradio.org -harmonyst.xyz -harmonystarkennelfrenchbulldogs.com -harmonystime.net -harmsreach.com -harmsreach.org -harmwepa.ga -harmwepa.gq -harmwepa.ml -harmwepa.tk -harnessmedia.dev -harnosubs.cf -harnosubs.ga -harnosubs.gq -harnosubs.ml -harnosubs.tk -haroldrappiii.com -harpbenefitsurvey.com -harpeligibilityquiz.com -harperforarizona.com -harperwoodworking.com -harpix.info -harrietrobertson.buzz -harrinbox.info -harrisburgbankrupctylawyers.com -harriscountycriminallawfirm.com -harrisonartanddesign.com -harrisonburgbaptist.com -harrisonms.com -harrisonms.org -harrowllc.com -harryhome.net -harrykneifel.com -harrymorrison.buzz -harrys-casino.com -harsh.best -harshmanchiroclinic.com -harshmeet.com -harshrajput.website -harshrastogi.com -harshreadinglevel.site -harsoftpunis.gq -hart-macher.com -hartandhuntingtonnashville.com -hartapkr.online -hartapoker88.site -hartbot.de -hartfordlibrary.info -hartini.ga -hartini.gq -hartini.ml -hartini.tk -hartlengles.ga -hartlengles.ml -hartlengles.tk -hartmann-powermix.ru -hartogbaer.com -hartstonge-bar-restaurant.com -hartyfarm.com -harukana.press -harukanaru.ru -harvard-ac-uk.tk -harvard.ac.uk -harvesinvestmentgroup.com -harvestacademydz.com -harvestcentre.org -harvesteco.com -harvestingharlow.com -harvestmendoza.icu -harvesttmaster.com -harveynaylor.buzz -harysetiabudi.site -has.ninja -hasanatilan.xyz -hasanmail.ml -hasansahin.info -hasanz.kiwi -hasegawa.cf -hasegawa.gq -hasehow.com -haselperus.info -haseo.ru -hasgama.cf -hasgama.ga -hasgama.gq -hasgama.ml -hasgama.tk -hash.moe -hash.pp.ua -hashback.com -hashban.org -hashes.hk -hashfeedback.com -hashg.com -hashicorp.asia -hashicorp.best -hashicorp.blog -hashicorp.buzz -hashicorp.careers -hashicorp.chat -hashicorp.club -hashicorp.consulting -hashicorp.contractors -hashicorp.dev -hashicorp.domains -hashicorp.education -hashicorp.engineer -hashicorp.exposed -hashicorp.fans -hashicorp.finance -hashicorp.financial -hashicorp.foundation -hashicorp.global -hashicorp.info -hashicorp.legal -hashicorp.life -hashicorp.link -hashicorp.ltd -hashicorp.media -hashicorp.page -hashicorp.plus -hashicorp.pub -hashicorp.report -hashicorp.reviews -hashicorp.rip -hashicorp.sale -hashicorp.shop -hashicorp.sk -hashicorp.social -hashicorp.solutions -hashicorp.store -hashicorp.tech -hashicorp.technology -hashicorp.today -hashicorp.training -hashicorp.us -hashicorp.website -hashicorp.world -hashicorp.xyz -hashratehunters.com -hashratetest.com -hashtag-travel.net -hashtagblock.com -hashtagbyte.com -hashtagcandy.com -hashtagdiamond.com -hashtagmarijuana.com -hashtagpain.com -hashtagtesla.com -hashtagtours.com -hashtagvacationrentals.com -hashtagweed.com -hashtrain.com -hashwiki.com -hasilon.com -hassle-me.com -hasslemail.top -hasslex.com -hassyaku.tk -hastarlat.site -hastingsrealestateagents.com -hastisub.xyz -hastisub2.xyz -hastnyi-dom.ru -hat-geld.de -hat-muzika.ru -hatayantakyamobilya.xyz -hatayboru.xyz -hataygencradyo.xyz -hataygercegi.com -hataylifedergi.com -hataystratton.xyz -hataysusofrasi.com -hatberkshire.com -hatchinglab.com -hatchroads.info -hatchspaceship.com -hate.cf -hate.cloud -hatechoice.com -hatemature.xyz -hatespam.org -hatitton.com.pl -hatiyangpatah.online -hatmail.com -hatmail.ir -hatonly.shop -hats-wholesaler.com -hats4sale.net -hatueyramosfermin.com -haugenvet.com -hauharcugi.tk -haultale.info -haultale.org -haultale.us -hauntedurl.com -hauptmanfamilyhealthcenter.com -hausbauen.me -hausdekoration.me -hausdesign.me -hausnerenterprises.com -hausnummer.me -hauswirtschaft.wiki -haute.red -hauteaholic.com -hauvuong.com.vn -hauvuong.net -havadari.online -havadari.world -havadari.xyz -havaliyedekparca.com -havdhave.shop -haveacreditcardmall.com -haveanotion.com -havehavd.shop -havelock4.pl -havelock5.pl -havelock6.pl -haventop.tk -haveplant.site -haverp.online -haverti.cf -haverti.ga -haverti.gq -haverti.ml -haverti.tk -havevi.info -havilahdefilippis.com -havitaring.xyz -havocranasia.site -havuc.tk -havwatch.com -haw88.com -hawahome.info -hawaiihomesurfer.com -hawaiivacationdirectory.com -hawdam.com -hawdammusic.com -hawkblack.xyz -hawkcreek.info -hawkhomeservices.com -hawkosmosishour.website -hawkwoodpreschool.com -hawrong.com -hawrteq.online -hax0r.id -haxo.club -hayait.com -hayalhost.com -hayamisanhamegamienai.xyz -hayastana.com -hayatadairhyk.xyz -hayatdesign.com -hayattankopma.org -haycoudo.cf -haycoudo.ga -haycoudo.gq -haycoudo.ml -haycoudo.tk -haydegidelim.com -haydenjennings.buzz -haydidi.com -haydoo.com -hayirlieller.ong -haymala.best -haymond.legal -haymondgirls.net -haymondlaw.info -haymondlaw.net -haymondlaw.org -haymondrides.info -haymondrides.net -hays.ml -haysantiago.com -haystack.exchange -hayuk.pw -hayycj.icu -hazal.site -hazar.website -hazarat.design -hazarat90.com -hazayuno.com -hazellhouse.co -hazelmczwu.space -hazelmoonschool.com -hazelnut4u.com -hazelnuts4u.com -hazelwoodgrove.net -hazirmesaj.info -hazirsite.site -hazmatdictionary.com -hazmatshipping.org -hazziz.ze.cx -hb-120.com -hb-1tvm.com -hb-3tvm.com -hb-765.com -hb-chiromed.com -hb5.ru -hb6008.com -hba4nr0lh16mg4y.xyz -hbabb.live -hbapp01.com -hbastien.com -hbauers.best -hbbbtttt.club -hbbig.us -hbccreditcard.net -hbdya.info -hbent.site -hbfrank.win -hbgrkzqx.shop -hbhgdq.com -hbikpo.rest -hbjfhc.com -hbkm.de -hble6r6s.xyz -hbo.dns-cloud.net -hbo.dnsabr.com -hbontqv90dsmvko9ss.cf -hbontqv90dsmvko9ss.ga -hbontqv90dsmvko9ss.gq -hbontqv90dsmvko9ss.ml -hbontqv90dsmvko9ss.tk -hboqce.info -hbpqw.info -hbqjw.info -hbrjn.space -hbrlz.com -hbs-group.ru -hbsc.de -hbskrc.site -hbsl10.com -hbt02y.host -hbtfty.com -hburl.xyz -hbwgw.info -hbwr166.com -hbxrlg4sae.cf -hbxrlg4sae.ga -hbxrlg4sae.gq -hbxrlg4sae.ml -hbxrlg4sae.tk -hc02.net -hc1118.com -hc26.net -hc2gw.com -hc308.space -hc44.net -hc49.net -hc59.net -hc70.net -hc72.net -hc73.net -hc74.net -hc76.net -hc94.net -hc96.net -hcac.net -hcathcar.shop -hccg.net -hccmail.win -hccmmis.com -hccnis.com -hceap.info -hcf.wtf -hciiyl.com -hckefu.online -hckefu.site -hckefu.xyz -hclrizav2a.cf -hclrizav2a.ga -hclrizav2a.gq -hclrizav2a.ml -hclrizav2a.tk -hcmvbg.site -hcnxmvdo.shop -hcoupledp.com -hcuglasgow.com -hcvoid.us -hcxnw.info -hcyb.email -hcysw.info -hcyxrnhrl.shop -hczx.email -hczx8888.com -hd-boot.info -hd-camera-rentals.com -hd-mail.com -hd-stream.net -hd3vmbtcputteig.cf -hd3vmbtcputteig.ga -hd3vmbtcputteig.gq -hd3vmbtcputteig.ml -hd3vmbtcputteig.tk -hd731.com -hd88156.com -hd9837.com -hdapps.com -hdbaset.pl -hdc9.us -hdcanlimacizle.org -hdcp345.com -hdcp456.com -hdctjaso.pl -hdczu7uhu0gbx.cf -hdczu7uhu0gbx.ga -hdczu7uhu0gbx.gq -hdczu7uhu0gbx.ml -hdczu7uhu0gbx.tk -hddiziizle.mobi -hddoip.us -hddotcom.com -hddvdguide.info -hdexch.com -hdf6ibwmredx.cf -hdf6ibwmredx.ga -hdf6ibwmredx.gq -hdf6ibwmredx.ml -hdf6ibwmredx.tk -hdfgh45gfjdgf.tk -hdfshsh.stream -hdgana.website -hdhkmbu.ga -hdhkmbu.ml -hdiganaz.cf -hdiganaz.ga -hdiganaz.gq -hdiganaz.ml -hdiganaz.tk -hditalia.space -hdkinofan.ru -hdkinosh.online -hdko1.online -hdlipocenters.com -hdlords.online -hdmail.com -hdmovie.info -hdmovieshouse.biz -hdmoviestore.us -hdo.net -hdonroerendgoed.com -hdorg.ru -hdorg1.ru -hdparts.de -hdplayer.shop -hdprice.co -hdqlxtlmm.shop -hdqputlockers.com -hdrecording-al.info -hdrezka.press -hdrlf.us -hdsdentistportal.org -hdserialonline.ru -hdserialy.ru -hdseriionline.ru -hdsfysd.ml -hdsfysd.tk -hdspot.de -hdsq13.com -hdstream247.com -hdszw.info -hdtube.site -hdtvsounds.com -hdvideo-kontent.ru -hdvideo-smotry.ru -hdvidio.art -hdvxxx.space -hdylzcym.com -he-creditcardnofeeca-ok.live -he-tu-new-car-ok.live -he-tu-new-cars-ok.live -he1079.com -he2duk.net -he3mdb.us -he445.com -he8801.com -he8he.com -heaa.info -headachetreatment.net -headlineglobally.xyz -headpack.org.ua -headphones4you.info -headphonesifans1.ru -headphonestest.com -headset5pl.com -headsetwholesalestores.info -headstrong.de -heajsdh298.xyz -healbutty.info -healcross.com -healingthemhealingus.org -healratur.cf -healratur.ga -healratur.gq -healratur.ml -healsmybdy.online -healsy.life -healt-diet.ru -health-1-beauty.ru -health-2-beauty.ru -health-blog1.xyz -health-blog2.xyz -health-club.pro -health-forums.com -health-insurance-for-minnesota.com -health-insurance-for-texas.com -health-leina24.site -health-niche-blogs.com -health-nutrition.xyz -health-puzzle.com -health.edu -health112.ru -healthaccessories.exposed -healthandbeautyimage.com -healthandfitnessnewsletter.info -healthandrehabsolution.com -healthandrehabsolutions.com -healtharise.com -healthbeam.site -healthbeautynatural.site -healthbiotrim.com -healthblog.com -healthbreezy.com -healthcarealliancegroups.com -healthcarecomm.com -healthcarepractitionersnearme.com -healthcareprovidersnearme.com -healthcareprovidersnearme.org -healthcareseoagency.com -healthcheckmate.co.nz -healthchoicemaryland.info -healthcoachali.press -healthcoachpractitioner.com -healthcorp.edu -healthcureview.com -healthdata.ru -healthdelivery.info -healthfalkten.cf -healthfalkten.gq -healthfalkten.ml -healthfalkten.tk -healthfitnesschannel.club -healthfitnews.club -healthforhelp.org -healthgransal.cf -healthgransal.gq -healthgransal.ml -healthgransal.tk -healthhappinessandhulahoops.com -healthinsuranceforindividual.co.uk -healthinsurancespecialtis.org -healthinsurancestats.com -healthlifes.ru -healthlium.com -healthlivingcoach.com -healthlycbd.com -healthmeals.com -healthmensstyle.info -healthmeup.club -healthmuseum.org -healthnews.biz -healthnewsapps.com -healthnewsfortoday.com -healthnutexpress.com -healthoutlet.ru -healthpositive.site -healthpoweredkids.net -healthpull.com -healthrahis.ga -healthrahis.gq -healthranli.cf -healthranli.ga -healthranli.gq -healthranli.ml -healthranli.tk -healthroutecard.com -healthscatter.net -healthsciencetrust.com -healthshop.futbol -healthsoulger.com -healthtutorials.info -healthy-happy-life8.xyz -healthy-line.online -healthyalkalinewater.us -healthybirthwork.com -healthybirthworker.com -healthybody.store -healthycatclub.com -healthychoicescounselingservices.net -healthydiets.ru -healthyfoodandlife.club -healthyheartforall.com -healthyheartforall.org -healthyhikers.net -healthyhydrofarm.net -healthyhydrofarms.net -healthyliving.tk -healthymanreviews.website -healthynutritionoptions.com -healthypetscbd.com -healthypetscbd.net -healthyphalkalinewater.us -healthysnackfood.info -healthysocialnews.com -healthyteethandgums.net -healthywelk.com -healthyyouinc.com -healvalg.host -healyourself.xyz -heangdilly.icu -heari.net -hearing-balance.com -hearingaiddoctor.net -hearpower.us -hears.site -heart1.ga -heartandhopefund.com -heartburnnomorereview.info -heartfair.xyz -heartgrantsimple.com -hearthandhomechimneys.co.uk -hearthealthy.co.uk -heartland-arnone.xyz -heartland-trauma-institute.org -heartlandrv4life.com -heartmcanof.ga -heartmcanof.gq -heartmcanof.ml -heartmcanof.tk -heartno.xyz -heartnob.xyz -heartofrecycling.net -heartofrecycling.org -heartowhatisay.club -heartpou.press -heartrate.com -heartratemonitorstoday.com -heartstargreetings.com -heartter.tk -hearttoheart.edu -heartuae.com -hearyousay.club -heat-scape.co.uk -heatabzxup.space -heathcotebarr.eu -heathealthv.xyz -heathenhammer.com -heathenhero.com -heathenhq.com -heatherabe.org -heatherandrandy.com -heatherviccaro.net -heatingandplumbingnearme.com -heatingcoldinc.info -heatroosterinfo.website -heatssova.cf -heatssova.ga -heavenarticles.com -heavenpizzatakeaway.com -heavycloth.com -heavymetalparkinglot.net -heavyst.xyz -heb-it.com -hebagfu.cf -hebagfu.ga -hebagfu.gq -hebagfu.tk -hebatmart.xyz -hebedbugremovalok.live -hebeos.online -hebgsw.com -hebohdomino88.com -hebohpkv.design -hebohpkv2.com -hebohpkv88.com -hebohpkv88.net -hebpfyy.com -hebron.academy -hecat.es -hecktiga.xyz -hecou.com -hectoliter216ug.online -hedcet.com -hedefajans.site -hedera-corsages.online -hedgefundnews.info -hedgehog.us -hediyemial.com -hedsatemi.tk -heduian.space -hedy.gq -heebqn.info -heeco.me -heeeet.site -heeneman.group -heerlijkbezorgen.com -heerman.best -heett.best -heffernanonline.com -hefrent.tk -heftrack.com -hegeblacker.com -hegfqn.us -heheai.info -hehesou.com -hehmail.pl -heidengardens.com -heiditates.info -heidithorsen.com -heightsafetyproducts.com -heightsheaters.top -heihamail.com -heikouzi.com -heinribenj.space -heinrich-group.com -heirret.shop -heisei.be -heisserreifen.com -heistnukes.com -hejumarket.site -hekimsaglik.xyz -hekisha.com -hekvxdcww.info -helados.online -helakp.pw -helamakbeszesc.com -helbest.site -helbsa.us -hele12300.online -hele8game.org -helenastripsearch.com -helenmackreath.com -helenmariefoundation.com -heli-ski.su -helichinanz.net -helicolsafety.com -helicopter-game.biz -helicopter-tours.us -heliner.fun -helinlashes.space -heliozivor.space -heliqq.online -heliumend.com -hell.plus -hell3.ru -hellenic-minerals.com -hellenicfeta.com -hellenion.com -hellheater.ru -hellinger.ru -hellmode.com -hello-volgograd.ru -hello.nl -hello123.com -helloairfares.com -hellobali.online -hellobuurman.com -hellobuurvrouw.com -hellocab.biz -hellocab.city -hellocab.club -hellocab.online -hellocab.rentals -hellocab.shop -hellocab.site -hellocab.store -hellocab.taxi -hellocab.tips -hellocab.today -hellocab.us -hellocab.world -hellocab.xyz -hellocheese.online -hellococonono.site -hellococonono.website -hellococonono.xyz -hellodream.mobi -helloedo.com -hellohitech.com -hellohuman.dev -hellokittyjewelrystore.com -hellolinked.net -hellolive.xyz -hellomail.fun -hellomakana.com -hellomore.com -hellopizza-sligo.com -helloricky.com -helloteststore.com -hellow-man.pw -hellowhoopsie.com -hellowman.pw -hellowperson.pw -helloyii.com -helloyyh.com -hells-heater.ru -hellsheater.ru -hellsmoney.com -helm.ml -helmade.xyz -heloca.cf -heloca.ml -heloca.tk -help-desk-manager.com -help-find-number.com -help-medical.fun -help-medical.host -help-medical.icu -help-medical.info -help-medical.press -help-medical.pro -help-medical.site -help-medical.space -help-medical.website -help24assist.site -help33.cu.cc -help4entrepreneurs.co.uk -help4hedgehogs.org -helpcryptocurrency.com -helpcustomerdepartment.ga -helpemails.com -helpforblood.com -helpfored.club -helpformyreactivedog.com -helpforstudents.ru -helpfulriddles.com -helphosting.online -helpi.club -helpinghandtaxcenter.org -helpjobs.ru -helpline174.ru -helpmail.cf -helpman.ga -helpman.ml -helpman.tk -helpmebuysomething.com -helpmedigit.com -helpmegrowmysales.com -helpotdeitit-confirmed.com -helpotdeitit-meet-backup.com -helpotdeitit-meet.com -helpwesearch.com -helrey.cf -helrey.ga -helrey.gq -helrey.ml -helthcare.store -helthyandfitnesslife.com -helvert.ru -helvetika.org -hemanthkumar.biz -hematological290ta.online -hemenal5.space -hemenbahis101.com -hemenbahis102.com -hemenbahis104.com -hemenbahis105.com -hemenbahis107.com -hemenbahis109.com -hemenbahis111.com -hemenbahis112.com -hemenbahis113.com -hemenbahis115.com -hemenbahis64.com -hemenbahis65.com -hemenbahis67.com -hemenbahis68.com -hemenbahis71.com -hemenbahis72.com -hemenbahis79.com -hemenbahis88.com -hemenbahis92.com -hemenbahis96.com -hemenbahis97.com -hemenfinansman.online -hemetapartments.com -hemetshopping.com -hemic493iq.online -hemin539kw.online -hemisphereozuwari.club -hemohim-atomy.ru -hemonjs.site -hemoroidy-leczenie-domowe.xyz -hemorrhoidmiraclereviews.info -hemostatic249tx.online -hemotoploloboy.com -hemp.organic -hempcrete.us -hempdeho.cf -hempdeho.gq -hempdeho.ml -hempdeho.tk -hempendant.com -hempendants.com -hempexy.com -hempgroups.com -hempjewelery.com -hempjh.com -hempnoticblends.com -hemppendant.com -hemprootextract.com -hemproots.org -hempseed.pl -hempshop.life -hempshop.organic -hemptodayshop.com -hempwell.green -hempworkz.org -hempworld.net -henamail.com -henandstagworld.com -henarik.ml -hendersonnailsalons.com -hendersonvilleantiquecarclub.org -hendigrepair.com -hendlexseramiksatisi.site -hendoc.pro -hendrickhvac.com -hendrickplumbing.com -hendrikarifqiariza.cf -hendrikarifqiariza.ga -hendrikarifqiariza.gq -hendrikarifqiariza.ml -hendrikarifqiariza.tk -hendrixapp.com -hendrixheatandair.com -hengcaiii.com -hengshinv.com -hengy2zc.com -hengyutrade2000.com -henhed.ru -henho24h.info -henhousetakeaway.com -henistore.pw -hennetdphar.cf -hennetdphar.ga -hennetdphar.tk -henrikoffice.us -henry-mail.ml -henrydady1122.cc -henrylin.xyz -henrymfpfx.website -henryripplingergallery.com -hensao59.icu -hensleyshop.space -hentaref.cf -hentaref.gq -hentaref.ml -hentaref.tk -hentodr.shop -heovang68.net -hepcatstudio.com -hepria.pro -hepsicasinogiris.net -hepsimaras.com -hepta.games -her-102.com -heraldnznew.site -heramicher.com -heramof.icu -herb-e.net -herb2med.com -herbadvisor.org -herbalanda.com -herbalcorner.org -herbalifemedico.com -herbalsoftware.com -herbalsolutions.llc -herbalsumbersehat.com -herbamart.xyz -herbaworks2u.com -herbert1818.site -herbertgrnemeyer.in -herbkab.icu -herbsvigour.com -hercn.com -herculestoto.com -herdtrack.com -herdtrak.com -hereabkhel.ru -herediumabogados.net -herediumabogados.org -hereishistory.com -heremart.com -heresh.info -herestoreonsale.org -herforklo.site -hergrteyye8877.cf -hergrteyye8877.ga -hergrteyye8877.gq -hergrteyye8877.ml -hergrteyye8877.tk -herh2-privntur.fun -herh2-privntur.site -herh2-privntur.xyz -herien.design -heritagedentalgroupusa.com -herkesicinad.tk -herlesi.cf -herlesi.ga -herlesi.gq -herlesi.tk -herlitthis.press -hermes-uk.info -hermesbirkin-outlet.info -hermesbirkin0.com -hermesdesigner.store -hermeshandbags-hq.com -hermesjs.dev -hermesonlinejp.com -hermessalebagjp.com -hermestashenshop.org -hermesvm.dev -hermeswebsite.com -hermitcraft.cf -hernanipro.com -hernote.com -herocalce.com -herochecklist.com -herocopters.com -heroeshappen.org -heroesintl.com -heroeskaring.org -heroesmag.online -heroesofblood.com -heroicepics.com -heroindetoxcenterguide.com -heroine-cruhser.cf -heroinrehabcenterprograms.com -heros3.com -herosamericancafe.com -heroshirts.net -herostartup.com -herozt.com -herp.in -herpderp.nl -herpes9.com -herplan.com -herrek.online -herrin.cam -herriring.cf -herriring.ga -herriring.ml -herrtian.site -herschl.com -herseyburadaa.online -herseynettevar.com -hersfund.org -hertader.site -hertheshisdires.info -hertogscholars.org -hertzsybilliver.site -herunterladen-1.xyz -herwaylifestyle.com -heryerokulum.xyz -heryogasecretsexposed.com -hesaplikontor.online -hesaplikontor.xyz -hesaplitasi.com -heshengcai.xyz -hessrohmercpa.com -hestermail.men -hestra.build -het-familiehuis.site -hetbudgets.info -hetedater.com -hetekontakter.com -heterokyuq.space -heterozuvi.space -heterto.ru -hetgames.shop -hethox.com -hetkanmijnietschelen.space -heure.shop -heuschrecken.kaufen -hevury.xyz -hewke.xyz -hewthewa.shop -hewuko.site -hewushops.site -hex2.com -hexa.click -hexa.photo -hexagonmail.com -hexapi.ga -hexasploit.xyz -hexatown.ru -hexc.net -hexeby.info -hexiecom.com -heximail.com -hexkf.live -hexqr84x7ppietd.cf -hexqr84x7ppietd.ga -hexqr84x7ppietd.gq -hexqr84x7ppietd.ml -hexqr84x7ppietd.tk -heyday.events -heyitsvanessa.com -heyjuegos.com -heyveg.com -heywebuyhousesfast.com -heywhatsnews.com -hezarpay.com -hezemail.ga -hezll.com -hezupe.info -hf-chh.com -hf-playing.ru -hf2sko.us -hf355.com -hf83tx-mail.xyz -hfbean.xyz -hfcee.com -hfctd1.site -hfd-house.site -hfdh7y458ohgsdf.tk -hfdhtmrds.site -hfdwf.xyz -hfengshui.com -hffff.xyz -hffgyn.us -hffinrsmud.fun -hfgbb.club -hfggw.info -hfgponshops.com -hfhy.site -hfhy.xyz -hfhyg.xyz -hflk.us -hfls.buzz -hfmf.cf -hfmf.ga -hfmf.gq -hfmf.ml -hfmf.tk -hfnibp.club -hfpd.net -hfq09.space -hfrump.monster -hfsym.com -hg0cp.monster -hg14.app -hg15.app -hg16.app -hg17.app -hg188198.com -hg19.app -hg20.app -hg2007.com -hg21.app -hg23.app -hg25.app -hg29.app -hg32.app -hg34.app -hg37.app -hg39.app -hg40.app -hg520666.com -hg7akt.us -hg8n415.com -hg98667.com -hgame.org -hgcash2.com -hgcash678.com -hgdideyd.shop -hgdvwzdno.shop -hgdwy.xyz -hgebestweb.com -hgfh.de -hgggypz.pl -hggpxzvxg.ml -hgh.net -hghenergizersale.com -hghnaturals.com -hgomw4.site -hgpoker9.com -hgqcol.com -hgrmnh.cf -hgrmnh.ga -hgrmnh.gq -hgrmnh.ml -hgrouse.icu -hgsygsgdtre57kl.tk -hgtabeq4i.pl -hgtt674s.pl -hguopd.info -hgwdjx.com -hgxin44.com -hgxw9k.us -hgxxsycdj.shop -hh-ee.com -hh5608.com -hh8058.com -hh8061.com -hh8690.com -hhasdgyyyiii.xyz -hhbj.host -hhbj.website -hhbwikdcq.shop -hhcqldn00euyfpqugpn.cf -hhcqldn00euyfpqugpn.ga -hhcqldn00euyfpqugpn.gq -hhcqldn00euyfpqugpn.ml -hhcqldn00euyfpqugpn.tk -hhd1212.com -hhdyw.info -hhdzy3.us -hhgg33.com -hhh.sytes.net -hhhh9927.com -hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh.info -hhhhyl.com -hhioscar.com -hhitbridgee.site -hhitlytick.site -hhjdw.info -hhjqahmf3.pl -hhjqnces.com.pl -hhkai.com -hhkmp.us -hhmmds2t.net -hhn2n.us -hhnet.net -hhomesite.com -hhopy.com -hhpiffho.shop -hhtattooorlando.com -hhthyw.com -hhttyg.cf -hhu911.com -hhudra2web.com -hhutdden.shop -hhxo.com -hhylgjgw.com -hhyrnvpbmbw.atm.pl -hi07zggwdwdhnzugz.cf -hi07zggwdwdhnzugz.ga -hi07zggwdwdhnzugz.gq -hi07zggwdwdhnzugz.ml -hi07zggwdwdhnzugz.tk -hi1dcthgby5.cf -hi1dcthgby5.ga -hi1dcthgby5.gq -hi1dcthgby5.ml -hi1dcthgby5.tk -hi2.in -hi3rt6.us -hi427.site -hi5.si -hi645.com -hi6547mue.com -hiae.email -hialeah-towing-miami.info -hiapig.ru -hiatrante.ml -hibareview.com -hibernates.best -hibiskureczanemiz.site -hibiskurileinceldim.site -hibiskurlahuzurdolu.site -hibiskurlakurtulun.site -hibiskurlarahatla.site -hibiskurlason.site -hibiskurorijinal.site -hibiskursiparisver.site -hibiskurttu.site -hibiskurttulabs.site -hibiskurvesaglik.site -hibiskurwhitehq.site -hibiskuseczanemiz.site -hibiskushaberleri.site -hibiskusilever.site -hibiskuskurutarifimiz.site -hibiskuslaben.site -hibiskusladaral.site -hibiskuslakurtulun.site -hibiskuslasevgidolu.site -hibiskuslayasa.site -hibisledoyum.site -hibisleulas.site -hibisleyasa.site -hiboowe.xyz -hibya.xyz -hiccupconvince.net -hicgxwwum.shop -hichinavpn.com -hichristianlouboutinukdiscount.co.uk -hichristianlouboutinuksale.co.uk -hickeyteam.net -hicloud.life -hicmd.net -hicnsoft.com -hicostand.site -hicuspee.ga -hicuspee.gq -hidayahcentre.com -hidden-code.org -hiddencorner.xyz -hiddencovepark.com -hiddentombstone.info -hiddentragedy.com -hide-mail.net -hidebox.org -hidebro.com -hidebusiness.xyz -hideemail.net -hidemail.de -hidemail.pro -hidemail.us -hideme.be -hidemyass.com -hideweb.xyz -hidheadlightconversion.com -hidjuhxanx9ga6afdia.cf -hidjuhxanx9ga6afdia.ga -hidjuhxanx9ga6afdia.gq -hidjuhxanx9ga6afdia.ml -hidjuhxanx9ga6afdia.tk -hidkey.ru -hidra2web.site -hidraaa.cf -hidraaa22.cf -hidraaa22.ml -hidraaa22.tk -hidt87egs.buzz -hidzz.com -hieai.com -hielilis.cf -hielilis.ga -hielilis.gq -hielilis.ml -hielilis.tk -hieu.in -hieunhu.com -hifa-oil.com -hifaoil.com -higcentral.cf -higcentral.ga -higcentral.gq -higcentral.ml -higcentral.tk -high-tech.su -high.tips -highbeam.io -highbros.org -highcafe-athlone.com -highdefseo.com -highdesertturf.net -higheducation.ru -higherac.com -higherwxum.space -highestinfluence.com -highfidelityplaylists.com -highfive.red -highganic.com -highground.store -highgroundjiujitsu.com -highheelcl.com -highiqsearch.info -highlanddoctors.com -highlandge.buzz -highlandparkrealestateagents.com -highlevel.store -highlevelcoder.cf -highlevelcoder.ga -highlevelcoder.gq -highlevelcoder.ml -highlevelcoder.tk -highlevelgamer.cf -highlevelgamer.ga -highlevelgamer.gq -highlevelgamer.ml -highlevelgamer.tk -highlightertr.tk -highme.store -highonline.store -highperformancechevy.com -highperformanceevent.com -highpoint-holistic-cleansing.com -highpointspineandjoint.com -highprice.store -highregardmerchantprocessing.com -highroller.ninja -highsite.store -highsouvro.tk -highspace.store -highstatusleader.com -highsulln.us -hightechmailer.com -hightechnology.info -highteher.tk -highticketaudit.com -hightri.net -highvideo.ru -highwayeqe.com -highweb.store -highwranim.cf -highwranim.ga -highwranim.gq -highwranim.tk -higiena-pracy.pl -higogoya.com -higuuyys11316.ga -higuuyys13759.ml -higuuyys92071.cf -higuuyys92071.ga -higy.site -hihalfpricedlistings.com -hihalfpricelisting.com -hihalfpricelistings.com -hiholerd.ru -hii5pdqcebe.cf -hii5pdqcebe.ga -hii5pdqcebe.gq -hii5pdqcebe.ml -hii5pdqcebe.tk -hiirimatot.com -hijayt.shop -hijijy.info -hijrahusahawan.com -hijyenambalaj.xyz -hijyendelisi.xyz -hikali90.bid -hikeeastcoasttrail.com -hikeforcam.com -hikelists.info -hikingshoejp.com -hikingwithdogs.xyz -hikitas-rnim.ru -hilandtoyota.net -hilarymacmillan.ru -hilbetgirisyap.com -hilbetmobil.com -hilbetonline.com -hilbettr.com -hildredcomputers.com -hilfe-24.info -hili.site -hill63.org -hillary-email.com -hillatimels.tk -hillcountryone.com -hillmail.men -hillopy.ru -hillpturser.cf -hillpturser.ga -hillpturser.gq -hillpturser.tk -hillsidekennels.net -hillsong.events -hilltop-pizzeria.com -hilltoptreefarms.com -hilocals.net -hiltonbet38.com -hiltonbet40.com -hiltonbet45.com -hiltonbet71.com -hiltonbet73.com -hiltonbet75.com -hiltonbet76.com -hiltonbet87.com -hiltonbet92.com -hiltonbet93.com -hiltonbettv20.com -hiltonbettv21.com -hiltonbettv22.com -hiltonbettv23.com -hiltonbettv27.com -hiltonbettv30.com -hiltonvr.com -hilvarenbeek.info -hilwellchev.cf -hilwellchev.ga -hilwellchev.gq -hilwellchev.ml -himachal.org -himail.online -himaksiunmul.site -himalaya1.com -himdhima.shop -himkinet.ru -himomsports.com -himovies.club -himovies.fun -himovies.host -himovies.online -himovies.website -himpxn.us -himte.xyz -himtee.com -hincisy.cf -hincisy.ga -hincisy.gq -hincisy.ml -hincisy.tk -hindam.net -hindbuzz.info -hindimeinhelp.com -hindimusic.info -hindiroman.com -hindugoddessempowerment.com -hinfalitt.ru -hinhanhdep.pro -hinhnen.asia -hinkrigi.cf -hinktacell.gq -hinktacell.tk -hinmatof.xyz -hinokio-movie.com -hinolist.com -hinsonchannel.com -hintergrund.me -hioscat.com -hiotwb.us -hipay.dev -hiperbet.info -hiperbet.net -hiperbet.org -hiperbetbahis.net -hiperbetbonus.com -hiperbetgiris.bet -hipermail.co.pl -hipermetropameliyati.com -hipflexs.com -hiphop-fotografiach.com -hiphopintheville.com -hiphopmoviez.com -hipmi.net -hipmisfitgui.website -hippobox.info -hippolyt.help -hipponut.net -hippymulch.com -hiprootjwr.space -hips-trainer.ru -hiq90.space -hiqbiz.com -hiqkr7.info -hiqny3.us -hiraethgroup.com -hire4less.net -hireashley.com -hirebi.cf -hirebi.ml -hirebi.tk -hireelectricbike.com -hirehalls.com -hirekuq.tk -hiremystyle.com -hirikajagani.com -hiringup.net -hirodesu.club -hirschsaeure.info -hiru-dea.com -hirunger.space -hisalotk.cf -hisalotk.ga -hisalotk.gq -hisalotk.ml -hisarlondon.xyz -hischist.shop -hisense.org -hishark.best -hishatak.com -hishescape.space -hishyau.cf -hishyau.ga -hishyau.gq -hishyau.ml -hismetons.xyz -hispanodentalcare.net -hisrelentlesslove.com -hisserjfjg.space -hissfuse.com -histhisc.shop -historicallybent.com -historiceffinghamsociety.com -historicoldhomes.com -historicstalphonsus.org -historictheology.com -historidie.ru -historyalone.com -historyofsoca.com -historyship.ru -hit-best-buy.ru -hit-magazine-buy.ru -hit4sale.icu -hitabid.com -hitachirail.cf -hitachirail.ga -hitachirail.gq -hitachirail.ml -hitachirail.tk -hitachirailsts.cf -hitale.ru -hitandpun.com -hitbase.net -hitbet58.com -hitbet59.com -hitbts.com -hitchhikingthe7seas.com -hitechbank.org -hitechinfo.com -hitechmechanical.com -hitechnew.ru -hitetogogoda.ru -hitl.net -hitler-adolf.cf -hitler-adolf.ga -hitler-adolf.gq -hitler-adolf.ml -hitler-adolf.tk -hitler.rocks -hitlerbehna.com -hitlive.ru -hitokoto.org -hitons.ru -hitprice.co -hitradiopatrick.online -hitseller.host -hitsfit.com -hitsmag.ru -hitsproduct.top -hitthatne.org.ua -hitysi.info -hiusas.co.cc -hiva.best -hiva.website -hiva.world -hive306.com -hivebyte.cloud -hivemetrics.com -hivemusic.org -hiveos.org -hiwager.games -hiwager.plus -hiwave.org -hiweb.org -hiwot.market -hiwxfn.com -hix.kr -hixtory.com -hiyaa.site -hiyofr.us -hiyrey.cf -hiyrey.ga -hiyrey.gq -hiyrey.ml -hiytdlokz.pl -hiz.kr -hiz76er.priv.pl -hizbd8.us -hizemail.com -hizirisg.xyz -hizlieticaret.com -hizliodegec.com -hizliodevegec.com -hj9ll8spk3co.cf -hj9ll8spk3co.ga -hj9ll8spk3co.gq -hj9ll8spk3co.ml -hj9ll8spk3co.tk -hjdosage.com -hjdzrqdwz.pl -hjfgyjhfyjfytujty.ml -hjfsupport.com -hjfzn1.site -hjgh545rghf5thfg.gq -hjhs777.com -hjios.us -hjirnbt56g.xyz -hjkcfa3o.com -hjkgkgkk.com -hjkhgh6ghkjfg.ga -hjkkb.host -hjnmyp.com -hjprw.info -hjtopoker.net -hjvnjv.com -hk-50.com -hk18.space -hk188188.com -hk20.space -hk23pools.info -hk23pools.net -hk23pools.org -hk25.space -hk29.space -hk44238.com -hk7727.com -hk7767.com -hk8858.com -hkbplw.icu -hkbpoker.com -hkbxclub.com -hkbxgwpuq.shop -hkcmgx.fun -hkcmxr.fun -hkcp87.com -hkd6ewtremdf88.cf -hkdewa.org -hkdnmove.com -hkee1.xyz -hkfmkp.fun -hkfs.ru -hkft7pttuc7hdbnu.cf -hkft7pttuc7hdbnu.ga -hkft7pttuc7hdbnu.ml -hkfy2424.com -hkglotto.com -hkhangsen.ru -hkhk.de -hkhkjhjh.com -hkhmyn.fun -hkjinhuarun.com -hkjmnp.fun -hkjmtw.fun -hklittlestores.com -hkllooekh.pl -hklove.ml -hkmbqmubyx5kbk9t6.cf -hkmbqmubyx5kbk9t6.ga -hkmbqmubyx5kbk9t6.gq -hkmbqmubyx5kbk9t6.ml -hkmbqmubyx5kbk9t6.tk -hkmedical.center -hkpmst.fun -hkrmpx.fun -hkrmxr.fun -hksmnm.fun -hkstorey.com -hksuning.store -hktmrd.fun -hku.us.to -hkww1.xyz -hkxmck.fun -hkxmld.fun -hkxmqp.fun -hky6f9.us -hkypw.info -hkzg.email -hl-blocker.site -hl11277.com -hl353.online -hl51.com -hl7.cloud -hlawfirm.net -hlclxr.icu -hlcrw.info -hldgeraldton.website -hldn.de -hldv.info -hlf333.com -hlfbgv.site -hlgame9.com -hlgjsy.com -hlikprytlabs.net -hlinsd.us -hliwa.cf -hljxtjs.com -hlljb.club -hllosaxd27192.cf -hllosaxd39371.tk -hllosaxd41394.ml -hllosaxd68693.cf -hllosaxd68693.ga -hllosaxd68693.tk -hlmvf9.us -hlooy.com -hlopshueh.xyz -hlqp11277.com -hlw12.life -hlw13.life -hlw14.life -hlw17.life -hlw20.life -hlw21.life -hlw22.life -hlw24.life -hlw25.life -hlw26.life -hlw27.life -hlw28.life -hlw29.life -hlw30.life -hlw31.life -hlw32.life -hlw34.life -hlw35.life -hlw38.life -hlw44.life -hlw45.life -hlw48.life -hlw49.life -hlw5.life -hlw6.life -hlw8.life -hlw9.life -hlwmbl.net -hlwsp9.com -hlwxoq.best -hlx02x0in.pl -hlxmhclyx.ml -hlxpiiyk8.pl -hm02.app -hm03.app -hm07.app -hm08.app -hm09.app -hm10.app -hm13.app -hm16.app -hm18.app -hm19.app -hm20.app -hm21.app -hm25.app -hm3o8w.host -hmail.top -hmail.us -hmamail.com -hmchat.ru -hmcl1.xyz -hmcq4e.site -hmcu.edu.vn -hmeetup.com -hmfgw.info -hmh.ro -hmhrvmtgmwi.cf -hmhrvmtgmwi.ga -hmhrvmtgmwi.gq -hmhrvmtgmwi.ml -hmhrvmtgmwi.tk -hmhshops.com -hmhu.com -hmhwords.com -hmjjne.rest -hmjm.de -hmkmedical.com -hmmarketru.ru -hmmbswlt5ts.cf -hmmbswlt5ts.ga -hmmbswlt5ts.gq -hmmbswlt5ts.ml -hmmbswlt5ts.tk -hmnmw.com -hmos.systems -hmotomotiv.xyz -hmsale.org -hmx.at -hmxmizjcs.pl -hmyisitme.xyz -hn-lb01.xyz -hn-skincare.com -hn1548.us -hn5nfo.us -hnataee.fun -hnbjs.us -hndard.com -hndifeng.com -hndj365.com -hnfk5o.us -hngwrb7ztl.ga -hngwrb7ztl.gq -hngwrb7ztl.ml -hngwrb7ztl.tk -hnhkubyshka.site -hnhlenchtumba.site -hnhobedlekalo.space -hnhtipzavtrak.space -hniiywf.site -hnkyho.us -hnlmtoxaxgu.cf -hnlmtoxaxgu.ga -hnlmtoxaxgu.gq -hnlmtoxaxgu.tk -hnndw.info -hnpnw.info -hnpod.com -hnqdw.info -hnrsc.icu -hntr93vhdv.uy.to -hntth.com -hnyl67.com -hnyl69.com -hnyl96.com -ho-365.com -ho-555.com -ho-707.com -ho-mvp.com -ho2.com -ho2zgi.host -ho3twwn.com -ho500.com -ho770.site -hoa-collect.com -hoa-collect.net -hoa-collect.org -hoa-southbend.com -hoabinhmail.us -hoacollect.com -hoail.co.uk -hoangduc.best -hoangdz11.tk -hoanggiaanh.com -hoanglong.tech -hoangmanhtuong.ml -hoangmyhanh.ga -hoangnghiale.ml -hoangngocviet.ga -hoangthanhtam.ga -hoangthaonguyen.ml -hoangthihoa.ga -hoangthikimlien.ml -hoangthimyhanh.ga -hoangvannam.ga -hoangvuson.ga -hoarderhousebuyers.com -hobartrealestateagents.com -hobbi-dlj-myzchin.ru -hobbitthedesolationofsmaug.com -hobbsye.com -hobby-society.com -hobbybreak.site -hobbydiscuss.ru -hobbyhand.ru -hobbyhure.online -hobbyspo.xyz -hobbyspor.icu -hobbysuit.site -hobbywe.recipes -hobicapsa.org -hobitogelapps.com -hoboc.com -hobocolo.info -hobosale.com -hocaninyeri.xyz -hocantonese.com -hocgaming.com -hochiminhflorist.net -hochsitze.com -hocibbo.cf -hocibbo.ga -hocibbo.gq -hocibbo.ml -hocibbo.tk -hockeyan.ru -hockeydrills.info -hockeyshop.live -hockeyskates.info -hockeytrek.com -hockinhdoanh.info -hocl.hospital -hocl.tech -hoclaiotocaptoc.com -hocseo.top -hocseohieuqua.com -hocseonangcao.com -hocseotructuyen.com -hocseowebsite.com -hocsinh.asia -hocsinh.mobi -hoctiengquangdong.com -hocud.net -hodady.club -hodady.online -hodady.site -hodler.land -hodmachines.com -hodovmail.com -hodu24.net -hodu30.net -hodu52.net -hodutv.fun -hodutv7.fun -hodutv8.fun -hodutv9.fun -hody.site -hoekiesikstudie.online -hoer.pw -hoerhelfer.com -hoesmistreatgut.website -hoesshoponline.info -hofap.com -hofato.info -hofffe.site -hoffren.nu -hofitol.ru -hofmannfilms.com -hofo0i.us -hofu.site -hoga.site -hoganmachine.com -hoganoutletsiteuomomini.com -hoganpwst.space -hoganrebelitalian.com -hogansitaly.com -hogansitaly1.com -hogansitoufficialeshopiit.com -hogee.com -hoggr.com -hoggtheroad.com -hogzilla.biz -hohiny.info -hohows.club -hoi-poi.com -hoianancienttownhotel.com -hoichoonline.website -hoinnchinese.com -hoistsec.com -hoiucvltk.net -hojfccubvv.ml -hojuhometour.com -hokicmcbet.xyz -hokijeep.club -hokipuma.com -hokiterus.site -hokpoker.org -hokyaa.site -holabook.site -holaveso.website -holcombefinancial.net -holdandgrow.com -holdenscramble.com -holdfit.info -holdup.me -holeio1.net -holeio2.net -holeyj.monster -holidayaftercare.com -holidaygates.com -holidayinc.com -holidayloans.com -holidayloans.uk -holidayloans.us -holidayrelief.online -holidaystousa.com -holidaytraveling.site -holiganbetkayit.com -holl.ga -holladayutah.com -holland-nedv.ru -hollandmail.men -holliefindlaymusic.com -hollister-australia.biz -hollisterclothingzt.co.uk -hollisteroutletuk4u.co.uk -hollisteroutletukvip.co.uk -hollisteroutletukzt.co.uk -hollisteroutletzt.co.uk -hollistersalezt.co.uk -hollisteruk4s.co.uk -hollisteruk4u.co.uk -hollisterukoutlet4u.co.uk -holly-randall.com -hollylisleonlinewritingschool.com -hollymccravy.com -hollyweirdtours.com -hollywood-spb.ru -hollywoodbeach-hotels.com -hollywooddreamcorset.com -hollywooddress.net -holo.hosting -holocart.com -holod93.ru -holodol.ru -holodos18.ru -holodosov.ru -hologramskies.com -holoholopu.club -holr.us -holstenwall.top -holstory.ru -holy-lands-tours.com -holy-nevis.ru -holyevents.net -holypet.ru -holywaiveknee.website -holzwohnbau.de -holzzwerge.de -homa14.live -homa19.live -homa3.com -homail.com -homal.com -homaring.xyz -hombre.fun -hombrequecamina.com -hombressimbolicos.com -home-1shop.website -home-businessreviews.com -home-care-assistance-leger-agency.com -home-gym-direct.com -home-sales-by-owner.com -home-tech.fun -home.glasstopdiningtable.org -home.tennis -home2busova.ru -home411insurance.xyz -home411now.xyz -home411online.xyz -home411services.xyz -home4ideas.com -home5858.com -homeaa318.xyz -homealfa.com -homeandawayhotels.com -homeandbackyard.com -homeandhouse.website -homearragement.site -homebasednetworks.com -homebusinesshosting.us -homecareandhospital.com -homecareoptical.com -homecleaningreviews.com -homedalian.se -homedecoideas.info -homedecorcafe.com -homedecoretips.com -homedecorsaleoffus.com -homedecorunique.com -homedepinst.com -homedesignideas.website -homedesignsidea.info -homedonation.org -homeequityloanlive.com -homeesite.com -homeextensionsperth.com -homefauna.ru -homefinderwinnipeg.com -homeforsale225.com -homegadgeteer.com -homehunterdallas.com -homeinsuranceagentsnearme.com -homeinsureguide.com -homeinteriorcorner.com -homekittools.com -homeko-world.xyz -homelab.reviews -homelanddiamondvillage.com -homelavka.ru -homelifeperks.com -homelistingsbackbay.com -homelivingusa.store -homelu.com -homeluxuryvillas.com -homemadecoloncleanse.in -homemail.gr.vu -homemailpro.com -homemaraiz.online -homemarkethome.com -homemarketing.ru -homemediaworld.com -homemortgagedirectlender.com -homemortgageloan-refinance.com -homemortgagenation.com -homenmoderno.life -homenspect.com -homeofficetelecom.com -homeopathicinjectiontherapy.com -homeopcost.com -homepels.ru -homeprofessional.org -homeprotectionagent.com -homepwner.com -homered.best -homeremediesforacne.com -homeremediesfortoenailfungus.net -homeremodelingmadeeasy.com -homeremodelingportal.com -homerentall.com -homerepairguy.org -homerezioktaya.com -homeroomtechnologies.com -homesaleswoodbury.com -homesandvillas.marriott -homesbynubiasanchez.com -homescreen.store -homesecuritytime.com -homesecuritytv.org -homesforsalegrandjunciton.com -homesforsaleinwausau.com -homeshop.futbol -homesiite.com -homesinalamedacouty.com -homesrockwallgroup.com -homessearcher.com -homestay.ink -homesteadingchat.com -homesteadprivacy.com -homesweethomeinventory.com -homesweetporchswing.com -homeswipe.com -homeswizz.com -hometheate.com -hometownjourney.net -hometownliving.net -hometrendsdecor.xyz -homevia3.club -homevia4.club -homeworkonline24.ru -homeworkserver.com -homeyou.org -homeyrealestate.com -homgrouprealty.com -homienotes.com -hominghen.com -hominidviews.com -homk.zone -homlee.com -homlee.mygbiz.com -hommim.ru -homorcu.com -homosaosjy.online -homosaosjy.ru -homstel.website -homude.info -homusix.site -homycons.com -homyfootprint.com -homymail.ml -honater.ga -honater.gq -honda-brasil.club -honda-fit.club -hondaafushimaldives.com -hondaautomotivepart.com -hondahrv.club -hondamotors.best -hondamotors.email -hondamotors.fun -hondamotors.loan -hondamotors.rocks -hondamotors.xyz -hondapartsinc.com -hondasukha3.com -hondaunderground.com -hondenstore.com -honduraskkt51802.cf -honduraskkt51802.ga -honduraskkt51802.ml -honduraskkt51802.tk -honestcto.com -honestwealthblog.com -honeybet90.org -honeydresses.com -honeydresses.net -honeyedoakforge.com -honeyfragilelodge.site -honeygain.house -honeygain.shop -honeygain.tech -honeymoonpackagesmauritius.com -honeynet.us -honeys.be -honeysareforever.com -hong-kee-glasnevin.com -hong-kong.guide -hongbao.app -hongfany.com -hongkee-glasnevin.com -hongkongpools.one -hongkongpools.uno -honglove.ml -hongpress.com -hongrishengmy.com -hongyun-yule.com -honid.live -honk.network -honkimailc.info -honkimailh.info -honkimailj.info -honl2isilcdyckg8.cf -honl2isilcdyckg8.ga -honl2isilcdyckg8.gq -honl2isilcdyckg8.ml -honl2isilcdyckg8.tk -honmme.com -honoluluhairsalons.com -honoluluquote.com -honor-8.com -honorably909ya.online -honoraryufa.email -honorcl.xyz -honorcli.xyz -honorquiet.com -honorskat.icu -honorsolidlucid.site -honorvenu.icu -honot1.co -honourbasedviolence.com -honourfcnj.space -honourslist.org -honst.best -hooahartspace.org -hoodet.ru -hoodlehub.com -hoodsshop.live -hooglygoogly.com -hook-up1.com -hook-up2.com -hook2up2.com -hookah-love.ru -hookerbooker.site -hookerkillernels.com -hooli.me -hoomdesign.xyz -hoonle.com -hooork.com -hoopaholicscamps.com -hoopaholicsclothing.com -hoopwell.com -hoosiereliteheat.com -hoosuu.com -hooters.org -hootspad.eu -hootspaddepadua.eu -hootttbbbtt.club -hooverexpress.net -hoovering.com -hop-on-hop-off-agianapa.com -hop-on-hop-off-nicosia.com -hop2.xyz -hopbrook.net -hopeajans.com -hopeeyesa.info -hopefulservices.com -hopelcqcxmj.email -hopemail.biz -hopesweets.org -hopikoglu.club -hopo.email -hoponhopofflarnaca.com -hoponhopoffpafos.com -hopoverview.com -hoppinessdelivered.org -hoppumyu.website -hopqey.info -hopswitch.com -hopto.org -horacipolanco.biz -horanferguson.com -horas24news.host -horbahotel.online -horecalt.com -horecaplekreserveren.online -horitomo.xyz -horizonautocare.com -horizonremovalists.com -horizonx.host -hormannequine.com -hormuziki.ru -hornedmelon.com -hornet.ie -hornetsbestofthenest.com -hornsipe.ga -hornsipe.tk -horny-datings2.com -hornyalwary.top -hornybackpackers.com -hornyblog.com -horol.info -horopuna.com -horosho-spat.ru -horoshomne24.ru -horoskopde.com -horrible.best -horrorplaybook.com -horrorstars.net -horrxxzombi.online -horse.cd -horsebarninfo.com -horsebrai.press -horsebrow.email -horsefucker.org -horsepoops.info -horseracing-betting.net -horserashnesslumen.site -horserecords.net -horserecords.org -horsesportnetwork.com -horsesteengirls.com -horsestor.press -horstenegger.site -horswerifdig.xyz -horusmediahouse.com -horvathurtablahoz.ml -hos24.de -hosmebow.cf -hosmebow.ga -hosmebow.gq -hosmebow.ml -hosmebow.tk -hospels.top -hospitalingles.com -hospitalmedicareclaims.xyz -hospitalregistry.com -hospkerhy.cf -hospkerhy.ga -hospkerhy.ml -hospkerhy.tk -hospowho.cf -hospowho.ga -hospowho.ml -hospowho.tk -host-info.com -host-listings-online.website -host-play.ru -host15.ru -hostb.xyz -hostballball.com -hostbymax.com -hostcalls.com -hostchief.net -hostclick.website -hostcloudservers.com -hostconflict.online -hostdesign.com -hostedemail.org -hostedplayout.com -hostelam.ru -hostelland.ru -hostelschool.edu -hostely.biz -hostgatorgenie.com -hostguard.co.fi -hostguru.info -hostguru.top -hosthansa.com -hostilucve.site -hosting-romania.biz -hosting.cd -hosting.ipiurl.net -hosting4608537.az.pl -hostingandserver.com -hostingarif.me -hostingballball.com -hostingcape.com -hostingdating.info -hostingdomain.blog -hostingersfix.ru -hostingextrem.com -hostingitgreen.com -hostinglinuxperu.com -hostingninja.bid -hostingninja.men -hostingninja.top -hostingoptim.com -hostingpagessmallworld.info -hostingromania.biz -hostkisx.space -hostlaba.com -hostlabs.ru -hostload.com.br -hostmagento.com -hostmail.cc -hostmail.cyou -hostmailmonster.com -hostman.org -hostmaster.bid -hostmebro.com -hostmein.top -hostmijnwebshop.com -hostmonitor.net -hostnow.bid -hostnow.men -hostpapa.photo -hostpapa.pics -hostpapa.reviews -hostpapa.shop -hostpector.com -hosts-flx.website -hostseo1.hekko.pl -hostsign.com -hosttitan.net -hosttractor.com -hosur.info -hot-acc.ru -hot-blog2.site -hot-blog3.site -hot-corner-pizza-kebabs.com -hot-de-offers.info -hot-jc.com -hot-leads.pro -hot-mail.cf -hot-mail.ga -hot-mail.gq -hot-mail.ml -hot-mail.tk -hot14.info -hot4ksale.online -hotaasgrcil.com -hotail.com -hotakama.tk -hotamil.com -hotandcoldwaterworks.com -hotbet.website -hotbet.world -hotbio.asia -hotblogers.com -hotbox.com -hotbrandsonsales1.com -hotbsdsqda.club -hotcakeaudio.com -hotchomisk.icu -hotchristianlouboutinsalefr.com -hotcoffeeclub.com -hotcoldwaterworks.com -hotdogsbar.ru -hotel-opdensteinen.com -hotel-orbita.pl -hotel-salyut.ru -hotel-venue.com -hotel-zk.lviv.ua -hotel.upsilon.webmailious.top -hotel411today.xyz -hotel47design.xyz -hotelaster.fr -hotelblanchard.com -hotelbochum.de-info.eu -hotelbookingthailand.biz -hotelcinematic.com -hoteldajti.com -hotelduval.org -hotelenaviles.com -hotelescusco.com -hotelfinderz.com -hotelfocus.com.pl -hotellasource.cd -hotelmirandadodouro.com -hotelmotelmanagement.com -hotelnextmail.com -hoteloferty.pl -hoteloutdoor.com -hotelposadadelyaqui.com -hotelqq59.xyz -hotelrenaissance-bg.com -hotels-close-to-me.com -hotels-near-my-location.com -hotels365.ru -hotelsatparis.com -hotelsatudaipur.com -hotelsbest.com -hotelsdot.co -hotelstek.com -hotelurraoantioquia.com -hotelvet.com -hotelvozdvizhenskoe.ru -hotenergynews.info -hotenergynews.mobi -hotermail.org -hoters.org -hotesell.com -hotfaka.com -hotfiddleshop.com -hotfile24h.net -hotfooter.com -hotforexnews.biz -hotfoto.org -hotfsd.club -hothammergames.com -hotibex.cam -hotizledim.club -hotkarmenkarma.com -hotkornernewport.com -hotlinemail.tk -hotlook.com -hotlowcost.com -hotlunches.ga -hotma.com -hotmai.com -hotmaiils.xyz -hotmail-s.com -hotmail.biz -hotmail.co.com -hotmail.com.friskytaphouse.com -hotmail.com.hitechinfo.com -hotmail.com.plentyapps.com -hotmail.com.standeight.com -hotmail.commsn.com -hotmail.red -hotmail.work -hotmail4.com -hotmailboxlive.com -hotmailer.info -hotmailer3000.org -hotmailforever.com -hotmaill.com -hotmailpro.info -hotmailproduct.com -hotmails.com -hotmails.eu -hotmailse.com -hotmailspot.co.cc -hotmaisl.com -hotmal.com -hotmali.cn -hotmali.com -hotmanpariz.com -hotmao.live -hotmcail.com -hotmeal.com -hotmediamail.com -hotmessage.info -hotmial.com -hotmichaelkorsoutletca.ca -hotmil.com -hotmobilephoneoffers.com -hotmodel.nl -hotmulberrybags2uk.com -hotmzcil.com -hotnewthailand.online -hotofficemaxstoresale.net -hotoffmypress.info -hotonlinesalejerseys.com -hotpcompnet.ga -hotpcompnet.ml -hotpcompnet.tk -hotpennystockstowatchfor.com -hotpop.com -hotpradabagsoutlet.us -hotprice.co -hotproduct.icu -hotpush998.com -hotroactive.tk -hotrodglossary.com -hotrodsbydean.com -hotsale.com -hotsalesbracelets.info -hotsdwswgrcil.com -hotsdwwgrcil.com -hotsell.icu -hotselling.online -hotshoptoday.com -hotshotstockalerts.com -hotshotvr.com -hotsitews.icu -hotsnapbackcap.com -hotspotmails.com -hotspotmichigan.com -hotspots300.info -hotspotwi.com -hotspotzone.net -hotssarrafiipaaarsii.live -hotstorecoupononline.net -hotstyleus.com -hotsweetdeals.store -hottarrts.com -hottbbbttt.club -hottbett.xyz -hottienikki.com -hottkerio4.xyz -hottosale.com -hottrend.site -hotttbettt.xyz -hottyfling.com -hotun.xyz -hotwaterwatch.net -hotwhitecum.com -hotwwgrcil.com -houdeaa3.com -houjate.cf -houjate.ga -houjate.gq -houjate.ml -houlad.site -houndhq.com -houndscatterlurch.site -hour-biz.ru -hourflash.biz -hourglassinitiative.org -hourlymail.pw -hourmade.com -hous.craigslist.org -housat.com -house-clean.pro -house-farm.site -house-sauna.online -housebeautiful.se -housebuyerbureau.co.uk -housecampanion.com -housecentral.info -housechyzx.space -housecleaningguides.com -housedecorationideas.website -housefea.xyz -housefeas.xyz -housefordog.ru -household-go.ru -householdshop.futbol -householdshopping.org -houselfamily.info -houseline.com -housemail.ga -housenord99.de -houseofcamelot.us -houseofgreekyogurt.us -houseofgrizzly.pl -houseofqueued.com -houseofsynergysalon.com -houseofwi.com -houseremonts.ru -housesforcashuk.co.uk -housesh.press -housetas.email -housetechics.ru -housetrai.xyz -housewashingmaryland.xyz -housewifeporn.info -housewr.xyz -housewris.icu -housing.are.nom.co -houston-criminal-defense-lawyer.info -houston.marketing -houston.storage -houstonamazinggaragefloors.com -houstoncomputer.net -houstonembroideryservice.online -houstonethnicfoods.com -houstoninsurancems.com -houstonlawyerscriminallaw.com -houstonlocksmithpro.com -houstonocdprogram.com -houstonquote.com -houstonvideoandphoto.com -houtil.com -houyiyy.com -hovcu3.info -hoversullenmabel.site -hovr.link -how-much-is-car-insurance.com -how-to-offshore.com -how2dl.xyz -howardcountyshowerglass.com -howardqvzv.ru -howb.site -howbetnow.ru -howbigdata.com -howbird.com -howc.site -howdididothatagain.com -howdoyoumountain.com -howellcomputerrepair.com -howey.tech -howf.site -howg.site -howgetpokecoins.com -howi.site -howicandoit.com -howiknewhewastheone.com -howiknewshewastheone.com -howlpaw.top -howm.site -howmakeall.tk -howmuchall.org.ua -howmuchdowemake.com -howoldis1.club -howquery.com -howrppaysclosingcost.com -howt.site -howtall-is.com -howtd.xyz -howtinzr189muat0ad.cf -howtinzr189muat0ad.ga -howtinzr189muat0ad.gq -howtinzr189muat0ad.ml -howtinzr189muat0ad.tk -howtoalgebra.com -howtobook.site -howtobt.com -howtobuild.shop -howtobuyfollowers.co -howtocharmlady.ru -howtodesign.info -howtodraw2.com -howtoelope.com -howtofood.ru -howtogetmyboyfriendback.net -howtogetridof-acnescarsfast.org -howtogodown.com -howtokissvideos.com -howtoknow.us -howtolastlongerinbedinstantly.com -howtolearnplaygitar.info -howtolosefatfast.org -howtolosefatonthighs.tk -howtomake-jello-shots.com -howtomusicvideo.com -howtoranknumberone.com -howtoremovestretchmarksafterpregnancy.com -howtoruay.com -howtosellrivercruises.com -howtosmokeacigar.com -howtowoodcrafts.xyz -howzthatworkingforyou.com -hoxderpy.shop -hozi.site -hozuniversal24.ru -hp.laohost.net -hparsipay.com -hpc-edge.com -hpc.tw -hpfem.com -hpiinspectionservices.com -hpkgrimbsytakeaway.com -hpmembership.com -hpnknivesg.com -hpotter7.com -hprehf28r8dtn1i.cf -hprehf28r8dtn1i.ga -hprehf28r8dtn1i.gq -hprehf28r8dtn1i.ml -hprehf28r8dtn1i.tk -hps-grow-lights.net -hpsyw.info -hptxw.info -hpxn.net -hpxwhjzik.pl -hq-porner.net -hq22.net -hq565.com -hq569.com -hq676.com -hq7979.com -hqautoinsurance.com -hqcatbgr356z.ga -hqjzb9shnuk3k0u48.cf -hqjzb9shnuk3k0u48.ga -hqjzb9shnuk3k0u48.gq -hqjzb9shnuk3k0u48.ml -hqjzb9shnuk3k0u48.tk -hqlbdenz.site -hqltui.us -hqmu.net -hqnlpqal.shop -hqnmhr.com -hqnnmq.icu -hqsecmail.com -hqstone.xyz -hqur.email -hqv8grv8dxdkt1b.cf -hqv8grv8dxdkt1b.ga -hqv8grv8dxdkt1b.gq -hqv8grv8dxdkt1b.ml -hqv8grv8dxdkt1b.tk -hqypdokcv.pl -hqzx6.com -hr-bsg.ru -hr3xkssvn8ek1ex.xyz -hr7gsn.site -hraff.org -hrb67.cf -hrb67.ga -hrb67.gq -hrb67.ml -hrb67.tk -hrbfmd.us -hrbsg.ru -hrbuck.site -hrcpw.info -hrcub.ru -hrdc16.xyz -hreduaward.ru -href.re -hrexamcenter.com -hrgmgka.cf -hrgmgka.ga -hrgmgka.gq -hrgmgka.ml -hrgy12.com -hrjxf.com -hrkdw.info -hrl0bn.us -hrlamp.com -hrma4a4hhs5.gq -hrmicrowave.us -hrn3bt.us -hro30.com -hrof.net -hrommail.net -hroncolos.ru -hrongods.ru -hronhild.ru -hronjoy.ru -hronopoulos.com -hrose.com -hroundb.com -hrpfd.us -hrprw.info -hrrdka.us -hrsco.info -hrske8.us -hrsroute.com -hrtgr.cf -hrtgr.ga -hrtgr.gq -hrtgr.ml -hrtgr.tk -hrtgre4.cf -hrtgre4.ga -hrtgre4.gq -hrtgre4.ml -hrtgre4.tk -hrustalnye-shtory.ru -hruwcwooq.pl -hrvatski.cloud -hrwns.live -hrwrbi.info -hs.vc -hs11.info -hs12.info -hs123.ml -hs13.info -hs130.com -hsa-asle1.ru -hsafhky.cf -hsafhky.ga -hsafhky.tk -hsbc-us-com.xyz -hsbc.coms.hk -hsbr.net -hsc7uc.com -hscluw.com -hsdjyaw.ga -hsehfr.us -hserey.com -hsgszkqem.cf -hshed.org -hsjhjsjhbags.com -hsjjttr.cf -hsjjttr.ga -hsjjttr.tk -hskdae.com -hsls5guu0cv.cf -hsls5guu0cv.ga -hsls5guu0cv.gq -hsls5guu0cv.ml -hsls5guu0cv.tk -hsmty.com -hsnbz.site -hsnsw.info -hsoshow.com -hspcomplete.ru -hsseeds.com -hstermail.com -hsts-preload-test.xyz -hstutunsue7dd.ml -hstvq.us -hsudhjashku.xyz -hsvn.us -hsweetuni.website -hsykgv.shop -hsyl188.net -ht.cx -ht264.site -ht8wx03.com -htaae8jvikgd3imrphl.ga -htaae8jvikgd3imrphl.gq -htaae8jvikgd3imrphl.ml -htaae8jvikgd3imrphl.tk -htc-mozart.pl -htcsemail.com -htcvive.online -htdig.org -htenparlans.cf -htenparlans.gq -htenparlans.tk -htery.com -hteysy5yys66.cf -htfmw.info -htgamin.com -htglobalhealthcare.xyz -htmail.com -htmajv.info -html5recipes.com -html5repair.com -htndeglwdlm.pl -htngroup.com -htnhw.info -htnsu.com -htp8qq.com -hts4ci.us -htsfv.live -htsghtsd.shop -htstar.tk -http.e-abrakadabra.pl -httpboks.gq -httpdindon.ml -httpglobesbestgrill.com -httpimbox.gq -httplove.live -httpoutmail.cf -httpqwik.ga -httpsouq-dot.com -httpswigsgoldtouchstore.net -httpswwwjasongaophotography.com -httpta.com -httpvkporn.ru -httsmvk.com -httsmvkcom.ga -httsmvkcom.pw -httsmvkcom.tk -htttbt.online -httttmdtqusqututqp.ru -htwergbrvysqs.cf -htwergbrvysqs.ga -htwergbrvysqs.gq -htwergbrvysqs.ml -htwergbrvysqs.tk -htwern.com -htzmqucnm.info -hu388.com -hu4ht.com -hua-hin.directory -hua85.com -huachichi.info -huahin.directory -huajiachem.cn -huallo.site -huamicme.cf -huamicme.ga -huamicme.gq -huamicme.tk -huangboyu.com -huanggg.fun -huangniu8.com -huangniu8.online -huangouquan.com -huangpuxueyuan.net -huangyus.cn -huangzefan.xyz -huanhuayulept.com -huationgjk888.info -huaweimaik.ml -huaweimali.cn -huawsyi.ml -huawsyi.tk -huaxiayun.top -huaxintui.biz -hub-cafe-the-coombe.com -hub-pizzeria-takeaway.com -hub-spot.us -hubab.online -hubbu.online -hubeducacional.app -huberheightsapartments.com -hubgrubs.net -hubii-network.com -hubiopharm.ru -hubmail.info -hubopss.com -hubsoftly.com -hubspotmails.com -hubticks.com -hubtixs.com -hubwebsite.tk -huck.ml -huckbrry.com -huckepackel.com -hucknalltownfc.net -huclberry.com -hudakov.ru -hudatedi.xyz -huddiez.net -huddiez.org -huddmarme.cf -huddmarme.ga -huddmarme.gq -huddmarme.tk -hudra2webs.online -hudraruzxpnew4af.com -hudren.com -hudsonncdentists.com -hudsonvalleygreenlife.com -hudspethinn.com -huecar.com -huedbird.com -huerto.online -huetreasure.com -hugah.dev -hugbenefits.ga -hugemotorbikes.com -hugesale.in -huggybotforum.cf -hugmaew.com -hugmovo.com -hugoandborg.us -hugofairbanks.com -hugohost.pl -hugoscircuscitymuseum.org -hugowhiteleaf.com -hugs-linen.com -huihuangbeiye.com -huikao.online -huiledargane.com -huitrebjjh.space -huizely.com -huj.pl -hujert.tk -hujike.org -hukd.info -hukkmu.tk -hukmdy92apdht2f.cf -hukmdy92apdht2f.ga -hukmdy92apdht2f.gq -hukmdy92apdht2f.ml -hukmdy92apdht2f.tk -hulaboola.com -hulafa.info -hulalgea.online -hulapla.de -hulasen10.xyz -hulasen14.xyz -hulasen16.xyz -hulasen17.xyz -hulasen18.xyz -hulasen29.xyz -hulasen30.xyz -hulasen33.xyz -hulasen35.xyz -hulasen36.xyz -hulasen37.xyz -hulasen41.xyz -hulasen45.xyz -hulasen47.xyz -hulasen48.xyz -hulasen50.xyz -hulasen8.xyz -hulewn.com -hulibet80.com -hulksales.com -hull-escorts.com -hulpuitdebuurt.site -hulrtt.us -hulujams.org -huluwa.life -huluwa10.life -huluwa12.life -huluwa13.life -huluwa14.life -huluwa21.life -huluwa22.life -huluwa25.life -huluwa26.life -huluwa27.life -huluwa31.life -huluwa34.life -huluwa35.life -huluwa37.life -huluwa38.life -huluwa44.life -huluwa49.life -huluwa5.life -huluwa7.life -huluwa8.life -hum9n4a.org.pl -humac5.ru -humaility.com -humanadventure.com -humanandculture.com -humandaddy.com -humanecosmetics.net -humanessense.com -humanflashcards.com -humanimpacted.com -humanitycalls.org -humanityenterprise.asia -humanityenterprise.com -humanityenterprise.org -humanityenterprises.asia -humanityenterprises.com -humanlight.org -humanloop.xyz -humanone.org -humans-souls.ru -humanstudy.ru -humble.digital -humbleciviccenter.net -humgruffin.site -humidorai.com -humidorai.net -humidorai.org -humika.com -humkarega.com -hummarus24.biz -hummer-h3.ml -hummingbirdhealingoils.com -humn.ws.gy -humoram.xyz -humordaddy.ru -humordecolor.info -humorkne.com -humormoldingmangy.site -humorous-conclusion.com -humphfecsa.cf -humphfecsa.ga -humphfecsa.gq -humphfecsa.ml -humphfecsa.tk -humsc.org -hunchbuzz.net -hunchbuzz.org -hunchmilig.cf -hunchmilig.ga -hunchmilig.gq -hunchmilig.tk -hunck.live -hundemassage.de -hundredhills.net -hundredkit.com -hundsige.cf -hundsige.ga -hundsige.gq -hungarbuty.xyz -hungary-choco-late.club -hungaryhotels.info -hungly.xyz -hungnewemail276.cf -hungpackage.com -hungrybosstakeaway.com -hungryinportland.com -hungrymexicandublin.com -hungwandublin.com -hunnur.com -hunny1.com -hunnyberry.com -hunrap.usa.cc -hunredy.site -hunrtiace.club -huntarapp.com -huntclubindoors.com -huntdistantlamb.website -hunter-games.ru -hunterhouse.pl -huntersfishers.ru -huntersgreenhotel.com -huntervalleyconcretepumping.com -hunterwatts.com -huntfisheasy.com -huntfootandankleclinics.com -huntfootclinics.com -huntforyou.ru -huntingmastery.com -huntingtonbeachquote.com -huntpodiatricmedicine.com -huntpx.com -huntsvillerealestateagents.com -huo.media -huong-dan-blog.com -hup.xyz -hupdns.online -huracan95.ru -hurdaci.cf -hurdaci.ga -hureimbettmutteraufderstrasse.vision -hureimbettmutteraufderstrasse.works -hurify1.com -hurleys.com -hurom.life -hurooutlets.site -hurr.ru -hurramm.us -hurricanetooi.com -hurrijian.us -hurriyetseriilanmerkezi.xyz -hurstdevelopment.com -hurtigt.website -huseynovf.ru -hush.ai -hush.com -hushclouds.com -hushedhome.com -hushline.com -hushmail.cf -huskergaragedoorrepair.com -huskion.net -huskysteals.com -husseinight.com -hustlefitnessireland.com -hustler.africa -hustletussle.com -huston.edu -hustq7tbd6v2xov.cf -hustq7tbd6v2xov.ga -hustq7tbd6v2xov.gq -hustq7tbd6v2xov.ml -hustq7tbd6v2xov.tk -hutchankhonghcm.com -hutchings.org -hututoo.com -huuthi.website -huweimail.cn -huydeptrai.co.uk -huydgdyehj.xyz -huydjfihbds.xyz -huyendaitu.com -huytdgte.xyz -huyuhnsj36948.ml -huyuhnsj46849.tk -huyuhnsj77254.ml -huyuhnsj77254.tk -huyzmod.asia -huyzpro.uk -huyzvip.best -hv112.com -hv1slb.site -hv654.site -hv712.com -hvac5starclub.com -hvastudiesucces.nl -hvb-pay.com -hvba.us -hvgmgh.icu -hvh.pl -hvhcksxb.mil.pl -hvhgw.xyz -hvld.net -hvndrljdm.shop -hvnphp.com -hvosamolet.xyz -hvrn.email -hvs4hdtric4s6p3.xyz -hvtechnical.com -hvyji.us -hvzoi.com -hw-sec.com -hw-sec.net -hw01.xyz -hw85ys.us -hwa-rt.com -hwa.best -hwa7niu2il.com -hwa7niuil.com -hwapp9.com -hwbhw.info -hwdiscount.online -hwhabm.us -hwhealthsystem.com -hwiseroa.com -hwjt8.com -hwkaaa.besaba.com -hwkp.email -hwkvsvfwddeti.cf -hwkvsvfwddeti.ga -hwkvsvfwddeti.gq -hwkvsvfwddeti.ml -hwkvsvfwddeti.tk -hwmrs.us -hwomg.us -hwpawvgea.shop -hwrresidential.com -hwsdkrj4bviwzya.xyz -hwsec.com -hwsnw.info -hwsye.net -hwuifkidy.shop -hwwxry.site -hwxist3vgzky14fw2.cf -hwxist3vgzky14fw2.ga -hwxist3vgzky14fw2.gq -hwxist3vgzky14fw2.ml -hwxist3vgzky14fw2.tk -hwysobin.cf -hwysobin.ga -hwysobin.gq -hwysobin.tk -hx-emco.com -hx2.us -hx39i08gxvtxt6.cf -hx39i08gxvtxt6.ga -hx39i08gxvtxt6.gq -hx39i08gxvtxt6.ml -hx39i08gxvtxt6.tk -hx9kth.host -hxav1.com -hxav2.com -hxc7gj.us -hxck8inljlr.cf -hxck8inljlr.ga -hxck8inljlr.gq -hxck8inljlr.tk -hxcp990.com -hxd104.com -hxdfa5.info -hxdjswzzy.pl -hxhbnqhlwtbr.ga -hxhbnqhlwtbr.ml -hxhbnqhlwtbr.tk -hxisewksjskwkkww89101929.unaux.com -hxqmail.com -hxrt9w.us -hxsq.bet -hxsq.us -hxuvo2.online -hxvxxo1v8mfbt.cf -hxvxxo1v8mfbt.ga -hxvxxo1v8mfbt.gq -hxvxxo1v8mfbt.ml -hxvxxo1v8mfbt.tk -hxwlw.info -hxxww.info -hxzf.biz -hy1o87ww.xyz -hy2bc0a279f6esc.xyz -hy888.info -hyab.de -hyacinhmcw.space -hybrid.trade -hybride.nu -hybridhazards.info -hybridization963of.online -hybridmc.net -hycraft.ru -hycrafting.ru -hydcalo.cf -hydcalo.gq -hydibuva.site -hydra-hydra.online -hydra-meta.com -hydra-meta.net -hydra-onion-shop.xyz -hydra-unblock.com -hydra2.website -hydra2vvab.ru -hydra2w3b.biz -hydra2weed.com -hydra4dark.com -hydragrip.ru -hydramarketsnjmd.com -hydramarketsnjmd.online -hydramarketsnjmd.shop -hydrameta.com -hydrantsteel.club -hydrapro.ru -hydraruzxpnev4af.xyz -hydraruzxpnew4af-onion.ru -hydraruzxpnew4afxn--nion-k3acom.com -hydrasport.com -hydrasport.xyz -hydraulics360.ru -hydraza.com -hydrazwzll.ru -hydro-algerie.com -hydrochlorothiazide247.video -hydrogenic.site -hydrogenrichwaterstick.org -hydrolinepro.ru -hydrolinerus.ru -hydrolyzed220bk.online -hydronoodle.xyz -hydroslght.com -hydrostarghana.com -hydrostore.net -hydroxide-studio.com -hyds24cs.com -hydsw.info -hyecourtdot.cf -hyecourtdot.ga -hyfw.club -hyfw.xyz -hygenicbrushes.org -hygenicbrushes.us -hygge.camp -hyggerus.ru -hygienicbrush.us -hygvxr.us -hygxw.info -hyh07.space -hyhid.com -hyhisla.cf -hyhisla.ga -hyhisla.gq -hyhisla.ml -hyhisla.tk -hyhsale.top -hyip-monitor.xyz -hyip.market -hyipbook.com -hyipiran.ir -hyjumes.ru -hylja.net -hylja.tech -hyloceiypt.ru -hylwdlapp1.com -hyly.online -hymnologyhg.info -hymonitor.ru -hynds57.com -hynlw.info -hypbtt.xyz -hypearound.com -hypefreehealth.com -hypehound.com -hypeinteractive.org -hypeinteractive.us -hyper-tec.store -hyperactivist.info -hypercomplete.net -hyperemail.top -hyperfastnet.info -hypergram.pro -hyperile.xyz -hyperland.tools -hypermail.top -hypermailbox.com -hyperoleplay.tk -hyperpigmentationtreatment.eu -hyperportalvr.org -hyperreactive.best -hyperstealth.ru -hypertext.exchange -hypertranscend.org -hypertrend.ru -hyperx-cloud.online -hypha.fund -hypha.group -hyphemail.com -hypnoforsuccess.com -hypnosischangelife.com -hypnotic-storytelling.com -hypnotic-storytelling.net -hypnotizes894yn.online -hypo-kalkulacka.online -hypoadvisor.com -hypori.us -hypotekyonline.cz -hypowhal.ga -hypowhal.ml -hypowhal.tk -hypoxiuqch.space -hypoyo.xyz -hyqzvprb.site -hyra-buss-stockholm.se -hysaryop8.pl -hyservers.ru -hyt45763ff.cf -hyt45763ff.ga -hyt45763ff.gq -hyt45763ff.ml -hyt45763ff.tk -hytaleforums.net -hytalemonitor.ru -hytalemonitoring.ru -hytaleservers.net -hytaleservers.ru -hyteqwqs.com -hyticy.site -hytura.cf -hytura.ga -hytura.gq -hytura.ml -hytura.tk -hytwatches.fun -hyuhuv.info -hyukpi.com -hyundai-promo.site -hyundaiaritmakusadasi.xyz -hyv9nc.us -hyveephoto.com -hyvuokmhrtkucn5.cf -hyvuokmhrtkucn5.ga -hyvuokmhrtkucn5.gq -hyvuokmhrtkucn5.ml -hyxhw.info -hyxnw.info -hyyhh.com -hyyysde.com -hyze.site -hyzhsx.com -hz-business.net -hz2046.com -hz408.site -hz6m.com -hz7rfc.us -hz8816.com -hz8819.com -hzbdfyy.com -hzbp120.com -hzbtw.info -hzcn.cc -hzdpw.com -hzerm1.site -hzeyeis.com -hzflsz.us -hzjww.info -hzmjfy.com -hznth.com -hzqhjc.com -hzrxw.info -hztnbyy.com -hzue.email -hzx3mqob77fpeibxomc.cf -hzx3mqob77fpeibxomc.ga -hzx3mqob77fpeibxomc.ml -hzx3mqob77fpeibxomc.tk -hzxsy1.com -hzz90.xyz -hzz92.com -hzzcw.info -hzzg4a.best -i-3gk.cf -i-3gk.ga -i-3gk.gq -i-3gk.ml -i-alive.com -i-am-tiredofallthehype.com -i-booking.us -i-carpets.ru -i-class.org -i-ebookaz.com -i-emailbox.info -i-flipkart.com -i-gakamted.ru -i-grest.ru -i-heart.org -i-konkursy.pl -i-love-credit.ru -i-love-you-3000.net -i-lucky.xyz -i-m-qq.com -i-mirpodnogami.ru -i-phone.nut.cc -i-phones.shop -i-r-p.ru -i-robots.org -i-settlemydebt.com -i-shop-go.ru -i-slotv.site -i-sp.cf -i-sp.ga -i-sp.gq -i-sp.ml -i-sp.tk -i-speak-spoke-spoken.com -i-speak-spoke-spoken.info -i-speak-spoke-spoken.net -i-speak-spoke-spoken.org -i-taiwan.tv -i-tell-net2.ru -i-tell-net4.ru -i-trust.ru -i.bgsaddrmwn.me -i.e-tpc.online -i.iskba.com -i.istii.ro -i.klipp.su -i.polosburberry.com -i.ryanb.com -i.wawi.es -i.xcode.ro -i03hoaobufu3nzs.cf -i03hoaobufu3nzs.ga -i03hoaobufu3nzs.gq -i03hoaobufu3nzs.ml -i03hoaobufu3nzs.tk -i04mo.site -i054egtx083f8mb.xyz -i0fkmr.us -i11e5k1h6ch.cf -i11e5k1h6ch.ga -i11e5k1h6ch.gq -i11e5k1h6ch.ml -i11e5k1h6ch.tk -i128.xyz -i16my.site -i1775.com -i18nwiki.com -i1blr.us -i1dqp6.us -i1nlem.host -i1oaus.pl -i1uc44vhqhqpgqx.cf -i1uc44vhqhqpgqx.ga -i1uc44vhqhqpgqx.gq -i1uc44vhqhqpgqx.ml -i1uc44vhqhqpgqx.tk -i1xslq9jgp9b.ga -i1xslq9jgp9b.ml -i1xslq9jgp9b.tk -i201zzf8x.com -i22.site -i29rj.space -i2a9ni.site -i2pmail.org -i301.info -i35t0a5.com -i3pv1hrpnytow.cf -i3pv1hrpnytow.ga -i3pv1hrpnytow.gq -i3pv1hrpnytow.ml -i3pv1hrpnytow.tk -i3success.online -i47iq.com -i4cfuq.site -i4eoww.com -i4j0j3iz0.com -i4racpzge8.cf -i4racpzge8.ga -i4racpzge8.gq -i4racpzge8.ml -i4racpzge8.tk -i4unlock.com -i537244.cf -i537244.ga -i537244.ml -i54o8oiqdr.cf -i54o8oiqdr.ga -i54o8oiqdr.gq -i54o8oiqdr.ml -i54o8oiqdr.tk -i55du.com -i5n7p4.site -i5ocfa.online -i5pronay.top -i6.cloudns.cc -i6.cloudns.cx -i61qoiaet.pl -i66g2i2w.com -i6appears.com -i6t0n.icu -i73lp.com -i75rwe24vcdc.cf -i75rwe24vcdc.ga -i75rwe24vcdc.gq -i75rwe24vcdc.ml -i75rwe24vcdc.tk -i774uhrksolqvthjbr.cf -i774uhrksolqvthjbr.ga -i774uhrksolqvthjbr.gq -i774uhrksolqvthjbr.ml -i774uhrksolqvthjbr.tk -i7e2cf.us -i7fvgq.us -i7nv.com -i82323.com -i85uct.us -i88fj.space -i8e2lnq34xjg.cf -i8e2lnq34xjg.ga -i8e2lnq34xjg.gq -i8e2lnq34xjg.ml -i8e2lnq34xjg.tk -i8jvo.icu -i8tvebwrpgz.cf -i8tvebwrpgz.ga -i8tvebwrpgz.gq -i8tvebwrpgz.ml -i8tvebwrpgz.tk -i8xe.us -i9094.com -i91.info -i95pp.com -i9827.com -i9rkgm.us -i9startup.com -ia04fx.us -ia4stypglismiks.cf -ia4stypglismiks.ga -ia4stypglismiks.gq -ia4stypglismiks.ml -ia4stypglismiks.tk -iaca-aligner.com -iacapitalgroup.net -iacjpeoqdy.pl -iag1gu.us -iainsinclair.ru -iamail.com -iamamaker.shop -iamaproductmanager.com -iamasterfx.com -iamcholo.com -iamcoder.ru -iamconsciouis.com -iamdustmite.com -iamguide.ru -iamipl.icu -iamnicolas.com -iampalau.com -iamsasha.info -iamsyafiqah.com -iamusic.online -iamusic.ru -iamyoga.website -iancasinorat.ru -iandcannabis.com -iandi.ru -ianhydeassociates.com -ianisthe.best -ianjenkins.net -ianqm.live -iansdonatellos.com -ianstacubey.site -ianstapadu.site -ianwookim.org -ianz.pro -iaoss.com -iapermisul.ro -iapneocon2019bengaluru.com -iaptkapkl53.tk -iassafety.com -iastabettingsnupp.xyz -iat6.icu -iatarget.com -iatcoaching.com -iattach.gq -iauhscqw.site -iautostabilbetsnup.xyz -iawgendchilddetention.org -iaynqjcrz.pl -iazhy.com -ib0ixy.site -ib48.xyz -ib49.xyz -ib4f.com -ib50.xyz -ib55.xyz -ib57.xyz -ib58.xyz -ib5dy8b0tip3dd4qb.cf -ib5dy8b0tip3dd4qb.ga -ib5dy8b0tip3dd4qb.gq -ib5dy8b0tip3dd4qb.ml -ib5dy8b0tip3dd4qb.tk -ib60.xyz -ib62.xyz -ib865.com -ibabni.gq -ibabni.ml -ibabni.tk -ibadan.site -ibanque.net -ibantool.com -ibaoju.com -ibaxdiqyauevzf9.cf -ibaxdiqyauevzf9.ga -ibaxdiqyauevzf9.gq -ibaxdiqyauevzf9.ml -ibaxdiqyauevzf9.tk -ibazpixrxhjjeae.xyz -ibeeking.com -ibel-resource.com -ibenat.cf -ibenat.ga -ibenat.gq -ibenat.ml -ibenat.tk -ibericadesentupimentos.com -ibericaesgotos.com -ibet01.club -ibetatest.com -ibetkiukiu.com -ibexiran.net -ibibo.com -ibiic.com -ibitcoini.ru -ibiz-info.ru -ibiza-villas-spain.com -ibizaholidays.com -ibizapics.info -iblbildbyra.se -iblisqq.biz -iblplay.info -iblplay.org -ibm.coms.hk -ibmail.com -ibmmails.com -ibmpc.cf -ibmpc.ga -ibmpc.gq -ibmpc.ml -ibnisina.club -ibnuh.bz -ibondeplan.com -ibook.moe -ibookstore.co -ibqmanufz.shop -ibrahimuzun.xyz -ibreeding.ru -ibrilo.com -ibrnj.us -ibsats.com -ibstreatmentcenters.com -ibsura.cf -ibsura.ga -ibsura.gq -ibsura.ml -ibsura.tk -ibsvxa.info -ibsyahoo.com -ibt7tv8tv7.cf -ibt7tv8tv7.ga -ibt7tv8tv7.gq -ibt7tv8tv7.ml -ibt7tv8tv7.tk -ibuydayton.net -ibuydaytonhomes.com -ibuydaytonhouses.com -ibuydaytonproperties.com -ibuydaytonrealestate.com -ibuyjp.org -ibuyprinters.com -ibuytnproperty4cash.com -ibvoh.live -ibyhrlc08fokf5f.xyz -ibypebbles.com -ic-interiors.com -ic-u.club -ic046.site -icaarntuj.ml -icafs.org -icaimiao.xyz -icaisen.xyz -icaisui.xyz -icaiying.xyz -icakurien.se -icanav.net -icanfatbike.com -icantab.com -icantbelieveineedtoexplainthisshit.com -icantbelieveitsnotflash.com -icao.cd -icao6.us -icaoglossary.com -icar-air.com -icardatabase.com -icaruslegend.com -icashsurveys.com -icasinogroup.net -icasinogroup.org -icasinos.ru -icbcc.org -icbls.org -icc-alliance.org -icccd.org -iccima.biz -iccmail.men -iccmail.ml -icdn.ooo -icdoggud.xyz -ice-rulet.ru -ice444.com -iceburgsf.com -icecapsoftserve.com -icecold.shop -icecreamyjt.email -icedmilk.com -icefilmz.org -icefishingnetwork.com -icefuitltd.online -icegbrow.cf -icegbrow.ga -icegbrow.gq -icegbrow.ml -icegbrow.tk -icehousesupply.com -iceland-is-ace.com -icelandic-horses.online -icemail.club -icemovie.link -icenakrub.club -icerink.tech -icerion.site -iceseries.com -icetmail.ga -icetyznetwork.xyz -icfbe.org -icfgwn.site -icfriend.com -icfu.mooo.com -icgrlb.info -icgs.de -ichatz.ga -ichbinvollcool.de -ichecksdqd.com -ichehol.ru -ichet.ru -ichibata.online -ichichich.faith -ichigo.me -ichoochoochooseyou.com -ichwilldichhaltmalsorichtig.vision -iciarcosmeticos.com -icinki.cf -icinki.ga -icinki.ml -icinki.tk -icj3e.us -icjmc.org -ick0h.site -ickx.de -icleantrans.site -iclim52.ru -icloud.cd -icloud.do -icloudbusiness.net -icloudsendfirefox.online -icmo.org -icmocozsm.pl -icmp.best -icnbet.website -icnopuvdi.shop -icntogel.net -icntoto.net -ico-decenturion.ru -icoachbranding.com -icoconf.ru -icode.best -icodeltd.com -icodepromo.com -icogneato.co -icon.foundation -icon256.info -icon256.tk -iconda.site -iconedit.info -iconfile.info -iconflooring.net -iconicgoal.com -iconscoins.ru -iconsultant.me -icontactreviews.com -iconze.com -icopoc.cf -icopoc.ga -icopoc.gq -icopoc.tk -icotir.cf -icotir.ga -icotir.gq -icotir.ml -icotir.tk -icotoken.bid -icotype.info -icpst.org -icraftx.net -icralti.cf -icralti.ga -icralti.gq -icralti.ml -icralti.tk -icrr2011symp.pl -icrrr.org -icslecture.com -icsmcoop.com -icsofcolorado.com -ict-4u.com -ict0crp6ocptyrplcr.cf -ict0crp6ocptyrplcr.ga -ict0crp6ocptyrplcr.gq -ict0crp6ocptyrplcr.ml -ict0crp6ocptyrplcr.tk -ictaintict.date -ictenlider.org -ictnew2024.com -ictnew2027.com -ictuber.info -icunet.icu -icx.in -icx.ro -icys2011.ru -id-ins.com -id-nn.ru -id-pubgm.shop -id.pl -id10tproof.com -id4sqj.us -id7ak.com -idaccept.com -idaccept.net -idaccept.org -idacsplus.com -idaho.tours -idaholands.info -idahoquote.com -idahovirtual.tours -idahowine.tours -idat.buzz -idat.site -idawsitute.icu -idcbill.com -idcclub88.com -iddaairan.website -iddaalabayi.com -iddoescul.cf -iddoescul.ga -idea-mail.com -idea-mail.net -idea.bothtook.com -ideacentre.info -ideadesignlab.net -ideageneration.info -ideagmjzs.pl -ideal-art.ru -ideal-gk.ru -idealencounters.com -idealhomeautomation.com -idealinversion.com -idealizes254vc.online -idealmedev.com -idealniy.site -idealweightsystemsct.com -ideamarts.net -ideareality.com -idearia.org -ideaservers.com -ideasplace.ru -ideati.site -idecanta.xyz -idecyt.org -ideeinrete.info -ideenbuero.de -ideenx.site -ideepmind.pw -ideer.msk.ru -ideer.pro -ideiadenegocio.com -iden65.space -idenced.xyz -identifyandclassify.com -identifyandclassify.org -identity-confermation.com -identityinnovation.com -ideondo.xyz -ideozz.xyz -idepoker88.net -idesigncg.com -idevy.site -idfrvg.icu -idgreat.online -idgreat.ru -idhalfpricedlistings.com -idhie.com -idi-k-mechte.ru -idid11.com -idid36.com -idid42.com -idid55.com -ididv.com -idigo.org -idihgabo.cf -idihgabo.gq -idiochron.com -idiolx.stream -idiomm.xyz -idiondo.xyz -idjbet.net -idjplay.site -idkartu.org -idkcoin.com -idktoken.com -idkytoxz.shop -idl99.net -idlefriends.com -idlestormlaze.website -idmail.com -idmail.me -idn.vn -idnaco.cf -idnaco.ga -idnaco.gq -idnaco.ml -idnaco.tk -idnbet.net -idnbet118.net -idnkil.cf -idnkil.ga -idnkil.gq -idnkil.ml -idnolive.info -idnolive.net -idnolive.org -idnplay.live -idnpoker.link -idnpoker33.club -idnpoker33.info -idobrestrony.pl -idocuments.website -idointucson.com -idolsystems.info -idomail.com -idomain24.pl -idonea.ru -idotem.cf -idotem.ga -idotem.gq -idotem.ml -idpoker888.com -idpoker888.org -idpoker99.org -idpro.life -idpzynat.shop -idqzfl.site -idrcapsa.com -idreams.club -idrehabcenters.com -idricco.club -idrifla.com -idroid.site -idroidsoft.com -idrotherapyreview.net -idrplay.info -idsearth.com -idsee.app -idsee.org -idsitusjudi.com -idsly.xyz -idspin.net -idstc.org -idt8wwaohfiru7.cf -idt8wwaohfiru7.ga -idt8wwaohfiru7.gq -idt8wwaohfiru7.ml -idt8wwaohfiru7.tk -idtv.site -iduitype.info -idush.ru -idustres.online -idustres.site -idvdclubs.com -idvisitor.online -idx4.com -idxfinity.com -idxue.com -idxxi.video -idy1314.com -idyllwild.vacations -idyro.com -ie6isolder.com -ie6isolderthan.com -ie6isolderthanyourgrandpa.com -ie9myl.us -ieaaql.net -ieasymail.net -ieasystabilitybetsnupp20.xyz -ieatspam.eu -ieatspam.info -ieatsugar.com -ieattach.ml -iecrater.com -iecusa.net -iedindon.ml -ieeeves.org -iefbcieuf.cf -iefbcieuf.ml -iefbcieuf.tk -ieh-mail.de -ieit9sgwshbuvq9a.cf -ieit9sgwshbuvq9a.ga -ieit9sgwshbuvq9a.gq -ieit9sgwshbuvq9a.ml -ieit9sgwshbuvq9a.tk -iekzzu.com -iel.pw -iemitel.gq -iemm.ru -iencm.com -ienergize.com -iennfdd.com -iens7a.us -ieo.group -ieorace.com -iephonam.cf -ieremiasfounttas.gr -iersetaal.com -ieryweuyeqio.tk -ierywoeiwura.tk -ies76uhwpfly.cf -ies76uhwpfly.ga -ies76uhwpfly.gq -ies76uhwpfly.ml -ies76uhwpfly.tk -iesande.shop -iesco.info -iestabbetting.xyz -iestiest.shop -iestynwilliams.net -ietaietr.shop -iethiopian.com -iew88.com -iexchange.hk -iexh1ybpbly8ky.cf -iexh1ybpbly8ky.ga -iexh1ybpbly8ky.gq -iexh1ybpbly8ky.ml -iexh1ybpbly8ky.tk -if-store.ru -if.money -if58.cf -if58.ga -if58.gq -if58.ml -if58.tk -if914.site -ifa2s5.info -ifaiqis.com -ifans-electronics.ru -ifans-headphone.ru -ifans-i9s-tws.ru -ifans-mad.ru -ifansforyou.ru -ifansim.ru -ifastmail.pl -ifastme.com -ifavorsprt.com -ifcelite.com -ifchuck.com -ifd8tclgtg.cf -ifd8tclgtg.ga -ifd8tclgtg.gq -ifd8tclgtg.ml -ifd8tclgtg.tk -ifdacm4g.com -ifdef.net -ifdvd.com -ifewalter.com -iffuci.com -iffymedia.com -ificifin.shop -ifightexpress.com -ifinific.shop -ifixticket.com -iflix4kmovie.us -ifly.cf -ifmail.com -ifneick22qpbft.cf -ifneick22qpbft.ga -ifneick22qpbft.gq -ifneick22qpbft.ml -ifneick22qpbft.tk -ifoam.ru -ifobu.science -ifomail.com -ifoodpe19.ml -ifozgz.us -ifpodef.cf -ifpodef.ga -ifpodef.tk -ifrance.site -ifs-eventum.com -iftmmbd.org -iftzjlhlb.shop -ifunnelhack.com -ifuphere.com -ifusehosting.com -ifwda.co.cc -ifwzhzyr.shop -ifxif.com -ig.kiwi -ig.support -ig200.xyz -ig22bet.online -ig230g.online -ig44bet.online -ig7bet.online -ig9kxv6omkmxsnw6rd.cf -ig9kxv6omkmxsnw6rd.ga -ig9kxv6omkmxsnw6rd.gq -ig9kxv6omkmxsnw6rd.ml -ig9kxv6omkmxsnw6rd.tk -igalax.com -igalery.com -igallopfree.org -igame22.com -igamerandomly.buzz -igbet69.online -igbet80.site -igbobook.com -igcl5axr9t7eduxkwm.cf -igcl5axr9t7eduxkwm.gq -igcl5axr9t7eduxkwm.ml -igcl5axr9t7eduxkwm.tk -igcwellness.us -igdirfm.xyz -igdirinkucukmucitleri.com -igdirrezidans.com -ige.es -igeco.ru -igeeksoccer.org -igelonline.de -igendigits.com -igenservices.com -igg.biz -iggqnporwjz9k33o.ga -iggqnporwjz9k33o.ml -ighestpro.com -ighjbhdf890fg.cf -igimail.com -igintang.ga -iginting.cf -igiveu.win -igluanalytics.com -igmail.com -igmoo.org -ignametag.ru -ignite5.consulting -igniter.education -igniter200.com -igniteweb.net -igniteyourourney.com -ignoremail.com -ignutvie.tk -igogog.ru -igogok.ru -igoodmail.pl -igostabbet.xyz -igpicnic.site -igqtrustee.com -igra-na-stavke.site -igrai999.ru -igrat-v-igrovie-avtomati.com -igraysega.com -igros.fun -igrovieavtomati.org -igrovoi-avtomat.ru -igrovoiavtomatonline.ru -igrovoyvulcan.ru -igryn.ru -igui.buzz -igullo.site -iguofeng.com -igvaku.cf -igvaku.ga -igvaku.gq -igvaku.ml -igvaku.tk -igvault.club -igvevo.com -igwnsiojm.pl -igxppre7xeqgp3.cf -igxppre7xeqgp3.ga -igxppre7xeqgp3.gq -igxppre7xeqgp3.ml -igxppre7xeqgp3.tk -ih0hl1.us -ih2vvamet4sqoph.cf -ih2vvamet4sqoph.ga -ih2vvamet4sqoph.gq -ih2vvamet4sqoph.ml -ih2vvamet4sqoph.tk -ihae.ru -ihairbeauty.us -ihalematik.net -ihamail.com -ihankbaby.com -ihappytime.com -ihateyoualot.info -ihaveapersonalproblem.com -ihavedildo.tk -ihavenomouthandimustspeak.com -ihawk360.com -ihaxyour.info -ihazspam.ca -ihbkvw.us -ihckz1.site -ihdbt.com -iheartspam.org -ihehmail.com -ihelpubet.com -ihhjomblo.online -ihi.today -ihiministries.info -ihlopbrfm.shop -ihm6rq.com -ihmi-iiml.com -ihocmail.com -ihomail.com -ihonregre.online -ihowto.site -ihquex.com -ihsspa.com -ihtkr1.site -ihuqgr.icu -ihwyum.icu -ii062.com -ii47.com -ii57822.com -ii7665.com -iibat.site -iicdn.com -iidiscounts.com -iidiscounts.org -iidzlfals.pl -iifinder.com -iigmail.com -iigo.de -iigtzic3kesgq8c8.cf -iigtzic3kesgq8c8.ga -iigtzic3kesgq8c8.gq -iigtzic3kesgq8c8.ml -iigtzic3kesgq8c8.tk -iihonfqwg.pl -iii062.com -iii813.com -iiifans.ru -iiko-rf.ru -iikr.net -iill.cf -iillii.org -iillusionist.com -iimagesquotes.icu -iimbox.cf -iimepn.com -iimlmanfest.com -iindoxx1.info -iinlp.com -iipl.de -iiq7kv.us -iiron.us -iis.buzz -iitdmefoq9z6vswzzua.cf -iitdmefoq9z6vswzzua.ga -iitdmefoq9z6vswzzua.gq -iitdmefoq9z6vswzzua.ml -iitdmefoq9z6vswzzua.tk -iiunited.pl -iiv55.com -iivro.com -iivs8l.com -iiwumail.com -ij1iat.us -ij3j.com -ij3zvea4ctirtmr2.cf -ij3zvea4ctirtmr2.ga -ij3zvea4ctirtmr2.gq -ij3zvea4ctirtmr2.ml -ij3zvea4ctirtmr2.tk -ijdigital.com -ijerj.co.cc -ijgk9e.us -ijgur.com -ijmafjas.com -ijmail.com -ijmxty3.atm.pl -ijptm.com -ijsdiofjsaqweq.ru -ijustshared.com -ik7gzqu2gved2g5wr.cf -ik7gzqu2gved2g5wr.ga -ik7gzqu2gved2g5wr.gq -ik7gzqu2gved2g5wr.ml -ik7gzqu2gved2g5wr.tk -ik7i6iai1z8u7ok.xyz -ika4l.site -ikandewa.club -ikapia.com -ikaren-suma.ru -ikaza.info -ikbenspamvrij.nl -ikbrip.tokyo -ike3a.com -ikebal.com -ikelsik.cf -ikelsik.ga -ikelsik.gq -ikelsik.ml -ikgfrr.site -ikhyebajv.pl -iki.kr -ikilemmusic.xyz -ikimaru.com -ikimuslimngaji.com -ikingbin.com -ikke.win -ikkjacket.com -ikkookvoormijnhond.com -iklankeren.pw -iklf0.info -ikmail.com -ikmov.com -ikoplak.cf -ikoplak.ga -ikoplak.gq -ikoplak.ml -ikproekt-nn.ru -ikpz6l.pl -ikra-ufa.ru -ikreep.com -ikrijplanner.online -ikrinka-msk.ru -iktxn.com -iku.us -ikuaifang.com -ikursovik.ru -ikuvdvkp.shop -ikuzus.cf -ikuzus.ga -ikuzus.gq -ikuzus.ml -ikuzus.tk -ikvy.email -il.edu.pl -ila.ong -ilamseo.com -ilandingvw.com -ilank6.xyz -ilank7.xyz -ilank8.xyz -ilario.me -ilashed.com -ilavana.com -ilayda.cf -ilayda.ga -ilayda.tk -ilazero.com -ilbe2.cf -ilbien-paul.com -ilboard.r-e.kr -ilbombardone.com -ilcapriccio-erding.de -ilcommunication.com -ilderthers.ml -ilderthers.tk -ildivo-restaurant.com -ildz.com -ilebaz.ga -ilebaz.ml -ilebaz.tk -iledyxuu.shop -ilele.site -ilencorporationsap.com -ileqmail.com -ilh0c2.us -ilhalfpricelisting.com -ilhamhomedecorations.com -ilhandemirok.com -ilico.info -iligansocial.info -ilikespam.com -iliketndnl.com -ilikeyoustore.org -ilinkelink.com -ilinkelink.org -iliterallywrotethebook.com -iliterallywrotethebookon.com -iliterallywrotethebookonit.com -iliterallywrotethebookonitseries.com -ilivemusic.ru -iljkd.xyz -iljmail.com -iljmmz.us -ilkecza.site -ilkecza.website -ilkeczahub.club -illbeit.com -illegalize262mp.online -illinoiscentralcollege.us -illinoisfamilylawyers.xyz -illinoisuncontesteddivorce.com -illioni.shop -illistnoise.com -illnessans.ru -illumbolighus.com -illuminatedmotion.com -illuminatist.best -ilmadia.site -ilmale.it -ilmiogenerico.it -ilmiogottino.com -ilmuanmuda.com -ilnostrogrossograssomatrimoniomolisano.com -ilobi.info -iloplr.com -ilopopolp.com -ilove-apnastyle.com -ilove-vegout.com -ilove.com -ilove39.ru -ilovecorgistoo.com -iloveearthtunes.com -ilovefood-dublin.com -iloveiandex.ru -ilovemail.fr -ilovemyniggers.club -ilovemywaterbed.com -ilovepeachcobbler.com -ilovespam.com -ilpersonalepa.org -ilqlaq.download -ilrem.com -ils.net -ilsalento.info -ilschool-wiesbaden.com -ilselyhouse.co -ilsongzung.com -ilt.ctu.edu.gr -ilthomar.cf -ilthomar.ga -ilthomar.gq -ilthomar.tk -iltmail.com -iluck68.com -ilucki.net -ilumail.com -ilusila.com -ilvain.com -ilvplay.com -ilxm21.info -ilyasozkurt.online -ilyseiris.xyz -ilzida-ismagilovna.ru -im-irsyad.tech -im148.site -im4ever.com -imaanpharmacy.com -imabandgeek.com -imacpro.ml -imadgraphics.com -image0226.online -image24.de -image360windowfilm.com -imagebed.com -imageboard4free.com -imagedew.com -imagehostfile.eu -imagehouse.online -images-spectrumbrands.com -images.novodigs.com -imagesincornwall.com -imageskinston.com -imageslow.buzz -imagictech.com -imaginegiants.com -imagineinvestments.com -imaginethelearning.com -imagiscape.photography -imagiscape.photos -imagiscape.pictures -imagiscape.us -imail.seomail.eu -imail1.net -imail5.net -imail8.net -imailbox.org -imailcloud.net -imaild.com -imaillink.com -imailpro.net -imails.info -imailt.com -imailto.net -imailweb.top -imailzone.ml -imajl.pl -imakeitrain.com -imallas.com -imamail1928.cf -imamsrabbis.org -imankul.com -imanual.site -imasoft.com -imasser.info -imatrixglassdoor-reviews.com -imatrixglassdoor-reviews.net -imatrixglassdoor-reviews.org -imatrixglassdoor.info -imatrixglassdoor.org -imatrixglassdoorreviews.com -imatrixglassdoorreviews.info -imatrixglassdoorreviews.org -imavex.ru -imaxinterior.com -imbc.xyz -imbizu.com -imboondelivery.com -imbrave.site -imbricate.xyz -imbrogmptq.space -imbuyba.cf -imbuyba.ga -imbuyba.gq -imbuyba.ml -imbuyba.tk -imcyork.net -imd044u68tcc4.cf -imd044u68tcc4.ga -imd044u68tcc4.gq -imd044u68tcc4.ml -imd044u68tcc4.tk -imdbplus.com -imdesigns.me -imdisappointed.com -imdo.ru -imecjunior.org -imedgers.com -imeil.tk -imelhouse.co -imerchantinternational.com -imeretinskiyhotel.ru -imerys-indonesia.com -imesturantistic.com -imetocl.shop -imexcointernational.com -imfilons.ru -imfriendly.org -imfsiteamenities.com -imgcdn.us -imgjar.com -imgof.com -imgrpost.xyz -imgsources.com -imgupload.biz -imgv.de -imh.life -imhtcut.xyz -imhungry.xyz -imillions.se -iminform.ru -iminimalm.com -imismarketplace.info -imismarketplace.net -imitationchicken.com -imitationmilk.com -imitrex.info -imjetpack.xyz -imknurbel.cf -imknurbel.ga -imknurbel.gq -imknurbel.ml -imknurbel.tk -imlearners.net -imlivecgo.site -imlpipchat.com -immacrealty.org -immaculateused.com -immaginando.info -immail.com -immail.ml -immatetmnn.space -immediategoodness.org -immense.org -immensematurity.club -immenso-studios.com -immigratic.icu -immigrationcompliance.online -immigrationfriendmail.com -imminni.cf -imminni.gq -imminni.tk -immo-gerance.info -immobili.lease -immobiliareligure.com -immobilizes279ls.online -immortalcraft.ru -immortalizes459px.online -immortalizes61hr.online -immry.ru -immuneformulation.com -immunityone.com -immutable.chat -imnarbi.cf -imnarbi.gq -imnarbi.tk -imobiliare.blog -imoforpc.us -imolop.website -imontalika.icu -imos.site -imosowka.pl -imoutel.cf -imoutel.ga -imoutel.gq -imoutel.tk -imouto-h.xyz -imouto.pro -imovie.link -imozmail.com -impactamericanow.org -impactcommunications.us -impactonhumanity.com -impactquiz.com -impactsib.ru -impactspeaks.com -impactstat.com -impactstats.com -impactwriter.com -impairmentevaluator.com -impastore.co -impeccable.mobi -imperfectron.com -imperia-school.ru -imperia-vega.ru -imperialdynastytakeaway.com -imperialwesternbeercompany.com -imperiumoffice.com -imperiya1.ru -imperrone.com -impetus-limitless.net -impi.com.mx -impian4d2.online -implantway.ru -implausibility.info -implosblog.ru -imponfigh.cf -imponfigh.ga -imponfigh.gq -imponfigh.ml -imponfigh.tk -imported.livefyre.com -importfirst.ru -impos.melbourne -impos.mobi -imposition.online -imposter52.website -impostore.co -impotens.pp.ua -impotscoursparticuliers.com -impotsgouv.pro -impotsgouvfr.pro -impotsgouvliens.com -impregn.best -impregnator.com -impresapuliziesea.com -impressedhub.com -impressiontours.asia -impressiveelectricalandsolar.com -impressivepennystocks.com -imprezowy-dj.pl -imprimart-dz.com -imprintsoftware.com -imprisonedwithisis.com -imprisonedwithisis.org -imprisonedwithisisbook.net -imprisonedwithisisbook.org -impromptuanalytics.com -improvedtt.com -improvementshop.futbol -improveweb.store -improvolympic.com -impulse-dance.ru -impulse2019.com -impulse2019.online -impulse2019.ru -impulster.pw -imrekoglukoleksiyon.online -imrekoglukoleksiyon.xyz -imrekoglutesbih.online -imrekoglutesbih.xyz -imrew.com -ims-institute-turkey.org -ims-turkey.org -ims-turkiye.com -imsave.com -imsbet.net -imsend.ru -imsoboring.com -imsoeasy.com -imsoportland.com -imstations.com -imsuhyang.com -imswadesi.org -imtinc.us -imtolkvx.shop -imtoz.ru -imtravin.tk -imul.info -imunlocked.com -imunofan.online -imvalg.us -imw88.com -imy69.space -imysa.org -imzabet58.com -in-a-multiplesclerosistreatmentsok.live -in-a-tu-new-carok.live -in-dating.org -in-fund.ru -in-iraq.com -in-ntech.com -in-poker.net -in-poker.org -in-spinalmuscularatrophies-ok.live -in-their-words.com -in-tu-new-car-ok.live -in-tu-new-cars-ok.live -in.mailsac.com -in.vipmail.in -in2nation.online -in4mail.net -in5minutes.net -in888b.org -in888b.site -inaby.com -inacup.cf -inacup.ga -inacup.gq -inacup.ml -inacup.tk -inakmain.info -inalamd.com -inalgeria.net -inamail.com -inandout-christchurch.com -inaodongphuc.org -inapplicable.org -inappmail.com -inaptcertainmarry.site -inarbicloud.ru -inarbicrm.ru -inarbisoft.ru -inaremar.eu -inasoc.ga -inasoc.gq -inasoc.ml -inasoc.tk -inasvab.cf -inasvab.ga -inasvab.tk -inautopilot.com -inaytedodet.tk -inbaca.com -inbax.ga -inbax.ml -inbax.tk -inbet.online -inbet.pro -inbet24.net -inbet24.pro -inbet4.com -inbetz.cafe -inbidato.ddns.net -inbilling.be -inboedelverzekeringkiezen.online -inbound.plus -inbov03.com -inbox-me.top -inbox-my-articles.com -inbox.comx.cf -inbox.loseyourip.com -inbox.si -inbox2.info -inbox888.com -inboxalias.com -inboxbear.com -inboxclean.com -inboxclean.org -inboxdesign.me -inboxed.im -inboxed.pw -inboxhub.net -inboxkitten.com -inboxmail.world -inboxmails.co -inboxmails.net -inboxproxy.com -inboxstore.me -inbrisbane.org -incaltaminteoriginala.info -incaltamintesport.info -incandescent.nyc -incapacitacion.info -incapcont.cf -incapcont.ga -incapcont.gq -incarnal.pl -incasecontact.com -incastavto.ru -incbridge.net -incentibuy.net -incestry.co.uk -incirpasta.com -inclusionchecklist.com -inclusioncheckup.com -inclusiveprogress.com -incnve.com -incognitomail.com -incognitomail.net -incognitomail.org -incolnsbolton.com -incomecountry.com -incomego.ru -incomei.shop -incompletenike.org -incomservice.com -inconsopka.icu -incorian.ru -incowy.cf -incowy.gq -incowy.ml -incowy.tk -incq.com -increase5f.com -increaseed.top -increasefollower.com -increater.ru -incredibility.info -incredibleproduct.ru -incrediemail.com -incubatank.asia -incubator-hostel.com -incubatorhostel.com -incup.com -ind.st -indal23.com -indbc.com -indcomm.net -indebted.uk -indeecsam.ru -indeedasessment.com -indeedasessments.com -indeedassesment.com -indeedlebeans.com -indeedtime.us -indefathe.xyz -indelc.pw -independentclaims.info -independentimmigration.ru -independentmusiclovers.gq -independentsucks.twilightparadox.com -independentvpn.com -indepthadventures.com -indepthfishing.com -indepthicefishing.com -index-x.net -indexbuffalomaths.site -indexzero.dev -indhann.com -indi-nedv.ru -india.whiskey.thefreemail.top -india2in.com -indiacentral.in -indiadiabetesresearch.com -indiagatenutgrove.com -indiagatetakeaway.com -indiamoney.club -indian-moon-takeaway.com -indianaadoption.org -indianafootgolf.com -indianaibm.com -indianapolishairsalons.com -indianapolismortgagerates.website -indianapolisnailsalons.com -indianapolisprobateservices.com -indianarchitect.com -indianartifactbooks.com -indiancurrymonasterevin.com -indianecommerce.com -indianengineer.com -indianfracsand.com -indiannannies.net -indianoceantakeawayclonmel.com -indianpalacetakeaway.com -indianrestauranttakeaway.com -indianroyaletakeaway.com -indiansignature.com -indianxxxbabes.mobi -indianxxxbhabhi.mobi -indiaunrestmauve.site -indicting.com -indidn.xyz -indieartists.org -indieclad.com -indiego.pw -indiforce.com -indigitous.app -indigo-makiyaz.ru -indigomail.info -indir.pet -indir.red -indiratakeaway.com -indirect.ws -indirim-haberi.club -indirim-haberi.live -indirim-haberi.site -indirimfirsatlar.xyz -indirimhaberi.club -indirimmvakti.site -indirimsepetin.xyz -indirindir.net -indisgi.cf -indisgi.gq -indisgi.ml -indiszu.ga -indiszu.ml -individualbased.com -individuative.best -indmarsa.com -indo228.ninja -indo32.net -indo365.biz -indo365.ninja -indo7poker.info -indobet.com -indobet365-link.com -indobetklik.club -indobetklik.xyz -indobetting.net -indobola.us -indobola.win -indobola118.com -indobola118.info -indobola228.net -indobookies99.com -indocarib.com -indochinadestination.com -indochinadream.com -indochinahighlights.com -indofamily.tk -indofilm.store -indoforum.biz -indogame.site -indokitchen-rush.com -indokomshop.com -indoliga7.org -indoliqueur.com -indomacau88.com -indomaed.pw -indomina.cf -indomovie21.me -indonesianherbalmedicine.com -indongphuc.org -indopaito.com -indoplay303.com -indopvp.info -indosearch.shop -indoserver.stream -indosingo2.com -indosukses.press -indotagram.com -indototo.club -indototo.space -indotrader.net -indowps.com -indoxx1.live -indoxxitv.org -indozoom.net -indrawcrxa.space -indtredust.com -indulgewindow.buzz -indumento.club -indus.tech -industrialbrush.us -industrialbrushmanufacturer.us -industrialelectronica.com -industrialhome.club -industrialshapeandform.com -industryix0.com -industryleaks.com -indx-it-ggl-2.site -indx-it-ggl-3.site -indxsgpm.com -ineec.net -ineeddoshfast.co.uk -ineedmoney.com -inegollu.xyz -inegolmodef.xyz -inelav.gq -inelav.ml -inemaling.com -inend.xyz -inertiafm.ru -inet4.info -inetworkcards.com -inewx.com -inexpensivejerseyofferd.com -inf39.ru -infalco.com -infalled.com -infamisslife.com -infaqu.com -inferno.cd -inferno4.pl -infession.xyz -infest.org -inficti.ga -inficti.gq -inficti.ml -inficti.tk -infideles.nu -infilddrilemail.com -infiltraitor.com -infimedia.net -infinite-rpg.com -infinitearcher.com -infinitecoin.org -infiniteleaks.xyz -infinitevistaspress.org -infiniti-africa.club -infinitiypoker.com -infinitomail.com -infinitum.icu -infinityangelhealingpathways.com -infinitybooksjapan.org -infinityclasses.info -infinityclippingpath.com -infitter.ru -inflammationpills.info -inflatableslife.com -inflatob.cf -inflatob.ga -inflatob.gq -inflatob.ml -inflatob.tk -inflavma.cf -inflavma.ga -inflavma.gq -inflavma.ml -inflavma.tk -inflechgyc.space -inflight.media -infloo.biz -infloo.global -infloo.info -influ.network -influencersconf.com -influenceya.com -influencialladies.com -influenciapositiva.org -influenza.video -info-24tv.site -info-action-sale.space -info-b1ogs.fun -info-b1ogs.space -info-bl0gs.fun -info-blogs.fun -info-blogs.space -info-csam.site -info-easy-med.ru -info-fast-group.ru -info-klub.ru -info-radio.ml -info-tamtam.xyz -info-vendor-buy.ru -info.tm -info6.ru -info7.eus -infoaa316.xyz -infoaa317.xyz -infoaa318.xyz -infoaccount-team.news -infoads.pro -infoalgers.info -infob10gs.fun -infob10gs.space -infob1ogs.space -infobiz9.ru -infobl0gs.space -infoblanco.com -infoblogs.space -infobolamania.com -infobooks.site -infobsae.com -infobumer.ru -infochange.icu -infochartsdeal.info -infochinesenyc.info -infoclew.com -infocom.zp.ua -infocoronavirus.net -infodatas.online -infodaunemas.online -infoembaixada.com -infoembassy.com -infoentertogel.com -infofinacancas.com -infogeneral.com -infogerbangemas.xyz -infografiek.com -infografisdikbudbkt.tech -infoislamweb.com -infokehilangan.com -infolaju.com -infomail.club -infomal.ru -infomarketer.ru -infomaster.website -infomedia.ga -infomedic.icu -infomotocyclefairings.com -infomum.xyz -infomusicshop.net -infoneatwork.xyz -infonegocios.mobi -infonewmobupdate.com -infonewusermob.xyz -infopaas.com -infoportalchik.ru -infoprediksi4d.com -infoprice.tech -infoqq24jam.xyz -inform-factory-new.info -inform-mart-deal.ru -inform-new-like.ru -inform-store-active.ru -inform-union-undersell.ru -inform6-ru.xyz -informacion-residencias.com -informacion-residencias.info -informaldatingsites.com -informasikuyuk.com -informaticacaserta.com -information-account.net -information-blog.xyz -information1.biz -informatus.org -informatykbiurowy.pl -informecomomanejo.com -informed.online -informedexistence.com -informeeldaten.online -informeeldaten.space -informeledating.online -informeledatingsites.online -informeledatingsites.space -informoteur.com -inforuinfo.ru -infosdating.info -infosnet24.info -infospeak.com -infossbusiness.com -infostructor.net -infosubs.cf -infosubs.gq -infosubs.ml -infosubs.tk -infosuppository.com -infotech.info -infotoursnyc.info -infotriage.com -infouoso.com -infowaka.site -infowars.tel -infowars.video -infowellsauthmob.com -infowellsnewmob.com -infowordpress.info -infoworldcenter.info -infralium.xyz -infrastructuredevelopglobal.website -infrazoom.com -inftail.com -infusit.com -ingabhagwandin.xyz -ingamesport.store -ingcoachepursesoutletusaaonline.com -ingcoce.com -ingday.com -ingenieriasinfronteras.com -ingenieriasinfronteras.net -ingenierojorgerico.com -ingeniousturnaround.info -ingersollfootclinic.com -inggo.org -ingilterevize.eu -ingles90dias.space -ingleswinner.net -ingltech.com -ingradmap.ru -ingreso-no-voluntario.com -ingridyrodrigo.com -ingrok.win -ingrup.site -ingrup.xyz -ingyour.shop -inhalfpricedlisting.com -inhalfpricelisting.com -inhello.com -inhen.live -inhomeideas.com -inhomelife.ru -inibuatkhoirul.cf -inibuatsgb.cf -inibuatsgb.ga -inibuatsgb.gq -inibuatsgb.ml -inibuatsgb.tk -inidewa.org -iniheat.cf -iniheat.ga -iniheat.ml -iniheat.tk -inikehere.com -inikita.online -inillab.cf -inillab.gq -inillab.ml -inimprot.cf -inimprot.ga -inimprot.tk -ininghai.com -iniprm.com -inipunyakitasemua.cf -inipunyakitasemua.ga -inipunyakitasemua.gq -inipunyakitasemua.ml -inipunyakitasemua.tk -inisin.gq -inisin.tk -initialcommit.net -initium.click -initium.money -injecties.info -injhcohjq.shop -inji4voqbbmr.cf -inji4voqbbmr.ga -inji4voqbbmr.gq -inji4voqbbmr.ml -inji4voqbbmr.tk -injir.top -injuredbabydefense.com -injuryattorneyct.net -injuryattorneymckinney.com -injuryhelpnewyork.net -injurylawyersfortworth.com -inkbete90.net -inkbete90.org -inkgraphicspublicidad.com -inklend.com -inkmapper.com -inknowation.org -inkonre.cf -inkonre.ga -inkonre.gq -inkonre.ml -inkonre.tk -inlacourt.cf -inlacourt.ga -inlacourt.gq -inlacourt.ml -inlacourt.tk -inlandharmonychorus.org -inlaunceston.org -inlek.icu -inlepe.cf -inlepe.ga -inlepe.gq -inlepe.ml -inlepe.tk -inletentreatmaven.site -inlhw.us -inliafa.cf -inliafa.gq -inliafa.tk -inlightwellness.org -inlove69.com -inlovevk.net -inmail.com -inmail.site -inmail.xyz -inmail3.com -inmail92.com -inmailing.com -inmailwetrust.com -inmarsat.cd -inmebi.cf -inmebi.ga -inmebi.ml -inmebi.tk -inmisli.cf -inmisli.ga -inmisli.gq -inmisli.ml -inmisli.tk -inmobis.ru -inmoldtech.ru -inmolilla.biz -inmonorsk.com -inmotively.com -inmouncela.xyz -inmugood.cf -inmugood.ga -inmugood.gq -inmugood.ml -inmugood.tk -inmyd.ru -inmynetwork.cf -inmynetwork.ga -inmynetwork.gq -inmynetwork.ml -inmynetwork.tk -innatepm.com -innatepractice.net -innatesoft.com -innatesoft.net -inndalens.info -innercharmyogaretreats.com -innercirclemasterminds.com -innersystem.com -inni-com.pl -inno.bet -inno.tel -innoberg.com -innobet.online -innorack.net -innovap.ru -innovateccc.org -innovationbay.info -innovationira.com -innovativebacksolutions.com -innove.solutions -innoventonline.com -innstakit.site -innsystems.net -innway.biz -innya.com -inoakley.com -inoctei.cf -inoctei.ga -inoctei.tk -inoculukdb.site -inoflis.cf -inoflis.ga -inoflis.gq -inoflis.ml -inoflis.tk -inonezia-nedv.ru -inosat-turkey.com -inosatglobal.com -inoton-shop.ru -inoue3.com -inousdi.cf -inousdi.gq -inousdi.ml -inousdi.tk -inoutfiga.xyz -inoutmail.de -inoutmail.eu -inoutmail.info -inoutmail.net -inovecomvc.com -inovha.com -inower.cf -inower.ml -inower.tk -inowex.cf -inowex.gq -inowex.ml -inox.org.pl -inpa-parket.com -inpdfmanuales.xyz -inpirar.com -inplay.online -inplay.red -inplay888.org -inpoker3.net -inpoker3.org -inpos.ru -inpowiki.xyz -inppares.org.pe -inprisonwithisis.com -inprisonwithisis.net -inprisonwithisis.org -inprisonwithisisbook.org -inpursuitofyourcure.org -inpwa.com -inqmuseum.org -inquiringmind.net -inr681.us -inrahimmd.ga -inrahimmd.ml -inrahimmd.tk -inrak.site -inregistrare-domeniu.biz -inrelations.ru -inretail.ru -inrim.cf -inrim.ga -inrim.gq -inrim.ml -inrim.tk -inriverretreats.com -ins.ooo -insajderi.info -insane.nq.pl -insaneservers.com -insanity-workoutdvds.info -insanitydvdonline.info -insanityworkout13dvd.us -insanityworkout65.us -insanityworkoutcheap.us -insanityworkoutdvds.us -insanityworkoutinstores.us -insanlarunutur.com -insanumingeniumhomebrew.com -inscriptio.in -insectsupreme.icu -insellage.de -insender.info -insertswork.com -insertwhat.space -insgit.com -inshapeactive.ru -insidebizness.ru -insidecondoclub.com -insidegpus.com -insidejobboard.org -insidepcgames.com -insiderbundles.com -insidershq.info -insiemeperilpane.it -insigno.com -insipe.store -insipitnal.ru -insischildpank.xyz -insitedesignlab.com -insmathi.ml -insmathi.tk -insomniade.org.ua -insorg-mail.info -inspace-media.ru -inspira.space -inspiracjatwoja.pl -inspiraretirement.com -inspiraseniorliving.com -inspirationzuhause.me -inspiredbyspire.com -inspiredking.com -inspiremelabs.agency -inspirepulse.com -inspiringfreedom.health -insta-ground.ru -insta-info.xyz -insta-local-datings5.com -insta.monster -instabackdrop.com -instabf.ru -instaboothsnj.com -instacfg.ru -instaclever.ru -instaconfigurator.ru -instacrush.online -instad4you.info -instadp.site -instaflowers.shop -instaforex-info.ru -instafuel.space -instafun.men -instagopedia.com -instagramfood.com -instagrammableproperties.com -instagrampoker.info -instagrampoker.org -instaindofree.com -instakipcihilesi.com -instaku-media.com -instalacioneswifigj.tk -instalked.xyz -installerflas54321.xyz -installerflas65786.xyz -installing.page -instamaniya.ru -instamarks.ru -instambox.com -instamed.live -instamotornepal.com -instance-email.com -instant-job.com -instant-mail.de -instantblingmail.info -instantbummer.com -instantcriminalrecordsearch.com -instantdirectionsfinder.com -instantemailaddress.com -instantgiveaway.xyz -instantinsurancequote.co.uk -instantloans960.co.uk -instantlove.pl -instantlyemail.com -instantmail.de -instantmail.fr -instantmailaddress.com -instantnewsnow.icu -instantonlinepayday.co.uk -instantwebsites.online -instaopros.xyz -instapay.one -instapay.store -instapedia.online -instapixel.com -instaprice.co -instatienda.com -instator.ru -instatransact.org -instatrendz.xyz -instaview.org -instdownload.com -instealthmode.com -insti.shop -instinctive.marketing -instincts.online -instituciodualxarxes.org -instituteforadvancedlearning.club -institutionalizing492be.online -instmyapp.ru -instpic.club -instrutex.ru -instyle.buzz -instylerreviews.info -insulationforattics.com -insulium.com -insulize.xyz -insumixturkiye.xyz -insurance-co-op.com -insurance-company-service.com -insurance-network.us -insurance-networks.us -insuranceair.com -insurancealign.com -insurancecoverageguaranteed.com -insuranceforvendors.com -insurancenew.org -insuranceone.xyz -insuranceonlinequotes.info -insuranceopportunitymail.net -insurancereport.today -insuranceschoolofflorida.com -insurancing.ru -insurelocker.com -insureloveones.com -insurgency.stream -insurgood.com -insursystem.ru -insydney.org -insyghtssecurity.com -int-cash.ru -intadvert.com -intainfo.com -intamo.cf -intamo.gq -intamo.ml -intamo.tk -intandtel.com -intaso.cf -intaso.ga -intaso.gq -intaso.ml -intaso.tk -intblrnet.ru -intdesign.edu -intecorn.cf -intecorn.gq -intecorn.tk -integratedtelehealthsolutions.info -integrateinc.com -integrately.info -integrately.net -integrately.org -integrationiseasy.com -integreen.com -integris.dev -integritygaragedoors.info -integritypay4u.com -integrityseminar.com -integritysupport.net -intel.coms.hk -intelea.shop -intellectualhouse.ru -intellectualization195pv.online -intellectualization225oc.online -intelli.solutions -intelligence.zone -intelligencehome.ru -intelligentp.com -intellisport.net -intelliwebconcepts.com -intempmail.com -intentions-advantage.site -intentions-network.site -intentionsadvantage.site -intentsalumina.icu -intenttodestroy.org -inter-dohod.ru -interacialsimulator.com -interactio.ch -interactionpolls.com -interactiveeconomicsleak.com -interans.ru -interaxfxl.space -interbahisguncel.xyz -interbumbifi.monster -interceptor.waw.pl -interceptorfordogs.info -interceramicvpsx.com -intercom1000.ru -interent.xyz -interesno-prosto.ru -interesnoe-v-seti.ru -interesting-rus.ru -interex.money -interexchange.ong -interfxmalenow.com -interieur.cd -interiordesignideas.website -interiorimages.in -interiorin.ru -interkross.biz -interkross.org -interlockhose.com -intermax.com -intermedia-ag-limited.com -internal-resources.org -internalized343wm.online -internat-sosnovka.ru -internati.cd -international.mba -internationalconsulting.space -internationalcosplayday.com -internationale.su -internationallanguageschool.com -internationalseo-org.numisdaddy.com -internationalstudents.xyz -internationalyellow.com -internet-basvuru.site -internet-kampanyalar.online -internet-kampanyalari.online -internet-marketing-companies.com -internet-rabota-088.ru -internet-search-machine.com -internet-v-astrakhani.ru -internet-v-belgorode.ru -internet-v-kaluge.ru -internet-v-krasnodare.ru -internet-v-kurske.ru -internet-v-moskve.ru -internet-v-orle.ru -internet-v-rostove.ru -internet-v-ryazani.ru -internet-v-samare.ru -internet-v-saratove.ru -internet-v-shakhti.ru -internet-v-stavropole.ru -internet-v-tule.ru -internet-v-volgograde.ru -internet-w-domu.tk -internet.krd -internet2.dev -internetaa317.xyz -internetaboneligi.online -internetallure.com -internetbiz63.ru -internetchoice.blog -internetedirne.xyz -internetelearning.com -internetenthusiast.me -interneterzincan.xyz -internetidentityworkshop.org -internetineczanesi.xyz -internetionalbusiness.host -internetionalbusiness.site -internetmail.cf -internetmail.ga -internetmail.gq -internetmail.ml -internetmail.tk -internetmarketingcasts.com -internetmarketingperth.com -internetnetzwerk.de -internetnovine.info -internetoftags.com -internetqq59.xyz -internetreputationconsultant.com -internetsatinal.xyz -internetscanningproject.net -internetsuperpac.com -internetthings.partners -internettrends.us -internetwplusie.pl -interocoffee.com -interosis.club -interpath.com -interpreterai.com -interruption-exact.xyz -intersectinglives.net -interserver.ga -intersquared.com -interstatestashexpress.com -interstats.org -intersteller.com -interstock24.com -intertur-live.ru -interval-bistro-tallaght.com -intervesp-wood.ru -interviewingthecrisis.org -interviewproductprofits.com -intervuse.me -interwin1.net -interwin99.info -interwin99.org -intexcamp.ru -intheatrepops.xyz -inthebox.pw -inthelocalfortwortharea.com -inthenhuahanoi.com -intigame.net -intim-dreams.ru -intim-moskva.org -intim-plays.ru -intim-ryazan.ru -intimacly.com -intimeontime.info -intimiadyj.space -intimm-shop.ru -intimpremium.ru -intimred.com -intimstories.com -intiona.com -intisari.news -intoa.bar -intocommunity.org -intomail.bid -intomail.info -intort.best -intothenight1243.com -intowncm.com -intowncm.net -intrees.org -intrepidhome.tech -intrepidwarriorehab.net -intrepidwarriorrehab.net -intrested12.uk -intrinor.cf -intrinor.ga -intrinor.gq -intrinor.ml -intrinor.tk -introgeoda.com -intrusted.net -intrxi6ti6f0w1fm3.cf -intrxi6ti6f0w1fm3.ga -intrxi6ti6f0w1fm3.gq -intrxi6ti6f0w1fm3.ml -intrxi6ti6f0w1fm3.tk -intsv.net -intuicaofeminino.com -intuitivemachine.com -intuthewoo.com.my -intutivemachine.com -intutivemachines.com -intyre.ru -inuitartsurvey.com -inulpkr.info -inunglove.cf -inunmomento.com -inupab.cf -inupab.tk -inuvu.com -inv.moe -invadarecords.com -invalidmarket.ru -invelmex.com -inventiondevfund.com -inventory2web.com -invergroveheightsapartments.com -invert.us -invertrax.com -invesdaba.com -investart.hk -investering-solenergi.dk -investfxlearning.com -investhaiti.org -investigator.cloud -investinemsworkers.com -investingtur.com -investinhaiti.org -investirparagarantir.com -investithub.com -investmentbeaver.com -investoday.info -investor.xyz -investore.co -investovanie.plus -investpartners.win -investpress.ru -investrus.top -investsan.com -investsmartusa.net -investtips.club -investxxtrade.ru -inveteracies.best -invict.ml -invictawatch.net -invictus.games -invictuswebportalservices.com -inviersu.com -invincible-wear.com -invisiblevalid.buzz -invistechitsupport.com -inviteevbzw.email -invitepal.com -invizair.com -invoicing.page -involvementpractice.com -invopeo.org -invql.com -invsetpo.cf -invsetpo.tk -invtribe01.xyz -invtribe02.xyz -invtribe03.xyz -invtribe05.xyz -inw88.com -inwebmail.com -inwebtm.com -inweightlossinfoesok.live -inwmail.net -inxto.net -inzh-s.ru -inzicht-uden.online -inzni.com -io-scan.info -io-wallet-lite.info -ioa-s.icu -iob.capital -iobar.club -iobcasino.com -iocb.info -iocloud.su -iodic.agency -iodizc3krahzsn.cf -iodizc3krahzsn.ga -iodizc3krahzsn.gq -iodizc3krahzsn.ml -iodizc3krahzsn.tk -iodog.com -ioemail.win -ioetr.us -iof09.space -ioio.eu -iolkjk.cf -iolkjk.ga -iolkjk.gq -iolkjk.ml -iolokdi.ga -iolokdi.ml -iomail.com -ion-craft.ru -ionando.shop -ionazara.co.cc -ionb1ect2iark1ae1.cf -ionb1ect2iark1ae1.ga -ionb1ect2iark1ae1.gq -ionb1ect2iark1ae1.ml -ionb1ect2iark1ae1.tk -ionbet.com -ionemail.net -ionianpharm.com -ionionweb.com -ionot.xyz -ionqq.org -ionutadriansegarceanu.com -ionwiont.shop -iopgox.ru -ioplo.com -iopmail.com -iopmail.net -iorbita.ru -iordan-nedv.ru -iordanii.ru -iosglyphs.com -iosil.info -iostwatch.com -iosvzq.site -iot.aiphone.eu.org -iot.dmtc.dev -iot.ptcu.dev -iot.vuforia.us -iotaph.ink -iotatheta.wollomail.top -iothome.dev -iothomesmart.com -iothx.club -iotjf.club -iotrh5667.cf -iotrh5667.ga -iotrh5667.gq -iotrh5667.ml -iotu.creo.site -iotu.de.vipqq.eu.org -iotu.hstu.eu.org -iotu.nctu.me -iotuitive.org -ioubuy.com -ioucai.xyz -iouiwoerw32.info -iouy67cgfss.cf -iouy67cgfss.ga -iouy67cgfss.gq -iouy67cgfss.ml -iouy67cgfss.tk -iov.fund -iowachevron.com -iowacityrealestateagents.com -iowaexxon.com -iowagstatic.com -iowametaldesigns.net -iowanvidia.com -iowd.info -ioxmail.net -iozak.com -iozduc.site -ip.webkrasotka.com -ip23xr.ru -ip3qc6qs2.pl -ip4.pp.ua -ip4k.me -ip6.li -ip6.pp.ua -ip7.win -ip91vpn.com -ipad2preis.de -ipad3.co -ipad3.net -ipad3release.com -ipaddlez.info -ipadhd3.co -ipadrecovery.net -ipadzzz.com -ipan.info -ipapa.ooo -iparkandcharge.com -iparladmin.com -iparts96.ru -ipasvnzm.shop -ipay-i.club -ipay-m.club -ipb789.xyz -ipdeer.com -ipdf.site -ipekecza.com -ipeksnfktx31617.ml -ipelectronics.com -ipemail.win -ipervo.site -ipffans.xyz -ipfs.ru -ipgenerals.com -ipharchenko.ru -iphd.online -iphone-ipad-mac.xyz -iphone.best -iphone.gb.net -iphoneaccount.com -iphoneandroids.com -iphonebestapp.com -iphonees.info -iphonemail.cf -iphonemail.ga -iphonemail.gq -iphonemail.tk -iphonemsk.com -iphoneonandroid.com -iphonerestor.ru -iphonex-shop.ru -ipictures.xyz -ipimail.com -ipindetail.com -ipinfo.pub -ipingfan.com -ipiranga.dynu.com -ipiurl.net -ipizza24.ru -ipjckpsv.pl -ipl-schedule.com -iplaytv.org -ipledger.ru -ipledges.info -iplusplusmail.com -iplusworld.com -ipmaximus.ru -ipmonline.online -ipnfo.com -ipo-network.com -ipochta.gq -ipoczta.waw.pl -ipod-app-reviews.com -ipofnmicrocap.com -ipofnnewissues.com -ipofnvideo.com -ipolopol.com -ipoo.org -ipoodle.ru -iposmobi.xyz -iposta.ml -ipostpix.com -ipoteka-samara.info -ippandansei.tk -ippexmail.pw -ipractice.ch -iprayercenter.net -ipriva.com -ipriva.info -ipriva.net -iprocom.ru -iproject.tech -iprzbgsl.shop -ipsur.org -ipsuztqg.shop -ipswell.com -iptv.ski -iptvcccam.club -iptvmaximum.online -iptvpro.host -iptvservice.info -ipuccidresses.com -ipukta.site -ipuyallup.com -ipv4xchange.net -ipv6-addr.com -ipv6-addr.info -ipv6-addr.org -ipv6-addr.pro -ipv6-addr.us -ipv6-addr.zone -ipveez.us -ipvideo63.ru -ipw88.com -ipyzqshop.com -iq1.live -iq2kq5bfdw2a6.cf -iq2kq5bfdw2a6.ga -iq2kq5bfdw2a6.gq -iq2kq5bfdw2a6.ml -iq888.life -iq8apc.us -iq8xt.info -iqamail.com -iqazmail.com -iqbaby-toys.ru -iqcfpcrdahtqrx7d.cf -iqcfpcrdahtqrx7d.ga -iqcfpcrdahtqrx7d.gq -iqcfpcrdahtqrx7d.ml -iqcfpcrdahtqrx7d.tk -iqclubs.com -iqemail.win -iqhlenvz.site -iqjiuo.us -iqjty8.us -iqmail.com -iqos33.com -iqpay-kr.site -iqprofx.biz -iqsfu65qbbkrioew.cf -iqsfu65qbbkrioew.ga -iqsfu65qbbkrioew.gq -iqsfu65qbbkrioew.ml -iqsfu65qbbkrioew.tk -iqumail.com -iqvydg.us -iqxyziua.shop -iqzzfdids.pl -ir-pow.com -ir101.net -ir35contractorguide.com -ir4.tech -irabops.com -iraess.pw -irahardwarewallet.com -irainvestmentadviser.com -irainvestmentadvisers.com -irainvestmentadvisors.com -irajaan.dev -iral.de -irallc.net -iran-nedv.ru -iran1music.com -iranartan.com -iranbounce.com -iranbourse.co -iranecar.org -iranfilms.email -iranforums.shop -iranfsc.org -iranian-export.com -iraniom.club -iranluxury.tours -iranmarket.info -iranpb2.com -iranpb9.com -iranromabet.net -iransdjkk47627.ml -iransdjkk47627.tk -iranvolvos.info -iraq-nedv.ru -iraqbazar.com -iraqbazzar.com -iraqi-iod.net -iraqoilreport.net -iraud.info -iravag.com -irc.so -ircbox.xyz -ircdrive.com -ircdrive.net -irdnd.live -ireccomend.ru -irecired.shop -iredirect.info -irefurbishlcd.com -iremail.com -iremel.cf -iremel.gq -iren24.ru -irfnd1.site -irhfa.com -iridesgame.com -iridium-mlm.org -irimfi.cf -irimfi.gq -irimfi.ml -irimfi.tk -irina-kusik.ru -irinaeunbebescump.com -irish2me.com -irishcert.com -irishharppub.com -irishspringrealty.com -iriver-grant.ru -irknim.ru -irland-nedv.ru -irlandia4d.info -irlmail.com -irmail.com -irmoycos.cf -irmoycos.ga -irmoycos.gq -irmoycos.ml -irmoycos.tk -irnipich.site -irobotlab.ru -iroid.com -iroirorussia.ru -irolli.se -irolpccc.com -irolpo.com -iron-dd.ru -iron-pet.com -iron-pets.com -ironcompany.net -ironfire.net -ironflagcompany.org -irongalaxy.com -ironhorsegamessite.club -ironiebehindert.de -ironmall.org -ironmantriathlons.net -ironside.systems -ironsodiumlazy.website -ironsshop.live -ironwoodresearch.biz -irovonopo.com -irpanenjin.com -irper.com -irpishbini2.com -irpjg1.site -irqgbs.site -irr.kr -irreproductive.best -irsanalysis.com -irsguidelines.net -irssi.tv -irti.info -irtrade.org -irtranslate.net -irum6v.info -irussoturisto.ru -irvegasbet.com -irvineeldercare.com -irvinewebconsulting.com -irvingaccidentlawyers.com -irvingnailsalons.com -irvingpersonalinjuryattorney.com -irvingpersonalinjuryattorneys.com -irvingpersonalinjurylawyers.com -irwvsm.com -irxxz.live -irydoidy.pl -is-the-bestway.ru -is-zero.info -is.af -is35.com -isabe2017.com -isabellahunt.buzz -isabellasfund.com -isabelmarant-sneaker.us -isabelmarants-neakers.us -isabelmarantshoes.us -isabelmarantsneakerssonline.info -isabgolhusk.com -isac-hermes.com -isachermeskelly.com -isaclongchamp.com -isacmar.ga -isacmar.gq -isacmar.ml -isacmar.tk -isadiva.com -isaffshop.store -isaidmaybe.online -isaimini.app -isaiminida.org -isaiminii.buzz -isaiminii.host -isaiminiya.org -isamy.wodzislaw.pl -isaps.ru -isbetter20.xyz -isbgpsafe.com -isbjct4e.com -isblip.com -iscacorp.com -isccall.com -iscfrc.com -iscidayanismasi.org -iscover.press -isdaq.com -isdp.ong -ise4mqle13.o-r.kr -isecsystems.com -iseeprojects.com -isekaiplay.com -isellnow.com -isemail.com -isemmm.org -isen.pl -isensy.ru -iservis.ist -isf4e2tshuveu8vahhz.cf -isf4e2tshuveu8vahhz.ga -isf4e2tshuveu8vahhz.gq -isf4e2tshuveu8vahhz.ml -isf4e2tshuveu8vahhz.tk -isfahantourism.info -ishchi-tut.online -isherz.net -ishetalgedaan.site -ishi-tut.online -ishis.site -ishkinn.ru -ishockey.se -ishootlandscapes.com -ishootraw.net -ishop-go.ru -ishoppress.com -ishuhome.com -isi-group.ru -isi-tube.com -isilrecber.com -isimnumara.com -isistakeaway.com -isitrainingatmyhouse.com -isitright4you.com -isittheworldcup.info -isitts.club -isjer.icu -iskcondc.org -iskus-elki.ru -islam.igg.biz -islamicwisdomsummit.com -islamm.cf -islamm.gq -islandbreeze-holidays.com -islanderapp.com -islandholidays-maldives.com -islandhost.club -islandi-nedv.ru -islandkeysproperty.com -islandmc.net -islandpaycards.com -islandproperties.info -islandrisers.com -islesfoundation.com -isletmeoyunlari24.com -isletmeyorum.com -ismailgul.net -ismcentral.online -ismem.ru -ismyannuityadvisor.com -ismyconsultant.com -ismyfinancialadvisor.com -ismykek.xyz -ismyspecialist.com -isnapbet2020.xyz -isncwoqga.pl -isnipeit.net -isobelcarter.buzz -isocar.ru -isochor.site -isocials.online -isolationideas.info -isomnio.com -isophadal.xyz -isosq.com -isostamp.org -isot.se -isotac.site -isotretinoinacnenomore.net -isp.fun -ispartaligheyeti.xyz -ispartamutluapartlari.com -ispartaonuryurtlari.xyz -ispbd.xyz -ispeak-spoke-spoken.info -ispeak-spoke-spoken.net -ispeak-spoke-spoken.org -ispeshel.com -ispuntheweb.com -ispyco.ru -israel-international.de -israel-nedv.ru -israelibandages.ru -israelserver2.com -israelserver3.com -israelserver4.com -isrindustrialsafetyandrescue.com -issamartinez.com -issanda.com -issizkalmayalim.ga -issizkalmayalim.ml -issizkalmayalim.tk -isslab.ru -issthnu7p9rqzaew.cf -issthnu7p9rqzaew.ga -issthnu7p9rqzaew.gq -issthnu7p9rqzaew.ml -issthnu7p9rqzaew.tk -isstitap.cf -isstitap.gq -issuebless.us -issueca.icu -issuechas.xyz -issueenf.xyz -issuerat.xyz -issuerati.xyz -ist-genial.at -ist-genial.info -ist-genial.net -istabbettingsnapp.xyz -istabbettsnupp2020.xyz -istabetingsnup.xyz -istabetsnup.xyz -istabetting.xyz -istabilbettingsnap.xyz -istabilbettsnapp.xyz -istabilitybetsnapp.xyz -istabilitybettingsnapp.xyz -istahkapayici.site -istakalisa.club -istanbularbitrationcentre.org -istanbulbga.com -istanbulcasino10.com -istanbulcasino11.com -istanbulcasino12.com -istanbulcasino14.com -istanbulcasino15.com -istanbulcasino16.com -istanbulcasino17.com -istanbulcasino18.com -istanbulcasino19.com -istanbulcasino20.com -istanbulcasino21.com -istanbulcasino22.com -istanbulcasino23.com -istanbulcasino25.com -istanbulcasino26.com -istanbulcasino27.com -istanbulcasino28.com -istanbulcasino29.com -istanbulcasino30.com -istanbulcasino31.com -istanbulcasino32.com -istanbulcasino33.com -istanbulcasino34.com -istanbulcasino4.com -istanbulcasino43.com -istanbulcasino45.com -istanbulcasino47.com -istanbulcasino5.com -istanbulcasino53.com -istanbulcasino54.com -istanbulcasino6.com -istanbulcasino60.com -istanbulcasino8.com -istanbulcasino87.com -istanbulcasino98.com -istanbulcdmbg.org -istanbuldabayan.xyz -istanbulemlakuskudar.com -istanbulescorthatti.com -istanbulnights.eu -istanbulrehberleri.com -istanbulservisicagrimerkezi.xyz -istanbulsiiri.com -istatth.shop -istearabul.site -istii.ro -istinaf.net -istirdad.website -istlecker.de -istmail.tk -istnistr.shop -istoktepla.ru -istore-x.ru -istreamingtoday.com -istroimvse.ru -isukrainestillacountry.com -isupportheroes.com -isutdnov.shop -isuzu-argentina.club -isuzuserviskirsehir.xyz -isvegan.com -isvsrr.icu -isweetuni.best -isxuldi8gazx1.ga -isxuldi8gazx1.ml -isxuldi8gazx1.tk -isyouco.space -isyourspecialist.com -isyszh.icu -iszkft.hu -it-a-maculardegenerationok.live -it-an-oxygenconcentratorsok.live -it-awt.ru -it-everyday.com -it-expert-service.ru -it-italy.cf -it-italy.ga -it-italy.gq -it-italy.ml -it-italy.tk -it-miracles.net -it-nativesuvs-wish.live -it-obuv.ru -it-service-in-heidelberg.de -it-service-sinsheim.de -it-shoponline.info -it-simple.net -it-smart.org -it-support-shanghai.com -it-ua.ru -it-vopros.ru -it2-mail.tk -it2sale.com -it7.ovh -it996.fun -itailorphuket.com -itajaivip.com -italia.flu.cc -italia.igg.biz -italiaaffitta.click -italianpads.com -italianspirit.pl -italiavendecommerciale.com -italiavendecommerciali.com -italiavendecommerciali.online -italienbuchen.com -itallmatters.us -italpostall.com -italsalz.shop -italy-mail.com -italy-nedv.ru -italyborselvoutlet.com -italysource.com -itangkas88.biz -itangkas88.net -itaropicve.space -itascahealthandchiropractic.com -itaspanishautoinsurancebay.live -itaspanishautoinsurancebig.live -itaspanishautoinsurancebuy.live -itaspanishautoinsurancefab.live -itaspanishautoinsurancefed.live -itaspanishautoinsurancehub.live -itaspanishautoinsurancemax.live -itaspanishautoinsurancenow.live -itaspanishautoinsuranceone.live -itaspanishautoinsurancerun.live -itaspanishautoinsurancetop.live -itboa.org -itcat.zone -itcelf.com -itchapchap.com -itchsoberlyleap.website -itchyeye.xyz -itchytoes.net -itclub-smanera.tech -itcompu.com -itdeinter.cf -itdeinter.ga -itdeinter.gq -itdeinter.ml -itdeinter.tk -itdesi.com -iteachnet.com -itech-versicherung.de -itechtrands.xyz -itechweb.com -itecsgroup.org -itefus.cf -itefus.ga -itefus.gq -itefus.tk -itekc.com -itele.com -itemailing.com -itemef.bid -itemp.email -itempmail.tk -itestdomain.com -itfast.net -itfeed.net -itfenxi.com -itfilmes.ru -itfinity.space -itfornonit.com -itgire.ga -itgire.gq -itgire.ml -itgire.tk -itgmusic.net -itgracevvx.com -itgunity.com -ithacavineyard.com -ithallamineparke.xyz -ithconbi.ml -ithconbi.tk -ithebettsnaps.xyz -itibmail.com -itid.info -itidata.asia -itidata.global -itidata.nyc -itilchange.com -itinmar.cf -itinmar.ga -itinmar.gq -itinmar.ml -itinmar.tk -itiomail.com -itis0k.com -itiseurope.com -itj.cloud -itjustmail.tk -itks-it.ru -itks6xvn.gq -itksit.ru -itlawer.ru -itleadersfestival.com -itlek.ru -itm311.com -itmailbox.info -itmailing.com -itmailr.com -itmepher.ga -itmepher.gq -itmepher.tk -itmiracles.net -itmiracles.org -itmlekethaber.online -itmlogistics.ru -itmtx.com -itnews-group.ru -itnewsport.ru -itnfo.com -itntk.ru -itntucson.com -itoasatinal.com -itogether.club -itoh.de -itoldtech.org -itomo.ru -itopif.online -itoup.com -itoxwehnbpwgr.cf -itoxwehnbpwgr.ga -itoxwehnbpwgr.gq -itoxwehnbpwgr.ml -itoxwehnbpwgr.tk -itpasszone.net -itpbppjhj.shop -itportalnews.ru -itqabkastz.fun -itraconazolbivir.website -itregi.com -itrends.site -itrental.com -itreplace.com -itri.de -itromail.hu -its-systems.com -its0k.com -its6am.com -itsamainething.com -itsappt.com -itsbox.site -itscaptain.com -itsdata.org -itsdoton.org -itsecpackets.com -itserveis.com -itsgood2berich.com -itshopwom.site -itsiconsulting.com -itsjiff.com -itsme.edu.pl -itsmenotyou.com -itspanishautoinsurancebuy.live -itspanishautoinsurancefab.live -itspanishautoinsurancefed.live -itspanishautoinsuranceget.live -itspanishautoinsurancejet.live -itspanishautoinsurancekey.live -itspanishautoinsurancemax.live -itspanishautoinsurancenew.live -itspanishautoinsuranceray.live -itspanishautoinsurancesbig.live -itspanishautoinsurancesbuy.live -itspanishautoinsurancesfan.live -itspanishautoinsurancesget.live -itspanishautoinsuranceshub.live -itspanishautoinsurancesjet.live -itspanishautoinsuranceskey.live -itspanishautoinsurancesnew.live -itspanishautoinsurancesnow.live -itspanishautoinsurancesrad.live -itspanishautoinsurancesray.live -itspanishautoinsurancesrun.live -itspanishautoinsurancestop.live -itspanishautoinsurancesway.live -itspanishautoinsurancetab.live -itspanishautoinsurancetop.live -itsrecess.com -itsshelbystyles.com -itst.icu -itsworldcongress2019.com -itsx.icu -itsyogacincinnati.com -ittina.cf -ittina.ga -ittina.gq -ittina.ml -ittina.tk -ittool.host -ittybittybayou.com -itue33ubht.ga -itue33ubht.gq -itue33ubht.tk -itunes-soft.ru -itunesgiftcodegenerator.com -itutiod.ru -itvends.com -itw88.com -itxiaom.online -itxsector.ru -itymail.com -ityys.xyz -iu54edgfh.cf -iu54edgfh.ga -iu54edgfh.gq -iu54edgfh.ml -iu54edgfh.tk -iu66sqrqprm.cf -iu66sqrqprm.ga -iu66sqrqprm.gq -iu66sqrqprm.ml -iu66sqrqprm.tk -iuavc.info -iubuf.live -iuemail.men -iufs.xyz -iuil87l.live -iulconsultant.com -iumail.com -iuporno.info -iuroveruk.com -iuruena.buzz -iusecoins.com -iut78.com -iuvmpixel.net -iuxguy.tokyo -iuzyqp.us -iv-fr.net -iv3xdy.us -iv4vp.site -iv51g4f4.info -ivalli.com -ivan-topor.ru -ivans.me -ivant-eml.ru -ivant-sr.ru -ivant-srn.ru -ivant-srv.ru -ivant-srw.ru -ivantineurons.org -ivantiselfheal.com -ivb2aa.us -iveai.com -ivecotrucks.cf -ivecotrucks.ga -ivecotrucks.gq -ivecotrucks.ml -ivecotrucks.tk -ivedisease.com -ivehiv.com -iveszics.com -ivfufc.cf -ivgxsljxu.shop -ivideo1.com -ivii.ml -ivipo.com -iviruseries3.ru -ivizx.com -ivmail.com -ivoiviv.com -ivonline.live -ivory-coast.com -ivosimilieraucute.com -ivprazdnik.ru -ivprictia.cf -ivprictia.ga -ivprictia.ml -ivprictia.tk -ivprm.live -ivrm.email -ivs3pb.com -ivsusi.cf -ivsusi.ga -ivsusi.gq -ivsusi.ml -ivsusi.tk -ivuhma.tokyo -ivuhmail.com -ivyandmarj.com -ivybotreviews.net -ivycompete.com -ivyevans.org -ivylim.com -ivysheirlooms.net -ivystocks.com -iw0cef.us -iw409uttadn.cf -iw409uttadn.ga -iw409uttadn.gq -iw409uttadn.ml -iw409uttadn.tk -iwanaga-morito.online -iwanbanjarworo.cf -iwancorp.cf -iwankopi.cf -iwannagoto.space -iwantto.be -iwanttointerviewyou.com -iwanttoms.com -iwantumake.us -iwapr.net -iwasbornready.net -iwebtm.com -iwerxdesign.com -iwi.net -iwin.ga -iwishiwereyoubabygirl.com -iwkb7o.com -iwkfa.com -iwmfuldckw5rdew.cf -iwmfuldckw5rdew.ga -iwmfuldckw5rdew.gq -iwmfuldckw5rdew.ml -iwmfuldckw5rdew.tk -iwoc.de -iworld-travel.ru -iwrk.ru -iwrservices.com -iwrservices.net -iwsi.ru -iwuhan.net -iwv06uutxic3r.cf -iwv06uutxic3r.ga -iwv06uutxic3r.gq -iwv06uutxic3r.ml -iwv06uutxic3r.tk -iwykop.pl -ix.pxwsi.com -ix9bal.us -ixaks.com -ixfwfabka.shop -ixisagency.com -ixkrofnxk.pl -ixkxirzvu10sybu.cf -ixkxirzvu10sybu.ga -ixkxirzvu10sybu.gq -ixkxirzvu10sybu.ml -ixkxirzvu10sybu.tk -ixtwhjqz4a992xj.cf -ixtwhjqz4a992xj.ga -ixtwhjqz4a992xj.gq -ixtwhjqz4a992xj.ml -ixtwhjqz4a992xj.tk -ixvfhtq1f3uuadlas.cf -ixvfhtq1f3uuadlas.ga -ixvfhtq1f3uuadlas.gq -ixvfhtq1f3uuadlas.ml -ixvfhtq1f3uuadlas.tk -ixx.io -ixxnqyl.pl -ixxycatmpklhnf6eo.cf -ixxycatmpklhnf6eo.ga -ixxycatmpklhnf6eo.gq -ixyncm.us -ixyrgr.us -ixzcgeaad.pl -ixzuln.info -iy47wwmfi6rl5bargd.cf -iy47wwmfi6rl5bargd.ga -iy47wwmfi6rl5bargd.gq -iy47wwmfi6rl5bargd.ml -iy47wwmfi6rl5bargd.tk -iy54ac.us -iyadqadi.com -iyaomail.com -iyapk.poker -iyeni.com -iyerb.com -iyikidevarim.com -iying65.com -iying67.com -iying69.com -iymail.com -iyomail.com -iyongcaplong.com -iyouwe.com -iytyicvta.pl -iyumail.com -iyyimlnsnnbr77867.ga -iyyimlnsnnbr77867.tk -iyyimlnsnnbr90946.ml -iyyimlnsnnbr90946.tk -iz0tvkxu43buk04rx.cf -iz0tvkxu43buk04rx.ga -iz0tvkxu43buk04rx.gq -iz0tvkxu43buk04rx.ml -iz0tvkxu43buk04rx.tk -iz3oht8hagzdp.cf -iz3oht8hagzdp.ga -iz3oht8hagzdp.gq -iz3oht8hagzdp.ml -iz3oht8hagzdp.tk -iz4acijhcxq9i30r.cf -iz4acijhcxq9i30r.ga -iz4acijhcxq9i30r.gq -iz4acijhcxq9i30r.ml -iz4acijhcxq9i30r.tk -iz5kf.us -izbahis.com -izbashop.ru -izbe.info -izbud1.site -izbunet.ru -izbzm.com -izcmqm.com -izemail.com -izendustriyel.org -izeqmail.com -izhevsk24.ru -izhsmi.site -izibankrot.xyz -izicmil.cf -izicmil.ga -izicmil.gq -izicmil.ml -izicmil.tk -izip.site -izkyqr.xyz -izlvsmyl.shop -izmail.net -izmenamuzha.ru -izmir35gayrimenkul.xyz -izmirasmolen.com -izmiringilizcedilkursu.com -izmirotomobil.xyz -izmirseyirtepe.net -izmitvestelservis.com -izmoscowpo.ru -iznai.ru -izobretateli59.ru -izolacja-budynku.info.pl -izoli9afsktfu4mmf1.cf -izoli9afsktfu4mmf1.ga -izoli9afsktfu4mmf1.gq -izoli9afsktfu4mmf1.ml -izoli9afsktfu4mmf1.tk -izquierdadiario.org -iztaki.xyz -izuba.cd -izvif.us -izwuhkxra.shop -izzum.com -j-b.us -j-jacobs-cugrad.info -j-keats.cf -j-keats.ga -j-keats.gq -j-keats.ml -j-keats.tk -j-labo.com -j-land.ru -j-p.us -j-response.com -j.aq.si -j.fairuse.org -j.polosburberry.com -j.rvb.ro -j0axz.online -j0hoi.us -j0mail.com -j0mail.net -j15ug1ltxd7iugr.xyz -j1zr8d.us -j24blog.com -j25bk.com -j275xaw4h.pl -j29yg.com -j2anellschild.ga -j2chnu.space -j2ltgr.us -j2ukcy.us -j2voip.com -j2websolutions.com -j30nz.space -j3j.org -j3nn.net -j3olp.icu -j3rik.info -j3rqt89ez.com -j3xbes.us -j4ckpd.us -j4hyc.us -j4rang0y4nk.ga -j54wn.site -j59nx.site -j5kic.us -j5thwu.us -j5vhmmbdfl.cf -j5vhmmbdfl.ga -j5vhmmbdfl.gq -j5vhmmbdfl.ml -j5vhmmbdfl.tk -j6ax1l.us -j6ev3l.space -j6gpvz.us -j6qr1q.us -j6qwq4.host -j7.cloudns.cx -j7665.com -j7cnw81.net.pl -j7exus.com -j8-freemail.cf -j80zn.site -j83tb.site -j85xm.com -j876.biz -j8ivlsb169o2w4t.xyz -j8k2.usa.cc -j8pxy.us -j8rigs.us -j90jj.com -j90yb.com -j9356.com -j94gq.space -j9dtuy.site -j9gekl.us -j9gzp3.us -j9k.org -j9rxmxma.pl -j9ysy.com -jaaj.cf -jaalaa4.xyz -jaanv.com -jaarvandemolens.online -jaat.live -jabatankopi.com -jabberflash.info -jabbyhotel.online -jabiruowners.org -jabkagames.ru -jabpid.com -jabqjgxo.shop -jacalyhouse.co -jaccede.net -jacckpot.site -jacity.site -jack762.info -jackaoutlet.com -jackdouglas.online -jackets-monclers-sale.com -jacketwarm.com -jackhansen.net -jackiespetsupply.com -jackjackjack.net -jackkyvn.space -jackleg.info -jackmailer.com -jacknini.cf -jacknini.ml -jacknini.tk -jackopmail.tk -jackpire.com -jackpot-info.ru -jackpotjoy.biz -jackpotred.nu -jackqueline.com -jackreviews.com -jackro.online -jackrosi.ml -jacksonbarton.com -jacksonhole.homes -jacksonhole.house -jacksonsshop.com -jacksonvillequote.com -jackstale.com -jackychan3.website -jackymail.top -jacmelinter.xyz -jacobmorgancapital.com -jacobsewell.com -jacops.art -jacquaknga.online -jacquardcurtain.com -jacquelhouse.co -jacquelx.com -jacques-thomann.com -jad32.cf -jad32.ga -jad32.gq -jade-as9.com -jadecourtmeal.com -jades-garden.com -jadeschoice.com -jadikedi.club -jadku.icu -jadopado.com -jadotech.com -jadwalbola.link -jaelyn.amina.wollomail.top -jaewoong.net -jaewoonglee.com -jafethuis.shop -jaffao.pw -jafhd.com -jafps.com -jafrem3456ails.com -jafufq.us -jagadgurubhanpura.info -jagdglas.de -jaggernaut-email.bid -jaggernautemail.bid -jaggernautemail.trade -jaggernautemail.win -jaggov.com -jaggtrk.site -jagongan.ml -jagr88.net -jagritiinnohealth.net -jaguar-landrover.cf -jaguar-landrover.ga -jaguar-landrover.gq -jaguar-landrover.ml -jaguar-landrover.tk -jaguar-xj.ml -jaguar-xj.tk -jaguartoto.online -jaguarxtype.info -jah8.com -jaheen.info -jahgsthvgas12458.cf -jahgsthvgas12458.ga -jahgsthvgas12458.ml -jahgsthvgas12458.tk -jahgsthvgas20470.cf -jahgsthvgas20470.ga -jahgsthvgas20470.ml -jahgsthvgas20470.tk -jahgsthvgas21231.ml -jahgsthvgas21231.tk -jahgsthvgas21936.cf -jahgsthvgas21936.ga -jahgsthvgas21936.ml -jahgsthvgas21936.tk -jahgsthvgas72260.ml -jahgsthvgas72260.tk -jahgsthvgas74241.ml -jahgsthvgas74241.tk -jahgsthvgas75373.cf -jahgsthvgas75373.ga -jahgsthvgas75373.ml -jahgsthvgas75373.tk -jahgsthvgas99860.cf -jahgsthvgas99860.ga -jahgsthvgas99860.ml -jahgsthvgas99860.tk -jaijaifincham.ml -jailscoop.com -jaimenwo.cf -jaimenwo.ga -jaimenwo.gq -jaimenwo.tk -jaimihouse.co -jaiwork-google.ml -jajomail.com -jajsus.com -jajxz.com -jak-szybko-schudnac.com -jakefaulkner.buzz -jakepearse.com -jakesfamous.us -jakesfamousfoods.info -jakesfamousfoods.org -jakf.email -jakiyo.site -jakjtavvtva8ob2.cf -jakjtavvtva8ob2.ga -jakjtavvtva8ob2.gq -jakjtavvtva8ob2.ml -jakjtavvtva8ob2.tk -jakschudnac.org -jakubos.yourtrap.com -jalcemail.com -jalcemail.net -jalhaja.net -jalicodojo.com -jalushi.best -jalynntaliyah.coayako.top -jam4d.asia -jam4d.biz -jam4d.store -jama.trenet.eu -jamabos.buzz -jamaicaawareness.net -jamaicarealestateclassifieds.com -jamaicatirediscountergroup.com -jamalfishbars.com -jamalwilburg.com -jamaw-ewad.ru -jambcbtsoftware.com -jambuseh.info -jambuti.com -jamcatering.ru -jamcup.xyz -jamel.com -jamere.site -jamesbild.com -jamesbond.flu.cc -jamesbond.igg.biz -jamesbond.nut.cc -jamesbond.usa.cc -jamesbradystewart.com -jamesejoneslovevader.com -jamesfabiebailbonds.com -jamesharris.net -jameskutter.com -jamesmaylovescabbage.xyz -jamesorjamie.com -jameszol.net -jameszol.org -jametjay.com -jamiecantsingbroo.com -jamiecooper.buzz -jamieisprouknowit.com -jamielayne.com -jamiesnewsite.com -jamieziggers.nl -jamikait.cf -jamikait.ga -jamikait.gq -jamikait.ml -jamisonadvertising.com -jamit.com.au -jammytoastfrog.com -jampamovel.tk -jamstats.com -jamusic.online -jan-sramek.com -jan64b.space -janatatelevision.com -jancloud.net -jancok.in -jancokancene.cf -jancokancene.ga -jancokancene.gq -jancokancene.ml -jancokcp.com -jancoklah.com -jancuk.tech -jancukqq.com -jandaulet.ru -jandetin.cf -jandetin.ga -jandetin.gq -jandetin.ml -jandetin.tk -jandjfloorcovering.com -janekimmy.com -janet-online.com -janeweb.ru -janewsonline.com -janganjadiabu1.tk -janganjadiabu10.gq -janganjadiabu2.ml -janganjadiabu3.ga -janganjadiabu4.cf -janganjadiabu5.gq -janganjadiabu6.tk -janganjadiabu7.ml -janganjadiabu8.ga -janganjadiabu9.cf -jangkrikbosku.com -jangtec.com -janicegriffith.xyz -janicemichellefoundation.net -janicemichellefoundation.org -janikeyoga.com -janine.cd -janitorservices.com -janivahenry.com -jankusmirek.com -janlanser.shop -janmail.org -jannahouse.co -jannonces.cd -janproz.com -jans-koschek.info -janshirts.club -jansmithcannon.com -jansutita.com -jantyworld.pl -janusoffical.com -janvan.gent -janverschuuren.com -janym.ru -janza.ru -janza.site -japan-exitwidget.com -japan-link.biz -japan-monclerdown.com -japanaa318.xyz -japanakiba.com -japanawesome.com -japanerpjr.space -japanesenewshome.com -japanesetoryburch.com -japanjoayo.com -japanonly.com -japanresearch.com -japanyn7ys.com -japaventura.net -japaventura.org -japjap.com -japjytgzw.shop -jaqis.com -jaqs.site -jaqueline1121.club -jaqueslucont.icu -jar-opener.info -jarcasinoalf.ru -jarconsultoresfiscalycontable.com -jardinroyaltakeaway.com -jarena.net -jarestores.site -jargonize97qj.online -jarilusua.com -jarlhwa.com -jarraci.gq -jarraci.tk -jartiyericgiyim.online -jarxs-vpn.ml -jasa4d.online -jasa855.com -jasa855.net -jasa855.org -jasabacklinkmurah.com -jasabandar66.com -jasabyte.shop -jasajudi.com -jasaseo.info -jasaseomurahin.com -jasbell-carda.de -jasegot.store -jasinski-doradztwo.pl -jasmierodgers.ga -jasmin-masaj.xyz -jasolen.cf -jasolen.gq -jasolen.ml -jasongalvin.com -jasonlaughlin.org -jasonmadama.com -jasonprycememorial.org -jateamssign.cf -jateamssign.ga -jateamssign.ml -jateamssign.tk -jatfvn.xyz -jathqy.xyz -jatillivet.xyz -jatmikav.top -jatpai.xyz -jauhari.cf -jauhari.ga -jauhari.gq -jaujqt.site -jaumin.best -jav.bike -jav.cash -jav.codes -jav.support -jav12.xyz -jav333.net -jav8.cc -jav99-0.com -jav99-7.com -javadoq.com -javajust.com -javamail.org -javaprogrammingpoursesusa.com -javedic.cf -javedic.gq -javedic.ml -javhd.buzz -javierllaca.com -javkojima.club -javmail.tech -javmaniac.co -javmnvg.com -javo.email -javoei.com -javopgan.ru -javqc.com -javrdv.com -javrkf.com -javsbk.com -javsin.best -javzog.com -jawaramantul.info -jaxmortageteam.com -jaxoxx.se -jaxphotography.net -jaxwholesalehouses.com -jaxworks.eu -jaya125.com -jaya5758.com -jayabet188.net -jayapoker99.net -jayaprakashmenon.com -jayavilas.org -jaychatmusic.com -jaycrouch.org -jaydeninc.com -jayhotz.com -jayjessup.com -jaymoviedownload.xyz -jaypetfood.com -jayphimar.cf -jayphimar.ga -jayphimar.ml -jayphimar.tk -jaysachdev.com -jaysclay.org -jayyidumroh.com -jayz-tickets.com -jayzbook.com -jayzeh.com -jazibgroup.com -jazpa.com -jazzbo.site -jazzcom.net -jazzcommons.com -jazztrumpet.ru -jazzzespo.cf -jazzzespo.ga -jazzzespo.gq -jazzzespo.ml -jb73bq0savfcp7kl8q0.ga -jb73bq0savfcp7kl8q0.ml -jb73bq0savfcp7kl8q0.tk -jbasm.us -jbb777.com -jbbqny.com -jbbtest.com -jbegn.info -jbfqc8.us -jbhhgbuz.shop -jbl-4.site -jbl-russia.ru -jblacust.ru -jblpoker.net -jblpoker.org -jblrus.online -jblshop.ru -jbmbet.info -jbmbet.online -jbmnoi.com -jbnasfjhas12388.cf -jbnasfjhas12388.ml -jbnasfjhas12388.tk -jbnasfjhas12752.ml -jbnasfjhas12752.tk -jbnasfjhas19704.cf -jbnasfjhas19704.ga -jbnasfjhas19704.ml -jbnasfjhas19704.tk -jbnasfjhas28580.cf -jbnasfjhas28580.ga -jbnasfjhas28580.ml -jbnasfjhas28580.tk -jbnasfjhas96637.cf -jbnasfjhas96637.ga -jbnasfjhas96637.ml -jbnasfjhas96637.tk -jbniklaus.com -jbnote.com -jbnyfd.com -jbopoker.org -jbp22.space -jbso8.us -jbydress.online -jc-decaux.tk -jc254.com -jc2vnr.us -jc56owsby.pl -jc7m.tel -jcaf.icu -jcalvert.net -jcamerahot.info -jcbwy.com -jcdmail.men -jcdz.email -jceffi8f.pl -jcenergyworks.info -jcenergyworks.net -jcfug.us -jchez.com -jciphilippines.org -jcjnet.com -jcll.buzz -jcnai1.site -jcp3rq.info -jcpclothing.ga -jcredding.com -jcs-studio.ru -jcv2yv.com -jd9wdp.com -jdas-mail.net -jdasdhj.cf -jdasdhj.ga -jdasdhj.gq -jdasdhj.ml -jdasdhj.tk -jdb81.space -jdbzcblg.pl -jdd06.com -jdd2.club -jddapi.app -jde53sfxxbbd.cf -jde53sfxxbbd.ga -jde53sfxxbbd.gq -jde53sfxxbbd.ml -jde53sfxxbbd.tk -jdecorz.com -jdeeedwards.com -jdfqxtap.shop -jdgang.com -jdhutchinson.com -jdkmusic.us -jdkpcl.us -jdl5wt6kptrwgqga.cf -jdl5wt6kptrwgqga.ga -jdl5wt6kptrwgqga.gq -jdl5wt6kptrwgqga.ml -jdl5wt6kptrwgqga.tk -jdmadventures.com -jdmbenefits.info -jdmhero.com -jdmzci.us -jdnirm.site -jdnjraaxg.pl -jdsrealtygrouppr.com -jdtfdf55ghd.ml -jdub.de -jdvm.email -jdvmail.com -jdxsqz.tokyo -jdy01.xyz -jdz.ro -je-recycle.info -je2tjeraafmans.xyz -je7f7muegqi.ga -je7f7muegqi.gq -je7f7muegqi.ml -je7f7muegqi.tk -jealousmedia.com -jeanhamiltonvoice.com -jeannelepellee.com -jeannerussellchiropractic.com -jeansname.com -jeansoutlet2013.com -jeasysux.agency -jebabu.com -jebacdisaskurwysyna.xyz -jebratikfersokilo.xyz -jecyfihuhol.space -jeddahtravels.com -jeden.akika.pl -jedrnybiust.pl -jeeb.trade -jeeet9.live -jeemboo.ru -jeenza.com -jeep-australia.club -jeep-cherokee.club -jeep-chile.club -jeep-official.cf -jeep-official.ga -jeep-official.gq -jeep-official.ml -jeep-official.tk -jeepconversions.com -jeepday.com -jeepsafarialbania.com -jeerabazar.com -jeet16.live -jeet20.live -jeetmr.live -jeettrk.site -jeff.ml -jeffbeasleyguitar.com -jeffdenzra.cf -jeffdenzra.ga -jeffdenzra.ml -jeffersonandassociates.com -jeffersonbox.com -jeffersonms.org -jeffexotica.com -jeffjeeps.info -jeffkennedyassociates.com -jeffmerkeley.org -jeffmerkly.com -jeffnelson.org -jeffpeterson.info -jeffreyhunt.org -jeffreypeterson.info -jefricrak12.ml -jeg5ym.us -jehenuo.ru -jeie.igg.biz -jejinger.info -jejofo.info -jekadok.xyz -jekeshkumaroad.icu -jelascasino.host -jelenajensentube.com -jelldiving.com -jellow.ml -jelly-life.com -jellybeanplop.org -jellycabi.icu -jellyeyelidmeant.site -jellyrollpan.net -jellyrolls.com -jellytast.buzz -jelm.de -jembotbrodol.com -jembott.com -jembud.icu -jembulan.bounceme.net -jembut142.cf -jembut142.ga -jembut142.gq -jembut142.ml -jembut142.tk -jemchujinka.info -jemmasplayground.com -jemmctldpk.pl -jenachouse.co -jendralbola.com -jennarhodes.com -jennie.club -jenniebelieves.com -jennifer-alden.biz -jennifergallagher.buzz -jenniferjeromedds.com -jennylowemiller.com -jensden.co.uk -jensenbeachfishingcharters.com -jenskiymir.ru -jensonchiropracticdecatur.com -jentrix.com -jentro.com -jeomychort.cf -jeomychort.ga -jeomychort.gq -jeomychort.ml -jeomychort.tk -jepijopiijo.cf -jepijopiijo.ga -jepijopiijo.gq -jepijopiijo.ml -jepijopiijo.tk -jeralo.de -jeramywebb.com -jerapah993r.gq -jere.biz -jeremycarvermartin.com -jeremyfocus.com -jeremymonroe.net -jeremyprine.com -jeremyteale.com -jeremytunnell.net -jeremywood.xyz -jerf.de -jerilyhouse.co -jeriofad.site -jerk.com -jeromesam.cat -jerrycham.com -jerseen.world -jerseycityhairsalons.com -jerseycityquote.com -jerseycityrealestateagents.com -jerseymallusa.com -jerseyonsalestorehere.com -jerseyovo.com -jerseysonlinenews.com -jerseysonlinesshop.com -jerseysshopps.com -jerseysyoulikestore.com -jerseyzone4u.com -jertistore.xyz -jertroskinscsgo.fun -jerusalem-dublin2.com -jerusalem-takeaway.com -jerusalem.fyxo.ml -jerusalemcall.org -jerusatyhn.space -jes96x.us -jescanned.com -jesflk.com -jesien-zima.com.pl -jesisale.site -jessarhodes.site -jessejames.net -jessicahernanez.xyz -jessicalife.com -jessicawatsonrowland.com -jessie.tokyo -jessietv.tokyo -jestbet65.com -jestemkoniem.com.pl -jestyayin27.com -jesus-shop.ru -jesuschrist.fund -jesuschrist.icu -jesuschrist.productions -jesusmail.com.br -jesusnotjunk.org -jesusstatue.net -jesusygema.online -jet-renovation.fr -jet.fyi -jet10bet14.com -jetable.com -jetable.fr.nf -jetable.net -jetable.org -jetable.pp.ua -jetableemail.com -jetableemails.com -jetagram.com -jetairlineticket.com -jetanime.xyz -jetcasbahis.com -jetconvo.com -jeternet.com -jetex.media -jetfly.media -jetflzz.ru -jetiamb.icu -jetlogcomex.com -jetmembranehit.website -jetonkartsatinal.com -jetpush.com -jetqunrb.pl -jetrelocation.us -jetsearches.com -jetsmails.com -jetspeak.ru -jetstardutyfreepreorder.com -jetstash.site -jettcohen.com -jettisonsaga.com -jetub.xyz -jeu3ds.com -jeunessevn.com -jeupronostic.com -jeux-gratuits.us -jeux-online0.com -jeux3ds.org -jeuxds.fr -jevans.eu -jevtw6.host -jewel.ie -jewelfishcreations.com -jewelhaven.net -jewelinthecrowntakeaway.com -jewelleryshop.futbol -jewellrydo.com -jewelry497tq.online -jewelryandloanpro.com -jewelrycellar.com -jewelrycrafts.world -jewelrymakingideas.site -jewelryunder5.com -jewish-tutors.com -jewishamericansongbook.org -jewishfraternities.org -jewishfraternity.org -jewishnewsdaily.com -jewishrewj.space -jewishwisdomsummit.com -jewqlfqo.xyz -jewsagainsttrump.org -jewsoncampus.org -jex-mail.pl -jexopozam.shop -jeyuvido.site -jezera.info -jezwg.live -jezykoweradio.pl -jfaccupuncture.com -jfaiz5gz.xyz -jfdfg5ck.com -jfdv.email -jffabrics85038.com -jfgfgfgdfdder545yy.ml -jfhd.us -jfhf9954.com -jfhhm.com -jfiee.tk -jfmjw.com -jftruyrfghd8867.cf -jftruyrfghd8867.ga -jftruyrfghd8867.gq -jftruyrfghd8867.ml -jftruyrfghd8867.tk -jfwkttkh.shop -jfwrt.com -jfxklwyj.shop -jgandos.com -jgaweou32tg.com -jgerbn4576aq.cf -jgerbn4576aq.ga -jgerbn4576aq.gq -jgerbn4576aq.ml -jgerbn4576aq.tk -jgfrpy.us -jgi21rz.nom.pl -jgj11277.com -jglobal.org -jglopez.net -jgmkgxr83.pl -jgmoa17.com -jgmoa18.com -jgro1c.us -jgy7as.us -jgyjt.live -jh24promo.ru -jhalakibs21.gq -jhasjhtast86168.cf -jhasjhtast86168.ga -jhasjhtast86168.ml -jhasjhtast86168.tk -jhasjhtast86736.ml -jhasjhtast86736.tk -jhatasr28887.cf -jhatasr28887.ga -jhatasr28887.ml -jhatasr43558.cf -jhatasr43558.ga -jhatasr43558.ml -jhatasr43558.tk -jhatasr53816.cf -jhatasr53816.ga -jhatasr53816.ml -jhatasr53816.tk -jhatasr60556.ga -jhatasr60556.ml -jhatasr60556.tk -jhdashjg14606.cf -jhdashjg14606.ga -jhdashjg14606.ml -jhdashjg14606.tk -jhdashjg34401.cf -jhdashjg34401.ml -jhdashjg34401.tk -jhdashjg46064.cf -jhdashjg46064.ga -jhdashjg46064.ml -jhdashjg55864.cf -jhdashjg55864.ga -jhdashjg55864.ml -jhdashjg55864.tk -jhdashjg59120.cf -jhdashjg59120.ga -jhdashjg59120.ml -jhdashjg59120.tk -jhdashjg73600.ml -jhdashjg73600.tk -jhdashjg99173.cf -jhdashjg99173.ga -jhdashjg99173.tk -jhehfweo.site -jhfg.us -jhgnnb.com -jhhgcv54367.cf -jhhgcv54367.ga -jhhgcv54367.ml -jhhgcv54367.tk -jhib.de -jhjo6m.us -jhjty56rrdd.cf -jhjty56rrdd.ga -jhjty56rrdd.gq -jhjty56rrdd.ml -jhjty56rrdd.tk -jhkggv4-privzsra.press -jhkggv4-privzsra.space -jhkggv4-privzsra.xyz -jhmkai.site -jhow.cf -jhow.ga -jhow.gq -jhow.ml -jhqqmczmu.shop -jhrseykjerl20604.ml -jhrseykjerl20604.tk -jhrseykjerl24773.cf -jhrseykjerl24773.ga -jhrseykjerl24773.ml -jhrseykjerl24773.tk -jhrseykjerl31756.ml -jhrseykjerl31756.tk -jhrseykjerl38436.ml -jhrseykjerl38436.tk -jhrseykjerl42917.cf -jhrseykjerl42917.ga -jhrseykjerl42917.ml -jhrseykjerl42917.tk -jhrseykjerl59229.cf -jhrseykjerl59229.ga -jhrseykjerl59229.ml -jhrseykjerl59229.tk -jhrseykjerl64041.ml -jhrseykjerl66366.cf -jhrseykjerl66366.ga -jhrseykjerl66366.ml -jhrseykjerl66366.tk -jhrseykjerl70694.cf -jhrseykjerl70694.ga -jhrseykjerl70694.ml -jhrseykjerl70694.tk -jhrseykjerl71731.ml -jhrseykjerl71731.tk -jhsss.biz -jhtzu.live -jhxl.org -ji4zwf.site -jiahezaixian.biz -jiahyl.com -jiahylzc.com -jiaiwan.club -jialefujialed.info -jiancok.cf -jiancok.ga -jiancok.gq -jiancokowe.cf -jiancokowe.ga -jiancokowe.gq -jiancokowe.ml -jiangpeng.xyz -jianguo1111.com -jianguo1112.com -jianguo1115.com -jianguo234.com -jianguo345.com -jianguo432.com -jianguo543.com -jianguo678.com -jiankangzaji.com -jianyuyuanzheng.com -jiaotongyinhang.net -jiaoya.net -jiapai.org -jiatou123jiua.info -jiaxin8736.com -jibaiwan.xyz -jibitpay.com -jibjabprocode.com -jic4pn.us -jidanshoppu.com -jieber.net -jiemoyan.com -jietuku.com -jiez00veud9z.cf -jiez00veud9z.ga -jiez00veud9z.gq -jiez00veud9z.ml -jiez00veud9z.tk -jiga.site -jiggermast.site -jigglypuff.com -jigjournal.org -jigoloajanslari.org -jigsawdigitalmarketing.com -jihadadventures.com -jihlmnvkp.shop -jijedcei.cf -jijedcei.ga -jijedcei.gq -jijedcei.tk -jijianhufu.com -jijixiaozhen.cn -jikadeco.com -jikex.org -jikilifina11.ru -jil.kr -jiljadid.com -jiljadid.info -jillgormley.com -jilliangiardullomemorialfund.com -jillshaver.com -jilossesq.com -jilyva.info -jimandalisandra.com -jimans.pro -jimboba.ru -jimbombey.ru -jimdahl.com -jimeiss.xyz -jimfaddismusic.com -jimfournier.com -jimgrieve.net -jimhansonhomes.com -jimhoyd.com -jimjaagua.com -jimmienwarner.com -jimmoorephoto.com -jimmyasaro.com -jimmychooshoesuksale.info -jimmychoowedges.us -jimmyhqdjj.space -jimmynewdomain123345.biz -jimmys-takeaway-kilkenny.com -jimmysweblog.net -jimoruxue.com -jimskillington.com -jimster.site -jin638.com -jinbeibeibagonline.com -jinchuan.xyz -jindingguojiyule.com -jindunssc.com -jinefur.press -jinfu10.com -jingcaizaixian.net -jinggakop.ga -jinggakop.gq -jinggakq.ml -jinghe-ep.com -jingpai321.com -jinguanghu.com -jingvesouff.cf -jingvesouff.ga -jingvesouff.gq -jingvesouff.ml -jingwuyabojm.com -jinhaobj.com -jining2321.info -jinnmail.net -jinrongpaizhao2006.com -jinschinese.com -jinsguaranteedpaydayloans.co.uk -jinsha3421.com -jintogel.net -jinzhiyuanfood.org -jiojiogrejoigre.info -jiovaj.best -jiplant.xyz -jiprbr.rest -jiqe.info -jir.su -jiraf.site -jirafikcraft.ru -jiromail.com -jiskhdgbgsytre43vh.ga -jistao.com -jitenei6.site -jitimarkets.site -jitsi.space -jitsuni.net -jitterx.com -jitulive.xyz -jituloh.com -jiu8cp.com -jiuba222.com -jiuba777.com -jiucaojj.com -jiucaoll.com -jiuere.com -jiuhe-auto.com -jiujitsuappreviews.com -jiujitsushop.biz -jiujitsushop.com -jiuling-yule.com -jiulingyule.com -jiuseyy.club -jiuseyy.site -jiuseyy.xyz -jiusp6.com -jiveline.com -jivotik.info -jiwatoto.org -jixa.site -jixe.site -jixyvu.info -jiyankotluk.xyz -jiyoshops.site -jiyue.org -jiyun123.com -jizdjq.info -jj18269.com -jj3385.com -jj3i.com -jj456.com -jj57822.com -jj7665.com -jj8848.com -jj9827.com -jjabberifye.site -jjabbervine.site -jjchoosetp.com -jjdjshoes.com -jjdong15.com -jjdong16.com -jjdong17.com -jjdong18.com -jjdong23.com -jjdong24.com -jjdong25.com -jjdong28.com -jjdong29.com -jjdong30.com -jjdong32.com -jjdong35.com -jjdong37.com -jjdong38.com -jjdong39.com -jjdong40.com -jjdong41.com -jjdong44.com -jjdong45.com -jjdong46.com -jjdong47.com -jjdong48.com -jjdong49.com -jjdong7.com -jjdong8.com -jjdong9.com -jjeqfu.site -jjetbot.site -jjetfoxw.site -jjetworksk.site -jjgg.de -jjj813.com -jjjf.ru -jjjiii.ml -jjkgrtteee098.cf -jjkgrtteee098.ga -jjkgrtteee098.gq -jjkgrtteee098.ml -jjkgrtteee098.tk -jjlhm.live -jjlink.cn -jjmsb.eu.org -jjo77.space -jjohbqppg.shop -jjosale.top -jjumples.com -jjvv.biz -jk141.site -jk3k.com -jk7ir.us -jkbmdp.fun -jkcbpp.host -jkcmzd.fun -jkcntadia.cf -jkcntadia.ga -jkcntadia.gq -jkcntadia.ml -jkcntadia.tk -jkdfgsrtyert.website -jke79o.site -jkeyes.com -jkgbvc.com -jkgihjk.website -jkgmkp.fun -jkhk.de -jkhmmx.fun -jkio-90.xyz -jkiohiuhi32.info -jkjsrdtr35r67.cf -jkjsrdtr35r67.ga -jkjsrdtr35r67.gq -jkjsrdtr35r67.ml -jkjsrdtr35r67.tk -jkk9d98grwo2cwz.xyz -jkkmdm.fun -jklasdf.com -jkljkl.cf -jkljkl.ga -jklmxl.fun -jklsssf.com -jklthg.co.uk -jkmechanical.com -jkmmks.fun -jkpinturas.com -jkpmqh.fun -jkqmxw.fun -jkqssvmf.shop -jkr.ovh -jkrebsphotos.com -jkrmrw.fun -jkrowlg.cf -jkrowlg.ga -jkrowlg.gq -jkrowlg.ml -jkt48.biz -jktif.live -jktmjx.fun -jktmmz.fun -jkwesjthsd19350.ml -jkwesjthsd24217.ga -jkwesjthsd24217.ml -jkwesjthsd28337.ml -jkwesjthsd28337.tk -jkwesjthsd89366.ga -jkwesjthsd89366.ml -jkwesjthsd89366.tk -jkwesjthsd96863.cf -jkwesjthsd96863.ga -jkwesjthsd96863.ml -jkwesjthsd96863.tk -jkwmxk.fun -jkwmzd.fun -jkymbw.fun -jkymnw.fun -jkyvznnqlrc.gq -jkyvznnqlrc.ml -jkyvznnqlrc.tk -jl.biz -jlajah.com -jlauryn.com -jlctvmlxq.shop -jljc.site -jlle.tk -jllxup.us -jlmq3b.us -jlqiqd.tokyo -jls4.com -jluedke.com -jlylc66.com -jlynchfamily.com -jlzxjeuhe.pl -jm-ac.com -jm24i0.site -jm3456.com -jm60.xyz -jm7000.com -jm8000.com -jm9797.com -jmail.fr.nf -jmail.ovh -jmail.ro -jmail7.com -jmartin.dev -jmcei.us -jmetg8.us -jmffu.live -jmhprinting.com -jmkbwfyo.tech -jmqtop.pl -jmsbbs.com -jmutang.com -jmvdesignerstudio.com -jmwbac.com -jmwv6z.us -jmxapp.com -jmy829.com -jmymy.com -jmzhufu.com -jmzlzl.com -jnbzcl.com -jnckteam.eu -jnckteam.tech -jncylp.com -jndu8934a.pl -jnfengli.com -jnggachoc.cf -jnggachoc.gq -jnglkdom.com -jnhbsdjhty18771.cf -jnhbsdjhty18771.ga -jnhbsdjhty18771.ml -jnhbsdjhty18771.tk -jnhtjhrt.tk -jnifyqit.shop -jnpayy.com -jnrhhg.com -jnru.email -jnsgt66.com -jnswritesy.com -jntaobao.com -jnthn39vr4zlohuac.cf -jnthn39vr4zlohuac.ga -jnthn39vr4zlohuac.gq -jnthn39vr4zlohuac.ml -jnthn39vr4zlohuac.tk -jnxjn.com -jnyfyxdhrx85f0rrf.cf -jnyfyxdhrx85f0rrf.ga -jnyfyxdhrx85f0rrf.gq -jnyfyxdhrx85f0rrf.ml -jnyfyxdhrx85f0rrf.tk -jnyhph.com -jnyveoha.shop -jo-mail.com -jo3b14.info -jo8otki4rtnaf.cf -jo8otki4rtnaf.ga -jo8otki4rtnaf.gq -jo8otki4rtnaf.ml -jo8otki4rtnaf.tk -joajecjb.tech -joajoa.xyz -joakarond.tk -joannfabricsad.com -joao.ga -joaquinito01.servehttp.com -joasantos.ga -job-monger.com -job-sbu.net -job.craigslist.org -job11.fun -jobappza.com -jobba.nu -jobbersmartcredit.us -jobbersonline.com -jobbikszimpatizans.hu -jobbsnackisar.com -jobchart.online -jobchart.shop -jobcheetah.com -jobd.dev -jobdesk.org -jobeksuche.com -jobhm1.site -jobinja.org -jobkim.com -jobku.id -joblessness.best -joblike.com -jobo.me -joboak.com -jobplusuk.com -jobposts.net -jobreadyedge.com -jobrpq.us -jobs-to-be-done.net -jobs.photography -jobsaa317.xyz -jobsappmatch.com -jobsblog.africa -jobsblog.ru -jobsenbloc.com -jobsfind.ru -jobsforsmartpeople.com -jobslao.com -jobssearch.online -jobstoknow.com -jobsunleashed.net -jobsunleashed.vet -jobtoto6.net -jobzzz.ru -jocerset.ru -jocksturges.in -jocreb.com -jodhpurbazar.icu -joe2116.com -joeclipart.com -joef.de -joeinc.tk -joelpet.com -joelstahre.com -joeltine.com -joeneo.com -joengentod.com -joeofarc.com -joeong.com -joepredin.cf -joepredin.gq -joepredin.ml -joepredin.tk -joerotts.info -joetestalot.com -joey.com -joeycampus.com -joeyfortman.biz -joeymarx.com -joeypatino.com -joeystays.info -jofap.com -joforce.us -jogdogshop.online -joggtorra.cf -joggtorra.ga -joggtorra.ml -joggtorra.tk -jogjakarir.org -jogos.cd -jogosdemaquiar.info -johanaeden.spithamail.top -johanmena.com -johhgapa.ga -johhgapa.gq -johhgapa.tk -johl.dev -john-doe.cf -john-doe.ga -john-doe.gq -john-doe.ml -john.express -johnalvbage.se -johnathanwelsh.com -johnderasia.com -johndoe.tech -johndollin.info -johnfabio.online -johnfriedrich.com -johnftocci.net -johngallant.com -johnhaymond.net -johnhaymondlawfirm.net -johnkokenzie.com -johnkokishpc.com -johnmagnifico.name -johnmasters.hk -johnmoriarity.com -johnmy.com -johnnybenton2.com -johnnycarsons.info -johnnycondon.com -johnnyduel.com -johnnyimpossible.com -johnnymlive.biz -johnpo.cf -johnpo.ga -johnpo.gq -johnpo.ml -johnpo.tk -johnrisky.cf -johnrisky.ga -johnrisky.gq -johnrisky.tk -johnrisky4u.cf -johnrisky4u.ga -johnrisky4u.gq -johnrisky4u.ml -johnrisky4u.tk -johnsfinefoods.com -johnsisland.net -johnslocalhandyman.com -johnsonmotors.com -johnstownbikerally.com -johnstownpa.org -johnstownthunder.org -johntalbotdev.com -johnwickfullmovie.online -johonkemana.com -johonmasalalu.com -joiephotography.com -join-4-free.bid -join-taxi.ru -join-the-lo-down.net -joinaics.com -joinbadminton.ru -joinemonend.com -joinfunnelprofits.com -joiningup.site -joinmanialiga.net -joinmaniaqq.com -joinmaniaqq.global -joinoorddal.gq -joinoorddal.ml -joinoorddal.tk -joint-fix.site -joint.website -jointcradle.xyz -jointeleport.xyz -jointolouisvuitton.com -jointreniuym.com -jointruvi.com -jointtime.xyz -joinville.tk -joji.site -jojolouisvuittonshops.com -joke24x.ru -jokeengine.com -jokenaka.press -joker-dostavka.ru -joker87.net -jokerbet93.com -jokerbetcasino.xyz -jokerbetgiris.info -jokerdd.com -jokerkard.ru -jokerpoker.best -jokes.cd -jokespedia.com -jokos-nokos.site -joli-bikini.com -jollydisclosemedal.site -jollymonmarketing.store -jollymove.xyz -jombase.com -jomcs.com -jomie.club -jomiemporium.site -jomo.online -jomusic.live -jonahstreehouse.com -jonasferreira.com -jonathanbailey.buzz -jonathanbennett.net -jonathanbruner.com -jonathanfrazierphotography.com -jonathanjavierperalta.com -jonathanstephenson.buzz -jonathanyeosg.com -jonerumpf.co.cc -jonlippincott.com -jonnyanna.com -jonnyjonny.com -jonnyoid.com -jonotaegi.net -jonotaegi.org -jonrepoza.ml -jonslabaugh.com -jonsmailbox.tk -joojm.com -joolato.com -joomla-support.com -joomla.co.pl -joomlaccano.com -joomladome.org -joomlaemails.com -joomlaprofi.ru -joomna.online -joopal.app -joopeerr.com -jopezka.buzz -jopho.com -joplay.com -joplin.xyz -joplindoctors.com -joq7slph8uqu.cf -joq7slph8uqu.ga -joq7slph8uqu.gq -joq7slph8uqu.ml -joq7slph8uqu.tk -joqalbania.net -jordan23city.com -jordanambrosia.com -jordanfitzgerald.buzz -jordanflight45.com -jordanfr5.com -jordanfrancepascher.com -jordangillundphysicaltherapist.com -jordanknight.info -jordanmass.com -jordanmyth.com -jordanretronikesjordans.com -jordanretrooutlet.com -jordanshoesusonline.com -jordansneaker.ru -jordansneakers.ru -jordanstore.xyz -jorgegomezremodeling.com -jorickjuhproductions.shop -jorja344cc.tk -jormout.ml -jormungandr.ru -jornalcarioca.site -jornalcarioca.website -jornalcarioca2019.site -jornalcarioca2019.xyz -jornalcidade.com -jornismail.net -jorosc.cf -jorosc.ga -jorosc.gq -jorosc.ml -jorosc.tk -jorysma.xyz -josadelia100.tk -josafeth.com -josalita95.ml -josalyani102.ml -josamadea480.ga -josamanda777.tk -josangel381.ml -josanng.ru -josasjari494.ml -josbet88.cash -josbet88.fun -josdita632.ml -josealamos.info -josefadventures.org -joseihorumon.info -josekacowicz.com -josephdesaram.com -josephdicarlo.me -josephineloftapartments.com -josephjasinski.com -josephmillerdesign.com -josephsu.com -josephswingle.com -josethouse.co -josfitrawati410.ga -josfrisca409.tk -josgishella681.cf -josh4jersey.com -joshandval.com -joshdanielsphotography.com -joshendriyawati219.tk -joshforjersey.com -joshjoffen.com -joshlapham.org -joshmanders.dev -joshtucker.net -joshturner.org -joshuadweston.com -josicmo.site -josivangkia341.tk -josjihaan541.cf -josjismail.com -josnarendra746.tk -josnurul491.ga -josontim2011.com -jososkkssippsos8910292992.epizy.com -josprayugo291.tk -josresa306.tk -josrustam128.cf -josse.ltd -josuajfr.shop -josyahya751.tk -jotmail.ml -jotqo.xyz -jotyaduolchaeol2fu.cf -jotyaduolchaeol2fu.ga -jotyaduolchaeol2fu.gq -jotyaduolchaeol2fu.ml -jotyaduolchaeol2fu.tk -jouasicni.ga -jouasicni.gq -jouasicni.ml -jouasicni.tk -journalismcoursesusa.com -journalistiek.works -journalistuk.com -journalmy.ru -journeyliquids.com -journeylocal.com -journeys.group -jourrapide.com -jouwbhv.com -jouwplatform.shop -jovianorbit.com -jovo.app -jowabols.com -joy-sharks.ru -joybc.net -joyberryjam.com -joycasino-m.net -joycedu.xyz -joyceeaglestone.com -joydeal.hk -joyexporthub.info -joyfulczzp.space -joyfullife.style -joyfullwing.com -joygoods.space -joyispain.com -joyledhe.cf -joyledhe.ga -joyledhe.gq -joyledhe.ml -joyledhe.tk -joynet.info -joyoriginalhub.website -joysclick.ru -joytakip.xyz -joytoliveproducts.net -jozusai3.online -jp-morgan.cf -jp-morgan.ga -jp-morgan.gq -jp-morgan.ml -jp-news10.net -jp-news12.net -jp-news13.net -jp-skincare.info -jp.com -jp.ftp.sh -jp.hopto.org -jp1w.buzz -jp4420.com -jp4999.com -jp6188.com -jp727.com -jp888.com -jpacg.com -jpanel.xyz -jpapa.ooo -jparaspire.com -jpbum.com -jpchannels.info -jpco.org -jpcoachoutletvip.com -jpcservicesinc.com -jpdf.site -jpemail.club -jpemail.xyz -jpggh76ygh0v5don1f.cf -jpggh76ygh0v5don1f.ga -jpggh76ygh0v5don1f.gq -jpggh76ygh0v5don1f.ml -jpggh76ygh0v5don1f.tk -jphousecleaningsvcs.com -jpinvest.ml -jpjgroupplc.com -jpjtdv.site -jpkparishandbags.info -jpleadershipcourse.com -jpmoe.com -jpnar8q.pl -jpo48jb.pl -jppradatoyou.com -jppsqc.site -jprealestate.info -jprine.com -jprnu.live -jpsong.com -jpsqcaub.tech -jptb2motzaoa30nsxjb.cf -jptb2motzaoa30nsxjb.ga -jptb2motzaoa30nsxjb.gq -jptb2motzaoa30nsxjb.ml -jptb2motzaoa30nsxjb.tk -jptogel.online -jptunyhmy.pl -jpuggoutlet.com -jpuser.com -jpwoxm.info -jpzgjh.org -jq310.site -jq4zdy.com -jq59.xyz -jq882.site -jqblog.com -jqgarden.com -jqgnxcnr.pl -jqj03.com -jqjlb.com -jqkaemail.tk -jqkpoker.info -jqkpoker.net -jqkpoker.org -jqlyu.us -jqool.com -jqqwv.site -jqrolmvkq.shop -jqt0wg.info -jquerys.net -jquyji.icu -jqvwjo.us -jqweblogs.com -jqwgmzw73tnjjm.cf -jqwgmzw73tnjjm.ga -jqwgmzw73tnjjm.gq -jqwgmzw73tnjjm.ml -jqwgmzw73tnjjm.tk -jqwns2.us -jqx9zy.us -jqyy6.us -jr0emu.host -jr46wqsdqdq.cf -jr46wqsdqdq.ga -jr46wqsdqdq.gq -jr46wqsdqdq.ml -jr46wqsdqdq.tk -jralalk263.tk -jrcs61ho6xiiktrfztl.cf -jrcs61ho6xiiktrfztl.ga -jrcs61ho6xiiktrfztl.gq -jrcs61ho6xiiktrfztl.ml -jrcs61ho6xiiktrfztl.tk -jredm.com -jrejfrrfgkew10.host -jrgkew1.host -jri863g.rel.pl -jrinkkang97oye.cf -jriversm.com -jrjrj4551wqe.cf -jrjrj4551wqe.ga -jrjrj4551wqe.gq -jrjrj4551wqe.ml -jrjrj4551wqe.tk -jrntmenoh.shop -jroxmv.site -jrqtgq.icu -jrrich.info -jrtcwabd.shop -jrudgsqq.shop -jruvz.icu -jryt7555ou9m.cf -jryt7555ou9m.ga -jryt7555ou9m.gq -jryt7555ou9m.ml -jryt7555ou9m.tk -js-fks.com -js0871.com -js10012.com -js10013.com -js10015.com -js33a.com -js99922.com -jscrip.com -jsctaynguyen.net -jsdbxd.com -jsdginfo.com -jsdwqz.site -jsellsvfx.com -jsfc88.com -jsftitle.icu -jsgtdsf12.com -jshrtwg.com -json-check.best -json24.com -jsonp.ro -jspvm.com -jsqcz.com -jsquaredigital.com -jsrqa.us -jsrsolutions.com -jssd.email -jssdikpd.ga -jssghengheng.com -jstarmarketing.com -jstart.com -jstatic.org -jstln.com -jstongge.com -jstzamo.com -jsvcw.live -jsvojfgs.pl -jsw119.com -jsweetuni.icu -jswfdb48z.com -jsyant.tokyo -jszmail.com -jszuofang.com -jt-369.com -jt2ezza.com -jt5ntn.us -jt90.live -jtabusschedule.info -jtansa.com -jtcote.net -jtdesantis.org -jtelwb.ml -jtfashionss.com -jtfdirect.com -jtfdiscountclubonline.com -jtfdiscountonline.com -jtfdiscountstore.com -jtfhomeandgarden.com -jtfonline.com -jtfoutlet.com -jtfpromo.com -jtfretailclubonline.com -jtfrgo.site -jtfshopping.com -jtgwpv.site -jtheband.com -jtjmtcolk.pl -jtkgatwunk.cf -jtkgatwunk.ga -jtkgatwunk.gq -jtkgatwunk.ml -jtkgatwunk.tk -jtm-2030.com -jtmalwkpcvpvo55.cf -jtmalwkpcvpvo55.ga -jtmalwkpcvpvo55.gq -jtmalwkpcvpvo55.ml -jtmalwkpcvpvo55.tk -jto.kr -jtovjcat.shop -jtownbikeweek.org -jtpa.net -jtpcgg.us -jtrcc.us -jtst.dev -jtvtad.tokyo -jtw-re.com -jtwnfc.icu -jtzjsc.com -ju566.net -jualherbal.top -juarabola.org -juarabola.site -juarakiukiu.com -jubilate.site -jucky.net -judabla.cf -judabla.ga -judabla.gq -judabla.tk -juddcomm.com -judethomas.info -judgedoug.us -judgeweav.xyz -judglarsting.cf -judglarsting.ml -judglarsting.tk -judgteso.cf -judgteso.ga -judgteso.tk -judibola07.com -judibola118.com -judicialnetwork.org -judiking4d.net -judimag.com -judipasar.online -judipasar.site -judipasar.xyz -judiremi.com -judybernard.com -jue.lu -jue12s.pl -jueg.app -juegabet.net -juegos.ninja -juegos13.es -jug1.com -jugglepile.com -jugqsguozevoiuhzvgdd.com -juhuagu.net -juice-garden.cash -juicephoenixmedia.site -juicermachinesreview.com -juicervital.com -juicerx.co -juiceyvapemods.com -juicy-couturedaily.com -juicynewsdaily.club -juicyvogue.com -juikonaser.tk -juiupsnmgb4t09zy.cf -juiupsnmgb4t09zy.ga -juiupsnmgb4t09zy.gq -juiupsnmgb4t09zy.ml -juiupsnmgb4t09zy.tk -jujinbox.info -jujitsushop.biz -jujitsushop.com -jujj6.com -jujucheng.com -jujuinbox.info -jujuso.com -jujusou.com -jujuspot.com -jujutata.com -julaha.xyz -julc4a.us -juliafinnegan.com -julian.buzz -juliaotilia.cloud -juliawang.online -julie74.com -juliekitchen.com -juliethouse.co -juliett.november.webmailious.top -julihouse.co -juliman.me -juliustothecoinventor.com -jullieta.info -jullieta.net -julnic.ru -julymovo.com -julysart.ru -julz-a.com -juma.store -jumaelda4846.ml -jumanindya8240.cf -jumaprilia4191.cf -jumba.shop -jumbo-casino.com -jumbo-chinese.com -jumbo4d.club -jumbogumbo.in -jumbotime.xyz -jumbunga3502.cf -jumeiliangpin.com -jumgita6884.tk -jumlamail.ml -jumlatifani8910.tk -jummario7296.ml -jummayang1472.ml -jumnia4726.ga -jumnoor4036.ga -jumnugroho6243.cf -jumonji.tk -jumossi51.ml -jumpborder.com -jumpdada.com -jumperhighs.ru -jumperocio.com -jumpingsemaphore.space -jumpman23-shop.com -jumpmicro.com -jumponopgq.space -jumps.online -jumpvillagelest.website -jumpy5678.cf -jumpy5678.ga -jumpy5678.gq -jumpy5678.ml -jumpy5678.tk -jumrestia9994.ga -jumreynard5211.ml -jumreza258.tk -jumveronica8959.tk -jun8yt.cf -jun8yt.ga -jun8yt.gq -jun8yt.ml -jun8yt.tk -junan2018.com -junasboyx1.com -junaudio.site -junclutabud.xyz -juncoarte.com -junctiondx.com -junemovo.com -junetwo.ru -jungkamushukum.com -jungle-experience-kp.com -junglegymclimbing.com -junglehomewares.shop -jungleparts.net -junior-rowing.com -juniorcarrillo.tech -junioriot.net -juniorlinken.com -junk.beats.org -junk.googlepedia.me -junk.ihmehl.com -junk.noplay.org -junk.to -junk.vanillasystem.com -junk1e.com -junkgrid.com -junkland.net -junklessmaildaemon.info -junklovehome.com -junkmail.com -junkmail.ga -junkmail.gq -junkmassarie.com -junkouture.com -junkyardpalmdale.com -junnuok.com -junostore.site -junrecetas.com -junrongonline.com -juntaupwardmercy.site -juo.com -juoksutek.com -jupimail.com -jupiterblock.com -jupiterlab.ml -jupiterm.com -jupitertd.ru -jur-likbez.ru -jurabet101.com -jurabet102.com -jurabet103.com -jurcasinorock.ru -jurgisdidziulis.com -jurisfisca.cd -jurnaliki.com -jurrevhvn.shop -jurts.online -jurvansuu.org -jusdawho.tk -jusefuli.club -jusefuli.info -jusefuli.life -jusefuli.xyz -jusemao.xyz -juski.site -jusomoa05.com -jusomoa06.com -just-email.com -just-games.ru -just-newsit.site -just.partners -just4fun.me -just4spam.com -just9ja.com -justademo.cf -justafou.com -justanothergrace.kim -justbaavideos.com -justbegood.pw -justbestmail.co.cc -justbet.world -justbigbox.com -justblueclubappnew.ru -justbrewit.org -justclean.co.uk -justcook.su -justdeals.net -justdoiit.com -justdoit132.cf -justdoit132.ga -justdoit132.gq -justdoit132.ml -justdoit132.tk -justdomain84.ru -justdrink.shop -justemail.ml -justen.rocks -justenmartin.dev -justfcfr.online -justforclicks.com -justfreemails.com -justfun88.com -justgetitdone.vision -justhotleads.com -justiceacrossborders.org -justiceneverquits.com -justicewoodworks.com -justifans.ru -justin.reviews -justinachang.com -justinandlaura.com -justinandlauren.com -justinbet.fun -justinbiebershoesforsale.com -justinet237.com -justinlovemastiffs.com -justintrend.com -justintv.us -justinwelch.dev -justiphonewallpapers.com -justitnews.site -justjuss.shop -justlibre.com -justlynhfks.email -justmagicalevents.org -justmailorderbrides.com -justmailservice.info -justmet.world -justmiret.site -justmysocks5.net -justmysocks6.net -justmysocks7.net -justnope.com -justnowmail.com -justoldschool.com -juston-latinbeat.com -justonemail.net -justonetworks.site -justpcix.online -justpoleznoe.ru -justpositiveweblog.club -justrbonlinea.co.uk -justre.codes -justreadit.ru -justruninabox.com -justsend.online -justshoes.gq -justsport.tech -justsporttoday.online -justtick.it -justtoy.ru -justweddingband.com -justweddingplans.com -justxxx.site -justyland.ru -juts.us -juusbaa.com -juusecamenerdarbun.com -juveajon.cf -juveajon.ga -juveajon.gq -juveajon.ml -juveajon.tk -juvenileeatingdisordertreatment.com -juventudecuatoriana.com -juxingcai.org -juxtaposejs.com -juyouxi.com -juyttzaaq.tk -juyuanfen.com -juyuncai.com -juzab.com -juzfc.us -juzhong56.com -jv6hgh1.com -jv7ykxi7t5383ntrhf.cf -jv7ykxi7t5383ntrhf.ga -jv7ykxi7t5383ntrhf.gq -jv7ykxi7t5383ntrhf.ml -jv7ykxi7t5383ntrhf.tk -jv9wdq.us -jvdailypick.com -jvhclpv42gvfjyup.cf -jvhclpv42gvfjyup.ml -jvhclpv42gvfjyup.tk -jvimail.com -jvk84x-mail.xyz -jvlbigband.ru -jvlicenses.com -jvo5iw.us -jvoqotvi.tech -jvsdailypick.com -jvswoznq.shop -jvvr.email -jvx21.com -jvyomi.icu -jvz18.com -jw-hot.com -jwbeh.live -jwcdi.com -jwf.email -jwguanacastegolf.com -jwheim.com -jwk4227ufn.com -jwl3uabanm0ypzpxsq.cf -jwl3uabanm0ypzpxsq.ga -jwl3uabanm0ypzpxsq.gq -jwlying.com -jwom.ru -jwork.ru -jwoug2rht98plm3ce.cf -jwoug2rht98plm3ce.ga -jwoug2rht98plm3ce.ml -jwoug2rht98plm3ce.tk -jwoxy.com -jwptesiiv.shop -jwpwnzobs.shop -jwrtfm.net -jwsei.club -jwtukew1xb1q.cf -jwtukew1xb1q.ga -jwtukew1xb1q.gq -jwtukew1xb1q.ml -jwtukew1xb1q.tk -jx-club.ru -jx2team.online -jx575.com -jx576.com -jx71582.com -jxcp365.com -jxcyzw.com -jxfpbv.icu -jxgj777.com -jxgqkw.site -jxgrc.com -jxji.top -jxjyi.com -jxjyzz.com -jxoo.us -jxq14.site -jxsbby.com -jxtmsicsc.ml -jxyh168.com -jxyzu.com -jy.biz -jycaqi.info -jydocnqz.shop -jyecuh.cf -jyfc88.com -jyh2888.com -jyliananderik.com -jymfit.info -jymu.site -jyn4.us -jynmxdj4.biz.pl -jype.ru -jypm5.us -jyrbayli9jezk4i.xyz -jyrki.me -jytewwzz.com -jytwf.icu -jyy66.space -jyzaustin.com -jyzhuji.com -jz118899.com -jz50180.com -jzcfto.us -jzfqcckqk.tk -jzfswn.com -jzhkby.us -jziad5qrcege9.cf -jziad5qrcege9.ga -jziad5qrcege9.gq -jziad5qrcege9.ml -jziad5qrcege9.tk -jzib.biz -jzkn1.us -jzsp8r.com -jzxlink.xyz -jzxsportgw.xyz -jzxsportipom.xyz -jzzxbcidt.pl -k-12stem.org -k-d-m.de -k-l-k.ru -k-mail.top -k-net.online -k-response.com -k.fido.be -k.polosburberry.com -k.schimu.com -k02sx.com -k0g8aww.best -k0mzao.us -k0ujhl.us -k101.hosteko.ru -k105.club -k1069.com -k111.club -k115.club -k11wf.com -k12hw.net -k15ri.space -k17tcth11b.me -k1bob.com -k1etvm.us -k1ftcgr8.xyz -k1h6cy.info -k1q4fqra2kf.pl -k2-zero.com -k2dfcgbld4.cf -k2dfcgbld4.ga -k2dfcgbld4.gq -k2dfcgbld4.ml -k2dfcgbld4.tk -k2eztto1yij4c.cf -k2eztto1yij4c.ga -k2eztto1yij4c.gq -k2eztto1yij4c.ml -k2eztto1yij4c.tk -k2idacuhgo3vzskgss.cf -k2idacuhgo3vzskgss.ga -k2idacuhgo3vzskgss.gq -k2idacuhgo3vzskgss.ml -k2idacuhgo3vzskgss.tk -k2kgab2uxxpoiwg.xyz -k31wsx.us -k33s.club -k34k.com -k3663a40w.com -k377.me -k3bbgnk72oake6e.xyz -k3opticsf.com -k3rx8f.us -k3tfb8.us -k3wa8y-mail.xyz -k3zaraxg9t7e1f.cf -k3zaraxg9t7e1f.ga -k3zaraxg9t7e1f.gq -k3zaraxg9t7e1f.ml -k3zaraxg9t7e1f.tk -k4afcp-mail.xyz -k4ds.org -k4exffd51yzwu77.xyz -k4fl2v.us -k4oshn.us -k4tbtqa7ag5m.cf -k4tbtqa7ag5m.ga -k4tbtqa7ag5m.gq -k4tbtqa7ag5m.ml -k4tbtqa7ag5m.tk -k59ula.info -k60.info -k6556.com -k6g4mvd5.xyz -k6l0gy.us -k78qp.com -k7k5tuccmaptnsc.xyz -k80fv.space -k82323.com -k84r5e.us -k8bnfweqq.xyz -k8dwsb.us -k8r0ml.us -k8w329-mail.xyz -k95iqh.com -k98.fun -k99.fun -k9ifse3ueyx5zcvmqmw.cf -k9ifse3ueyx5zcvmqmw.ga -k9ifse3ueyx5zcvmqmw.ml -k9ifse3ueyx5zcvmqmw.tk -k9teens.com -k9wc559.pl -ka-naslednik.ru -ka1ovm.com -ka1ovm.net -ka9kckl07g0erfh.xyz -kaafein.com -kaakaao.com -kaaleej.com -kaapiroyalecoffee.com -kaaw39hiawtiv1.ga -kaaw39hiawtiv1.gq -kaaw39hiawtiv1.ml -kaaw39hiawtiv1.tk -kabab.ga -kabare.cd -kabareciak.pl -kabarunik.xyz -kabbala.com -kabelnsk.ru -kabiny-prysznicowe-in.pl -kabiny-prysznicowe.ovh -kabirsigh.ga -kablee.net -kabo-verde-nedv.ru -kabonusmania.com -kabukio.com -kabumarkets.site -kabuumcraft.online -kaceyahouse.co -kachargina.ru -kaciekenya.webmailious.top -kaconri.cf -kaconri.gq -kaconri.ml -kaconri.tk -kacose.xyz -kad00.cf -kad00.ga -kad00.gq -kad00.ml -kad01.cf -kad01.ga -kad01.gq -kad01.ml -kad02.cf -kad02.ga -kad02.gq -kad02.ml -kad03.cf -kad03.ga -kad03.gq -kad03.ml -kad04.cf -kad04.ga -kad04.gq -kad04.ml -kad11.cf -kad11.ga -kad11.gq -kad11.ml -kad14.cf -kad14.ga -kad14.ml -kad15.cf -kad15.ga -kad15.ml -kadachigov.ru -kadag.ir -kademen.com -kadeshop.site -kadett-e.info -kadingir.org -kadinsibakis.online -kadinsibakis.xyz -kadokawa.cf -kadokawa.ga -kadokawa.gq -kadokawa.ml -kadokawa.tk -kadokawa.top -kadrajmagazin.xyz -kadw.xyz -kaefv.us -kaengu.ru -kaewvscnb.shop -kafai.net -kaffe.nu -kafrem3456ails.com -kagi.be -kagta0.us -kaguya.tk -kah.pw -kahndefense.com -kahootninja.com -kahramanmarashaberler.xyz -kahramanmarasprefabrikyapi.xyz -kahveperest.com -kaialiikahele.com -kaidh.xyz -kaigojdob.online -kaijenwan.com -kaiju.live -kailaitakeaway.com -kaiqumb.com -kairo-lottery.info -kairo-lottery.net -kaisa365.org -kaishinkaidojoseattle.com -kaishinkaiseattle.com -kaiwh.us -kaixinpet.com -kaizenga.com -kaj3goluy2q.cf -kaj3goluy2q.ga -kaj3goluy2q.gq -kaj3goluy2q.ml -kaj3goluy2q.tk -kajgnpuan.shop -kajsdtjksr14826.ga -kajsdtjksr14826.ml -kajsdtjksr14826.tk -kajsdtjksr35350.ga -kajsdtjksr35350.ml -kajsdtjksr35350.tk -kajsdtjksr54026.ml -kajsdtjksr54026.tk -kajsdtjksr60638.ml -kajsdtjksr60638.tk -kajsdtjksr82538.ml -kajsdtjksr87901.cf -kajsdtjksr87901.ga -kajsdtjksr87901.ml -kajsdtjksr87901.tk -kajsdtjksr88142.cf -kajsdtjksr91608.cf -kajsdtjksr91608.ml -kajsdtjksr91608.tk -kajsdtjksr94922.cf -kajsdtjksr94922.ga -kajsdtjksr94922.ml -kajsdtjksr94922.tk -kak-gotovit-prosto.ru -kak-gotovit-vkusno.ru -kakadua.net -kakao.world -kakaofrucht.de -kakasgp.info -kakashi1223e.cf -kakashi1223e.ga -kakashi1223e.ml -kakashi1223e.tk -kakbankrot.xyz -kakekbet.com -kakismotors.net -kaksmail.com -kaku92.com -kaku97.com -kalaf.tech -kalagar.net -kalamani.website -kalapi.org -kalebet157.com -kalebet519.com -kalebet530.com -kalebet541.com -kalebet544.com -kalebet546.com -kalebet550.com -kalebet638.com -kalebet643.com -kalebor.com -kalemler.cf -kalemler.ga -kalemler.tk -kalemproje.com -kalemsiz.ml -kalemsiz.tk -kalerno.club -kalford.best -kalifragilistic.us -kalitebet4.com -kalitebet6.com -kalitebet9.com -kalixfinans.se -kaljakartta.com -kallaicaseyrealtor.com -kalmhain.net -kaloolas.shop -kalpazangfb.cf -kalsesli.xyz -kaltimpoker.com -kalvertgroup.com -kalyanhut.ru -kamagra-lovegra.com.pl -kamagra.com -kamagra.org -kamagra100mgoraljelly.today -kamagraonlinesure.com -kamagraoraljelly.website -kamagrasklep.com.pl -kamax57564.co.tv -kamchajeyf.space -kamclip.ru -kamen-market.ru -kamenrider.ru -kamgorstroy.ru -kamhl.com -kamibakier.com -kamien-naturalny.eu -kamillight.cf -kamillight.ml -kamillight.tk -kamillightgs.ml -kamillightgs.tk -kamin-hous.ru -kamin-online.ru -kamin-portal.ru -kamismail.com -kamizellki-info.pl -kammerer-allen.com -kammmo.com -kammmo12.com -kamostand.site -kampoeng3d.club -kampouts.com -kampspor.com -kampuspedia.tech -kampwa.com -kamryn.ayana.thefreemail.top -kamsg.com -kamu-sudahh.top -kamucerdas.com -kamuihale.org -kamvoda.site -kamx0-nacal.ru -kan2222.com -kana-entertainment.com -kana420.site -kanada-nedv.ru -kanansoldit.com -kanarian-nedv.ru -kanbantasks.com -kanbin.info -kanciang.faith -kandersa.online -kandidoz.info -kandrai.tips -kandymail.com -kanganstx.net -kangcaiwang.xyz -kangeasy.com -kangenlifetime.com -kangenshui.com -kangentruewealth.com -kangenwaterpilipinas.com -kangirl.com -kangkunk44lur.cf -kangmipon.cf -kangmipon.ga -kangmipon.gq -kangmipon.ml -kangmipon.tk -kangsmo.ru -kanhaoni.com -kanhaoni.org -kanjiukan.com -kankabal.com -kankankankan.com -kanker.website -kanmathi.shop -kannada.com -kannapolisdentists.com -kanoodle-navan.com -kansasadoption.org -kansasboas.com -kansascitypigrescue.org -kansascityquote.com -kansascitystreetmaps.com -kansasquote.com -kanum-thai-park-west.com -kanzanishop.com -kanzhubo.xyz -kanzlider64.ru -kaodesar.tk -kaoqwr.us -kaovo.com -kaoyoo.group -kaoyoo.net -kaphoe.site -kapidanjskt82215.cf -kapidanjskt82215.ga -kapidanjskt82215.ml -kapidanjskt82215.tk -kapieli-szczecin.pl -kapikapi.info -kapital.netmail.tk -kapitalbuks.ru -kapitulin.ru -kaplazanv2.tk -kapnik.ru -kapody.info -kappala.info -kappka.site -kapprof.com -kapptiger.com -kapstroyservice.ru -kaptina.ru -kaptsittia.cf -kaptsittia.gq -kaptsittia.ml -kaptsittia.tk -kapumamatata.cf -kapumamatata.ga -kapumamatata.gq -kapumamatata.ml -kapumamatata.tk -kapustanet.ru -karabas777.ru -karabukburada.xyz -karabukciceksiparisi.xyz -karabukluyuz.xyz -karadiners.site -karam.host -karamanbasari.com -karamanbasari.xyz -karamanrehber.xyz -karamansoneremlak.com -karamanvitrin.xyz -karamelbilisim.com -karangtelurvusuk-store21.com -karaoke-spider.ru -karaokemike.ru -karapuz.ru -karataylisesi.xyz -karatebeltsanduniforms.com -karateslawno.pl -karateuniformsandbelts.com -karatraman.ml -karbonbet.com -karcherparts.info -karcherpremium.online -kareemshammout.com -kareicon.org -karel-bani.ru -karelklosse.com -karement.com -karenbarnaby.com -karengostudy.com -karenmillendress-au.com -karenmillenoutletea.co.uk -karenmillenoutleter.co.uk -karenmillenuk4s.co.uk -karenmillenuker.co.uk -karennews.com -kareto.xyz -karfashion.store -kargokazan.ru -karibbalakata.cf -karibbalakata.ga -karibbalakata.gq -karibbalakata.ml -karibbalakata.tk -karibu-piratai.ru -karichisholm.com -karier-holding.ru -karina-strim.ru -karinmk-wolf.eu -kariotor.online -kariplan.com -karitas.com.br -karizmakala.com -karkaspen.ru -karldeleon.com -karma.show -karnali.best -karnatakaedu.info -karofur.online -karou.best -karovale3.com -karpathos.sk -karpsr.site -karridea.com -karsers.ru -karsiyakadenizsurucukursu.com -karsiyakaeml.xyz -karsiyayukle.ml -karsiyayukle.tk -karso.info -karster.site -karta-kykyruza.ru -karta-tahografa.ru -kartal-store.com -kartalodge.xyz -kartaskiipim.com -kartel46.ru -kartinari65.club -kartinohigh.ru -kartk5.com -kartpardakht.xyz -kartsitze.de -kartu8m.com -kartu8m.org -kartugaple.org -kartuhoki.biz -kartujituceme.com -kartuliga.poker -kartupoker.us -karturoyalking.com -kartustraightflush.com -kartvelo.com -kartvelo.me -kartykredytowepl.info -kartyusb.pl -karuniapoker.net -karusel-kard.ru -karuselsp.ru -karya4d.org -karyatogel.net -karyatoto.com -karyatoto.net -karzpay.xyz -kas-cenas.com -kasak.cf -kasandra.ga -kasandra.ml -kasandraava.livefreemail.top -kasandrav2.tk -kasankanationalpark.org -kasdelta.ru -kasdewhtewhrfasaea.vv.cc -kaserdase.cf -kaseroutr.cf -kasevdeneve.online -kasevdeneve.xyz -kaseyshop.com -kashel.info -kashenko.site -kashi-sale.com -kashimeihin.xyz -kashmirindian.com -kasian.ru -kasiatee.com -kasikk41676.ml -kasikk41676.tk -kasikk56345.ml -kasikk70545.ml -kasikk71324.cf -kasikk88988.ml -kasikk88988.tk -kasikk96402.ml -kasilohiter.website -kasino-spin-city.online -kasking33.com -kasking88sport.com -kasko-agent.ru -kasko-group.ru -kaskus.fun -kaskuslive.com -kasmabirader.com -kasmail.com -kasmirkebabhouse.com -kasper.uni.me -kaspop.com -kassenbon.cloud -kastamonugezi.xyz -kastamonuyogder.xyz -kastapolikas.ga -kastavillam.xyz -kasthouse.com -kastnomiu.gq -kastsono.cf -kastsono.ga -kastsono.gq -kasucako.site -kat-777.com -kat-net.com -katakidz.com -katalogstronstron.pl -katamo1.com -katanyoobattery.com -katarinakp.se -katava.ru -katcang.tk -katco.cd -katergizmo.de -katespade-factory.com -katesport.club -katherinemurphy55places.com -katherineyan.dev -kathleenkellet.com -kathmandumart.net -kathymackechney.com -kathyraysellshomes.online -kathyschneiders.com -kathysthings.com -katie11muramats.ga -katieclemens.com -katieclemmons.com -katieclemons.net -katieclemons.org -katiina.com -katipa.pl -katipo.ru -katipunankrafts.com -katlas.best -katomcoupon.com -katonoma.com -katra.ovh -katsfastpaydayloans.co.uk -katsuri-lucan.com -kattenstore.com -kattmanmusicexpo.com -katwassenaar.com -katyeymann.com -katyperrytourblog.com -katztube.com -katzwyfy.shop -kaufshop.ru -kauinginpergi.cf -kauinginpergi.ga -kauinginpergi.gq -kauinginpergi.ml -kaukab.store -kavabox.com -kavbc6fzisxzh.cf -kavbc6fzisxzh.ga -kavbc6fzisxzh.gq -kavbc6fzisxzh.ml -kavbc6fzisxzh.tk -kavbet70.com -kavbet71.com -kavbet72.com -kavisto.ru -kavory.site -kavxx.xyz -kavxxx.xyz -kavysy.info -kawacyi3.online -kawaiiproject.com -kawaiishojo.com -kawaipokemalaga.com -kawasakihavaliyedekparca.com -kaws4u.com -kawu.site -kawy-4.pl -kaxks55ofhkzt5245n.cf -kaxks55ofhkzt5245n.ga -kaxks55ofhkzt5245n.gq -kaxks55ofhkzt5245n.ml -kaxks55ofhkzt5245n.tk -kayaemlaksusanoglu.com -kayaqq.com -kaye.ooo -kaygob.info -kayipesyadepolari.com -kaykaykay.net -kaymima.ga -kaymima.gq -kaymima.ml -kaysartycles.com -kayserigirls.com -kayserisucuklari.xyz -kayvsj.us -kayyra.tk -kazaf.ru -kazan-elki.ru -kazan-hotel.com -kazan-nedv.ru -kazansana47.com -kazansana57.com -kazelink.ml -kazi.cd -kazimirovo.ru -kazinoblackjack.com -kazinocorona.com -kazper.net -kb-222.com -kb7.app -kb7h1.us -kbaf2v.us -kbakvkwvsu857.cf -kbbxowpdcpvkxmalz.cf -kbbxowpdcpvkxmalz.ga -kbbxowpdcpvkxmalz.gq -kbbxowpdcpvkxmalz.ml -kbbxowpdcpvkxmalz.tk -kbcfikhyh.shop -kbclu.us -kbdevelop.net -kbdjvgznhslz.ga -kbdjvgznhslz.ml -kbdjvgznhslz.tk -kbellebeauty.com -kbhufd.site -kbiac.com -kbjnx1.site -kblaoshi.com -kblim.us -kbmei.com -kbox.li -kbscnp.tokyo -kbt-234.com -kbt-33.com -kbt-345.com -kbt-365.com -kbt-55.com -kbtblh.com -kbvqfr.com -kbwventures.com -kbzdl1.site -kc-kenes.kz -kc-leasemanagement.com -kc-ufa.ru -kc123app.com -kc1590.com -kc2888.com -kc3fsx.net -kc59.xyz -kc6888.com -kc8pnm1p9.pl -kc9888.com -kc9983.com -kc9985.com -kcba.xyz -kcdrivewaysealing.com -kcf7lv.us -kchkch.com -kcldps.tokyo -kclkuiah.xyz -kcorcm.site -kcrw.de -kcs-th.com -kctoto.site -kcuxfb.us -kcxdi2.com -kcyjfp.rest -kczgjx.com -kd-attractive-bg.site -kdc.support -kdeos.ru -kdfgedrdf57mmj.ga -kdgpht.site -kdgreat.ru -kdh.kiwi -kdjfvkdf8.club -kdjhemail.com -kdjngsdgsd.tk -kdk-opt.ru -kdl8zp0zdh33ltp.ga -kdl8zp0zdh33ltp.gq -kdl8zp0zdh33ltp.ml -kdl8zp0zdh33ltp.tk -kdpgzzh.com -kdpxae.com -kdrplast.com -kdswdg.host -kdtuo.live -kdublinstj.com -kdwaxdzt.shop -kdweed.com -kdzrgroup.com -ke3981.com -ke3996.com -ke3998.com -ke3999.com -ke4004.com -ke4005.com -ke4006.com -ke4008.com -keatonbeachproperties.com -keauhoubaybeachresort.com -keauhoubayresort.com -keauhouresortandspa.com -kebab-house-takeaway.com -kebabamirsafriedchickenmadrid.com -kebabestambulvalenzabarbadas.com -kebabgironacoloma.com -kebabhouse-kilkenny.com -kebabhouse-laois.com -kebabishcosladacoslada.com -kebl0bogzma.ga -kebmail.com -kec59.xyz -kecaleki.site -kecambahijo89klp.ml -kecasinos.com -kecgii.tokyo -ked6f9.us -kedikumu.net -kedipansiyonu.net -kedrovskiy.ru -kedwo.top -kedy6.us -keeble.biz -keecalculator.com -keeleproperties.com -keeleranderson.net -keelungqq59.xyz -keepactivated.com -keeperhouse.ru -keeperr.ru -keepillinoisbeautiful.org -keeplon.app -keeplucky.pw -keepmymail.com -keepmyshitprivate.com -keepntg.tk -keepoor.com -keepsave.club -keepthebest.com -keeptoolkit.com -keepyourshitprivate.com -kefyci.info -kegangraves.club -kegangraves.online -kegangraves.org -kegangraves.site -kegangraves.us -kegangraves.xyz -kehangatan.ga -kehonkoostumusmittaus.com -kein.hk -keinhirn.de -keinmail.com -keinpardon.de -keio-mebios.com -keipino.de -keiqpm.site -keiraicumb.cf -keiraicumb.ga -keirron31.are.nom.co -keistopdow.cf -keistopdow.ga -keistopdow.gq -keistopdow.ml -keistopdow.tk -keite-ro1.info -keithbukoski.com -keithurbanmates.net -keivosnen.online -keizercentral.com -kejenx.com -kejw1t.us -kek.institute -kekecog.com -kekita.com -kekote.xyz -keks.page -kelantanfresh.com -kelasio.website -kelaskonversi.com -kelebekcorap.xyz -kelev.store -kelime.space -kellencole.com -kellerslableakcompanies.site -kelleyships.com -kelloggchurch.org -kellybagonline.com -kellyodwyer.ca -kellyodwyer.net -kellyrandin.com -keloahdsk12.xyz -kelor.ga -kelosolor.com -kelseyball.com -kelseyball.xyz -keluargabesarpeduli.club -keluruk.fun -kemail.com -kemailuo.com -kemampuan.me -kematary.ru -kembangpasir.website -kemeneur.org -kemerhanotel.xyz -kemexet.ru -kemfra.com -kemonkoreeitaholoto.tk -kemptvillebaseball.com -kemska.pw -kenal-saya.ga -kenaripoker.info -kenbaby.com -kenberry.com -kendallmarshallfans.info -kendalraven.webmailious.top -kendgeterla.website -kendineyemebn.tk -kendralust.club -kendrickzhu.xyz -kengriffeyoutlet.com -kenh13news.com -kenhdeals.com -kenhgiamgia.website -kenhqpvn.net -keniq.com -kenmaar.com -kenmorestoveparts.com -kennebunkportems.org -kennedy808.com -kennedywesternuniversity.com -kennethpaskett.name -kenney.codes -kennie.club -kennysmusicbox.com -kenshuwo.com -kenspeckle.site -kenstrong.info -kent1.rebatesrule.net -kent5.qpoe.com -kentbtt.com -kentg.co.cc -kenticocheck.xyz -kentspurid.cf -kentspurid.ga -kentspurid.gq -kentspurid.ml -kentspurid.tk -kenttenhaber.xyz -kentucky-inc.com -kentucky-indianalumber.com -kentuckyadoption.org -kentuckygamerss.com -kentuckyopiaterehab.com -kentuckyquote.com -kenvanharen.com -kenwestlund.com -kenyamedicine.com -kenyanfoodtx.us -kenyangsekali.com -kenyawild.life -kenyayouth.org -kenzo-official.ru -kenzoget.club -kenzototo.site -keobzmvii.pl -keort.in -keortge.org -keosdevelopment.com -kepeznakliyat.com -kepeztesisat.xyz -kepezun.xyz -kepler.uni.me -kepqs.ovh -keqptg.com -keralaairport.net -keraladinam.com -keralamserials.com -keralapoliticians.com -keralaproperty123.com -keramzit-komi.ru -keraorganica.ru -kerasine.xyz -keratinhairtherapy.com -keratontoto.info -keratosispilarisguide.info -kerchboxing.ru -kerclivhuck.cf -kerclivhuck.ga -kerclivhuck.ml -kerclivhuck.tk -kercosmetics.com -keremcan.tk -keremcan123.ml -kerfuffle.me -kerimhan.ga -kerimhanfb.ml -kerithbrookretreat.org -kerjqv.us -kermancerafair.com -kerneksurucukursu.com -kernersvilleapartments.com -kerrfamilyfarms.com -kerrilid.win -kerrmail.men -kerrytonys.info -kershostter.cf -kershostter.ga -kershostter.tk -kersp.lat -kerstinmai.com -kertasqq.com -kerupukmlempem.ml -kerupukmlempem.tk -kerupukmlempem1.cf -kerupukmlempem1.ga -kerupukmlempem2.cf -kerupukmlempem3.cf -kerupukmlempem3.ml -kerupukmlempem4.cf -kerupukmlempem4.ml -kerupukmlempem5.cf -kerupukmlempem6.cf -kerupukmlempem6.ml -kerupukmlempem7.cf -kerupukmlempem7.ga -kerupukmlempem8.ga -kerupukmlempem9.cf -kesehatantubuh.com -kesepara.com -kesetpremium.store -kesfiru.cf -kesfiru.ga -kesfiru.gq -kesfiru.ml -kesfiru.tk -kesiqadi.club -kespear.com -kesports.net -ketababan.com -ketabsar.com -ketcauviet.website -kethough51.tk -ketiksms.club -ketmirror.ru -ketnoicongnghe.net -keto-fr3.info -keto4life.media -ketoblazepro.com -ketocorner.net -ketodiet.info -ketodietbasics.org -ketodrinks.org -ketoflashfitclub.com -ketogenicrecipe.club -ketoke.info -ketonedealer.com -ketonewstrends.com -ketoproteinrecipes.com -ketorezepte24.com -ketoultramax.com -ketoxprodiet.net -ketpgede.cf -ketpgede.ga -ketpgede.ml -ketpgede.tk -ketsode.cf -ketsode.gq -ketsode.ml -ketsode.tk -kettcopla.cf -kettcopla.ga -kettcopla.gq -kettcopla.ml -kettcopla.tk -kettlebellfatburning.info -kettles.info -ketule.info -keuad.us -keupartlond.cf -keupartlond.ga -keupartlond.gq -keupartlond.ml -keupartlond.tk -kev.com -kev7.com -keverb-vreivn-wneff.online -kevertio.cf -kevertio.ml -kevertio.tk -kevin7.com -kevincramp.com -kevinekaputra.com -kevinhanes.net -kevinkrout.com -kevinschneller.com -kevintrankt.com -kevm.org -kevu.site -kewkece.com -kewl-offers.com -kewlmail.info -kewrg.com -kewupy.info -kexi.info -kexukexu.xyz -key--biscayne.com -key-mail.net -key-windows-7.us -key2funnels.com -keyboardsshop.life -keycaps.win -keydcatvi.cf -keydcatvi.ga -keydcatvi.ml -keydcatvi.tk -keyesrealtors.tk -keyfood-lb.net -keygenninjas.com -keyifiptv.com -keykazan.ru -keykeykelyns.cf -keykeykelyns.ga -keykeykelyns.gq -keykeykelyns.ml -keykeykelyns.tk -keykeykelynss.cf -keykeykelynss.ga -keykeykelynss.gq -keykeykelynss.ml -keykeykelynss.tk -keykeykelynsss.cf -keykeykelynsss.ga -keykeykelynsss.gq -keykeykelynsss.ml -keykeykelynsss.tk -keykeykelynz.cf -keykeykelynz.ga -keykeykelynz.gq -keykeykelynz.ml -keykeykelynz.tk -keynoteplanner.com -keypreview.com -keyprocal.cf -keyprocal.gq -keyprocal.ml -keyprocal.tk -keyritur.ga -keyritur.gq -keyritur.ml -keyritur.tk -keysbb.com -keysinspectorinc.com -keysmedia.org -keystonemoldings.com -keystoneonebuyshomes.com -keytarbear.net -keytostay.com -keywestmuseum.com -keywestrealestateagents.com -keyword.design -keywordhub.com -keywordstudy.pl -keyzerbuilding.com -kf2ddmce7w.cf -kf2ddmce7w.ga -kf2ddmce7w.gq -kf2ddmce7w.ml -kf2ddmce7w.tk -kf8037.com -kfamilii2011.co.cc -kfark.net -kfcbet.asia -kffjf.live -kfgretgf.site -kfhgrftcvd.cf -kfhgrftcvd.ga -kfhgrftcvd.gq -kfhgrftcvd.ml -kfhgrftcvd.tk -kfs92.space -kfscr.ru -kfsp.email -kftcrveyr.pl -kftdcmmn.shop -kg-happy-pt.site -kg1cz7xyfmps.cf -kg1cz7xyfmps.gq -kg1cz7xyfmps.tk -kg4dtgl.info -kgalagaditransfrontier.com -kgb-rsfsr.su -kgb-sssr.su -kgcglobal.com -kgcp11.com -kgcp55.com -kgcp88.com -kgduw2umqafqw.ga -kgduw2umqafqw.ml -kgduw2umqafqw.tk -kgdxwx.site -kgelkdhm.website -kghf.de -kghfmqzke.pl -kghjpp.us -kgjuww.best -kgjwn.live -kgmail.us -kgmndh.xyz -kgohjniyrrgjp.cf -kgohjniyrrgjp.ga -kgohjniyrrgjp.gq -kgohjniyrrgjp.ml -kgohjniyrrgjp.tk -kgoodfamily.com -kgpnk.icu -kgqkay.site -kgt2in.us -kgxz6o3bs09c.cf -kgxz6o3bs09c.ga -kgxz6o3bs09c.gq -kgxz6o3bs09c.ml -kgxz6o3bs09c.tk -kgyzbm.us -kh0hskve1sstn2lzqvm.ga -kh0hskve1sstn2lzqvm.gq -kh0hskve1sstn2lzqvm.ml -kh0hskve1sstn2lzqvm.tk -kh1uz.xyz -kh1xv.xyz -kh75g.xyz -khabarkhan724.com -khachsandailac.com -khachsankimngan.com -khachsanthanhhoa.com -khadem.com -khafaga.com -khait.ru -khaitulov.com -khajatakeaway.com -khakiskinnypants.info -khalifahallah.com -khalinin.cf -khalinin.gq -khalinin.ml -khalinin.tk -khalpacor.cf -khalpacor.ga -khalpacor.gq -khalpacor.tk -khaltoor.com -khaltor.com -khaltor.net -khaltour.net -khamati.com -khan-tandoori.com -khan007.cf -khaneh.online -khanh688k.ga -khaosanholiday.biz -kharchy-zaim.ru -kharidenet.xyz -kharidetalaei.shop -khateb-alsunnah.com -khauhieu.website -khaze.xyz -khb23.space -khbfzlhayttg.cf -khbfzlhayttg.ga -khbfzlhayttg.gq -khbfzlhayttg.ml -khbfzlhayttg.tk -khbikemart.com -khea.info -khedgeydesigns.com -kheex.xyz -kheig.ru -khel.de -khezzelsiaflaskbuster.com -khfi.net -khgkrsxc.shop -khjadv.site -khlbws.online -khmer.loan -khnews.cf -khoabung.com -khoahochot.com -khoahocseopro.com -khoahocseoweb.com -khoastore.net -khoatoo.net -khocongnghe.net -khoi-fm.org -khoiho.com -khoinghiephalong.com -khongsocho.xyz -khorinis.org -khorshidi.xyz -khotuisieucap.com -khpci.xyz -khpkufk.pl -khpl.email -khruyu.us -khtyler.com -khujenao.net -khuong899.ml -khuyenmai.asia -khuyenmaiviet.website -khwtf.xyz -khyuz.ru -ki5co.com -ki7hrs5qsl.cf -ki7hrs5qsl.ga -ki7hrs5qsl.gq -ki7hrs5qsl.ml -ki7hrs5qsl.tk -kiabws.com -kiabws.online -kiancontracts.com -kiani.com -kiansat47.biz -kiaunioncounty.com -kiawah-island-hotels.com -kiayaschnaubelt.com -kibarasi2h.xyz -kibeho.xyz -kiber-magazin.ru -kiberkubik.ru -kiberlit.ru -kiboplatform.biz -kibriscikbeled.xyz -kibrisclubhizmeti.xyz -kibriscontinentalbank.com -kibriscontinentalbank.xyz -kibrisevtemizliksirketleri.com -kibrishabertv.xyz -kibrisilan.org -kibrisliavci.com -kibrisligazete.xyz -kibristasirketkur.com -kibristime.com -kibristurkhavayollari.xyz -kicaubet.online -kichco.com -kickasscamera.com -kickboxing4fitness.com -kickers-world.be -kickers.online -kickex.su -kickit.ga -kicklie.com -kickmark.com -kickmarx.net -kickmature.xyz -kickref.ru -kickskshoes.com -kickstartbradford.com -kickvictoria.com -kid-car.ru -kidalylose.pl -kidbemus.cf -kidbemus.gq -kidbemus.ml -kidbemus.tk -kiddiepublishing.com -kidesign.co.uk -kidfuture.org -kidlist.buzz -kids316.com -kidsarella.ru -kidsbirmingham.com -kidscy.com -kidsdiyideas.club -kidsenabled.org -kidsfitness.website -kidsgreatminds.net -kidsphuket.com -kidsphuket.net -kidspocketmoney.org -kidstory35.ru -kidswebmo.cf -kidswebmo.ga -kidswebmo.gq -kidswebmo.tk -kidtoy.net -kidworksacademy.com -kiejls.com -kiel-foto.com -kiepy.fun -kierafranklin.buzz -kieranasaro.com -kieranharte.dev -kiev-lottery.net -kiev-lottery.org -kiflin.ml -kigonet.xyz -kigwa.com -kiham.club -kijmjb.com -kik-store.ru -kiki.clothing -kiki.shopping -kikie.club -kikihu.com -kikivip.shop -kikoxltd.com -kiksorganicbeauty.com -kikuchifamily.com -kikuimo.biz -kil58225o.pl -kila.app -kilauqq.xyz -kildi.store -kilicerotomatikkapi.xyz -kilimino.site -kiliosios.gr -kiliskasifgenclik.com -kilkenny-curry-grill-house.com -kill-me.tk -killa.pro -killarbyte.ru -killarguitar.icu -killdred99.uk.com -killer-directory.com -killerelephants.com -killerwords.com -killgmail.com -killinglyelderlawgroup.com -killmail.com -killmail.net -killmasterino.site -killtheinfidels.com -kilo.kappa.livefreemail.top -kilo.sigma.aolmail.top -kilomando.site -kiloyard.com -kilton2001.ml -kilvi.biz -kim-rikil.ru -kim-tape.com -kimavet.website -kimberlyggfans.com -kimberlyxxfans.com -kimbral.umiesc.pl -kimchichi.com -kimfetme.com -kimfetsnj.com -kimfetsnx.com -kimfetspa.com -kimfetstx.com -kimhui.online -kimia.xyz -kimirsen.ru -kimmckoy.com -kimmygranger.xyz -kimouche-fateh.net -kimpro-77.com -kimpro-78.com -kimsalterationsmaine.com -kimsdisk.com -kimsesiz.cf -kimsesiz.ga -kimsesiz.ml -kimsesiz.tk -kimtex.tech -kimxxe.gq -kimyapti.com -kin-dan.info -kin1s.us -kinafex.icu -kinbam10.com -kinbam5.com -kinbam8.com -kinderaid.ong -kinderbook-inc.com -kinderspanish4k.com -kinderworkshops.de -kindleebs.xyz -kindlib.com -kindpostcot.cf -kindpostcot.gq -kindpostcot.ml -kindpostcot.tk -kindvenge.cf -kindvenge.ga -kindvenge.gq -kindvenge.ml -kindvenge.tk -kindvideo.ru -kinescop.ru -kinetic.lighting -kineticleadershipinstitute.net -king-bricks.com -king-csgo.ru -king-sniper.com -king-yaseen.cf -king.buzz -king2003.ml -king2r123.com -king33.asia -king368aff.com -king4dstar.com -kingairpma.com -kingbaltihouse.com -kingbetting.org -kingbillycasino3.com -kingblocks.com -kingchance.org -kingchances.info -kingclickcompany.ru -kingcontroller.cf -kingdentalhuntsville.com -kingding.net -kingdom-mag.com -kingdomaos.online -kingdomchecklist.com -kingdomhearts.cf -kingdomthemes.net -kingfun.info -kingfun79.com -kingfunonline.com -kingfunsg.com -kingfunvn.com -kingfuvirus.com -kinggame247.club -kinggame247.site -kingleo.us -kingly.store -kingmain.ru -kingnews1.online -kingnonlei.ga -kingnonlei.gq -kingnonlei.ml -kingnonlei.tk -kingofmails.com -kingofmarket.ru -kingofminisplit.com -kingofnopants.com -kingofpowergreen.net -kingortak.com -kingpixelbuilder.com -kingpizzatakeaway.com -kingplus88.site -kingpol.eu -kingpolloasadoelcasar.com -kingreadse.cf -kingreadse.gq -kingreadse.ml -kingreadse.tk -kings-chance.com -kings-game.ru -kings-garden-dublin.com -kings33.com -kingsbbq.biz -kingsbeachclub.com -kingsbythebay.com -kingschancecampaign.net -kingschancefree.org -kingschancemail.info -kingschances.info -kingschances.org -kingsizesirect.com -kingsleyofthehighlands.com -kingsleyrussell.com -kingsooperd.com -kingsq.ga -kingssupportservice.com -kingssupportservices.com -kingssupportservices.net -kingstar4d.com -kingstoncs.com -kingstonjugglers.org -kingswaymortgage.com -kingtigerparkrides.com -kingtornado.net -kingtornado.org -kingwely.com -kingwin222.com -kingwin365.com -kingyslmail.com -kingyslmail.top -kingzippers.com -kinhdoanhtructuyen.website -kinhphongto.shop -kiniem.asia -kinikgunebakan.com -kinitawowis.xyz -kink4sale.com -kinkbuzz.net -kinkyalice.com -kinkz.com -kino-100.ru -kino-go.su -kino-kingdom.net -kino-maniya.ru -kino24.ru -kinobrod.online -kinofan-online.ru -kinoget.ru -kinoggo.ru -kinogo-20.club -kinogo-2020.club -kinogo-club.fun -kinogo-x.space -kinogo-xo.club -kinogo.one -kinogokinogo.ru -kinogomegogo.ru -kinogomyhit.ru -kinohook.ru -kinoiks.ru -kinojoy.club -kinojoy.net -kinokatushka.ru -kinokradkinokrad.ru -kinolife.club -kinolublin.pl -kinomaxsimus.ru -kinoplask.tk -kinopoisckhd.ru -kinopovtor2.online -kinotes.net -kinovideohit.ru -kinox.life -kinox.website -kinoxa.one -kinoz.pl -kinozor4.ru -kinrose.care -kinsil.co.uk -kintils.com -kintimes.cd -kintravel.com -kinx.cf -kinx.gq -kinx.ml -kinx.tk -kio-mail.com -kiohi.com -kiois.com -kiolisios.gr -kioralsolution.net -kioscapsa88.life -kipavlo.ru -kiperzona.ru -kipeyine.site -kipina.space -kipmail.xyz -kipomail.com -kipr-nedv.ru -kiprhotels.info -kipv.ru -kir.ch.tc -kirael.ru -kirain.me -kiranaankan.com -kiranaankan.net -kirchdicka.cf -kirchdicka.ga -kirchdicka.gq -kirchdicka.ml -kirchdicka.tk -kirifurian.com -kirikkaleanadolulisesi.xyz -kirklandcounselingcenter.com -kirklandcounselor.com -kirklareliprefabrik.xyz -kirkorov2019.ru -kirnite.xyz -kiro22.com -kironpoint.com -kirpikcafe.com -kirrus.com -kirurgkliniken.nu -kiryubox.cu.cc -kisan.org -kiscords.biz -kiscover.com -kishen.dev -kishopbags.club -kishu.online -kisiihft2hka.cf -kisiihft2hka.ga -kisiihft2hka.gq -kisiihft2hka.ml -kisiihft2hka.tk -kismail.com -kismail.ru -kiss-klub.com -kiss1688.com -kiss918.info -kiss918bet.info -kiss918vip.com -kissadulttoys.com -kisshq.com -kissmoncler.com -kissmum.store -kissmyapps.store -kisstwink.com -kitanroipl.tk -kitc9.com -kitchen-beautybar.ru -kitchen-tvs.ru -kitchenanddining.company -kitchencraft39.ru -kitchendesign1.co.uk -kitchenettereviews.com -kitchenjudo.com -kitchenlean.fun -kitchenplatforms.com -kitchenshop.futbol -kitchentvs.ru -kite008.xyz -kitedrooperver.ru -kitefly.pl -kitela.work -kiteshot.ru -kitesportklop.ru -kitesurfinguonline.pl -kitezh-grad.ru -kithjiut.cf -kithjiut.ga -kithjiut.gq -kithjiut.ml -kitiva.com -kitmifit.ru -kitnastar.com -kitooes.com -kitoz.net -kitten-mittons.com -kittencoding.com -kittenemail.com -kittenemail.xyz -kitteninspace.com -kittiza.com -kittyallure.net -kittyamaral.com -kittycatfurballs.com -kittydress.online -kittymoney.info -kittymoney.net -kiuc.asia -kiustdz.com -kiuyex.us -kiuyutre.ga -kiuyutre.ml -kivoid.blog -kiwami-group.ru -kiwamitea.ru -kiwi10.xyz -kiwi8.xyz -kiwi9.xyz -kiwitimber.kiwi -kiwlo.com -kiwsz.com -kix-tioman.ru -kixnewyork.com -kiyastand.site -kiyonna.ru -kiyua.com -kiz10.games -kiz10.online -kizvm.net -kj243.site -kj5255.com -kj5258.com -kj8qtb.host -kjastdkjas85175.ml -kjastdkjas85175.tk -kjche.com -kjdeals.com -kjdghdj.co.cc -kjdo9rcqnfhiryi.cf -kjdo9rcqnfhiryi.ga -kjdo9rcqnfhiryi.ml -kjdo9rcqnfhiryi.tk -kjdtgp.us -kjg.website -kjghbn.com -kjgmwhwh.xyz -kjhjb.site -kjhjgyht6ghghngh.ml -kjjeggoxrm820.gq -kjjit.eu -kjkj99.net -kjmnui.com -kjncascoiaf.ru -kjnhsdtkj18875.ga -kjnhsdtkj18875.ml -kjnhsdtkj19959.ml -kjnhsdtkj19959.tk -kjnhsdtkj29168.ga -kjnhsdtkj29168.ml -kjnhsdtkj29168.tk -kjnhsdtkj33302.ml -kjnhsdtkj33302.tk -kjnhsdtkj44897.ml -kjnhsdtkj44897.tk -kjoiewrt.in -kjqwvg.site -kjsderyhjt13976.cf -kjsderyhjt13976.ga -kjsderyhjt13976.ml -kjsderyhjt13976.tk -kjsderyhjt39631.ml -kjsderyhjt39631.tk -kjsderyhjt54474.tk -kjsderyhjt58311.cf -kjsderyhjt58311.ga -kjsderyhjt58311.ml -kjwyfs.com -kjx9ba.site -kjyhh.com -kk18269.com -kk3l.com -kk8ty.com -kk903.site -kk9827.com -kkahbb.site -kkaycero.site -kkb2323.com -kkbmkz.fun -kkcmmf.fun -kkffw.com -kkfmyb.fun -kkgame168.com -kkgmxd.fun -kkiblerk.site -kkinderh.site -kkiva.site -kkjef655grg.cf -kkjef655grg.ga -kkjef655grg.gq -kkjef655grg.ml -kkjef655grg.tk -kkjmdg.fun -kkjx.com -kkk385.com -kkkmail.tk -kkkmjg.fun -kkkmzz.fun -kkkzzz.cz.cc -kklmsh.fun -kkm35.ru -kkmail.be -kkmmtl.fun -kknmmn.fun -kkpmjf.fun -kkpmnl.fun -kkr47748fgfbef.cf -kkr47748fgfbef.ga -kkr47748fgfbef.gq -kkr47748fgfbef.ml -kkr47748fgfbef.tk -kkrb.com -kkreatorzyimprez.pl -kkredyt.pl -kkredyttonline.pl -kkrmcj.fun -kksahsap.com -kksm.be -kkss33.com -kktmfx.fun -kktmpk.fun -kktmqk.fun -kktt32s.net.pl -kkvlwj.ga -kkvmdfjnvfd.dx.am -kkwbeauty54.ru -kkwiyor.site -kkwmcj.fun -kky20.club -kkyf1.site -kkymgx.fun -kkzntk868mail.gq -kl99.xyz -klaass.ru -klabuk.pl -klaky.net -klammlose.org -klapinetti.biz -klarasaty25rest.cf -klarasfree09net.ml -klasbrative.com -klasdoseme.online -klasepin.xyz -klassmaster.com -klassmaster.net -klassotvetgdz.ru -klastakipci.shop -klasyczne.info -klausuren.download -klayshannon.com -kldfjs.com -kleanr.org -klebaqdtob.cf -klebaqdtob.ga -klebaqdtob.gq -klebaqdtob.tk -klee-brig.info -kleebrig.org -kleekai.rocks -kleekaibreed.com -klefv.com -klefv6.com -kleiderboutique.de -kleiderhaken.shop -klembaxh23oy.gq -klemeo.icu -klemon.ru -kleodb.com -kleogb.com -klepa.info -klepf.com -klerom.in -kles.info -klexch.com -klglawnyc.com -klgn8f.info -klhaeeseee.pl -klichapdi.cf -klichapdi.gq -klichapdi.ml -klichapdi.tk -klick-tipp.us -klik-survey.com -klik.host -klik188poker.com -klik338a.com -klikfifa.online -klikjackpot.net -klikk.pro -kliknflip.com -klikovskiy.ru -klimatyzacjaa.pl -klin-ff.ru -klindom.com -klinika-zdrowotna.pl -klinikvidya.com -kliningovq.site -klinskin.press -kliposad.space -klipp.su -klipschx12.com -kljonline.net -kljvjulr.shop -klmcivil.com -klnjlb.host -klo.com -kloap.com -klodrter.pl -kloiman.space -klondajk.cd -klondike34.ru -klone0rz.be -klonteskacondos.com -kloplj.com -klopsjot.ch -klosnecni.cf -klosnecni.ga -klrrfjnk.shop -kltrgroup.com -klttec.com -klub21n.se -klubap.ru -klubnikatv.com -kluceka.com -kludgemush.com -klun.info -klun.us -kluofficer.com -klvm.gq -klwrea.site -klytreuk.com.uk -klzlk.com -klzmedia.com -km1iq.xyz -km239.site -km4fsd6.pl -km69ax.site -km6uj.xyz -km7p7.xyz -km7st.xyz -kmail.li -kmail.mooo.com -kmail.wnetz.pl -kmbr.de -kmco-uae.com -kmd4t8.site -kmdt.cm -kme6g.xyz -kmeaq.xyz -kmebk.xyz -kmeuktpmh.pl -kmhow.com -kmk86.site -kmkl.de -kmlueh.shop -kmonger.co -kmonkeyd.com -kmonlinestore.co.uk -kmqqu.live -kmqtqs.rest -kmr14.xyz -kmrx1hloufghqcx0c3.cf -kmrx1hloufghqcx0c3.ga -kmrx1hloufghqcx0c3.gq -kmrx1hloufghqcx0c3.ml -kmrx1hloufghqcx0c3.tk -kmsm.ca -kmu3m.xyz -kmud.email -kmuydm.xyz -kmuye.xyz -kmvdizyz.shop -kmvwz.xyz -kmw34.xyz -kmwtevepdp178.gq -kmydrb.us -kmyolw.host -kmzems.tokyo -kmzi6.xyz -kmzxsp.life -kn7il8fp1.pl -kne2.club -kneeguardkids.ru -kneelos.com -kngiuh.us -kngwhp.us -knhqzovn.shop -knifepick.fun -knifeple.press -knifero.buzz -kniffel-online.info -knightpro.org -knightsworth.com -knightwar.xyz -knike.site -knime.app -knime.online -knime.tech -knime.us -knirell.com -knitonepearltwo.com -knitrearresource.website -knitting-bordado.website -knittingcrochet.website -knittingcrochetideas.website -knlfmk.site -knnl.ru -knoja.live -knokermer.com -knol-power.nl -knolselder.cf -knolselder.ga -knolselder.gq -knolselder.ml -knolselder.tk -knotdictionary.com -knotencyclopedia.com -knotglossary.com -knothandbook.com -knotindex.com -knotsillustrated.com -knottyyoga.com -know-mag.com -know-magazine.com -knowatef.cf -knowatef.ga -knowatef.gq -knowatef.ml -knowatef.tk -knowbius.com -knowhowitaly.com -knowincar.cf -knowincar.ga -knowincar.gq -knowincar.ml -knowincar.tk -knowinggames.com -knowitallbrand.com -knowledge-from-0.com -knownsecretblog.club -knowsutic.cf -knowsutic.ga -knowsutic.tk -knowsysgroup.com -knowwar.org -knowyourfaqs.com -knoxtrade.com -knoxvillequote.com -knpo.email -knptest.com -kntelectric.org -kntilo.org -kntl.me -knurl.xyz -knuttih.top -knuw.us -knw4maauci3njqa.cf -knw4maauci3njqa.gq -knw4maauci3njqa.ml -knw4maauci3njqa.tk -ko-pk.xyz -ko76nh.com -koahtabronkoskopiktedavi.com -koalabot.xyz -koaladir.com -koalaltd.net -koalaswap.com -kobava.site -kobessa.com -kobzitroma.website -kocaeliesnafrehberi.xyz -kocaelihapkido.com -kocavalikan.tk -koch.ml -kocheme.com -kochen24.de -kochkurse-online.info -kocokkartu.xyz -kocoks.com -kocsandingil.xyz -kod-emailing.com -kod-maling.com -kodaka.cf -kodaka.ga -kodaka.gq -kodaka.ml -kodaka.tk -koddruay.one -kodealam.center -kodemail.ga -kodemailing.com -kodesitus.xyz -kodex-pirate.ru -kodifinder.com -kodifyqa.com -kodmailing.com -kodorsex.cf -kodtime.com -kodyandchris.com -kodylloyd.com -koekenbakker.shop -koeternity.com -koewrt.in -kofe-black-latte.ru -kofustand.site -kogal.info -koged1.site -kogojet.net -kogu.site -kohlerwasser.net -kohlsprintablecouponshub.com -kohlwes.com -kohohpharma.org -kohtaoweighlossretreat.com -kohz5gxm.pl -koibasicstore.com -koicige.ga -koicige.gq -koicige.tk -koin-qq.top -koin24.com -koineraset.tk -koioslaboratories.com -koipoker.club -koipoker.com -koiqe.com -koismwnndnbfcswte.cf -koismwnndnbfcswte.ga -koismwnndnbfcswte.gq -koismwnndnbfcswte.ml -koismwnndnbfcswte.tk -koitedis.cf -koitedis.ga -koitedis.gq -koitedis.ml -koitedis.tk -kojaza.site -kojon6ki.cy -kojonki.cy -kojsaef.ga -kokencocinas.com -kokinus.ro -kokkamugak.online -kokma.site -kokohawke.com -kokorot.cf -kokorot.ga -kokorot.gq -kokorot.ml -kokorot.tk -kokosik.site -koksi.ru -kokteyl365.site -kolagenanaturalny.eu -kolasin.net -kolaybet99.com -kolayfinansman.xyz -kolayhemenara.com -kolbasasekas.ru -kolbforcouncil.com -kolczynka.pl -kolekcjazegarkow.com -koliman.me -koliter.xyz -kolkadrov.ru -kolkmendbobc.gq -kolkmendbobc.tk -kollabkonceps.com -kollective.agency -kollektor-stout.ru -kollibry.ru -kolndaik.site -kolodec-legko.ru -koloekmail.com -koloekmail.net -koloidno.com -kolonkop.space -kolonyaci.site -kolonyajel.com -kolotoparaka.icu -kolovbo.icu -kolovers.com -kolpm.icu -kolpoiy12.xyz -kolumb-nedv.ru -kolvok2.xyz -kolxo3nik.ru -kolxo3pro.ru -kolyasski.com -komaxann.com -kombimonster.com -kombinebet113.com -kombinebet62.xyz -kombiservisler.com -kombuchadad.com -komfu.com -komkomp.ru -kommunity.biz -kommv.cc.be -komninoiny.org -kompakteruss.cf -komparte.org -kompbez.ru -kompens-viplati-rf.site -kompenszaotpusk.xyz -komper.info -kompetisipoker.world -kompressorkupi.ru -komunitastogelindonesia.info -komuvi.info -komys.com -kon42.com -konacode.com -konaklayan.com -konaksgb.xyz -konaoutriggerresort.com -konbat.ru -kondadra.ru -kondicionery-kursk.ru -kondomeri.se -konect.site -koneshtech.org -konetzke.net -konev.online -konferansnasyonal.org -konferencja-partnerstwo-publiczno-prywatne.pl -kongdombli.cf -kongdombli.ga -kongdombli.gq -kongdombli.ml -kongdombli.tk -kongfunkitchen.com -kongs-chinese-takeaway.com -kongzted.net -konicy.pro -konikode.org -koning.icu -konkenist.com -konkursoteka.com -konno.tk -konsalt-proekt.ru -konstmusik.se -kontagion.pl -kontak-whats.app -kontakt.imagehostfile.eu -kontaktbloxx.com -kontaktniy-centr.ru -kontcasino.net -kontmomo.ga -kontmomo.ml -konto-w-banku.net -kontol.city -kontol.co.uk -kontormatik.org -kontorpaneli.net -kontrabet13.com -kontrabet14.com -kontraksgoskin.info -kontraktsfinansiering.se -kontrolreestr.xyz -konultant-jurist.ru -konumin.cf -konure.com -konveksigue.com -konyad.org -konyakarataylisesi.com -konyalimsesli.xyz -konyaliservis.xyz -konyawa.xyz -kooaxwlal.shop -koochmail.info -koodidojo.com -koofy.net -koogis-cream.ru -kook.ml -kookabungaro.com -kookaburrawindows.com -koolgosto.com -koomaps.com -koopret.ga -koopvkladtut.xyz -koorabia.net -koorabia.org -koorstvrij.events -koortscamera.shop -koortscameras.shop -koortsdetectie.camera -koortsdetectie.events -koortsvrije.events -kopagas.com -kopaka.net -kopakorkortonline.com -koparatnewtoncondo-cel.site -kopdarec.cf -kopdarec.gq -kopdarec.ml -kopdarec.tk -kopecun.ru -kopergaons.info -kopf.pro -kopg0y.site -kopher.com -kopiacehgayo15701806.cf -kopiacehgayo15701806.ga -kopiacehgayo15701806.ml -kopiacehgayo15701806.tk -kopibajawapunya15711640.cf -kopibajawapunya15711640.ga -kopibajawapunya15711640.ml -kopibajawapunya15711640.tk -kopikapalapi11821901.cf -kopikapalapi11821901.ga -kopikapalapi11821901.ml -kopikapalapi11821901.tk -kopiko.ml -kopipahit.ga -kopipapua.biz -kopir-ka.ru -kopitiam.cd -koplexcat.ru -koporton.club -kopqi.com -koprkr.shop -korabora.ong -koralldesign.se -koran3000.com -korankiu.info -korcan.org -korcznerwowy.com -kore-tv.com -korea-beaytu.ru -korea315.xyz -koreaaa316.xyz -koreaaa317.xyz -koreaautonet.com -koreamail.cf -koreamail.ml -koreamedis.ru -korean-brides.com -korean-fx.site -koreannannies.com -koreantranslators.org -koreautara.cf -koreautara.ga -korelmail.com -korika.com -korinthiakos.net -korjk.com -korkorts-foto.se -korma-at-home-dunboyne.com -kormail.xyz -korneliavidovic.com -korona-nedvizhimosti.ru -koronaviruss.com -korozy.de -korrichttur.cf -korrichttur.ga -korrichttur.ml -korrichttur.tk -korsakm.com -korsakov-crb.ru -kort.cd -kortom.site -korutbete.cf -kosack.se -kosciuszkofoundation.com -kosgcg0y5cd9.cf -kosgcg0y5cd9.ga -kosgcg0y5cd9.gq -kosgcg0y5cd9.ml -kosgcg0y5cd9.tk -kosherlunch.com -koshkin.love -kosholoka.space -koshu.ru -koshua.com -kosiarszkont.com -koskiandsyvari.com -kosla.pl -kosma33.ru -kosmetik-obatkuat.com -kosmetika-korei.ru -kosmetika-kr.info -kosmetika-pro.in.ua -kosmoart.world -kosmolotvip.com -kosmoworld.ru -kosoffertest.ru -kosolar.pl -kosova24.info -kosrze.site -kost.party -kosta-rika-nedv.ru -kostenlos-web.com -kostenlose-browsergames.info -kostenlosemailadresse.de -kostestas.co.pl -kosze-na-smieciok.pl -koszm.us -koszmail.pl -koszulki-swiat.pl -kotao.xyz -kotastone.org -kotbuy.space -kotidian.com -kotiki.pw -kotlinmagic.com -kotlintemplates.com -koto.agency -kotolampa.ru -kotoled.mobi -kotruyerwrwyrtyuio.co.tv -kotsu01.info -kottochblod.se -kotymac.pro -kouattre38t.cf -kouattre38t.ga -kouattre38t.gq -kouattre38t.ml -kouattre38t.tk -kouch.ml -koulussa.ml -kounes.com -kounnes.com -kousao95.icu -koutburgvil.ga -koutburgvil.gq -koutburgvil.ml -kovaba.xyz -koval68.ru -kovezero.com -kovfzt1m.info -kovi.bike -kovi.cab -kovi.care -kovi.center -kovi.media -kovi.site -kovi.store -kovi.ventures -kovi.website -kovi.world -kovi.zone -kow-game.xyz -koweancenjancok.cf -koweancenjancok.ga -koweancenjancok.gq -koweancenjancok.ml -kowert.in -kowgame.online -kowsderun.cf -kowsderun.ga -kowsderun.ml -koyocah.ml -koypeyniri.online -koyunum.com -koyunum.net -kozacki.pl -kozaki2.fun -kozelkrug.xyz -kozing.net -kozow.com -kp033.club -kp2008.com -kp54ujf6z173r2i.xyz -kp77777.com -kp996.com -kpapa.ooo -kpar30b.club -kpay.be -kpgfjrje.shop -kpgindia.com -kphabbo.online -kpmnw1.site -kpoker88.biz -kpolikaret.ga -kpooa.com -kpoppeiro.com -kpops.info -kpost.be -kpostmagazin.xyz -kppfib.com -kppseulh.shop -kpvubc.com -kpxnxpkst.pl -kq094.site -kqeogb.us -kqeutmuv.shop -kqhs4jbhptlt0.cf -kqhs4jbhptlt0.ga -kqhs4jbhptlt0.gq -kqhs4jbhptlt0.ml -kqhs4jbhptlt0.tk -kqhwojmb.shop -kqimvj.info -kqis.de -kqo0p9vzzrj.ga -kqo0p9vzzrj.gq -kqo0p9vzzrj.ml -kqo0p9vzzrj.tk -kqqe.email -kqtsg.com -kqwyqzjvrvdewth81.cf -kqwyqzjvrvdewth81.ga -kqwyqzjvrvdewth81.gq -kqwyqzjvrvdewth81.ml -kqwyqzjvrvdewth81.tk -kqxs168.org -kqxskt.net -kr207.site -kracih.ru -kradrider.com -kradrider.info -kradrider.net -kradrider.org -kraftbeer.org -kraftdairymail.info -kraftimir.ru -kraftmann-compressoren.ru -kraftur.se -krakov.net -krakowpost.pl -krakowskiadresvps.com -kraldostfm.online -kramatjegu.com -krampuslegend.com -kran-ua.ru -kranewaresolutions.com -krankenversicherungvergleich24.com -krapaonarak.com -kras-ses.ru -krasaeva.ru -krasavtsev-ua.pp.ua -krascos.ru -krasfasad24.ru -krasim-nogti.ru -krasivie-parki.ru -kraskaekb.ru -kraskimedia.ru -kraslotenoverzicht.com -krasnikovalexandr.ru -krasper.ru -krassnodar.ru -kratebike.net -kratom.ist -kratomseeds.us -kratoso.com -kratzmassage.biz -kraunch.com -krausewebservices.com -krazymail.com -krb.asia -krd.ag -kre8ivelance.com -kreacja.info -kreacjainfo.net -kreativsad.ru -kreatoracademy.asia -kreatorzyiimprez.pl -kreatorzyimprez.pl -kredim.website -kredinn.xyz -kredit-beamten.de -kredit-maps.ru -kreditbankbankrt.xyz -krediti-dlya-biznesa.ru -kreditkartenvergleich.jetzt -kreditmindi.org -kreditminus.xyz -kreditnalonline.com -kreditnyefakty76.ru -kredytsamochodowy9.pl -kreeist.space -kreig.ru -kreigkent.us -kreines71790.co.pl -kreldon.co -kreldon.me -kreldon.us -krem-maslo.info -kremlin-russia.ru -kremlin2018ru.ru -krentery.tk -krepekraftonline.com -kresla-stulia.info -kreuiema.com -kreusgravois.net -krffnw.club -krgyui7svgomjhso.cf -krgyui7svgomjhso.ga -krgyui7svgomjhso.gq -krgyui7svgomjhso.ml -krgyui7svgomjhso.tk -krhgkreb.shop -krhr.co.cc -kri1d12p1dgpc62.xyz -krillio.com -krilokakletat.info -kriminal.online -kriminal.website -krioo.club -kriptocucesi.com -kriptokartel.ru -kriptozin.com -kriqziol.shop -kriseos.com -krish.sydney -krishnajariwala.com -krishnamurthyt2smenu.com -krishnarandi.tk -krissfamily.online -kristall2.ru -kristeven.tk -kristiannoya.com -kristinejane.com -kristophersage.com -kriunoper.tk -krixis.site -kriyakinesis.com -krjjqt.us -krle.us -krmgp1.site -krnf.de -krnuqysd.pl -kro.kr -kro65.space -krodnd2a.pl -krollresponders.org -kromechains.com -kromeem.com -krompakan.xyz -krondon.com -krone-24.ru -kronedigits.ru -kronen-zeitung.site -kronoparkenspizzeria.se -kross-outlets.ru -kross-style.ru -kross-torg.ru -krossberry.ru -krosstorg.ru -kroswalt.com -krovanaliz.ru -krovatka.su -krowdserf.com -kroyalebeautysalon.com -krsw.sonshi.cf -krsw.tk -krtdvuyj.shop -krte3562nfds.cf -krte3562nfds.ga -krte3562nfds.gq -krte3562nfds.ml -krte3562nfds.tk -krtjrzdt1cg2br.cf -krtjrzdt1cg2br.ga -krtjrzdt1cg2br.gq -krtjrzdt1cg2br.ml -krtjrzdt1cg2br.tk -krugerreserve.com -krunkosaurus.com -krupp.cf -krupp.ga -krupp.ml -krupukhslide86bze.gq -krushinem.net -krvjna.ml -krvps.com -krwzgt.us -krxr.ru -kry1m.space -krypcall.com -kryptex.cf -kryptex.gq -krypton.tk -kryptone.market -kryptonqq.com -kryptonqq.net -kryptonqq.org -krystabledsoe.com -krystallettings.co.uk -krystalresidential.co.uk -kryukvoron.ru -krzysztofpiotrowski.com -ks-sports.net -ks7h.com -ks87.igg.biz -ks87.usa.cc -ksa-i.icu -ksa-u.icu -ksadrc.com -ksaleshow.site -ksanax.site -ksao.club -ksao.store -ksao.us -ksdcdecusklh1sk.xyz -kserokopiarki-gliwice.com.pl -kserokopiarki.pl -ksframem.com -ksgfu.live -ksgofrag.info -ksidemdi.ga -ksidemdi.gq -ksidemdi.tk -ksiegapozycjonera.priv.pl -ksignnews.com -ksintez.com -ksisil.us -ksiskdiwey.cf -ksjdhlka.xyz -ksjivxt.com -kskbd.com -kslokogm-fm.com -kslweddings.com -ksmtrck.cf -ksmtrck.ga -ksmtrck.rf.gd -ksmtrck.tk -ksoftgames10.com -ksoftgames18.com -ksoftgames19.com -ksoftgames3.com -kspa.xyz -ksportscoin.com -ksportscoin.net -ksqpmcw8ucm.cf -ksqpmcw8ucm.ga -ksqpmcw8ucm.gq -ksqpmcw8ucm.ml -ksqpmcw8ucm.tk -kstater.press -kstnu4.info -kstrong.info -kstyleworld.com -ksustine.com -ksylonmartin.com -kszsae.us -kt-static.com -kt1k.com -kt1k.net -kt3qiv.info -ktajnnwkzhp9fh.cf -ktajnnwkzhp9fh.ga -ktajnnwkzhp9fh.gq -ktajnnwkzhp9fh.ml -ktajnnwkzhp9fh.tk -ktbk.ru -ktds.co.uk -kterer.com -ktexaf.icu -ktgre.website -kth.kiwi -ktm303.org -ktopomozeseniorom.sk -ktotey6.mil.pl -kttc.space -ktumail.com -ktvblog.com -ktwoan.com -ku-rong.com -ku1hgckmasms6884.cf -ku1hgckmasms6884.ga -ku1hgckmasms6884.gq -ku1hgckmasms6884.ml -ku1hgckmasms6884.tk -ku4b1.us -kuai909.com -kuaifuli.club -kuaijenwan.com -kuaixueapp01.mygbiz.com -kuaizhufang.com -kualapuucharterschool.com -kualitasqq.com -kualitasqq.net -kuantumdusunce.tk -kuarmenu.com -kuatcak.cf -kuatcak.tk -kuating88.icu -kuatkanakun.com -kuatmail.gq -kuatmail.tk -kuatocokjaran.cf -kuatocokjaran.ga -kuatocokjaran.gq -kuatocokjaran.ml -kuatocokjaran.tk -kuba-nedv.ru -kuba.rzemien.xon.pl -kubeflow.info -kubqs.live -kubzone.ru -kuchenmobel-berlin.ovh -kuchniee.eu -kuciangxtify-store1.com -kucing99.com -kucingarong.cf -kucingarong.ga -kucingarong.gq -kucingarong.ml -kucinge.site -kucoba.ml -kucoin.one -kud0ng.com -kudanilshop.com -kudaponiea.cf -kudaponiea.ga -kudaponiea.ml -kudaponiea.tk -kudaterbang.gq -kudefu.info -kudeha.info -kudlatamewa.se -kudzu.info.pl -kue747rfvg.cf -kue747rfvg.ga -kue747rfvg.gq -kue747rfvg.ml -kue747rfvg.tk -kueh.shop -kuehmueh.shop -kuehraya.shop -kuemail.men -kuewne.site -kuf.us -kuffrucrei.cf -kuffrucrei.ga -kuffrucrei.gq -kuffrucrei.ml -kuffrucrei.tk -kufrrygq.info -kufyguy.space -kugfb4.info -kugorze.com.pl -kugua1-99.xyz -kuheco.xyz -kuhioshore.com -kuhlgefrierkombinationen.info -kuhmebelmos.ru -kuhni-kuk.ru -kuhninazakaz.info -kuhnya-msk.ru -kuhnyamarket.ru -kuhrap.com -kuhybe.info -kuickulture.asia -kuihmuih.shop -kuihraya.shop -kuikytut.review -kuiljunyu69lio.cf -kuingin.ml -kuiqa.com -kujishops.site -kujztpbtb.pl -kukeboutique.site -kukizbezpartyjnisamorzadowcy.org -kukowski.eu -kukowskikukowski.eu -kukuite.ch -kukuka.org -kukuljanovo.info -kukuljanovo.net -kula.uno -kulepszejprzyszlosci.pl -kulichiki.com -kulinarry.ru -kulitlumpia.ml -kulitlumpia1.ga -kulitlumpia2.cf -kulitlumpia3.ml -kulitlumpia4.ga -kulitlumpia5.cf -kulitlumpia6.ml -kulitlumpia7.ga -kulitlumpia8.cf -kuljdeals.site -kulksttt.com -kulmeo.com -kulmio.dev -kulogu.cf -kulogu.ml -kulpik.club -kulpvalinafizkayali.net -kulturalneokazje.pl -kulturapitaniya.ru -kulturbetrieb.info -kultureco.space -kum38p0dfgxz.cf -kum38p0dfgxz.ga -kum38p0dfgxz.gq -kum38p0dfgxz.ml -kum38p0dfgxz.tk -kumail8.info -kumisgonds69.me -kumiteregistration.com -kumlucahalkegitim.xyz -kumpulbola.com -kun98.com -kuncibengkel.com -kunden-verify-298374-check-sicherung.ru -kundenserver.website -kune.app -kune.online -kuneblog.com -kunespace.net -kunfou.com -kungfuseo.info -kungfuseo.net -kungfuseo.org -kunghourpa.cf -kunghourpa.ga -kunghourpa.tk -kuni-liz.ru -kunimedesu.com -kunitzsch-kfz-service.de -kunrong.info -kunststofdeureneindhoven.com -kunwardanishali.com -kunwojituan.com -kuonicreative.com -kuoogle.com -kupa.website -kupakupa.waw.pl -kupeyka.com -kupi.dev -kupiarmaturu.ru -kupiprodaiauto.ru -kupiprodaimetal.ru -kupiru.net -kupit-aviabilety-na-samolet.ru -kupit-aviabilety-ofitsialnyy-sayt.ru -kupit-kurt.ru -kupit-spravka-lipetsk.ru -kupit-spravka-v-sochax.ru -kupitdiplom.info -kupoklub.ru -kupon.cash -kupon4d.xyz -kuponjitu.info -kupsstubirfag.xyz -kupuj-pneu.sk -kuram.host -kurawapoker.club -kurawapoker.fun -kurawapoker.info -kurd.link -kurdbeen.net -kurdit.se -kurdsatnews.net -kurdsatnews.org -kurior.com -kurkumazin.shn-host.ru -kuroate.info -kurogaze.site -kurort-rf.ru -kurpar.ru -kurs-excel.ru -kurs-uspex.online -kursekle.xyz -kursmagazine.space -kursovaya-rabota.com -kurszarrqx.club -kurtbayt.icu -kurtizanka.net -kurtsax.org -kurtsax.us -kurtzrealty.com -kurubands.info -kurumama.org -kurupee.com -kuryshkina.ru -kurz-abendkleider.com -kurzepost.de -kusadasiemlakofis.com -kusadasipalmresort.com -kusam.ga -kuskonmazciftligi.com -kusma.org -kusrc.com -kustermail.com -kusyuvalari.com -kut-mail1.com -kutahyaalyans.xyz -kutahyaggk.com -kutahyapostasi.xyz -kutahyasairseyhiioo.com -kutahyasairseyhiioo.xyz -kutahyasiirsevenlerdernegi.com -kutahyasiirsevenlerdernegi.xyz -kutakbisadekatdekat.cf -kutakbisadekatdekat.ml -kutakbisadekatdekat.tk -kutakbisajauhjauh.cf -kutakbisajauhjauh.ga -kutakbisajauhjauh.gq -kutakbisajauhjauh.ml -kutakbisajauhjauh.tk -kutcuibui.ml -kutcuibui.tk -kuteotieu111.cz.cc -kuucrechf.pl -kuugyomgol.pl -kuwaiyedekparca.com -kuy.bet -kuyberuntung.com -kuyhaa-android19.bid -kuymubows.cf -kuymubows.ml -kuymubows.tk -kuyzstore.com -kuzady.info -kuzeygeribas.cf -kuzeyguney.cf -kuzeyguney.ga -kuzumo.com -kv272.site -kv8v0bhfrepkozn4.cf -kv8v0bhfrepkozn4.ga -kv8v0bhfrepkozn4.gq -kv8v0bhfrepkozn4.ml -kv8v0bhfrepkozn4.tk -kvacdoor.xyz -kvadrokopter-s-kameroj.ru -kvaes.site -kvail.se -kvajy.live -kvartagroup.ru -kvartira-volgograd.ru -kvc67.space -kvcoredemo.us -kvcoredemo.xyz -kvfg.com -kvfyn.us -kvkailashahar.in -kvl.ink -kvnforall.ru -kvouthmnu.shop -kvr8.dns-stuff.com -kvs24.de -kvsheopur.org -kvvaiu.ru -kw890.site -kw9gnq7zvnoos620.cf -kw9gnq7zvnoos620.ga -kw9gnq7zvnoos620.gq -kw9gnq7zvnoos620.ml -kw9gnq7zvnoos620.tk -kwa-law.com -kwacollections.com -kwadratowamaskar.pl -kwalidd.cf -kwangjinmold.com -kwdd.buzz -kweci.com -kweekendci.com -kwertueitrweo.co.tv -kwestlund.com -kwestor4.pl -kwestor5.pl -kwestor6.pl -kwestor7.pl -kwestor8.pl -kwiatownik.pl -kwiatyikrzewy.pl -kwickcom.com -kwickcovers.com -kwift.net -kwii.org -kwikturnhosting.com -kwilco.net -kwind47.xyz -kwishop.com -kwj0sq.us -kwlbz.live -kwmarketplace.com -kwondang.com -kwrffm.ml -kwsnqggvd.shop -kwvnr.com -kwzi0a.com -kx561.site -kxdxd.com -kxhb66.com -kxliooiycl.pl -kxlkze.site -kxmnbhm.gsm.pl -kxmvdvop.shop -kxo7.us -kxtshe.us -kxvps.com -kxzaten9tboaumyvh.cf -kxzaten9tboaumyvh.ga -kxzaten9tboaumyvh.gq -kxzaten9tboaumyvh.ml -kxzaten9tboaumyvh.tk -ky-ky-ky.ru -ky019.com -kyaffshop.store -kyal.pl -kyberkafe.com -kydigo.com -kydirect.cd -kydovekame.ru -kydro.com -kyebosh.pro -kyfaomzer.gq -kyfeapd.pl -kyfsh.com -kyhalfpricelistings.com -kyhealthcoverage.bid -kyhuifu.site -kyilasninsky.com -kyj27.com -kyjewa.info -kykarachy.site -kykareku.ru -kylegrenell.club -kylemaguire.com -kylemorin.co -kyliekkwbeauty.ru -kylinarnierecepti.ru -kymogen.com -kymun.site -kynoeajq.xyz -kyobars.icu -kyocara-sg.com -kyois.com -kyoketsu.com -kyokushinkarate.co -kypi74.ru -kyq3pa.com -kyrgyzoymoloru.kg -kyrsvalut.ru -kys3pw.us -kystj.us -kytozu.info -kyuc.asia -kyvoxio.space -kywiyoy.site -kyzisu.xyz -kyzo.site -kz-delivery.agency -kz0mjs.info -kz64vewn44jl79zbb.cf -kz64vewn44jl79zbb.ga -kz64vewn44jl79zbb.gq -kz64vewn44jl79zbb.ml -kz64vewn44jl79zbb.tk -kz9tev-mail.xyz -kzbvyq.host -kzcontractors.com -kzctsgdo.shop -kzdylr.com -kzednftik.shop -kzfnl.site -kzfzwc.site -kzk2o.club -kzn.us -kzone88.com -kzq6zi1o09d.cf -kzq6zi1o09d.ga -kzq6zi1o09d.gq -kzq6zi1o09d.ml -kzq6zi1o09d.tk -kzw1miaisea8.cf -kzw1miaisea8.ga -kzw1miaisea8.gq -kzw1miaisea8.ml -kzw1miaisea8.tk -l-100-super-lotos.site -l-baget.ru -l-c-a.us -l-egenda.com -l-okna.ru -l-response.com -l-shoponline.info -l.bgsaddrmwn.me -l.polosburberry.com -l.safdv.com -l00s9ukoyitq.cf -l00s9ukoyitq.ga -l00s9ukoyitq.gq -l00s9ukoyitq.ml -l00s9ukoyitq.tk -l017.club -l08ps2.us -l0eea8.us -l0ktji.us -l0llbtp8yr.cf -l0llbtp8yr.ga -l0llbtp8yr.gq -l0llbtp8yr.ml -l0llbtp8yr.tk -l0real.net -l0vw.club -l107h9.info -l111.tk -l12l7u.com -l1775.com -l1a2ds.online -l1rwscpeq6.cf -l1rwscpeq6.ga -l1rwscpeq6.gq -l1rwscpeq6.ml -l1rwscpeq6.tk -l1viwy.us -l2creed.ru -l2n5h8c7rh.com -l2tmsp.site -l337.store -l33r.eu -l33t.support -l36i2hbk.fun -l3nckt.com -l3ywy6aarag6nri.xyz -l48zzrj7j.pl -l4dz6h.us -l4fom5.us -l4usikhtuueveiybp.cf -l4usikhtuueveiybp.gq -l4usikhtuueveiybp.ml -l4usikhtuueveiybp.tk -l5.ca -l529u.live -l5c7zu.us -l5prefixm.com -l64pk.com -l6emr0.us -l6factors.com -l6hmt.us -l73x2sf.mil.pl -l745pejqus6b8ww.cf -l745pejqus6b8ww.ga -l745pejqus6b8ww.gq -l745pejqus6b8ww.ml -l745pejqus6b8ww.tk -l78qp.com -l79od.com -l7b2l47k.com -l7k8jy.site -l7sol.com -l7wnrm.us -l7zbsj.us -l80v.us -l81ref.us -l82323.com -l8g9so.us -l8oaypr.com -l90pm.us -l9gmbx.us -l9qwduemkpqffiw8q.cf -l9qwduemkpqffiw8q.ga -l9qwduemkpqffiw8q.gq -l9qwduemkpqffiw8q.ml -l9qwduemkpqffiw8q.tk -l9tmlcrz2nmdnppabik.cf -l9tmlcrz2nmdnppabik.ga -l9tmlcrz2nmdnppabik.gq -l9tmlcrz2nmdnppabik.ml -l9tmlcrz2nmdnppabik.tk -la-boutique.shop -la-creme-de-la-creme.com -la-p2.com -la0u56qawzrvu.cf -la0u56qawzrvu.ga -la25l.buzz -la2imperial.vrozetke.com -la2walker.ru -la9kqq.us -laagsteprijsvakantie.com -laatorneys.com -lab-getty.com -laba.group -labarbatella.net -labas.com -label-m.ru -labetteraverouge.at -labfortyone.tk -labgrowndiamond.online -labhyto.cf -labhyto.ga -labhyto.gq -labhyto.ml -labhyto.tk -labiblia.digital -labiblia.live -labibliotheque.site -labios9281divi21.ml -labo.ch -labodina.ru -labogili.ga -labontemty.com -laboralistascoruna.com -laboratortehnicadentara.ro -laboratoryreport.win -labored673vl.online -laboriously.com -laborstart.org -labratrace.com -labreportaid.com -labrums.us -labs-getty.com -labtau.com -labtoad.com -labum.com -labzherok.site -lacabina.info -lacafenligne.com -lacageadomicile.com -lacantinadelariaaviles.com -lacaraota.com -lacedmail.com -lacer-pokacar.ru -lacercadecandi.ml -laceylist.com -lachorrera.com -lachzentrum-wiesbaden.de -lackmail.net -lackmail.ru -lacky-shop.ru -laclapalace.design -laconicoco.net -laconte.ga -laconte.gq -laconte.tk -lacosteshoesfree.com -lacosye.com -lacrosselocator.com -lactigo.ru -lacto.info -lacviet.org -lada-granta-fanclub.ru -ladah.info -ladang.site -ladapickup.ru -ladaran.cf -ladaran.ga -ladaran.gq -ladaran.ml -ladaran.tk -ladder-simplicity.xyz -laddoublinghut.website -laddsmarina.com -laddyhammercasino.com -ladege.cf -ladege.gq -ladege.ml -ladege.tk -ladellecorp.com -laden3.com -laderranchaccidentlawyer.com -ladespensachicago.org -ladeweile.com -ladiabetessitienecura.com -ladiesbeachresort.com -ladieshightea.info -ladiesjournal.xyz -ladiesshaved.us -ladivinacomedia.art -ladohucu.site -ladrop.ru -ladsad.ru -laduree-dublin.com -lady-jisel.pl -lady-journal.ru -ladyanndesigns.com -ladybossesgreens.com -ladycosmetics.ru -ladydressnow.com -ladyfleece.com -ladylounge.de -ladylovable.com -ladymacbeth.tk -ladymjsantos.net -ladymjsantos.org -ladymom.xyz -ladyonline.com -ladyrelax28.ru -ladyshelly.com -ladystores.ru -ladyturnerlime.website -ladyvictory-vlg.ru -laendle.dev -laerrtytmx.ga -laerwrtmx.ga -lafarmaciachina.com -lafayetteweb.com -lafelisas.info -lafibretubeo.net -lafrem3456ails.com -lafta.cd -lafz1.us -lag.tv -laga525252.com -laga99.biz -lagane.info -lagardochicho.ovh -lagchouco.cf -lagchouco.ga -lagchouco.tk -lagerarbetare.se -lageris.cf -lageris.ga -lageris.tk -laggybit.com -lagiapa.online -lagicantiik.com -lagify.com -lagochapos.info -lagoness.com -lagooorka.ru -lagoriver.com -lagotos.net -lagrandemutuelle.info -lags.us -lagsixtome.com -lagubagus.shop -lagugratis.net -laguia.legal -lagunabay.ru -lagunacottages.vacations -lagunaproducts.com -lagushare.me -lagzi.xyz -lahaciendacoronado.com -lahainataxi.com -lahamnakam.me -laheny.site -lahi.me -lahorerecord.com -lahta9qru6rgd.cf -lahta9qru6rgd.ga -lahta9qru6rgd.gq -lahta9qru6rgd.ml -lahta9qru6rgd.tk -laibasxiou.cf -laibasxiou.ga -laibasxiou.gq -laibf1.site -laicasinoroad.ru -laicizing986jn.online -laika999.ml -laikacyber.cf -laikacyber.ga -laikacyber.gq -laikacyber.ml -laikacyber.tk -laimian-quan2.com -laimianquan2.com -laimianquan2.net -laimibe.cf -laimibe.tk -lain.ch -lainitu.cf -lainitu.ga -lainitu.gq -lainitu.ml -lainitu.tk -laithaljunaidy.store -lajauria-agility.com -lajoska.pe.hu -lak.pp.ua -lakaraka.website -lakarstwo.info -lakarunyha65jjh.ga -lake411today.xyz -lakecharleslandsurveying.com -lakecitycatt.buzz -lakeelsinorerentals.com -lakefishingadvet.net -lakeid.com -lakeland-laboratories.com -lakeland-laboratory.com -lakelandhyundaiparts.com -lakelbjlakelife.com -lakelivingstonrealestate.com -lakeplacid2009.info -lakesham.xyz -lakesidde.com -lakesofthenorthwinterfest.com -laketahoe-realestate.info -lakevilleapartments.com -lakewater.org -lakexbetpinup.ru -laklica.com -lakngin.ga -lakngin.ml -lakocloud.store -lakomoda.com -lakqs.com -lakssan.com -lal.kr -lala-mailbox.club -lala-mailbox.online -lalaboutique.com -lalala-family.com -lalala.fun -lalala.site -lalalaanna.com -lalalamail.net -lalalapayday.net -lalamailbox.com -lalarguesa.biz -lalashop.asia -lalasin.club -lalasin.xyz -laldo.com -lalearda.ga -lalearda.tk -laledogu.ml -lalegionseguridad.com -lalemavisi.cf -laletaha.ga -laletaha.ml -laleyendadelvino.com -lalimat.cf -lalimat.gq -lalimat.ml -lallaalia.com -lalunelab.com -lam0k.com -lamahometextile.com -lamaisonducachemire.com -lamarengineering.com -lamasbonitadetodasmix.com -lambadarew90bb.gq -lambandstine.com -lambanh.info -lambda.uniform.thefreemail.top -lambdaecho.webmailious.top -lambdasu.com -lambinganteleserye.ru -lamdep.net -lamdepviet.com -lamdx.com -lamgme.xyz -lami4you.info -laminaatdirect.com -lamiradaautorepair.com -lamiradarentals.com -lamongan.cf -lamongan.gq -lamongan.ml -lamore.com -lamosqe.com -lamp-crime.xyz -lampa23.online -lampadaire.cf -lampadlyagellaka.ru -lampsbeautiful.mobi -lampsbeautiful.net -lampsbeautiful.org -lampshynesslimp.website -lamseochuan.com -lamudi.cd -lamutuelle.net -lamutuelle.online -lamzakcool.ru -lan-tania-thai-restaurant.com -lan-utan-uc-se.com -lanaburl.com -lanatease.com -lancasterandstlouislaw.com -lancastercoc.com -lancasterdining.net -lancasterpainfo.com -lancasterplumbing.co.uk -lancego.space -lancelsacspascherefr.com -lancia.ga -lancia.gq -lancourt.com -lancrowd.com -lancsvt.co.uk -land-ck.com -landans.ru -landasanqq.com -landaugo.com -landesjugendfest.de -landexnetwork.online -landforhaiti.org -landfoster.com -landhq.rest -landingcenter.ru -landingcraftsforsale.com -landlooto.cf -landlooto.ga -landlooto.ml -landmail.co -landmanreportcard.com -landmark.io -landmilmumb.cf -landmilmumb.ga -landmilmumb.gq -landnsky.info -landnsky.org -landofhopeorlando.org -landofsunandsky.com -landonbrafford.com -landravphillips.com -landrop.me -landroverrepair.com -landscapeandplanning.com -landscgvqe.space -landstopdrop.space -landsurfigh.cf -landsurfigh.ga -landsurfigh.gq -landsurfigh.ml -landsurfigh.tk -landtire.ga -landtire.gq -landtire.ml -lanelofte.com -lanepoll.com -langabendkleider.com -langanswers.ru -langclubs.ru -langitbiru.info -langitpoker.org -langitserver.biz -langk.club -langleyadvocate.net -langleycitizen.com -langleycourier.net -langleyfirst.com -langleyfirst.net -langleyfirst.org -langleyherald.net -langleyherald.org -langleyjournal.net -langleyrecord.com -langleyrecord.net -langleyrecord.org -langleyreview.com -languagera.online -lanha-tours.com -laniferous.site -lanimaresorts.com -lanimasaudi.com -laninna.online -laninternational.com -lanjuecg.com -lankezhou.com -lanless.net -lanorthface.com -lanquiplod.gq -lanquiplod.ml -lanquiplod.tk -lanscieze.club -lantai6.org -lantderdi.cf -lantderdi.ga -lantderdi.gq -lantderdi.ml -lantofe.cf -lantofe.ga -lantofe.gq -lantofe.ml -lantv.ru -lanuze.xyz -lanyard.plus -lanydar.site -laoeq.com -laoheritage.net -laoho.com -laokzmaqz.tech -laonanrenj.com -laoshandicraft.com -laostours.info -laotmail.com -lapak21.video -lapakbanyumas.com -lapakpokers.net -laparbgt.cf -laparbgt.ga -laparbgt.gq -laparbgt.ml -lapdfmanuales.xyz -lapeksp.ru -lapetcent.cf -lapetcent.gq -lapetcent.ml -lapetcent.tk -lapetiteetincellecoaching.com -lapita.cf -lapita.gq -lapita.ml -lapita.tk -lapizzolettasoria.com -lapkholanh.com -laplusgrandemutuelle.info -laporinaja.com -laposhe.net -lapptoposse99.com -lapsha.tk -laptopamerica.net -laptopbeddesk.net -laptopcooler.me -laptopss.xyz -laptopsshop.live -laptoptechie.com -laptrinhapp.top -laptrinhwp.com -laputs.co.pl -lapwas.xyz -larachristie.site -laraes.pl -laraladies.com -laramail.io -laras.ru -laravelbuilder.com -laredonailsalons.com -laredophysiciansgroup.info -laredophysiciansgroup.net -larepublica.host -larepublica.website -large-cock.com -largech.icu -largechai.icu -largeco.xyz -largedebu.email -largedebut.email -largeformatprintonline.com -largelift.com -largelyavailable.net -largelyavailable.org -largeshop.futbol -largeteach.email -largo.laohost.net -larisa-firdusovna.ru -larisia.com -larjem.com -larkdev.com -larkfieldkebabandpizza.com -laroadsigns.info -larosetantrique.com -larping.dev -larrry.host -larryblair.me -larrynichols.news -larrywinn.com -larsonfamilytree.com -lasagnerecept.nu -lasaliberator.org -lasaliberator.us -lasapiniere.cd -lasde.xyz -lasdke.site -lasdunsti.cf -lasdunsti.ga -lasdunsti.ml -lasdunsti.tk -laser-dental.com -laser88.com -laserenatatakeaway.com -laserevent.com -laserfratetatuaj.com -laserkraft.biz -laserowe-ciecie.pl -laserremovalreviews.com -lasersaber.com -lasertypes.net -lasfobiasa.info -lasg.info -lasgidicuisine.com -lash.email -lasikcharleston.com -lasip.org -lasirenatakeaway.com -lasischa.cf -lasischa.ga -lasischa.gq -lasischa.ml -lasischa.tk -lasixonlineatonce.com -lasixonlinesure.com -lasixonlinetablets.com -lasixprime.com -laskar4d.website -laskarbola88.site -laskarxebe.space -lasnoticias.net -lasojcyjrcwi8gv.cf -lasojcyjrcwi8gv.ga -lasojcyjrcwi8gv.gq -lasojcyjrcwi8gv.ml -lasojcyjrcwi8gv.tk -lasselong.ru -lassunshaltkurzmalso.vision -last-chance.pro -lastbilsmodeller.se -lastchaosraiz.com -lastconn.site -laste.ml -lastenergycall.com -lastestberry.xyz -lastking.co -lastlone.com -lastmail.co -lastmail.com -lastmail.ga -lastminute.dev -lastminute365.ru -lastminutemarket.org -lastmx.com -lastogor.xyz -lastpostapp.com -lastructuralengineering.com -lastrwasy.co.cc -lastskiveline.website -laststand.xyz -lastxxx.com -lasupsi.ga -lasupsi.gq -lasupsi.ml -lasupsi.tk -lasvegasaroundtheclock.com -lasvegasdictionary.com -lasvegastries.com -lasvegasvirusremoval.com -laszki.info -lat-nedv.ru -latamdate.review -latechnologie.site -latelierduchef.biz -latemail.tech -latest.cd -latestandhot.com -latestgadgets.com -latestprojectors.com -latestshayari.org -lateststylenews.xyz -latexbimbo.com -latheflauntmoral.site -latinchat.com -latinmail.com -latinobabysitters.com -latinonthebeach.com -latitant.xyz -latives.info -latlong.us -latriciagreene.com -latte-ro.com -lattestdaysaints.com -latvene.site -latviansmn.com -latwebmedia.com -latypografille.com -lauderdalebeachsidehotel.com -laufman.biz -laughingninja.com -lauher.org -launcestonpools.com -launch.vote -launchfunnelsecrets.com -launchjackings.com -launchpadapp.com -launchwithrica.com -laurafan.com -laurapliss.com -lauratrapp.org -laurelgrey.org -laurelmountainmustang.com -laurenanduri.com -laurenbt.com -laurenglobell.com -laurenmyers.buzz -laurennolan.buzz -laurenperugini.info -laurentsmadja.com -laurieyoungphotography.com -lautaroramirez.com -lauthreadce.cf -lauthreadce.ga -lauthreadce.gq -lauthreadce.ml -lauthreadce.tk -lauwd.org -lauxanh.live -lavabit.com -lavaiis.info -lavalleeheureuse.club -lavanamakeup.com -lavastockrom.info -lavazzaturkiye.net -lavendel24.de -lavenderresorts.com -lavendettastadriadebesos.com -laverneste.com -lavevojsnmt71366.ml -lavinacasno.club -lavinity.ru -lavish-cork.com -lavkaidey.ru -lavp.de -law-plus.ru -law2lawyer.com -lawaa317.xyz -lawaifu.pro -lawbmydi.cf -lawbmydi.gq -lawbmydi.ml -lawbmydi.tk -lawbrsoli.ru -lawcenter-1.ru -laweemx.ga -lawenforcementcanada.ca -lawfia.com -lawfinancial.ru -lawhead79840.co.pl -lawioutlets.site -lawlita.com -lawlz.net -lawncorwoo.cf -lawncorwoo.ga -lawncorwoo.gq -lawncorwoo.tk -lawndaleapartments.com -lawpages.site -lawpress.ru -lawrence1121.club -lawsentinel.com -lawsocial.ru -lawsocietyfindasolicitor.net -lawsocietyfindasolicitor.org -lawson.cf -lawson.ga -lawson.gq -lawsone.best -lawsubsqua.ga -lawsubsqua.gq -lawsubsqua.ml -lawsubsqua.tk -lawsuh.com -lawtelegraph.com -lawtoffee.com -lawvii.com -lawyerinfo.ru -lawyernear-me.com -lawyers2016.info -laxyeu.us -layananemail.com -layarkaca21.uno -layarqq.life -layarqq.loan -layarqq.online -layarsemi.club -laychuatrenxa.ga -laycounre.cf -laycounre.ga -laycounre.gq -laycounre.ml -laycounre.tk -layonchambers.com -layout-webdesign.de -layquili.cf -layquili.ga -layquili.gq -layquili.ml -layquili.tk -layuhnjshkr57618.ml -layuhnjshkr57618.tk -layupixwn.space -lazarskipl.com -lazdmzmgke.mil.pl -lazghem.cf -lazghem.ga -lazghem.gq -lazghem.ml -lazghem.tk -lazghem19.ga -lazghem1990.ga -lazizakebab.com -lazyarticle.com -lazyfire.com -lazyinbox.com -lazyinbox.us -lazymail.me -lazymail.ooo -lazymansmarketingfunnel.com -lazymanssalesfunnel.com -lazymanssalesleads.com -lazyrabbit.org -lazzarincafesaudia.com -lb1333.com -lbamilitarysorority.org -lbbxyhyf.shop -lbe.kr -lbedhm.us -lbhuxcywcxjnh.cf -lbhuxcywcxjnh.ga -lbhuxcywcxjnh.gq -lbhuxcywcxjnh.ml -lbhuxcywcxjnh.tk -lbicamera.com -lbicameras.com -lbicams.com -lbitly.com -lbjmail.com -lbn10.com -lbn11.com -lbn12.com -lbn13.com -lbn14.com -lboinhomment.info -lbox.de -lbpmg9.ru -lbpoa.com -lbpoa.net -lbse.net -lbusapac.cf -lbusapac.ga -lbusapac.ml -lbusapac.tk -lbuvfg.us -lbx0qp.pl -lbyledindia.icu -lc-ryu.com -lc0eb2.com -lc2jt0.info -lc360.site -lca-p.icu -lcahzw.info -lcamerapeak.site -lcamywkvs.pl -lcb63i1bgwe7sxy.xyz -lcbogoodneighbours.com -lcboreadytodrink.com -lccweb.org -lcdweixiu.com -lce0ak.com -lcebull.com -lceland.net -lceland.org -lcelander.com -lcelandic.com -lcgjbz.com -lcgqvd.best -lchapl.us -lchecperki.cf -lchecperki.ga -lchecperki.gq -lchecperki.ml -lcicontainment.com -lcirailgroup.com -lck66c4.com -lckiq1.site -lcleanersad.com -lcnicdn.net -lcnn.site -lcshjgg.com -lcumof.ga -lcyxfg.com -ld-zz.com -ld748.site -ld7z1y.us -ldabconnins.cf -ldabconnins.gq -ldabconnins.ml -ldabconnins.tk -ldaho.biz -ldaho.net -ldaho0ak.com -ldaholce.com -ldbet.net -ldbwebdev.com -ldebaat9jp8x3xd6.cf -ldebaat9jp8x3xd6.ga -ldebaat9jp8x3xd6.gq -ldebaat9jp8x3xd6.ml -ldebaat9jp8x3xd6.tk -ldefsyc936cux7p3.cf -ldefsyc936cux7p3.ga -ldefsyc936cux7p3.gq -ldefsyc936cux7p3.ml -ldefsyc936cux7p3.tk -ldentertainment.net -ldgufvctc.shop -ldh80hrnfauehks.xyz -ldidjk.icu -ldimh.live -ldlvqf.shop -ldnblockchainweek.com -ldnplaces.com -ldokfgfmail.com -ldokfgfmail.net -ldop.com -ldovehxbuehf.cf -ldovehxbuehf.ga -ldovehxbuehf.gq -ldovehxbuehf.ml -ldovehxbuehf.tk -ldssharingtable.com -ldtp.com -ldwdkj.com -ldzg.email -le-asi-yyyo-ooiue.com -le-book.info -le-diamonds.com -le-speak-show.com -le-tim.ru -le-vignoble.info -le.monchu.fr -le50le5i.shop -le5ile50.shop -lea-0-09ssiue.org -lea-ca-ales-ia.online -lea-ss-ws-33.org -leabelvei.cf -leabelvei.ga -leabelvei.gq -leabelvei.ml -leachim.org -lead-contact.ru -lead-maximum.ru -lead-tour.ru -leadarab.xyz -leadcoat.website -leaddogstats.com -leader-traffic.ru -leaderlawabogados.com -leadermedalsink.website -leaderportes-dz.com -leadersinevents.com -leadgeneration.doctor -leadgeneration.systems -leadingageco.org -leadingagegeorgia.org -leadingbulls.com -leadingemail.com -leadingeu.site -leadlovers.site -leadmagnetgenerator.com -leadnurseafrica.com -leadsafestlouis.org -leadscan.website -leadscanwr.online -leadscentre.online -leadscopy.com -leadsflow.info -leadsintoloans.com -leadssimple.com -leadsystemthatworks.com -leadtothebest.com -leadwojzer.space -leafmanager.com -league0.com -leaguecms.com -leaguedump.com -leagueofdefenders.gq -leagueoflegendscodesgratuit.fr -leakazanclari.com -leakazancplani.com -leakcloaker.online -leakcloaker.xyz -leaked.directory -leakems.org -leakybottle.com -leakydisc.com -leakygutawarness.com -lealifen.cf -lealifen.ga -lealifen.gq -lealifen.ml -lealifen.tk -leanedir.com -leanlad.com -leanxtractor.com -leapercliff.top -leapradius.com -leapshoot.com -learn.cd -learnaffiliatemarketingbusiness.org -learnalot.xyz -learncore.co -learncore.org -learncourseonline.online -learnearntoday.com -learnhome.org -learnhowtobehappy.info -learnhowtomakemoneyformhome.com -learning-a1.ru -learning-b2.ru -learning-blog.ru -learning-counts.net -learning-ser.ru -learning-sr.ru -learningbunny.com -learningmakingmoney.com -learningnets.net -learningstylesurvey.org -learnislaminbangla.com -learnmaths.net -learnmyanmar.online -learnphotoshop.info -learnqolapp.com -learnskillsforlife.us -learnsystem.online -learntofly.me -learntoparty.com -learnwithvideo.org -lease4less.com -leasecarsuk.info -leasecha.icu -leasefling.us -leaseranc.icu -leasero.cf -leasero.ga -leasero.gq -leasero.ml -leasero.tk -leasesoun.email -leasespine.email -leashoes.com -leasnet.net -leasswsiue.org -leather-dozen-warn-third.xyz -leatherseatcovers.net -leave-notes.com -leaveover.xyz -leaver.ru -leavr.com -lebang.site -lebanonrealestateagents.com -lebeike.club -leben-in-thailand.info -leben-statt-wohnen.org -lebenkapinda.com -lebenskunst.vision -lebilli.cf -lebilli.ga -lebilli.ml -lebilli.tk -lebo1314.com -lebo134.com -lebo137.com -lebo246.com -lebo7474.com -lebo7733.com -lebonbiz.cd -lebronjamessale.com -lecadeaucurtumecasa.com -lecgrowlight.net -lechenie-boleznej.ru -lechenie-raka.su -lechimao.club -lechimgipertoniyu.ru -leclairknives.com -leclimat.cd -leclubconcept.com -lecode.biz -lecsaljuk.club -lecturebmls.email -lecturn.digital -lecturn.online -lecturn.site -lectverli.cf -lectverli.ga -lectverli.ml -lectverli.tk -lecz6s2swj1kio.cf -lecz6s2swj1kio.ga -lecz6s2swj1kio.gq -lecz6s2swj1kio.ml -lecz6s2swj1kio.tk -leczycanie.pl -led-best.ru -led-gadgets.com -led-mask.com -led-spb.ru -led-trainers.com -ledaroy.site -ledarskolan.se -ledcaps.de -leddispsor.cf -leddispsor.ga -leddispsor.ml -leddispsor.tk -lederbehang.com -ledgardenlighting.info -ledgercrpyto.net -lediponto.com -ledlight.shop -ledmask.com -ledmedia92.ru -lednlux.com -ledoktre.com -ledoutdoorfloodlights.com -leds-4you.de -ledskor.com -ledticker.ru -lee.mx -leeching.net -leedel.me -leefirm.net -leejihua.com -leelighting-stage.com -leemail.me -leerling.ml -leernoca.monster -leesairandplumbing.com -leespring.biz -leessummitapartments.com -leet.support -leeviate.com -leeyoder.com -lefaqr5.com -leferitis.com -lefli.ru -lefmail.com -left-mail.com -leftfieldsports.com -leftimouse.com -leftsydethoughts.com -leftymouse.com -legacyangusranch.com -legacyfinanceblog.club -legacyhomedgbuyshomes.com -legacymode2011.info -legacysummit.com -legacytractorsales.com -legal-highs.org -legal.fail -legalalien.net -legalclub.net -legalil.com -legalizamei.com -legalizer.website -legalrc.cash -legalrc.loan -legalresourcenow.com -legalrobot.dev -legalsentences.com -legalslot.ru -legalslots.ru -legalsteroidsstore.info -legalwire.news -legaly.us -legatine.xyz -legato.agency -legato.dev -legato.media -legcramps.in -lege4h.com -legend-rpg.ru -legendary2019.ru -legendaryrealtyal.info -legendauthorisetone.website -legendsofnorrath.ru -legendsvegas.com -legiastore.com -legion.live -legiondesign.ru -legioninvestingleak.com -legionzoocentr.ru -legitimateonline.info -legitimationsprozess.info -legitimationsservice.info -legitimatizes716hb.online -legitimized162ei.online -legkobaknrot.xyz -legkospet.ru -legocp66.com -legooolise.ru -legozolder.online -legumennvj.online -legwars.online -lehanhphuc.ml -lehelti.ga -lehelti.gq -lehelti.tk -lehman.cf -lehman.ga -lehman.gq -lehman.ml -lehman.tk -lehner576.com -lehoang.online -lehrxira.cf -lehrxira.ga -lehrxira.gq -lehrxira.ml -lei.kr -leibian9.com -leica-camear.com -leiday.xyz -leifitne.cf -leifitne.gq -leifitne.ml -leifitne.tk -leiladismalmufti.site -leilasells.com -leinkblabk.site -leisu.link -leisu.ltd -leisu.site -leiteophi.cf -leiteophi.ga -leiteophi.gq -leiteophi.ml -leiteophi.tk -leitestudio.com -leituraacelerada.website -leituraagil.website -lejdw.com -lekarstva-bezrezeptof.site -lekarstva.info -lekarstvopodnogami.ru -lekeda.ru -lekhanhphi.com -lekhauy.com -leknawypadaniewlosow.pl -leks.me -lelastar.site -lella.co -lellno.gq -lelove.ru -lelucoon.net -lemajesticglobal.org -lemanager.cd -lemano.se -lemantcom.ga -lemantcom.gq -lemantcom.ml -lembarancerita.ga -lembarancerita.ml -lembeh-shootout.com -lememcon.com -leminbenp.cf -leminbenp.ga -leminbenp.gq -leminbenp.ml -lemonadeka.org.ua -lemonde-fr.space -lemonde24fr.host -lemonde24fr.site -lemondedeladouche.com -lemondedufairepart.com -lemondresses.com -lemondresses.net -lemonebet.com -lemongeek.best -lemooreforeclosures.com -lemoshop.com -lemouvement.ngo -lemper.cf -lemurhost.net -lemycam.ml -lenalimas.info -lenamanh.ga -lenbobit.cf -lenbobit.gq -lenbobit.ml -lenbobit.tk -lenderfacts.com -lendfox.com -lendingshop.site -lendlesssn.com -lendoapp.co -lenestate.ru -lengworcomp.gq -lenhisun.ga -lenhisun.gq -lenhisun.ml -leniences.com -leningrad.space -lenkino.name -lenlinza.ru -lenlusiana5967.ga -lenmawarni5581.ml -lennonthemusical.com -lennurfitria2852.ml -lennysirivong.com -lenovo120s.cf -lenovo120s.gq -lenovo120s.ml -lenovo120s.tk -lenovog4.com -lenpitchna.ml -lenpitchna.tk -lenprayoga2653.ml -lenputrima5494.cf -lensbuffs.info -lenscleaningbrush.us -lenscleaningbrushes.biz -lenscleaningbrushes.us -lensdunyasi.com -lensmarket.com -lensservoptical.com -lenta-bukv.ru -lenta-receptov.ru -lentoarea.com -lenujksnt14394.ga -lenujksnt56026.ml -lenujksnt96368.ml -leo-gaming.tk -leo-perevod.xyz -leoandassoc.com -leoforbaby.ru -leohlch.com -leomnascx.xyz -leon-app.ru -leon13.ru -leonardolobo.top -leonebets.com -leonelahmad.cf -leonfamily.ru -leonghupgroup.com -leonmail.men -leonorcastro.com -leopardstyle.com -leopardstyles.com -leoplethbi.cf -leoplethbi.gq -leoplethbi.ml -leoplethbi.tk -leopon.site -leopuden.ru -leos.org.uk -leosibiot.online -leosoftnet.org -lepadoid.site -leparfait.net -lepdf.site -lepetitcabanon.com -lepetitensemble.com -lepetitprince.life -lepezh.ru -lepgrowlight.com -lepoxo.xyz -lepretaplanter.com -lepsiobec.sk -lepti-health.com -lepti-science.org -leptin-solution.org -leptisolution.com -leptisolution.org -leptitox-news.org -leptitox-research.com -leptitox-research.org -leptitox-science.org -lequitywk.com -lequydononline.net -lerbhe.com -lerch.ovh -lercjy.com -lerepo.cf -lerepo.ga -lerepo.gq -lerepo.ml -lerepo.tk -leribigb.cf -leribigb.ga -leribigb.gq -leribigb.tk -lernerfahrung.de -leroidurelax.com -leroymyers.org -lerwfv.com -les-bons-tomes.com -les-bouquetins.com -lesabahis18.com -lesabahis20.com -lesabahis23.com -lesabahis28.com -lesabahis30.com -lesabahis34.com -lesabahis40.com -lesabahis48.com -lesabahis49.com -lesabahis55.com -lesabahis90.com -lesastroi.ru -lesatirique.com -lesbrowncertified.com -lesbugs.com -lesfineslamesdechicoutimi.com -lesgermaines.site -leshang-yl.com -leshiz.website -leshommes.ru -lesleyhampton.ru -lesleypappalardoproperties.com -lesmail.top -lesmarchesdeparisconnectes.com -lesnistsup.cf -lesnistsup.ga -lesnistsup.gq -lesnistsup.ml -lesnistsup.tk -lesoir-24-be.space -lesoir-24-be.website -lesoir-24be.space -lesoir24.host -lesoir24.space -lesoleildefontanieu.com -lesotho-nedv.ru -lespassant.com -lespitonsy.info -lespooche.org -lesproekt.info -lesprosdela.photo -lesrecettesdebomma.com -lesscrm.com -lessdinal.cf -lesseriestreaming.live -lesseriestreaming.site -lesseriestreaming.xyz -lesserkcqn.space -lessermndz.site -lessgime.cf -lessgime.ga -lessgime.gq -lessgime.tk -lessjoule.com -lesslenett.cf -lesslenett.gq -lesslenett.tk -lessnentdar.cf -lessnentdar.ga -lessnentdar.gq -lessnentdar.ml -lessnentdar.tk -lessonlogs.com -lessquagga.com -lestnicy.in.ua -lestoutes.com -lestoutes.store -leswebmasters.info -lesy.pl -letaemvisokovse.xyz -letairbag.com -letaodh.com -letempledelavie.paris -letfreedomring.site -letgo99.com -letgostory.fun -letgostory.website -lethbridgepropertymanagement.com -lethedtling.xyz -lethitham.ml -letian1999.com -leticiapinheirorenova.com -letihsrret.ga -letipue.ru -letmebefrankproduction.com -letmecheck.adult -letmeinonthis.com -letmeknow.us -letmissy.com -letmymail.com -letmypeopleshop.com -letnanqq.com -leto-dance.ru -letonus.ru -letras.xyz -letrungtruc.ml -lets-open.com -letschat365.info -letsgo.co.pl -letsgoalep.net -letsgotech.org -letsgoystoas.site -letslearnarduino.com -letsmail9.com -letsspeakindia.com -letstalkaboutsex.org -letstestsa.info -letstoeasyearn.xyz -lettelet.cf -lettelet.ga -lettelet.gq -letterfew.online -lettermania.site -lettersnew5fact.space -letthemeatspam.com -lettresfree.com -letuchkaavia.xyz -letumeatcake.com -letup.com -letw1xabmtbuf34.xyz -letweetducapitole.com -leufhozu.com -leukorrhea811cd.online -leurre.xyz -leutromcoo.ga -leutromcoo.ml -leutromcoo.tk -levcentr.ru -level-3.cf -level-3.ga -level-3.gq -level-3.ml -level-3.tk -level.ninja -level3.flu.cc -level3.igg.biz -level3.nut.cc -level3.usa.cc -leveldesign.site -levelmebel.ru -levelrat.xyz -levelscal.us -levelupworker.com -levelwre.email -levelwrec.recipes -levendislaw.com -leverbox.online -leverboxpay.com -levfy.com -leviatereview.com -levis-jeans.us -levis-shoes.com -levisdaily.com -levitic.us -levitron-shop.ru -levitycraft.ru -levothyroxinedosage.com -levtbox.com -levtov.net -levy.ml -levyshka.cyou -lew2sv9bgq4a.cf -lew2sv9bgq4a.ga -lew2sv9bgq4a.gq -lew2sv9bgq4a.ml -lew2sv9bgq4a.tk -lewat.ga -lewineryguide.com -lewisbarnes.buzz -lewiseffectfoundation.com -lewiseffectfoundation.org -lewisivbhn.space -lewistweedtastic.com -lewisvilleaccidentlawyers.com -lewisvilleinjurylawyer.com -lewisvillepersonalinjurylawyer.com -lewkaki.ru -lexabet.net -lexaha.info -lexdrive.com -lexi.rocks -lexidot.com -lexingtnlaw.com -lexingtonnailsalons.com -lexingtonquote.com -lexisense.com -lexishoki.net -lexisparkles.fun -lexisparkles.online -lexisparkles.space -lexispoker.online -lexoxasnj.pl -lexpowerperks.info -lexu4g.com -lexus138.net -leycryppink.cf -leycryppink.gq -leycryppink.ml -leycryppink.tk -leyesmessenger.shop -leyfamug.gq -leyfamug.ml -leyfamug.tk -leyleori.cf -leyleori.gq -leyleori.ml -leyleori.tk -leysatuhell.sendsmtp.com -lez.se -lezamedia.net -lezhongda.club -lf-jy.com -lf271.site -lfapku.tokyo -lfbeichuang.com -lfc.best -lfcaafazw.shop -lfcdaco.us -lffja.xyz -lffjg.site -lfgaea.us -lfgn.us -lfgtsoft.com -lfhc.email -lfifet19ax5lzawu.ga -lfifet19ax5lzawu.gq -lfifet19ax5lzawu.ml -lfifet19ax5lzawu.tk -lfjjjp.shop -lflll.club -lfruits.com -lfsvddwij.pl -lftjaguar.com -lfwiki.com -lfyyh.club -lfyyh.xyz -lg-g7.cf -lg-g7.ga -lg-g7.gq -lg-g7.ml -lg-g7.tk -lg88.site -lgclub.org -lgdol.club -lgeacademy.com -lgfvh9hdvqwx8.cf -lgfvh9hdvqwx8.ga -lgfvh9hdvqwx8.gq -lgfvh9hdvqwx8.ml -lgfvh9hdvqwx8.tk -lghjgbh89xcfg.cf -lgicustombrokers.com -lgifytgbl.cf -lgjiw1iaif.gq -lgjiw1iaif.ml -lgjiw1iaif.tk -lgloo.net -lgloos.com -lgmail.com -lgmyholsg.shop -lgpsoptout.net -lgsweb.org -lgt8pq4p4x.cf -lgt8pq4p4x.ga -lgt8pq4p4x.gq -lgt8pq4p4x.ml -lgt8pq4p4x.tk -lgtix.fun -lgubas.space -lgx2t3iq.pl -lgxscreen.com -lgyimi5g4wm.cf -lgyimi5g4wm.ga -lgyimi5g4wm.gq -lgyimi5g4wm.ml -lgyimi5g4wm.tk -lh-properties.co.uk -lh0hd.us -lh2ulobnit5ixjmzmc.cf -lh2ulobnit5ixjmzmc.ga -lh2ulobnit5ixjmzmc.gq -lh2ulobnit5ixjmzmc.ml -lh2ulobnit5ixjmzmc.tk -lh451.cf -lh451.ga -lh451.gq -lh451.ml -lh451.tk -lh4phi.us -lhckj3.com -lhda.email -lhfoh.club -lhfoh.xyz -lhgfl.xyz -lhgjw.site -lhkjfg45bnvg.gq -lhl1.club -lhmulk.com -lhnbsy.host -lhqc9s.us -lhrnferne.mil.pl -lhsdv.com -lhsg4p.us -lhslhw.com -lhtcdh.com -lhtcdh.xyz -lhtn.email -lhxj.email -li-al.ru -li8vejasmin.com -liabravin.cf -liabravin.ga -liabravin.ml -liabravin.tk -liacos.tech -liacredfun.cf -liacredfun.ga -liacredfun.gq -liacredfun.tk -liadisma.cf -liadisma.ga -liadisma.gq -liadisma.ml -liadisma.tk -liadreamva.cf -liadreamva.ga -liadreamva.gq -liadreamva.ml -liadreamva.tk -lialaise.tk -liamases.cf -liamases.ga -liamases.gq -liamases.ml -liamases.tk -liamcyrus.com -liamekaens.com -liamgoodact.ru -liamhosford.com -liamrandall.com -lianerosebunce.com -lianewsnews.cf -lianewsnews.ga -lianewsnews.gq -lianewsnews.ml -lianewsnews.tk -liang.zone -lianhe.in -lianlifang.com -lianmengku.com -liaohigh.com -liaonue.club -liaphoto.com -liarath.info -liargroup.com -liargroup.org -liaryo.pro -liaryo.site -liatranat.ga -liatranat.gq -liatranat.ml -liatranat.tk -liaz.fun -libbywrites.com -libeling328ei.online -libenoun.cf -libenoun.ga -libenoun.ml -libenoun.tk -libeoweb.info -liber.press -liberalize557we.online -liberalizing483lb.online -liberiaom.com -libertabet4.com -libertarian.network -libertyaccounting.biz -libertychristianchurch.org -libertyconservativedaily.com -libertycontent.dev -libertydental.info -libertyinworld.com -libertylawnetwork.com -libertylibrary.site -libertymail.info -libertymu5ual.com -libertyskillcenter.com -libertyvf.xyz -libertyvillesaddleshop.com -libidipvde.space -libido.events -libido.wiki -libidopluses.ru -libinailstyle.ru -liboor.com -liboove.com -libox.fr -libpotassium.com -librainvesting.com -libraloan.xyz -librans.co.uk -libraprofit.info -librarium.org -library-annabi.org -librarybooks.xyz -libraryofbussiness.com -libridivertenti.shop -librielibri.info -libriumprices.com -libroncos.com -librosepub.info -libuna.info -licaipa.xyz -licence.legal -license.legal -licenserights.com -licensestore.ru -licensingsalestool.com -lichten-nedv.ru -lichthidauworldcup.net -lichtstark.media -licinusrance.com -licitando.com -liclifeinusrance.com -licof.us -licontu.cf -licontu.ga -licontu.gq -licorne.ml -licycnint.cf -licycnint.ga -licycnint.gq -licycnint.ml -licycnint.tk -licytuj.net.pl -liddr.com -lidepre.cf -lidepre.ga -lidepre.gq -lidepre.ml -lidepre.tk -lideravtoshkola.ru -liderbahis124.com -liderbahis131.com -liderbahis139.com -liderbahis2.com -liderbahis52.com -liderbahis78.com -liderbahis82.com -liderbahis97.com -liderbahis98.com -lidercert.com -lidertele.com -lideud.com -lido.site -lidprep.vision -lidwa.net -liebenswerter.de -liebesbeweis-reise.com -liebesbeweisreise.com -liebesparade.party -lieblingsmann.love -liedjesaanvragen.online -liedjesaanvragen.site -liedjesaanvragen.space -lieeliev.shop -liefanaticjar.website -lieflorul.cf -lieflorul.ga -lieflorul.gq -lieflorul.tk -liefracbo.cf -liefracbo.ga -liefracbo.tk -liegarbu.cf -liegarbu.ga -liegarbu.ml -liegarbu.tk -lienminhnuthan.vn -lienutile.com -lienv.xyz -liepaven.cf -liepaven.ga -liepu3vjxfuov06.xyz -liesesscont.cf -liesesscont.ga -liesesscont.ml -liesesscont.tk -lifanapp.com -lifanblog.com -life-bets.ru -life-coder.com -life-online1.ru -life-recipes.cf -life-recipes.ga -life-recipes.gq -life-recipes.ml -life-recipes.net -life-recipes.tk -life-smile.ru -life1111.info -life17.icu -life22.icu -lifeafterlabels.org -lifeairhitradio.com -lifebloominvest.ru -lifebyfood.com -lifebythegrapes.com -lifecoach4elite.net -lifecore.net -lifedens.online -lifefamilly.com -lifefinanceblog.club -lifeforceschool.com -lifeforchanges.com -lifeguru.online -lifeinsurancecoverageguaranteed.com -lifeinsuranceforcancerpatient.com -lifeinsurancewithnoquestions.com -lifeinsurancewithnoquestionsasked.com -lifeirrigationgardens.com -lifeisapingpong.com -lifeisgood.uno -lifejaszzzv.email -lifekazino.ru -lifeleadership.sk -lifeluxure.com -lifemail.tech -lifeofacowboy.com -lifeperformers.com -lifeprotips.org -lifes-days.club -lifesaglitch.tv -lifestyle-trends-today.com -lifestyle24x7.com -lifestyle4u.ru -lifestylemagazine.co -lifestyleretail.website -lifestylerunsbig.com -lifestyletraders.live -lifesupportband.com -lifetalkrc.org -lifetime-income.org -lifetimeappdeal.com -lifetimeappdeals.com -lifetimecms.com -lifetimefriends.info -lifetimeincomejournal.com -lifetotech.com -lifetransition.info -lifetribes.net -lifeuh.com -lifeundersail.com -lifevantageqc.com -lifewaypregnancy.net -lifewirekeys.com -lifeyogaelements.net -liffebody.host -liffebody.site -liffebody.store -liffoberi.com -lift-renew.com -liftandglow.net -lifted.cc -liftforwardstore.com -liftharmfulloll.website -liftingbridges.org -liftitcargo.com -liftticketsystem.com -liftvblh.space -liga-kamcartit.ru -liga.my -liga108.club -liga228.fun -liga365poker.com -liga88.website -ligadc.club -ligadepo.com -ligagame.net -ligagnb.pl -ligahoki168.com -ligai.ru -ligaindo.com -ligaku.com -ligaolmecaoficial.net -ligaolmecaoficial.org -ligapalapa.org -ligasbo.club -ligastavki.ru -ligastavok-app.ru -ligaz888.com -ligazth888.com -ligbet25.com -ligerautos.info -lighcolve.cf -lighcolve.ga -lighcolve.gq -lighcolve.ml -lighcolve.tk -ligheveng.ru -lighhecktof.world -lighnucta.cf -lighnucta.ga -lighnucta.ml -lighnucta.tk -light-android.space -light-beauty.ru -light-marketing.ru -lightbcrny.space -lightbild.ru -lightboxelectric.com -lightboxsigns.com -lightca.icu -lightcenter.top -lightcool.ru -lightcrop.ru -lightdog.ru -lightengroups.com -lighthouseinvestments.org -lighting-us.info -lightinggalleryoc.net -lightingnewswire.com -lightivor.icu -lightlabel.com -lightningcomputers.com -lightofasia.ml -lightognivo.ru -lightplut.ru -lightpower.pw -lightrumo.xyz -lightsdownstarsup.com -lightseekers.chat -lightseekers.games -lightseekers.stream -lightserv.net -lightshar.xyz -lightspeed.golf -lightspeed.store -lightspeedgolf.app -lightswea.icu -lightvid.ru -lightvids.com -lightvivo.ru -lighvanrau.ga -ligirls.ru -ligobet56.com -ligobet59.com -ligsb.com -ligtip.ru -ligtvkafe.website -lihaoxiaoxi.com -lihdaf.com -lihjmb.icu -lihuafeng.com -liitokala.cf -liitokala.ga -liitokala.gq -liitokala.ml -liitokala.tk -lijeuki.co -lijwlwkd.shop -likability992hc.online -like-official-sale.space -likeable.social -likeatfirstsight.com -likedz.world -likelongan.com -likelucky.ru -likelystory.net -likemauscub.ru -likemausfield.ru -likemausfog.ru -likemausrose.ru -likemilkingacow.com -likenews24.ru -likeonline.xyz -likeorunlike.info -likepoe.space -likeproekt.ru -likesv.com -likesyouback.com -liketobuy.ru -likevipfb.cf -likvidooo.xyz -lilactrustnoble.site -lilianmagdalen.com -lilidirectory.com -lilifer.ga -lilifer.gq -lilifer.ml -lilifer.tk -lilin.pl -lilith.pw -lilittka.cf -lilittka.gq -lilittka.tk -liliyakunitskaya.ru -lillemap.net -lilliejeter.com -lillymeadows.com -lilnx.net -lilo.me -lilspam.com -lilyclears.com -lilyjeter.com -lilylee.com -lilyverywell.com -limacitasa.info -limacology.xyz -limahfjdhn89nb.tk -limamail.ml -limang.ru -limaquebec.webmailious.top -limatyr.ru -limberzbmn.space -limboflow.com -limboo.ga -limcorp.net -lime-cb8.com -limee.ru -limehdtv.online -limeleaftakeaway.com -limeline.in -limerickbirds.com -limetreetraining.com -limetv.site -limez.ninja -limez.wtf -limilime.shop -liminality.info -liming.de -limitless-request.net -limnhaisbag.website -limon.biz.tm -limon1.bet -limon3.bet -limonadainc.com -limonapi.com -limonfill.com -limousines-montreal.com -limpa-chamine.com -limpeza-de-chamine.com -limpoponationalpark.org -limsoohyang.com -limumuee.club -limumuee.site -limuzyny-hummer.pl -lin.lingeriemaid.com -lin889.com -linap1.site -lincahqq.info -lincahqq.net -lincahqq.org -lincolnnailsalons.com -lindabigness.com -lindaclothing.com -lindaknujon.info -lindaxa.site -lindbarsand.cf -lindbarsand.ga -lindbarsand.gq -lindbarsand.ml -lindbarsand.tk -linden.com -lindenbaumjapan.com -lindendaleridge.com -lindendentists.com -linders.icu -lindo-dublin.com -lindsayjanestore.com -lindsaylangford.com -lindseyallen.net -lindwards.info -linea-stile.ru -linead.biz -lineadesoporte.com -lineahr.website -linearapp.com -linejust.info -linenelbo.fun -linenhe.buzz -linenlim.xyz -linenstudy.buzz -lineode.com -lineode.net -lineofequitycredit.net -linerneitheronset.site -lines12.com -linforthwith.cf -linforthwith.ga -linforthwith.gq -linforthwith.ml -linforthwith.tk -lingang.city -lingdlinjewva.xyz -lingmarbi.cf -lingmarbi.ga -lingmarbi.tk -lingmulbe.cf -lingmulbe.ml -lingmulbe.tk -lingpicsu.cf -lingpicsu.ga -lingpicsu.gq -lingpicsu.ml -lingpicsu.tk -linguistic.ml -linguisticlast.com -linguistique-sejour.com -lingyuncq.com -lingzha.club -linhtinh.ml -lininas-auvim.ru -linind.ru -liningnoses.top -linjianhui.me -link-assistant.com -link-protector.biz -link-short.xyz -link.cloudns.asia -link2dolar.xyz -link2go.online -link2mail.net -link3mail.com -link98.site -linkadulttoys.com -linkalternatif-angelpoker.info -linkalternatif.site -linkandluggage.com -linkauthorityreview.info -linkbet88.club -linkbet88.info -linkbet88.online -linkbet88.org -linkbet88.xyz -linkbuilding.pro -linkcibaba.site -linkedinemails.online -linkedintuts2016.pw -linkedmails.com -linkedupdesign.com -linkgoitr.ml -linkhound.net -linki321.pl -linkibcbet.club -linkibcbet.xyz -linkingcablebest.faith -linkjewellery.com -linkloadingloom.website -linkmadang.com -linkmadang1.com -linkmam2.com -linkmanialiga.website -linkmaniaqq.live -linkmaniaqq.online -linkmaniaqq.website -linkmaxbet.xyz -linkmehrcrom.cf -linkod.press -linkpaneli.online -linkredirekt.ru -linkrun.xyz -links-age.com -linksbobet.mobi -linkscy.com -linksdown.net -linkserver.es -linksgold.ru -linksmaximiser.com -linkstinad.cf -linkstinad.ga -linkstinad.gq -linkstinad.ml -linkstinad.tk -linksysrouterlogin.net -linktown02.com -linktown1.net -linktown2.com -linktown2.net -linku-2.icu -linku-3.icu -linku.in -linkusupng.com -linkwithstyle.store -linkyard.net -linkzimra.cf -linkzimra.ga -linkzimra.gq -linkzimra.ml -linkzimra.tk -linlowebp.cf -linlowebp.ga -linlowebp.gq -linlowebp.ml -linlowebp.tk -linodecdn.org -linodevps.com -linop.online -linostakeaway.com -linozemtseva.com -linpie.com -linsabe.cf -linsabe.ga -linsabe.gq -linsabe.ml -linsabe.tk -linsang.site -linshiyou.com -linshiyouxiang.net -linshuhang.com -linsila.com -linska.com -linsoutorf.com -linsoutorf.icu -linspalace-ringsend.com -linuser.org -linuxbbs.com -linuxguru.network -linuxmade.ru -linuxmail.com -linuxmail.so -linuxmail.tk -linuxpl.eu -linwoodsmilk.com -linx.email -linyukaifa.com -linzacolor.ru -lioasdero.tk -liodernlen.cf -liodernlen.ga -liodernlen.gq -liodernlen.ml -liodernlen.tk -liomplus.ru -lion-and-rose.ru -lionbet777.info -lionbullion.org -lioncoin.info -lionelxyz.online -lionheartux.com -lionize.dev -lionize.page -lionnitrousloth.website -lionplas.ga -lionqq.com -lions-army.tk -lions.gold -lionsmoh.com -lionsmoh.net -lioplpac.com -liopolo.com -liopolop.com -lipasda.cf -lipasda.gq -lipasda.tk -liphesa.cf -liphesa.ga -liphesa.gq -liphesa.ml -liphesa.tk -lipitorprime.com -lipmanbetx.com -lipo13blogs.com -lipoqiuqiu.org -liporecovery.com -liposhop.site -liposuction-procedure-now.rocks -liposuction-procedure-site.live -liposuction-procedure-spot.live -liposuctionofmiami.com -lipozinweightloss.com -lippystick.info -lipskydeen.ga -liptor.ru -liputen.cf -liputen.ga -liputen.gq -lipweiness.cf -lipweiness.gq -lipweiness.ml -lipweiness.tk -liqorice.com -liquad.com -liquidation-specialists.com -liquidfastrelief.com -liquidherbalincense.com -liquidinformation.net -liquidmail.de -liquidvmoi.ru -lirabet83.com -lirabetpartners.com -liraclinical.net -lirats.com -lirikkuy.cf -lirili.info -lirratobacco.online -lirratobacco.xyz -lisabecclothing.com -lisabosborn.com -lisacorino55places.com -lisafoxy.website -lisagenkigibson.com -lisahazletonclothing.com -lisakbez.buzz -lisakiss.website -lisamadison.cf -lisansmerkezi.xyz -lisaqchinesecuisine.com -lisaslensphoto.com -lisasolventlove.website -lisastyle.se -lisboagamesworld.com -lisbon-guesthouse.com -lisciotto.com -lisemene.com -lishi321.xyz -lispblog.com -lisseurghdpascherefr.com -lisseurghdstylers.com -lissseurghdstylers.com -list-here.com -list.elk.pl -list.moe -listallmystuff.info -listdating.info -listen-to-her.info -listentogoodsay.club -listentowhatisaynow.club -listentowhatisaystar.club -listentowhatisaystudio.club -listentowhatisaytech.club -listentowhatistate.club -listentowhatsaid.club -listentowhensay.club -listenulled.xyz -listimi.ga -listimi.gq -listimi.tk -listingleadsforyou.biz -listingsnob.com -listme.best -listmoe.com -listofmovies.website -listopay.net -listspider.com -listtagshopshop.com -listthehyt.ga -listtoolseo.info -lit-plast.ru -litahui.com -litardo192013.club -litb.site -litbnno874tak6nc2oh.cf -litbnno874tak6nc2oh.ga -litbnno874tak6nc2oh.ml -litbnno874tak6nc2oh.tk -litchi-cranic.website -litchivietnam.com -litd.site -lite-bit.com -lite.com -liteal.com -litearyfaeriepublishing.com -litebit.sk -litecos.com -litedrop.com -liteify.xyz -liteikin.ru -litemineservers.ru -litenero.info -liteorigins.com -litepay.space -literallywrotethebook.com -literallywrotethebookon.com -literallywrotethebookseries.com -literarum.website -literaryweddings.com -literatecamel.com -literatecamel.net -litermssb.com -litetolife.com -lithoist.com -lithuangpu.world -litici.cf -litici.ga -litici.gq -litici.ml -litici.tk -litisponispurr.com -lititua.cf -lititua.ga -lititua.gq -lititua.ml -lititua.tk -litom.icu -litrenativo.com -litrgol.ru -litrovq.fun -littitte.online -little-backpacks.com -littleamphibian.com -littlebamboo.org -littlebewdy.com -littlebiggift.com -littleblackleaf.com -littlebox.site -littlebuddha.info -littlecaprice.site -littlechip-inn-rush.com -littlecppa.space -littlefarmhouserecipes.com -littlegembox.net -littleheartpie.com -littleindiaphibsboro.com -littlejerusalemrathmines.com -littlekasino.com -littleltoj.ru -littlemail.org.ua -littlemedic.org -littleneroni.com -littlepc.ru -littlepetesphilly.com -littlepotato.org -littlepreview.com -littleroach.net -littlescouts.com -littlestpeopletoysfans.com -litva-nedv.ru -litvinovarchitects.com -litwickimedia.com -liucher.host -liuhebagua.net -liul11.app -liul14.app -liul19.app -liul2.app -liul21.app -liul22.app -liul23.app -liul24.app -liul25.app -liul27.app -liul28.app -liul3.app -liul31.app -liul32.app -liul36.app -liul37.app -liul38.app -liul39.app -liul43.app -liul45.app -liul48.app -liul5.app -liul66.app -liul7.app -lius.info -liuvplus.su -liuyijun.me -liuyiyis.xyz -liv3jasmin.com -liva-der.com -livakum-autolar.ru -livall-bling.online -livan-nedv.ru -livcam.online -live-casinos-online.com -live-ep.com -live-gaming.net -live-perisa.com -live-pop.com -live-shop24.ru -live-woman.ru -live.encyclopedia.tw -live1994.com -live2.icu -live24dns.com -live2d.moe -live4life.online -liveaboardtheconception.com -liveadultcams.org -liveamericans.com -livebet75.com -livebraverish.com -livecam.edu -livecam24.cc -livecare.info -livecric.info -livecur.info -livedebtfree.co.uk -livedecors.com -livederbygirls.com -livedosug.com -liveemail.xyz -livefo.works -livefo.xyz -liveforeverphotos.com -livegolftv.com -livehempextract.com -livehk.online -livejasminhd.com -livejournali.com -livekid.net -livekurs.ru -livelaunchformula.com -liveles.cf -liveles.ga -liveles.gq -liveles.tk -liveliberty.site -livelinessinstitute.com -livellyme.com -liveloveability.com -livelylawyer.com -livemail.bid -livemail.download -livemail.men -livemail.pro -livemail.stream -livemail.top -livemail.trade -livemaill.com -livemails.info -livemarketquotes.com -livemoviehd.site -livenewstab.com -livenode.info -livenode.org -liveoctober2012.info -liveonkeybiscayne.com -livepharma.org -liveproxies.info -liveradio.tk -livercirrhosishelp.info -liveresinoil.com -liveresinoils.com -liverfcshop.com -livern.eu -liverpoollaser.com -livesamet.com -liveset100.info -liveset200.info -liveset300.info -liveset404.info -liveset505.info -liveset600.info -liveset700.info -liveset880.info -livesex-camgirls.info -livesgp.best -livesgp.kim -livesgp.monster -livesilk.info -liveskiff.us -livestreamingnfl.com -livetimlifestyle.com -liviahotel.net -livingbeyondbethesdaministries.org -livingclone.com -livinggivingmore.com -livinginsurance.eu -livingmarried.com -livingmetaphor.org -livingprojectcontainer.com -livingsalty.us -livingshoot.com -livingsimplybeautiful.info -livingsimplybeautiful.net -livingsmart.press -livingwater.net -livingwealthyhealthy.com -livinwuater.com -livn.de -livrare-rapida.info -livrepas.club -livriy.com -livs.online -livzadsz.com -liwa.site -liwa1-afekis.ru -liwondenationalpark.com -lixian8.com -lixin1688.net -lixo.loxot.eu -liyaxiu.com -liybt.live -lizagourds.com -lizardrich.com -lizclothig.com -lizelizabeth.org -lizenzzentrale.com -lizjacket.com -lizom.academy -lizpafe.cf -lizpafe.gq -lizpafe.ml -lizpafe.tk -lizziegraceallen.com -lj8c7u.info -ljeh.com -ljewelrymost.site -ljgcdxozj.pl -ljhjhkrt.cf -ljhjhkrt.ga -ljhjhkrt.ml -ljkjouinujhi.info -ljnapp.best -ljogfbqga.pl -ljpremiums.club -ljpremiums.xyz -ljsafkdua.shop -ljsingh.com -ljungsbro-sportfiskare.se -ljunrockcheck.tk -ljwtestingdomain.com -ljye2f.info -lk21.cf -lk21.website -lkajao.site -lkbmjm.fun -lkcmmw.fun -lkcranch.com -lkdmpx.fun -lkerito.mobi -lkfblewfefew2eew.club -lkfeybv43ws2.cf -lkfeybv43ws2.ga -lkfeybv43ws2.gq -lkfeybv43ws2.ml -lkfeybv43ws2.tk -lkfmby.fun -lkgn.se -lkhcdiug.pl -lkhmzn.fun -lkim1wlvpl.com -lkiopooo.com -lkjghn.com -lkjhjkuio.info -lkjhljkink.info -lkjjikl2.info -lkkmqy.fun -lklmgy.fun -lkmlksilkma.design -lknmcg.fun -lko.co.kr -lko.kr -lkooksmart.com -lkoqmcvtjbq.cf -lkoqmcvtjbq.ga -lkoqmcvtjbq.gq -lkoqmcvtjbq.ml -lkoqmcvtjbq.tk -lkpress.ru -lkqmcj.fun -lkqmqz.fun -lkscedrowice.pl -lksuej.info -lktix.fun -lkwmhl.fun -lkxloans.com -lkxxi.website -lkymng.fun -lkzmtj.fun -ll0206.xyz -ll47.net -ll4cki.us -ll6l4le.xyz -llaen.net -llamame.online -llat.site -llccheckbook.com -llcs.xyz -llegitnon.cf -llegitnon.ga -llegitnon.gq -llegitnon.ml -llegitnon.tk -llerchaougin.cf -llerchaougin.ga -llerchaougin.gq -llerchaougin.ml -llerchaougin.tk -llfilmshere.tk -llil.icu -llil.info -llj59i.kr.ua -llkp.xyz -llllll.tech -lllllll.site -lllooch.ru -llmuxetaw.gq -llogin.ru -llotfourco.ga -llotfourco.gq -llotfourco.tk -llsaa.com -llsszh.xyz -lltibtuis7.uno -llubed.com -llventures.co -llzali3sdj6.cf -llzali3sdj6.ga -llzali3sdj6.gq -llzali3sdj6.ml -llzali3sdj6.tk -lm-wadakan.com -lm0k.com -lm1.de -lm4dk6.com -lmaosed.co -lmav17n.xyz -lmav387d.xyz -lmav3a11.xyz -lmav3y8.xyz -lmav4216.xyz -lmav59c1.xyz -lmav5ba4.xyz -lmav5ek.xyz -lmav609f.xyz -lmav6ua.xyz -lmav70e4.xyz -lmav7758.xyz -lmav8490.xyz -lmav87d2.xyz -lmav9072.xyz -lmavb547.xyz -lmavbfad.xyz -lmavcfy.xyz -lmave2a9.xyz -lmavec51.xyz -lmavegm.xyz -lmavf2d5.xyz -lmavfov.xyz -lmavksy.xyz -lmavqlg.xyz -lmavyb9.xyz -lmcudh4h.com -lmialovo.com -lmitxg.us -lmkspz.us -lmomentsf.com -lmoprmbs.xyz -lmqx.email -lmypasla.cf -lmypasla.ga -lmypasla.gq -lmypasla.ml -lmypasla.tk -ln0hio.com -ln0rder.com -ln0ut.com -ln0ut.net -ln4.net -ln9uih.us -lnank.live -lnbtc.ru -lncjh.com -lncoin.ru -lncredibleadventures.com -lndex.net -lndex.org -lneta4gw.cf -lneta4gw.ga -lneta4gw.gq -lneta4gw.ml -lneta4gw.tk -lneus.club -lngscreen.com -lngwhjtk.shop -lnjgco.com -lnkbsr.host -lnko.site -lnlptx.com -lnmbeauty.com -lnmbeauty.net -lnmdje.us -lnnic.com -lnongqmafdr7vbrhk.cf -lnongqmafdr7vbrhk.ga -lnongqmafdr7vbrhk.gq -lnongqmafdr7vbrhk.ml -lnongqmafdr7vbrhk.tk -lnqnmx.com -lnr9ry.us -lns-411.net -lnsilver.com -lnternatlonal-bittrex.com -lnvd.email -lnvoke.net -lnvoke.org -lnwhosting.com -lnwiptv.com -lnxwalt.org -lo.guapo.ro -lo9ege.xyz -loa-kanaloa.org -loa22ttdnx.cf -loa22ttdnx.ga -loa22ttdnx.gq -loa22ttdnx.ml -loa22ttdnx.tk -loachrisfal.cf -loachrisfal.gq -loachrisfal.ml -loachrisfal.tk -load1000static.site -loadby.us -loadfree.site -loadingsite.info -loadingsite.online -loadingya.com -loan10.xyz -loan101.pro -loan2.xyz -loan4.xyz -loan5.xyz -loan6.xyz -loan7.xyz -loan9.xyz -loancash.us -loaneotal.cf -loaneotal.ga -loaneotal.ml -loaneotal.tk -loanfast.com -loanins.org -loans.com -loans4u5.us -loaoa.com -loaphatthanh.com -loapq.com -loaprofin.ga -loaprofin.gq -loaprofin.ml -loaprofin.tk -lobahgla.xyz -lobictubly.xyz -loblaw.twilightparadox.com -lobotomize516vk.online -loc123.com -locabet67.com -locabet68.com -locabet69.com -locabet70.com -locabet71.com -locabet72.com -locabet74.com -locabet75.com -locabet76.com -locabet77.com -locabet78.com -locabet79.com -locabet82.com -locabet83.com -locabet84.com -locabet85.com -locabet88.com -locabet90.com -locabet92.com -locabet93.com -locabet95.com -locabet96.com -locabet98.com -locablu.com -local-classifiedads.info -local-onlinedating3.com -local.training -local.tv -local120.com -local120.net -local2164.com -local411jobs.xyz -local77777.com -localbitcoin.tech -localbreweryhouse.info -localbuilder.xyz -localbuyme.com -localcarrentals.ru -localcbg.com -localchiangmai.com -localddsnearme.com -localempleo.com -localheroes.ru -localhomepro.com -localini.com -localinternetbrandingsecrets.com -localintucson.com -localiqemail.com -localityhq.com -localivfgy.online -localizing.best -localnewstime.site -localorthodontistnearme.com -localpassport.org -localppc.us -localsape.com -localsem.us -localserv.no-ip.org -localshredding.com -localslots.co -localss.com -localtank.com -localtenniscourt.com -localtopography.com -localvideoclips.com -localwomen-meet.cf -localwomen-meet.ga -localwomen-meet.gq -localwomen-meet.ml -locamoja.com -locanto1.club -locantofuck.top -locantospot.top -locantowsite.club -locarlsts.com -located6j.com -locateme10.com -locating.page -locationans.ru -locationvibe.com -locbbs.com -loccomail.host -locellus.xyz -lockacct.com -lockdown.africa -lockedintheconception.com -lockedsyz.com -lockersinthecity.com -locklisa.cf -locklisa.ga -locklisa.gq -locklisa.ml -locklisa.tk -lockmyaccount.com -lockportnydentist.com -locksis.site -locksmangaragedoors.info -locksmithcourses.us -locksync.com -locoblogs.com -locoloco.ovh -locoloco.shop -locomobile.xyz -locomodev.net -loconetinvestments.org -locoonoo.xyz -locose.xyz -locpecom.cf -locpecom.gq -locpecom.tk -locra.com -locwiki.com -lodefidel.com -loders.ru -lodevil.cf -lodevil.ga -lodevil.gq -lodevil.ml -lodevil.tk -lodewijk.coach -lodgecolibrionline.com -lodgemerc.fun -lodgeparktc.com -lodgetouch.buzz -lodgetrend.fun -lodgewast.space -lodiapartments.com -lodistri.com -lodkataxi.ru -lodon.cc -lodur.best -loehkgjftuu.aid.pl -lofi-untd.info -lofi.host -lofi.systems -loft-stile.ru -lofteone.ru -log-manga.ru -log.school -logaelda603.ml -logalogo.online -logambola88.com -logamqq.online -loganairportbostonlimo.com -loganisha253.ga -loganrussacklaw.com -logansnider.com -loganstewartrealty.net -logardha605.ml -logartika465.ml -logatarita892.cf -logatarita947.tk -logavrilla544.ml -logdewi370.ga -logdufay341.ml -logefrinda237.ml -logertasari851.cf -logesra202.cf -logeva564.ga -logfauziyah838.tk -logfika450.cf -logfitriani914.ml -logfrisaha808.ml -loghermawaty297.ga -loghermawaty297.ml -loghermawaty297.tk -loghning469.cf -loghusnah2.cf -logicaljoy.com -logicielsvinity.com -logiclaser.com -logicpowerbooster.com -logike708.cf -login-email.cf -login-email.ga -login-email.ml -login-email.tk -login-moon.xyz -login-online-co-uk.buzz -login-to.online -loginadulttoys.com -logindominoonline.com -loginflow.com -logingar.cf -logingar.ga -logingar.gq -logingar.ml -loginioeu1.com -loginioru1.com -loginiousa1.com -loginlapp.com -loginoff.su -loginpage-documentneedtoupload.com -logins.page -logintoemail.online -loginz.net -logismi227.ml -logisti-k.global -logistica40.com -logistica40.net -logisticscorp.us -logitechg.online -logiteech.com -logmardhiyah828.ml -logmatoys.ru -logmaureen141.tk -logmoerdiati40.tk -lognadiya556.ml -lognc.com -lognoor487.cf -logo.cd -logoblogs.com -logoday.ru -logodesignshark.com -logoktafiyanti477.cf -logopitop.com -logos.team -logos.vlaanderen -logosbet.com -logosooo.ru -logpabrela551.ml -logrialdhie62.ga -logrialdhie707.cf -logrozi350.tk -logs.xyz -logsharifa965.ml -logsinuka803.ga -logstefanny934.cf -logsutanti589.tk -logsyarifah77.tk -logtanuwijaya670.tk -logtheresia637.cf -logtiara884.ml -logular.com -logutomo880.ml -logvirgina229.tk -logw735.ml -logwan245.ml -logwibisono870.ml -logwulan9.ml -logyanti412.ga -loh.pp.ua -lohipod.site -lohsrestaurant.com -lohzz.com -loife5l.xyz -loikoi.store -loil.site -loin.in -loischilds.com -lojacane.com -lojacentrobenessere.shop -lojaibizas.info -lojajled.com -lojasmax.ml -lojistiklashing.com -lojkjcwj.shop -lojy.site -lok3.site -lokalmkt.com -lokaperuss.com -lokasitempatwisata.com -lokata-w-banku.com.pl -lokcl.us -lokd.com -loker4d.pro -lokersolo.net -lokerupdate.me -loketa.com -lokingmi.cf -lokingmi.gq -lokingmi.ml -lokitwcx.space -lokka.net -lokmynghf.com -loksopha.com -lokum.nu -lokzhguof.shop -lol.it -lol.ovpn.to -lol2020.online -lol2020.site -lolahouse.design -lolco.xyz -lole.link -lolemails.pl -lolfhxvoiw8qfk.cf -lolfhxvoiw8qfk.ga -lolfhxvoiw8qfk.gq -lolfhxvoiw8qfk.ml -lolfhxvoiw8qfk.tk -lolfreak.net -loli123.com -loli3.com -loli8.space -loli88.space -loliacg.com -lolianime.com -loliapp.com -lolibox.ml -lolibuy.com -lolidze.top -lolimail.cf -lolimail.com -lolimail.ga -lolimail.gq -lolimail.ml -lolimail.tk -lolimailer.cf -lolimailer.ga -lolimailer.gq -lolimailer.ml -lolimailer.tk -lolio.com -lolioa.com -lolior.com -lolipan.com -lolitka.cf -lolitka.ga -lolitka.gq -lolito.tk -lolivip.com -lolka.space -lollard.best -lolllipop.stream -lolmail.biz -lolnow.store -lolnow.xyz -lolo1.dk -lolokakedoiy.com -lolposters.com -lolpro.club -lolpro.space -lols.store -lolshirts.net -lolshirts.org -lolspace.xyz -lolstore.xyz -lolusa.ru -lolwegotbumedlol.com -lom-vid8.site -lom.kr -lomahskdbag.website -lomanget.ru -lombard-zvonok.ru -lombardcredit.com -lombok-spas.com -lombokbeachresort.com -lombokbeachvillas.com -lombokboutiquevilla.com -lomboksparesort.com -lombokspas.com -lomistores.site -lomnbaz.fun -lompocplumbers.com -lompsz.icu -lomwnomwns.club -lon7e.buzz -loncoca.org -lonct.icu -londh.site -london-bitcoin.com -london-home.net -london-live.info -london2.space -londonbridgefestival.com -londondesign.ru -londondigerati.com -londondotcom.com -londonescortsbabes.co -londonfootspecialists.com -londonlocalbiz.com -londonorg.net -londonpoker77.org -londontheatrereview.com -lonelyshe.com -lonestarlakeviews.com -lonezoos.info -long-blog.site -long-blog.space -long-blog24.host -long-differ.xyz -long-eveningdresses.com -long-sin-takeaway.com -long.idn.vn -longanltd.info -longanltd.net -longanltd.org -longanvietnamese.com -longbeachislandcam.com -longbeachquote.com -longbl0g.space -longblog24.host -longboatkey.store -longboatwines.com -longbrain.com -longchaflong.cf -longchaflong.gq -longchaflong.ml -longchamponlinesale.com -longer-aboard-hungry-wheat.xyz -longerb.website -longhutv.com -longidaza-rf.ru -longio.org -longislandishere.com -longislandvero.com -longlongcheng.com -longlovetabs.biz -longmonkey.info -longmontpooltablerepair.com -longrin1.com -longtime.us -longueur.site -longviewchristmas.com -lonker.net -lonrahtritrammail.com -lonthe.ml -look4chocolate.ru -look4gps.com -lookad.online -looketop.site -lookfeelflowbetter.com -lookingthe.com -lookinsideimaging.com -looklemsun.uni.me -looklikecheap.site -lookmail.ml -lookminor.tk -lookmymoney.ru -looknikes.ru -lookthesun.tk -lookugly.com -lookupworks.com -loongrtk.tk -loonlite.com -loonycoupon.com -loooms.icu -loopcrashs.info -loopemail.online -loopsnow.com -loopstack.com -loopy-deals.com -loot-fern.site -lootx.cf -looup.com -lopeure.com -lopezfood.com -lopgesi.cf -lopgesi.ga -lopgesi.gq -lopgesi.ml -lopgesi.tk -lopit.icu -lopivolop.com -lopl.co.cc -loqueseve.net -loqueseve.org -loranet.pro -loranund.world -lord2film.online -lordbet105.com -lordcheez.com -lordfilmmovie.xyz -lordfilms.press -lordfilmu.org -lordfkas.tk -lordjohnsbootery.com -lordmobilehackonline.eu -lordsofts.com -lordspalacebet4.com -lordssfilm.online -lordummaraba.tk -lordvold.cf -lordvold.ga -lordvold.gq -lordvold.ml -lordzeeblog.com -lorehouse.co -lorel.best -lorencic.ro -lorenwoka.com -lorenzidecks.com -lorimer.co -lorinhouse.co -lorotzeliothavershcha.info -lorslufmea.cf -lorslufmea.ga -lorslufmea.gq -lorsque.us -lortemail.dk -losa.tr -losangeles-realestate.info -losangeles.storage -losangelescountypretrialservices.com -losangelesquote.com -losbanosforeclosures.com -loscota.com -lose20pounds.info -losebellyfatau.com -loselta.cf -losemymail.com -losethed.com -loseweight-advice.info -loseweightnow.tk -loskmail.com -loskutnat.ru -losowynet.com -lossless.capital -lostandalone.com -lostbooks.net -lostfilm-hd-1086.online -lostfilm-hd-1158.online -lostfilm-hd-1165.online -lostfilm-hd-1191.online -lostfilm-hd-1207.online -lostfilm-hd-1365.online -lostfilm-hd-1369.online -lostfilm-hd-1379.online -lostfilm-hd-1500.online -lostfilm-hd-1519.online -lostfilm-hd-1586.online -lostfilm-hd-1653.online -lostfilm-hd-1720.online -lostfilm-hd-2007.online -lostfilm-hd-219.online -lostfilm-hd-2403.online -lostfilm-hd-2470.online -lostfilm-hd-2570.online -lostfilm-hd-2828.online -lostfilm-hd-3061.online -lostfilm-hd-3203.online -lostfilm-hd-3429.online -lostfilm-hd-3489.online -lostfilm-hd-3618.online -lostfilm-hd-3665.online -lostfilm-hd-401.online -lostfilm-hd-434.online -lostfilm-hd-658.online -lostfilm-hd-882.online -lostfilm-hd-927.online -lostfilmhd1080.ru -lostgikom.tk -lostingaf.ga -lostinpr.com -lostnzttu.win -lostoddies.com -lostpositive.xyz -loststork.com -losvolosy.info -lotclubs.com -loteamentos.club -lotesan.cf -lotesan.ga -lotesan.gq -lotesan.ml -lotesan.tk -lotls.com -loto-1.com -loto-sto-cool.host -loto-sto-cool.press -loto-sto-cool.space -lotobuytop.com -lotogoldclub.online -lotogoldclub.site -lotomoneymaker.com -lotos-holding.ru -lotsavaslari1.com -lotsofcrazykittens.site -lottery-weekly.com -lottery365.info -lotteryfordream.com -lotteryforwin.com -lotto-golden.com -lotto-mn.com -lotto-thanks.xyz -lotto-vip.click -lotto-vip.shop -lotto-wizard.net -lotto191.com -lotto2555.com -lotto4winner.com -lottoaddict.online -lottobag.live -lottobeat.online -lottobenefit.com -lottobestprize.com -lottobestwinner.com -lottoboard.online -lottobudget.live -lottobuild.live -lottocashwin.com -lottocave.online -lottochangelife.com -lottochild.live -lottocounter.live -lottocove.online -lottocreed.live -lottocritic.live -lottodrawer.live -lottoeasymoney.com -lottoegg.live -lottoeo.online -lottofever.online -lottofinish.live -lottoflow.online -lottofunandwin.com -lottogamelife.com -lottogate.live -lottogirlwinner.com -lottogo.link -lottogossip.live -lottogudman.com -lottohousing.live -lottoinc.online -lottoisland.live -lottojet.live -lottolink.live -lottoluckforyou.com -lottomargin.live -lottoo.online -lottoorgan.live -lottooutlet.live -lottoowl.live -lottopaint.live -lottopromotionbiz.com -lottopwinner.com -lottorealwinner.com -lottoresults.ph -lottoryshow.com -lottosend.ro -lottosight.online -lottosport.live -lottotalent.com -lottothai888.com -lottovalley.online -lottovip900.online -lottoviptv.com -lottovvip.com -lottowinall.com -lottowingot.com -lottowinmy.com -lottowinnboy.com -lottowinnerbis.com -lottowinnerboy.com -lottowinnerboy.xyz -lottowinnerbuy.com -lottowinnerdaily.com -lottowinnerfolk.com -lottowinnersuperman.com -lottowinnertime.com -lottowinplus.com -lotuses.xyz -lotusflowertea.com -lotusperceptions.com -lotusph.com -lotusphysicaltherapy.com -lotusrobot.com -lotusteavietnam.com -lotyh.xyz -louboinhomment.info -louboutinadmin.site -louboutinemart.com -louboutinit.com -louboutinkutsutenpojp.com -louboutinpascher1.com -louboutinpascher2.com -louboutinpascher3.com -louboutinpascher4.com -louboutinpascheshoes.com -louboutinshoesfr.com -louboutinshoessalejp.com -louboutinshoesstoresjp.com -louboutinshoesus.com -loudcannabisapp.com -louder1.bid -loudlesses.xyz -loudouncolo.com -louedepot.com -loufad.com -louhansonpottery.com -louieliu.com -louiescajunkitchen.com -louipomi.cf -louipomi.ga -louipomi.gq -louipomi.ml -louis-vittons.biz -louis-vuitton-onlinestore.com -louis-vuitton-outlet.com -louis-vuitton-outletenter.com -louis-vuitton-outletsell.com -louis-vuittonbags.info -louis-vuittonbagsoutlet.info -louis-vuittonoutlet.info -louis-vuittonoutletonline.info -louis-vuittonsac.com -louis918.com -louiscasinos.com -louisct.com -louisemccarthy.buzz -louisloock.com -louisphilippeconstantin.com -louistanis.ga -louistanis.gq -louistanis.ml -louistanis.tk -louisvienna.com -louisvillehsfootball.com -louisvillequote.com -louisvilleskatingacademy.org -louisvillestudio.com -louisvuitton-handbagsonsale.info -louisvuitton-handbagsuk.info -louisvuitton-outletstore.info -louisvuitton-replica.info -louisvuitton-uk.info -louisvuittonallstore.com -louisvuittonbagsforcheap.info -louisvuittonbagsjp.org -louisvuittonbagsuk-cheap.info -louisvuittonbagsukzt.co.uk -louisvuittonbeltstore.com -louisvuittoncanadaonline.info -louisvuittonchoooutlet.com -louisvuittondesignerbags.info -louisvuittonfactory-outlet.us -louisvuittonffr1.com -louisvuittonforsalejp.com -louisvuittonhandbags-ca.info -louisvuittonhandbagsboutique.us -louisvuittonhandbagsoutlet.us -louisvuittonhandbagsprices.info -louisvuittonjpbag.com -louisvuittonjpbags.org -louisvuittonjpsale.com -louisvuittonmenwallet.info -louisvuittonmonogramgm.com -louisvuittonnfr.com -louisvuittonnicebag.com -louisvuittonofficielstore.com -louisvuittononlinejp.com -louisvuittonoutlet-store.info -louisvuittonoutlet-storeonline.info -louisvuittonoutlet-storesonline.info -louisvuittonoutlet-usa.us -louisvuittonoutletborseitaly.com -louisvuittonoutletborseiy.com -louisvuittonoutletjan.net -louisvuittonoutletonlinestore.info -louisvuittonoutletrich.net -louisvuittonoutletrt.com -louisvuittonoutletstoregifts.us -louisvuittonoutletstores-online.info -louisvuittonoutletstores-us.info -louisvuittonoutletstoresonline.us -louisvuittonoutletsworld.net -louisvuittonoutletwe.com -louisvuittonoutletzt.co.uk -louisvuittonpursesstore.info -louisvuittonreplica-outlet.info -louisvuittonreplica.us -louisvuittonreplica2u.com -louisvuittonreplicapurse.info -louisvuittonreplicapurses.us -louisvuittonretailstore.com -louisvuittonrreplicahandbagsus.com -louisvuittonsac-fr.info -louisvuittonsavestore.com -louisvuittonsbags8.com -louisvuittonshopjapan.com -louisvuittonshopjp.com -louisvuittonshopjp.org -louisvuittonshopoutletjp.com -louisvuittonsjapan.com -louisvuittonsjp.org -louisvuittonsmodaitaly1.com -louisvuittonspascherfrance1.com -louisvuittonstoresonline.com -louisvuittontoteshops.com -louisvuittonukbags.info -louisvuittonukofficially.com -louisvuittonukzt.co.uk -louisvuittonused.info -louisvuittonwholesale.info -louisvuittonworldtour.com -louisvunttonworldtour.com -louive.com -louivuittoutletuksalehandbags.co.uk -loujtj.rest -louli08.com -loumoen.info -lous-photos.com -lous.photos -loutosmedia.com -loux5.universallightkeys.com -lova-madeinglass.com -lovabloazf.ru -lovane.info -love-amigurumi.website -love-brand.ru -love-for-free.online -love-fuck.ru -love-handmade.site -love-history.ru -love-hookinguplater.com -love-matchs2.club -love-to-cook.ru -love-yarn.site -love-youboy.ru -love.info -love079.com -love2.tennis -love2212.com -love365.ru -love388.com -love388.net -love399.net -love488.net -love4writing.info -love669.net -love676.net -love686.com -love686.net -love866.net -love877.com -love888test.xyz -love889.com -love889.net -love8baidu.com -love97.ga -loveabledress.com -loveabledress.net -loveablelady.com -loveablelady.net -loveandotherstuff.co -lovebet44.net -lovebitco.in -lovecuirinamea.com -loveday1.info -lovediscuss.ru -lovee21c.com -loveenit.com -loveesq.com -lovefall.ml -lovefans.com -lovegirls.club -loveknitting.website -lovelacelabs.net -lovelakeview.com -lovelandshoes.com -lovelemk.tk -lovely-photo.ru -lovelybabygirl.com -lovelybabygirl.net -lovelybabylady.com -lovelybabylady.net -lovelyfont.com -lovelyhotmail.com -lovelyladygirl.com -lovelynhatrang.ru -lovelyprice.com -lovelyshoes.net -lovelyshowcase.com -lovelytype.com -lovemak.online -lovemak.site -lovematters.africa -loveme.com -lovemeet.faith -lovemeleaveme.com -lovemue.com -lovemydoggy.shop -lovemytrail.org -lovepdfmanuales.xyz -loveplanetx.com -loversalvagepains.site -loves.dicksinhisan.us -loves.dicksinmyan.us -lovesea.gq -lovesfire.club -lovesoftware.net -lovestream.live -lovesunglasses.info -lovesystemsdates.com -lovetests99.com -lovethe90smalaga.com -lovethetuentisfestival.com -lovetuan.com -loveunitesus.live -loveus.info -lovewelcomesall.org -lovewisher.com -lovework.jp -lovingmydentist.com -lovingnessday.com -lovingnessday.net -lovingr3co.ga -lovingyoujewelry.com -lovisvuittonsjapan.com -lovitolp.com -lovlyn.com -lovomon.com -lovrent.com -lovxwyzpfzb2i4m8w9n.cf -lovxwyzpfzb2i4m8w9n.ga -lovxwyzpfzb2i4m8w9n.gq -lovxwyzpfzb2i4m8w9n.tk -low-buy.site -low.pixymix.com -lowassfi.xyz -lowatt.ru -lowcanceljaw.website -lowco.com -lowcost.cd -lowcost.solutions -lowcypromocji.com.pl -lowdh.com -lowendjunk.com -lowenergybook.com -lowermortgagerates.org -lowermybloodpressure.info -lowerrightabdominalpain.org -lowestpricesonthenet.com -lowlifeairride.com -lowpricefireworks.com -lowrance-elite.online -lowttfinin.cf -lowttfinin.ga -lowttfinin.gq -lowttfinin.ml -lowttfinin.tk -loy.kr -loyalherceghalom.ml -loyalnfljerseys.com -loycal.shop -loz0se.us -lp-rimarkets.com -lp.express -lp1hoanews.com -lpalgcisp.shop -lpaoaoao80101919.ibaloch.com -lpapa.ooo -lpdf.site -lpe88-singapore.com -lpfmgmtltd.com -lpgrnerator.ru -lphqvz.host -lphrx.us -lpi1iyi7m3zfb0i.cf -lpi1iyi7m3zfb0i.ga -lpi1iyi7m3zfb0i.gq -lpi1iyi7m3zfb0i.ml -lpi1iyi7m3zfb0i.tk -lpiloanscash.com -lpjx3n.site -lpmwebconsult.com -lpnnurseprograms.net -lpo.ddnsfree.com -lpolijkas.ga -lpoty3.us -lppde.com -lprssvflg.pl -lptbjh.site -lpurm5.orge.pl -lpva5vjmrzqaa.cf -lpva5vjmrzqaa.ga -lpva5vjmrzqaa.gq -lpva5vjmrzqaa.ml -lpva5vjmrzqaa.tk -lpwteu.icu -lq59.xyz -lqaqgbrw.shop -lqdaal.us -lqghzkal4gr.cf -lqghzkal4gr.ga -lqghzkal4gr.gq -lqghzkal4gr.ml -lqis2k.us -lqlz8snkse08zypf.cf -lqlz8snkse08zypf.ga -lqlz8snkse08zypf.gq -lqlz8snkse08zypf.ml -lqlz8snkse08zypf.tk -lqonrq7extetu.cf -lqonrq7extetu.ga -lqonrq7extetu.gq -lqonrq7extetu.ml -lqonrq7extetu.tk -lqplz.live -lqvip0.com -lqvip2.com -lqvip4.com -lr425b.live -lr526.site -lr7.us -lr78.com -lr888.com -lrdbet.com -lrebzs.us -lrelsqkgga4.cf -lrelsqkgga4.ml -lrelsqkgga4.tk -lrenjg.us -lresultss.icu -lrfjubbpdp.pl -lrfnygeef.shop -lrglobal.com -lrjvsu.us -lrland.net -lroid.com -lroiub.online -lroiub.ru -lron0re.com -lrsxk.live -lrtax.online -lrtndrdqk.shop -lrtptf0s50vpf.cf -lrtptf0s50vpf.ga -lrtptf0s50vpf.gq -lrtptf0s50vpf.ml -lrtptf0s50vpf.tk -lru.me -lrwz.site -lrymxmci.site -ls-server.ru -lsalemost.site -lsamennbx.shop -lsbet1011.com -lsdjcz.com -lsdpv2.ga -lsdpv2.tk -lsecuri.shop -lsepakbola.net -lsgj.email -lsh.my.id -lshoespeak.site -lshunter.site -lsinghconsulting.com -lsjapp.com -lsjbt.com -lskqds.site -lsktdr.us -lslconstruction.com -lslwcqvro.shop -lsmcae.com -lsmpic.com -lsone.site -lsos.xyz -lspforev.ru -lsrtsgjsygjs34.gq -lss176.com -lsthoist.com -lstore.moscow -lstuqc.com -lsv3.com -lsvtaffiliate.com -lsweetuni.pro -lsxprelk6ixr.cf -lsxprelk6ixr.ga -lsxprelk6ixr.gq -lsxprelk6ixr.ml -lsxprelk6ixr.tk -lsylgw.com -lsylzcym.com -lsyx0.rr.nu -lt7n4p.us -ltaffshop.store -ltblu3.com -ltc5ro.com -ltcorp.org -ltdtab9ejhei18ze6ui.cf -ltdtab9ejhei18ze6ui.ga -ltdtab9ejhei18ze6ui.gq -ltdtab9ejhei18ze6ui.ml -ltdtab9ejhei18ze6ui.tk -ltdwa.com -ltesbn.us -lteselnoc.cf -lteselnoc.ml -lteselnoc.tk -ltfg92mrmi.cf -ltfg92mrmi.ga -ltfg92mrmi.gq -ltfg92mrmi.ml -ltfg92mrmi.tk -ltfpc.com -lthaltha.shop -lthz1v.us -ltiosmjo.shop -ltkuib.us -ltt.us -ltt0zgz9wtu.cf -ltt0zgz9wtu.gq -ltt0zgz9wtu.ml -ltt0zgz9wtu.tk -lttcloud.com -lttiibtusu8.uno -lttl.org -lttmail.com -lttmobile.com -lttsd.com -lttusers.com -lttusers.net -ltuc.edu.eu.org -ltuiwz.us -luadao.club -luagram.com -luangprabangbackpackershostel.com -luantai43.icu -luarleare.cf -luarleare.ga -luarleare.ml -luarleare.tk -luaroleplay.com -luarte.info -lubata23.com -lubbockhairsalons.com -lubbockquote.com -lubie-placki.com.pl -lubisbukalapak.tk -luboydomain.ru -lubtec.ru -lubuqa.xyz -lucaclubvip23456.com -lucah.video -lucastech.org -lucaz.com -luce-lp.biz -luce-lp.net -luceudeq.ga -lucha.shoes -luchocharovanii.xyz -luchthaven.org -lucian.dev -lucianoop.com -lucianoslodo.com -lucidmation.com -lucidmode.com -lucidseats.com -luciferous.site -luciferparfume.xyz -lucifunzgl.club -lucifunzgl.host -lucigenic.com -luck-bet.online -luck-outside.tech -luck-win.com -luck8.com -luckalott.com -luckboy.pw -luckeyinvest.com -luckgift.ru -luckindustry.ru -luckjob.pw -luckmail.us -luckuclick.ru -lucky-gambler.com -lucky.wiki -lucky238.org -lucky4u.site -lucky66jlty.com -luckydesign.info -luckydragon-cabra.com -luckygambling.net -luckygay.xyz -luckyhour.xyz -luckyladydress.com -luckyladydress.net -luckylion.su -luckylolly.com -luckylooking.com -luckymail.org -luckyman-sy.com -luckymine.ru -luckypick.net -luckyquest.net -luckyskill.club -luckyspin-s12.com -luckyspin.ru -luckysportwin88.club -luckyvictims.com -luckywinner.vegas -luclyvitamin.com -lucrandoonline.tech -lucrasystems.com -lucrumbet.ru -lucubunga.org -lucyd.xyz -lucyintmhk.space -lucypoker.net -lucys.mobi -lucysummers.biz -lucyu.com -luddo.me -luderi.cf -luderi.ga -luderi.gq -ludovicomedia.com -ludovodka.com -ludxc.com -ludziepalikota.pl -ludzieswiatowi.site -luengosweb.se -luepotho.cf -luepotho.ga -luepotho.gq -luepotho.ml -lufaf.com -lufcfans.website -luffem.com -lufrand.ru -luftcinbull.ga -luftcinbull.ml -luftcinbull.tk -lufyalp.best -luggageandbag.com -luggagetravelling.info -luhorla.cf -luhorla.gq -luhorla.ml -luicesdass.cf -luicesdass.ga -luicesdass.gq -luicesdass.tk -luigisfinglas.com -luigiskimmage.com -luigitakeaway.com -luilkkgtq43q1a6mtl.cf -luilkkgtq43q1a6mtl.ga -luilkkgtq43q1a6mtl.gq -luilkkgtq43q1a6mtl.ml -luilkkgtq43q1a6mtl.tk -luisdelavegarealestate.us -luisgiisjsk.tk -luisparisy.info -luispedro.xyz -luk2.com -lukasfloor.com.pl -lukasgrant.com -lukaszmitula.pl -lukearentz.com -lukecarriere.com -lukemail.info -lukeskybroker.com -lukespencer.buzz -lukesrcplanes.com -lukewhiteplays.com -lukeyoquinto.com -lukhovi.com -lukop.dk -luksarcenter.ru -luky88.info -luleburgazrehber.xyz -lulexia.com -lulluna.com -lulluna.org -lululemonsale-outlet.com -lululu19.info -lulumelulu.org -lumb.net -lumetric-testing.space -lumi-ceuticals.com -lumihub.com -luminaireinstitute.com -luminaireinstitute.org -luminario.com -luminnabeauty.com -luminous-cabal.site -luminoustracts.club -luminu.com -lumity.life -lumivisions.net -lump.pa -lumpylump.com -lunabit1.com -lunar4d.org -lunarmail.info -lunaticfest.store -lunatikcase.ru -lunatos.eu -lunchbuild.recipes -lunchdinnerrestaurantmuncieindiana.com -lunchdoze.fun -lunchiscalling.com -lundinchut.co -lunent.xyz -lunettesoakleypascher.biz -lungallowedmace.website -lungmater.ga -lungmater.ml -lungmater.tk -lunive.xyz -luno-finance.com -lunsbt.xyz -lunserc.buzz -lunvli.icu -lunyingge.com -luo.kr -luocentce.gq -luocentce.ml -luocentce.tk -luohunzu.com -luomeng.info -luonchia.online -luotishow.xyz -lupabapak.org -lupetalk.com -luq1fe.us -lurelight.com -lurepam.com -lurralife.org -lurtewwx.ga -lusernews.com -lusesupermart.site -lusianna.ml -lussierdesign.com -lustelo.com -lustlonelygirls.com -lustrapay.org -lutcha.africa -luteous.site -lutherhild.ga -luucartones.xyz -luutrudulieu.net -luutrudulieu.online -luv2.us -luvmsg.com -luwdutjza.shop -luwysi.info -lux-building.ru -luxaviation.media -luxehuren.info -luxembug-nedv.ru -luxemine.ru -luxemine.su -luxentic.com -luxetrader.net -luxline.com -luxmet.ru -luxor-sklep-online.pl -luxurating.com -luxuriousdress.net -luxury-handbagsonsale.info -luxury-master.xyz -luxury-travel.xyz -luxuryalcoholrehabprograms.com -luxuryasiaresorts.com -luxurybet138.com -luxurybrandednotebooks.com -luxurychanel.com -luxurycruiselines.org -luxurydate.online -luxuryflights.xyz -luxuryoutletonline.us -luxurypenswatches.com -luxuryrehabprogram.com -luxuryscentboxes.com -luxuryshomemn.com -luxuryshopforpants.com -luxurytogel.com -luxurytourscroatia.com -luxusmail.cf -luxusmail.ga -luxusmail.gq -luxusmail.ml -luxusmail.my.id -luxusmail.tk -luxusmail.uk -luxusroleplay.us -luxvil.ru -luyilu8.com -luzhilu3.com -luzoom.net -lv-bags-outlet.com -lv-magasin.com -lv-outlet-online.org -lv1-love.ru -lv2buy.net -lvbag.info -lvbag11.com -lvbags001.com -lvbagsjapan.com -lvbagsshopjp.com -lvbq5bc1f3eydgfasn.cf -lvbq5bc1f3eydgfasn.ga -lvbq5bc1f3eydgfasn.gq -lvbq5bc1f3eydgfasn.ml -lvbq5bc1f3eydgfasn.tk -lvc2txcxuota.cf -lvc2txcxuota.ga -lvc2txcxuota.gq -lvc2txcxuota.ml -lvc2txcxuota.tk -lvcheapsua.com -lvcheapusa.com -lvfityou.com -lvfiyou.com -lvforyouonlynow.com -lvhan.net -lvhandbags.info -lvheremeetyou.com -lvheye.com -lvhotstyle.com -lvlxd.ru -lvmao1.xyz -lvnsjobs.com -lvory.net -lvoulet.com -lvoutlet.com -lvoutletonlineour.com -lvpascher1.com -lvpux8.us -lvrwvc.ga -lvs788.club -lvsaleforyou.com -lvtimeshow.com -lvvif.live -lvword.com -lvxutizc6sh8egn9.cf -lvxutizc6sh8egn9.ga -lvxutizc6sh8egn9.gq -lvxutizc6sh8egn9.ml -lvxutizc6sh8egn9.tk -lvy4.us -lwapv.us -lwbmarkerting.info -lwcplror.shop -lweohkvh.shop -lwhzgl.us -lwjsmj.shop -lwmarketing.club -lwmaxkyo3a.cf -lwmaxkyo3a.ga -lwmaxkyo3a.gq -lwmaxkyo3a.ml -lwmaxkyo3a.tk -lwmhcka58cbwi.cf -lwmhcka58cbwi.ga -lwmhcka58cbwi.gq -lwmhcka58cbwi.ml -lwmhcka58cbwi.tk -lwu9l.us -lwwz3zzp4pvfle5vz9q.cf -lwwz3zzp4pvfle5vz9q.ga -lwwz3zzp4pvfle5vz9q.gq -lwwz3zzp4pvfle5vz9q.ml -lwwz3zzp4pvfle5vz9q.tk -lx-97.com -lxidd.com -lxlxdtskm.pl -lxnshavo.shop -lxream-player.com -lxtx-yl.com -lxtxdl.com -lxty8.com -lxupukiw4dr277kay.cf -lxupukiw4dr277kay.ga -lxupukiw4dr277kay.gq -lxupukiw4dr277kay.ml -lxupukiw4dr277kay.tk -lxwwp.icu -ly631c.com -lyahatbercse.site -lyaliume.site -lyamda.ru -lybaba.xyz -lybe.info -lycos.comx.cf -lydia-uniform.com -lydias-scrubs.com -lydiascrubs.com -lydiasprofessionaluniforms.com -lydiasscrubs.com -lydiasuniform.com -lydiasuniform.info -lydiasuniform.net -lydiauniform.com -lyepictver.cf -lyepictver.ga -lyepictver.ml -lyepictver.tk -lyesikon.cf -lyfestylecreditsolutions.com -lyfrabom.cf -lyfrabom.ga -lyfrabom.ml -lyfrabom.tk -lygardendublin16.com -lygjzx.xyz -lyhert.com -lyhirame.website -lyjnhkmpe1no.cf -lyjnhkmpe1no.ga -lyjnhkmpe1no.gq -lyjnhkmpe1no.ml -lyjnhkmpe1no.tk -lyjtjgjy.xyz -lykaon.com -lylilupuzy.pl -lymaza.info -lymdownmer.cf -lymdownmer.gq -lymdownmer.tk -lynchtopkslop.cf -lynchtopkslop.ga -lynchtopkslop.gq -lyolersi.cf -lyolersi.ga -lyolersi.gq -lyolersi.ml -lyolersi.tk -lyq8i1.xyz -lyqayi.xyz -lyqe.site -lyqenz.xyz -lyqmeu.xyz -lyqo9g.xyz -lyqqp1.xyz -lyqqqv.xyz -lyqxe8.xyz -lyqxh2.xyz -lyrical.icu -lyricauthority.com -lyrics-lagu.me -lyrics-translation.com -lysszy.com -lyttres.ru -lyuke.ru -lyustra-bra.info -lyv1at.us -lyvqj.us -lywenw.com -lyzj.org -lyzzgc.com -lzcai168.net -lzcai888.net -lzcxssxirzj.cf -lzcxssxirzj.ga -lzcxssxirzj.gq -lzcxssxirzj.ml -lzcxssxirzj.tk -lzfkvktj5arne.cf -lzfkvktj5arne.ga -lzfkvktj5arne.gq -lzfkvktj5arne.tk -lzgyigfwf2.cf -lzgyigfwf2.ga -lzgyigfwf2.gq -lzgyigfwf2.ml -lzgyigfwf2.tk -lzmjgc.com -lzoaq.com -lzpooigjgwp.pl -lzqm.us -lzqt.us -lzs1.us -lzs94f5.pl -lztoek.us -lzw1o5.us -m-baraxolka.ru -m-c-e.de -m-chem.org -m-cms.net -m-dot.com -m-drugs.com -m-icsiba.online -m-lidov.ru -m-m.live -m-mail.cf -m-mail.ga -m-mail.gq -m-mail.ml -m-myth.com -m-p-s.cf -m-p-s.ga -m-p-s.gq -m-passport.ru -m-response.com -m-rinok.ru -m-xxx.ru -m.arkf.xyz -m.bccto.me -m.beedham.org -m.c-n-shop.com -m.cloudns.cl -m.codng.com -m.convulse.net -m.ddcrew.com -m.girl-viet.com -m.nik.me -m.nosuchdoma.in -m.polosburberry.com -m.svlp.net -m.u-torrent.cf -m.u-torrent.ga -m.u-torrent.gq -m0.guardmail.cf -m00b2sryh2dt8.cf -m00b2sryh2dt8.ga -m00b2sryh2dt8.gq -m00b2sryh2dt8.ml -m00b2sryh2dt8.tk -m015j4ohwxtb7t.cf -m015j4ohwxtb7t.ga -m015j4ohwxtb7t.gq -m015j4ohwxtb7t.ml -m015j4ohwxtb7t.tk -m0411.com -m0451.com -m07.ovh -m09n80ac9rp31rt.xyz -m0lot0k.ru -m0rrisdickson.com -m0ve.club -m0y1mqvqegwfvnth.cf -m0y1mqvqegwfvnth.ga -m0y1mqvqegwfvnth.gq -m0y1mqvqegwfvnth.ml -m0y1mqvqegwfvnth.tk -m0z3qi.com -m1.blogrtui.ru -m1.guardmail.cf -m11pk.net -m189ushr.buzz -m190msxw.buzz -m191pobi.buzz -m194mmlt.buzz -m197vfur.buzz -m199edcv.buzz -m1t95z.us -m1ufp7.com -m1zzu5pjtj6qmst.com -m2.guardmail.cf -m2.trekr.tk -m21.cc -m234666.com -m236rgjg.buzz -m25lettings.com -m2hotel.com -m2project.xyz -m2r60ff.com -m2zznc.us -m3-academy.net -m3.guardmail.cf -m301111.com -m332twfe.buzz -m345ohaw.buzz -m349auvq.buzz -m3enterprise.us -m3u5dkjyz.pl -m3vksa.us -m4-e.club -m4dw79.site -m4ice.ga -m4il5.pl -m4ilweb.info -m4oczo7ni4awcrw.xyz -m56123.com -m56345.com -m56456.com -m5gcz.info -m5r4q.buzz -m5s.flu.cc -m5s.igg.biz -m5s.nut.cc -m5wgcm.us -m64le.com -m68al2oevblfr3m.xyz -m6c718i7i.pl -m6n7008.com -m7665.com -m77b9emzt2xr2bf.xyz -m78012.com -m78123.com -m78345.com -m78567.com -m78678.com -m78qp.com -m7apqm.site -m7lotto.com -m88888.com -m88laos.com -m88lucky.com -m88pk.com -m89345.com -m89456.com -m8cu8xgnu92kj.site -m8g8.com -m8gj8lsd0i0jwdno7l.cf -m8gj8lsd0i0jwdno7l.ga -m8gj8lsd0i0jwdno7l.gq -m8gj8lsd0i0jwdno7l.ml -m8gj8lsd0i0jwdno7l.tk -m8h63kgpngwo.cf -m8h63kgpngwo.ga -m8h63kgpngwo.gq -m8h63kgpngwo.ml -m8h63kgpngwo.tk -m8r.davidfuhr.de -m8r.mcasal.com -m8r8ltmoluqtxjvzbev.cf -m8r8ltmoluqtxjvzbev.ga -m8r8ltmoluqtxjvzbev.gq -m8r8ltmoluqtxjvzbev.ml -m8r8ltmoluqtxjvzbev.tk -m8tro.net -m9262.com -m9282.com -m9827.com -m9enrvdxuhc.cf -m9enrvdxuhc.ga -m9enrvdxuhc.gq -m9enrvdxuhc.ml -m9enrvdxuhc.tk -m9evcp.com -m9so.ru -ma-boite-aux-lettres.infos.st -ma-didoma.website -ma-perceuse.net -ma1l.bij.pl -ma1lgen622.ga -ma2limited.com -ma8cfo.us -maaill.com -maal.com -maart.ml -maasaicricketwarriors.org -maatpeasant.com -mabarpubg.zapto.org -mabermail.com -mabh65.ga -maboard.com -mabterssur.ga -mabterssur.ml -mabterssur.tk -mabuklagi.ga -mabulareserve.com -mabv.club -mac.hush.com -macaniuo235.cf -macankumbang.com -macaoguojihui.com -macaototo.com -macarparke.xyz -macasoul.com -macau-8882.net -macau-8884.net -macau-8885.net -macau22.com -macau333.com -macau444.com -macau66.com -macaudrs.com -macbasics101.com -macbookpro13.com -macbookrepairvancouver.com -maccholnee.cf -maccholnee.ga -maccholnee.tk -macdell.com -macdermidperformancesolutions.info -macfittest.com -macgamedeveloper.com -macgames.site -macgcanhau.cf -macgcanhau.gq -macgcanhau.ml -macgcanhau.tk -machadobarcelona.com -machinalix.biz -machinalix.net -machineearning.com -machinelearningpositions.com -machineproseo.net -machineproseo.org -machineshop.de -machinetest.com -machlovi.com -machmeschrzec.cf -machmeschrzec.ga -machmeschrzec.ml -machmeschrzec.tk -machutka-n.ru -macintoshfiles.com -macmillanlarning.com -macnausa.com -macnotification.com -maconchesp.ga -maconchesp.ml -maconchesp.tk -macosa.cf -macosa.ml -macosa.tk -macpconline.com -macphersonford.com -macplus-vrn.ru -macr2.com -macredit.site -macrigrp.com -macroaligned.com -macrobabyparcela.com -macromaid.com -macromancy.com -macromice.info -macslim.com -macsoftware.de -macspeedtest.com -macts.org -macwish.com -macys-secure-login.com -madaboutpawsuk.com -madagaskar-nedv.ru -madam37.ru -madameemploi.cd -madarinorientalcondos.com -madberry.org -madcambodia.org -madconcrete.com -madcowcheesesteaks.com -madcowtgp.com -maddash.org -maddftp.online -maddftp.xyz -maddimilewskiofficial.com -maddison.allison.spithamail.top -maddisonrobson.buzz -maddy36523.ru -made.boutique -made.ninja -made7.ru -madebid.com -madebygrace.se -madecassol78.ru -madeinak.com -madeinbrazill.tech -madeinguelph.com -madeinmatter.com -madeinrdc.cd -madeinsrq.com -madeinthiscity.com -madeirapakistan.com -madejstudio.com -madelainetarasenko.com -madelhocin.xyz -madepas.ru -madeto.gq -madeto.ml -madeto.tk -madewall.me -madhobitakeaway.com -madhorse.us -madhosi.com -madiba-shirt.com -madibashirts.com -madikwetours.com -madisonliddic.com -madisonyouth.com -madmax.best -madmerchantjew.website -madnatextiles.com -madnesse.site -madnter.com -mado34.com -madobetooko.net -madobetooko.org -madrasati.club -madreporacean.best -madridbet.social -madridmuseumsmap.info -madrivertennis.com -madspraest.com -madstack.com -madtoppings.com -madurahoki.com -maduras.blog -madurasentuciudad.com -maechic.com -maedamis.ga -maedamis.gq -maedamis.ml -maedys.ru -maelcerkciks.com -maep-ua.org -maep-unionafricaine.org -maerdaifuyule0.com -maerdevol.com -maerds.ru -maestroqq.com -maf-bet.info -mafbet.biz -mafbet.info -mafiaa.cf -mafiaa.ga -mafiaa.gq -mafiaa.ml -mafiacapsaidn.com -mafiken.cf -mafiken.ga -mafiken.gq -mafiken.ml -mafiken.tk -mafmkkjxi.shop -mafoosh.com -mafproffitcasino.ru -mafrem3456ails.com -mag-industriegenerali.com -mag.su -magamail.com -magareports.cloud -magaspice.com -magaspices.com -magazenonl-man.site -magaziles.com -magazin-biciclete.info -magazin-elok69.ru -magazin-finalsales.site -magazin-kupi.space -magazin-op.online -magazin-topkost.space -magazin-toptovar.site -magazin20000.ru -magazin24-7.ru -magazine-action-marketing.ru -magazine-shop.site -magazinebemestar.com -magazinefoodie.com -magazineforu-ptrs.site -magazinkachelis.ru -magazinpukupos.fun -magazins-bestshop.site -magazinsupertrendov.fun -magazintovarov.space -magazkost-sale.site -magazsuper-st.fun -magbo.info -mage-tr.xyz -magecamera.com -magegraf.com -magekid.com -magentaguide.com -magentatax.com -magentiamoday.com -magento-sa.online -magento-sa.xyz -magentomancer.com -magetrust.com -maggotymeat.ga -maghassistance.com -magi666.ru -magia-malarska.pl -magia-sna.com -magiamgia.site -magic-world.su -magicalsys.site -magicandtheatre.com -magicbeep.com -magicblock.ru -magicblocks.ru -magicbox.ro -magicbroadcast.com -magiccashmachine.com -magicclick.ru -magicdrop.info -magicedhardy.com -magicemporium.shop -magicismight.com -magicletters.site -magicmail.com -magicmail01.ml -magicmarkerbea.xyz -magicmidgets.com -magiconly.ru -magicoscotch.best -magicpaper.site -magicsubmitter.biz -magicvapp.com -magikalworld.com -magilaclight.ru -magiushosting.site -maglienflpocoprezzo.com -maglo.sk -magmamine.ru -magn01ia.com -magn0lia.com -magnar.ru -magnestabil.com -magnetgoos.xyz -magneticmessagingbobby.com -magnetik.com.ua -magnetiner.com -magnetoes.com -magnetsandbox.com -magnificentvideo.ru -magnifyaid.com -magniglobal.org -magnoliacheck.xyz -magnoliya-52.site -magnomsolutions.com -magnum-digital.online -magnum.plus -magnumbet.online -magnumbet.xyz -magnumsv388.com -magnumx.site -magonline24.ru -magpietravel.com -magspam.net -magtrate.com -maguoxin1.com -magur.shop -magura.shop -magusae.space -maguttha.cf -mahabhart.tk -mahadewapoker.site -mahailadesigns.com -mahalimountains.com -mahan95.ir -mahantejarat.com -maharadg.ru -maharajahtakeaway.com -mahasherpa.com -mahatqeo.online -mahdevip.com -mahiidev.site -mahjonggplayzone.com -mahjongseal.se -mahkota33.org -mahmutahmet.ga -mahmutahmet.tk -mahoteki.com -mahsen.tk -mahutv.com -mahycu.site -mai1bx.ovh -mai1campzero.net.com -mai84.com -maia.aniyah.coayako.top -maiche.cd -maicheckfal.cf -maicheckfal.gq -maicheckfal.tk -maicox.com -maid-service.info -maiddropcrampon.ru -maidensportal.com -maidlow.info -maidstoneinventoryservices.com -maigrirdes40ans.com -maigw.us -maiiamfoodsolutions.com -maikai.me -mail-2-you.com -mail-4-you.bid -mail-4server.com -mail-9g.pl -mail-address.live -mail-app.net -mail-apps.com -mail-apps.net -mail-box.ml -mail-boxes.ru -mail-c.cf -mail-c.ga -mail-c.gq -mail-c.ml -mail-c.tk -mail-card.com -mail-card.net -mail-cart.com -mail-click.net -mail-cryz.ru -mail-demon.bid -mail-desk.net -mail-dj.com -mail-easy.fr -mail-fake.com -mail-file.net -mail-filter.com -mail-finder.net -mail-fix.com -mail-fix.net -mail-gen.xyz -mail-group.net -mail-guru.net -mail-help.net -mail-hub.info -mail-hub.online -mail-hub.top -mail-j.cf -mail-j.ga -mail-j.gq -mail-j.ml -mail-j.tk -mail-jim.gq -mail-jim.ml -mail-lab.net -mail-line.net -mail-list.top -mail-maker.net -mail-miu.ml -mail-neo.gq -mail-now.top -mail-owl.com -mail-podarki.ru -mail-point.net -mail-pro.info -mail-register.com -mail-reply.net -mail-s01.pl -mail-search.com -mail-searches.com -mail-security.xyz -mail-send.ru -mail-server.bid -mail-share.com -mail-share.net -mail-space.net -mail-temp.com -mail-temporaire.com -mail-temporaire.fr -mail-tester.com -mail-v.net -mail-vix.ml -mail-w.cf -mail-w.ga -mail-w.gq -mail-w.ml -mail-w.tk -mail-x91.pl -mail-z.gq -mail-z.ml -mail-z.tk -mail-zone.pp.ua -mail.anhthu.org -mail.ankokufs.us -mail.atomeca.com -mail.backflip.cf -mail.bccto.com -mail.bccto.me -mail.bentrask.com -mail.by -mail.c-n-shop.com -mail.chatfunny.com -mail.comx.cf -mail.crowdpress.it -mail.defaultdomain.ml -mail.effektiveerganzungen.de -mail.fettometern.com -mail.fgoyq.com -mail.free-emailz.com -mail.fsmash.org -mail.gokir.eu -mail.grupogdm.com -mail.guokse.net -mail.hanungofficial.club -mail.health-ua.com -mail.hlhtool.com -mail.hotxx.in -mail.illistnoise.com -mail.info -mail.inforoca.ovh -mail.it-byen.dk -mail.johnscaffee.com -mail.jopasfo.net -mail.jpgames.net -mail.junwei.co -mail.koalaltd.net -mail.libivan.com -mail.lindstromenterprises.com -mail.lowestpricesonthenet.com -mail.mailinator.com -mail.mayboy.xyz -mail.me -mail.mezimages.net -mail.minecraftfuns.tk -mail.mixhd.xyz -mail.mnisjk.com -mail.myde.ml -mail.myserv.info -mail.mzr.me -mail.neynt.ca -mail.omahsimbah.com -mail.partskyline.com -mail.piaa.me -mail.przyklad-domeny.pl -mail.ptcu.dev -mail.qmeta.net -mail.rthyde.com -mail.tggmall.com -mail.thesolidfirm.com -mail.ticket-please.ga -mail.to -mail.tomsoutletw.com -mail.toprevenue.net -mail.twfaka.com -mail.txsb.ml -mail.unionpay.pl -mail.vuforia.us -mail.webcity.ml -mail.wnetz.pl -mail.wtf -mail.wvwvw.tech -mail.yauuuss.net -mail.zinn.gq -mail.zp.ua -mail0.cf -mail0.ga -mail0.gq -mail0.ml -mail1.cf -mail1.drama.tw -mail1.hacked.jp -mail1.i-taiwan.tv -mail1.ismoke.hk -mail1.kaohsiung.tv -mail1.kein.hk -mail1.mungmung.o-r.kr -mail1.top -mail10.cf -mail10.ga -mail10.gq -mail10.ml -mail11.cf -mail11.gq -mail11.ml -mail114.net -mail123.netmail.tk -mail14.pl -mail15.com -mail166.cn -mail1999.cf -mail1999.ga -mail1999.gq -mail1999.ml -mail1999.tk -mail1a.de -mail1web.org -mail2.cf -mail2.drama.tw -mail2.info.tm -mail2.ntuz.me -mail2.space -mail2.vot.pl -mail2.waw.pl -mail2.worksmobile.ml -mail2000.cf -mail2000.ga -mail2000.gq -mail2000.ml -mail2000.ru -mail2000.tk -mail2001.cf -mail2001.ga -mail2001.gq -mail2001.ml -mail2001.tk -mail21.cc -mail22.club -mail22.space -mail24.club -mail24.gdn -mail24h.top -mail2k.bid -mail2k.trade -mail2k.win -mail2mail.site -mail2nowhere.cf -mail2nowhere.ga -mail2nowhere.gq -mail2nowhere.ml -mail2nowhere.tk -mail2paste.com -mail2rss.org -mail2tor.com -mail2world.com -mail3.activelyblogging.com -mail3.drama.tw -mail3.top -mail333.com -mail35.net -mail3plus.net -mail3s.pl -mail3tech.com -mail3x.net -mail4-us.org -mail4.com -mail4.drama.tw -mail4.online -mail48.top -mail4all.jp.pn -mail4biz.pl -mail4biz.sejny.pl -mail4free.waw.pl -mail4gmail.com -mail4trash.com -mail4used.com -mail4you.bid -mail4you.men -mail4you.racing -mail4you.stream -mail4you.trade -mail4you.usa.cc -mail4you.win -mail4you24.net -mail5.drama.tw -mail52.cf -mail52.ga -mail52.gq -mail52.ml -mail52.tk -mail56.me -mail6.jpimebbs.tk -mail62.net -mail666.ru -mail7.cf -mail7.ga -mail7.gq -mail7.vot.pl -mail707.com -mail72.com -mail77.top -mail777.cf -mail7d.com -mail8.ga -mail8.gq -mail8.vot.pl -mail8app.com -mail998.com -mailabconline.com -mailaccount.de.pn -mailadadad.org -mailadda.cf -mailadda.ga -mailadda.gq -mailadda.ml -mailadresim.site -mailairport.com -mailapi.ru -mailapp.top -mailapps.online -mailapso.com -mailara.ml -mailarissa.ml -mailart.top -mailart.ws -mailasdkr.com -mailasdkr.net -mailautomated01.com -mailavi.ga -mailb.tk -mailback.com -mailbehance.info -mailbidon.com -mailbiz.biz -mailblocks.com -mailblog.biz -mailbonus.fr -mailbookstore.com -mailbosi.com -mailbox.blognet.in -mailbox.com.cn -mailbox.comx.cf -mailbox.in.ua -mailbox1.gdn -mailbox2go.de -mailbox52.ga -mailbox72.biz -mailbox80.biz -mailbox82.biz -mailbox87.de -mailbox92.biz -mailboxheaven.info -mailboxint.info -mailboxlife.net -mailboxok.club -mailboxonline.org -mailboxrental.org -mailboxt.com -mailboxt.net -mailboxvip.com -mailboxxx.net -mailboxy.fun -mailbrazilnet.space -mailbros1.info -mailbros2.info -mailbros3.info -mailbros4.info -mailbros5.info -mailbucket.org -mailbus.ml -mailbusstop.com -mailbyemail.com -mailbyus.com -mailc.cf -mailc.gq -mailc.tk -mailcard.net -mailcat.biz -mailcatch.com -mailcatch.xyz -mailcc.cf -mailcc.ga -mailcc.gq -mailcc.ml -mailcc.tk -mailcdn.ml -mailchimpreview.com -mailchop.com -mailcker.com -mailclient.com -mailclubonline.com -mailclubs.info -mailcom.cf -mailcom.ga -mailcom.gq -mailcom.ml -mailconect.info -mailconn.com -mailcool45.us -mailcupp.com -mailcx.cf -mailcx.ga -mailcx.gq -mailcx.ml -mailcx.tk -mailde.de -mailde.info -maildeluxehost.com -maildemon.bid -maildfga.com -maildgsp.com -maildomain.com -maildonna.space -maildot.xyz -maildrop.cc -maildrop.cf -maildrop.ga -maildrop.gq -maildrop.ml -maildu.de -maildump.tk -maildx.com -maile.com -maile2email.com -mailea.ml -maileater.com -mailed.in -mailed.ro -maileder.com -maileere.com -maileimer.de -mailelectronic.com -mailelix.space -maileme101.com -maileon.ml -maileonie.ml -mailer.makodon.com -mailer.net -mailer.onmypc.info -mailer2.cf -mailer2.ga -mailer2.net -mailer9.net -mailerforus.com -mailermails.info -mailernam.com -mailerowavc.com -mailerraas.com -mailerrtts.com -mailersend.ru -mailert.ru -mailerv.net -mailese.ga -mailetk.com -maileto.com -mailex.pw -mailexpire.com -maileze.net -mailezee.com -mailf5.com -mailfa.cf -mailfa.tk -mailfake.ga -mailfall.com -mailfasfe.com -mailfavorite.com -mailfile.net -mailfile.org -mailfirst.icu -mailfish.de -mailflix1.it.o-r.kr -mailfnmng.org -mailfob.com -mailforall.pl -mailformail.com -mailforspam.com -mailfort-a.com -mailforthemeak.info -mailforwarding.amsterdam -mailfree.ga -mailfree.gq -mailfree.ml -mailfreehosters.com -mailfreeonline.com -mailfromnitin.tk -mailfs.com -mailfs.tk -mailg.ml -mailgate.shop -mailgc.com -mailgen.biz -mailgen.club -mailgen.fun -mailgen.info -mailgen.pro -mailgen.pw -mailgen.xyz -mailginza.com -mailglobalnet.space -mailglobe.club -mailglobe.org -mailgokurort.ru -mailgoogle.com -mailgov.info -mailgrupobancolombia.online -mailguard.me -mailgui.pw -mailgutter.com -mailhaven.com -mailhazard.com -mailhazard.us -mailherber.com -mailhero.io -mailhex.com -mailhost.com -mailhost.top -mailhound.com -mailhub.online -mailhub.pro -mailhub.pw -mailhub.top -mailhub24.com -mailhubpros.com -mailhulk.info -mailhz.me -mailicon.info -mailimail.com -mailimails.patzleiner.net -mailimate.com -mailin8r.com -mailinatar.com -mailinater.com -mailinator.cf -mailinator.cl -mailinator.co -mailinator.co.uk -mailinator.com -mailinator.ga -mailinator.gq -mailinator.info -mailinator.linkpc.net -mailinator.ml -mailinator.net -mailinator.org -mailinator.pl -mailinator.site -mailinator.us -mailinator.usa.cc -mailinator0.com -mailinator1.com -mailinator2.com -mailinator2.net -mailinator3.com -mailinator4.com -mailinator5.com -mailinator6.com -mailinator7.com -mailinator8.com -mailinator9.com -mailinatorzz.mooo.com -mailinbox.cf -mailinbox.co -mailinbox.ga -mailinbox.gq -mailinbox.guru -mailinbox.ml -mailincubator.com -mailindexer.com -mailinfo8.pro -mailing.o-r.kr -mailing.one -mailing.serveblog.net -mailingclip.com -mailingforever.biz -mailinit.com -mailisa.ml -mailismagic.com -mailita.tk -mailivw.com -mailj.tk -mailjonny.org -mailjunk.cf -mailjunk.ga -mailjunk.gq -mailjunk.ml -mailjunk.tk -mailjuose.ga -mailkept.com -mailking.ru -mailkor.xyz -mailksders.com -mailkuatjku2.ga -mailkutusu.site -maillak.com -maillei.com -maillei.net -mailline.net -mailling.ru -maillink.in -maillink.info -maillink.live -maillink.top -maillist.in -mailllc.download -mailllc.top -mailloading.com -maillotdefoot.com -mailly.xyz -mailmail.biz -mailman.com -mailmassa.info -mailmate.com -mailme.gq -mailme.ir -mailme.judis.me -mailme.lv -mailme24.com -mailmeanyti.me -mailmedo.com -mailmefast.info -mailmeking.com -mailmerk.info -mailmetal.com -mailmetrash.com -mailmetrash.comilzilla.org -mailmink.com -mailmix.pl -mailmoat.com -mailmonster.bid -mailmonster.download -mailmonster.stream -mailmonster.top -mailmonster.trade -mailmoth.com -mailms.com -mailmu.ml -mailmuffta.info -mailmy.co.cc -mailmyrss.com -mailn.pl -mailn.tk -mailna.biz -mailna.co -mailna.in -mailna.me -mailna.us -mailnails.com -mailnator.com -mailnd7.com -mailnesia.com -mailnet.top -mailnetter.co.uk -mailnow2.com -mailnowapp.com -mailnull.com -mailo.cf -mailo.tk -mailon.ws -mailonaut.com -mailondandan.com -mailone.es.vu -mailontherail.net -mailonxh.pl -mailop7.com -mailor.com -mailorc.com -mailorderbrides4u.net -mailorderbridesreviews.com -mailorg.org -mailotta.ml -mailou.de -mailowanovaroc.com -mailowowo.com -mailox.biz -mailox.fun -mailpay.co.uk -mailperfetch.com -mailphar.com -mailpick.biz -mailpkc.com -mailplus.pl -mailpluss.com -mailpm.live -mailpooch.com -mailpoof.com -mailpost.comx.cf -mailpost.ga -mailpost.gq -mailpoubelle.yenoussa.fr -mailpremium.net -mailpress.gq -mailprm.com -mailprm.xyz -mailpro5.club -mailprohub.com -mailprotech.com -mailproxsy.com -mailpti.ga -mailpts.com -mailpuppet.tk -mailquack.com -mailr24.com -mailraccoon.com -mailrard01.ga -mailrazer.com -mailrc.biz -mailreds.com -mailref.net -mailrerrs.com -mailres.net -mailretor.com -mailretrer.com -mailrnl.com -mailrock.biz -mailrrpost.com -mailrunner.net -mails-24.net -mails-4-mails.bid -mails.com -mails4mails.bid -mailsac.cf -mailsac.com -mailsac.ga -mailsac.gq -mailsac.ml -mailsac.tk -mailsadf.com -mailsadf.net -mailsall.com -mailscdn.com -mailschain.com -mailscheap.us -mailscrap.com -mailsdfd.com -mailsdfd.net -mailsdfeer.com -mailsdfeer.net -mailsdfsdf.com -mailsdfsdf.net -mailsdrop.fun -mailseal.de -mailsearch.net -mailsecv.com -mailseo.net -mailserv95.com -mailserver.bid -mailserver.men -mailserver2.cf -mailserver2.ga -mailserver2.ml -mailserver2.tk -mailserver89.com -mailserviceforfree.info -mailseverywhere.net -mailshell.com -mailshiv.com -mailshiv.me -mailsinabox.bid -mailsinabox.info -mailsinthebox.co -mailsiphon.com -mailsister1.info -mailsister2.info -mailsister3.info -mailsister4.info -mailsister5.info -mailslapping.com -mailslite.com -mailsmart.info -mailsnails.com -mailsnike.xyz -mailsor.com -mailsoul.com -mailsource.info -mailspam.me -mailspam.xyz -mailspeed.ru -mailspirit.info -mailspro.net -mailspru.cz.cc -mailsrv.ru -mailssa5.com -mailssa6.com -mailssents.com -mailstudio.tech -mailsuckbro.cf -mailsuckbro.ga -mailsuckbro.gq -mailsuckbro.ml -mailsuckbro.tk -mailsuckbrother.cf -mailsuckbrother.ga -mailsuckbrother.gq -mailsuckbrother.ml -mailsuckbrother.tk -mailsucker.net -mailsucker1.cf -mailsucker1.ga -mailsucker1.gq -mailsucker1.ml -mailsucker1.tk -mailsucker11.cf -mailsucker11.ga -mailsucker11.gq -mailsucker11.ml -mailsucker11.tk -mailsucker14.cf -mailsucker14.ga -mailsucker14.gq -mailsucker14.ml -mailsucker14.tk -mailsucker2.cf -mailsucker2.ga -mailsucker2.gq -mailsucker2.ml -mailsucker2.tk -mailsucker34.cf -mailsucker34.ga -mailsucker34.gq -mailsucker34.ml -mailsucker34.tk -mailsup.net -mailsuppress.com -mailsy.top -mailsys.site -mailt.net -mailt.top -mailtanpakaudisini.com -mailtechx.com -mailtemp.info -mailtemp.net -mailtemp.org -mailtemp1123.ml -mailtempmha.tk -mailtemporaire.com -mailtemporaire.fr -mailthunder.ml -mailtimail.co.tv -mailtime.com -mailtmk.com -mailto.plus -mailtod.com -mailtome.de -mailtomeinfo.info -mailtop.ga -mailtothis.com -mailtoyou.top -mailtraps.com -mailtrash.net -mailtrix.net -mailtv.net -mailtv.tv -mailu.cf -mailu.gq -mailu.ml -mailucy.ml -mailuisa.ml -mailur.com -mailusa.tech -mailusivip.xyz -mailverificationupdate.xyz -mailviwav.tk -mailvk.net -mailvxin.com -mailvxin.net -mailw.cf -mailw.ga -mailw.gq -mailw.info -mailw.ml -mailw.tk -mailwebsite.info -mailwithyou.com -mailwriting.com -mailxtr.eu -mailxx.cf -mailxx.gq -mailyes.co.cc -mailymail.co.cc -mailyouspacce.net -mailz.info -mailz.info.tm -mailzen.win -mailzi.ru -mailzilla.com -mailzilla.org -mailzilla.orgmbx.cc -mailzinoit.com -mailzxc.pl -maimare.site -maimobis.com -main-release.com -main-tube.com -maindomino88.com -mainegotrain.com -mainely-dogs.com -mainequote.com -mainerfolg.info -maineyoutube.com -mainkartuonline.live -mainketoportal.com -mainlandortho.com -mainlinehosting.net -mainmacio.com -mainmait.shop -mainpasaran88.net -mainphenom.com -mainphp.cf -mainphp.ga -mainphp.gq -mainphp.ml -mainpkv.com -mainpokemon.com -mainpokerv.net -mainprise.site -mainsportss.com -mainstreethost.company -mainstreetprivacy.us -mainsydney.com -maintainintegrity.com -maiqing-yule.com -mairecipes.com -maisdeliveryapp.com -maisieaustin.buzz -maisinternet.com -maisldka.site -maisondesjeux.com -maisonoud.com -maissmartwatch.com -maisvolume.space -maiu.tk -majdsyria.com -majiango.com -majiidxchangee.com -majminhouse.com -majnmail.pl -majolicas.best -major-jobs.com -major-print.com -major.clarized.com -major1688.com -majoralbu.recipes -majorbleeding.online -majorcaholidayhouse.com -majorexil.xyz -majorfans.zone -majorleaguemail.com -majorleaguestore.com -majorminormedia.us -majorspukvw.email -majorstea.buzz -majorsww.com -majortv.best -majortv.club -majostores.site -makaet.site -makapay.online -makasarpost.cf -make-bootable-disks.com -makeacase.com -makeaim.ru -makebigmoneybro.ru -makebootabledisk.com -makedates.ru -makedon-nedv.ru -makefriends.ru -makeitdiy.ru -makeiteasy.ml -makelifebetter.blog -makemebettr.site -makemenaughty.club -makemer.ru -makemetheking.com -makemind.ru -makemoney.com -makemoneyscams.org -makemycourier.com -makemydisk.com -makepleasure.club -makeplugin.com -makerains.tk -makerinist.com -makersxq.com -makeshopping.pp.ua -maket-saita.ru -makethebadmanstop.com -makethebadmanstop.org -makethosememories.com -makeunrao.com -makeupaccessories.company -makeupbali.com -makeupduel.com -makeupkiller.website -makeupreviews.info -makeupshop.live -makeuseofoffers.com -makiartist.com -makimeore.com -makinadigital.com -makingamericabetterthanever.com -makingamericabetterthanever.org -makingbharat.com -makingfreebasecocaine.in -makingmichigan.org -makinlabels.online -makita-max.com -makita-profi.store -makkahimages.com -makkan-auto.ru -makmadness.info -makomalls.site -makotamarketing.com -makov-ml.ru -makresta.ru -makrobet84.club -maks.com -maksap.com -maksatbahis3.com -maksimumprodazh.ru -maksymkrippa.com -maktabatna.com -maktwb.net -makumba.justdied.com -makvik.ru -makyn.ml -mal-mal.ru -mal3ab.online -malagaapparel.com -malahov.de -malaizy-nedv.ru -malakies.tk -malamutepuppies.org -malapo.ovh -malarenorrkoping.se -malaria.asia -malaria.desi -malarkaikani.com -malarz-mieszkaniowy.pl -malarz-remonciarz.pl -malarz-remonty-warszawa.pl -malarz-remonty.pl -malarzmieszkaniowy.pl -malatyagenclikmeclisi.com -malatyaprefabrikyapi.xyz -malatyaticaretrehberi.xyz -malawiorphancare.org -malayalamdtp.com -malayaleaf.com -malaysianrealty.com -malaysiatour.info -malboxe.com -malchikzer.cf -malchikzer.gq -malcolmdriling.com -maldimix.com -maldives-holiday-package.com -maldiveshotelguide.com -maldivesimage.com -maldonado-clientes.online -maldonadomail.men -maldonadopro.com -maldonfilmclub.info -male-pillsrx.info -malecigarettestore.net -maleckigastro.com -maleenhancement.club -maleenhancement24.net -malegirl.com -malelanesatellitecamp.com -malemjumat.fun -malemjumat.live -malenalife.com -maletraveller.com -mali-nedv.ru -maliberty.com -malibubright.org -malibucoding.com -malicious.today -maliesed.com -maliesedau.com -maliesedauaq.com -malinagames.ru -malinator.com -malinger.org -malishlandiya.ru -maliya520.xyz -maliya522.xyz -maliyetineambalaj.online -maliyetineambalaj.xyz -mall.tko.co.kr -mallardpay.com -mallbaricadeprotection.tech -mallfamily.ru -mallinator.com -mallinco.com -malloryecunningham.com -malloryecunninghamlaw.com -mallpassim.com -mallyeah.com -malomies.com -malomiesed.com -malovay.site -malove.site -malpracticeboard.com -malrekel.ga -malrekel.gq -malrekel.tk -malta-nedv.ru -maltacentralbank.org -maltacp.com -maltepeingilizcekurslari.com -maltepelisesi.xyz -maltiy.space -maltsev2018.ru -malurl.com -malvolion.com -malware.icu -malwarehub.org -mam-pap.ru -mama-bag-sochi.ru -mama.com -mama11mart.com -mamadoma.net -mamail.cf -mamail.com -mamajitu.net -mamajitu.org -mamak-cork.com -mamalenta.ru -mamamintaemail.com -mamaumki.ru -mamba.ru -mambanalibre.xyz -mambaru.in -mamber.net -mami000.com -mami999.net -mamin-shop.ru -mamisa.shop -mamkinarbuzer.cf -mamkinarbuzer.ga -mamkinarbuzer.gq -mamkinarbuzer.ml -mamkinarbuzer.tk -mamkinrazboinik.cf -mamkinrazboinik.ga -mamkinrazboinik.gq -mamkinrazboinik.ml -mammothexploration.com -mammybagmoscow.ru -mamsoil.com -mamsy-bags.ru -mamu786.xyz -mamulenok.ru -mamulyam.ru -mamway.ru -man-day-for-you.website -man-or-machine.com -man580.com -man675.com -man683.com -man752.com -man909.com -mana-jp.com -manabisagan.com -manadotogel.net -manage-11.com -manage-page.com -managedu.ru -managelaw.ru -managementinstruction.buzz -managements.best -managerpayservice.club -manam.ru -mananal.com -manantial20.mx -manantialwatermx2.com.mx -manaritiplumbing.com -manatelugupaatalu.com -manatialagua.com.mx -manatialxm.com.mx -manavgatkaymakamligi.xyz -manavgatx.xyz -manbetx.ltd -manbetxsff.com -manbetxyzn.com -manbk.site -manblog.com -manbox.site -manchesterboy.com -mandalabet.net -mandalajp.net -mandalapoker.net -mandalatogel.xyz -mandalorian.info -mandarin-house-rathcoole.com -mandarincastle.com -mandarinhouserathcoole.com -manderich.com -mandibuliform.best -mandirihoki188.net -mandirimutupratama.com -mandorqq.com -mandownle.cf -mandownle.ga -mandownle.gq -mandownle.tk -mandraghen.cf -mandua.best -manduxx.info -mandyfairy.com -mandygranger.com -mandynmore.com -mandysayer.com -manekicasino2.com -manekicasino3.com -manekicasino5.com -manekicasino7.com -manekicasino8.com -manekicasino9.com -manepa.xyz -manetormonet.com -manf.site -manfgo.com -manga8.com -mangablog.com -mangago.ru -mangagoku.com -mangakun.net -mangbongda.biz -mangbongda.site -mangbongda.tech -mangbongda.xyz -mangbongda.zone -mangiamediterraneo.club -mangohik.xyz -mangokurdu.xyz -mangonet.shop -mangopro.site -mangovision.com -mangtinnhanh.com -mangulaas.eu -mania-qq.website -mania99.org -maniabola.info -maniabola.org -maniabola.website -maniabola365.com -manialiga.global -maniaqq.global -maniashrinepatch.site -manic-adas.ru -manic20.site -manifestgenerator.com -manifestqld.com -manigraavertu.ru -manikot.info -maninblacktequila.com -manipurbjp.org -manisabelediyesi.xyz -manisagunlukkiralikdaire.xyz -manisalilardernegi.com -manisalilardernegi.xyz -manisancikyon.com -maniskata.online -manivsem.ru -mankyrecords.com -manly.app -manlysurftv.com -manm.site -manmancao3.com -manna-haus.org -mannbdinfo.org -mannerladies.com -manningaffordability.com -manningvalleyrifleclub.online -mannitol.net -mannnwii.site -mannogem.com -mannogem.net -manocong.cf -manocong.ga -manocong.gq -manocong.ml -manocong.tk -manogat.news -manogat.online -manogifts.com -manolis.co -manor-motel.net -manp.site -manq.site -manqoba.com -manr.site -mansetbet.com -mansilverinsdier.com -mansion4d.net -mansion4d.org -mansiondev.com -mansione.site -mansmarts.com -mansonusa.com -mansosolascos.com -mansouracity.com -mantap.com -mantestosterone.com -mantra.ventures -mantragro.com -mantrasindian.com -manualace.online -manualace.site -manualame.site -manualand.site -manualandguides.site -manualans.online -manualans.site -manualant.online -manualant.site -manualany.online -manualany.site -manualar.online -manualar.site -manualard.online -manualard.site -manualare.online -manualare.site -manualars.site -manualart.site -manualary.site -manualast.site -manualate.site -manualave.site -manualber.site -manualbet.site -manualcal.site -manualcan.site -manualced.site -manualces.site -manualded.site -manualder.site -manualdes.site -manualead.site -manualean.site -manualear.site -manualeas.site -manualeat.site -manualect.site -manualed.online -manualed.site -manualeir.site -manualely.site -manualend.site -manualent.site -manualere.site -manualern.site -manualers.site -manualery.site -manuales.site -manualese.site -manualess.site -manualest.site -manualformy.fun -manualformy.online -manualformy.site -manualformy.space -manualformy.website -manualged.site -manualges.site -manualgon.site -manualhan.site -manualhat.site -manualhed.site -manualhen.site -manualher.site -manualhey.site -manualhin.site -manualhis.site -manualial.site -manualian.site -manualic.online -manualic.site -manualid.online -manualid.site -manually.online -manually.site -manualso.online -manualso.site -manubrium.site -manueljager.online -manufcaturamc.com -manuka.com -manumail.club -manun.site -manv.site -manw.site -manwithwheels.icu -manxapp2.com -manxapp3.com -many-slots.ru -manybat.ru -manybrain.com -manycrow.ru -manyhaywire.com -manyhod.space -manyirka.ru -manyme.com -manymenofthewild.com -manymilk.ru -manymom.ru -manypics.site -manyriver.ru -manystorybooks.com -manytan364.cf -manytan364.ga -manytan364.gq -manytan364.ml -manytan364.tk -manyvids.app -manywave.com -manzmail.online -manzoox.com -mao.igg.biz -mao.services -maoaed.site -maobohe.com -maocloud.world -maokai-lin.com -maokeba.com -maomaocheng.com -map-academy.net -map-academy.org -map-us.info -mapa-polskii.pl -mapadeavellaneda.com -mapadebuenosaires.com -mapadeconocimiento.info -mapadels.info -mapadeonce.com -mapamayas.info -mapark.website -mapaspromocionales.com -mapfnetpa.gq -mapfnetpa.ml -mapfnetpa.tk -maphic.site -mapigraavertu.ru -mapleemail.com -mapname.com -mapnamrc.org -mapol.ru -mapolace.xyz -mappys.club -mapq.us -mapquesttab.com -maprealty.capital -maprealty.net -mapsable.com -mapsjos.net -mapsjos1.net -mapsjos2.net -mapsjos3.net -mapsmarketing.com -mapspagesy.info -mapyatirim.com -mapycyfrowe-bydgoszcz.pl -maqus-opl.best -mara.jessica.webmailious.top -marabalan.cf -marabalan.ga -marafonbetru110.ru -marafonhudeiki.ru -marallgel.website -maraphonebet.com -marasanov.ru -marasciofamily.com -marastesbih.com -marataba.org -maratabagamereserve.com -marathifacebook.icu -marathon-des-erables.com -marathon-in.ru -marathon-official.ru -marathon.cash -marathonbet-inn.ru -marathonbet.tj -marathonguru.win -marathonkit.com -marawa.africa -marbau-hydro.pl -marbleorbmail.bid -marcachis.info -marcbymarcjacobsjapan.com -marcela26.com -marcela99.com -marceneiro.website -marchmarditc.cf -marchmarditc.gq -marchmarditc.tk -marchmovo.com -marchodler.com -marcinleskiewicz.com -marciszewski.pl -marcjacobshandbags.info -marcospecpinball.com -marcostens.info -marcoy.website -marcpfitzer.com -marcsplaza.com -marcusamps.ru -marcuswarner.com -mardanataqat.com -mardihard.com -mardincafem.xyz -mardinface.online -mardinvitrini.com -mareczkowy.pl -marektplace.site -mareno.net -maret-genkzmail.ga -marezindex.com -marfa-lago.com -marfito.gq -marfito.ml -margaretanna.com -margaretesterdijk.xyz -margaretmerrifield.com -margarette1818.site -margaritaraces.com -margeguzellik.net -marginalmom.com -marginsy.com -margocopy.ru -margolotta4.pl -margolotta5.pl -margolotta6.pl -margust.ru -marhakxjaytyx8.site -marhendte.cf -marhendte.ml -marhendte.tk -mariagestore.com -mariahtoto.biz -marialarssonsevigaogonblick.se -marianhouse.co -marianmc.com -mariannehallberg.se -marianpissaridi.com -mariasbox.com -marib5ethmay.ga -maribli.com -maricher.xyz -maricrisgarciaonline.com -maridoexpress.com -mariebyrdland.us -marieke-mulder.online -mariela1121.club -marielhouse.co -marihow.ga -marihow.gq -marihow.ml -marihow.tk -mariinskiytheater.ru -marijuana-delight.com -marijuana-delight.info -marijuana-delight.net -marijuanafertilizer.organic -marijuananews.xyz -marikacarlsson.se -marikkwigmans.xyz -marimalina.website -marimari.website -marimastu98huye.cf -marimastu98huye.gq -marimbagun.com -marimbahq.com -marimbamassage.com -marimbamassagegun.com -marimbamassager.com -marimbashop.com -marinad.org -marinajohn.org -marinamilitareshop.com -marinanhatrangbay.net -marinapirozhkova.ru -marinaprecision.com -marinarlism.com -marinax.net -marinebrush.com -marinebrush.net -marinebrush.org -marinebrush.us -marinebrushes.net -marinebrushes.us -marinepaintbrush.biz -marinepaintbrush.org -marinepaintbrush.us -marinepaintbrushes.biz -marinepaintbrushes.com -marinepaintbrushes.net -marinerscc.com -marinhood.com -marioads.xyz -marioandsons-monkstown.com -mariomaker.tech -maripottery.com -marisolsellshouses.com -marissasbunny.com -maritimeglossary.com -mariusblack.net -marizing.com -mark-compressoren.ru -mark-sanchez2011.info -mark234.info -markabettv1.com -market-beatz.ru -market-csgotm.fun -market-map.ru -market-open-trade.site -market177.ru -market2018-77.ru -market4play.ru -marketabot.com -marketbard.com -marketconow.com -marketfinances.xyz -markethealthreviews.info -marketing-commerce-retail.site -marketing-formula-inform.ru -marketing-new-info.ru -marketing4karting.com -marketingagency.net -marketingagency.tips -marketingcoursesusa.com -marketingeffekt.de -marketingforpastors.com -marketingi.org -marketingondigital.info -marketingperformma.com -marketingsecretsapp.com -marketingsolutions.info -marketingsummit.online -marketingtheory.club -marketintelligencesystems.live -marketlance.com -marketlink.info -marketpad.net -marketplace-lab.com -marketplaceloans.xyz -marketplacemuzza.com -marketplaceselector.com -marketpro.site -marketprofilescanner.net -marketsinitiative.org -marketspacepro.com -markettechno.ru -markherringshaw.com -markhoag.net -markhornsby.org -markhutchins.info -markinternet.co.uk -markinv.ru -markissundsvall.se -markmail.site -markmurfin.com -markonedesign.info -markopinball.info -markopinball.org -markperryrealtor.com -markreturn.top -marksave.com -marksearcher.com -markthemann.net -markuscerenak.net -markuschkamei.xyz -markvangossum.space -marlboro-ez-cigarettes.com -marlboroughdentists.com -marlisapunzalanofficial.com -marloni.com.pl -marmail.club -marmaladis.ru -marmaratasev.xyz -marmaryta.com -marmaryta.email -marmaryta.life -marmaryta.space -marmitasfitlucrativas.com -marmotmedia.com -marnari.ga -marocpro.email -maroneymedia.com -maroonecho.com -maroonsea.com -marquesos.com -marquissevenhillshenderson.com -marrakech-airport.com -marresa.cf -marresa.ml -marresa.tk -marriageapplaud.buzz -marriagecounseling.tech -marriagedate.net -marriageguide.org -marriageisamarathon.org -marriedchat.co.uk -marrkt.sale -marrocomail.gdn -marromeunationalreserve.com -marrone.cf -marryznakomstv.ru -mars-bet.com -mars-bet.net -marsbahisuyelik.com -marsbahisyeniadres.com -marsbet.biz -marsbet.info -marsbet.net -marsbet.org -marsbetting.com -marschinesetakeaway.com -marseillemetropoleaudacieuse.biz -marseillemetropoleaudacieuse.info -marseillemetropoleaudacieuse.net -marseillesoap.net -marseillesoap.us -marsellas-takeaway.com -marsellasrathcoole.com -marsellastakeaway.com -marsellastraditionaltakeaway.com -marshahickeydds.com -marshalheadphones.com -marshallheadphone.com -marshch.icu -marshche.xyz -marshl.ru -marshord.icu -marshpr.xyz -marshpri.xyz -marshwatc.buzz -marsmecar.cf -marsmecar.ga -marsmecar.gq -marsmecar.ml -marsmecar.tk -marsoasis.org -marstore.site -marstur.com -marsuniversity.com -mart-hit-real.site -mart-nsk.ru -mart-trade-zero.ru -mart.monster -martamccue.biz -martasarimat.club -martech-a2z.xyz -martelli.shoes -marthaloans.co.uk -martiallist.com -martin.securehost.com.es -martin1minley2.com -martincondosvegas.com -martinesg.com -martinmarch.shop -martinocreative.com -martinopodcasts.com -martinoscabinteely.com -martinospodcast.com -martlet.site -martynakubiak.com -martystahl.com -martyvole.ml -marukushino.co.jp -marumaru.live -marumaru2.com -marun.shop -maruti365.bet -marutv.fun -marutv7.fun -marutv8.fun -marutv9.fun -marvelpress.com -marvinlee.com -marvinlee.net -marvinoka.com -marwelax.com -marwellhard.cf -marwellhard.ga -marwellhard.gq -marwellhard.tk -marxistlibrary.com -mary.organic -maryandmikebiz.com -maryanncassidy.com -marybethouse.co -maryjanehq.com -maryjanehq.info -maryjanehq.net -marylacmzh.club -marylacmzh.site -marylacmzh.space -marylacmzh.website -marylandadoption.org -marylandbbc.com -marylandbookkeeping.com -marylandpropertyfinders.com -marylandquote.com -marylandwind.org -maryscaccia.com -maryscake.ru -maryvallely55places.com -mas-omkia.ru -mas1red.pro -mas90help.com -masafatmarathon.com -masafiagrofood.com -masafigroupbd.com -masaindah.online -masala-twist-trim.com -masasih.loan -mascarenha.com -mascarenhaspro.com -maschinodance.com -mascpottho.ga -mascpottho.gq -mascpottho.ml -mascpottho.tk -masd.pro -masdihoo.cf -masdihoo.ga -masdihoo.gq -masdihoo.tk -masdo88.top -masdtgv2.cf -masdtgv2.ml -masdtgv2.tk -maserathe.ml -maserderas.ga -mashasemenenko.art -mashhosting.shop -mashkrush.info -mashy.com -masihingat.xyz -masikmama.ru -masivepic.com -mask-cledbel.ru -mask03.ru -maskads.xyz -maskbistsmar.cf -maskbistsmar.ga -maskbistsmar.gq -maskbistsmar.ml -maskbistsmar.tk -maskedmails.com -maskedsingerbingo.com -maskedsingercasino.com -maskedsingergames.com -maskedsingerslot.com -maskeliarmut.ml -maskelimaymun.ga -maskelimaymun.ml -maskercorona.online -maskercorona.space -maskgamenew.ru -maski-russia-shop.ru -maski-shop-russia.ru -maskitop.cf -maskmail.net -masks-muzik.ru -maskstore.world -maslicov.biz -maslokkd.gq -masmavis.cf -masmavis.ga -masmavis.tk -masok.lflinkup.com -masoncity-iowa.com -masoneriavalencia.org -masongazard.com -masonhussain.buzz -masonic.tech -masonicslot.com -masonline.info -masonryky.com -masonryservicesatokatn.com -maspay.ru -masrku.online -massachusettsadobe.com -massachusettsroofingrepair.com -massage-cleopatra.ru -massage-top.site -massage2.ru -massageinsurancequote.com -massagenerdshow.com -massageplanner.com -massagepraktijkmiranda.com -massager-tpgun.ru -massagetherapyonline.biz -massagetissue.com -massazh73.ru -massazhistki-40.com -massazhistki-50.com -massazhistki-na-dom.com -masseffect1weightloss.world -masseymail.men -masshook.us -massiftours.com -massiftrails.com -massiveemotions.com -massivemalee.best -massmedios.ru -masspoller.ru -massrewardgiveaway.gq -masssky.com -masstoly.ru -massyacquaintpecan.site -mastahype.net -mastds.ru -mastella.com -master-crm.ru -master-mail.net -master-mind.site -master-start61.ru -master.cd -master495.ru -masteravto777.ru -masterbuiltoutlet.com -masterbuiltoutlet.info -masterbuiltoutlet.net -masterbuiltoutlet.org -masterbyrne.com -mastercard-3d.cf -masterclassediting.com -masterclassretreat.com -mastercodeteam.tech -masterdominoqq.win -masterfori.com -masterfriend.online -masterfrioequipamentos.com -mastergardens.org -masterjudionline.com -masterkudrovo.ru -masterlightingcourse.com -mastermail24.gq -mastermine.website -mastermoneygame.com -mastermoolah.com -masternv.ru -masterofwarcraft.net -masterqiu9.com -masterscollectionvegas.com -mastersduel.com -masterslime.ru -mastersoka.ru -mastersuniversitaris.com -masterur.xyz -masterwallact.com -masterwallnsw.com -masterwallnt.com -masterwallsa.com -masterwish.com -masteryjsut.com -mastihy.party -masto.link -masturbates-to.men -masuk.shop -masukbosku88.com -maswae.world -maszynkiwaw.pl -maszyny-rolnicze.net.pl -mataharipoker.info -mataikan.club -matamuasu.cf -matamuasu.ga -matamuasu.gq -matamuasu.ml -matanyashope.com -match365.soccer -match365.us -matchcomputersspot.club -matchdir.xyz -matchdoug.space -matchen.direct -matchendirect.cloud -matchgloo.xyz -matchlessrecordings.org -matchlitha.cf -matchlitha.gq -matchlitha.ml -matchlitha.tk -matchpol.net -matchsingles2.us -matchsingles7.us -matchsingles8.us -matchsingles9.us -matchstickball.info -matchsticktown.com -matchthe.icu -matchtvonline.ru -matchup.site -matcjesfashion.com -matenow.site -matepay.space -mateplays.xyz -materi.website -materiali.ml -materialos.com -materialshop.net -maternidadenaintegra.com -maters968ba.xyz -mateustech.com -math135-tutors.biz -mathews.com -mathiepottery.com -mathleaf.com -mathslowsso.cf -mathslowsso.ga -mathslowsso.gq -mathslowsso.ml -matildadahlquist.se -matildaj.se -matinvp.xyz -matmee.net -matobonationalpark.com -matogeinou.biz -matoji.info -matra.site -matra.top -matriv.hu -matrix-istanbul.xyz -matrix-project.ru -matrix.gallery -matrixtechlab.com -matrixyourreality.com -matseborg.cf -matseborg.ga -matseborg.ml -matseborg.tk -matsuo.institute -matt-salesforce.com -mattbob.info -mattbrock.com -mattersjf8.com -mattersofaging.com -matthenry.name -matthewguy.info -matthewmagellan.com -matthewservices.com -matthewsheets.com -matthewsnow.org -matthorner.com -matti.life -mattmason.xyz -mattmcguire.org -mattpiercey.com -mattress-mattress-usa.com -mattschifrin.com -mattwoodrealty.com -matuisi.ru -maturejob.xyz -maturejoy.xyz -maturemovie.info -matureprofiles.com -maturevirgin.club -matydezynfekcyjne.com.pl -matzan-fried.com -matzxcv.org -mauiland.net -maumeehomesforsale.net -mauo.xyz -mauricegleiser.com -mauriciobento.top -mauriss.xyz -mauritzujn.space -maurya.ml -maverickcreativegroup.org -maverickprocessing.net -mavi-serum.online -mavibebegim.com -mavicmini.shop -maviorjinal.xyz -mavisacsuyu.xyz -mavoyancegratuite.org -mavriki-nedv.ru -mavsbball.com -mavx.us -mawaidha.info -mawpinkow.konin.pl -mawrkn.us -max-adv.pl -max-clr.pro -max-direct.com -max-gta.ru -max-loto.ru -max-mail.com -max-mail.info -max-mail.org -max-mirnyi.com -max2ern.pro -max2hey.pro -max2new.pro -max300fps.ru -max3eu.pro -max3kz.pro -max3new.pro -max4kz.pro -max4p.pro -max66.live -max7.site -max88.club -max99.xyz -maxbeautyhair.com -maxbet-cazino.website -maxbetslots-zerkalo.ru -maxbetspinz.co -maxcasi.xyz -maxcelebration.com -maxclo4r.pro -maxcloer.pro -maxclr.pro -maxcreditratings.com -maxcro.com -maxdatamail.com -maxedoutgamers.com -maxflo.com -maxgate.org -maxheym.pro -maxho.ru -maxi-shop1.ru -maxi.capital -maxi2erld.pro -maxi2eurb.pro -maxi2kz.pro -maxi2ro.pro -maxi3kz.pro -maxi3ro.pro -maxi4erld.pro -maxi5kz.pro -maxi6kz.pro -maxicapital.ru -maximalbonus.de -maximilo.com -maximisereservices.com -maximiserindia.com -maximiserservices.com -maximiz4r.pro -maximizat-mp.pro -maximizat2k.pro -maximizat4n.pro -maximizator4k.pro -maximizatormp.pro -maximizelinks.com -maximizer-mega.pro -maximizer-ru.world -maximizer-top.pro -maximizer988vp.online -maximizk.pro -maximizzat4n.pro -maximloginov.net -maximum10review.com -maximumbahis70.com -maximumoutdoors.net -maximus-maynooth.com -maximyz4r.pro -maxinim.ru -maxiro1.pro -maxivern.com -maxiyoyo.com -maxkk.pro -maxlder.pro -maxmail.in -maxmail.info -maxmara.cd -maxmindeducation.com -maxmyprivacy.org -maxnetflix.host -maxnfl.com -maxon2.ga -maxp.pro -maxpanel.id -maxpedia.ro -maxprice.co -maxprof4ru.pro -maxrevues.info -maxrollspins.co -maxsize.online -maxstylehome.com -maxtommy-ra.ru -maxtoy3d.club -maxwowm.pro -maxxdeals.info -maxxdrv.ru -maxxeu.world -maxzhong.com -may-bk.org -may17kural.net -mayaaaa.cf -mayaaaa.ga -mayaaaa.gq -mayaaaa.ml -mayaaaa.tk -mayantrainmap.com -mayatv.org -mayba.live -maybaoholaodong.net -maybe.eu -maybe.host -maybeauty.be -maybeitworks.com -maybelike.com -maybeuploads.info -maycatherenhat.com -maycumbtib.cf -maycumbtib.ga -maycumbtib.ml -maycumbtib.tk -maydayconception.com -maydaytheconception.com -maydongphucdep.org -mayerman.ru -mayersmith.info -mayeshomeinvestors.com -mayflowerchristianschool.org -maygiuxecamtay.com -mayhannahs.info -mayhutbuiquangngai.com -mayimed.com -maykhumui-markel.xyz -maymetalfest.info -maymovo.com -mayoralo.press -mayorfl.xyz -mayorho.icu -mayorpoker.net -mayorvaughnspencer.com -mayorwago.xyz -mayposre.cf -mayposre.ga -mayposre.gq -mayposre.ml -mayposre.tk -maysipo.gq -maysunsaluki.com -maytree.ru -maz-gaminas.ru -maz-ot-psoriaza.ru -mazadaa.com -mazaeff.ru -mazaevka.ru -mazda-6.club -mazdasa.site -mb3boxers.com -mb69.cf -mb69.ga -mb69.gq -mb69.ml -mb69.tk -mb7y5hkrof.cf -mb7y5hkrof.ga -mb7y5hkrof.gq -mb7y5hkrof.ml -mb7y5hkrof.tk -mba-virgin.com -mbacolleges.info -mbadicole.info -mbahtekno.net -mbangilan.ga -mbap.ml -mbavu.live -mbccn.org -mbclub.org -mbconsult.online -mbdnsmail.mooo.com -mbe.kr -mbeki.ru -mbets.ru -mbetxapp1.com -mbetxapp3.com -mbetxapp4.com -mbf8ny.online -mbfc6ynhc0a.cf -mbfc6ynhc0a.ga -mbfc6ynhc0a.gq -mbfc6ynhc0a.ml -mbfc6ynhc0a.tk -mbitcasino1.com -mbknz.com -mblkml.monster -mblkml.xyz -mblo.us -mblsglobal.com -mbmraq.com -mboarhndhalfd1o.xyz -mboled.ml -mbox.re -mbpro2.xyz -mbroundhouseaquarium.org -mbstoto.biz -mbt-shoeshq.com -mbt01.cf -mbt01.ga -mbt01.gq -mbt01.ml -mbtech.id -mbtjpjp.com -mbtsalesnow.com -mbtshoeclearancesale.com -mbtshoes-buy.com -mbtshoes-z.com -mbtshoes32.com -mbtshoesbetter.com -mbtshoesclear.com -mbtshoesclearancehq.com -mbtshoesdepot.co.uk -mbtshoesfinder.com -mbtshoeslive.com -mbtshoesmallhq.com -mbtshoeson-deal.com -mbtshoesondeal.co.uk -mbtshoesonline-clearance.net -mbtshoespod.com -mbtshoessellbest.com -mbtshoeswarehouse.com -mbu42c.com -mbuhragagas.com -mbuluzigamereserve.com -mbutm4xjem.ga -mbuy-cheap.ru -mbvgook.com -mbvn.us -mbwedong.ru -mbx.cc -mbx80.com -mbzl.xyz -mc-17.com -mc-flowers.ru -mc-freedom.net -mc-ij2frasww-ettg.com -mc-s789-nuyyug.com -mc-sale.ru -mc28.club -mc32.club -mc33.club -mc36.club -mc43.club -mc45.club -mc8xbx5m65trpt3gs.ga -mc8xbx5m65trpt3gs.ml -mc8xbx5m65trpt3gs.tk -mcache.net -mcapsa.com -mcarnandgift.cf -mcarnandgift.ga -mcarnandgift.gq -mcarnandgift.ml -mcb1w.be -mcb64dfwtw.cf -mcb64dfwtw.ga -mcb64dfwtw.gq -mcb64dfwtw.ml -mcb64dfwtw.tk -mcbafrho.shop -mcbslqxtf.pl -mcc-gsd.org -mccarrol.best -mccee.org -mccklebox.com -mccluremail.bid -mccz.us -mcde.com -mcde1.com -mcdonald.cf -mcdonald.gq -mcdoudounefemmefr.com -mcelderry.eu -mcelderryrodiquez.eu -mcfashion.online -mcfire.online -mcginnissolutions.com -mcgratte.com -mcgvau.shop -mchurchapp.com -mchyper.com -mciek.com -mcjassenonlinenl.com -mcjazz.pl -mckaymail.bid -mckenze.com -mckenzieworldwide.net -mckinleymail.net -mckinneycaraccidentattorney.com -mckinneypersonalinjurylawyers.com -mckinseygovernmentandtheopposite.vision -mckjotaelectronics.com -mcklinkyblog.com -mclegends.ru -mclipha.com -mclub-test.com -mcm.dev -mcmbulgaria.info -mcmillansmith.com -mcmmobile.co.uk -mcmullenhomes.app -mcoff.pro -mcoi.us -mcoin-ex.net -mcoin-ex.org -mcoin-mmm.net -mcoinex.net -mcoll-original.com -mcout.online -mcpego.ru -mcplay.shop -mcpt.online -mcsa-examprep.com -mcsafedata.com -mcsoh.org -mctanalytics.net -mctcoding.com -mcthomaslaw.com -mctware.com -mcudj.us -mcvip.es -mcwanerd.com -mcya.info -mcyq.us -mcytaooo0099-0.com -mcyvkf6y7.pl -md-thinking.com -md0009.com -md2ngb.info -md5hashing.net -md7eh7bao.pl -mdaiac.org -mdaix.us -mdbr6a.host -mdd100.com -mddatabank.com -mddwgs.mil.pl -mdfoj0.info -mdfwg.site -mdfwg.space -mdfworldgroup.com -mdfworldgroup.fun -mdfworldgroup.net -mdfworldgroup.online -mdfworldgroup.site -mdfworldgroup.space -mdgmk.com -mdhalfpricedlisting.com -mdhalfpricedlistings.com -mdhalfpricelistings.com -mdhc.tk -mdissue.com -mdjwuw.com -mdk5yi.us -mdl90.xyz -mdoe.de -mdozdqrto.shop -mdpc.de -mdr188togel.net -mdregistry.com -mdriver.site -mdstakeaway.com -mdt.creo.site -mdtk.us -mdtqqtuszuqutqu.ru -mdu.edu.rs -mdut.us -mdwo.com -mdz39f-mail.xyz -mdzcl1.site -me-angel.net -me2.cuteboyo.com -me22anysnkeij.xyz -me2ikakkrn.xyz -me2view.com -meachi.site -meachlekorskicks.com -meadiamonds.com -meadowbrookwaunakee.net -meadowlarkonline.com -meadowsdelmarsd.com -meadowutilities.com -meadowviewchurch.org -meagainapp.com -meaistunac.cf -meaistunac.ga -meaistunac.ml -meaistunac.tk -mealaroc.cf -mealaroc.gq -mealaroc.ml -mealaroc.tk -mealcash.com -mealigraavertu.ru -mealprepware.com -mealswithmilton.ru -mealthys.com -meandoofn.ml -meangel.net -meaningmagazine.com -meanjames.com -meansfan.info -meansfor.xyz -meansforu.xyz -meansoute.email -meanspl.icu -meanstem.com -meanstreets405.com -meantein.com -meantinc.com -measurecolor.team -measuringthedream.com -measurmzjs.site -meat3000.com -meatpack.org -mebbo.net -mebel-atlas.com -mebel-online-vyksa.ru -mebel-v-rostove-na-donu.ru -mebel-v-serpuhove.ru -mebel-v-vykse.ru -mebelapex.ru -mebeldomoi.com -mebelenok63.ru -mebeleven.ru -mebelgrafika.ru -mebellstore.ru -mebelnovation.ru -mebelnu.info -mebelwest.ru -mebgrans.ru -meble-biurowe.com -meble-biurowe.eu -mebleikea.com.pl -meblevps24x.com -meboxmedia.us -mec755.com -mecamping.com -mecbuc.cf -mecbuc.ga -mecbuc.gq -mecbuc.ml -mecbuc.tk -meccafriends.com -mecg.us -mechanicalresumes.com -mechanization139xh.online -mechb2b.com -mechpromo.com -mechteda.ru -mecip.net -meckakorp.site -meconomic.ru -mecs.de -med-expertlife.ru -med-factory-classic.ru -med-knijka-ryazan.ru -med-note.ru -med.gd -medaccess.space -medaggregator.ru -medagregator.ru -medaille-precieuse.com -medal365.biz -medalists493ua.online -medan4d.live -medan4d.online -medan4d.top -medbat.ru -medbiding.online -medbiding.xyz -medcelitel.ru -medclick.org -medcyber.com -meddiabet.ru -mededy.xyz -medevacquote.com -medevacratings.com -medfaid.org -medfederation.ru -medflavor.com -medfordcentral.com -medfornorm.ru -medhelperssustav.icu -medhelperssustav.site -medhelperssustav.space -medhelperssustav.website -medhelperssustav.xyz -media-library.app -media-maghreb.com -media-one.group -media.motornation.buzz -media4ad.com -mediabox-iptv.com -mediacine.com -mediaho.net -mediahydra.ru -mediakavkaz.ru -mediakomp.ru -mediamaid.net -mediapad.online -mediapad.support -mediapulsetech.com -mediareserve.com -mediaroll.com -medias24.org -mediascene.com -mediaseo.de -mediaset.cf -mediaset.gq -mediasocializer.xyz -mediastudio-dz.com -mediastyaa.tk -mediatrack.ga -mediatui.com -mediavission.tk -mediawagon.net -mediawebhost.de -mediazone-ru.com -medib.site -medica2.com -medical-malpractice.us -medical-missions.org -medical315.xyz -medicalalert.app -medicalanchor.com -medicalbenefitexchange.com -medicalbillingprogramzone.xyz -medicalbrush.us -medicalbrushes.biz -medicalbrushes.us -medicalclinicnearme.org -medicalcontent.ru -medicaldetoxprograms.com -medicalmalpracticelawyersct.net -medicalmarketingcouncil.com -medicalschooly.com -medicalservice.su -medicalsoftwarehub.com -medicaltravel24.com -medicamentpharmacie.com -medicationforyou.info -medications-shop.com -medicc.app -mediciine.site -medicinepea.com -medicinewaters.org -medicineworldportal.net -medicinfo.icu -mediciquestresearchgroup.net -medicoach.link -medid.site -medif.site -medig.site -mediko.site -medil.site -medimedr.shop -medimom.com -medin-tec.biz -mediosbase.com -medirectwealth.net -medit.site -meditandocombah.com -meditation-techniques-for-happiness.com -meditationmuseumtci.com -meditsinskie-uslugi.online -meditsinskiekliniki.ru -medixbox.com -medjugorje-nel-cuore.com -medkabinet-uzi.ru -medknow.asia -medleafcbd.com -medlowmusic.com -medmaska.xyz -mednickagency.com -medod6m.pl -medotikmas.gq -medoviyspas.ru -medpravomi.xyz -medpsychfinderonline.com -medpsychfinderplus.com -medremservis.ru -medrol.website -meds-spravki.ru -medsestra-msk.ru -medsheet.com -medspauniversity.com -medstudent.ga -medtechweek.com -medtextile.ru -medtryck.nu -medvii.com -medw.site -medyagog.com -medyayayincilik.com -medyczne-odchudzanie.com -medyumhanimaga.com -medzdrav-online.ru -meekhost.com -meelbet.mobi -meellcm.ga -meelot55.com -meenakshisilks.com -meensdert.ga -meepsheep.eu -meesterlijkmoederschap.nl -meet-and-seed.com -meet-me.live -meet-now-here4.com -meet45us.com -meet908now.com -meetandf.com -meetandseed.com -meetfellini.com -meethornygirls.top -meetingsbyevent.com -meetlocalhorny.top -meetupmonkey.com -meetyourlove.com -meey.tech -meeyraro.cf -meeyraro.gq -meeyraro.ml -mefemen.cf -mefemen.ga -mefemen.gq -meg-ardis.xyz -meg0ch0pik.site -mega-answer.ru -mega-baby.ru -mega-base.xyz -mega-buy.vn -mega-classic-offer.site -mega-cleanvoice.ru -mega-date.ru -mega-dating-directory.com -mega-ekspo.ru -mega-kb.ru -mega-movies.ru -mega-pravila.ru -mega-proshop.ru -mega-rp.ru -mega-sell8.ru -mega-souvenir.ru -mega-tests.ru -mega-vopros.ru -mega-water.ru -mega-wiki.ru -mega-wow-retail.info -mega-zabota.ru -mega.zik.dj -mega303.bid -mega303.website -mega77.xyz -megaa.host -megabitcard.net -megabook.site -megacorp.work -megadiscountonline.com -megagrill.online -megagss.xyz -megaklassniki.net -megalearn.ru -megalovers.ru -megamacas.info -megamagz-super.site -megamail.cx -megamail.pl -megamailhost.com -meganmanzi.com -meganscott.xyz -megaoproc.site -megapara.online -megape.in -megapuppies.com -megarifa.xyz -megashop-funtop.space -megashop-trends.site -megashops-sales.fun -megaslots2016.ru -megastar.com -megatel.pw -megatir.ru -megatraffictoyourwebsite.info -megatraherhd.ru -megavigor.info -megawhat.group -megaxxi.com -megbaystore.ru -meghna-tandoori-takeaway.com -meglioquesto.info -megogonett.ru -megoism.net -megooplay.com -megrampedia.com -meha.site -mehalfpricedlisting.com -mehalfpricelistings.com -meharibache.fr -mehditech.info -mehmatali.tk -mehmetbilir.xyz -mehmetdassak.cf -mehmetdassak.tk -mehome.best -mehrad.site -mehrpoy.ir -mehusupermart.site -mehweb.com -meiatx.tokyo -meibaishu.com -meibokele.com -meibreathpa.cf -meibreathpa.ga -meibreathpa.gq -meibreathpa.ml -meieark.online -meieark.xyz -meiguosaver.com -meihuajun76.com -meil4me.pl -meiler.co.pl -meilleureexcuse.com -meimanbet.com -meimeimail.cf -meimeimail.gq -meimeimail.ml -meimeimail.tk -mein-panel-post.life -meineinkaufsladen.de -meingrosserkredit.club -meinspamschutz.de -meintick.com -meirapy.cf -meirapy.ga -meirapy.gq -meirapy.ml -meirapy.tk -meirhyther.ga -meirhyther.gq -meirhyther.ml -meirhyther.tk -meirmoses.com -meirodu.cf -meirodu.ga -meirodu.gq -meirodu.ml -meirodu.tk -meisteralltrades.com -meisterwerk-leben.com -meitianlu04.xyz -meitianlu06.xyz -meitianlu07.xyz -meitu.us -meituxiezhen.xyz -meja855.live -meji.site -mejjang.xyz -mejlnastopro.pl -mejlowy1.pl -mejlowy2.pl -mejlowy3.pl -mejlowy4.pl -mejlowy5.pl -mejlowy6.pl -mejlowy7.pl -mejlowy8.pl -mejores.best -mejoresabogadosenvalencia.com -mejoresgestorias.com -mejorestenis.com -mekacsmemy.sk -mekazar.com -mekellfood.net -meken.ru -mekongchurchtown.com -mekongheritage.net -mekongtransfer.com -mekongtravellinks.com -meksika-nedv.ru -melancholly.info -melanosityproducts.com -melapatas.space -melastdpwv.space -melatoninsideeffects.org -melbet-ok.ru -melbetts2.ru -melbournepte.com -melcow.com -melhor.ws -melhoramentos.net -melhoresuavidahoje.com -melhorvisao.online -meliece.com -melifestyle.ru -meliinse.ru -melindanash.com -meliput.com -melisarrs.xyz -melisingapore.com -melissamontalvo.com -melissasolema.com -melissastark.net -melite.shop -melitta-remont.ru -melliap.com -mellieswelding.com -melloskin.ru -melneyprep.cf -meloc.ru -melodicrock.net -melodized655aq.online -melodyservice.ru -melodysouvenir.com -meloengamesnetwork.online -meloman.in -melon-beyond.com -melresa.cf -melresa.ga -melresa.gq -melresa.ml -melroseparkapartments.com -melsyrup.com -meltedbrownies.com -meltmail.com -meltwaterdrive.cd -melzmail.co.uk -memailme.co.uk -membed.xyz -memberblog.com -memberdadu.com -memberdds.org -memberheality.ga -memberskp.icu -membransistemler.com -meme-ultrasonu.com -memecituenakganasli.cf -memecituenakganasli.ga -memecituenakganasli.gq -memecituenakganasli.ml -memecituenakganasli.tk -memeil.top -memem.uni.me -mememug.club -memequeen.club -memequeen.dev -memequeen.fun -memes.watch -memescribe.com -memeware.net -memgrid.net -memgrid.org -memkottawaprofilebacks.com -memleket-haber.club -memleket-haber.fun -memleket-haber.live -memleket-haber.website -memlekethaber.club -memlekethaber.fun -memlekethaber.live -memlekethaber.online -memlekethaber.site -memlekethaberonline.club -memlekettenevime.xyz -memo-news.com -memonetwork.net -memoney.site -memoovie.site -memoovo.com -memories.photography -memorizer76lw.online -memoryclub.hk -memorygalore.com -memotivas.com -memotyr.xyz -memp.net -memphisnailsalons.com -memphistaxgroup.com -memphistechnologyfoundation.net -memprof.com -memsg.site -memtv.ru -memunsettder.site -memuremeklilik.com -men-at-wok-takeaway.com -men-find-now.com -men-finder2.com -menacehvud.site -menacehvud.website -menanginstan.com -menanid.buzz -menara99.club -menara99.net -menbagsshop.life -menbehavinghandy.com -mendax-diamond.space -mendelxnbz.space -mendingme.net -mendoan.uu.gl -mendoanmail.club -mendycady.com -menealacola.com -menece.com -menflo.com -mengatur.com -mengchong.info -mengdanai.com -menggu720.com -menglalin.la -mengxiang-edu.com -mengzmz.com -menherbalenhancement.com -menhitects.com -menidsx.com -menjual.xyz -menkououtlet-france.com -menmosi.cf -menmosi.gq -meno4.xyz -menopozbelirtileri.com -menph.info -menqin.site -mensbreakfast.app -menscareshop.life -mensdivorcearizona.com -mensdivorcearkansas.com -mensdivorcecalifornia.com -mensdivorcedelaware.com -mensdivorceflorida.com -mensdivorceindiana.com -mensdivorceiowa.com -mensdivorcelaw.com -mensdivorcemaine.com -mensdivorcemichigan.com -mensdivorcemississippi.com -mensdivorcenebraska.com -mensdivorcesouthcarolina.com -mensdivorcesouthdakota.com -mensdivorcewyoming.com -menseage.cf -menseage.ga -menseage.gq -menseage.tk -mensesthe.site -mensglossary.com -mensguide.com -menshealth-canada.com -menshealth.science -menshealthjournal.online -menshoeswholesalestores.info -menskartel.ru -mensmoney.com -mensmusclefit.com -mensshop.futbol -menssubstanceabusetreatment.com -menstshirt.xyz -mentalevolution.club -mentalhealthdepressiondoctor.com -mentalhealthdepressiontherapist.com -mentalhealththerapyprograms.com -mentalhealthtreatmentscenter.com -mentalism.site -mentdama.gq -mentdama.ml -mentdama.tk -mentechtma.website -menteripoker.club -mentesquevendem.com -mentnetla.cf -mentnetla.ga -mentnetla.gq -mentnetla.ml -mentnetla.tk -mentoggrup.tk -mentoredbymillionaires.org -mentorphrase.com -mentorsbureau.org -menu-go.com -menurehberi.com -menuyul.online -meokhuyenmai.com -meooovspjv.pl -meow-server.space -mepf1zygtuxz7t4.cf -mepf1zygtuxz7t4.ga -mepf1zygtuxz7t4.gq -mepf1zygtuxz7t4.ml -mepf1zygtuxz7t4.tk -mephilosophy.ru -mephistore.co -mepost.pw -meprice.co -meprorlai.com -mepubnai.cf -mepubnai.ga -mepubnai.gq -mepubnai.ml -mepw6u.site -meqa1f.xyz -mera.money -meraciousmotyxskin.com -merakigrown.com -merameri.shop -merantikk.cf -merantikk.ga -merantikk.gq -merantikk.ml -merantikk.tk -mercadiaprojects.com -mercadodeactivos.com -mercadoofertas.ml -mercedes.co.id -mercerbrokerage.net -mercevpn.xyz -merchantpalace.store -merched.dev -merchize.wiki -merchpay3ds.ru -merchstore.store -mercurecasino10.com -mercurecasino3.com -mercurecasino5.com -mercurecasino9.com -mercurials2013.com -mercurialshoesus.com -mercury-global-pro.ru -mercury-globalmir.ru -mercurybetsuper6.com -mercuryhub.com -mercuryinsutance.com -mercy.cf -mercyea.icu -mercygirl.com -merd6i.xyz -merda.cf -merda.ga -merda.gq -merda.ml -meredithmanor.info -merexaga.xyz -merfwotoer.com -merfwotoertest.com -mergaab.me -mergame.info -merge.fail -merhabalarsx32409.tk -merhabalarsx39968.ml -merhabalarsx55996.ga -merhabalarsx55996.ml -merhabalarsx55996.tk -merhabalarsx65295.ga -merhabalarsx94707.ga -meriam.edu -meridensoccerclub.com -meridianessentials.com -meridiaonlinesale.net -meridyendernegi.com -merijn.app -merimera.shop -merintasa.best -merisaloer.club -merisaza.club -meritbet57.com -meritbl.xyz -meritbonus.info -meritcasinos.biz -meritcasinos.ist -meritcasinos.kim -meritcasinos.net -meritjackpods.com -meritp10.best -meritpummelpence.site -meritroyal.online -meritroyalbet.info -meritroyalbet.online -meritroyalchocolatepalace.net -meritroyalgiris.online -meritslot60.com -meritsport.com -meritum.dev -merituminteractive.net -meritwast.recipes -meritwaste.recipes -merizadcw.club -merizateax.club -merkez34.com -merkezefendisinav.xyz -merlemckinnellmail.com -merliaz.xyz -merlincase.com -merlismt2.org -mermaid-construction.com -mermail.info -mermisstclair.com -meroba.cf -meroba.ga -meroba.gq -meroba.ml -merpare.ml -merpare.tk -merrellshoesale.com -merrilgentle.com -merrittnils.ga -merry.pink -merrydresses.com -merrydresses.net -merryflower.net -merrygoround.com -merrylanguidperch.site -merseyvend.biz -mersinaft.ga -mersincast.com -mersincilekroom.xyz -mersinli.info -mersinlicigercimucahid.com -mersinorganize.com -mersinrentals.online -mersinrentals.xyz -mertiansaacco21-met.com -mertolinaperoti.xyz -merveokcuoglu.com -merveokcuoglu.net -merylmahouse.co -merysee.space -mesaamado.com -mesama.cf -mesama.ga -mesama.gq -mesama.ml -mesama.tk -mesavegas.com -mesbagall.ru -mesbeci.cf -mesbeci.ga -mesbeci.ml -mesbeci.tk -mesberlins.info -mescevo.cf -mescevo.ga -mescevo.gq -mescevo.tk -mesdemarchesadministratives.com -mesedidu.site -mesef.fun -mesili.ga -mesili.gq -mesinkoin.org -mesmerized883ib.online -mesmi.site -mesoindonesia.com -mesoskin.ru -mesotheliomaasbestoshub.xyz -mesotheliomaattorneyvirginia.com -mesotheliomalawyervirginia.com -mesotheliomasrates.ml -mesotheliomatrustfund.net -mesotherapyclinicturkey.com -mesquiteaccidentattorney.com -mesquiteinjurylawyers.com -mesquitetexaschiropractor.com -mesradsfi.cf -mesradsfi.ml -mesrt.online -messaeg.gq -messagdo.com -message-station.com -messagea.gq -messagebeamer.de -messagecenter.com -messageconnect.com -messageden.com -messageden.net -messageme.ga -messageovations.com -messageproof.gq -messageproof.ml -messager.cf -messagesafe.co -messagesafe.io -messagesafe.ninja -messagesenff.com -messagetop.site -messaging.page -messagugi.com -messengermarketingstrategist.com -messengers.email -messiahmbc.com -messihalocal.com -messing.life -messsalons.info -messwiththebestdielikethe.rest -messymeek.com -mestbet.net -mestechnik.de -mestgersta.cf -mestgersta.ga -mestgersta.gq -mestgersta.ml -mestgersta.tk -met-coin.com -met-sex.com -met5fercj18.cf -met5fercj18.ga -met5fercj18.gq -met5fercj18.ml -met5fercj18.tk -meta-bet.ru -meta-gas-in.ru -metabolicbalance.sk -metaboliccookingpdf.com -metabox.info -metacrunch.com -metahero.net -metalbet.ru -metalfestivalseurope.com -metalhalidegrowlights.com -metall-tradenn.ru -metalliccut.com -metallqlez.space -metallymc.shop -metalmania.cd -metalrika.club -metalstroj.sk -metameto.shop -metamodel.dev -metamorphosisproducts.com -metamusic.blog -metaprice.co -metareview.ru -metashooting.com -metastudio.net -metatader4.com -metatrader5.blog -metavivor.net -meteormine.com -meteothailande.com -metesandbounds.co -metgw.live -methemoglobin790kx.online -metheuspoet.com -metin1.pl -metkan-akmola.ru -metkomsplav.ru -metlif3.com -metocape.email -metodoacta.com -metodoremoto.site -metometa.shop -metoosummit.com -metrika-hd.ru -metro-grill-carlow.com -metroautoexchange.com -metrobtc.com -metroclone.com -metroeu.host -metroflexwf.com -metrofoodtours.com -metropoligon.club -metroset.net -metroweekly.net -metshirt.xyz -mettamarketingsolutions.com -metuinsaat.com -metuwar.tk -metvauproph.cf -metvauproph.ga -metvauproph.gq -metvauproph.ml -metvauproph.tk -metzdorfgroup.net -meu.plus -meubelocorpo.com -meubusinessconexao.com -meucoach.page -meulilis.cf -meulilis.ga -meulilis.gq -meulilis.ml -meulilis.tk -meumapa.com -meumestredigital.store -mevall.com -meve8fekkes.xyz -meveatan.cf -meveatan.ga -meveatan.gq -meveatan.ml -mevityny.tk -mevj.de -mevoti.xyz -mevoto.xyz -mevoty.xyz -mew88.com -mewinsni.cf -mewinsni.ga -mewinsni.ml -mewinsni.tk -mewprulu.shop -mex.broker -mexaqy.info -mexcool.com -mexh.us -mexicanalia.com -mexicanonlinepharmacyhq.com -mexico500.com -mexicolindo.com.mx -mexicomail.com -mexicons.com -mexylocu.website -meybet52.com -meybet57.com -meyernajem.com -meyfugo.cf -meyfugo.ga -meyfugo.gq -meyfugo.ml -meyfugo.tk -meymey.website -meyvaagacim.com -meyveli.site -meyveyetistirme.com -mezartemizligi.xyz -mezattesbih2.com -mezcalmalacara.com -mezimages.net -mezime.xyz -mezzaninevloeren.com -mf8a5b.us -mfano.cf -mfano.ga -mfano.gq -mfano.tk -mfautxy57ntizy9.xyz -mfayp.site -mfbb8.com -mfbh.cf -mfbog1.site -mfbunkoj.online -mfbx.org -mfdn.ru -mfghrtdf5bgfhj7hh.tk -mfhelicopters.com -mfil4v88vc1e.cf -mfil4v88vc1e.ga -mfil4v88vc1e.gq -mfil4v88vc1e.ml -mfil4v88vc1e.tk -mflfdgsa.shop -mflinks.com -mfsa.info -mfsa.ru -mft1199240.xyz -mft3019470.xyz -mft5593946.xyz -mft7412888.com -mft9534720.xyz -mft9542713.xyz -mft9545932.xyz -mft9552245.xyz -mft9574808.xyz -mft9576391.xyz -mft9603894.xyz -mft9630791.xyz -mft9641640.xyz -mft9648484.xyz -mft9714057.xyz -mft9714425.xyz -mft9714650.xyz -mft9721847.xyz -mft9725798.xyz -mft9736417.xyz -mft9755259.xyz -mft9757810.xyz -mft9759510.xyz -mft9785411.xyz -mft9797712.xyz -mft9820886.xyz -mft9820926.xyz -mft9850605.xyz -mft9857521.xyz -mft9864784.xyz -mft9867978.xyz -mft9876343.xyz -mft9883173.xyz -mft9909394.xyz -mft9911897.xyz -mft9920868.xyz -mfuil.us -mfvn.us -mfxs.us -mfzwhd.us -mg-rover.cf -mg-rover.ga -mg-rover.gq -mg-rover.ml -mg-rover.tk -mg2222.com -mg520520.com -mgabratzboys.info -mgangabet.com -mgapoker88.org -mgazenonli-man.space -mgb-iris-blue.online -mgclimat.ru -mgdchina.com -mgeladze.ru -mgfstripe.com -mgm005.com -mgm920.com -mgm940.com -mgm999lao.net -mgmawa.org -mgmblog.com -mgmdomino.org -mgme.xyz -mgnt.link -mgoiv.site -mgt.miansheng.men -mgt4rwssl.com -mgtu-volley.ru -mgtwzp.site -mgve.us -mgwear.ru -mgwned.com -mgzineforu-ptrs.space -mgzvqe.icu -mgzzy.com -mh-pt09.com -mh-sale.online -mh3fypksyifllpfdo.cf -mh3fypksyifllpfdo.ga -mh3fypksyifllpfdo.gq -mh3fypksyifllpfdo.ml -mh3fypksyifllpfdo.tk -mhahk.site -mhairitaylor.com -mhcnt.icu -mhcolimpia.ru -mhdbilling.com -mhdpower.me -mhdsl.cf -mhdsl.ddns.net -mhdsl.dynamic-dns.net -mhdsl.ga -mhdsl.gq -mhdsl.ml -mhdsl.tk -mhere.info -mhimail.com -mhirhdon.shop -mhkttmknx4fxts8.xyz -mhmht.com -mhmmmkumen.cf -mhmmmkumen.ga -mhmmmkumen.gq -mhmmmkumen.ml -mhmotoren.nl -mhnb27.com -mhnb4.com -mhnb81.com -mhnb84.com -mhog.shop -mhorhet.ru -mhotel.us -mhov.us -mhqdk9.us -mhqxl.us -mhs78.space -mhschool.info -mhtqq.icu -mhwolf.net -mhxcpxbna.shop -mhzayt.com -mhzayt.online -mi-fucker-ss.ru -mi-mails.com -mi-turisto.ru -mi.meon.be -mi.orgz.in -mi1-gazil.ru -mia6ben90uriobp.cf -mia6ben90uriobp.ga -mia6ben90uriobp.gq -mia6ben90uriobp.ml -mia6ben90uriobp.tk -miaferrari.com -miaflorido.com -miakhalifa.mobi -mial.cf -mial.com.creou.dev -mial.tk -mialbox.info -miami-invest.ru -miamicannaboys.com -miamicolo.com -miamifalls.info -miamifldoubledeckertours.com -miamihotel.space -miamihousewife.org -miamimotorcycleaccidentattorneys.com -miamiquote.com -miamislime.com -miamitourssightseeing.com -miamiwrongfuldeathattorneys.com -miamizonafranca.com -miamovies.com -miamovies.net -mianfeidaima.com -miao-youxi.xyz -miaobidu.com -miaohaha.com -miaomiewang.com -miaowang976.com -miasionfed.com -miauj.com -miaw.guru -mibaopay.com -mibet.net -mibetvn.com -mibm.email -mibomart.site -mibrkipr.xyz -mic3eggekteqil8.cf -mic3eggekteqil8.ga -mic3eggekteqil8.gq -mic3eggekteqil8.ml -mic3eggekteqil8.tk -micalmo.com -micalmo.net -micalmo.org -micasapropia.com -micetigri.com -michaelalamillo.com -michaelbanksdds.com -michaelbberger.com -michaelbea.com -michaelbollhoefer.com -michaeldurante.com -michaelgballard.com -michaelgoneill.com -michaeljeffreyjones.com -michaelkimball.info -michaelkors4ssalestore.com -michaelkorsborsa.it -michaelkorshandbags-uk.info -michaelkorshandbagswhole-sale.biz -michaelkorsoutletclearances.us -michaelkorsoutletstoresinc.com -michaelkorss.com -michaelkorstote.org -michaellees.net -michaelr.org -michaelrader.biz -michaelstenta.net -michaelstenta.org -michaelvelardelaw.net -michaelvelardelaw.org -michaelwheaton.us -michaelwilliamtwitty.com -michaelwinters.info -michaleway.buzz -michalique.com -michegen.xyz -michelangelomedia.com -michelinmape.info -michelinpilotsupersport.com -michellejondall.com -michellelagasse.com -michellemjondall.com -michianahotairballoonrides.com -michie-sushi-sandyford.com -michigan-nedv.ru -michigan-rv-sales.com -michigan-web-design.com -michiganadvocates.org -michigandiscdogclub.com -michiganmobilemedia.com -michiganmontecarloclub.com -michiganpepsi.com -michiganprospect.org -michigansmartgrowth.org -michigansmok.com -michiganswingdance.com -michingmalicho.com -michingmalicho.org -micicubereptvoi.com -mickey-discount.info -micksbignightout.info -micleber.cf -micleber.ga -micleber.gq -micleber.ml -micleber.tk -micll.com -micll.net -miclonegroup.com -micmeore.cf -micmeore.gq -micmeore.ml -microcenter.io -microfibers.info -microhealthworld.com -microlium.xyz -micromentors.org -micromobix.com -micronti.xyz -micropaleontologies453wm.online -micropaleontology867pf.online -micropanier.com -micros-solutions.live -microsaledirect.com -microsofl.website -microsoftarticles.info -microsoftopedia.com -microsoftt.biz -microsotft.org -microspeed.life -microwavetechnology.xyz -microzaempromo.ru -micsocks.net -mid6mwm.pc.pl -midaimupfhj.email -midas-panel.site -midascmail.com -midcoastcustoms.com -midcoastcustoms.net -midcoastmowerandsaw.com -midcoastsolutions.com -midcoastsolutions.net -midcontflyway.com -middaybublo.email -middleeasthealthcareportal.com -middlegacna.com -middletownpolice.org -mideastpower.com -midebalonu.org -midekelepcesi.org -midemidd.shop -midesafio.com -mideuda.com -midfield.media -midfloridaa.com -midfloridda.com -midhy.me -midlandquote.com -midlarh.space -midlertidig.com -midlertidig.net -midlertidig.org -midnightsketches.org -midoggshop.com -midtoco.cf -midtoco.ga -midtoco.gq -midtoco.tk -midtownatlanta.us -midtownmadness.org -midtzatfo.ga -midtzatfo.gq -midtzatfo.tk -midway-travel.xyz -miegrg.ga -miegrg.ml -miehejus.ga -miehejus.gq -miehejus.ml -miehejus.tk -miend.live -mienphi.asia -mienphiphanmem.com -mieqas.com -mierdamail.com -miesedap.pw -mietpreisbremse.works -miewest.com -miexpediente.com -miexperienciaeasy.com -mig-filltide.rest -mig-zaym.ru -might.sale -mightcubed.com -mightcubed.org -mightuvi.cf -mightuvi.ga -mightuvi.ml -mighty.technivant.net -migliorisitidiincontri.com -migloveusa.com -migmail.net -migmail.pl -migracpravo.xyz -migraene-forum.info -migranthealthworkers.org.uk -migrate.cash -migrate.codes -migro.co.uk -migserver2.gq -migserver2.ml -miguecunet.xyz -migumail.com -mihalfpricedlisting.com -mihang.org -mihanmail.ir -mihealthpx.com -mihep.com -mihhaboe.us -mihogarsaludable.net -miim.org -miissionfed.com -miisxw.com -mijacknews.cf -mijacknews.gq -mijacknews.tk -mijnbestanden.shop -mijnfileserver.online -mijnhva.nl -mijnroosters.online -mijnzoekmaatje.online -mijumail.com -mikaela.kaylin.webmailious.top -mikaelcosmeceuticals.com -mikaelskin.com -mikanda.cd -mikazi.club -mikcasinoboy.ru -mike.designterrarium.de -mikebehar2020.com -mikebehar2020.org -mikeblogmanager.info -mikecampbellracing.com -mikeformat.org -mikefranken.org -mikegilliamtv.com -mikejacobson.org -mikekalombo.com -mikelaming.biz -mikes.cd -mikescomputersga.net -mikessupermarket.com -mikesweb6.com -mikidolenz.com -mikolastro.ml -mikos1.site -mikrotik.website -miksa.store -mikuwiki.com -mila-levchyk.info -miladamalich.ru -miladexchange.com -milaghouse.co -milaizhan.club -milandwi.cf -milankashop.ru -milanotransex.com -milasoftware.xyz -milaspc.com -milavitsaromania.ro -milbox.info -milcepoun.cf -milcepoun.ga -milcepoun.gq -milcepoun.ml -milcepoun.tk -milcvp.shop -milde.software -mildin.org.ua -mildunity.us -milesroger.com -miletance.com -mileyandpat.com -milfaces.com -miliancis.net -milimetrikproje.xyz -milionariosdobitcoin.com -milionkart.pl -militarizes572bb.online -militarybrush.net -militarybrushes.us -militaryencyclopedia.com -militaryinfo.com -milittis.com -miljaye.ga -milk.gage.ga -milkdrooperver.ru -milke.ru -milkteam.ru -milkyplasticperky.site -millband.com -millelacsanglers.com -milleniatakeaway.com -millennialistbook.com -millennialswedding.club -millennium-marines.ru -millertavernbay.com -millertavernyonge.com -millervet.info -milliebarry.buzz -milliemaidcleaning.com -millimailer2.com -millimentor.com -million-match.com -millionahair.com -millionairesocietyfree.com -millionairesweetheart.com -milliondollarchica.com -millionertut.ru -millionstars1.com -millironfarm.online -millkvoyage.host -millnevi.cf -millnevi.gq -millnevi.ml -millnevi.tk -millstonepenyffordd.com -millstreetbarandtable.com -millvalleyflowerdelivery.com -millwoodbuildingsupply.com -millz.ru -miloandpi.com -milohe.info -milosbet100.com -milosbet1000.com -milosbet68.com -milouikn2.site -milpitas.net -milsaborespuertollano.com -miltonfava.com -miluscasno.best -milwaukeedustless.net -milwaukeedustless.org -milwaukeedustless.us -milwaukeedustlessbrush.us -milwaukeepolo.com -milwaukeequote.com -milwaukeetools.tj -milwaukeewieldercare.com -mimail.info -mimarifuarlar.com -mimarinos.info -mimcasinocrowd.ru -mimedpravo.xyz -mimemoi.online -mimemorre.site -mimi-go.com -mimicooo.com -mimijkng.xyz -miminko.net -miminpolontong.bar -mimispantry.org -mimiuuu.com -mimko.com -mimmospizzacubellescubelles.com -mimo.agency -mimo.click -mimo.digital -mimomail.info -mimpaharpur.cf -mimpaharpur.ga -mimpaharpur.gq -mimpaharpur.ml -mimpaharpur.tk -mimpi99.com -min-group.club -min.burningfish.net -min.edu.gov -minadentist.com -minamail.info -minamitoyama.info -minatuhitpr.cd -minbise.cf -minbise.ga -minbise.gq -minbise.ml -minbise.tk -mindandbodydaily.com -mindbodylab.org -mindbodytraining.org -mindcloud.app -mindfase.tk -mindfery.tk -mindforce.me -mindfulhealingcourse.com -mindfulnessinlaw.org -mindfulpainreliefcourse.com -mindgeekopenhouse.com -mindihouse.co -mindmail.ga -mindmatho.ga -mindmatho.gq -mindmatho.ml -mindmatho.tk -mindmercs.com -mindmyonlinebiz.com -mindpowerup.com -mindrise.info -minds.exchange -mindsetup.us -mindthe.biz -mindyobusiness.com -mindyrose.online -mine-epic.ru -mine-web-application-dev.club -mineadsaiinstalls.club -mineblue.ru -minecraft-dungeons.ru -minecraft-keys.com -minecraft-survival-servers.com -minecraftaccountfree.com -minecraftcolorcodes.com -minecraftinfo.ru -minecraftproject.ru -minecraftrabbithole.com -minecraftul.ru -minedon.online -minegiftcode.pl -minelk-gazik.ru -minephysics.com -mineprinter.us -mineralize.best -mineralka1.cf -mineralka1.ga -mineralka1.gq -mineralka1.ml -mineralka1.tk -mineralnie.com.pl -mineralshealth.com -mineralwnx.com -minercontrolpanel.com -minergate.download -minerhouse.ru -minerpanel.com -minerscamp.org -minershe.us -minerspl.press -minerworth.email -minesox.info -minetopiaworld.online -minex-coin.com -minfullcash.com -mingbocor.cf -mingbocor.ga -mingbocor.ml -mingbocor.tk -minggardentakeaway.com -mingnickta.cf -mingnickta.gq -mingnickta.tk -mingshengylc.com -minhazfb.cf -minhazfb.ga -minhazfb.ml -minhazfb.tk -mini-kraanhuren.com -mini-mail.net -mini-quadcopter.ru -mini-traktor56.ru -mini.pixymix.com -miniaturebrush.net -miniaturebrush.us -miniaturebrushes.com -minibilgi.net -minibubo.com -minicamera-dv.info -minicasiers.com -minicooperspeed.com -minifieur.com -minikokul.net -minikuchen.info -minimail.club -minimal.homes -minime.xyz -minimiseapp.com -minimized409gz.online -minimized606ok.online -minimized705mz.online -minimizer343rl.online -minimoifactory.info -minimoifactory.org -minimotorsscooter.com -miningcrushing.com -miniofficeoutlets.com -minionsofgygax.com -minioteli-spb.ru -miniotls.gr -minipaydayloansuk.co.uk -minishop.site -minisitesprofit.club -miniskirtswholesalestores.info -ministeredestransportsvc-gouv.cd -ministry-of-silly-walks.de -ministrychurch.org -ministryofclarity.com -ministryofcyber.net -ministryofcyber.space -ministryofcyber.study -ministryofcybertech.com -ministryofcybertechnology.com -ministryofinnovation.ru -ministrysites.host -ministrysupport.app -minitrailersusa.com -miniwowo.com -minkh.ru -minkuai38.icu -minkyway.online -minletoy.com -minnacarter.com -minneapolis-stucco.com -minnesota-fishing.com -minnesotahomeonthelake.com -minnesotahomesonthelake.com -minnesotaopera.org -minnesotapheasants.com -minnesotaquote.com -minnesotavikings-jerseys.us -minnesotawalleyeguide.com -minnesotawaterfowlers.com -mino855.com -mino855.social -minoplast.cd -minoreatingdisordertreatment.com -minrdergo.com -minscamep.cf -minscamep.ga -minscamep.gq -minscamep.ml -minscamep.tk -minskimedia.com -minskysoft.ru -minsmail.com -mint-space.info -mintadomaindong.cf -mintadomaindong.ga -mintadomaindong.gq -mintadomaindong.ml -mintadomaindong.tk -mintcbg.com -mintconditionin.ga -mintemail.cf -mintemail.com -mintemail.ga -mintemail.gq -mintemail.ml -mintemail.tk -mintsbolts.top -mintsportjop.ru -mintstresms.xyz -minumeroweb.com -minuskredit.xyz -minustaliya.ru -minutasim.ml -minutemusic.monster -minutesolar.com -minutious.site -minxstar.fun -minyakbuasir.com -minyon.info -minyoracle.ru -minzdravros.ru -miochas.info -miodonski.ch -miodowadolina.com -miodymanuka.com -miolayfran.cf -miolayfran.gq -miolayfran.ml -miolayfran.tk -mionavi2012.info -mionetwork.email -mioofsq.buzz -miopaaswod.jino.ru -mior.in -miototo.com -miototo.net -miowiki.com -mip89.com -miplan.info -miplawyers.com -mipodon.ga -miptvdz.com -mir-ori.ru -mir-sveta52.ru -mir-venka.ru -mirabellebra.com -mirabelleslim.com -mirablu.shop -miraciousmoty.com -miraclediet1.com -miraclegarciniareview.com -miraclepc.ru -miradorveleia.xyz -mirai.re -miraigames.net -miraintelligence.com -miramulet.ru -miranda1121.club -mirautoportal.ru -mirbaikala03.ru -mirbeauty.ru -mirchi-malahide.com -mirchifun.tech -mirelt.su -mirenaclaimevaluation.com -miresweb.com -miretig.cf -miretig.ga -miretig.gq -miretig.ml -miretig.tk -mirhatrama.site -miriarab.ru -mirider.cf -mirider.ga -mirider.gq -mirider.ml -mirider.tk -mirimbaklava.com -mirimus.org -mirinfomed.ru -mirkarkas.ru -mirker-mag64.host -mirkvadro.ru -mirmirchi.site -mirnes.store -mirnichtsdirnichts.love -miromario.ru -mironovskaya.ru -mirori.ru -mirpiknika.ru -mirproektorov.ru -mirror364.ru -mirror37.ru -mirror49.ru -mirror53.ru -mirror86.ru -mirror89.ru -mirrorrr.asia -mirrorsstorms.top -mirrror.asia -mirskazki.info -mirsoglashenie.xyz -mirstyle.ru -mirtazapine.life -mirteka.ru -mirtopseo.ru -mirturistic.ru -mirzaindian.com -mirzamail.app -misakablog.xyz -misbondis.com -miscbrunei.net -miscil.best -miscritscheats.info -misdemeanors337dr.online -misdivisas.app -miselgulsuyu.com -miseoutlet.site -miseryloves.co -misgotten.best -misha-rosestoy.ru -misha-roza.ru -mishawakadentists.com -mishel-hotel.ru -mishka-dacha.ru -mishka-iz-roz-official.ru -mishka-iz-roz-v-moscow.ru -mishki-mimi.ru -mishkirose.ru -mishooklaw.com -mishov.org -mishovforex.net -mishreid.net -mishti.shop -misiakmasonry.com -misiry.info -misitionline.com -misjudgments473zr.online -misol.dev -misonet.shop -misotorrent2.com -misous.xyz -miss-cosmo.ru -missalkaram.com -misseat.ru -missfacts.com -missfitenergy.com -missglobaleurasia.com -misshausa.com -missi.fun -missing-e.com -missingbeacon.com -missiobfed.com -missionarytoolkit.com -missionfedd.com -missionforge.org -missions1040.net -missionvisi.xyz -missionwildbird.net -mississaugafiberglasspools.com -mississaugaseo.com -missjones.info -misslana.ru -misslawyers.com -missniuniu.com -missoulajewelrybuyer.com -missouricityapartments.com -missouriquote.com -misspentsonicyouth.com -misspomps.info -missride.info -missright.co.uk -misssiliconvalley.org -misstennesseeus.com -missthegame.com -missyhg.com -mistatera.email -mistatera.international -mistaterra.com -misteacher.com -misteioslybanand.fun -mister-puzzle.ru -mister-stak.ru -misterbeads.ru -misterbearsky.com -mistercash.cd -mistercursos.org -misterhoki.online -misteriojuvenil.info -mistermelodyshopchik.host -mistermelodyshopchik.online -mistermelodyshopchik.site -mistermelodyshopchik.space -mistermelodyshopchik.website -mistermosquitos.com -misterpinball.de -misterstiff.com -mistimail.com -mistindu.xyz -mistlink.us -mistressnatasha.net -mistridai.com -mistyle.ru -misvetun.cf -misvetun.ga -misvetun.gq -misvetun.ml -misvetun.tk -misworkbar.cf -misworkbar.ga -misworkbar.gq -misworkbar.ml -misworkbar.tk -mitchbroderick.com -mitcoat.com -mitd.org -mite.tk -miterwnrsh.ru -mithilamart.net -mithiten.com -mithrabvtd.space -mitid.site -mitie.site -mitir.site -mitix.fun -mitiz.site -mitmona.com -mitobet.com -mitom.online -mitori.org -mitracore.net -mitrasbo.com -mitretek.info -mitssupppsych.cf -mitssupppsych.ga -mitssupppsych.gq -mitssupppsych.ml -mitssupppsych.tk -mitsubishi-asx.cf -mitsubishi-asx.ga -mitsubishi-asx.gq -mitsubishi-asx.ml -mitsubishi-asx.tk -mitsubishi-pajero.cf -mitsubishi-pajero.ga -mitsubishi-pajero.gq -mitsubishi-pajero.ml -mitsubishi-pajero.tk -mitsubishi2.cf -mitsubishi2.ga -mitsubishi2.gq -mitsubishi2.ml -mitsubishi2.tk -mittidikhushboo.com -mittrykte.se -mituvn.com -miucce.com -miucce.online -miucline.com -miumiubagjp.com -miumiubags.site -miumiubagsjp.com -miumiuhandbagsjp.com -miumiushopjp.com -miur.cf -miur.ga -miur.gq -miur.ml -miur.tk -miurin.online -mivfilme.online -mivyky.info -miwhibi.ga -miwhibi.ml -miwhibi.tk -miwtechnology.com -mix-90.com -mix-good.com -mix-mail.org -mix-spice-takeaway.com -mix90.black -mix90.blue -mixalo.com -mixbeads.ru -mixbiki.cf -mixbiki.ga -mixbiki.ml -mixbiki.tk -mixbox.pl -mixchains.win -mixcloud-downloader.club -mixcomps.com -mixcoupons.com -mixely.com -mixetf.com -mixflosay.org.ua -mixgame110.online -mixi.gq -mixmailer.info -mixoxo.com -mixspicetakeaway.com -mixstarbet.com -mixtrewards.com -mixtureqg.com -mizapol.net -mizgold.net -mizohillsa.info -mizugiq2efhd.cf -mizugiq2efhd.ga -mizugiq2efhd.gq -mizugiq2efhd.ml -mizugiq2efhd.tk -mjasodel.ru -mjbach.com -mjelearningcenter.com -mjelthvv.shop -mjfitness.com -mjgl62.us -mjhqz.com -mjhtr43.xyz -mji.ro -mjifmd.site -mjjbbs.com -mjjdns.com -mjjhub.com -mjjpy.com -mjjqgbfgzqup.info -mjlf.space -mjolkdailies.com -mjpxvm.com -mjsantos.org -mjsuxsm.xyz -mjtsupport.com -mjuifg5878xcbvg.ga -mjukglass.nu -mjusq5.us -mjut.ml -mjxfghdfe54bnf.cf -mk.netmail.tk -mk24.at -mk2u.eu -mk9fad.us -mkathleen.com -mkb-phone.com -mkbmax.biz -mkbtelefoonservice.com -mkbw3iv5vqreks2r.ga -mkbw3iv5vqreks2r.ml -mkbw3iv5vqreks2r.tk -mkcmqs.fun -mkcxbx2f1te6nta.xyz -mkdigehg.shop -mkdshhdtry546bn.ga -mkfactoryshops.com -mkfmqp.fun -mkfmrq.fun -mkgmss.fun -mkh-agri.com -mkiauz.site -mkin.mobi -mkinmotion.com -mkiyz.com -mkjmhy.fun -mkjmls.fun -mkjmwx.fun -mkk-finsoyuznik.ru -mkk-inkubator.ru -mkk83.top -mkk84.top -mkljyurffdg987.cf -mkljyurffdg987.ga -mkljyurffdg987.gq -mkljyurffdg987.ml -mkljyurffdg987.tk -mklmbx.fun -mklmqf.fun -mklyy.live -mkm24.de -mkmmdm.fun -mkmove.tk -mknk.tk -mknmwc.fun -mko.kr -mkosa.com -mkpfilm.com -mkpmbj.fun -mkpmqx.fun -mkpodoloji.online -mkrecondition.ru -mkshake.tk -mksmhz.fun -mkstodboende.nu -mktorrent.com -mkwmjj.fun -mkwojj.us -mkymnm.fun -mkypbb.us -mkzmkt.fun -mkzmtm.fun -mkzmzg.fun -ml244.site -ml8.ca -ml98q.buzz -mla14.site -mlbjerseys-shop.us -mldl3rt.pl -mlessa.com -mlhelp247.com -mlhweb.com -mlidov.ru -mlinck.com -mlj101.com -mlkancelaria.com.pl -mlkchamber.org -mlldh.site -mlleczkaweb.pl -mllimousine.com -mllpru.us -mlmonlineformula.com -mlmtechnology.com -mlmtips.org -mlnd8834.cf -mlnd8834.ga -mlnd8834.gq -mlnd8834.ml -mlnd8834.tk -mlny.icu -mlo.kr -mlo60n.online -mlodyziemniak.katowice.pl -mlogicali.com -mlojjb.us -mlolmuyor.cf -mlolmuyor.ga -mlolmuyor.ml -mlolmuyor.tk -mlpxlb.us -mlq6wylqe3.cf -mlq6wylqe3.ga -mlq6wylqe3.gq -mlq6wylqe3.ml -mlq6wylqe3.tk -mlqsz.xyz -mlsix.ovh -mlsix.xyz -mlsmodels.com -mltkfqoee.shop -mlvtecalumni.com -mlx.ooo -mm.my -mm0805.xyz -mm18269.com -mm378.com -mm5.se -mm88bar.com -mm88link.org -mm88sport.net -mm88steam.com -mm904.xyz -mm9827.com -mmach.ru -mmaignite.com -mmail.com -mmail.igg.biz -mmail.men -mmail.org -mmail.trade -mmailinater.com -mmaprognoz.ru -mmastavka.ru -mmatica.ru -mmbet168.com -mmbola.online -mmccproductions.com -mmcdoutpwg.pl -mmclobau.top -mmcounceling.com -mmdshe.com -mmdz7li.xyz -mmdzkxn.xyz -mmdzllu.xyz -mmdzlmx.xyz -mmdzohp.com -mmdzous.com -mmdzre6.xyz -mmdzsfs.xyz -mmdzsxl.xyz -mmdzuii.xyz -mmdzv7m.com -mmeefid.site -mmeefyh.site -mmg-re.com -mmgaklan.com -mmgsupport.com -mmigroup.xyz -mmikal-auvn.ru -mminsurancemarketplace.com -mmint99.com -mmk323.com -mmkozmetik.com -mmlaaxhsczxizscj.cf -mmlaaxhsczxizscj.ga -mmlaaxhsczxizscj.gq -mmlaaxhsczxizscj.tk -mmlaipoowo.xyz -mmm-coinex.info -mmm-invest.biz -mmmail.pl -mmmcoin-ex.com -mmmmail.com -mmmoe.com -mmo365.co.uk -mmobackyard.com -mmoexchange.org -mmogames.in -mmohdjsgdhgjs.xyz -mmomismqs.biz -mmoonz.faith -mmoshop.live -mmoyka5.ru -mmpan.com -mmq8r0.site -mmri.club -mmshe.com -mmsilrlo.com -mmsp12.xyz -mmsp14.xyz -mmsp15.xyz -mmsp16.xyz -mmsp17.xyz -mmsp18.xyz -mmsp19.xyz -mmsp21.xyz -mmsp22.xyz -mmsp23.xyz -mmsp24.xyz -mmsp25.xyz -mmsp26.xyz -mmsp27.xyz -mmsp28.xyz -mmsp29.xyz -mmsp30.xyz -mmsp31.xyz -mmsp33.xyz -mmsp34.xyz -mmsp35.xyz -mmsp36.xyz -mmsp37.xyz -mmsp38.xyz -mmsp40.xyz -mmsp41.xyz -mmsp42.xyz -mmsp43.xyz -mmsp44.xyz -mmsp45.xyz -mmsp46.xyz -mmsp47.xyz -mmsp48.xyz -mmspa.cf -mmtscotw.shop -mmtt1.com -mmtt16.com -mmtt4.com -mmtt56.com -mmtt67.com -mmtt69.com -mmtt7.com -mmtt9.com -mmublera.site -mmvcplc.com -mmyl9.com -mn.curppa.com -mn.riaki.com -mn51.ru -mn8dmmens.xyz -mnage-ctrl-aplex.com -mnasjntgfa16713.cf -mnasjntgfa16713.ga -mnasjntgfa16713.ml -mnasjntgfa16713.tk -mnasjntgfa30036.cf -mnasjntgfa30036.ga -mnasjntgfa30036.tk -mnasjntgfa34309.ga -mnasjntgfa54908.ml -mnasjntgfa54908.tk -mnasjntgfa81336.cf -mnasjntgfa81336.ga -mnasjntgfa81336.ml -mnasjntgfa81336.tk -mnbasdthjsdt51967.cf -mnbasdthjsdt51967.ga -mnbasdthjsdt51967.tk -mnbasdthjsdt55817.cf -mnbasdthjsdt55817.ml -mnbasdthjsdt55817.tk -mnbasdthjsdt69551.ga -mnbasdthjsdt69551.ml -mnbasdthjsdt98416.cf -mnbasdthjsdt98416.ga -mnbasdthjsdt98416.tk -mnbj.xyz -mnbvcxz10.info -mnbvcxz2.info -mnbvcxz5.info -mnbvcxz6.info -mnbvcxz8.info -mncrafting.com -mnemonicedu.com -mnen8.com -mnexq7nf.rocks -mng2gq.pl -mng333.live -mngmining.com -mnhalfpricedlistings.com -mnhomeonthelake.com -mnhomesonthelake.com -mnhxted.ga -mnibank.ru -mniloasderf.tk -mnjp.us -mnjvma.org -mnmarriott.com -mnme.email -mnmodels.ru -mnocash.com -mnocoins.org -mnode.me -mnofqq.icu -mnogikanpolit.ga -mnogobux.ru -mnotoken.com -mnotoken.org -mnriver.com -mnst.de -mnstoryworks.com -mntechcare.com -mntwincitieshomeloans.com -mnv4u8zitnxlhpo.xyz -mnzs.xyz -mo-sale.online -mo2assty.com -mo4p.com -mo5xnj.us -moabjeeprental.com -moagloves.com -moakt.cc -moakt.co -moakt.com -moakt.ws -moanalyst.com -moathrababah.com -moaz5orm.ml -mobamouse.com -mobanche.xyz -mobanswer.ru -mobaratopcinq.life -mobasher24.net -mobcom.cd -mobeconco.store -mobegifts.com -mobelej3nm4.ga -mobi-az.site -mobi.web.id -mobiepic.site -mobigame.org -mobilbagus.club -mobilbahis2l9.com -mobile-gto.ru -mobile-orange.com -mobile-phone-forex.com -mobileapplicationbuilder.com -mobileapps.monster -mobilebankapp.org -mobilebuysellgold.com -mobilefirstcms.org -mobilehypnosisandcoaching.com -mobilejudi.net -mobilelacky.info -mobilemeworld.com -mobileninja.co.uk -mobilephonecarholder.net -mobilephonelocationtracking.info -mobilephonespysoftware.info -mobilephonetrackingsoftware.info -mobilerealty.net -mobiles-premium.com -mobileshopdeals.info -mobilespielbewertung2019.online -mobilesportsapp.site -mobilespyphone.info -mobilesshop.futbol -mobilesshop.live -mobilevoipdialer.com -mobilevpn.top -mobilevpn.xyz -mobilewashenvironmental.com -mobilewhmcs.com -mobilhondasidoarjo.com -mobiliddaa21.com -mobiliddaakayit.com -mobility.camp -mobility.energy -mobility.fitness -mobilmatrak.xyz -mobilnaja-versiya.ru -mobiloyna29.com -mobinovations.xyz -mobiphone.xyz -mobitrans.kg -mobleies.shop -mobler.org -moblibrary.com -moboinfo.xyz -mobotap.net -mobrom.store -mobtuts.net -moburl.com -mobx.pub -mobxxx.site -mocanh.info -mocb.us -mocbddelivery.com -mocg.co.cc -mochibooks.com -mochkamieniarz.pl -mochonai.com -mochris.com -mockbee-energy.com -mockfamilyreunion.com -mockhub.xyz -mockmyid.co -mockmyid.com -mockup.express -mockups.express -mocnyy-katalog-wp.pl -mocw.ru -modabet365.com -modabetdestek.org -modaborsechane2.com -modaborseguccioutletonline.com -modaborseprezzi.com -modabuolsun.xyz -modachane1borsee.com -modaequipate.com -modaiptv.com -modalova.biz -modalova.online -modalova.se -modalova.shop -modalova.xyz -modalsubstance.com -modanaobuv.ru -modaoguan.com -modapeuterey2012.com -modapeutereyuomo.com -modastroy.site -modasupport.org -moddema.ga -modejudnct4432x.cf -modelegitimobs.xyz -modelfe.space -modelfindme.ru -modelhomemaker.com -modelingblog.com -modelix.ru -modelkarma.cd -modellase.site -modelly.site -models-of-germany.com -modelstalentfinder.com -modemanioutlet.se -modeng-yule.biz -modeperfect3.fr -moderassmb.space -moderatex.com -moderatex.net -modern-prints.com -modernangleiron.us -modernasalonstudios.com -modernbiznes.pl -moderndaysurvivalgearshop.com -moderne-raumgestaltung.de -modernenglish.ru -moderneyes.life -modernfs.pl -modernindependent.com -modernoffer01.mobi -modernsailorclothes.com -modernsocialuse.co.uk -moderntanks.us -moderntransfers.info -modernx.site -modetoxcenter.com -modety.online -modhack.net -modicadacademy.com -modikulp.com -modila.asia -modipedia.com -modish.net -modjunkies.com -modkjaj.site -modul-rf.ru -modularix.monster -modularla.com -modulecraft.org -modulercephe.com -modum-trans.xyz -modz.store -moe.app -moe.codes -moe365.com -moe83.space -moeapi.com -moeapp.com -moebelhersteller.top -moebits.com -moeblogs.com -moebot.com -moebt.com -moecoin.com -moeday.com -moedh.com -moeimage.com -moeju.com -moekino.club -moekoe.com -moemark.com -moemh.com -moepay.com -moeri.org -moerss.com -moesao.com -moesian.com -moesite.com -moesns.com -moetube.com -moeup.com -moewave.com -moewiki.com -moewp.com -moewww.com -mofiduljamal.com -mofkac.tk -mofox.store -mofsdemo.ru -mofu.be -mogcheats.com -mogcosing.cf -mogcosing.ga -mogcosing.gq -mogcosing.ml -moge.site -mogensenonline.com -mogilev-news.info -mogiwap.icu -mogotech.com -mogpipin.ga -mogpipin.gq -mogpipin.ml -mogs.live -moguapp.org -mogulemperor.com -mogur.us -moh-nitor-api.xyz -mohalfpricelisting.com -mohamadkarimian.com -mohammedleach.buzz -mohammedstokes.buzz -mohanatakeaway.com -moharramgroup.com -mohcine.ml -mohisi.cf -mohisi.ga -mohisi.ml -mohmal.com -mohmal.im -mohmal.in -mohmal.tech -mohsenfb.com -moi-bank.com -moi-diabet.ru -moidolgi.org -moienge.space -moigadjet.ru -moigauhyd.cf -moigauhyd.ga -moigauhyd.tk -moijkh.com.uk -moimails.ru -moimalap.cf -moimalap.tk -moimoi.re -moiprint.ru -moisait-spb.ru -moishop-online.ru -moisoveti.ru -moissonlongueuil.org -moist.gq -moitari.ga -moitari.ml -moja-ipoteka.ru -mojaemigracja.online -mojarranna.net -mojastr.pl -mojblogg.com -mojehonar.com -mojemoj.tk -mojewiki.com -mojezarobki.com.pl -mojilodayro.ga -mojiphone.pl -mojito.org -mojitos.online -mojodefender.com -mojok34.xyz -mojok88.net -mojoski.net -mojzur.com -mokcasinomorning.ru -mokimasopl.cf -moko.cloud -moksakf.site -mokxmp.us -mol-vidi.net -mol-vidi.org -molallaorsa.info -molasedoitr.ga -molded660xq.online -moldered494dn.online -moldova-nedv.ru -moldova.uno -moldujgkcqb.email -moldura888.com -molecadamail.pw -molkq.site -moll.express -mollieconway.buzz -mollmax.ru -molluskit.gq -mollypeters.buzz -mollyposts.com -mollyteeny1.com -mollywheeler.buzz -molms.com -molo.sale -molojo.com -molsbet.icu -molten-wow.com -molvidi.org -momalls.com -momenrt.ga -momentics.ru -momento-conmovedor.info -momentofjoy.net -mommsssrl.com -mommylongue.com -mommystoopphial.site -momo-cx.com -momo365.net -momobet-8.com -momobet-888.com -momobet-vip.com -momodewa.com -momomarket.ru -momonono.info -momopoker88.xyz -momopokeridn.net -momostreaming.com -momotrack.ru -momoweekly.com -mompreneur.today -momrell.ru -momsbackpack.ru -momsportjop.ru -momswithfm.com -momtest.club -momtips.info -momtour.ru -mon-compte-nickel.cc -mon-entrepreneur.com -mon-espace.club -mon-tigo.cd -mona.farm -monachat.tk -monaco-nedv.ru -monadi.ml -monadium.net -monadress.online -monagame.club -monalisa-galway.com -monalisadublin12.com -monalisatouchmarketing.com -monarch.wtf -monarchdaddy.us -monarkdesigns.com -monasticts.xyz -monawerka.pl -monban.site -moncel.se -moncker.com -monclerboutiquesenligne.com -monclercoupon.org -monclerdeinfo.info -monclerderedi.info -monclerdoudounemagasinfra.com -monclerdoudouneparis.com -monclerdoudounepascherfrance1.com -monclerfrredi.info -monclermagasinfrances.com -moncleroutwearstore.com -monclerpascherboutiquefr.com -monclerpascherrsodles.com -monclerppascherenlignefra.com -monclerredi.info -monclersakstop.com -monclersoldespascherfra.com -monclersonlinesale.com -moncomodz.com -moncompteclient.cc -moncomptes.club -moncourrier.fr.nf -moncourrier.ml -moncstonar.cf -moncstonar.ga -moncstonar.gq -moncstonar.ml -moncstonar.tk -monctl.com -monctonlife.com -mondayarr.host -mondayfirst.site -mondaylaura.com -mondaymariska.com -mondaymovo.com -mondconglesm.gq -mondconglesm.ml -mondconglesm.tk -mondkap-drukkerij.online -mondrian.wiki -mondykyr.com -mone15.ru -monedix.com -monedocard.com -monedonow.com -monemail.fr.nf -monepy.com -moneroexpert.com -monespace.cc -monespace.info -monetaros.com -monetizes686vr.online -monettka.ru -money-drives.com -money-pay.ru -money-trade.info -money-vopros.ru -moneyalphaspot.com -moneyandcents.com -moneyboxtvc.com -moneyconnexion.net -moneygive.xyz -moneyhere.ru -moneyhome.com -moneyhungry.info -moneyinpolitics.org -moneylac.ru -moneymailersms.com -moneypipe.net -moneypoll01.top -moneyprofit.online -moneyqube.info -moneyslon.ru -moneytree-letterkenny.com -moneyup.club -moneyway.shop -mongabrothersfilms.com -mongrelize881tf.online -mongrelized473kd.online -mongsteep.xyz -monica.org -monicagrace.site -moniclick.ru -monihaerd.tk -monikas.work -monikolas.cf -monikure.ga -monipozeo8igox.cf -monipozeo8igox.ga -monipozeo8igox.gq -monipozeo8igox.ml -monipozeo8igox.tk -moniqueaimone.com -moniqueknowsmusic.us -monir.eu -monisee.com -monitecnique.net -monitoragenzie.click -monitoragenzie.com -monitoramentofera.com -monitorbbb.xyz -monitorsshop.life -monitoruleconomic.com -monjunec.com -monkandbard.org -monkeemail.info -monkey-up.com -monkey-win.com -monkey4u.org -monkeyforex.com -monkeypoker.net -monkeysatmidnight.com -monkeysend.com -monkeystore.online -monkkey-win.com -monkoiba.site -monlapin.ru -monmail.fr.nf -monngongiadinh.info -monnoyra.gq -monnoyra.tk -monobud.com -monobuds.com -monoearphone.com -monoktr.ru -monologism.site -monomorphic.best -monopici.ml -monopoliya2.ru -monorailnigeria.com -monot.xyz -monotheism.net -monotv.store -monporn.net -monroeelderlawgroup.com -monsetof.ru -monsheribridal.net -monsieurbiz.wtf -monsieurcoin.com -monsoon-indian.com -monsoontakeaway.com -monstage-dz.com -monster.org -monsterabeatsbydre.com -monsterandme.net -monsterbeatsbydre-x.com -monsterblender.ru -monsterbubu.degree -monsterjcy.com -monsterspain.site -monta-ellis.info -monta-ellis2011.info -montagebridalsalon.com -montana-nedv.ru -montanachoicerealestate.com -montanaquote.com -montanaweddingdjs.com -montclairpodiatry.com -montefino.cf -montepaschi.cf -montepaschi.ga -montepaschi.gq -montepaschi.ml -montepaschi.tk -monterra.tk -montesofia.com -montevigorpiety.site -montgomeryquote.com -monthesour.cf -monthesour.ga -monthesour.ml -monthesour.tk -monthlyjerky.com -monthlyoportynity.com -monthlypill.com -monthlyseopackage.com -monthsleading.com -montiardxd.space -montigo.cd -montokop.pw -montre-geek.fr -montrealdio.com -montrealists.com -montrealjetboating.com -montrealrafting.com -montrowa.cf -montrowa.ga -montrowa.gq -montrowa.ml -montsettsa.cf -montsettsa.ga -montsettsa.gq -montsettsa.ml -montsettsa.tk -montway.biz -montwayautotransportonline.com -monumentalize178lr.online -monumentalized432wf.online -monumentmail.com -monvoyantperso.com -mooandpierre.com -mooblan.ml -moodarttekstil.xyz -moodleclub.org -moodleforworkplace.info -moodleforworkplace.net -moodleforworkplace.org -moodleinspire.info -moodletest-vps.website -moodleworkplace.info -moodmatter.buzz -mooecofficail.club -moogtones.com -moogtrailerparts.shop -mooiamsterdamevents.online -mookkaz.ga -moola4books.com -moolooku.com -moon-piano.online -mooneventdn.com -moonfaire.com -moongleam.com -mooniac.com -moonjumppress.com -moonkased.ga -moonki.shop -moonkupla.ga -moonleap.email -moonlightbed.com -moonm.review -moonrakefile.com -moonwake.com -mooo.com -mooo.ml -mooonity.com -moopzoopfeve1r.com -mooresrowland-hk.com -moose-mail.com -moosehollowtradingco.com -mooshimity.com -moot.es -moovengers.com -mooviflix.online -moozique.musicbooksreviews.com -moparayes.site -moparmediagroup.se -mopemi.cf -mopemi.ga -mopemi.gq -mopemi.ml -mopemi.tk -mopeyj.us -mopilka.ru -mopustores.site -mopyrkv.pl -mor19.uu.gl -moragfels.cf -moragfels.ga -moragfels.gq -moragfels.tk -morahdsl.cf -moralitywars.net -moralizer906bg.online -morallystrapped.com -morana.icu -morarabam.com -moravekinternational.info -moraveli.live -morbolatino.com -morcagumd.cf -morcagumd.ga -morcagumd.gq -morcagumd.tk -morcasinohat.ru -morcego.org -more-reasons.net -more2explore4you.site -more4chat.com -more4you.org -moreawesomethanyou.com -morecallsforlawyers.com -morecoolstuff.net -moreflavourz.com -morefunmart.com -morefunsports.com -moregrafftsfrou.com -moremarijuanamarketplace.com -moremobileprivacy.com -moreno1999.xyz -moreorcs.com -moreorlessinc.com -morerake.com -morestonn.tk -morethanametal.com -morethanjustavoice.info -morethanvacs.com -morethanweknow.com -morethanword.site -moretrend.xyz -morex.ga -morfelpde.cf -morfelpde.ga -morfelpde.gq -morfelpde.ml -morfelpde.tk -morganbrookewright.com -morganfranklinconsulting.com -morganlowis.com -morguefile.us -morielasd.ovh -morina.me -moringathee.com -mormal.site -mormoncoffee.com -mormortmarkece.space -mornayoovm.space -mornhfas.org.ua -morningstarkafe.xyz -morningstiffnesspodcast.org -morningtw.com -mornsoft.com -morogamers.com -moroz-it.ru -morriesworld.ml -morrisoncreek.net -morrlibsu.cf -morrlibsu.ga -morrlibsu.gq -morrlibsu.ml -morrsferin.cf -morrsferin.gq -morrsferin.ml -morrsferin.tk -morselsdxsv.email -morsin.com -mortcountgi.cf -mortcountgi.gq -mortcountgi.ml -mortcountgi.tk -morteinateb.xyz -mortgagealign.com -mortgagebrief.com -mortgagecalculators.online -mortgagecalculatorwithtaxess.com -mortgagefinancialvermont.com -mortgagelendinginvestors.com -mortgagelends.com -mortgagemotors.com -mortgebi.cf -mortgebi.ga -mortgebi.tk -mortire.ga -mortire.tk -mortjusqui.cf -mortjusqui.ga -mortjusqui.gq -mortjusqui.ml -mortjusqui.tk -mortmesttesre.wikaba.com -mortystore.cf -moruzza.com -morygina.ru -mos-kwa.ru -mosaferbaar.com -mosaferkade.org -mosamulet.ru -moscow-nedv.ru -moscow-pinup488.ru -moscowmail.ru -moscowrealestateagents.com -mosertelor.ga -mosheperetz.bet -mosheperetz.net -moskow-lottery.info -moskow-lottery.net -moskow-lottery.org -moslic.ru -mosmebelcentr.ru -mosq.info -mosrafaacademy.com -mosspointhotelsdirect.com -most-wanted-stuff.com -mostafapour.com -mostbet-official.ru -mostbet.casino -mostbet7.ru -mostbetzerkalo.site -mostofit.com -mosttrends.info -mosvv.us -mot1zb3cxdul.cf -mot1zb3cxdul.ga -mot1zb3cxdul.gq -mot1zb3cxdul.ml -mot1zb3cxdul.tk -moteko.biz -motel5music.com -motelfive.com -mother-india-athlone.com -mother-russia.ru -mother-russia.space -motherindiatakeaway.com -motherreviews.futbol -motiexis.ru -motifdou.xyz -motifliv.buzz -motifpet.xyz -motionframed.com -motique.de -motivationalasmr.com -motivationalsites.com -motivationasmr.com -moto-gosz.pl -moto4you.pl -motomarkets.site -motorcityreplacementparts.com -motorcritics.com -motorcycle-rental.info -motorcycleaccidentlawyertampa.com -motorcycleserivce.info -motorisation-plus.com -motorisation.ga -motorize540ab.online -motorsshop.futbol -motorvationist.com -motosneta.online -motrkadust.ru -mottel.fr -mottenarten.ga -mottobuttonpizza.site -motybas.xyz -mouadim.tk -mouadslider.site -moud.us -moueur.website -mouken.com -moukhjconmeab.cf -moukhjconmeab.ga -moukhjconmeab.tk -moukrest.ru -moulinsdebordeaux.com -moulybrien.cf -moulybrien.tk -moundcityhistory.org -mountaingoatcycles.com -mountainhighminiatures.com -mountainhouseairbnb.com -mountainhousebandb.com -mountainregionallibrary.net -mountainviewbandb.net -mountainviewfudge.com -mountainviewgarden.com -mountainviewgarden.org -mountainviewwiki.info -mountathoss.gr -mountdasw.ga -mountjulietapartments.com -mountpleasantrealestateagents.com -mourntailedplaza.site -mourouzis.com -mousearis.icu -mouseexi.us -mousefe.icu -mousefl.icu -mouselesstails.com -mousergup.space -moustache-media.com -mouthmi.icu -mouthube0t.com -movanfj.ml -movavi.tech -move-meal.site -move2.ru -move2inbox.net -move2loveland.info -movedto.info -moveer.ru -moveleg.com -movements.best -movemovemove.ca -movepre.com -moversferndalemi.com -moveworks.co -movie-ru-film.ru -movie-ru-girls.ru -movie-streams-online.best -movie.finance -movie4k-free.site -movie4k.app -movie4khd.net -movieblocking.com -movieblogs.com -moviedaynight.com -moviefreedo.com -movieindoxxi.online -movienox.com -movies-box.ru -movies1.online -movies123-star-movie.xyz -movies123.news -movies123free.best -movies4youfree.com -movies69.xyz -moviesclab.net -moviesdirectoryplus.com -moviesjoy.online -moviesjoy.site -moviesjoy.space -moviesjoy.website -moviesmarket.place -moviesonlinehere.com -moviespur.xyz -movietavern.us -movietaverngc.net -movietaverntickets.net -movietheaterapp.com -movietour.ru -moviezt.us -moviflix.tk -movima.info -moving2.com -movingex.com -movingforwardsj.com -movingmatterkc.com -movply.site -movstoreoffc.com -movx.us -mowgli.jungleheart.com -mowoo.net -mowspace.co.za -mowtpk.us -mox.pp.ua -moxcasonaixe.xyz -moxianmusic.com -moxinbox.info -moxremodel.com -moy-elektrik.ru -moya-ze.com -moydoctor.online -moydom12.tk -moyjivot.ru -moyokoy8.website -moypmoub.shop -moysat.ru -moyuzi.com -moyy.net -moz-clinic.info -moza.pl -mozartfwkg.website -mozej.com -mozej.online -mozhua.xyz -moziahssecretplan.com -mozillafirefox.cf -mozillafirefox.ga -mozillafirefox.gq -mozillafirefox.ml -mozillafirefox.tk -mozmail.com -mozmail.info -mozzasiatopizzavalencia.com -mozzinovo.club -mp-j.cf -mp-j.ga -mp-j.gq -mp-j.igg.biz -mp-j.ml -mp-j.tk -mp.igg.biz -mp3-cube.com -mp3-line.ru -mp3-pleeri.ru -mp3-tut.org -mp3-world.us -mp3afrique.com -mp3cc-top.biz -mp3charm.com -mp3diamond.com -mp3dn.net -mp3freed.net -mp3genteflow.biz -mp3geulis.net -mp3granie.pl -mp3hd.online -mp3hungama.xyz -mp3indirbey.info -mp3isl.ru -mp3lemoon.ru -mp3nt.net -mp3sa.my.to -mp3skull.com -mp3toys.online -mp3tubidy.one -mp3zvukoff.ru -mp4-base.ru -mpaaf.cf -mpaaf.ga -mpaaf.gq -mpaaf.ml -mpaaf.tk -mpayshop.info -mpbtodayofficialsite.com -mpdacrylics.com -mpdf.site -mpegsuite.com -mpfqxeoo.fun -mpfsy.icu -mpg0e.us -mpgmarine.com -mpictureb.com -mpihomecare.net -mpjgqu8owv2.pl -mpkjr.org -mplusmail.com -mpm-motors.cf -mpmmaketmarka.space -mpmps160.tk -mpmshleyatip.site -mpmtipluka.site -mpmzagibshema.space -mpmzagibtyazh.space -mpo303.xyz -mpo365idn.net -mpo39.com -mpo39c.xyz -mpo818.com -mpocash.club -mpocketbank.com -mpop.app -mpoplaytech.net -mpos247.com -mprtb.live -mps3andvideoconverter.com -mpsupport247.com -mptalegacymedia.com -mptgqustuputqp.ru -mptncvtx0zd.cf -mptncvtx0zd.ga -mptncvtx0zd.gq -mptncvtx0zd.ml -mptncvtx0zd.tk -mptrance.com -mpvnvwvflt.cf -mpvnvwvflt.ga -mpvnvwvflt.gq -mpvnvwvflt.ml -mpvnvwvflt.tk -mpvpropertiesllc.com -mpwindows.icu -mpxfcm.us -mpystsgituckx4g.cf -mpystsgituckx4g.gq -mpzjno.us -mpzoom.com -mq.orgz.in -mq4rzy.site -mqcs.us -mqfep.online -mqg77378.cf -mqg77378.ga -mqg77378.ml -mqg77378.tk -mqhtukftvzcvhl2ri.cf -mqhtukftvzcvhl2ri.ga -mqhtukftvzcvhl2ri.gq -mqhtukftvzcvhl2ri.ml -mqhtukftvzcvhl2ri.tk -mqipm.com -mqkivwkhyfz9v4.cf -mqkivwkhyfz9v4.ga -mqkivwkhyfz9v4.gq -mqkivwkhyfz9v4.ml -mqkivwkhyfz9v4.tk -mqmize.shop -mqnpuu.site -mqqzkj.us -mqrjwargb.cf -mqtpe8.us -mquote.tk -mr-82.com -mr-manandvanlondon.co.uk -mr-meshkat.com -mr-noodle-takeaway.com -mr138bet.org -mr1web.ru -mr24.co -mr907tazaxe436h.cf -mr907tazaxe436h.ga -mr907tazaxe436h.gq -mr907tazaxe436h.tk -mracc.it -mragon.xyz -mrain.ru -mrakosin.site -mrbeads.ru -mrbillsworld.com -mrblacklist.gq -mrcasino25.com -mrchinh.com -mrclipper.com -mrcraftyconsultant.com -mrctacoma.com -mrdeeps.ml -mrdevilstore.com -mrdjg.live -mrdomino99.org -mrdv7w.info -mreazi.africa -mrecphoogh.pl -mrentauto.ru -mrepair.com -mrf9t.us -mrfix.us -mrflibble.icu -mrgamin.cf -mrgamin.gq -mrhbyuxh11599.ga -mrhbyuxh31310.cf -mrhbyuxh31310.tk -mrhbyuxh49348.ga -mrhbyuxh51920.ga -mrhunting.com -mrichacrown39dust.tk -mrisemail.com -mrisemail.net -mrj08.space -mrjgyxffpa.pl -mrlagu.best -mrmagicshow.net -mrmail.info -mrmail.mrbasic.com -mrmal.ru -mrmanager.ru -mrmanie.com -mrmerritt.com -mrmikea.com -mrmrise.com -mroe-kino.ru -mroneeye.com -mrossi.cf -mrossi.ga -mrossi.gq -mrossi.ml -mrpdfmanuales.xyz -mrplay.store -mrprojects.info -mrqqwo.us -mrramtruck.com -mrresourcepacks.tk -mrrob.net -mrrobot.life -mrs24.de -mrsands.org -mrscript.ru -mrshok.xyz -mrsikitjoefxsqo8qi.cf -mrsikitjoefxsqo8qi.ga -mrsikitjoefxsqo8qi.gq -mrsikitjoefxsqo8qi.ml -mrsikitjoefxsqo8qi.tk -mrsnotarios.com -mrsnwk.us -mrsortie.xyz -mrtsport.com -mrugesh.tk -mrunlock.run -mrvevoyu.shop -mrvinh.com -mryup.com -mrzero.tk -ms-office365.com -ms.email -ms.land -ms.rentals -ms.vcss.eu.org -ms0o.club -ms1.email -ms248.com -ms365.ml -ms788.site -ms9.mailslite.com -msa-uk.org -msa.minsmail.com -msaffshop.store -msb.minsmail.com -msbestlotto.com -msbl.buzz -mscbestforever.com -mscdex.com.au.pn -msd-tech.com -msdc.co -msdosarena.com -msendback.com -mseo.ehost.pl -mservices.life -msf0p9.com -msft.cloudns.asia -msg2phone.com -msgden.com -msgden.net -msghideaway.net -msgos.com -msgsafe.io -msgsafe.ninja -msgwire.com -msha3er.com -mshalfpricedlistings.com -mshri.com -msiarts.com -msidhuy.net -msinternationalfederation.com -msiofke.com -msiwkzihkqifdsp3mzz.cf -msiwkzihkqifdsp3mzz.ga -msiwkzihkqifdsp3mzz.gq -msiwkzihkqifdsp3mzz.ml -msiwkzihkqifdsp3mzz.tk -msjyd.com -msk-cool.ru -msk-farm.ru -msk-intim-dosug.ru -msk-pharm.ru -msk-prokat.ru -msk.ru -mskey.co -mskglobaltraining.com -mskhousehunters.com -msladyloki.live -mslinkin.ru -msm.com -msmail.bid -msmail.trade -msmail.win -msmwxc.site -msn.edu -msnai.com -msnblogs.info -msndubai.net -msnmrhhzr.shop -msnt007.com -msnumsno.shop -msnw.ru -msoexbr.ru -msoft.com -msoftkeyupdateerror4004.xyz -msoi.us -mson.com -msoonlinsite.shop -msovh.com -mspeciosa.com -mspforum.com -mspruillart.com -msqd7.us -msqtbill247.com -msquarebudapest.com -msquarehotelbudapest.com -msrc.ml -msrisg.site -msromaballinagh.com -mssfpboly.pl -mssn.com -mstar69.club -mstenta.com -mstream.host -mstyfdrydz57h6.cf -mstyfv.info -mstylee.com -msu69gm2qwk.pl -msugcf.org -msvh.us -msvvscs6lkkrlftt.cf -msvvscs6lkkrlftt.ga -msvvscs6lkkrlftt.gq -mswebapp.com -mswork.ru -mswx.email -msxd.com -msyl6.com -mt-overheid.shop -mt-tele.club -mt-tele.today -mt2009.com -mt2014.com -mt2015.com -mt2016.com -mt2017.com -mt210.com -mt25.org -mt4o.us -mt66ippw8f3tc.gq -mtaby.com -mtajer.online -mtalhv.icu -mtasa.ga -mtawnecno.cf -mtawnecno.gq -mtbitreatmentclinic.com -mtbtrailreview.com -mtd.ong -mte5.net -mtgbvfxn.com -mtgmogwysw.pl -mthalfpricelistings.com -mtjoy.org -mtmdev.com -mto2.ru -mtqjsd.com -mtrainierphoto.com -mtrucqthtco.cf -mtrucqthtco.ga -mtrucqthtco.gq -mtrucqthtco.ml -mtrucqthtco.tk -mtservers.online -mtsg.me -mtsmy2.com -mtsmy4.com -mtstreet.online -mttdfen.xyz -mtyju.com -mtzx4.xyz -mu3dtzsmcvw.cf -mu3dtzsmcvw.ga -mu3dtzsmcvw.gq -mu3dtzsmcvw.ml -mu3dtzsmcvw.tk -mu956.com -mua0gn.us -muaban12fun.com -muaban12fun.net -muabanchothue.website -muabanhang.website -muabanhangviet.website -muabansanpham.website -muagiasi.website -muamuawrtcxv7.cf -muamuawrtcxv7.ga -muamuawrtcxv7.gq -muamuawrtcxv7.ml -muamuawrtcxv7.tk -muasamtructuyen.info -muathegame.com -mubamen.tk -mubby.ml -mucbvhxt.shop -much-hyped.club -muchina.website -muchmal.com -muchomail.com -muchoporcompartir.com -muchovale.com -muciboutiques.site -mucillo.com -mucincanon.com -mucizedoktor.cf -mucizejel.xyz -mucizekur.site -mucwegsns.shop -mudanya118.xyz -mudbox.ml -mudhighmar.cf -mudhighmar.ga -mudhighmar.gq -mudhighmar.tk -mudjigbsd.shop -muehlacker.tk -muell.email -muell.icu -muell.monster -muell.ru -muell.xyz -muellemail.com -muellmail.com -muellpost.de -muezafgse3lhny3.xyz -muffin-rezept.org -muffinbasketap.com -muffkisses.com -mufmg2.us -muftappu.online -mufux.com -mugamesandsoft.info -mugestores.site -mugglenet.org -muggycloc.us -muggyfunny.com -mughbecur.cf -mughbecur.gq -mughbecur.tk -mughftg5rtgfx.gq -mugladatemizlik.com -muglaelitmedya.com -muglaelitmermer.com -muglakaptanoperatorluk.com -muglakonut.xyz -muglamarket.online -muglavo.cf -muglavo.ga -muglavo.gq -muglavo.ml -muglavo.tk -mugshots.fun -mugsnbuds.com -mugua1.com -muguafu.com -muhabbetkusufiyatlari.com -muhamadnurdin.us -muhammad-ali-trophy.ru -muhammadafandi.com -muhammetsayar.xyz -muhasebe.app -muhdioso8abts2yy.cf -muhdioso8abts2yy.ga -muhdioso8abts2yy.gq -muhdioso8abts2yy.ml -muhdioso8abts2yy.tk -muhendisi.com -muhis3.us -muhoy.com -muimail.com -muirlea.com -muj10.space -mujaz.net -mujiuazhai.com -mujizatqq.com -mujizatqq.info -muju.site -mukemmelhibiskus.site -mukund.info -mulberry.de -mulberry.eu -mulberrybags-outlet.info -mulberrybagsgroup.us -mulberrybagsoutletonlineuk.com -mulberrymarts.com -mulberrysmall.co.uk -mule.cd -muleaks.com -muledeerjack.com -muleno.info -mulfide.cf -mulfide.ga -mulfide.tk -mulitcloud.ninja -mulix.info -mulix.online -mulix.tech -mull.email -mullemail.com -mullerd.gq -mullervzcn.space -mulligan.leportage.club -mullmail.com -mulrogar.cf -mulrogar.ga -mulrogar.gq -mulrogar.ml -mulrogar.tk -mulseehal.cf -mulseehal.ga -mulseehal.tk -multaneohe.icu -multech-pbc.com -multerchanez.com -multfilmmoney.ru -multi-car-insurance.net -multibus.info -multicard.club -multicherna.monster -multicultural.center -multidesign.info -multidisplay.net -multidresses.com -multidrone.ru -multielektonik.com -multifamilyinvestment.com -multifocal.haus -multihosted.online -multihosted.site -multilingual-health-education.net -multimediag.online -multinetwork.online -multiplanet.de -multiplayerwiigames.com -multipleorgasmman.com -multiplexer.us -multiprim.com -multireha.pl -multisourceproductsandservicesportals.com -multispecialtyaestheticacademy.org -multitip.email -multitul-lath.ru -multy-2019.ru -mumajun.com -mumba.website -mumbaibjp.org -mummodesign.biz -mummybags.ru -mumoda.info -mumpangmeumpeung.space -mumspousallot.website -mumulacy.com -munchiejanefoods.com -munchnburritobarkildare.com -munchtalk.net -muncloud.online -mundobatala.com -mundocripto.com -mundodalele.com -mundodeamor.org -mundodigital.me -mundoflix.net -mundohispanico.mobi -mundohobby.net -mundonegociosdigitais.com -mundopregunta.com -mundoregistral.com -mundosmart.life -mundri.tk -muni-kuni-tube.ru -muniado.waw.pl -munichmail.online -municiamailbox.com -munired.org -munis.site -munoubengoshi.gq -munster-pizza-limerick.com -munx4i.space -muonline.monster -muora.com -mupload.nl -mupre.xyz -muq.orangotango.tk -muqaise.com -muqoel.shop -muqwftsjuonmc2s.cf -muqwftsjuonmc2s.ga -muqwftsjuonmc2s.gq -muqwftsjuonmc2s.ml -muqwftsjuonmc2s.tk -muran.best -muratcaliskan.online -muratkerem.ml -muratkerem123.cf -muratpasagenclik.xyz -murattomruk.com -muratveyaraglai.tk -murcasinotoe.ru -murghantakeaway.com -murletat.xyz -murlioter.cf -murlioter.ga -murlioter.gq -murlioter.ml -murlioter.tk -murniberita.com -murphyfg.com -murptrk.site -murraysromania.com -murticans.com -mus-max.info -mus.email -musashiazeem.com -musashisakai.life -musashisakai.site -musclebuilding.club -musclecarcorvettenationals.com -musclefactorxreviewfacts.com -musclemailbox.com -musclemaximizerreviews.info -musclesbet21.com -musclesbet22.com -musclesorenesstop.com -musealike.com -musealike.net -musealike.org -museboost.com -museodelalibertad.info -museumblog.com -museumplanet.com -musey-uglich.ru -mushroomadventure.net -mushroomadventures.info -mushroomadventures.us -mushtaqclothstore.com -musialowski.pl -music-feels-great.com -music2or.com -music4buck.pl -music4me.xyz -music896.are.nom.co -musica-clasica.com -musical-images.com -musicalinstruments2012.info -musicalmax.com -musicalnr.com -musicandmotivationmj.com -musicandsunshine.com -musicarekids.com -musicasgospel.org -musicaz.net -musicbaran54.com -musicbox.su -musiccityusa.com -musicdrom.com -musicety.com -musicfictionpoint.site -musicforallpro.info -musicfun.shop -musicha93.com -musichq.online -musichq.site -musichq.xyz -musiciantelevision.com -musick.store -musicmakes.us -musicmattersmobiledj.com -musicosapp.com -musicproducersi.com -musicresearch.edu -musicsdating.info -musicsoap.com -musict.net -musictracker.ru -musicu.ru -musicvideo.africa -musicwiki.com -musicyou.tube -musiiday.com -musikayok.ru -musikprojektet.se -musikqqpoker.com -musimliga.net -musiqfile.xyz -musiqstream.com -muskgrow.com -muskify.com -muskizyurdu.com -muskokacomputerservices.com -muslim3000.com -muslimahcollection.online -muslimjewishadvisorycouncil.org -muslumbabaninyeri.online -muslumbabaninyeri.xyz -musony.site -mustache888rp.online -mustafakiranatli.xyz -mustafayvaz.com -mustakilart.com -mustang-ford.club -mustbe.ignorelist.com -mustbedestroyed.org -mustekautomation.com -mustgread.gq -musthave.properties -musthavesharpener.ooo -mustmails.cf -mustopmarket.ru -musttufa.site -mutant.me -mutantz.xyz -mutationstormjournal.website -mutechcs.com -muthinc.net -muti.site -mutiglax.ga -mutik.ru -mutirokas.gq -mutlucarsi.com -mutter-zeitung24.website -muttonvindaloobeast.xyz -muttvomit.com -muttwalker.net -mutualbags.com -mutualhomebuyers.com -mutualmed.net -mutualmedinsuranceservices.com -mutualmedsd.com -mutualmetarial.org -mutualwork.com -muutrk.com -muuyharold.com -muvilo.net -muvita.store -muwawa.ru -muwgnresz.shop -muwiki.net -muxcheng.xyz -muyoc.com -muyopon.xyz -muyrte4dfjk.cf -muyrte4dfjk.ga -muyrte4dfjk.gq -muyrte4dfjk.ml -muyrte4dfjk.tk -muz-tracker.site -muzaffersanli.cf -muzaffersanli.ml -muzaffersanli.tk -muzamarket.com -muzhkontrol.ru -muzhpay.xyz -muzhskaiatema.com -muzhskoye.ru -muzida.icu -muziekreleasen.com -muzik-fermer.ru -muzikaper.ru -muzikcim.xyz -muziklofe.tk -muzlishko.com -muzmes.ru -muzolabs.net -muzoo.online -muzotop.online -muzzamarket.com -muzzmo.online -mv1951.cf -mv1951.ga -mv1951.gq -mv1951.ml -mv1951.tk -mv6uylrxk46yv1h.xyz -mvat.de -mvb2x.us -mvd-trading.com -mvdlnl.shop -mvhjmc.com -mvkuznecov.ru -mvlaw.us -mvlnjnh.pl -mvmbetting.com -mvmusic.top -mvo.pl -mvoa.site -mvom.us -mvoudzz34rn.cf -mvoudzz34rn.ga -mvoudzz34rn.gq -mvoudzz34rn.ml -mvoudzz34rn.tk -mvpdream.com -mvrh.com -mvrht.com -mvrht.net -mvsbesbuy.com -mvssv.com -mvswydnps.pl -mvtoe.xyz -mvtqea.us -mw.orgz.in -mw763w3f640hasc.xyz -mwabviwildlifereserve.com -mwarner.org -mwbfhv.icu -mwbos.com -mwddbdqy.shop -mwdsgtsth1q24nnzaa3.cf -mwdsgtsth1q24nnzaa3.ga -mwdsgtsth1q24nnzaa3.gq -mwdsgtsth1q24nnzaa3.ml -mwdsgtsth1q24nnzaa3.tk -mwe-b.icu -mwe-c.icu -mwe-j.icu -mweaglewood.com -mwforum.org -mwfptb.gq -mwgwqe.us -mwh.group -mwinda.cd -mwkancelaria.com.pl -mwoi.us -mwoodman.com -mworks.tk -mwp4wcqnqh7t.cf -mwp4wcqnqh7t.ga -mwp4wcqnqh7t.gq -mwp4wcqnqh7t.ml -mwp4wcqnqh7t.tk -mwwcaq.com -mx.dysaniac.net -mx0.wwwnew.eu -mx1.site -mx18.mailr.eu -mx19.mailr.eu -mx40bu.com -mx8168.net -mxapp.info -mxbin.net -mxbing.com -mxcn.tk -mxfuel.com -mxg.mayloy.org -mxheesfgh38tlk.cf -mxheesfgh38tlk.ga -mxheesfgh38tlk.gq -mxheesfgh38tlk.ml -mxheesfgh38tlk.tk -mxinspect.org -mxivs.com -mxl4ix.us -mxmigration.com -mxnfashion.info -mxoi.us -mxollc.com -mxp.dns-cloud.net -mxp.dnsabr.com -mxrmedia.com -mxrsale.top -mxsxyfcyyclvip1668.com -mxv1bv.us -mxzvbzdrjz5orbw6eg.cf -mxzvbzdrjz5orbw6eg.ga -mxzvbzdrjz5orbw6eg.gq -mxzvbzdrjz5orbw6eg.ml -mxzvbzdrjz5orbw6eg.tk -my-aunt.com -my-bestnews.ru -my-big-market-online.net -my-birds.club -my-birds.fun -my-birds.space -my-blog.ovh -my-email.gq -my-eslbookclub.com -my-fashion.online -my-films.xyz -my-free-tickets.com -my-google-mail.de -my-grapes.ru -my-group223.ru -my-health.site -my-home-beautiful.com -my-insurance-resource.com -my-kapriz.ru -my-lead-tracker.ru -my-link.cf -my-maculardegenerations-ok.live -my-markey-shop-of-goods.us -my-miracle-bust.com -my-movement.online -my-newsgroups.com -my-oxygenconcentrators-ok.live -my-paylife-id197916.xyz -my-paylife-id197925.xyz -my-points.info -my-pomsies.ru -my-savings-tips.com -my-sell-shini.space -my-server-online.gq -my-standoff.ru -my-stats.info -my-teddyy.ru -my-top-shop.com -my-top5.ru -my-turisto.ru -my-webmail.cf -my-webmail.ga -my-webmail.gq -my-webmail.ml -my-webmail.tk -my-world24.de -my-yda.com -my.efxs.ca -my.longaid.net -my.safe-mail.gq -my.viola.gq -my.vondata.com.ar -my10minutemail.com -my123.live -my1bet.biz -my1bet.info -my1travel.ru -my1x2.com -my301.info -my301.pl -my365.tw -my365office.pro -my3mail.cf -my3mail.ga -my3mail.gq -my3mail.ml -my3mail.tk -my48day.xyz -my66plus.com -my6mail.com -my7km.com -myaa316.xyz -myaa318.xyz -myabbruzzo.com -myabccompany.info -myafricanherbaloils.xyz -myaibos.com -myakapulko.cf -myakapulko.ga -myakapulko.gq -myakapulko.ml -myakapulko.tk -myalahqui.cf -myalahqui.ga -myalahqui.ml -myalahqui.tk -myalias.pw -myallergiesstory.com -myallgaiermogensen.com -myallsmiledentals.com -myalphax.tech -myamberpharmacy.net -myandroidforum.ru -myanmar11.com -myanmar22.com -myanmar222.com -myanmar33.com -myanmar77.com -myanmar88889.com -myanmarems.info -myanmartourismguide.com -myannuityadvisors.com -myanny.ru -myanytimedr.com -myapexevent.net -myareasales.com -myasshole.online -myatlantatiredealer.com -myaudio24.ru -myausithelp.net -myautoinfo.ru -myautomationmarketing.com -myautomizely.net -myautomizely.org -myazg.ru -myb-o.com -myb267.com -mybaby-store.ru -myback1.xyz -myback2.xyz -mybackend.com -mybackup.com -mybackup.xyz -mybada.net -mybaegsa.xyz -mybaggage.ru -mybalancebracelets.com -mybandwallet.com -mybanglaspace.net -mybankcards.ru -mybaseballcareer.com -mybathtubs.co.cc -mybeautidress.site -mybelka.ru -mybestbook.site -mybestbooks.site -mybestcasino2018.ru -mybestmailbox.biz -mybestmailbox.com -mybestpoker77.com -mybestrecipes.ru -mybicyclepost.com -mybiginbox.info -mybikinibellyplan.com -mybirthday.com -mybisnis.online -mybitti.de -mybizarreclips.com -mybizloans.xyz -myblogos.ru -myblogpage.com -myboatsibiza.com -mybook.vegas -mybookguide.site -mybovip.com -mybpay.shop -mybreathegreenpure.com -mybridesguide.com -mybrokerportal.com -mybuilderva.com -myburseblogus.top -mybuycosmetics.com -mybx.site -mycamworld.online -mycard.net.ua -mycarepack.online -mycarfranchise.ru -mycarfranshiza.ru -mycasecompetition.com -mycashbt.club -mycasino.space -mycasinopartner.com -mycasualclothing.com -mycasualclothing.net -mycasualtshirt.com -myccav.tk -myccscollection.com -mycellphonespysoft.info -mycfee.com -mychatscloud.com -mycherry.org -mychicagoheatingandairconditioning.com -mychung.com -mycityvillecheat.com -mycleaninbox.net -myclicknflipplan.com -myclo.pro -mycloudmail.tech -mycobal.com -mycobotanica.org -mycompanigonj.com -mycontentbuilder.com -mycoolemail.xyz -mycopperridgefarm.com -mycorneroftheinter.net -mycorsly.com -mycourtcall.com -mycrazyemail.com -mycrazynotes.com -mycreatures.org -mycreatures.shop -mycreditukraine.com -mycrowdcoins.com -mycryptocare.com -mycsbin.site -mycsgo.online -mydata.mobi -mydatescheck.com -mydaughtersarmy.net -mydb.com -myde.ml -mydealgenie.com -mydeliciousrecipe.com -mydemo.equipment -mydentalpracticemarketing.com -mydesign-studio.com -mydesoho.info -mydexter.info -mydietinfo.ru -mydigitallogic.com -mydn2-yl.com -mydn2yl.com -mydoaesad.com -mydocpro.info -mydogspotsa.com -mydomainc.cf -mydomainc.ga -mydomainc.gq -mydomainc.ml -mydomainc.tk -mydomingues.com -mydreambeachisreal.com -mydreamspots.net -myeacf.com -myecho.es -myecomclubreview.com -myedhardyonline.com -myeheterrwallet.com -myeheterwallet.com -myelementzodiac.com -myelousro.ga -myelousro.gq -myelousro.ml -myelousro.tk -myemail.gic.edu.vn -myemail1.cf -myemail1.ga -myemail1.ml -myemailaddress.co.uk -myemailboxmail.com -myemailboxy.com -myemaildotcom.com -myemaill.com -myemailmail.com -myemailonline.info -myemployeragreement.com -myengineeroncall.com -myeslbookclub.com -myestuftomb.cf -myestuftomb.tk -myethioshop.com -myeyesurgeons.org -myezymaps.com -myfabiana.com -myfaceb00k.cf -myfaceb00k.ga -myfaceb00k.gq -myfaceb00k.ml -myfaceb00k.tk -myfake.cf -myfake.ga -myfake.gq -myfake.ml -myfake.tk -myfakemail.cf -myfakemail.ga -myfakemail.gq -myfakemail.tk -myfamilytable.space -myfap.online -myfavelatinas.com -myfavmailbox.info -myfavorite.info -myfavouriterecipes.org -myfbprofiles.info -myfinanceblog.club -myfirst100recipes.com -myfirstdomainname.cf -myfirstdomainname.ga -myfirstdomainname.gq -myfirstdomainname.ml -myfirstdomainname.tk -myfirstdomains1x.ml -myfirstgoldbear.ru -myfirstphp.com -myfitness24.de -myfixafone.com -myfloridadancecompany.com -myfmmmso.shop -myfoldingshoppingcart.com -myfortune.com -myfreemail.bid -myfreemail.download -myfreemail.space -myfreemanual.asia -myfreeola.uk -myfreeserver.bid -myfreeserver.download -myfullstore.fun -myfunnymoney.ru -mygames24.ru -mygamethread.com -mygenechain.net -mygeoweb.info -mygermancar.com -myggemail.com -mygid.online -myglockner.com -myglocknergroup.com -myglockneronline.com -mygoldenmail.co -mygoldenmail.com -mygoldenmail.online -mygoodapps.ru -mygooyoo.com -mygourmetcoffee.net -mygrammarly.co -mygreatarticles.info -mygreatworld.info -mygreenstyle.ru -mygrmail.com -mygsalife.xyz -mygsalove.xyz -myguides.site -myguidesx.site -mygwinin.com -myhagiasophia.com -myhairbest.ru -myhandbagsuk.com -myhashpower.com -myhdmx.com -myhealthanswers.com -myhealthbusiness.info -myhealthwisechiro.net -myhelp.top -myhf.de -myhistoryok.online -myhiteswebsite.website -myhitorg.ru -myholidaymaldives.com -myhomedecor101.xyz -myhomedesigns.info -myhomesbeautiful.com -myhoneymy.site -myhopeishere.com -myhoroscope.com -myhorripilation.com -myhost.bid -myhosteldom.ru -myhostingbg.xyz -myhotbotts.com -myhotelpratunam.com -myhtml5game.com -myidealica.site -myilitka.site -myimail.bid -myimail.men -myimmunitydrink.com -myimpressedsite.com -myinbox.icu -myinboxmail.co.uk -myindohome.services -myinternetcoupon.com -myinterserver.ml -myiulagent.com -myjhccvdp.pl -myjordanshoes.us -myjourneymychoices.com -myjourneymychoices.info -myjubaopen.com -myjuicycouturesoutletonline.com -myjunkmail.ovh -myjustmail.co.cc -myk-pyk.eu -mykafei.com -mykanpurs.info -mykas-cenas.com -mykem.ru -mykickassideas.com -mykidsfuture.com -mykiss.fr -mykonosbet17.com -mykqsp.shop -mylaguna.ru -mylameexcuses.com -mylapak.info -mylaserlevelguide.com -mylastdomainname.cf -mylastdomainname.ga -mylastdomainname.gq -mylastdomainname.ml -mylastdomainname.tk -mylcdscreens.com -myled68456.cf -myled68456.ga -myled68456.gq -myled68456.ml -myled68456.tk -mylenecholy.com -mylenobl.ru -myletter.online -mylgbt.social -mylgbtdirectory.com -mylicas.site -mylicense.ga -mylilan.site -mylinkedinsolution.com -myliroy.site -mylisot.site -mylittleali.cf -mylittleali.ga -mylittleali.gq -mylittleali.ml -mylittleali.tk -mylittlebigbook.com -mylittleprofessor.com -mylittlepwny.com -myloans.space -myloanusanetwork.com -mylollitoys.ru -mylomagazin.ru -mylondonaccountants.com -mylongemail.info -mylongemail2015.info -mylove55.com -mylovelyfeed.info -mylovetrack.ru -myltqa.com -myluxurybeijing.com -mymacaulay.org -mymadhwa.com -mymail-in.net -mymail.hopto.org -mymail13.com -mymail90.com -mymailbest.com -mymailbox.pw -mymailbox.top -mymailboxpro.org -mymailcr.com -mymailid.tk -mymailjos.cf -mymailjos.ga -mymailjos.tk -mymaill.sirket.ltd -mymailoasis.com -mymailsrv.info -mymailsystem.co.cc -mymailto.cf -mymailto.ga -mymanual.fun -mymanual.online -mymanual.site -mymanual.space -mymanual.website -mymarketinguniversity.com -mymarkpro.com -mymicme.com -mymicroleap.com -mymindfulvoice.com -mymintinbox.com -mymitel.ml -mymobilehut.icu -mymodernhome.ca -mymogensen.com -mymogensenonline.com -mymonies.info -mymood.today -mymovement.online -mymovement.space -mymovietv.site -mymp3dl.com -mymrocrib.com -mymss.com -mymulberrybags.com -mymulberrybags.us -mymy.cf -mymymymail.com -mymymymail.net -myn4s.ddns.net -mynatim.ga -mynatim.gq -mynatim.ml -mynatim.tk -mynaxodki.ru -myneocards.cz -mynes.com -mynetsolutions.bid -mynetsolutions.men -mynetstore.de -mynetwork.cf -mynetwork.com -mynewemail.info -mynewmail.info -mynewplayers.com -mynewsqa.xyz -mynewsqd.xyz -mynewsqe.xyz -mynewsqg.xyz -mynewsqi.xyz -mynewsqp.xyz -mynewsqr.xyz -mynewsqs.xyz -mynewsqt.xyz -mynewsqu.xyz -mynewsqw.xyz -mynewsqy.xyz -myngstyh.shop -myninhhatay.ga -mynning-proxy.ga -myntra.live -myntu5.pw -myofarm.org -myology.site -myomax.com -myonepercentclub.com -myonline-services.net -myonlinemobilesubapplication.site -myonlinetarots.com -myonlinetoday.info -myopang.com -myotpp.xyz -myoverlandtandberg.com -myp2p.cd -mypacks.net -mypadestates.com -mypandoramails.com -myparisevents.com -myparkersav.com -mypartyclip.de -mypat.gq -mypat.tk -mypatioshield.com -mypdfbook.ru -mypdfmanuales.xyz -mypensionchain.cf -mypeopleent.com -myperfume.website -myperfumeshop.net -mypetsrecipes.com -myphantomemail.com -myphonam.gq -myphototimeline.com -myphpbbhost.com -mypieter.com -mypietergroup.com -mypieteronline.com -mypilotsupply.com -mypiratebay.site -mypiratebay.space -myplanmypackage.com -mypmoc.com -mypool.live -mypop3.bid -mypop3.trade -mypop3.win -mypopcircle.com -mypopproject.com -myprecede.net -myprecisebilling.com -mypremiumvault.com -mypressreleasetoday.com -mypricelessheritage.com -myprofilejob.info -mypropmaster.com -myproximity.us -mypsgr579.com -mypurchasingtoday.com -mypvc.org -myqera.info -myqrops.net -myqwik.cf -myr2d.com -myr49v.us -myramires.com -myrandomthoughts.info -myrates.ru -myraybansunglasses-sale.com -myredirect.info -myreferralconnection.com -myrelationshipgoal.com -myrepository.ru -myriadcreative.net -myriadseries.com -myrice.com -myrichglobal.club -myrileyreid.com -myriotrichiaceous.best -myriviera.ru -myriwell-msk.ru -myriwellsale.ru -myrockywave.com -myroobee.ru -myroutly.xyz -myrtc.org -myrtlebeachpro.com -mysafe.ml -mysafemail.cf -mysafemail.ga -mysafemail.gq -mysafemail.ml -mysafemail.tk -mysaitenew.ru -mysamp.de -mysanity.space -mysans.tk -mysavedmoney.com -myscretarea.site -mysecretnsa.net -mysecurebox.online -mysecuredoctor.com -myself.com -mysend-mailer.ru -mysent.ml -myseocompanyfinder.com -myseotraining.org -mysermail1.xyz -mysermail2.xyz -mysermail3.xyz -myserver.monster -mysex4me.com -mysexgames.org -myshaping3.info -myshoport.com -myshopos.ru -myshoptrennd.ru -mysignaturecleaners.us -mysipa.net -mysistersvids.com -myskaterti.ru -myskin.club -myslipsgo.ga -myslipsgo.gq -myslipsgo.ml -myslipsgo.tk -myslotttings.online -mysmartadmirror.com -mysmartfinance.online -mysms.website -mysneaker.ru -mysoftbase.com -mysoicialbrothers.com -mysooti.com -mysophiaonline.com -myspaceave.info -myspacedown.info -myspaceinc.com -myspaceinc.net -myspaceinc.org -myspacepimpedup.com -myspamless.com -mysqlbox.com -mystartupweekendpitch.info -mystery-samurai.com -mystiknetworks.com -mystufffb.fun -mystvpn.com -mystyleuae.xyz -mysudo.biz -mysudo.net -mysudomail.com -mysugartime.ru -mysunrise.tech -mysuperipfs3434.com -mysupersonic.xyz -mysuperwebhost.com -mysweetpete.com -myswisswallet.com -mytabor.ru -mytalentpantry.com -mytamilyogi.site -mytandberg.com -mytandbergonline.com -mytanks.online -mytanks.ru -mytaxes.com -mytdss.ru -mytech-surprise.com -mytechhelper.info -mytechsquare.com -mytemp.email -mytempdomain.tk -mytempemail.com -mytempmail.com -mytestshop.online -mythereesa.com -mythnick.club -mythoughtsexactly.info -mythpunkart.com -mytime.cd -mytizer111.ru -mytmail.in -mytmail.net -mytools-ipkzone.gq -mytop48.xyz -mytopface.ru -mytopwebhosting.com -mytownusa.info -mytrafficsecretsbook.com -mytrashmail.com -mytrashmail.net -mytrashmailer.com -mytrashmailr.com -mytravelstips.com -mytrommler.com -mytrommlergroup.com -mytrommleronline.com -mytrumail.com -myturisto.ru -myturkeydoctor.xyz -mytuscsanaria.com -mytuttifruitygsa.xyz -mytvc.ru -mytvisonfire.com -mytvs.online -mytyrizm.ru -myugg-trade.com -myukrainebrides.com -myumail.bid -myumail.stream -myupdates.me -myurbanwork.com -myvacation.mobi -myvapepages.com -myvaultsophia.com -myvensys.com -myversebook.net -myversebook.org -myvien88suongnguyetanh.net -myvineyard.ru -myviol12ation.site -myvip11.com -myvisionpractice.com -myvtools.com -mywallets.ru -mywarnernet.net -mywdn2.us -mywebsitesecure.com -mywegolo.com -mywend.online -mywheelchairspace.info -mywholeworld.site -mywhtx.icu -mywiemyto.online -mywikitree.com -mywildcoast.com -mywondersbook.com -mywoolie.ru -myworkhelper.com -myworkturk.online -myworld.edu -myworldfame.com -myworldfame.digital -myworldfame.online -myworldfame.site -myworldfame.store -mywow2020.xyz -mywrld.site -mywrld.top -myxl.xyz -myxnode.online -myxxx-video.ru -myybloogs.com -myylytica.site -myyogurtkingdom.com -myzat.com -myzhkt.ru -myzmail.email -myzone.press -myzx.com -myzx9.com -myzxseo.net -myzygadoc.online -myzygadoc.tech -mzagency.pl -mzbysdi.pl -mzdhfv.info -mzfactoryy.com -mzfranchising.com -mzhhqo.ga -mzhttm.com -mzhzau.com -mzigg6wjms3prrbe.cf -mzigg6wjms3prrbe.ga -mzigg6wjms3prrbe.gq -mzigg6wjms3prrbe.ml -mzigg6wjms3prrbe.tk -mziqo.com -mzlcd.us -mzlmptvf.shop -mznoe.xyz -mzoneoo1.com -mzqppqpolet.info -mzrb.email -mztiqdmrw.pl -mztravels.com -mzwallacepurses.info -mzxwvrrhh.shop -mzzlmmuv.shop -n-4ever-0nce.space -n-gtld-servers.com -n-gtld-servers.net -n-luck9.com -n-mikamc.ru -n-response.com -n-root-servers.com -n-system.com -n-trend.ru -n-videostudio.ru -n-y-a.com -n.polosburberry.com -n.spamtrap.co -n.zavio.nl -n00btajima.ga -n0100.fun -n0100.online -n0100.site -n0100.space -n0100.store -n0100.tech -n0pwdvault.com -n0qyrwqgmm.cf -n0qyrwqgmm.ga -n0qyrwqgmm.gq -n0qyrwqgmm.ml -n0qyrwqgmm.tk -n0te.tk -n120.fun -n1775.com -n19wcnom5j2d8vjr.ga -n1buy.com -n1c.info -n1nja.org -n1s1.com -n21jl.com -n2fnvtx7vgc.cf -n2fnvtx7vgc.ga -n2fnvtx7vgc.gq -n2fnvtx7vgc.ml -n2fnvtx7vgc.tk -n2gsq.us -n2ikcp.us -n2x.xyz -n3dzpn.host -n3n1cq.com -n3tflx.club -n43bwg.us -n4445.com -n4e7etw.mil.pl -n4fd.com -n4hvqy.us -n4paml3ifvoi.cf -n4paml3ifvoi.ga -n4paml3ifvoi.gq -n4paml3ifvoi.ml -n4paml3ifvoi.tk -n4qjue.us -n4rgix.info -n4v.shop -n58n.com -n59fock.pl -n5fo2.us -n5iny.us -n5q6jh.us -n5r0au.us -n659xnjpo.pl -n74fzg-mail.xyz -n78qp.com -n7i8yjto1nkf7do.xyz -n7o3hg.com -n7program.nut.cc -n7s5udd.pl -n8.gs -n89p.press -n8he49dnzyg.cf -n8he49dnzyg.ga -n8he49dnzyg.ml -n8he49dnzyg.tk -n8tini3imx15qc6mt.cf -n8tini3imx15qc6mt.ga -n8tini3imx15qc6mt.gq -n8tini3imx15qc6mt.ml -n8tini3imx15qc6mt.tk -n9fjzj8t.xyz -na-cheky.ru -na-dengy-admiralx.link -na-start.com -na201.site -na288.com -na505.site -na872.site -na988.com -naaag6ex6jnnbmt.ga -naaag6ex6jnnbmt.ml -naaag6ex6jnnbmt.tk -naaats.icu -naabiztehas.xyz -naacim-car.ru -naadqm.xyz -naagle.com -naandroid.club -naaughty.club -nabatan.cf -nabatan.gq -nabatan.ml -nabatan.tk -nabclient.com -naberswealthadvisor.com -nableali.ga -nableali.ml -naboostso.cf -naboostso.ga -naboostso.gq -naboostso.ml -naboostso.tk -nabsic.shop -nabufan.com -nabuma.com -nabumage.com -nabv.icu -nabz-iran.org -naceenelah.icu -nacer.com -nacho.pw -nacion.com.mx -nacnews.cd -nacreforachan.com -nacritical.space -nada.email -nada.ltd -nadalaktywne.pl -nadbeqx.site -nadbwnas.icu -nadcpexexw.pl -nadmorzem.com -nadolpu.cf -nadolpu.gq -nadolpu.ml -nadolpu.tk -nadrektor4.pl -nadrektor5.pl -nadrektor6.pl -nadrektor7.pl -nadrektor8.pl -nadzorsb.ru -naeglesbagels.com -nafihet.xyz -nafilllo.cf -nafilllo.ga -nafilllo.gq -nafilllo.ml -nafilllo.tk -nafko.cf -nafrem3456ails.com -naga.email -naga303.us -nagabagus.com -nagabos.com -nagaikan.asia -nagambett.net -nagambtt.com -nagambtt.net -nagamems.com -nagapkqq.biz -nagapkqq.info -nagemen.shop -naghini.cf -naghini.ga -naghini.gq -naghini.ml -nagi.be -nagljadnye-posobija.ru -naguarmora.icu -naha.tk -nahanbooks.com -naheno.gq -naheno.tk -nahibe.xyz -nahidcavadov.com -nahlxyvr.shop -nahrm.org -nahsdfiardfi.cf -nahsdfiardfi.ga -nahsdfiardfi.ml -nahsdfiardfi.tk -naicomle.gq -naicomle.tk -naiditceo.cf -naiditceo.ga -naiditceo.gq -naiditceo.ml -naiditceo.tk -naierhua.com -nailartpro.ru -nailba.info -naildiscount24.de -nailfie.cd -nailsalonbook.com -nailsmasters.ru -naim.mk -nainiutv.info -naipode.ga -naipode.gq -naipode.ml -naipode.tk -naitimp3.org -naiv.guru -najiumai.com -najlepszehotelepl.net.pl -najlepszeprzeprowadzki.pl -najpierw-masa.pl -najstyl.com -najthjihj.shop -najverea.cf -najverea.ga -najverea.gq -najverea.ml -najverea.tk -naka-popa.icu -nakaan.com -nakachat.com -nakam.xyz -nakammoleb.xyz -nakapitel.ru -nake.cam -nakedmixtapes.com -nakedtruth.biz -nakil-rannes.ru -nakorder.online -nakshamakerz.com -nakugames.ru -nakzvpn.xyz -nala-besxav.ru -nalafx.com -nalchikbroiler.ru -nalds.live -nalejlabs.org -nalevo.xyz -nalichnik78.ru -naligi.ga -naligi.gq -naligi.ml -naligi.tk -nalim.shn-host.ru -nalkte.us -naloglo.ru -naloguklonen.xyz -nalogy.xyz -nalquitwen.cf -nalquitwen.ga -nalquitwen.gq -nalquitwen.ml -nalquitwen.tk -nalrini.ga -nalrini.gq -nalrini.ml -nalrini.tk -nalukers.life -nam.su -nam10.org -nam4.org -nam6.org -namail.com -namakuirfan.com -namaquanationalpark.com -namasteyogasupply.com -namatrasnik.xyz -nambi-nedv.ru -namche.org -namde.net -nameaaa.myddns.rocks -nameart.me -namebacki.com -namebrandent.com -namefake.com -namemail.xyz -namemerfo.co.pl -namemerfo.com -nameofname.pw -nameofpic.org.ua -namepicker.com -nameprediction.com -nameq.io -namesearcher4america.com -namesever.website -nameshirt.xyz -namesperplexpower.site -namesportklop.ru -nametrans.net -nametron.net -namibiansafari.org -namify.services -namilu.com -naminady.ru -namkr.com -namloongjewellery.com -namm-cakaut.ru -namnerbca.com -namste99.com -namtinh.top -namtovarovedam.ru -namtruong318.com -namunathapa.com.np -namuoutlets.site -namushops.site -namuwikiusercontent.com -namyn.com -nan.us.to -nan02.com -nanadee.com -nanafit.host -nanafit.press -nanafit.site -nanafit.store -nanaimo.tech -nanaimoopenhouses.net -nanaimotech.com -nanbianshan.com -nancykennedyforjudge.com -nancyorlandobooks.com -nancypen.com -nandini.com -nando1.com -nangnv.club -nanniesofengland.net -nano-baby.ru -nano-scaffolding.com -nanobeerandfood.site -nanobrewbakery.com -nanobumper.com -nanocentcard.com -nanodegrees.mobi -nanofielznan3s5bsvp.cf -nanofielznan3s5bsvp.ga -nanofielznan3s5bsvp.gq -nanofielznan3s5bsvp.ml -nanofielznan3s5bsvp.tk -nanokeycard.com -nanokoruyucumaske.xyz -nanonym.ch -nanopc.ru -nanostripes.com -nanotechranch.com -nanoxbio.ru -nanrosub.ga -nanrosub.gq -nanrosub.ml -nansanyule.com -nanshan-yule.com -nanshanys.info -nansyiiah.xyz -nanyang.news -nanyangpost.net -naogaon.gq -naonoan.space -naoug.com -nap2boost.com -napaeyes.com -napalm51.cf -napalm51.flu.cc -napalm51.ga -napalm51.gq -napalm51.igg.biz -napalm51.ml -napalm51.nut.cc -napalm51.tk -napalm51.usa.cc -nape.net -naphavonghotel.com -napkinfolding.club -naplesmanatees.com -napnhanhspin.work -napolix.it -nappamurra.com -nappassportmrs.website -nappillows.info -naprawa-wroclaw.xaa.pl -napston.org -napwa.org -naquke.info -narad.pro -naradi.online -naramatapress.com -narcardsearch.cf -narcardsearch.gq -narcardsearch.ml -narcardsearch.tk -narcologist.ru -narcomexica.online -narcotizes67sd.online -nares.de -nargileal.xyz -narjwoosyn.pl -narliderecooperative.info -narnia-chronik.com -narodnydoctor.ru -narrec10.club -narsan.ru -narthehpnk.space -narublevku.ru -narushiteli.info -narutogamesforum.xyz -narutotupoy.space -narutrk.site -narvetsfebv.ga -narvetsfebv.gq -narvetsfebv.ml -narvetsfebv.tk -narwhalsecurity.com -narwhalsecurity.net -nasa.iotu.nctu.me -nasadki-konditer.ru -nasaert2.website -nasamdele.ru -nascimento.com -nasedra.site -nasepismos.info -nash.ml -nasha-rasha-sezon.ru -nashaobuvka.ru -nashipodarky.ru -nashitufelki.ru -nashnettest.com -nashproekt2019.ru -nashvilledaybook.com -nashvillenailsalons.com -nashvillequote.com -nasimpourya.com -nasinyang.cf -nasinyang.ga -nasinyang.gq -nasinyang.ml -nasios.xyz -nasise.cf -nasise.ga -nasise.gq -nasise.ml -naskotk.cf -naskotk.ga -naskotk.ml -naslazhdai.ru -nasledpoluchit.xyz -nasobef.xyz -nasolalxnd.space -nasosdozator.ru -nasrinmoh45.ir -nasscopund.icu -nassecams.online -nastroikalinuksa.ru -nastroykaastralinux.ru -nastroykalinuxa.ru -nastroykamagento.ru -naszelato.pl -naszewspomnienia.site -nat4.us -nata4d.site -natachasteven.com -natacion.online -natafaka.online -natal.store -nataliacioffi.com -natalies.info -natalnaiakarta.ru -natalurbano.com -natashaparkinson.buzz -natchaler.store -nate.co.kr -nateshops.site -nathanexplosion.com -nathangould.com -natillas-shop-4u.ru -national-alert.org -national-escorts.co.uk -national.shitposting.agency -nationalartsstandard.org -nationalassociationoftinyhouses.com -nationalbiztravelerday.com -nationalcbdcorporation.com -nationalchalkassociation.com -nationalchampionshiplivestream.com -nationaldictionary.xyz -nationaleatyourveggiesday.com -nationalgardeningclub.com -nationalgerometrics.com -nationalhealthsystem.site -nationalizing203nb.online -nationallists.com -nationalsalesmultiplier.com -nationalspeedwaystadium.co -nationalwholeblood.org -nationchange.com -nationwidedebtconsultants.co.uk -nationz.poker -natitre.ru -native-spirit.cat -nativelmqt.space -nativenationsgc.com -nativityans.ru -natomar.cf -natomar.ga -natomar.ml -natomar.tk -natomasnorthlake.com -natsy.ru -natter.dev -natterstefan.dev -natuche.ru -naturadomy.com -natural-helpfored.site -naturalapiary.us -naturalbodybuildingevents.net -naturalious.com -naturalizes488ls.online -naturalnoemylo.ru -naturalproplant.com -naturalstonetables.com -naturalstudy.ru -naturaltai.ru -naturalvetcollection.com -naturalwebmedicine.net -nature-me.site -natureetscience.com -naturegift.ru -natureglobe.pw -naturesfood.shop -naturesmysteries.net -naturewild.ru -naturgate.ru -naturopathequipment.com -natxt.com -naubuti.ga -naubuti.gq -naubuti.ml -naubuti.tk -nauchi-online.ru -naucrary.site -naucrary.xyz -naudalenku.online -naudau.com -naudlenku.ru -naufra.ga -naughty-blog.com -naughtyrevenue.com -nauka999.pl -naupegical.xyz -naupoge.cf -naupoge.ga -naupoge.gq -naupoge.ml -naupoge.tk -naureico.cf -naureico.ga -naureico.gq -nauticalconsultingservices.com -nauticsteel.com -nautoriuses.website -nauyr.site -navadb90b.net -navadbet90.online -navan-palace.com -navarroinsurancesolutions.com -navelgazingmidwife.com -navelnaivetyprice.site -navendazanist.net -naveon.ru -navientlogin.net -navigandopisa.com -navigationre.com -naviosun-ca.info -navistarcumminskenworthdetroit.com -navivere.net -navlys.xyz -navmail.org -navmanwirelessoem.com -navoff.com -navyfederaill.org -navyhodnye.ru -nawe-videohd.ru -nawforum.ru -nawideti.ru -nawmin.info -nawny.com -naxamll.com -naxsw5.us -nayaritluxuryproperty.com -nayatelier.com -naybackmig.cf -naybackmig.ga -naybackmig.ml -naydrakem.ga -naydrakem.tk -nayiye.xyz -nayobok.net -nayshki.ru -nazaco.xyz -nazdem.info -nazillilisesi.xyz -nazimail.cf -nazimail.ga -nazimail.gq -nazimail.ml -nazimail.tk -nazuboutique.site -nb-me.com -nb-om.com -nb-sg.com -nb1008.com -nb3gw8-mail.xyz -nb4tx2.us -nb55.org -nb8qadcdnsqxel.cf -nb8qadcdnsqxel.ga -nb8qadcdnsqxel.gq -nb8qadcdnsqxel.ml -nb8qadcdnsqxel.tk -nbabasketball.info -nbacheap.com -nbaclubuniversity.com -nbahdtv.us -nbajerseyshop.xyz -nbaknicksx.xyz -nbalakerskidstshirt.info -nbantw.us -nbapredictor.com -nbchurch.pro -nbcstech.com -nbd.biz -nbdhny.com -nbenealto.cf -nbenealto.ga -nbenealto.ml -nbenealto.tk -nbhsssib.fun -nbjnmj.com -nbnb168.com -nbnb88.com -nbnce00.com -nbobd.com -nbox.notif.me -nboxwebli.eu -nbpwvtkjke.pl -nbrdaudi.com -nbrdw.info -nbrlnmrhbass25330.tk -nbrlnmrhbass52441.cf -nbrlnmrhbass55479.cf -nbrlnmrhbass64152.ml -nbrsndnbniyi60143.ml -nbrsndnbniyi60143.tk -nbrst7e.top -nbrzsrri.shop -nbseomail.com -nbvojcesai5vtzkontf.cf -nbvwtibt.shop -nbxtou.info -nbzmr.com -nbzqpv.site -nbzzy.com -nc.webkrasotka.com -nc0817.net -nc6lhu.us -nc6mayruth.com -ncaaomg.com -ncaccenture.com -ncatdamge.ga -ncatdamge.gq -ncatdamge.ml -ncatdamge.tk -ncbdfyy.com -nccdxn.icu -ncced.org -nccmontreal.org -ncco.de -nccts.org -ncdc-laborers.net -ncdentalimplants.com -ncdrw.info -nce2x8j4cg5klgpupt.cf -nce2x8j4cg5klgpupt.ga -nce2x8j4cg5klgpupt.gq -nce2x8j4cg5klgpupt.ml -nce2x8j4cg5klgpupt.tk -ncedetrfr8989.cf -ncedetrfr8989.ga -ncedetrfr8989.gq -ncedetrfr8989.ml -ncedetrfr8989.tk -nceng.dev -ncenucra.cf -ncenucra.gq -ncenucra.ml -ncenucra.tk -ncewy646eyqq1.cf -ncewy646eyqq1.ga -ncewy646eyqq1.gq -ncewy646eyqq1.ml -ncewy646eyqq1.tk -ncfastdeals.com -nchalfpricedlisting.com -nchalfpricelistings.com -ncid.xyz -ncinema3d.ru -ncixp.com -nclean.us -nclouddns.com -ncmaracing.com -ncmarket.site -ncmlw.info -ncncinc.com -ncov.office.gy -ncpine.com -ncreseachsociety.org -ncs-3.com -ncs-5.com -ncs-777.com -ncseculogin.info -ncsoft.top -ncstore.email -ncstore.me -nctlab.ru -nctm.de -nctuiem.xyz -ncxunaxu.shop -ncyoungliving.com -nd-re.com -nd0qm6.com -ndavis.com -ndayav.com -ndcpmarketplace.net -ndcpmarketplace.org -ndd000.tk -nddgxslntg3ogv.cf -nddgxslntg3ogv.ga -nddgxslntg3ogv.gq -nddgxslntg3ogv.ml -nddgxslntg3ogv.tk -ndek4g0h62b.cf -ndek4g0h62b.ga -ndek4g0h62b.gq -ndek4g0h62b.ml -ndek4g0h62b.tk -ndemail.ga -ndeooo.club -ndeooo.com -ndeooo.xyz -nderndeu.shop -ndesign-studio.ru -ndeunder.shop -ndfakemail.ga -ndfbmail.ga -ndgamer.online -ndgsw.info -ndhalfpricelistings.com -ndif8wuumk26gv5.cf -ndif8wuumk26gv5.ga -ndif8wuumk26gv5.gq -ndif8wuumk26gv5.ml -ndif8wuumk26gv5.tk -ndihisucy.shop -ndinstamail.ga -ndiqj1.site -ndmail.cf -ndn02.space -ndnaction.com -ndnaction.net -ndprndpa.shop -ndrb.us -nds-abilities.host -nds-assurance.website -nds-re.com -nds-was.space -nds8ufik2kfxku.cf -nds8ufik2kfxku.ga -nds8ufik2kfxku.gq -nds8ufik2kfxku.ml -nds8ufik2kfxku.tk -ndscalc.site -ndscalc.store -ndtglossary.com -ndtx74.online -ndvigenie-ru.site -ndxgokuye98hh.ga -ndyj.xyz -ndzalo.africa -ne-neon.info -ne4382.com -neajazzmasters.com -nealyauto.com -neam3b.info -neanta.ru -nearbyharvest.net -nearbyharvest.org -nearcomet.net -neard.hk -nearify.com -nearsightedness.info -neatbetting.com -neatgrosshandel.com -neathandvi.cf -neathandvi.gq -neathandvi.tk -neatlypolished.com -neatopod.store -neatslots.com -neatstats.com -neayel.icu -nebbishes.best -nebbo.online -nebltiten0p.cf -nebltiten0p.gq -nebltiten0p.ml -nebltiten0p.tk -neboleim.site -nebooblakem.xyz -nebraskaadoption.org -nebraskaquote.com -nebraskawomensbar.org -nebulaserve.com -neccomputers.com -necesce.info -necessaryengagements.info -necessure.site -nechasa.cf -nechasa.ga -nechasa.gq -nechasa.ml -nechasa.tk -necklacebeautiful.com -necklacenug.com -necklacenugs.com -necklacesbracelets.com -necknugs.com -neclipspui.com -necsilan.cf -necsilan.gq -necsilan.tk -nedbittinger.com -nedcxim-likimam.ru -nederchan.org -nedevit1.icu -nedf.de -nediyor.net -nediyor.org -nedmin.com -nedoz.com -nedrk.com -neds.cards -neds.cash -neds.coupons -neds.fail -neds.fund -neds.gold -neds.live -neds.ph -neds.promo -nedt.com -nedt.net -nedv-stupino.ru -need-mail.com -needaprint.co.uk -needcore.ru -needdentistnearme.com -needfogr.cf -needfulhost.com -needhamspine.com -needidoo.org.ua -needkasoi.tk -needlevyjs.site -needlilog.xyz -neednow.org -needrabit.cf -needrabit.ga -needrabit.gq -needrabit.tk -neenahdqgrillchill.com -neet123.com -neetbt.com -neetwiki.com -neewho.pl -nefariousunion.com -neffsnapback.com -neft.club -negated.com -negociodigitalinteligente.com -negociosyempresas.info -negrocavallo.pl -negrofilio.com -negruz.ru -nehalfpricedlisting.com -nehartcan.cf -nehartcan.ga -nehartcan.ml -nehi.info -nehzlyqjmgv.auto.pl -neibu306.com -neibu963.com -neic.com -neicastpos.cf -neicastpos.ga -neicastpos.gq -neicastpos.ml -neicastpos.tk -neighborhood765jh.online -neighbour.expert -neilanderson.net -neiro777-official.ru -neiroseven-official.ru -neiroseven.ru -neirosonic.ru -neirosystem7-store.ru -neit.email -neiti53.icu -nejamaiscesser.com -nejatngo.info -nekiga.cf -nekiga.ga -nekiga.gq -nekiga.ml -nekiga.tk -neko2.net -nekochan.fr -nekojita.blog -nekomi.net -nekopoker.com -nekopoker.net -nekopoker.org -nekursam.com -nel21.cc -nel21.me -nela.site -nelasat.com -nelasoft.com -nellolitoday.com -nellyhouse.co -nelriona.cf -nelriona.ga -nelriona.gq -nelsontvip.site -nemeczek.biz -nemesis-host.net -nemhgjujdj76kj.tk -nemisupermart.site -nempo.net -nemtxjjblt.icu -nenekbet.com -nenengsaja.cf -nenproso.tech -nenrile.ga -nenrile.gq -nenrile.ml -nentorit.cf -nentorit.ga -nentorit.gq -nentorit.ml -neo10.xyz -neo11.xyz -neo17.xyz -neo18.xyz -neo19.xyz -neo20.xyz -neo4.xyz -neo6.xyz -neobkhodimoe.ru -neoblog.icu -neocede.cf -neocede.gq -neocede.ml -neocivil.com -neoclarob.gq -neoconstruction.net -neocorp2000.com -neocri.me -neoditho.cf -neodito.cf -neodito.ga -neodito.gq -neodito.ml -neodito.tk -neoghost.com -neohkj.info -neololyc.ga -neololyc.gq -neololyc.ml -neomailbox.com -neon.waw.pl -neonaerospace.net -neonbees.info -neonclub.com -neonexchange.company -neonigratonline.ru -neonmask-official.ru -neontogel.com -neontogel.org -neontology.xyz -neonwolf.info -neopetcheats.org -neore.xyz -neosaumal.com -neoscmscheck.xyz -neosilico.com -neoss.ru -neoterism.site -neoterize359cm.online -neotlozhniy-zaim.ru -neotrade.ru -neovalorinvestimento.com -nepal-nedv.ru -nepalecolodges.com -nepbt.com -nepgame.com -nepheme.live -nephisandeanpanflute.com -nepnut.com -neppi.site -neptun-pro.ru -nepwk.com -neq.us -neracapoker.net -nerasto.gq -nerasto.ml -nerasto.tk -nercatu.ga -nercatu.ml -nercatu.tk -nerd.click -nerdmail.co -nerdonamission.com -nerds.dating -nerds4u.com.au -nerdtechgroup.com -nerdtees.space -neremail.com -nerfgunstore.com -nerimosaja.cf -nerjasolar.com -nerjavei.ru -nermin.ru -nerocommerce.shop -nerroiuty.tk -nerrys.com -nerud-domodedovo.ru -nerud-noginsk.ru -nerveequa.press -nervegl.xyz -nervmich.net -nervtmich.net -nesbee.pw -nescafelatte.com -nesda.space -neseltekstil.xyz -neshyoga.site -nesine-iddaa.org -nesine.fun -nesita.ga -nesita.gq -nesita.ml -nesita.tk -neslihanozmert.com -neslon1.site -neslon6.site -neslon8.site -nespaneed.cf -nespaneed.ga -nespaneed.ml -nespaneed.tk -nespello.com -nessmolo.cf -nessmolo.ga -nessmolo.gq -nessmolo.ml -nessmolo.tk -nessnirap.cf -nessnirap.ga -nessnirap.ml -nessnirap.tk -nesssiggawiremp.space -nessterba.cf -nessterba.ga -nessterba.gq -nessterba.ml -nessterba.tk -nestjs.pro -nestkenyas.info -nestle-usa.cf -nestle-usa.ga -nestle-usa.gq -nestle-usa.ml -nestle-usa.tk -nestor99.co.uk -nestspace.co -nesuppe.site -nesy.pl -nesy.site -net-led.com.pl -net-link.biz -net-list.com -net-order.biz -net-piyango.biz -net-privichkam.ru -net-solution.info -net191.com -net1mail.com -net2222.com -net2mail.top -net3mail.com -net5555.com -net6host.com -net8mail.com -neta123.com -netaa318.xyz -netaccessman.com -netandmarket.com -netatv.com -netawiki.com -netbonking.com -netbookera.com -netcol.club -netcom.ws -netctrcon.live -netdisk.life -netexchangeclient.com -netfacc.com -netfercloud.com -netflixaddons.xyz -netflixcostarica.com -netflixmexico.net -netflixweb.com -netgainmedia.com -netgameslots.ru -netgas.info -netgdpr.com -netgo.chat -nethermon4ik.ru -nethost5.com -nethotmail.com -nethubcommunity.com -nethurra.com -netiptv.site -netipun.cf -netipun.ga -netipun.gq -netipun.ml -netipun.tk -netiva.biz -netjex.xyz -netkao.xyz -netkiff.info -netlawlifevault.com -netmail-pro.com -netmail.tk -netmail3.net -netmail8.com -netmail9.com -netmails.com -netmails.info -netmails.net -netmarketingforum.com -netmeesters.com -netmidiadesign.com -netnotcinema.com -netolsteem.ru -netomon.com -netouyo.net -netozyr.xyz -netp22.xyz -netpaper.eu -netpaper.ml -netpdfmanuales.xyz -netpiyango.biz -netpiyango.info -netpiyango.org -netplikaye.com -netplix.site -netplixprem.xyz -netpoker303.net -netprfit.com -netprofitfunnels.com -netpromove.ml -netricity.nl -netris.net -netsec.onl -netsense.us -netsoftcreative.com -netsolutions.top -netsputnik.ru -nettefinansman.xyz -nettetasarruf.xyz -nettikasinot24.org -nettmail.com -nettogar.ml -nettrosrest.cf -nettrosrest.ga -nettrosrest.gq -nettrosrest.ml -nettrosrest.tk -netupskiy.ru -netuygun.online -netvaiclus.cf -netvaiclus.ga -netvaiclus.gq -netvaiclus.ml -netvaiclus.tk -netven.site -netveplay.com -netviewer-france.com -network-advantage.site -network-loans.co.uk -network-smart.site -network-source.com -network-streaming.com -networkafter.org -networkafter.us -networkapps.info -networkbio.com -networkcabletracker.com -networkchoice.site -networker.pro -networkersjunction.com -networkintentions.site -networkofemail.com -networkrank.com -networksfs.com -networksmail.gdn -networksmart.site -networktv.online -networthdetail.club -networthtop.club -netxservices.net -netxservices.org -netzeroexpo.com -netzerofestivallondon.com -netzerofestivaluk.com -netzidiot.de -netzwerk-industrie.de -neucasinoslots.com -neuemode85.site -neufunria.gq -neufunria.ml -neujahrsgruesse.info -neujajunc.cf -neujajunc.ga -neujajunc.gq -neujajunc.tk -neulanso.cf -neulanso.gq -neulanso.tk -neundetav.cf -neundetav.ga -neundetav.gq -neundetav.ml -neundetav.tk -neuquen-labs.com -neural.host -neuro-safety.net -neuro-safety.org -neuro7-shop.ru -neuro7system.ru -neurobraincenter.com -neuroect.com -neuroleadershipsolutions.org -neurologicrehabcenter.com -neuronsfordiscovery.com -neuronsforremoteintelligence.net -neuronsworkspace.info -neuronx.trade -neurosize.com -neurosystem-cool.ru -neurosystem7-coolshop.ru -neurosystem7-org.ru -neurosystemseven-store.ru -neurosystemseven.ru -neusp.loan -neutibu.cf -neutibu.tk -neutroncloudtesting.com -neutronmail.gdn -nevada-nedv.ru -nevadafastoffers.com -nevadaibm.com -nevadamar.com -nevadaquote.com -nevadarenewables.org -nevadarp.ru -nevadasnow.com -nevadasunshine.info -nevears.info -neverbox.com -neverbox.net -neverbox.org -nevereatingagain.com -neverenuff.com -neverit.tk -nevermail.de -nevermorsss1.ru -nevermorsss3.ru -nevermorsss5.ru -nevermosss7.ru -nevernameless.com -neverneverland.ru -nevernverfsa.org.ua -neverthisqq.org.ua -nevertmail.cf -nevertoolate.org.ua -neverttasd.org.ua -neverwype.com -nevfam.ru -nevsehiralemdar.xyz -new-action-clear.host -new-beats-by-dr-dre.com -new-belstaff-jackets.com -new-berrystats.com -new-canton-house-mullingar.com -new-card.website -new-dragon-takeaway.com -new-eckwu.club -new-games.space -new-girls.club -new-health-nutrition.com -new-health.space -new-marketing-official.ru -new-money.xyz -new-moon-tullow.com -new-outlet-mart.ru -new-papa.club -new-paulsmithjp.com -new-purse.com -new-sunrise-takeaway.com -new-tisar.ru -new-victoria-dublin.com -new-world-oriental-takeaway.com -new-wow-info.ru -new-yea-action.ru -new-year-gadgets.monster -new-year-lucky-gift.icu -new-year-lucky-gifts.monster -new-year-special-gift.icu -new-year-special-gift.monster -new-york-wedding.com -new-york.host -new.viola.gq -new688e.ga -newa.wtf -newage.press -newagebotanicalsllc.com -newageprovision.net -newageprovisions.net -newairmail.com -newakie.space -newappsusa.com -newarktribune.com -newatarivcs.com -newattacks.com -newaybag.com -newayshome.ru -newbal.xyz -newbalanceretail.com -newbeatslive.club -newbeekeepers.us -newbelstaff-jackets.com -newberlindentists.com -newberry-stats.com -newberrystat-s.com -newberrytully.com -newborn24.com -newbornart.uk -newbpotato.tk -newbridesguide.com -newbrunswickdentists.com -newbrunswickdoctors.com -newburghapartments.com -newburlingtoncoatfactorycoupons.com -newc.site -newcanada-goose-outlet.com -newcartones.xyz -newceilingsbrevard.com -newcentermc.ru -newcentglos.cf -newcentglos.ga -newcentglos.ml -newcentglos.tk -newchristianlouboutinoutletfr.com -newchristianlouboutinshoesusa.us -newclarkcity.guide -newcoloringpage.club -newcolumbiainc.com -newcomerprograms.org -newdawnnm.xyz -newdaydevelopment.org -newdaykg.tk -newdesigner-watches.info -newdesignmedia.info -newdewata88.com -newdigitalmediainc.com -newdragonchinese.com -newdrw.com -newe-mail.com -neweasy2.net -neweducations.ru -neweducationtools.ru -neweffe.shop -newemperorcity-galway.com -newempreendorismoemcao.com -newenglandmotorvehicleaccident.com -neweranews1.com -neweranews15.com -neweranews16.com -neweranews19.com -neweranews20.com -neweranews3.com -neweranews4.com -neweranews5.com -neweranews8.com -newerasolutions.co -newestnike.com -newestpumpshoes.info -newesttestament.us -newfilm24.ru -newfinances.ru -newfishingaccessories.com -newfloridavisionpac.live -newforestdrift.com -newformcontent.com -newfoundlandchocolatecompany.ca -newgameexpert.ru -newgeneration.cyou -newgmaill.com -newgmailruner.com -newgrandx.com -newhalik.club -newhampshirecareers.com -newhampshirequote.com -newhdblog.com -newhempcbd.com -newhomemaintenanceinfo.com -newhomepizza.com -newhopebaptistaurora.com -newhorizons.gq -newhorrizon.ru -newia.site -newideasfornewpeople.info -newik.site -newim.site -newimagedentistryoc.com -newinfogroup.website -newio.site -newiq.site -newiz.site -newj.site -newjersey-debtconsolidation.com -newjerseyaddictionrehab.com -newjerseyadoption.org -newjerseybrasil.com -newjerseyjewishmonuments.com -newjetsadabet.com -newjordanshoes.us -newjp-100.xyz -newjp-101.xyz -newjp-102.xyz -newjp-103.xyz -newkarmalooppromocodes.com -newkebabpalace.com -newland-dublin8.com -newleaf-tallaght.com -newleafwriters.com -newlifelogs.com -newlifepathways.com -newljeti.cf -newljeti.ga -newljeti.gq -newljeti.ml -newlove.com -newmail.top -newmailsc.com -newmailss.co.cc -newmandarinmalahide.com -newmangroupstore.com -newmarketingcomapny.info -newmarlborough.icu -newmedicforum.com -newmesotheliomalaywers.com -newmexicoelevatorsolutions.com -newmexicoquote.com -newmobiledevtop.club -newmoneymemo.com -newmonsteroutlet2014.co.uk -newmotionrp.ru -newmovietrailers.biz -newmrkebabmalaga.com -newmuzon.ru -newness.info -newnetfx.website -newneurosystem7.ru -newnewsforex.ru -newnodepositcasinobonuses.com -newnxnsupport.ru -newo.site -newoa.site -newob.site -newones.com -newop.site -neworderofthenorthandsouthmrcinc.com -neworleansopiaterehab.com -newpathsinmusic.org -newpdfmanuales.xyz -newpekingtakeaway.com -newpk.com -newportcosmeceuticalsinc.com -newportrelo.com -newportunderthestars.com -newpotolok24.ru -newproduct2.xyz -newproduct2020.site -newproxy.site -newpupclub.com -newreal-dating1.com -newrezadarg.xyz -newrezagozel.xyz -newrezka.online -newroc.info -news-2in1.ru -news-education.ru -news-online24.info -news-perviy.ru -news-trends.online -news-videohd.ru -news-whiz.com -news-year.ru -news3.edu -newsaa318.xyz -newsairjordansales.com -newsbook.se -newsbrut.club -newscenterdecatur.com -newscoin.club -newscorp.cf -newscorp.gq -newscorp.ml -newscorpcentral.com -newsdubi.cf -newsdubi.ga -newsdubi.ml -newsdubi.tk -newsdvdjapan.com -newserver.website -newsfeeder.org -newsforhouse.com -newsforus24.info -newsgolfjapan.com -newsgru.com -newshoneybhealthyliving.com -newshourly.net -newshubz.tk -newsinhouse.com -newsitems.com -newskit.net -newslent.space -newsletterbroadcaster.info -newsletterbroadcaster.net -newsm.info -newsmag.us -newsmaramax.ru -newsmatix.com -newsmonger.ru -newsmonster.info -newsms.pl -newsnodewire.com -newsongjapan.com -newsonlinejapan.com -newsonlinejp.com -newsouting.com -newspacetime.com -newspdf.online -newspro.fun -newsromania.xyz -newss-8.online -newssites.com -newsslimming.info -newssportsjapan.com -newstabilbettingsnapp.xyz -newstantre.cf -newstantre.ga -newstantre.gq -newstantre.ml -newstantre.tk -newstarescorts.com -newstarss.ru -newstartgo.ru -newstekno.review -newstheday.net -newstudio48.xyz -newstyle-handbags.info -newstylecamera.info -newstylehandbags.info -newstylescarves.info -newsunrisedublin7.com -newsusfun.com -newswimwear2012.info -newtakemail.ml -newtempmail.com -newtestik.co.cc -newtimespop.com -newtmail.com -newtogel.com -newtogel.xyz -newton.money -newtopian.org -newtrendmag.xyz -newtrends-shop.fun -newtrierliving.info -newtrucker.com -newtuber.info -newuggoutlet-shop.com -newulife.global -newunionnyc.com -newuserdev.org -newviral.fun -newvol.info -newway-sy.com -newwinterrss.com -newworimjq.space -newx6.info -newyearfreepas.ws -newyearnewchance.faith -newyearsevela.com -newyork-divorce.org -newyorkfamilyhistoryschool.com -newyorkfamilyhistoryschool.org -newyorkinjurynews.com -newyorkjan.com -newyorkmonthlyherald.com -newyorkoaks.com -newyorkoliveoilcompany.com -newyorkpaas.com -newyorkpersonalinjurylawyers.com -newyorkskyride.net -newzbate.com -newzbling.com -newzealand-impressions.info -newzeroemail.com -newzgraph.net -newzherald.com -nexbet40.online -nexgen-buysrentals.com -nexhibit.com -nexio.us -nexitele.com -nexofinance.us -nexostartups.com -nexral.com -nexriseinfo.tech -nexscience.tk -nexsman.com -nexswiss.org -next-mail.info -next-mail.online -next.net -next.ovh -next.umy.kr -next2cloud.info -next88home.com -next88tech.asia -nextag.com -nextbasic.store -nextbranchstrategies.com -nextcase.foundation -nextcloud.design -nextderm.com -nextdont.com -nextdoorfamilypov.com -nextemail.in -nextemail.net -nextfash.com -nextgenadmin.com -nextgencoaching.org -nextgenmail.cf -nextinnovation.network -nextlevelesport.com -nextlify.site -nextmail.in -nextmail.info -nextmarketer.com -nextmin.com -nextmola.com -nextoc.com -nextracom.info -nextshop.host -nextstopvalhalla.com -nextthingsecrets.com -nexttonorm.com -nexus188.org -nexus388.org -nexussupplys.com -nexxtconnect2020.com -nexyfo.info -neyann.site -neystipan.cf -neystipan.ga -neystipan.gq -neystipan.ml -neystipan.tk -nezamiyi.site -nezdiro.org -nezoinc.cf -nezzart.com -nf151.top -nf2m6z-mail.xyz -nf2v9tc4iqazwkl9sg.cf -nf2v9tc4iqazwkl9sg.ga -nf2v9tc4iqazwkl9sg.ml -nf2v9tc4iqazwkl9sg.tk -nf38.pl -nf5pxgobv3zfsmo.cf -nf5pxgobv3zfsmo.ga -nf5pxgobv3zfsmo.gq -nf5pxgobv3zfsmo.ml -nf5pxgobv3zfsmo.tk -nf607.site -nfaca.org -nfamilii2011.co.cc -nfast.net -nfcbilekliksistem.com -nfcq.email -nfdhelp.com -nffwrc.com -nfhtbcwuc.pl -nfirmemail.com -nfl.name -nfl49erssuperbowlshop.com -nfl5.com -nflbettings.info -nflfootballonlineforyou.com -nflixnow.pl -nfljerseyscool.com -nfljerseysussupplier.com -nflnewsforfun.com -nflravenssuperbowl.com -nflravenssuperbowlshop.com -nflshop112.com -nflxnw.website -nfmfharates.us -nfmqh.us -nfnorthfaceoutlet.co.uk -nfnov28y9r7pxox.ga -nfnov28y9r7pxox.gq -nfnov28y9r7pxox.ml -nfnov28y9r7pxox.tk -nfnyvbxt.shop -nforinpo.cf -nforinpo.ga -nforinpo.gq -nforinpo.ml -nforinpo.tk -nforunen.ga -nforunen.gq -nforunen.ml -nforunen.tk -nfovhqwrto1hwktbup.cf -nfovhqwrto1hwktbup.ga -nfovhqwrto1hwktbup.gq -nfovhqwrto1hwktbup.ml -nfovhqwrto1hwktbup.tk -nfptest.org -nfrk.us -nfs-xgame.ru -nft0hi.us -nftaac.com -nftuij.us -nfudo0.com -nfxr.ga -nfxr.tk -nfzead.us -nfzqga.com -ng9rcmxkhbpnvn4jis.cf -ng9rcmxkhbpnvn4jis.ga -ng9rcmxkhbpnvn4jis.gq -ng9rcmxkhbpnvn4jis.ml -ng9rcmxkhbpnvn4jis.tk -ngaydi.xyz -ngayngo.asia -ngc.team -ngeme.me -ngentodgan-awewe.club -ngentot.info -ngf1.com -ngg1bxl0xby16ze.cf -ngg1bxl0xby16ze.ga -ngg1bxl0xby16ze.gq -ngg1bxl0xby16ze.ml -ngg1bxl0xby16ze.tk -nghacks.com -nghiduonghoian.com -nghiencuuquocte.com -nginbox.tk -nginxphp.com -ngipsq.com -ngit9.us -ngjcyu.icu -ngo1.com -ngobakha.ga -ngoctravel.net -ngolearning.info -ngowscf.pl -ngplayer.com -ngqn.icu -ngreasr.ru -ngroove.com -ngscloud.space -ngspi.ru -ngstudio.org -ngt-taxi.ru -ngt7nm4pii0qezwpm.cf -ngt7nm4pii0qezwpm.ml -ngt7nm4pii0qezwpm.tk -ngtheir.shop -ngtierlkexzmibhv.ga -ngtierlkexzmibhv.ml -ngtierlkexzmibhv.tk -ngtix.com -ngtlcz.us -ngtleads.com -ngtohl.us -ngtrw.info -ngucoclinhan.com -nguhoc.xyz -nguhocxyz.xyz -nguoigocviet.info -nguonnhanluc.com -nguyenduyphong.tk -nguyentamvinh.ga -nguyentuanvu.asia -nguyenusedcars.com -ngwsw.info -nh3.ro -nha.best -nhacai88.online -nhadatdai.com -nhadatgiaviet.com -nhadephm.com -nhadepnhat.com -nhahangmuoiot.com -nhakhoa.xyz -nhakhokygui.com -nhanhdinhbongda.net -nhanpro.net -nhaphovinhomesquan9.com -nhatdinhmuaduocxe.info -nhatvip.us -nhaucungtui.com -nhaxinh.xyz -nhazmp.us -nhbrqigc.shop -nhcareerinstitute.org -nhdental.co -nhfg5b.online -nhghotels.net -nhgrettora.site -nhhalfpricelisting.com -nhhalfpricelistings.com -nhhburyazveno.site -nhhjgses.xyz -nhhkernpurga.site -nhhkernshtorm.site -nhhkjt.icu -nhhparkapurga.site -nhhstolbvenec.site -nhhzvenokern.site -nhi9ti90tq5lowtih.cf -nhi9ti90tq5lowtih.ga -nhi9ti90tq5lowtih.gq -nhi9ti90tq5lowtih.tk -nhifswkaidn4hr0dwf4.cf -nhifswkaidn4hr0dwf4.ga -nhifswkaidn4hr0dwf4.gq -nhifswkaidn4hr0dwf4.ml -nhifswkaidn4hr0dwf4.tk -nhisystem1.org -nhjobanerm.site -nhjxwhpyg.pl -nhkt5f.com -nhlwqdyqxp.best -nhmicrosoft.com -nhryw.info -nhs0armheivn.cf -nhs0armheivn.ga -nhs0armheivn.gq -nhs0armheivn.ml -nhs0armheivn.tk -nhserr.com -nhspatientconnector.com -nhtelyatina.site -nhuconcack.top -nhuconcack.xyz -nhuthi.design -nhvdwl.com -nhvlrc.space -nhysb.icu -nhzbw.info -nhzjbi.info -nhzlakihleba.site -ni-so.com -ni24.club -ni29.club -ni2tca.com -ni35.club -ni36.club -ni37.club -ni520wo.com -ni64ru.host -ni6tdw.us -niach.ga -niachecomp.cf -niachecomp.ga -niachecomp.gq -niacinamok.space -niagarafallsrealestateagents.com -niamhstorey.buzz -niaopie.club -niassanationalreserve.org -niatob.us -nibinsurance.com -niboptions.com -nibphina.ml -nibphina.tk -nic.aupet.it -nic58.com -nicalfajor.buzz -nice-4u.com -nice-postel.ru -nice-tits.info -nicea.online -nicebeads.biz -nicecardstores.com -nicechas.info -nicecorset.com -nicedropshop.ru -nicegarden.us -nicegashs.info -nicehao.com -nicehash-alternative.com -nicehash.review -nicehotels.live -niceintro.com -nicejoke.ru -nicelodsy.ru -nicely.info -nicemail.pro -nicemebel.pl -nicemotorcyclepart.com -nicerack.icu -nicerams.info -niceroom2.eu -nicewoodenbaskets.com -niceyou06.site -niceyou07.site -niceyou13.site -niceyou14.site -niceyou16.site -niceyou17.site -nichenetwork.net -nicheowl.net -nichess.cf -nichess.ga -nichess.gq -nichess.ml -nichestack.wiki -nicholaiburton.com -nicholascalice.com -nichole.essence.webmailious.top -nicico.net -nick-s.info -nickbizimisimiz.ml -nickelkbau.space -nickholmesfineart.net -nicklimon.com -nickloswebdesign.com -nicknassar.com -nickrizos.com -nickrosario.com -nickshankland.com -nicktac.xyz -nickyheat.net -nicldy.site -nicolabs.info -nicolaseo.fr -nicoleaniston.site -nicoleberkers55places.com -nicolhampel.com -nicomeyers.site -nicoobook.net -nicooprost.space -nicos-kebabs-takeaway.com -nicton.ru -nidama.cf -nidama.ga -nidama.gq -nidama.tk -nideno.cf -nideno.ga -nideno.gq -nideshops.site -nidomeed.ga -nidomeed.gq -nidomeed.ml -nidomeed.tk -nidvijpravo.xyz -nie-podam.pl -niechlorpe.cf -niechlorpe.ga -niechlorpe.gq -niechlorpe.ml -niechlorpe.tk -nieciaco.cf -nieciaco.ga -nieciaco.gq -nieciaco.ml -nieciaco.tk -niemozesz.pl -niepodam.pl -niesumpspyg.ga -niesumpspyg.ml -niesumpspyg.tk -nieuwdijkroleplay.online -nieuwe.shop -niewoiem.space -nieworld.website -nifewe.info -nifhht.icu -nificio.ru -nifone.ru -nigdynieodpuszczaj.pl -nigeria-nedv.ru -nigeria1.website -nigeriaforexbroker.com -nigerialog.org -nigge.rs -niggercrack.com -night.cd -night.monster -nightalone.com -nightaw.xyz -nightclubpointofsale.com -nighton.net -nightstiffprize.site -nihilista.ru -nihondirect.net -nihongames.pl -niibb.com -niicaz.club -niickel.us -niid-fino-official.ru -niid-unofficial.ru -niiduno-official.ru -nijakvpsx.com -nijefu.best -nijmail.com -nika-market24.ru -nikami.net -nikanewspro.ru -nike-air-rift-shoes.com -nike-airmax-chaussures.com -nike-airmaxformen.com -nike-nfljerseys.org -nike-shop-msk.ru -nike.coms.hk -nike270scontate.com -nikeairjordansfrance.com -nikeairjp.com -nikeairmax1zt.co.uk -nikeairmax90sales.co.uk -nikeairmax90ukzt.co.uk -nikeairmax90usa.com -nikeairmax90zr.co.uk -nikeairmax90zt.co.uk -nikeairmax90zu.co.uk -nikeairmaxonline.net -nikeairmaxskyline.co.uk -nikeairmaxvipus.com -nikeairmaxzt.co.uk -nikeblazershop.com -nikefreerunshoesuk.com -nikehhhh.com -nikehigh-heels.info -nikejashoes.com -nikejordansppascher.com -nikepopjp.com -nikerosherunshoes.xyz -nikerunningjp.com -nikesalejp.com -nikesalejpjapan.com -nikeshoejapan.com -nikeshoejp.org -nikeshoesoutletforsale.com -nikeshoesphilippines.com -nikeshox4sale.com -nikeskosalg.com -niketexanshome.com -niketrainersukzt.co.uk -nikezoomkobevenomenon5.website -niki-car.ru -niki-surf.site -niki-van1.ru -niki2019.com -nikihiklios.gr -nikiliosiufe.de -nikinihouse.co -nikitsvetkov.com -nikkibabe.com -nikkibars.icu -nikoa.best -nikofanovs.site -nikoiios.gr -nikojii.com -nikola-tver.ru -nikolausgraf.com -nikolib.ru -nikoliba.ru -nikolibik.ru -nikolibs.ru -nikolibx.ru -nikolice.ru -nikolize.ru -nikon-coolpixl810.info -nikoncamerabag.info -nikoniko.ga -nikosiasio.gr -nikossf.gr -nikostorelive.com -nikvlad.ru -nilazan.space -nilechic.store -niliis90.org -nilmen.com -nilocaserool.tk -nilufer.org -niluferevleri.xyz -nilyazilim.com -nilynaje.com -nimajalali.info -nimble.icu -nimbponmi.cf -nimbponmi.ga -nimbponmi.gq -nimbponmi.ml -nimbponmi.tk -nimcasa-carsiam.ru -nimfa.info -nimiety.xyz -nimir.org -nimonti.cf -nimonti.ga -nimonti.gq -nimonti.ml -nimonti.tk -ninagarbiras.info -ninagarbiras.net -ninayorks.info -nincsmail.com -nincsmail.hu -nine.emailfake.ml -nine.fackme.gq -ninelyn.ru -ninesclothiers.com -ninewestbootsca.com -ninezro.com -ningconra.cf -ningconra.gq -ningconra.ml -ningconra.tk -ningso.club -ninhbinhbackpackershostel.com -ninhoverde.club -ninhoverde2.club -ninhxuangiang.ml -ninin.host -ninja-mail.com -ninja-sale.com -ninja-u.com -ninja0p0v3spa.ga -ninjabinger.com -ninjacat.dev -ninjadoll.international -ninjadoll.org -ninjaenterprises.com -ninjafav.net -ninjaget.net -ninjagg.com -ninjasystem.info -ninnym.com -nins.email -nintendowii.cd -ninunne.gq -ninunne.ml -niofreeprob.cf -niofreeprob.ga -niofreeprob.gq -niofreeprob.ml -niofreeprob.tk -nipponian.com -niqr.com -nirapatta24.com -niro-sistema-7.site -niro-sistema7.site -nirojan.shop -nisankiralamacim.com -nisantasiclinic.com -nisasya.com -nisc.me -nisekoownersclub.com -nishansahib.us -nishima.live -nishtyakshop.ru -niskaratka.eu -niskopodwozia.pl -nisl.com -nisoskos.com -nissan370zparts.com -nissanleaf.club -nissanofcolumbus.online -nisvibet.cf -nisvibet.ga -nisvibet.gq -nitaaidhyan.org -nitebitestakeaway.com -nitecorestore.online -niter.xyz -niti-sudby.club -nitish.page -nitricolin.com -nitricoxidesupplementshq.com -nitricpowerreview.org -nitro-service.xyz -nitrohjbba.space -nitroshine.xyz -nittraproject.com -nitza.ga -niujkasdi.tk -niumasoitr.gq -niuyitupob.xyz -nivelirgll3.site -nivsale.top -niwalireview.net -niwghx.com -niwghx.online -niwl.net -niwpd4.info -nixemail.net -nixer3.com -nixonbox.com -niydomen897.cf -niydomen897.ga -niydomen897.gq -niydomen897.ml -niydomen897.tk -niyplunostragma.space -nizabelt.xyz -nizhegorodskiy-dommebeli.ru -nj0ut9.info -nj3dprinting.com -njamf.org -njartdump.com -njc65c15z.com -njcasinogames.com -njcomicanimecon.com -njd2o3.us -njelarubangilan.cf -njelarucity.cf -njetzisz.ga -njgqw.com -njhalfpricedlisting.com -njhalfpricelisting.com -njhempinc.com -njhjtn.ga -njhyvz.host -njiax.live -njjhjz.com -njjxwanglian.com -njlsrp.org -njmsm.com -njneuropathyhealing.com -njordcybersecurity.com -njordsecurity.com -njpsepynnv.pl -njswnh.site -njt2mb-mail.xyz -njtec.com -njwgw.info -nk52.biz -nkasaruparanationalpark.com -nkbmrd.fun -nkc2w.us -nkcompany.ru -nkcs.ru -nkdmly.fun -nkdmtc.fun -nkeepracga.cf -nkeepracga.gq -nkhfmnt.xyz -nkiehjhct76hfa.ga -nkjdgidtri89oye.gq -nkjmdj.fun -nkjmrh.fun -nkjun2ocvybkiae.xyz -nkk86.com -nkm2ab.xyz -nkm449.xyz -nkm69q.xyz -nkm7qw.xyz -nkm839.xyz -nkm8tg.xyz -nkm9gj.xyz -nkmije.xyz -nkml5j.xyz -nkmmbj.fun -nkmmpg.work -nkmms1.xyz -nkmq32.xyz -nkmq7i.xyz -nkmqel.xyz -nkmuiu.xyz -nkmvgg.xyz -nkmx8h.xyz -nknk29.com -nknq65.pl -nko.kr -nkpmhg.fun -nkpmxh.fun -nkqgpngvzg.pl -nkqmwg.fun -nkqmyl.fun -nkrozy9wr2snrcj.xyz -nkshdkjshtri24pp.ml -nktltpoeroe.cf -nktwhg.com -nkvtkioz.pl -nkwmfz.fun -nkxmjw.fun -nkyebkix.shop -nkyelectric.com -nkymmc.fun -nkymxg.fun -nl-200.xyz -nl-201.xyz -nl-205.xyz -nl.edu.pl -nl.szucsati.net -nlbassociates.com -nldroblox.online -nlfjsx.us -nlikey.com -nljke.com -nljrkz.us -nlqfw.info -nlquery.com -nlspam.cf -nlspamm.cf -nlxgwi.us -nlzl6f.info -nm-mendyka.online -nm.beardedcollie.pl -nm5905.com -nm7.cc -nmagazinec.com -nmail.cf -nmailtop.ga -nmailv.com -nmarticles.com -nmav.xyz -nmbbmnm2.info -nmbxw.info -nmfefq.us -nmfrvry.cf -nmfrvry.ga -nmfrvry.gq -nmfrvry.ml -nmfxyx.us -nmgszsm.com -nmhalfpricelisting.com -nmhalfpricelistings.com -nmkwgo.com -nmmt6yh.online -nmn2xki8vgt6ln2.xyz -nmotion.net -nmpkkr.cf -nmpkkr.ga -nmpkkr.gq -nmpkkr.ml -nmptev.xyz -nmqyasvra.pl -nmsy83s5b.pl -nmtheguardian.com -nmupnwph.shop -nmxjvsbhnli6dyllex.cf -nmxjvsbhnli6dyllex.ga -nmxjvsbhnli6dyllex.gq -nmxjvsbhnli6dyllex.ml -nmxjvsbhnli6dyllex.tk -nn2.pl -nn2d.com -nn358.com -nn46gvcnc84m8f646fdy544.tk -nn57822.com -nn5ty85.cf -nn5ty85.ga -nn5ty85.gq -nn5ty85.tk -nn7665.com -nn8802.com -nn8ty.com -nnaannah.shop -nnacg.com -nnambuzzdimp.cf -nnambuzzdimp.gq -nnambuzzdimp.ml -nnambuzzdimp.tk -nnb513.com -nnb525.com -nnb532.com -nnb536.com -nnb539.com -nnb545.com -nnb548.com -nnb553.com -nnb555.com -nnb558.com -nnbgzy.com -nneczwcql.shop -nnejakrtd.pl -nneqqj.rest -nnewshoeus.com -nneynfpif.shop -nnggffxdd.com -nnh.com -nnhyysbcr.shop -nnidea.com -nnj123.com -nnjie.com -nnkgjc.rest -nnlyf.com -nnmoe.com -nnmqustumutqp.ru -nnn062.com -nnn88.net -nnn9827.com -nnnnnn.com -nnot.net -nnoway.ru -nnpmnclgj.shop -nnpqyl.us -nnpsz.com -nnshe.com -nntv.club -nnyes.com -nnyytt.ml -nnzeg6.us -nnztu.live -nnzvh2axk4ncejm.xyz -nnzzy.com -no-365.com -no-dysfonction.com -no-more-hangover.tk -no-spam.ws -no-spammers.com -no-sugar-recipes.com -no-ux.com -no-vax.cf -no-vax.ga -no-vax.gq -no-vax.ml -no-vax.tk -no.tap.tru.io -no07.biz -no1-ayo.com -no11.xyz -no19rentalhaus.xyz -no1bahis52.com -no1bahis77.com -no2maximusreview.org -noa98.space -noaado-shop.ru -noaddedpulp.com -noahsachsgolf.com -noalatrata.org -noattr.com -noattrib.com -noattribution.com -noav9h.us -nob.sh -nobaproject.org -nobarid.com -nobiga.ga -nobiga.gq -nobiga.ml -nobiga.tk -nobihu.tokyo -nobilionrestaurant.com -nobla.org -noblechevy.com -noblelord.com -noblemail.bid -nobleperfume.info -noblepioneer.com -noblequotes.com -nobluelives.com -nobstyther.cf -nobstyther.ga -nobstyther.gq -nobstyther.tk -nobugmail.com -nobulk.com -nobuma.com -noc0szetvvrdmed.cf -noc0szetvvrdmed.ga -noc0szetvvrdmed.gq -noc0szetvvrdmed.ml -noc0szetvvrdmed.tk -noc1tb4bfw.cf -noc1tb4bfw.ga -noc1tb4bfw.gq -noc1tb4bfw.ml -noc1tb4bfw.tk -noclegi0.pl -noclegiwsieci.com.pl -noclickemail.com -nocodewp.dev -nocontestcommunication.com -nocontexto.com -nocthenet.com -nocujunas.com.pl -nod03.ru -nod9d7ri.aid.pl -nodebalancer.net -nodeclinecoverage.com -nodeclineinsurance.com -nodehaus.com -nodehaus.net -nodehouse.net -nodehouse.org -nodemix.com -nodemon.peacled.xyz -nodenycoverage.com -nodenyinsurance.com -nodeoppmatte.com -nodepositecasinous.com -nodepositslotcasino.com -nodepozits.info -nodered.com -nodesauce.com -nodezine.com -nodie.cc -nodnor.club -noe.prometheusx.pl -noedgetest.space -noelflowers.com -noelgray.store -noelia.meghan.ezbunko.top -noemail.com -noemfasten.com -noexamcoverage.com -noexisting.site -nofakeipods.info -nofaxpaydayloansin24hrs.com -nofbi.com -nofearinstitute.org -nofocodobrasil.tk -nofok.club -nogblor.online -nogbon.com -nogf.biz -nogluty.com -nogmailspam.info -nogoku.org -nogueira2016.com -nohallta.cf -nohallta.ga -nohallta.gq -nohasslecoverage.com -noicd.com -noifeelings.com -noip.today -noisefag.tk -noisemails.com -noit14.com -noithatvinh.net -noiuihg2erjkzxhf.cf -noiuihg2erjkzxhf.ga -noiuihg2erjkzxhf.gq -noiuihg2erjkzxhf.ml -noiuihg2erjkzxhf.tk -nojkishop.top -nokatmaroc.com -nokiahere.cf -nokiahere.ga -nokiahere.gq -nokiahere.ml -nokiahere.tk -nokiamail.cf -nokiamail.com -nokiamail.ga -nokiamail.gq -nokiamail.ml -nokilaser.cf -nokiratenkpol.tk -noklike.info -nokorweb.com -noktabet.info -noktabet111.com -nola.church -nolabelunlimited.info -nolazada.com -nolemail.ga -nolic.ru -nolikasdop.tk -nolimemail.com.ua -nolimitbooks.site -nolimitfiles.site -nolimithostredmail1.tk -nolions.ml -nolions.tk -nolkbacteria.host -nolofilms.info -nologyt.shop -nolpokh.site -nolted.ru -nolvadex.website -nomadproject.dev -nomadsretire.com -nomadtraderoute.com -nomail.cf -nomail.ch -nomail.fr -nomail.ga -nomail.kerenon.com -nomail.net -nomail.nodns.xyz -nomail.pw -nomail.top -nomail.xl.cx -nomail2me.com -nomailthanks.com -nomailthankyou.com -nomame.site -nomanae.site -nomeoutlet.site -nomeucu.ga -nomik.space -nominex.space -nomogeny.xyz -nomor7up.com -nomore-hairloss.info -nomoremail.net -nomoremeat.online -nomorespam.kz -nomorespamemails.com -nomorewaiters.biz -nomorkeluar.xyz -nomotor247.info -nomqllnb.shop -nomsaudiology.com -nomusnik.tk -non-shop-sale.ru -nona5758.com -nonamecyber.org -nonameex.com -nonamuda1.com -nonamuda3.com -nonano.site -nonapkr.com -nonasouq.com -nonbuss.site -noncfl.com -nonciclopedia.cf -nonciclopedia.ga -nonciclopedia.gq -nonconductors.com -noncsc.com -noncteam.com -noncyclical.best -nondtenon.cf -nondtenon.ga -nondtenon.gq -nondtenon.ml -nondtenon.tk -nonegray.info -nonescent.xyz -nonewanimallab.com -nongame.best -nonglex.tech -nongmak.net -nongzaa.cf -nongzaa.gq -nongzaa.ml -nongzaa.tk -nonicamy.com -nonlowor.cf -nonlowor.ga -nonlowor.gq -nonlowor.ml -nonohairremovalonline.com -nonom.live -nonprofccr.ru -nonprofit-al.org -nonprofit.deals -nonspam.eu -nonspammer.de -nonstop-traffic-formula.com -nontmita.cf -nontmita.ga -nontmita.tk -nontona.com -nontonbareng.org -nontransient.best -nonudle.net -nonuserans.rest -nonze.ro -noobermm.tk -noobjs.org -noobswhatelse.com -noodle-club-takeaway.com -noodlesnwraps.com -nooklan.org -noonecandoit.xyz -noopept.store -nooshop.ru -nootopics.tulane.edu -nootrolovers.shop -nootrolovers.site -nootrolovers.space -nootropicstackblog.xyz -nootropicstudy.xyz -nopecon.org -nopethsijezy.ru -noquestionsaskedinsurance.com -noquestionsaskedlifeinsurance.com -noquierobasura.ga -norabeachclub.com -norbal.org -norbukingdom.online -norcalenergy.edu -norcalsecurityca.com -norcalweather.com -norcurtainmud.website -nordaxon.se -nordlockerbusiness.com -nordpozitronik.ru -nordsecmedia.com -noref.in -noreferrer.net -norefusals.info -noreply.fr -norfolkquote.com -norguedeu.cf -norguedeu.gq -norguedeu.ml -norguedeu.tk -norih.com -norishops.site -norkinaart.net -normal.co.uk -normalteste.xyz -normandys.com -normasdeinformacionfinanciera.com -normiiotoonusfit.space -normpage.us -norseforce.com -norstil.com -nortedecorrientes.com -north-atlanta-rv-rentals.com -north-user.monster -northadamschamber.com -northandsouth.pl -northbrookcpa.net -northcarolinaultimate.com -northchicagoapartments.com -northcmu.com -northcoastbconline.com -northdallas-plasticsurgeons.com -northdallashomebuyers.com -northeastern-electric.com -northemquest.com -northentr.buzz -northernbets.co -northernrescue.kiwi -northface-down.us -northfaceeccheap.co.uk -northfaceonlineclearance.com -northfacesalejacketscouk.com -northfacesky.com -northfaceuka.com -northfaceusonline.com -northfr.xyz -northfro.xyz -northfrow.xyz -northibm.com -northlakenatomas.com -northlibertyblog.com -northmiamibeachapartments.com -northof9equine.com -northofbostonsports.net -northolmstedapartments.com -northroyaltonapartments.com -northscituate.buzz -northshorelaserclinic.com -northshoresecondmortgage.com -northsidejohnny.com -northtaranaki.com -northtips.com -northwaybaptistchurch.org -northwesthair.net -northwoodsmmj.com -northwoodtraining.com -norules.zone -norvasconlineatonce.com -norveg-nedv.ru -norwaydata.com -norwoodlumbermate.com -nos-adasr.ru -noscabies.org -nose-blackheads.com -nosemail.com -noseycrazysumrfs5.com -nosh.ml -noshrwjg.space -nosinga.cf -nosinga.gq -nosinga.ml -nosinga.tk -nosings.com -nosmasderroches.com -nosorgulamaservisi.com -nospace.info -nospam.allensw.com -nospam.barbees.net -nospam.sparticus.com -nospam.thurstons.us -nospam.today -nospam.wins.com.br -nospam.ze.tc -nospam2me.com -nospam4.us -nospamdb.com -nospamfor.us -nospammail.bz.cm -nospammail.net -nospamme.com -nospammer.ovh -nospamthanks.info -nostockui.com -nostrabirra.com -nostradamus.best -nostrajewellery.xyz -nosuger.coffee -not-a-cop.club -not0k.com -notabackdoor.xyz -notable.de -notapokemon.info -notapokemon.live -notaryaccounting.com -notarymarketing.com -notasitseems.com -notatempmail.info -notbooknotbuk.com -notchbox.info -notcutts-design.com -notcuttsgifts.com -notcuttshampers.com -notdus.xyz -notebookercenter.info -notebooks.cd -notebookware.de -noteexpress.press -noteg.xyz -notelayer.com -notemaws.site -noteregales.com -notes.ovh -notesell.ru -noteswithwings.com -notflys.info -notherone.ca -nothingbutspecial.com -nothingtoseehere.ca -nothinnutty.com -notice-booster1.site -notice-cellphone.club -notice-cleaner1.site -notice-iphone.club -notice-microsoft.com -notice-phone.club -notice-phone1.site -noticias-brasileiras-hoje.xyz -noticiasgospel.net -noticiaswordpress.com -noticiero.press -notif.cf -notif.me -notification-booster.club -notification-cellphone.club -notification-cleaner.club -notification-iphone.club -notification-phone.club -notification.agency -notification.promo -notifier.app -notion-corp.com -notion.work -notionametf.email -notionignitenegotiation.website -notivsjt0uknexw6lcl.ga -notivsjt0uknexw6lcl.gq -notivsjt0uknexw6lcl.ml -notivsjt0uknexw6lcl.tk -notmail.com -notmail.ga -notmail.gq -notmail.ml -notmailinator.com -notmyemail.tech -notreallybutseriously.com -notregmail.com -notrema.ru -notrnailinator.com -notsharingmy.info -notua.com -notvn.com -notysbook.ru -nou.best -noultya.icu -nountafor.ga -nountafor.ml -nountree.com -nourashop.com -nousavons.online -nousavons.store -nousonderwijs.online -nousurf.space -nouvellakay.com -nouvelles.pro -nov-today.ru -nov-vek.ru -nova-entre.ga -novabrana.sk -novaemail.com -novagift.ru -novagun.com -novainfosecportal.com -novaivyi.com -novalauncher.pro -novamcleanpsych.com -novartismails.com -novasagres.com -novastark.ru -novastreams661.xyz -novataim.com -novazil.com -novelbowl.xyz -novellwall.org -noveltycamera.com -noveltycars.com -novemberdelta.myverizonmail.top -novembermovo.com -novembervictor.webmailious.top -novencolor.otsoft.pl -novensys.pl -noveoninternational.com -noveonlaser.com -novgorod-nedv.ru -novidadenobrasil.com -novinki.club -novinkikino2019.ru -novipsao.club -novisad360.info -novmed1.ru -novo2019.website -novofun.com -novosib-nedv.ru -novosti-pro-turizm.ru -novosti-rus.club -novostinfo.ru -novostionline.info -novostretch.ru -novostroika76.ru -novostroiki-moscow.ru -novostroiufa.ru -novostroyka76.ru -novus.mobi -novusvision.net -novusvision.org -novzve.ru -now-fleet.com -now.im -now.mefound.com -now4you.biz -nowaittrend.com -noway.pw -noways.ddns.net -nowbuzzoff.com -nowdigit.com -nowdrafo.site -nowemail.ga -nowemailbox.com -nowgoals.xyz -nowhere.org -nowheybebe.com -nowheycafe.com -nowheymay.com -nowifizone.com -nowmount.com -nowmymail.com -nowmymail.net -nownaw.ml -nowoczesne-samochody.pl -nowoczesnesamochody.pl -nowstates.tk -nowstore19.space -nowtec.ru -nowwin100.com -nowwin13.com -nowwin3.com -nowwin33.com -nowwin37.com -nowwin40.com -nowwin42.com -nowwin49.com -nowwin57.com -nowwin72.com -nowwin74.com -nowwin77.com -nowwin8.com -nowwin84.com -nowwin92.com -nowwin94.com -nowyessir.com -nox.llc -nox88th.com -noyabrsk.me -noyon.poker -noyten.info -noyycolympics.org -nozala-company.ru -npajjgsp.pl -npas.de -npbulletin.com -npcisthere.monster -npenergyfoundation.org -npf-energetik.ru -npfbw.info -npfd.de -npgzd1.site -nphcsfz.pl -npjcby.vip -npjyal.com -npltsy.host -npnks.live -npraty.la -nproxi.com -npsyw.info -nptzw.info -npug4.us -npv.kr -npv6r1.info -npvea.us -npwfnvfdqogrug9oanq.cf -npwfnvfdqogrug9oanq.ga -npwfnvfdqogrug9oanq.gq -npwfnvfdqogrug9oanq.ml -npwfnvfdqogrug9oanq.tk -npwyh.fun -npxm.xyz -npyjpo.online -npzs.info -nqav95zj0p.kro.kr -nqeq3ibwys0t2egfr.cf -nqeq3ibwys0t2egfr.ga -nqeq3ibwys0t2egfr.gq -nqeq3ibwys0t2egfr.ml -nqeq3ibwys0t2egfr.tk -nqetqos.site -nqftsd.us -nqjht1.site -nqlzfrn.com -nqrdq1.us -nqvyo4.info -nqwfw.info -nr89.xyz -nrfd9h.us -nrhskhmb6nwmpu5hii.cf -nrhskhmb6nwmpu5hii.ga -nrhskhmb6nwmpu5hii.gq -nrhskhmb6nwmpu5hii.ml -nrhskhmb6nwmpu5hii.tk -nrihometownservices.com -nrmlresearch.ru -nrnvac.site -nroc2mdfziukz3acnf.cf -nroc2mdfziukz3acnf.ga -nroc2mdfziukz3acnf.gq -nroc2mdfziukz3acnf.ml -nroc2mdfziukz3acnf.tk -nroevi.rest -nrucel1.tk -nrwxw.info -nrzjw.info -nrzrw.info -ns12qg.us -ns2.vipmail.in -ns21.xyz -ns2dxp.us -ns4.website -ns4veh.us -nsabdev.com -nsacademy.info -nsadvr.site -nsaking.de -nsaleaks.org -nsalevip.info -nsami.com -nsandu.com -nsawsvedq.shop -nsbwsgctktocba.cf -nsbwsgctktocba.ga -nsbwsgctktocba.gq -nsbwsgctktocba.ml -nsbwsgctktocba.tk -nscoy.com -nscream.com -nsddourdneis.gr -nshgxx.com -nshoesfirst.info -nshqw.info -nsjcxs.tokyo -nsk-set.ru -nsk1vbz.cf -nsk1vbz.ga -nsk1vbz.gq -nsk1vbz.ml -nsk1vbz.tk -nslpck.us -nslrw.info -nsn22.com -nsnvrpuxx.cf -nsoreds.shop -nsqcw.info -nsr009.com -nsserver.org -nsufllibguides.best -nsvcb.us -nsw-flag.info -nswmartialarts.com -nt6868.org -ntalecom.net -ntb9oco3otj3lzskfbm.cf -ntb9oco3otj3lzskfbm.ga -ntb9oco3otj3lzskfbm.gq -ntb9oco3otj3lzskfbm.ml -ntb9oco3otj3lzskfbm.tk -ntdx.pw -ntdx.xyz -ntdxx.com -ntdy.icu -ntdz.club -ntdz.icu -ntegelan.cf -ntegelan.ga -ntegelan.gq -nteltec.com -nterdawebs.cf -nterdawebs.ga -nterdawebs.gq -nterdawebs.tk -nternetx.com -ntfifhzgy.shop -ntflx.store -ntfqw.info -ntgyeyme.shop -nthanthe.shop -nthbb.live -nthentha.shop -nthings.best -nthmail.com -nthmessage.com -ntilboimbyt.ga -ntilboimbyt.gq -ntilboimbyt.ml -ntilboimbyt.tk -ntilsibi.cf -ntilsibi.ga -ntilsibi.gq -ntilsibi.tk -ntirrirbgf.pl -ntkah7.com -ntlhelp.net -ntllma3vn6qz.cf -ntllma3vn6qz.ga -ntllma3vn6qz.gq -ntllma3vn6qz.ml -ntllma3vn6qz.tk -ntlshopus.com -ntnrw.info -ntrefz.icu -ntsj8vn8ssedt.xyz -ntt.gotdns.ch -ntub.cf -ntudofutluxmeoa.cf -ntudofutluxmeoa.ga -ntudofutluxmeoa.gq -ntudofutluxmeoa.ml -ntudofutluxmeoa.tk -ntutnvootgse.cf -ntutnvootgse.ga -ntutnvootgse.gq -ntutnvootgse.ml -ntutnvootgse.tk -ntuv4sit2ai.cf -ntuv4sit2ai.ga -ntuv4sit2ai.gq -ntuv4sit2ai.ml -ntuv4sit2ai.tk -ntvsportbet.com -ntxp.email -nty5upcqq52u3lk.cf -nty5upcqq52u3lk.ga -nty5upcqq52u3lk.gq -nty5upcqq52u3lk.ml -nty5upcqq52u3lk.tk -ntzdvaon.shop -nu-costs.com -nu588.com -nu788.com -nuacasinonest.ru -nualloydpactive.com -nuamulet.ru -nub3zoorzrhomclef.cf -nub3zoorzrhomclef.ga -nub3zoorzrhomclef.gq -nub3zoorzrhomclef.ml -nub3zoorzrhomclef.tk -nubescontrol.com -nucleoescuela.com -nucor.ru -nuctrans.org -nudayhuq.space -nude-vista.ru -nudgegame.net -nudinar.net -nuevaagroindustriasdelnorte.com -nuevomail.com -nufc.xyz -nugnecklace.com -nugnecklaces.com -nujsixm.xyz -nukahome.com -nuke.africa -nukemc.biz -nuliferecords.com -nuligepe.site -nullbox.info -nulledsec.club -nullftp.com -nullmachine.org -nullscriptz.online -nullsrushwars.ru -nullwasp.net -nultxb.us -numanavale.com -numandfio.gq -number1mail.ir -numberclimbing.xyz -numbers2design.com -numbersstationmovie.com -numbic.com -numbobulator.com -numenism.xyz -numerology.zone -numikrest.cf -numitas.cf -numitas.ga -numitas.gq -numitas.tk -nummbereins.xyz -nummerplaatcheck.site -nummumcanada.com -numoika.ml -numunemektebi.org -numutore63.bid -numweb.ru -numwert.tk -nunagom.shop -nunscore.com -nunung.cf -nunungcantik.ga -nunungnakal.ga -nunungsaja.cf -nuny.ru -nunyc.com -nuo.co.kr -nuo.kr -nuovi-incontri.com -nupagadi.ru -nuprice.co -nupurer.ru -nuqhvb1lltlznw.cf -nuqhvb1lltlznw.ga -nuqhvb1lltlznw.gq -nuqhvb1lltlznw.ml -nuqhvb1lltlznw.tk -nuqypepalopy.rawa-maz.pl -nuras.site -nurbahar.com -nurdea.biz -nurdea.com -nurdea.net -nurdead.biz -nurdeal.biz -nurdeal.com -nurdeas.biz -nurdeas.com -nurdintv.com -nurdsgetbad2015.com -nurefy.info -nurfuerspam.de -nurkowania-base.pl -nurothcuddstal.site -nurotohaliyikama.xyz -nurpharmacy.com -nursaigidi.ml -nursaigidi.tk -nursalive.com -nursejobsinflorida.com -nurseryschool.ru -nurseryshop.live -nursinghomecareinformation.com -nursinghomecarenearme.com -nursingjobsin.com -nursinkfky.space -nurslist.com -nursultancity.info -nurturemeal.site -nurturingrecipes.com -nuruvi.com -nus.edu.sg -nusaas.com -nusamart.site -nussc.com -nustudiekiezen.online -nut-cc.nut.cc -nut.cc -nutaart.ru -nutcc.nut.cc -nutimaintegrative.com -nutimaintegrativehealth.com -nutimamed.com -nutimamedicine.com -nutimanaturalhealth.com -nutimanaturopathicmedicine.com -nutimand.com -nutodaynews.site -nutpa.net -nutravie.org -nutremom.com -nutrice.xyz -nutriciademo.com -nutrifood.us -nutrilovers.online -nutrilovers.shop -nutrinesweets.com -nutrition-chi.online -nutritionalpsychiatry.org -nutritiondrill.com -nutritionreporter.com -nutrizin.com -nutroastingmachine.net -nutropin.in -nuts2trade.com -nutsmine.com -nutssocrazy.com -nutzer-sicherung-1231213453-de-nutzer-system-check.ru -nuuo3n.us -nuuvocovers.com -nuvast.com -nuvexcloud.com -nuvi.site -nuvohu.info -nuxok.site -nuxuzi.info -nuzee.com -nuzhnaeda18.ru -nuznqqjzt.tk -nuzuoutlet.site -nvana.xyz -nvapplelab.com -nvb467sgs.cf -nvb467sgs.ga -nvb467sgs.gq -nvb467sgs.ml -nvb467sgs.tk -nvbxenro.shop -nvc-e.com -nvcc.org -nvce.net -nvenuntgeg.cf -nvenuntgeg.ga -nvenuntgeg.gq -nvenuntgeg.ml -nvenuntgeg.tk -nvfpp47.pl -nvgf3r56raaa.cf -nvgf3r56raaa.ga -nvgf3r56raaa.gq -nvgf3r56raaa.ml -nvgf3r56raaa.tk -nvhalfpricelistings.com -nvinsxnv.shop -nvision2011.co.cc -nvjohndeere.com -nvmetal.pl -nvn1024.us -nvnav.com -nvnav.net -nvnav.us -nvnestle.com -nvntv.top -nvntv.us -nvnvideo.net -nvnvideo.us -nvpdq3.site -nvr.services -nvr7uy.info -nvsmithteam.com -nvtelecom.info -nvtmail.bid -nvunitedfc.com -nvuti.studio -nvuti.wine -nvutty.online -nvv1vcfigpobobmxl.cf -nvv1vcfigpobobmxl.gq -nvv1vcfigpobobmxl.ml -nvw10v.us -nvwang58.com -nw-i.club -nw7cxrref2hjukvwcl.cf -nw7cxrref2hjukvwcl.ga -nw7cxrref2hjukvwcl.gq -nw7cxrref2hjukvwcl.ml -nw7cxrref2hjukvwcl.tk -nw7tnm.us -nwautoleather.com -nwcqw.info -nwcvzkhf.shop -nwd6f3d.net.pl -nwds-support.com -nweenweh.shop -nwehnwee.shop -nwesmail.com -nwklw.info -nwldx.com -nwldx.net -nwlnpy.online -nwmhsc.us -nwmob.site -nwpi.email -nwqmiw.us -nwrailnews.org -nwrealestateroots.com -nwser.us -nwsgrps.com -nwtsk5.com -nwtvqc.us -nwufewum9kpj.gq -nwumkcte.shop -nwutl.vip -nwyorkpass.com -nwytg.com -nwytg.net -nwyzoctpa.pl -nwz6q5.us -nx-mail.com -nx1.de -nx365.net -nxaipannationalpark.com -nxbclg.us -nxbrasil.net -nxbxni.us -nxdata.site -nxdgrll3wtohaxqncsm.cf -nxdgrll3wtohaxqncsm.gq -nxdgrll3wtohaxqncsm.ml -nxdgrll3wtohaxqncsm.tk -nxeswavyk6zk.cf -nxeswavyk6zk.ga -nxeswavyk6zk.gq -nxeswavyk6zk.ml -nxeswavyk6zk.tk -nxewh1.stream -nxfikjjbg.shop -nxgnsoftwaresolutions.com -nxgwr24fdqwe2.cf -nxgwr24fdqwe2.ga -nxgwr24fdqwe2.gq -nxgwr24fdqwe2.ml -nxgwr24fdqwe2.tk -nxhji1.site -nxhlgt.com -nxllw.info -nxm3zar0d.xyz -nxmwzlvux.pl -nxpeakfzp5qud6aslxg.cf -nxpeakfzp5qud6aslxg.ga -nxpeakfzp5qud6aslxg.gq -nxpeakfzp5qud6aslxg.ml -nxpeakfzp5qud6aslxg.tk -nxraarbso.pl -nxtickets.com -nxtjh.com -nxxx.club -nxy73j.us -ny-auto-sterilization.com -ny-zp.com -ny1dx7j.buzz -ny3mlv.us -ny7.me -nya365.com -nya5.com -nyaatv.com -nyabook.com -nyagan-airport.ru -nyahome.com -nyahub.com -nyahvkge2zang.xyz -nyalist.com -nyamail.com -nyanime.gq -nyanote.com -nyapic.com -nyatempto.cf -nyatempto.ga -nyatempto.gq -nyatracker.com -nyattorneys.org -nyaweb.com -nyawiki.com -nyayou.com -nybbl12.com -nybestweddingsites.com -nyc-bioidenticalhormones.com -nyc-md.com -nyc-pets.info -nycbitcoinpro.com -nyccaner.cf -nyccaner.ga -nyccaner.gq -nyccaner.ml -nyccaner.tk -nyccommunity.info -nycconstructionaccidentreports.com -nyccoronavirusbankruptcy.com -nycdatascienceacademy.com -nychealthtech.com -nyconsale.com -nycthing.com -nyctoursdiscounted.com -nyctoursonsale.com -nycvpn.com -nycwebsite.design -nydfw.info -nyeoa.live -nyepi.us -nyfashionphotographers.com -nyflcigarettes.net -nyfodtpiller.website -nygiants.org -nygmkv.icu -nyhalfpricedlistings.com -nyhalfpricelisting.com -nyhetsbrev.xyz -nyhjsydr.shop -nyic.nyc -nyikanationalpark.org -nyiwreakun.ga -nyiwreakun.gq -nyiwreakun.ml -nyjd.xyz -nyjobsnow.com -nylonbrush.biz -nylonbrush.us -nylonbrushes.biz -nylonbrushes.org -nylonbrushes.us -nymopyda.kalisz.pl -nyne.site -nyobase.com -nyoliveoil.org -nyoregan09brex.ml -nyovur.us -nypato.com -nypdchange.net -nypdchange.org -nypinterest.com -nypost.best -nyrmusic.com -nyrrc.net -nyscengage.com -nysmail.com -nyter44.website -nyumail.com -nyusul.com -nyvhuzbi.site -nywcmiftn8hwhj.cf -nywcmiftn8hwhj.ga -nywcmiftn8hwhj.gq -nywcmiftn8hwhj.ml -nywcmiftn8hwhj.tk -nyxc1.us -nz-post.press -nzach4.info -nzb.fish -nzb.land -nzbeez.com -nzdigitalmarketingpodcast.com -nzdkw.info -nzfadz.us -nzhkmnxlv.pl -nzids.com -nziyce.com -nzkfgb.site -nzmotorbikes.com -nzmymg9aazw2.cf -nzmymg9aazw2.ga -nzmymg9aazw2.gq -nzmymg9aazw2.ml -nzmymg9aazw2.tk -nzntdc4dkdp.cf -nzntdc4dkdp.ga -nzntdc4dkdp.gq -nzntdc4dkdp.ml -nzntdc4dkdp.tk -nztiea.site -nzttrial.xyz -nzufsg.icu -nzv0rz.us -nzvjv.live -o-128.asia -o-amz.xyz -o-e-z.ru -o-kee-dundrum.com -o-nalogah.ru -o-pizda.info -o-pribaltike.ru -o-response.com -o-salex.ru -o-taka.ga -o-taxi31.ru -o-tonarum.ru -o.cat -o.idigo.org -o.muti.ro -o.oai.asia -o.opendns.ro -o.polosburberry.com -o.spamtrap.ro -o000.ml -o029o.ru -o060bgr3qg.com -o0em7j.us -o0i.es -o128.asia -o128.us -o13mbldrwqwhcjik.cf -o13mbldrwqwhcjik.ga -o13mbldrwqwhcjik.gq -o13mbldrwqwhcjik.ml -o13mbldrwqwhcjik.tk -o1775.com -o1z.ru -o2.co.com -o2020-au.best -o2020-ay.best -o2020-ef.best -o2020-eg.best -o2020-ek.best -o2020-hr.icu -o2020-kv.icu -o2020-le.icu -o2020-lw.icu -o2020-ow.best -o22.com -o22.info -o2applications.com -o2gr8p.us -o2hkcb.us -o2m.org -o2stk.org -o32c.com -o3czl5.us -o3dkxw.best -o3enzyme.com -o3j5hv.us -o3vd6blm73xkgtd.xyz -o3vgl9prgkptldqoua.cf -o3vgl9prgkptldqoua.ga -o3vgl9prgkptldqoua.gq -o3vgl9prgkptldqoua.ml -o3vgl9prgkptldqoua.tk -o473ufpdtd.ml -o473ufpdtd.tk -o48ok.com -o4pmme4o0r6jk48.xyz -o4tnggdn.mil.pl -o4zkthf48e46bly.cf -o4zkthf48e46bly.ga -o4zkthf48e46bly.gq -o4zkthf48e46bly.ml -o4zkthf48e46bly.tk -o5b0hg64wmgepnj.xyz -o6.com.pl -o6hcvq.online -o6kzlcvx75b4ztk.xyz -o6liak.us -o6r2yv.us -o72n71g.best -o7665.com -o78qp.com -o7edqb.pl -o7gvve8.best -o7i.net -o7mbr0.us -o7t2auk8msryc.cf -o7t2auk8msryc.ga -o7t2auk8msryc.gq -o7t2auk8msryc.ml -o7t2auk8msryc.tk -o7vvj8.us -o87fn.com -o88s9d.site -o8ih.us -o8oedrrev40d5rg.xyz -o8t30wd3pin6.cf -o8t30wd3pin6.ga -o8t30wd3pin6.gq -o8t30wd3pin6.ml -o8t30wd3pin6.tk -o90.org -o9i.space -oa5lqy.com -oaccoin.com -oafrem3456ails.com -oahudoctorse.info -oai.asia -oaipofgs.shop -oakbrookofficecleaning.com -oakenfreach.info -oakfirepizzeria.com -oakhdu.info -oakjestfood.website -oakland4d.com -oakland4d.info -oakland4d.net -oakland4d.org -oaklandhairsalons.com -oaklandlotto.org -oakleglausseskic.com -oakley-solbriller.com -oakleyfancyflea.com -oakleyoutlet.com -oakleysaleonline.net -oakleysaleonline.org -oakleysalezt.co.uk -oakleysonlinestore.net -oakleysonlinestore.org -oakleysoutletonline.com -oakleysoutletstore.net -oakleysoutletstore.org -oakleystorevip.com -oakleysunglasses-online.co.uk -oakleysunglassescheapest.org -oakleysunglassescheapsale.us -oakleysunglassesdiscountusw.com -oakleysunglassesoutletok.com -oakleysunglassesoutletstore.org -oakleysunglassesoutletstore.us -oakleysunglassesoutletzt.co.uk -oakleysunglassessoldes.com -oakleysunglasseszt.co.uk -oakleyusvip.com -oakmannersnew.website -oakmountainholdings.com -oakmountaintech.com -oakparkattorneys.com -oakpatch.org -oaksw.com -oakwoodtrading.com -oala11.host -oalc.ru -oalegro.pl -oallenlj.com -oalsp.com -oamail.com -oao-aso.ru -oapdrp.icu -oasansor.com -oasessystem.com -oathact.us -oathijs.info -oatmealcooker.com -oatmealsshop.life -oaudienceij.com -oauth-vk.ru -oaxmail.com -oayjx.live -oazis.site -ob145.top -ob1pxgu.space -ob5d31gf3whzcoo.cf -ob5d31gf3whzcoo.ga -ob5d31gf3whzcoo.gq -ob5d31gf3whzcoo.ml -ob5d31gf3whzcoo.tk -ob5ml80wd1v83sx.xyz -ob7eskwerzh.cf -ob7eskwerzh.ga -ob7eskwerzh.gq -ob7eskwerzh.ml -ob7eskwerzh.tk -obamaiscool.com -obane.org -obateksim.info -obatmata.co -obatwasir.site -obczqk.site -obdeni.cf -obdeni.gq -obdeni.ml -obdeni.tk -obedrulit.ru -obelisk4000.cf -obelisk4000.ga -obelisk4000.gq -obenilac.com -oberegzamok.ru -obermail.com -obesesto.icu -obeseunio.xyz -obesitysurgeryhospitals.com -obet889.online -obfuscumlc.space -obfusko.com -obibike.net -obibok.de -obitoto.com -obitoto2.com -obitoto88.com -obizh.com -object.space -objectmail.com -objectuoso.com -objk.site -oblakanebo.xyz -oblate.site -obleceni-kenvelo.info -obmail.com -obmaiqiu.com -obmen-realty.ru -obmw.ru -obo.kr -obobbo.com -oboigroup.ru -obol.space -oboostdz.com -oboriza.space -oborudovanieizturcii.ru -obovseminfo.ru -obox.zone -oboxpublishing.com -oboymail.ga -oboz-digital.ru -oboz.team -obr60.space -obraslivres.com -obraz-i-krasota.ru -obrezinim.ru -obrimlesescoles.cat -obriuescoles.cat -obriulesescoles.cat -obrodak.club -observer-timesubtle-flairvitality-press.com -obserwatorbankowy.pl -obsoft.ru -obstruction.info -obtainips.com -obtqadqunonkk1kgh.cf -obtqadqunonkk1kgh.ga -obtqadqunonkk1kgh.gq -obtqadqunonkk1kgh.ml -obtqadqunonkk1kgh.tk -obtruncate.xyz -obuchenie-zarabotku.online -obufwzem.xyz -obuv-poisk.info -obuv-stoks.ru -obuvy-stok.ru -obvapos.cf -obvapos.ga -obvapos.gq -obvapos.ml -obvapos.tk -obverse.com -obviousdistraction.com -obvy.us -obwgga.icu -obxpestcontrol.com -obychnaya-zhenshchina.ru -obymbszpul.pl -obzor-it.ru -obzor-vulkan-club.com -obzornakurs.ru -oc810.site -ocam.cd -ocamerapeak.shop -ocarma.com -ocasionarium.net -occand.ru -occasionaltrip.com -occo-paris.com -ocdisplay.com -ocdogu.cf -ocdogu.ga -ocdogu.ml -ocdogu.tk -ocdvenpe.cf -ocdvenpe.ga -ocdvenpe.tk -oceanbluevanuatu.com -oceancares.xyz -oceanchinesefood.com -oceanevineyard.com -oceangardenvillashoa.com -oceanicmail.gdn -oceanpalacechinese.com -oceanparknresort.com -oceanplanetchannel.com -oceanrescueusa.org -oceanscienceanalytics.org -oceanshoreslodging.com -oceansidenailsalons.com -oceansofwaves.com -oceansummerlinagreenblog.site -oceantly.info -oceantly.us -oceanviewtobago.com -ocebet.mobi -ocebet.org -ocenka-krym.ru -ocenkalipeck.ru -oceqq.biz -ochkimoscow.ru -ochlocracy.site -ochupella.ru -ocigaht4.pc.pl -ocinjuryattorneys.com -ocitdoctors.com -ocksweet.online -ocktogram.com -ocl-ltd.com -ocn.gold -ocna.info -ocnegib.cf -ocnegib.ga -ocnegib.tk -ocotbukanmain.club -ocouponcode.com -ocqduuqha.shop -ocqxnxnoox.icu -octa-sex.com -octagon-projects.info -octagon-projects.org -octagonn.club -octalmoltenquasi.site -octetresearch.info -octobermovo.com -octolive.xyz -octomba.info -octopoda.ru -octopoos.news -octopoos.social -octopushome.ru -octowall.com -octoyo.xyz -ocuffel.top -oculist.space -ocwrqnsbv.shop -oczyszczalnie-sciekow24.pl -od-sale.online -od21gwnkte.cf -od21gwnkte.ga -od21gwnkte.gq -od21gwnkte.ml -od21gwnkte.tk -od6tdo.us -od8m2v.us -od9b0vegxj.cf -od9b0vegxj.ga -od9b0vegxj.gq -od9b0vegxj.ml -od9b0vegxj.tk -odaafariste.org -odadingmangoleh.fun -odaringrasanyaanjjingbanget.com -odatv19.com -odatv24.com -odatv26.com -odatv34.com -odatv36.com -odatv37.com -odatv40.com -odauco.website -odavissza.hu -odaymail.com -odbiormieszkania.waw.pl -odchudzanienit.mil.pl -odchudzedsfanie.pl -oddcriticalnod.website -oddfactor.net -oddhat.com -oddiyanadharmasanctuary.org -oddsbucket.com -oddsends.se -oddsmma.se -oddtheory.com -oddwoodpens.com -odegda-optom.biz -odegda-store.ru -odem.com -odemail.com -odemodiv.com -odesentupidor.com -odessabet.org -odessabetgirisadresi.com -odessabetsikayet.com -odessabetyenigiris.com -odevegec.com -odezhdu-zhenshinam.ru -odin.city -odinaklassnepi.net -odishakenduleaves.com -odixer.rzeszow.pl -odkn.com -odkrywcy.com -odlrzxunh.tk -odnazhdy-v-rossii.best -odnkonxt.shop -odnolube.ru -odnorazkacatalog.ru -odnorazovoe.ru -odnxkkxi.shop -odqykmt.pl -odseo.ru -odsniezanienieruchomosci.pl -odszkodowanie-w-anglii.eu -odtcabling.org -odu-tube.ru -oduea.store -oduemy.tokyo -odulmail.com -oduyzrp.com -odw88.com -odyssey.gold -odysseyaerocell.com -odysseyholdingsinc.com -odzyskiwaniedanych.com -oe1f42q.com -oeai.com -oeb-1368.info -oechzm.site -oecs-systems-international.com -oekakies.com -oelmjo.com -oeltzl.site -oem5w6.us -oembrush.us -oembrushes.biz -oembrushes.org -oembrushes.us -oemkoreabrand.com -oemkoreafactory.com -oemlibidoxis.icu -oempleo.com -oemsale.org -oemsoftware.eu -oemzpa.cf -oenophuagi.space -oeoqzf.pl -oepia.com -oeppeo.com -oerfa.org -oerpub.org -oertefae.tk -oeshare.biz -oeu4sdyoe7llqew0bnr.cf -oeu4sdyoe7llqew0bnr.ga -oeu4sdyoe7llqew0bnr.gq -oeu4sdyoe7llqew0bnr.ml -oeu4sdyoe7llqew0bnr.tk -oeze.com -of-maculardegeneration-ok.live -of-maculardegenerations-ok.live -of16v.us -of934.site -ofacchecking.com -ofansifbet2.com -ofauseniorlivingsok.live -ofboxcursos.com -ofc-migrate3.com -ofc-migrate4.com -ofc-migrate5.com -ofcstripe.com -ofdow.com -ofdyn.com -ofe0vj.us -ofer-eitan.biz -ofer-eitan.net -ofer-eitan.org -ofereitan.xyz -oferta.pl -ofertebune.info -oferteo.org -oferty-domiporta.pl -oferty-kredytowe.com.pl -oferty-warszawa.pl -off-keys.ru -offclktrak.com -offense.red -offensive.red -offer-like-seasons.ru -offer-stock-retail.info -offerall.biz -offerdne.com -offerinvestteam.ru -offerpagewin.xyz -offersale.info -offersmartlinks.xyz -offertemobiliari.net -offgrid-house.com -office-licentie.site -office24design.com -officebotics.com -officebuhgaltera.pp.ua -officeglossary.com -officeinhome.online -officeking.pl -officemalaga.com -officemanagementinfo.com -officepoland.com.pl -officespacemohanestate.com -officesupport.fun -officeteamorangecounty.com -officetechno.ru -officeworks.store -offichoss.site -official-bears-of-roses.ru -official-colehaan.com -official-drift-casino.com -official-iconed.website -official-louisvuitton.com -official-n.site -official-pomsies.ru -official-saints.com -official-site-admiralx.xyz -official-sunveno.ru -official-tomsshoes.net -official-trailer.ru -official.republican -official.site -official.vote -official49erssportshop.com -officialairmaxprostore.com -officialairmaxsproshop.com -officialairmaxuksshop.com -officialairpods.ru -officialbidencoin.com -officialbigo.com -officialbrands.shop -officialdiesel10bar.ru -officialdistributor.shop -officialfentybeauty.ru -officialfreerun.com -officialh.tech -officialjeep.ru -officiallifans.ru -officialltoms-shoes.com -officialltoms-shoes.org -officialmailsites.com -officialmovieclub.com -officialmulberry.com -officialmulberryonline.com -officialnflbears.com -officialnflbearsshop.com -officialnflcoltsstore.com -officialnfldenverbroncoshop.com -officialnflfalconshoponline.com -officialnflgiantspromart.com -officialnflpackerspromart.com -officialnflsf49ershop.com -officialnflsteelersprostore.com -officialngentot.cf -officialngentot.ga -officialngentot.gq -officialngentot.ml -officialngentot.tk -officialnhlstar.com -officialouisvuittonsmart.com -officialpatriotssportshop.com -officialphotoshop.com -officialravenssportshop.com -officialravensuperbowlshop.com -officialredbottomsshop.com -officialreversephonelookupsites.com -officialrolex.ru -officialsf49erssuperbowlshop.com -officialsf49ersteamshop.com -officialsnapfish.com -officialstore-ifans.ru -officialstoremonica.com -officialtiffanycoproshop.com -officialtolol.ga -officialwatchv8.ru -officieel-airmaxs.com -officieelairmaxshop.com -officiel-jordans.com -officiel-tnrequin.com -officielairmaxfr.com -officielairmaxfrance.com -officielairmaxpascher.com -officielairmaxsshop.com -officielchaussurestore.com -officiellairmaxsshop.com -officielle-jordans.com -officielleairmax.com -officiellejordan.com -officielmaxshop.com -officielnikeairmas.org -officieltnrequinfr.com -officieltnrequinfrshop.com -offisgossip.com -offline2online.asia -offreendirect.xyz -offroadcars.club -offsavi.shop -offsetmail.com -offsetprint.cloud -offshore-company.tk -offshore-proxies.net -offshorebookies.com -offshorepa.com -offsidegaming.info -offsidegaming.net -offthechainfishing.com -offthehooknola.org -offtherecordmail.com -offthewalt.com -offwhitesale.xyz -ofgmail.com -ofhyh.live -oficcial-server-v.ru -oficialnii-sait-zerkalo.ru -oficinadobitcoin.com -oficinasjorgevelasquez.com -ofinar.tk -ofmail.com -ofmailer.net -ofme.us -ofmf.co.cc -ofmuse.net -ofojwzmyg.pl -oformlenzabor.xyz -oformlenzemli.xyz -ofosp.xyz -ofrnj.us -ofservicekomp.xyz -ofsmi.org -ofstanimmi.site -ofth3crumrhuw.cf -ofth3crumrhuw.ga -ofth3crumrhuw.gq -ofth3crumrhuw.ml -ofth3crumrhuw.tk -ofvn.com -ofwchannels.su -ofwlvh.tokyo -ofzsy5.us -og-sale.online -og107lso1tgkd3h.xyz -og7nz.us -oga.bet -ogabet.casino -oganijuana.com -ogbrandy.com -ogcdhkvdw.shop -ogclone.com -ogdencondos.com -ogemail.com -oghilj.com -oginski.ru -oginskiy.ru -oginskji.ru -oginskyi.ru -ogirisim.xyz -ogirock.website -ogktbh.site -ogladajonlinezadarmo.pl -ogloszeniadladzieci.pl -ogmail.com -ogmdqv.accountant -ogmwk.us -ogonma-kaima.ru -ogorodah-rossii.ru -ogorodnikpro.ru -ograjdenoform.xyz -ogremail.net -ogretio.com -ogrlaw.net -ogrn2.ru -ogrodzenia.pl -ogronompro.ru -ogu188.com -ogu7777.net -oguzhansusam.xyz -oguzkaanbekci.xyz -ogvictory.com -ogxservices.com -ohaaa.de -ohamail.com -ohauszho.shop -ohcan.space -ohdiker.news -ohdomain.xyz -ohfurs.com -ohhalfpricedlisting.com -ohhmyohhmy.com -ohhqq.club -ohhqq.life -ohi-design.pl -ohi.tw -ohins.info -ohinspection.com -ohio-riverland.info -ohiogems.com -ohioonational.com -ohioticketpayments.xyz -ohk.life -ohkogtsh.ga -ohkogtsh.ml -ohkrn.us -ohmail.com -ohmb6j.us -ohmbet.biz -ohmbet.org -ohmbet.poker -ohmbet.soccer -ohmbet.us -ohmbetcommunity.com -ohmbetmma.com -ohmbetodds.se -ohmyaffiliates.com -ohmygolly.net -ohmyholyeco.xyz -ohmytalents.co -ohmytechnologies.com -ohneworte.love -ohnjecg.club -oho3hx.com -ohpmao.com -ohrana-biysk.ru -ohrzi.us -ohsdirect.net -ohsjgkqur.shop -ohsnap.us -ohtheprice.com -ohuyln.us -ohw88.com -ohwonder.fun -ohwonders.fun -ohxmail.com -ohyesjysuis.fr -oib6bs.com -oibo.xyz -oida.icu -oidzc1zgxrktxdwdkxm.cf -oidzc1zgxrktxdwdkxm.ga -oidzc1zgxrktxdwdkxm.gq -oidzc1zgxrktxdwdkxm.ml -oidzc1zgxrktxdwdkxm.tk -oigmail.com -oiibp.site -oiio.ltd -oiio.tech -oiiux.live -oiizz.com -oil-and-cheese.ru -oil-barrel.fun -oil360.ru -oilfastershop.com -oilgazinvest.ru -oiljje.com -oilkem.ru -oilofolay.in -oilpaintingsale.net -oilpaintingvalue.info -oilpatchasia.com -oilpatchasiajobs.com -oilrepairs.com -oils4g.info -oilvtc.com -oimail.com -oiml0m.us -oing.cf -oink8jwx7sgra5dz.cf -oink8jwx7sgra5dz.ga -oink8jwx7sgra5dz.gq -oink8jwx7sgra5dz.ml -oink8jwx7sgra5dz.tk -oinkboinku.com -oinknetworks.com -ointeractive.net -oinvest.capetown -oinvest.durban -oinvest.joburg -oioinb.com -oioio.club -oiplikai.ml -oipmail.com -oipo.com -oippg.ru -oipplo.com -oiqas.com -oisg.org -oiunpt.shop -oiwiqe.info -oiwke.com -oiwkxms.xyz -oizxwhddxji.cf -oizxwhddxji.ga -oizxwhddxji.gq -oizxwhddxji.ml -oizxwhddxji.tk -oj-sale.online -oj2dfa.us -ojaivalleytaxidermy.com -ojamail.com -ojarvtbwe.cf -ojdad.us -ojdh71ltl0hsbid2.cf -ojdh71ltl0hsbid2.ga -ojdh71ltl0hsbid2.gq -ojdh71ltl0hsbid2.ml -ojdh71ltl0hsbid2.tk -ojekqq.com -ojemail.com -ojg2.icu -ojikfw.com -ojimail.com -ojl16bxv.fun -ojnbqjtc.shop -ojobmail.com -ojolbet.com -ojosambat.cf -ojosambat.ml -ojpvym3oarf3njddpz2.cf -ojpvym3oarf3njddpz2.ga -ojpvym3oarf3njddpz2.gq -ojpvym3oarf3njddpz2.ml -ojpvym3oarf3njddpz2.tk -ojrcdzkbf.shop -ojsflnbu.shop -ojudge.com -ojypfszj.shop -ok-body.pw -ok-play.ru -ok.sy -ok1756.com -ok420dr.com -ok4ov3.us -ok52.com -ok8037.com -ok888.site -ok8883.com -ok9227.com -okabashidonerkebabmadrid.com -okakambe.com -okalexandria.com -okanchorage.com -okane-college.com -okarlington.com -okathens.com -okatlanta.com -okauseniorlivingsok.live -okaybet11.com -okaybet169.com -okaybet22.com -okaybet248.com -okaybet369.com -okaybet44.com -okaybet456.com -okaybet55.com -okaybet777.com -okaybet888.com -okays378su.online -okbackpainreliefok.live -okbatonrogue.com -okbayarea.com -okbeatsdrdre1.com -okbiloxi.com -okbimini.com -okbismarck.com -okbody.pw -okbradenton.com -okbrookhaven.com -okcancun.com -okcanton.com -okcarmel.com -okcasper.com -okcatskills.com -okcharleston.com -okchattanooga.com -okcincinnati.com -okclearwater.com -okclouds.club -okclprojects.com -okcoloradosprings.com -okcommunity.fun -okcomputer.ru -okcoronado.com -okcorralcabins.com -okcostarica.com -okcovington.com -okcozumel.com -okculvercity.com -okdallas.com -okdayton.com -okdelmar.com -okdelray.com -okdenver.com -okdiane35.pl -okdominican.com -okean-doors.ru -okece.xyz -okedison.com -okeek.live -okelpaso.com -okeoceapasajaoke.com -okeyeglassesok.live -okeyif.xyz -okezone.bid -okfargo.com -okfonow.site -okfortlauderdale.com -okfoxborough.com -okfreeport.com -okgmail.com -okgreensboro.com -okgtd.com -okhalfpricedlistings.com -okhalfpricelistings.com -okharrisburg.com -okhempstead.com -okhonolulu.com -okhykxeew.shop -okinawa.li -okinawamealprep.club -okinotv.ru -okkansascity.com -okkendall.com -okkokshop.com -okla.ltd -oklahomaadoption.org -oklahomacityeldercare.com -oklahomacityquote.com -oklahomaroofingclaims.com -oklakeland.com -oklaredo.com -oklavastore.com -okledslights.com -oklho.com -oklittleton.com -oklkfu.com -oklogu.cf -oklogu.gq -oklogu.tk -oklosalamos.com -oklosangeles.com -oklubbock.com -okmacon.com -okmail.com -okmarthasvineyard.com -okmiamilakes.com -okmilton.com -okmodesto.com -okmontevideo.com -okmoseslake.com -okna2005.ru -oknaest.ru -oknantucket.com -oknapa.com -oknapai.ru -oknaprima.ru -okndrt2ebpshx5tw.cf -okndrt2ebpshx5tw.ga -okndrt2ebpshx5tw.gq -okndrt2ebpshx5tw.ml -okndrt2ebpshx5tw.tk -okneworleans.com -oknokurierskie.pl -oknorthlasvegas.com -okocala.com -okoceancity.com -okofeps.xyz -okokay.xyz -okolkad.buzz -okorody.best -okoxnard.com -okoysterbay.com -okpanama.com -okparkcity.com -okpawtucket.com -okpickshops.store -okpickshops.tech -okplatya.ru -okpoconos.com -okportland.com -okprinceton.com -okpuntacana.com -okqm.com -okredondobeach.com -okredwoodcity.com -okrent.us -okriodejaneiro.com -okriyadh.com -okrochester.com -okrockford.com -okryszardkowalski.pl -oksalisbury.com -oksaltlakecity.com -oksanantonio.com -oksanclemente.com -oksanjose.com -oksantaana.com -oksantamonica.com -oksantodomingo.com -okseattle.com -oksihum.com -okspringfield.com -okstamford.com -okstatenisland.com -okstlouis.com -okstorytye.com -oksttropez.com -oksunglassecool.com -oksuvsjet.live -oksuvsone.live -oksuvstop.live -oktai.ru -oktempe.com -oktoberfest2012singapore.com -oktoscrape.com -oktrips.com -okujoyun.pro -okuldanismanlik.xyz -okuldokuman.online -okuldokuman.xyz -okulistykakaszubska.pl -okulsfhjntc77889.ga -okulsfhjntc77889.ml -okuneva-llc.com -okuokukitapkalmadi.cf -okuokukitapkalmadi.ml -okuokukitapkalmadi.tk -okuruguay.com -okventura.com -okwashingtondc.com -okworld.ru -okwprzemysl.org -okyanusreklamsinop.com -okzk.com -okzmvp.site -ol.telz.in -ol7se6.us -olabahis.tv -olahoo.com -olanagolar.icu -olaq.store -olaytacx.top -olb855.com -olbosi.cf -olbosi.ga -olbosi.gq -olbpoker.online -olc.one -olcanoclub.one -olchromlei.ga -olchromlei.gq -olchromlei.ml -old-recipes.com -old-street.info -oldacg.com -oldbt.com -oldcelebrities.net -oldcity56.ru -oldcitycenter.net -oldcitycenter.org -olden.com.pl -oldfaithful.org -oldgreenlawlochy.com -oldgwt.space -oldhatseo.co -oldhistory2.net -oldlaptop.ru -oldmadein.com -oldmine.ru -oldmmogamers.net -oldmummail.online -oldnavycouponsbox.com -oldreliables.org -oldroons.com -oldscheme.org -oldschoolarcade.net -oldschoolgoeshightech.com -oldschoolnewbodynow.com -oldschoolnewbodyreviews.org -oldshoolrunescape.com -oldtownehandley.org -olechnowicz.com.pl -oledemades.ru -olegfemale.org -olegfineev.site -oleginshop.ru -olegmike.org -olesres.cf -olesres.ml -olesres.tk -oleybet243.com -oleybet244.com -oleybet245.com -oleybet246.com -oleybet249.com -oleybet258.com -oleytuttu.com -olga9.ru -olgamag.ru -olgis.ru -olgsale.top -olgt6etnrcxh3.cf -olgt6etnrcxh3.ga -olgt6etnrcxh3.gq -olgt6etnrcxh3.ml -olgt6etnrcxh3.tk -olia.website -olibro.page -olimagsimple.com -olimbec.com -olimp-case.ru -olimp-in.ru -olimpix-bet.com -olinbzt.ga -olinel.cf -olinel.ga -olinel.gq -olinel.ml -olinel.tk -olinetus.com -olinhyde.com -oliosales.info -olisadebe.org -oliva-patronage.ru -olivebranchapartments.com -olivegardencouponshub.com -oliveli.com -oliveoilanalysis.com -oliveoilbank.org -oliveoilbook.com -oliveoilbuyer.com -oliveoilclass.com -oliveoilconnoisseur.com -oliveoilfarm.com -oliveoilforlife.org -oliveoilhandbook.org -oliveoillab.com -oliveoillawsuit.com -oliveoilmagic.com -oliveoilmonthclub.com -oliveoilquality.org -oliveoilscore.com -oliveoilscore.org -oliveoilscores.com -oliveoilshop.net -oliveoilsnob.com -oliveoiltest.org -oliveoiltimes.net -oliveoiltimes.org -oliveoilweek.org -olivepizza.net -olivers.kiwi -oliveruniq.com -olivesmen.xyz -olivesoap.com -olivestextures.com -olivierredon.net -oliwonders.com -olixao.ml -oljdsjncat80kld.gq -ollisterpascheremagasinfrance.com -ollowsea.com -olmail.com -olmalaimi.cf -olmalaimi.ga -olmalaimi.ml -olmalaimi.tk -oln8.us -olnzd.us -olo4lol.uni.me -olobmai.cf -olobmai.ga -olobmai.gq -olobmai.ml -ololenses.com -ololomail.in -ololzi.ga -ololzi.ml -ololzi.tk -olplq6kzeeksozx59m.cf -olplq6kzeeksozx59m.ga -olplq6kzeeksozx59m.gq -olplq6kzeeksozx59m.ml -olplq6kzeeksozx59m.tk -olqe.info -olqenotes.com -olqenotes.net -olsenmail.men -olsnornec.ml -olsnornec.tk -olsonassociates.com -olvqnr7h1ssrm55q.cf -olvqnr7h1ssrm55q.ga -olvqnr7h1ssrm55q.gq -olvqnr7h1ssrm55q.ml -olvqnr7h1ssrm55q.tk -olxtoto.net -olymbecusa.com -olymcart.com -olymcms.com -olympiaeconomicsspot.com -olympiaha.net -olympus4kids.se -olypmall.ru -olyztnoblq.pl -olzopoopume.ru -omahachurchofchrist.net -omahsimbah.com -omail.pro -omailer.xyz -omamh.info -omanizdjm.ru -omarquesantiguidades.com -ombreshorthair.com -omca.info -omdo.xyz -omeaaa124.ddns.net -omega-3-foods.com -omega.omicron.spithamail.top -omega3nutrition.com -omegacoin.org -omegafive.net -omegasale.org -omegaxray.thefreemail.top -omego.ru -omenwi.ga -omenwi.gq -omenwi.ml -omenwi.tk -omerefake.tk -omerfaruksahin.com -omerindassagi.cf -omerindassagi.ga -omerindassagi.ml -omesped7.net -omessage.gq -ometofu.shop -omfcanada.ong -omfh.net -omgameshop.com -omgdelights.com -omheightsy.com -omi4.net -omicron.omega.myverizonmail.top -omicrongamma.coayako.top -omicronlambda.ezbunko.top -omicronwhiskey.coayako.top -omidbet.name -omiptras.cf -omiptras.gq -omiptras.tk -omitof.icu -omk24.de -omkostningertil.website -oml72.space -ommail.com -omni-sports.com -omni.nu -omnicro.com -omnievents.org -omnimart.store -omnimug.com -omnius-solutions.com -omnivative.com -omnyo.com -omoomn.host -ompokerasia.com -omsk-nedv.ru -omsk-viagra.ru -omskinport.cf -omskinport.gq -omskinport.ml -omskinport.tk -omsshoesonline4.com -omsvet.ru -omtamvan.com -omtnrye.site -omumail.com -omwe.ru -omxeepez.shop -omxvfuaeg.pl -omypoker.com -omypokers.com -omzae.com -omzg5sbnulo1lro.cf -omzg5sbnulo1lro.ga -omzg5sbnulo1lro.gq -omzg5sbnulo1lro.ml -omzg5sbnulo1lro.tk -on-review.com -on888b.life -onacin.gq -onamulet.ru -onani777.com -onarleyeman.xyz -onayost.info -onbachin.cf -onbachin.ga -onbachin.gq -onbachin.ml -onbachin.tk -onbehalfof.online -onbehalfof.store -onbet.org -onbf.org -onc12.space -onca03.com -onca04.com -oncapol2.com -once-repeat.xyz -onceinawhile.asia -oncemusic.ru -oncesex.com -onchainwallet.com -onclimate.com -oncloud.ws -oncloudsaves.email -oncult.ru -ondarrowpond.com -ondeler.site -ondemandemail.top -ondemandmap.com -ondemandroadsidehelp.com -ondeondp.shop -onderwijsinzicht.net -ondesign.info -ondponde.shop -ondrejsika.sk -one-college.ru -one-exposure.com -one-mail.top -one-n-only.ru -one-shoes.ru -one-shop.online -one-time.email -one.emailfake.ml -one.fackme.gq -one.pl -one.sch.lv -one2mail.info -one55.app -oneamericca.com -oneamerixa.com -onebiginbox.com -onebillionwait.org -onebucktwobuckthree.com -onebyoneboyzooole.com -onebyzero.net -onecalltrack.com -onecasinos.net -onecitymail.com -onecj.com -oneclickauth.com -onecoin.hk -onedayconnecticut.com -onedaymail.cf -onedaymail.ga -onedie.club -onedie.xyz -onedollarbooking.com -onedonation.com -oneeuro.club -oneexch.live -onefilteronefamily.com -onefivepro.se -onegoodchair.com -onehandtyper.com -onehomework.com -onehourmarketingbook.com -onehundredmice.com -oneid.club -oneindex.in.net -oneinfra.net -oneinfra.online -oneivorycoast.com -onekindwordproject.org -onelastebyte.com -onelastebyte.net -onelegalplan.com -onelivefestival.com -onemail.host -onemail1.com -onemediail.com -onemillionlightbulbs.com -onemoremail.net -onemoretimes.info -onenewiraq.com -onenime.ga -oneoc.com -oneoffemail.com -oneoffmail.com -oneonfka.org.ua -oneooneproperty.com -onepageaway.live -onepageaway.org -onepay.cyou -onepays.club -onepiece-vostfr.stream -onepiecetalkblog.com -oneplan.pics -oneplus.events -oneraviniadrive.com -onerealbox.com -oneredirecwins.icu -onergeinsaat.xyz -onesecond365.cn -oneshot-fluxe.xyz -oneshot07.com -oneshot119.com -oneshot63.com -onesiewereld.online -onesixdevelopments.com -onesjoy.com -onespeles.ru -onestarlight.xyz -onestepaboveclean.org -onestepmail.com -onestop21.com -onestopcodeshop.com -onestopcy.com -onestopiguanashop.com -onestopinfo.ga -onestopinfo.ml -onet-pol.xyz -onet.com -onetag.org -onetaipeis.info -onetap.marketing -onetap.site -onetonco2.com -onetouchedu.com -onetouchllc.com -onetouchtv.com -oneultimatehealth.com -onewalldecorblog.website -onewaylinkcep.com -onewaymail.com -oneworldhull.com -oneworldtales.com -onfave.info -onforth.shop -onfractalforge.com -ongc.ga -ongdia.com -ongoingwall.com -ongpkr.org -ongridhost.com -ongtroi.com -onhealth.tech -onhfcridg.shop -onhide.com -onhoonhe.shop -onhrrzqsubu.pl -oni49.space -oniaj.com -oninmail.com -onit.com -onitaps.com -onitfitness.com -oniun.ru -oniwyvdxe.cf -onjckuoj.shop -onjeslent.ml -onjeslent.tk -onkolojidoktoru.org -onkolojiokulu.info -onkyo.cd -onkyo1.com -onlatedotcom.info -onleenmag-ruspe.space -onlimail.com -onlime-24.website -online-1-shop1.info -online-2-shop1.info -online-3-shop1.info -online-4-shop1.info -online-5-shop1.info -online-6-shop1.info -online-7-shop1.info -online-8-shop1.info -online-9-shop1.info -online-business-advertising.com -online-business-directory.xyz -online-casino24.us -online-dartt.pl -online-dating-bible.com -online-dating-service-sg.com -online-discount-shopping.online -online-fly.com -online-geld-verdienen.gq -online-lvs788.com -online-marketing-university.org -online-mipowerbank.ru -online-pills.xyz -online-secure-uk.xyz -online-secure.monster -online-sokolov.ru -online-std.com -online-stream.biz -online-support.tech -online-web.site -online-webtools.com -online.ms -online315.xyz -online5.ru -onlineaccutaneworldpills.com -onlineautoloanrates.com -onlineautomatenspiele.host -onlineavtomati.net -onlinebakarat.org -onlinebankingcibc.com -onlinebankingpartner.com -onlinebooking.deals -onlinecanada.biz -onlinecarinsuranceexpert.com -onlinecasino-x.ru -onlinecasinobonus6167.net -onlinecasinostop.ru -onlinecasinosunion.com -onlinechristianlouboutinshoesusa.us -onlineclub.website -onlinecollegemail.com -onlinecomputerhelp.net -onlinecoursesidehustle.com -onlinedars.com -onlinedating-site-guide.rocks -onlinedatingsiteshub.com -onlinedeals.pro -onlinedeals.trade -onlinedoctor.link -onlinedutyfreeeshop.com -onlinedutyfreeshop.com -onlineee.com -onlineempireguide.com -onlinefunnynews.com -onlinegoods.store -onlineguccibags.com -onlinegun.com -onlinehackland.com -onlinehealthreports.com -onlinehoping58.ru -onlinehunter.ml -onlineidea.info -onlineinsurancequotescar.net -onlinejazz.poker -onlinejerseysnews.com -onlinejordanretro2013.org -onlinekampanyalar.site -onlinekindergartencourse.com -onlinekurz.sk -onlinelender.xyz -onlinelenders.xyz -onlinelending.xyz -onlinemail.press -onlinemail.pw -onlinemail.xyz -onlinemailfree.com -onlinemarket100.ru -onlinemarket360.ru -onlinemarket365.ru -onlinemarketingclass.org -onlinemaster.xyz -onlinemasterytrainingacademy.com -onlinemaximizer.net -onlinemaximizers.com -onlinemedic.biz -onlinemoneyfan.com -onlinemoneymaking.org -onlinemutualfund.xyz -onlinenet.info -onlinenewsfootball.com -onlinenewyorksingles.com -onlinepaydayloansvip.com -onlinepharmacy-order.com -onlinepharmacy.name -onlineplayers.ru -onlinepoker.cd -onlinepokerdom.online -onlinepokiesau.com.au -onlineprintspain.com -onlineprivacywatch.com -onlineprofessionalorganizer.com -onlineproffitslots.ru -onlineresellerdvd.com -onlinesafedating.com -onlinescore-iq.com -onlinescore-jo.com -onlineservice.asia -onlineshoesboots.com -onlineshop24h.pl -onlineshoppingcoupons24.com -onlineshopsinformation.com -onlineslostsdeposits.ru -onlinestodays.info -onlinestoress.ru -onlinetantraclasses.com -onlinetantracourses.com -onlinete-bfirsati.org -onlinetelehealthdoctor.com -onlinetoernooien.shop -onlinetomshoeoutletsale.com -onlinetoothdoctor.com -onlinetrafficmachine.com -onlinetravel.discount -onlinetravelagency.xyz -onlinevideochat.net -onlinevideomusic.xyz -onlineviewwx35.com -onlinevoucher.biz -onlinevulkandengi.tech -onlinewcm.com -onlinewebmail.top -onlinework-project.ru -onlinexploits.com -only-bag.com -only-marrakech.online -only2weeks.com -onlyapps.info -onlybarkplaza.com -onlyformen.club -onlyme.pl -onlymyshop.ru -onlyoffice.asia -onlyrefo.ru -onlys.site -onlysext.com -onlysingleparentsdating.co.uk -onlysolars.com -onlytoserve.com -onlyways.ru -onlywedding.ru -onmagic.ru -onmail.top -onmail.win -onmail3.com -onmailserver.me -onmailzone.com -onmenbr1.xyz -onmsfjgv.shop -onmuscletissue.uk -onmytee.info -onnormal.com -onofmail.com -ononymous.com -onousmykonos.com -onp9ue.us -onpersu.ga -onpersu.gq -onpersu.ml -onpersu.tk -onphlegeal.cf -onphlegeal.ga -onphlegeal.gq -onphlegeal.ml -onphlegeal.tk -onpilj.art -onplayagain.net -onpointjobs.org -onpotencialex.ru -onprice.co -onqin.com -onqus.com -onr.cloud -onsailbooking.net -onsailbooking.org -onsailcharter.info -onsailcharter.org -onsailcharter.us -onsaleadult.com -onsalemall.top -onsetingamed.rest -onshop5.com -onsitetrainingcourses.com -onskulls.com -onstochin.cf -onstochin.ga -onstochin.gq -onstochin.ml -onstochin.tk -onsunpantry.com -onsuvhub.live -onsuvsget.live -ontalk.biz -ontarioedu.com -ontariofishingreports.com -ontechnews.xyz -ontelist.cf -ontelist.ga -ontelist.gq -ontelist.ml -ontelist.tk -onterakt.com -ontheroxmag.com -onthestreet.shop -ontheweblearning.com -onthwmarket.com -ontostack.com -ontracademy.com -ontrvx.xyz -ontyne.biz -ontyve.xyz -onuadon.cf -onuadon.ga -onuadon.gq -onuadon.ml -onuadon.tk -onumail.com -onuncalkapisini.ga -onvaou.club -onviselki.ru -onw88.com -onwmail.com -onyeabor.info -onyxek.us -onyxhairballarat.com -onyxo.website -onyxprotectedsystems.com -onzberam.ga -onzberam.gq -onzberam.ml -onzberam.tk -oo-mail.net -oo.pl -oo18269.com -oo408.site -oo57822.com -oo8037.com -oo813.com -ooacsf.com -ooani.net -ooapmail.com -oob8q2rnk.pl -oobuying.com -oochiecoochie.com -oodlesnormantonroad.com -ooeawtppmznovo.cf -ooeawtppmznovo.ga -ooeawtppmznovo.gq -ooeawtppmznovo.ml -ooeawtppmznovo.tk -oofmail.tk -oogmail.com -oogxi.us -oohioo.com -oohlaleche.com -oohotmail.club -oohotmail.com -oohotmail.online -oohshiny.us -oohwin.com -oojy.com -ookfmail.com -oolhoazul.com -oolloo.cf -oolloo.org -oolmail.com -oolong.ro -oolus.com -oomble.com -oonabrangamsnell.com -oonies-balls.ru -oonies-game.ru -oonies-shoprus.ru -oonieser.ru -ooniesoriginal.ru -ooniez.ru -ooo-pocta.ru -ooo813.com -ooodesi.club -ooogrinvich.ru -ooolikvid.xyz -ooomail.ga -oooregitsr.xyz -oooreorganiz.xyz -ooorosso.ru -oooxx00.xyz -oopi.org -oopsify.com -oopsmotorinsurance.com -oorcmskl.shop -oormi.com -ooroos.com -oot-m.ru -ootriy.site -oou.us -ooutlook.com -oovy.org -ooxka.site -ooxx520.com -ooxx69.xyz -ooyoho.com -op82new.shop -opakenak.com -opalroom.com -opasnak.club -opay.money -opayq.com -opaywallet.info -opaywallet.org -opbergrekken.com -opc-888.com -opdota.ru -opdrsinangoker.com -ope037.com -opeasdeeacredla.space -opelmail.com -open-active-future.ru -open-domains.info -open-economy.org -open-info-outlet.ru -open-market-easy.ru -open-position.info -open-sites.info -open.brainonfire.net -openafortune.com -openamator.club -openandread.site -openavz.com -openbasecode.com -opencall.online -opencandidates.org -opencartmarket.com -opencmscheck.xyz -openconstruction.org -openculture.best -opendbs.com -opendbs.net -opendbs.org -opende.de -opendecoder.com -opendns.ro -openeats.org -openedtechfestival.info -openedtechfestival.org -openfront.com -opengafas.tk -openhippel.org -openhousesonmaui.com -openinboxexperiment.com -openingforex.com -openinvoice.us -openkaser.cf -openkc.com -openmail.ga -openmail.ml -openmail.tk -openmail330.sale -openmailbox.tk -openmailservice.com -openmindedzone.club -openmoneyclick.ru -openmotolv.site -opennames.info -opennetgame.org -openneural.host -openneural.net -openpabexample.site -openpoland.org -opensans.ru -openskj.com -opensourceed.app -openspacenn.ru -openssource.site -openstark.org -openstate.info -openstaxtutor.com -opentimetracker.com -opentrash.com -openuni.org -openves.org -openvitality.com -openvpc.com -openvpc.net -operabrow.com -operacjezeza.pl -operainsider.info -operatingtechnology.com -operationcrossroadsafrica.com -operationhopeshelter.com -operationsuperdad.com -operatowermanagment.com -operazhi.space -operenetow.com -opertali.info -opetron.com -opettajatmuljankoulu.tk -opew.pro -opex.cd -opgram19.com -opgram22.com -opgram24.com -opgram25.com -opgram27.com -opgram30.com -ophaltde.com -ophdoghau.ga -ophdoghau.ml -ophdoghau.tk -opilon.com -opinion-bank.ru -opinionbank.biz -opinionbank.global -opinionbank.online -opiratinha.info -opjhjhy.xyz -opka.org -opkhronvj.shop -oplaskit.ml -oplat-tele.com -oplata-kartoi-a.xyz -ople5c.info -opline2.net -opljggr.org -oplk71fvf.buzz -oplk72vmj.buzz -oplk73prn.buzz -oplk74rju.buzz -oplo77afu.buzz -oplo78xry.buzz -oploci.me -opmadot.cf -opmadot.ga -opmadot.gq -opmadot.tk -opmail.com -opmania2.net -opmania3.net -opmania5.net -opmania6.net -opmmail.com -opmmax.com -opmmedia.ga -opmtr.online -opmtr.xyz -opna.me -opno.life -opoezdke.com -opojare.org -opole-bhp.pl -opop00002.com -opop00003.com -opoprclea.website -opowlitowe53.tk -opp24.com -oppamail.com -oppax.com -oppein.pl -oppenheim.cd -oppobitty-myphen375.com -opportunityarabic.xyz -oppostreamingonline.com -oppubg.ru -oprety.site -opros-giveaway.ru -opros.money -opros2020eb.site -opros2020em.site -opros2020en.site -opros2020ra.site -opros2020re.site -opros2020ri.site -opros2020rp.site -opros2020rq.site -opros2020rt.site -opros2020rw.site -opros2020ry.site -opros2020td.xyz -opros2020tf.xyz -opros2020th.xyz -opros2020tj.xyz -opros2020tk.xyz -opros2020tl.xyz -opros2020ts.xyz -opros2020tz.xyz -opros2020ua.xyz -opros2020ub.xyz -opros2020uc.xyz -opros2020ud.xyz -opros2020ue.xyz -opros2020uf.xyz -opros2020ug.xyz -opros2020uh.xyz -opros2020uj.xyz -opros2020uk.xyz -opros2020ul.xyz -opros2020un.xyz -opros2020uo.xyz -opros2020up.xyz -opros2020uq.xyz -opros2020ur.xyz -opros2020us.xyz -opros2020ut.xyz -opros2020uu.xyz -opros2020uv.xyz -opros2020uw.xyz -opros2020ux.xyz -opros2020uy.xyz -opros2020uz.xyz -opros2020wf.site -opros2020ya.xyz -opros2020yb.xyz -opros2020yc.xyz -opros2020yf.xyz -opros2020yg.xyz -opros2020yh.xyz -opros2020yj.xyz -opros2020yk.xyz -opros2020yl.xyz -opros2020yn.xyz -opros2020yo.xyz -opros2020yp.xyz -opros2020ys.xyz -opros2020yv.xyz -opros2020yx.xyz -opros2020yz.xyz -oproseasyfunny3-ml.fun -oprosonline.xyz -oprosworld2-ml.info -opsdojo.net -opsdojo.org -opsmkyfoa.pl -opss40.net -opss60.com -opssfriend4.com -opt-pricesru.ru -opt-prodaja.online -opt3ornot.com -optchina-trade.ru -optelcom.ru -opten.email -opthila.cf -opthila.ga -opthila.gq -opthila.ml -opticagauss.com -opticalplaces.com -optician.com -optik-turkey.org -optikabiz.ru -optikavid.ru -optiksgaming.com -optimabusinessconsulting.com -optimalhealthchoices.com -optimalstackreview.net -optimalstackreviews.net -optimaweb.me -optimisticheart.com -optimisticheart.org -optimizationcomputersspot.com -optimumnutritionseriousmass.net -optimuslinks.com -optinseo.com -optiplex.com -optireg.net -optitum.com -optju.ru -optobiotics.com -optom-sumki.ru -optometrist-jacksonville-fl.com -optoseo.com -optph.ru -optpz.ru -optsales.site -optycon.biz -optykslepvps.com -optymalizacja.com.pl -opulent-fx.com -opusbanes.gq -opusmusicaltheatreworks.com -opussasy.info -oputin.cf -oputin.ga -oputin.gq -oputin.ml -oputin.tk -opvcfhue.shop -opwaty.cf -opwaty.gq -opwaty.ml -opwebw.com -opya1.shop -opya3.shop -opzeo.com -oqcal1.site -oqeib.us -oqiwq.com -oqlhy.live -oqshae.us -oqta.net -oqvftzzj.shop -oqzpv.us -or.orgz.in -or988.site -oracruicat.xyz -oralatlasa.info -oralreply.com -oramail.net -oranek.com -orang.ml -orangdalem.org -orange-bonplan.com -orangecamel.info -orangecountycotillion.com -orangecountycouplescounseling.org -orangecountyrefinishing.com -orangeinbox.org -orangemail.bet -orangerealestateagents.com -orangesticky.info -orangotango.cf -orangotango.ga -orangotango.gq -orangotango.ml -orangotango.tk -oranje-fans-limburg.com -orantcharities.com -orante.xyz -oras-market.ru -oratalk.com -orbitforce.com -orbitnew.net -orchang.shop -orchardmgr.com -orchesoldw.online -orchideous.best -orchidgrows.com -ordenadores.online -order84.gmailmirror.com -orderbagsonline.handbagsluis.net -ordercelloskinbylittlemonkey.com -orderchaosonline.com -orderevdln.ru -orderexecution.trade -orderoftheassassins.com -orderru.website -ordershoes.com -orderwindows.com -ordimo.app -ordinaryamerican.net -ordinaryyz1.com -orduavcilardernegi.com -orducadirfestivali.com -orducadirkamp.com -orduludjler.xyz -ordulugencler.xyz -ordyspost.cf -ordyspost.ga -ordyspost.gq -ordyspost.ml -ordyspost.tk -orecrusherplant.com -oregon-nedv.ru -oregon-skanner.com -oregonnewspress59.site -oreidresume.com -orelregion.ru -oremdoctors.com -orendagan.com -orescom.cf -orescom.ml -orescom.tk -oreshkis.site -orewscircle.site -orexrep.ga -orexrep.gq -orexrep.tk -orfea.pl -orfeaskios.com -orfensea.cf -orfensea.ga -orfensea.gq -orfensea.ml -orfensea.tk -orfulle.cf -orfulle.ga -orfulle.gq -orfulle.ml -orfulle.tk -org-archive.com -organic-best.ru -organic.in -organiccoffeeplace.com -organicera-cyprus.com -organicfarming101.com -organicgardenchannel.com -organicgardensupply.net -organicgreencoffeereview.com -organicmediasolution.com -organicmedinc.com -organicstyleshop.com -organikgoldfue.com -organikprpsacekimi.com -organiksacekim.net -organisologue.com -organizationid.com -organizechallengeclick.com -organjuana.com -organophilic.best -orgasm.cheap -orgasm.university -orgasmostelefonicos.com -orgbakrot.xyz -orgcity.info -orgiesimulator.com -orgiiusisk.gr -orgiosdos.gr -orglamixbox.com -orgmbx.cc -orgogiogiris.gr -orgonum.ru -orgpoint.org -orgtracks.com -orgzxncin.shop -orhalfpricedlisting.com -orhalfpricelisting.com -oriental.digital -oriental.network -oriental.wiki -orientalgrocery.com -orientaltakeaway.com -orientalwokwaterford.com -orientchinesetakeaway.com -orientcode.com -orientomg.com -oriete.cf -origamilinux.com -origin.pink -original-bayernsound.de -original-formula-product.info -original-hit-like.ru -original-mall-clear.ru -original-oonies.ru -original-product.ru -original-trilogy.com -originalempathytest.com -originalmacgames.com -orijinalfaynexfarma.club -orijinalkafur.fun -orikamset.de -oringame.com -orinmail.com -orinsport.com -orinsport.org -orinsports.org -oriogiosi.gr -orion.tr -oriondertest.it -orioni.org -orions-code.site -orionsbelt.download -oririnablueappclubnew.ru -oriverahomes.com -oriwijn.com -orjinalkafur.club -orjinalvirfort.space -orjm.ru -orkida.com -orlandofleldercare.com -orlandoforeclosurelistings.com -orlandopianoservice.com -orlandoroofreplacement.com -orlandotimeshareforrent.com -orleanssightseeing.com -orleasi.com -orlighme.club -orluxwellness.com -ormanlarda.space -ormtalk.com -orngwjrncx352.xyz -ornova.org -oro153.online -oroki.de -orotab.com -orpenrestcamp.com -orpxp547tsuy6g.cf -orpxp547tsuy6g.ga -orpxp547tsuy6g.gq -orpxp547tsuy6g.ml -orpxp547tsuy6g.tk -orq1ip6tlq.cf -orq1ip6tlq.ga -orq1ip6tlq.gq -orq1ip6tlq.ml -orq1ip6tlq.tk -orrara.cf -orrara.ga -orrara.ml -orrara.tk -orresponsibleserving.com -orrgzn.tokyo -ors.ong -orsa-studio.com -orsg.xyz -ortadogupanelim.xyz -ortaklartl.com -orteganow.com -orthodontistseoagency.com -orthomed.org -orthopedist620tz.online -orthowall.com -ortigasbylyndon.icu -ortutay.best -ortuteks.xyz -orumail.com -orumcekstand.com -oruse.xyz -orviaarabia.space -orviaksarabia.site -orvit.net -orvnr2ed.pl -orwf.icu -orxy.tech -oryjcqzx.shop -oryol-dosug.ru -oryx.hr -os-sale.online -os131.com -os2eagle.net -os3m.icu -osa.pl -osaimiword.com -osakaasiaticogranollers.com -osakapoker.com -osakawiduerr.cf -osakawiduerr.gq -osakawiduerr.ml -osaki-itokon.com -osakis.us -osamail.com -osatna.cf -osatna.ga -osatna.tk -oscar-dz.com -oscar.delta.livefreemail.top -oscarpeacock.buzz -oscarpostlethwaite.com -oscillaterecordings.com -oscubdea.cf -oscubdea.ga -oscubdea.gq -oscubdea.ml -oscubdea.tk -osdf.space -osdfsew.tk -osendingwr.com -oseuvitortv.site -osfujhtwrblkigbsqeo.cf -osfujhtwrblkigbsqeo.ga -osfujhtwrblkigbsqeo.gq -osfujhtwrblkigbsqeo.ml -osfujhtwrblkigbsqeo.tk -osg168live.asia -osg168live.us -osg777.link -osgame.live -osgame.online -osgpoker.us -oshietechan.link -osiyocomm.com -osk-d.com -oskadonpancenoye.com -osl8s9.us -oslobet34.com -oslobet36.com -oslobet38.com -oslogsearch.cf -oslogsearch.gq -oslogsearch.tk -oslowatches.com -osmangaziuniversitesi.xyz -osmaniyem.xyz -osmaniyeprefabrikyapi.xyz -osmanlawoffice.com -osmanlinetwork.com -osmom.justdied.com -osmonit.com -osmosworld.ru -osmqgmam5ez8iz.cf -osmqgmam5ez8iz.ga -osmqgmam5ez8iz.gq -osmqgmam5ez8iz.ml -osmqgmam5ez8iz.tk -osned.ru -osnovnoy-kapital.ru -osnspo.com -osoboekb.ru -osocogroup.com -osodthia.cf -osodthia.ga -osodthia.gq -osodthia.ml -osodthia.tk -osormail.com -ososos.ml -osporno-x.info -osrypdxpv.pl -ossb.xyz -ossetia.wiki -ostah.ru -ostarsqooq.ru -ostartt.shop -osteoaneurysm.best -osteofluidica.net -osteopath-enfield.co.uk -ostepterp.cf -ostepterp.ga -ostepterp.gq -ostepterp.ml -ostepterp.tk -ostio.com -ostracizing937lm.online -osuedc.org -osuvpto.com -osveber.cf -osveber.ga -osveber.gq -osveber.ml -osveber.tk -osvjk.us -osvvenice.com -oswegotimes.com -oswietlenieogrodow.pl -oswo.net -osxos.net -osxos.org -osyokoruku02.xyz -ot-pryschei.tk -otacon.ca -otakusoftware.net -otakusoftware.org -otbeachholidays.com -otdel-proklyatij.ru -otdel-proklyatiy.ru -otdukkan.com -otdyh18.club -otekikonular.xyz -otekyc.xyz -otel-rehberi.com -otelkaraca.biz -otelsi.info -oteuecra.site -othedsordeddy.info -otheranimals.ru -otherbla.icu -otherdog.net -otherene.icu -othergoods.ru -otherinbox.codupmyspace.com -otherinbox.com -othersmodesto.com -otip.lawyer -otitrluh.shop -otkat.info -otkrit-ooo.ru -otkrivator.ru -otktimqc.shop -otlook.es -otm6171ekv.com -otmail.com -otnasus.xyz -otobakim.live -otoborsam.com -otobusistanbul.xyz -otocharj.com -otoeqis66avqtj.cf -otoeqis66avqtj.ga -otoeqis66avqtj.gq -otoeqis66avqtj.ml -otoeqis66avqtj.tk -otogazmontaji.online -otogazmontaji.xyz -otomasyontr.org -otomax-pro.com -otonmail.ga -otoplenie-stout.ru -otostiker.com -ototarz.com -otrabajo.com -otsevers.com -otsonointi.org -otsos96.link -otsrochki.su -ott-mvp16.com -ott-mvp17.com -ott-mvp21.com -ott-mvp23.com -ott-mvp24.com -ott-mvp25.com -ottappmail.com -ottawa-lottery.info -ottawaprofilebacks.com -ottencoffee.net -otterrep.stream -ottertailpower.com -ottocalling.com -ottoform.net -ottopetra.com -ottotech.net -otu1txngoitczl7fo.cf -otu1txngoitczl7fo.ga -otu1txngoitczl7fo.gq -otu1txngoitczl7fo.ml -otu1txngoitczl7fo.tk -otucri.cf -otucri.ga -otucri.gq -otucri.ml -otucri.tk -otvetinavoprosi.com -otwetka.com -otye.us -otymutre.site -otzavoda.kg -otziv63pokupki.ru -ou-sale.online -ou-se-baigner.com -ou127.space -ou129.space -ou131.space -ou136.space -ou140.space -ou141.space -ou143.space -ou144.space -ou6tcm.site -ou7g32rye.com -oualmdxit.shop -oubgusax.site -oucaiwang.xyz -oucvvwsb.shop -oudelandsrundvlees.com -oudmane.com -oudtrees.com -oudturnhout.com -ouenkwxrm.shop -oughtdetailrabbi.site -ouhihu.cf -ouhihu.ga -ouhihu.gq -ouhihu.ml -ouhvjg.com -oulaiqi.com -oulook.com -oulqic.ga -oumayla.com -ouncil.info -ount.ru -oup3kcpiyuhjbxn.cf -oup3kcpiyuhjbxn.ga -oup3kcpiyuhjbxn.gq -oup3kcpiyuhjbxn.ml -oup3kcpiyuhjbxn.tk -oupt02.com -oupt03.com -ouqrp.us -our-products.ru -ourang29.icu -ourawesome.life -ourawesome.online -ourbox.info -ourbukkit.com -ourchurch.app -ourcocktaildress.com -ourcocktaildress.net -ourconnectedhistory.com -ourcritters.net -ourday.info -ourdietpills.org -ourensetv.gal -ourfgv.us -ourgraduationdress.com -ourgraduationdress.net -ourhosting.xyz -ourklips.com -ourladyoftheelms.org -ourlouisvuittonfr.com -ourloveones.com -ourmonclerdoudounefr.com -ourmonclerpaschere.com -ourmudce.cf -ourmudce.ga -ourmudce.gq -ourmudce.ml -ourmudce.tk -ournewcoin.com -ouroboros.icu -ourobouros.net -ourpreviewdomain.com -oursblog.com -oursecure.com -ourstorereviews.org -ourstoryislove.org -oursuperhealth.ru -ourtrailer.com -ourupad.cf -ourupad.ga -ourupad.gq -ourupad.ml -ourupad.tk -ousbyrpe.cf -ousbyrpe.gq -ousbyrpe.ml -ousbyrpe.tk -ousxvo.icu -out-email.com -out-mail.com -out-mail.net -out-of-the-box-it.com -out-sourcing.com.pl -out2.us -outbacksteakhousecouponshub.com -outclass.best -outcomes-insite.org -outcross.site -outdonews.com -outdoopaintingchallenge.com -outdoor-experience.info -outdoorlightingreviewshq.com -outdoornd.com -outdoorproductsupplies.com -outdoorproseries.com -outdoorsd.com -outdoorslifestyle.com -outdoorsonwheels.com -outdoorsshop.futbol -outdoorwaterprooffloor.com -outdoorwoodsheds.com -outercab.buzz -outercabin.buzz -outernet.nu -outernet.shop -outerpic.site -outershout.space -outfoxes.com -outfring.info -outfu.com -outfurra.cf -outfurra.ga -outfurra.gq -outfurra.ml -outgie.com -outhouse.best -outikoumail.com -outime.ru -outlandlabs.com -outlawfrontier.com -outlawmma.co.uk -outlawspam.com -outlddook.com -outlet-adidas.info -outlet-michaelkorshandbags.com -outletadidasi.info -outletbrasileiro.com -outletcheap.net -outletcoachfactorystoreus.com -outletcoachonlinen.com -outletcoachonliner.com -outletgucciitaly.com -outletika.com -outletimg.com -outletinformatica.net -outletjacketsstore.com -outletkarenmillener.co.uk -outletlouisvuittonborseiitaly.com -outletlouisvuittonborseitaly.com -outletlouisvuittonborseoutletitaly.com -outletlouisvuittonsbag.co.uk -outletmichaelkorssales.com -outletmonclerpiuminiit.com -outletomszt.com -outletpages.com -outletpiuminimoncleritaly.com -outletpiuminimoncleritaly1.com -outletraybans.com -outlets5.com -outletsport.org -outletstores.info -outlettcoachstore.com -outlettomsonlinevip.com -outlettomsonlinezt.com -outlettomsshoescheap.com -outlettomsshoesstore.com -outlettomszt.com -outlettoryburchjpzt.com -outlok.com -outlok.net -outlok.site -outloo.com -outlook.twitpost.info -outlook2.gq -outlookkk.online -outlookpro.net -outloomail.gdn -outlouk.com -outluk.com -outluo.com -outluok.com -outlyca.cf -outlyca.gq -outlyca.ml -outlyca.tk -outmail.win -outmail4u.ml -outoffice.online -outoffice.ru -outomcam.cf -outomcam.gq -outomcam.ml -outomcam.tk -outpaas.com -outpatientaddictionrehabs.com -outputtin.com -outrageousbus.com -outragesia.online -outree.org -outriggeradvisors.com -outriggerasia.com -outriggeratkoloalanding.com -outriggerbusinessadvantage.com -outriggerhospitalitygroup.com -outriggerinternational.com -outriggerkamaaina.com -outriggerkeauhoubay.com -outriggerkeauhoubeachresortandspa.com -outriggerkonabeachclub.com -outriggerkonabeachresort.com -outriggerkonabeachresortandspa.com -outriggerkonabeachsparesort.com -outriggerkonacoastsparesort.com -outriggerkonagolf.com -outriggerkonaoceanresort.com -outriggerkonaresort.com -outriggerkonaresortandspa.com -outriggerkonaspa.com -outriggerreefwaikikibeachresort.com -outriggersports.com -outriggersydney.com -outriggervietnam.com -outriggerwaikikibeachresort.com -outriggerwaikikiconnection.com -outriggerwaipoulibeach.com -outroteste.xyz -outsidestructures.com -outsourcevan.biz -outsourcing-centre.com -outstandingtrendy.info -outtradesa.info -outuok.com -ouwoanmz.shop -ouwrmail.com -ouynwj.com -ov3u841.com -ovaclockas24.net -ovaf8g.site -ovalsbybeth.icu -ovaqmail.com -ovathebridge.com -ove.casino -ovefagofceaw.com -ovejes.gq -ovejes.ml -ovenprices.com -ovensshop.live -oveo-plasmapen.com -oveodewa.org -over-craft.ru -over-you-24.com -overagent.com -overclockage.com -overcomebf.com -overcomeoj.com -overdaxilket.ru -overflowclothing.com -overgoal.net -overgol.net -overhaulrefit.site -overheadstorageforgarage.com -overheid.works -overkidlde.space -overkill4.pl -overkill5.pl -overkill6.pl -overmetre.com -overpubg.com -overreader.com -overseas.vote -overseasdentist.com -overtechs.com -overtijdpil.com -overwholesale.com -overy.ru -ovhns.net -ovi.usa.cc -ovi9bc.us -ovicellular.best -oviedoeczy.site -ovik-servis.ru -ovimail.cf -ovimail.ga -ovimail.gq -ovimail.ml -ovimail.tk -ovinh.com -ovipmail.com -ovismuapyr.space -ovlov.cf -ovlov.ga -ovlov.gq -ovlov.ml -ovlov.tk -ovmail.com -ovmau.us -ovo188s.com -ovo365.xyz -ovoh.com -ovorowo.com -ovoskv.shop -ovotogel.org -ovowin.biz -ovpn.site -ovpn.to -ovtracker.org -ovukfi.us -ovulometr.ru -ovv20p.site -ovvamaviyesil.com -ovvd20.site -ovvdq.site -ovvdt.site -ovvee.com -ovvpq.site -ovvpt.site -ovwfzpwz.pc.pl -ovz99.space -owa.kr -owawkrmnpx876.tk -owbot.com -owee.org -oweiidfjjif.cf -oweiidfjjif.ga -oweiidfjjif.gq -oweiidfjjif.ml -oweiidfjjif.tk -owemolexi.swiebodzin.pl -owensborolimos.com -oweshapeoil.website -owfcbxqhv.pl -owga67admhbf5p0.xyz -owh.ooo -owibi.site -owingsmillsshowerglass.com -owl-dr.com -owlies.com -owljh1.site -owllense.com -owlowl.fish -owlpic.com -owlymail.com -own-tube.com -ownchatserver.com -owncloud.design -ownerba.xyz -ownerbanking.org -ownerbasi.xyz -ownerfinancezone.com -ownerflus.us -ownerpre.xyz -ownerpres.xyz -ownersimho.info -ownerupse.press -ownhome.xyz -ownrd.us -ownrespects.host -ownsyou.de -ownyourapps.com -ownyourown.today -owqcrj.icu -owrdonjk6quftraqj.cf -owrdonjk6quftraqj.ga -owrdonjk6quftraqj.gq -owrdonjk6quftraqj.ml -owrdonjk6quftraqj.tk -owstracker.com -owsz.edu.pl -owwapp.com -owz83.space -ox5bk.us -oxalamid.best -oxbridgeeight.com -oxddadul.cf -oxddadul.ga -oxddadul.gq -oxddadul.ml -oxddadul.tk -oxfarm1.com -oxford.gov -oxg9a.us -oxiburn.com -oxid2828.com -oxid2828.net -oxid2828.org -oxinchannel.net -oxjfqcgff.shop -oxjl.com -oxjsa9.us -oxkvj25a11ymcmbj.cf -oxkvj25a11ymcmbj.ga -oxkvj25a11ymcmbj.gq -oxkvj25a11ymcmbj.tk -oxmail.com -oxopin.com -oxopoha.com -oxplay.ru -oxudvqstjaxc.info -oxul.us -oxx3ta.us -oxxbcnqi.shop -oxxx.bid -oxyelitepro.ru -oyalmail.com -oyama-h.online -oyekgaring.ml -oyelucky.xyz -oyetalove.com -oyj32.us -oyjob.com -oykw.us -oylstze9ow7vwpq8vt.cf -oylstze9ow7vwpq8vt.ga -oylstze9ow7vwpq8vt.gq -oylstze9ow7vwpq8vt.ml -oylstze9ow7vwpq8vt.tk -oyly.com -oyma9q.com -oymail.com -oynabingo.com -oyncki.us -oyoble.site -oyogscanada.com -oyu.kr -oyuhfer.cf -oyuhfer.ga -oyuhfer.gq -oyuhfer.ml -oyujia.icu -oyukikoy.site -oyuncaak.net -oyuncakantika.online -oyuncakantika.xyz -oyuncountry.xyz -oyunport.com -oyw9wj.online -oywjgkpc.icu -ozabor.xyz -ozanilan8.xyz -ozark.store -ozaudio.ru -ozbzt.live -ozeflowers.com -ozelevrenbey.com -ozelguvenlikbul.net -ozgunvjbi.shop -ozijmail.com -ozjwuo.site -ozlaq.com -ozleh.info -ozmail.com -oznmtwkng.pl -ozo88.host -ozo88.xyz -ozogaming.com -ozon-sale.promo -ozonehumourrainy.site -ozoopoker.net -ozoozon.ru -ozost.com -ozozwd2p.com -ozqn1it6h5hzzxfht0.cf -ozqn1it6h5hzzxfht0.ga -ozqn1it6h5hzzxfht0.gq -ozqn1it6h5hzzxfht0.ml -ozqn1it6h5hzzxfht0.tk -ozsanlojistik.com -ozsanlojistik.online -ozsanlojistik.xyz -ozsoymesrubat.online -ozsoymesrubat.xyz -oztasmermer.com -oztemizlikmalzemeleri.xyz -ozumz.com -ozuturkisg.com -ozuygunemlak.com -ozweddings.com -ozxxta.us -ozxzd.live -ozyl.de -ozyumail.com -ozzopoker.net -ozzstream.com -ozzytoto.info -ozzytoto.net -ozzytoto.shop -p-31.ru -p-a-y.biz -p-banlis.ru -p-bonus.ru -p-fishing.ru -p-g-7.com -p-gdl.cf -p-gdl.ga -p-gdl.gq -p-gdl.ml -p-gdl.tk -p-i-x.fun -p-oops.com -p-response.com -p-value.ga -p-value.tk -p-winning.com -p.mrrobotemail.com -p.new-mgmt.ga -p.polosburberry.com -p0r2h.us -p0yxlf.us -p0z.xyz -p100rxls.buzz -p106riif.buzz -p1316.xyz -p1775.com -p180.cf -p180.ga -p180.gq -p180.ml -p180.tk -p1c.us -p1g5.icu -p1g5online.com -p1nhompdgwn.cf -p1nhompdgwn.ga -p1nhompdgwn.gq -p1nhompdgwn.ml -p1nhompdgwn.tk -p1psolutions.biz -p1vdbe.com -p2m3i.us -p2pget.com -p2pnote.com -p2puniversity.com -p2purl.com -p2uqyf.site -p2wnow.com -p2x.site -p2zyvhmrf3eyfparxgt.cf -p2zyvhmrf3eyfparxgt.ga -p2zyvhmrf3eyfparxgt.gq -p2zyvhmrf3eyfparxgt.ml -p2zyvhmrf3eyfparxgt.tk -p33.org -p3334.xyz -p3531.xyz -p3gvm.us -p3sync.com -p4320.site -p4720.site -p4820.site -p4920.site -p4mpgr.com -p4tnv5u.pl -p5220.site -p5420.site -p5720.site -p58fgvjeidsg12.cf -p58fgvjeidsg12.ga -p58fgvjeidsg12.gq -p58fgvjeidsg12.ml -p58fgvjeidsg12.tk -p5gby.cloud -p5m7n6.us -p5mail.com -p5raoy.site -p5wbd.art -p6120.site -p62qcn.us -p684.com -p68p68.com -p6c5fi.us -p6halnnpk.pl -p6udt9.us -p71ce1m.com -p7665.com -p7998.com -p7n39rellip7.best -p8oan2gwrpbpvbh.cf -p8oan2gwrpbpvbh.ga -p8oan2gwrpbpvbh.gq -p8oan2gwrpbpvbh.ml -p8oan2gwrpbpvbh.tk -p8y51.us -p8y56fvvbk.cf -p8y56fvvbk.ga -p8y56fvvbk.gq -p8y56fvvbk.ml -p8y56fvvbk.tk -p90x-dvd.us -p90xdvds60days.us -p90xdvdsale.info -p90xlifeshow.com -p90xstrong.com -p92qe4-mail.xyz -p99520.com -p9fnveiol8f5r.cf -p9fnveiol8f5r.ga -p9fnveiol8f5r.gq -p9fnveiol8f5r.ml -p9fnveiol8f5r.tk -p9u6crt8xk4lgh1.xyz -pa912.com -pa913.com -pa916.com -pa921.com -pa927.com -pa928.com -pa972.com -pa975.com -pa9e.com -pa9tcs.com -paaarssiiggraaaam.club -paabbbblloo.club -paabbbiillo.club -paabbbiilloo.club -paabbbiiloo.club -paabbiboooo.club -paabbiiloo.club -paabbillo.club -paaffshop.store -paaland.com -pabbbiiilloo.club -pabbloobbbt.club -pabiyy.club -pablitos.pizza -pablo20.xyz -pabloalcalde.com -pablobar.ru -pabloobbt.live -pabooli.club -paboyewe.site -pabuksat.ml -pabulum.xyz -pabypay4.club -pabyy3.club -pacdoitreiunu.com -paceforwarders.com -paceincorp.com -pacemls.com -paceshops.site -pachilly.com -pachinkostudio.com -pacific-ocean.com -pacificcoastphysicaltherapy.com -pacificndc.com -pacificpropertysolutions.com -pacificsportboats.com -pacifiersshop.life -packageholidaystohawaii.com -packagetrackingplus.com -packandexplore.com -packengine.club -packer.dev -packersandmovers-pune.in -packersproteamsshop.com -packerssportstore.com -packetpan.com -packiu.com -packsec.com -pacnoisivoi.com -padanghijau.online -padcasesaling.com -paddgapho.cf -paddgapho.ga -paddgapho.ml -paddgapho.tk -paddle-board-yoga.com -paddlepanel.com -paddockpools.net -paddybetting.com -padfoundationnwi.org -padili.com -padisabilitylawfirm.com -padkwhzff.shop -padlet-alternate.link -padonkit.online -padonko.online -paeharmpa.cf -paeharmpa.ga -paeharmpa.gq -paeharmpa.ml -paeharmpa.tk -paemangmarnewslop.space -paennsthaidelivery.se -pafnuty.com -pafoshalfmarathon.com -pafrem3456ails.com -paftelous.website -pafuribordercamp.com -pagaconvinti.com -pagalworldg.info -pagamenti.tk -pagamentos.tk -pagatucolegio.com -pagatufactura.net -pagatuimpuesto.com -page-aca.com -page2podcast.org -pagedesignnet.com -pagefault.xyz -pagesblanchesannuaire.com -pagesblanchesannuaires.net -pagesblanchesjaunes.com -pagesjaunesblanches.com -pagesroad.xyz -paginadelmillondeeuros.com -paglask.ru -paglife.online -pagodagardentakeaway.com -pagodatoto.net -pagossnr.com -pagr.dev -paguesufactura.net -paguesuimpuesto.com -pahalfpricedlisting.com -pahalfpricedlistings.com -pahalfpricelisting.com -pahalfpricelistings.com -paharpurmim.cf -paharpurmim.ga -paharpurmim.gq -paharpurmim.ml -paharpurmim.tk -paharpurtitas.cf -paharpurtitas.ga -paharpurtitas.gq -paharpurtitas.ml -paharpurtitas.tk -pahazife.space -pahazp.info -pahe21.club -paherowalk.org -paherpur.ga -paherpur.gq -paherpur.ml -pahilldob.ga -pahilldob.gq -pahilldob.ml -pahilldob.tk -pahiref.ru -pahrumptourism.com -paidattorney.com -paideia.foundation -paideia.university -paidpocket.com -paigecourtneyphotography.com -paigegordon.biz -paiindustries.com -paikhuuok.com -pailerback.gq -paimadoc.cf -paimadoc.gq -paimadoc.tk -paimu.space -painmitt.com -painperformancesolutions.com -painsocks.com -paintapplicator.biz -paintapplicator.net -paintapplicator.us -paintapplicators.net -paintapplicators.org -paintapplicators.us -paintballpoints.com -paintcl.buzz -paintebkhz.space -paintedblackhorseranch.com -painter-pete.com -painting-commission.com -painting-stamps.info -paintingeasy.club -paintingideas.online -painttr.icu -paintyourarboxers.com -paipesro.cf -paipesro.tk -pairatehunters.tokyo -pairefan.cf -pairefan.ga -pairefan.gq -pairefan.ml -pairefan.tk -pairiewa.gq -pairiewa.ml -pairiewa.tk -pairing.info -paisaazaar.com -paito.news -paito.ninja -paito4d.org -pajamaprofits.com -pajarillamail.club -pajazzos.online -pajjys.com -pak-ab.company -pak-ab.net -pak-ab.shop -pakadebu.ga -pakcleaners.com -pakde21.xyz -paketliburantourwisata.com -pakistaninews.xyz -pakistantodubai.com -pakolokoemail.com.uk -pakvsindia.live -pakwork.com -palace-properties.com -palacebowlinglanes.com -palaciosvinodefinca.com -paladin.rocks -palaeocreations.com -palatenstation.xyz -palatinefootandankle.com -palau-nedv.ru -palauaquarium.org -palauisy.info -palaulifes.info -palaveer.com -palazzostorico.net -palbibooo.club -paleofix.xyz -paleorecipebookreviews.org -paleregression.space -palermo-pizza.ru -paletteswap.com -palgan.biz -palgong80.com -palingbaru.tech -paliny.com -palkarouz.ru -pallacemax.store -paller.cf -palm-bay.info -palma4d.org -palmantdo.gq -palmantdo.ml -palmantdo.tk -palmdalechildrendental.com -palmdelgolf.com -palmdirun.ga -palmdirun.gq -palmdirun.ml -palmdirun.tk -palmerhoward.net -palmettospecialtytransfer.com -palmoilmill.com -palmone.cd -palmviewdentist.com -paloaltoaudi.com -paloaltoeyeworks.net -palosdonar.com -palpialula.gq -pals-pay54.cf -palsengineering.com -paltalkurl.com -pamanollo.com -pamanpk.net -pamapamo.com -pame888.com -pamelachance.com -pamidor714.info -pamilyn.com -pamm-expert.ru -pamorqq.net -pampanga.news -pampe.ru -pamplomail.club -pamposhtrophy.com -pamptingprec.ga -pamptingprec.gq -pamptingprec.ml -pamptingprec.tk -pamukkaletraverten.xyz -pan6974.com -panagra.site -panama-nedv.ru -panama-real-estate.cf -panamacityairport.net -panamacitysegway.com -panamaverdad.com -panamawmlx.ru -panamiapizza.com -panasonicgf1.net -pancakemail.com -panchasefm.com -panchen.info -panchitocastellodelaplana.com -panchoalts.com -pancosj.cf -pancosj.ga -pancosj.gq -pancosj.ml -pancreaticprofessionals.com -pancrelcgq.space -panda-money1.ru -pandaarkit.com -pandacn8app.com -pandacoin.shop -pandafan.one -pandafan.run -pandafan.website -pandafan.xyz -pandafans.xyz -pandafit.ru -pandamail.tk -pandarastore.top -pandemic.cloud -pandemic.holdings -pandemic.llc -pandemic8.com -pandora-watch1.ru -pandorabet95.com -pandoradeals.com -pandoramaps.com -pandoraonsalestore.com -pandostore.co -pandtrk.site -panduanliga88.com -pandushka.info -panel.contractors -panelfinance.com -panelistan.site -panelpros.gq -panelps.ru -panels.contractors -panels.top -panelssd.com -panelyikqsl.email -panelyou.xyz -panen228.net -panen228.org -panen365.net -panenpoker.email -panentogel.com -panicchaos.us -paniclim.xyz -panicsug.xyz -panicsweeptech.info -panimalar.org -pankasyno23.com -pankasyno30.com -pankujvats.com -pankx.cf -pankx.ga -pankx.ml -pankx.tk -panlvzhong.com -panmoe.com -pannangua.xyz -pannellifasedue.com -panolams.org -panonyyhwd.space -panopticsites.com -panoptive-inc.com -panoramafriesland.online -panoramafryslan.online -panoramapenza.ru -panoramicdentalclinic.com -panoround-app.com -panquecamail.xyz -pansamantala.poistaa.com -panskillet.ru -pantagor-gel.ru -pantalftwt.ru -pantazislawfirm.com -panteon7.ru -panterrra.com -pantheonclub.info -pantheonstructures.com -panthere.store -pantherscharlotte.com -pantofisport.info -pantogor-dealer.ru -pantophilus.com -pants24.ru -pantspro.ru -pantsuit.online -panu.cd -panwithsse.cf -panwithsse.ga -panwithsse.ml -panzer-corps.com -paofen6.com -paoh9a36.xyz -paohetao.com -paolavazquez.com -paonlinegambling.net -paonuo87.icu -paosk.com -papa.foxtrot.ezbunko.top -papa86.com -papaccfrat.club -papachka.ru -papaglitch.com -papai.cf -papai.ga -papai.gq -papai.ml -papai.tk -papajp.xyz -papaparororo.com -paparazzi-ongar.com -paparoatrackhike.com -paparoatrackmtb.com -papasha.net -papaxj.info -papayani.com -papayes.space -papenc.site -paper.cd -paperab.icu -paperbagimprints.com -paperfu.com -paperimprints.com -papermakers.ml -paperoper.xyz -paperpixels.net -paperrecent.cyou -papersaviour.com -papershelpers.website -papertravellers.org -papertri.email -papierkorb.me -papillionapartments.com -papinvlog.ru -papirobizurado.com -papl.icu -papl45tvy.buzz -papl46tbu.buzz -papl47ynu.buzz -papl48imo.buzz -papl49evo.buzz -paplease.com -papm50rni.buzz -papo.store -papolog.com -pappd.com -papua-nedv.ru -papuaqq.org -papuaqq.site -papubar.pl -papystreaming.llc -paqli.us -para2019.ru -parabayt.com -parabellum.us -paracat.org -paradigmclimbing.com -paradigmexplorer.net -paradigmplumbing.com -paradigmpop.com -paradise-massage.ru -paradise-properties.com -paradise-rp.fun -paradiselleida.com -paradisenearby.site -parador.media -parafforby.space -paragonmaps.net -paragvai-nedv.ru -paraisotropicalflorida.com -paralamb.ga -paralamb.gq -paralamb.ml -paralamb.tk -paralelweb.xyz -paralet.info -parallaxgap.com -parallelizes587nt.online -paralyzenetwork.shop -paramail.cf -paramedicimprovementacademy.com -parampampam.com -paranaguia.com -paranakit.net -parangsoca.com -parapentemocio.com -parasizkalmayalim.ml -parasizkalmayalim.tk -parasizonq.space -paraska.host -parasmi.club -paraterdeco.site -paratudo.store -parawansaassoniwora.id -parayum.net -parayum.org -parazit-ua4.website -parazit-ua5.website -parbapcrat.cf -parbapcrat.ga -parbapcrat.ml -parbapcrat.tk -parbehon.cf -parbehon.ga -parbehon.gq -parbehon.tk -parborental.com -parcartones.buzz -parcel4.net -parchmentmoon.net -parcimen.cf -parcimen.ga -parcimen.gq -parcimen.tk -parcosimone.org -pardakhtinano.xyz -pardakhtinanox.xyz -pardakhtinanoxy.xyz -pardazpara8.xyz -pardintret.xyz -pardis.shop -pardisyadak.com -paredav.site -parelay.org -parent.rip -parentby.design -parenthesizes360sc.online -parentingabahihsan.com -parentrescue.website -parents.lol -parents.wtf -parentsxke.com -parestate.xyz -pareton.info -parezvan.com -parfaitparis.com -parfar.ru -parfum-sell.ru -parfum-uray.ru -parfum33.ru -parfumcinta.club -parfumpoint.store -parhaatpelaa.online -pari-match-affiliate.com -parichitta.xyz -paridisa.cf -paridisa.ga -paridisa.gq -paridisa.ml -paridisa.tk -parikmakher.ru -parimatch-1xbet.site -parimatch-affiliates.com -parimatch-app.ru -parimatch-best4.com -parimatch-bett.ru -parimatch-chance10.com -parimatch-chance7.com -parimatch-chance8.com -parimatch-chance9.com -parimatch-fast7.com -parimatch-fast9.com -parimatch-great7.com -parimatch-great9.com -parimatch-ok.ru -parimatch-start10.com -parimatch-start9.com -parimatch-stavka10.com -parimatch-stavki10.com -parimatch-stavki7.com -parimatch-stavki8.com -parimatch-stavki9.com -parimatch-top10.com -parimatch-top7.com -parimatch-top8.com -parimatch-top9.com -parimatchchance10.com -parimatchchance7.com -parimatchchance8.com -parimatchchance9.com -parimatchfast10.com -parimatchfast7.com -parimatchfast9.com -parimatchgreat7.com -parimatchgreat9.com -parimatchstart7.com -parimatchstart8.com -parimatchstart9.com -parimatchstavka10.com -parimatchstavki9.com -parimatchtoday.com -parimatchtop10.com -parimatchtop7.com -parimatchtop8.com -parimatchuz.com -paripartners164.com -paripartners41.com -paripartners496.com -paripartners499.com -paris-attractions.com -paris-golfette.com -paris.company -parisannonce.com -parisbahis117.com -parisbahis119.com -parisbahis122.com -parisbahis129.com -parisbahis130.com -parisbahis138.com -parisbahis139.com -parisbahis6.com -parisbahis85.com -parisbahistv2.com -parisbahistv3.com -parisdentists.com -parisdolmus.com -parisgadgets.com -parisgooddeal.com -parishcouncilsnearme.com -parispatisserie.com -parisprivatetaxi.com -parisrealestateagents.com -parisvipescorts.com -parkabotties.club -parkarans.info -parkbeep.com -parkbiper.com -parkbipper.com -parkcrestlakewood.xyz -parkerparts.net -parkersabby.net -parkhiker.org -parkingaffiliateprogram.com -parkinggarage.xyz -parkingnearby.com -parkinshops.com -parkmellat.com -parkourvirginia.com -parkpeeper.com -parkpie.com -parkpluscharge.com -parkpulrulfland.xyz -parkservice.shop -parkspot.info -parkspot.sk -parktheshark.com -parkuhren.ch -parkviewchristianchuch.net -parkwaypolice.com -parkya.net -parkya.org -parleasalwebp.zyns.com -parlimentpetitioner.tk -parmageddon.net -parmesan-foods-takeaway.com -parnex.fun -parobet10.com -parobet2.com -parobet3.com -parobet5.com -parobet7.com -parobet9.com -parodyinvite.com -parolonboycomerun.com -parque-principado.com -parqueadero.work -parquedafeira.online -parrat.ru -parrotingtheright.com -parrrsssiigggraaammm.club -parrrsssiigraaammm.club -parsecfrontiers.net -parsgurup.com -parsi24.xyz -parsiboys.com -parsigirl.com -parsigm.club -parsigramcocoli.xyz -parsimani.xyz -parsiparsibet.club -parsssiigraaam.club -part-time.dev -part107tests.com -part107waiver.com -partajona.com -partcobbsi.ga -partcobbsi.ml -partcobbsi.tk -partenariat.ru -partescelulares.com -partfold.us -particitoyen.com -particuliers.pro -partidecitoyens.org -partimestudent.com -partisigeser.com -partmany.site -partner-tex.ru -partner1bizmoney.ru -partnerbetrayalrecovery.com -partnerconsulting.net -partnerct.com -partneriklan.com -partnerlink-stoloto.site -partnermvp.com -partnerskie.biz -partnetnkp.club -partskyline.com -partstudio.net -party4you.me -partyearrings.com -partyfun.info -partyofregions.info -partyonmycock.com -partyoverhere.live -partyshka.ru -partyswin.icu -partyweddingdress.net -parusie.de -parwehrnumb.ga -parwehrnumb.gq -parwehrnumb.ml -parwehrnumb.tk -pasacasino100.com -pasadena-jaycees.org -pasang4d.com -pasaoutlet.xyz -pasaranbola168.com -pasarjohar.biz -pasarnmurah.biz -pasarslot.info -pasarslot.life -pasarslot.monster -pasca22eempe2.xyz -pascaleelie.com -pascherairjordanchaussuresafr.com -pascherairjordanssoldes.com -pasco.store -pasenraaghous.xyz -pashabg.org -pashagamingbonus.com -pashagamingyeniadres.com -pashter.com -pasinn.ru -pasionesmarinela.com -paskero.cf -paskero.gq -paskero.ml -paskero.tk -paslanmazhurdasi.net -pasobahis13.com -pasobahis18.com -pasobahis22.com -pasobahis45.com -pasobahis47.com -pasobahis50.com -passagehalfdriver.website -passas7.com -passatudotv.site -passava.com -passdsinterview.com -passed-them.com -passgrumqui.cf -passgrumqui.ga -passgrumqui.gq -passionbet.space -passionforfoodtakeaway.com -passionhd.pro -passionhd18.info -passionwear.us -passive-income.tk -passiveagenda.com -passives-einkommen.ga -passmymatric.com -passport-yandex.fun -passport11.com -passportholder.me -passrountomb.cf -passrountomb.ga -passrountomb.gq -passrountomb.tk -passsbolt.com -passss.website -passthecpcexam.com -passtown.com -passw0rd.cf -passw0rd.ga -passw0rd.gq -passw0rd.ml -passw0rd.tk -password.colafanta.cf -password.nafko.cf -passwordconfirmation.com -passwort.schwarzmail.ga -passyourjoy.com -pastablog.com -pastadetectrange.site -pastafori.com -pastbook.us -pastbox.net -pastcave.com -pastcraze.xyz -pastebinn.com -pastebitch.com -pastefulasd.com -pastel-de-pan.com -pastesqf.xyz -pastmao.com -pastortips.com -pastplay.info -pastycarse.pl -pasukanganas.tk -patacore.com -patagon.website -patalchj.pro -patandlornaontwitter.com -patchag.xyz -patchagre.xyz -patchde.icu -patchspl.icu -patcourtna.cf -patcourtna.ga -patcourtna.gq -patcourtna.ml -patcourtna.tk -pateba.cf -pateba.ga -pateba.gq -pateba.ml -patedi.ga -patedi.gq -patekphilippe-watch.ru -patent-tree.info -patentree.net -paterndolg.space -pathfinder-publications.com -pathfindercampaign.com -pathogen.org -pathsavvy.net -pathstop.info -pathtogodsglory.org -pathtohealth.ru -pathtoig.com -pathtopurity.org -pating5566.com -patinthinhnguyen.info -patinthinhnguyen.org -patioandhomefurniture.com -patiorostrumrealm.site -patmortspac.cf -patmortspac.ga -patmortspac.gq -patmortspac.ml -patmortspac.tk -patmui.com -patodiproperty.com -patoentaccess.com -patonce.com -patongbaybeachclub.com -patorodzina.pl -patriciaclothing.com -patriciagoijens.site -patriciasalvo.com -patriciate.com -patrickdennis.buzz -patrickhaynes.com -patriotauction.org -patriothomebuilders.com -patriotmanifesto.com -patriotpartnersrestoration.us -patriotpost.net -patriotproject.info -patriotsjersey-shop.com -patriotsprofanshop.com -patriotsproteamsshop.com -patriotssportshoponline.com -patrisander.com -patrix1.com -patro.space -patronage-365.ru -patronage-msk.ru -patronmail.club -patronmail.icu -patronmail.online -patronmail.press -patronmail.site -patronmail.space -patswelti.cf -patswelti.ml -patswelti.tk -patteracids.top -patternsandrhythms.com -pattersonforeclosures.com -pattilyman.com -patwww.com -patzwccsmo.pl -pauikolas.tk -paulajapaneserecur.site -paulat.com -paulblogs.com -paulfucksallthebitches.com -paulgruenther.com -paulistaportal.club -paulkippes.com -paullandsberg.com -paulmadey.net -paulmalyschko.org -paulmcilwaine.com -paulmfarnsworth.com -paulpartington.com -paulsmithgift.com -paulsmithnihonn.com -paulsmithpresent.com -paulwilden.com -paulwnielsen.com -pausebasi.icu -pausemarsh.email -pausepla.xyz -pauseprinterrelay.site -pauseswear.buzz -pausnaarnederland.online -pautriphhea.cf -pautriphhea.ga -pautriphhea.gq -pautriphhea.ml -pautriphhea.tk -pauvoiplek.cf -pauvoiplek.ga -pauvoiplek.ml -pauvoiplek.tk -pav2r.site -pavel-kochkin.ru -pavelostapchuk.ru -pavementconference.org -paverol.ru -pavidity.best -pavilionx2.com -pavimentosdune.online -pavn9k.us -paw-patrol1.space -pawcco.info -pawdcast.info -pawn-coder.ru -pawofjustice.org -pawpawfestival.com -pawsaquamation.biz -pawsmarts.com -pawssentials.com -pawvogue.biz -pawygu.info -paxdealsy.info -paxiq.click -pay-for-win.xyz -pay-mon.com -pay-my9pay.ru -pay-mysupplier.com -pay-pal48996.ml -pay-pal55424.ml -pay-pal63.tk -pay-pal8585.ml -pay-pal8978746.tk -pay-pals.cf -pay-pals.ga -pay-pals.ml -pay-pals54647.cf -pay-pals5467.ml -pay.rentals -pay.tj -pay2-pay-s.top -pay4d.club -pay4d.live -pay4d.space -pay4master.online -pay88.cash -pay99.cash -pay999.cash -payadd.org -payadoctoronline.com -payaenable.com -payaengage.com -payasnap.com -payaut.online -paybycar.us -paybycard.best -paybycard.shop -paycard.net -paycheckprotectionprogram2020.com -paychip.xyz -payco.shop -payday-loans-since-1997.co.uk -paydayadvanceworld.co.uk -paydaycash750.com.co -paydaycic2013.co.uk -paydayinstantly.net -paydayjonny.net -paydaylaons.org -paydayloan.us -paydayloanaffiliate.com -paydayloanmoney.us -paydayloans.com -paydayloans.org -paydayloans.us -paydayloansab123.co.uk -paydayloansangely.co.uk -paydayloansbc123.co.uk -paydayloansonline1min.com -paydayloansonlinebro.com -paydayloansproviders.co.uk -paydayloanyes.biz -paydayoansangely.co.uk -paydaypoll.org -paydayquiduk.co.uk -paydo.uno -payeer-bonus32.ru -payeer-com.online -payeer-org.online -payeer-ru.site -payersglobal.com -payforclick.net -payforclick.org -payforcu.cf -payforcu.gq -payforcu.ml -payforcu.tk -payforpost.net -payforpost.org -payinapp.com -paylasimisi.com -paylessclinic.com -paylevo.net -paym22.xyz -paymaya.cf -paymenex.cd -payment.tj -payment1ab1.com -paymentfortoday.com -paymentfortoday1.com -paymentmaster.gq -paymentsbotswana.com -paymobet.com -paynetcollect.com -payo22.xyz -payop.xyz -payot.club -payotta.net -payoumoney.com -paypal.comx.cf -paypalserviceirc.com -paypaywin.fun -paypaywin.host -paypaywin.press -paypaywin.site -paypaywin.website -payperdonation.org -payperex2.com -paypirus.com -payprinar.ga -payprinar.ml -payprinar.tk -payrolltax.in -payru-avito.ru -payseho.cf -payseho.ga -payseho.gq -payseho.ml -payseho.tk -paysgateway.com -payshow.website -paysite02.icu -payslink.best -paysop.xyz -payspun.com -payterking.cf -payterking.gq -payterking.ml -payterking.tk -paytopay.xyz -paytv.rent -paytvgratis.click -paytvgratis.info -paytvgratis.net -paytvgratis.online -payweiner.com -payxinsijitv.info -pazarlamadahisi.com -pb-shelley.cf -pb-shelley.ga -pb-shelley.gq -pb-shelley.ml -pb-shelley.tk -pb2019zone.com -pb3rr.us -pb5g.com -pb641.site -pbbilling.com -pbesjk.site -pbestore.com -pbjmpgne.shop -pbmbill247.com -pbqr.org -pbs83c.us -pbvm.ru -pc-service-in-heidelberg.de -pc.tj -pc07.app -pc08.app -pc09.app -pc1520.com -pc16.app -pc23.app -pc27.app -pc30.app -pc4pc4.com -pcaccessoriesshops.info -pcamerabest.site -pcapcompany.com -pcapsi.com -pcaudioshop.life -pcbshack.com -pcc.mailboxxx.net -pcc1.com -pccareit.com -pccomputergames.info -pccwch.space -pcdd000.com -pcdd7654.com -pcdd8765.com -pcdd9876.com -pceee.com -pces.cloud -pcfastkomp.com -pcg.earth -pcgameans.ru -pcgamemart.com -pcgameplay.ru -pcgcoatings.com -pchasm.net -pchatz.ga -pchelovodstvo-tut.ru -pchogwbcx.shop -pcijztufv1s4lqs.cf -pcijztufv1s4lqs.ga -pcijztufv1s4lqs.gq -pcijztufv1s4lqs.ml -pcijztufv1s4lqs.tk -pcincutthter.cf -pcincutthter.ga -pcincutthter.gq -pcincutthter.tk -pcixemftp.pl -pcjbomaina.com -pcjmx.com -pcknowhow.de -pclaptopsandnetbooks.info -pcmnt.live -pcmo.de -pcmylife.com -pcoop.ru -pcpccompik91.ru -pcrc.de -pcshe.com -pcspeedcare2.com -pcsr.net -pctc.us -pcurk.site -pcusers.otherinbox.com -pcvb.site -pcwldalgj.shop -pcyi.xyz -pd2mwh.site -pd5qjy.us -pd675.site -pd6badzx7q8y0.cf -pd6badzx7q8y0.ga -pd6badzx7q8y0.gq -pd6badzx7q8y0.ml -pd6badzx7q8y0.tk -pd7a42u46.pl -pdamail.ru -pdazllto0nc8.cf -pdazllto0nc8.ga -pdazllto0nc8.gq -pdazllto0nc8.ml -pdazllto0nc8.tk -pdcqvirgifc3brkm.cf -pdcqvirgifc3brkm.ga -pdcqvirgifc3brkm.gq -pdcqvirgifc3brkm.ml -pdcqvirgifc3brkm.tk -pddauto.ru -pderg.live -pdf24-ch.org -pdfa.site -pdfb.site -pdfc.site -pdfd.site -pdff.site -pdfg.site -pdfh.site -pdfi.icu -pdfinvoice.com -pdfj.site -pdfl.site -pdfm.site -pdfn.site -pdfo.online -pdfp.site -pdfpool.com -pdfq.site -pdfs.icu -pdfsolo.com -pdft.site -pdfu.site -pdfv.site -pdfz.icu -pdfz.online -pdfzi.biz -pdgvja.best -pdh22.space -pdjkyczlq.pl -pdk93.us -pdkmanbetx.com -pdl-profit.su -pdmanesthesia.com -pdmlink.ze.cx -pdmmedical.org -pdold.com -pdpm6o.us -pdq-dispatch.com -pdqnx.club -pdsgwdzlh.ml -pdtdevelopment.com -pdtny.com -pduluo.us -pdx5g.com -pdxgolffitness.com -pdxtrust.com -pdzgle.site -pe-sky.com -pe.hu -pe19et59mqcm39z.cf -pe19et59mqcm39z.ga -pe19et59mqcm39z.gq -pe19et59mqcm39z.ml -pe19et59mqcm39z.tk -peabodyrentals.com -peace.mielno.pl -peaceacu.xyz -peacebuyeriacta10pills.com -peacefulstrings.com -peacefultomorrow.org -peaceoutpops.com -peaceridesla.org -peachcalories.net -peachtreeresidencescondo.com -peacockbrowser.com -peakcfg.com -peakdebt.org -peakfree.net -peakfree.org -peakkutsutenpojp.com -peaksneakerjapan.com -peaksun.com -peaky-blinders.life -pealuh.com -peanjx.rest -peapaws.com -peapz.com -pearland.dentist -pearldintho.cf -pearldintho.ga -pearldintho.ml -pearldintho.tk -pearly-papules.com -pearlypenilepapulesremovalreview.com -pearpay.xyz -pebblegarden.org -pebesupermart.site -pebkit.ga -peblandkrum.com -pebti.us -pecdo.com -pece-krby.sk -pecerwell.gq -pecerwell.ml -pecerwell.tk -pecinan.com -pecinan.net -pecinan.org -pecintapoker.com -pecmail.gq -pecmail.tk -pecom-check.ru -pecosdesign.com -pectcandtive.gettrials.com -pedalcallingreuse.site -pedalenergygym.online -pedalpatchcommunity.org -peddingheads.com -pedestrianize440cz.online -pedia-egypt.org -pediacode.com -pediaexploler.site -pedias.org -pediatray.com -pedigolaw.com -pedimed-szczecin.pl -pedmas.com -pednet.ru -pedregosamail.club -pedropereiramd.com -pedslovo.ru -pedusupermart.site -peekbrush.us -peekbrushes.biz -peekra.com -peekskillfiredepartment.com -peemanlamp.info -peepto.me -peerbonding.com -peerdisk.com -peertopeerlendinginfo.com -peevr.com -peew.ru -peewee-sweden.com -peezy.fun -pefabde.gq -pefabde.ml -pefabde.tk -pefehe.xyz -pegabooksp.monster -pegadacerta.com -pegandocredito.com -pegas-touristic.space -pegasse.biz -pegasus.metro.twitpost.info -pegellinux.ga -peggconsulting.com -peggyreduceriver.site -pegmarketcap.com -pegsnzphk.shop -pegweuwffz.cf -pegweuwffz.ga -pegweuwffz.gq -pegweuwffz.ml -pegweuwffz.tk -pegysaconsultores.com -peirealestatelistings.com -peisky.icu -pejovideomaker.tk -pejr1l.com -pejuangkecantikan.com -pejuangwin.com -pekanrabu.biz -pekcashop.com -pekimail.com -peking-takeaway-dundrum.com -pekinginntakeaway.com -pekingting.cf -pekingting.ga -pekingting.gq -pekingting.ml -pekingting.tk -pekow.org -pekow.us -pekow.xyz -pekwbx.us -pelagonia.capital -pelagonia.studio -pelagonia.ventures -pelagonia.works -pelagonialaw.com -pelaiswealthonline.com -pelandoh.site -pelangi9.org -pelangiangka.org -pelangiqq188.info -pelangiqq188.net -pelav.org -pelecandesign.com -pelhamcorcoran.com -peli.site -pelicula-completa.online -peliculasonlinegratis.net -pelip.cc -peliscloud.com -pelisflix.site -pelisplus.ru -pelisplusvip.info -pelleti-deshevo.ru -pelor.ga -pelor.tk -pelorqq.com -pelorqq.net -pelrofis.cf -pelrofis.ga -pelrofis.gq -pelrofis.tk -pelstore.buzz -pelusa.info -pemail.com -pemainjitu.live -pemakan-kecoa.site -pembeliananda.info -pembemsi.cf -pembemsi.tk -pemel.best -pemwe.com -pen-drevo.ru -penandpaper.site -penatik.ru -pencalc.xyz -pencap.info -pencemaran.com -pencildropcrampon.ru -pendikucakbileti.com -pendnorsubg.cf -pendnorsubg.ga -pendnorsubg.gq -pendnorsubg.ml -pendnorsubg.tk -pendokngana.cf -pendokngana.ga -pendokngana.gq -pendokngana.ml -pendokngana.tk -penest.bid -pengajiansf.org -pengangguran.me -pengelan123.com -penghacurlemak.top -penghasilan.online -penguincreationdate.pw -penguinese.cc -peniaze.app -penienet.ru -penijel.site -peninsulamartialartsacademy.online -penis.computer -penisenlargementbiblereview.org -penisenlargementshop.info -penisgoes.in -penisuzvetseni.com -penjualanbatu.com -penkyx.me -penlovers.net -penmode.ru -penndustna.cf -penndustna.gq -pennebaker.us -pennwoods.net -pennyagi.site -pennyas.press -pennyauctionsonlinereview.com -pennyauctionwizards.com -pennybag.com -pennybank.org -pennycl.xyz -pennydram.icu -pennyfre.xyz -pennyfres.xyz -pennyrif.xyz -pennysave.org -pennystar.icu -peno-blok1.ru -penoto.tk -penraker.com -pens4t.pl -pensfalloss.cf -pensfalloss.ga -pensfalloss.gq -pensfalloss.ml -pensfalloss.tk -pensionadvicevoucher.com -pensionadvicevoucher.org -pensionnayareforma.ru -pensionsfestival.com -pensjonatyprojekty.pl -pensortearvi.monster -penspam.com -pent.top -pentadon.online -pentadon.shop -pentadon.store -pentagon.info -pentagram.online -pentestacademy.online -pentests.guru -penthouse4d.org -pentowerdublin8.com -penuyul.online -penyewaanmobiljakarta.com -penythgehiqe.ru -penzahleb.ru -peonyinn-athy.com -peonysecluderogue.site -peopleconnect.dev -peopleconnect.support -peopledrivecompanies.com -peoplefood.top -peoplehavethepower.cf -peoplehavethepower.ga -peoplehavethepower.gq -peoplehavethepower.ml -peoplehavethepower.tk -peoplehubs.com -peoplemail.vip -peoplepoint.ru -peoplepoliticallyright.com -peoples-health.site -peoplesdemocracy.us -peoplesovreignfund.com -peoplesscience.com -peopletalktv.ru -peoplewillbuyanything.com -peopleworkconnect.ru -peoservicescompany.com -peosporym.cf -peosporym.ga -peosporym.gq -peosporym.ml -peosporym.tk -peotanbart.ga -peotanbart.gq -peotanbart.ml -peotanbart.tk -pep53.space -pepbot.com -pepbridge.com -pepeth.info -peppe.usa.cc -peppercorn-initiatives.com -pepperload.com -pepsi.coms.hk -peptide-conference.com -peptideinformation.com -peptize29nq.online -pequenosnegocioslucrativos.com -peqxfmyff.shop -peracid3lv.online -peramatozoa.info -peramoon.space -perance.com -peraningrepher.press -peras.space -perasut.us -percale.site -perceptium.com -percheronfund.com -perchjerker.com -perclesning.cf -perclesning.ga -perclesning.gq -perclesning.tk -percolfklw.space -percom-track.ru -percutianaceh.com -percypierre.com -perdeciertac.com -perderpes0.online -perdoklassniki.net -perdredupoids24.fr -pereezd-deshevo.ru -peregroqkm.ru -pereho.site -perekrestok-bonus.ru -perelinkovka.ipiurl.net -perennialpatch.net -perere.cf -perere.gq -perere.tk -peresvetov.ru -perevbistroz.ru -perevezi-gruz.ru -perevodc.club -perevozim78spb.ru -perevozkabolnykh24.ru -perevozov.com -perfect-brides.com -perfect-dating.site -perfect-offers.site -perfect-smile-shop.site -perfect-teen.com -perfect-u.pw -perfectbags.ru -perfectcreamshop.com -perfectfithomerentals.com -perfection-challenge.com -perfectmatchevents.biz -perfectmatchevents.org -perfectnetworksbd.com -perfectsite.website -perfectskinclub.com -perfectsmail.ru -perfectu.pw -perfectvending.net -perfectwebinarscript.com -perfectxx.store -perfetchapp.com -perfo.best -performancesciencesllc.biz -performant.dev -performfirst.net -performyork.com -perfromance.net -perfumeachelois.com -perfumeadele.com -perfumeaffluence.com -perfumeappear.com -perfumeathens.com -perfumeattractive.com -perfumebeguiling.com -perfumebite.com -perfumeblended.com -perfumeblurred.com -perfumebounce.com -perfumecaptivating.com -perfumeclass.com -perfumecoco.com -perfumecontact.com -perfumedarling.com -perfumedelicacy.com -perfumeeclipse.com -perfumeelectrify.com -perfumeembrace.com -perfumeextravagant.com -perfumefine.com -perfumeinfatuate.com -perfumeintensity.com -perfumeintrigue.com -perfumelambent.com -perfumelavish.com -perfumemarvel.com -perfumeorchid.com -perfumephoenix.com -perfumephotogenic.com -perfumeplush.com -perfumepurity.com -perfumequaint.com -perfumeray.com -perfumeregency.com -perfumeregenerate.com -perfumereign.com -perfumerichness.com -perfumeritual.com -perfumespotless.com -perfumetease.com -perfumevelocity.com -perfumevenom.com -perfumevixen.com -perfumewarrior.com -pergh.xyz -perhea.info -peri-peri-chicken-kebab.com -peribiotics.com -perillorollsroyce.com -perilpeeperrower.site -perimetr-okna.ru -perimeubels.online -perimeubels.site -perindu.xyz -periodontistwebsitedesign.com -perios-grill-takeaway.com -peripherocentral.best -perisarsas.club -periscian.xyz -periskole.ru -peritoinformatico.online -peritusauto.pl -periwonen.online -perjalanandinas.cf -perjalanandinas.ga -perjalanandinas.gq -perjalanandinas.ml -perjalanandinas.tk -perk.vision -perkdaily.com -perkypoll.com -perkypoll.net -perl.mil -perm-master.ru -permacultureconsultants.org -permanentans.ru -permispno.cf -permispno.ga -permispno.gq -permispno.ml -permispno.tk -permkurort.ru -permundi.net -permvisa.ru -perni22ademire2.xyz -pernio.ru -perolas.com -perpetualblonde.com -perpetualsecurities.com -perpiogreen.cf -perpiogreen.ga -perpiogreen.gq -perpiogreen.ml -perpiogreen.tk -perpostlop.cf -perpostlop.gq -perpostlop.ml -perpostlop.tk -perrackdo.ga -perrackdo.gq -perrackdo.tk -perresu.cf -perresu.ga -perresu.gq -perresu.tk -perross.ml -perrotravel.com -perry-ellis.ru -perryandterryautobodyandpaint.com -perrybear.com -perryboy.com -perryms.com -perryms.org -pers.craigslist.org -persbericht.org -persebaya1981.cf -persebaya1999.cf -persenta.se -pershart.com -persian360.xyz -persianbet.site -persianpay.club -persicoin.com -persimmongrove.org -persiscreations.com -persistnwcd.email -persja.com -perslihelp.cf -perslihelp.ga -perslihelp.ml -perslihelp.tk -persmacge.cf -persmacge.ga -persmacge.gq -persmacge.ml -persmacge.tk -persningko.cf -persningko.ga -persningko.ml -persningko.tk -personae.us -personae.vote -personal-email.ml -personal-fitness.tk -personalandlifecoach.com -personalassistant.expert -personalassistant.live -personalblog.com -personalcok.cf -personalcok.ga -personalcok.gq -personalcok.ml -personalcok.tk -personalenvelop.cf -personalepa.com -personalfloattank.com -personalinjuryclaimsadvice.com -personalinjurylawyerct.net -personalize81ry.xyz -personalized-video.com -personalizedmygift.com -personalizedussbsales.info -personalizedvegan.com -personalmailer.cf -personalnoe-predlozhenie.ru -personalnoepredlozhenie.ru -personaltrainerinsurancequote.com -perspectivesaddictionconferences.com -perspectivesconferences.com -perspectivesimmobilier.com -perspexcuttosize.com -perspuhow.cf -perspuhow.ga -perspuhow.gq -perspuhow.ml -perspuhow.tk -perstand.fun -pertade.cf -pertade.ga -pertade.gq -pertade.ml -pertade.tk -perth-write.com -perthhousecleaning.services -perthusedcars.co.uk -perthwrite.com -peru-nedv.ru -peruadventureblog.com -perubests.info -peruvianize.best -perverl.co.cc -perviibankrot.xyz -perviysad.ru -pervoevideo.ru -pervova.net -pesachmeals.com -pesele.cf -pesele.ga -pesele.gq -pesele.ml -pesiar4d.com -pesiartoto.com -peskdr.com -pesna.com -pesnibeez.ru -pesowuwzdyapml.cf -pesowuwzdyapml.ga -pesowuwzdyapml.gq -pesowuwzdyapml.ml -pesowuwzdyapml.tk -pesquisaplaca.com -pessoa-juridica.com -pest-removal-toronto.ca -pestabet.com -pestycraft.tk -pet-care.com -petadigital.net -petadventures.tech -petalheiressruddy.site -petalsandquill.com -petanque-echt.online -petarung303.store -petarung88.best -petberries.ru -petbuysmart.com -petearrings.com -petearrings.net -petebarrettfineart.com -petebarterondrums.com -petebrigham.net -peter-petrovsky.sk -peterayres.info -peterbrookes.buzz -peterburgskaya-orhideya.ru -peterdethier.com -petergunter.com -peterhoffmanlaw.com -peterjasek.com -peterjasek.org -peterjohnson.dev -peterschoice.info -peterteneyck.com -petertijj.com -peterum.com -peterung.com -peteryasek.net -petfoodresearch.com -petistisajoc.host -petiteblondemoviez.com -petitebrunettes.com -petitemargot.com -petitlien.fr -petmem.net -petmem.org -petpal-sale.ru -petpawprint.com -petphotographer.photography -petproductreviews.site -petprotect.club -petrib.com -petrinibellteam.com -petrlvur14.website -petrobahis107.com -petroflex-sever.ru -petroleous.site -petrolgames.com -petronas.cf -petronas.gq -petrovac.net -petruhino2.ru -petrus-shop.ru -petrzilka.net -petsburb.com -petsday.org -petsfirst.info -petsfoodresearch.com -petshomestore.com -petsitterlive.com -petstoresusa.xyz -petuahjudi.com -petuh.org -petworld.site -petypals.com -peugeot-argentina.club -peugeot-australia.club -peugeot-citroen-fiat.ru -peugeot-club.org -peugeot206.cf -peugeot206.ga -peugeot206.gq -peugeot206.ml -peuvolsi.cf -peuvolsi.ga -peuvolsi.gq -pewariskeramat.com -pewebnont.ga -pewebnont.gq -pewebnont.ml -pewebnont.tk -pewnealarmy.pl -pewpewpewpew.pw -pexda.co.uk -peybet22.com -peybet26.com -peybet28.com -peybet29.com -peypel.online -peyuuv.xyz -peyvandzendegi.com -peyzag.ru -peza.site -pezhub.org -pezmail.biz -pfgaoq.shop -pfgvreg.com -pfiizer.com -pfingstfest.info -pfiter.com -pflege-schoene-haut.de -pflugervilleautorepair.com -pfmarket.org -pfmretire.com -pfngr.live -pfnvjn.top -pfqcn1.site -pfui.ru -pfundig.info -pfvmedia.com -pfwt9.us -pfyhlp.com -pg1kmh.xyz -pg444.site -pg59tvomq.pl -pg7700.com -pg772222.com -pg772345.com -pg773333.com -pg773456.com -pg774444.com -pg774567.com -pg77789.com -pg77by.com -pg77dns.com -pg77ffff.com -pg77hb.com -pg77iiii.com -pg77sss.com -pg77yyy.com -pg9327.com -pgazhyawd.pl -pgbs.de -pgdln.cf -pgdln.ga -pgdln.gq -pgdln.ml -pgeriiyd.shop -pghwct.us -pgioa4ta46.ga -pgjgzjpc.shop -pgkenzo2.club -pgkl.icu -pgkpkr.icu -pgkundendienst-18.com -pgoinfo.online -pgq0x1.us -pgqudxz5tr4a9r.cf -pgqudxz5tr4a9r.ga -pgqudxz5tr4a9r.gq -pgqudxz5tr4a9r.ml -pgqudxz5tr4a9r.tk -pgribahra.shop -pgslot78.net -pgtdbo.us -pgu.us -pguar-t.com -pgwb1u.us -pgxrx.com -pgyu.xyz -ph-shop.pro -ph0jt.us -ph6xhw.us -phaantm.de -phagy.com -phahuy.com -phaiyeu.net -phallobase.org -phamcpa.com -phantasticthings11.ml -pharm-france.com -pharma-pillen.in -pharmaceuticalbrush.com -pharmaceuticalbrush.net -pharmaceuticalbrush.org -pharmaceuticalbrush.us -pharmacy-city.com -pharmacy-generic.org -pharmacy-online.bid -pharmacycenter.online -pharmacygroupofcolleges.com -pharmacygulf.xyz -pharmacyshop.top -pharmacystorebags.com -pharmaexcipients.info -pharmaexcipients.org -pharmaexcipientwiki.com -pharmafactsforum.com -pharmaingredient.com -pharmasiana.com -pharmatiq.com -pharmphuel.com -pharmshop-online.com -pharshoeke.com -pharveta.cf -pharveta.ga -pharveta.gq -pharveta.ml -pharveta.tk -phase4.app -phasupplies.com -phattangent.com -phattich.com -phbikemart.com -phc-valeo.info -phch.store -phclip.com -phcphs.com -phd-com.ml -phd-com.tk -phdify.info -phdlfy.com -phdzso.info -phearak.ml -pheasantridgeestates.com -phecrex.cf -phecrex.ga -phecrex.gq -phecrex.ml -phecrex.tk -phecti.com -pheed.app -phefinsi.ga -phefinsi.gq -phefinsi.ml -phefinsi.tk -phen375-help1.com -phen375.tv -phenergan.website -phenethylamine.network -phenixanima.com -phenixcityapartments.com -pheolutdi.cf -pheolutdi.ga -pheolutdi.ml -pheolutdi.tk -phgfve.us -phh6k4ob9.pl -phi-crea.com -philadelphiaarthotel.com -philadelphiaflyerjerseyshop.com -philadelphiaquote.com -philadelphiasanswer-am990.com -philadelphiasansweram990.com -philae.pictures -philassist.com -philatelicenthusiast.com -philatelierevolutionfrancaise.com -phileoministries.org -philgrove.com -philihp.org -philip.pro -philippe.best -philippine.monster -philippines-cloud.center -philippinesheritage.net -philippinesingles.org -philipposflavors.com -philips-remont61.com -philipsmails.pw -philipuss.ml -phillipsandtemro.com -phillipsd.net -phillysmallbusinesses.com -philosophicalresearch.org -philosophyquotes.org -philsdesign.pro -philthevirtualizer.com -philuent.com -phim.best -phim.icu -phim47.com -phim68vn.com -phimg.org -phimmoizzzzz.net -phimtop1.tk -phisbe.site -phjouoznu.shop -phjwsz.com -phlhomesolutions1.com -phoebegibson.buzz -phoenix-homes-and-lifestyles.com -phoenix-ws.pro -phoenixdate.com -phoenixhomeoffer.com -phoenixquote.com -phonam4u.tk -phone-accessories.ga -phone-customer-services.com -phone-elkey.ru -phone-speed-mine-installs.club -phone-top-new-speed.club -phone-victory.ru -phone11pro.com -phoneaccessoriestips.info -phonearea.us -phonebookofgrenoble.xyz -phonecalltracking.info -phonecase-tetris.ru -phonecasesforiphone.com -phonecasesforiphonestore.com -phonefeeder.com -phonegirl4you.com -phonepacket.com -phoneshrub.com -phonesnoop.org -phonetopnewspeed.club -phonetroll.org -phongcach.top -phongchongvirus.com -phonghoithao.net -phongthuyhomenh.store -phoninator.com -phonollbyu.site -phonyprofanerumor.site -phonyyorker.com -photo-impact.eu -photoboothdallas.com -photocandyphotography.com -photoguru.site -photoica.com -photoimaginganddesign.com -photomark.net -photonephograph.best -photonspower.com -photoprint.ga -photoroid.com -photosbylfe.com -photoscycling.com -photoshop-tutorials-plus.com -photostudiobangkok.com -photosynthesizes190aw.online -php3.ru -phpbb.uu.gl -phpbrasil.org -phpcode.website -phpduglist.info -phpieso.com -phpozelders.com -phppgads.com -phptutorial.org -phqobvrsyh.pl -phrase-we-had-to-coin.com -phrasepaper.com -phsacca.com -phtunneler.ga -phubinh.asia -phubinh.us -phuked.net -phuket4kids.com -phuketthai.ru -phukettrail.com -phukienrobot.info -phulbari.website -phulkari.online -phuminhnguyen.ml -phunu.club -phunutre.online -phuongblue1507.xyz -phuongnamdigital.net -phuongphapdautu.com -phuongpt9.tk -phuongsimonlazy.ga -phus8kajuspa.cu.cc -phvirtualtours.com -phyllostomatoid.best -phymail.info -phymix.de -physicalescrow.com -physicaltherapydegree.info -physicaltherapysalary.info -phytanna.com -phytofluid.com -pi-ka.ru -pi-note.online -pi-note.xyz -pi-squaredpizzstaverns.com -pi.vu -pi8lvj.us -piaa.me -piabellacasino.com -piaggio.cf -piaggio.ga -piaggio.gq -piaggio.ml -piaggioaero.cf -piaggioaero.ga -piaggioaero.gq -piaggioaero.ml -piaggioaero.tk -piala188.com -pialaeropa180.com -piamendi.cf -piamendi.ga -piamendi.gq -piamendi.tk -pianoamus.icu -pianofe.press -pianofortenews.org -pianoprojectrit.com -pianounlimited.com -pianowou.icu -pianoxltd.com -piaster415ir.online -piazzetta.moscow -piba.info -pibgmible.cf -pibgmible.ga -pibgmible.ml -pic0226.online -picandcomment.com -picanya.net -picardgroup.com -picbop.com -picfame.com -picfection.com -picfibum.cf -picfibum.ga -picfibum.gq -picfibum.ml -picfibum.tk -picha.cd -pichak.com -pichosti.info -pichumper.com -picilur.site -pickadulttoys.com -pickatyre.com -pickawash.com -pickbits.com -pickemid.site -pickettproperties.org -pickissy.site -pickle-pics.net -pickleballminnesota.com -picklez.org -picknameme.fun -pickupblog.com -pickupfinder.org -pickuplanet.com -pickupwo.com -pickybuys.com -pickyourcontractor.com -pickyourmail.info -pickyroadwayrunny.site -picmonline.com -picnicandbeach.live -picogram.website -picomedicine.com -picoprocessors.com -picoteka.site -picous.com -picpegasus.com -picsala.com -picsandyou.com -picsedate.com -picsfiy.site -picsmun.com -picstarter.com -picture-movies.com -pictureframe.com -pictureframe1.com -picturepuzzles.club -picturetellers.com -piczomat.site -pid.mx -pidati.cf -pidati.gq -pidati.ml -pidati.tk -pidcockmarketing.com -pidemudanza.com -pidmail.com -pidoseme.online -pidouno.com -pidox.org -piebombing.com -piececoun.icu -piecemoderatosaber.site -pieceni.email -piecerang.email -piecerange.email -piecethigh.us -piedmont-energy.net -piedmonttoday.com -pieknybiust.com.pl -piepeka.cf -piepeka.ga -piepeka.gq -piepeka.ml -piepeka.tk -piercebrassfield.com -piersonvet.com -piesackdes.cf -piesackdes.ga -piesackdes.gq -piesackdes.tk -piese.pro -piespeed.buzz -pietergroup.com -pietershop.com -pieu.site -piewish.com -pig.pp.ua -pig04.com -pigbrachialone.website -pigdog1.ru -pigeon-mail.bid -pigeonhall.com -pigeonmail.bid -pigeonor.com -piggybankcrypto.com -piggybankcrypto.net -piggybankcrypto.org -piggybankcryptosavings.net -piggycoins.info -piggyvest.tech -piggywiggy22.info -pigmentospuros.com -pigsstep.com -pigybankcoin.com -pigybankcoin.net -pigybankcoin.org -pigycoins.net -pihai.net -pihavi.ru -pii.at -pijopt.icu -pikabu.press -pikagen.cf -pikchaser.com -pikhoy.site -piki.si -pikirkumu.cf -pikirkumu.ga -pikirkumu.gq -pikirkumu.ml -pikoclick.ru -pikolanitto.cf -pikolanitto.ga -pikolanitto.gq -pikolanitto.ml -pikolanitto.tk -pikos.online -pilatesbuddyapp.com -pilatesretreatscrete.com -pilatesshop.live -pilazzo.ru -piledriving911.com -pilesofcash.com -pilicinhikayesi.com -pilios.com -pilira.cf -pilira.ga -pilira.tk -pillbiddit.com -pillbuddyapp.com -pillen-fun-shop.com -pillole-blu.com -pillole-it.com -pillsbreast.info -pillsellr.com -pillsshop.info -pillsvigra.info -pilomaterial57.ru -pilosityproducts.com -pilotreellive.net -pilpres2018.ga -pilpres2018.ml -pilpres2018.tk -pilsosign.cf -pilsosign.gq -pilsosign.ml -pilsosign.tk -pimaapparel.net -pimalu.com -pimeariver.com -pimeclegaltech.cat -pimep.com -pimgcx.us -pimolo.cf -pimolo.ga -pimolo.gq -pimolo.ml -pimpedupmyspace.com -pimples.com -pimpmystic.com -pin-fitness.com -pin.poistaa.com -pinafh.ml -pinamail.com -pinbahis162.com -pinbahis188.com -pinbahis196.com -pinbahis220.com -pinbahis237.com -pinbahis241.com -pinbahis262.com -pinbahis282.com -pinbahis361.com -pinbahis372.com -pinbahis415.com -pinbahis418.com -pinbahis434.com -pinballcoil.com -pinbhs1.com -pinbhs2.com -pinbhs3.com -pinbhs4.com -pinbookmark.com -pinbury.me -pincerpdwm.space -pincoffee.com -pinderi.com -pineappledisco.com -pinebelt.org -pinebelt.us -pinebluffnc.buzz -pinehill-seattle.org -pinellas.store -pinemaile.com -pineswood.com -pinetkitopotk.xyz -pinetreeproperties.com -pinetreesports.com -pinetum.xyz -pingbloggereidan.com -pingdom.live -pingextreme.com -pingheads.com -pingir.com -pingp.ngo -pingubos.net -pingxtreme.com -pinicolous.best -pink-party.ru -pink4ever.net -pinkbestpage.ru -pinkcam.tech -pinkco.co.uk -pinkfrosting.com.au -pinkgifts.ru -pinkgirl.online -pinkinbox.org -pinkmoonfarms.com -pinknbo.cf -pinknbo.ga -pinknbo.gq -pinknbo.ml -pinksalt.org -pinlesscard.com -pinlianew.cf -pinlianew.gq -pinlook.site -pinnaclecenturies.com -pinnaclekor.com -pinnaclekor2.com -pinnaclekor3.com -pino99.info -pinoy-tambayan.ru -pinoy.monster -pinoy.trade -pinoy1tv.ru -pinoychannelofw.ru -pinoylambingantv.ru -pinoylivetv.su -pinoytambayanako.ru -pinoytambayanz.ru -pinoytvlambingan.ru -pinpoint-corp-cdn.net -pinprints.com -pinsmigiterdisp.xyz -pinsonian.org -pinsup.ru -pintaresfacilconsapolin.com -pintasticapp.com -pintech.ru -pintechpinball.com -pinterest-seo.online -pinterests.pro -pinterestworldrecipes.xyz -pintermail.com -pintssaddles.top -pintypin.com -pinup26.com -pinupp1.ru -pinuscrxiz.space -pinweixiaoshuo.com -pinyifen.com -pinyiny.site -pio21.pl -piocvxasd321.info -piodeadmou.gq -piodeadmou.tk -piogroup.software -pioneer.pro -pioneercart.com -pioneeri.com -pioneeringplaces.org -pioneerofficesystems.com -pipadanfittinghdpe.website -pipaltree.ong -pipe.doctor -pipebrush.net -pipebrush.org -pipebrush.us -pipebrushes.biz -pipebrushes.net -pipebrushes.us -pipenny.com -pipetka.fun -pipi.net -pipikitchen.com -pipim.net -pipiska6879.cf -pipiska6879.ga -pipiska6879.gq -pipiska6879.ml -pipiska6879.tk -pippieterskn.xyz -pippop.cf -pippopmig33.cf -pippopmigme.cf -pippuzzo.gq -pipsbeachouses.com -pipsbyron.com -pipsqweek.com -piquemortarsadly.site -piramitpoker.com -pirassssigggrrram.club -pirate-faction.ru -piratebaymovies.net -piratebayproxy.direct -piratebayproxy.online -piratedgiveaway.ml -pirategy.com -piratesdelivery.ru -piribet100.com -piribet13.com -piribet14.com -piribet18.com -piribet20.com -piribet22.com -piribet23.com -piribet24.com -piribet26.com -piribet28.com -piribet40.com -piribet60.com -pirojfreshmk.xyz -piromail.com -piry.site -pisakii.pl -pisarniskajoga.com -piscateniw.space -pisceans.co.uk -pischevik24.ru -piscosf.com -pisdapoolamoe.com -piseliger.xyz -pish46.xyz -pishbiniroyal.site -pishgamdsevents.com -pishpeshuk.com -pisichka.com -pisisi.biz -pisisi.info -pisisi.net -pisls.com -pisolaminado.club -pisoos.com -pispis.xyz -pisqopli.com -pistolcrockett.com -pistoletow-blog.ru -pitamail.info -pitaniezdorovie.ru -pitapan.org -pitayadetoks.site -piter-nedv.ru -piter-potolki.ru -pithell.fun -pithyn.org -pitkern-nedv.ru -pitlokjob.com -pitong31.icu -pitonresources.org -pitostrax.com -pittpils.online -pittsborochiro.com -pittsburghheroinrehab.com -pitynorm.host -piuminimoncler2013italia.com -piuminimoncler2013spaccio.com -piuonsales.com -piupiz.com -piusmbleee49hs.cf -piusmbleee49hs.ga -piusmbleee49hs.gq -piusmbleee49hs.ml -piusmbleee49hs.tk -pivo-bar.ru -pivotfurthersally.site -pivotmylife.com -pivrtks.com -pivrw.us -pivxambassador.com -pixaco.info -pixaco.org -pixdoudounemoncler.com -pixego.com -pixelated.nyc -pixelboats.info -pixelcomparison.com -pixelmark.online -pixelmatorteam.com -pixelnod.com -pixelpassion.space -pixelpav.com -pixelrate.info -pixelrealms.net -pixelsendhere.icu -pixelsorcery.net -pixelsorcery.org -pixeltips.xyz -pixieapp.com -pixiv365.com -pixiv8.com -pixivtool.com -piyahkc.xyz -piyamipi.site -pizhama-hotel.ru -pizza-bay-dungarvan.com -pizza-kebabhouse.com -pizza-point-takeaway.com -pizza.cd -pizza.cool -pizza25.ga -pizza4app.site -pizzabonus.fun -pizzacookiegaming.com -pizzahot-tipperary.com -pizzahut.org -pizzajunk.com -pizzakababish.com -pizzaload.net -pizzamarketespluguesesplugues.com -pizzamarketsants.com -pizzamayorimperial.com -pizzanadiapro.website -pizzandfriedchicken.com -pizzanewcas.eu -pizzapalaceenniscorthy.com -pizzapastatakeaway.com -pizzaplanet-waterford.com -pizzaplus-limerick.com -pizzashacktakeaway.com -pizzaslicedelivery.com -pizzaslicetakeaway.com -pizzasncream.com -pizzeria-cashel.com -pizzeriacolonmarbella.com -pizzeriagreco.com -pizzeriailmercato.com -pizzeriakebabalcantarillaalcantarilla.com -pizzeriakebabestambulmurcia.com -pizzeriavallecasdonerkebab.com -pj.today -pj12l3paornl.cf -pj12l3paornl.ga -pj12l3paornl.gq -pj12l3paornl.ml -pj12l3paornl.tk -pjbals.co.pl -pjbpro.com -pjdrcz.com -pji40o094c2abrdx.cf -pji40o094c2abrdx.ga -pji40o094c2abrdx.gq -pji40o094c2abrdx.ml -pji40o094c2abrdx.tk -pjjkp.com -pjkmanbetx.com -pjlounge.com -pjmanufacturing.com -pjoh.us -pjsky.net -pk007.shop -pk008.shop -pk009.shop -pk015.shop -pk017.shop -pk018.shop -pk019.shop -pk020.shop -pk025.shop -pk026.shop -pk027.shop -pk028.shop -pk029.shop -pk030.shop -pk031.shop -pk032.shop -pk033.shop -pk034.shop -pk035.shop -pk036.shop -pk037.shop -pk038.shop -pk039.shop -pk041.shop -pk042.shop -pk044.shop -pk046.shop -pk048.shop -pk051.shop -pk052.shop -pk055.shop -pk056.shop -pk057.shop -pk058.shop -pk059.shop -pk061.shop -pk062.shop -pk063.shop -pk065.shop -pk066.shop -pk067.shop -pk068.shop -pk069.shop -pk070.shop -pk071.shop -pk072.shop -pk073.shop -pk074.shop -pk075.shop -pk076.shop -pk077.shop -pk078.shop -pk079.shop -pk081.shop -pk082.shop -pk083.shop -pk085.shop -pk086.shop -pk087.shop -pk088.shop -pk091.shop -pk092.shop -pk3000.club -pk4.org -pk6699.xyz -pkbmdq.fun -pkbmmx.fun -pkcabyr.cf -pkcabyr.ml -pkdnht.us -pkearl.com -pkinform.ru -pkins.com -pkl89.space -pklmck.fun -pklmlc.fun -pklwsg.us -pkmail.cf -pknmcf.fun -pkrhk.us -pkrnegara.com -pkvdewaq.com -pkvheboh.net -pkvkartu.com -pkwaf.com -pkwccarbnd.pl -pkwreifen.org -pkxmbh.fun -pkxxr.live -pkxy8.us -pkykcqrruw.pl -pl-mail.ru -pl-praca.com -pl-us22.com -pl85s5iyhxltk.cf -pl85s5iyhxltk.ga -pl85s5iyhxltk.gq -pl85s5iyhxltk.ml -pl85s5iyhxltk.tk -placathic.cf -placathic.ga -placathic.gq -placathic.ml -placathic.tk -placdescre.cf -placdescre.ga -placdescre.gq -placdescre.ml -placdescre.tk -place.cd -place.vote -place2win.net -placebod.com -placeftg.tk -placemail.online -placemslcp.space -placentiaapartments.com -placentiadentists.com -placepages.com -placeright.ru -placertitlecompany.net -placertitlecompany.org -placertitlecompany.us -placertitlee.net -placertitlee.org -placertitlee.us -placertitleescrow.net -placertitleescrow.us -placertitles.net -placertltie.com -placetitle.net -placetitle.ru -placetopay.biz -placetopay.net -placeu.org -placrospho.cf -placrospho.ga -placrospho.gq -placrospho.ml -placrospho.tk -pladprodandartistmgt.com -plagiarismcheck.online -plagiarizers320ze.online -plague.chat -plaindesire.com -plaipal3.xyz -plaitbarrierscion.site -planchas-ghd.org -planchasghdy.com -plancul2013.com -plandoreview.app -planeselect.com -planet-kebabish-limerick.com -planet-travel.club -planeta-samsung.ru -planetbeatrix.com -planetcomputers.net -planethaze.net -planetkebabish-cahir.com -planetlive.online -planetnetwok.com -planetside2players.com -planetvirtworld.ru -planetwin365winall.net -planeze.com -planfin.online -plangeeks.com -planhorsehill.com -planiplans.com -planiste-francophone.com -planiwpreap.cf -planiwpreap.ga -planiwpreap.gq -planiwpreap.ml -planiwpreap.tk -plankperishscree.site -planmy.menu -planned-parenthood.org -plannedparenthood.health -plannedparenthoodasegurate.com -planoautoaccidentlawyers.com -planodesaudecarloslira.top -planodesaudeleonardolobo.top -planoheroinrehab.com -planoquote.com -planorealestateagents.com -planowaniewakacji.pl -plans-b.ru -plansulcutt.cf -plansulcutt.ga -plansulcutt.gq -plansulcutt.ml -plansulcutt.tk -plant.energy -plant.events -plant.fitness -plant.global -plant.recipes -plant.vegas -plant1plant.com -plantbased.date -plantbased.doctor -plantbased.healthcare -plantbasedbacon.com -plantbasedbeef.com -plantbasedfish.com -plantbasedholidays.com -plantbasedlamb.com -plantbasedmacaron.com -plantbasedpork.com -plantbasedproteinbar.com -plantbasedshrimp.com -plantbasedsteak.com -plantbasedtoys.com -plantbasedvaccine.com -plantbasedvaccines.com -plantcab.xyz -plantcarbs.com -plantchocolate.com -plantcream.com -planteralatt.nu -planteralatt.se -plantfeels.com -plantfoodie.com -plantiary.com -plantkado.space -plantla.xyz -plantlas.xyz -plantmedicineglobal.com -plantnog.com -plantnove.press -plantoneplant.com -plantpolish.com -plantpork.com -plantproteinshake.com -plantsalmon.com -plantscan.online -plantscrave.com -plantshrimp.com -plantssparkjoyclub.com -plantsvszombies.ru -planttoys.com -planyourwed.com -plashmoistenscrew.site -plasmaforcure.com -plaspayti.cf -plaspayti.ga -plaspayti.gq -plaspayti.ml -plaspayti.tk -plasticizers180if.online -plasticizing753kl.online -plasticregime.com -plasticsurgeonmarketingagency.com -plastik.fun -plastikaspb.ru -plastikmed.com -plaswillno.cf -plaswillno.gq -plateapanama.com -platedeph.cf -platedeph.ml -platedeph.tk -plates4skates2.info -platformassociates.com -platin.dev -platingaming.dev -platinhosting.cloud -platinize755rx.online -platinum.cam -platinumalerts.com -platocasino.com -platypdmeb.site -platyrexgk.space -plauda.site -plavaivodaviytrsvxj.info -plavixprime.com -play-minevra.xyz -play-store.app -play-store.biz -play-store.net -play-vulkan-club.ru -play-wap.org -play11.com -play1x.icu -play1x.online -play2vulkan.net -play2x.land -play2x.link -play2x.zone -play303.xyz -play338.org -play3n1.com -play3n11.com -play3n18.com -play3nclub.com -play3ncn.com -play3nfair.com -play3niu18.com -play3niu88.com -play3niua.com -play3niub.com -play3niuc.com -play3nlive.com -play3nsb.com -play3nvip.com -play3nwin.com -play3nwin8.com -play4gold.net -play588.com -play999spin.com -playamo.casino -playamo36.com -playbaocasino.info -playbetcasino.com -playcanvas.net -playcard-semi.com -playcasino24.com -playcoin.online -playdiablo4.ru -player-casino.ru -player-midi.info -players501.info -playerspc.net -playerx.win -playforfun.ru -playforpc.icu -playfortuna-in.ru -playfortuna-official.ru -playfortunaonline.ru -playfulcityusa.com -playfunplus.com -playfuny.com -playgamesgo.club -playgirl4d.net -playhabnet.online -playhardjoinville.tk -playhippo.se -playhosting.ru -playkingschance.com -playkres.com -playlablondon.com -playmtv.com -plaync.top -plaync.xyz -playnposm.com -playon.fun -playonlinecasino.tech -playouisi.com -playpharaon.fun -playpokergame.net -playretro.online -playrugbyspain.com -playsbc.info -playsbc.org -playsbox.ru -playsetsshop.life -playsims.ru -playsoffstream.live -playsquareland.com -playstation3files.com -playstationspecs.online -playsto.bet -playstore.best -playstube.com -playtell.us -playthemarket.com -playtubemusic.com -playtubemusic.net -playtubepk.com -playtubes.net -playyo88.info -playyo88.win -playzonex.com -pldppd.site -pleadfl.xyz -pleadid.email -pleadlea.xyz -pleadworr.host -pleasantfantastic.com -pleasanthillapartments.com -pleasantinsterest.com -pleasanttransform.com -pleasantuniques.com -pleasedonotpurchasethedomain.com -pleasegoheretofinish.com -pleaseletmeoutdaddy.bar -pleasenoham.org -pleasewait.site -pleasherrnan.cf -pleasherrnan.ga -pleasherrnan.gq -pleasherrnan.ml -pleb.lol -plecertitle.com -plecmail.ml -pledge.xyz -plee.nyc -pleinairconventionfall.com -pleinairconventionwest.com -pleinairspring.com -pleinr.com -pleionehosting.com -plemedci.cf -plemedci.ga -plemedci.gq -plemedci.ml -plemedci.tk -plemrapen.cf -plemrapen.ga -plemrapen.gq -plemrapen.ml -plenbundden.cf -plenbundden.gq -plenbundden.ml -plenbundden.tk -plenty.su -plentyapps.com -plescheevo-mayak.ru -plesniaks.com.pl -plethurir.cf -plethurir.ga -plethurir.gq -plethurir.ml -plethurir.tk -plex-family.com -plexamab.cf -plexamab.ga -plexamab.gq -plexamab.ml -plexamab.tk -plexolan.de -plez.org -plfeco.xyz -plgbgus.ga -plgbgus.ml -plgjhm.us -plhdyj.icu -plhk.ru -plhosting.pl -pliego.dev -plitkagranit.com -plitkaua.site -plitur.com -pllacertitle.com -ploae.com -plollpy.edu -plombierleblancmesnil.com -plonecheck.xyz -plonkxicg.space -plopgroep.shop -ploraqob.cf -ploraqob.ga -ploraqob.tk -plorhosva.cf -plorhosva.ga -plorhosva.gq -plorhosva.tk -plot49.com -plotblip.com -plotfifth.com -plotsandfoils.com -plotwin.xyz -ploutos.ong -ploxitanin.ru -ployapp.com -plpfq.us -plrdn.com -plsh.xyz -pluccb.xyz -plufix.net -pluflex.com -plugfield.com -pluggedinsocial.net -plughorn.us -plugindesiger.com -pluginengine.com -plugins.cloud -plugsolo.com -plumbadzul.space -plumberdelray.com -plumberjerseycity.info -plumberplainfieldnj.info -plumberslive.com -plumbing-world.com -plumbingpackages.com -plumblandconsulting.co.uk -plumcreekmarketing.com -plumfox.com -plumlytics.net -plumosxxtz.space -plumrelrei.cf -plumrelrei.ga -plumrelrei.gq -plumrelrei.ml -plumrelrei.tk -plumripe.com -plumrite.com -pluralizes785ql.online -plus-size-promdresses.com -plus1vps.com -plusgmail.ru -plushimages.net -plushington.ru -plusica.tk -plusiptv.xyz -plusjlle.com -plusjlle12.tk -pluskatv.sk -plusmail.cf -plusonefactory.com -plussizecorsets4sale.com -plussmail.com -plussreklam.xyz -plustrak.ga -plutbild.ru -plutcool.ru -plutcrop.ru -plutdog.ru -plutlight.ru -plutmir.ru -plutobet.com -plutocow.com -plutofox.com -plutognivo.ru -plutoillumination.ru -pluttour.ru -plutus.family -plutus.social -plutvid.ru -plutvivo.ru -plw.me -plxrd1.site -plymouthrotarynh.org -plymouthrrock.com -plyplace.com -plyty-betonowe.com.pl -plz-mail.online -pm-200.info -pm-386.info -pm-773.info -pm-privat.com -pm244.site -pm7if.us -pmankidneyfoundation.org -pmarketst.com -pmcasino-online.ru -pmchtv.info -pmck.info -pmdlt.win -pmelegend-footwear.com -pmelegend.clothing -pmeshki.ru -pmivsmvc.shop -pmldmt.com -pmledyanoy.site -pmlep.de -pmmgladanorak.site -pmmgrafavenec.site -pmmkernstylyy.site -pmmkoftaglad.site -pmmoroznyy.site -pmmparkaglad.site -pmmpurgaburan.site -pmmvyugaparka.site -pmob.online -pmottc.com -pmpcertificationinfo.com -pmq0yk.us -pmriverside.com -pmshelf.com -pmsvs.com -pmta01.us -pmtmails.com -pmyojana.website -pmzummer.site -pn2ulj.site -pn8282.com -pncmarkets.com -pndan.com -pneumo360.ru -pnevmo360.ru -pnew-purse.com -pnhez.com -pnhrpna.com -pnina-inbar.com -pnizgotten.com -pnmproduction.com -pnmxb1.site -pnn79.com -pnpaxl.site -pnpbiz.com -pnqzqoryz.shop -pnrep.com -pntrvx.xyz -pnvky.live -pnvp7zmuexbqvv.cf -pnvp7zmuexbqvv.ga -pnvp7zmuexbqvv.gq -pnvp7zmuexbqvv.ml -pnvp7zmuexbqvv.tk -pnwgenetics.com -pnxmbv.icu -pny0if.us -po-telefonu.net -po.bot.nu -po.com -po0rasiiigraaam.club -po0rttttoo90.club -po209.space -po210.space -po211.space -po218.space -po221.space -po228.space -po4tamt.org -po588.com -po8flz.us -poakdna.com -poalmail.ga -poanunal.cf -poanunal.ga -poanunal.gq -poanunal.ml -poanunal.tk -pob2.club -pob9.pl -pobbbilocf.club -pobedamailer2.com -pobedit-ves.ru -pobet.info -pochatkivkarmane.cf -pochatkivkarmane.ga -pochatkivkarmane.gq -pochatkivkarmane.ml -pochatkivkarmane.tk -pochta2018.ru -pochtamt.ru -pochtar.men -pochtar.top -pocketmortyreceipes.org -pocketpleaser.com -pocketslotz.co -poclickcassx.com -poconospeech.com -pocontbest.cf -pocontbest.ga -pocontbest.ml -pocontbest.tk -pocoobtla29.site -pocupki.ru -poczta.pl -pocztaaonet.pl -pocztex.epizy.com -pocztex.ovh -poczxneolinka.info -poczxneolinkc.info -pod72.com -podam.pl -podarbuke.ru -podatki-kog.com -podatnik.info -podboremavto.ru -podcastflow.com -podcastfunnel.com -podcekay.ru -poddon-13.ru -poddop.club -podemosenmovimiento.info -poderatiop.space -poderosamulher.com -podgladaczgoogle.pl -podguznik38.ru -podiform.xyz -podil.xyz -podkarczowka.pl -podlipskiy.ru -podlqop.ru -podmosk.ru -podmozon.ru -podotherapie.frl -podscripts.online -podscripts.pro -podscripts.website -podstrigus.ru -podsvetkakuhni.ru -podv.net -podveska-nn.ru -poegal.ru -poehali-otdihat.ru -poers.com -poesie-de-nuit.com -poetred.com -poetrysms.in -poetrysms.org -poh.ong -poh.pp.ua -pohotmi.cf -pohotmi.ga -pohotmi.ml -pohotmi.tk -pohydalka.ru -poi123.com -point2usa.com -pointampl.xyz -pointcreator.com -pointfe.xyz -pointklick.com -pointklick.net -pointmade.pro -pointri.email -pointslot.com -pointssurvey.com -pointstr.cf -pointstraffictickets.com -pointtstrafficticket.com -pointvisible.company -poioijnkjb.cf -poioijnkjb.ml -poiopuoi568.info -poipet.asia -poipet2go.com -pois0n.su -poisoncycles.com -poisontech.net -poissonsvivants.info -poistaphdes.cf -poistaphdes.ga -poistaphdes.gq -poistaphdes.ml -poistaphdes.tk -poiuuiop23.xyz -poiuweqw2.info -pojangmacha.net -pojdveri.ru -pojieyuanma.com -pojok.ml -pokecalc.online -pokeett.site -pokegofast.com -pokemail.net -pokemon-video.ru -pokemonbattles.science -pokemongocoins.website -pokemongodatabreach.com -pokemonqq.com -pokenoms.com -poker-boya.com -poker-texas.com.pl -poker837.online -poker837.org -poker855.mobi -poker88asia.net -poker933.net -pokerasean.com -pokerbandar77.com -pokerbandar77.org -pokerbaz.club -pokerbet99.com -pokerbonuswithoutdeposit.com -pokercad47.net -pokercash.org -pokercashqq.biz -pokercashqq.net -pokercemeku.com -pokerclick88.biz -pokercloob.com -pokercmi.info -pokercuan.club -pokercuan.online -pokerdomonline.online -pokerdomz.online -pokerdong88.com -pokerduo.com -pokerevening.biz -pokergemini.org -pokeriran.info -pokeriran.net -pokerkilat.org -pokerlegendanew.com -pokerlena.club -pokermilenia.info -pokermilenia.net -pokermilenia.org -pokernet88.org -pokeronlinecc1.xyz -pokerorion.biz -pokerorion.online -pokerprizespies.com -pokersaya.com -pokersbo338.club -pokersbo338.org -pokersctv.biz -pokersdating.info -pokerseal-my.com -pokersgg.com -pokersolusiwin.com -pokerterpercaya.fun -pokertexas1001.com -pokertexas77.com -pokertexasidn.com -pokerting.org -pokerwalet123.com -pokerwin888.com -pokerwin99.com -pokerzilla126.xyz -pokerzilla127.xyz -pokerzo.biz -pokesmail.xyz -poketta.cf -poketta.gq -poketta.ml -poketta.tk -pokeymoms.org -pokiemobile.com -pokoshop.se -pokostand.se -pokostore.se -pokr-str.ru -pokraska1.ru -pokrowcede.pl -pokupai-mili.ru -pokupai-vsegda.ru -pokupaska24.ru -poky.ro -polaab.com -polacy-dungannon.tk -polameaangurata.com -poland-nedv.ru -polarcdn-static-staging.com -polaris-280.com -polarkingxx.ml -polasela.com -polatalemdar.com -polatlicocukdiyari.com -polccat.com -polco.org -poledancingct.com -polemarh.ru -polen-ostsee-ferienhaus.de -polenokol.ru -polenomir.ru -polespanki.icu -polet-pallet.ru -poletbot.site -polezno-znati.ru -polezno2012.com -poleznofinland.ru -policity.ml -policity.tk -policyofliberty.com -poliden.me -poliglot-16.ru -polija.ru -polikaser.tk -polikasret.ml -polimatsportsp.com -polimernd.com -polimi.ml -polina777.ru -polinom.ga -polioneis-reborb.com -polisabrn.gq -polisetr.ml -polishbs.pl -polishxwyb.com -polistand.site -polit-konsultant.ru -polit-tehnologiya.ru -polit-tekhnologiya.ru -politgator.ru -political101.com -politicalcripple.com -politicfree.news -politichesko.info -politicspass.com -politicsultra.com -politika24.info -politikerclub.de -politprognoz.club -polittehnologiya.ru -polittekhnologiya.ru -poliusraas.tk -polizasaduana.com -polizzeperstranieri.net -polka-shkaff.ru -polkaarsenal.com -polkaauth.com -polkadot.tk -polkaidot.ml -polkars.online -polkarsenal.com -polkindustries.com -polkretoiut.gq -pollardbase.com -pollgirl.org -polljonny.org -pollrokr.net -pollsthatpay.com -pollys.me -polmaru.cf -polmaru.ga -polnaserdew.ga -polobacolono.com -polobet312.com -polobet313.com -polobet314.com -polocoton.com -polohommefemmee2.com -polol.com -poloozz.cloud -polopasdcheres.com -polopashcheres.com -polopasqchere7.com -polopowdhz.space -poloralphlaurenjacket.org -poloralphlaurenpascheresfrancefr.com -poloralphlaurenpascherfr1.com -polosburberry.com -polosiekatowice.pl -polosous.com -polostar.me -polovaz.website -poloversamos.xyz -polplitka.ru -polpuzzcrab.ga -polpuzzcrab.gq -polpuzzcrab.tk -polres-aeknabara.cf -polskaprawna.site -poltawa.ru -poltovec.com -poluchitnasledst.xyz -poluchy.ru -poly-swarm.com -polyace.ru -polybrow.com -polycast-china.com -polycast-suzhou.com -polycoco.com -polyfaust.com -polyformat.media -polygami.pl -polymnestore.co -polymorph.icu -polynoxe.ru -polyor.xyz -polyskinwax.biz -polyswarms.com -polyvore.name -polzavredka.com -pomeranianboo.org -pomeroyohs.info -pomifo.info -pomonayouth.org -pomorscyprzedsiebiorcy.pl -pompanette.maroonsea.com -pomsiese.ru -pomsux.xyz -pomyslnaatrakcjedladzieci.pl -pomysloneo.net -pomyslynabiznes.net -ponabana.info -ponabana.org -ponahakizaki.xyz -ponatcyrr.ga -ponatcyrr.gq -ponatcyrr.ml -ponatcyrr.tk -ponce.works -pondsbydesign.com -ponenes.info -poney.xyz -pongueme.cf -pongueme.ga -pongueme.gq -pongueme.tk -pongwonproductions.com -ponibo.com -ponili.cf -ponili.ga -ponili.gq -ponili.ml -ponili.tk -ponmejudg.cf -ponmejudg.ga -ponmejudg.gq -ponmejudg.tk -ponp.be -ponselarena.com -pontonboot.net -pontonboten.net -pontorez.site -pontstoudar.ga -pontstoudar.gq -pontstoudar.ml -pontstoudar.tk -pony-shop.ru -ponycloud.net -ponyvaldez.com -ponyxchange.store -poo-nicorns.com -pooae.com -pooasdod.com -poobbttt.club -poochtimberscuba.site -poofy.org -pookmail.com -pool-plastering.com -poolameafrate.com -poolandliving.com -poolcovers.se -poolemail.men -poolfared.ml -poolstavka.com -pooltoys.com -poolx.site -poopiebutt.club -poopouri.ru -poorgeorgesalmanac.com -poormansjerky.com -pooyanmokhtari.net -pop-a-lock-smith.com -pop-newpurse.com -pop-under.ru -pop2011email.co.tv -pop3.xyz -pop3email.cz.cc -pop3mail.cz.cc -popa-mopa.ru -popalockofftsmith.com -popanda.website -popander.net -popbangphotography.com -popbum.com -popcanadagooseoutlet.com -popcavmire.ru -popcode15.xyz -popconn.party -popcornflix-free.site -popcornforrefugees.com -popcrime.com -popculturekeys.com -popculturetopics.com -popdrunk.com -popemailwe.com -popesodomy.com -popgeekcollectables.com -popgx.com -popherveleger.com -popinapp.com -popinfo.ru -popinmusic.com -popjav.ninja -popjob.us -popk-77.com -popk-me.com -poplift.com -popmail.io -popmaildf.com -popmailserv.org -popmailset.com -popmailset.org -popmints.app -popofish.com -popolo.waw.pl -popov.marketing -poppadomtakeaway.com -poppell.eu -poppellsimsdsaon.eu -poppermccormick.com -poppers.cd -poppopbattlej.com -poppunk.pl -poppyalwaz.site -poppyscroll.com -popsci.ru -popsissi.com -popso.cf -popso.ga -popso.gq -popso.ml -popso.tk -popsok.cf -popsok.ga -popsok.gq -popsok.ml -popsok.tk -popteen4u.com -populaire.pro -popularabutiker.se -popularbagblog.com -popularbook.se -popularjackets.info -popularmotorcycle.info -popularpiercing.com -popularswimwear.info -populatin.space -popunder.biz -popuza.net -poq9sm.us -poradcamaklera.sk -porarriba.com -poraza.com -porch-pride-slight-feathers.xyz -porchauhodi.org -porco.cf -porco.ga -porco.gq -porco.ml -pordiosw.com -poreglot.ru -porevoorevo.co.cc -porfitdota.fun -porilo.com -poring-ro.com -porkinjector.info -porkpolice.com -porn-movies.club -porn4everyone.tk -pornfreefiles.com -pornizletr.com -porno-figa.online -porno-man.com -porno-prosto.ru -porno-sex-video.net -pornoclipskostenlos.net -pornomors.info -pornopopki.com -pornoseti.com -pornosexe.biz -pornosiske.com -pororogoreng.top -porororebus.top -porovozik.ru -porrect.xyz -porrtob.info -porschcourtsettlement.com -porschcourtsettlements.com -porsche-brasil.club -porsche-destination-charging.com -porsche-emisiones0.com -porsche-macan.club -porschedealersacramento.com -porsh.net -porsterp.com -porta.loyalherceghalom.ml -portableearthing.com -portablespins.co -portageut.buzz -portailbijou.com -portal-finansowy.com.pl -portal-gonzaga.xyz -portal-internetowo-marketingowy.pl -portal-marketingowy.pl -portal-ogloszeniowy-24.pl -portal3.net -portal56.xyz -portal7.ru -portalbrasileiro.online -portaldenoticiasbrasil.site -portaldenovidades.site -portaldoagora.xyz -portaldosbrasileiros.site -portaleanimali.com -portaleanimali.net -portalgateway.org -portalninjas.com -portalprimavera.xyz -portalsehat.com -portalvideo.info -portalweb.icu -portatiles.online -portelatutoriais.com -porterandclarkchiropractic.com -porterbraces.com -portesdegarage.quebec -portfabric.com -portha-stephane.space -porthtatin.ga -porthtatin.gq -porthtatin.ml -porthtatin.tk -portic.xyz -porticoresidence.com -porticullus.com -portigalconsulting.com -portland5g.net -portland5g.org -portlandintegritasadvisors.info -portlandnailsalons.com -portlandnursingjobs.com -portlandsocietypage.net -portlenso.cf -portlenso.ga -portlenso.gq -portlenso.tk -portob.info -portobello-pizza-cafe.com -portobelobrew.com -portobet2019.club -portocalamecanicalor.com -portocalelele.com -portosharmelsheikhresort.xyz -portovelo.com -portsefor.cf -portsefor.ga -portsefor.ml -portsefor.tk -porttttooo90.club -portu-nedv.ru -portubeautiful.tech -portugal-choco-late.online -portugal-chocolate.club -portugal-chocolate.online -portugalchocolate.host -portugalholidays.org -portugalresidencial.com -portuguesewithrick.com -portxedna.cf -portxedna.ga -portxedna.gq -portxedna.tk -pos-graduacao-lato-sensu.com -posatlanta.net -posdz.com -posehigm.space -poselokvoskresenki.ru -poserpostageserif.site -poseyweddings.com -posgraduacaolatosensu.com -poshdine.com -posher.ru -posicionamientowebmadrid.com.es -posisiku.pw -positive.bet -posliquidators.com -posmayma.cf -posmayma.gq -posmayma.ml -posmayma.tk -posnwu.online -posobie-01.site -posov.info -possystemsguide.com -post-box.in -post-box.xyz -post-mail-server.com -post-shift.ru -post.melkfl.es -post.mydc.in.ua -post0.profimedia.net -posta.store -posta2015.ml -postaci.ml -postacin.com -postalmail.biz -postbenua.ru -postcard.delivery -postcards4change.net -postcardsfromukraine.crowdpress.it -postcm.com -postdated.email -poste-it.xyz -poste-recherche.xyz -postely-dream.ru -postemail.net -postermanderson.com -posteronwall.com -posterxmtw.space -postfach2go.de -postgres-replication.org -posthava.cf -posthava.ga -posthava.gq -posthava.ml -posthava.tk -posthectomie.info -postheo.de -postheodor.ml -posthet.stream -posthoxnxx.space -postim.de -postina.ml -postkaso.tk -postlame.cf -postlame.ga -postlame.gq -postlame.ml -postlame.tk -postmail1.ru -postmate.delivery -postmen.online -postmolly.com -postnasaldripbadbreath.com -postnetftent.ga -postnetftent.gq -postnetftent.ml -postnetftent.tk -postoni.ml -postonline.me -postroikoform.xyz -postroimkotedg.ru -postshift.ru -poststand.com -posttrade360.se -postupstand.com -posurl.ga -poszkodowani.info -potarveris.xyz -potasf.com -potblog.com -potdropcrampo123n.ru -potdropcrampon.ru -potechinltd.ru -potemalls.site -potencialex-it.site -potencialexone.ru -potencialexstore.ru -potencialis.info -potencid.ru -potencis.ru -potencyalex.ru -potenz-drink.com -potenzialex149.ru -potenzshot.com -potolki-voronezh.ru -potrawka.eu -potshisha.com -potstockinvesting.com -pottattemail.xyz -potterymediaco.com -pottingerperspectives.com -pottytrainingchamp.com -poucet.org -pouet.xyz -pounduni.us -poundwise.app -pourforme.com -pourover.dev -poutineyourface.com -poutokilas.ga -povesticopii.info -povorotov.ru -povu.site -povuoutlet.site -povzcz.shop -pow-pows.com -pow.photo -powaylawyers.com -powcoin.net -powcoins.com -powderdesk.com -powdergeek.com -power-leveling-service.com -power-shopping.info -power5mastermind.com -powerbank-russia.ru -powerbike.de -powercontinuitysystems.com -powerdast.ru -powerdra.us -powered.name -powerempleo.com -powerencry.com -powerexsys.com -powerfivemastermind.com -powerforce.site -powerfreedom.email -powerfulultraextract.com -powerhousedyno.com -powerin.site -powerlea.xyz -powerlear.xyz -powerlink.com.np -powermass.site -powerml.racing -poweronrepair.com -powerpages.website -powerpls.xyz -powerpressed.com -powerpressites.com -powers-balances.ru -powersala.com -powertaser.tk -powerwashchemicals.com -powerwashcompany.org -powerwashersmd.com -powerwashersmd.xyz -powerz.org -powewashing.mobi -powiekszaniepenisaxxl.pl -powlearn.com -poww.me -poxot.org -poxudeykina.ru -poy.e-paws.net -poy.kr -poyrtsrxve.pl -pozecraciun.info -pozitifff.com -pozitiv.ru -poznakomstvy.ru -pozunusec.com -pozycja-w-google.com -pozycjanusz.pl -pozycjonowanie-2015.pl -pozycjonowanie-jest-ok.pl -pozycjonowanie-stron-szczecin.top -pozycjonowanie.com -pozycjonowanie.com.pl -pozycjonowanie56.pl -pozycjonowaniekielce.pl -pozycjonowanieopole.net -pozyczka-provident.info -pozyczkabezbik24.com.pl -pozyczkasms24.com.pl -pozyczkigotowkowewuk.com.pl -pozyczkiinternetowechwilowki.com.pl -pozyczkiprywatne24.net -pozyczkiwuk.com.pl -pozyjo.eu -pp.ua -pp18269.com -pp57822.com -pp916.com -pp98.cf -pp98.ga -pp98.gq -pp98.ml -pp98.tk -ppabldwzsrdfr.cf -ppabldwzsrdfr.ga -ppabldwzsrdfr.gq -ppabldwzsrdfr.ml -ppabldwzsrdfr.tk -ppapa.ooo -pparlrrraaiggraaam.club -pparsgorrem.club -ppatour.org -ppav05.xyz -ppav07.xyz -ppb778.com -ppbanr.com -ppbill247.com -ppbk.ru -ppbomail.com -ppc-e.com -ppc-trafic.ru -ppcoy.com -ppcwoo.com -ppcwoo.org -ppdev.org -ppdf.site -ppdhub.best -ppetw.com -ppgu8mqxrmjebc.ga -ppgu8mqxrmjebc.gq -ppgu8mqxrmjebc.ml -ppgu8mqxrmjebc.tk -ppiqglobal.com -ppisjgika.ga -ppixorea.site -pplay-ffortuna1.ru -ppldnzyo.pro -pple.com -pplrecords.com -ppmoazqnoip2s.cf -ppmoazqnoip2s.ga -ppmoazqnoip2s.gq -ppmoazqnoip2s.ml -ppnet.ru -ppnncc.com -ppodkeye.site -ppodkeyr.site -ppoker99.com -ppp062.com -ppp9827.com -pppoirasigram.club -pprostitutki-samara.info -ppsapta.info -ppsapta.net -ppsekosovo.org -ppsindonesia.com -ppstat.ru -ppx219.com -ppx225.com -ppx237.com -ppx240.com -ppx299.com -ppymail.win -ppz.pl -pq6fbq3r0bapdaq.cf -pq6fbq3r0bapdaq.ga -pq6fbq3r0bapdaq.gq -pq6fbq3r0bapdaq.ml -pq6fbq3r0bapdaq.tk -pqhwcf.us -pqoia.com -pqoss.com -pqpk.us -pqssj.icu -pqtoxevetjoh6tk.cf -pqtoxevetjoh6tk.ga -pqtoxevetjoh6tk.gq -pqtoxevetjoh6tk.ml -pqtoxevetjoh6tk.tk -pqtxtlvne.tk -pquoil.site -pquw0o.com -pqxdig.info -pr0jectn1ne.com -pr1ngsil4nmu.ga -pr253.site -pr5.info -pr6312.xyz -pr7979.com -pra-22.com -praatmetelkaar.online -prabudhatravels.com -prac6m.xyz -pracapoplaca.online -prachylith.cf -prachylith.ga -prachylith.gq -prachylith.ml -prachylith.tk -pracnila.cf -pracnila.ga -pracnila.gq -pracnila.ml -pracnila.tk -pracroxtdel.ga -pracroxtdel.gq -pracroxtdel.tk -practicalfinace.com -practicalsight.com -practicerevive.org -practitionergrowthinstitute.com -practitionerhosting.com -practivity.net -practizkts.ru -pracylca.cf -pracylca.ga -pracylca.gq -pracylca.ml -pracylca.tk -prada-bags-outlet.org -prada-messenge-bag.us -prada-shoes.info -pradabagsalejp.com -pradabagshopjp.com -pradabagstorejp.com -pradabagstorejp.org -pradabakery.com -pradabuyjp.com -pradahandbagsrjp.com -pradahotonsale.com -pradajapan.com -pradajapan.org -pradajapan.orgpradajapan.orgpradajapan.orgpradajapan.orgpradajapan.orgpradajapan.orgpradajapan.orgpradajapan.orgpradajapan.org -pradanewjp.com -pradanewjp.org -pradanewstyle.com -pradaoutletonline.us -pradaoutletpop.com -pradaoutletshopjp.com -pradaoutletus.us -pradapursejp.com -pradapursejp.org -pradipmodi.website -prado-mail.ru -pradvice.ru -praemj.us -praetorianguardcanecorso.com -pragati.org -pragbet7.com -pragmatic.rocks -pragmatic.website -prahalottery.info -prahalottery.net -prahalottery.org -praktijkgids.net -praktika.site -pramaniya.site -pramitcasino.com -pramolcroonmant.xyz -prankish.buzz -prankish.online -prankish.site -prankkasino.se -prankmarketing.com -pranobun.cf -pranobun.ga -pranobun.gq -pranobun.ml -pranobun.tk -pranto.me -prasannasafetynets.com -prass.me -pratik-ik.com -pratikmail.com -pratikmail.net -pratikmail.org -pratincole.xyz -pratlaydi.tk -prava-ab.ru -praveen.win -pravesh.tk -pravorobotov.ru -pravotrudov.xyz -pravotver.ru -pravougolovn.xyz -pravovayasemyami.xyz -pravovoe-upravlenie.ru -pravozemelnoe.xyz -prawa-moskwa.ru -prawa-msk.ru -prawamoskva.ru -prawamoskwa.ru -prawasrf.ru -pray.agencja-csk.pl -prayatnafikrkalki.ong -prayersa3.com -prazdnik-37.ru -prazdnik-moy.ru -prcclosings.com -prcclosings.net -prcclosings.us -prchained.com -prchains.com -prclez.website -prclosing.info -prclosing.org -prclosing.us -prclosings.biz -prclosings.info -prclosings.mobi -prclosings.net -prclosinqs.com -prcloslngs.com -prduefed.com -pre-directappf.com -pre188.website -pre21marketing.com -preapprove.help -prebuilding.com -preccompdes.cf -preccompdes.gq -preccompdes.ml -precconta.cf -precconta.ga -precconta.tk -precdate.cf -precdate.ga -precdate.gq -precdate.ml -precdate.tk -precision.management -precisiondoorhillsborough.com -precisionmarina.management -precisionmarinamanagement.com -precisionroof.xyz -precitpren.cf -precitpren.ga -precitpren.gq -predatorrat.cf -predatorrat.ga -predatorrat.gq -predatorrat.ml -predatorrat.tk -predeathblog.com -prediksibola88.com -prediksihkjitu.online -predilectionaz.com -predizot.cf -predizot.ga -predizot.gq -predizot.ml -predizot.tk -predmarkcent.ga -predmarkcent.gq -predmarkcent.tk -prednestr-nedv.ru -predolenta.ru -predstalicinforofficial.ru -prefactura.org -prefermutual.com -prefixcom.com -prefood.ru -prefpargue.gq -prefpargue.ml -preg-marketingvici-app.com -pregabalin-lyrica.site -pregenicks.com -pregenics.com -pregnan.ru -pregnancybuddyapp.com -pregnancymiraclereviewnow.org -pregnancymiraclereviews.info -pregunmer.cf -pregunmer.ga -pregunmer.gq -pregunmer.ml -preicfes.online -prekab.net -preklady-polstina.cz -prekuldown47mmi.ml -preludelights.com -premarex.ga -premarex.gq -premarex.ml -premarex.tk -prematurecope.info -prembus.com -premeiracharters.com -premi2019.club -premiair.media -premier-coworking.com -premier-reverse.com -premieragentsofnova.com -premierbetcasino.com -premierbetsuper6.com -premierclosing.com -premiere.ee -premiereatlantarealestate.com -premierelivecasino.com -premierloto.info -premierlotto.net -premiermoney.net -premieroralsurgeryandimplantsplc.info -premieroralsurgeryandimplantsplc.us -premierpainandwellness.com -premierprivacy.com -premierpropertymanagementde.com -premiertech.africa -premiertechapps.com -premiertitle.biz -premiertitle.info -premiertitle.org -premiertitleagency.net -premiertitles.agency -premiertrafficservices.com -premisesplacegroup.com -premium-mail.fr -premium4pets.info -premiumail.ml -premiumcannabis.online -premiumcchelp.com -premiumgreencoffeereview.com -premiumlabels.de -premiumnezhealthcare.shop -premiumneznaturalbeauty.shop -premiumperson.website -premiumplantforskolin.com -premiumproductdiet.com -premiumseoservices.net -premiumservisak.tk -premiumsmartphonebonus.bid -premiumvulkan.ru -premmiere.biz -premmiere.info -prenekiz.cf -prenekiz.ga -prenekiz.gq -prenekiz.ml -prenekiz.tk -prenu.icu -preorderdiablo3.com -preownedcarsdirect.com -preownedluxurycars.com -prepaidgallery.com -prepared.fun -preparedwealth.com -preparee.top -prepayee.cd -preporod.online -preppingforfree.com -preridcer.cf -preridcer.ga -preridcer.gq -preridcer.ml -presale.tk -presanec.cf -presanec.ga -presanec.ml -presanec.tk -presaper.cf -presaper.ga -presaper.gq -presaper.ml -presaper.tk -presblok.ru -presci22ahkekstra.xyz -prescription-swimming-goggles.info -prescriptionbagimprints.com -prescriptiondeliveryservice.org -presence.red -preseven.com -presfecdee.cf -presfecdee.ga -presfecdee.gq -presfecdee.tk -presidency.com -presidentberniecoin.com -presidentbidencoin.com -presidentoto.com -presidentvisit.buzz -presinnil.cf -presinnil.ga -presinnil.gq -presinnil.tk -preskot.info -presmolthi.cf -presmolthi.ga -presmolthi.gq -presmolthi.ml -presmolthi.tk -prespa.mochkamieniarz.pl -press-citrus.ru -press-peacetalkwisdomdarter.com -pressbypresser.info -pressciynn.site -presslemon.ru -presslov.icu -pressreleasedispatcher.com -presssei.xyz -presster.com -pressurecleaningperth.com -pressurecookermadness.com -pressuredell.com -prestamospersonales.nom.es -prestamosurgente.com -prestashopcheck.xyz -prestativo.pro -presteg.com -prestiligh.cf -prestiligh.ga -prestiligh.ml -prestiligh.tk -prestore.co -prestubborn.best -prestudio48.xyz -prestuplenekon.xyz -presunad.cf -presunad.ga -presunad.gq -presunad.ml -presunad.tk -presuntab.cf -presuntab.ga -presuntab.gq -presuntab.ml -pret-a-renover-rona.com -pret-a-renover.com -pretans.com -pretenziitut.xyz -preterits242ei.online -pretesor.cf -pretesor.ga -pretesor.gq -pretesor.ml -pretesor.tk -prethlah907huir.cf -pretnzsostavit.xyz -pretoriuskoprestcamp.com -prettileaves.com -prettyandhealth.info -prettybet1688.com -prettyishlady.com -prettyishlady.net -prettylashes.co -prettymanprettyman.com -preventativeaction.com -preventivepain.com -prevesme.cf -prevesme.ga -prevesme.gq -prevesme.ml -prevesme.tk -previewsitedesign.com -previos.com -previouslyknown.com -prevueinfocus.com -prewx.com -preyantitheft.org -preyapp.org -preyhq.net -preylondon.com -preysecurity.com -preytracker.com -prftcshr.site -prhuws.shop -price-depot.com -price-shop-sale.ru -pricealert.uno -priceantiques.info -pricebit.co -priceblog.co -pricecanine.com -pricegues.xyz -priceio.co -priceleech.xyz -pricelinemovingandstorage.com -pricemobile.info -pricenew.co -pricenow.co -priceonline.co -pricepage.co -priceplunges.com -pricetag.ru -pricetegy.com -pricetrac.xyz -pricewarriors.com -pricewins.com -priceworld.co -prichy.com -pricraball.cf -pricraball.gq -pricraball.tk -pride.nafko.cf -pride1.info -pridemail.co -pridetw.com -priemu.pw -priest.com -priffer.net -prigovormodoi.ru -prihshop.ru -prijzenfeest.com -priligyonlineatonce.com -priligyonlinesure.com -priligyprime.com -priligytw.trade -prilution-ag.info -prilution-gmbh.com -prilution-gmbh.net -prilution-gmbh.org -prilution.com -prilution.info -prim1v.us -primabananen.net -primalburnkenburge.com -primaryale.com -primaryct.com -primaryvideos.com -primasecure.cd -primate.de -prime-diets-plusstoresales.com -prime.tg-nepali.co -primebusinessfinancingonline.com -primebusinessfinancingpro.com -primechoice.store -primecialisonline.com -primecostsolution.com -primedenverrealty.com -primejewlery.com -primelocationlets.co.uk -primemedya.net -primerka.co.cc -primerocomputers.com -primetbx.com -primeturbinessms.com -primevaluebeauty.com -primevaluedeals.com -primevaluedigital.com -primevaluegolf.com -primevaluenutrition.com -primevaluevitamins.com -primewire-movies.biz -primex.club -primonet.pl -primotor.com -primres.ru -primrosejewelry.com -primusmarkets.us -prin.be -princ-ro.com -prince-khan.tk -princeandassociatesrealty.com -princearmy.co -princecss.com -princeroyal.net -princesms.com -princess4d.club -princessbahis1.com -princessbets.com -princessbetsikayet1.com -princesscutengagementringsinfo.info -princessgardentakeaway.com -princessgirisyap.com -princeton-edu.com -princeton.edu.pl -princeton2008.com -princetonwaterpolo.com -principleinvestigator.com -principlez.com -pringlang.cf -pringlang.ga -pringlang.gq -pringlang.ml -prinicad.cf -prinicad.ga -prinicad.gq -print.domains -printala.cf -printala.ga -printala.gq -printala.tk -printcalendar.website -printedposrolls.com -printersni.co.uk -printerstore.shop -printf.cf -printf.ga -printf.ml -printgh.icu -printingchoice.com -printingeveryday.com -printlang.com -println.fun -printlu.recipes -printofart.ru -printosaurus.org -printphotos.ru -printsomemore.com -printsui.xyz -printvastra.com -priobx.com -priobx.net -priokfl.gr -priorfiscalshake.site -prioritypaydayloans.com -prioritysharpener.xyz -priorityxn5.com -priorlearningassessment.org -prisellels.icu -prisessifor.xyz -prismgp.com -prismlasers.tk -prisonerresources.com -prisongarde.com -prisonnews.net -pristinenaturecourse.com -pristineused.com -pristupozhireniya.ru -prity.org -priv.beastemail.com -priv8dns.net -privacy-mail.top -privacy-protect-online.com -privacy.net -privacygirl.com -privacygladiators.us -privacyharbour.com -privacymailshh.com -privacyscores.com -privacywi.com -privatdemail.net -private-investigator-fortlauderdale.com -private-mail.pro -private-mail.se -private-top-speed-webs.club -private-tours-croatia.info -private.kubuntu.myhomenetwork.info -private33.com -privatebag.ml -privateclosets.com -privateembassy.club -privateeyemarketing.biz -privategardenhemp.com -privategoldbanking.com -privatehost.xyz -privateinternetaccessz.com -privateinvest.me -privateinvestigationschool.com -privatemail.in -privatemailinator.nl -privatemassage.ru -privateme.site -privatemitel.cf -privatemitel.ml -privatemusicteacher.com -privateprofileviewerforinsta.com -privatesent.tk -privebet7.com -privebet9.com -privilege.ru -privilegebuzios.com -privmag.com -privseco.com -privy-mail.com -privy-mail.de -privyinternet.com -privyinternet.net -privymail.de -privyonline.com -privyonline.net -prixfixeny.com -prixfor.com -priyaanjalirai.us -prize4d.net -prizebaco.com -prizeboxes.life -prizepl.icu -prizes-for-you.life -prizes-place-here16.life -prizes-place-here19.life -prizesli.icu -prizeslift.com -prizmabet31.com -prizmabet33.com -prizmabet34.com -prizmabet36.com -prizmabet41.com -prizmabet43.com -prizmabet44.com -prizmabet45.com -prizmabet46.com -prizmabet47.com -prizmabet48.com -prizmabet49.com -prizmabet54.com -prlinkjuicer.info -prmail.top -prmin.ru -prn18.fun -prn18.space -prn18.website -prn90.online -prnewsnodes.com -prnvid.fun -prnvid.online -prnvid.site -prnvid.space -prnvid.website -pro-baby-dom.ru -pro-expert.online -pro-files.ru -pro-hindey.ru -pro-investlending.com -pro-ribak.ru -pro-salomon.ru -pro-stg.com -pro-stringers-shop.com -pro-tab.site -pro-tag.org -pro-turism.ru -pro-turisto.ru -pro-zakony.ru -pro.cloudns.asia -pro.iskba.com -pro100girl.ru -pro100magazine.ru -pro100sp.ru -pro2mail.net -pro33.icu -proactivechirowellness.net -proamulet.ru -prob.icu -probaseballfans.net -probatelawarizona.com -probbox.com -probegarage.com -probestbuyshop.ru -probestsales.online -probiv.xyz -probizemail.com -problematist.best -problemreactionsolution.today -problemreactionsolution.xyz -probotix.biz -probowlvoting.info -probowlvoting2011.info -probrali.cf -probrali.ga -probrali.ml -proc.icu -procesbrakorazvod.xyz -prochmalgvi.ml -prochmalgvi.tk -prochorpol.tk -procrackers.com -procturksen.ga -procturksen.ml -procturksen.tk -procurelikestuff.com -procvetaeva.ru -prod-factory-official.ru -prodavcazaschit.xyz -prodaza-avto.kiev.ua -prodence.com -prodercei.cf -prodercei.ga -prodercei.gq -prodercei.ml -prodercei.tk -prodesign.codes -prodigyproject.site -prodigysolutionsgroup.net -prodizain.site -prodleskea.cf -prodleskea.ga -prodleskea.tk -prodmail.net -prodmorlooo.cf -prodmorlooo.gq -prodmorlooo.ml -prodojiz.ga -prodojiz.gq -prodojiz.ml -prodotype.com -produatthe.cf -produatthe.gq -produatthe.tk -producerow.xyz -product-27.ru -productdealsonline.info -productemails.info -productevo.com -productfeedmanagement.com -producti-online-pro.com -production4you.ru -productosesotericos.cl -productpacking.com -productrdr.com -productzf.com -produktu.ru -produtosdevendas.online -proeasyweb.com -proefhhnwtw.pl -proek-tmebel.ru -proektsro.ru -proelectrum.com -proemail.ml -proemlak.com -proeng.se -proexpertonline.ru -profane.ru -profast.top -profcsn.eu -profeocn.pl -profeocnn.pl -profesional.ovh -profesjonalne-pozycjonowanie.com -profesorsaracoglu.com -professecrets.space -professionaldentistfinder.com -professionalseoservicesuk.com -professionegommista.com -professionneldumail.com -professoruniforms.com -profetish.ru -proffkraski.ru -profftaff.website -profi-bot.ru -profibooks.site -profile.cd -profile3786.info -profilelinkservices.com -profileliving.com -profilewatcher.website -profiliebakankisiler1.club -profilific.com -profinin.cf -profinin.ga -profinin.ml -profinin.tk -profissaomaquiadora.com -profit-kopiarki.com -profit-mats.ru -profit-pozycjonowanie.pl -profit.idea-profit.pl -profitableroimetrics.com -profitbet.asia -profitcheetah.com -profitindex.ru -profitresult.su -profitresult.tech -profitsave.online -profitsmaximizer.net -profituniversal.net -profitxtreme.com -profizum.ru -profmistde.cf -profmistde.ga -profmistde.gq -profound.cloud -profrasound.cf -profrasound.ga -profrasound.gq -profrasound.ml -profrasound.tk -profriend.ru -proftippers.online -proftruck.ru -profwatereco.ru -progameonline.ru -progardens.website -progdaly.cf -progdaly.gq -progdaly.ml -progdaly.tk -progefel.cf -progefel.ga -progefel.gq -progefel.ml -progem.pl -progestasert.info -progetti.rs -progiftstore.org -prognozmk.ru -progondola.xyz -progonrumarket.ru -progps.rs -programacomoemagrecer.org -programmaperspiarecellulari.info -programmeimmobilier-neuf.org -programmermail.tk -programmerov.net -programmingant.com -programmingtree.ml -programmiperspiarecellulari.info -programmispiapercellulari.info -programmymets.ru -programpit2013rok.pl -programtv.edu.pl -progrdessive.com -progrespolska.net -progressi8ve.com -progressive.tools -progressiveenvironment.com -progressiveenvironments.com -progressproduction.org -prohost24.ru -prohostadvice.website -proindia.tk -proinfomaster.ru -projavys.gq -projavys.ml -projavys.tk -project-enem.biz -project-warcraft.online -project-xhabbo.com -projectcl.com -projectearth.earth -projectgift.com -projectgold.ru -projecthollandia.shop -projectku.me -projectmike.pl -projector-replacement-lamp.info -projectoxygen.com -projectqq59.xyz -projectred.ru -projectsaam.com -projectsam.net -projectsgrid.com -projekt.blue -projekte-ssl.com -projektse.se -projekty.com -projektysamochodowe.pl -projexpartners.com -projeyonetimdanismanligi.xyz -projeyonetimegitimi.xyz -projmenkows.cf -projmenkows.ga -projmenkows.gq -projmenkows.ml -projmenkows.tk -prokarate.club -proknowsphoto.com -prol.icu -prolagu.pro -prolifepowerup.com -prolimeserver.com -proljiggbo.gq -proljiggbo.ml -proljiggbo.tk -proll.love -prom-tech.info -promail.net -promail.site -promail1.net -promail9.net -promaild.com -promaill.com -promails.xyz -promailsite.info -promailt.com -promaintenancegroupcleans.com -promdresses-short.com -promedcostarica.net -promedicales.com -promenadahotel.pl -prometheusmedia.xyz -promin-33.com -prominentapp.com -promisetoact.info -promisetoact.org -promisingartists.org -promist-sa.com -promistral.website -promkat.info -promo-10let.online -promo-claim.com -promo-msk.com -promo10let.online -promocioncentro24.com -promocionesenhuelva.com -promocionesgama.xyz -promocionespublicidad.com -promocjawnecie.pl -promocod.space -promocongo.cd -promoesperta.live -promofessional.com -promogsi.cf -promogsi.ga -promogsi.gq -promogsi.ml -promogsi.tk -promoguven.xyz -promokod-lamoda.ru -promoo.host -promoo.space -promoo.website -promoonline.info -promosbc.com -promosbcbet.net -promosbclive.com -promosegur.com -promosegur.org -promosfer.com -promot.site -promotemd.com -promotime.com -promotion-seo.net -promotionalcoder.com -promotionalproducttreats.icu -promotor.website -promotzy.com -promovizio.com -promplast-okna.ru -promptly700.com -prompttext.me -promres.info -promsky.ru -promstroy76.ru -promtmt.ru -promusicfans.com -promyscandlines.pl -pronailz.com -prongl.pw -pronkede.cf -pronkede.ga -pronkede.gq -pronkede.ml -pronkede.tk -prono-soft.net -pronosoft.org -pronouns.org -pronovopartners.com -pronto-arklow.com -pronuncil.xyz -proochotu.site -proof-of-works.info -proofcamping.com -proofreadingservices.website -proofreadmydocs.com -proofridg.email -prooftoug.xyz -prooftrading.ru -prooutboardmarine.com -propagandizing586fv.online -propartsupply.com -propay-gate1.com -propay-way1.com -propcleaners.com -propeciaonlinesure.com -propeciaonlinesureone.com -properevod.ru -properpizzafinglas.com -propertybuyersboise.com -propertycockpit.com -propertyfinder.cd -propertyhotspot.co.uk -propertynath.icu -propertyreal.rocks -propertytalking.com -propgenie.com -prophballand.cf -prophballand.ga -prophballand.ml -prophballand.tk -prophecygamesnews.club -propinned.cf -propinned.ga -propinned.gq -propinned.ml -propinned.tk -propoker.vn -proposal-store.site -proppemus.cf -proppemus.ga -proppemus.ml -proppemus.tk -propranolol.website -proprentalsanfrancisco.com -propressa.ru -proprice.co -proprietativalcea.ro -propscore.com -proptrader.site -proq.icu -prorabstroj.ru -prorefit.eu -proremonvse.site -prosalab.ga -prosalab.gq -prosalab.ml -prosalab.tk -prosaransk.ru -prosatdz.com -prosatdz.net -prosatnab.ml -prosatnab.tk -proscaronlinesure.com -proscarprime.com -prosequrity.com -proseriesm.info -prosfereisimera.online -proshopnflfalcons.com -proshopnflravens.com -proshopsf49ers.com -prosingly.best -prositeportal.ru -proslowo.home.pl -prosmail.info -prosolutiongelreview.net -prosolutionpillsreviews.org -prosorm.se -prosperformula.com -prosquashtour.net -prosselte.ga -prosselte.gq -prosselte.ml -prosselte.tk -prostatinor.com -proste-przetargi.pl -prostitutki-kaliningrad.xyz -prostitutki-kaluga-sochnie.xyz -prostitutki-pskov.xyz -prostitutki-s-p-b.ru -prostitutki-saransk.xyz -prostitutki-saratov.xyz -prostitutki-tambov.xyz -prostitutki-tomsk.xyz -prostitutki-tver.xyz -prostitutki-tyumen.xyz -prosto-loto.press -prosto-loto.website -prosto-videohd.ru -prosto-znai.ru -prostoeseo.ru -prostonor.net -prostylex.net -prostypodatek.info -protechskillsinstitute.com -protect-download.com -protection-0ffice365.com -protectionmanagers.com -protectmyemail.xyz -protectorngbayan.ph -protectrep.com -protectsrilanka.com -protectsyourmortgage.com -protectthechildsman.com -protectyourhealthandwealth.com -protein-krasnodar.ru -protein-razves.ru -protein-saratov.ru -proteintopper.com -protelpeca.ru -protempmail.com -protestant.com -protestly.com -protestore.co -protileroofing.com -protipsters.net -protivirus.ru -proto1rnfg.com -proto2mail.com -protologism.com -proton-team.com -protonemach.waw.pl -protongras.ga -protosale.ru -protovu.xyz -protrendcolorshop.com -proudtra.xyz -proulx.site -prousability.ru -provable.cash -provamail.com -provebas.icu -provera.website -provetable.us -provewai.xyz -provewais.xyz -providenceiloilo.com -providencenailsalons.com -providencestartups.com -provident-pl.info -providentassetmanagement.org -providentwniosek.info -providentwnioski.pl -provides.credit -providier.com -providkwtv.space -provinceandstatepermitting.com -provlst.com -provmail.net -provodow-net.ru -provsoftprov.cf -provsoftprov.ga -provsoftprov.gq -provsoftprov.ml -prow.cf -prow.ga -prow.gq -prow.ml -prowerl.com -prowessed.com -prowickbaskk.com -proxala.shop -proxivino.com -proxsei.com -proxy-java.fun -proxy.dreamhost.com -proxy1.pro -proxymail.eu -proxyparking.com -proxysite.rocks -proyectoser.org -proyectosoft.com -proz.icu -prplunder.com -prprtv.com -prrassiigggrram.club -prrply.com -prrqll.site -prs7.xyz -prsg333.com -prsg33c.com -prsg3ab.com -prsku.com -prsnly.com -prspaybooking90.net -prsym.info -prtaxisy.info -prtnews.com -prtnx.com -prtpoker.club -prtpoker.site -prtpoker.xyz -prtshr.com -prtxw.com -prtz.eu -pruchcongpo.cf -pruchcongpo.ga -pruchcongpo.gq -pruchcongpo.ml -prudesierrasheen.site -prudigital.org -prumrstef.pl -prurls.com -prwmqbfoxdnlh8p4z.cf -prwmqbfoxdnlh8p4z.ga -prwmqbfoxdnlh8p4z.gq -prwmqbfoxdnlh8p4z.ml -prwmqbfoxdnlh8p4z.tk -prxnzb4zpztlv.cf -prxnzb4zpztlv.ga -prxnzb4zpztlv.gq -prxnzb4zpztlv.ml -prxnzb4zpztlv.tk -pryamieruki.ru -pryeqfqsf.pl -pryfix.com -prymer.com -prywatnebiuro.pl -przeciski.ovh -przepis-na-pizze.pl -przeprowadzam.eu -przezsms.waw.pl -przyklad-domeny.pl -ps-gr5-79-online.com -ps-nuoriso.com -ps160.mpm-motors.cf -ps21cn.com -ps2emulatorforpc.co.cc -ps3pay.ru -ps4pay.ru -ps4plus.tk -ps5-store.ru -ps5.community -ps9000.com -psa18.com -psacake.me -psaleshow.site -psalmody.site -psasey.site -psb55.space -psbet365.best -psbzu8.com -psccodefree.com -psdin.ru -psdz.us -psecu.xyz -psellhit.online -psettinge5.com -pseudobslq.site -pseudoname.io -pseudorlhc.ru -psfaux.com -psfy.net -psg-45-r.top -psg45r.one -psgr579online.com -psgsro.xyz -psh.me -psh15.info -psicanalisi.org -psiek.com -psihologiyadushi.ru -psikus.pl -psilocmezv.space -psilocybindispensary.com -psilocybindosing.com -psilocybinfacts.com -psilocybintech.com -psilotech.com -psiolog.com -psirens.icu -psk3n.com -pskov.website -psles.com -pslog.ru -psmi.club -psminds.online -psnator.com -psncl.com -psncodegeneratorsn.com -psnplus.cf -psnplus.ml -pso2rmt.com -pso365.org -psomiadis.shop -psoriasisfreeforlifediscount.org -psoriasisvrij.online -psoxs.com -pspcolombia.com -pspinup.com -psppaygate.info -psppaygate.org -pspvitagames.info -psqf.xyz -psr1225.club -pssection9.online -pstv.live -psw.kg -psyans.ru -psych.social -psychclinicsmd.com -psychdegreedeal.xyz -psychdegreenow.xyz -psychedelicwarrior.xyz -psychiatragabinet.pl -psychiccrystalsunshine.com -psychicsteve.net -psychmdconsulting.com -psychmdus.com -psychmdus.org -psychmedicalclinics.com -psycho.com -psychodeli.co.uk -psychological.fun -psychologist-prof.ru -psychologize694rf.online -psychologues-clermont-ferrand.com -psyhicsydney.com -psyiszkolenie.com -psykosis.com -psylrd.com -psymedic.ru -psymejsc.pl -psyonix.net -pszxxh.us -pt-bt.com -pt-cto.net -pt-cto.org -pt-games.com -pt062.site -pt1-podo.com -pt2-podo.com -pt3-ggle.com -ptaddfan.com -ptautomation.us -ptbm.net -ptc.vuforia.us -ptcassino.com -ptcji.com -ptcks1ribhvupd3ixg.cf -ptcks1ribhvupd3ixg.ga -ptcks1ribhvupd3ixg.gq -ptcks1ribhvupd3ixg.ml -ptcks1ribhvupd3ixg.tk -ptcsites.in -ptcto.net -pterippi.info -pterodactyl.email -ptfawyuwk.shop -ptgeua.us -ptgptgmdzsmqtutqg.ru -ptgtar7lslnpomx.ga -ptgtar7lslnpomx.ml -ptgtar7lslnpomx.tk -pth82.space -pthoe.live -pticamp.com -ptilonorhynchinae.best -ptimesmail.com -ptimtailis.cf -ptimtailis.ga -ptimtailis.gq -ptimtailis.tk -ptjdthlu.pl -ptll5r.us -ptmm.com -ptolbv.info -ptpigeaz0uorsrygsz.cf -ptpigeaz0uorsrygsz.ga -ptpigeaz0uorsrygsz.gq -ptpigeaz0uorsrygsz.ml -ptpigeaz0uorsrygsz.tk -ptpomorze.com.pl -ptprosetown.com -ptsdcure.us -ptsdhelp.club -ptsos.com -ptsystemsandautomation.com -ptszxx.com -pttj.de -pttmdtquszututqu.ru -ptulce.icu -ptumpa.com -ptv98667.xyz -ptvans.com -ptxaez.us -ptyuch.ru -ptzprint.ru -puabezwzj.shop -puapickuptricksfanboy.com -puaqbqpru.pl -pub-mail.com -pubb.site -puberties.com -puberties.net -pubfgyh.com -pubfilmz.com -pubgasdw.xyz -pubgbets-login.us -pubgeresnrpxsab.cf -pubgeresnrpxsab.ga -pubgeresnrpxsab.gq -pubgeresnrpxsab.ml -pubgeresnrpxsab.tk -pubges.com -pubgm.website -pubgmlive.shop -pubgmplay.shop -pubjye.us -publeocasa.com -publi.innovatio.es -publi.live -publicadjusterinfo.com -publicdomain.graphics -publichosting.org -publichub-vpn.net -publicobituary.com -publicreports.net -publicreports.org -publicschooltalk.com -publictracker.com -publish316.com -pubmail886.com -pubnrez.com -pubs.ga -pubwarez.com -puchimail.club -puchmlt0mt.ga -puchmlt0mt.gq -puchmlt0mt.tk -puchong.info -puchong.org -puckingstinks.com -puclyapost.ga -puclyapost.ml -pucp.de -pudel.in -pudkg.live -pudra-style.ru -puds5k7lca9zq.cf -puds5k7lca9zq.ga -puds5k7lca9zq.gq -puds5k7lca9zq.ml -puds5k7lca9zq.tk -pudweb.com -pudxe.com -puebloareaihn.org -pueblosabandonados.com -puegauj.pl -puerentdeepf.ga -puerto-nedv.ru -puertoricodmv.com -puevwwfo.shop -pufcava.cf -pufcava.ga -pufcava.gq -pufcava.ml -puffandscruff.com -puffsreworksheet.site -puglieisi.com -puh4iigs4w.cf -puh4iigs4w.ga -puh4iigs4w.gq -puh4iigs4w.ml -puh4iigs4w.tk -puhetrade37.xyz -puhetrade8.xyz -puhgva.us -puhovska.ru -puhuleather.com -puibagajunportbagaj.com -puikusmases.info -puipui1012.online -puiw.website -puji.pro -puju.site -puk.us.to -pukaemporium.site -pukeymcpukerson.com -pukifsko.online -pukimay.cf -pukimay.ga -pukimay.gq -pukimay.ml -pukimay.tk -puks.de -pulawski.biz -pulford.ru -pulibetyenigiris.xyz -pulivetv17.com -pulivetv19.com -pullcombine.com -pullmail.info -pullovitos.com -pulltract.info -pulmining.com -pulocasino.com -pulpieve.cf -pulpieve.ga -pulpieve.gq -pulpieve.ml -pulpmail.us -pulsarfinans.ru -pulsarpay.net -pulse-original.ru -pulsedlife.com -pulseofthestreets.com -pulsepad.com -pulverize136es.online -pulwarm.net -pumail.com -pumamaning.cf -pumamaning.ml -pumapumayes.cf -pumapumayes.ml -pumasale-uk.com -pumashopkutujp.com -pumaturkiye.net -pumoe.com -pump-ltd.ru -pumps-fashion.com -pumpwearil.com -pumznyto.shop -puncakyuk.com -punchclose.us -punchhillaryclinton.com -punchlinefitness.com -punchothe.icu -punchratio.buzz -punchs.solutions -punchsl.fun -punchst.xyz -punchyandspike.com -punctal.site -punctuahoud.cf -punctuahoud.gq -punggur.tk -pungkiparamitasari.com -puninformed.com -punisherhq.com -punishly.com -punjabibynatureranelagh.com -punjabihousetakeaway.com -punkass.com -punkexpo.com -punto24.com.pl -puouadtq.pl -puperopres.site -puphemfm.shop -pupiki.online -pupiki.space -pupilaren.email -pupilfeig.us -pupillbpei.space -pupilpa.icu -pupilpri.xyz -pupilsout.icu -pupleld.ru -puppers.world -puppetmail.de -puppy.watch -puppyhome.us -puppyhood.best -puppynames.info -puppyplace.xyz -puppyproduct.com -purati.cf -purati.ga -purati.ml -purati.tk -purcell.email -purchaseaforeclosure.info -purchasight.com -purchasingdvdonline.com -purchasingdvdonline.info -purchasingdvdonline.net -purchasingdvdonline.org -purchasingpatty.com -pure-indian-takeaway.com -pureaucratic.info -pureclean.ltd -purecleanwipes.com -purecollagenreviews.net -pureelectric.ru -purefitness.xyz -puregreencleaning.com.au -puregreencoffeefacts.com -pureindianrathcoole.com -pureindianrush.com -pureindiantakeaway.com -pureism.org -purelogistics.org -purelycasual.com -purelyrics.biz -puremuscleproblogs.com -purenudist.site -pureoxide.net -pureoxide.org -purepsilocin.com -pureseed.store -puressancereview.com -purestagioni.com -puretransgressions.com -pureunderwater.com -purewcms.com -purewhitekidneyx.org -purificadorasmex1.com.mx -purimaslombok.com -purimasresort.com -purism.net -purist.info -puristical.best -puristparty.com -purists.info -puritagpax.space -puritis.org -puritronicde.com.mx -puritronicdemexico.com.mx -puritronicmexicano.com.mx -puritronicmexico.com.mx -puritronicmx.com.mx -puritronicmx2.com.mx -puritronicmxococo2.com.mx -puritunic.com -puriwaki.com -purixmx2000.com -purixmx2012.com -purkz.com -purlvvhz.space -purple.amsterdam -purple.dev -purple.flu.cc -purple.igg.biz -purple.nut.cc -purple.usa.cc -purple.viola.gq -purplea.com -purpleflowerdesignshop.com -purplegracecrafts.com -purpleheartcoffee.com -purplemail.ga -purplemail.gq -purplemail.ml -purplemail.tk -purplepuppy.info -purplest.dev -purposeinvestmentclub.com -purposeinvestor.com -purposeinvestorclub.com -purposeinvestors.com -purposeinvestorsclub.com -purposepottery.com -purselongchamp.net -purseorganizer.me -pursesoutletsale.com -pursesoutletstores.info -purseva11ey.co -pursm.org -purtunic.com -purtus.com -purves-fan.club -puryearlogistics.com -pusakaqq.org -pusclekra.cf -pusclekra.ga -pusclekra.gq -pusclekra.ml -pusclekra.tk -push19.ru -pushbroom.biz -pushbroom.us -pushechkin.ru -pushmojo.com -pushstate.xyz -pushxxx.ru -pushysbikes.bike -pustaka-anime.com -pustakapagi.xyz -pustekuchen.me -pustmati.cf -pustmati.ga -pustmati.gq -pustmati.ml -pustmati.tk -put2.net -putdomainhere.com -putfs6fbkicck.cf -putfs6fbkicck.ga -putfs6fbkicck.gq -putfs6fbkicck.ml -putfs6fbkicck.tk -putinism.org -putlocker-free.site -putlockerfree.biz -putlockerold.com -putlockers1.club -putlook.com -putonyourbigboypants.com -putoshops.site -putrashop.online -putsbox.com -puttana.cf -puttana.ga -puttana.gq -puttana.ml -puttana.tk -puttanamaiala.tk -putthidkr.ga -putthisinyourspamdatabase.com -puttingpv.com -putzmail.pw -puukkoknives.com -puurspa.com -puxyzufi.space -puyenkgel50ccb.ml -puzzlefolk.biz -puzzlespedia.com -puzzspychmusc.cf -puzzspychmusc.ga -puzzspychmusc.tk -pv288.com -pv575.top -pvccbyat.shop -pvccephe.com -pvccephegiydirme.com -pvcfigure.net -pvckomplekt.ru -pvcstreifen-vorhang.de -pvdprohunter.info -pvlnpa.shop -pvmail.pw -pvo-korf.ru -pvokhu.shop -pvoqwm.com -pvqotb.com -pvtnetflix.com -pvvfir2emwv8yoz.xyz -pw-mail.cf -pw-mail.ga -pw-mail.gq -pw-mail.ml -pw-mail.tk -pw.epac.to -pw.flu.cc -pw.igg.biz -pw.islam.igg.biz -pw.loyalherceghalom.ml -pw.mymy.cf -pw.mysafe.ml -pw.nut.cc -pw8999.com -pwbs.de -pwddslwk.shop -pwfwtgoxs.pl -pwjsdgofya4rwc.cf -pwjsdgofya4rwc.ga -pwjsdgofya4rwc.gq -pwjsdgofya4rwc.ml -pwjsdgofya4rwc.tk -pwkosz.pl -pwl7xn.us -pwm0vr.com -pwn-me.org -pwnhome.org -pwodskdf.com -pwodskdf.net -pwopqx.icu -pwp.lv -pwrby.com -pwstory.com -pwt9azutcao7mi6.ga -pwt9azutcao7mi6.ml -pwt9azutcao7mi6.tk -pwvco.us -pwvoyhajg.pl -pwy.pl -pwyc.us -pwyopkfyh.shop -px0dqqkyiii9g4fwb.cf -px0dqqkyiii9g4fwb.ga -px0dqqkyiii9g4fwb.gq -px0dqqkyiii9g4fwb.ml -px0dqqkyiii9g4fwb.tk -px1.pl -px1978.com -px1982.com -px1993.com -px1995.com -px2019.com -px2022.com -px2027.com -px2030.com -px9ixql4c.pl -pxddcpf59hkr6mwb.cf -pxddcpf59hkr6mwb.ga -pxddcpf59hkr6mwb.gq -pxddcpf59hkr6mwb.ml -pxddcpf59hkr6mwb.tk -pxdhx.com -pxenc1.site -pxey8q.us -pxhdtz.icu -pxixc.live -pxjtw.com -pxkejz.site -pxlink.xyz -pxltrck.site -pxqpma.ga -pxtv02fbb830f53fcd46.xyz -pxtv052d46b7e333b664.xyz -pxtv0e80b6e5b469e8dc.xyz -pxtv15c3f2c6e0ce2b37.xyz -pxtv1c4cb8a428306c18.xyz -pxtv2a957f7925521397.xyz -pxtv2ba2369697313665.xyz -pxtv2bcdd23327c95645.xyz -pxtv2d9adfcce7badf9a.xyz -pxtv2da8c6b4f6c5f609.xyz -pxtv47938c1abc5b0fb2.xyz -pxtv4975b124e768c0c5.xyz -pxtv56c76c80b948b92a.xyz -pxtv5a9713e9f4884e77.xyz -pxtv5f3e9d6d504d3747.xyz -pxtv76d86c9fb5842817.xyz -pxtv7ffb0688ed4b62d3.xyz -pxtv92b6bc897bd3ae7e.xyz -pxtv9d1d82bf02769321.xyz -pxtv9fc0a7ba354c7414.xyz -pxtv9fdb408c839f7bef.xyz -pxtvaca2f59556310d1a.xyz -pxtvb1cd59241d2ecad0.xyz -pxtvb41725948393cdb1.xyz -pxtvb7ecc35998763423.xyz -pxtvba9f33264c730559.xyz -pxtvc43ceea8c19f8b8f.xyz -pxtvc730cd765f8ccaa6.xyz -pxtvcdf107c513b6bbed.xyz -pxtvce6bfea0acc199ac.xyz -pxtvd2d53c5962145210.xyz -pxtvd4b4f44519b19133.xyz -pxtvd57d8c47cdc4d157.xyz -pxtvd858ed4383c32edf.xyz -pxtvd8d2938503a8b98b.xyz -pxtvda22249eee0a5404.xyz -pxtve0a673c78100922a.xyz -pxtve75a99c51a60b4bf.xyz -pxtvf8512d95d986b2c2.xyz -pxtvfd5b6b0fb2c72eca.xyz -pxtvff80d85f158b627e.xyz -pxzsonxu.shop -py0s.ru -py0x.icu -pyatigorskhot.info -pydzzs.com -pyekwl1.com -pyevr6.us -pyffqzkqe.pl -pygmypuff.com -pyhtml.com -pyiauje42dysm.cf -pyiauje42dysm.ga -pyiauje42dysm.gq -pyiauje42dysm.ml -pyiauje42dysm.tk -pyiev.com -pyjrn.us -pykegod.ml -pyksw.icu -pylehome.com -pylondata.com -pylonhub.com -pymagd.us -pymehosting.es -pymjj.com -pymjrhwu.shop -pynbwr.us -pyncer.org -pynsak.us -pyongyanglottery.info -pyribby.live -pyrogram.ru -pyrokiwi.xyz -pyrolatpha.space -pyroleech.com -pyromail.info -pyrozu.xyz -pyrrhujyuc.space -pystnv.site -pytehestvie.ru -pythoncloud.website -pythondemy.online -pywicoo.xyz -pyxyvy.info -pyymool.com -pyyzxo.us -pyzaro.info -pyzy8.com -pyzy9.com -pzcsy.us -pzfgef.us -pzhpckj.com -pzklt.com -pzlhjgbud.shop -pzpitjxi.shop -pzu.bz -pzxuva.site -pzznqcgcc.shop -q-kassa.online -q-kassa.ru -q-profitsystem.site -q-salex.online -q-urotrin.ru -q-world.online -q.new-mgmt.ga -q.polosburberry.com -q.xtc.yt -q0bcg1druy.ga -q0bcg1druy.ml -q0bcg1druy.tk -q0bhn.icu -q11toto.online -q1775.com -q1fdsfrtu.xyz -q1lqeo.info -q27uo.com -q2b.ru -q2gfiqsi4szzf54xe.cf -q2gfiqsi4szzf54xe.ga -q2gfiqsi4szzf54xe.gq -q2gfiqsi4szzf54xe.ml -q2gfiqsi4szzf54xe.tk -q2lofok6s06n6fqm.cf -q2lofok6s06n6fqm.ga -q2lofok6s06n6fqm.gq -q2lofok6s06n6fqm.ml -q2lofok6s06n6fqm.tk -q2o.events -q2o.life -q2o.live -q2o.online -q2oapp.com -q2w6b.us -q2xfln.us -q314.net -q33ddd.com -q4heo7ooauboanqh3xm.cf -q4heo7ooauboanqh3xm.ga -q4heo7ooauboanqh3xm.gq -q4heo7ooauboanqh3xm.ml -q4heo7ooauboanqh3xm.tk -q5kb8t.us -q5prxncteag.cf -q5prxncteag.ga -q5prxncteag.gq -q5prxncteag.ml -q5prxncteag.tk -q5rbp7.us -q5vm7pi9.com -q5wx1t.host -q65pk6ii.targi.pl -q6efmm.host -q6extec8.com -q6suiq1aob.cf -q6suiq1aob.ga -q6suiq1aob.gq -q6suiq1aob.ml -q6suiq1aob.tk -q6ts3c.us -q74.ru -q7hccq.us -q7t43q92.com -q7t43q92.com.com -q7vwu0.us -q8cbwendy.com -q8ec97sr791.cf -q8ec97sr791.ga -q8ec97sr791.gq -q8ec97sr791.ml -q8ec97sr791.tk -q8fcmf.com -q8fqrwlxehnu.cf -q8fqrwlxehnu.ga -q8fqrwlxehnu.gq -q8fqrwlxehnu.ml -q8fqrwlxehnu.tk -q8i4v1dvlsg.ga -q8i4v1dvlsg.ml -q8i4v1dvlsg.tk -q8z.ru -q9094.com -q99919.com -q9byhh.us -q9yepn.us -q9zqpu.us -qa.team -qaalby.com -qaaw.ga -qablackops.com -qabuka.us -qabvwr.online -qacmemphis.com -qacquirep.com -qacyvy.info -qaetaldkgl64ygdds.gq -qafatwallet.com -qafrem3456ails.com -qag.us -qaioz.com -qaiwm.us -qakexpected.com -qalbi.ru -qalirar.site -qamisy.com -qampxu.us -qantas.rentals -qaqco.com -qartoskd.shop -qasd2qgznggjrl.cf -qasd2qgznggjrl.ga -qasd2qgznggjrl.ml -qasd2qgznggjrl.tk -qasti.com -qatarbahis12.com -qatqxsify.pl -qatw.net -qaum.org -qav59.xyz -qaxinsuoro.pro -qazulbaauct.cf -qazulbaauct.ga -qazulbaauct.gq -qazulbaauct.ml -qazulbaauct.tk -qb-cms.com -qb04x4.badcreditcreditcheckpaydayloansloansloanskjc.co.uk -qb10em.info -qb23c60behoymdve6xf.cf -qb23c60behoymdve6xf.ga -qb23c60behoymdve6xf.gq -qb23c60behoymdve6xf.ml -qb23c60behoymdve6xf.tk -qbaydx2cpv8.cf -qbaydx2cpv8.ga -qbaydx2cpv8.gq -qbaydx2cpv8.ml -qbaydx2cpv8.tk -qbbus.club -qbesar.net -qbex.pl -qbfree.us -qbgmvwojc.pl -qbi.kr -qbikgcncshkyspoo.cf -qbikgcncshkyspoo.ga -qbikgcncshkyspoo.gq -qbikgcncshkyspoo.ml -qbikgcncshkyspoo.tk -qbjnx.live -qblti0.us -qbmail.bid -qbnifofx.shop -qbooker.pro -qbotrade.top -qbpgqo.us -qbqbtf4trnycocdg4c.cf -qbqbtf4trnycocdg4c.ga -qbqbtf4trnycocdg4c.gq -qbqbtf4trnycocdg4c.ml -qbrejwmo.shop -qbsef.us -qbt9.club -qbtl2t.com -qbtong.icu -qbuog1cbktcy.cf -qbuog1cbktcy.ga -qbuog1cbktcy.gq -qbuog1cbktcy.ml -qbuog1cbktcy.tk -qbyccoxi.shop -qbyyb.com -qc.to -qc0lipw1ux.cf -qc0lipw1ux.ga -qc0lipw1ux.ml -qc0lipw1ux.tk -qcddd.com -qcgj333.com -qcgowz.com -qciesgjp.shop -qcjrx.us -qckn.net -qclothesbest.site -qclsrecruitment.com -qcmail.qc.to -qcmgem.rest -qcolone.icu -qcrtkdpas.xyz -qcuwqyxky.ga -qcvsziiymzp.edu.pl -qczjaj.gq -qd139x.us -qd9ews.info -qdbhu.com -qddkztk.com -qdebhyy.com -qdiian.com -qdjlwqdj.space -qdjlwqdj.xyz -qdmug1.site -qdpfbyy.com -qdpjw.com -qdqsedu.com -qdroadviser.com -qdrwriterx.com -qdt.us -qdv9c0.us -qdwvzq.site -qdyxjshs.com -qe41hqboe4qixqlfe.gq -qe41hqboe4qixqlfe.ml -qe41hqboe4qixqlfe.tk -qeabluqwlfk.agro.pl -qeaxluhpit.pl -qedwardr.com -qefmail.com -qege.site -qeispacesq.com -qeko.site -qelawi.xyz -qembrace.com -qenori.info -qeotxmwotu.cf -qeotxmwotu.ga -qeotxmwotu.gq -qeotxmwotu.ml -qeotxmwotu.tk -qepad1.site -qepn5bbl5.pl -qeps.de -qeqrtc.ovh -qer3f4.stream -qervougxed.pro -qesvt.us -qeuuva.us -qeva.site -qewase.info -qewaz21.eu -qewyehthuh.website -qewzaqw.com -qexdb6.us -qextracts.com -qf1tqu1x124p4tlxkq.cf -qf1tqu1x124p4tlxkq.ga -qf1tqu1x124p4tlxkq.gq -qf1tqu1x124p4tlxkq.ml -qf1tqu1x124p4tlxkq.tk -qf669.top -qf7xkp.info -qfhh3mmirhvhhdi3b.cf -qfhh3mmirhvhhdi3b.ga -qfhh3mmirhvhhdi3b.gq -qfhh3mmirhvhhdi3b.ml -qfhh3mmirhvhhdi3b.tk -qfmwvcny.shop -qfqpy.com -qfrsxco1mkgl.ga -qfrsxco1mkgl.gq -qfrsxco1mkgl.ml -qfsda.site -qfwwdt.site -qg2f9r.com -qg8zn7nj8prrt4z3.cf -qg8zn7nj8prrt4z3.ga -qg8zn7nj8prrt4z3.gq -qg8zn7nj8prrt4z3.ml -qg8zn7nj8prrt4z3.tk -qgaff.com -qgfkslkd1ztf.cf -qgfkslkd1ztf.ga -qgfkslkd1ztf.gq -qgfkslkd1ztf.ml -qghdqj.icu -qgheoyttp.ga -qgriffith.com -qgrscz.ru -qguc.xyz -qhdpyzm.com -qhesnwv.com -qhexkgvyv.pl -qhfc48-mail.xyz -qhhqtaqi.shop -qhhub.com -qhi.us -qhidme.icu -qhjpa.live -qhjq5l.site -qhm59.xyz -qhqhidden.com -qhrgzdqthrqocrge922.cf -qhrgzdqthrqocrge922.ga -qhrgzdqthrqocrge922.gq -qhrgzdqthrqocrge922.ml -qhrgzdqthrqocrge922.tk -qhstreetr.com -qhwclmql.pl -qhzfjt.com -qi2i.com -qi3ivu.com -qi569.com -qianaseres.com -qiangdan168.com -qianglong.asia -qiantangylzc.com -qiaoleng.com -qiaopipi.xyz -qiarog.us -qiaua.com -qibl.at -qibode.site -qicgco.com -qidld.live -qifunue.space -qightyuhed.pro -qiglqgzg.shop -qigongglobalhub.com -qigongglobalwisdom.com -qihceoils.shop -qihwfscc.shop -qijobv.us -qikbeet.com -qikhnv.rest -qimican.xyz -qimla.us -qingbiletherapeutics.biz -qingbiletherapeutics.info -qingdm.com -qinghaidgw.com -qinhuangyuan.com -qinicial.ru -qinspections.online -qinth.today -qiodinlxed.pro -qip-file.tk -qipaomei.com -qipdcv.icu -qipmail.net -qipufy.info -qiq.us -qirzgl53rik0t0hheo.cf -qirzgl53rik0t0hheo.ga -qirzgl53rik0t0hheo.gq -qirzgl53rik0t0hheo.ml -qirzgl53rik0t0hheo.tk -qisdo.com -qisoa.com -qiuaja.info -qiubitewang.com -qiuchuchu.com -qiufanyi.com -qiukui.com -qiupey.com -qiuxiadyy.info -qiviamd.pl -qiwi-pay.xyz -qiwicasino.online -qiwigame.com -qiwikoshelek.com -qiyunwuliu.com -qiziriq.uz -qj59.xyz -qj97r73md7v5.com -qjbggr.icu -qjipim.tokyo -qjnnbimvvmsk1s.cf -qjnnbimvvmsk1s.ga -qjnnbimvvmsk1s.gq -qjnnbimvvmsk1s.ml -qjnnbimvvmsk1s.tk -qjuhpjsrv.pl -qkb862.com -qkbzptliqpdgeg.cf -qkbzptliqpdgeg.ga -qkbzptliqpdgeg.gq -qkbzptliqpdgeg.ml -qkbzptliqpdgeg.tk -qkc558.com -qkecil.net -qkerbl.com -qkjkgv.shop -qkjmkd.fun -qkjmrq.fun -qkk59.xyz -qkl65.host -qkohl.com -qkpmqs.fun -qkqmds.fun -qksmkg.fun -qksmpt.fun -qksmxn.fun -qktmcx.fun -qktmkn.fun -qkw4ck7cs1hktfba.cf -qkw4ck7cs1hktfba.ga -qkw4ck7cs1hktfba.gq -qkw4ck7cs1hktfba.ml -qkw4ck7cs1hktfba.tk -qkx18.xyz -qkxmhl.fun -ql2qs7dem.pl -ql66dh.xyz -ql9yzen3h.pl -qlaula.ga -qlaula.ml -qlaula.tk -qlearer.com -qlenw.com -qlevjh.com -qlfshop.store -qlhnu526.com -qlijgyvtf.pl -qlisda.monster -qlivecasino.com -qlnajv.site -qlniocsnvn.com -qlnk.fun -qloob.net -qlqprv.us -qlrh9b.com -qlrp5.us -qlt2jf.online -qltuo1.site -qluiwa5wuctfmsjpju.cf -qluiwa5wuctfmsjpju.ga -qluiwa5wuctfmsjpju.gq -qluiwa5wuctfmsjpju.ml -qluqua.ru -qluwxfa.site -qlvxfbzz.pro -qlwivwia.shop -qm1717.com -qm3370.com -qmail.com -qmail2.net -qmailers.com -qmails.loan -qmails.online -qmails.pw -qmails.services -qmails.website -qmails.world -qmails.xyz -qmailshop.com -qmailtgs.com -qmfi4i.us -qmhzh.site -qmj38.us -qmoil.com -qmperehpsthiu9j91c.ga -qmperehpsthiu9j91c.ml -qmperehpsthiu9j91c.tk -qmrbe.com -qmsgvx.site -qmtrdcxr.shop -qmtvchannel.co.uk -qmwparouoeq0sc.cf -qmwparouoeq0sc.ga -qmwparouoeq0sc.gq -qmwparouoeq0sc.ml -qmwparouoeq0sc.tk -qmzbdnnjtpez.com -qn5egoikcwoxfif2g.cf -qn5egoikcwoxfif2g.ga -qn5egoikcwoxfif2g.gq -qn5egoikcwoxfif2g.ml -qn5egoikcwoxfif2g.tk -qnb.io -qnbz8.com -qnetd.live -qnglisauro.pro -qnhwc.info -qninnng.best -qnksojyh.shop -qnkznwsrwu3.cf -qnkznwsrwu3.ga -qnkznwsrwu3.gq -qnkznwsrwu3.ml -qnkznwsrwu3.tk -qntrvx.xyz -qnuqgrfujukl2e8kh3o.cf -qnuqgrfujukl2e8kh3o.ga -qnuqgrfujukl2e8kh3o.gq -qnuqgrfujukl2e8kh3o.ml -qnuqgrfujukl2e8kh3o.tk -qnzkugh2dhiq.cf -qnzkugh2dhiq.ga -qnzkugh2dhiq.gq -qnzkugh2dhiq.ml -qnzkugh2dhiq.tk -qocdzm.us -qocya.com -qodrcf.icu -qofocused.com -qogipo.info -qoika.com -qoiolo.com -qokpdm.shop -qokuti.info -qonfident.com -qonmprtxz.pl -qonuxo.info -qoo-10.id -qopls.live -qopmail.com -qopxlox.com -qoqb0.us -qorikan.com -qortu.com -qoshnrdb.xyz -qot.us -qovu.site -qovwi.us -qovygq.icu -qoxurohi.cf -qoz7xct.xyz -qp-tube.ru -qp11111.net -qp22222.net -qp4.bet -qp87fb.us -qpalong.com -qpapa.ooo -qphdbg.icu -qphdlk.icu -qpi8iqrh8wtfpee3p.ga -qpi8iqrh8wtfpee3p.ml -qpi8iqrh8wtfpee3p.tk -qplh.us -qpptplypblyp052.cf -qpsrefugees.com -qpulsa.com -qpwnwmvo.shop -qpxxis.com -qq.my -qq152.com -qq163.com -qq164.com -qq1775.com -qq234.com -qq2889.team -qq323.com -qq3889.group -qq4889.org -qq568.top -qq57822.com -qq59.xyz -qq5901.xyz -qq705358368.xyz -qq77jj.com -qq77vv.com -qq88gg.com -qq88oo.com -qq8hc1f9g.pl -qq9827.com -qq998.xyz -qq99bb.com -qq99cc.com -qq99hh.com -qq99kk.com -qq99nn.com -qq99tt.com -qq99zz.com -qqaa.com -qqaa.zza.biz -qqao.net -qqb21.org -qqbolaku.net -qqcmail7.com -qqcmail8.com -qqcv7f2.com -qqfullbet.club -qqgenk.com -qqgerbangemas.space -qqhokibola.xyz -qqhokipoker.org -qqig88.info -qqipgthtrlm.cf -qqipgthtrlm.ga -qqipgthtrlm.gq -qqipgthtrlm.ml -qqipgthtrlm.tk -qqj84n.us -qqketua.com -qqmail.ir -qqmba122.top -qqmdu4.us -qqmegawin77d.xyz -qqmenang101.top -qqmimpi.com -qqmm518.com -qqole.org -qqowl.club -qqpj.org -qqqwwwil.men -qqrss.net -qqservice.com -qqspot.com -qqspot.net -qqsssj.com -qqturkiye.com -qqwtrnsqdhb.edu.pl -qqzymail.win -qr-informatie.online -qr6g.com -qraround.com -qrc1t.us -qreciclas.com -qrezkqqen.shop -qrlmiv.com -qrmte1.site -qrno1i.info -qrnoxwin.com -qrohoteles.com -qropspensionadvice.com -qropspensiontransfers.com -qrowded.com -qrrdja.info -qrrnc.com -qrryxk.site -qrs3un.us -qrtise.com -qrtjbzogb.gq -qrucav.com -qrudh.win -qrvdkrfpu.pl -qrxqdwmw.shop -qs1986.com -qs2k.com -qs34.com -qsb5.us -qsc95.com -qsdqsdqd.com -qsdt.com -qseminarb.com -qsg9ne.us -qsjs998.com -qsl.ro -qssapps.website -qsxheepv.shop -qt-top.com -qt.dprots.com -qt1.ddns.net -qtask.pro -qtauckland.com -qtc.org -qtcairns.com -qtellaplaza.com -qtftxn.com -qtfxtbxudvfvx04.cf -qtfxtbxudvfvx04.ga -qtfxtbxudvfvx04.gq -qtfxtbxudvfvx04.ml -qtfxtbxudvfvx04.tk -qtgptmututqg.ru -qtlhkpfx3bgdxan.cf -qtlhkpfx3bgdxan.ga -qtlhkpfx3bgdxan.gq -qtlhkpfx3bgdxan.ml -qtlhkpfx3bgdxan.tk -qtmail.org -qtmtxzl.pl -qtomac.com -qtooth.org -qtpjl.us -qtpozl.us -qtpxsvwifkc.cf -qtpxsvwifkc.ga -qtpxsvwifkc.gq -qtpxsvwifkc.ml -qtpxsvwifkc.tk -qtqvyklv.shop -qtresorts.com -qtsfxxxxf.shop -qtt4e.us -qtthredbo.com -qtujmiwzb.shop -qtum-ico.com -qtvg1y.us -qtvpatxl.shop -qtwicgcoz.ga -qtxm.us -qtyciz.com -qtyllhhtt.shop -quaatiorup.ga -quaatiorup.gq -quaatiorup.ml -quabbinmediation.net -quactaci.cf -quactaci.gq -quactaci.ml -quactaci.tk -quadcitiesphysicaltherapy.com -quadixrefugees.com -quadluve.gq -quadluve.ml -quadluve.tk -quadparts.ru -quadrafit.com -quadrant99.com -quadri.me -quadrigae-zeus.com -quaestore.co -quaihopli.cf -quaihopli.gq -quaihopli.ml -quaihopli.tk -quaipragma.cf -quaipragma.ga -quaipragma.tk -quakepock.site -qualia.cash -qualia.exchange -qualitatsproduktgeschenke.men -qualitific.com -qualitybrush.net -qualitybrush.us -qualitybrushes.biz -qualitybrushes.org -qualitybrushes.us -qualityimpres.com -qualitymedicarehelp.com -qualitymonitoringsolutions.com -qualityservice.com -quallary.com -qualmweirdshove.site -quaminigames.xyz -quan9nhadat.com -quanaothethao.com -quanaril.cf -quanaril.com -quanaril.ga -quanaril.ml -quandahui.com -quangcaoso1.net -quant-heyr.pro -quant-rr.pro -quant2new.pro -quant2wow.pro -quant3new.pro -quant4new.pro -quant4r.pro -quant5new.pro -quant7new.pro -quantarim.com -quanted.best -quantfycapital.org -quanthax.com -quanticmedia.co -quantize587rc.online -quantnodes.com -quantobasta.ru -quantrr.pro -quants.school -quantsoftware.com -quantum-hero.pro -quantum-kz.pro -quantum-wow.pro -quantum4u.pro -quantumreality.dev -quantums-code.site -quaracta.cf -quaracta.gq -quarentinetips.com -quarida.com -quarl.xyz -quarnipe.cf -quarnipe.ga -quarnipe.ml -quarnipe.tk -quarrycoin.com -quarterlyforum.com -quartz-co.ru -quasoro.ga -quasoro.gq -quasoro.ml -quasoro.tk -quassia.xyz -quatangdinhcao.com -quattro.best -quattro.monster -quattro.network -quaykingfun.com -qubecorp.tk -qubitoid.com -qubitoids.com -qubrku.com -qubyafahg.shop -qucaiguoji111.com -qucaiguoji222.com -qucaiguoji333.com -quduq.org -que-les-meilleurs-gagnent.com -quean.xyz -quebec.alpha.webmailious.top -quebec.victor.webmailious.top -quebeccruisespecialist.com -quebecgolf.livemailbox.top -quebecorworld.com -quebecstart.com -quebecupsilon.thefreemail.top -quecarrera.com -quecompde.cf -quecompde.ga -quecompde.gq -quecompde.tk -quecruncher.com -quediode.cf -quediode.ga -quediode.ml -quediode.tk -queeejkdfg7790.cf -queeejkdfg7790.ga -queeejkdfg7790.gq -queeejkdfg7790.ml -queeejkdfg7790.tk -queenbeauty.top -queenbet201.com -queenbet202.com -queenbet222.com -queenbet333.com -queenbet555.com -queenbet999.com -queencreekapartments.com -queenma.xyz -queensbags.com -queenslandfoodandwinefestival.com -queenslandlotto.com -queenslxcc.space -queenspeak-sgp.com -queentein.com -queentemp.site -queentempt.site -queerasfolk.ru -queerlyawkward.com -queersinproperty.melbourne -quehuongta.com -quelldropoutshown.site -quemaryndirt.host -quemede.ga -quemede.ml -quemillgyl.ga -quemillgyl.gq -quemillgyl.ml -quentinpelletier.com -quepasa.xyz -quepedi.cf -quepedi.gq -quepedi.tk -quepizzamassanassa.com -quequeremos.com -querl.xyz -querydirect.com -queryshuttle.com -queserchea.cf -queserchea.gq -queserchea.ml -queso-tillamook.name -quesomail.xyz -quesoran.cf -quesoran.ga -quesoran.ml -quesoran.tk -quesotillamook.name -quesotillamook.us -questali.xyz -questaliv.xyz -questdr.xyz -questdri.xyz -questionamusic.com -questner.xyz -questore.co -questoru.com -questshaf.xyz -questza.com -quetronis.cf -quetronis.ga -quetronis.gq -quetronis.ml -quetronis.tk -queuegr.icu -queuem.com -queueplan.xyz -qui-mail.com -qui2-mail.com -quiba.pl -quichebedext.freetcp.com -quick-mail.cc -quick-mail.club -quick-mail.info -quick-mail.online -quick-shopping.online -quickbookstampa.com -quickcash.us -quickcash4homesolutions.com -quickcashinstant.com -quickcloserealty.store -quickemail.info -quickemail.top -quickestloans.co.uk -quickhondaparts.com -quickinbox.com -quickloans.com -quickloans.us -quickloans560.co.uk -quickloanstoday.info -quicklymail.info -quickmail.best -quickmail.in -quickmail.nl -quickmail.rocks -quickmakeupbag-shop.ru -quickock.icu -quickpaydayloansuk34.co.uk -quickreport.it -quickresponsecanada.info -quickresponsefund.com -quicksandmovies.com -quickspect.com -quickstore.club -quicktech.repair -quicktricepguide.com -quicktv.xyz -quickty.org -quicooking-oita.com -quicooti.cf -quicooti.ga -quicooti.gq -quicooti.ml -quicooti.tk -quid4pro.com -quidoli.cf -quidoli.ga -quidoli.gq -quidoli.tk -quiecht.space -quienesjorge.com -quierolasvegas.com -quierolondres.com -quieroparis.com -quietcre.us -quietth.icu -quietthe.icu -quifacto.cf -quifacto.gq -quifacto.ml -quifacto.tk -quiflexaf.cf -quiflexaf.ga -quiflexaf.ml -quiflexaf.tk -quikdrycarpet.com -quilfast.com -quill-star.ru -quiller-star.ru -quiller.ru -quillstar.ru -quilon.net -quiltforest.online -quilthub.store -quiltshoppress.com -quiltslover.online -quiltslover.store -quimaress.cf -quimaress.ga -quimaress.gq -quimaress.ml -quimaress.tk -quinoadesavoie.net -quinoadesavoie.org -quintalaescondida.com -quintania.top -quintasystems.com -quintessentialextracts.com -quintuqzwv.club -quiperge.ga -quiperge.gq -quiperge.ml -quiperge.tk -quiprol.com -quiprol.farm -quismutach.cf -quismutach.gq -quismutach.ml -quismutach.tk -quisquous.site -quitadoptpop.website -quite-bag-seed-catch.xyz -quithic.site -quitmanms.org -quitsmokinghelpfulguide.net -quitsmokingmanyguides.net -quivilo.ga -quivilo.gq -quivilo.ml -quivilo.tk -quixoticals.com -quiz.style -quizee.ru -quizitaly.com -quizr.org -quizuetran.cf -quizuetran.ga -quizuetran.gq -quizuetran.ml -quizwords.com -qunianbi.com -qunke.cd -quodro.com -quoiceneck.site -quoprice.org -quotable.email -quotadr.press -quotaglas.press -quotale.xyz -quotaleav.xyz -quotasu.xyz -quotasui.xyz -quotationgo.email -quoteable.art -quotedakotacare.com -quoteko.cf -quoteko.ga -quoteko.gq -quoteko.tk -ququb.com -quran.cd -qureta.net -qurio.ru -qurist.com -quto.site -quuradminb.com -quvshine.ru -quw88.com -quwdo.us -quwo.site -quxppnmrn.pl -quxx14.com -quxx150.com -quxx152.com -quxx158.com -quxx159.com -quxx160.com -quxx162.com -quxx168.com -quxx174.com -quxx176.com -quxx178.com -quxx183.com -quxx186.com -quxx189.com -quxx190.com -quxx195.com -quxx198.com -quxx199.com -quxx200.com -quyao.online -quyi.info -quyi88.com -quzhou889.com -quzrisomzon.best -qvady.fun -qvady.group -qvady.life -qvady.live -qvady.network -qvap.ru -qvaq.ru -qvarqip.ru -qvcpv.com -qvestmail.com -qvitta.com -qvkf2i.com -qvlar.se -qvmassage.com -qvo6jm.us -qvpod.xyz -qvvcuk.com -qvvoxjfb.shop -qvwthrows.com -qvy.me -qwanton.xyz -qwarmingu.com -qwcrossing.com -qwe-qwe.com -qweazcc.com -qweewqrtr.info -qwefaswee.com -qwefewtata.com -qweiop.xyz -qwekssxt6624.cf -qwekssxt6624.ga -qwekssxt6624.gq -qwekssxt6624.ml -qwekssxt6624.tk -qwelth.com -qwerasd1.ru -qwereed.eu -qwerqwerty.ga -qwerqwerty.ml -qwerqwerty.tk -qwertaz.com -qwertymail.cf -qwertymail.ga -qwertymail.gq -qwertymail.ml -qwertymail.tk -qwertyuiop.tk -qwertyuiopasdfghjklzxcvbnm.info -qwerytr978.info -qwewe2.top -qwexaqwe.com -qwexecdue.ga -qwezxsa.co.uk -qwfox.com -qwgll.com -qwickmail.com -qwkcmail.com -qwkcmail.net -qwkk111.com -qwmmanbetx.com -qwnxf1.us -qwop.space -qwqrwsf.date -qwrezasw.com -qwsa.ga -qwtof1c6gewti.cf -qwtof1c6gewti.ga -qwtof1c6gewti.gq -qwtof1c6gewti.ml -qwtof1c6gewti.tk -qx93.com -qx95.com -qx96.com -qx97.com -qx98.com -qxads.com -qxkneives.shop -qxlvqptiudxbp5.cf -qxlvqptiudxbp5.ga -qxlvqptiudxbp5.gq -qxlvqptiudxbp5.ml -qxlvqptiudxbp5.tk -qxpaperk.com -qxtgd.com -qxxx.site -qy5p96.us -qydwa.live -qyfaka.info -qyhty.com -qyj101.com -qymuhu.info -qyp6sr.us -qysyny.site -qytue.site -qywbz1.site -qyx.pl -qzav69.com -qzbdlapps.shop.pl -qzc.xyz -qzdsx1.us -qzdynxhzj71khns.cf -qzdynxhzj71khns.gq -qzdynxhzj71khns.ml -qzdynxhzj71khns.tk -qzepg0.info -qzgqzgdtqumszututqg.ru -qzh198.com -qzick.com -qzilx1.site -qztc.edu -qzvbxqe5dx.cf -qzvbxqe5dx.ga -qzvbxqe5dx.gq -qzvbxqe5dx.ml -qzvbxqe5dx.tk -qzwdim.us -r-fasket.ru -r-mail.cf -r-mail.ga -r-mail.gq -r-mail.ml -r-shopinline.info -r.polosburberry.com -r.yasser.ru -r0.igg.biz -r044lzry.buzz -r047inbc.buzz -r051rfsk.buzz -r098tzje.buzz -r0ckst4r.com -r0kdgx.us -r0ywhqmv359i9cawktw.cf -r0ywhqmv359i9cawktw.ga -r0ywhqmv359i9cawktw.gq -r0ywhqmv359i9cawktw.ml -r0ywhqmv359i9cawktw.tk -r100glua.buzz -r115pwhzofguwog.cf -r115pwhzofguwog.ga -r115pwhzofguwog.gq -r115pwhzofguwog.ml -r115pwhzofguwog.tk -r14y.com -r18app.com -r18bt.com -r18h.com -r18mmd.com -r18udogyl.pl -r1b3d9.us -r1br1b.com -r1qaihnn9wb.cf -r1qaihnn9wb.ga -r1qaihnn9wb.gq -r1qaihnn9wb.ml -r1qaihnn9wb.tk -r2cakes.com -r2vw8nlia9goqce.cf -r2vw8nlia9goqce.ga -r2vw8nlia9goqce.gq -r2vw8nlia9goqce.ml -r2vw8nlia9goqce.tk -r2vxkpb2nrw.cf -r2vxkpb2nrw.ga -r2vxkpb2nrw.gq -r2vxkpb2nrw.ml -r2vxkpb2nrw.tk -r2z4m.xyz -r3-r4.tk -r31s4fo.com -r3hyegd84yhf.cf -r3hyegd84yhf.ga -r3hyegd84yhf.gq -r3hyegd84yhf.ml -r3hyegd84yhf.tk -r3kihu.us -r3z4.com -r4-3ds.ca -r4.dns-cloud.net -r425s.live -r4carta.eu -r4carte3ds.com -r4carte3ds.fr -r4ds-ds.com -r4ds.com -r4dscarte.fr -r4gmw5fk5udod2q.cf -r4gmw5fk5udod2q.ga -r4gmw5fk5udod2q.gq -r4gmw5fk5udod2q.ml -r4gmw5fk5udod2q.tk -r4ifr.com -r4nd0m.de -r4ntwsd0fe58xtdp.cf -r4ntwsd0fe58xtdp.ga -r4ntwsd0fe58xtdp.gq -r4ntwsd0fe58xtdp.ml -r4ntwsd0fe58xtdp.tk -r4unxengsekp.cf -r4unxengsekp.ga -r4unxengsekp.gq -r4unxengsekp.ml -r4unxengsekp.tk -r513s.live -r529n.live -r56r564b.cf -r56r564b.ga -r56r564b.gq -r56r564b.ml -r56r564b.tk -r57u.co.cc -r5hbb.cloud -r664mxb3kh3ff39.xyz -r6cnjv0uxgdc05lehvs.cf -r6cnjv0uxgdc05lehvs.ga -r6cnjv0uxgdc05lehvs.gq -r6cnjv0uxgdc05lehvs.ml -r6cnjv0uxgdc05lehvs.tk -r6ho.us -r6motorsportmarketing.com -r6q9vpi.shop.pl -r6ql7.buzz -r7m8z7.pl -r88mobile.com -r8ca4d.us -r8lirhrgxggthhh.cf -r8lirhrgxggthhh.ga -r8lirhrgxggthhh.ml -r8lirhrgxggthhh.tk -r8mwf.us -r8p0xh.host -r8r4p0cb.com -r9-nalarum.ru -r9094.com -r93k.us -r97il.com -r9827.com -r99.fun -r9eypf-mail.xyz -r9jebqouashturp.cf -r9jebqouashturp.ga -r9jebqouashturp.gq -r9jebqouashturp.ml -r9jebqouashturp.tk -r9qych.us -r9x5ce.us -r9ycfn3nou.cf -r9ycfn3nou.ga -r9ycfn3nou.gq -r9ycfn3nou.ml -r9ycfn3nou.tk -ra-st.ru -ra0099.com -ra3.us -ra540.buzz -ra5qke.us -ra72a3.online -raagevents.com -rabaz.org -rabbit168.info -rabdm.ru -rabet3.com -rabfibird.cf -rabfibird.ga -rabfibird.gq -rabfibird.ml -rabganglu.cf -rabganglu.ga -rabganglu.gq -rabganglu.ml -rabhjzwst.shop -rabidsammich.com -rabin.ca -rabiot.reisen -rabomo.com -rabota24-v-internet.ru -rabotagovno.xyz -rabotnikibest.ru -rabuberkah.cf -rabuh5.us -race-karts.com -racedaystudio.com -racesimulator.ru -racetire.us -racevietnam.info -racevietnam.net -rache2.net -rachelatkinson.buzz -rachelrobinsnest.com -rachelsreelreviews.com -rachsu.ru -racialcomfort.com -racinetech.org -racingmtbiketeam.club -racingwire.info -rackabzar.com -racksandlockers.com -racnewsmela.tech -racoga.cf -racoga.ga -racoga.ml -racoga.tk -racounso.cf -racounso.ga -racounso.gq -racounso.ml -racounso.tk -racquetballnut.com -racseho.ga -racseho.ml -racsubsphar.cf -racsubsphar.ga -racsubsphar.gq -racsubsphar.ml -racsubsphar.tk -radade.com -radardetectorhunt.com -radardetectorshuck.site -radarssalts.top -radcliffeconstructionllc.com -radecoratingltd.com -radede.com -radees.net -radhuni-indian-cuisine.com -radiator-stout.ru -radicalclub.net -radicalclub.org -radicalizes637qv.online -radicalsecurity.info -radicalsecurity.org -radicorn.com -radiku.ye.vc -radinex.com -radio-crazy.pl -radiocbb.com -radiodale.com -radiodaze.biz -radiodirectory.ru -radiofmwolf.site -radiofurqaan.com -radiohawdam.com -radioldz.info -radionaylamp.com -radionightclub.org -radionova.us -radioquebec.info -radioriki.com -radiorocket.ru -radiosiriushduser.info -radiostanica.me -radiostockyards.net -radiotra.icu -radiowhite.net -raditya.website -radius-patio.com -radiven.com -radjspeen-a.ru -radlercafe.com -radostnyy-krik.ru -radskirip.cf -radskirip.ga -radskirip.gq -radskirip.ml -radskirip.tk -radugachudes.ru -radugafutbolok.ru -radugateplo.ru -radux.online -rady24.waw.pl -radyohost.xyz -radyopozitif.xyz -rael.cc -raespital.cf -raespital.ga -raespital.ml -raetp9.com -raf-store.com -rafaelamelolab.com -rafaelsantos.info -rafahidalvarez.com -rafalrudnik.pl -raffle-fr.info -raffles.gg -rafmail.cf -rafmailku.ml -rafmix.site -rafrem3456ails.com -rafxnwqrl.shop -rag-tube.com -ragclwzns.shop -ragebite.net -ragebite.org -ragel.me -ragevpn.net -ragingiiys.online -ragitone.com -ragutti.date -ragvenetstor.website -ragzwtna4ozrbf.cf -ragzwtna4ozrbf.ga -ragzwtna4ozrbf.gq -ragzwtna4ozrbf.ml -ragzwtna4ozrbf.tk -rahabionic.com -rahavpn.men -rahimis.com -rahul.cyou -rai88.net -raiasu.cf -raiasu.ga -raiasu.gq -raiasu.ml -raiasu.tk -raicaltie.ga -raicaltie.gq -raicaltie.ml -raicaltie.tk -raichanlogistics.com -raichartsu.ga -raichartsu.gq -raichartsu.tk -raidiran.cf -raidiran.ga -raidiran.gq -raidiran.ml -raidiran.tk -raidot.org -raidtalk.com -raiffmob2.ru -raifgo.space -raifzus.website -raikas77.eu -rail-news.info -railroad-gifts.com -railroadcheckinn.com -railsmerchant.com -railway-shop.ru -raimne.site -raimonbundo.com -raimond.ru -raimu.cf -raimucok.cf -raimucok.ga -raimucok.gq -raimucok.ml -raimucul.cf -raimucul.ga -raimucul.gq -raimucul.ml -raimuwedos.cf -raimuwedos.ga -raimuwedos.gq -raimuwedos.ml -rain.laohost.net -rainbocorns.ru -rainbow-vanilla.ru -rainbowdelco.com -rainbowdungeon.com -rainbowflowersaz.com -rainbowforgottenscorpion.info -rainbowgelati.com -rainbowly.ml -rainbowrecess.com -rainbowstore.fun -raincode.ru -raindaydress.com -raindaydress.net -rainet.online -rainlear.com -rainmail.biz -rainmail.top -rainmail.win -rainplatform.cloud -rainproofresidual.com -rainstormes.com -rainture.com -rainwaterstudios.org -rainycitynights.com -raiplay.cf -raiplay.ga -raiplay.gq -raiplay.ml -raiplay.tk -rairecomp.cf -rairecomp.ga -rairecomp.gq -rairecomp.ml -rairecomp.tk -rairyri.cf -rairyri.gq -rairyri.tk -raise999.com -raisedhomes.com -raisedviaz.space -raiseenf.buzz -raisegl.com -raisemoneyfaster.com -raisemorecapital.com -raisero.com -raisethought.com -raisnacur.cf -raisnacur.ga -raisnacur.gq -raisnacur.ml -raisraiu.shop -raistone.ru -raitbox.com -raitingslots.ru -raiurais.shop -raiway.cf -raiway.ga -raiway.gq -raiway.ml -raiway.tk -raj-stopki.pl -raja333.net -raja333.org -raja69toto.com -rajaayam.net -rajaayam.org -rajabioskop.com -rajamahakal.com -rajamainonline.com -rajapkr.online -rajapoker.rocks -rajapoker333.org -rajapokerz88.xyz -rajarajut.co -rajas-grill-athlone.com -rajaserverpkv.club -rajasgrill-athlone.com -rajasoal.online -rajatalenan.com -rajatharshada.shop -rajavivobet.org -rajawaliindo.co.id -rajb.ru -rajdnocny.pl -rajeeyah.cf -rajegsquad.site -rajemail.tk -rajeshcon.cf -rajetempmail.com -rajo.site -rajonmi.cf -rajonmi.ga -rajonmi.gq -rajonmi.ml -rajonmi.tk -rajshreetrading.com -raka-raka.cd -raketenmann.de -rakfurniture.com -rakhi.online -rakietyssniezne.pl -rakinvymart.com -rakipbetvip.com -rakipbetvip1.com -rakipbetvip8.com -rakipkart6.online -rakipkart6.xyz -rakippro10.com -rakippro2.com -rakippro7.com -rakippro8.com -rakippro9.com -rakmalhatif.com -raksasadomino.com -raksasapkr.online -rakyatindo.com -ralala.com -raldo.ru -raleighalcoholrehab.com -raleighpaintingcompany.com -raleighquote.com -raleighshoebuddy.com -rallralo.shop -rallyraf.cf -rallyraf.ga -rallyraf.gq -rallyraf.ml -rallyraf.tk -ralph-laurensoldes.com -ralphlauren51.com -ralphlaurendenmark.com -ralphlaurenfemme3.com -ralphlaurenoutletzt.co.uk -ralphlaurenpascherfr1.com -ralphlaurenpaschersfrance.com -ralphlaurenpolo5.com -ralphlaurenpolozt.co.uk -ralphlaurenshirtszt.co.uk -ralphlaurensoldes1.com -ralphlaurensoldes2.com -ralphlaurensoldes3.com -ralphlaurensoldes4.com -ralphlaurenteejp.com -ralphlaurenukzt.co.uk -ralphpickard.com -ralree.com -ralutnabhod.xyz -ramagerealty.com -ramaninio.cf -ramaninio.ga -ramaninio.gq -ramaninio.ml -ramaninio.tk -ramatrk.site -ramazan-2012.com -rambakcor44bwd.ga -rambgarbe.ga -rambgarbe.gq -rambgarbe.tk -rambotogel.com -rambutpantene.online -ramdomtestonline.xyz -ramebet.club -ramgoformacion.com -ramireschat.com -ramireshop.ru -ramjane.mooo.com -ramkolz.xyz -rampas.ml -rampasboya.ml -rampyourbiz.com -ramserog.cf -ramserog.ga -ramserog.gq -ramserog.ml -ramserog.tk -ramseymail.men -ramshop.live -ramswares.com -ramundur.se -ramurop.ml -ramurop.tk -ranaphe.cf -ranaphe.ga -ranaphe.gq -ranaphe.ml -ranaphe.tk -ranas.ml -rancenylt.cf -rancenylt.ga -rancenylt.gq -rancenylt.ml -rancenylt.tk -ranchocucamonganailsalons.com -ranchosantamargaritadentists.com -ranchpanic.com -ranchpres.xyz -ranchweddinginsandiego.com -rancidhome.net -rancidkawing.me -rancilan.cf -rancilan.ga -rancilan.gq -rancilan.ml -rancilan.tk -rand1.info -randallb.photos -randelstravel.info -randich.info -randizzy.com -randkiuk.com -rando-nature.com -randofficcloth.com -randomactsofkindness.site -randomail.net -randombook.com -randomcsorg.ru -randomdrink.com -randomfever.com -randomgamen.online -randomgetaway.com -randomgift.com -randomniydomen897.cf -randomniydomen897.ga -randomniydomen897.gq -randomniydomen897.ml -randomniydomen897.tk -randomplanet.com -randomrecipe.com -randomseantheblogger.xyz -randomthing.org -randomusnet.com -randomwinner.net -randycloting.com -randyfitshoes.com -randykalbach.info -rangerapp.com -rangereviewer.com -rangerjerseysproshop.com -rangersgaming.biz -rangetige.xyz -rangevid.us -ranggasra.club -rangisre.me -ranhen.ru -rank.exchange -rankable.com -rankgapla.cf -rankgapla.ga -rankgapla.gq -rankgapla.ml -ranking-tabletek-na-odchudzanie.xyz -rankingc3.global -rankingweightgaintablets.info -rankmagix.net -ranko.site -ranktong7.com -rankupcommunity.com -ranmoi.net -ranonline-spygames.com -ranpack.online -ransern.com -ransombeauty.com -ransranbo.ml -ransranbo.tk -ransvershill.cf -ransvershill.ga -ransvershill.gq -ransvershill.ml -rantfoo.com -ranuless.cf -ranuless.ga -ranuless.ml -ranuless.tk -ranur.ru -rao-network.com -rao.kr -raoviet.website -rap-master.ru -rapadura.tech -rapaschi.cf -rapaschi.ga -rapaschi.gq -rapaschi.ml -rapdior.store -rape.lol -rapenakyodilakoni.cf -rapid-guaranteed-payday-loans.co.uk -rapidbeos.net -rapidbooks.site -rapidcontentwizardofficial.com -rapiddecisiontermlife.com -rapidmail.com -rapidpay.asia -rapidprotect.ml -rapidpulse.tech -rapidreceiptsidle.site -rapidrootermn.com -rapidspool.info -rapidvideo.co -rapidwristbands.net -rapik.online -raplico.asia -raposoyasociados.com -rappere.com -rapquangtri.com -rapt.be -rapture.bio -rapturetiger.com -rapyhu.info -rapzip.com -raq4iq.xyz -raqal.com -raqid.com -raqueldavalos.com -rarame.club -rarissima.site -rarlclasem.tk -rarsato.xyz -rary0.site -rasc2004.info -rascvetit.ru -rasedaoip.ga -rasedily.info -rash-pro.com -raskhin54swert.ml -raspaty.cf -raspaty.ga -raspaty.ml -raspaty.tk -raspberrypi123.ddns.net -raspberrypibra.com -raspberrypiguy.com -raspedc.org -rasplatamovie.ru -rasprodazha365.ru -rassulioni.ru -rastabettingsnupp.xyz -rastenivod.ru -rastrofiel.com -rasubsto.cf -rasubsto.ga -rasubsto.gq -rasubsto.ml -rasubsto.tk -ratcher5648.cf -ratcher5648.ga -ratcher5648.gq -ratcher5648.ml -ratcher5648.tk -rateandagents.com -ratedmildewsimon.site -ratedquote.com -rateiobarato.net -rateiovirtual.biz -rateiovirtual.club -rateiovirtual.xyz -rateiovirtualbr.org -ratel.org -ratemytravelagency.com -ratepro.site -ratesandagent.com -ratesforrefinance.net -ratesiteonline.com -rateslending.pro -ratharsben.com -ratibe.ga -ratihof.cf -ratihof.ga -ratihof.gq -ratihof.ml -rating-slimming.info -ratingcontrol.com -ratingpol.ru -ratingslimmingpills.info -ratioan.icu -ratiomars.email -rationalizer176ov.online -ratiorei.fun -ratiosha.xyz -ratiosk.xyz -ratioska.xyz -ratnnyhfs.gq -ratsnaijie.space -ratsukellari.info -ratsup.com -ratswap.com -ratta.cf -ratta.ga -ratta.gq -ratta.ml -ratta.tk -rattlearray.com -rattlecore.com -rattlesnakecanyon.org -ratu228.net -ratu855.com -ratu855.net -ratuayam.info -ratuayam.net -ratuayam.org -ratugaming.com -ratuibc.com -ratutangkas.net -ratutoto4d.org -raucuquadalat.net -raulenhou.cf -raulenhou.ga -raulenhou.gq -raulenhou.ml -raulenhou.tk -rauljhwsw.shop -raurua.com -rautostabilbetsnup.xyz -rauxa.seny.cat -rav-4.cf -rav-4.ga -rav-4.gq -rav-4.ml -rav-4.tk -rav-apsl.ru -rav4.tk -rave-cage.org -ravenol-bg.com -ravenom.ru -ravenouswolf.com -ravenplug.com -ravensproteamsshop.com -ravenssportshoponline.com -ravenssuperbowlonline.com -ravensuperbowlshop.com -raventurres.net -ravipatel.tk -raviswiss.com -ravnica.org -ravpowers.com -ravusraven.monster -ravyn.xyz -rawbeerfreighter.website -rawbucks.net -rawgamemaker.com -rawhidefc.org -rawirymi.xyz -rawizywax.com -rawkitchen.ru -rawmails.com -rawpitcher.com -rawreredc.cf -rawreredc.ga -rawreredc.ml -rawrr.ga -rawrr.tk -rawscore.app -rawscore.cash -rawscore.org -rawscored.com -rawscorer.com -rawscores.app -rawscores.net -rawscoring.com -rax.la -raxomart.site -raxtest.com -raya.gq -rayacasino.info -raybanpascher2013.com -raybanspascherfr.com -raybanssunglasses.info -raybansunglassesdiscount.us -raybansunglassessalev.net -raybansunglasseswayfarer.us -raycaster.info -raychat.xyz -rayenventures.com -rayetailor.com -rayfaulkner.com -raygunapps.com -raylee.ga -raymondheaden.com -raymondvase.com -raynaman.com -rayong.mobi -raywvjt.space -razbor54.ru -razemail.com -razernv.com -razin.me -razinrocks.me -razkruti.ru -razorbackfans.net -razorkast.com -razorwoodworks.com -razpayprim.cf -razpayprim.gq -razpayprim.tk -razsor.adult -razumkoff.ru -rb9dsi.com -rbatz.net -rbaynf.site -rbb.org -rbbyr.com -rbcenvk.top -rbcoint.top -rbcom.ru -rbdh.xyz -rbeiter.com -rbet260.com -rbezwx.com -rbfxecclw.pl -rbgwmlrt.shop -rbiwc.com -rbjkoko.com -rbkwd.us -rblrobot.com -rblx.site -rblxrewards.xyz -rbmail.co.uk -rbmtzy.icu -rbnej.xyz -rbnv.org -rbo88.xyz -rbpc6x9gprl.cf -rbpc6x9gprl.ga -rbpc6x9gprl.gq -rbpc6x9gprl.ml -rbpc6x9gprl.tk -rbq123.com -rbswwejhq.gq -rbteratuk.co.uk -rbuwc.com -rbvboox.com -rc-note.biz -rc6bcdak6.pl -rc8o6b7lhuyxvtj.xyz -rc94stgoffreg1.com -rcamerabest.info -rcasd.com -rcaynoye.shop -rcb.rest -rcbdeposits.com -rcbuy.info -rccew.site -rcelectricalcontractorsltd.com -rchd.de -rchondaparts.com -rchub.ru -rcinvn408nrpwax3iyu.cf -rcinvn408nrpwax3iyu.ga -rcinvn408nrpwax3iyu.gq -rcinvn408nrpwax3iyu.ml -rcinvn408nrpwax3iyu.tk -rclaccelerator.org -rclasmile.ru -rcm-coach.net -rcmails.com -rcnwp.live -rcode.net -rcode.site -rcon.app -rconsale.com -rcpt.at -rcr0hs.us -rcruiying.com -rcs.gaggle.net -rcs7.xyz -rcshost.ru -rctfood.com -rctkmijw.shop -rcuznkkw.shop -rd2ae.info -rdahb3lrpjquq.cf -rdahb3lrpjquq.ga -rdahb3lrpjquq.gq -rdahb3lrpjquq.ml -rdahb3lrpjquq.tk -rdiffmail.com -rdjoi.us -rdklcrv.xyz -rdlocksmith.com -rdom3t.host -rdqea1.site -rdr2native.com -rdresolucoes.com -rdrt.ml -rdrunner.net -rdset.com -rdssiro.space -rdstreetwear.com -rdvsnap.com -rdvx.tv -rdyn171d60tswq0hs8.cf -rdyn171d60tswq0hs8.ga -rdyn171d60tswq0hs8.gq -rdyn171d60tswq0hs8.ml -rdyn171d60tswq0hs8.tk -rdzbwm.icu -re-gister.com -re-shopping.info -re7zf1.info -reacc.me -reachable.online -reachaccept.monster -reachandrevenue.com -reachbeyondtoday.com -reachby.com -reachingthemedia.com -reachintegra.mobi -reachniy.ml -reachout.pw -reachun.xyz -reachwheat.us -reacsoca.cf -reactbooks.com -reactimok.com -reactive-eng.com -reactive-school.ru -reactripostesinew.site -read-wordld.website -reada.site -readanybook.best -readb.site -readc.site -readd.site -readdelight.site -readershealthdigest.com -readg.site -readh.site -readi.site -readied.com -readinghippo.com -readingkeylightning.net -readingroombookreviews.com -readissue.com -readk.site -readlistenlearn.info -readm.club -readstudysmart.site -readtext.app -readtoyou.info -readwritehustle.training -readyatuhready.online -readycoast.xyz -readycollect.biz -readycollect.info -readycollect.org -readyforchristmas.net -readyforfirstgradeworkshop.com -readyforschooltraining.com -readyforyou.cf -readyforyou.ga -readyforyou.gq -readyforyou.ml -readyhostel.com -readysetgaps.com -readyslo.com -readyslo.net -readyslocounty.net -readyslocounty.org -readystoo.email -readyttoloveyouforever.com -reakisynch.cf -reakisynch.ga -reakisynch.gq -reakisynch.ml -reakisynch.tk -reaktor51.online -real-dating-finder12.com -real-estate-net.com -real-group-action.info -real-leather.ru -real-market-buy.ru -real-partner-dating1.com -real-prizeszone.life -real-undersell-commerce.ru -real2realmiami.info -realacnetreatments.com -realaiot.club -realantispam.com -realbahis41.com -realbahis43.com -realbahis45.com -realbahis46.com -realbahis60.com -realbahis74.com -realbahis90.com -realchangepodcast.live -realdemocracy.vision -realdemocracy.works -realdietforskolin.com -realestateagent401k.com -realestatearticles.us -realestatebytheallens.com -realestatecont.info -realestatedating.info -realestatehotlineonline.com -realestatehow.com -realestateinfohotline.com -realestateinfosource.com -realestateinvestorsassociationoftoledo.com -realestatemarketcap.com -realestpeople.asia -realevoo.com -realexchangerates.com -realfanclub.cf -realfipacoin.net -realfoxj.site -realfun.info -realgt4d.com -realhomesafrica.com -realhoustondeals.com -realidindiana.com -realidma.com -realidmi.com -realidmichigan.com -realieee.com -realieee.org -realinflo.net -realistiskamassagestavar.se -reality-concept.club -realizerecords.net -realjoe1.ru -realjordansforsale.xyz -really.istrash.com -reallyfast.info -reallymymail.com -reallyneatgames.com -reallyshittycoffee.com -realmates.xyz -realmoviedd.com -realmpilot.com -realmx.se -realneoharry.ru -realoptionshousebuyer.com -realpetnatural.com -realpetnatural.net -realpharmacytechnician.com -realpokerschool.com -realportal.online -realproductivelife.com -realquickemail.com -realrisotto.com -realsalesforce.com -realsoul.in -realstlouisdeals.com -realstrongestates.com -realtor-chelny.ru -realtor.ph -realtv8.com -realtyalerts.ca -realtyexpertise.us -realtymogul.co -realwebcontent.info -realyour-girls1.com -realystics.com -realz.site -reaneta.cf -reaneta.ga -reaneta.tk -reankpek.xyz -reaoxyrsew.ga -reaoxysew.ga -reapermachine.com -rearepe.shop -reasons-to-use-3ds-max.com -reasontocelebrate.org -reasystabilitybetsnupp20.xyz -reauflabit.cf -reauflabit.ga -reauflabit.ml -rebami.cf -rebami.ga -rebami.gq -rebami.tk -rebatedates.com -rebates.stream -rebeca.kelsey.ezbunko.top -rebeccaallison.biz -rebeccabad.website -rebeccadavidson.buzz -rebeccadear.website -rebeccalblack.com -rebeccasfriends.info -rebeccavena.com -rebekahcarney.net -rebekamail.com -rebelexac.icu -rebelfi.icu -rebelrodeoteam.us -rebelvo.xyz -reberpzyl.cf -reberpzyl.ga -reberpzyl.gq -reberpzyl.ml -reberpzyl.tk -rebertboxing.ru -rebhornyocool.com -rebnt55-otymry.site -reboot-sec.net -reboot-secure.com -reboot-security.com -rebootsecure.com -rebootsecure.net -rebootsecurity.net -reborn-propertes.com -rebornlibrary.com -rebornlover.club -rebotec24.ru -recargaaextintores.com -recastchurch.net -recastclassics.com -recaudoalinstante.com -recdubmmp.org.ua -receeptionist.ru -receipt.legal -receiptroyalty.mobi -receitasdaju.com -receive.photo -receiveee.chickenkiller.com -receiveee.com -recept-edy.ru -recept-sekret.ru -receptest.ru -receptiki.woa.org.ua -receptsu.ru -recepty-mira.ru -recepty-prigotovleniya.ru -recettesla.store -recharge.cd -rechargenavkar.com -rechnoclick.com -rechtsbox.com -reciclaje.xyz -recipe.cd -recipebabbel.com -recipeblog.com -recipecommunity.com -recipedirectory.org -recipeforfailure.com -recipeinternasional.com -recipie-for.com -recklessbox.com -reclaimbellydancing.com -reclaimyourtimemasterclass.com -recode.me -recogeme.com -recognised.win -recognizably452yw.online -recognizance975sx.online -recognizers974rc.xyz -recoil.training -recolonization955nf.online -recombinati.xyz -recommendedstampedconcreteinma.com -recommendedvideos.com -reconbirdmedia.com -reconbirdsoftware.com -reconditionari-turbosuflante.com -reconmail.com -record01.site -record01.xyz -recordboo.org.ua -recordedvids.com -recordially.com -recordsinglekeymail02.gq -recordstimes.org.ua -recoverharddisk.org -recoverpoint.online -recoveryhealth.club -recoveryhealth.site -recoveryhealth.space -recoveryhealth.xyz -recpersonred.site -recreatie.works -recreationactivesite.club -recreationlogspot.club -recroyal.com -recruitaware.com -recruitdirt.com -recruitingfriend.com -recruitment.works -rectalcancer.ru -rectono.cf -rectono.ga -rectono.gq -rectono.ml -rectono.tk -recupemail.info -recurrenta.com -recursor.net -recyclabledisplays.com -recyclate.org -recyclemail.dk -recycleocean.info -recycleocean.net -recycleocean.org -recyclingjobs.org -recycraft.ru -red-mail.info -red-mail.top -red-paddle.ru -red-r.org -red-shopping.info -red12030505.xyz -red18sports.org -red88.org -red88.us -red88.vin -redacciones.net -redaily.online -redalbu.cf -redalbu.ga -redalbu.gq -redalbu.ml -redalbu.tk -redanumchurch.org -redapplecasino.com -redarrow.uni.me -redarrowcorp.com -redbahis22.com -redbahis23.com -redbarnfleamarket.net -redbarnfleamarket.org -redbats.info -redbird.live -redbmailer2.com -redbottomheels4cheap.com -redbottomshoesdiscounted.com -redbottomsshoesroom.com -redbottomsstores.com -redbullpoker.club -redbullpoker.site -redbullpoker.xyz -redcarpet-agency.ru -redcartmonkey.com -redchan.it -redchillieskincardine.com -redchoco.xyz -redcityrose.ru -redcolony.info -reddcoin2.com -reddcore.com -reddduslim.ru -reddeal6.site -reddenimhaven.com -redderex.com -reddiffusionpro.top -reddishearth.tk -reddit.usa.cc -reddithub.com -reddogspecials.com -reddoorresort.com -reddoors.ru -reddygroup.org -redeemupon.com -redefinedcloud.com -redefiningrealestate.us -redemptioncalvary.net -redeo.net -redesimpacto.site -redetm.online -redews.online -redfeathercrow.com -redflashgroup.net -redflpay.xyz -redfoxbet13.com -redfoxbet30.com -redfoxbet31.com -redfoxbet33.com -redfoxbet36.com -redfoxbet38.com -redfoxbet39.com -redfoxbet50.com -redfoxbet60.com -redfoxbet62.com -redfoxbet64.com -redfoxbet65.com -redfoxbet68.com -redfoxbet74.com -redfoxbet77.com -redfoxbet87.com -redfuli999.club -redgil.com -redheadcuties.com -redhet.xyz -redhoney.info -redhoney.site -redhoney.xyz -redhoneypower.com -redhookprocessing.com -redhornet.info -redhorsegaming.com -rediffmail.net -redigesso.ru -redir-ok-igrosoft.ru -redirect.plus -redissoft.site -reditt.xyz -redjoplastik.com -redkeyproperties.net -redkings.org -redkings.us -redleuplas.cf -redleuplas.ga -redleuplas.gq -redleuplas.tk -redline-shimonoseki.com -redmail.agency -redmail.tech -redmob.site -redmp4.site -redondobeachwomansclub.org -redopikas.cf -redounrsyi.space -redovisningdanderyd.nu -redovisningsbyra.nu -redpeanut.com -redpen.trade -redpepumya.space -redrabbit1.cf -redrabbit1.ga -redrabbit1.gq -redrabbit1.ml -redrabbit1.tk -redrect.site -redring.org -redrivervalleyacademy.com -redrockdigital.net -redropeapp.com -redseoeee.top -redsnow.cf -redsnow.ga -redstar.online -redteddy.ru -redtiger.info -redtopgames.com -redtreebrush.biz -redtreebrush.org -redtreebrush.us -redtreebrushes.biz -redtreebrushes.net -redtreebrushes.us -redtreeind.us -redtreeindustries.net -redtube-video.info -reduced.link -reduceyourrecurrence.net -reduitec.org -redundancy.dev -reduslim-dealer.ru -reduslim-dly-vas.ru -reduslim-originals.ru -reduslimf.ru -reduslimius.ru -redusslimium.ru -reduxe.jino.ru -redvid.cf -redvid.gq -redvid.ml -redvid.site -redvid.space -redvid.tk -redvideo.ga -redvideo.site -redviet.com -redvwap.fun -redwinegoblet.info -redwinelady.com -redwinelady.net -redwoodrehab.org -redwrapping.com -redxnxx.site -redxwap.site -redxxx.fun -redyspot.com -redyspots.com -redza.online -reecegiles.space -reedbusiness.nl -reedom.ru -reeducaremagrece.com -reedy.rocks -reedy.space -reefbarandmarket.com -reegasubs.cf -reegasubs.ga -reegasubs.gq -reegasubs.ml -reegasubs.tk -reel-innovation.com -reelsgyptio.cf -reelsgyptio.ga -reelsgyptio.gq -reelsgyptio.ml -reelsgyptio.tk -reelslunorth.cf -reelslunorth.ga -reelslunorth.gq -reelslunorth.ml -reesman.xyz -reestrkontrol.xyz -reestrtranzaction2020.top -reestrvesti.xyz -reeves.ngo -reeves.ong -reevolution.live -reevolutionpodcast.com -reeyna.com -ref01-payoffers.site -ref01-useroffers.info -ref01-useroffers.site -ref02-infopay.site -ref8cw.online -refa.site -refacna.cf -refacna.ga -refacna.ml -refacna.tk -refawra.cf -refawra.ga -refawra.gq -refawra.ml -refawra.tk -refb.site -refbets.com -refeele.live -refer.methode-casino.com -referado.com -referalu.ru -referans.xyz -referol.info -referralroutenight.website -refghtd.xyz -refina.cf -refina.ga -refina.gq -refina.ml -refina.tk -refinance-credit.ru -refinance-your-mortgage.org -refinita.com -refitfightclubcoralgables.com -refitfightclubmiami.com -refittrainingcentercoralgables.com -refk.site -refl.site -reflectcreed.info -reflectionsofiman.org -refleqted.com -refleqtive.com -refm.site -reformbigo.xyz -reformoyik.space -reformpila.space -refp.site -refpiwork.cf -refpiwork.ga -refpiwork.gq -refq.site -refr.site -refractionphotos.net -reframedlife.com -refsi.site -refstar.com -reftoken.net -refu.site -refuger.fun -refund.fun -refurbishdeadbatteries.com -refurhost.com -refy.site -reg-builder.xyz -reg.xmlhgyjx.com -reg19.ml -regalforex.com -regaloregamicudz.org -regalos.store -regalridge.com -regalsz.com -regbypass.com -regbypass.comsafe-mail.net -regcart.com -regencyatbeachwalk.com -regencyop.com -regeneratefootprint.com -regentparkhall.com -regentstudents.biz -reggaestarz.com -reggioemiliadaycare.com -regieneff.com -regimen-skin.com -reginaclothing.com -reginao.se -region13.cf -region13.ga -region13.gq -region13.ml -region13.tk -region42-tur.ru -regional-wolfsburg.com -regional.boutique -regional.catering -regional.delivery -regionalrideshare.com -regionalrideshare.org -regionless.com -regionteks.ru -regiopage-deutschland.de -regiopost.top -regiopost.trade -register-form.online -registermyninja.com -registerrequest.com -registersky777.club -registgmbw.space -registraciya-bank.ru -registratuimei.org -registrip.xyz -regitsrzao.xyz -regivx.com -regli.xyz -regmailproject.info -regmarerketss.ru -regoox.com -regopas.online -regorsland.online -regpp7arln7bhpwq1.cf -regpp7arln7bhpwq1.ga -regpp7arln7bhpwq1.gq -regpp7arln7bhpwq1.ml -regpp7arln7bhpwq1.tk -regroom.host -regroom.website -regspaces.tk -reguded.cf -reguded.ga -reguded.tk -regularlydress.net -regulaurgr.space -regutav.xyz -rehabcenterwebdesign.com -rehabonmymind.com -rehashes.com -rehau39.ru -rehlatti.com -rehobothmission.org -reichwerden.me -reicono.cf -reicono.ga -reicono.gq -reicono.ml -reicorming.gq -reicorming.tk -reiffspank.site -reifreakop.cf -reifreakop.ga -reifreakop.gq -reifreakop.tk -reignblad.icu -reignict.com -reignsa.buzz -reignsoli.icu -reignwast.space -reigpartner.com -reik.net -reikilove.ru -reilidust.cf -reilidust.ga -reilidust.tk -reillycars.info -reima-kinsei.online -reimalaplander.online -rein20.site -reinforcedpaper.com -reinvestors.cloud -reiprivre.cf -reiprivre.gq -reiprivre.ml -reiprivre.tk -reirei.live -reirepa.cf -reirepa.ml -reisezeit.site -reisteepin.cf -reisteepin.ml -reisteepin.tk -reitarme.tk -reitralsa.cf -reitralsa.ga -reitralsa.gq -reitralsa.ml -reitralsa.tk -reiwa.photos -reja9i.site -rejectmail.com -rejeki303.org -rejekihoki168.com -rejestraptek.com -rejestrsuplementow.com -rejo.technology -rejudi.cf -rejudi.ml -rejudsue.cf -rejudsue.ga -rejudsue.gq -rejudsue.ml -rejudsue.tk -rejuvenateyouthfullook.com -rejuvenexreviews.com -rekannaesi.cf -rekannaesi.ga -rekannaesi.tk -rekap.sk -rekeyko.press -reklama.com -reklamad.site -reklambladerbjudande.se -reklambladerbjudanden.se -reklambolum.xyz -reklamhome1.xyz -reklamilanlar005.xyz -reklamilanlar007.xyz -reklamilanlar009.xyz -reklamilanlar59.xyz -reklamowaagencjawarszawa.pl -reklamtr81.website -rekleman3.xyz -rekmatik.com -rekomend.org -rekorber67.com -rekorbet100.com -rekorbet50.com -rekorbet66.com -rekorbet80.com -rekorbet90.com -rekreco.space -reksareksy78oy.ml -reksatal-effective.ru -rekt.ml -rekthosting.ml -relaet.com -relationbreakthrough.com -relationbreakthroughsecrets.com -relationdevelopment.com -relationsansprisdetete-confirmed.com -relationsansprisdetete-meet-backup.com -relationsansprisdetete-meet.com -relationsansprisedetete-confirmed.com -relationsansprisedetete-meet-backup.com -relationsansprisedetete-meet.com -relationsansprisedetete.com -relationscript.com -relationsdesk.com -relationship-cure.com -relationship-transformers.com -relationshipbreakthroughsecrets.net -relationshipdevelop.com -relationshiphotline.com -relationshiping.ru -relationshippanecia.site -relationshiptransformer.org -relationshipwebinar.com -relativegifts.com -relatter.ru -relax59.com -relaxabroad.ru -relaxall.ru -relaxbahis101.com -relaxbahis11.xyz -relaxbahis12.xyz -relaxbahis13.com -relaxbahis82.com -relaxbahis95.com -relaxcafes.ru -relaxeyesasmr.online -relaxeyesasmr.xyz -relaxforyou.space -relaxgamesan.ru -relaxing-retreat.com -relaxiro.site -relaxirony.site -relaxology.ru -relaxplaces.ru -relaxrussia.ru -relaxself.ru -relaxst.icu -relaxwrec.icu -relaxyplace.ru -relay-bossku3.com -relay-bossku4.com -relayed.org -relayimmo.com -relazionifacili-confirmed.com -relazionifacili-meet-backup.com -relazionifacili-meet.com -relcasecrm.com -relcure.com -release-o-matic.com -releasepal.com -releasethekraken.online -releaseyourmusic.com -releri.cf -releri.ga -releri.gq -releri.ml -releri.tk -reless.website -relevart.com -reliable-mail.com -reliableproxies.com -reliablespell.xyz -relianceday.com -reliantcapitalgroup.com -reliefieut.site -reliefreach.monster -reliefsmokedeter.com -reliefteam.com -religionguru.ru -religioussearch.com -relika.cf -relika.ga -relika.gq -relika.ml -relith.xyz -reliz46.ru -relleano.com -relmarket.com -reloadbet55.com -reloadbet78.com -reloadpoint.ru -relocate2boise.com -relom.online -relrb.com -relscience.us -reludexo.site -relxdzy.com -relxv.com -relyst.store -remail.cf -remail.ga -remail7.com -remailer.tk -remailsky.com -remann.com -remarkable.rocks -remarkablycreatedtraining.com -remaster.su -remaxofnanaimopropertymanagement.com -rembaongoc.com -rembitmaster.ru -remedio-para-emagrecer.com -remehan.ga -remehan.ml -remembrance.ooo -rementb.shop -remgelind.cf -remgelind.gq -remgelind.ml -remgelind.tk -remicon.cf -remicon.ga -remicon.gq -remicon.ml -remicon.tk -remilitarizes329uj.online -remingtonaustin.com -remisde.cf -remisde.ga -remisde.gq -remisde.tk -remisra.gq -remisra.ml -remisra.tk -remisyrer.club -remitano.biz -remitano.dev -remitano.us -remium4pets.info -remixify.com -remocalifornia.com -remodalista.com -remomer.ga -remomer.gq -remomer.tk -remonciarz-malarz.pl -remont-92.ru -remont-dubai.ru -remont-dvigateley-inomarok.ru -remont-iq.ru -remont-stoy.ru -remont-svoimi.ru -remontholoda36.ru -remontvuu.ru -remonty-firma.pl -remonty-malarz.pl -remonty-v-sochi.ru -remontyartur.pl -remontyfirma.pl -remontymalarz.pl -remontynestor.pl -remospizza-ashbourne.com -remote.li -remotepcrepair.com -removfap.com -removingmoldtop.com -remprojects.com -remusi.cf -remusi.ga -remusi.gq -remusi.ml -remusi.tk -remyqneen.com -remythompsonphotography.com -remza.net -renalremission.net -renault-brasil.club -renault-duster-online.ru -renault-forums.ru -renault-kangoo.club -renault-sa.cf -renault-sa.ga -renault-sa.gq -renault-sa.ml -renault-sa.tk -renaultcikmaparca.biz -renaulttmail.pw -renaulttrucks.cf -renaulttrucks.ga -renaulttrucks.gq -renaulttrucks.ml -renaulttrucks.tk -renchah.com -rencontresannonces.com -rendek.info -render.community -rendimenttogold.xyz -rendymail.com -reneemonroe.com -renegade-hair-studio.com -renesilva.net -renewinsidergift.com -renewitcarsales.com -renewtechnologyinc.com -rengginangred95btw.cf -reniku.com -reninimpressskulk.site -renklervecizgiler.com -renlet.ru -renliner.cf -renliner.ga -renliner.gq -renliner.ml -rennoverahuset.nu -renobussines.com -renodepot.net -renomitt.cf -renomitt.ga -renomitt.gq -renomitt.ml -renomitt.tk -renoquote.com -renostory.com -renoszrtqw.club -renotravels.com -renouweb.fr -renovablepr.com -renovacaorg.site -renovasibangun-rumah.com -renovateur.com -renovation-building.ru -renoveringshuset.nu -renraku.in -rent2.xyz -rent7.xyz -rentacarpool.com -rentadeautoscancun.uno -rentaharleybike.com -rentalmobiljakarta.com -rentalmobilyogyakarta.biz -rentalproperty.cd -rentasig.com -rentberry-scam.com -rentberryscam.com -rentd.info -rentgigolo.com -rentierklub.pl -rentinmilwaukee.com -rentitthento.press -rentlyna.cf -rentlyna.ga -rentlyna.gq -rentlyna.tk -rentmotivenow.info -rentoaseksiseuraa.com -rentoilfieldequipment.com -rentonom.net -rentpober.cf -rentpober.gq -rentpober.ml -rentshot.pl -renumax-dealer.ru -renwoying.org -renx.de -reo2lease.com -reobreakti.gq -reobreakti.ml -reobreakti.tk -reogland.com -reollink.com -reomjk.icu -reopenireland.com -reorganize953mr.online -reorganizooo.xyz -reossanyth.cf -reossanyth.ga -reossanyth.gq -reossanyth.ml -reossanyth.tk -reostream.site -reotractant.cf -reotractant.gq -reotractant.ml -reotractant.tk -rep3-payment.site -rep5-german.site -rep6-payment.club -repaemail.bz.cm -repair.su -repairalliance.org -reparacionbatres.com -repargy.cf -repargy.ga -repargy.gq -repargy.ml -repargy.tk -repatecus.pl -repdom.info -repeatxdu.com -repelfzkx.space -repetitorka.ru -repetitoronlayn.ru -repfootballpop.website -rephyre.cf -rephyre.ga -rephyre.gq -rephyre.ml -rephyre.tk -repinler.site -repk.site -replacedocs.com -replacementd.email -replacementwindowsnearme.net -replatform.live -replay-wg.site -replica-surfaces.com -replicalouisvuittonukoutlets.com -replicasunglassesonline.org -replicasunglasseswholesaler.com -replicawatchesusa.net -repmyfgaj.ga -repobet6.com -repobet7.com -repokit.app -repolusi.com -repomega4u.co.uk -reportdebugsoftware.com -reportes.ml -reportgate.net -reportptol.tk -reports-here.com -reprisalist.com -reprocar.com -reproductivestrategies.com -reproductivestrategies.info -reprogramforhealth.com -repsandri.cf -repsandri.ga -repsandri.gq -repsandri.tk -repsec.com -repshop.net -reptech.org -reptileextinctrecovery.website -reptilegenetics.com -repubblica-24it.website -republichog.org -republikjaket.com -republiktycoon.com -repubstore.ru -repufire.com -repumazing.com -repuno.net -repushit.com -req.rest -reqaxv.com -reqt.net -requestmeds.com -requestseven.online -rerajut.com -rere.site -rerecircle.com -rereferenced.com -rerollers.com -rertimail.org -rerttymail.com -res.craigslist.org -res20.com -resadjro.cf -resadjro.ga -resadjro.tk -resalefx.ru -resantamiass.ru -rescoatran.gq -rescoatran.ml -rescoatran.tk -rescue-cash.com -rescuemountain.org -rescueroof911.com -rescuewildlife.com -resealzfuc.space -research-paper-writingservice.com -research-proposal.men -researchdetectors.com -researchgems.com -researchmob.com -researchobservatories.org.uk -researchsafety.org -researchstage.com -reseauparlementairegenre.cd -resellermurah.me -resellhotel.site -resellking.ru -resepantigagal.site -resepindonesia.site -resepku.site -reseprahasia.site -reservationforum.com -reservefxnf.email -reservelp.de -reservoirsource.com -reset-secure.com -resetsecure.org -resetsecurity.net -resfe.com -resgedvgfed.tk -resgranpalacio.com -reshaping.biz -reshipbox.com -reshuolimp.ru -resicoin.com -residencerewards.com -residencesdesroyetfils.com -residencialgenova.com -residencias-ancianos.info -residencias-baratas.com -residencias-mayores.info -residencias-rehabilitacion.com -residencymail.com -residentialpacifist.com -resifi.com -resifi.net -resignationcustodyoffend.website -resilijdez.ru -resimbudur.online -resimbudur.xyz -resin-board.com -resinboard.com -resindeca.xyz -resinlqdtk.space -resintesshop.xyz -resirtest.club -resistore.co -resize.email -resla-rasxaer.ru -reslifestaff.com -resmail24.com -resmigazete.net -resneti.cf -resneti.ga -resneti.ml -resneti.tk -resnitsy.com -resolution4print.info -resolutionrescue.info -resorings.com -resort-in-asia.com -resortmakeover.com -resortmapprinters.com -resortmapprints.com -resortsallinclusive.net -resortsp.club -resounkffh.space -resource.vote -resources.vote -resourcesfordancers.com -resourcingchristianity.com -respectabrew.com -respectabrew.net -respectgarage.ga -respectgarage.ml -respectgarage.tk -respectjewel.su -respekus.com -responsive.co.il -responsiveclassroom.info -responsiveclassrooms.org -respublica.app -resseru.cf -resseru.ga -resseru.ml -resseru.tk -ressources-solidaires.info -resspi.com -rest-lux.ru -rest-top.ru -restabbetting.xyz -restarteurope.com -restartmotora.ru -restaurangselins.se -restauranteasturianoelraitan.com -restauranteatarantella.com -restaurantechinolitualicante.com -restaurantechinoyongfeng.com -restaurantefarodehiguer.com -restauranteindiangardenmadrid.com -restaurantekansasburger.com -restaurantemaxim.com -restauranteoishiizaragoza.com -restauranteosasco.ml -restauranthosting.com -restaurantmarketinglasvegas.com -restaurantsnearme.life -restbetgir.site -resthinstbah.cf -resthinstbah.ga -resthinstbah.gq -resthinstbah.tk -resthomejobs.com -restilogic.xyz -restingcamel.net -restnotes.com -restoemploi.com -restonstartups.com -restoran-panorama.ru -restoran-park.info -restoraninovisad.info -restorationcoffee.us -restorativedentistnearme.com -restore7education.org -restorefitnessplan.com -restorereligion.org -restoringreach.com -restudwimukhfian.com -restumail.com -restwin.com -restyourlife.org -result-api.shop -resultaat.marketing -resultaatmarketing.com -resultadodehoje.org -resultevent.ru -resume-minikurs.ru -resume.land -resumeshortly.com -resumeworks4u.com -resumewrite.ru -resurs-nn.com -resusskills.com -reswitched.team -resx.net -ret35363ddfk.cf -ret35363ddfk.ga -ret35363ddfk.gq -ret35363ddfk.ml -ret35363ddfk.tk -retail-readiness.com -retailadservices.com -retailer.report -retailingcbd.com -retailofferunion.host -retailr.org -retailreserve.com -retailscience.com -retailsolutionadvisors.com -retailswitching.com -retailtopmail.cz.cc -retajjgroup.com -retapps.biz -retapps.cloud -retarusblog.com -retep.com.au -rethmail.ga -rethynkaus.com -retinaeyehealth.com -retinaonlinesure.com -retinaprime.com -retireddatinguk.co.uk -retirementandincomeacademy.com -retirementhomefinder.org -retirementhomelocator.com -retirementhomestoday.com -retkesbusz.nut.cc -retlayrei.ga -retlayrei.gq -retlayrei.ml -retlayrei.tk -retnooktapratama.me -retolatv.com -retourjustepourlefun.com -retqio.com -retractablebannerstands.interstatecontracting.net -retractablebannerstands.us -retragmail.com -retreatyourselfwell.net -retrewqa.online -retrmailse.com -retrocityarcade.net -retrocityarcade.org -retrojordansforsale.xyz -retrolith.xyz -retrolium.xyz -retropup.com -retroshare.online -retrt.org -retrubio.press -retsept18.ru -rettmail.com -return-on-insight.com -return0.ga -return0.gq -return0.ml -returnhealth.ru -returns-center.com -returnsify.com -retvtoday.com -reubidium.com -reuglenpet.cf -reuglenpet.gq -reuglenpet.ml -reuglenpet.tk -reunion-multimedia.com -reusablejutetotes.com -reusablenonwoventotes.com -rev-amz.xyz -rev-mail.net -rev-zone.net -rev-zone.xyz -revampdiaries.com -revarix.com -revault.net -revealbid.com -revealeal.com -revealeal.net -reveate.com -revechat.net -revelationsbotique.com -revelationschool.net -revelryshindig.com -revenge.vote -revengemc.us -revented.com -revenueads.net -revenueengineers.group -reverancevegas.com -reverbnationpromotions.com -reverenddanger.com -reversapal.com -reversed.photo -reversefone.com -reversefrachise.com -reversehairloss.net -reverseimage.photo -reversemortgage2020.com -reversetech.info -reverseyourdiabetestodayreview.org -reverze.ru -revhairproducts.com -revi.ltd -revieoo.com -review4bonus.net -review4forex.co.uk -reviewcasino.ru -reviewdrrichard.com -reviewedtv.com -reviewlately.com -reviewndecide.com -reviews-catalog.com -reviewsblog.org -reviewscasino.ru -reviewsforproduct.info -reviewsofhandbags.com -reviewsofpsychics.com -reviewtable.gov -revistaanabel.com -revistavanguardia.com -revivalstock.com -revive.bio -reviveherdriveprogram.com -revlive.me -revodac.site -revoltingdigits.com -revolunity.com -revolute-org.xyz -revoluthp.xyz -revolutionalgorithm.com -revolutionaryabolitionist.org -revolutionpowersolutions.online -revolvingdoorhoax.org -revreseller.com -revs-store.email -revstore.email -revstore.shop -revy.com -rew.team -rewalle.cf -rewalle.ga -rewalle.gq -rewalle.tk -rewardened.com -rewardenny.com -rewardents.com -rewardsforjustice.org -rewas-app-lex.com -reweo.site -rewet.com -rewinfetu.xyz -rewolt.pl -rewood.us -reword.press -rewqweqweq.info -rewrap.com -rewste.online -rewtorsfo.ru -rex-app-lexc.com -rex01.xyz -rex4sheriff16.com -rexagod-freeaccount.cf -rexagod-freeaccount.ga -rexagod-freeaccount.gq -rexagod-freeaccount.ml -rexagod-freeaccount.tk -rexagod.cf -rexagod.ga -rexagod.gq -rexagod.ml -rexagod.tk -rexburgwebsites.com -rexhuntress.com -rexuejianghusifu.com -reydonerkebabmalaga.com -reyw3.us -reyzor.com -rezablog.com -rezadrese.live -rezaz.live -rezendeco.com -rezepi.info -rezistyle.com -reznickabasta.com -rezolventa.ru -rezumenajob.ru -rf7gc7.orge.pl -rfactorf1.pl -rfavy2lxsllh5.cf -rfavy2lxsllh5.ga -rfavy2lxsllh5.gq -rfavy2lxsllh5.ml -rfc822.org -rfd-mauritanie.org -rfdlsmkx.shop -rfgt.ga -rfgym.ru -rfirewallj.com -rfjrx1.info -rfkstm.icu -rfm-analysis.com -rfreedomj.com -rfsa8h-mail.xyz -rftix.fun -rftt.de -rfuvault.com -rfvqi.us -rfx2h.us -rfxe.us -rfzaym.ru -rgames.us -rgarch.info -rgb9000.net -rgbwinkel.shop -rgcincy.com -rgcufu.icu -rgdoubtdhq.com -rggmtoxv.tech -rgjae5.best -rgmedianetwork.com -rgmediapartners.com -rgoponga.cf -rgoponga.gq -rgoponga.tk -rgostabbet.xyz -rgphotos.net -rgrocks.com -rgtvtnxvci8dnwy8dfe.cf -rgtvtnxvci8dnwy8dfe.ga -rgtvtnxvci8dnwy8dfe.gq -rgtvtnxvci8dnwy8dfe.ml -rgtvtnxvci8dnwy8dfe.tk -rgwefascvxcb1.ru -rgwefascvxcb2.ru -rgwfagbc9ufthnkmvu.cf -rgwfagbc9ufthnkmvu.ml -rgwfagbc9ufthnkmvu.tk -rgxuty.site -rh0d1um.online -rh0d1um.org -rh3qqqmfamt3ccdgfa.cf -rh3qqqmfamt3ccdgfa.ga -rh3qqqmfamt3ccdgfa.gq -rh3qqqmfamt3ccdgfa.ml -rh3qqqmfamt3ccdgfa.tk -rhabne.us -rhapsodytakeaway.com -rhatra.com -rhause.com -rhcassist.com -rhdxzn.top -rheamonique.com -rheank.com -rheeebstore.com -rheophile.site -rheotaxis.site -rheumview.com -rhexis.xyz -rhianelycia.com -rhindp.site -rhinoplastynashville.com -rhizoma.com -rhn0hg.us -rhnqxt.site -rho44.com -rhodecoders.online -rhodeislandquote.com -rhodium.llc -rhodiumgroup.llc -rhombushorizons.com -rhondaperky.com -rhondawilcoxfitness.com -rhone-alpes-tourisme-hebergements.com -rhotacism.xyz -rhouseh.shop -rhpzrwl4znync9f4f.cf -rhpzrwl4znync9f4f.ga -rhpzrwl4znync9f4f.gq -rhpzrwl4znync9f4f.ml -rhpzrwl4znync9f4f.tk -rhrrsbqp.shop -rhubgrmq.shop -rhumbrun.com -rhumworld.com -rhvsxf.us -rhymon.com -rhystrade.com -rhyta.com -rhythbagza.cf -rhythbagza.ga -rhythbagza.gq -rhythbagza.ml -rhythbagza.tk -rhythmerp.com -rhythmflex.org -rhzla.com -ri688.com -ri9lhx.us -riabervie.cf -riabervie.ga -riabervie.ml -riabervie.tk -riacomponents.com -rialisis.cf -rialisis.ga -rialisis.gq -rialisis.ml -rialisis.tk -riamitpo.cf -riamitpo.ga -riamitpo.gq -riamof.club -riaquili.cf -riaquili.ml -riaquili.tk -riarotta.cf -riarotta.ga -riarotta.gq -riarotta.ml -riarysem.cf -riarysem.ga -riarysem.gq -riarysem.ml -riarysem.tk -riasdevil.graphics -riasporem.cf -riasporem.gq -riasporem.ml -riaucyberart.ga -riavisoop.cf -riavisoop.ga -riavisoop.ml -riavisoop.tk -riaviva63.com -riazika.com -riba-4ok.ru -riba-stillorgan.com -ribalka-info.ru -ribenhao.com -ribenjia.com -ribenjiameng.com -ribenpu.com -ribenre.com -ribenshanghui.com -ribentu.com -ribenwo.com -ribenzhaoshang.com -ribenzhifu.com -ribetier.com -ribo.com -riboflavin.com -ricardojarma.com -ricarice.shop -riccardobrinkman.online -ricelandtakeaway.com -riceshopasian.com -rich-mail.net -rich-money.pw -rich-rp.com -rich-sk.com -rich-town.site -richard.salon -richardbenesti.com -richardlivolsi.com -richardpauline.com -richardsonpersonalinjury.com -richardtoon.net -richardyoung55places.com -richday.xyz -richdi.ru -riches111.com -riches222.com -riches333.com -riches567.com -riches789.com -richestweb.com -richesxo.com -richfinances.pw -richfunds.pw -richinssuresh.ga -richlyscentedcandle.in -richmondcosmeticsurgery.com -richmondhairsalons.com -richmondindepotdistrict.com -richmondlaundry.com -richmondnailsalons.com -richmondpride.org -richmondquote.com -richmondvadogtrainer.com -richmoney.pw -richonedai.pw -richpoker88.org -richsmart.pw -richtoon.lawyer -richtoon.net -richtoon.org -richtoonlaw.com -ricimail.com -ricirich22.com -rick-buyshouses.com -rick.properties -rickbenavidessellshomes.com -rickbuys.house -rickbuys.properties -rickcarhart.com -rickiemetal.com -rickifoodpatrocina.tk -rickmoriarity.com -rickpaquin.com -rickpropertiesllc.com -ricks-properties.com -ricks.plumbing -ricksfund.com -rickshawchinesetakeaway.com -rickspropertiesllc.com -rickthorpefund.org -rickyinthepark.com -rickymetal.com -rickysfundamentals.com -rickztah.best -rico.cool -ricret.com -ricrk.com -ridaky.cf -ridaky.gq -ridaky.ml -ridaky.tk -riddermark.de -riddle.media -riddle.store -riddle.tel -ride-tube.ru -ridebali.com -rideclickbas.com -ridepple.cf -ridepple.ga -ridepple.gq -ridepple.ml -ridepple.tk -riderannintgeb.space -ridesharedriver.org -ridetexasbrand.com -ridethechain.com -ridgeado.xyz -ridgeleyig.org -ridgevide.fun -ridgewoodfrontporch.com -ridicom.ru -ridingonthemoon.info -ridpaisess.cf -ridpaisess.ga -ridpaisess.gq -ridwabar.ga -ridwabar.gq -ridwabar.ml -riecrimal.cf -riecrimal.ga -riecrimal.gq -riecrimal.ml -riecrimal.tk -riel5.ru -rielunu.cf -rielunu.gq -rielunu.ml -rielunu.tk -riemsi.space -riewonmo.cf -riewonmo.gq -rif-ramarew.ru -riffcat.eu -rifkian.cf -rifkian.ga -rifkian.gq -rifkian.ml -rifkian.tk -rifo.ru -rifone.online -rigedeers.cf -rigedeers.ga -rigedeers.ml -rigedeers.tk -rigel6.com -right-leftempire.com -rightbank.org -rightbet1a.pro -rightca.email -rightclaims.org -righteb.com -righteous.exchange -righteous.live -rightexch.com -rightheapun.cf -rightheapun.ga -rightheapun.gq -rightheapun.ml -rightheapun.tk -righthirlo.cf -righthirlo.gq -righthirlo.ml -rightmom.net -rightnownotes.com -rightonfact.rest -rightput.com -rightsh.xyz -rigolo.ru -rigormentorslang.site -rigtmail.com -rihis.org -rijschoolcosma-nijmegen.nl -rik-morty.ru -rika-santila.ru -rika0525.com -rikekvinner.com -rikka-weaka.ru -riko.site -rikputs.space -riks1337.site -rilholding.net -rilholding.org -rilingna.cf -rilingna.ga -rilingna.gq -rilingna.ml -rillamail.info -rilohaf.ga -rilohaf.gq -rilohaf.ml -rim7lth8moct0o8edoe.cf -rim7lth8moct0o8edoe.ga -rim7lth8moct0o8edoe.gq -rim7lth8moct0o8edoe.ml -rim7lth8moct0o8edoe.tk -rimbapoker.live -rimmerworld.xyz -rimonabant.website -rimoralliance.info -rims.rocks -rin71.space -rinaddresmo.com -rincewind4.pl -rincewind5.pl -rincewind6.pl -rindupoker.com -ring123.com -ringier.tech -ringobaby344.cf -ringobaby344.ga -ringobaby344.gq -ringobaby344.ml -ringobaby344.tk -ringobot.ru -ringofyourpower.info -ringtoneculture.com -ringwesttran.ga -ringwesttran.gq -ringwesttran.ml -ringwesttran.tk -ringwormadvice.info -rinheverci.site -rinit.info -rinito.cf -rinito.gq -rinito.ml -rinota.cf -rinota.ga -rinota.gq -rinota.ml -rinota.tk -rintisus.cf -rintisus.ga -rintisus.gq -rintupo.cf -rintupo.gq -rintupo.ml -rintupo.tk -rio66.online -rioadgqn.shop -riobeli.com -riobeli.ga -riobet-casino.best -riobet.cyou -riobetpromokod1.ru -rioclub.site -riodejaneironews.site -riogoj.tech -riojaqvkl.space -riomaglo.cf -riomaglo.ga -riomaglo.gq -riomaglo.tk -riopiwatch.cf -riopiwatch.ga -riopiwatch.gq -riopiwatch.ml -riopromun.cf -riopromun.gq -riopromun.ml -riopromun.tk -riorovi.cf -riorovi.gq -riorovi.ml -riotap.com -riotel.xyz -riotesli.ga -riotesli.ml -riotesli.tk -riotete.cf -riotete.ga -riotete.ml -riotete.tk -riotlogwong.cf -riotlogwong.ga -riotlogwong.gq -riotlogwong.tk -rioveli.cf -rioveli.ga -rioveli.ml -rioveli.tk -ripioutlets.site -ripiste.cf -ripiste.ga -ripiste.gq -ripiste.tk -ripoepa.space -ripohand.cf -ripohand.gq -ripohand.ml -ripohand.tk -ripozoi9.online -rippadakidmusic.com -ripparewards.net -rippedabs.info -rippinw.fun -riqsiv.site -ririe.club -risbobi.cf -risbobi.ga -risbobi.gq -risbobi.ml -risbobi.tk -rise.de -risencraft.ru -risesturizm.online -risesturizm.xyz -rising-phoenix-takeaway.com -risingbengal.com -risingsuntouch.com -riski.cf -riskobscurity.com -riskwriterexpress.com -ristorantelafattoria.info -ristoranteparodi.com -ristorantepizzeriadamarc.com -ristoranteromanocork.com -risu.be -ritacadiz.com -ritade.com -ritadecrypt.net -ritahouse.co -ritalinus.site -ritamt2.xyz -riteros.top -ritighpi.cf -ritighpi.ga -ritighpi.gq -ritighpi.tk -ritoper.ml -ritsonoptical.com -ritualhwdz.space -ritualkisdj.email -ritugon.host -ritun.xyz -riujnivuvbxe94zsp4.ga -riujnivuvbxe94zsp4.ml -riujnivuvbxe94zsp4.tk -riukafo.cf -riukafo.ga -riukafo.ml -riulandtv.site -riut.ru -riuyt.com -riv3r.net -rival-abroad.xyz -rivalbox.com -rivalbox.info -rivalbox.net -rivaloo.com -rivalro.us -rivaz24.ru -river-branch.com -riveramail.men -riverbendsportsbar.com -rivercityferries.com -rivercityhomespot.club -riverdale.club -riverha.press -rivermarine.org -riverob.press -riverpu.xyz -riverpun.xyz -riverpunc.xyz -riverregionfood.org -riverridgepg.com -riverrunweaving.com -riversidebaitruong.com -riversidecapm.com -riversidehoteldominica.com -riversideinjurylawyers.com -riversidenailsalons.com -riversidequote.com -rivertondoctors.com -rivervalleyrep.com -riverview-takeaway.com -riverviewanimal.net -riverviewcontractors.com -rivierawellnessretreat.org -rivimeo.com -riw1twkw.pl -rixcloud00010.xyz -rixcloud00040.xyz -rixcloud00050.xyz -rixcloud00080.xyz -rixcloud00090.xyz -rixos.media -rixoscasino36.com -rixoscasino37.com -rixoscasino38.com -riytita.cf -riytita.gq -riytita.ml -riytita.tk -riywelctrig.cf -riywelctrig.ml -riywelctrig.tk -rizadr.xyz -rizamail.com -rizberk.com -rizberkcloud.com -rizberkserviscloud.com -rizedance.com -rizeligencler.com -rizeligencler.xyz -rizeliguney.xyz -rizemobese.com -rizet.in -rizhaohong.com -rizisowa.site -rj-11.cf -rj-11.ga -rj-11.gq -rj-11.ml -rj-11.tk -rj11.cf -rj11.ga -rj11.gq -rj11.ml -rj11.tk -rj2tpm.us -rj7zmu.us -rjbemestarfit.host -rjbemestarfit.site -rjbtech.com -rjcfu0.best -rjclctin.tech -rjdwpxykkv.fun -rjfencesandgates.com -rjjsz.live -rjkl.us -rjmerah.com -rjof.info -rjolympics.com -rjopoker88.com -rjopoker88.net -rjpqnu.site -rjxewz2hqmdshqtrs6n.cf -rjxewz2hqmdshqtrs6n.ga -rjxewz2hqmdshqtrs6n.gq -rjxewz2hqmdshqtrs6n.ml -rjxewz2hqmdshqtrs6n.tk -rk03.xyz -rk0fd.info -rk2w4c.us -rk4vgbhzidd0sf7hth.cf -rk4vgbhzidd0sf7hth.ga -rk4vgbhzidd0sf7hth.gq -rk4vgbhzidd0sf7hth.ml -rk4vgbhzidd0sf7hth.tk -rk5dfj-mail.xyz -rk9.chickenkiller.com -rkbxm1.site -rkcmfn.fun -rkdmjz.fun -rkhmjl.fun -rkhmqh.fun -rkjaufps.shop -rkjmwy.fun -rkkmsp.fun -rklips.com -rko.kr -rkofgttrb0.cf -rkofgttrb0.ga -rkofgttrb0.gq -rkofgttrb0.ml -rkofgttrb0.tk -rkomo.com -rkrmjk.fun -rktp.dev -rktwm.club -rkwdpa.com -rkwmhn.fun -rkxmhk.fun -rkympw.fun -rl425u.live -rl513a.live -rl75me8c.site -rlax.us -rlgzk.live -rlkwud.us -rlodvh.us -rloiua.icu -rlqjr8.info -rlrrcj.site -rls-log.net -rlubag.site -rlw999.com -rm-law.org -rm-tour.ru -rm2rf.com -rm7d3rzx.xyz -rm88.edu.bz -rma.ec -rmail.cf -rmailcloud.com -rmailgroup.in -rmakbe.best -rmas0.us -rmaudience.com -rmcecommerce.online -rmcp.cf -rmcp.ga -rmcp.gq -rmcp.ml -rmcp.tk -rmjd3z-mail.xyz -rmmakw.rest -rmnt.net -rmoaz.live -rmocybsl7.space -rmocybsl7.website -rmocybsl7.xyz -rmomail.com -rmorin.com -rmpc.de -rmpropane.com -rmqkr.net -rmr5na.us -rms-sotex.pp.ua -rmsql.info -rmtbgn.site -rmtmarket.ru -rmtvip.jp -rmtvipbladesoul.jp -rmtvipredstone.jp -rmwluudf.shop -rmwndknfo.shop -rmx-hmsstaging.com -rmxsys.com -rnabr.com -rnailinator.com -rnakmail.com -rnc69szk1i0u.cf -rnc69szk1i0u.ga -rnc69szk1i0u.gq -rnc69szk1i0u.ml -rnc69szk1i0u.tk -rnd-nedv.ru -rnd7e.us -rndoz2.com -rnewstabilbettingsnapp.xyz -rng.one -rnghlfwp.shop -rnh71.space -rniab.us -rnjc8wc2uxixjylcfl.cf -rnjc8wc2uxixjylcfl.ga -rnjc8wc2uxixjylcfl.gq -rnjc8wc2uxixjylcfl.ml -rnjc8wc2uxixjylcfl.tk -rnm-aude.com -rnohnp.com -rnstage-sale.info -rnwlqu.com -rnydx.us -rnzcomesth.com -ro-dev.online -ro-na.com -ro.lt -ro6b3.us -road2recovery.online -road66.xyz -roadcasinogam.ru -roadigraavertu.ru -roadkingoutdoor.com -roadmataqz.space -roadshowdahua.com -roahenself.cf -roahenself.ga -roahenself.ml -roamvegas.com -roanawel.cf -roanawel.ga -roanawel.gq -roanawel.ml -roanawel.tk -roar.capital -roargame.com -roaring.pro -roaringteam.com -roastedtastyfood.com -roastermachines.org -roastortoast.us -roastpig.app -roastscreen.com -roawintio.cf -roawintio.gq -roawintio.tk -rob4sib.org -robaxin.website -robbogans.info -robbolahta.ru -robchicly.com -robedesoiree-longue.com -robentowels.com -robergwo.gq -robergwo.ml -robergwo.tk -robertdipietro.com -robertiazx.ru -robertmowlavi.com -robertodure.tech -robertos-takeaway-louth.com -robertspcrepair.com -robind.dev -robink.info -robink.us -robinkikuchi.info -robinkikuchi.us -robinpenceimages.com -robinsnestfurnitureandmore.com -robinsonyablon.com -robinzonshop.ru -robkanass.ml -robkanass.tk -robkrop.land -robmita.cf -robmita.ga -robmita.gq -robmita.ml -robmita.tk -robmorgblack.com -robo-opus.com -robo.epool.pl -robo.poker -robo3.club -robo3.co -robo3.me -robo3.site -roboku.com -robolovers.ru -robomart.net -robonx.com -robot-alice.ru -robot-mail.com -robot2.club -robot2.me -robotappstore.info -robotbobot.ru -robotent.org -robothorcrux.com -roboticflowerpot.com -robotichomecenter.com -robotickee.com -roboticpenguina.com -robotinc.net -robotizes167vl.online -robotjobs.org -robotodo.ru -robox.agency -robsden.info -robsradio.com -robufo.info -robytoy.com -rocanoapp.ru -roccard.com -roccas-takeaway.com -rocco.zapto.org -roccoshmokko.com -rochelleskincareasli.com -rochesterquote.com -rochin-diamantes.com -rochmeve.cf -rochmeve.ga -rochmeve.gq -rochmeve.ml -rochmeve.tk -rochwitesepticsystemsllc.com -rocibou.cf -rocibou.ga -rocibou.gq -rocibou.ml -rocibou.tk -rockabubz.com -rockandrollglossary.com -rockdalerodandgunclub.online -rockdaleumc.org -rockdunna.cf -rockdunna.gq -rockdunna.ml -rockdunna.tk -rocket201.com -rocketfuelforyourbrain.rocks -rockethosting.xyz -rocketleague-team.com -rocketmail.cf -rocketmail.ga -rocketmail.gq -rocketscienceskincare.com -rocketshipstudio.net -rocketslotsnow.co -rocketspark.app -rocketspinz.co -rockfordnailsalons.com -rockhamptonworkshops.com -rockhillcareers.com -rockingchair.com -rockislandapartments.com -rockkes.us -rockmail.top -rockmailapp.com -rockmailgroup.com -rockofagesranch.org -rockpooldiningroup.com -rockport.se -rocksmartlink.site -rockstarkelly.com -rocktheheads.com -rocktoberfishing.org -rockwithyouallnight23.com -rockwoolstock.ru -rockyboots.ru -rockymountainscottierescue.org -rockyoujit.icu -rockypointfamilydentist.net -rockytheraccoon.com -rockzoppten.cf -rockzoppten.ga -rockzoppten.gq -rockzoppten.ml -rockzoppten.tk -rocoiran.com -rocord.website -rodapoker.xyz -rodax-software.online -roddrodden.com -rodduh.ru -roderina.com -rodeslava.ru -rodewayinnmuskogee.com -rodfirearms.com -rodionder63.ru -rodiquez.eu -rodiquezmcelderry.eu -rodjohnsonswienershack.net -rodjohnsonwienershack.com -rodneystudios.com -rodneywebb2023.com -rodneywebb2024.com -rodniedveri.ru -rodriguealcazar.com -rodrunner.ru -rodsupersale.com -rodtookjing.com -rodumre.gq -rodumre.ml -rodumre.tk -roduret.site -rodwhifa.cf -rodwhifa.ga -rodwhifa.ml -rodwhifa.tk -rodzinnie.org -roegegna.cf -roegegna.ga -roegegna.tk -roetrisjohn.cf -roetrisjohn.ga -roetrisjohn.gq -roetrisjohn.ml -roewe.cf -roewe.ga -roewe.gq -roewe.ml -rofacme.cf -rofacme.gq -rofacme.ml -rofacme.tk -rogacomp.cf -rogacomp.ga -rogacomp.gq -rogacomp.ml -rogacomp.tk -rogapartsllc.com -rogeoi.xyz -roger-leads.com -rogerbradburyphotography.com -rogerin.space -rogerleighton.com -rogermorerocks.com -rogerwisor.com -rogge.best -rogjf.com -rogowiec.com.pl -rogpasimp.cf -rogpasimp.ga -rogpasimp.gq -rogpasimp.ml -rogpasimp.tk -rogswtdiv.cf -roguebytes.com -roguesec.net -roguesec.org -roguewavecoffee.com -roguewaveroasting.com -rohandoge.ml -rohingga.xyz -rohkalby.com -roi50.ru -roi70.ru -roidmass.com -roigiayto.website -roikased.ga -roilibhindmil.site -roiturater.tk -rojadirecta.best -rojay.fr -rojolag.com -rojomorgan.com -roketus.com -rokko-rzeszow.com -roko-koko.com -rokoktoto.net -rokpa.cd -roksbahis61.online -roksbahis61.xyz -roksbahis79.com -roksbahis82.com -rokucollection.com -rokzrdprvt.space -rolex19bet.com -rolex31bet.com -rolexbahis.com -rolexdaily.com -rolexok.com -rolexpoker88.asia -rolexreplicainc.com -rolexreplicawatchs.com -rolipic.site -rollagodno.ru -rollegal.site -rollerbrush.org -rollerbrushes.net -rollercover.org -rollercover.us -rollercovers.net -rollercovers.us -rollerlaedle.de -rollh4.live -rollh49.live -rollindo.agency -rolling-discs.ru -rollingboxjapan.com -rollingvase.com -rollsroyce-plc.cf -rollsroyce-plc.ga -rollsroyce-plc.gq -rollsroyce-plc.ml -rollsroyce-plc.tk -rolndedip.cf -rolndedip.ga -rolndedip.gq -rolndedip.ml -rolndedip.tk -rolne.seo-host.pl -rolorin.space -rolva.net -rolvh.us -roma-clondalkin.com -roma-drogheda.com -roma-fish-chips.com -roma-takeaway.com -romabeto.xyz -romabetz.xyz -romaclondalkin.com -romagnabeach.com -romail9.com -romails.net -romaitaliantakeaway.com -romana.site -romaneibdo.xyz -romanfitnesssytems.com -romania-nedv.ru -romania-news.space -romaniansalsafestival.com -romanibm.site -romanibv.site -romanict.site -romanidd.site -romanidq.site -romanies.site -romanstatues.net -romanticizing335sg.online -romanticsgarden.com -romantiskt.se -romantyczka.pl -romanvstihah.site -romareusa.ru -romasense.ru -rombertoni.ru -rombs.site -romecapitol.org -romeesat.com -romemcguigan.com -romeotourism.com -romeoturizm.com -romeovilleapartments.com -romforyous.info -romloader.ru -romul.xyz -ronabuildingcentre.com -ronadecoration.com -ronadvantage.com -ronahomecenter.com -ronahomegarden.com -ronaksoft.ml -ronalansing.com -ronaldperlman.com -ronalerenovateur.com -ronbennettmemorialfund.org -rondecuir.us -ronell.me -rongcai23.icu -rongchuang-pz.com -rongqi33.com -rongs2gw.com -rongs2yl.com -rongwei-organic.com -roninmt2.com -roninmt2.xyz -ronipidp.cf -ronipidp.ga -ronipidp.gq -ronnierage.net -ronstasmoove.com -ronter.com -ronvfiuj.shop -roodrc.tk -roodrcethernlman.cf -roodrcethernlman.ml -roof99dollars.com -roofcleanermd.com -roofing4.expresshomecash.com -roofingcontractormassachusetts.com -roofsninetyninedollars.com -roofter.com -rooftest.net -roofwashmd.com -room369.red -roomka.online -roomservicemassage.com -roomy-hostel.ru -rooqie.com -rooseveltmail.com -rooster-pil-pil-ballincollig.com -rooststellarsmelt.site -root-servers.site -rootbrand.com -rootdz.com -rootednnature.biz -rootfest.net -rootlocus.net -rootmoney05.icu -roots31.ru -rootsfarmllc.net -rootsfarmllc.org -roozjame.com -roozu.xyz -ropgoraws.cf -ropgoraws.ga -ropgoraws.ml -ropgoraws.tk -rophievisioncare.com -ropolo.com -roqcast.club -rorarbeten.se -rosaceans.info -rosadvocati.ru -rosakaa.com -rosbelmash.ru -rose-garden-finglas.com -rose-law.biz -rose2.ga -rosebear21.ru -rosebearmylove.ru -rosechina.com -rosegarden-chinese.com -rosejellyyoga.com -roselism.com -roseltorg-info.ru -roselug.org -rosendalerapids.com -rosendalerapids.net -roseofwind.ru -rosepokers.com -rosetrimmers.com -rosewoodguild.com -roshaveno.com -rosiemorton.buzz -roskaltprec.cf -roskaltprec.ga -roskaltprec.ml -roskaltprec.tk -roslit.pro -roslit.site -rosmillo.com -rosnefl.ru -rospravosudie.info -rosreestr-50.ru -rosreestr-77.ru -rossa-art.pl -rossmail.ru -rossminer.online -rossminzdrav.site -rosso.ml -rossocorso.online -rossowoodfiredpizza.com -rosspenman.com -rostov862.ru -roswelltransmissions.com -rot3k.com -rotadrs.info -rotakurumsal.xyz -rotaniliam.com -rotaparts.com -rotaract2420.net -rotarybrush.biz -rotarybrush.us -rotarybrushes.org -rotarybrushes.us -rotarycampenterprise.org -rotate.pw -rotecproperty.xyz -rotermail.com -roth-group.com -rothesayrepair.com -rothschildsbeware.vision -rotingchi.ga -rotingchi.gq -rotingchi.ml -rotingchi.tk -rotiyu1-privdkrt.press -rotiyu1-privdkrt.space -rotiyu1-privdkrt.website -rotmanventurelab.com -rotmiss.com -rotrpg.com -rotterdamdevelopers.online -rottingdean.property -rotulosonline.site -rotupush.com -rou.us -rou31.space -roughch.press -roughess.xyz -roughidioe.space -roughiv.email -roughlive.recipes -roughmout.email -roughreunitesmirk.site -roughvali.site -roujpjbxeem.agro.pl -roulette-megasystem.com -roulettecash.org -roulettesuperpieno.com -roumeans.com -roundbrush.net -roundbrushes.org -roundcessqah.cf -roundcessqah.ga -roundcessqah.ml -roundclap.fun -roundclean.fun -roundhouseaquarium.com -roundlayout.com -roundpolik.ml -roundsnac.email -roundtabletechnology.info -roundtheweb.com -roundtowe.icu -rounduni.xyz -rousalmon.com -rout66.ru -routeegyptiansnack.site -routegogo.com -routesofsoul.net -routine4me.ru -routunner.com -rouverpa.ga -rouverpa.gq -rouverpa.ml -rouwbloemen.nu -rouyuba.xyz -rover.info -rover.org -rover100.cf -rover100.ga -rover100.gq -rover100.ml -rover100.tk -rover400.cf -rover400.ga -rover400.gq -rover400.ml -rover400.tk -rover75.cf -rover75.ga -rover75.gq -rover75.ml -rover75.tk -roverbedf.cf -roverbedf.ml -roverbedf.tk -rovesurf.com -rovianconspiracy.com -rovolowo.com -row.kr -rowantreepublishing.com -rowe-solutions.com -rowingbreak.com -rowingbreak.org -rowmin.com -rowmoja6a6d9z4ou.cf -rowmoja6a6d9z4ou.ga -rowmoja6a6d9z4ou.gq -rowmoja6a6d9z4ou.ml -rowmoja6a6d9z4ou.tk -rowntreewalks.org -rowrites.com -rowtaefo.site -rox-weelfree01.com -rox-weelfree02.com -roxcasinos1.ru -roxette.cd -roxmail.co.cc -roxmail.tk -roxtransit.com -roxz.app -roxz.bargains -roxz.best -roxz.blog -roxz.business -roxz.care -roxz.cash -roxz.chat -roxz.cheap -roxz.codes -roxz.company -roxz.coupons -roxz.deals -roxz.digital -roxz.discount -roxz.guru -roxz.link -roxz.live -roxz.money -roxz.ninja -roxz.party -roxz.pro -roxz.promo -roxz.review -roxz.reviews -roxz.rocks -roxz.sale -roxz.tips -royacupuncture.com -royal-centre.com -royal-host.su -royal-mali.art -royal-pay.ru -royal-soft.net -royal-spice-kilkenny.com -royal.net -royal70game.com -royalbetin49.com -royalbetin50.com -royalbetin51.com -royalbetin52.com -royalbetin53.com -royalbetin55.com -royalbetingiris1.xyz -royalbetingiris3.xyz -royalchocolatepalace.com -royalchocolatepalace.net -royalcitytakeaway.com -royalcoachbuses.com -royaldoodles.org -royale-dns.online -royalepizzaandburgers.com -royalflush.hk -royalflush128.live -royalgardenchinesetakeaway.com -royalgifts.info -royalgreencondosg.com -royalhost.info -royalhosting.ru -royalmail.top -royalmarket.club -royalmarket.life -royalmarket.online -royalnt.net -royalpizzaonline.com -royalpizzatakeaway.com -royalpresents.ru -royalpretendsnowy.site -royalranch.org -royalrosebrides.com -royalsgame.com -royalspicetakeaway.com -royaltangkas.xyz -royaltowerssanfrancisco202.com -royalvip.win -royalweb.email -royandk.com -royaumedesjeux.fr -royfeld.com -royfield.com -royinnandsuits.com -royprimaf.gq -royprimaf.ml -royprimaf.tk -roys.ml -royssbet1.xyz -royssbet10.com -royssbet8.com -roza-rouz.ru -roza-tmn.ru -rozadrevo.ru -rozanamarketing.com -rozaoils.site -rozavenok.ru -rozavk.ru -rozebet.com -rozkamao.in -rozwojosobisty.site -rp-attract.ru -rpaowpro3l5ha.tk -rpervahal.cf -rpervahal.tk -rpffn.com -rpfundingoklahoma.com -rpgitxp6tkhtasxho.cf -rpgitxp6tkhtasxho.ga -rpgitxp6tkhtasxho.gq -rpgitxp6tkhtasxho.ml -rpgitxp6tkhtasxho.tk -rpgkeronbeta.ru -rpgxxxgames.com -rphqakgrba.pl -rpkxsgenm.pl -rpl-id.com -rplid.com -rpm.social -rpmgmt.network -rpmleadgeneration.marketing -rpmleadgeneration.net -rppkn.com -rps-msk.ru -rpvduuvqh.pl -rpx12k.us -rq1.in -rq1h27n291puvzd.cf -rq1h27n291puvzd.ga -rq1h27n291puvzd.gq -rq1h27n291puvzd.ml -rq1h27n291puvzd.tk -rq4oid.us -rq6668f.com -rqaxih.com -rqhpce.us -rqjjf.live -rqlrf.com -rqmtg.com -rqt8bw.info -rqu.us -rqvph.site -rqzuelby.pl -rr-0.cu.cc -rr-1.cu.cc -rr-2.cu.cc -rr-3.cu.cc -rr-ghost.cf -rr-ghost.ga -rr-ghost.gq -rr-ghost.ml -rr-ghost.tk -rr-group.cf -rr-group.ga -rr-group.gq -rr-group.ml -rr-group.tk -rr.ccs.pl -rr18269.com -rr57822.com -rr7665.com -rr9827.com -rraecohouse.co -rrasianp.com -rrasinstar.cf -rrasinstar.ga -rrasinstar.tk -rraybanwayfarersaleukyj.co.uk -rrbonmrrt.shop -rrc6lf.info -rrckefu.site -rremontywarszawa.pl -rrilnanan.gq -rrilnanan.tk -rrjpwb.us -rrkk99.com -rrkvacanthomes.com -rrocket.ru -rrosesarered.com -rrq.us -rrqkd9t5fhvo5bgh.cf -rrqkd9t5fhvo5bgh.ga -rrqkd9t5fhvo5bgh.gq -rrqkd9t5fhvo5bgh.ml -rrqkd9t5fhvo5bgh.tk -rrr062.com -rrr1004.com -rrr813.com -rrragz5.best -rrrcat.com -rrwbltw.xyz -rrxnt.com -rs-76.ru -rs-p.club -rs2gw.com -rs2gwzc.com -rs311e8.com -rs9i4.us -rsaw68.info -rsbersbe.shop -rsbetter20.xyz -rsbysdmxi9.cf -rsbysdmxi9.ga -rsbysdmxi9.gq -rsbysdmxi9.ml -rsbysdmxi9.tk -rsco.email -rsefinepics.com -rseryl-sy.com -rsf.world -rsfdgtv4664.cf -rsfdgtv4664.ga -rsfdgtv4664.gq -rsfdgtv4664.ml -rsfdgtv4664.tk -rsgkefu.online -rsgkefu.site -rshdjg.icu -rsjp.tk -rsma.de -rsmix.ru -rsnapbet2020.xyz -rsnfoopuc0fs.cf -rsnfoopuc0fs.ga -rsnfoopuc0fs.gq -rsnfoopuc0fs.ml -rsnfoopuc0fs.tk -rsnwachg.tech -rsprd.com -rsqaat.site -rsqqz6xrl.pl -rsqytx.com -rssblog.pl -rssbt.com -rssfwu9zteqfpwrodq.ga -rssfwu9zteqfpwrodq.gq -rssfwu9zteqfpwrodq.ml -rssfwu9zteqfpwrodq.tk -rssmtp.com -rsstao.com -rst-sec.com -rst-sec.net -rstabbettingsnapp.xyz -rstabbettsnupp2020.xyz -rstabetsnup.xyz -rstabetting.xyz -rstabilbett.xyz -rstabilbettsnapp.xyz -rstabilitybetsnapp.xyz -rstabilitybettingsnapp.xyz -rstsec.com -rsvhr.com -rsvpee.com -rswilson.com -rswoodwinds.info -rsworldsoftware.com -rsx.cash -rt58cq.us -rtard.com -rtb20.com -rtclogisticsmail.com -rtcxstore.com -rtechcrm.com -rtechmedia.com -rtert.org -rtfa.site -rtfb.site -rtfc.site -rtfd.site -rtffzim.com -rtfh.site -rtfx.site -rthjr.co.cc -rthomellc.com -rtjg99.com -rtji9c.us -rtmhk.com -rtn37n.xyz -rtotlmail.com -rtotlmail.net -rtpcornpany.com -rtr6nj.info -rtrtr.com -rts137.com -rts6ypzvt8.ga -rts6ypzvt8.gq -rts6ypzvt8.ml -rts6ypzvt8.tk -rtsauth.shop -rtskiya.xyz -rtstyna111.ru -rtstyna112.ru -rtvregion.ru -rtyreszxl.ru -ru-api-id-dns-cgi-bin.ru -ru-casinos.com -ru-emailru.host -ru-emailru.online -ru-from.site -ru-id23907.xyz -ru-in.xyz -ru-inbox.fun -ru-loan.ru -ru-mail.website -ru-wargamming-net.icu -ru-wargarning.net -ru.coffee -ru1.site -ru196595463.ru -ru4kav.site -ruafdulw9otmsknf.cf -ruafdulw9otmsknf.ga -ruafdulw9otmsknf.ml -ruafdulw9otmsknf.tk -ruallnews.ru -ruangbagus.com -ruangjawa.com -ruasspornisn4.uni.cc -ruay016.com -ruay028.com -ruay046.com -ruay047.com -ruay048.com -ruay053.com -ruay055.com -ruay061.com -ruay070.com -ruay076.com -ruay084.com -ruay089.com -ruay090.com -ruay105.com -ruay108.com -ruay116.com -ruay117.com -ruay127.com -ruay134.com -ruay147.com -ruay149.com -ruay151.com -ruay152.com -ruay156.com -ruay166.com -ruay175.com -ruay184.com -ruay185.com -ruay187.com -ruay189.com -ruay194.com -ruay196.com -ruay200.com -ruay206.com -ruay219.com -ruay220.com -ruay235.com -ruay244.com -ruay247.com -ruay272.com -ruay278.com -ruay283.com -ruay292.com -ruay301.com -ruay305.com -ruay307.com -ruay314.com -ruay315.com -ruay326.com -ruay332.com -ruay337.com -ruay341.com -ruay342.com -ruay353.com -ruay358.com -ruay362.com -ruay369.com -ruay372.com -ruay376.com -ruay386.com -ruay399.com -ruay406.com -ruay407.com -ruay412.com -ruay415.com -ruay418.com -ruay419.com -ruay420.com -ruay430.com -ruay431.com -ruay436.com -ruay437.com -ruay457.com -ruay465.com -ruay472.com -ruay478.com -ruay479.com -ruay480.com -ruay482.com -ruay490.com -ruay493.com -ruay497.com -ruay500.com -ruay503.com -ruay504.com -ruay505.com -ruay506.com -ruay511.com -ruay513.com -ruay520.com -ruay521.com -ruay531.com -ruay533.com -ruay538.com -ruay547.com -ruay548.com -ruay550.com -ruay551.com -ruay552.com -ruay554.com -ruay566.com -ruay567.com -ruay569.com -ruay575.com -ruay576.com -ruay584.com -ruay591.com -ruay594.com -ruay595.com -ruay599.com -ruay608.com -ruay610.com -ruay613.com -ruay622.com -ruay623.com -ruay624.com -ruay630.com -ruay633.com -ruay639.com -ruay651.com -ruay652.com -ruay654.com -ruay656.com -ruay658.com -ruay659.com -ruay660.com -ruay662.com -ruay663.com -ruay669.com -ruay671.com -ruay676.com -ruay678.com -ruay679.com -ruay684.com -ruay688.com -ruay697.com -ruay702.com -ruay709.com -ruay710.com -ruay713.com -ruay714.com -ruay719.com -ruay723.com -ruay724.com -ruay725.com -ruay729.com -ruay733.com -ruay736.com -ruay739.com -ruay741.com -ruay746.com -ruay747.com -ruay748.com -ruay758.com -ruay763.com -ruay766.com -ruay775.com -ruay776.com -ruay780.com -ruay783.com -ruay787.com -ruay790.com -ruay791.com -ruay792.com -ruay793.com -ruay796.com -ruay797.com -ruay800.com -ruay805.com -ruay811.com -ruay812.com -ruay816.com -ruay818.com -ruay824.com -ruay828.com -ruay830.com -ruay831.com -ruay832.com -ruay834.com -ruay840.com -ruay842.com -ruay843.com -ruay845.com -ruay848.com -ruay851.com -ruay860.com -ruay870.com -ruay871.com -ruay874.com -ruay875.com -ruay876.com -ruay879.com -ruay883.com -ruay884.com -ruay885.com -ruay886.com -ruay895.com -ruay896.com -ruay898.com -ruay899.com -ruay901.com -ruay902.com -ruay908.com -ruay912.com -ruay913.com -ruay919.com -ruay924.com -ruay928.com -ruay929.com -ruay930.com -ruay937.com -ruay938.com -ruay940.com -ruay945.com -ruay948.com -ruay949.com -ruay953.com -ruay956.com -ruay965.com -ruay966.com -ruay969.com -ruay976.com -ruay977.com -ruay980.com -ruay984.com -ruay986.com -ruay988.com -ruay994.com -rubbank.ru -rubberbunnys.icu -rubbishmaestro.info -rubinetta.com -rubioproperties.com -rubiro.ru -rubitcoini.ru -rubro-59.com -ruby-keys.ru -ruby.business -rubyandbettysattic.com -rubyblogger.com -rubysec.org -rubystore.store -rucenrmf.shop -ruclawwzy3.xyz -rudelyawakenme.com -rudicle.xyz -rudimentapp.com -rudistettner.com -ruditnugnab.xyz -rudrapatna.com -rudybet76.com -rudybet92.com -rudymail.ml -rudysom.com -ruedeschaus.com -ruelite.ru -rueportcent.cf -rueportcent.ga -rueportcent.gq -ruetin.online -ruffrey.com -rufiysmbz.shop -rufoej.us -rugbyfixtures.com -rugbymov.icu -rugbytru.icu -rugedgrade.com -ruggedinbox.com -ruhdwb.us -ruhklasn.website -ruhq1o.us -ruhshe5uet547.tk -rui-yun.com -ruiheng.xyz -ruinnyrurrendmail.com -ruizsweet.com -rujhuk.us -ruk17.space -ruki-master.ru -rule.moscow -ruletka-online.ru -ruletkacsgo.com -rullezslots.ru -rulobet49.com -ruloli.com -rum-expert.com -rumbu.com -rumednews.site -rumgel.com -rumnrhythm.com -rumoney.club -rumorattic.us -rumorbrai.xyz -rumored562ws.online -rumorssalonaz.biz -rumorsto.xyz -rumpelhumpel.com -rumpelkammer.com -rumplenewskins.com -rumtos.info -rumuspoker.stream -rumweni.cf -rumweni.tk -run600.net -runalone.uni.me -runball.us -runballrally.us -runbhumi.club -runbhumi.live -rundablage.com -rundownsoftware.com -runeclient.com -runeclient.net -runelite.best -runemax.net -runemax.org -runews11.ru -runfoxyrun.com -runge-kutta.cf -runge-kutta.gq -runge-kutta.tk -runi.ca -runjoehalerun.com -runled-official.ru -runmail.club -runmail.info -runnersreference.com -running-mushi.com -running-shoes-for-men.com -runningdivas.com -runningreel.com -runninnqey.space -runonwords.com -runrunrun.net -runsarahrun.com -runyainvestments.com -runyaproperties.com -runyourmouthaboutit.com -runz.education -ruoleng.com -ruonion.su -ruorgs.ru -ruozhi.cn -rupay.space -rupayamail.com -rupe4ora.ru -rupeeathome.com -ruprom.info -ruptteco.cf -ruptteco.gq -ruptteco.ml -ruptteco.tk -rupya.info -rupya.xyz -ruqi.site -ruracgent.cf -ruracgent.ga -ruracgent.ml -ruracgent.tk -ruralrentals.net -ruralscreensorry.site -rurealjoe1.ru -ruru.be -rus-black-blog.ru -rus-flat.ru -rus-massaggio.com -rus-oonies.ru -rus-sale.pro -rusanplus.ru -rusdoc.xyz -rusecoflot.ru -rusellhobss.online -rusellhobss.site -rusgiftshop.com -rusgilcorporate.com -rush.ovh -rushdrive.com -rushingfeet.com -rushmails.com -rushmorekm.com -rushmotelm.com -rushotel24.ru -rushwarsgames.ru -rusita.ru -ruskaiw.pw -ruskasino.info -ruskovka.ru -ruslanneck.de -ruslantm.ru -ruslep.com -ruslot.site -rusmednews.ru -rusmotor.com -rusnewsfeed.ru -rusop.space -ruspalfinger.ru -ruspool.org -russ-samsung.ru -russ2004.ru -russell-technology.com -russellandnatasha.com -russellconstructionca.com -russelljohn.info -russellmail.men -russia-champion.ru -russia-future.site -russia-nedv.ru -russia-vk-mi.ru -russian-elka.ru -russianeditor.online -russianizba.ru -russianvolumesottawa.com -russianwebgirls.ru -russiarp04.online -russiaventura.com -russkovach.com -russmac.ml -russtavki.ru -rust-inside.ru -rust-kr.com -rustarticle.com -rustetoone.icu -rusticcel.com -rusticdecorstuff.com -rustinside.ru -rustoya.ru -rustrilca.gq -rustrilca.ml -rustrilca.tk -rustroigroup.ru -rusturistik.ru -rusturne.ru -rustydoor.com -rusvet.org -rusvideos.su -rusvidos.online -rusvisit.ru -rutafagre.ru -rutale.ru -ruthann.best -rutherfordium.best -ruthservicios.net -rutracker.moscow -rutv.site -ruu.kr -ruvidrink.com -ruvidrinks.com -ruvifood.com -ruvinow.com -ruvinutrition.com -ruwe.site -ruyadasarilmak.com -ruzavod.ru -ruzsbpyo1ifdw4hx.cf -ruzsbpyo1ifdw4hx.ga -ruzsbpyo1ifdw4hx.gq -ruzsbpyo1ifdw4hx.ml -ruzsbpyo1ifdw4hx.tk -ruzzinbox.info -rv-br.com -rv.storage -rvawomensjournal.com -rvb.ro -rvbspending.com -rvctf.com -rvdogs.com -rvemold.com -rviixj.us -rvjtudarhs.cf -rvjtudarhs.ga -rvjtudarhs.gq -rvjtudarhs.ml -rvjtudarhs.tk -rvkazino.com -rvlatinamerica.com -rvrentalsatlanta.org -rvrentalsinatlanta.com -rvrsemortage.bid -rvslideout.com -rvspedals.com -rvstep.com -rvtiaqwf.shop -rvwt4s.us -rvx9p.us -rvxwdz.site -rw0vps.com -rw24.de -rw9.net -rward.se -rwbktdmbyly.auto.pl -rwhhbpwfcrp6.cf -rwhhbpwfcrp6.ga -rwhhbpwfcrp6.gq -rwhhbpwfcrp6.ml -rwhhbpwfcrp6.tk -rwhpr33ki.pl -rwinner2020emailup.xyz -rwww1.buzz -rx-seer.com -rx.dred.ru -rx.qc.to -rxbagimprints.com -rxbuy-pills.info -rxcbilling.com -rxdoc.biz -rxdrugsreview.info -rxdtlfzrlbrle.cf -rxdtlfzrlbrle.ga -rxdtlfzrlbrle.gq -rxdtlfzrlbrle.ml -rxlakbrw.site -rxlur.net -rxmail.us -rxmail.xyz -rxmaof5wma.cf -rxmaof5wma.ga -rxmaof5wma.gq -rxmaof5wma.ml -rxmaof5wma.tk -rxmedic.biz -rxnts2daplyd0d.cf -rxnts2daplyd0d.ga -rxnts2daplyd0d.gq -rxnts2daplyd0d.tk -rxpil.fr -rxpiller.com -rxpillstore.biz -rxr6gydmanpltey.cf -rxr6gydmanpltey.ml -rxr6gydmanpltey.tk -rxtmk.us -rxtx.us -ryan-wood.ru -ryan1home.buzz -ryanandkellywedding.com -ryanb.com -ryanhumphries.dev -ryanlackey.org -ryanlester.name -ryannoack.com -ryanreedy.com -ryanreynolds.info -ryanswebsite.xyz -ryanswebsite1.xyz -ryanswebsite2.xyz -ryanswebsite5.xyz -ryazanpressa.ru -rybalkovedenie.ru -rybprom.biz -rycdqd.icu -rychal-de-carne.com -rychzd.best -rycz2fd2iictop.cf -rycz2fd2iictop.ga -rycz2fd2iictop.gq -rycz2fd2iictop.ml -rycz2fd2iictop.tk -rydh.xyz -rydjfs.site -rye6mi.us -ryen15ypoxe.ga -ryen15ypoxe.ml -ryen15ypoxe.tk -ryik1q.us -ryj15.tk -ryjewo.com.pl -ryldnwp4rgrcqzt.cf -ryldnwp4rgrcqzt.ga -ryldnwp4rgrcqzt.gq -ryldnwp4rgrcqzt.ml -ryldnwp4rgrcqzt.tk -rym84t-mail.xyz -ryno-4wd.com -rynooffroad.com -ryoblog.com -ryqi.com -ryqila.info -ryrixu.info -rysunek.biz -ryszardkowalski.pl -rytwjg.site -ryukyuxxrf.space -ryukyuzxis.space -ryumail.net -ryumail.ooo -ryvima.cf -ryvima.ga -ryvima.ml -ryvoice.org -ryxns.xyz -ryxuzt.us -ryzdgwkhkmsdikmkc.cf -ryzdgwkhkmsdikmkc.ga -ryzdgwkhkmsdikmkc.gq -ryzdgwkhkmsdikmkc.tk -rz5ha8.site -rzaca.com -rzbt8u-mail.xyz -rzcbqdmj.shop -rzdxpnzipvpgdjwo.cf -rzdxpnzipvpgdjwo.ga -rzdxpnzipvpgdjwo.gq -rzdxpnzipvpgdjwo.ml -rzdxpnzipvpgdjwo.tk -rze.fr -rzemien1.iswift.eu -rzesbt.us -rzh4xc.site -rzhaoyun.com -rzip.site -rzjzi.live -rzm-mebel.ru -rzmidias.com -rzn.host -rzn.services -rznf6v.us -rznsco.shop -rzuduuuaxbqt.cf -rzuduuuaxbqt.ga -rzuduuuaxbqt.gq -rzuduuuaxbqt.ml -rzuduuuaxbqt.tk -rzvwgr.host -rzwiocso.shop -rzxmoog.com -rzzr9.site -s-e-arch.com -s-hardware.com -s-health.site -s-lashes.info -s-mail.ga -s-mail.gq -s-motor.ru -s-mythink.tk -s-port.pl -s-potencial.ru -s-rnow.net -s-s.flu.cc -s-s.igg.biz -s-s.nut.cc -s-s.usa.cc -s-sakamas.ru -s-shoponline.info -s-silaman.ru -s-zx.info -s.bloq.ro -s.bungabunga.cf -s.dextm.ro -s.ea.vu -s.polosburberry.com -s.proprietativalcea.ro -s.sa.igg.biz -s.vdig.com -s.wkeller.net -s0.at -s00.orangotango.ga -s0129.com -s0146.com -s0147.com -s0181.com -s0185.com -s0190.com -s0204.com -s0214.com -s0216.com -s0217.com -s0224.com -s0264.com -s0313.com -s0315.com -s0337.com -s0341.com -s0346.com -s0352.com -s0384.com -s0389.com -s0407.com -s0439.com -s0450.com -s0458.com -s0467.com -s0470.com -s0509.com -s0574.com -s0585.com -s0641.com -s0652.com -s0737.com -s0835.com -s0837.com -s0846.com -s0872.com -s0924.com -s0926.com -s0971.com -s0982.com -s0nny.com -s0ny.cf -s0ny.flu.cc -s0ny.ga -s0ny.gq -s0ny.igg.biz -s0ny.ml -s0ny.net -s0ny.nut.cc -s0ny.usa.cc -s0ojarg3uousn.cf -s0ojarg3uousn.ga -s0ojarg3uousn.gq -s0ojarg3uousn.ml -s0ojarg3uousn.tk -s1011.com -s10ss10r.shop -s1211.com -s15qo.site -s1775.com -s1811.com -s182k.info -s188city.com -s188game.com -s188live.com -s1nj8nx8xf5s1z.cf -s1nj8nx8xf5s1z.ga -s1nj8nx8xf5s1z.gq -s1nj8nx8xf5s1z.ml -s1nj8nx8xf5s1z.tk -s1xssanlgkgc.cf -s1xssanlgkgc.ga -s1xssanlgkgc.gq -s1xssanlgkgc.ml -s1xssanlgkgc.tk -s29-megamoney.site -s29-megamoney.website -s2d4o1b3t2.fun -s2drawoff.com -s2dsan.info -s2f14n.best -s2znxa.com -s333pro.com -s33db0x.com -s35-cashworld.website -s360slots.com -s37ukqtwy2sfxwpwj.cf -s37ukqtwy2sfxwpwj.ga -s37ukqtwy2sfxwpwj.gq -s37ukqtwy2sfxwpwj.ml -s385u.site -s3mle.us -s3rttar9hrvh9e.cf -s3rttar9hrvh9e.ga -s3rttar9hrvh9e.gq -s3rttar9hrvh9e.ml -s3rttar9hrvh9e.tk -s3s4.tk -s3wrtgnn17k.cf -s3wrtgnn17k.ga -s3wrtgnn17k.gq -s3wrtgnn17k.ml -s3wrtgnn17k.tk -s42n6w7pryve3bpnbn.cf -s42n6w7pryve3bpnbn.ga -s42n6w7pryve3bpnbn.gq -s42n6w7pryve3bpnbn.ml -s42n6w7pryve3bpnbn.tk -s43n0sklopxmtar.xyz -s48aaxtoa3afw5edw0.cf -s48aaxtoa3afw5edw0.ga -s48aaxtoa3afw5edw0.gq -s48aaxtoa3afw5edw0.ml -s48aaxtoa3afw5edw0.tk -s4a5gb.us -s4f.co -s4m1ye.us -s51zdw001.com -s5jw.us -s5p.site -s6.weprof.it -s64hedik2.tk -s68betyes.com -s6a5ssdgjhg99.cf -s6a5ssdgjhg99.ga -s6a5ssdgjhg99.gq -s6a5ssdgjhg99.ml -s6a5ssdgjhg99.tk -s6d9o1bt2.fun -s6qjunpz9es.ga -s6qjunpz9es.ml -s6qjunpz9es.tk -s709l5d6.fun -s7665.com -s77win.com -s77win.net -s78poker.biz -s78qp.com -s80aaanan86hidoik.cf -s80aaanan86hidoik.ga -s80aaanan86hidoik.gq -s80aaanan86hidoik.ml -s8304.com -s8323.com -s8325.com -s8486.com -s8610.com -s8617.com -s8625.com -s8635.com -s88u.net -s88v.net -s88y.net -s8sigmao.com -s9094.com -s95599.com -s96lkyx8lpnsbuikz4i.cf -s96lkyx8lpnsbuikz4i.ga -s96lkyx8lpnsbuikz4i.ml -s96lkyx8lpnsbuikz4i.tk -s97998.com -s9827.com -s98eoj.com -sa-001.com -sa-cf.com -sa-ci.com -sa.igg.biz -sa22y22enbrkek.xyz -sa36.pro -sa5.net -sa6hpayn.online -sa888.store -sa985.com -saa1adfsdfds3er.tk -saaabbt2019.club -saaabt2019.club -saab9-3.cf -saab9-3.ga -saab9-3.gq -saab9-3.ml -saab9-3.tk -saab9-4x.cf -saab9-4x.ga -saab9-4x.gq -saab9-4x.ml -saab9-4x.tk -saab9-5.cf -saab9-5.ga -saab9-5.gq -saab9-5.ml -saab9-5.tk -saab9-7x.cf -saab9-7x.ga -saab9-7x.gq -saab9-7x.ml -saab9-7x.tk -saab900.cf -saab900.ga -saab900.gq -saab900.ml -saab900.tk -saabaru.cf -saabaru.ga -saabaru.gq -saabaru.ml -saabaru.tk -saabcars.cf -saabcars.ga -saabcars.gq -saabcars.ml -saabcars.tk -saabgroup.cf -saabgroup.ga -saabgroup.gq -saabgroup.ml -saabgroup.tk -saabsalon.com -saabscania.cf -saabscania.ga -saabscania.gq -saabscania.ml -saabscania.tk -saadatkhodro.com -saagartakeaway.com -saaheel.biz -saaheel.online -saarcxfp.priv.pl -saas-sd.com -saas.ong -saasbackups.com -saascity.asia -saataelliga.info -saatchirt.com -saatmod.net -sabahekonomi.xyz -sabahvolunteer.org -sabaka.host -sabapoker.online -sabastian.me -sabbati.it -saberastro.space -sabet11.com -sabinati.com -sabitspor.xyz -sablefriday.com -saboraliagirona.com -saborsabormadrid.com -saborsaudavel.top -sabotaj.info -sabrestlouis.com -sabrgist.com -sabrinawurmbrand.net -sabrituncer.site -sabtekarimkhan.com -sabuyjai.info -sabzshopp.com -sac-chane1.com -sac-louisvuittonpascher.info -sac-prada.info -sac-zbcg.com -sac2013louisvuittonsoldes.com -sacamain2013louisvuittonpascher.com -sacamainlouisvuitton2013pascher.info -sacamainlouisvuittonsac.com -sacar-news.tk -sacbakim.info -sacburberrypascher.info -saccatalyst.com -sacchanelpascherefr.fr -sacchanelsac.com -sacekiminasilolur.xyz -sacekimioperasyonu.net -saceslanguagehouse.xyz -sacgucc1-magasin.com -sacgucci-fr.info -sach.ir -sacheapo.com -sachermes.info -sachermespascher6.com -sachermskellyprix.com -sachiepvien.net -sachishiksha.org -sacil.xyz -sackboii.com -sackdicam.cf -sackdicam.ga -sackdicam.ml -sackdicam.tk -saclancelbb.net -saclancelbbpaschers1.com -saclanceldpaschers.com -saclancelpascheresfrance.com -saclavuitonpaschermagasinfrance.com -saclchanppascheresfr.com -saclongchampapascherefrance.com -saclongchampdefrance.com -saclouisvuitton-fr.info -saclouisvuittonapaschere.com -saclouisvuittonboutiquefrance.com -saclouisvuittonenfrance.com -saclouisvuittonnpascher.com -saclouisvuittonpascherenligne.com -saclouisvuittonsoldesfrance.com -saclovutonsfr9u.com -sacporschedealer.com -sacramentocaplasticsurgeon.com -sacramentohairsalons.com -sacramentoreal-estate.info -sacramentorealestatetalk.com -sacramentotreeremoval.net -sacredaction.app -sacredcitizen.com -sacredcitizensummit.com -sacredencountersthroughnaturaldreamwork.com -sacredoriginsnutrition.com -sacredpathart.com -sacslancelpascherfrance.com -sacslouisvuittonpascher-fr.com -sacsmagasinffr.com -sacsmagasinffrance.com -sacsmagasinfr9.com -sacsmagasinsfrance.com -sactownsoftball.com -sacvalleypet.com -sad495.ru -sadad-divar.online -sadakaonline.ru -sadasdasc-naonc.icu -sadasdsada.xyz -sadd.us -saddafi.icu -saddamcom.com -saddspyper.cf -saddspyper.ga -saddspyper.gq -saddspyper.ml -saddstore.com -sadecekoyden.com -sadehyd.cf -sadehyd.gq -sadehyd.tk -sadesoru.net -sadf.net -sadfopp.gq -sadfs145dfds3er.tk -sadfs235dfds3er.tk -sadfs31dfds3er.tk -sadfsd2548fds3er.tk -sadfsd458fds3er.tk -sadfsdf2554ds3er.tk -sadfsdfd554s3er.tk -sadfsdfdds3er.tk -sadfsdfds3er.tk -sadim.site -sadness.website -sado-das.ru -sadsagsaa.space -sadwertopc.com -saeativlet.xyz -saedicon.cf -saedicon.ga -saedicon.ml -saedicon.tk -saegis.ru -saegu.space -saentologik.ru -saerfiles.ru -safa8.xyz -safaat.cf -safariextendr.com -safariseo.com -safarjo.com -safber.com -safe-boxxberry.ru -safe-buy-cialis.com -safe-file.ru -safe-mail.ga -safe-mail.gq -safe-mail.net -safe-pay.icu -safe-planet.com -safe.equipment -safe.pics -safe.singles -safeamazon.xyz -safeandguaranteed.com -safeautobuy.com -safebolt.xyz -safecash.online -safecash.site -safecash.store -safecash.tech -safecointalk.com -safecointalk.org -safecollegealerts.org -safecreditunion.coop -safecreditunion.info -safecreditunion.name -safecreditunion.org -safecreditunion.us -safecu.care -safecu.cash -safecu.com -safecu.community -safecu.coop -safecu.creditunion -safecu.finance -safecu.financial -safecu.foundation -safecu.gives -safecu.help -safecu.investments -safecu.loan -safecu.loans -safecu.mobi -safecu.name -safecu.news -safecu.tax -safecu.us -safecuhb.biz -safecuhb.com -safecuhb.coop -safecuhb.info -safecuhb.name -safedrgh.net -safedye.com -safeemail.xyz -safefcu.com -safefcu.coop -safefcu.net -safefcu.us -safefoodcongress.org -safefree.com -safegirldate.com -safehosting.top -safehubsa.com -safeity.tech -safelistmarketing.com -safelutions.com -safemail.cf -safemail.icu -safemail.tk -safemaildesk.info -safemailweb.com -safemov.site -safenord.com -safeonlinedata.info -safepaydayloans365.co.uk -safepla.online -safer.gq -safermail.info -saferoomstogo.com -safersignup.com -safersignup.de -safeschoolalert.com -safeschoolsalerts.com -safeschoolsalerts.org -safesextour.com -safeshare.app -safeshare.email -safeshate.com -safetempmail.com -safetm.mobi -safetyadvises.be -safetydiary.com -safetymail.info -safetymobile.ru -safetypost.de -safetyrzxt.space -safetyrzxt.website -safewarp.org -safewebmail.net -safewithsurfeasy.com -saffront.info -safinancecenter.org -safirahome.com -safirbahis.com -safnny.cf -safnny.ga -safnny.tk -safrem3456ails.com -saga-asian-street-food.com -saga4d.net -sagame.academy -sagame.accountant -sagame.accountants -sagame.adult -sagame.amsterdam -sagame.archi -sagame.associates -sagame.audio -sagame.bar -sagame.berlin -sagame.bid -sagame.bike -sagame.black -sagame.blackfriday -sagame.build -sagame.buzz -sagame.cam -sagame.camp -sagame.capetown -sagame.career -sagame.cash -sagame.christmas -sagame.city -sagame.cleaning -sagame.click -sagame.cloud -sagame.college -sagame.desi -sagame.design -sagame.diet -sagame.doctor -sagame.durban -sagame.faith -sagame.fans -sagame.flowers -sagame.gold -sagame.green -sagame.guru -sagame.hiphop -sagame.ink -sagame.investments -sagame.irish -sagame.joburg -sagame.lol -sagame.ltd -sagame.markets -sagame.men -sagame.menu -sagame.mobi -sagame.mom -sagame.nagoya -sagame.name -sagame.nyc -sagame.ooo -sagame.photo -sagame.photography -sagame.physio -sagame.pics -sagame.pink -sagame.press -sagame.promo -sagame.property -sagame.racing -sagame.rest -sagame.science -sagame.shop -sagame.shopping -sagame.solar -sagame.solutions -sagame.stream -sagame.study -sagame.tattoo -sagame.tips -sagame.tokyo -sagame.tools -sagame.toys -sagame.trade -sagame.tube -sagame.us -sagame.vegas -sagame.webcam -sagame.win -sagame.zone -sagame25.asia -sagame357.asia -sagame358.com -sagame7000.com -sagame96.asia -sagardaks.co -sagd33.co.uk -sage.speedfocus.biz -sagerfireprotection.com -sagetsand.cf -sagetsand.gq -sagetsand.ml -sagetsand.tk -sagheh.com -sagiri.aa.am -saglikclub.net -sagliklikurlar.site -sagliklisac.online -sagliklisac.xyz -sagliktanyana.site -saglobe.com -sagmail.ru -sagosupermart.site -sagun.info -sah-ilk-han.com -sahaiicharity.com -sahampemenang.net -saharaforest.org -saharanightstempe.com -sahdisus.online -sahealthter.cf -sahealthter.gq -sahealthter.ml -sahealthter.tk -sahidlakhanmarathon.com -sahihai.club -sahilelektrik.xyz -sahinbeybldspor.xyz -sahipalace.com -sahishop.online -sahitya.com -sahivi.ru -sahnebet9.com -sahrulselow.cf -sahrulselow.ga -sahrulselow.gq -sahrulselow.ml -sai-tai.net -saibaagora.website -saibis.ru -saidbetanzos.info -saidwise.com -saifix.xyz -saigoncity-dublin.com -saigonmaigoinhaubangcung.com -saigonmail.us -saigonoi.org -saikishoremv.com -sail.today -sailaway-yacht.com -sailorplastic.com -sain2o.site -saint-martin.ru -saint-philip.com -saintcharles.online -saintignatiusloyola.nyc -saintloup.net -sait-kirov.ru -saitrajsu.cf -saitrajsu.ga -saitrajsu.gq -saitrajsu.ml -saitrajsu.tk -saivon.com -sajowi.site -sakam.info -sakamail.net -sakanasoft.biz -sakanasoft.com -sakarmain.com -sakaryaanket.xyz -sakaryabayan.xyz -sakaryaozguvenemlak.com -sakaryapimapen.com -sakdomvce.site -sakhimandal.com -sakila.cf -sakila.ga -sakila.gq -sakila.ml -sakila.tk -saktiemel.com -sakuraharoldscross.com -sakuramechanicsburg.com -sakurina.online -salabiltvaett.se -saladchef.me -saladsanwer.ru -saladsni.xyz -saladsnif.xyz -salahkahaku.cf -salahkahaku.ga -salahkahaku.gq -salahkahaku.ml -salamanderbaseball.com -salamfilm.xyz -salaopm.ml -salariominimo21.info -salary-able.xyz -salata.city -salavip.media -salbol.com -salcantaywalks.com -sald.de -saldiora.com -sale-good.site -sale-market-classic.ru -sale-market24.host -sale-nike-jordans.org -sale-perfect-smile.site -sale-russia.store -sale-store365.online -sale-trade-active.info -sale-veneers.site -sale-wow.ru -sale.craigslist.org -sale24shop.website -sale500.ru -salebot.shop -salebots.ru -salecheaphot.com -salechristianlouboutinukshoess.co.uk -salecse.cf -salecse.ga -salecse.gq -salecse.ml -salecse.tk -salehunters2021.space -saleiphone.ru -salem.media -salemail.com -salemen.com -salemnewschannel.com -salemovobit.com -salemovohet.com -salemsuperstars.com -salemtwincities.com -salemwebdesign.online -sales-exceed.com -sales-perfect-smile.site -sales.lol -salesac.xyz -salesaf.xyz -salesbb.xyz -salesbc.xyz -salesbeachhats.info -salescheapsepilators.info -salescoupleshirts.info -salesfashionnecklaces.info -salesfind.org -saleshare.app -saleshtcphoness.info -salesjs.ru -saleskf.com -salesmanagementconference.org -salesoperations.net -salesoperationsconference.org -salespark.store -salesperson.net -salesresult.online -saless.store -salesscushion.info -salessmenbelt.info -salesstack2017.com -salessuccessconsulting.com -salestodaygreat.space -salestodaygreat.xyz -salesunglassesonline.net -saleswallclock.info -saleuggsbootsclearance.com -salewebmail.com -salhinf.buzz -salinadentists.com -salingshop.info -salisburyrealestateagents.com -salla.dev -sallatna.net -salle-poker-en-ligne.com -salles-vestrepain-toulouse.com -salles-vestrepain-toulouse.org -sallesbank.com -salmanbyxn.ru -salmeow.tk -salmingacademy.com -salmo-us.com -salmo-usa.com -salomaslozapadlo.info -salomon.su -salon-chaumont.com -salon-kalipso.ru -salon3377.com -salonantigenspank.site -salonaurastudio.com -salonelizabeth.net -saloninnovation.com -salonkommunist.company -salonkommunist.cool -salonkommunist.expert -salonkommunist.guru -salonkommunist.money -salonkommunist.photos -salonkommunist.solutions -salonkommunist.space -salonkommunist.systems -salonkommunist.tools -salonkommunist.watch -salonkommunist.website -salonme.ru -salonre.xyz -salonrebe.xyz -salonvalu.icu -salonyfryzjerskie.info -saloonbahis7.com -saloudi.com -salpervemurat.ga -salsasmexican.com -salsoowi.site -salt-and-pepper-takeaway.com -saltanera.net -saltcityfiberworks.com -saltjp.com -saltlakecitybusinessadvisors.com -saltlakecitynailsalons.com -saltreactor.org -saltysushi.com -salud-es.site -saludbuy.com -saludyconsuegra.com -salute.moscow -salvador-nedv.ru -salvatore1818.site -salvelinus.se -salventrex.com -sam-dizainer.ru -sam-serial2.xyz -sam-serial5.xyz -sam-serial7.space -sam-serial7.xyz -sam-serial8.xyz -sam-serial9.xyz -samaki.com -samalert.org -samamul.ga -samamul.gq -samamul.ml -samamul.tk -samanghodus.com -samanh.site -samantha17.com -samaoyfxy.pl -samar.money -samara-nedv.ru -samarachisto.ru -samaralimuzin.ru -samarasantoss.site -samasdecor.com -samatante.ml -samateochiropracticclinic.com -samauil.com -sambabebe.com -sambalenak.com -samblad.ga -samblad.ml -sambuzh.com -same-taste.com -sameaccountmanage765.com -samedayloans118.co.uk -samenli.cf -samenli.ga -samenli.ml -samenli.tk -samenwerkingskunde.nu -sameoneto.ru -samerooteigelonline.co -samharnack.dev -saminiran.com -samireunanen.com -samirphotography.com -samisdaem.ru -samjaxcoolguy.com -samjhoquran.com -sammail.ws -sammasati.info -sammnabisoli.xyz -samoe-samoe.info -samogonda.ru -samokat-elektro.ru -samokat-mir.ru -samokat-msk.ru -samolocik.com.pl -samosters.site -samowarvps24.pl -samp-shop.ru -samp-soft.ru -samp-win.ru -sampleapp.com -sampleconvey.com -samplefy.com -samplehomedesign.com -samplelab.com -sampotechnologies.com -sampsonteam.com -samrise.name -sams-dels.ru -sams-gearfit2.site -samscashloans.co.uk -samsclass.info -samsinstantcashloans.co.uk -samslugas.cf -samslugas.ga -samslugas.ml -samsngmart.info -samsonaza.site -samsoniteshops.club -samsquickloans.co.uk -samsshorttermloans.co.uk -samstelevsionbeds.co.uk -samstore.store -samsuffy.com -samsunaraccekici.com -samsung-galaxy9.ru -samsung-x5.online -samsunggalaxys9.cf -samsunggalaxys9.ga -samsunggalaxys9.gq -samsunggalaxys9.ml -samsunggalaxys9.tk -samsungmails.pw -samsungs20.club -samsungtftlcd.xyz -samsuniyiolacak.com -samsunk.pl -samuderasports.info -samuelcarlsson.se -samuelstcyr.com -samye.cd -san-maria-takeaway.com -san-marino-nedv.ru -sana-all.com -sanaewesthkff.xyz -sanalada.com -sanalalem.com -sanalankara.xyz -sanalfilm.biz -sanalfuar.host -sanalkonferans.net -sanalvdssunucu.com -sanalyzer.com -sanangelopestcontrol.com -sanantoniornjob.com -sanaoils.ml -sanatoriizheleznovodska.ru -sanbernardinoaddictiontreatment.com -sanbernardinoheroinrehab.com -sanbosco.com -sanchof1.info -sanchom1.info -sanchom2.info -sanchom3.info -sanchom4.info -sanchom5.info -sanchom6.info -sanchom7.info -sanchom8.info -sanctuaryvpn.com -sandalsresortssale.com -sandar.almostmy.com -sandbagsandballoons.com -sandcars.net -sandcastlebuyshouses.com -sandcohoo.cf -sandcohoo.ga -sandcohoo.gq -sandcohoo.ml -sandcohoo.tk -sandelf.de -sanders4.us -sandf.space -sandhilllservice.net -sandhills.asia -sandiagauno.club -sandiegoallinclusivewedding.com -sandiegobeer.com -sandiegochargersjerseys.us -sandiegocontractors.org -sandiegoemergencyplumber.com -sandiegofarmwedding.com -sandiegolifescience.com -sandiegolifescience.org -sandiegolifesciencenetwork.com -sandiegoranchwedding.com -sandiegoreal-estate.info -sandiegospectrum.com -sandoronyn.com -sandre.cf -sandre.ga -sandre.gq -sandre.ml -sandre.tk -sandrinilix.pw -sands200.com -sandsmacau4445.com -sandstorm.site -sanduteo.online -sandwhichvideo.com -sandybusinessbrokers.com -sandytowingservices.com -sanering-stockholm.nu -sanetris.org -sanetrix.com -sanetrus.com -sanfinder.com -sanfordfibromyalgia.com -sanfordfibromyalgia.org -sanfranchic.com -sanfrancisco49ersproteamjerseys.com -sanfranflowersinhair.com -sangabazarshar.com -sangaritink09gkgk.tk -sangeks.com -sangiangphim.com -sangokutenbu-kouryaku.xyz -sangqiao.net -sangrlaaq.space -sangsters.us -sanibact-errecom.com -sanibelwaterfrontproperty.com -saniki.pl -sanim.net -sanioma.club -sanitasint.net -sanitzr.com -sanizr.com -sanjaricacrohr.com -sanjati.com -sanjaylaladds.com -sanjesh3.info -sanjoseareahomes.net -sankakucomplex.com -sankosolar.com -sanliurfaaktuel.xyz -sanliurfaemeksinemalari.com -sanliurfaemeksinemalari.xyz -sanliurfagelisim.xyz -sanliurfarehberim.xyz -sanliurfavefadernegi.com -sanliurfavitrin.xyz -sanliurfawebyazilim.com -sanlorenzodentalcare.com -sanluisobispoattorneys.com -sanmarcospanthers.com -sanmati.net -sanmh.ru -sannyaephc.online -sannyaephc.ru -sanporeta.ddns.name -sanprp.com -sans.su -sansarincel.com -sanshengonline.com -sanskrititoday.com -sanslisin11.com -sanstr.com -santa-liria.ru -santa.waw.pl -santaclaritarealestatebuzz.com -santacruz.delivery -santacruzsurf.net -santafedesignz.com -santafpuvu.space -santamonica.com -santannaenergyservices.biz -santannawarrantyservices.info -santaonoriginal4.xyz -santarosatours.com -santasbooksforkids.com -santasornament.com -santateresacostarica.com -santechwan.site -santehmarket-43.ru -santhia.cf -santhia.ga -santhia.gq -santhia.ml -santhia.tk -santiagogomezalcalde.com -santiagonino.org -santikadyandra.cf -santikadyandra.ga -santikadyandra.gq -santikadyandra.ml -santikadyandra.tk -santimetr.xyz -santingiamgia.com -santorini-holiday.com -santoriniflyingdress.com -santorinitoptours.com -sanvekhuyenmai.com -sanvetetre.com -sanvosport.com -sanwubapartners.org -sanxuat.top -saobse.xyz -saocarlosagora.com -saomeijie.xyz -saomoe.com -saorhj.com -saotom.info -saoxianggan.com -sapbox.bid -sapcom.org -sapgo.biz -sapi2.com -sapientsoftware.net -sapog.fun -sapogikupitru.ru -sapor138ot.online -saporiditaliact.com -sapoyr.best -sappartners.net -sapphiccb.xyz -sapphikn.xyz -sapphipap.xyz -sapphireluxuryspa.xyz -sapphiskm.xyz -sapphitte.xyz -sapphiwqr.xyz -sapphizzc.xyz -saprofit.ru -saprolplur.xyz -sapsan-24.com -sapsan-go.com -sapsan-russian.com -saptrangsuc.com -sapunda.com -sapya.com -saqixe.info -saqlamheyat.space -sar-asatun.ru -saracentrade.com -sarageers.com -sarahcarsontherapies.com -sarahdavisonsblog.com -sarahfordrealtor.com -sarahglenn.net -sarahpark.org -sarahstashuk.com -sarajohnorg.org -saranapoker.site -sarangbam5.com -sarapanakun.com -sarasotaairportcarrentals.com -sarasotacountyguides.org -sarasotacountyvisitorguides.com -sarasotalifestyles.com -sarasotaluxuryagent.com -sarawakreport.com -sarayaras.com -saraycasino.bet -saraycasinobonus.com -saraycasinogiris.net -saraycasinoyeniadresi.com -sarayferforje.xyz -sarchawa.krd -sarcoidosisdiseasetreatment.com -sargrip.asia -sarieddinegroup.com -sarikiz40.site -sarinaadams.com -sarinaaduhay.com -sarkaeeresult.info -sarkariyojana.xyz -sarkisozudeposu.com -sarkodie.africa -sarofimcapital.com -sarofimcapitalpartner.com -sarofimfamily.com -sarofimfamilycapital.com -sarofimfamilycapitalpartners.com -sarofimfamilyholdings.com -sarofimfamilyoffice.com -sarofimholdings.com -sarofimvc.com -sarofimventure.com -sarofimventurecapital.com -sarofimventurecapitalpartners.com -sarofimventures.com -saroniccruises.online -sarrafiipaaarsii.live -sarttrk.site -sas100.space -sas100.xyz -sasa22.usa.cc -sasababy.info -sasacademy.site -sasamirkovic.com -sasdads.club -sasha.compress.to -sashadean.com -sashagrey.mobi -sashifernandez.com -saskia.com -sasmanbetx.com -sasshost.net -sassy.com -sast.ro -sasukeurod.space -saswma.org -satabmail.com -satan.gq -satana.cf -satana.ga -satana.gq -satangpoker.com -satcom.cf -satcom.ga -satcom.gq -satcom.ml -satelite.space -satellitefirms.com -satelliteheroes.com -satenkumasbileklik.com -satepoker.org -sathinews.com -sathio.website -satined.best -satisageldim.com -satisfacaodepacientes.com -satisfyme.club -satishikayeleri.com -satisviag.site -sativajesus.org -satkhiramail.tk -satline.info -satorisciencespot.com -satoshi1982.biz -satoshibonus.ru -satoshibox.store -satservizi.net -satsport.fun -sattcipe.cf -sattcipe.ga -sattcipe.gq -sattcipe.ml -sattebangladesh.net -satterfield-sons.com -satterwhitefamily.net -satty-zhuldyz.site -satty-zhyldyz-kz.site -satubandar.club -satubandar.com -satubandar.us -satukosong.com -saturdaylaura.com -saturdaynightspecial.org -saturnbet-official.ru -saturniusz.info -satusatu.online -satusena.com -satutogel3.bar -satvpn.club -satyfor.gq -saubandvor.cf -saubandvor.ga -saubandvor.gq -saubandvor.tk -saucey-one.com -saucyaugmentspire.site -saude-digital.org -saudealternativa.org -saudedigital.net -saudeebom.club -saudeedicas.online -saudemasculina.icu -saudemasculina.press -saudenatural.live -saudenatural.xyz -saufoolbeachf.cf -saufoolbeachf.ga -saufoolbeachf.gq -saufoolbeachf.tk -saukute.me -sauna-na-sverdlova-9.ru -sauna-tomila.ru -saunakemer.xyz -saunaonline.biz -saupecmay.cf -saupecmay.ga -saupecmay.gq -saupecmay.ml -sausen.com -saut-elastique.club -sauyh.com -savageattitude.com -savagepublishing.com -savaryseachest.com -savbus.info -save-on-energy.org -save55.org -saveboxmail.ga -savebrain.com -savecashusingsolar.com -saveeagan.org -savefreg.ga -saveinsurance.us -savelife.ml -savelives.org -saveourpress.com -saveourswings.org -saveoxfordstreet.com -saverpa.ga -saverpa.gq -saverpa.ml -saverpa.tk -savesausd.com -savetheater.net -savethechildrenactionnetwork.com -savetimeerr.fun -saveuhealth.com -savevid.ga -saveyourgadget.com -savingallhomes.com -savingnyhomes.com -savingsearcher.com -savingship.com -savinpaiva.com -saviorreds.com -savip168.com -savip1688.com -savitar.network -savitargroup.com -savondemarseille.info -savondemarseille.us -savondemarseilles.com -savored973cf.online -savoytv17.com -savran.de -savvyadvisor.net -savvyartshop.com -savvyautosolutions.com -savvybusinessshow.com -savvyvibe.com -sawages.net -sawas.ru -sawefewfyfi.space -sawhorseresearch.com -sawoe.com -sawroutingrum.website -sax-lift.us -saxfun.party -saxlift.us -saxonbruce.com -saxophonexltd.com -saxsawigg.biz -say.buzzcluby.com -saya.ga -sayamaukaya3.com -sayano.ru -saycarlojistik.xyz -sayeghlawfirm.com -sayfa.info -sayfabir.com -sayfillzin.cf -sayfillzin.ga -sayfillzin.gq -sayfillzin.tk -saygioca.cf -saygioca.ga -saygioca.gq -saygioca.ml -saygioca.tk -sayinnet.net -sayitsme.com -saymeow.de -saymuscge.cf -saymuscge.ga -saymuscge.ml -saynigger.com -saynotospams.com -sayonara.gq -sayonara.ml -saytren.tk -sayyes-shop.ru -sayyesyes.com -saz753.com -sazaury.com -sazco.net -sazdauttt.shop -sazhimail.ooo -sb40.icu -sb88.online -sba7amoney.com -sbash.ru -sbb89c.com -sbcplay.club -sbcplay.org -sbcpoker.info -sbcseo.net -sberemec.cf -sberemec.ga -sberemec.ml -sberonlinedelivery.site -sberwick.com -sbg-museum.se -sbgcd.org -sbhk004.com -sbhk017.com -sbhk024.com -sbksacbakimkuru.online -sbnations.us -sbndetdc.shop -sbnsale.top -sbo1168.com -sbo21x.com -sbo62.net -sboassociation.com -sbobetpk.website -sbobslot.com -sbodewa.online -sbong88.online -sbong88.xyz -sbopk.website -sboro.ru -sborra.tk -sbox15.net -sbpoloclub.com -sbprceyewear.com -sbs.onl -sbs66.xyz -sbsgroup.ru -sbt90ir.info -sbt90ir.org -sbtjtj.com -sburningk.com -sbuttone.com -sbuyam.site -sc-racing.pl -sc-shoe.com -sc8156.com -sc888u.com -sc91pbmljtunkthdt.cf -sc91pbmljtunkthdt.ga -sc91pbmljtunkthdt.gq -sc91pbmljtunkthdt.ml -sc91pbmljtunkthdt.tk -sc96mam3y2pmpa4.xyz -scabiesguide.info -scadaerp.com -scaffoldinglab.com -scaisirg.shop -scalablefile.network -scalalearn.net -scalatrain.com -scalech.email -scaletrai.xyz -scaleyourads.com -scalpongs.com -scamerahot.info -scamkoreans.xyz -scamorlegit.review -scams.website -scanandfun.ru -scanapa.com -scandales.ru -scandiafelt.se -scandiciptv.info -scandinavianhairacademy.com -scandiskmails.gdn -scandynashop.com -scanf.ga -scanf.gq -scania.gq -scania.tk -scanitxtr.com -scanmail.us -scannerchip.com -scanning.app -scanonline.mobi -scanonline.org -scanor69.xyz -scantobrowser.com -scarfga.com -scarry-rp.com -scarymovies.biz -scasino.ru -scatibna.cf -scatibna.ml -scatibna.tk -scatindiashow.com -scatmail.com -scay.net -scbet88.net -scbgolfouting.com -scbox.one.pl -sccdomoter.site -sccountybank.us -scdn.ooo -sceenic.com -scenarioh.com -scenero.com -sceneslink.com -scennonpda.cf -scennonpda.ga -scennonpda.gq -scennonpda.ml -scennonpda.tk -scenpucu.cf -scenpucu.ga -scenpucu.gq -scentathome-dublin.com -scentedipity.com -scerpio.com -scfastoffers.com -scgmm1.com -schabernack.ru -schachrol.com -schackmail.com -schadizun.ga -schadizun.gq -schadizun.ml -schadizun.tk -schafmail.de -schalfpricedlisting.com -schalfpricedlistings.com -schaufell.pl -schaumburgofficecleaning.com -scheduleer.com -schema.report -schi-zo.de -schiborschi.ru -schicenranickspel.space -schiebetore.biz -schilan.site -schilderkunst.de -schilderpro.com -schiz.info -schlankefigur24.de -schlankheit.info -schluesseldienst-stflorian.at -schlump.com -schmalwieser.info -schmeissweg.tk -schmid.cf -schmid.ga -schmitt-tm-ltd.com -schmitt-tm-ltd.org -schmuckfiguren.de -schnabbel.app -schneetrap.tk -schnell-geld-verdienen.cf -schnell-geld-verdienen.ga -schnell-geld-verdienen.gq -schnippschnappschnupp.com -schoepr.top -schokopudding.vision -schola.cd -scholapp.cat -scholarassoc.org -scholarreinsurance.org -scholarsed.com -scholarshippro.com -scholarshipsusa.net -scholarshipzon3.com -schone-lucht.shop -schone-lucht.space -school-essay.org -school-good.ru -schoolexplorer.org -schoolforharvest.com -schoolgirlslive.com -schoolingherring.com -schoolreal.info -schoolrooster.net -schoolsoflove.com -schoolsuccessnetwork.net -schooltechnology.site -schoonheidsbar.com -schreib-mir.tk -schreiber-group.com -schreinermeister24.de -schrijf.nu -schrott-email.de -schtep.ru -schticky.tv -schufafreier-kredit.at -schulweis.com -schwanz.biz -schwartzfilm.com -schwartzmediapro.com -schwartzpress.com -schwarzmail.ga -schweizer-auto-des-jahres.swiss -schwerlastspedition.de -schwoer.de -schydled.com -sci44.space -scianypoznan.pl -sciatique.info -sciegenics.com -science-aviation.org -science-full.ru -scienceacademicnews.site -scienceauvert.org -sciencelive.ru -sciencepub.news -sciencestill.com -sciencestry.com -scifi-writers.com -scififaster.com -scifimangacomics.com -scifiplaybook.com -scilerap.cf -scilerap.gq -scilerap.ml -scilerap.tk -scinnovator.com -scinnovators.org -scireq.asia -scireq.net -scireq.org -scissel.xyz -scit.app -scitechivity.com -scities.pro -scizee.com -scj.edu -scjtzy.com -sclc2.com -scleraxmwa.space -sclgdetbm.shop -sclwu7.com -scmail.cf -scmbnpoem.pl -sco388.com -sco388.net -sco388.org -scoalaceptura.info -scoldremovedsplit.site -scollay.com -scoopper.ru -scoopsimplespume.site -scootersshop.life -scootmail.info -scopdefi.cf -scopdefi.ga -scopdefi.gq -scopdefi.tk -scope4.store -scopeartdesigns.com -scopus-wos.com -scorchingcraft.xyz -scoredream.ru -scoredwow.com -scoreek.com -scorefor.xyz -scoremaru.com -scoresc.org -scorestats.net -scoretroo.email -scorezq.com -scornfultoadcrimson.icu -scotassociation.org -scoteckleyinc.com -scotomasolution.com -scott-lee-heating.com -scottchauncey.biz -scottcomstock.org -scottdesmet.com -scotterkinz.com -scottishinnhuntsville.com -scottishkelpie.com -scottishmoscow.org -scottivester.com -scottpearson.net -scottpetersondaniel.us -scottrenshaw.com -scottrohe.com -scottscitylimits.com -scottsdale-resorts.com -scottsdalesgaragedoor.com -scottwestfamily.com -scottytoddmessages.com -scouringsfe.info -scoutprissysteak.site -scouts.onl -scraggbwfw.space -scrambleground.com -scrap-cars-4-cash-coventry.com -scrapbookingforprofit.com -scrapcar.money -scrapebox.in -scrapeemails.com -scrapii.com -scrapper.site -scrapper.us -scraptrend.recipes -scratch.cd -scratchcarddonation.com -scratchcuisine.com -screamfused.com -screamingfist.xyz -screechcontrol.com -screen-img.com -screen2.site -screenartisans.com -screencodr.com -screenlink.email -screenlobbydive.website -screenprintingtape.com -screenshottop.info -screentown.org -screenvel.com -screwdon.recipes -screwdriveraction.com -screwsmel.buzz -screwthe.xyz -scribb.eu -scribble.uno -scribeorigins.org -script.click -scriptscdn.pro -scriptsdota2.ru -scriptureboard.com -scripturl.com -scrmnto.cf -scrmnto.ga -scrmnto.gq -scrmnto.ml -scroball.com -scrofuqlaj.ru -scroll-through.club -scroomail.info -scrptshop.space -scrsot.com -scrubted.com -scruff-a-luvs-shop.ru -scrumbai.live -scrumexperts.com -scruto.xyz -scryptmachine.com -scs188live.net -scs188live.news -scs188live.site -scs188live.space -scs188rocks.com -scs188today.com -scsef.site -scsmalls.com -scst-nstp.site -scsvw.com -sctbmkxmh0xwt3.cf -sctbmkxmh0xwt3.ga -sctbmkxmh0xwt3.gq -sctbmkxmh0xwt3.ml -sctbmkxmh0xwt3.tk -sctcwe1qet6rktdd.cf -sctcwe1qet6rktdd.ga -sctcwe1qet6rktdd.gq -sctcwe1qet6rktdd.ml -sctcwe1qet6rktdd.tk -scubado.info -scufupzil.ga -scufupzil.ml -scufupzil.tk -scuputta.cf -scuputta.ga -scuputta.gq -scuputta.ml -scurcernbac.cf -scurcernbac.ga -scurcernbac.gq -scurcernbac.ml -scuregoto.website -scussymail.info -scutranti.cf -scutranti.ga -scutranti.ml -scutranti.tk -scxt1wis2wekv7b8b.cf -scxt1wis2wekv7b8b.ga -scxt1wis2wekv7b8b.gq -scxt1wis2wekv7b8b.ml -scxt1wis2wekv7b8b.tk -sd-discount.xyz -sd-exports.org -sd110.xyz -sd3.in -sd605.com -sd71bt2.fun -sdagds.com -sdamkvartiru.online -sdashi.xyz -sdayheou.icu -sdbfsdkjf.online -sdbmz.us -sdcrfmyj.com -sdd2q.com -sddfpop.com -sdelaemdeputatom.ru -sdelaisebe.site -sdelkanaraz.com -sdelknedvij.xyz -sdenhaoquangphat.com -sdevicem.com -sdew.cf -sdf.org -sdf44.com -sdfbd.com -sdferwwe.com -sdff.de -sdfgd.in -sdfggf.co.cc -sdfggre.xyz -sdfghyj.tk -sdfgsdrfgf.org -sdfgukl.com -sdfgwsfgs.org -sdfiresquad.info -sdfklsadkflsdkl.com -sdfqwetfv.com -sdfr.de -sdfsdf.co -sdfsdfsadf.xyz -sdfu8hu.com -sdfuggs.com -sdg34563yer.ga -sdg4643ty34.ga -sdgewrt43terdsgt.ga -sdgsdfgsfgsdg.pl -sdhalfpricedlisting.com -sdhalfpricelisting.com -sdhalfpricelistings.com -sdifkkfk.site -sdigbw.us -sdirchildbus.cf -sdirchildbus.ga -sdirchildbus.gq -sdirchildbus.ml -sdirchildbus.tk -sdireqta.cf -sdireqta.ga -sdireqta.gq -sdireqta.ml -sdireqta.tk -sdirfemail.com -sdjhjhtydst11417.cf -sdjhjhtydst11417.tk -sdjhjhtydst43770.cf -sdjhjhtydst43770.ga -sdjhjhtydst43770.tk -sdjhjhtydst71846.ga -sdjhjhtydst71846.tk -sdjhjhtydst80467.ml -sdjhjhtydst80467.tk -sdkaakjsj.xyz -sdkasjd.xyz -sdkf.com -sdkfkrorkg.com -sdks.app -sdlsn.org -sdlyzlxa.shop -sdnh.pro -sdnr.it -sdo6k.info -sdo71bt2.fun -sdo91bt2.fun -sdom-96.ru -sdpkl.live -sdqbbj.info -sdqlz.us -sdrmyshop.com -sdsas.xyz -sdsdaas231.org -sdsdwab.com -sdsgshizheng.com -sdsigns.com -sdv54.com -sdxgalzn.tech -sdy21.com -sdysofa.com -se-center.ru -se-cure.com -se.xt-size.info -se223.buzz -se666.net -se668.net -se7encityjlt.com -seabedharvesting.com -seabillionradio.com -seabreezeswaves.com -seacrew.xyz -seafoodglossary.com -seafoodpn.com -seag7r.site -seagullnet1.com -seahawksportsshop.com -seahawksproteamsshop.com -seajaymfg.com -seal-concepts.com -sealized.info -seankoybread.ga -seankoybread.gq -seankoybread.ml -seankoybread.tk -seanmetzs.info -seanmweaver.com -seansun.ru -seaofdreams.org -search-clients.info -search-dating-site-deal.rocks -search-dating-site-deals.live -search-home-security-now.market -search-home-security-sites.live -search-liposuction-fat-now.live -search-psoriasis-topicals.live -search-usa.ws -searchadvertisement.space -searchfather.com -searchformeaning.net -searchiehub.com -searchindog.com -searchmydirectory.com -searchrocketgroup.com -searchtermmatchdomain.com -searchtermsmatch.com -searchtraffic.online -searmail.com -searocketadventures.com -searsgaragedoor.org -searzh.com -seascoutbeta.org -seasearch.network -seasiapoker.info -seasidebrighton.com -seasideorient.com -seasoftdigital.icu -seasonalallergiess.com -seasoncraft.online -seasons-easy-info.ru -seasons-group-info.ru -seatcovershop.com -seatga.institute -seatist.com -seatjejbxly.email -seattguru.com -seattleethnicfoods.com -seattlehypnobirthing.org -seattlelaptoprepair.org -seattleovariancancerresearch.org -seattleplumbing.reviews -seattlerealestate4you.com -seattleroll.net -seattlescooter.com -seattletummytuck.com -seattravels.com -seaurg.icu -seawgame168.com -seawgame66.com -seawgame77.com -seawgame88.com -seawgame99.com -seazrem.com -sebastanoperero.com -sebastianwarren.buzz -sebatdekor.com -seberkd.com -sebilsepeti.com -seblog.cz.cc -sebnemisiguzel.net -sebobapark.com -sec-mail.online -secandocomsaude.com -secantsquare.com -secbadger.info -secencode.xyz -secfeaturerye.website -secfiz99.com -secfvc.site -secinvaders.org -secknow.info -seclolu.cf -secmail.ga -secmail.gq -secmail.ml -secmail.pro -secmail.pw -secmeeting.com -secmobi.net -secom-tj.com -second-chancechecking.com -secondmic.com -secondmindsoftware.com -seconomies.info -secops.app -secret-area.tk -secret-cinema.online -secret-cinema24.online -secretagehy.info -secretbet5.com -secretbet7.com -secretdev.co.uk -secretdiet.com -secretemail.de -secretfashionstore.com -secretlenders.online -secretluxurystore.com -secretmilllionairesclub.com -secretmovie.online -secretmystic.ru -secrets.name -secretsaiyan.xyz -secretsdepeou.com -secretsurveyreviews.info -secsforall.com -secsforall.org -sector2.org -sectormediastrategies.org -secularized818mw.online -seculife.ru -secur.page -securaname.com -securblockchain.net -secure-0nline-uk.xyz -secure-box.info -secure-box.online -secure-fb.com -secure-featured-producs.com -secure-mail.biz -secure-mail.cc -secure-mail.cn -secure-net-uk.buzz -secure-online-uk.buzz -secure-online-uk.monster -secure-online-uk.xyz -secure-online.monster -secureapay.com -secured-link.net -securedcontent.biz -secureddegrees.com -securehealthcareit.com -securehost.com.es -secureinvox.com -securemail.flu.cc -securemail.gq -securemail.igg.biz -securemail.nut.cc -securemail.usa.cc -securemailserver.cf -securemailserver.ga -securemailserver.gq -securemailserver.ml -securemailserver.tk -securemedikal.xyz -secureofficemobile.cyou -secureorder.online -securephoto.host -secureschoolalliance.com -secureschoolalliance.net -secureschoolalliance.org -secureschoolsalliance.net -secureschoolsalliance.us -secureserver.rogers.ca -secureserver.usa.cc -secureserver01.net -securesmtp.bid -securesmtp.download -securesmtp.stream -securesmtp.trade -securesmtp.win -securesys.cf -securesys.ga -securesys.gq -securesys.ml -securesys.tk -securesystems-corp.cf -securesystems-corp.ga -securesystems-corp.gq -securesystems-corp.ml -securesystems-corp.tk -securetel-big.tel -securiblog.com -security7.online -securitybyprotek.com -securitycamerasinstallation.net -securityconsulting.tech -securityfirstbook.com -securityfixed.com -securityinsight.net -securityriskexpert.com -sedansis.info -sedapetnya.guru -sedasagreen01try.tk -sedationdentalpractice.com -sedewoge.site -sedric.ru -seductiondictionary.com -seductivestarletzz.net -seductiveturtle.org -sedv4ph.com -seealmeria.com -seeashop.space -seebergs.com -seed.ml -seed2tree.com -seedbankcoin.com -seedboha.cf -seedboha.ga -seedboha.gq -seedboha.ml -seedboha.tk -seedcommerce.shop -seedcommons.com -seedjourney.com -seednest.us -seedtein.com -seek-online-degrees-deal.live -seek-voiceoverip-service.live -seek-voip-systems-today.rocks -seekapps.com -seekbeacon.com -seekbusinessblog.club -seekfindask.com -seekincentives.com -seeking-arrangements.review -seekintertech.info -seekjobs4u.com -seeksupply.com -seekusjobs.com -seelak.site -seelenders.net -seemail.info -seemyplace.xyz -seenontvclub.com -seenparisy.info -seeout.us -seepublic.nl -seer-rx.com -seesli.com -seevideoemail.com -seeyuan.com -segabandemcross74new.ml -segawayofhawaii.com -segayazilim.com -segestapizzeria.com -segoviavegas.com -segredodemarketingexpert.com -segredodogain.com -segredosdaaudienciaonline.com -segundamanozi.net -segundolance.site -seguo10.xyz -segurado.org -seguridadinformatica.ninja -seguro.bet -seguros.agency -segwrgna.shop -sehitkamilbelediyespor.xyz -sehnqv.info -seibersbach.net -seidistdi.cf -seidistdi.ga -seidistdi.gq -seierra.com -seigaterc.cf -seigaterc.ga -seigaterc.gq -seigaterc.ml -seigaterc.tk -seikki.com -seikopoker.com -seila.pt -seinebreachsteer.site -seiox.com -seishel-nedv.ru -seizefai.xyz -seizin737lr.online -sejaa.lv -sejarah.site -sejavistoo.com -sejohnsonandsons.com -sekamek.cd -sekarjagat.com -sekas.fun -sekatoto.com -sekcjajudo.pl -sekdongsan.com -sekerhastaligi.mobi -sekizbir.com -sekoeuropa.pl -sekris.com -seksbuiten.online -seksik.site -sektorpoker.com -sektorpoker.info -sektorpoker.net -sektorpoker.org -sekza.site -selaevent.com -selamfht22717.cf -selamfht22717.ga -selamfht22717.ml -selamfht22717.tk -selamlarsx13539.ml -selamlarsx61621.cf -selamlarsx61621.ga -selamsfjntvb36614.cf -selamsfjntvb42336.ml -selamtatube.com -selang3.xyz -selang5.xyz -selbcitbears.cf -selbcitbears.gq -selbcitbears.ml -selbcitbears.tk -selcukayanoglu.xyz -selcukluemlakkonya.com -seldc.org -seleb2toto.com -selectam.ru -selectfox.club -selectfriends.com -selectionsart.com -selectivestars.com -selectmcohio.net -selectmytrip.com -selector-casino.host -selector-casino.online -selectraindustries.com -selectyourinfo.com -seleramakngah.com -self.direct -selfarticle.com -selfbonds.info -selfcheckin.ru -selfcustodianira.com -selfdestructingmail.com -selfdestructingmail.org -selfdirected401ksecrets.com -selfdirectedadviser.com -selfdirectedadvisers.com -selfdirectedadvisor.com -selfdirectedinvest.com -selfdirectediraadvisers.com -selfdirectediraadvisor.com -selfdirectirallc.com -selfgard.com -selfhelptoolbox.com -selfie-cam.online -selfie-roipro.ru -selfiecard.com -selfieled.ru -selfietobacco.online -selfietobacco.xyz -selfimasajes.com -selfimvement.pro -selfmadesuccesstoday.com -selfmedicine.ru -selfreferral.org -selfrestaurant.com -selfretro.net -selfricorvai.site -selfstoragefind.net -selftanningpills.net -selindaconcession.com -selipico.site -seliux.com -selkamedya.com -selkirkpc.com -sell-brends.ru -sell-here.ru -sell-market1.ru -sell365.me -sellcircuitboards.com -sellcow.net -seller1hit.website -sellerku.info -sellerku.us -sellerku.xyz -sellfb.xyz -sellgallery.space -sellgallery.website -sellim.site -sellinganti-virussoftwares.info -sellingogos.com -sellingshop.online -selljar.com -sellmine.ru -sellmyexpirednow.com -sellmymichiganproperty.com -sellodeconfianza.online -sellry.website -sells.com -sellsbuttecounty.com -sellscopedata.com -sellscopemturk.com -sellscopeprospecting.com -sellscopeprospects.com -sellscoperesearch.com -sellstorevero.com -selluh.com -sellusyourhouse.net -sellyouroldmobile.info -sellyourstocks2019.com -selmaforeclosures.com -selowcoffee.cf -selowcoffee.ga -selowcoffee.gq -selowcoffee.ml -selowhellboy.cf -selowhellboy.ga -selowhellboy.gq -selowhellboy.ml -seltaire.cf -seltaire.ga -seltaire.gq -seltaire.ml -seltaire.tk -seluang.com -selumnkdnkf68373.ml -selumnkdnkf68373.tk -selyatino-beton-zavod.ru -sem9.com -semahua.com -semail.us -semaine-isr.com -semangat99.cf -semarcomputama.tk -semarhouse.ga -semarhouse.ml -semarhouse.tk -sembilansport.com -sembwebba.cf -sembwebba.ga -sembwebba.gq -sembwebba.tk -semei6.fun -semena-moskva.ru -semenaxreviews.net -semenula.site -semessusta.cf -semessusta.ml -semessusta.tk -semestatogel.com -semeynayakl.ru -semi-mile.com -semi168.live -semidesigns.com -seminaire-horizons.com -seminairehorizons.com -seminaroil.info -seminary-777.ru -semiotik.co -semited.fun -semitrailersnearme.com -semleter.gq -semleter.ml -semleter.tk -semmos.com -semogaderes.com -sempakk.com -sempuranadi.cf -sempuranadi.ga -sempuranadi.ml -sempuranadi.tk -semsei.co.uk -semsipasapasaji.xyz -semuaduit.org -semusimbersama.online -semut-kecil.com -semutkecil.com -senangpoker.site -senanurie2ens.xyz -senatec.cd -senatorsport.store -senbennett.com -send-email.org -send-money.ru -send22u.info -send360.de -sendanywhere.xyz -sendbananas.website -sendcertifiedletters.com -sendemail2.com -senderelasem.tk -sendermail.info -sendfree.org -sendify.email -sendify.org -sendingspecialflyers.com -sendmesome.cash -sendmesomemails.biz -sendrule.com -sendspamhere.com -sendthemails.com -sendto.cf -senduvu.com -senegal-nedv.ru -senegalove.com -senerza.press -senewz.cd -senfgad.com -senfmoka.cf -senfmoka.ga -senfmoka.gq -senfmoka.ml -senfmoka.tk -senfog.com -sengi.top -sengkang-grand-residences-sg.com -senguanteng.com -sengyindang.com -senikata.com -senintenin.xyz -senior4d.info -seniorblog.com -seniorcareandtransport.com -seniorcaremarketingconference.com -seniorcaremarketingcouncil.com -seniorcommunitylifestyle.com -seniorforless.net -seniorhomecareprograms.com -seniorhomes.ru -seniorlivingcenterfinder.com -seniorlivingcenterinfo.org -seniorlivingcenterinformation.com -seniorlivingcentersfinder.org -seniorlivinglifestylearizona.com -seniorlivingmarketingconference.com -seniormarketingcouncil.com -seniorom.sk -seniorslivingfinder.com -sennbox.cf -sennbox.ga -sennbox.gq -sennbox.ml -sennbox.tk -sennheiser-ru.online -senoa.store -senoonmarket.com -senpaigamer.com -sensavault.com -sensearticle.com -senseblan.recipes -sensecloc.us -sensegrie.icu -sensehab.us -sensejoint.xyz -sensel.ru -senseless-entertainment.com -sensemarket.host -sensemo.xyz -senseradios.com -senseswe.icu -sensibvwjt.space -sensika.email -sensika.global -sensika.news -sensika.online -sensika.page -sensitivityculture.com -sensorfkgg.space -sensorynopain.online -sensorynopain.xyz -sensualerotics.date -sensualitemovement.com -sensualizes731kd.online -sentapoker.live -sentencingnews.com -sentientdesigns.net -sentigizmo.com -sentitle.ru -sentralreitmy.com -sentry-e3taxservice.com -sentryenis.site -senttmail.ga -senty.ru -senukexcrreview.in -seo-bux.ru -seo-cdn.ru -seo-class.ru -seo-clicker.com -seo-delo.ru -seo-for-pussies.pl -seo-google.site -seo-local.site -seo-mailer.com -seo-search.site -seo-turn.ru -seo.beefirst.pl -seo.bytom.pl -seo.viplink.eu -seo1-miguel75.xyz -seo11.mygbiz.com -seo21.pl -seo3.pl -seo39.pl -seo8.co.uk -seoandwordpress.com -seoankur.info -seoartguruman.com -seobacklinks.edu -seobest.website -seobich.ru -seoblasters.com -seoblog.com -seoblogger.net -seobot.com -seobravura.com -seobrizz.com -seobungbinh.com -seobusinessclub1.com -seobuzzvine.com -seocdn.ru -seocdvig.ru -seocompany.edu -seocu.gen.tr -seocy.us -seodating.info -seoenterprises.com.au -seoestore.us -seoexperindia.online -seoforum.com -seofun.ru -seogawd.com -seogern.ru -seohoan.com -seoimpressions.com -seojuice.info -seokings.biz -seoknock.com -seolite.net.pl -seolondon.co.uk -seolondon24.co.uk -seolove.fr -seomail.net -seomail.org -seomail.top -seomalaysia88.com -seomaomao.net -seomarketingservices.nl -seomarketleaders.com -seomediadesign.online -seomoz.org -seonuke-x.com -seonuke.info -seoo-czestochowa.pl -seoofindia.com -seopapese.club -seopot.biz -seopowa.com -seopress.me -seoprorankings.com -seoquorankings.com -seoranker.pro -seorankhistory.com -seoreport.com -seorj.cn -seorolas.ga -seorolas.gq -seorolas.ml -seorolas.tk -seosavants.com -seosc.pl -seosecretservice.top -seoseoseo.mygbiz.com -seoservicespk.com -seoserwer.com -seosie.com -seoskyline.com -seostatic.pl -seostudio.co -seoteen.com -seotoolkit.ru -seoufo.net -seoulmusicawards.net -seoverr.com -seovestmont.cf -seovestmont.ga -seovestmont.gq -seovestmont.ml -seovps.com -seowebsitetop.com -seowy.eu -seoyo.com -seoysemweb.com -separajvlx.space -sepatuanak.online -sepatusupeng.gq -sepci-saneva.tk -sepoisk.ru -septeberuare.ru -septembermovo.com -septicinspectionjacksonnj.com -septicvernon.com -septiko-unilos.ru -septozer.com -septrail.info -sepulcher667sz.xyz -seputarbet.live -seputarti.com -sequadion.net -sequipment.ru -ser2201b.buzz -seraji.info -serapoker.com -serbangilvitu.com -serbian-nedv.ru -serdin.site -serebro32.ru -serena-pass.online -serenadestrings.com -serenadethailand.com -serenalaila.com -serendipityloves.website -serendipitysugarscrub.com -serenite.site -serenitynorth.org -serenitysjournal.com -seret.video -sergepreventstill.site -sergeykudria.com -sergeymavrodi.org -sergeypetrov.nanolv.com -sergiogaete.com -sergiopalm.ru -sergiovillellacorporate.com -sergiowatches.com -sergw.com -serhatcakar.online -serhuwadewtr.website -serial-hd.online -serializing971ze.online -serialkillers.us -serialkinogoru.ru -serialkinopoisk.ru -serialreview.com -serials-only.ru -serichs.xyz -series-online.club -series-online.info -serieson.best -seriesonlinegratis.org -seriestreaming.website -seriesviatorrent.biz -seriesvip.club -seriiletisimreklam.xyz -serik.website -serimet.ru -seringolt.ru -seriousalts.de -seriyaserial.ru -serkankalemcilerkimdir.org -sermonizer853ip.online -sernativo.com -serohiv.com -seron.top -serosurvey.ru -serp-clicker.com -serpclicker.com -serpina.website -serpshooter.top -serrurierperigny.com -sersageurn.icu -sersandsol.cf -sersandsol.ga -sersandsol.gq -sersandsol.ml -sersandsol.tk -sersome2201c.monster -sert2201a.site -sertecfarma.cat -sertf.press -serupedia.info -serv.craigslist.org -serv20.site -serv20.website -serv20.xyz -servachok-top.ru -servaux.org -servdorda.cf -servdorda.ga -servdorda.gq -servdorda.ml -servedi.email -serveextra.com -server-id.com -server-rus-v.ru -server.ms -server8.site -serverfor.email -servergal.com -serverhytale.ru -serverjavascript.com -serverlessintelligence.com -servermaps.net -servermuoihaikhongbon.com -serverpro.cf -serverqiu.com -servethe.net -servetserifoglu.com -serveup.press -serveurweb.org -servewareshop.life -service-911.ru -service-telecom.us -service-xiaomi.ru -service4.ml -servicebusinessmagazine.com -serviced.site -servicefile.ru -servicegulino.com -servicemercedes.biz -services-my3gvtnz-auth.icu -services.pancingqueen.com -services391.com -services4you.de -servicesbydeluxe.com -servicesfor.us -servicevideos.org -servicewhirlpool.ru -servicing-ca.info -servicioymantenimientos.com -servinghamptonroads.net -servisetcs.info -servismerkezi.info -servisy-acura.ru -servisy-alfaromeo.ru -servisy-aud1.ru -servisy-baw.ru -servisy-bentley.ru -servisy-byd.ru -servisy-cadillac.ru -servisy-chery.ru -servisy-chrysler.ru -servisy-daihatsu.ru -servisy-dodge.ru -servisy-faw.ru -servisy-ferrari.ru -servisy-hummer.ru -servisy-infiniti.ru -servisy-isuzu.ru -servisy-jaguar.ru -servisy-jeep.ru -servisy-kla.ru -servisy-lincoln.ru -servisy-mini.ru -servisy-oldsmobile.ru -servisy-pontiac.ru -servisy-rangerover.ru -servisy-saab.ru -servisy-shkoda.ru -servisy-smart.ru -servisy-vaz.ru -servisy-volksvvagen.ru -serviteschoolhbd.com -servizioeuropeodisolidarieta.com -servizioeuropeodisolidarieta.info -servizioeuropeodisolidarieta.net -servogamer.ga -servonews.ru -serwervps232x.com -serwervps24.pl -serwis-agd-warszawa.pl -serwisapple.pl -serwpcneel99.com -ses4energy.org -ses4services.net -seshirpetfood.com -sesknehtmarka.space -seskow.monster -seskvizyon.com -seslibayrak.xyz -seslibeter.xyz -seslifake.xyz -sesligoznurum.xyz -seslikalbimsin.com -seslikum.online -sesliloca.xyz -seslimaya.xyz -seslinokta.xyz -sesliozgurce.online -sesliozgurce.xyz -seslipak.xyz -seslisaha.online -seslisaha.xyz -seslisaklimdasin.xyz -seslisato.xyz -seslisevbeni.xyz -seslisevhet.xyz -seslisinemce.xyz -seslisizle.xyz -sesliturku.xyz -sesmale.us -sesnsesy.shop -sespovodkneht.space -sestitoboysbmx.com -sesysesn.shop -setabahis.net -setabahis.org -setafon.biz -setakepenk.xyz -setbet.icu -setefi.tk -setekshome.site -sethighknav.cf -sethighknav.ga -sethighknav.gq -sethighknav.ml -sethighknav.tk -sethtroxler.net -setia.biz -setiabudihitz.com -setiantang168.com -setki-optovik.ru -setrabet1.com -setrabet13.com -setrabet3.com -setrabet4.com -setrabet6.com -setrabet7.com -settcyre.cf -settcyre.ga -settcyre.gq -settcyre.ml -settcyre.tk -settingsizable.info -settleddivorce.com -settleforagoodcause.org -settleovhs.online -settsunmang.cf -settsunmang.ga -settsunmang.ml -settsunmang.tk -setun-alg.online -setuperu.ru -setupexpress.com -setupgamblingstink.site -setutime.com -setvolta.com -setyourownfee.com -setzd.us -seulasgoo.gq -seulasgoo.ml -seulasgoo.tk -seuvi8.us -sev-relax.ru -sev-vybor2020.ru -sevac.info -sevadhamunjha.com -sevadus.net -sevadusgaming.org -sevemy.us -seven-hotels.com -seven-neuro.ru -seven-shoes.ru -seven.emailfake.ml -seven.fackme.gq -seven6s.com -sevenfigureadvisorsecrets.com -sevenforce.su -sevengame.live -sevengame.ninja -sevengame.wtf -sevenpalms30a.net -sevensenseagency.com -sevensjsa.org.ua -sevensmail.org.ua -seventhposition.com -severimlers.site -sevgisoysal.org -sevilshop.ir -sevingetraadele.com -sevirama.com -sevket123.ga -sevketbaba.cf -sevketbaba.ga -sevketbaba.ml -sevketbaba.tk -sevketbaba2.cf -sevketbaba2.ga -sevketbaba2.ml -sevketbaba2.tk -sevketbaba3.ml -sevketbaba3.tk -sevketbehcet.cf -sevketbehcet.tk -sevketveyargalari.ml -sevkiakdemir.xyz -sevminurcayman.tk -sevsotreasure.com -sewafotocopy-xerox.com -sewaipad.com -sewamobilbaru.com -sewamobilharian.com -sewardtours.com -sewesi.info -sewmanyblanks.com -sewpack.com -sex-chicken.com -sex-guru.net -sex-mobile-blog.ru -sex-ru.net -sex-vox.info -sex.dns-cloud.net -sex.si -sexactive18.info -sexakt.org -sexboxx.cf -sexboxx.ga -sexboxx.gq -sexboxx.ml -sexboxx.tk -sexcamsex.org -sexe-pad.com -sexe-pas-cher.net -sexemamie.com -sexforswingers.com -sexfotka.com -sexical.com -sexini.com -sexioisoriog.gr -sexsation.ru -sexshop.com -sexsmi.org -sextoyth.com -sexxfun69.site -sexy.camdvr.org -sexyalwasmi.top -sexyalwax.online -sexyfashionswimwear.info -sexyjobs.net -sexylingeriegarte.com -sexymail.gq -sexymail.ooo -sexypleasuregirl.com -sexysleepwear.info -sexytoys24.de -sexyworld.com -sey6cs.us -seychelles-holiday.com -seyf.kim -seylifegr.gr -seyma.ga -seymourelderlawgroup.com -seymourindustries.com -seymourrealestateagents.com -seymourstudio.us -seyretbi.com -sez68r.us -sezersoycan.com -sezet.com -sezon.life -sf-getcare.org -sf-nero.site -sf-ss.ru -sf15.space -sf16.space -sf23.space -sf49ersshoponline.com -sf49erssuperbowlonline.com -sf49ersteamsshop.com -sfa.app -sfa59e1.mil.pl -sfab.nu -sfamo.com -sfbayproductions.com -sfbottlebank.com -sfc3files.com -sfd-aa.com -sfd-bb.com -sfdgdmail.com -sfdjg.in -sfdsci.us -sfer.com -sferamk.ru -sferyshar.xyz -sfes.de -sfgov.net -sfgpros.com -sfjnsdjg.cf -sflexi.net -sfmail.top -sforamseadif.xyz -sforvike.cf -sforvike.ga -sforvike.ml -sforvike.tk -sfpc.de -sfrty.ru -sfsa.de -sfvoice.org -sfxmailbox.com -sfzh6p.info -sfznix.club -sg4d.club -sgafest.ru -sgag.de -sgate.net -sgb-itu-anjeng.cf -sgb-itu-anjeng.ga -sgb-itu-anjeng.gq -sgb-itu-anjeng.ml -sgb-itu-anjeng.tk -sgb-itu-bangsat.cf -sgb-itu-bangsat.ga -sgb-itu-bangsat.gq -sgb-itu-bangsat.ml -sgb-itu-bangsat.tk -sgb-sukabumi.com -sgb.jembud.icu -sgb.team -sgbteam.hostingarif.me -sgbteambalikpapan.me -sgbtukangsuntik.club -sgcarpool.com -sgdati.com -sgdetian.com -sgds.cd -sge-edutec.com -sge-energia.com -sgep0o70lh.cf -sgep0o70lh.ga -sgep0o70lh.gq -sgep0o70lh.ml -sgep0o70lh.tk -sgesvcdasd.com -sgfqqz.site -sggxq.club -sghostfinder.com -sghostreview.com -sgilde.com -sgilder.com -sgiochi.it -sgizdkbck4n8deph59.cf -sgizdkbck4n8deph59.gq -sgizuw.us -sgmsoffice365.com -sgp-cu.online -sgphoki.com -sgraf.ru -sgsf5y.us -sgskaters.com -sgtmozag.shop -sgtt.ovh -sgw186.com -sgxboe1ctru.cf -sgxboe1ctru.ga -sgxboe1ctru.gq -sgxboe1ctru.ml -sgxboe1ctru.tk -sgxwv.com -sh-feldpc.com -sh-ftjs.com -sh-jnd.com -sh.soim.com -sh22.space -sh25.space -sh26.space -sh29.space -sh3rl0ck.com -sh77.net -sh90be.club -sha2iniekaa.xyz -shaadfamily.com -shaadiperfect.com -shaafshah.com -shabablad3m.info -shababu.site -shabbag.com -shabbag.net -shacasinoheat.ru -shackachaga.com -shacksanitizer.site -shadap.org -shadesofopera.com -shadesstreet.com -shadezbyj.com -shadion.com -shadow-net.ml -shadowcraft.online -shadowis.site -shadowlinepos.com -shadowoftheday.net -shadowpowered.com -shadowslots.info -shadygrovedermatology.com -shadylink.com -shadys.biz -shaghayegh1.com -shagranch.com -shagun-swords.com -shahabart.com -shahapta.org -shahbendar.com -shahidkamal.com -shahimul.tk -shahobt.info -shahobt.org -shahrvandyar.com -shahs.best -shahzad.org -shake.monster -shakebr.xyz -shakebrow.xyz -shakecove.xyz -shakemain.com -shaken.baby -shakensoftware.org -shakerou.buzz -shakewor.xyz -shakirabalti.com -shakpotok.com -shalar.net -shamanimports.com -shamanowners.com -shamansglobalhub.com -shamechao.press -shamepian.icu -shameweekendstrap.site -shamsalma3aref.xyz -shan999.net -shandongji232.info -shang-hai-chinese-takeaway.com -shang-hai-chinese.com -shangbad.xyz -shanghaichinesedublin.com -shanghaithai-dublin1.com -shangrila-ongar.com -shangtwo.com -shanieports.buzz -shanitakeaway.com -shannon.host -shannonil.buzz -shannonkweston.com -shannonrichmond.com -shannonyaindgkil.com -shantale.ru -shaonianpaideqihuanpiaoliu.com -shaparak90.xyz -shapeej.xyz -shapeeje.xyz -shapelybottom.com -shaper.sk -shaperu.xyz -shapesomewood.site -shapewearinfo.online -shapka-fashion.ru -shapoo.ch -shapsugskaya.ru -shaqir-hussyin.com -shar-kov.ru -sharaproctor.com -shardleo.com -share4charity.net -share4now.com -sharebooklib.com -sharecaregiver.net -sharedmailbox.org -sharedspiritsdev.com -sharedzone.org -shareess.icu -shareflix.xyz -sharehaus.org -sharehealthspot.club -sharela.xyz -sharelay.xyz -sharelaye.xyz -sharelist.tech -sharem.store -shareman-rus.ru -sharemycoachindio.com -sharepoint-consultants.sydney -shares.tel -sharespace.link -sharespace.school -sharesupermarket.com -sharetime.app -shargemostaghim.com -shargemostagim.com -shargmostaghim.com -sharikipodariki.ru -sharing-storage.com -sharingit.net -sharjemostagim.com -sharjeno.xyz -shark-flexi.com -sharkbayresearch.org -sharkcordfree.com -sharkfaces.com -sharkflexi.com -sharkgamer.com -sharklasers.com -sharkliferp.ru -sharkliveroil.in -sharklove.life -sharksteammop.in -sharkupright.com -sharkuprights.com -sharmanetworksolutions.biz -sharmmassage.ru -sharonfreach.com -sharonwiebe.com -sharpfibre.fr -sharpmail.com -shartse.org -sharyndoll.com -shastra.ru -shat.biz -shat.gives -shat.info -shat.live -shat.ninja -shat.store -shat.tech -shatelvpn.com -shatelvpn.xyz -shats.com -shattersense.com -shattuck.network -shattuck.ninja -shattuck.online -shattuck.services -shattucks.us -shavawnforester.org -shaveling.best -shaw.pl -shawarmarealalgeciras.com -shayanashop.biz -shaylarenx.com -shayuav.com -shayzam.net -shb90b.club -shbe90.club -shbg.info -sheareddeals.com -shearerpain.com -shebabu.site -shebenbeton.ru -shebhyy.com -shedik2.tk -shedplan.info -shedplan3547.xyz -sheepstai.press -sheepwatc.fun -sheepwo.xyz -sheepwor.xyz -sheepwort.xyz -sheerglove.com -sheetbooks.com -sheetguestwarm.website -sheetknee.press -shefruneta.ru -sheikhdailyshop.com -shejiapu.com -shejumps.org -shelby-styles.com -shelbymattingly.com -sheldh.xyz -shelfdeb.xyz -shelffe.icu -shelfte.xyz -shelfteac.xyz -shelkovo-3.ru -shellenge.net -shellfamilywellness.com -shellhenry.com -shellxvmi.online -shellylawpc.info -shellylawpc.org -shelmerston.net -shelord.site -shelovestogive.org -shelterinnovations.com -sheltex.blog -shemlmstore.com -shenangovalleyareascalemodelers.com -shengda2.net -shengshi.bet -shengunde.com -shenji.info -shenlex.com -shenmaexpress.com -shenmefan.com -shenmege.com -shenmidaima.com -shenmzycj.com -shenqiancun.com -shenshahfood.com -shenshizhan.com -shepherds-house.com -shepherdscrusade.com -shequechicago.com -sherepunjabtakeaway.com -sherlockholmesforkids.com -sheronhouse.co -sherrtty.xyz -sherry-rb.com -sherryrb.com -sherrywilliamsoncollection.com -sherrywilliamsondesign.com -sherrywilliamsondesigninc.com -sherwab.ru -shewantshim.com -shewishop.ru -shey-sama.ru -sheybe.live -sheytg56.ga -shh10.space -shhmail.com -shhuut.org -shi173.com -shiakidi.com -shiales.com -shiba1.xyz -shibabu.site -shibo338.net -shicentantvogue.com -shichuan.website -shicoast.com -shid.de -shieldedmail.com -shieldemail.com -shieldingtree.org -shifangba.me -shift-coin.com -shiftcampaigns.com -shiftcenters.com -shifted.media -shiftfeig.xyz -shifthealth.online -shiftincubator.com -shiftixiaj.space -shiftmail.com -shiftmayo.us -shiftnewyorkcity.com -shiftsacramento.com -shiftsanfrancisco.com -shiftstation.com -shifttr.xyz -shifttruc.icu -shiftwomenglobal.com -shifty.ninja -shigellainformation.com -shijieyinyangzhai.com -shijihuazhong.com -shikhartakeaway.com -shiklebas.info -shiliao.info -shiloa.com -shim.tech -shimano-catan.ru -shimano-nasci.online -shimano-sedona.online -shincode.tech -shineal.xyz -shineali.icu -shineali.xyz -shinedonor.buzz -shineru.ru -shinethatlight.com -shinewago.buzz -shinglestreatmentx.com -shining.one -shininglight.us -shiniseshop.com -shiniseshop.net -shinisetoriyose.com -shinisetoriyose.net -shinisetsuhan.com -shinnemo.com -shinsplintsguide.info -shinyandchrome.xyz -shinystagesecretsreviews.com -shio365.com -shiok88.info -shiok888.com -ship-from-to.com -shipboard.ru -shipfromto.com -shiphang.club -shiphangmy.club -shiphazmat.org -shipping-regulations.com -shippingcontainerhousing.org -shippingterms.org -shiprol.com -shipshiley.ru -shipyoufurniture.com -shirlehouse.co -shirlevusi.space -shirleybowman.com -shirleyespinozachiropractic.com -shirleylogan.com -shiroinime.ga -shironime.ga -shironime.ml -shironime.tk -shirtical.com -shirtmakers.de -shirtstopshop.site -shirttwo.com -shisazabenie.fun -shishie.com -shishire6.xyz -shishire8.xyz -shishire9.xyz -shishish.cf -shishish.ga -shishish.gq -shishish.ml -shishuai0511.com -shit.cards -shit.dns-cloud.net -shit.dnsabr.com -shit.exposed -shit.tools -shitaiqi.com -shitaway.cf -shitaway.flu.cc -shitaway.ga -shitaway.gq -shitaway.igg.biz -shitaway.ml -shitaway.nut.cc -shitaway.tk -shitaway.usa.cc -shitmail.cf -shitmail.de -shitmail.ga -shitmail.gq -shitmail.me -shitmail.ml -shitmail.org -shitmail.tk -shitmycatkills.com -shitposting.agency -shitservices.online -shittymail.cf -shittymail.ga -shittymail.gq -shittymail.ml -shittymail.tk -shitware.nl -shiunyean.tk -shiva-spirit.com -shivanienkij.xyz -shivaspirittv.com -shivelygallery.com -shiyakila.cf -shiyakila.ga -shiyakila.gq -shiyakila.ml -shizana.com -shizanasaeed.com -shizenken.online -shjdmedical.com -shjnddty.ml -shjto.us -shkololo.org -shluy.com -shm-au.host -shm-au.site -shmeriously.com -shmlkg.club -shobeh.com -shockhorror.com -shockingme.com -shockinmytown.cu.cc -shockmail.win -shocknewsru.ru -shocktours.com -shoddyaf.com -shoeclean.site -shoejanitor.com -shoemakerschool.com -shoeonlineblog.com -shoereporter.com -shoes-market.cf -shoes-sneakers2.site -shoes.com -shoes.net -shoesbrandsdesigner.info -shoesclouboupascher.com -shoeskicks.com -shoesking.su -shoeslouboutinoutlet.com -shoesmall.site -shoesnew278.ru -shoesonline2014.com -shoesonline4sale.com -shoesshoponline.info -shoesstock.ru -shoesusale.com -shoevs.com -shoklin.cf -shoklin.ga -shoklin.gq -shoklin.ml -shokoladsamilit.xyz -shokoshop.ru -shomalbet.site -shomeimprovementz.com -shonky.info -shoo-v777.com -shoo-v888.com -shoonyatama.com -shoot2splatter.com -shooters-ott.com -shootingstarrealty.com -shop-action-zero.ru -shop-csskin.ru -shop-discount-med.info -shop-horse.ru -shop-konditer.ru -shop-krossovki.ru -shop-massage.site -shop-nakidki.ru -shop-nik.ru -shop-retail-info.ru -shop-store-prod.ru -shop-teh.host -shop-veneers-smile.site -shop-wow-sale.ru -shop.lalaboutique.com -shop.winestains.org -shop2021.club -shop2021.online -shop247.top -shop349forus.com -shop4dream.info -shop4mail.net -shop4seals.com -shop4u2.com -shopaa318.xyz -shopaccco.com -shopaepi.com -shopaepi.net -shopasrss.com -shopatrips.com -shopbaby.me -shopback.asia -shopback.tech -shopbackgo.com -shopbagsjp.org -shopballball.com -shopbhop.company -shopburberryjp.com -shopbystyles.com -shopcartaillightsonline.site -shopcelinejapan.com -shopclone.com -shopcrazydeal.com -shopdigital.info -shopdoker.ru -shopdream.info -shopdream1.ru -shopeng.website -shopenss.online -shopepikg.club -shopfalconsteamjerseys.com -shopgiatot.website -shopgtvs.ru -shophall.net -shophapham.site -shophuge.com -shopicron.com -shopikcentr.ru -shopikss.fun -shopilingo.xyz -shoping25.ru -shopingas.site -shopingmax.ru -shopingmir.ru -shopingwatch.biz -shopinia.com -shopins2.site -shopins4.site -shopinwe.site -shopjpguide.com -shopjumy.com -shopkaws.com -shoplargeappliances.com -shopliterallymagic.live -shoplouisvuittonoutlets.com -shopmail.ga -shopmayruamat.com -shopmoza.com -shopmp3.org -shopmulberryonline.com -shopmystore.org -shopn2017.com -shopnessales.site -shopnewtren.fun -shopnflnewyorkjetsjersey.com -shopnflravenjerseys.com -shopnowhq.xyz -shopoglot.ru -shopokonline-man.space -shoponlinemallus.com -shoponlinewithoutcvv.ru -shopop.info -shoporder.xyz -shopourstudio.biz -shopperseeking.com -shoppibooks.com -shopping-1-go.online -shopping-3-go.online -shopping-4-go.online -shopping-5-go.online -shopping-6-go.online -shopping-7-go.online -shopping-8-go.online -shopping-9-go.online -shopping-cafe.info -shopping-line.info -shopping-mart-new.ru -shopping-mart.info -shopping-page.info -shopping-place.info -shopping-planet.info -shopping-power.info -shopping-press.info -shopping-real-factory.site -shopping-source.info -shopping-team.info -shopping-ville.info -shoppingballball.com -shoppingbuyo.com -shoppingcabinets.com -shoppinglove.org -shoppingpower.info -shoppingsecretnews.club -shoppingsource.info -shoppingteam.info -shoppingtostore.com -shoppingtrends24.de -shoppinguggboots.com -shoppingville.info -shoppingware.info -shoppiny.com -shoppradabagsjp.com -shopprime.work -shoppyhunt.com -shoppymarket.shop -shoppypay.shop -shopravensteamjerseys.com -shoproyal.net -shopru.host -shopsarnialambton.com -shopseahawksteamjerseys.com -shopser.ru -shopsgid.ru -shopshoes.co.cc -shopshopboongaja.com -shopshowlv.com -shopsmartclassified.com -shopsport.xyz -shopsred20.site -shopstarlow.space -shopsuperbowl49ers.com -shopsuperbowlravens.com -shopsza.com -shoptheshadowconspiracy.com -shoptragop.net -shoptumen.ru -shopukra-prust.site -shopuniformswarehouse.com -shopuniformwarehouse.com -shopussy.com -shopwalmarte.com -shopwrights.com -shopylingo.xyz -shopytopsale-lika.space -shorefitmb.com -shorelinehotelguest.com -short-haircuts.co -shortavi.tk -shorten.tempm.ml -shorterurl.biz -shortmail.net -shortopapp.site -shortpacket.org -shortsaleadv.com -shorttermloans90.co.uk -shorttermstaynyc.com -shorttimemail.com -shortybud.com -shortyliqs.net -shortyour.com -shoshaa.in -shotarou.com -shotarvaladze.site -shotcallerpress.com -shotflow.net -shotmail.ru -shotsdwwgrcil.com -shotsub.xyz -shouldercut.com -shoulderlengthhairstyles.biz -shouldermobilityflow.com -shouldpjr.com -shoutissu.site -shoutitout.biz -shoutworthy.com -showartcenter.com -showbeez.ru -showbizdirect.com -showboxmovies.club -showboxmovies.site -showbusians.ru -showcasebrand.com -showcasespas.com -showcoachfactory.com -showlogin.com -showme.social -showmeyourbest.design -shownabis.ru -showpets.store -showscoop.com -showslow.de -showstorm.com -showtimeanytimecomactivate.com -showup.us -showyoursteeze.com -shp7.cn -shpaten.site -shred50.com -shrib.com -shringarmarketing.com -shrinkedin.net -shroudofturin2011.info -shsbhns.xyz -shtang.travel -shtf2020.online -shubhlabh.ong -shuffle.email -shufflingzebra.com -shufuni.cn -shuifuli.com -shuimitaoshipin.xyz -shuimitaowang.xyz -shulmansystem.com -shuoshuotao.com -shupat.site -shurs.xyz -shusheyv.xyz -shut.name -shut.ws -shutaisha.ga -shutenk-shop.com -shuttee.com -shutterupsports.com -shutupandbet.com -shutupmeg.com -shuzi.link -shved-auto.ru -shvedian-nedv.ru -shvejnyevojska.ru -shwetaungcement.org -shwg.de -shwnshops.com -shy5mz.us -shyamguesthouse.icu -shyguymlm.com -shyuanjing.com -si-initiatives.org -si038bdxa.buzz -si039gonn.buzz -si040dcqe.buzz -si7kuh5p7hghha7.xyz -si94ve.com -siam-orchidee-ratingen.com -siambretta.com -siameducationalexperience.com -siamhd.com -sianautocentre.com -sianyhealth.com -siapabucol.com -siapaitu.online -siararab.cf -siararab.gq -siararab.tk -siasat.pl -siatkiogrodzeniowenet.pl -siavisos.com -sib-podarki.ru -sib3.xyz -sibc6f.site -sibelor.pw -siberask.com -siberiancontext.online -siberiasite.ru -siberkafa.com -sibigkostbil.xyz -sibirskiereki.ru -siblaka.ga -siblaka.ml -siblaka.tk -sibliecent.cf -sibliecent.ml -sibliecent.tk -siboneycubancuisine.com -sibphistband.cf -sibphistband.ga -sibphistband.gq -sibphistband.ml -sibphistband.tk -sibtehnosnab.ru -sibulifi.shop -siburabem.host -sicamail.ga -sicasa.casa -sicherere-verbindungen.xyz -sicheresleben.com -sicherung-9827349-datencenter-check.ru -sichtdtelar.ga -sichtdtelar.gq -sichtdtelar.tk -sickseo.co.uk -sicure.gq -sicurello.website -sid63.space -sidamail.ga -siddhacademy.com -sidebysidecycle.com -sidedeaths.co.cc -sidelka-msk.ru -sidelka-mytischi.ru -sidelka-pogilie24.ru -sidelkadlyalezhachego.ru -sidero-prokat.ru -siderurgybu.info -sidetech.info -sidhutravel.com -sidlece.xyz -sidler.us -sidmail.com -sidosa.info -sieczki.com.pl -siegeshin.us -siegesteam.buzz -siejieriau.info -siejieriau.org -siejieriau.xyz -siembrahotel.com -sienna12bourne.ga -siennajones.buzz -siennamail.com -siennazolman.com -sieprogoun.cf -sieprogoun.ga -sieprogoun.ml -sieprogoun.tk -sieprovev.cf -sieprovev.gq -sierra-leone.com -sieteluchas.com -sietepecados.com -sieucuong.com -sieuthidosi.website -sieuthidvd.com -sieuthifb.work -sieuthimayhutbui.website -sieuthirau.website -sieuthitihon.com -sieviatoua.cf -sieviatoua.ga -sieviatoua.ml -sieviatoua.tk -sifedya.ru -siftportal.ru -sify.com -sigarapazari.xyz -sigarety.info -sigbackmi.cf -sigbackmi.ga -sigbackmi.gq -sigbackmi.ml -sigbackmi.tk -sighspecuab.cf -sighspecuab.ga -sighspecuab.gq -sighspecuab.tk -sightcoas.xyz -sightdir.com -sightseeingtoursvegas.com -sighzove.cf -sighzove.ga -sighzove.gq -sighzove.tk -sigmabestshop.online -sign-up.website -signal.best -signal.sale -signal.tools -signaled.live -signaled.pro -signaled.us -signalfireranch.com -signalhd.cd -signals.reviews -signals.sale -signalstore.ru -signaltoto.com -signaltoto.net -signatureburgerculvercity.com -signaturefencecompany.com -signaturehomegroup.net -signdastsaq.cf -signdastsaq.ga -signdastsaq.gq -signings.ru -signintoemail.net -signnanlu.cf -signnanlu.ga -signnanlu.gq -signnanlu.tk -signstaller.com -signstallers.info -signstallers.net -signstallers.org -signup.vote -signwin.site -sigurs.net -sihirfm.net -sihirliblog.com -sihupe.info -siirtfirmarehberi.xyz -siis3s18lwdax43.xyz -siitk.live -sijeeri.cf -sijeeri.ga -sijeeri.tk -sika3.com -sikaland.org -sikataja.tech -sikatan.co -sikauni.com -sikdar.site -sikh.best -sikharchives.com -sikinchel.info -sikis18.org -sikis31.com -sikomo.cf -sikomo.ga -sikomo.gq -sikomo.ml -sikomo.tk -sikseydin.info -siktiket.com -sikuder.me -sikumedical.com -sikux.com -silaaccounting.com -silacon.com -silahkanbeli.com -silaleg.cf -silaleg.ga -silaleg.gq -silaleg.tk -silda8vv1p6qem.cf -silda8vv1p6qem.ga -silda8vv1p6qem.gq -silda8vv1p6qem.ml -silda8vv1p6qem.tk -sildalis.website -silencei.org.ua -silencejunb.email -silenceofthespam.com -silent-art.ru -silentdarkness.net -silentsuite.com -silesian.design -silex.cf -silex.ga -silicimhyr.space -silico.llc -silicolens.com -siliconarabia.com -siliconboost.com -siliconvip.com -silimo.rocks -siliwangi.ga -silkbrush.net -silkbrush.us -silkbrushes.biz -silkbrushes.com -silkbrushes.net -silkbrushes.us -silkgram.xyz -silkroadproxy.com -sillver.us -silmond.com -silnie-privoroti.ru -silosta.co.cc -silpay3s.ru -silsilah.life -silvago.store -silvanaboutique.com -silvanahair.com -silver-bullet.se -silver-liningcleaning.com -silvercheck.xyz -silvercoin.life -silverflare.com -silverfox.dev -silverfox.icu -silverfoxpocket.com -silvergold.global -silvergoldbull.global -silvergolddepositories.com -silvergoldloans.com -silverlinecap.com -silverliningreflections.com -silverpromask.com -silverseacruises.org -silverstarmarine.com -silverthornepavilion.org -silviadistefano.it -silxioskj.com -silybor.com -sim-simka.ru -sim25.com -sim7k.fun -simaenaga.com -simails.info -simamg.com -simari.tk -simasdia.cf -simasdia.ga -simasdia.ml -simasdia.tk -simba88club.com -simba88play.com -simbagames.se -simbet33.com -simbet55.com -simbet66.com -simbolospatrios.info -simbos.pro -simcity.hirsemeier.de -simcoepainting.com -simemia.co -similardozens.com -simmanllc.com -simoka73.vv.cc -simonhampel.net -simonlychecker.net -simonstreams.live -simpacked.com -simpgava.cf -simpgava.ga -simpgava.gq -simple-dinner-recipes.com -simple-mail-server.bid -simplealternativescares.com -simplebox.email -simplebrackets.com -simplebt.com -simplecoffeehouse.com -simpledress.online -simpleemail.in -simpleemail.info -simplehealthybodywellnesspro.com -simplehouseexit.com -simpleitsecurity.info -simplejourneyguide.com -simplelifetimeincome.com -simplelifthub.com -simplemail.in -simplemail.top -simplemailserver.bid -simplemerchantcapital.com -simplenews.info -simplepaylink.com -simplepeacock.com -simplervision.org -simpleseniorliving.com -simplesocialmedia.solutions -simplesport.ru -simpletextmarketing.com -simpleverification.com -simpleverni.icu -simplictylegal.com -simplisse.me -simplisseminerals.com -simply-email.bid -simply.cheap -simply4seniors.com -simplyamulet.ru -simplyaremailer.info -simplydelivered.online -simplyemail.bid -simplyemail.men -simplyemail.racing -simplyemail.trade -simplyemail.win -simplyfireworksdirect.com -simplyhorsemanship.com -simplypottytrain.com -simplysportsnews.xyz -simplysweeps.org -simplytastythaijax.com -simplythcfreecbd.com -simplyui.com -simposio.pro -simpsmarex.cf -simpsmarex.ga -simpsmarex.gq -simpsmarex.tk -simrig.shop -simscity.cf -simsdsaon.eu -simsdsaonflucas.eu -simsession.com -simsmail.ga -simsosieure.com -simspec.net -simtoanquoc.com -simu.solar -simulink.cf -simulink.ga -simulink.gq -simulink.ml -sin-mailing.com -sin.cl -sin88.org -sina.toh.info -sinalke.cf -sinalke.ga -sinalke.gq -sinalke.ml -sinalke.tk -sinangokergoz.com -sinasina.com -sinasinaqq123.info -sincanankara.xyz -sincankombiteknikservisi.com -sincitymurrcon.org -sincroaste.com -sinda.club -sindhcollegeeducation.com -sindu.org -sinema.ml -sinemail.info -sinemailing.com -sinemalab.com -sinfiltro.cl -singapore-nedv.ru -singaporelor.com -singaporetriennale.com -singaporetriennial.com -singatoto.net -singhtv.online -single-lady-looking-for-man.club -singlecoffeecupmaker.com -singlecyclists.org -singleearbud.com -singleearphone.com -singlenomore.com -singles-day.global -singlesearch12.info -singlespride.com -singlesx.site -singletravel.ru -singlex.site -singlexx.site -singonline.net -singotes.xyz -singpost.space -singpost.website -singssungg.faith -singtechsingapore.com -singtelmails.com -singulptxr.online -singyeang.com -sinhsins.shop -sinhvien.asia -sinisterbrain.com -sink.fblay.com -sinkingbody.com -sinkorswimcg.com -sinmailing.com -sinnlichemittel.info -sinnlos-mail.de -sinnott.us -sino.tw -sinoease.com -sinology.com -sinomd.com -sinopite.xyz -sinopotocilingir.xyz -sinplefx.com -sinplego.com -sinsinfo.com -sinterklaasactie.net -sintesengenharia.com -sinvis.ru -sinyomail.gq -siofreelan.cf -siofreelan.ga -siofreelan.gq -siofreelan.ml -siofreelan.tk -siolence.com -siomangwezinationalpark.org -siononpa.cf -siononpa.ga -siononpa.gq -siononpa.ml -sionumin.monster -siosfatuat.cf -siosfatuat.ga -siosfatuat.tk -siostocet.cf -siostocet.ga -siostocet.ml -siostocet.tk -sipbone.com -siphonula.best -sipinitial.top -sippingonhistory.org -siptogel.org -sir1ddnkurzmg4.cf -sir1ddnkurzmg4.ga -sir1ddnkurzmg4.gq -sir1ddnkurzmg4.ml -sir1ddnkurzmg4.tk -sirbingley.com -sireparamos.com -sirf.ong -sirgoo.com -sirhenibushveldcamp.com -siri-dublin.com -sirihealthcare.com -siriuscoffee.online -sirjan.shop -sirji.ru -sirostand.site -sirplusplus.com -sirr.de -sirver.ru -sis-informatique.com -sis52.xyz -sisahy.info -sisari.ru -sisemazamkov.com -sisipizzatakeaway.com -sisjmps.biz -sisko7.com -sislietfal2kbb.xyz -sislovesme.pro -sismemembran.com -sismeyapi.com -sismolo.ga -sissyproducts.com -sistemasderadiocomunicacionaxc.com -sisterjaneshop.com -sisteronabudget.com -sistewep.online -sisvode.cf -sisvode.ga -sisvode.gq -sisvode.ml -siswa.shop -sitdown.com -sitdown.info -sitdown.us -site-566g.online -site-bites.design -site-flowers.ru -site-games.ru -site-imperial.ru -site-recette.com -site-student.online -site-value.us -site24.site -site2apps.com -site4you.site -siteasa.website -sitefilm10.xyz -sitegoooroo.com -sitehost.shop -sitehosting.shop -sitemap.uk -sitemapsorg.site -sitenet.site -sitengin.com -siteparis.com -sitepenguin.com -siteposter.net -sitereplicator.net -sitersz.site -sites4friends.com -sitestyt.ru -sitetechnician.com -sitetosite.site -sitetwass.fun -siteuvelirki.info -sitkowskischool.com -sitlicou.cf -sitlicou.ga -sitlicou.ml -sitlicou.tk -sitnicely.com -sitnjoybalivillas.com -sitoautos.info -sitolowcost.com -sitrincare.org -sitroningdown.website -sitss.biz -sittingbournekebab.com -situationwa.email -situsbandarqiu.website -situsbola88.asia -situsgapleqq.com -situsjudibola88.com -situsjudionline.rocks -situsoke.online -situspoker.monster -situspokergo.info -situspokergo.net -siuleong.com -siundcu.com -siux3aph7ght7.cf -siux3aph7ght7.ga -siux3aph7ght7.gq -siux3aph7ght7.ml -siux3aph7ght7.tk -sivago.xyz -sivasakthitravels.xyz -sivasgeziyor.com -sivasgrandmasaldugunsarayi.com -sivashaberci.xyz -sivashaykoop.com -sivasisitmeengelliler.com -sivasliderfm.xyz -sivasligardaslar.xyz -sivassecimanketi.com -sivasspo.xyz -sivassporluyuz.xyz -sivasticaretmerkezi.com -sivasticaretmerkezi.xyz -siverekkuce.xyz -sivtmwumqz6fqtieicx.ga -sivtmwumqz6fqtieicx.gq -sivtmwumqz6fqtieicx.ml -sivtmwumqz6fqtieicx.tk -sivu.site -sivwb.us -siwonmail.com -six-six-six.cf -six-six-six.ga -six-six-six.gq -six-six-six.ml -six-six-six.tk -six.emailfake.ml -six.fackme.gq -sixbeagle.com -sixdrops.org -sixfgasgdo.ga -sixfgasgdo.gq -sixfgasgdo.ml -sixfgasgdo.tk -sixfigureactions.com -sixhappinessbettystown.com -sixi1916.com -sixi789.com -sixpackdifference.com -sixsharp.com -sixsigmaconsultants.com -sixt7.com -sixteenmeasures.dev -sixteenmeasures.live -sixteenthings.com -sixthsolid.com -sixtptsw6f.cf -sixtptsw6f.ga -sixtptsw6f.gq -sixtptsw6f.ml -sixtptsw6f.tk -sixtyk.com -sixtysixx-winter-sale.ru -sixxx.ga -sixyxi.cf -sixyxi.tk -siyahsarimsak.info -siyahsarimsak.online -siyahsarimsakresmi.site -siyahsarimsaksatis.info -siyamkhanbd.tk -siyerrehberi.xyz -siyeu.com -siyiel.icu -sizableonline.info -sizemc.store -sizespeed.com -sizeviewtrading.com -sizincarsi.xyz -sizinelan.biz -sizzlemctwizzle.com -sizzmurke.cf -sizzmurke.ga -sizzmurke.ml -sj206.com -sj20bt.net -sj3wlih.fun -sj5c.buzz -sjadhasdhj3423.info -sjck.icu -sjdh.xyz -sjl0ec.us -sjmcfaculty.org -sjnq9o.us -sjokbl.shop -sjp.nyc -sjpvvp.org -sjqmiihs.shop -sjrajufhwlb.cf -sjrajufhwlb.ga -sjrajufhwlb.gq -sjrajufhwlb.ml -sjrajufhwlb.tk -sjsfztvbvk.pl -sjuaq.com -sjukvardsmaterial.se -sjw-8307com.com -sjwg.us -sjzetyy.com -sk-vodoley.ru -sk0282.com -sk0380.com -sk0584.com -sk0585.com -sk0683.com -sk1825.com -sk6859.com -sk9802.com -sk9806.com -sk9817.com -sk9818.com -ska1218.ru -skaba.xyz -skachat-1c.org -skachat-888poker.ru -skachatfilm.com -skadel.xyz -skafi.xyz -skafunderz.com -skagen.xyz -skaipopia.space -skakuntv.com -skalcongress.com -skalith.xyz -skambil.com -skamia.xyz -skandiasport.com -skanu.xyz -skanyx.xyz -skaram.host -skateboarding-aficionados.com -skateboardingcourses.com -skater.zone -skatingequipment.org -skavo.xyz -skbhcnai.shop -skdjfmail.com -skdl.de -skechers-store.net -skechers-store.site -skedelweiss.ru -skedules.com -skedware.com -skeefmail.com -skeleton.us -skeletoncoastnationalpark.com -skellbox.ru -skeres.biz -skerin.com -sketchlib.ru -sketchlord.com -skettiobo.cf -skettiobo.ga -skettiobo.gq -skettiobo.ml -skettiobo.tk -skf828.icu -skfmfr.fun -skg3qvpntq.cf -skg3qvpntq.ga -skg3qvpntq.ml -skg3qvpntq.tk -skgtvp.us -skh.kim -skh.one -skhlist.net -skhnlm.cf -skhnlm.ga -skhnlm.gq -skhnlm.ml -skhstudio.com -ski-larosiere.com -skiagram.xyz -skideo.xyz -skidka-top.club -skidkatrends-top.site -skidkitop-kos.space -skidkivsem-top.space -skidubaimoments.com -skifi.xyz -skifrance.website -skifsmm.ru -skigh.net -skilaphab.cf -skilaphab.gq -skilaphab.ml -skillfare.com -skillfulblogger.com -skillion.org -skillion.store -skillionebikes.com -skillmachine.net -skillsgaming.com -skillsprivateacademy.net -skillsprivatetutoring.net -skilltag.com -skilsiri.cf -skilsiri.ga -skilsiri.gq -skimba.xyz -skimcss.com -skimlinks.site -skin-barone.site -skin-therapy.shop -skin416.net -skinacneremedytreatmentproduct.com -skinadvancedstore.com -skinaspoun.cf -skinaspoun.ml -skinaspoun.tk -skinbionom.com -skincareadvises.com -skincareonlinereviews.net -skincareproductoffers.com -skindu.xyz -skinhub.online -skinid.info -skinnyhandw.com -skinnyskinnysoaps.com -skinoodle.xyz -skinrustz.fun -skinsboom.xyz -skinsjar.icu -skinsosmoothpro.com -skinsuction.com -skintagfix.com -skinti.xyz -skinwhiteningforeverreview.org -skinyc.org -skinzrust.fun -skipadoo.org -skipbot.xyz -skipbyte.xyz -skiphire.network -skipopiasc.info -skiprnet.com -skipspot.eu -skishop24.de -skite.com -skittlrrcd.space -skiwgeoslav.cf -skiwgeoslav.gq -skiwhivap.ga -skiwhivap.gq -skiwhivap.ml -skiwhivap.tk -skkk.edu.my -sklad.progonrumarket.ru -skladchina.pro -sklazer.ru -skldfsldkfklsd.com -sklep-motocyklowy.xyz -sklep-nestor.pl -sklepsante.com -skm-ritual.ru -skodaauto.cf -skoghallpirates.se -skogmasawmills.com -skokiecpa.net -skolioz.info -skollbox.ru -skomedlys.com -skoozipasta.com -skor72.online -skorbola.club -skorbolaeuro.net -skorcomp.ru -skore.org -skorexpres.com -skormafusisi.space -skoronaekane.ru -skoshkami.ru -skowarz.club -skqmph.fun -skqmtf.fun -skra.de -skrattonnet.se -skrenvar.com -skrmgx.fun -skrmsw.fun -skrx.tk -skrzynka.waw.pl -sksfullskin.ga -sksmgc.fun -sktechprofs.com -sktmzg.fun -skummi-service.ru -skunkapps.com -skurkcasino.se -skv-object.ru -skvorets.com -skwbet.info -skxmdx.fun -skxmh.com -sky-grad.com -sky-inbox.com -sky-isite.com -sky-mail.ga -sky-movie.com -sky-ts.de -sky.dnsabr.com -skyadvert.info -skybahis.info -skybahis11.com -skybahis13.com -skybahis2.com -skybahis20.com -skybahisyenigiris.com -skybarlex.xyz -skybestyool.site -skycityproductions.com -skycodrones.com -skyconceptsphotos.com -skycustomhomes.com -skydragon112.cf -skydragon112.ga -skydragon112.gq -skydragon112.ml -skydragon112.tk -skydrive.tk -skyfibernetworksnv.com -skyflowers.info -skyflyhd.com -skygame7.com -skygame9.com -skyhard.online -skylablearning.com -skylarkmusic.online -skymail.ga -skymail.gq -skymailapp.com -skymailgroup.com -skymemy.com -skymountbahamas.com -skymountgovernmentservices.com -skymovieshd.space -skymovieshd.store -skyne.be -skynetengine.xyz -skynetfli.xyz -skynetflix.xyz -skyoid.xyz -skyometric.com -skypaluten.de -skypewebui.eu -skyrtiador.ga -skyrtiador.tk -skysmail.gdn -skyterracecondos.com -skytopconstruction.info -skytopconstruction.net -skytowerwindows.com -skytvdirect.com -skyvendersar.website -skyvia.info -skyvision.cd -skyworldtech.com -skz.us -skzc.net -skzmzs.fun -skzokgmueb3gfvu.cf -skzokgmueb3gfvu.ga -skzokgmueb3gfvu.gq -skzokgmueb3gfvu.ml -skzokgmueb3gfvu.tk -sl-ph.com -slaappleks.info -slabefotke.com -slack.best -sladko-ebet-rakom.ru -sladko-milo.ru -slambanglodge.com -slamroll.com -slane-kebabish-takeaway.com -slane-kebabish.com -slantmean.us -slantta.icu -slapsfromlastnight.com -slarmail.com -slashpills.com -slaskpost.rymdprojekt.se -slaskpost.se -slatkyf.best -slatmolda.cf -slatmolda.ga -slatmolda.ml -slatmolda.tk -slaughsages.com -slavakzb.ru -slave-auctions.net -slaveguinevere.com -slavens.eu -slavenspoppell.eu -slawbud.eu -slayam.site -slayress.com -slcgolf.net -sldindustries.com -sleavia.xyz -sledhoops.net -sledzikor.az.pl -sleeck.website -sleekdirectory.com -sleepary.com -sleepeasy.club -sleeperout.ga -sleeperout.tk -sleepesder.cf -sleepesder.gq -sleepesder.ml -sleepesder.tk -sleepfjfas.org.ua -sleepimportance.com -sleepinggiantliving.com -sleeprevital.com -sleepyninjagames.com -slefcare.com -sleij.host -slekepeth78njir.ga -slendex.co -sleppersl.xyz -slexports.com -slexpress.ru -slfmade.media -slgd.icu -slicediceandspiceny.com -sliceottawa.com -slicescheadle.com -slicesl.xyz -slicesle.xyz -sliceslee.xyz -slidegl.xyz -slidegla.xyz -slidejud.site -slidepuzzleapp.com -slidereach.com -slideshowapp.net -slifelabs.com -slifeweb.com -slikroad.show -slim-geld-lenen.info -slimagic.pro -slimail.info -slimboefje.online -slimdown1.ru -slimdown1.site -slime4you.ru -slimeangl.email -slimearomatic.ru -slimebase.ru -slimeco.xyz -slimecrea.xyz -slimefi.xyz -slimefina.xyz -slimeke03.site -slimexpo2020.ru -slimfort.ru -slimimport.com -slimkasinos.website -slimmepil.com -slimmer.cloud -slimmex.info -slimming-fast.info -slimming-premium.info -slimmingtabletsranking.info -slimor.site -slimsum.com -slimurl.pw -slimwaists.fun -slimwaists.space -slimwaits.space -slingomother.ru -slinng.ru -sliped.com -slippery.email -slippinband.com -slipry.net -slipshore.com -slipunob.cf -slipunob.ga -slipunob.gq -slipunob.ml -slissi.site -slitherer.com -slitko.xyz -slittrbmbz.space -sliv-cash.ru -slivap.com -sliveas.site -slivmag.ru -slivtika.cf -slivtika.gq -slivtika.ml -slix.dev -sljcsb.com -slkfewkkfgt.pl -slkjghsx77sx.ru -slmshf.cf -slmtracker.com -slobodanetivana.com -slobruspop.co.cc -slofuxhl.pro -slogangraduateperforate.website -slogramming.com -slomail.info -slona.site -slonmail.com -slopeintend.com -slopjockeys.com -sloppyworst.co -slopsbox.com -slopsegrex.space -slot-machine-gambling4money.com -slot118.org -slot7.club -slot7.fun -slot889.net -slotbet24.bet -slotes.ru -slothino-foundation.com -slothino-reviews.com -slothino-roulette.com -slothino.net -slothinofreebet.com -slothmail.net -slotino.xyz -slotobet.win -slotogod.club -slotojam.com -slotoking.city -slotoking.live -slotonlinebet.org -slotopin.fun -slotopin.online -slotopin.website -slotorotation.site -slotozal-casino.win -slotreward.com -slotrotation.icu -slots-formoney.com -slots-in-zurich.space -slots.sl -slots360.online -slots4you.ru -slotsawasdee.net -slotsbestproffit.ru -slotsbox.ru -slotsrasafe.space -slotstation26.com -slotstation29.com -slotstation3.com -slotstation30.com -slotstation35.com -slotstation39.com -slotticaksn.online -slottojam.casino -slottojam1.com -slottojam21.com -slottojam28.com -slovabegomua.ru -slovac-nedv.ru -slovect.pro -sloven-nedv.ru -slovenianschool.info -slovinskylawoffice.com -slovmeralgl.site -slowcooker-reviews.com -slowdeer.com -slowfoodfoothills.xyz -slowgramming.com -slowslow.de -sls.us -slson.com -slsp10.xyz -slsrs.ru -sltmail.com -sltng.com -slu21svky.com -slugmail.ga -slumppeac.icu -slumpwat.email -slushmail.com -slushyhut.com -slut-o-meter.com -sluteen.com -slutty.horse -slvbot.online -slvbus.com -slwedding.ru -slwyqbu.com -sly.io -sm51qc.info -sma.center -smaekets.com -smahtin.ru -smailpost.info -smailpostin.net -smailpro.com -smajok.ru -smalkaa.site -smallalpaca.com -smallanawanginbeach.com -smallbizla.com -smallbizloans.xyz -smallbudg.xyz -smallbusinessacct.info -smallbusinessacct.us -smallbusinessmindset.com -smallbusinessownergrants.com -smallbusinessseoagency.com -smallcleaningbrush.com -smallcleaningbrush.org -smallcleaningbrush.us -smallcleaningbrushes.com -smallcleaningbrushes.org -smallcleaningbrushes.us -smallcolor.store -smallcrud.email -smallfrank.com -smallgroups.app -smallhouzz.com -smallironabsorption.website -smallker.tk -smallpe.icu -smallstepstowellness.net -smalq.com -sman14kabtangerang.site -smanual.shop -smanual.site -smap4.me -smapfree24.com -smapfree24.de -smapfree24.eu -smapfree24.info -smapfree24.org -smardebtra.ga -smardebtra.gq -smardebtra.ml -smardebtra.tk -smaretboy.pw -smarshevent.com -smart-1-shop.online -smart-10-shop.online -smart-11-shop.online -smart-13-shop.online -smart-19-shop.online -smart-20-shop.online -smart-21-shop.online -smart-23-shop.online -smart-25-shop.online -smart-27-shop.online -smart-28-shop.online -smart-29-shop.online -smart-32-shop.online -smart-33-shop.online -smart-35-shop.online -smart-4-shop.online -smart-5-shop.online -smart-6-shop.online -smart-7-shop.online -smart-email.me -smart-host.org -smart-intentions.site -smart-mail.info -smart-mail.top -smart-mask.online -smart-medic.ru -smart-movie.biz -smart-thailand.com -smartalls.ru -smartbee.website -smartbusiness.me -smartcharts.live -smartcharts.pro -smartdedicated.site -smartdigitalone.com -smarterafter.com -smarterleads.online -smarteu.site -smartfotobudka.ru -smartfuture.space -smartgrid.com -smarthq.com -smarthqdistribution.com -smarthqproduction.com -smartify.homes -smartinstaprint.online -smartintentions.site -smartkeeda.net -smartlinkeroffer.xyz -smartlyheated.com -smartmasterkz.ru -smartmobility2016.shop -smartpaydayonline.com -smartphoneaddictionprogram.com -smartphonedangers.site -smartphonescreen.ru -smartphonesukraine.ru -smartphonesukraine.website -smartpikes.site -smartplaygame.com -smartpranks.com -smartpro.tips -smartprost-rf.ru -smartpurchaseus.com -smartsass.com -smartshop.futbol -smartsignout.com -smarttalent.pw -smarttestztn.site -smarttipsannie.com -smarttrainbodybuilduppreworkout.com -smarttrut.space -smarttvshop.life -smartvanlines.com -smartvds.xyz -smartvineyards.net -smartvp.xyz -smartvps.xyz -smartvs.xyz -smartwatch-9.ru -smartworkcenter013.nl -smartworldaccountants.com -smartx.sytes.net -smarty123.info -smartyzaim.store -smartzuyer.online -smashchao.fun -smashmail.de -smashprediabetes.com -smashtherecord.com -smbc-card.xyz -smcalv.host -smcccf.org -smcgreenville.com -smcleaningbydesign.com -smdtnbsd38407.ga -smdtnbsd38407.ml -smdtnbsd38407.tk -smdtnbsd44893.cf -smdtnbsd44893.ga -smdtnbsd46735.ml -smdtnbsd47078.cf -smdtnbsd47078.tk -smdtnbsd49121.ml -smdtnbsd49121.tk -smdtnbsd83684.cf -smdtnbsd83684.ga -smdtnbsd83684.ml -smdtnbsd83684.tk -smellfear.com -smellqu.xyz -smellrear.com -smellri.xyz -smellslikehypocrisy.com -smellypotato.tk -smeltitdealtit.com -smena-rabota.ru -smesthai.com -smetenzonenpromoties.site -smfg-law.com -smgrep.org -smh08888.com -smh18888.com -smh24-news.site -smh38888.com -smh78888.com -smi.ooo -smi30.xyz -smile-king.site -smileair.org -smilebalance.com -smilefaceexpression.com -smilefastcashloans.co.uk -smileglobal.biz -smilequickcashloans.co.uk -smiletransport.com -smilevxer.com -smileyet.tk -smime.ninja -sminicca.gq -sminicca.ml -sminicca.tk -smiotaku.online -smirnoffprices.info -smirusn6t7.cf -smirusn6t7.ga -smirusn6t7.gq -smirusn6t7.ml -smirusn6t7.tk -smith.com -smithandjones.us -smithfieldaw.com -smithfieldkebabhouse.com -smithgroupinternet.com -smithinsurer.com -smithschevron.net -smithwright.edu -sml2020.xyz -smldv.ru -smlmail.com -smlmail.net -smltop.xyz -smm-drom.ru -smm3.buzz -smmok-700nm.ru -smmwalebaba.com -smnagyaw.shop -smokdunyasi.xyz -smoke-allnight.ru -smoke-hollow.org -smokedril.press -smokefreesheffield.co.uk -smokehollow.org -smokehollowsmokers.com -smokeli.icu -smokemarket.org -smokemt.online -smoken.com -smokengunsmusic.com -smokeru.us -smokestackhobbyshop.com -smoketoas.email -smokeyridgewinery.com -smokingcessationandpregnancy.org -smokingpipescheap.info -smokinwingsspartanburg.com -smoklounge.ru -smokovik.com -smoksigara.xyz -smokymountain.guide -smokymountain.shop -smokymountain.store -smokymountainrealestateproperties.com -smokymountains.shop -smoochseniors.com -smoothtakers.net -smoothtreats.com -smoothunit.us -smosh.org -smosmm.ru -smotr.site -smotret-video.ru -smotretonline2015.ru -smotretvideotut.ru -smotry-v-glaza.ru -smottowee.info -smoug.net -smrltd.xyz -smrn420.com -smrtwyt.site -sms-analytical.net -sms-analytical.org -sms-express.us -smsanalytical.net -smsarjana.org -smsazart.ru -smsbaka.ml -smsblue.com -smsbuds.in -smscashpro.xyz -smsdash.com -smsdostup.com -smsenmasse.eu -smsforum.ro -smsjokes.org -smsmint.com -smsplanets.net -smsraag.com -smsturkey.com -smswan.com -smtapp.xyz -smtdh0.xyz -smtownv.online -smtp.docs.edu.vn -smtp2-dein-shop.accountant -smtp3.cz.cc -smtp33.com -smtp8-dein-shop.accountant -smtp9-dein-shop.accountant -smtp99.com -smtponestop.info -smug.info -smugarur.cf -smugarur.gq -smugarur.ml -smugarur.tk -smuguk.com -smuktliv.com -smuse.me -smvpoker.site -smwg.info -smyrnaattorneys.com -smzppk.shop -sn-em.com -sn3bochroifalv.cf -sn3bochroifalv.ga -sn3bochroifalv.gq -sn3bochroifalv.ml -sn3bochroifalv.tk -sn55nys5.cf -sn55nys5.ga -sn55nys5.gq -sn55nys5.ml -sn55nys5.tk -snabbel.app -snabdil.ru -snack-bar.name -snack-bar.us -snackbar.name -snackfood.com.cn -snackmango.com -snacktime.games -snad.website -snad1faxohwm.cf -snad1faxohwm.ga -snad1faxohwm.gq -snad1faxohwm.ml -snad1faxohwm.tk -snafoss.com -snag.org -snaganautoloan.com -snahandric.icu -snail-mail.bid -snailda.xyz -snailmail.bid -snailmail.download -snailmail.men -snaipau.online -snajtv.us -snakebite.com -snakebutt.com -snakecharm.ru -snakeiptv.live -snakemail.com -snakeriverstone.com -snakket.com -snaknoc.cf -snaknoc.ga -snaknoc.gq -snaknoc.ml -snam.cf -snam.ga -snam.gq -snam.tk -snamaii.ru -snamletaik.xyz -snap.monster -snapbackbay.com -snapbackcapcustom.com -snapbackcustom.com -snapbackdiscount.com -snapbackgaga.com -snapbackhatscustom.com -snapbackhatuk.com -snapbet20.xyz -snapbet2020.xyz -snapbett.xyz -snapblack.site -snapbrentwood.org -snapfish77.com -snapfishhsn.com -snapfishvaluepass.com -snapmaps360.com -snapmoms.org -snappedly.xyz -snappy.lease -snappypjay.space -snapquotes.com -snapunit.com -snapwet.com -snasu.info -snatap.space -snazzysnoodsandmore.com -sncnsl.site -sndae5.us -sndbtp.host -sndcrd.com -sneakalfi.cf -sneakalfi.gq -sneakalfi.ml -sneakemail.com -sneaker-friends.com -sneaker-mag.com -sneaker-shops.com -sneakerbunko.cf -sneakerbunko.ga -sneakerbunko.gq -sneakerbunko.ml -sneakerbunko.tk -sneakerhub.ru -sneakers-blog.com -sneakersisabel-marant.com -sneakmail.de -sneakyreviews.com -sneeuwbeukers.online -snehadas.rocks -snehadas.site -snehadas.tech -snellerherstel.nu -snelschilder.com -sngcentric.com -sngcom.ru -snif-acc.online -snike.site -snikersrules.ru -snip707.com -snipbingra.ga -snipbingra.gq -snipbingra.tk -snipe-mail.bid -snipemail4u.bid -snipemail4u.men -snipsandiego.org -snkaddr.com -snkmail.com -snkml.com -snkno.com -snkplace.com -snkplayer.com -snkqun.com -snktop.com -snl9lhtzuvotv.cf -snl9lhtzuvotv.ga -snl9lhtzuvotv.gq -snl9lhtzuvotv.ml -snl9lhtzuvotv.tk -snmotcpg.shop -snncnaydin.xyz -snnytt.tk -snnyty.cf -snnyty.ml -snobbob.com -snocespalk.icu -snollygoster.space -snoofi-shop.ru -snoom.com -snoosnot.shop -snoppeak.us -snorcle.tk -snorcoundo.cf -snorcoundo.ga -snorcoundo.gq -snorcoundo.ml -snorcoundo.tk -snore-therapy.com -snotis.icu -snotsnoo.shop -snouy.ru -snovosty.ru -snowbirdsfloridausdaytracker.com -snowboots.site -snowboots4usa.com -snowdenlimited.com -snowf0x.com -snowflakescustomjewelry.xyz -snowmail.xyz -snowmanunicode.com -snowprozone.com -snowsweepusa.com -snowthrowers-reviews.com -snpsex.ga -snqfl.xyz -sns.moe -snslogin.com -snuggle.ink -snugmail.net -snugsconcertseries.com -snytax.host -snz873.com -so-com.tk -so-l.org -so-net.cf -so-net.ga -so-net.gq -so-net.ml -so-u.club -so1ffy.online -so873g.site -soap2day.best -soapa.solutions -soapmarket.com -soapoperablog.com -soaronwings.shop -sobakanazaice.cf -sobakanazaice.ga -sobakanazaice.gq -sobakanazaice.ml -sobakanazaice.tk -sobat21.design -sobatkeren.design -sobdollfab.cf -sobdollfab.ga -sobdollfab.gq -sobdollfab.tk -sobeatsdrdreheadphones1.com -sobecoupon.com -sobeessentialenergy.com -sobill247.com -soblazn55.ru -soblaznvip.ru -sobmarinos.info -sobrietybuddyapp.com -sobrinhofs.com -sobrinhogf.com -sobrinhogroup.com -sobrinhon.com -sobterstread.cf -sobterstread.ga -sobterstread.gq -sobterstread.ml -sobterstread.tk -socalbikini.com -socalbrewnet.com -socalgamers5.info -socalnflfans.info -socalu2fans.info -socampeoes.com -socaparang.com -socbusinesstraining.com -soccer-brilliant.site -soccer-fanatics.space -soccer365.space -socceracademy.vegas -soccerazzo.com -soccerfans.space -soccerfit.com -soccerinstyle.com -soccertop.website -soccertotalstats.com -socgazeta.com -sochi.shn-host.ru -sochihosting.info -sochimeridian.ru -sochipools.com -social-bookmarking-site.info -social-mailer.tk -socialayz.xyz -socialcampaigns.org -socialcloud99.live -socialdistancing.tools -socialeum.com -socialfresh.website -socialfurry.org -socialhubmail.info -socialimdb.xyz -socialisaso.com -socialleadhack.net -sociallearningmarketplace.com -sociallifes.club -sociallinks.info -sociallymediocre.com -socialmailbox.info -socialmasta.org -socialmediaepic.com -socialmediamonitoring.nl -socialpreppers99.com -socialsecret.ru -socialtalker.com -socialtheme.ru -socialtracking.live -socialtroopers.com -socialventuresglobal.com -socialviplata.club -socialxbounty.info -sociative.xyz -societycampblog.site -societylionnews.club -sociocrisio.com -sociotasking.online -sociotasking.site -socitude.xyz -socjaliscidopiekla.pl -sockfoj.pl -sockpockers.com -socksbest.com -sockshare.watch -socmail.net -socoolglasses.com -socprodvizheniye.ru -socral-wood.ru -socratesmuniz.com -socrazy.club -socrazy.online -socsety.com -socusa.ru -socvideo.ru -soczewek-b.pl -soczewki.com -soda55.com -sodalithite.best -sodap4.org -sodapoppinecoolbro.com -sodatorrent.website -sodergacxzren.eu -sodergacxzrenslavens.eu -soderjanki.xyz -sodertornsfjarrvarme.nu -sodertornsfjarrvarme.se -sodiumysszd.email -soeasytop.ru -soeo4am81j.cf -soeo4am81j.ga -soeo4am81j.gq -soeo4am81j.ml -soeo4am81j.tk -soeveryonecangame.info -sofaoceco.pl -sofia.re -sofialenaliving.com -sofian.website -sofiarae.com -soficom.cd -sofimail.com -sofit-1.ru -sofme.com -sofodac.ru -sofolgia.com -sofort-mail.de -sofort.group -sofortmail.de -sofos.host -soft-cheap-oem.net -soft-utorrent.ru -soft4load.xyz -softanswer.ru -softballball.com -softbank.tk -softboxtv.ru -softdesk.net -softfaber.org -softgel.biz -softistic.net -softistic.org -softkey-office.ru -softmails.info -softnews.su -softonics.site -softpaws.ru -softpls.asia -softportald.tk -softswiss.today -softtoiletpaper.com -softvanria.cf -softvanria.ga -softvanria.gq -softvanria.ml -softvanria.tk -softviagra.info -software-sekolah.net -software.golf -software315.xyz -softwareaa316.xyz -softwareabilities.com -softwareandart.org -softwareblog.net -softwaredeals.site -softwaredynamics.tech -softwareengineer.info -softwareprofs.dev -softwaresekolah.net -softwarespiacellulari.info -softwarespiapercellulari.info -softwareversus.com -softwash.xyz -softwiretechnology.com -soganliadaklikkurban.online -soganliadaklikkurban.xyz -sogetthis.com -soggybottomrunning.com -soglashenmirov.xyz -soglasie.info -sogolfoz.com -sogopo.cf -sogopo.ga -sogopo.ml -sogopo.tk -sohai.ml -sohbet10.com -sohbet17.com -sohbetac.com -sohbetamk.xyz -sohbethattibu.xyz -sohoct.com -sohopros.com -sohosale.com -sohu.net -sohu.ro -sohufre.cf -sohufre.ga -sohufre.gq -sohufre.ml -sohus.cn -soillost.us -soiloptimizer.com -soilsuperfood.com -soioa.com -soisz.com -soitanve.cf -soitanve.ml -soitanve.tk -sojnd7.us -sojuqq.com -sokahplanet.com -sokaklambasi.cf -sokaklambasi.ga -sokaklambasi.ml -sokaklambasi.tk -sokeorganizasyon.xyz -soki.site -sokosquare.com -sokratit.ru -sokvi.us -sol28.com -solacenutrition.net -solalgarvio.com -solar-apricus.com -solar-impact.pro -solar.pizza -solaraction.network -solaraction.org -solaractivist.network -solarbet99.site -solarclassroom.net -solareclipsemud.com -solaredgelights.com -solaren-power.review -solarfirestarters.com -solarflight.org -solarfor99dollars.com -solarforninetyninedollars.com -solarianmedia.xyz -solarino.pl -solarquick.africa -solarwinds-msp.biz -solatint.com -solddit.com -soldesburbery.com -soldesnice.com -soldierofthecross.us -soldierreport.com -soldisthebest4letterword.com -soldnmyyb.shop -soleli.com -soleme.info -soliaflatirons.in -soliahairstyling.in -solidbots.net -solidframework.com -solidframeworks.com -solidgoldop.biz -solidseovps.com -solidstepper.top -solidtrianglegroup.com -solihulllandscapes.com -solinvictusguild.com -solioutlets.site -solirallc.com -solitaire-sunshine.com -sollie-legal.online -sollieja.online -solliejuridischadvies.online -solliz.online -solomasks.com -soloner.ru -soloou.xyz -solopreneur365crm.com -solosoloku.com -solotioner.site -solotouchofficial.ru -solotrasmakinasi.site -solovevz.ru -solovyova.org -solowkol.site -solowtech.com -solpowcont.info -soltur.bogatynia.net.pl -solu.gq -solu7ions.com -soluje.info -soluteconsulting.com -soluteconsulting.us -solution-finders.com -solution-space.biz -solutionsmagazine.org -solutionsnetwork10.com -solutionssummit.net -solutyn.net -solvabbolm.space -solve-anxiety.com -solvedbycitizens.com -solvemail.info -solventtrap.wiki -somaderm.health -somalipress.com -somans.site -sombra-company.ru -sombracorporation.ru -somdhosting.com -some.us -someadulttoys.com -somebodyswrong.com -somechoice.ga -somecool.xyz -somedd.com -someeh.org -someeh.us -somepornsite.com -somera.org -somerandomdomains.com -someredirectpartneral.info -someredirectpartnerance.info -someredirectpartnerery.info -someredirectpartnerify.info -someredirectpartnerious.info -someredirectpartnerly.info -someredirectpartneroid.info -someredirectpartnery.info -somethingsirious.com -sometimesbee.top -sommys.space -somniasound.com -somonbrand.com -somoslantian.net -somoslantian.org -soms-software.net -somsmarketing.info -somssoftware.net -somsupport.xyz -son-haber.live -son-haber.site -son-haber.website -son.zone -son16.com -sonaluma.com -sonamyr.shop -sonasoft.net -sonata-krasotavn.ru -sonderagency.org -sondwantbas.cf -sondwantbas.ga -sondwantbas.tk -sonesont.shop -songart.ru -songbomb.com -songgallery.info -songiang.xyz -songjiancai.com -songjianglushi.info -songlists.info -songlyricser.com -songpaste.com -songpong.net -songsblog.info -songshuxb.com -songyangguang.com -sonhaber.fun -sonhaber.live -sonicaz.space -sonicaz.website -soniconsultants.com -sonicx-pro.shop -sonifia.site -sonindependiente.com -sonindirimler.xyz -sonkub.com -sonmoi356.com -sonnarapp.com -sonohilight.com -sonomapock.xyz -sonophon.ru -sonseals.com -sonshi.cf -sonshi.pl -sonsporttpinup.ru -sonsuzhizmetci.xyz -sontearssat.website -sonu.com -sony4d.best -sony4d.xyz -sonyclub.online -sonyedu.com -sonymails.gdn -sonytoto.org -sonyymail.com -soodbet.site -soodbt.club -soodmail.com -soodomail.com -soodonims.com -soogalsudan.com -soon.it -soon2open.com -soonerinvestmentsint.com -soonso.com -soopr.info -sooq.live -sooqalsudan.com -sootbet90s.org -soowz.com -soozoop.com -sopatrack.com -sopbet.net -sophiamartins.online -sophiejenkins.buzz -sopho.blog -sopotstyle.com -sopotstyle.xyz -sopowstran.cf -sopowstran.ga -sopowstran.gq -sopowstran.tk -sopranospizzeriawaterford.com -sopsandqs.com -sopuhi.info -sora11.shop -soraly.cf -soraly.ga -soraly.gq -soraly.ml -soranet.shop -sorbapackp.space -sorcios.com -sordeti.cf -sordeti.ga -sordeti.gq -sordeti.ml -sordeti.tk -sordiri.cf -sordiri.ga -sordiri.ml -sordiri.tk -soricident.site -soriro.info -soroboutique.site -sororitree.com -sororitymvp.com -sorpresa-continua.info -sorrentos-takeaway.com -sorrownadj.space -sortado.com -sortado.ru -sortado.sk -sortecerta.online -sorteeemail.com -sortgleams.top -sortirlyon.org -soruvi.com -soshanti.org -soslouisville.com -soslukedi.xyz -sosmanga.com -sosmedpokeronline.net -sosojd.com -sostavpretenzii.xyz -sosvoyants.net -sosxao.xyz -sosyalmedyayonetimi.online -sosyalmerlin.online -sosyalmerlin.xyz -sotahmailz.ga -sotayonline.com -sote-muncete.club -soten.info -sothich.com -sotisoth.shop -sotnwh.shop -sotosegerr.xyz -sotres.ru -sottomarina.org -sotube.biz -souaimi.com -soudcuvea.cf -soudcuvea.gq -soudcuvea.ml -soudcuvea.tk -soudeel.com -soufflesinlive.com -sougalsudan.com -souhon.com -soukalsudan.com -soulfire.pl -soulinluv.com -soulmate-search.com -soulproprietorship.org -soulsourcespirit.org -soumail.info -soundagencystring.website -soundclouddownloader.info -soundfg.gq -sounditems.com -soundmovie.biz -soundwid.com -sounlali.cf -sounlali.ml -sounzaaf.online -soupans.ru -souqdeal.site -sourcedrx.com -sourcenet.online -sourceri.space -sourcesprosrvcs.com -sourcessolutionspros.com -sourcestrategic.com -sourcewithimpact.org -sourcl.club -sourcreammail.info -sourijboopn.email -sourtrush.site -soushuba.xyz -sousousousou.com -south-windinfo.online -southafrica-nedv.ru -southamericacruises.net -southamericangenweb.org -southamptonprintings.press -southamptonwebdesign.com -southasianfloods.org -southbaybh.com -southbridgeveterinary.com -southbrisbaneliving.com -southburyelderlawgroup.com -southcarolina.company -southeastaddictiontreatment.com -southeastasiaheritage.net -southeastasiaheritage.world -southeastassets.com -southelgindentist.net -southerncloseouts.com -southerndrinking.com -southernhighlandsgolfhomes.com -southernkiving.com -southernlegends.com -southernmovingsystems.com -southernpetservices.com -southernstarsvacations.info -southernup.org -southfloridaprivateinvestigator.com -southfloridaprivateinvestigators.org -southforklabs.com -southjordanapartments.com -southkorea.dev -southlakeapartments.com -southlaketahoeapartments.com -southmendocinorealestate.com -southmiamirealestateblog.com -southpasadenaapartments.com -southphillyrambots.com -southshoreadclub.com -southshoreaudi.net -southshoreauto.net -southshoremotors.net -southshorerover.net -southsidescout.com -southwestfloridaeyecare.com -soutong001.com -souvlakimalta.com -souvps.com -sovactha.cf -sovactha.ga -sovactha.gq -sovactha.ml -sovactha.tk -sovereignvpn.com -soverybling.com -sovetsro.ru -sovideostop.info -sovietizing684ig.online -sovixa.com -sowellfabric.com -sowhatilovedabici.com -sowmyapatapati.com -sowpropelsea.website -sowvet.org -sowwcharity.org -soxisipa.site -soxivu.info -soxoshops.site -soxrazstex.com -soycasasy.info -soycasero.com -soydemkt.com -soyou.net -soysimilar.com -soyuz-zvezda.ru -sozdaem-diety.ru -sozdanie-websaita.ru -sozfilmi.com -sozialismusoderbarberei.vision -sozzlefdvb.space -sp-aa.com -sp-market.ru -sp.woot.at -spa-fish.ru -spa-resort-lombok.com -spa.com -spacalar.cf -spacalar.ga -spacalar.ml -space-company.ru -space-fashion.ru -space-for-dates1.com -spacebazzar.ru -spacebooks.site -spacecas.ru -spacecityrecords.net -spacecore.blog -spaceepics.com -spaceflowers.ru -spaceinvadas.com -spacemail.info -spacepush.org -spacerust.net -spaceshop.website -spaceterm.info -spacewalker.cf -spacewalker.ga -spacewalker.gq -spacewalker.ml -spaceways.cd -spaceybodycount.com -spacherry.com -spacibbacmo.lflink.com -spaclick.online -spaereplease.com -spagyrichemp.com -spain-nedv.ru -spain-real-estate.ru -spainholidays2012.info -spainreview.net -spaintoday.club -spajek.com -spaledo.xyz -spalombok.com -spam-be-gone.com -spam-en.de -spam-nicht.de -spam.care -spam.coroiu.com -spam.deluser.net -spam.dhsf.net -spam.dnsx.xyz -spam.fassagforpresident.ga -spam.flu.cc -spam.hortuk.ovh -spam.igg.biz -spam.janlugt.nl -spam.jasonpearce.com -spam.la -spam.loldongs.org -spam.lucatnt.com -spam.lyceum-life.com.ru -spam.mccrew.com -spam.netpirates.net -spam.no-ip.net -spam.nut.cc -spam.org.es -spam.ozh.org -spam.pyphus.org -spam.rogers.us.com -spam.shep.pw -spam.su -spam.tla.ro -spam.trajano.net -spam.usa.cc -spam.viola.gq -spam.visuao.net -spam.wtf.at -spam.wulczer.org -spam4.me -spamail.de -spamail.typhon.ga -spamama.uk.to -spamarrest.com -spamassage-nsk.ru -spamavert.com -spamblog.biz -spambob.com -spambob.net -spambob.org -spambog.com -spambog.de -spambog.net -spambog.ru -spambooger.com -spambox.info -spambox.irishspringrealty.com -spambox.me -spambox.org -spambox.us -spambox.win -spambox.xyz -spamcannon.com -spamcannon.net -spamcero.com -spamcon.org -spamcorptastic.com -spamcowboy.com -spamcowboy.net -spamcowboy.org -spamday.com -spamdecoy.net -spameater.org -spamelka.com -spamex.com -spamfighter.cf -spamfighter.ga -spamfighter.gq -spamfighter.ml -spamfighter.tk -spamfree.eu -spamfree24.com -spamfree24.de -spamfree24.eu -spamfree24.info -spamfree24.net -spamfree24.org -spamgoes.in -spamgourmet.com -spamgourmet.net -spamgourmet.org -spamherelots.com -spamhereplease.com -spamhole.com -spamify.com -spaminator.de -spamkill.info -spaml.com -spaml.de -spamlot.net -spammail.me -spammedic.com -spammehere.com -spammehere.net -spammer.fail -spammingemail.com -spammotel.com -spammy.host -spamobox.com -spamoff.de -spamsalad.in -spamsandwich.com -spamserver.cf -spamserver.ga -spamserver.gq -spamserver.ml -spamserver.tk -spamserver2.cf -spamserver2.ga -spamserver2.gq -spamserver2.ml -spamserver2.tk -spamslicer.com -spamspameverywhere.org -spamsphere.com -spamspot.com -spamstack.net -spamthis.co.uk -spamthis.network -spamthisplease.com -spamtrail.com -spamtrap.co -spamtrap.ro -spamtroll.net -spamwc.cf -spamwc.de -spamwc.ga -spamwc.gq -spamwc.ml -spamwc.tk -spamyourbot.com -spandamail.info -spandrel.xyz -spaneger.club -spaniaflyplasstransport.com -spanien-immobilie-kaufen.com -spanienflygplatstransfer.com -spanishprofestore.com -spankoneout.com -spapa.ooo -spapaketleri.com -spapur.com -spararam.ru -sparc.media -sparc.mobi -sparc.red -sparc.support -sparesortlombok.com -sparfaclust.org -spark-short.ru -sparkaddress.com -sparket.com -sparkgnome.com -sparkgrowthteam.com -sparklepuzzles.app -sparkles.rocks -sparklogics.com -sparkmobile.xyz -sparkofone.com -sparkpensions.com -sparkstreet.dev -sparktel.us -sparktelecom.xyz -sparkyandjax.net -sparramail.info -sparrowcrew.org -sparruthetti.site -sparta.parts -spartamc.com -spartan-fitness-blog.info -spartanburgkc.org -spartanmarketing.net -spartapress.com -sparxbox.info -spasalonsan.ru -spase.website -spaso.it -spasuren.cf -spasuren.ga -spasuren.gq -spasuren.ml -spasuren.tk -spavinbxxs.site -spavinbxxs.website -spawnet.ru -spawnitaustralia.com -spawnitaustralia.online -spayment.ru -spayneutersaveslives.org -spb.ru -spbdyet.ru -spbemestarfit.host -spbemestarfit.online -spbintim.ru -spbladiestrophy.ru -spblt.ru -spbsquash.ru -spbtcdev.com -spduszniki.pl -spe24.de -speakeasyvanuatu.com -speakers401k.com -speakersblown.com -speakfimal.cf -speakfimal.ga -speakfimal.ml -speakfimal.tk -speakfreely.email -speakfreely.legal -speaktion.com -speakuptampabay.com -spearsmail.men -spearsreunion.com -speasfarm.us -spec-energo.ru -spec7rum.me -speciaalmachinebouw.com -specialbrush.biz -specialbrush.net -specialbrush.us -specialbrushes.net -specialbrushes.us -specialinoevideo.ru -specialinternetsite.com -specialistperformanceclassics.com -specialmail.com -specialprograms.biz -specialrate.xyz -specialrecipes.space -specialshares.com -specialsshorts.info -specialtcomfortcookies.com -specialty208uq.online -specialtybrushes.biz -specialtylightingandbulb.com -specialuxe.com -specialzone.xyz -specnondse.cf -specnondse.ml -specnondse.tk -specsantehnika.ru -specsecurity.ru -spectacularevents.org -specterius.ru -spectexremont.ru -spectralbodywork.com -spectreonline.net -spectro.icu -spectroscopy.tech -spectrummarketing.net -speechdova.space -speechiebusiness.com -speechlanguagetherapy.org -speed.hexhost.pl -speedcha.xyz -speedchal.icu -speedcloud.tokyo -speeddataanalytics.com -speeddategirls.com -speedemre.ga -speedemre.gq -speedemre.ml -speedemre.tk -speedgaus.net -speedily.site -speedkill.pl -speedlab.com -speedmag.com -speedorspir.cf -speedorspir.ga -speedorspir.ml -speedorspir.tk -speedpizza.ru -speedsogolink.com -speedspecial.club -speedsportsnews.xyz -speedsweep.net -speedsweepbroom.biz -speedsweepbroom.org -speedsweepbroom.us -speedsweepbrooms.biz -speedsweepbrooms.com -speedsweepbrooms.us -speedwayhealthspot.com -speedwayroadcarriers.com -speedycorn.biz -speedycorn.com -speedycorn.net -speedycorn.us -speedycornbroom.com -speedycornbroom.us -speedycornbrooms.biz -speedycornbrooms.org -speedydir.site -speedyenglish.xyz -speedyhostpost.net -speedymop.org -speemail.info -spektech.ru -spektr.info -spektrsteel.ru -spellas.email -spelldgmoe.space -spelled962tz.online -spellgla.press -spellware.ru -spellworksbrewery.com -spelovo.ru -spemail.xyz -spencech.com -spendbitcoin.com -spendbitcoins.net -spenden.app -sperma.cf -sperma.gq -spetsinger.ru -spfence.net -spga.de -spgen.net -sphate.ru -spheresdesign.com -spheretqoz.club -spherinde.ga -spherinde.gq -spherinde.ml -sphile.site -sphiritlab.com -spicate.xyz -spiceblogger.com -spiceedit.com -spiceglossary.com -spicehuttakeaway.com -spiceindiatakeaway.com -spiceitl.ru -spiceoflifetakeaway.com -spicesncurry.com -spick.club -spicy-grill-kebabish.com -spicybites-clonmel.com -spicycartoons.com -spicyhutindian.com -spicykarmen.com -spidalar.ga -spidalar.gq -spidalar.ml -spidalar.tk -spider.co.uk -spiderbabygrafix.com -spidercoal.icu -spiderfracture.com -spierdalaj.xyz -spigotmedia.com -spikebase.com -spikemargin.com -spikesstation.top -spikeworth.com -spikio.com -spillcar.xyz -spillfres.xyz -spillplea.red -spilt-test.bar -spilt-test.ru -spin-city-casino.com -spin-city-casino.info -spin-city.ru -spin-stickers.ru -spin24.com -spin720.com -spinacz99.ru -spinamrai.gq -spinamrai.tk -spinanit.cf -spinanit.ga -spinanit.gq -spinanit.tk -spindl-e.com -spindye.se -spinefruit.com -spinenow.physio -spinerin.cf -spinerin.ga -spinerin.gq -spinerin.ml -spingame.ru -spingenie.net -spingenie.org -spinghar-takeaway.com -spinia9.com -spinletbarth.cd -spinmail.info -spinners.se -spinoffer.ru -spinofis.ga -spinofis.gq -spinofis.ml -spinofis.tk -spinsterism.best -spinthis.biz -spipharma.net -spiral-of-life.ru -spiraled205ep.online -spiraling894vg.online -spirende.ga -spirende.gq -spirende.ml -spiripvan.ga -spiripvan.ml -spiripvan.tk -spirit.eco -spiritedmusepress.com -spiriti.tk -spiritjerseysattracting.com -spiritofradio.com -spiritofradio.info -spiritofradio.org -spiritsingles.com -spiritualfriendship.site -spiritualgemstones.info -spiritualgemstones.net -spiritualized243ee.online -spirituallabs.com -spirituallifesociety.org -spirituelle.design -spiritvuym.space -spiritwarlord.com -spirityxcc.space -spirliro.gq -spirliro.tk -spiroflux.com -spirt.com -spirtofrespect.com -spirutda.cf -spirutda.gq -spirutda.ml -spirutda.tk -spit-fire-productions.com -spitdesk.us -spitminuteremind.website -spittingup.com -spk9s.us -spkr-info.online -spkvariant.ru -splashdogs.net -splashjunglewaterpark.com -splendacoupons.org -splendidgifts.com -splendyrwrinkles.com -splintergroup.com -splio.nu -splishsplash.ru -splitauto.info -splitsl.icu -splitstuf.us -splitzauayy.email -spm.laohost.net -spmy.netpage.dk -spo777.com -spoilandsplendor.com -spoilhor.xyz -spoilhors.xyz -spokanenailsalons.com -spokaneparks.com -spokaneparks.net -spokedcity.com -spoksy.info -spolujizda.info -spomus.site -spondylodymus.best -sponect.com -spongemop.net -spongemops.biz -spongemops.us -sponsorhq.com -spontomleo.cf -spontomleo.ga -spontomleo.gq -spontomleo.tk -spoof.global -spoofmail.de -spookwarehouse.com -spooltacount.cf -spooltacount.ga -spooltacount.gq -spooltacount.ml -spooltacount.tk -spoom.pro -spoonelastic.com -spooofcard.com -spoortnews.info -sporbaydar.cf -sporbaydar.ga -sporbaydar.tk -sporethob.cf -sporethob.gq -sporethob.ml -sporethob.tk -sporexbet.com -sporksource.com -sporogenus-probiotics.com -sporsalonuankara.com -sport-1xbet.ru -sport-gesundheit.de -sport-life24.ru -sport-magaz.website -sport-outlet.info -sport-partners.ru -sport-polit.com -sport-portalos.com.uk -sport-souvenirs.ru -sport-web.ru -sport4me.info -sportanchik.ru -sportanswers.ru -sportbro.tech -sportbro666.com -sportbro72.com -sportbrobananat.ru -sportbrohome.ru -sportchek.ru -sportcrownt.ru -sportdsirect.com -sporterona.ru -sporteventmanager.net -sportfiends.com -sportfitne.com -sporthitbatt.ru -sporthitbrobanana.ru -sporthitbrobananat.ru -sporthitbrocub.ru -sporthitbrofan.ru -sporthitbrojar.ru -sporthitbromask.ru -sporthitbromaskt.ru -sporthitbroroad.ru -sporthitcrownt.ru -sporthitdresst.ru -sporthitmask.ru -sporthitmilkt.ru -sporthitrockt.ru -sporthittutcrown.ru -sporthittutmilk.ru -sportinize.icu -sportiotdyhvmeste.ru -sportiva.site -sportivnoetv.ru -sportmasina.com -sportmay.icu -sportmiet.ru -sportmilkt.ru -sportnbet.ru -sportofchivalry.org -sportprediction.com -sports-mud.com -sports3888.com -sportsa.ovh -sportsaa317.xyz -sportsallnews.com -sportsbarrie.com -sportsbettingblogio.com -sportsbettingcheat.com -sportscape.tv -sportscentertltc.com -sportscoring.org -sportsdeer.com -sportseventmanager.net -sportsextreme.ru -sportsflownews.club -sportsfoo.com -sportsfunnyjerseys.com -sportsgames2watch.com -sportsgobet.com -sportsheadbasketball.com -sportshqip.org -sportsinjapan.com -sportsintheraw.com -sportsjapanesehome.com -sportsnews.xyz -sportsnewsengine.xyz -sportsnewsforfun.com -sportsnflnews.com -sportsokworld.com -sportsraw.com -sportsscoring.org -sportsshopsnews.com -sportsterandme.com -sporttutbat.ru -sporttutmom.ru -sportulae.store -sportwales.org -sportylife.us -sporunaf.cf -sporunaf.ga -sporunaf.gq -spot12.icu -spotagory.com -spotcome.com -spotevents.online -spotify.best -spotifyupgrade.life -spotistic.com -spotlessmamma.online -spotlightgossip.com -spotlittle.com -spotmyworld.com -spotoaaa.com -spotoid.com -spotream.online -spotspeople.com -spottswoods.com -spoutserver.com -spoutsocial.ru -spoy.cn -spp878.com -spr.io -sprak.us -spranklesmeatclub.com -sprauncy.site -spravkajurist.ru -sprawdzlokatybankowe.com.pl -spraycrea.xyz -spraylysol.com -spraysalo.space -spreaddashboard.com -spreadoutlaugh.club -sprend.ru -sprenger1.com -sprin.tf -spring-o-pedia.com -springcitychronicle.com -springfactoring.com -springfield.clinic -springfieldnailsalons.com -springhotsale.com -springleafbooks.com -springmelodyteashop.website -springrive.com -springtowngeneralstore.com -sprinklerareus.com -sprintpal.com -spritelayer.net -spritepromo.eu -spritzzone.de -sproces.shop -sprosistalina.ru -sprypixel.net -spryte.co -sprzet.med.com -sps-visualisierung.de -spsnoforeclosure.com -spsu2o.us -spsuhornets.com -spt-sun.ru -sptgaming.com -sptrw.live -spuddgunner.xyz -spudiuzdsm.cf -spudiuzdsm.ga -spudiuzdsm.gq -spudiuzdsm.ml -spudiuzdsm.tk -spumartes.cf -spumartes.ga -spumartes.ml -spumartes.tk -spura2.com.mz -spurahome.se -spuramexico2.mx -spuramexico20.com.mx -spuramexico20.mx -spuramexico20012.com -spuramexico20012.com.mx -spuramexico2012.com -spuramexico2012.info -spuramexico2012.net -spuramexico2012.org -spurgs.us -spvantispam.com -spy700.com -spybox.de -spycamp.ml -spycellphonesoftware.info -spychelin.cf -spychelin.gq -spychelin.ml -spychelin.tk -spyderskiwearjp.com -spyderwebsoftware.com -spydictionary.com -spylive.ru -spymobilephone.info -spymobilesoftware.info -spyphonemobile.info -spyrointeractive.com -spysoftwareformobile.info -spywtarpa.cf -spywtarpa.ga -spywtarpa.gq -spywtarpa.ml -spywtarpa.tk -sq212ok.com -sq322.com -sq711.com -sq9227.com -sq9999.com -sqadekc.com -sqairwave.com -sqcysm.com -sqfbin.xyz -sqfec.us -sqftselfstorage.com -sqgpru.us -sqhbdl.site -sqicolombia.biz -sqiiwzfk.mil.pl -sqoai.com -sqpw35.us -sqqh9w.us -sqsiil.com -sqttr.com -squadmetrics.net -squadmetrix.com -squadmetrix.net -squafb.us -square-seal.com -squaredsmp.com -squaredsuppliers.com -squareseal.com -squarevjpe.space -squarsonry.best -squatch.shop -squawvalleyprom.net -squawvalleyresorts.com -squeeze.gq -squeezedconsumer.com -squeezedconsumer.org -squeezetv.com -squidforhire.com -squirepark.org -squirrelcagefan.net -squirt.school -squirtblurt.com -squirtsnap.com -squizzy.de -squizzy.eu -squizzy.net -sqwawky.com -sqwqdc.com -sqwtmail.com -sqxx.net -sr-wa.com -sr.ro.lt -sr2che.com -sr5qyp.us -sraka.xyz -srancypancy.net -srariityyy88.xyz -sravni.credit -sravnizaimi.ru -srb10n.com -srbhomessellfast.com -srbolik.com -srcoqhkc.shop -srcpls.ru -srenco.com -srenon.com -srestod.net -srewerty.ru -srgb.de -srgfesa21.online -srggaming.com -srhcp.org -srhfdhs.com -sri-consulting.com -sri-consulting.net -sriauth.com -sribey.com -srinkaweb.website -srjq.us -srkeskin.ga -srkeskin.tk -srkonduskar.com -srku7ktpd4kfa5m.cf -srku7ktpd4kfa5m.ga -srku7ktpd4kfa5m.gq -srku7ktpd4kfa5m.ml -srku7ktpd4kfa5m.tk -srm76.ru -srodaumvj7yvg76.xyz -sroff.com -srouchastie.xyz -srproductiononline.com -srqstudies.com -srquiz.com -srrowuvqlcbfrls4ej9.cf -srrowuvqlcbfrls4ej9.ga -srrowuvqlcbfrls4ej9.gq -srrowuvqlcbfrls4ej9.ml -srrvy25q.atm.pl -srsbizns.com -srsconsulting.com -srsxsx.shop -srtchaplaincyofcanada.com -srtnr.info -srtnr.org -srub48.ru -srubstroy35.ru -srugiel.eu -srv-aple-scr.xyz -srvais.online -srwatch.us -sry.li -srzio2.com -ss-deai.info -ss-hitler.cf -ss-hitler.ga -ss-hitler.gq -ss-hitler.ml -ss-hitler.tk -ss.undo.it -ss00.cf -ss00.ga -ss00.gq -ss00.ml -ss01.ga -ss01.gq -ss02.cf -ss02.ga -ss02.gq -ss02.ml -ss02.tk -ss1775.com -ss4pfk.us -ssabmocon.cf -ssabmocon.ga -ssabmocon.gq -ssabmocon.ml -ssabmocon.tk -ssacslancelbbfrance2.com -ssahgfemrl.com -ssakda2.net -ssande.site -ssangyong.cf -ssangyong.ga -ssangyong.gq -ssangyong.ml -ssanphone.me -ssanphones.com -ssantswilliams.icu -ssaofurr.com -ssapp222.xyz -ssapp555.xyz -ssapp777.xyz -ssasalliance.com -ssassto.ru -ssbhtcvm.shop -ssbt-russia.info -ssc52.top -sscclub.com -sschmid.ml -sscr7q.icu -ssd24.de -ssdbench.com -ssdcgk.com -ssddfxcj.net -ssdfxcc.com -ssdhfh7bexp0xiqhy.cf -ssdhfh7bexp0xiqhy.ga -ssdhfh7bexp0xiqhy.gq -ssdhfh7bexp0xiqhy.ml -ssdhfh7bexp0xiqhy.tk -ssdijcii.com -ssds.com -ssdsrvd.com -ssecured.com -ssegrub.best -ssekableat.top -ssfaa.com -ssfccxew.com -ssfehtjoiv7wj.cf -ssfehtjoiv7wj.ga -ssfehtjoiv7wj.gq -ssfehtjoiv7wj.ml -ssfehtjoiv7wj.tk -ssg24.de -ssgjylc1013.com -sshd520.com -sshid.com -ssiet.info -sskifym.site -sskinus.site -sskitriy.site -sskmail.top -sskstroy.ru -sskynderg.site -sskyreo.site -ssl-aktualisierung-des-server-2019.icu -ssl-trusted.com -ssl-verify.xyz -ssl.tls.cloudns.asia -ssl9mail.xyz -ssldigitalcertificate.com -sslgen.org -sslglobalnetwork.com -sslgsms.ru -sslporno.ru -sslsecurecert.com -sslsmtp.bid -sslsmtp.download -sslsmtp.racing -sslsmtp.trade -sslsmtp.win -ssml.app -ssmstem.net -ssn8ed.us -ssnapbridgee.site -ssnapclube.site -ssnapmarkm.site -ssnp5bjcawdoby.cf -ssnp5bjcawdoby.ga -ssnp5bjcawdoby.gq -ssnp5bjcawdoby.ml -ssnp5bjcawdoby.tk -sso-demo-okta.com -sso3.com -ssoia.com -ssoiskatel.ru -ssongs34f.com -sspecialscomputerparts.info -ssq.us -ssqiancha.com -ssrjzx.com -ssrpink.club -sssdccxc.com -ssslideserve.icu -ssspan.com -sssppua.cf -sssppua.ga -sssppua.gq -sssppua.ml -sssppua.tk -ssst-zar.ru -sssxs.top -sstata.com -ssteermail.com -sstorer.com -sstsy.net -ssudanhmis.org -ssuet-edu.tk -ssunz.cricket -ssv5jc.us -ssvm.xyz -sswinalarm.com -ssww.ml -ssxueyhnef01.pl -ssykxh.us -sszeyg24.xyz -sszxapi.com -sszzzz99.com -st-exp.net -st-lupopo.cd -st-m.cf -st-m.ga -st-m.gq -st-m.ml -st-m.tk -st1.vvsmail.com -st33.xyz -stabbettsnupp2020.xyz -stabbying.monster -stabetingsnup.xyz -stabetting.xyz -stabilbettsnapp.xyz -stabilitybetsnapp.xyz -stabilitybettingsnapp.xyz -stablebot.ru -stablecoininterest.com -stablemail.igg.biz -stachebarbershop.com -stackedlayers.com -stackinglayers.com -stacklance.com -stackled.com -stackleds.com -stackomatic.com -stackparts.com -stackupapp.com -stadia.codes -stadiumtrucks.net -stadyumdan.com -stafabands.info -staff7.ml -staffburada.com -staffchat.tk -staffmessages.com -staffprime.com -stafimre.cf -stafimre.ga -stafimre.gq -stafimre.ml -stagabta.site -stagarti.cf -stagarti.ga -stagarti.gq -stagarti.tk -stagazvi.ga -stagazvi.ml -stagazvi.tk -stage-dz.com -stagebla.xyz -stagedandconfused.com -stagedoorstudios.co.uk -stagefright.info -stagenext.co -stagewate.xyz -stagewijzer.space -stagingdisco.com -stagingsever.com -stagmoli.cf -stagmoli.ga -stagmoli.gq -stagmoli.ml -stagmoli.tk -stagnations.best -stagricomp.cf -stagricomp.ga -stagricomp.gq -stagricomp.ml -stagricomp.tk -stailas.club -staindrea.xyz -stainlessevil.com -stainlesssteelbrush.biz -stainlesssteelbrush.net -stainlesssteelbrush.org -stainlesssteelbrushes.us -staircraft5.com -staishansteel.com -stakegrace.com -stakehab.xyz -stakeholderexchange.org -staking-live.com -stalbud2.com.pl -stalbudd22.pl -stale.ml -stalenvilla.com -stalingradd.ru -stalingulag.com -stalker22.ru -stallbla.recipes -stallde.icu -stallfev.icu -stalliondc.com -stalloy.com -stallspine.recipes -stalnoj.ru -stalos.pl -stamathioudaki.xyz -stamberg.nl -stambytesundsvall.se -stamcoral.cf -stamcoral.ga -stamcoral.gq -stamcoral.tk -stamforddoctors.com -staminafamily.com -stampfrui.fun -stampguid.fun -stampoint.com -stamppot.media -stampsprint.com -stan-stan.com -stanalandgroup.com -stanbankrot.xyz -stanbondsa.com.au -standais.xyz -standaisl.xyz -standardcrypto.com -standardhome.org -standardsoptical.fun -standartnewsbg.club -standartnewsbg.online -standartnewsbg.today -standclea.icu -standeight.com -standeputatom.ru -standfl.xyz -standhover.email -standing-desk-office-expert.zone -stando-borescope.com -standothe.xyz -standrewavellinorcchurch.com -standrewavellinorcchurch.info -standrewavellinorcchurch.us -standrewskirk.org -standrewswide.co.uk -standupforyourrightswisconsin.org -standupstories.com -standwo.icu -stanford-edu.tk -stanfordscientific.org -stanfordujjain.com -stankrc.com -stanleykitchens-zp.in -stanmody.cf -stanmody.ga -stanmody.gq -stanmody.ml -stanmody.tk -stanniiffu.space -stanovanjskeprevare.com -stansade.cf -stansade.ga -stansade.ml -stansade.tk -stanthonycroatianchurchla.org -stantondoctors.com -stantonwhite.com -stanungrab.cf -stanungrab.gq -stanungrab.ml -staplefy.com -star-bet.cash -star-context.site -star-court-chinese-shannon.com -star-goroscop.org -star-trek.online -star0casino.club -starb5t5.com -starbasket.camp -starbet.xyz -starbet79.com -starbittest.xyz -starblogsthai.com -starbola.com -starboptyd.space -starbucks-samples.club -starcira.com -starcitycards.biz -starcitycards.net -starcitycards.org -starcraftwallpapers.com -stardefcon.com -stardiesel.biz -stardiesel.info -stardiesel.org -stargate1.com -stargaterecords.com -stargentumcraft.ru -starherz.ru -starikmail.in -starinfluencer.org -starkaraoke.ru -starkebab-athlone.com -starkfoundries.com -starkjoyas.com -starkrecords.com -starlegboa.cf -starlegboa.ga -starlegboa.gq -starlegboa.tk -starlight-breaker.net -starlightcanna.com -starlimo.cf -starlimo.ga -starlimo.ml -starline-a.site -starmagsigh.cf -starmagsigh.gq -starmagsigh.ml -starmetalsatlanta.us -starmyace.ga -starmyace.gq -starmyace.tk -staroevsyakoe.com -staronescooter-original.ru -starpl.com -starpolyrubber.com -starpopco.cf -starpopco.gq -starpopco.ml -starpower.space -starpreneur.com -stars-bets.com -stars-vulkan-casino.win -starslots.bid -starstablecheats.com -starstaboos.com -starstatemachine.org -starstruckcommerce.com -start-me.ru -start-money39.ru -start-serial.xyz -start-up.kg -start-vr.online -startafreeblog.com -startahead.today -startaheadtoday.com -startank.icu -startap731.ru -startation.net -startawinecollection.com -startbags.ru -startcreate.ru -startemail.tk -starterplansmo.info -startersite.ru -startfu.com -starthand.icu -startidc.com -startimetable.com -startkeys.com -startkni.icu -startmail.xyz -startoon02.com -startoon5.com -startoon8.com -startoon9.com -startpaya.com -startsgreat.ga -startupcircles.mobi -startupex.online -startuphusky.com -startuplunchclub.com -startupmystartup.com -startupnyou.com -startupschwag.com -startupsimulator.ru -startupsjournal.com -startupstartertoolkit.com -startuptees.com -startuptulsa.com -startuup.co -startwithone.ga -startxters.online -startymedia.com -starvalley.homes -starvalleyequipmentrental.com -starvalleyranchrvpark.com -starvalleyrentals.com -starveyourego.com -starveyourego.org -starwaytollers.com -starwin365.biz -starwitches.net -starx.pw -staryoskol.info -staryzones.com -starzip.link -stashemail.info -stashsheet.com -stasuauth.com -stat.org.pl -statdvr.com -stateattorneysgeneral.com -stateblin.space -statecollegedoctors.com -statecollegeplumbers.com -statefl.xyz -stateflee.xyz -statelawsuitreform.org -statelawyerdirectory.com -statement.email -statenislandmvp.com -stateofoyo.com -stateofthedebate.com -statetaxreview.com -stathost.net -static-xad.com -staticcontrolbrush.net -staticcontrolbrushes.biz -staticcontrolbrushes.net -staticdissipativebrush.com -staticdissipativebrushes.us -staticintime.de -staticpad.com -statiix.com -station.poker -stationatprominence.com -statisticalbreviary.com -statisticalbreviary.net -statisticalbreviary.org -statloan.info -staton-time.com -statontime.com -statpill.com -statravel.ru -statrep.com -stats-on-time.com -statsbet.ru -statsbot.xyz -statson-time.com -statsondemand.com -statsontime.com -stattech.info -statuaxkwo.space -status.vote -statusa.shop -statusers.com -statusinforming.xyz -statuspage.ga -statusqm.biz -statusqm.com -statusqm.net -statusqm.org -statusqms.biz -statusqms.net -statusqms.org -statutoryregisters.com -statx.ga -stavkapromokod10.ru -stavki-na-sport-online.ru -stavkile.xyz -stayarch.us -stayfish-dublin.com -stayfitforever.org -stayhome.li -stayinyang.com -staylocal.asia -staypei.com -staytoppop.com -stayvigel.com -stayvigil.com -stbartstours.com -stclairlawofficewa.com -stcnedu.com -stcroixboatrentals.com -std.doctor -steadying.com -steakej.icu -steakhe.us -steakhors.xyz -steakinde.xyz -steakreb.xyz -steakrebe.xyz -steakshoo.email -stealbest.com -stealbets.ru -stealth-check.space -stealthapps.org -stealthypost.net -stealthypost.org -steam-area.ru -steam-brush.net -steam-inventory-helper.com -steam-love.ru -steamak.ru -steambooty.com -steambot.net -steamcases.ru -steamcommuynitu.ru -steamcomunity.ru -steamdiscoveryhomeschool.com -steamgg.ru -steamgreenlight.ml -steamlite.in -steammap.com -steampowered.games -steamprank.com -steampunkrider.com -steamreal.ru -steamsupport-tr.tk -steamth.com -steamvip.ml -steamyliasons.com -steamyprofiles.com -steauaeomizerie.com -steauaosuge.com -steclin.net -stecloochistitel.ru -stedmeister.com -steel-pipes.com -steelgainer.ru -steemail.ga -steepeli.icu -steeplion.info -steericjpz.space -stefanbates.com -stefangorzkiewicz.com -stefanrush.com -stefanspooren.online -stefantoresson.se -stefhf.nl -stefparket.ru -steganpsmc.space -stegodons.best -stehkragenhemd.de -steifftier.de -steinheart.com.au -steklosila.ru -steklozona.ru -stekolko.ru -stelgames.com -stelian.net -stelkendh00.ga -stellarleagues.com -stelliteop.info -stels26.ru -stemcca123.xyz -stemfor.ru -stemsurgery.com -stendsad.gq -stenglertv.com -stenta.org -steorn.cf -steorn.ga -steorn.gq -steorn.ml -steorn.tk -stepbystepwoodworkingplans.com -stephanbrandhorst.shop -stephaniefords.com -stephaniestephensbuyshousesinconroe.com -stephensgreen-media.com -stephs.site -stepitup.solutions -steplingdor.com -steplingor.com -steplushs.online -stepoffstepbro.com -steprepeatsbackdrop.com -steps-of-rome-restaurant.com -stepsofromeitalian.com -steptobusiness.ru -steptohs.gq -stepundum.ga -stepundum.gq -stepundum.ml -stepundum.tk -stepx100.company -stepx100.name -stepx100.one -stepx100.ru -stepx100.space -stereoreceivers.info -sterfastspir.ga -sterfastspir.gq -sterfastspir.ml -sterfastspir.tk -sterlingheightsquote.com -sterlingsilverflatwareset.net -sterlingtelecom.ru -stermail.flu.cc -steroidi-anaboli.org -stetna.site -steueetxznd.media.pl -steumccommuniti.ru -steumccommunyti.ru -steumccommunytiu.ru -steumcommunytl.ru -steumcommunytliu.ru -steumcommunytlu.ru -steumcomunitu.ru -steumcomunnitu.ru -steumcomuunniti.ru -steumcomuunnitu.ru -steumcoommunytiu.ru -steunhandelaars.online -steunhandelaars.site -steunhandelaars.vlaanderen -steunhoreca.site -steuwo.site -stevefotos.com -steveharrismedia.com -steveholmesphoto.com -stevenbaker.com -stevenledford.com -stevenolls.info -stevenorbye.com -stevenspointapartments.com -stevepavilanis.com -stevesmale.com -steviestephens.com -stevyal.tech -stewartscyclecity.com -stewartspokane.com -stewarttalentchicago.com -stexsy.com -steyraustralia.com -stf8.wtf -stftmsa.club -stg.malibucoding.com -stgj68.com -stgmm.live -sthaniyasarkar.com -stichtowear.com -stick-tube.com -stickers5stier.website -stickersy.website -stickmansurf.com -stickprotection.com -stickyfaith.com -stickywarrior.com -sticypil.cf -sticypil.ga -sticypil.gq -sticypil.ml -sticypil.tk -stielampung.net -stiesy.com -stifemar.cf -stifemar.gq -stifemar.ml -stifemar.tk -stiffbook.xyz -stiffgirls.com -stihi-poeziya.ru -stiistim.shop -stilettopm.com -still-west.com -stillfeas.icu -stillshee.recipes -stillsheep.recipes -stillwerun.net -stilsom.xyz -stimstii.shop -stimulanti.com -stinghors.buzz -stingsma.xyz -stinkefinger.net -stinkers.org -stinkypoopoo.com -stinzavod16.ru -stinzavod28.ru -stinzavod44.ru -stinzavod8.ru -stiop.website -stiqx.in -stireazilei.ru -stitchingbelle.com -stitools.net -stivendigital.club -stixinbox.info -stjamesplantationrealestateproperties.com -stjohninglewood.net -stlfasola.com -stlithfunsworks.com -stlouisquote.com -stlzen.company -stmargarets.site -stmcb.org -stmentm.shop -stnds.ru -sto-loto-prise.press -stoboss.com -stoc24.info -stocherin.cf -stocherin.ga -stocherin.gq -stocherin.ml -stocherin.tk -stocilat.cf -stocilat.ga -stocilat.ml -stock-discount-retail.space -stock3dphotos.com -stockbeewp.com -stockblinds.ca -stockburger.solutions -stockguru.net -stockgurucanada.com -stockholmmarkis.nu -stockmarketnigeria.com -stockmount.info -stockmount.xyz -stockpedia.xyz -stockpicclub.com -stockpickcentral.com -stocksaa317.xyz -stocksaa318.xyz -stockservers.host -stocksforjocks.org -stocktonnailsalons.com -stocosur.cf -stocosur.ml -stocosur.tk -stocxingsgen.ga -stocxingsgen.gq -stocxingsgen.tk -stoenco.shop -stofaline.ru -stoffreich.de -stofverpoi.cf -stofverpoi.ga -stofverpoi.gq -stofverpoi.ml -stofverpoi.tk -stogigabit.ru -stohastik.tel -stokbucol.com -stokportal.ru -stokyards.info -stolbbrus.ru -stolica35.ru -stolidwiid.space -stoloto-lotterypartner.site -stolovaya-hutorok.ru -stom-prof.ru -stomach4m.com -stomatolog.pl -stonamab.ml -stonamab.tk -stonebahis25.com -stonecanyonvegas.com -stonecoal.space -stonedogdigital.com -stonedrones.com -stoneflylab.com -stoneflylabs.com -stonemountaindentistry.com -stonenetworkonline.net -stonerunapts.com -stonesmails.cz.cc -stonlinnidelan.space -stonvpshostelx.com -stop-alert.site -stop-my-spam.cf -stop-my-spam.com -stop-my-spam.ga -stop-my-spam.ml -stop-my-spam.pp.ua -stop-my-spam.tk -stop-nail-biting.tk -stop-working.ru -stopbitingyournailsnow.info -stopblackmoldnow.com -stopcheater.com -stopcomgi.cf -stopcomgi.ga -stopcomgi.gq -stopcomgi.ml -stopcomgi.tk -stopelevendentalgroup.com -stopforumforum.com -stopforumspam.info -stopforumspamcom.ru -stopgrowreview.org -stophabbos.tk -stopharlownorth.com -stopmassspying.com -stopnds.com -stopsesta.com -stopshooting.com -stopshowcontrol.com -stopspamservis.eu -stoptalonserrurerie.com -stopthehousingbailout.com -stoptracking.cool -stopvulcancomalcountyquarry.org -stopwhitecollarcrime.com -storabim.cf -storabim.gq -storagehouse.net -storageplacesusa.info -storageshop.futbol -storageunits.app -storal.co -storant.co -storckcleaning.biz -store-clear-fast.ru -store-krosi.ru -store-official-offer.ru -store-perfume.ru -store-sumky.ru -store-tshirt.com -store.hellomotow.net -store389.top -store4files.com -storeamnos.co -storeandgo.ru -storebero.club -storebestsale.ru -storechaneljp.org -storeclsrn.xyz -storectic.co -storective.co -storeferragamo.com -storegmail.com -storeillet.co -storellin.co -storendite.co -storenew24.net -storenia.co -storennnews.com -storent.co -storeodon.co -storeodont.co -storeodoxa.co -storeortyx.co -storeotragus.co -storepradabagsjp.com -storepradajp.com -storerecon.net -storereplica.net -storero.co -storestean.co -storesteia.co -storesuccpix.host -storeupdate.live -storeutics.co -storevisibility.com -storeweed.co -storewood.co -storeyee.com -storeyoga.mobi -storeyoga.vip -storiqax.com -storiqax.top -storist.co -storj99.com -storj99.top -storkbot.com -storm-gain.biz -storm-gain.com -storm-gain.net -storm-gain.ru -storm-gain.us -storm-news.ru -storm.cloudwatch.net -stormacu.press -stormarea51festival.com -stormcoalition.org -stormdrone.ru -stormenra.cf -stormenra.ga -stormenra.ml -stormenra.tk -stormfai.icu -stormflush.space -stormgain.asia -stormgain.club -stormgain.hk -stormgain.info -stormgain.live -stormgain.net -stormgain.sk -stormiro.com -stormwarriorsmediafoundation.com -stormynights.org -stornoway-angling-association.com -storos.ru -storpool.info -storrent.net -storrowband.com -storybicycle.com -storybuilding.cloud -storydrivenretail.com -storyjoke.xyz -storylensmarketing.com -storymed.icu -storysolution.com -storyst.xyz -storysta.xyz -storywat.xyz -stovepartes1.com -stowawaygingerbeer.com -stoya.tech -stpattys5k.com -stpaulfcu.biz -stpaulfcu.name -stpaulfcu.us -stpc.de -stpetebungalows.com -stpetersandstpauls.xyz -stpetersburggolf.com -stpetersburgmap360.com -stpetersburgnailsalons.com -stpeterskindergarten.com -stqffouerchjwho0.cf -stqffouerchjwho0.ga -stqffouerchjwho0.gq -stqffouerchjwho0.ml -stqffouerchjwho0.tk -str.cash -str1.doramm.com.pl -strahovanie-tinkoff.ru -strahovkavita.ru -straightacelearning.com -straightenersaustralia.info -straightenerstylesaustralia.info -straightenerstylescheapuk.info -straightenerstylessaustralia.info -straightenhaircare.com -straightening-solution.com -straightupfarms.com -strakkebuikbijbel.net -strandpromenaden9.site -strandsbar.online -strangersinstereo.com -strangerthanfriction.org -strangeserver.ru -strapedfortime.com -straply.com -straponmoviez.com -strapworkout.com -strasbergorganic.com -strat0s.earth -strategicalbrand.com -strategicprospecting.com -strategyzr.info -stratfordfootclinic.com -strathearnmasons.org -stratosphericheights.org -stratoverity.net -strattera.website -strauss.best -strausswell.com -strawar.xyz -strawberry-game.online -strawcabl.recipes -strawdi.works -strawdre.xyz -strawfei.fun -strawgri.email -strawhat.design -strawhous.icu -strawsig.icu -strawwa.xyz -stream-lite.monster -stream.gg -streamcomplet.one -streamdotshop.com -streamdrop.org -streamfly.biz -streamfly.link -streaming-films-gratuit.xyz -streaming-foot.biz -streaming-foot.online -streaming-manga-vf.com -streaming-mangas.net -streaming.cash -streamingbokepx.info -streamingfoot.biz -streamingz.xyz -streamlifecoin.com -streamlifeproductions.live -streamlifestudio.com -streamlines.us -streamnvr.net -streamnvr.org -streamonsport.stream -streams-web.site -streamsentiment.net -streamsofedendesign.com -streamtv2pc.com -streamup.ru -streamwatchtv.live -streamzt.org -streerd.com -street.network -streetbroom.net -streetbroom.org -streetbrooms.net -streetbrooms.us -streetevolution.club -streetfeetdance.com -streetsyouwalk.com -streetwisemail.com -strengthandwarmth.org -strengthvcf.email -strenmail.tk -stresser.store -stresser.tk -stressylglf.email -stricapticadore.com -strictddwxs.email -strideritecouponsbox.com -stringcool.com -stringlevel.icu -stringoftheseus.com -striorttedavisi.xyz -striorttreatment.xyz -striortturkey.xyz -strip-girls.ru -stripadvisor.xyz -stripbrush.biz -stripbrush.us -stripbrushes.net -stripbrushes.us -stripmsk.ru -stripouts.melbourne -stripquiz.ru -stripstu.us -strivenational.org -strivingman.com -strixed.website -strkt.website -strmail.site -stroemka.ru -stroi-pro.store -stroiitelstvo.ru -stroimfasad.ru -stroimvseinfo.ru -stroitel-ru.com -strokegenius.net -strollers-online.com -stromans.space -stromgain.biz -stromgain.com -stromgain.net -stromgain.ru -stromgain.us -stromox.com -strona1.pl -stronawww.eu -strong-muscle.com -strongan.com -strongerads.com -strongerwomandiet.com -strongerwomanlabs.com -strongerwrist.com -strongmd.com -strongpeptides.com -strongpesny.ru -strongsvilleapartments.com -strongviagra.net -stronnaa.pl -stronnica.pila.pl -strontmail.men -stronywww-na-plus.com.pl -stronzo.cf -stronzo.ga -stronzo.gq -stronzo.ml -stronzo.tk -strosehanford.com -stroutell.ru -strovolos.xyz -stroy--portal.ru -stroy-montage777.ru -stroydom54.ru -stroygroup.org -stroyka-34.ru -stroymetalls.ru -stroymetals.ru -stroymontazh24.ru -stroynovv.ru -stroyopt-31.ru -stroyportrus.ru -stroytehn.com -stroytell.ru -strshcola34.ru -structuralrenovations.com -sts.ansaldo.cf -sts.ansaldo.ga -sts.ansaldo.gq -sts.ansaldo.ml -sts.hitachirail.cf -sts.hitachirail.ga -sts.hitachirail.gq -sts.hitachirail.ml -sts.hitachirail.tk -sts9d93ie3b.cf -sts9d93ie3b.ga -sts9d93ie3b.gq -sts9d93ie3b.ml -sts9d93ie3b.tk -stsfsdf.se -ststwmedia.com -stt1188.com -stt288.com -stt3344.com -stt9888.com -stt991.com -stuckhere.ml -stuckmail.com -stucwerkrepareren.com -student-loan-consolidation-programs.us -student-web-design.com -student.edu.creo.tips -studentdaysout.com -studentdebtheros.com -studentloaninterestdeduction.info -studentloantherapist.com -studentmail.me -students-class1.ml -studi24.de -studiakrakow.eu -studiegids.org -studiekiezenhulp.online -studio-intensive.com -studio-mojito.ru -studio213llc.com -studio300.com -studioascc.com -studioaslka.email -studiodesain.me -studiodesparfums-paris.com -studiokadr.pl -studiokadrr.pl -studiomeha.ru -studiopolka.tokyo -studioro.review -studiosaus.online -studiotgsip.online -studiouberhaupt.com -studioverity.com -studiovolpi.info -study-advantage.site -study-good.ru -study-intentions.site -study-network.site -studychoicebes.com -studyeainja.email -studytantra.com -studytitl.fun -stuen.site -stuff.munrohk.com -stuffagent.ru -stuffmail.de -stuffsti.xyz -stuffuny.cf -stuffuny.ga -stuffuny.ml -stuffuny.tk -stumblemanage.com -stumblingbee.info -stumblingzebra.info -stumpblind.com -stumpfwerk.com -stunde.shop -stunninggorgeous.com -stupid.pet -stupid.tube -stupidblog.com -sturalray.ml -sturdynews.com -sturetattoo.online -sturetattoo.se -sturgeonpointchurch.com -sturroperp.cf -sturroperp.ga -sturroperp.gq -sturroperp.ml -sturroperp.tk -stusnem.ru -stuswope.com -stuttgarter.org -stutzarts.org -stuy-wash-n-dry.com -stvj.com -stvmanbetx.com -stvp.dev -stwirt.com -stxsports.org -styl-stroy.ru -style-sporty.ru -stylearis.xyz -stylebostononline.com -stylechec.recipes -styledesigner.co.uk -stylemail.cz.cc -stylen.info -stylenjeagn.email -stylepi.icu -stylepositive.com -stylesmail.org.ua -stylesp.icu -stylesshets.com -stylethiarish.com -styletype.site -stylght.com -stylishcombatboots.com -stylishdesignerhandbags.info -stylishmichaelkorshandbags.info -stylishwaka.com -stylist-volos.ru -styliste.pro -stylizes318cf.online -styllsy.com -su3cl3.com -su4gc.us -su7u.com -suagiagoc.com -suakmnn.com -suamgtpk.shop -suamiistribahagia.com -suasionnewsletter.com -suavietly.com -sub-2020.info -sub2qp.us -sub4d.org -suba3b.info -subaru-brz.cf -subaru-brz.ga -subaru-brz.gq -subaru-brz.ml -subaru-brz.tk -subaru-wrx.cf -subaru-wrx.ga -subaru-wrx.gq -subaru-wrx.ml -subaru-wrx.tk -subaru-xv.cf -subaru-xv.ga -subaru-xv.gq -subaru-xv.ml -subaru-xv.tk -subaxillary.best -subcblognus.cf -subcblognus.ga -subcblognus.gq -subcblognus.ml -subcblognus.tk -subccybd.site -subchina.com -subgauge.com -subgold.ru -subiri.cf -subiri.ga -subiri.gq -subiri.tk -subivari.site -subjectmap.net -subkeyten.cf -subkeyten.ga -subkeyten.gq -subkeyten.tk -subleasehub.com -sublime-shop.site -sublingualvitamins.info -subluminal.info -submergeus.com -submitprofit.com -submoti.ga -submoti.gq -submoti.tk -subneking.cf -subneking.tk -subnest.net -subnine.net -suboog.fun -subpastore.co -subqouisom.cf -subqouisom.ml -subqouisom.tk -subrendo.ml -subrolive.com -subrosavideo.com -subscenecdn8.xyz -subscrib.ru -subscribe.rocks -subscribershub.online -subset.support -subsidrlnq.space -subspacerelay.net -substate.info -substidehz.space -substitutesfat.com -substitutesrun.com -subsxchange.com -subtilizes150yj.online -subtle-love-brightimperial.com -subtogel.com -subtogel.net -subtoto.com -subtoto.net -subtverpthe.ga -subtverpthe.gq -subulog.xyz -suburbanthug.com -suburqq.club -suburqq.live -suburqq.net -subwaysgfm.space -subwaysubversive.com -suby.site -subzone.space -succcardnach.cf -succcardnach.ga -succcardnach.gq -succcardnach.ml -succcardnach.tk -succeedabw.com -succeedx.com -succesbehalen.site -succesgscv.space -success.ooo -successagency.site -successagency.website -successclick.ru -successforu.org -successforu.pw -successfulvideo.ru -successlocation.work -successmvp.com -successstylesstories.com -sucess16.com -suchtfrei.info -sucile.xyz -sucirve.ga -sucirve.gq -sucirve.ml -sucirve.tk -suckmyd.com -sucknfuck.date -sucknfuck.site -sucuqeu.space -sucvat.dog -sudan-nedv.ru -sudaneseoverline.com -sudanfreedom.org -sudannews365.net -suddenchangechallenge.com -suddenlystrangers.com -sudloisirs-nc.com -sudo5.com -sudolife.me -sudolife.net -sudomail.biz -sudomail.com -sudomail.net -sudoverse.com -sudoverse.net -sudoweb.net -sudoworld.com -sudoworld.net -sudurr.mobi -sudvestidelo.xyz -suedcore.com -suehuntdesign.com -suenodelcamino.com -suestetcomp.cf -suestetcomp.ga -suestetcomp.gq -suestetcomp.ml -suestetcomp.tk -suffisa.com -suffocationlive.info -suffrueguj.space -sufipreneur.org -sufismglobalcircle.com -sufit.waw.pl -sugabuzx.com -sugar-daddy-meet.review -sugarcane.de -sugarcrm.moscow -sugardaddypardise.com -sugarplummarys.com -sugartimeus.store -sugartoy.com -suger-ro.com -suggiewuggies.com -suggstimbermachining.net -sugoi-ii.biz -suhov-media.ru -suhuempek.cf -suhuempek.ga -suhuempek.gq -suhuempek.ml -suhuempek.tk -suhugatel.cf -suhugatel.ga -suhugatel.gq -suhugatel.ml -suhugatel.tk -suhusangar.ml -suiaid.com -suibox.com -suiliu.com -suioe.com -suipostsil.cf -suipostsil.ga -suipostsil.ml -suiratelier.com -suireka.cf -suireka.tk -suirovig.cf -suirovig.ga -suirovig.tk -suitableland.net -suitcasesjapan.com -suiteange.xyz -suitesatkillington.com -suitetru.xyz -suitetrun.icu -suitewea.fun -suittrends.com -suivicolissimo.cc -suiyoutalkblog.com -sujjn9qz.pc.pl -sukaalkuma.com -sukapkv.xyz -sukasukasuka.me -suke2.us -sukenjp.com -sukienb24.com -suksescasino.info -suksesnet.com -suksesnet.net -suksessin.net -sulari.cf -sulari.ga -sulari.gq -sulari.ml -sulari.tk -sulitapp.com -sull.ga -sullivan11thward.org -sullivanscafe.com -sulpehost.cf -sulpehost.ml -sulpehost.tk -sultanbaptist.space -sultanbetbonus.net -sultanbetcasino3.club -sultanbetgiris.org -sultanbetgiris2.club -sultanbetuyelik2.club -sultanbetyeniadresi2.club -sultanbeyliihl.xyz -sultandomino.info -sultandomino.org -sultandomino99.org -sulut365.com -sulut88.com -sulutbet.com -sum20.com -suma-group.com -sumaestrategias.com -sumaholog.online -sumaidaandkhurana.com -sumarymary.xyz -sumbatouristic.com -sumberkadalnya.com -sumerzhang.xyz -sumessentialoils.com -sumidouros.info -sumitra.ga -sumitra.tk -sumka-trands.ru -summabankrot.xyz -summarization92fv.online -summarization948gb.online -summationstaffing.com -summavocarefoundation.org -summer-boxoffice.com -summerblaze.site -summerbloggreenoceanlina.site -summercurvehealthygoalketo.com -summerinnswords.com -summerlinmedia.net -summeroceangreenbloglina.site -summerolympics.tokyo -summerswimwear.info -summertalbot.buzz -summerwedding.club -summis.com -summitcountylibraries.com -summitgg.com -summitmedweb.com -summitofentrepreneurship.com -summitofpower.com -summitofresources.com -summitoftruth.com -summonsinstinct.site -sumofsums.com -sump3min.ru -sumpbiro.cf -sumpbiro.ga -sumpbiro.gq -sumpbiro.ml -sumpbiro.tk -sumpscufna.cf -sumpscufna.ga -sumpscufna.gq -sumpscufna.tk -sumurborjogjakarta.com -sun-star-takeaway.com -sun8282.net -sunbatem.online -sunbeliever.online -sunbi.biz -sunbirdy.com -sunbuh.asia -sunburning.ru -sunburyohs.info -sunbzarra.ga -sunbzarra.gq -sunbzarra.ml -sunbzarra.tk -suncareersolution.com -suncitysouthafrica.org -sundancesquareplaza.com -sundaylaura.com -sundaymariska.com -sundaymovo.com -sundaysuspense.space -sundriesday.com -sundtnutrition.info -sundtnutrition.org -sunerb.pw -sunflower-hotel.com -sunflowermls.org -sungin-jp.com -sunglassescheapoutlets.com -sunglasseslabs.com -sunglassespa.com -sunglassesreplica.org -sunglassesshop.futbol -sunglassestory.com -sunglie-mind.xyz -suning.one -suningsuguo123.info -sunk62.fun -sunlifeplazahotel.com -sunmail.ga -sunmail.ml -sunmeni.com -sunnylandschool.com -sunnyleonexxx.mobi -sunnynet.shop -sunnysamedayloans.co.uk -sunpolis.site -sunprairieapartments.com -sunraindev.com -sunram.ru -sunramea.cf -sunramea.ga -sunramea.gq -sunramea.ml -sunramea.tk -sunrayod.com -sunrice-shop.ru -sunridgelandscape.com -sunrisebayleh.net -sunrisebayleh.org -sunrisespasaz.com -sunriver4you.com -sunsamail.info -sunsetclub.pl -sunsetgames.social -sunsetsigns.org -sunsggcvj7hx0ocm.cf -sunsggcvj7hx0ocm.ga -sunsggcvj7hx0ocm.gq -sunsggcvj7hx0ocm.ml -sunsggcvj7hx0ocm.tk -sunshine-bike.com -sunshine-mistery-villas.com -sunshine-takeaway.com -sunshineautocenter.com -sunshinedesign.info -sunshinehousespa.com -sunshineskilled.info -sunsol300.com -sunspouurw.online -suntory.ga -suntory.gq -sunvamor.ga -sunvamor.ml -sunvamor.tk -sunvictorytale.com -sunyarme.com -sunydaylunh.email -sunyggless.com -suoox.com -sup998.com -supa4.com -supaplex.site -supappl.me -supascan.com -supb.site -super-100-loto.press -super-100-loto.site -super-100-loto.website -super-auswahl.de -super-date-now3.com -super-fast-email.bid -super-fitnes.site -super-incomes.online -super-lodka.ru -super-mag-orange.space -super-swift-grey.space -super-szkola.pl -super-videos.info -super-wifi.online -super10.space -super1x.com -super6al.com -superalts.gq -superamaren.me -superauto8.com -superbags.de -superbahisbonus.info -superbahiscanlicasino.info -superbahiscanlicasino.net -superbahisguvenilirmi.info -superbahiskampanya.info -superbahisokey.com -superbahisokey.info -superbahisokey.net -superbahissikayet.net -superbahistavla.info -superbahistavla.net -superbalist.info -superbeam.tech -superbeingdiet.com -superbemediamail.com -superbet777.net -superbiteslimerick.com -superbitestakeaway.com -superbmedicines.com -superbowl500.info -superbowlaovivo.live -superbowlbettinglines.com -superbowlnflravens.com -superbowlravenshop.com -superbwebhost.de -supercache-bhs1.ovh -supercasinomitgeld.online -supercem.net -supercheapwow.com -supercoinmail.com -supercoolrecipe.com -supercreo.com -supercutewatches.com -superdieta.ddns.net -superdiplomnik.ru -superdom.site -supere.ml -supereme.com -superenalottoonline.it -superfanta.net -superfastemail.bid -superfinancejobs.org -superfood.click -superforumb.ga -supergadgets.xyz -supergelmarl.site -supergirl.fun -supergreatmail.com -supergreen.com -supergreentonic.com -superhappyfunnyseal.com -superhostformula.com -superintim.com -superior-seo.com -superiormarketers.com -superioroliveoils.com -superiorwholesaleblinds.com -superkardioru.ru -superleocasino.com -superleopoker.com -superlistas.info -superloto01.icu -superluckyslots.ru -supermacsmaynooth.com -supermail.cf -supermail.tk -supermailer.jp -supermails.pl -supermall.xyz -supermediamail.com -superminicase.rest -superminicraft.com -supermoji.app -supernews245.de -supernewsavto.ru -supernova-light.com -supernozhmarket.ru -superoeuhe.space -superpene.com -superplatyna.com -superpotencialex.ru -superpsychics.org -superputovanja.com -superraise.com -superreload.site -superrico.market -superrito.com -superrmail.biz -supersaiyagod.com -supersentai.ru -supersentai.space -superserver.site -superskidki.fun -supersolarpanelsuk.co.uk -supersorted.email -superstachel.de -superstarvideo.ru -supersufficiency.best -supertechguys.com -supertemporarymails.tk -supertotobet.tv -supertotobet0428.com -supertrend-top.site -supertrends-magazin.site -supertux.net -superurotrinz.ru -supervet.nu -supervideofriends.com -supervk.net -superweblink.ga -superwork-ufa.ru -superxml.icu -superyacht-glass.com -superzaym.ru -supimon.com -suplemento.club -suples.pl -supopenersir.website -suport.com -suppdiwaren.ddns.me.uk -supperdryface-fr.com -supperesierfaster.xyz -supplement-analysis.com -supplements.gov -supplybluelineproducts.com -supplyhuse.com -supplylist.org -supplywebmail.net -suppoint.ru -support-tes.ru -support.com -support22services.com -supporthpprinters.com -supportpatriotflexgoods.com -supporttheroundhouse.org -supportusdad.org -suppreme.ru -supra-hot-sale.com -supraoutlet256.com -supras.xyz -suprasalestore.com -suprashoesite.com -suprasmail.gdn -supremeairbnb.com -suprememarketingcompany.info -suprememedicinal.com -supremepowerblog.com -supremesewingmachines.com -supremesteroids.se -supremun.com -suprhost.net -suprisez.com -supstat.us -suptc.ru -supxmail.info -surabayakerja.info -surat.ddnsfree.com -suratku.dynu.net -suratuntukpresiden.org -surdany.site -surdaqwv.priv.pl -suredisc.info -surely-group.com -surelyfocus.com -suremail.info -suremail.ml -sureoffers.com -surf-online.ru -surfact.eu -surfando.info -surfcasino6.club -surfdayz.com -surfingwithsarah.com -surflepo.cf -surflepo.ga -surflepo.gq -surflepo.ml -surflepo.tk -surfmail.tk -surfomania.pl -surga.ga -surgeryfrance.com -surgerylaser.net -surgicalcoaching.net -surigaodigitalservices.net -surinam-nedv.ru -suriyeninlalesi.tk -surjuebu.cf -surjuebu.ga -surjuebu.ml -surjuebu.tk -surl2.info -surou.xyz -surpa1995.info -surpluscartridges.com -surpriseinbox.ru -surreptitious.website -surrogate-mothers.info -surrogatemothercost.com -suruitv.com -suruykusu.com -surveihtyf.space -surveillancefast.xyz -surveyor3.net -surveyrecruiters.com -surveyrnonkey.net -surveysaypanel.com -surveyswingnut.top -survivalgears.net -survivalgearsrocks.com -survivalistmagazine.net -survivan.com -survivordocs.com -survivvruscorona.us -susanwatkin.com -susbeicent.cf -susbeicent.ga -susbeicent.ml -susbeicent.tk -suscenko.com -suschnost.ru -suscm.co.uk -sushi10valladolid.com -sushiandsteak.com -sushibartor.com -sushiblog.com -sushida-dublin.com -sushimail.xyz -sushiojibarcelona.com -sushisalonbadalona.com -sushiseeker.com -sushitrifasicrubi.com -susi.ml -susictlano.com -susictlano.icu -suskapark.com -susmaso.ml -susmaso.tk -susmed.site -suspended.network -sussin99gold.co.uk -sustainable.style -sustainable.trade -sustainabledevelopmentexperts.com -sustainableroofchicago.com -sustaingoods.com -sustalifes.website -sustavampomogi1.host -sustavampomogi2.host -sustpro.host -sustpro1.host -sustpro2.host -sustvervia.cf -sustvervia.ga -sustvervia.ml -sustvervia.tk -susudomino.net -susuk99.net -susungaple.org -susupk.com -susupoker.biz -sususegarcoy.tk -sutann.us -sutbet71.com -sutbet72.com -sutbet77.com -sutbet78.com -sute.jp -sutener.academy -sutener.life -sutenerlubvi.fav.cc -sutgetel.cf -sutgetel.ga -sutgetel.gq -sutgetel.ml -sutiami.cf -sutiami.ga -sutiami.gq -sutiami.ml -sutmail.com -sutoplamasi.org -sutratoto.net -sutratoto.org -suttonsales.com -sutuosi.com -suuauto.online -suubuapp.com -suustainable.org -suuyydadb.com -suvidok.com -sux47.top -suxt3eifou1eo5plgv.cf -suxt3eifou1eo5plgv.ga -suxt3eifou1eo5plgv.gq -suxt3eifou1eo5plgv.ml -suxt3eifou1eo5plgv.tk -suz99i.it -suzanahouse.co -suzeblog.com -suzki.us -suzroot.com -suzuki-50.ru -suzukilab.net -sv-rs.org -svadba-city.ru -svadba-talk.com -svaekrut.ru -svaffshop.store -sval-ka.ru -svapomaxi.store -svapostore.online -svbil.nu -svblime.org -svblog.com -svbrokers.tech -svds.de -svedaengineering.com -svegott.com -svegott.se -svelteschool.net -svenskonlinebingo.se -sverigeloparen.online -sverigespel.com -sverta.ru -svet-web.ru -svetanet.ru -svetapriazha.ru -svetavarganova.ru -svetekonom.ru -svetlana-vesna.ru -svetlie-okna.ru -svhu5u.us -svi.space -svi88.com -svigrxpills.us -svil.net -svileetrw.shop -svino.ru -svinofirma.ru -svinograd.ru -svinomir.ru -svip520.cn -svk.jp -svlpackersandmovers.com -svmpc.com -svobodaototnoshenii.ru -svobodnayapressa.ru -svoedingen.club -svoi-format.ru -svojhozdom.ru -svoystvaproduktov.ru -svoyzarabotokvinternete.ru -svpmail.com -svpowo.com -svptkdkk.shop -svql.su -svr5t.com -svsmoney.ru -svupp.se -svws-tbr.com -svxr.org -svywkabolml.pc.pl -sw-mg.com -sw2244.com -sw8.dev -sw8y2c.stream -swagflavor.com -swagmami.com -swaidaindustry.org -swakdesigns.info -swalkinshaw.com -swankbmdd.space -swankyfood.us -swanticket.com -swap-crypto.site -swapandbid.com -swapfinancebroker.org -swapinsta.com -swappingfantasy.com -swarmbra.xyz -swarmhabi.us -swarmonio.us -swarmrout.email -swarmroute.recipes -swatch.com -swax.net -swbpepper.com -sweang.club -sweatankreq.email -sweatmail.com -sweatwaterbrew.com -sweb360.com -swedishcomics.se -swedishpalms.online -sweely.net -sweeneybuildings.com -sweepstakes956zh.online -sweepstakesforme.com -sweet-emotions.ru -sweet-ro.com -sweet-space.ru -sweet3d.com -sweet82.com -sweetagsfer.cf -sweetagsfer.gq -sweetagsfer.ml -sweetagsfer.tk -sweetbac.xyz -sweetcrac.email -sweetheartdress.net -sweetingpink.online -sweetlarep.cf -sweetlarep.gq -sweetlarep.ml -sweetmatch.se -sweetmemories.shop -sweetmessage.ga -sweetnessrice.com -sweetnessrice.net -sweetob.email -sweetobe.email -sweetpotato.ml -sweetpotatoconvention2019.com -sweetrea.icu -sweetreac.xyz -sweetsfood.ru -sweetsilence.org.ua -sweetstory.info -sweetswallet.com -sweetuni.icu -sweetvibes-bakery.com -sweetvibes-weddingcakes.com -sweetville.net -sweetwaters.site -sweetxxx.de -sweetyberry.ru -sweetyfoods.ru -swellslu.space -swerpossa.ga -swerpossa.gq -swerpossa.tk -swestudies.se -swflrealestateinvestmentfirm.com -swfwbqfqa.pl -swiat-atrakcji.pl -swiatdejwa.pl -swiatimprezek.pl -swiatlemmalowane.pl -swibe.space -swift-auto.info -swift-mail.net -swift10minutemail.com -swiftcoin.org -swiftinsight.com -swiftmail.xyz -swiftselect.com -swiftsnapshot.com -swimail.info -swimdies.com -swimmingpoolbuildersleecounty.com -swimmingshop.life -swimskivvies.com -swimweear.ru -swinbox.info -swinefu.com -swingclubs.online -swingdonor.com -swingers.dance -swingers69colombia.com -swingery.com -swinginggame.com -swipeche.icu -swipeeat.com -swipeforjobs.com -swiper.su -swipesei.xyz -swiping.app -swippii.com -swipwebma.cf -swipwebma.ga -swipwebma.gq -swipwebma.ml -swipwebma.tk -swiss-bank-advisory.org -swissbupx.space -swisscannamedix.com -swissglobalonline.com -swissport.media -swissreplicawatches.info -swisssportsblog.site -swisstrains.net -switchbrand.com -switchmyrb.space -switchpoker.cd -switunfuh.ga -switunfuh.gq -switunfuh.ml -swizeland-nedv.ru -swkvbo.us -swlnrf.com -swlrhqhz.pro -swmhw.com -swngkng.info -swngkng.org -swnws.press -sworda.com -swordange.com -swordcapital.com -swordsgarden-ongar.com -swordsstreets.top -swordssword.com -swosswou.shop -swp4bt.com -swq213567mm.cf -swq213567mm.ga -swq213567mm.gq -swq213567mm.ml -swq213567mm.tk -swqqfktgl.pl -swskrgg4m9tt.cf -swskrgg4m9tt.ga -swskrgg4m9tt.gq -swskrgg4m9tt.ml -swskrgg4m9tt.tk -swtorbots.net -swype.dev -sx4yyv.com -sxatli.info -sxbsfz.info -sxfkln.com -sxh-auto.com -sxiii.design -sxjyjgxxbx.com -sxkhyxy.com -sxmgld.us -sxouq.com -sxrop.com -sxv5e.xyz -sxxs.site -sxxx.ga -sxxx.gq -sxxx.ml -sxylc113.com -sxzevvhpmitlc64k9.cf -sxzevvhpmitlc64k9.ga -sxzevvhpmitlc64k9.gq -sxzevvhpmitlc64k9.ml -sxzevvhpmitlc64k9.tk -sy-honda.com -sy168.cash -sy90xo.us -syadouchebag.com -syandard.com -sybdfyy.com -sycdns.com -syckpk.art -sycoshoppers.com -sydnehouse.co -sydney-feuerwerk.info -sydneydeluxe.com -sydneyheraldmorning.site -sydneypoolstoday.one -syedlik.xyz -syerqrx14.pl -syf51.space -syfer.shop -syfilis.ru -syfyfigi.website -sygaxa.info -sygj3.com -sygj6065.com -sygj6067.com -sygj7070.com -sygj7073.com -sygj7076.com -sygj7077.com -sygj7078.com -sygj8081.com -sygj8086.com -sygj9090.com -sygj9096.com -sygodainetlikereward.top -syhyma.info -syhzpsc.com -syihpo.com -syilusa.com -syjiga.info -syjxwlkj.com -sykcloud.live -syktyv.ru -sykvjdvjko.pl -sylkskinreview.net -sylvanmo.com -sylvannet.com -sylviabartley.com -sylwester.podhale.pl -sylxe8.us -symatoys.ru -symbiote.network -symeil.fun -symextaustralia.com -sympathizing615ve.online -symphonyresume.com -symphouva.gq -symphouva.ml -symphouva.tk -sympleks.pl -symplysliphair.com -symposium.site -symproti.ga -symproti.ml -symproti.tk -symptombrick.us -symptoms-diabetes.info -symptomsofdiabetes.us -synagogue3000.org -synami.com -synapse.foundation -synapsefirm.com -synb.loan -syncbt.com -synchrosign.net -synchrpny.com -synchtradlibac.xyz -syncretizes167mg.online -syncrome.com -syndicatemortgages.com -synecious17mc.online -synergie.tk -synergisticmel.com -synergygrapeandwinesolutions.com -synergyj.com -synergyrecoveryroom.com -synergytime.live -synevde.com -synonem.com -synoniem.nu -synonyme.email -syntaxblitz.com -syntexhosting.space -syntheticsportsgroup.com -syntrop.com -syosetu.gq -syozv.us -syqyb.live -syracusequote.com -syrlzyw.com -syrus.website -sysblogd.com -sysdiesel.com -sysnon.com -sysology.tech -syssnaapbet.xyz -systel.us -system-2123.com -system-2125.com -system-765.com -system-765.info -system-962.com -system-962.org -system-sicherung-nutzer-pruefung-2356442-ssl-save.ru -system32.me -system573.org -systematicians.com -systeminfo.club -systemnet.club -systemoases.com -systemsflash.net -systemslender.com -systemy-call-contact-center.pl -systemyrezerwacji.pl -sysv2.com -syswars.com -sytadel.net -sytes.net -syujob.accountants -sywa4c.us -sywjgl.com -syyuledl.com -syyulept.com -syyxb.com -syzyjd.com -sz-wbqz.com -sz13l7k9ic5v9wsg.cf -sz13l7k9ic5v9wsg.ga -sz13l7k9ic5v9wsg.gq -sz13l7k9ic5v9wsg.ml -sz13l7k9ic5v9wsg.tk -sz80ue21y77zmst.com -szbxlp.cn -szccc.org -szcyd6.info -szczecin-termoosy.pl -szczepanik14581.co.pl -szef.cn -szela.net -szeptem.pl -szerz.com -szesc.wiadomosc.pisz.pl -szgztxh.com -szhaoks.com -szhtkyj.com -szi4edl0wnab3w6inc.cf -szi4edl0wnab3w6inc.ga -szi4edl0wnab3w6inc.gq -szi4edl0wnab3w6inc.ml -szi4edl0wnab3w6inc.tk -szinder.xyz -szkolapolicealna.com -szledxh.com -szn.us -szok.xcl.pl -szponki.pl -szsb.de -szsboiler.group -szseo.info -szsfcw.icu -szswsn.icu -sztucznapochwa.org.pl -sztyweta46.ga -szucsati.net -szukaj-pracy.info -szvezhsuu.shop -szwdfz2.com -szxkjx.com -szxshopping.com -szybki-remoncik.pl -szyk10.com -szyk6.com -szzhcp.com -szzlcx.com -t-brand.online -t-email.org -t-kitchen.online -t-knife.store -t-online.co -t-rexcomfort.ru -t-s-k.net -t-shirtcasual.com -t-shoponline.info -t-student.cf -t-student.ga -t-student.gq -t-student.ml -t-student.tk -t.odmail.cn -t.polosburberry.com -t.psh.me -t.woeishyang.com -t.zibet.net -t099.tk -t0fp3r49b.pl -t0hedz.us -t0tsdf.com -t13kli.info -t165.xyz -t166.xyz -t167.xyz -t16nmspsizvh.cf -t16nmspsizvh.ga -t16nmspsizvh.gq -t16nmspsizvh.ml -t16nmspsizvh.tk -t171.xyz -t1775.com -t1bkooepcd.cf -t1bkooepcd.ga -t1bkooepcd.gq -t1bkooepcd.ml -t1bkooepcd.tk -t1g2vf.us -t1osie.us -t24e4p7.com -t2treasure.com -t3-travel.com -t30.cn -t30ks.us -t3echmoflhipro.ga -t3g29.com -t3gear.ru -t3lam.com -t3mtxgg11nt.cf -t3mtxgg11nt.ga -t3mtxgg11nt.gq -t3mtxgg11nt.ml -t3mtxgg11nt.tk -t3sl4.xyz -t3t97d1d.com -t3transitions.com -t4eas6.us -t4jpol.us -t4ruhk.us -t4tmb2ph6.pl -t500track6.com -t55r.com -t5h65t54etttr.cf -t5h65t54etttr.ga -t5h65t54etttr.gq -t5h65t54etttr.ml -t5h65t54etttr.tk -t5it.icu -t5jnghjjh.xyz -t5mrk3.site -t5sxp5p.pl -t5vbxkpdsckyrdrp.cf -t5vbxkpdsckyrdrp.ga -t5vbxkpdsckyrdrp.gq -t5vbxkpdsckyrdrp.ml -t5vbxkpdsckyrdrp.tk -t60111.com -t60222.com -t60444.com -t60555.com -t60999.com -t6ixy.us -t6khsozjnhqr.cf -t6khsozjnhqr.ga -t6khsozjnhqr.gq -t6khsozjnhqr.ml -t6khsozjnhqr.tk -t6qdua.bee.pl -t6xeiavxss1fetmawb.ga -t6xeiavxss1fetmawb.ml -t6xeiavxss1fetmawb.tk -t76o11m.mil.pl -t77eim.mil.pl -t7qriqe0vjfmqb.ga -t7qriqe0vjfmqb.ml -t7qriqe0vjfmqb.tk -t7v1ef6bw.xyz -t822.com -t838.com -t8kco4lsmbeeb.cf -t8kco4lsmbeeb.ga -t8kco4lsmbeeb.gq -t8kco4lsmbeeb.ml -t8kco4lsmbeeb.tk -t8ndq7.site -t8oka.us -t97998.com -t9lw.us -t9trqb.us -ta-2525.com -ta-6.com -ta100.app -ta16.app -ta17.app -ta18.app -ta19.app -ta1ysd.us -ta20.app -ta21.app -ta22.app -ta23.app -ta25.app -ta26.app -ta27.app -ta28.app -ta29.app -ta30.app -ta35.app -ta36.app -ta37.app -ta39.app -ta40.app -ta42.app -ta43.app -ta48.app -ta49.app -ta50.app -ta52.app -ta53.app -ta54.app -ta56.app -ta58.app -ta60.app -ta61.app -ta62.app -ta64.app -ta65.app -ta67.app -ta68.app -ta69.app -ta70.app -ta72.app -ta74.app -ta75.app -ta77.app -ta78.app -ta7qcm-mail.xyz -ta83.app -ta85.app -ta88.app -ta89.app -ta91.app -ta93.app -ta96.app -taac.space -taaffshop.store -taago.app -taalunie43.gq -taate.live -tab-24.pl -tab365.asia -tabanpuanlaritr.com -tabbak36009.cf -tabbak51411.cf -tabbak51411.ga -tabbak51411.tk -tabbak87077.ml -tabcomons.cf -tabcomons.gq -tabcomons.tk -tabcupen.ml -tabcupen.tk -tabelon.com -tabienkorat.com -tabienrayong.com -tabithaanaya.livefreemail.top -tablebla.icu -tabledoug.icu -tableexi.icu -tablegdwnzx.email -tablegu.icu -tableri.xyz -tablerive.xyz -tabletas.top -tabletcraze.com -tabletdiscountdeals.com -tabletix.ml -tabletki-lysienie.pl -tabletki.org -tabletkinaodchudzanie.biz.pl -tabletkinapamiec.xyz -tabletmop.shop -tabletopfridge.org -tabletrafflez.info -tabletshop.live -tabletsshop.futbol -tabletstoextendthepenis.info -tablighat24.com -tabpheket.cf -tabpheket.ga -tabpheket.gq -tabpheket.ml -tabpheket.tk -tabtop.site -tabul.com -tac-c.center -tac0hlfp0pqqawn.cf -tac0hlfp0pqqawn.ga -tac0hlfp0pqqawn.ml -tac0hlfp0pqqawn.tk -tacanas.com -tacc.center -tacdasupp.cf -tacdasupp.gq -tacdasupp.ml -tacdasupp.tk -tacemonarim.net -tackleplain.com -tacodelphia.com -tacomacardiology.com -tacomaquote.com -tacomf.com -tactmagfi.cf -tactmagfi.gq -tactmagfi.ml -tactmagfi.tk -tacupao.ru -tadabe.cf -tadabe.ga -tadabe.gq -tadabe.ml -tadacipprime.com -tadahot.com -tadena.cf -tadena.ga -tadena.gq -tadena.ml -tae.simplexion.pm -tafayati.com -taffeta.xyz -tafhxx.com -tafilfa.cf -tafilfa.ga -tafilfa.gq -tafilfa.ml -tafilfa.tk -tafmail.com -tafo.site -tafoi.gr -tafrem3456ails.com -tafrlzg.pl -tag9.com -tagasayolf.site -tagcams.com -tagcchandda.cf -tagcchandda.ga -tagcchandda.gq -tagcchandda.ml -tagcchandda.tk -tagebuch-online.de -taginsa.cf -taginsa.ml -taginsa.tk -taglead.com -tagmymedia.com -tags.report -tagsmiths.com -tagyourself.com -tahaveyaragglari.cf -tahhkm.site -tahiroztan.com -tahltan.best -tahmin.info -tahminbet33.com -tahminbettv10.com -tahnaforbie.xyz -taho21.ru -tahoemediacenter.com -tahss.us -tahutex.online -tahutex.xyz -tai-asu.cf -tai-asu.ga -tai-asu.gq -tai-asu.ml -tai-nedv.ru -tai789.fun -taicaiwang.xyz -taichinh.icu -taichungpools.com -taidar.ru -taijic.com -taikhoanao.tk -taikz.com -taileqzu.club -taileqzu.site -tailfinsports.com -tailoredhemp.com -tailoredsuit.net -tailorgolfclub.se -tailorhemp.com -tailormailed.online -taimeha.cf -taimeha.gq -taimladpho.cf -taimladpho.ga -taimladpho.gq -taimladpho.ml -taimladpho.tk -tainerfitness.com -taipand4d.xyz -taiqicc.com -taitaiyijia.com -taitro.asia -taiv8.fun -taiv8.vin -taiv8.win -taiv8.xyz -taiviani.cf -taiviani.gq -taiviani.ml -taiviani.tk -taivic.win -taivin.club -taiwan.cd -taiwanlegacy.com -taiwanzijia.com -taix8.fun -taixiu88.com -taj99exch.net -tajmahalgallery.org -tajmahalterrassa.com -takaphis.cf -takaphis.ga -takaphis.ml -takaphis.tk -takashishimizu.com -takasimurah.xyz -takatato.pl -takato.shop -takawin.com -takbarg.click -takbet.design -takbt1.xyz -takcasinocrayon.ru -take-great-prize2.life -take-prizes-away13.life -take-prizes-away14.life -take-scroll.xyz -takeafancy.ru -takeawaymessenger.com -takeawayonlineordering.com -takeawaythis.org.ua -takebacktheregent.com -takecafxte.space -takedowns.org -takegatgame.fun -takeitme.site -takeitsocial.com -takemeback.net -takemehome188.com -takemy.xyz -takenews.com -takeny18.com -takepeak.xyz -takeshobo.cf -takeshobo.ga -takeshobo.gq -takeshobo.ml -takeshobo.tk -takesmymoney.com -takesonetoknowone.com -takestore.online -takevps.com -takewokmadrid.com -takeyourkids2vote.org -takhfifweb.net -takhtenegar.com -takhtenegar.org -takingreach.xyz -takipcihilesiyap.com -takipcisatinal.shop -takipsel.com -takmailing.com -takmemberi.cf -takmemberi.gq -takopok32.xyz -takotook.xyz -takradgivning.se -takrayaneh.com -takshoot21.online -takshotgh16.site -taksi-bonus.ru -taksibu.com -taksicininkeyfi.com -taksiklin.ru -taktikbet.xyz -taktikvip.xyz -takuino.app -talahicc.com -talamail.ir -talamovieoo.xyz -talamovieqq.xyz -talamoviess.xyz -talamoviett.xyz -talamovieuu.xyz -talamovievv.xyz -talamovieww.xyz -talaskayadibi.xyz -talduken.com -taledhosting.online -taleem.life -talenastemerick.com -talentasolutions.org -talentblog.com -talentstar.news -talifornialegal.com -taliforniaras.com -talifors.com -talikafuks.net -talile.org -talismana.ru -taliumhealthkick.com -talk-brilliance.com -talk49.com -talkatu.com -talken.net -talkinator.com -talkingnews.media -talkmises.com -talktal.net -talktocoupons.com -talktoip.com -talktravel.net -talkwithme.info -tallcity.email -tallcitysportsnetwork.com -talldry.com -taller-de-escritura-mallorca.com -tallerdeescrituracreativa.org -tallerfor.xyz -tallerplural.org -tallyscrapper.com -talmdesign.com -talmo.online -talnarow.cf -talnarow.ga -talnarow.tk -talterat.site -taluabushop.com -talwellden.ga -talwellden.ml -talwellden.tk -tamail.com -taman4d.club -tamanhodopenis.biz -tamanhodopenis.info -tamanta.net -tambahlagi.online -tambakrejo.cf -tambakrejo.ga -tambakrejo.tk -tambalamin.info -tambour.site -tambroker.ru -tamcasinomice.ru -tamcocbackpackershostel.com -tamelahouse.co -tamera.eu -tamfiyat.online -tamgulsuyu.com -tamiljukes.info -tamilnadumillsstores.org -tamkorumafiltre.club -tammaihes.cf -tammaihes.ga -tammaihes.ml -tammaihes.tk -tammega.com -tammysellslawton.com -tamoxifen.website -tampa-seo.us -tampaautoaccidentlawyers.com -tampabaycoalition.com -tampabayluxuryagent.com -tampabayrealtypro.com -tampacouplescounselor.com -tampadates.info -tampaflcomputerrepair.com -tampanursejobs.com -tampaorthopedicsurgeon.com -tampaquote.com -tamparealty.store -tampasurveys.com -tampatailor.com -tampicobrush.org -tampicobrushes.com -tampicobrushes.us -tamtam-buzz.xyz -tamtam-info.site -tamtam-info.xyz -tamtam-minute.site -tamtam-minute.xyz -tamtam-topinfo.site -tamtam-topinfo.xyz -tamtam-topnews.site -tamu99.info -tamu99.net -tamuhost.me -tan9595.com -tanahsubur.net -tandartspraktijkscherpenzeel.com -tandberggroup.com -tandbergonline.com -tandcpg.com -tandlakarhuset.info -tandoori-bite-takeaway.com -tandy.co -tangarinefun.com -tangdie.com -tangelo.dev -tangkaskitaid.org -tangkasnetid.site -tanglewoodstudios.com -tanglotto.net -tangoqkwn.ru -tangramshow.ru -tani-japanese-takeaway.com -taniesianie.online -tanihosting.net.pl -taniiepozyczki.pl -taninsider.com -tanitarus.ru -tanivi.ga -tanivi.gq -tanivi.ml -tanivi.tk -tanjorepalacetakeaway.com -tankbrush.us -tankbrushes.net -tanklipho.cf -tanklipho.ml -tanklipho.tk -tankult-tech.com -tankult.com -tanning-bed-bulbs.com -tanningcoupon.com -tanqeep.com -tansa.ga -tanslog-2k2.com -tansmail.ga -tansof.press -tanstipplesix.website -tantbepha.cf -tantbepha.ga -tantbepha.gq -tantbepha.ml -tantedewi.ml -tantennajz.com -tantifilm.tools -tantra-for-couples.com -tantraclassesonline.com -tantrafirefitness.com -tantraforhealth.com -tantralube.com -tantraprostatehealing.com -tantrareview.com -tantraspeeddating.com -tantratv.com -tantricrose.net -tantricrose.org -tanttermerk.tk -tanukis.org -tanya-odintsova.ru -tanyamauldin.com -tanyanecole.com -tanzaniawild.life -tao-fitness.ru -tao399.com -taobaigou.club -taobao0710.com -taohoso.com -taojav.club -taojav.life -taokhienfacebook.com -taolan68.com -taoquxet.ga -taoser.icu -taosjw.com -taowenda.club -taoyuan.chat -taoyuanguo.chat -taoyuanguo.network -taozuizhi.com -tap.vin -tap7p4.site -tapchicuoihoi.com -tapchitocdep.com -tapeamos.com -tapecompany.com -tapecopy.net -taperianuevoriofrio.com -tapestrywriters.com -tapetoland.pl -tapety-download.pl -taphear.com -tapi.re -tapiitudulu.com -tapkat.net -tapmups.space -tapourpower.com -tappkins.com -tapreport.net -tapreta.cf -tapreta.ga -tapreta.gq -tapreta.ml -tapreta.tk -tapsitoaktl353t.ga -taptype.me -tapvpnfree.website -tar00ih60tpt2h7.cf -tar00ih60tpt2h7.ga -tar00ih60tpt2h7.gq -tar00ih60tpt2h7.ml -tar00ih60tpt2h7.tk -taraftarium.xyz -taraftartekstil.com -taramsinc.com -taranfilm.ru -taranpa.cf -taranpa.ga -taranpa.tk -tarassis.xyz -tarbity.cf -tarbity.gq -tarbity.tk -tarbyti.cf -tarbyti.gq -tarbyti.ml -tarciano.com -tarcompme.cf -tarcompme.tk -tarcuttgige.eu -tardharto.cf -tardharto.ga -tardharto.gq -tardharto.ml -tardharto.tk -tarek-auth.com -taresz.ga -tarfand.city -target35.ru -targetachived.tk -targeting.space -targetqq.live -tarifmanya.com -tariksaldo.net -tariqa-burhaniya.com -tarisjohn.cf -tarisjohn.ga -tarisjohn.gq -tarisjohn.ml -taritencyber.com -taritensystems.com -tarjetasdecredito.company -tarjoman.shop -tarlancapital.com -tarma.cf -tarma.ga -tarma.ml -tarma.tk -tarminolek.ru -tarocena.com -tarpiohumph.cf -tarpiohumph.ga -tarpiohumph.gq -tarponspringsapartments.com -tarriqaw.cf -tarriqaw.ga -tarriqaw.gq -tarriqaw.ml -tarrylforsenate.com -tarsiergames.com -tartangrand.com -tartoor.club -tartoor.com -tartoor.fun -tartoor.space -taruhangame.com -taruhantop.com -tarunbharat.online -tarzanmail.cf -tarzanmail.ml -tarzinaslibu.xyz -tarzkombin.xyz -tarzmen.site -tasarimsozluk.xyz -tasarrufdostu.com -tasarrufladugun.com -tascon.com -taserra.cf -taserra.ga -taserra.tk -tasgourmettour.com -tashjw.com -tasityonetimmerkezi.com -task-list.ru -taskboard.app -taskfl.ru -taskforcetech.com -taskninja.mobi -taskscbo.com -taskvsasp.online -tasmakarta.pl -tastaravalli.tk -taste2table.com -taste4tees.site -tasteechinese.com -tastefer.buzz -tastefuldeparture.info -tastefulnudes.tk -tastemyjuices.press -tastiethc.com -tastrg.com -tasty-burger-takeaway.com -tasty-drop.org -tasty-garden-takeaway.com -tastyarabicacoffee.com -tastychina-dundalk.com -tastycold.com -tastydota.net -tastydrop.one -tastydrop.online -tastydrops.net -tastyemail.xyz -tastyfood.website -tastygo.info -tastygo.org -tastygo.ru -tastygo.su -tastygra.icu -tastyhut.com -tastylacks.info -tastypizzarecipes.com -tastytri.icu -tastywide.xyz -tat4free.ru -tataba.com -tataelxsi.name -tatalbet.com -tatapeta.pl -tatasteellongproducts.net -tatasteellongproductslimited.net -tatasteellpl.com -tatasteellpl.info -tatbuffremfastgo.com -tatebayashi-zeirishi.biz -tatekub.info -tatersik.eu -tatibu.cf -tatibu.ga -tatibu.gq -tatibu.ml -tatibu.tk -tatilbonus.com -tatisa.cf -tatisa.ga -tatisa.gq -tatlihesap.org -tattersallmediaforensics.com -tattoo.cd -tattoopeace.com -tattooradio.ru -tattoos.name -tattooscollectionforgirl.site -tattynatty.com -tatubet.biz -tatulivescream.com -tatvadesk.net -tau.io -taucoindo.site -taufik.sytes.net -taufikrt.ddns.net -taukpereavia.xyz -taupoker.org -taureesur.cf -taureesur.ga -taureesur.gq -taureesur.ml -taureesur.tk -taurefor.cf -taurefor.ga -taurefor.gq -taurefor.ml -taurefor.tk -taurusbet.org -tauthuyenvietnhat.net -tauttjar3r46.cf -tav7px.com -tavares.com -tavinmathai.com -tavridatreks.ru -tawagnadirect.us -tawaza.ru -tawny.roastedtastyfood.com -tawnygrammar.org -taworle.cf -taworle.ga -taworle.gq -taworle.ml -taworle.tk -tawowk.com -tawserdog.com -tawtar.com -tax315.xyz -taxfilingsite.com -taxfreeemail.com -taxi-bonus.ru -taxi-france.com -taxi-vovrema.info -taxi2malagaairport.com -taxiaugsburg.de -taxififes.info -taxilodka.ru -taximone.ru -taxivaeroportvnukovo.ru -taxqueries.com -taxsaleclub.com -taxslayerinfo.com -taygrc.icu -tayk5.com -taylorplain.buzz -taylorventuresllc.com -taynguyen24h.net -tayo.ooo -tayohei-official.com -taysirnabulsi.com -tayspirec.cf -tayspirec.ml -tayspirec.tk -taytkombinim.xyz -tayur-boilers.ru -tazpkrzkq.pl -tb-on-line.net -tb1ou.us -tb20x7cwkmoz738.xyz -tb37c.com -tbbo.de -tbeach.ru -tbet90.xyz -tbfnp1.site -tbi0jd.com -tbnovin.org -tboostpro.com -tbpdehdu9g2ym2j.xyz -tbrfky.com -tbrochetje.space -tbs35.ru -tbupapxq.shop -tbwzidal06zba1gb.cf -tbwzidal06zba1gb.ga -tbwzidal06zba1gb.gq -tbwzidal06zba1gb.ml -tbwzidal06zba1gb.tk -tbxmakazxsoyltu.cf -tbxmakazxsoyltu.ga -tbxmakazxsoyltu.gq -tbxmakazxsoyltu.ml -tbxmakazxsoyltu.tk -tbxqzbm9omc.cf -tbxqzbm9omc.ga -tbxqzbm9omc.gq -tbxqzbm9omc.ml -tbxqzbm9omc.tk -tc-school.ru -tc.vipset.me -tc4q7muwemzq9ls.ml -tc4q7muwemzq9ls.tk -tcafe.shop -tcases.com -tcbbk.com -tcfr2ulcl9cs.cf -tcfr2ulcl9cs.ga -tcfr2ulcl9cs.gq -tcfr2ulcl9cs.ml -tcfr2ulcl9cs.tk -tcgun.ru -tchatrencontrenc.com -tchatroulette.eu -tchatsenegal.com -tchpole.net -tchuestore.xyz -tchvn.tk -tckefu.online -tckefu.site -tckefu.xyz -tcmba.org -tcmrw.info -tcmselangor.com -tcnmistakes.com -tcoe.foundation -tcom6a.us -tconamear.cf -tconamear.ga -tconamear.gq -tconamear.ml -tconamear.tk -tcscelikyapi.com -tcsh6f.site -tcsqzc04ipp9u.cf -tcsqzc04ipp9u.ga -tcsqzc04ipp9u.gq -tcsqzc04ipp9u.ml -tcsqzc04ipp9u.tk -tctnano.ru -tctp69.xyz -tcua9bnaq30uk.cf -tcua9bnaq30uk.ga -tcua9bnaq30uk.gq -tcua9bnaq30uk.ml -tcua9bnaq30uk.tk -tcxd.xyz -tcyjbuild.cd -tcyl78.com -td71.us -tda4gi.us -tdameritradeinvestment.com -tdbusinessfinancing.com -tdcryo.com -tdedbaccarat.net -tdf-illustration.com -tdf2623.online -tdfwld7e7z.cf -tdfwld7e7z.ga -tdfwld7e7z.gq -tdfwld7e7z.ml -tdfwld7e7z.tk -tdhmyclassic.com -tdhpw.info -tdmoip.ru -tdn-online.info -tdnarat.ru -tdnonline.net -tdovk626l.pl -tdpqhr.us -tdrop.ru -tdtraveljobs.melbourne -tdtraveljobs.net -tdtraveljobs.sydney -te-sale.online -te.caseedu.tk -te2jrvxlmn8wetfs.gq -te2jrvxlmn8wetfs.ml -te2jrvxlmn8wetfs.tk -te5s5t56ts.ga -tea-tins.com -teaaz.cf -teachber.com -teachcar.xyz -teachersblueprint.com -teachfr.xyz -teachglo.xyz -teaching.hk -teachingfreedom.info -teachingjobshelp.com -teachmehere.com -teachmoodle.info -teachmoodle.org -teachsn.xyz -teachsnak.xyz -teachtrun.press -teal.delivery -teal.dev -tealeafadmins.com -tealeafdevelopers.com -tealeafdevelopment.net -tealeafdevelopment.org -tealeafexperts.com -tealeafhacker.org -tealeafsolution.com -tealeavesone.com -team30.live -teamandclub.ga -teamblogger.com -teambogor.online -teamcasco.com -teamdigest.com -teamflow.works -teamhibiskurlabs.site -teamhv.net -teamjulie.com -teamkg.tk -teamkiller.net -teamliquid.org -teamlogicnj.com -teamlonewolf.co -teammlb.xyz -teamopros.com -teamrnd.win -teamrubicon.ong -teamsidealphysiques.com -teamsl.xyz -teamsnacks.online -teamsoulcycling.org -teamspeak3.ga -teamster.com -teamtimspencer.com -teamtournamenttravel.com -teamtriton.net -teamviewerindirsene.com -teamwyden.net -teamxpress.org -teaparty-news.com -teardown.site -tearflakes.com -teasealoo.buzz -teasebre.icu -teaser-team.ru -teasetige.icu -teasetract.us -teasevague.buzz -teasewate.icu -teasewor.xyz -teaseworl.xyz -teatre-afisha.ru -teatrolnfk.space -teatrtaganka.ru -teaurnzycf.space -tebaknomor.info -tebardo.cf -tebardo.ga -tebardo.gq -tebardo.ml -tebardo.tk -tebeodobreno.ru -teblife.com -tebwinsoi.ooo -tecampto.cf -tecampto.ga -tecampto.ml -tecampto.tk -tecbnb.com -tecemail.top -tech-guru.site -tech-mail.net -tech-suit.org -tech.edu -tech.gent -tech.joburg -tech.madrid -tech2fly.com -tech5group.com -tech69.com -techballball.com -techbike.ru -techbirb.dev -techblast.ch -techblogs.site -techbung.com -techcenter.biz -techchakras.com -techdevacademy.info -techdigitalinc.com -techdiver.com -techehouse.com -techemail.com -techeno.com -techenus.com -techewaste.site -techfevo.info -techgigger.com -techgroup.me -techgroup.top -techhelp.website -techholic.in -techiedeals.xyz -techiedevadssecure.club -techiessecrets.com -techiewall.com -techinc.top -techindo.web.id -techjmx.com -techknowlogy.com -techlabreviews.com -techloveer.com -techmail.info -techmanic.tech -techmaximous.com -techmeets.biz -technet.mobi -technicalchartalerts.com -technicolor.cf -technicolor.ga -technicolor.gq -technicolor.ml -technicsan.ru -technidem.fr -techniek.works -techniekgeniek.online -techniekgeniek.shop -techniekgeniek.site -technik-bedarf.com -technikue.men -technivant.net -techno5.club -technocape.com -technoharness.com -technoinsights.info -technoking.club -technoliczni.pl -technologyaddicttreatment.com -technologyaddicttreatmentprogram.com -technologycipher.com -technopark.site -technoproxy.ru -technotrends-tradingservices.site -technoworks.club -technoworldd.com -technt.org -techpaisa.com -techpress.info -techproductinfo.com -techreactor.net -techretro.club -techshucareers.com -techsio.pro -techstat.net -techstore2019.com -techstrike.tech -techthehalls.nyc -techtradebd.com -techtrage.com -techtribeph.com -techuppy.com -techwebfact.com -techwizardent.me -techworm.org -techxs.dx.am -techysocietykisan.xyz -tecinnova.solutions -tecla.ml -teclody.com -tecmur2.org -tecniblend.net -tecnicasdecorativas.com -tecninja.xyz -tecnisolltda.net -tecnoleds.net -tecnologiactuales.com -tecnosmail.com -tecnotutos.com -ted-dhanik.biz -ted-dhanik.net -ted-dhanik.org -ted-dhanik.us -tedace.com -tedadig.ml -tedadig.tk -teddhanik.biz -teddhanik.info -teddy-rose-present.ru -tedesafia.com -tedflower.ru -tedguissan.ga -tedguissan.gq -tedguissan.ml -tedguissan.tk -tedlirol.cf -tedlirol.ga -tedlirol.gq -tedlirol.ml -tedlirol.tk -tedlivechat.com -tedspetcountryclub.com -tedswoodworking.science -tedxibadan.com -tedxsziu.ru -tee800.com -teebaum-oel.info -teecheap.store -teedinnan.com -teeessential.com -teegift.online -teemia.com -teemo.site -teemoco.shop -teemoloveulongtime.com -teenadvisors.com -teenamaree.com -teenanaltubes.com -teencaptures.com -teeneatingdisordertreatmentcenter.com -teeneatingdisordertreatmentcenters.com -teeneatingdisordertreatmentoptions.com -teenhealth.space -teenhub.online -teenloss.com -teensuccessprograms.com -teeny7.com -teenyscat.com -teeprint.online -teerest.com -teesdiscount.com -teesheet.app -teesheet.golf -teeshirtsprint.com -teethsowhitepro.com -teewars.org -teewhole.com -teezinou.online -tefer.gov -teffire.cf -teffire.gq -teffire.ml -teffire.tk -tefibbumb.cf -tefibbumb.ga -tefibbumb.gq -tefibbumb.ml -tefl.ro -teflonbrush.biz -teflonbrush.net -teflonbrush.us -teflonbrushes.us -tefuncsym.cf -tefuncsym.ga -tefuncsym.gq -tefuncsym.tk -tegagentarmash.com -tegifehurez.glogow.pl -tegnabrapal.me -tehdini.cf -tehdini.ga -tehdini.gq -tehdini.ml -tehfor.ru -tehkom-sz.ru -tehno-d.ru -tehnodans.ru -tehnoleader.ru -tehoopcut.info -tehosmotr.info -tehosmotr86.ru -tehran120.xyz -tehranemail.ir -tehs8ce9f9ibpskvg.cf -tehs8ce9f9ibpskvg.ga -tehs8ce9f9ibpskvg.gq -tehs8ce9f9ibpskvg.ml -tehs8ce9f9ibpskvg.tk -tehsliv.ru -tehsusu.cf -tehsusu.ga -tehsusu.gq -tehsusu.ml -tehubpmw.shop -teicrimta.ga -teicrimta.gq -teicrimta.ml -teicrimta.tk -teimur.com -teinfo.ru -tejahomes.icu -tejas21.com -tejeiro.best -tejmail.pl -tejsolpro.us -tekear.com -tekelbayisi.xyz -tekfenyem.com -tekhletbo.cf -tekhletbo.ga -tekhletbo.gq -tekhletbo.ml -tekhnoiservis.ru -tekhsnab.ru -tekirdagdagyenicesi.xyz -tekirdagemlakcilar.xyz -tekirdagtanitim.com -tekirdagtanitim.xyz -tekknos.com -tekkoree.cf -tekkoree.ga -tekkoree.gq -tekkoree.ml -tekkulanim.com -teknikmerkezhatti.com -teknikservisglobal.xyz -teknodiot.net -teknopena.com -teknostar.ru -teknow.site -tekrefurb.com -tekstilcephegiydirme.com -tekstilmimarisi.com -tekstilyapilar.com -telanganajobs.net -telanganarental.com -telasmercamoda.com -telcosan.net -telcosan.org -telcosantechnology.com -telcosanteknoloji.com -tele1europe.online -teleasistencia.page -telebenefit.net -telecama.com -telechargement-film.net -telechargement-film.xyz -telecharger-films-megaupload.com -telechargermusique.live -telechargerpiratertricher.info -telechargervideosyoutube.fr -telecineon.co -telecomhomeservice.com -telecomix.pl -telecomuplinks.com -telectrl.com -telectro.us -telefan.ru -telefondacanlisohbetler.site -telefone-ping.ru -telefono365.com -telefonv2.cf -telefonv2.ml -telefonv2.tk -telefony-opinie.pl -telefoondock.online -telegainbot.online -telegilit.monster -telegmail.com -telego446.com -telegraaf-24.host -telegraf-sppbb.ru -telegram.moe -telekbird.com.cn -telekgaring.cf -telekgaring.ga -telekgaring.gq -telekgaring.ml -telekom-mail.com -telekteles.cf -telekteles.ga -telekteles.gq -telekteles.ml -telekucing.cf -telekucing.ga -telekucing.gq -telekucing.ml -telelogs.net -telemetricop.com -teleosaurs.xyz -telephone-conferencing.com -telephoneportableoccasion.eu -telephonesystemsforbusiness.com -teleport-pskov.ru -teleseryegroup.ru -teleshop.org -teleuoso.com -televac.ru -televega.net -teleworm.com -teleworm.us -telexplorer.info -telfordpasy.info -telfty.com -telgnik.best -telialebanon.com -telkompro.com -tellectualpress.com -tellno1.com -tellorange.com -tellorg.top -tellos.xyz -tellsearch.network -tellthestory.info -telly.app -tellynet.giize.com -tellyoursurvivorstory.org -telmail.top -telmedchiropractic.com -telnoratti.net -telo5.ru -tels920cb.online -telsmart.info -telugump3hits.com -telugusongs.info -telukmeong1.ga -telukmeong2.cf -telukmeong3.ml -temail.com -teman-bangsa.com -temasekmail.com -temasparawordpress.es -tembak4d.online -temecon.cf -temecon.gq -temecon.ml -temecon.tk -temeculahomecenter.com -temengaming.com -temhuv.com -temiznetwork.xyz -temmrktg.com -temp-cloud.net -temp-email.ru -temp-emails.com -temp-link.net -temp-mail.com -temp-mail.de -temp-mail.info -temp-mail.life -temp-mail.live -temp-mail.ml -temp-mail.monster -temp-mail.net -temp-mail.org -temp-mail.pp.ua -temp-mail.ru -temp-mails.com -temp.aogoen.com -temp.bartdevos.be -temp.cloudns.asia -temp.emeraldwebmail.com -temp.headstrong.de -temp.qwertz.me -temp.wheezer.net -temp1.club -temp15qm.com -temp2.club -tempachair.com -tempail.com -tempalias.com -tempamailbox.info -tempat-main-poker.xyz -tempathiburan.com -tempathiburan.net -tempatmainpoker.info -tempatmainpoker.online -tempatmainpoker.xyz -tempatspa.com -tempcloud.in -tempcloud.info -tempe-mail.com -tempekmuta.cf -tempekmuta.ga -tempekmuta.gq -tempekmuta.ml -tempemail.biz -tempemail.co -tempemail.co.za -tempemail.com -tempemail.daniel-james.me -tempemail.info -tempemail.net -tempemail.org -tempemail.pro -tempemailaddress.com -tempemailco.com -tempemails.io -tempes.gq -tempfishthedrift.com -tempinbox.co.uk -tempinbox.com -tempinbox.xyz -templateartist.net -templatecustomizationservice.com -templategeek.net -temple-project.info -templefr.com -templefunctionalrehab.com -templerehab.com -templetonmortgage.net -tempm.cf -tempm.com -tempm.ga -tempm.gq -tempm.ml -tempmail.co -tempmail.de -tempmail.eu -tempmail.io -tempmail.it -tempmail.net -tempmail.ninja -tempmail.plus -tempmail.pp.ua -tempmail.pro -tempmail.red -tempmail.space -tempmail.sytes.net -tempmail.top -tempmail.us -tempmail.website -tempmail.win -tempmail.ws -tempmail2.com -tempmailapp.com -tempmaildemo.com -tempmailer.com -tempmailer.de -tempmailid.com -tempmailid.net -tempmailid.org -tempmailo.com -tempmails.cf -tempmails.gq -tempmails.org -tempnursejob.com -tempomail.fr -tempomail.org -tempor.site -temporagourmet.com -temporamail.com -temporarily.de -temporarioemail.com.br -temporary-email-address.com -temporary-email.com -temporary-email.world -temporary-mail.net -temporaryemail.com -temporaryemail.net -temporaryemail.us -temporaryforwarding.com -temporaryinbox.com -temporarymail.ga -temporarymail.org -temporarymailaddress.com -temporfkcn.space -tempr.email -tempr.email.viola.gq -temprazzsoft.cf -temprazzsoft.ga -temprazzsoft.gq -temprazzsoft.tk -tempremail.cf -tempremail.tk -tempsky.com -temptacon.cf -temptacon.ga -temptacon.gq -temptacon.ml -temptam.site -temptbl.xyz -temptbla.icu -temptbla.xyz -temptblan.icu -temptca.xyz -temptcat.xyz -temptcatc.xyz -tempthe.net -temptifi.cf -temptifi.ga -temptifi.gq -temptifi.ml -temptifi.tk -temptlaye.icu -temptsteam.email -temptti.buzz -tempttrend.email -tempxd.tk -tempymail.com -tempzo.info -temr0520cr4kqcsxw.cf -temr0520cr4kqcsxw.ga -temr0520cr4kqcsxw.gq -temr0520cr4kqcsxw.ml -temr0520cr4kqcsxw.tk -temsagroup.com -temstory.com -temxp.net -ten-invest.ru -ten-thousand-dublin.com -tenalbums.com -tenashouse.co -tendance.xyz -tendatakeaway.com -tender-master.su -tendermemoryforever.com -tenderolfl.space -tenesu.tk -tengraphix.com -tengyunyule.com -tenia578at.online -tenikla.cf -tenikla.ml -tenipen.cf -tenipen.ga -tenipen.ml -tenipen.tk -tenkkeys.site -tenmiensieure.com -tennbuilder.com -tenndoe.com -tennesseeinssaver.com -tenney.tech -tennisan.ru -tenniselbowguide.info -tenniside.com -tennisnews4ever.info -tennisportintl.com -tennisshop.live -tennisvalencia.com -tennuicei.ml -tennuicei.tk -tenormin.website -tenorplanet.com -tenraica.cf -tenraica.ga -tenraica.gq -tenraica.ml -tenraica.tk -tensi.org -tensilemembrane.com -tensionrelief.com -tensmetconc.cf -tensmetconc.ga -tensmetconc.ml -tensmetconc.tk -tentenb.com -tentigor.cf -tentigor.ga -tentigor.gq -tentigor.tk -tentntable.com -tenweekchallenge.net -tenxtenb.com -tenzoves.ru -teobaldo.org -teocarsa.cf -teocarsa.ga -teocarsa.gq -teocarsa.ml -teogansse.gq -teogansse.tk -teompm.shop -teonanakatl.info -teonufest.ga -teonufest.gq -teonufest.ml -teonufest.tk -teorlfs.com -teoti.net -teoutelba.gq -teoutelba.ml -teoutelba.tk -tepas.ru -teplobur.ru -tepos12.eu -tepzo.com -ter.com -teracomase.info -terafile.tokyo -terafile.xyz -terahack.com -teraz.artykulostrada.pl -tercasinosnow.ru -tercsash.online -tercupu.gq -tercupu.ml -terdwa.online -terfullvert.ga -terfullvert.gq -terfullvert.ml -tergvikerp.cf -tergvikerp.ga -tergvikerp.gq -tergvikerp.tk -terika.net -terirem.com -terjifuzviron.space -terleani.ml -terleani.tk -terluboul.cf -terluboul.ga -terluboul.gq -terluboul.ml -terluboul.tk -termail.com -termallo.site -termezy.com -terminalerror.com -terminate.tech -termitecontrolchandler.com -ternaklele.ga -terokops.press -teronamay.tk -terpesrus.com -terpistick.com -terra-etica.com -terra-incognita.co -terra-real-estate.com -terra7.com -terracash.org -terrafirmacollective.org -terraform.cloud -terraform.dev -terraformproject.com -terrainshift.info -terranasaurus.com -terraorousa.com -terraria.fun -terrasavvy.com -terrascope.online -terrathink.com -terraverge.org -terrehautedentists.com -terrelac.cf -terrelac.ga -terrelac.gq -terrelac.ml -terreni.click -terreno.cf -terreno.ml -terribgsbl.space -terrificbusinesses.com -terrihouse.co -territoriya-remonta.ru -territors.club -terrkrasoty.ru -terroni-per-salvini.it -terrorcmll.space -terrprib.ru -terryjohnson.online -terrymillershannon.com -tersdiper.cf -tersdiper.gq -tersdiper.tk -tershaber.com -tersime.cf -tersime.ga -tersime.gq -tersime.ml -tersime.tk -tert353ayre6tw.ml -teruio.host -terustegang.xyz -tervalis.cf -tervalis.ga -tervalis.gq -tervalis.ml -tervalis.tk -tes-studio.online -teses.club -tesghj4656.xyz -tesgurus.net -teshushihao.xyz -tesiov.info -teslaenergyoptima.com -teslaexecutive.com -teslahome.sk -teslasteel.com -tesler24.info -teslime.ga -teslime.gq -teslime.ml -teslime.tk -tesqas.online -tesresidusdangereux.net -tessaflower.com -tessauto.info -tessen.info -tessingroup.com -test-acs.com -test-intl.biz -test.actess.fr -test.com -test.crowdpress.it -test.de -test.unergie.com -test0108-domain.xyz -test1111.host -test130.com -test171.com -test324t6234w5y.ru -testa-lot.net -testadobe.ru -testbnk.com -testclean.org -testclubs.com -testdom34533663.host -testdom345336633.host -testdomain1808-34365.se -testdomain1808-39235.se -testdomain20191307.host -testdomain220191307.host -testdomains3244.host -testdoors.ru -teste445k.ga -testebarato.xyz -testeidenovo.xyz -testenormal.xyz -tester-games.ru -testerino.tk -testextensile.com -testfastspendslow.com -testforcextremereviews.com -testguma.cf -testguma.ga -testguma.gq -testi.com -testicles.com -testif.io -testincorp.xyz -testinger.ru -testingprog.com -testlatcei.cf -testlatcei.ml -testlatcei.tk -testlink24.com -testlire.cf -testlire.ga -testlire.gq -testlire.ml -testlire.tk -testmattawanschools.org -testoforcereview.net -testoh.cf -testoh.ga -testoh.gq -testoh.ml -testoh.tk -testore.co -testose.website -testosterone-tablets.com -testosteroneforman.com -testosxboost.com -testosxboost.net -testosxmax.org -testoweprv.pl -testoxl.net -testperfectlittlebirdy.info -testshiv.com -testsmails.tk -testtomoc.cf -testtomoc.ga -testtomoc.gq -testtomoc.ml -testtomoc.tk -testtruthinmydays.com -testudine.com -testytestermcgee-11.com -tesvama.cf -tesvama.ga -tesvama.gq -tesvama.ml -tesvama.tk -tesxco.com -tetacouch.ru -tetdoanvien.com -tethjdt.com -tetivil.ga -tetivil.gq -tetivil.ml -tetivil.tk -tetohe.com -tetrads.ru -tetrisai.com -teubenart.com -teufelsweb.com -teugterpa.cf -teugterpa.ga -teugterpa.gq -teuzml.ml -teverjo.com -tevhiddersleri.com -tevkanlartur.xyz -tewame.info -tewassbures.press -tewijihu.site -tewsere.online -tewua.ru -tex-line.ru -texac0.cf -texac0.ga -texac0.gq -texac0.ml -texac0.tk -texanhipster.ml -texansportsshop.com -texansproteamsshop.com -texas-nedv.ru -texas88poker.info -texasaol.com -texascartitleloan.com -texascityplumbers.com -texasconservationcorps.org -texascrimedefense.com -texasdriverhandbook.com -texasecologix.com -texaselevatorsolutions.com -texasgunclassifieds.com -texasgunowners.com -texashardwoodfloors.com -texaslibertynetwork.org -texasmanhunt.com -texasmomblogger.com -texasmovo.com -texasnationallaw.org -texasnationallaw.us -texasnationaltitle.biz -texasnationaltitle.info -texasnationaltitle.land -texasnationaltitle.org -texasnationaltitle.us -texasnationaltitlee.net -texasnationaltltle.com -texasnationatite.com -texasnationatltle.com -texasorangepages.com -texasorganized.com -texasrealestatebrokers.com -texasretirementservice.info -texasworkcomphelp.com -texasyrs.com -texi-connect.pro -texiluwa.xyz -text.gq -textad.us -textagrams.biz -textagrams.org -textagrams.website -textannons.se -textbooksandtickets.com -textcasi.cf -textcasi.gq -textcasi.ml -textcasi.tk -texters.ru -textil-home24.ru -textildesign24.de -textile-23.ru -textilelife.ru -textileroofs.org -textjobs.ru -textmarken.de -textmaster.app -textmedude.cf -textmedude.ga -textmedude.gq -textmedude.ml -textmedude.tk -textoverip.com -textpro.site -textrelaxs.info -textriot.com -textrme.com -textstep.info -textu.site -textwebs.info -textyourexbackreviewed.org -texvembterp.cf -texvembterp.ga -texvembterp.gq -texvembterp.ml -texvembterp.tk -texwerx.com -teyostore.xyz -teypstore.com -tezdbz8aovezbbcg3.cf -tezdbz8aovezbbcg3.ga -tezdbz8aovezbbcg3.gq -tezdbz8aovezbbcg3.ml -tezdbz8aovezbbcg3.tk -tezeger.xyz -teziver.com -tezos.charity -tezosclassic.com -tezwork.com -tezy.site -tezzmail.com -tezzmail.host -tf-373.com -tf2statistical.com -tf5bh7wqi0zcus.cf -tf5bh7wqi0zcus.ga -tf5bh7wqi0zcus.gq -tf5bh7wqi0zcus.ml -tf5bh7wqi0zcus.tk -tf7nzhw.com -tf888.com -tfajf.us -tfasesoria.com -tfclw.info -tfcredit.club -tfdkpn.shop -tfgphjqzkc.pl -tfiadvocate.com -tfq.us -tftitem.com -tfwno.gf -tfzav6iptxcbqviv.cf -tfzav6iptxcbqviv.ga -tfzav6iptxcbqviv.gq -tfzav6iptxcbqviv.ml -tfzav6iptxcbqviv.tk -tg-elektra.ru -tg7.net -tgcn.live -tgd9.us -tgftmyjy.com -tggmalls.com -tghenterprise.com -tgiq9zwj6ttmq.cf -tgiq9zwj6ttmq.ga -tgiq9zwj6ttmq.gq -tgiq9zwj6ttmq.ml -tgiq9zwj6ttmq.tk -tgisindia.com -tgmanetwork.com -tgntcexya.pl -tgpix.net -tgproxy.site -tgres24.com -tgspb.app -tgstation.org -tgszgot72lu.cf -tgszgot72lu.ga -tgszgot72lu.gq -tgszgot72lu.ml -tgszgot72lu.tk -tgtshop.com -tguide.site -tgw48y.online -tgwegame-44.xyz -tgwnw.info -tgwrzqr.top -tgxvhp5fp9.cf -tgxvhp5fp9.ga -tgxvhp5fp9.gq -tgxvhp5fp9.ml -tgxvhp5fp9.tk -tgyup.us -th-garciniaextract-plus.site -th-garciniaextractplus.site -th-trend.com -th398gij3fjndoip3.com -th3glw.us -th3ts2zurnr.cf -th3ts2zurnr.ga -th3ts2zurnr.gq -th3ts2zurnr.ml -th3ts2zurnr.tk -th6008.com -th9002.com -th9ekodo77wkv8k.xyz -tha2itkkiman.xyz -thai-palace-inn-takeaway.com -thai4u.info -thaibikemart.com -thaiedvisa.com -thaifoodkinkin.com -thaigarciniaextract.site -thailaaa.org.ua -thailand-estelle.website -thailand-mega.com -thailandforyou.site -thailandresort.asia -thailandstayeasy.com -thailongstayjapanese.com -thainguyen.com -thaiparadisetakeaway.com -thaishop.email -thaishop.info -thaispiceathome.com -thaivip888.com -thaivisa.cc -thaivisa.es -thaki8ksz.info -thaliaesmivida.com -thambdistpec.ga -thambdistpec.gq -thambdistpec.ml -thambdistpec.tk -thamesvalley.exposed -thampvinig.cf -thampvinig.gq -thampvinig.ml -thampvinig.tk -than.one -thanawi.com -thangapple.com -thangberus.net -thangcambietnoi.com -thangmay.biz -thangmay.com -thangmay.com.vn -thangmay.net -thangmay.org -thangmay.vn -thangmaydaiphong.com -thangmaygiadinh.com -thangmayhaiduong.com -thangmaythoitrang.vn -thanhbaohan.com -thanhhoagroup.com -thanhhoaonline.com -thanhscam100k.com -thankams.com -thankch.icu -thankenstein.com -thankenstein.net -thankgodfordrdon.com -thankhors.xyz -thankinator.com -thankle.host -thanklov.icu -thanksala.xyz -thanksgiving.company -thanksgiving.digital -thanksnospam.info -thanktrac.xyz -thankworl.xyz -thankyou2010.com -thankyou2014.com -thanoper.cf -thanoper.ga -thanoper.gq -thanthoai.ml -thassoshotelleri.com -that.gives -thatbloggergirl.com -thatim.info -thatleft.com -thatsill.com -thatsumsitallup.com -thatswhatcheesesaidtruck.com -thatswhatyouneed.fun -thatswhatyouneed.site -thatswhatyouneed.xyz -thatthing.org -thavornpalmbeachphuket.ru -thbr88.com -thc.st -thcmsa.site -the-bitcoins-era.net -the-blockchainnews.xyz -the-bloggers-exchange.org -the-boots-ugg.com -the-business-execution-system.com -the-celebrity-confessed.info -the-central-hotel-lamai.com -the-classifiedads-online.info -the-cryptovipclub.site -the-dating-jerk.com -the-ethereumcode.site -the-eyesp.us -the-first.email -the-greateststat.com -the-grill-house-clondalkin.com -the-hbswiss.site -the-hill-leixlip.com -the-hill-takeaway.com -the-infiniateastcoast.com -the-johnsons.family -the-johnsons.net -the-kitchen-dundrum.com -the-louis-vuitton-outlet.com -the-movie-resort.biz -the-new-leaf-takeaway.com -the-om-shoppe.com -the-pharmacy.info -the-pill.info -the-popa.ru -the-protagonist.net -the-raj-passage-west.com -the-river-retreat.com -the-skyeverton.com -the-snapcashb.site -the-source.co.il -the-tarot-guy.com -the-unknown.app -the-valley-macaris-moate.com -the-web-writer.com -the-wondrous-pattaya.com -the-wondrous.com -the-wondrouz-pattaya.com -the-x.agency -the.celebrities-duels.com -the2012riots.info -the21nation.com -the2jacks.com -the2percentlisting.com -the3percentlisting.com -the4you.ru -theaahatel.cf -theaahatel.ga -theaahatel.gq -theaahatel.ml -theaahatel.tk -theacneblog.com -theactionplaybook.com -theactualnews.online -theaddesk.com -theaddyshow.com -theadmiralcodrington.com -theadvertisingdesk.com -theairfilters.com -theajmorganfoundation.org -theallardprize.com -theallgaiermogensen.com -theallmightyyes.com -thealohagroup.international -thealth.shop -theamazingcomic.com -theambersea.com -theambulance.com -theanatoly.com -theanewdaycenter.com -theangelhack.ru -theangelwings.com -theanswer-am990.com -theanywherebusinessbook.com -theaperturelabs.com -theaperturescience.com -theapp.agency -thearcarcade.com -thearch-info.com -thearcticbears.com -thearketekt.com -theartistpainting.info -theartofrecharge.com -theartypeople.com -thearunsounds.org -theautomaticmovement.com -theautothority.us -theavatar11.com -theaviors.com -thebabiescares.com -thebaby.blog -thebagbook.com -thebankofwestindies.com -thebargainbasement.site -thebargainsuperstore.com -thebarkerychch.com -thebat.client.blognet.in -thebearshark.com -thebeatcolumbus.com -thebeatlesbogota.com -thebeautifullyrics.com -thebeautybargain.one -thebegoodtanyas.com -thebenefit.xyz -thebest4ever.com -thebestacupuncturedavenport.com -thebestarticles.org -thebestforex.ru -thebesthotelsinmexico.com -thebestmassage.life -thebestmedicinecomedyclub.com -thebestmoneymakingtips.info -thebestofscrubs.com -thebestorchards.com -thebestremont.ru -thebestrolexreplicawatches.com -thebestwebtrafficservices.info -thebetcoin.com -thebetterrelationship.com -thebettsnaps.xyz -thebibleen.com -thebigdeal.media -thebigfoody.biz -thebitcoincircuit.net -theblackmagiccafe.com -theblg.xyz -theblocnola.com -theblogprofboe.info -theblownwhistle.com -thebluffersguidetoit.com -thebluyondr.com -theboatcycle.com -thebogdiaries.com -thebongjournal.com -thebonusaction.site -theboogiecats.com -thebrainzen.com -thebrandgraph.net -thebridgelincoln.org -thebridgespangroup.ngo -thebrilliantvault.com -thebrokenhands.com -thebrooklynmarathon.net -thebrothersgreens.com -thebrownclan.info -thebudhound.com -thebuildingteamandsons.com -theburningofpaper.com -theburntorange.com -thebusinessmakeover.net -thebusinessmakeoverexperience.com -thebuyinghub.net -thebytehouse.info -thecall.media -thecanadiancollege.com -thecapeswalk.com -thecasinowatcher.com -thecathyeffect.com -thecatstaleusedbooks.org -thecenterforspecialdentistry.com -thechampionofwhatif.com -thechapel.space -thechattapp.com -thechemwiki.org -thecherry.club -thecherrypress.net -thechesschool.net -thecirchotelhollywood.com -thecisco.xyz -thecitiescafe.com -thecity.biz -thecitypress.biz -theclassroomla.com -theclearproject.net -thecliffsvillage.com -theclinicshield.com -thecloudindex.com -theclubhousegrill.org -thecoalblog.com -thecocreatornetwork.net -thecocreatornetwork.org -thecocreators.net -thecoffeetender.com -thecoincasino.com -thecolabclub.com -thecolemanlawgroup.net -thecollegeessayistblog.com -thecolonydoctors.com -thecolorsofblue.com -thecomcommunity.com -thecomebackalliance.com -thecomedyfilmplaybook.com -thecomeup.com -thecommunityky.org -thecongruentmystic.com -theconsciouspractice.com -theconsumerclub.org -thecontainergroup.com.au -thecookoffboard.com -thecouchpotatomillionaire.com -thecouragetobeyou.net -thecovid.report -thecovidhygiene.report -thecraftytalk.com -thecreativefoundry.sydney -theculturallyconnectedcook.com -theculturallyconnectedcook.org -thecuomoteam.com -thecuspofrelevance.com -thecyberpunk.space -thecybervolunteers.com -thedailyfloridian.com -thedanye.tk -thedarkcorner.org -thedarkcorner.tk -thedarkmaster097.sytes.net -thedavosman.store -thedealsvillage.com -thedearnest.com -thedeepbox.com -thedenatlicon.com -thedenovocompany.com -thedentalshop.xyz -thedepression.com -thedesignerhomestyleprogram.com -thediamants.org -thedietsolutionprogramreview.com -thedigitalbrandbox.com -thedigitalphotoframe.com -thedimcafe.com -thedirhq.info -thedirtytutor.com -thediscountbag.com -thediscountmart.net -thediscreetretreat.com -thedishrag.com -thedistrictbook.com -thedocerosa.com -thedohertyclan.info -thedollymix.com -thedoublecommaclub.org -thedoubletop.site -thedowntowndiva.com -thedowntowndivas.com -thedowntowndivas.net -thedragonsmokeshop.com -thedriftbackpackershostel.com -thedriveinn.com -thedunneclan.info -theeagleselement.com -theeasttrain.com -theeasymail.com -theeatclub.ru -theedgesignals.com -theelysianbrand.com -theemailaccount.com -theemailadress.com -theemailprogram.com -theempirecode.com -theencorehall.com -theengagement.group -theengagementtest.com -theequineinternetnetwork.com -theeriviera.com -theestateplanning.org -theestateplanningatty.com -theestateplanningatty.net -theexclusiveonnew.com -theexitgroup.com -theexitnow.com -thefaceofbrazil.com -thefactsproject.org -thefairholmepartnership.net -thefairyprincessshop.com -thefakechef.com -thefalconsshop.com -thefallsmt.net -thefarmlane.com -thefarmtakeaway.com -thefarsightnepal.com -thefatloss4idiotsreview.org -thefatlossfactorreview.info -thefatlossfactorreviews.co -thefatlossfactorreviews.com -thefinalhero.com -thefinaltwist.com -thefirstpadres.com -thefirstticket.com -thefishbarcrumlin.com -thefishdoctors.vet -thefitnessgeek.com -thefitnessguru.org -thefitnesstrail.com -thefivem.com -theflanneleffect.com -theflatwater.com -theflavr.com -theflexbelt.info -thefocusfolks.com -thefoolevents.xyz -theforexdivision.com -theforgotten-soldiers.com -thefredericksburggenerals.com -thefreedomdaily.com -thefreefamily.xyz -thefreemanual.asia -thefrenchlotus.com -thefriendsit.com -thefrntrw.online -thefryerysmithfield.com -thefuturebit.com -thefuturehopeempowerment.ong -thefutureofcharity.com -thefvs.info -thefxpro.com -thega.ga -thegachi.cf -thegachi.ga -thegachi.gq -thegachi.ml -thegachi.tk -thegameemporium.com -thegamersclub.ru -theganderinn.com -thegappers.net -thegarageprofessionals.com -thegatefirm.com -thegathering.xyz -thegazgroup.com -thegenuineoriginal.xyz -theghdstraighteners.com -theghostofjeffersom.com -thegigabithk.com -thegioibepga.com -thegioidat.info -thegioididong.asia -thegioigiamgia.website -thegioikemduongda.com -thegioitiepthi.website -thegioixinhdep.info -thegirlcute.com -thegirlhot.com -theglobalsdgawards.com -theglockner.com -theglockneronline.com -thegolbii.ru -thegoldishere.com -thegolfodyssey.com -thegolfshopnc.com -thegolfswingtutor.com -thegoodbee.com -thegoodherbals.com -thegoodlifemommaacademy.com -thegoodwork.club -thegothamgirl.com -thegreasegun.com -thegreatcommission.cloud -thegreatest-stats.com -thegreatindian.ooo -thegrilltakeaway.com -thegroundage.com -thegrovebandb.com -thegrovebnb.com -thegrumpyglobetroter.com -thegscw.org -theguardian.best -thehagiasophia.com -theharmfam.com -thehatchedegg.com -thehawaiirealestatesite.com -thehealingroom.info -thehealingstream.com -thehempstore.com -thehenryrestaurant.club -theherochecklist.com -theholeinthewallfinglas.com -theholeinthewalltakeaway.com -thehoroscopereview.com -thehosh.com -thehostbase.com -thehosthelpers.com -thehotlist.vote -thehouseofrock.org -thehoustoninnerloop.com -thehowardhistorian.com -thehubdublin.com -thehudsonsheafoundation.org -thehumanlongevityproject.org -thehungryrabbit.com -thehygiene.report -thehypothyroidismrevolutionreview.com -theimagetrader.com -theimgdump.com -theindiaphile.com -theindiaproject.org -theinevitablezombieapocalypse.com -theinfomarketing.info -theinquisitor.xyz -theinsuranceinfo.org -theinternationaltinkler.com -theinternetpower.info -theintim.ru -theisbook.com -theitalianconnection-d1.com -theitdoc.com -theittechblog.com -thejerniganagency.com -thejerseykid.icu -thejesusclubs.org -thejewishfraternity.org -thejmrcompany.com -thejoaocarlosblog.tk -thejoytravel.com -thejuniper-hill.com -thejupiterblues.com -thekaleofoundation.net -thekamasutrabooks.com -thekarunggoni.com -thekebabandindiancurryjoint.com -theketodiet.club -thekimagency.biz -thekindredcompany.co -thekingcasino.shop -thekitchen-dundalk.com -thekitchenfairypc.com -thekittensmurf.com -theklister.com -thekoots.com -thekratomtemple.com -thekurangngopi.club -thelanterntakeaway.com -thelastshred.com -thelavalamp.info -thelbb-london.com -thelearning.cloud -thelearningcurve.org -theleatherartsstore.com -thelegacybarbers.com -thelenfestcenter.org -thelifeguardonline.com -thelightningmail.net -thelimestones.com -thelittlechicboutique.com -thelocalcarrentals.ru -thelocaltraffic.com -theloftbarn.com -thelol.space -thelol.xyz -thelonestarbrewery.com -thelordofpdf.info -thelorenzcompany.com -thelostway.blog -thelouisvillelady.com -thelovethread.com -thelsatprofessor.com -thelurelounge.com -theluxplanet.com -theluxurycloset.info -themadfishicist.com -themadhipster.com -themagicclass.com -themagicofmakingupreview.info -themail.krd.ag -themail3.net -themailemail.com -themailmall.com -themailpro.net -themailredirector.info -themailworld.info -themanage.ru -themandalawnian.com -themandarinorientalvegas.com -themanicuredgardener.com -themanifestoofencouragement.com -themarket-delivery.ru -themarketingsolutions.info -themaskedsingerbingo.com -themaskedsingerslot.com -themaslowcollection.com -themasterchefcarlow.com -themasterminds.us -thematicworld.pl -thembones.com.au -themcminshuck.cf -themcminshuck.ga -themecolours.com -themecpak.com -themediant.com -themediaspark.info -themediaspark.net -themediaspark.org -themedicinehat.net -themediterraneinn.com -themediummaria.com -themeg.co -themegreview.com -themegxit.life -themelizer.com -themenswellnesscenters.com -themenudiet.com -themeritstore.com -themesavegas.com -themidwood-sg.com -themigration.us -themillionairenetworkmarketer.com -themindfullearningpath.com -themindsui.com -theminimarriage.com -theminimumviableteam.com -theminorityvotefilm.com -themission.network -themodernlad.store -themogensen.com -themoneysinthelist.com -themonroy.site -themonthly.app -themoon.co.uk -themostemail.com -themotowners.info -themoviestudio.biz -themulberrybags.us -themulberrybagsuksale.com -themule.net -themz.org -thenaborsgroup.com -thenativeangeleno.com -thenaturalepiphanystore.com -thenaturalfoodshow.com -thenaturalhairdiva.com -thenetcare.net -thenetfx.website -thenetshop.xyz -thenew.press -thenewenglandhouse.com -thenewjubilee.com -thenewmadridpost.com -thenewmombod.com -thenewrustic.club -thenewsdhhayy.com -thenewtinsomerset.news -thenflpatriotshop.com -thenflravenshop.com -thenickensfamily.com -thenightmareofgaza.com -theninthinfantrydivisionassociation.org -thenodehouse.net -thenoftime.org.ua -thenorth-face-shop.com -thenorthfaceoutletb.com -thenorthfaceoutletk.com -thenumberonemattress.com -thenumbersfund.com -theodelo.cf -theodelo.ml -theodelo.tk -theodore1818.site -theoliveoiltimes.com -theologynerd.com -theomastix.xyz -theone-blue.com -theone2017.us -theonedinline.com -theonlinemattressstore.com -theonlineme.com -theopendoorwayinc.com -theopenspace.asia -theopposition.club -theoptimizedmarketinggroup.net -theorganiqera.biz -theorientaltakeaway.com -theoriginsprogram.com -theoriginsprogram.net -theorlandoblog.com -theorlandoguide.net -theortolanoteam.com -theoryphotoart.com -theosullivanclan.info -theothermail.com -theoutriggeradvantage.com -theoverlandtandberg.com -theoxfordpoloschool.com -theoxfordunderground.com -theoxygenator.com -thepacificmansionresidences.com -thepaintedknitter.com -thepaleoburnsystem.com -thepancakeparlour.net -thepaperbackshop.com -theparaclete.org -theparentingdifference.com -theparlordowntown.club -theparryscope.com -thepartsden.com -thepascher.com -thepathofmostresistance.com -thepathwayout.africa -thepathwayout.global -thepathwayout.org -thepathwayout.tokyo -thepathwayout.world -thepatriotchannel.info -thepcad.tech -thepcgames.cf -thepenshield.com -theperformancecenterformen.com -thepetaclouds.com -thephillycalendar.com -thepichuleiros.com -thepieter.com -thepieteronline.com -thepill360.com -thepillsforcellulite.info -thepinkbee.com -thepirate.download -thepiratebay.space -thepiratefilmeshd.org -thepiratesmc.online -thepit.ml -thepitujk79mgh.tk -theplaidapron.com -theplug.org -theplugchange.com -thepoisonmag.ru -thepolingfamily.com -thepowerofuniverse.com -thepreppybrunette.com -theprestigemotorcars.net -theprinterwizards.com -theprocesslibrary.com -theprojectcitybus.com -thepromenadebolingbrook.com -thepsoft.org -thepublicityfirm.com -thepunjabpantry.com -theqbn.com -thequickreview.com -thequickstuff.info -thequicktake.org -theradicalprogressive.com -theramblingroadsters.com -therapeats.info -therapiesthatwork.org -therapy.cd -therapyservicesllc.org -therateguide.website -therattler.site -theravensshop.com -therawhealthsolution.com -theraworkplus.com -theraworksactive.com -theraworksbionom.com -theraworksbionometherapies.com -theraworkstech.com -theraworkstechnologys.com -theraworxactiv.com -theraworxbionomtherapies.com -theraworxcramp.com -theraworxtechnologies.com -theraworxtowels.com -therealdealblogs.com -therealfoto.com -therealgreencafe.com -thereareemails.xyz -therebecas.com -thereboost.info -therecepts.com -therecoverycompanion.com -thereddoors.online -therednecklipstick.com -thereefbarandmarket.com -thereefbarandmarketgrill.com -theresawylie.com -theresearchleague.com -theresolvegrp.com -theresorts.ru -therestaurantstore.info -therinro.stream -theriworks.com -therkoda.cf -therkoda.ml -therkoda.tk -thermacel-patio.com -thermesthesia863lh.online -thermoconsulting.pl -thermoplasticelastomer.net -thermostatreviews.org -therndentsur.cf -therndentsur.ga -therndentsur.gq -therndentsur.tk -theroarroarwentzoom.xyz -therodrigos.com -theromatakeaway.com -therookharrison.com -theroundhouseaquarium.org -theroyalstores.com -theroyalweb.club -therustichome.club -theryanschmidt.com -thesacredmist.icu -thesahaty.com -thesandovals.org -thesarasoulatihealthforlifepro.icu -thesaturdaypaper.app -thesavvybusiness.academy -thesavvybusinessnetwork.com -thesavvymarketing.agency -thesavvymarketingagency.com -thesbnation.com -thescalinggroup.com -thescanner.com -theschreibertimes.org -thescrappermovie.com -thesdfsfgdf345353.com -these.reviews -these.tips -theseamstress.online -thesearchmarkefirm.net -thesector.org -theseobarn.com -theseodude.co.uk -theseoexperts.net -theshadowconspiracy.us -theshamrockcarlow.com -thesheermcgoldrickness.com -theshiftcoin.com -theshiftfestival.world -theshopisme.com -theshortop.site -theshowbizsociety.com -thesickest.co -thesidfe.tk -thesierrasanctuary.com -thesieve.info -thesimplegiant.com -thesimpletraders.com -thesinandtonics.com -thesingaporemajor.com -thesio.net -thesio.org -thesipcalculator.com -thesistersvn.icu -theskymail.com -theslatch.com -theslave.network -thesnapmom.org -thesneakerswarehouse.com -thesoccerdoc.com -thesocialchaingroup.life -thesocialmint.com -thesoftwareresource.com -thesolereader.com -thesolutions.guru -thesophiaonline.com -thesoupkid.com -thesourcefilm.org -thesouthdakotaclub.com -thespacemarine.com -thespamfather.com -thespawningpool.com -thespinningbur.com -thesporters.com -thesportshows.net -thesportsillustrated.com -thespotonfifth.com -thespringreveal.com -thesprouts.com -thesqueeze.pro -thesquirrelsnuts.online -thestamp.app -thestansberryfoundation.org -thestarwars.xyz -thestatesman.org -thestats.top -thestimulant.com -thestonedcrab.com -thestonedcrabbrewingcompany.com -thestopplus.com -thestoryofbookworm.com -thestraightshooterband.com -thestringerpress.com -thestyleneur.com -thestyleneur.xyz -thesudokulegend.com -thesugarmakerbakery.com -thesunshinecrew.com -thesunshinetoker.com -theswanfactory.com -thesweetshop.me -thesweetshop.tech -theswingking.info -theswingking.org -theswisschaletinthevillages.com -theta-time.ru -theta.whiskey.webmailious.top -thetabletswindows.net -thetalento.com -thetaletop.com -thetantraoils.com -thetaoofbadassreviews.info -thetapkins.com -thetayankee.webmailious.top -theteastory.info -thetechnicaladviser.com -thetechpeople.net -thetechteamuk.com -thetempmail.com -thethaomoi.com -thethirdbear.net -thethyroiddiseasesecret.com -thetimeplease.com -thetimothyprojects.com -thetlilin.gq -thetlilin.ml -thetlilin.tk -thetopsale2015.com -thetouch.xyz -thetraditionalpizza.com -thetrash.email -thetraumamama.info -thetrendprime.com -thetrommler.com -thetruthaboutfatburningfoodsreview.org -thetruthshirts.org -thetumbledryers.com -thetwil.com -thetybeetimes.net -theugg-outletshop.com -theukmassageguide.com -theulogo.org -theunicornpower.us -theunitestars.com -theupperroomyork.com -theupscalecircle.com -thevaltrexnetwork.online -thevapeonator.com -theversatileme.shop -theviastudy.com -thevibet.site -thevibram-fivefingers.com -thevillachinese.com -thevillageslifeeventcenter.com -thevinewexford.com -thevipcardclub.com -thevisioncenterofwesttexas.com -thewaitcarefree.com -thewalkingsticks.com -thewarofus.shop -thewarpandweft.com -thewaterenhancer.com -thewaterworld.ru -thewaybetween.net -theweatherplease.com -thewebbusinessresearch.com -theweepingdragon.net -thewhelanclan.info -thewhitebunkbed.co.uk -thewhitehouse.ml -thewickerbasket.net -thewidowscry.com -thewileychronicles.com -thewirelessmicrophone.com -thewisehomesellers.com -thewondrouzpattaya.com -thewoodenstoragebeds.co.uk -theworldisyours.ru -theworldof17hats.com -theworldofeasier.com -theworldofespn.com -theworldofworks.works -theworldremembers.com -theworldwewant.live -theworm.company -thewriterssoul.com -thex.ro -thexfactorweb.com -thexforex.com -thexgenmarketing.info -thexlist.net -thextracool.info -thexxx.site -they-sell-these.com -theyarepodcasting.us -theyearsface.com -thezarara.com -thfulhaggder.cf -thfulhaggder.ga -thfulhaggder.gq -thfulhaggder.ml -thfulhaggder.tk -thg24.de -thianingle.cf -thianingle.ga -thianingle.gq -thianingle.tk -thibault-calderon-andre.com -thickfiel.buzz -thidoper.cf -thidoper.gq -thidoper.ml -thidoper.tk -thidthid.cf -thidthid.ga -thidthid.gq -thidthid.ml -thiebimis.cf -thiebimis.ga -thiegravit.cf -thiegravit.ga -thiegravit.gq -thiegravit.tk -thienduongcave.com -thiennhatnguyen.shop -thiepcuoibeloved.net -thiet-ke-web.org -thietbivanphong.asia -thiethin.shop -thietkeweb.org -thighagree.us -thighfo.xyz -thighforc.xyz -thighs.chat -thildryn.com -thinbrush.net -thinbrush.us -thinbrushes.us -thindiancollection.com -thinfile.com -thinges.site -thingexpress.com -thinggebli.cf -thinggebli.gq -thinggebli.ml -thinggebli.tk -thinglayer.com -thinglingo.com -thingsandstuff.rocks -thingsneverdo.com -thingssimple.site -thingtrieve.com -think316.com -thinkaboutb.top -thinkbait.media -thinkbigholdings.com -thinkbikeaustralia.com -thinkfuxglv.email -thinkhive.com -thinkingimpared.com -thinkingus24.com -thinklocalsantacruz.com -thinkmerkdo.cf -thinkmerkdo.ga -thinkmerkdo.gq -thinkmerkdo.ml -thinkmerkdo.tk -thinkphp.dev -thinktalentia.com -thinktimessolve.info -thinktop.network -thinktrendy.online -thinkun.live -thinkun.shop -thinkunportfolio.com -thinthe.shop -thinwooldstiv.cf -thinwooldstiv.ga -thinwooldstiv.gq -thinwooldstiv.ml -thinwooldstiv.tk -thirdbear.net -thirdbrother.coffee -thirdbrothercoffee.com -thirdhome.media -thirdminuteloan.com -thirdwrist.com -thirstybear.icu -thirstycat.icu -thirstycow.icu -thirstytree.org -thirteenscissors.com -thirthis.shop -thirtysecondsofcourage.com -thiruvallikkeni.com -this-is-a-free-domain.usa.cc -this.cd -this.gallery -thischarmlessgirl.com -thisemailis.absolutelyleg.it -thisisatrick.com -thisisfamilytree.net -thisisfashion.net -thisisfashion.org -thisishowyouplay.org -thisismyemail.xyz -thisisnotacommunity.org -thisisnotmyrealemail.com -thislifechoseme.com -thislifefoundme.com -thismail.net -thisshipping.xyz -thisthin.shop -thistime.uni.me -thistimedd.tk -thistimenow.org.ua -thistvknows.com -thisurl.website -thiswildsong.com -thitchua.info -thitruongnhadat247.net -thkig7.xyz -thlingo.com -thnikka.com -thnk.de -thnyqy.xyz -thoas.ru -thodetading.xyz -thodien247.com -thoitrang.vn -thoitrangcongso.vn -thoitrangthudong.vn -thoitrangtructuyen.website -tholo.energy -thomasasaro.com -thomascoleman.buzz -thomasedisonlightbulb.net -thomasklun.com -thomeena.ru -thompsogna.host -thomsonmail.us.pn -thomsonvirtual.com -thongtinchung.com -thoppilbuildersinc.com -thoraxjs.org -thorfun.org -thornyscrate.com -thorouashi.online -thoroughbreddailynews.net -thoroughbredhistory.com -thorplat.ru -thorpoker.com -those-guys.com -thosefeard.xyz -thoskin.site -thot.fail -thotels.net -thought-police.net -thoughtconventioneasy.website -thoughtcrate.com -thoughtfulbit.com -thoughtsofanangel.com -thoughtsontwo.com -thousandoakscarpetcleaning.net -thousandoaksdoctors.com -thousandoaksdrilling.com -thpenza.ru -thpoq1.site -thqdiviaddnef.com -thqdivinef.com -thraml.com -thrashers.net -threadnecre.cf -threadnecre.ga -threadnecre.gq -threadnecre.ml -threadneedlepress.com -threatstreams.com -threatvectorsecurity.org -thredbo60.com -three-fellas-pizza-waterford.com -three.emailfake.ml -three.fackme.gq -threecreditscoresreview.com -threeday.site -threedollarcafe.net -threeeight.ru -threeframes.ru -threemonks-dublin.com -threemountaindojo.com -threesume.com -thremagforspace20.site -thremagforspace20.website -thriftypixel.com -thriftypro.xyz -thrillofdriving.com -thritorbo.ga -thritorbo.gq -thritorbo.ml -thritorbo.tk -thrivetemplates.club -thrma.com -throam.com -throopllc.com -thropasach.cf -thropasach.ga -thropasach.ml -thropasach.tk -thrott.com -throwam.com -throwawayemail.com -throwawayemailaddress.com -throwawaymail.com -throwawaymail.pp.ua -throwawaymail.uu.gl -throwblanket.net -throya.com -thrubay.com -thrudisanglux.com -thsehouseof.house -thsideskisbrown.com -thsiisxgood2020.site -thspdi.icu -thtt.us -thtvbc.xyz -thucdon365.net -thucml.com -thud.site -thuducnhadat.com -thuehost.net -thuexemay.top -thug.pw -thuguimomo.ga -thuisworkoutset.online -thulsitvuk.com -thumbthingshiny.net -thumoi.com -thund.cf -thund.ga -thund.gq -thund.ml -thund.tk -thunderballs.net -thunderbolt.science -thundernetwerk.online -thunderonbrush.biz -thunderonbrush.net -thunderonbrush.us -thunderonbrushes.biz -thunderonbrushes.org -thunderonbrushes.us -thunkinator.org -thunnus.best -thuocclub.club -thuocclub.fun -thuocvip.fun -thuonghieutenmien.com -thurst2sixes.com -thurstoncounty.biz -thuthuatlamseo.com -thuvanmayff.site -thuyloi.ga -thwequ.xyz -thx40.site -thxmate.com -thxrnhiual.host -thybet24.com -thyfootball.ru -thyfre.cf -thyfre.ga -thyfre.gq -thyfre.ml -thyia1.us -thymusvulgaris.com -thyroidportal.com -thyroidsaver.com -thyroidsaver.org -thyroidtips.info -thyxwenu.shop -thzhhe5l.ml -ti-sale.online -ti.igg.biz -tiabami.cf -tiabami.ga -tiabami.gq -tiabami.ml -tiabami.tk -tiacrystalcases.com -tiam24.com -tianadonerkebabpizzeriatiana.com -tiancaiyy.info -tiandeonline.ru -tianjijinrong.net -tianmao.cd -tiaotiaoylezc.com -tiapz.com -tiarabet99.info -tiarabet99.org -tib.wtf -tiba8q.info -tibet.cd -tibetsmen.ru -tibia7.com -tibpftbz.site -tibui.com -tic.ec -ticareh.com -ticatom.com -ticgris.com -ticket-please.ga -ticket.gifts -ticket4one.com -ticketb.com -ticketcenter.site -ticketfood.com -ticketkick.com -ticketmarket.place -ticketsdiscounter.com -ticketwipe.com -ticklecontrol.com -ticlesen.cf -ticlesen.ga -ticlesen.gq -ticlesen.tk -ticpire.cf -ticpire.gq -ticpire.ml -ticpire.tk -tidc.dev -tide-fillmig.rest -tideloans.com -tidemigfill.rest -tidningensvegot.se -tidyupjunkremoval.com -tiebajian.com -tieboppda.cf -tieboppda.ga -tieboppda.ml -tieboppda.tk -tiedupnivc.space -tieindeedted.website -tieit.app -tielu168.com -tiemmeservice.net -tiendacars.net -tiendamaravilla.com -tiendamia.africa -tiendamia.shop -tienduoc.win -tienganhpro.net -tienghan.org -tiengtrungmoingay.online -tiepoes.com -tieportsi.cf -tieportsi.gq -tieportsi.ml -tieportsi.tk -tierahs.com -tiesmares.cf -tiesmares.ga -tiesmares.ml -tiesmares.tk -tieungoc.life -tievah.com -tievol.com -tiffanyclarkwriter.com -tiffanyelite.com -tiffanymarascio.com -tiffanypower.com -tiffanysbnb.com -tiffanywishes.com -tiffin-maynooth.com -tigerch.xyz -tigerlilyflowershop.net -tigermou.icu -tigersuga.press -tigerwoodsdesign.org -tigerwoodsmobile.com -tigerwoodsonline.com -tigerzindahaicollection.info -tighmarta.cf -tighmarta.ga -tighmarta.gq -tighmarta.ml -tigmon.club -tiguanreview.com -tigytech.com -tijdelijke-email.nl -tijdelijkmailadres.nl -tijuanatexmexsevilla.com -tika-gil.ru -tikao.org -tikiboutiques.site -tikichoy.com -tikima.cf -tikima.gq -tikima.tk -tikisalesa.info -tikitrunk.com -tikkahutindian.com -tikkaindiantakeaway.com -tikkieme.tech -tikkunology.ong -tikl.tk -tiko-wabe.ru -tikpal.site -tiksi.info -tiktokitop.com -tiktokrewards.xyz -tikusqq.org -tikvahhertogfellows.org -tilamook.name -tilamook.us -tilanhem.site -tilda-vikroiki.ru -tilehi.cf -tilehi.ga -tilehi.gq -tilehi.ml -tilehi.tk -tilersforums.net -tiles.guru -tilien.com -tillamook-cheese.name -tillamook-cheese.us -tillamook.name -tillamookcheese.name -tillamookfoodsales.biz -tillamookfoodsales.name -tillamookfoodsales.us -tillerrakes.com -tillid.ru -tillion.com -tilnopen.cf -tilnopen.ga -tilnopen.ml -tilnopen.tk -timail.ml -timalti.shop -timanac.cf -timanac.ga -timanac.gq -timanac.ml -timanac.tk -timberlakehemp.com -timberland-rus.site -timberlandboot4sale.com -timberlandboots.biz -timberlandchukka-boots.us -timberlandf4you.com -timberlandfordonline.com -timberulove.com -timcooper.org -time-for-dating2.com -time-tamtam.site -time-tamtam.xyz -time.dating -time4areview.com -time4wine.xyz -time789.com -timeand.shop -timeavenue.fr -timebet12.com -timebet26.com -timebet29.com -timebet34.com -timebet38.com -timebet63.com -timebetting.org -timebit.store -timecomp.pl -timecritics.com -timeforex.ru -timegv.com -timekr.xyz -timeleone.info -timelytrims.com -timenetwork.online -timepad.com -timepod.net -timesharerentalorlando.com -timesua.com -timetodeliver.org -timetotv.com -timewasterarcade.com -timewillshow.com -timfesenko.com -timfosterarchitects.com -timfrench.net -timgiarevn.com -timgmail.com -timiko.ru -timishop.site -timjarrett.net -timkassouf.com -timmatheson.com -timmphiha.cf -timmphiha.ga -timmphiha.gq -timmphiha.tk -timmyknowlesofficial.com -timnas88.biz -timoloogkn.space -timphongsamson.net -timrad.ru -timrodlibrary.org -timsautorepair-subaguru.com -timspeak.ru -timviechieuqua.com -timvieclamnhanh.net -tinaksu.com -tinbitcoin.net -tinbitcoin.org -tincvenmi.gq -tincvenmi.ml -tincvenmi.tk -tinderajans.club -tinderajans.online -tinderajans.site -tinderhunter.com -tinechic.xyz -tinedsdqzxmbmz.host -tinfb.org -tinfoto.ru -tingcamptic.cf -tingcamptic.ga -tingcamptic.ml -tingmoe.com -tingnewsre.cf -tingnewsre.gq -tingnewsre.ml -tingnewsre.tk -tingsihop.cf -tingsihop.ga -tingsihop.gq -tingsihop.ml -tinhay.fun -tinhay.info -tinhaynhat.net -tinhnguyen0202.uk -tinhy.eu -tinhyeu.asia -tinhyeu.mobi -tinikok2.ru -tinkeringpans.com -tinkiremote.site -tinkmail.net -tinkoff-strahovanie-cabinet.ru -tinkoff-strahovanie-kabinet.ru -tinkoff-strahovanie-osago.ru -tinleyparkplumbers.com -tinmail.tk -tinman.jobs -tinmorrluzz.cf -tinmorrluzz.ga -tinmorrluzz.gq -tinmorrluzz.ml -tinmorrluzz.tk -tinnituscentercapecod.com -tinnitusmiraclereviews.org -tinnitusremediesforyou.com -tinnitustreatmentsblog.com -tinoza.org -tinsieuchuoi.com -tinsignifytoe.website -tinsology.net -tintanenlingro.info -tintinnabulation.space -tintorama.ru -tintremovals.com -tintuceva.org -tintucphunu.org -tinviahe.top -tiny.itemxyz.com -tinybet.org -tinybt.com -tinyheight.com -tinymill.org -tinypc.reviews -tinypc.tech -tinystoves.net -tinyurl24.com -tinywiki.com -tiobichieu.site -tiodarrigh.cf -tiodarrigh.ga -tiodarrigh.tk -tiofolva.cf -tiofolva.ga -tiofolva.gq -tiofolva.ml -tioforsellhotch.xyz -tiohulfi.cf -tiohulfi.gq -tiohulfi.ml -tiohulfi.tk -tiolabal.cf -tiolabal.ga -tiomahecon.tech -tiongbahrusocialclub.com -tiopreslasz.cf -tiopreslasz.ga -tiopreslasz.gq -tiopreslasz.ml -tiopreslasz.tk -tiosiro.cf -tiosiro.ga -tiosiro.gq -tiosiro.ml -tiosiro.tk -tiosparhar.cf -tiosparhar.ga -tiosparhar.gq -tiosparhar.tk -tioswerar.cf -tioswerar.ga -tioswerar.tk -tiosyri.tk -tiotego.ga -tiotego.ml -tiovamons.cf -tiovamons.gq -tiovamons.ml -tiovamons.tk -tip.capital -tipartre.gq -tipasza.ga -tipasza.gq -tipasza.ml -tipasza.tk -tipertbubb.cf -tipertbubb.ga -tipertbubb.gq -tipertbubb.ml -tipertbubb.tk -tipheaven.com -tipicopr.site -tipidfinder.com -tipidfranchise.com -tipidkorpoldakalteng.info -tipo24.com -tipo34.com -tipo35.com -tipo37.com -tipo38.com -tipo39.com -tipobet.host -tipobet144.site -tipobetbahis.com -tiprod.ru -tiprv.com -tips-and-guides.com -tipsb.com -tipsbankforyou.com -tipsfortechteams.email -tipsochtricks.site -tipsonhowtogetridofacne.com -tipsshortsleeve.com -tipsvk.best -tiptopik.tech -tiptrip.ru -tiqmlv.ru -tir-na-nog.su -tiramisumail.xyz -tirbom.ru -tiredbr.xyz -tiredbri.xyz -tireddo.buzz -tiredfl.xyz -tiredflo.xyz -tiredfloo.xyz -tirednoble.com -tireesc.shop -tiresandmorekent.com -tiresflint.com -tirestdi.cf -tirestdi.gq -tirestdi.ml -tiretaine.site -tirgiji.com -tiriacgroup.com -tiriacmanagement.com -tirisfal-project.org -tirixix.pl -tiroshops.site -tirreno.cf -tirreno.ga -tirreno.gq -tirreno.ml -tirreno.tk -tirsmail.info -tirthajatra.com -tirupatitemple.net -tisokoljert.tk -tisolethat.com -tisrendvi.cf -tisrendvi.ml -tisrendvi.tk -tissernet.com -tisubgi.cf -tisubgi.gq -tisubgi.ml -tisubgi.tk -tit8282.com -titafeminina.com -titan-host.cf -titan-host.ga -titan-host.gq -titan-host.ml -titan-host.tk -titan-original.ru -titan4d.com -titan4d.net -titanbrojart.ru -titandansatislar.xyz -titandansatislar1.xyz -titanemail.info -titangelsrbija.com -titanit.de -titanitelife.com -titaniumbrush.biz -titaniumbrush.net -titaniumbrush.org -titaniumbrush.us -titaniumbrushes.net -titaniumbrushes.us -titanmine.ru -titanopto.com -titantytcrownt.ru -titas.cf -titaskotom.cf -titaskotom.ga -titaskotom.gq -titaskotom.ml -titaskotom.tk -titaspaharpur.cf -titaspaharpur.ga -titaspaharpur.gq -titaspaharpur.ml -titaspaharpur.tk -titaspaharpur1.cf -titaspaharpur1.ga -titaspaharpur1.gq -titaspaharpur1.ml -titaspaharpur1.tk -titaspaharpur2.cf -titaspaharpur2.ga -titaspaharpur2.gq -titaspaharpur2.ml -titaspaharpur2.tk -titaspaharpur3.cf -titaspaharpur3.ga -titaspaharpur3.gq -titaspaharpur3.ml -titaspaharpur3.tk -titaspaharpur4.cf -titaspaharpur4.ga -titaspaharpur4.gq -titaspaharpur4.ml -titaspaharpur4.tk -titaspaharpur5.cf -titaspaharpur5.ga -titaspaharpur5.gq -titaspaharpur5.ml -titaspaharpur5.tk -titietnana.com -titipoker.net -titipoker.org -titkiprokla.tk -title1program.com -title1reading.com -title1readingprogram.com -title1readingresources.com -titleblee.buzz -titlehumo.site -titlemora.space -titlermedicin.website -titmail.com -titoronde.ru -titrevy.tech -tittbit.in -tiuyretgr.gq -tiv.cc -tiverton-town-council.org -tivowxl7nohtdkoza.cf -tivowxl7nohtdkoza.ga -tivowxl7nohtdkoza.gq -tivowxl7nohtdkoza.ml -tivowxl7nohtdkoza.tk -tix.onl -tixanovski.com -tixdiscounter.com -tixonicindia.icu -tiyanxing.com -tiyu.asia -tiyucp.net -tiyx.party -tiyx.trade -tizanidinorifarm.website -tizanwarm.gq -tizi.com -tj2-sygw.com -tj22.net -tj28.app -tj2851.com -tj2852.com -tj4.app -tj5.app -tj6.app -tj7.app -tjampoer.events -tjbma5.us -tjbpoker.vip -tjbwgyxx.com -tjcitt.icu -tjcy.us -tjd93.space -tjdh.xyz -tjebhyy.com -tjjlkctec.pl -tjkjzjel.shop -tjmn.cc -tjnf.cc -tjthklnbx.shop -tjtnbyy.com -tjuew56d0xqmt.cf -tjuew56d0xqmt.ga -tjuew56d0xqmt.gq -tjuew56d0xqmt.ml -tjuew56d0xqmt.tk -tjuln.com -tjxiyu.com -tjyqw.info -tjzbd.com -tk-intercom.ru -tk-poker.com -tk218.com -tk3od4c3sr1feq.cf -tk3od4c3sr1feq.ga -tk3od4c3sr1feq.gq -tk3od4c3sr1feq.ml -tk3od4c3sr1feq.tk -tk4535z.pl -tk4ck8.us -tk8phblcr2ct0ktmk3.ga -tk8phblcr2ct0ktmk3.gq -tk8phblcr2ct0ktmk3.ml -tk8phblcr2ct0ktmk3.tk -tkaniny.com -tkaninymaxwell.pl -tkbmwr.fun -tkbnw.info -tkcmbp.fun -tkcpw.info -tkdirvine.com -tkdmzs.fun -tkdtustin.com -tkeiyaku.cf -tkeycoin.art -tkeycoin.fun -tkgmmj.fun -tkhaetgsf.pl -tkhmlp.fun -tkijuu.tokyo -tkitc.de -tkitchen.online -tkjmsf.fun -tkjngulik.com -tkkbw.info -tkmy88m.com -tknife.online -tknmqb.fun -tknmwf.fun -tko-ply.online -tko.co.kr -tko.kr -tkos.online -tkpard90.com -tkpgy.live -tkpmxt.fun -tkrofg.us -tkroycap.tk -tktkdata.com -tktoursamui.xyz -tkvf9p.us -tkwnht.com -tkxmll.fun -tkyoko8787.online -tkzmcx.fun -tkzumbsbottzmnr.cf -tkzumbsbottzmnr.ga -tkzumbsbottzmnr.gq -tkzumbsbottzmnr.ml -tkzumbsbottzmnr.tk -tl.community -tl8dlokbouj8s.cf -tl8dlokbouj8s.gq -tl8dlokbouj8s.ml -tl8dlokbouj8s.tk -tlachustpe.cf -tlachustpe.ga -tlachustpe.gq -tlachustpe.ml -tlachustpe.tk -tlaun.ru -tlccafeteriawexford.com -tlcglobalhealth.com -tlcministries.info -tldoe8nil4tbq.cf -tldoe8nil4tbq.ga -tldoe8nil4tbq.gq -tldoe8nil4tbq.ml -tldoe8nil4tbq.tk -tleecinnue.ga -tleecinnue.gq -tleecinnue.tk -tlgpwzmqe.pl -tlgr.live -tlgrcn.live -tlhjw.info -tlichemras.tk -tliel.live -tlifestore.website -tlpn.org -tlraob.tokyo -tls.cloudns.asia -tlumaczeniawaw.com.pl -tlv70.us -tlvl8l66amwbe6.cf -tlvl8l66amwbe6.ga -tlvl8l66amwbe6.gq -tlvl8l66amwbe6.ml -tlvl8l66amwbe6.tk -tlvm.us -tlvsmbdy.cf -tlvsmbdy.ga -tlvsmbdy.gq -tlvsmbdy.ml -tlvsmbdy.tk -tlw-cz.info -tm-organicfood.ru -tm-ramana.ru -tm.in-ulm.de -tm.slsrs.ru -tm.tosunkaya.com -tm2mail.com -tm3ful.com -tm42.gq -tm95xeijmzoxiul.cf -tm95xeijmzoxiul.ga -tm95xeijmzoxiul.gq -tm95xeijmzoxiul.ml -tm95xeijmzoxiul.tk -tmail.com -tmail.org -tmail.run -tmail.ws -tmail1.com -tmail1.tk -tmail15.com -tmail2.com -tmail2.tk -tmail3.tk -tmail4.tk -tmail5.tk -tmail7.com -tmailavi.ml -tmailcloud.com -tmailcloud.net -tmaildir.com -tmailer.org -tmailffrt.com -tmailhost.com -tmailinator.com -tmailpro.net -tmails.net -tmails.top -tmailservices.com -tmajre.com -tmamidwest.net -tmatthew.net -tmauv.com -tmavfitness.com -tmaxxpro.com -tmbox.xyz -tmcburger.com -tmethicac.cf -tmethicac.gq -tmethicac.ml -tmethicac.tk -tmhit.ru -tmhound.com -tmhsale.top -tmin360.com -tmj1lmtkc5lydcl.xyz -tmljw.info -tmlwell.org -tmlzsehta.shop -tmnuuq6.mil.pl -tmnxw.info -tmo.kr -tmpbox.net -tmpemails.com -tmpeml.info -tmpjr.me -tmpmail.net -tmpmail.org -tmpromo.online -tmtfdpxpmm12ehv0e.cf -tmtfdpxpmm12ehv0e.ga -tmtfdpxpmm12ehv0e.gq -tmtfdpxpmm12ehv0e.ml -tmtfdpxpmm12ehv0e.tk -tmtrackr.com -tmwlad.info -tmzh8pcp.agro.pl -tmzkvqam.shop -tnblackrock.com -tnblw.info -tncitsolutions.com -tnd168.me -tnhalfpricedlistings.com -tnhalfpricelisting.com -tnhalfpricelistings.com -tnhqwj.xyz -tningedi.cf -tningedi.ga -tningedi.gq -tningedi.ml -tningedi.tk -tnkf8.us -tnmsabac.website -tnnairmaxpasch.com -tnnsw.info -tnoz1n.us -tnpepsico.com -tnrbw.info -tnrequinacheter.com -tnrequinboutinpascheresfrance.com -tnrequinpascherboutiquenlignefr.com -tnrequinpaschertnfr.com -tnrequinpaschertnfrance.com -tnrequinstocker.com -tnrwj1.site -tnt.land -tntitans.club -tntrealestates.com -tnuxqbra.shop -tnvj6r.us -tnvrtqjhqvbwcr3u91.cf -tnvrtqjhqvbwcr3u91.ga -tnvrtqjhqvbwcr3u91.gq -tnvrtqjhqvbwcr3u91.ml -tnvrtqjhqvbwcr3u91.tk -tnwvhaiqd.pl -to-boys.com -to-iran.info -to-rena.com -to-sale.online -to-team7.com -to77rosreestr.ru -to79.xyz -toal.com -toana.com -toaraichee.cf -toaraichee.ga -toaraichee.gq -toaraichee.ml -toaraichee.tk -toastcrow.fun -toastdram.icu -toastmatrix.com -toastsuffer.xyz -toastsum.com -toasttrain.email -toastwid.xyz -toastwide.xyz -tobaccodebate.com -tobeate.cf -tobeate.ga -tobeate.gq -tobeate.ml -tobeblossom.store -tobeluckys.com -tobinproperties.com -toblessyou.com -tobobet.mobi -tobooradys.website -tobuso.com -toby.click -tobycarveryvouchers.com -tobymstudio.com -tobynealcounseling.com -tobyye.com -tocabsui.cf -tocabsui.ga -tocabsui.gq -tocabsui.tk -tocheif.com -tochintper.cf -tochintper.ga -tochintper.gq -tochintper.ml -toconnell.org -tocufull.cf -tocufull.ga -tocufull.gq -tocufull.ml -tocz.us -tod2020.xyz -todanpho.com -today-amigurumi.site -today-payment.com -today24bet.com -todayamazonquiz.com -todayamigurumi.website -todaybestnovadeals.club -todayemail.ga -todaygroup.us -todayhistory.org -todayinstantpaydayloans.co.uk -todayjustsport.online -todaymednews.site -todaynew.ru -todaynewcoplictation.site -todayprizes2.life -todays-web-deal.com -todayspennystocks.com -todaysvisionlascolinas.com -todaytaxis.info -todaywebz.com -toddbach.com -toddnettleton.net -toddsbighug.com -toddwebbcpa.com -toditokard.pw -todofutbol.info -todogestorias.es -todongromau.com -todoprestamos.com -todoprestamos.es -todslonesaddles.com -toenailmail.info -toerkmail.com -toerkmail.net -togame.ru -togblog.biz -togel.news -togel.one -togel00.com -togelapi.org -togelbet8887.com -togelbet8888.info -togelcyber.com -togelfortuna.club -togelhin.xyz -togelhin88.com -togelkami.xyz -togelkembar.net -togelmain.net -togelnusa.live -togelonline1.com -togelonline88.org -togelounge99.asia -togelpedia.bar -togelprediksi.com -togelsgpid.site -togeltotojitu.com -togeltotojitu.info -togetaloan.co.uk -togetheragain.org.ua -togetherwethrive.us -togirls.site -toglobalist.org -tohetheragain.org.ua -tohive.org -tohurt.me -toi.kr -toiantoan.net -toictp.us -toiea.com -toihocseo.com -toihocweb.best -toikehos.cf -toikehos.ga -toikehos.ml -toikehos.tk -toiletries1.com -toin3535.com -tojbet.com -tokai.tk -tokatgop.com -tokatgop.xyz -tokatgunestv.xyz -tokatinadresi.com -tokatta.org -tokbeat.com -toke88.co -tokeishops.jp -tokem.co -token-improve.host -token-painted.website -tokencoach.com -tokencoach.net -tokenized-equity.com -tokenized-equity.info -tokenized-equity.net -tokenized-equity.org -tokenized-shares.com -tokenized-shares.info -tokenized-shares.org -tokenizedequity.org -tokenizedshares.org -tokenkeno.com -tokenmail.de -tokenvesto.com -tokenvesto.net -toker.city -toker.shop -tokeracademy.com -tokeradvertising.com -tokercollege.com -tokerdolls.com -tokerdude.com -tokerholding.company -tokermap.com -tokermuseum.com -tokernetwork.com -tokeroutfitters.com -tokerparties.com -tokerphotos.com -tokerpipes.com -tokerplanet.com -tokerrecipes.com -tokerreviews.com -tokertrail.com -tokertribe.com -tokkabanshop.com -toko3d.com -tokoarmys.info -tokofavorit.com -tokoinduk.com -tokojudi.best -tokoperfume.com -tokopremium.co -tokot.ru -tokuriders.club -tokyotogel.online -tol.net -tol.ooo -tolasoft.net -tolatech.com -tolbet23.com -tolbet4.com -toldhistory.xyz -toldtec.com -toldtech.net -toldtech.org -toledoarearealtor.com -toledocare.com -toleme.gq -tolkuchi-rinok.ru -tollfreehomehotline.com -tolls.com -tollsjoforsamling.online -tologvo.works -tolongsaya.me -tols-ex.ru -tolteca-camden-street.com -tolufan.ru -tom083.com -tomacupon.com -tomad.ru -tomageek.com -tomali.cn -tomasaro.com -tomatillosatinal.xyz -tomatoeshb.com -tomatonn.com -tomatoon.net -tomba.site -tombalanet.com -tomballguns.com -tombe-juive.com -tombolatica.org -tomcail.com -tomchos.fun -tomehi.com -tomejl.pl -tomeshoes.online -tomevault.com -tomevault.net -tomevault.org -tomjoneswatches.net -tommer.store -tommoore.net -tommymorris.com -tommymylife.com -tommynilssonbil.online -tommyphomeimprovements.com -tomnaza.site -tomogavk.online -tomoworks.tech -tomris2.xyz -tomsawyer.camp -tomsemmmai.company -tomshirts.com -tomshoesonline.net -tomshoesonlinestore.com -tomshoesoutletonline.net -tomshoesoutletus.com -tomsoutletsalezt.com -tomsoutletw.com -tomsoutletzt.com -tomsshoeoutletzt.com -tomsshoesonline4.com -tomsshoesonsale4.com -tomsshoesonsale7.com -tomsshoesoutlet2u.com -tomsshoesoutletssales.com -tomthen.org.ua -tomx.de -tomymailpost.com -ton-platform.club -tonall.com -tonaroca.com -tondar-shop.xyz -tondar-vpn.xyz -tondar-vpns.xyz -tondarvpn-shop.xyz -tonehy.info -tonermix.ru -tonghopnhadat.biz -tonghushi.club -tonicronk.com -tonigcrash.club -tonightsbang.com -toningtheflab.com -tonirovkaclub.ru -tonne.to -tonneau-covers-4you.com -tonngokhong.vn -tonno.cf -tonno.gq -tonno.ml -tonno.tk -tonolon.cf -tonolon.gq -tonolon.ml -tonolon.tk -tonpetitlait.com -tonpetitmec.com -tonplancul-page.com -tony-casino.com -tonyandtinosmacroom.com -tonyandtinostakeaway.com -tonyclass.com -tonycuffe.com -tonymanso.com -tonyplace.com -tonys-takeaway-carlow.com -tonytinostakeaway.com -too879many.info -toodagos.cf -toodagos.ga -toodagos.gq -toodagos.tk -tooeasybuy.ru -toogether.digital -toogrammys.online -tookhub.com -tooktook.site -tool-9-you.com -tool.pp.ua -toolreviews.tech -toolsfly.com -toolsshop.futbol -tooltackle.ru -toolyoareboyy.com -toomail.biz -toomail.net -toomtam.com -toomuchabout.com -toon.ml -toone.best -toonfirm.com -toonlawtulsa.com -toonmoa48.com -toonusfit.space -toooe.xyz -toootook.shop -toopitoo.com -tooslowtodoanything.com -toothandmail.com -toothdecay.website -toothfqualmo.cf -toothfqualmo.ga -toothfqualmo.gq -toothtolerance.com -tootrendavto.ru -tooxet.ru -top-annuaire.com -top-elka.ru -top-email.org -top-freza.ru -top-help.ru -top-life-insurance-today.live -top-magazine.site -top-mailer.net -top-mails.net -top-med.biz -top-onlinecasino.info -top-opros.best -top-seller15.ru -top-seller24.ru -top-setbpp.ru -top-sh0ps.fun -top-shop-tovar.ru -top-shop24info.ru -top-shopz.online -top-start.ru -top-store11.ru -top-telechargement-sites.com -top-trends.su -top-trends1.ru -top-veneers.ru -top021.site -top10-voto.com -top100mail.com -top101.de -top10cpm.com -top10extreme.com -top10movies.info -top1mail.ir -top1mail.ru -top1post.ru -top365.su -top3chwilowki.pl -top4bum.com -top4butt.com -top4th.in -top50.cd -top5heelinsertscom.com -top5news.fun -top5rating.org -top5znakomstv.space -top777.site -top9appz.info -topairdrops.site -topalfajor.buzz -topamulet.ru -topand.best -topar.pro -toparama.com -topaz.studio -topazpro.xyz -topbabygirl.com -topbagsforsale.info -topbahissiteleri.com -topbak.ru -topbananamarketing.co.uk -topbigwin777online.space -topbooksites.com -topboombeet.xyz -topbuyer.xyz -topbuysteroids.com -topbuysteroids365.com -topbuzz-tamtam.xyz -topbwin.com -topcarlawyer.com -topcash18indo.xyz -topchik.xyz -topchikbestsales.fun -topchiknavse.fun -topchshopl-anas.space -topclassemail.online -topcleaninghk.com -topcoin.business -topcuponesdescuento.com -topdait.icu -topdcevents.com -topdeadcentermusic.com -topdealoffering.com -topdepcasinos.ru -topdiane35.pl -topdope.site -topdrivers.top -topdropcase.ru -topechelonsoftware.com -topeducationvn.cf -topeducationvn.ga -topeducationvn.gq -topeducationvn.ml -topeducationvn.tk -topemail24.info -toperhophy.xyz -topessayunreal.com -topfast-supernet.fun -topfivestars.fun -topflightdesign.com -topgads.com -topgif.ru -topgjali.cf -topgjali.ga -topgjali.gq -topgjali.ml -tophandbagsbrands.info -tophdmovies.biz -topheadphonesforsale.com -tophealthinsuranceproviders.com -tophit-mzg.ru -tophouseforsale.com -tophyhar.cf -tophyhar.ga -tophyhar.gq -tophyhar.ml -tophyhar.tk -topiasolutions.net -topiasolutions.org -topic-books.com -topicalbionom.com -topicalspectrumhemp.com -topiemas.com -topigrok-online.ru -topikt.com -topinbox.info -topinfomed.ru -topinrock.cf -topiphone.icu -topiratu.info -topitiji.site -topitrend.com -topjobsbook.com -topjuju.com -topkek.pro -topladygirl.com -toplampy.online -toplessbucksbabes.us -topline.bet -toplinewindow.com -toplinktap.ru -toplistcasinovideo.tech -toplistninja.com -topmaidanapinola.com -topmail.bid -topmail.net -topmail.org -topmail.ws -topmail1.net -topmail2.com -topmail2.net -topmail24.ru -topmail4u.eu -topmailer.info -topmailings.com -topmailmantra.net -topmall.com -topmall.info -topmall.org -topmarketing2020.space -topmart24.ru -topmoviesonline.co -topmumbaiproperties.com -topmusicas.club -topmusiklist.com -topnewest.com -topnewride-now.sale -topnewswaka.site -topnewz.net -topnnov.ru -topnolan.com -topnovosti-russia.ru -topofertasdehoy.com -topofthehilldining.com -toponda.com -toponline.su -toponlinemba.org -toporra.cf -toporra.ga -toporra.ml -toporra.tk -toposterclippers.com -topovtovar.space -topp10topp.ru -toppartners.cf -toppartners.ga -toppartners.gq -toppartners.ml -toppartners.tk -toppcuttaz.net -toppeak.asia -topphouse.ru -toppieter.com -topplase-es.site -topplayers.fun -toppriceshp-rp.space -topqualityjewelry.info -topranklist.de -topread.fun -toprecipecenter.com -topretirements.org -topricedublin3.com -toprucasino2018.ru -toprucasinos.ru -toprumours.com -topsale.uno -topsalebest-anst.space -topsearchnet.com -topsecretvn.cf -topsecretvn.ga -topsecretvn.gq -topsecretvn.ml -topsecretvn.tk -topsellingtools.com -topseos.com -topseptik.site -topseriestreaming.site -topseriestreaming.xyz -topshoemall.org -topshop-saleprunik.space -topshop123.ru -topshoppingmalls.info -topskidki.fun -topskin.online -topslrcameras.com -topsml4you.xyz -topsourcemedia5.info -topspizza-crumlin.com -topspizzaandfriedchicken.com -topstorewearing.com -topsuccsesspeople.site -topsuccsesspeople.space -topsuccsesspeople.website -topswisswatch.ru -topsydodo.com -toptalentsearchexperts.com -toptalentsearchexperts.xyz -topteengirl.com -toptenformen.com -toptenplaces.net -toptextloans.co.uk -topthailandsport.com -topthingsstore.info -toptopmail.cf -toptopmail.ga -toptopmail.gq -toptopmail.ml -toptrainingandgym.com -toptransfer.cf -toptransfer.ga -toptransfer.gq -toptransfer.ml -toptransfer.tk -toptravelbg.pl -toptrend777.ru -toptrendnews.net -topusaclassifieds.com -toputaer.ga -topvacationhomes.rentals -topvideogames.ninja -topvidnow.com -topviecquanly.com -topvpnfree.ooo -topwebinfos.info -topwebplacement.com -topwebresources.com -topwm.org -topzpost.com -toqire.info -toqpoj.com -toqza5.com -tor13.site -tora1.info -toracw.com -torahcenter-chabad.org -torange-fr.com -torawa.info -torbecouples.org -torbenetwork.net -torbix.site -torbrowser-rus.ru -torch.space -torch.yi.org -tordamyco.xyz -toreandrebalic.com -torg-06.ru -torgorama.com -torgoviy-dom.com -torgovyicenter.ru -tori.ru -torickcryp.gq -torickcryp.tk -torm.xyz -tormail.net -tormail.org -tornadobet11.net -tornadobet365.net -tornbanner.com -torneodeljoropo.com -torneomail.ga -tornovi.net -torontogooseoutlet.com -torontoincometax.com -torontopropertyhousehunters.com -toropic.site -torquatoasociados.com -torrent0.com -torrent9-fr.site -torrentbebe10.com -torrentcache.com -torrentgirl.shop -torrenthaja.shop -torrentinos.net -torrentjoa.shop -torrentmoa.shop -torrentmovies.biz -torrentpc.org -torrentqq33.com -torrentqq36.com -torrentqq37.com -torrentqq38.com -torrents.click -torrents73.ru -torrents9.red -torrents9.rip -torrentshow.net -torrenttool.com -torrentupload.com -torrentwiki.com -torrenty.plus -torressecuritygroup.com -torrhost.com -torrid.ga -torsighpost.cf -torsighpost.gq -torsighpost.ml -torsighpost.tk -tort64.ru -tortconli.ga -tortconli.gq -tortconli.ml -tortconli.tk -tortilla.xyz -torvice.cf -torvice.ga -torvice.gq -torvice.ml -torvice.tk -torwotool.com -torwotools.com -tory-burch-brand.com -toryburch-outletsonline.us -toryburchjanpanzt.com -toryburchjapaneses.com -toryburchjapans.com -tosciencebible.ru -toshiba-premium.online -toshibaqq.com -toshine.org -tosiga.info -tosilday.gq -tosilday.ml -tosilday.tk -tosmomu.ml -tosmomu.tk -tosms.ru -tosonyhari.online -toss.pw -tostiepo.cf -tostiepo.ga -tostiepo.ml -tostiepo.tk -tosun.ml -tosunkaya.com -total-research.com -total-sportek.net -totalcoach.net -totalcoders.com -totalfanhub.com -totalhealthy.fun -totalhentai.net -totalistasyonlari.com -totalizer311wf.xyz -totalkw.com -totallynotfake.net -totallypianos.com -totalmanpower.kiwi -totalnetve.ml -totalpoolservice.com -totalreconautocenter.com -totalsolv.icu -totalvista.com -totalwellnesswi.com -totalwirelessrefill.com -totebagimprints.com -totelouisvuittonshops.com -totemarchers.com -toteshops.com -totesmail.com -tothelab.com -tothesis.com -totnet.xyz -toto88.bet -toto88.org -toto96.com -totoabadi2.net -totoan.info -totobaksa.website -totobet.club -totobo200.com -totoboonline8.com -totobt22.com -totobt23.com -totochi.online -totochi.org -totochi.site -totochi.space -totochi.xyz -totodinasti.info -totojek.tech -totolotoki.pl -totoson.com -totosta.com -tototaman.com -tototogel4d.xyz -totovip.online -totse1voqoqoad.cf -totse1voqoqoad.ga -totse1voqoqoad.gq -totse1voqoqoad.ml -totse1voqoqoad.tk -totty.ru -toubro.com -toucai131.com -toucai151.com -touchain.net -touchain.one -touchchas.com -touchhcs.com -touchsalabai.org -touchsout.xyz -touchtosuccess.com -toudiswe.ga -toudiswe.gq -toudiswe.tk -tough.cf -toughblarbarw.cf -toughblarbarw.ml -toughcov.icu -toughness.org -touoejiz.pl -touranya.com -tourbalitravel.com -tourcatalyst.com -tourdepeaks.com -tourdulichviet.net -tourerr.space -tourism-life.ru -tourism-live.ru -tourism-ok.ru -tourism.expert -tourism.support -tourismsilverstar.org -tourist-live.ru -tourist61.website -touristevent.com -touristguidenepal.com -touristinfo.network -touristinfo.news -touristoz.ru -touristpower.ru -touristravel.ru -touristry.cd -tourmalinehairdryerz.com -tournament-challenge.com -tournament62.website -tours-cappadocia.org -tours-turizm.ru -toursyogas.info -tourtripbali.com -touseshop.com -toushizemi.com -touziweilai.net -tovar-off.ru -tovar-tyt.ru -tovar-zdes.ru -tovarmagaz.shop -tovarsales70.ru -tovarshopmoscow.ru -tovartovar.site -tovarvtope.site -tovemen.cf -tovemen.ml -tovemen.tk -tovhtjd2lcp41mxs2.cf -tovhtjd2lcp41mxs2.ga -tovhtjd2lcp41mxs2.gq -tovhtjd2lcp41mxs2.ml -tovhtjd2lcp41mxs2.tk -toviell.net -tovip.net -tow23g.us -towardstarsgame.com -towb.cf -towb.ga -towb.gq -towb.ml -towb.tk -towerdom.space -towergames.ru -towerlifeglobal.com -towfood.com -towheeci.cf -towheeci.ml -towheeci.tk -towing-services-sandiego.info -towistand.site -towndewerap23.eu -townehousediner.com -townoflowrys.com -townofstonington.com -townomics.com -townvillage.su -towsempro.cf -towsempro.gq -towsempro.ml -towsempro.tk -towsonshowerglass.com -towtravels.info -toxini.ru -toxtalk.org -toy-coupons.org -toy-guitars.com -toy-me.ru -toy-tech.ru -toy68n55b5o8neze.cf -toy68n55b5o8neze.ga -toy68n55b5o8neze.gq -toy68n55b5o8neze.ml -toy68n55b5o8neze.tk -toyebet196.com -toygunmarch.com -toyhacking.org -toyhiosl.com -toyiosk.gr -toymalling.site -toyojitu.net -toyoonies.ru -toyota-avalon.club -toyota-chr.club -toyota-clubs.ru -toyota-prius.club -toyota-rav-4.cf -toyota-rav-4.ga -toyota-rav-4.gq -toyota-rav-4.ml -toyota-rav-4.tk -toyota-rav4.cf -toyota-rav4.ga -toyota-rav4.gq -toyota-rav4.ml -toyota-rav4.tk -toyota-sequoia.club -toyota-sequoia.com -toyota-yaris.tk -toyota.cellica.com -toyota123.xyz -toyotacelica.com -toyotacorolla.club -toyotalife22.org -toyotamanualspdf.com -toyotamisiones.com -toyotapartsabq.com -toyotapartshub.com -toyotataganka.ru -toyotavlzh.com -toys-r-us-coupon-codes.com -toys.ie -toysfortots2007.com -toysgifts.info -toysikio.gr -toysshop.futbol -toywoz.com -toyzshop.net -toyzzclubkart.com -toyzzshop.mobi -toyzzshop.ru -tozerspeaks.com -tozmaskesi.com -tozustore.site -tp-qa-mail.com -tp54lxfshhwik5xuam.cf -tp54lxfshhwik5xuam.ga -tp54lxfshhwik5xuam.gq -tp54lxfshhwik5xuam.ml -tp54lxfshhwik5xuam.tk -tpaglucerne.dnset.com -tpahometeam.org -tpapa.ooo -tpass.xyz -tpb-mirror.tk -tpbank.gq -tpbonion.win -tpcebm.tokyo -tpcom.store -tpfqxbot4qrtiv9h.cf -tpfqxbot4qrtiv9h.ga -tpfqxbot4qrtiv9h.gq -tpfqxbot4qrtiv9h.ml -tpfqxbot4qrtiv9h.tk -tpfxnr.com -tpg24.com -tph.red -tphqmdtqustuzptqu.ru -tpib5y.us -tpiecer.best -tpk.community -tplccioef.shop -tplqbom.com -tpmail.top -tpnyx.fun -tpobaba.com -tpper.shop -tpq1.com -tpqmanbetx.com -tprtm.shop -tprtmwxh.shop -tprugu.us -tpsdq0kdwnnk5qhsh.ml -tpsdq0kdwnnk5qhsh.tk -tpsoftwaresolutions.com -tpte.org -tptxiz.us -tpwvawf.space -tpxnu1s3lotyaj6.xyz -tpxvre.us -tpyy57aq.pl -tq-sale.ru -tq3.pl -tq84vt9teyh.cf -tq84vt9teyh.ga -tq84vt9teyh.gq -tq84vt9teyh.ml -tq84vt9teyh.tk -tqbe1b.us -tqc-sheen.com -tql4swk9wqhqg.gq -tqmfk.live -tqoai.com -tqophzxzixlxf3uq0i.cf -tqophzxzixlxf3uq0i.ga -tqophzxzixlxf3uq0i.gq -tqophzxzixlxf3uq0i.ml -tqophzxzixlxf3uq0i.tk -tqosi.com -tqpxdj.us -tqqun.com -tqwagwknnm.pl -tqyjr2.com -tr-1s.xyz -tr-2s.xyz -tr-3s.xyz -tr-4s.xyz -tr-5s.xyz -tr-bet.com -tr2k.cf -tr2k.ga -tr2k.gq -tr2k.ml -tr2k.tk -tr32qweq.com -tr3s.tech -traanhosting.shop -traapn.rest -trabajan2nos.com -trabalharnashorasvagas.com -trabesp.com -trabzonisilanlari.xyz -trabzonlularotomotiv.xyz -trabzonpostasi.xyz -tracanmi.cf -tracanmi.ga -tracanmi.ml -tracciabi.li -tracemy.net -tracenstar.cf -tracenstar.ga -tracenstar.gq -tracenstar.ml -tracenstar.tk -traceyhughesbutters.com -traceyrumsey.com -tracicroy.info -tracimna.cf -tracimna.ga -tracimna.gq -tracimna.ml -tracimna.tk -track-custom.com -trackarry.com -trackback.link -trackbillion.live -trackdriver.com -tracker-fb.online -tracker.peacled.xyz -tracking.army -tracking.democrat -tracking.navy -tracking.republican -trackinghub.org -tracklady.club -trackmenow.ru -trackmo.icu -trackmusic.info -trackmyflightnow.com -trackpai.fun -trackprov.icu -tracksalon.club -tracksame.com -tracksnac.xyz -trackspor.us -tracktoolbox.com -trackwatch.ru -trackyourcraft.com -traclecfa.cf -traclecfa.gq -traclecfa.ml -traclecfa.tk -tracoutpa.tk -tracsisdata.com -tracsistads.com -tracsistrafficsurveys.com -tractcoun.com -tractionbusinessblog.com -tractitto.cf -tractitto.ga -tractitto.gq -tractitto.ml -tractitto.tk -tractors24.com -tractspa.host -tractswar.com -tractswor.site -tradaswacbo.eu -trade-finance-broker.org -trade-magazine-product.ru -trade-sale-info.ru -tradeatf.mobi -tradebea.us -tradebitrage.com -tradecnyo.cf -tradecnyo.ga -tradecnyo.gq -tradecnyo.ml -tradecnyo.tk -tradecomnn.ru -tradeelb.us -tradefinanceagent.org -tradefinancebroker.org -tradefinancedealer.org -tradeinvestmentbroker.org -tradeivo.icu -tradelix.club -trader-en-ligne.net -trader-expert.ru -trader-test.site -tradercomputersspot.club -traderlink.adult -tradermail.info -tradersinsight.com -tradersoffortune.com -tradertest.site -tradeseze.com -tradeskins.ru -tradesl.xyz -tradesna.buzz -tradespo.xyz -tradeswallet.online -tradewithgreg.com -tradewithrichard.com -tradex.gb -tradexan.cf -tradexan.ga -tradexan.gq -tradexan.ml -tradexan.tk -tradexvirtualevents.app -tradiated.com -trading-courses.org -trading.social -tradingedu.site -tradingtourney.com -traditionalimpacts.com -traducatoriromana.com -traducereenglezaromana.com -tradunen.ml -traff-flay.ru -traff1c.xyz -traffic-inc.biz -traffic-make.ru -trafficmanager.cloud -trafficmanager.link -trafficreviews.org -traffictags.com -traffshop.store -trafik.co.pl -trafikcafeer.online -traforetto.com -tragaver.ga -tragedyontheconception.com -tragop.shop -trah.fun -trailerplus.shop -trailhero.com -trailmail.org -trailockusa.com -trailslee.com -trailwor.xyz -trailworl.xyz -trainercomm.com -training-radiopharmacy.com -trainingandnutrtiontruth.com -trainingcamera.com -trainingpedia.co.id -trainingpedia.online -trainingpracticum.ru -trainingstandardsinternational.com -trainingvideos.xyz -traitclim.us -trak4mandela.africa -trakable.com -traklabs.tech -trakopti.com -trakpomo.com -traksta.com -traksx.website -trakyanetiletisim.xyz -trakyauniversiteli.xyz -tralalajos.ga -tralalajos.gq -tralalajos.ml -tralalajos.tk -tralee-tandoori.com -trallal.com -tramecpolska.com.pl -tramepel.cf -tramepel.ga -tramepel.gq -tramepel.ml -tramepel.tk -tramold.pw -tramplinp.pro -tranbo.site -tranceversal.com -trands-shoes.ru -tranghuudongchieu.ml -trangmuon.com -tranhelan.ga -tranlamanh.ml -tranmailinh.ga -tranminhphuong.ga -tranpay.xyz -tranquillpoet.com -trans2019.website -transactionscenter1.com -transactionshub2.com -transcience.org -transcript-xpress.com -transend.click -transfaraga.co.in -transfergoods.com -transferinn.com -transformationalsurgery.com -transformationministry.org -transformers-zone.ru -transformicexd.com -transformingz.club -transformyourelationshipsnow.com -transgenicorganism.com -transgressiveart.com -transistore.co -transit-loot.xyz -transitionsllc.com -transitionsoftime.com -transitious.org -transitmebel.ru -translationcenter-annabi.net -translationserviceonline.com -translity.ru -translyhhh.space -transmatter.xyz -transmissioncleaner.com -transmissionmechanism.info -transmute.us -transparenzinitiative.jetzt -transphaeton.com -transportationfreightbroker.com -transportationglossary.com -transporterdispatch.com -transporteszuniga.cl -transportpersoane.info -transselfies.com -trantamnhu.ga -trantrungdan.ga -tranyenvy.website -tranz-lotin.xyz -traoluu.com -trap-mail.de -trapassa.cf -trapassa.ga -trapassa.gq -trapassa.ml -trapassa.tk -trapholdem.com -traphouse.party -traplogce.ga -traplogce.gq -traplogce.tk -trasatad.cf -trasatad.ga -trasatad.gq -trasatad.ml -trasatad.tk -trash-amil.com -trash-mail.at -trash-mail.cf -trash-mail.com -trash-mail.de -trash-mail.ga -trash-mail.gq -trash-mail.ml -trash-mail.net -trash-mail.tk -trash-me.com -trash.co.uk -trash2009.com -trash2010.com -trash2011.com -trash247.com -trash4.me -trashbin.cf -trashbox.eu -trashbox.gq -trashcanmail.com -trashdevil.com -trashdevil.de -trashemail.de -trashemails.de -trashimail.de -trashinbox.com -trashinbox.net -trashmail.app -trashmail.at -trashmail.com -trashmail.de -trashmail.ga -trashmail.gq -trashmail.io -trashmail.me -trashmail.net -trashmail.org -trashmail.pw -trashmail.tk -trashmail.ws -trashmailer.com -trashmails.com -trashpandacookbook.com -trashspam.com -trashy.buzz -trashymail.com -trashymail.net -trashyourspouse.com -traslex.com -trast12.icu -trasunram.ga -trasunram.gq -trasunram.ml -trasunram.tk -trasz.com -trata.xyz -tratenun.cf -tratenun.ga -tratenun.gq -tratenun.ml -tratenun.tk -trathofun.ga -trathofun.gq -trathofun.ml -tratratratomatra.com -tratrek.com -tratsch.party -traumatherapycenters.com -traumcapital.us -trav3lers.com -trava-kavkaza.ru -travala10.com -travel-e-store.com -travel-singapore-with-me.com -travel-venezuela.com -traveladaleaders.com -travelagent.cd -travelandtourismmedia.com -travelbenz.com -travelbestbets.club -travelblogplace.com -travelcuckoo.com -traveldesk.com -traveldestination.ru -travelersglossary.com -travelfleet.net -travelforjob.ru -travelhacking4life.com -travelhelps.ru -traveling.monster -travelingcome.com -travelitis.site -travelkot.ru -travellaptop.net -travellenta.ru -travelnewnews.ru -traveloffers.services -travelopedia.site -travelovelinka.club -travelparka.pl -travelpointbuilders.com -travelsaroundasia.com -travelsdoc.ru -travelshotels.org -travelsmith.info -travelsta.tk -travelstep.ru -traveltagged.com -traveltourist.ru -traveltovegasdeals.com -traveltraderating.com -travelua.ru -travelvance.com -traverrateso.host -traverseio.com -travertineinstallersofflorida.com -travforross.ga -travforross.gq -travforross.ml -travforross.tk -travismichaelsart.com -travissharpe.net -travunen.cf -travunen.ga -travunen.gq -travunen.ml -travunen.tk -trawinsurance.com -trayjust.us -trayna.com -traz.cafe -trazimdevojku.in.rs -trazodone247.video -trbbw.info -trbet277.com -trbet350.com -trbet351.com -trbet477.com -trbet591.com -trbvm.com -trbvn.com -trbvo.com -trckonliserv.xyz -trcpin.com -trcprebsw.pl -trdhw.info -treadetaf.cf -treadetaf.ga -treadetaf.gq -treadetaf.ml -treadetaf.tk -treadpoun.icu -treadsl.xyz -treadthi.xyz -treap.net -treasure-inn.com -treasuregem.info -treasureinntakeaway.com -treatalpa.cf -treatalpa.gq -treatalpa.ml -treatalpa.tk -treatbas.xyz -treatent.icu -treathinan.cf -treathinan.ga -treathinan.gq -treatmentans.ru -treatmentcanwork.com -treatmented.info -treatmentsforherpes.com -trebeshina.com -treblebet.com -trebusinde.cf -trebusinde.ml -treckmx.club -tredinghiahs.com -tree-some.com -tree-someclothing.com -treebasics.online -treebate.org -treecaremgmt.com -treecon.pl -treeflat.info -treefreeresumes.com -treehealth.site -treehealth.space -treeheir.com -treehouseburning.com -treepickle.ru -treepnihis.cf -treepnihis.ga -treepnihis.ml -treepnihis.tk -treeptok.space -treeremovalmichigan.com -treeringrecords.com -treesoflifefarm.com -trefoils.site -tregame.site -treguboof.ru -treillage.xyz -trek-planet.com -trekholidays.com -trekwire.com -trelephant.com -trellotalk.com -tremontoworks.info -tremubtib.cf -tremubtib.ga -tremubtib.gq -tremubtib.ml -tremubtib.tk -trenager-ems.ru -trend-maker.ru -trend-on.ru -trend-tovar.ru -trend.lol -trend70.xyz -trendauto.info -trendbet51.com -trendbettor.com -trendblogmag.site -trendblogmag.xyz -trenddriv.xyz -trendfinance.ru -trendforc.site -trendingtopic.cl -trendinx.com -trendmagazin-vash.fun -trendmagazinvsego.fun -trendmarket-top.fun -trendnail.ru -trendoerdmega.space -trends-magaz.site -trends-magazinchik.site -trends-magazinpna.site -trends-magazintop.fun -trends-magazintopchik.site -trends-magaztop.space -trends-market.site -trends-topsales.fun -trendshop95.ru -trendsmagaz-ans.space -trendsmagaz.fun -trendsmagazin-anstm.space -trendsmagazin-funstyle.site -trendsmagazin-kul.fun -trendsmagazin.site -trendsmagazinchiktop.fun -trendsmark-pus.fun -trendsmarketer.site -trendsonnet.com -trendssales.space -trendstalks.fyi -trendstomright.com -trendstovar-rop.space -trendstyle.life -trendsux.com -trendtattoo.ru -trendtivia.com -trendtop-magazin.fun -trendtop-price.fun -trendunas.ru -trendytoday.live -trendyworldinc.com -trenerfitness.ru -trenerov.ru -trengo.me -treniraj.info -trenitalia.gq -trenmayamx.com -trenord.cf -trenord.ga -trenord.gq -trenord.ml -trenord.tk -trentarnettegary.com -trentcasino.com -trentetanlis.com -treon.info -treon.org -trepicas.cf -trepicas.gq -trepicas.tk -trerwe.online -tressicolli.com -trestle.com -tretinoincream-05.com -tretmuhle.com -treudad.ru -trevor.ga -trezvostrus.ru -trf20.online -trg.pw -trgeforcenow.me -trgoals1.club -trgoals3.club -trgovinanaveliko.info -tri-es.ru -tri-katushki.ru -triadelta.com -triadstore.ru -trialaloo.xyz -trialforyou.com -trialmail.de -trialseparationtop.com -triathlongreyhounds.com -triathlonpavese.info -tribalvoices.africa -tribesascendhackdownload.com -tribespring.com -tribonox79llr.tk -tribora.com -tribsearno.cf -tribsearno.ga -tribsearno.gq -tribsearno.ml -tribsearno.tk -tricdistsiher.xyz -triceptacorecs.com -trickbr.icu -trickcate.fun -trickervip.tk -trickmail.net -trickminds.com -trickphotographyreviews.net -tricksho.icu -tricksndtips.com -trickupdaily.com -trickupdaily.net -trickwidth.recipes -tricnabobs.ga -tricnabobs.tk -tricokin.ga -tricokin.gq -tricokin.ml -tricokin.tk -tricoulesmecher.com -tridalinbox.info -triderprez.cf -triderprez.gq -triderprez.tk -triedbook.xyz -trifectafunnel.com -triginar.ml -triginar.tk -triho.ru -triipmiles.info -trikavli.cf -trikavli.gq -trikavli.tk -trilkompas.com -trillianpro.com -trilogyofsecrets.com -trimbakeshwarhotels.com -trimcams.com -trimcutsave.com -trimjoper.cf -trimjoper.ga -trimjoper.gq -trimjoper.ml -trimsj.com -trindepcomm.gq -trindepcomm.ml -trindepcomm.tk -tringle.online -trinidad.nyc -trinilive.com -trinityfellowshipchurches.org -trinityfriends.org -trinityoee.com -triolus.com -trionym.best -triosc.best -tripaat.com -tripanfinance.com -triparish.net -tripecmal.cf -tripecmal.ga -tripecmal.gq -tripecmal.ml -tripecmal.tk -tripinofpa.space -tripjeeps.info -tripledmultiple.com -tripledvaluation.com -triplefiveshanghai.com -triplehosting.com -triplejackpoker.com -triplun.xyz -tripmusic.ru -tripmymetrip.site -tripolis.com -tripolnet.website -tripotcher.cf -tripotcher.ga -tripotcher.ml -trippenadmin.site -triprain.info -trips-shop.ru -tripster.info -tripsterfoodies.net -trisana.net -trisanreeno.club -trishkimbell.com -tristanabestolaf.com -tristanteo.net -tristanwoodworks.com -tristarasdfdk1parse.net -tristarcremation.info -tristeziul.space -triteksolution.info -triton-service.ru -triumphlotto.com -triumphworld.education -triumphworld.school -triumphworldschool.online -triumphworldschools.com -triumphworldschools.online -triunemasteryinstitute.com -trivecgroup.se -trivei.com -trivialization494jg.online -trixtrax1.ru -trixtrux1.ru -triz4you.site -trjnd1.site -trn1023.com -trnyor28-privnrkty.website -trobertqs.com -trobosajalah.ga -trocas.top -trocgoogri.cf -trocgoogri.ga -trocgoogri.ml -trocgoogri.tk -trochoi.asia -trock.cf -trogonidae.best -troikasedro.ml -trojanmail.ga -trol.com -trolamrux.cf -trolamrux.ga -trolamrux.tk -trollandtad.com -trollingforgamers.com -trollphysicscomic.com -trollproject.com -tromba.best -trombonetube.com -trommlergroup.com -trommleronline.com -trommlershop.com -trompetti.net -tromsomar.cf -tromsomar.ga -tromsomar.gq -tromsomar.ml -tromsomar.tk -tron.care -tron.pl -tron2019.ru -troncomail.club -tronmuzika.ru -tronvenho.cf -tronvenho.ga -tronvenho.gq -tronvenho.ml -tronvenho.tk -tronzillion.com -troofer.com -troopflash.email -troops.online -troopsto.press -tropica-asian-cuisine-dalkey.com -tropica-asian-cuisine.com -tropicalbass.info -tropicalnetwork.shop -tropicpvp.ml -trops888.ru -troscx.website -troserat.cf -troserat.gq -troserat.tk -trotebag.com -troubsellpost.cf -troubsellpost.ga -trousdaleassociates.com -trousdalevcholdings.com -trousdaleventurecapitalpartners.com -trouvercolis.com -troxy.us -troyakebabs.com -trrqo.com -trsrrtire.com -trssdgajw.pl -trsvan.com -trt-austria.com -trtd.info -trtkitap.com -truartist360.com -truba-stout.ru -trucchisca.cf -trucchisca.ga -trucchisca.ml -trucchisca.tk -truck-autos-zone.sale -truck-dealersspot.live -truckaccidentlawyerpennsylvania.org -truckcashoffer.com -truckcoa.buzz -truckerlifestyles.com -truckfault.com -truckhob.icu -truckmetalworks.com -trucksupermarket.org -trucktrader.adult -truckwashbrush.com -truckwashbrush.org -truckwashbrush.us -trucmai.cf -trucmai.ml -trucmai.tk -trucosdemagia.online -trucossimssocial.com -trucosymas.com -trucweedra.cf -trucweedra.gq -trucweedra.ml -trucweedra.tk -trud.media -trudoc.net -trudovpravo.xyz -true-portall1.club -true-religion.cc -true-secure00.ru -trueallergytesting.com -trueattractions.com -truebankonline.com -trueblueaff.com -trueblueglobalfranchisinggroup.com -truecoinvalues.com -truecryptorothira.com -truecs.com -trueedhardy.com -truefile.org -truefitt.net -truegoldcenter.com -truegravitydistribution.com -truehealthdentistry.com -truehelpbox.site -truelifecanada.org -truelivewebcams.com -truenaturenetwork.info -truereligionbrandmart.com -truereligionjeansdublin.eu -truesimplesoft.com -trueyoueats.com -trufficial.com -trufilth.com -truhealth.shop -truinstall.com -trulli.pl -truly-stunning-skin.com -trum.win -trum86.club -trumanpost.com -trumbullelderlawgroup.com -trumgamevn.ml -trump.flu.cc -trump.igg.biz -trumpmail.cf -trumpmail.ga -trumpmail.gq -trumpmail.ml -trumpmail.tk -trumptowerscondo.com -trumptowersvegascondos.com -trumpupclose.com -trumpwasgood.com -trumtaixiu.net -trumtn.com -trung.name.vn -trungtamtoeic.com -trungthu.ga -trunktotail.com -trunma.fun -trunma.space -trunorth.coop -trupho.us -trushsymptomstreatment.com -truskwashbrushes.org -truskwashbrushes.us -trussinteriors.site -trust-advisor.ru -trust-deals.ru -trust.games -trustablehosts.com -trustatscale.com -trustattorneyscalifornia.com -trustcoin.tech -trusted-canadian-online-pharmacy.com -trusted.camera -trusted.clothing -trusted.diamonds -trusted.parts -trusted.photos -trusted.shoes -trusted.style -trusted.trading -trusted.wine -trustedchest.site -trustedcvvshop.ru -trustedhosts.net -trustedproducts.info -trustfb.online -trustfb.site -trustfb.xyz -trustfig.fun -trustflash.fun -trustfractalforge.com -trustgames.vip -trusthalal.com -trusthomesmidsouth.com -trustingfunds.ltd -trustinj.trade -trustinthe.cloud -trustiov.club -trustjudg.fun -trustlending.pro -trustmall.online -trustmymeat.com -trustnetsecurity.net -trustpiiot.site -trustsieg.us -trusttravellive.biz -trusttravellive.info -trusttravellive.net -trusttravellive.org -trusttravellive.travel -trustur.ru -trustware.coach -trustware.us -trustxm.com -truth-publications.com -truthaboutcellulitereviews.com -truthaboutgluten.com -truthandlibertycoalition.com -truthdaredo.com -truthdaredo.net -truthfinderlogin.com -truthfulintegrity.com -truthorconsequences.net -truthpowe.buzz -truthye.com -truuhost.com -truvabetgiris.website -truvifoods.com -truvinutrition.com -truvisagereview.com -truvisionhealth.global -truviz.shop -truxbox.ru -trwfey.us -trxsuspension.us -trxubcfbyu73vbg.ga -trxubcfbyu73vbg.ml -trxubcfbyu73vbg.tk -try-rx.com -tryalert.com -tryalfajor.buzz -tryblg.xyz -tryblgs.xyz -tryblog.xyz -trybookr.com -trycatchrepeat.info -trycjebraingames.com -tryclickfunnels.com -tryjx2s.com -tryluminousglow.com -trymachaearthpetsupply.com -trymail.tk -trymindstein.com -tryninja.io -trynugentix.com -tryorganictips.site -trypayroll.com -trypedoc.cf -trypedoc.ga -trypedoc.gq -trypedoc.ml -trypedoc.tk -tryppin.site -trypregenix.com -tryprice.co -trysubj.com -trytopstaminxtestoboost.com -trytwp.com -tryuf5m9hzusis8i.cf -tryuf5m9hzusis8i.ga -tryuf5m9hzusis8i.gq -tryuf5m9hzusis8i.ml -tryuf5m9hzusis8i.tk -tryvertty.services -tryworks.xyz -tryzoe.com -ts-by-tashkent.cf -ts-by-tashkent.ga -ts-by-tashkent.gq -ts-by-tashkent.ml -ts-by-tashkent.tk -ts2menswear.com -ts30.club -ts5.xyz -ts93crz8fo5lnf.cf -ts93crz8fo5lnf.ga -ts93crz8fo5lnf.gq -ts93crz8fo5lnf.ml -ts93crz8fo5lnf.tk -tsa8ii.us -tsamoncler.info -tsapplications.com -tsas.tr -tsassoo.shop -tsba.xyz -tsbyj.live -tscamp.ru -tsclifton.com -tscpartner.com -tscripta.net -tscursos1.com -tscuties.com -tscyule.com -tsczxzc.com -tsdivas.com -tsdtracker.com -tsedalel.cf -tsedalel.ga -tsedalel.gq -tsedalel.ml -tsedalel.tk -tseh10.ru -tsendzerusticcampsite.com -tsgelas.club -tsgjw.info -tshirt.center -tshirtformens.com -tsikarstak.cf -tsikarstak.ga -tsikarstak.gq -tsikarstak.ml -tsikarstak.tk -tsiklessla.ga -tsiklessla.gq -tsiklessla.tk -tsipnn.site -tsj.com.pl -tsjdt.com -tsjp.xyz -tsk.tk -tskduz.cf -tsluoli.xyz -tsmc.mx -tsnhw.info -tsnmw.com -tsoundmost.shop -tsource.ist -tspace.net -tspfw.info -tspnob.com -tsptw.info -tspzeoypw35.ml -tsrgdd.com -tsrpay.info -tssc.cd -tssdz.com -tst69.space -tstcasino.com -tsternie.com -tstetsto.shop -tstoto21.org -tsukushiakihito.gq -tsv00.com -tswd.de -tsyatsys.shop -tsyefn.com -tsystsya.shop -tsyuan.xyz -tt1775.com -tt18269.com -tt2dx90.com -tt7665.com -tt9827.com -tta17.com -ttbbc.com -ttcccs.com -ttchx.com -ttckefu.site -ttcrtk.ru -ttcscan.org -ttdfytdd.ml -ttds.space -ttedttei.shop -ttekstormw.site -tteotted.shop -tthatin.shop -tthdtquszptutqu.ru -tthemos.shop -tthettha.shop -tthomp.com -ttht.us -ttieu.com -ttirv.com -ttirv.net -ttirv.org -ttitoolsale.com -ttk-uralgeo.ru -ttkamukecil.com -ttkkk2.xyz -ttlalloe.xyz -ttlzw.info -ttman.dns.navy -ttmpoker.club -ttmpoker.website -ttmpoker.xyz -ttobogo5.net -ttokto0up00.club -ttolk.com -ttomorrow.com -ttopclubr.site -ttopfeedt.site -ttopicopian.site -ttopzf.site -ttoubdzlowecm7i2ua8.cf -ttoubdzlowecm7i2ua8.ga -ttoubdzlowecm7i2ua8.gq -ttoubdzlowecm7i2ua8.ml -ttoubdzlowecm7i2ua8.tk -ttqp101.com -ttr6.su -ttrcasinoblog.ru -ttrimbai.site -ttrinet.site -ttrulanea.site -ttrzgbpu9t6drgdus.cf -ttrzgbpu9t6drgdus.ga -ttrzgbpu9t6drgdus.gq -ttrzgbpu9t6drgdus.ml -ttrzgbpu9t6drgdus.tk -ttsbcq.us -ttsi.de -ttsport42.ru -ttszuo.xyz -ttt062.com -ttt324.com -ttt552.com -ttt72pfc0g.cf -ttt72pfc0g.ga -ttt72pfc0g.gq -ttt72pfc0g.ml -ttt72pfc0g.tk -ttt944.com -ttt9827.com -tttbhgfdfdsmjhh.monster -tttbvbnv.com -tttcem.xyz -tttfvmknbhkcmk.xyz -tttitan.com -tttooo.online -tttttyrewrw.xyz -tttv1.com -ttuckbokee.com -ttusrgpdfs.pl -ttweetlounget.site -ttwijis.site -ttxcom.info -ttxte.com -ttxx6868.com -ttytgyh56hngh.cf -ttyuhjk.co.uk -ttzbw.info -tu-sale.online -tu3x8h.us -tu6oiu4mbcj.cf -tu6oiu4mbcj.ga -tu6oiu4mbcj.gq -tu6oiu4mbcj.ml -tu6oiu4mbcj.tk -tualias.com -tuan889p.ga -tuana31.com -tuantoto.com -tuatupo.ga -tuatupo.tk -tubanmentol.ml -tubbanews.tk -tubcasinomek.ru -tubdk2dersum.xyz -tube-dns.ru -tube-ff.com -tube-lot.ru -tube-over-hd.ru -tube-rita.ru -tubeadulte.biz -tubebob.ru -tubebrushes.biz -tubecandy.site -tubeftw.com -tubegain.com -tubegalore.site -tubegod.net -tubehide.site -tubehub.net -tubepack.site -tubered.site -tuberkulez.info -tubesurf.net -tubeteen.ru -tubev.site -tubex.buzz -tubexnxx.site -tubeyes.site -tubi-tv.best -tubidu.com -tubidy9.com -tubodamagnifica.com -tubruk.trade -tubzesk.org -tubzoos.info -tucash1.icu -tucboxy.com -tucineestiba.com -tuckschool.com -tucogough.cf -tucogough.ga -tucogough.ml -tucogough.tk -tucsonbesthomes.com -tucsonfreewifi.net -tucsonquote.com -tucuman.shop -tucumcaritonite.com -tudatacentervirtual.com -tudena.pro -tudesearch.cf -tudesearch.ga -tudesearch.gq -tudesearch.ml -tudesearch.tk -tudicthurn.cf -tudicthurn.ga -tudicthurn.gq -tudicthurn.ml -tudicthurn.tk -tudooz.com -tudouindex.com -tuembarazoymas.com -tuesdaylaura.com -tuesdaymariska.com -tuesdaymovo.com -tuesdaypleasure.site -tufbcdgr18-privcnvfjtu.press -tuferni.club -tuffautos.info -tug.minecraftrabbithole.com -tuga4you.site -tugboater.com -tugobro.ml -tugobro.tk -tugxbd.online -tuholesa.site -tuhsuhtzk.pl -tuhzih.icu -tuiberga.cf -tuiberga.ga -tuiberga.gq -tuiberga.ml -tuiberga.tk -tuimail.ml -tuimoe.com -tuipa.net -tuipharmacy.info -tuipharmacy.net -tuizipper.net -tujimastr09lioj.ml -tujuhonline.com -tujuhsatusatu.com -tukardim.com -tukkertrots.online -tukno.online -tukp.com -tukudawet.tk -tukulyagan.com -tukupedia.co -tukz.net -tular.online -tulipbettv9.com -tulistoto.xyz -tuljaenak.com -tulnl.xyz -tulsa.gov -tulsabud.delivery -tulsacannabisdoctor.com -tulsalaw.org -tulsaokeldercare.com -tulsaopiaterehab.com -tulsaprofessionalmatchmakers.com -tulsaspecialtysales.com -tulsi-takeaway.com -tulsisapkota.com -tulsitakeaway.com -tumblegifs.com -tumblegroup.com -tumblrlove.com -tumihaleler.xyz -tumima.cf -tumima.ga -tumima.gq -tumima.tk -tumiqq.info -tumjsnceh.pl -tummytotoddler.com -tunaarda.cf -tunaarda.ml -tunaarda.tk -tunaarda123.cf -tunaarda123.ga -tunaarda123.ml -tunaarda123.tk -tunaarda1234.ml -tunaarda1234.tk -tunacrispy.com -tunaeffect.com -tunasbola.site -tunasbola.website -tuncelidemirkapikoyu.com -tuncpersonel.com -tundy.us -tune.guide -tune.red -tuneintogiving.com -tunes.cd -tunezja-przewodnik.pl -tungsten-carbide.info -tungstenfabric.space -tunhide.com -tunikusami.xyz -tunis-nedv.ru -tunmanageservers.com -tunnelbeear.com -tunnelbound.com -tunneler.cf -tunnelerph.com -tunnell.org -tunningmail.gdn -tunschs.ru -tunzees.com -tuoficina.online -tuofs.com -tuoihoctro.site -tuoiteen.asia -tuongtactot.tk -tuopzyzc.shop -tuoslo.info -tup.best -tupel.org -tuphmail.com -tuposti.net -tuppencehalfpennyentertainment.com -tupuduku.pw -tur-3tur.ru -tur-top.ru -tur-yog.ru -tur-zoloto.ru -turabet129.com -turabkentseldonusum.com -turava.site -turbiki.ga -turbiki.gq -turbiki.ml -turbiki.tk -turbobahis6.com -turbobania.com -turbocarvers.com -turbochoicegarcinia.com -turbomail.ovh -turbonzb.com -turboparts.info -turboshack.biz -turboshopes.ru -turbospinz.co -turbovoicebox.com -turbu.pro -turcaro.ru -turcasinosofa.ru -turekdesigns.com -turekskursiya.ru -turenbox.ru -turf.exchange -turfaq.ru -turfoptimization.com -turfoptimizer.com -turihom.host -turihom.space -turismnews.ru -turismoemcanelars.com -turismohuaraz.com -turist-tur.ru -turistiobro.ru -turistogid.ru -turistoinfo.ru -turizm-okey.ru -turka71.com -turkazkjdfjj52855.ml -turkazkjdfjj52855.tk -turkbet.live -turkbet100.com -turkbet27.com -turkbet3.com -turkbet31.com -turkbet34.com -turkbet35.com -turkbet41.com -turkbet46.com -turkbet5.com -turkbet56.com -turkbet58.com -turkbet60.com -turkbet62.com -turkbet63.com -turkbet66.com -turkbet67.com -turkbet72.com -turkbet73.com -turkbet76.com -turkbet77.com -turkbet79.com -turkbet80.com -turkbet81.com -turkbet83.com -turkbet85.com -turkbet88.com -turkbet9.com -turkbet92.com -turkbet95.com -turkbet97.com -turkdizifilm.xyz -turkey-nedv.ru -turkeyalerts.com -turkeyalerts.org -turkeybeachweddings.com -turkeybeautyclinic.net -turkeymedical.tours -turkeyvillasales.com -turkint.ru -turkish-kebab-house-takeaway.com -turkishairlinesopen.golf -turkishcafefurniture.com -turkishlobbyfurniture.com -turkishrealestates.net -turkiyegercekleri.xyz -turkko.xyz -turknet.com -turkserial.club -turksey.net -turksey.org -turkuazballooning.com -turkuazkebab.com -turkudiyari-sesli.online -turkudiyari-sesli.xyz -turleyprandpublicaffairs.com -turly.site -turma6.com -turmadocurioso.com -turn.capital -turnabaikal.ru -turnabet37.com -turnabet40.com -turnabet44.com -turnabet45.com -turnabet51.com -turnback-time.com -turnbackthebattle.com -turnberrypl.com -turnerdigitalsales.com -turnerlegalpllc.com -turningpoint.store -turnkeyliberty.com -turnkeyprivacy.com -turnpokerid.com -turnpokeronline.com -turntenpe.cf -turntenpe.ga -turntenpe.gq -turntenpe.ml -turnthepagepublishing.com -turoid.com -turrifi.cf -turrifi.ga -turrifi.ml -turrifi.tk -turs.pro -turtle01.info -turturizm.ru -turual.com -turvichurch.cf -turvichurch.ga -turvichurch.ml -turvichurch.tk -tushi.icu -tusitiowebgratis.com.ar -tusitowebserver.com -tusslemyax.space -tust.org -tustoredigital.es -tuswatchslic.cf -tuswatchslic.ga -tuswatchslic.gq -tuswatchslic.ml -tuswatchslic.tk -tut-turist.ru -tut-zaycev.net -tutadocs.com -tutadocs.net -tutadocs.site -tutadox.net -tutadox.online -tutadox.site -tutadox.store -tutadox.tech -tutckc.site -tutela-adultos.info -tuthit.com -tutis.me -tutlekalku.xyz -tutorcolumbus.info -tutordocs.net -tutordocs.site -tutordox.net -tutoringhotline.com -tutrazdeldobra.xyz -tutsimer.space -tutsport.ru -tutushop.com -tutusweetshop.com -tutye.com -tuu7jy.com -tuubz.com -tuugo.com -tuulu-altai.ru -tuvanthietkexaydung.com -tuvepi.xyz -tuvimoingay.us -tuvpg.live -tuvsu-fmf.ru -tuxreportsnews.com -tuyen889.ml -tuyensinhonline.info -tuyingan.co -tuyistand.site -tuymades.ga -tuymades.ml -tuymades.tk -tuyuejiaqi.com -tuyulmokad.ml -tuyulmokad.tk -tuzlaforklift.com -tuzplay33.com -tuzuwa.info -tv-cinema.pro -tv-informacje.site -tv-licensing.xyz -tv-ooh.com -tv-real.com -tv123movies.info -tv1ay348.space -tv24-info.website -tv552.com -tv7bcx8o6wh7pyp.xyz -tvacx0.us -tvaplet.com -tvasiadrama.com -tvbank.website -tvbong.fun -tvbong8.fun -tvbong9.fun -tvbrcjnj.shop -tvcablesshop.life -tvcchurch.biz -tvccsport.com -tvccsports.org -tvchd.com -tvcs.co -tvdj9x.info -tvelef2khzg79i.cf -tvelef2khzg79i.ga -tvelef2khzg79i.gq -tvelef2khzg79i.ml -tvelef2khzg79i.tk -tver-dveri.ru -tverpost.ru -tverpravo.ru -tverya.com -tvetxs.site -tvexpedite.com -tvforanyone.life -tvg-watch-rasshia.ru -tvhdnova.site -tvhom.info -tvi72tuyxvd.cf -tvi72tuyxvd.ga -tvi72tuyxvd.gq -tvi72tuyxvd.ml -tvi72tuyxvd.tk -tvinfo.site -tviwi.com -tvkey.site -tvlagu.com -tvlg.com -tvlicensing-co-uk.xyz -tvmarin.net -tvmin7.club -tvmoe.com -tvmovies.biz -tvnamu.fun -tvnamu8.fun -tvnawa9.fun -tvnxygrn.site -tvoe-videohd.ru -tvoi-mishka.ru -tvoiavigoda.ru -tvoitovarysoskidkoy.ru -tvonlayn2.ru -tvopros.space -tvoyastihiya4.icu -tvoyastihiya5.icu -tvoyastihiya6.icu -tvoyastihiya7.icu -tvoymanager.ru -tvoymoy.ru -tvoyryukzak.ru -tvoyshoping.ru -tvparatv.site -tvst.de -tvtaxcos.info -tvtech.org -tvtnvn.com -tvtoiptv.com -tvtv1234.xyz -tvv55.ru -tvzion.info -twablocose.icu -twanakta.gq -twanakta.ml -twanakta.tk -twaucmyrovy.xyz -twbikemart.com -twddos.net -twdesign.org -tweakacapun.wwwhost.biz -tweakcity.city -tweakly.net -tweaks.org -twearch.com -tweatme.com -tweedvalleyicecream.com -tweeflood.com -tweetuphiq.cf -tweetuphiq.gq -tweetuphiq.ml -twejhyqio.tk -tweles.site -twelveaward.com -twelvee.us -twenties.nu -twentybet5.ru -twentylanding.ru -twentysevenstore.me -tweta.site -twevvm.us -twfsale.top -twgs.pro -twichzhuce.com -twiclorddhun.ga -twiclorddhun.gq -twiclorddhun.ml -twiclorddhun.tk -twif.ru -twiink.com -twilightsterror.com -twinducedz.com -twinecbmq.space -twinh.info -twinklegalaxy.com -twinmail.de -twinotter-parts.com -twinotterpma.com -twinpoolsandspa.com -twinsbrand.com -twinslabs.com -twinzero.net -twirlygirl.info -twistbigo.site -twistcasino.ru -twistedpaiwd.com -twistedtortillafreshmexgrill.com -twistersbedandbreakfast.com -twisty-petz-optom.ru -twit-mail.com -twitchieleaks.com -twitchmasters.com -twitchname.ru -twitchsoftdomen.xyz -twitguide.com -twitlebrities.com -twitlebrity.com -twitt3r.cf -twitt3r.ga -twitt3r.gq -twitt3r.ml -twitt3r.tk -twitter-accs.ru -twitter-sign-in.cf -twitteraddersoft.com -twitterfact.com -twitterfree.com -twitterparty.ru -twitterplus.org -twitterreviewer.tk -twixoutweb.cf -twixoutweb.ga -twixoutweb.gq -twixoutweb.ml -twixoutweb.tk -twizadmu.cf -twizadmu.ga -twizadmu.gq -twkj.xyz -twkly.ml -twlcd4i6jad6.cf -twlcd4i6jad6.ga -twlcd4i6jad6.gq -twlcd4i6jad6.ml -twlcd4i6jad6.tk -twlemt.us -twlnw.info -twmail.tk -twn3d.site -two-bet.xyz -two-better-than.one -two-harbors.net -two-shoes.ru -two-tiered.host -two.emailfake.ml -two.fackme.gq -two.haddo.eu -two0aks.com -twobeebs.com -twocolor.ru -twocowmail.net -twodrops.org -twofachpen.cf -twofachpen.ga -twofachpen.gq -twofachpen.ml -twofachpen.tk -twohourtop.com -twoindians.com -twojalawenda.pl -twojapozyczka.online -twojbiznesowydziennik.online -twoje-nowe-biuro.pl -twojekonto.pl -twojepromocje.online -twolyn.com -twooceanstours.com -tworcyatrakcji.pl -tworcyimprez.pl -tworiversbaptist.org -tworkarbou.cf -tworkarbou.ga -tworkarbou.ml -tworzenieserwisow.com -twosale.ru -twoweirdtricks.com -twpride.com -twpsw.info -twseel.com -twsexy66.info -twsurgeon.com -twt33.xyz -twtscript.com -twvvvfrgjxplpv5.xyz -twxex.live -twymverpworl.cf -twymverpworl.ga -twymverpworl.gq -twymverpworl.tk -twzhhq.com -twzhhq.online -tx4000.com -tx5551.com -tx6ufp.info -txairpods.com -txantxiku.tk -txbnyp.us -txd58.space -txedu.org -txhalfpricelistings.com -txhlkbhbs.shop -txii.com -txlq3i.us -txmovingquotes.com -txpwg.usa.cc -txrnjobs.com -txrsvu8dhhh2znppii.cf -txrsvu8dhhh2znppii.ga -txrsvu8dhhh2znppii.gq -txrsvu8dhhh2znppii.ml -txrsvu8dhhh2znppii.tk -txsgw.info -txsignal.com -txt.flu.cc -txt10xqa7atssvbrf.cf -txt10xqa7atssvbrf.ga -txt10xqa7atssvbrf.gq -txt10xqa7atssvbrf.ml -txt10xqa7atssvbrf.tk -txt7e99.com -txta.site -txtadvertise.com -txtb.site -txtc.site -txtd.site -txtf.site -txtfinder.xyz -txtg.site -txth.site -txti.site -txtn.site -txtr.site -txts.site -txtx.site -txtz.site -txunilever.com -txv4lq0i8.pl -txwebsiteusa.com -txxiomi.com -txyl168.com -ty.ceed.se -ty.squirtsnap.com -ty068.space -ty069.space -ty072.space -ty073.space -ty075.space -ty081.space -ty082.space -ty11139.xyz -ty119.xyz -ty12umail.com -ty3322.com -ty355355.com -ty3cgx.us -ty7799.com -ty8800.com -ty888a.com -tyagbookd.site -tyagflyd.site -tybreho.cf -tybreho.ga -tyc.fan -tyc.gp -tyc.mw -tyc.sk -tyc1158.com -tyc1164.com -tyc33a.com -tyc33b.com -tyc33c.com -tyc33d.com -tyc33f.com -tyc33g.com -tyc33i.com -tyc33k.com -tyc33m.com -tyc33p.com -tyc33q.com -tyc33s.com -tyc33u.com -tyc33v.com -tyc33x.com -tyc33y.com -tyc33z.com -tyc66b.com -tyc66d.com -tyc66e.com -tyc66f.com -tyc66g.com -tyc66h.com -tyc66m.com -tyc66n.com -tyc66o.com -tyc66r.com -tyc66t.com -tyc66u.com -tyc66w.com -tyc66x.com -tyc66z.com -tyc77a.com -tyc77c.com -tyc77d.com -tyc77e.com -tyc77h.com -tyc77k.com -tyc77l.com -tyc77p.com -tyc77r.com -tyc77s.com -tyc77u.com -tyc77v.com -tyc77w.com -tyc77x.com -tycacmo9best.website -tycai.net -tychangfang.com -tychoservice.online -tychoservice.shop -tyclonecuongsach.site -tycoma.cf -tycoma.ga -tycoma.gq -tycoma.ml -tycoma.tk -tyconme.ga -tyconme.gq -tyconme.ml -tyconme.tk -tydaab.ru -tydakyda.ru -tydanu.info -tydgr.com -tydnao.com -tydy.site -tyeo.ga -tyeyy.com -tygamusic.net -tygfh.com -tyhe.ro -tyhlw.com -tyhrf.jino.ru -tyjiy.live -tykyus.com -tyldd.com -tylerellis.org -tylerellisllc.com -tylerexpress.com -tylermoberly.com -tylerseymour.org -tylko-dobre-lokaty.com.pl -tylorstewart.com -tymail.top -tymber.online -tymeiron-pro.ru -tymicep.cf -tymicep.gq -tymicep.tk -tymkvheyo.shop -tymona.site -tympe.net -tynick.win -tynkowanie-cktynki.pl -tynop.xyz -tyofflof.shop -tyoftyoi.shop -tyopitchsy.cf -tyopitchsy.gq -tyopitchsy.ml -tyopitchsy.tk -typecho.asia -typechocheck.xyz -typepoker.com -typery.com -typescriptis.fun -typesoforchids.info -typesofrehab.com -typestring.com -typity.net -typlrqbhn.pl -typo3check.xyz -typografille.com -tyrauber.org -tyristo-zen.ru -tyristo.ru -tyrmas.ru -tyroepo.site -tyrosine.shop -tyrosine.store -tyskali.org -tysonsdivorce.party -tysu.site -tytfhcghb.ga -tyubnxa.xyz -tyuioiuyt.site -tyuitu.com -tyuobq.space -tyurist.ru -tyuty.net -tyuweaw.xyz -tyweetflowy.site -tywmp.com -tyxinc.com -tyxtzioco.shop -tyycmbw8.xyz -tyyel.live -tz-zina.ru -tz.tz -tz3vk1.us -tz4qhs.com -tzarmail.info -tzawke.us -tzc14.space -tzfww.com -tzkmp.us -tzlxlwp003.site -tzlxlwp005.site -tzlxlwp006.site -tzlxlwp007.site -tzlxlwp008.site -tzlxlwp009.site -tznlulmxe.shop -tznohv.shop -tzqmirpz0ifacncarg.cf -tzqmirpz0ifacncarg.gq -tzqmirpz0ifacncarg.tk -tzqnw.info -tzrtrapzaekdcgxuq.cf -tzrtrapzaekdcgxuq.ga -tzrtrapzaekdcgxuq.gq -tzrtrapzaekdcgxuq.ml -tzrtrapzaekdcgxuq.tk -tzstudio.ru -tzt22.com -tzxec.com -tzzcw.info -u-aroma.info -u-cco.org -u-torrent.cf -u-torrent.ga -u-torrent.gq -u-wills-uc.pw -u.civvic.ro -u.dmarc.ro -u.labo.ch -u.qvap.ru -u03.gmailmirror.com -u0nuw4hnawyec6t.xyz -u0qbtllqtk.cf -u0qbtllqtk.ga -u0qbtllqtk.gq -u0qbtllqtk.ml -u0qbtllqtk.tk -u1.myftp.name -u14269.gq -u14269.ml -u14w.buzz -u1775.com -u1cykv.us -u1gdt8ixy86u.cf -u1gdt8ixy86u.ga -u1gdt8ixy86u.gq -u1gdt8ixy86u.ml -u1gdt8ixy86u.tk -u1liwc.us -u1pvwg.us -u1z.ru -u2.net.pl -u2b.comx.cf -u2casino.net -u2casino.org -u30cir.info -u336.com -u3kvj.us -u3t9cb3j9zzmfqnea.cf -u3t9cb3j9zzmfqnea.ga -u3t9cb3j9zzmfqnea.gq -u3t9cb3j9zzmfqnea.ml -u3t9cb3j9zzmfqnea.tk -u423jf.us -u4iiaqinc365grsh.cf -u4iiaqinc365grsh.ga -u4iiaqinc365grsh.gq -u4iiaqinc365grsh.ml -u4iiaqinc365grsh.tk -u4jhrqebfodr.cf -u4jhrqebfodr.ml -u4jhrqebfodr.tk -u4nzbr5q3.com -u4ves.us -u59wl.space -u5clwe.us -u5i2je.us -u5tbrlz3wq.cf -u5tbrlz3wq.ga -u5tbrlz3wq.gq -u5tbrlz3wq.ml -u5tbrlz3wq.tk -u6lvty2.com -u6spng.info -u6wv97.info -u6yksh-mail.xyz -u7665.com -u7l9s6.com -u7vt7vt.cf -u7vt7vt.ga -u7vt7vt.gq -u7vt7vt.ml -u7vt7vt.tk -u86d8.site -u8mpjsx0xz5whz.cf -u8mpjsx0xz5whz.ga -u8mpjsx0xz5whz.gq -u8mpjsx0xz5whz.ml -u8mpjsx0xz5whz.tk -u9gtz.us -u9nlyx.us -u9y7m8zvi3jhypb.xyz -ua0ole.info -ua10whyx559huni.xyz -ua3jx7n0w3.com -ua6htwfwqu6wj.cf -ua6htwfwqu6wj.ga -ua6htwfwqu6wj.gq -ua6htwfwqu6wj.ml -ua6htwfwqu6wj.tk -uabrandsinternational.com -uabvhy.com -uacognacfoot.com -uacro.com -uacrossad.com -uae-eko-store.com -uaegiftat.com -uaemail.com -uafebox.com -uafsomlp.com -uafusjnwa.pl -uagtl.us -uagyp.com -uajgqhgug.pl -ualmail.com -uamail.com -uamtlrlr.shop -uannfamd.ru -uapproves.com -uarara5ryura46.ga -uas-certification.com -uasregistry.net -uat6m3.pl -uathg.live -uatop.in -uautfgdu35e71m.cf -uautfgdu35e71m.ga -uautfgdu35e71m.gq -uautfgdu35e71m.ml -uautfgdu35e71m.tk -uautostabilbetsnup.xyz -uav3pl.com -uavpad.net -uavplans.ru -uavpowerstation.com -uawlocal94.net -uawycw.ml -uaxary.tokyo -ub288.com -ub5kat.us -ub858.com -ubamail.com -ubars.ru -ubavxxbd.shop -ubcategories.com -ubcpk0.com -ubdeexu2ozqnoykoqn8.ml -ubdeexu2ozqnoykoqn8.tk -uber-mail.com -uber333.com -uber69route.com -uberdriver-taxi.ru -ubergamers.net -uberketing.com -ubermail.info -ubermail39.info -ubermember.com -uberone.info -ubersetzer.nyc -ubfre2956mails.com -ubicloud.com -ubiqi.net -ubismail.net -ubitherm.ru -ubl-astanalytics.com -ublast-analytics.com -ublastanalytic-s.com -ublastanalytics.com -ublomail.com -ublooper.com -ubm.md -ubmail.com -ubnqpm.ml -ubreakfix.net -ubssvlkv.shop -ubt-uni.info -ubumail.com -ubuntu-users.info -ubuntu.dns-cloud.net -ubuntu.dnsabr.com -ubuntu.org -ubuntumaster.ru -ubwerrr.com -ubwerrrd.com -ubyopa.us -ubziemail.info -uc-dev.xyz -uc132.com -ucakfiyat.com -ucalgaryujgnlh.net -ucandobest.pw -ucansuc.pw -ucarplastikkimya.xyz -ucavlq9q3ov.cf -ucavlq9q3ov.ga -ucavlq9q3ov.gq -ucavlq9q3ov.ml -ucavlq9q3ov.tk -ucche.us -uccstudenthousing.com -uccuyosanjuan.com -ucdn.ooo -ucemail.com -ucfcn.net -ucfz1d.us -ucgbc.org -uchasim.shop -uchastiesro.xyz -uchiyazik.ru -ucho.top -ucimail.com -ucir.org -ucitelka.info -uclacbam.com -uclinics.com -ucmamail.com -ucnezavisimost.com -ucnp.info -ucombinator.com -ucombinator.net -ucorean.com -ucourse.club -ucq9vbhc9mhvp3bmge6.cf -ucq9vbhc9mhvp3bmge6.ga -ucq9vbhc9mhvp3bmge6.gq -ucq9vbhc9mhvp3bmge6.ml -ucr6pb.site -ucroyal09.com -ucsoft.biz -uctqoj.us -uctwh.us -ucupdong.ml -ucuzlukpazarim.xyz -ucuzteyp.xyz -ucuzucakbiletin.online -ucvqr.com -ucw8rp2fnq6raxxm.cf -ucw8rp2fnq6raxxm.ga -ucw8rp2fnq6raxxm.gq -ucw8rp2fnq6raxxm.ml -ucw8rp2fnq6raxxm.tk -ucylu.com -ud0.net -ud0hzn.best -udachniy-den2020.site -udacityy.com -udaepyo11.net -udaepyo13.net -udasity.com -udbaccount.com -udcuf4ijm6tpbnv.xyz -udec.edu -udemail.com -udemypack.com -uditkarode.shop -udlmiuojt.shop -udmail.com -udnr.net -udns.cf -udns.gq -udns.tk -udohka-avtomat1990.ru -udoiswell.pw -udozmail.com -udrotu.site -udrpattorney.net -udruzenjejez.info -udsc.edu -udubnation.com -udumu.com -uduomail.com -udyrc.site -ue90x.com -ued077.com -uedbet222.com -uedbet333.net -uedhot855.com -uefabucharest.com -uefhuvmujq.xyz -uefia.com -uefpr.us -uegumail.com -ueiaco100.info -ueig2phoenix.info -ueimultimeter.info -uejumk4yslktvhi.xyz -uemail99.com -uemfpu.us -uemliiawz.shop -uenct2012.info -ueno-kojun.com -ueqj91t0.online -ueqj91t0.space -ueqj91t01t0.online -ueqj91t01t0.space -ueqj91t01t01t0.space -ueqj91t01t0924.online -ueqj91t01t0924.space -ueqj91t042i90j.online -ueqj91t042i90j.space -ueqj91t0924.space -ueqj91t09241t0.online -ueqj91t09241t0.space -ueqj91t0924924.online -ueqj91t0924924.space -ueqj91t0h33u19.online -ueqj91t0h33u19.space -ueqj91t0vhh13h.online -ueqj91t0vhh13h.space -ueqj942i90j.online -ueqj942i90j.space -ueqj942i90j1t0.online -ueqj942i90j1t0.space -ueqj942i90j924.online -ueqj942i90j924.space -ueqj9924.online -ueqj9924.space -ueqj99241t0.online -ueqj99241t0.space -ueqj99241t01t0.online -ueqj99241t01t0.space -ueqj99241t0924.online -ueqj99241t0924.space -ueqj992442i90j.online -ueqj992442i90j.space -ueqj9924924.online -ueqj9924924.space -ueqj99249241t0.online -ueqj99249241t0.space -ueqj9924924924.online -ueqj9924924924.space -ueqj9924h33u19.online -ueqj9924h33u19.space -ueqj9924vhh13h.space -ueqj9bn9fbwv.online -ueqj9bn9fbwv.space -ueqj9h33u19.online -ueqj9h33u19.space -ueqj9h33u191t0.online -ueqj9h33u19924.online -ueqj9h33u19924.space -ueqj9jrbh2h4.online -ueqj9vhh13h.online -ueqj9vhh13h.space -ueqj9vhh13h1t0.online -ueqj9vhh13h1t0.space -ueqj9vhh13h924.online -ueqj9vhh13h924.space -ueses.club -uestabbetting.xyz -uetimer.com -uew0i.us -uewryweqiwuea.tk -uezzhaem.ru -uf29.com -uf789.com -ufa-decor.ru -ufa-moscow.ru -ufa-nedv.ru -ufa090.info -ufa090s.com -ufa8989.info -ufa9898.info -ufaamigo.site -ufabet789.asia -ufabet9.com -ufabetapi.com -ufabystore.com -ufacturing.com -ufaremax.ru -ufascr168.com -ufatoday88.net -ufbpq9hinepu9k2fnd.cf -ufbpq9hinepu9k2fnd.ga -ufbpq9hinepu9k2fnd.gq -ufbpq9hinepu9k2fnd.ml -ufbpq9hinepu9k2fnd.tk -ufc239ppv.com -ufcboxingfight.info -ufcticket.ru -uffdacap.com -uffdacapital.com -uffdo.com -ufficialeairmax.com -uffm.de -ufgel.com -ufgqgrid.xyz -ufhuheduf.com -ufi9tsftk3a.pl -ufibmail.com -ufiwmslou.shop -ufk3rtwyb.pl -ufkakaya.ru -ufkhhsov.shop -ufman.site -ufmncvmrz.pl -ufoairs.info -ufoeq.live -ufrbox.net -ufrdtrdv.shop -uftmjcsuh.shop -uftploqft.tk -ufukbagci.icu -ufw58.com -ufxcnboh4hvtu4.cf -ufxcnboh4hvtu4.ga -ufxcnboh4hvtu4.gq -ufxcnboh4hvtu4.ml -ufxcnboh4hvtu4.tk -ufyfoj.icu -ug02.icu -ug080593nubrm09.xyz -ugandasports.online -ugandi.com -uganondee.host -ugbisp.gq -ugbwy.com -ugdr7k.us -ugf1xh8.info.pl -ugf9bd.host -ugg-495.ru -ugg-bootsoutletclearance.info -uggboos-online.com -uggbootoutletonline.com -uggboots-uksale.info -uggboots.com -uggbootscom.com -uggbootsever.com -uggbootsins.com -uggbootsonlinecheap.com -uggbootssale-discount.us -uggbootssale.com -uggbootssale2011.info -uggbootssales.com -uggbuystorejp.com -uggi-chelyabinsk.ru -uggi-kurgan.ru -uggi-kzn.ru -uggi-magadan.ru -uggi-nvartovsk.ru -uggi-perm.ru -uggi-rostov.ru -uggi-simferopol.ru -uggi-ufa.ru -uggi-volgograd.ru -uggibelgorod.ru -uggibryansk.ru -uggiizhevsk.ru -uggikaluga.ru -uggikirov.ru -uggikursk.ru -uggilipeck.ru -uggipenza.ru -uggisaratov.ru -uggitambov.ru -uggitomsk.ru -uggitver.ru -uggityumen.ru -uggiulyanovsk.ru -uggjimmystores.com -uggkids.online -uggout.com -uggpaschermz.com -uggs-canadaonline.info -uggs-outletstores.info -uggs.co.uk -uggsale-uk.info -uggsart.com -uggsguide.org -uggshopsite.org -uggsiteus.com -uggsnowbootsoline.com -uggsoutlet-online.info -uggsrock.com -ughsalecc.com -ugimail.com -ugimail.net -ugipmail.com -ugjfzx.info -ugkal.site -ugkugbkh5-privjpjp.fun -ugkugbkh5-privjpjp.host -ugkugbkh5-privjpjp.site -ugkugbkh5-privjpjp.space -ugkugbkh5-privjpjp.website -ugkugbkh5-privjpjp.xyz -uglewmail.pw -ugmail.com -ugogi.com -ugolovnpravo.xyz -ugonnamoveit.info -ugoxxf.tokyo -ugpag.cd -ugpna.com -ugrafix.com -ugreatejob.pw -ugredig.website -uguisudanideli.net -ugurlukilif.net -ugurlupromosyon.com -ugusre.tokyo -uguuchantele.com -uh7w5t.us -uha.kr -uhbqsboyg.shop -uhcbook.tk -uhds.tk -uhefmail.com -uhewl684.monster -uhfnk1.site -uhhu.ru -uhjyzglhrs.pl -uhmail.com -uhmbrehluh.com -uho1nhelxmk.ga -uho1nhelxmk.gq -uho1nhelxmk.ml -uho1nhelxmk.tk -uhodmsk.ru -uhoxiy.us -uhrx.site -uhsbriarp.shop -uhtgq.com -uhtso.com -uhyea.com -ui-feed.com -uiaep1.site -uibbahwsx.xyz -uibc.club -uicegroups.com -uidckjut.shop -uigfruk8.com -uighugugui.com -uikd.com -uilfemcjsn.pl -uimove.xyz -uinta.tech -uipvu.site -uiqaourlu.pl -uish6.info -uiu.us -uiy7ob.info -uj0sx.info -ujafmail.com -ujames3nh.com -ujapbk1aiau4qwfu.cf -ujapbk1aiau4qwfu.ga -ujapbk1aiau4qwfu.gq -ujapbk1aiau4qwfu.ml -ujapbk1aiau4qwfu.tk -ujaw.net -ujbsale.top -ujcss.live -ujdah.us -ujgmn.us -ujicoba10.xyz -ujicoba12.xyz -ujicoba14.xyz -ujicoba8.xyz -ujicoba9.xyz -ujijima1129.gq -ujkuwkni.shop -ujl1gf.us -ujm1ck.us -ujmail.com -ujrmail.com -ujtdt.live -ujuzesyz.swiebodzin.pl -ujxspots.com -uk-beauty.co.uk -uk-draw.com -uk-nedv.ru -uk-tv24news.site -uk-tvshow.com -uk-unitedkingdom.cf -uk-unitedkingdom.ga -uk-unitedkingdom.gq -uk-unitedkingdom.ml -uk-unitedkingdom.tk -uk.flu.cc -uk.igg.biz -uk.nut.cc -uk.org -uk.slowdeer.com -uk.to -uk90es.us -ukachettrshop.online -ukairmax4cheap.com -ukairmaxshoe.com -ukboer.cc -ukbootsugg.co.uk -ukcompanies.org -ukcraps.com -ukddamip.co -ukdhv.live -ukdressessale.com -ukeg.site -ukelsd.us -ukescortdirectories.com -ukeveningdresses.com -ukexample.com -ukflooringdirect.com -ukfreeisp.co.uk -ukgaw.com -ukgaw.org -ukgeq.us -ukgfw.net -ukhollisterer.co.uk -ukhollisteroutlet4s.co.uk -ukhollisteroutlet4u.co.uk -ukhollisteroutletlondon.co.uk -ukhost-uk.co.uk -ukilo3.site -ukimail.com -ukip.net -ukipbroadband.com -ukiperemastetesendirishop.com -ukjton.cf -ukjton.ga -ukjton.gq -ukjton.ml -ukjton.tk -ukladkaasfalt.ru -ukld.ru -ukleadingb2b.info -uklonnalog.xyz -uklouboutinuk.com -uklouboutinuksale.com -uklouisvuittonoutletzt.co.uk -ukmail.com -ukmask-force.com -ukmaskforce.com -ukmuvkddo.pl -ukniketrainerssale.com -uknowmyname.info -uko.kr -uko6nx.us -ukolhgfr.mns.uk -ukonline.com -ukoutletkarenmillendresses.org -ukoxqt.us -ukpayday24.com -ukpensionsadvisor.tk -ukpostmail.com -ukr-nedv.ru -ukr-po-v.co.cc -ukrainaharnagay.shn-host.ru -ukraine-gox.ru -ukraine-onli.com -ukraingate.news -ukrainianidea.org -ukrainigate.news -ukrgov.com -ukrolika.ru -ukrtovar.ru -uks5.com -uksmm.biz -uksnapback.com -uksnapbackcap.com -uksnapbackcaps.com -uksnapbackhat.com -uksnapbacks.com -uksurveyors.org -ukswingersmeet.com -uktaxrefund.info -uktf3s.online -uktrainers4sale.com -uktrainersale.com -uktrainerssale.com -ukttht.xyz -ukvisa.space -ukxgvjxxx.shop -ukyfemfwc.pl -ukyjgs.us -ukymail.com -ukzjrnmfguxm7rp.xyz -ul888.net -ulahadigung.cf -ulahadigung.ga -ulahadigung.gq -ulahadigung.ml -ulahadigung.tk -ulahadigungproject.cf -ulahadigungproject.ga -ulahadigungproject.gq -ulahadigungproject.ml -ulahadigungproject.tk -ulaptopsn.com -ularolelay.cf -ularonline.net -ularonline.org -ulascimselam.tk -ulck4w.us -ulconto.cf -ulconto.ga -ulconto.ml -ulconto.tk -ulcred.com -ulemail.com -uletqq.com -uleviaku.xyz -ulgran-stav.ru -ulidgid.cf -ulidgid.ga -ulidgid.ml -ulidgid.tk -ulipox.xyz -ulitimsuda.xyz -ullife.info -ullyyd.icu -ulmich.edu -ulolan.host -ulotrichous.site -ulovdu.cf -ulovdu.ga -ulovdu.gq -ulovdu.ml -ulovdu.tk -ulovomania.ru -uloxh.icu -ulpxot.us -ulqoirraschifer.cf -ulqoirraschifer.ga -ulqoirraschifer.gq -ulqoirraschifer.ml -ulqoirraschifer.tk -ulsters.best -ultamaytumpools.net -ultdeliquid.com -ultdesign.ru -ulteja.cf -ulteja.ga -ulteja.gq -ulteja.ml -ulteja.tk -ultiemestudent.online -ultijar.cf -ultijar.ga -ultijar.gq -ultijar.ml -ultijar.tk -ultimahoramadrid.com -ultimateaussieadventure.com -ultimatebusinessservices.com -ultimatedronestore.net -ultimateheartvisions.com -ultimatejewelrydesigns.com -ultimatelawmarketing.com -ultimatemediaconcepts.net -ultimatesystems.xyz -ultimateteamsite.com -ultimatetoys.club -ultimi-prodotti.fun -ultimotech45.xyz -ultiselect-malelifestyletoday.com -ultiselect-malenow.com -ultra-craft.ru -ultra-nyc.com -ultra.fyi -ultrabet128.com -ultrabet144.com -ultrabet184.com -ultrabet189.com -ultrabet193.com -ultrabet200.com -ultrabloodsugar.com -ultrada.ru -ultradrugbuy.com -ultrafan.site -ultrafitnessguide.com -ultraimperialism.best -ultraleverage.com -ultraliffe.space -ultralink.store -ultramovie.biz -ultramoviestreams.com -ultraocr.com -ultraperformans.online -ultraschallanlagen.de -ultraslimdvr.com -ultrasoundtherapies.com -ultrasoundtreatments.com -ultraste.ml -ultrawebb.com -ultrawit.online -ultraxmail.pw -ultrazeelwatchluxnow.com -ultronbet.com -ultrtime.org.ua -uluadam.com -ulucky.club -ulucky.net -ulumdocab.xyz -ulunpasadgo.ru -ulusalkalipcilikzirvesi.org -ulusalmedya.net -ulusuhaliyikama.com -ulxag.us -ulyufyjwwrm4sni.xyz -ulzlemwzyx.pl -ulzlfh.us -um0vwn.us -um2dq7.us -um85.com -umail.net -umail2.com -umail365.com -umail4less.bid -umail4less.men -umailbox.net -umailz.com -umakanth.online -umanit.cloud -umanit.dev -umanit.net -umanit.online -umanit.space -umanit.store -umanit.us -umauma.cd -umbrellainvesting.xyz -umbrellascolors.info -umbrila.com -umc67.space -umcygsyolytu.site -ume-sk.com -umedis.org -umehlunua.pl -umessage.cf -umgewichtzuverlieren.com -umgqpw.info -umgwali.org -umhyri.site -umibenefits.com -umica.com -umicon-crimea.ru -umin12.com -uminu.com -umka-mgn.ru -umlesin.ru -umm77.com -ummail.com -ummoh.com -umnenkie-deti.ru -umniy-zavod.ru -umode.net -umprotat.cf -umprotat.ga -umprotat.gq -umprotat.ml -umprotat.tk -umraniyeanadolulisesi.xyz -umrika.com -umrn.ga -umrn.gq -umrn.ml -umrohdulu.com -umscoltd.com -umss.de -umtmusic.com -umuey.com -umumwqrb9.pl -umy.kr -umyld5.us -umynv.us -un99ulq.xyz -unabla.cf -unabla.ga -unabla.ml -unaccompaniedminers.com -unadmo.cf -unadmo.gq -unadmo.ml -unadmo.tk -unadornment.best -unakihn.info -unalbaby.biz -unalcas.cf -unalcas.ga -unalcas.gq -unalcas.ml -unalcas.tk -unalstore.xyz -unambiguous.net -unamiradafinanciera.com -unanon.cf -unanon.gq -unanon.tk -unappartalacle.com -unasolaviva.com -unavida.com -unbanq.com -unbedarft.love -unblock.dog -unblockedgamesrun.com -unblockit.buzz -unblockit.club -unblockit.link -unblockproxy.one -unc.app -uncause.org -uncensored.rf.gd -unchained.city -unchanti.cf -unchanti.ga -unchanti.gq -unchanti.ml -unchanti.tk -unclebobscoupons.com -unclecode.stream -unclepetestakeaway.com -unclesamstakeaway.com -unclesamswexford.com -unclest.icu -uncletha.us -uncletr.icu -unclick.ru -uncoma.cf -uncoma.ga -uncoma.gq -uncoma.tk -uncommonsenseunlimited.com -uncond.us -uncoy.live -uncuvend.cf -uncuvend.ga -uncuvend.gq -uncuvend.tk -undeadforum.com -undefinedtreat.xyz -under30finance.com -underangelswing.org -undercases.com -underemphasize323ug.online -underfetwx.space -undergmail.com -underirxtd.site -underlipserv.info -underpoddk.space -undersdotw.space -undersell-info-shop.site -undersell-stock-sale.site -undersky.org.ua -understew.com -undertheradar.site -undeva.net -undfans.com -undiagnosed.net -undime.ru -undme.xyz -undo.it -undochemo.com -undol-kazanskijhram.ru -undoredo.online -undoubtedchanelforsale.com -undressyouressence.com -undroldintho.website -undwelsu.cf -undwelsu.ga -undwelsu.gq -undwelsu.ml -undwelsu.tk -uneccu.ga -uneccu.gq -uneccu.ml -uneccu.tk -unefty.site -unelignepourlavie.com -unelos.cf -unelos.ml -unelos.tk -unenex.cf -unenex.ga -unenex.gq -unenex.ml -uneppwqi.pl -unesconaturebg.info -unetus.online -uneverse.ru -unevideox.fr -unfao.net -unfibbed.best -unfilmx.fr -unfollowersforinsta.com -unforenppf.space -ungdomar.com -ungenickt-183g5s0.tk -ungenickt-ah3qz6d.tk -ungenickt-ah47am9.tk -ungenickt-freshmen.ml -ungenickt-rubymail.tk -ungeniert.love -unggulpkr.com -unggulpoker.com -ungjuris.site -ungolfclubs.com -unheatedgems.net -unhoused.network -uni-proxies.com -unibahis3.com -unibetplay.asia -unibloom.host -unibooks.site -unicersalcreditsolved.com -unichain.us -unichell.fun -unicity.name -unicity.shop -unicity.tech -unicodeworld.com -unicorn-restaurant.com -unicorngirlrock.com -unicornsforsocialism.com -unicorntoday.com -unicreatures.com -unicredit.tk -unids.com -uniduniv.shop -unif8nthemsmnp.cf -unif8nthemsmnp.ga -unif8nthemsmnp.gq -unif8nthemsmnp.ml -unif8nthemsmnp.tk -unifaction.com -uniform.november.aolmail.top -uniformpapa.wollomail.top -unifyfxu.com -unihash.info -unihash.net -unijnedotacje.info.pl -unikafester.se -unikle.com -unilend.info -unimail.com -unimark.org -union-trade-hit.ru -unioncity.florist -unionsport.net -uniontou.us -uniqmachines.com -uniqo.xyz -unique3d.com -uniquebedroom-au.com -uniquebrand.pl -uniqueqq.info -uniqueseo.pl -uniquesoftwaresolutionsllc.com -uniquesolution.ru -uniqweb.space -unireaurzicenikaput.com -unirom.ga -unirom.gq -unirom.ml -unirom.tk -uniros.ru -uniruniv.shop -unisal.ngo -unisexjewelry.org -unisystem.store -unit7lahaina.com -unitconversiontool.com -unite.cloudns.asia -unitebirth.org -unitedasia.club -unitedasia.marketing -unitedasia.network -unitedasia.online -unitedbullionexchange.com -uniteditcare.com -unitedjiu-jitsu.com -unitedmartialartskaty.com -unitednpeace.org -unitedstatesostrich.com -unitedstatesvdonaldtrump.com -unitedstormadjusters.org -unitmate.com -unitycaus.xyz -unitymail.me -unitymail.pro -unityofgulfbreeze.org -unityofstudents.com -univ21.com -universablockchain.tech -universal388.net -universal388.org -universalassetsportfolio.com -universalcoders.com -universalcreditbuilder.com -universalcreditfile.com -universalcreditlimit.com -universalcreditor.com -universalcreditscores.com -universalfilm.ru -universalkabbalahcommunities.org -universallightkeys.com -universalsecurity.cd -universaltextures.com -universe-rp.su -universenews.site -universidadditella.org -universidadebiblica.net -universityincanada.info -universityla.edu -univestycoty.com -univibrasyon.com -univocal.site -univocalic.xyz -univunid.shop -uniwetten.com -unix.university -unixproject.ru -unjabazaar.com -unjhaapmcbazar.com -unjhabajaar.com -unjouruncercueil.com -unjunkmail.com -unkempocys.space -unkn0wn.ws -unknmail.com -unknown.pizza -unknownscams.com -unlightly.site -unlimit.com -unlimit.email -unlimitedbodies.com -unlimitedfullmoviedownload.tk -unlimitedlinuxhosting.com -unlimitedlinuxresellerhosting.com -unlimitedreviews.com -unlimitedwebhostingindia.com -unlimpokecoins.org -unlockallnetflix.com -unlofty.best -unmadeinchina.net -unmail.com -unmail.ru -unmetered.ltd -unmetered.nu -unmetered.se -unmetv.com -unmoeglich.love -unnarf.icu -unnitv.com -unnuhol.cf -unnuhol.ga -unnuhol.gq -unnuhol.ml -unnuhol.tk -unofyfcu.com -unogoalz.club -unoinku.com -unomail.com -unomail9.com -unopol-bis.pl -unorid.cf -unorid.ga -unorid.ml -unorid.tk -unot.in -unoutta.cf -unoutta.ga -unoutta.gq -unoutta.tk -unpastore.co -unpermwbru.space -unpresumidence.xyz -unpromptedhappiness.com -unquesvsoy.space -unrafo.cf -unrafo.ga -unrafo.gq -unrafo.ml -unrafo.tk -unraveled.us -unrealsoft.tk -unregenerate.best -unrodi.xyz -unsacred.net -unseen.eu -unseen.is -unshift.com -unslack.info -unsoilnwyr.space -unspeakablebeauty.com -unspokendad.com -unstcdskz.shop -unsy3woc.aid.pl -untaggableapp.com -untech.biz -untehal.cf -untehal.gq -untehal.ml -untehal.tk -untertech.com -unthunpanb.cf -unthunpanb.gq -unthunpanb.tk -untilwerefree.com -untleecsio.cf -untleecsio.ga -untleecsio.gq -untleecsio.ml -untouchedsiberia.ru -untract.com -untrustedroot.com -untuk.us -unubvq.us -ununlai.cf -ununlai.ga -ununlai.gq -ununlai.ml -ununlai.tk -unusov.online -unvaledpsychological.net -unvaledpsychological.org -unvaledpsychological.us -unwiki.org -uny.kr -unzabajaar.com -unzabazar.com -uo8fylspuwh9c.cf -uo8fylspuwh9c.ga -uo8fylspuwh9c.gq -uo8fylspuwh9c.ml -uo8fylspuwh9c.tk -uo93a1bg7.pl -uoadoausa.pl -uof-assoc.org -uof196ye8i3v3j8.xyz -uoft.edu.com -uogimail.com -uohqbb.site -uojjhyhih.cf -uojjhyhih.ga -uojjhyhih.gq -uojjhyhih.ml -uola.org -uomhtf.icu -uonyc.org -uotluok.com -uouweoq132.info -uowonb.shop -up2date-nutzer-deutschland-12312422-de-checker.ru -up2date-nutzer-deutschland-12315242-de-checker.ru -up9zow.us -upak-vakuum.ru -upakologiya.ru -upamail.com -upapa.ooo -upatient.com -upb.university -upbrellastore.ru -upclube.com -upcmaill.com -upcomingthings.com -update-today.xyz -update-tpday.xyz -update1c.ru -updateinfodev.net -updates9z.com -updateusermob.xyz -updating.page -updmysoft.icu -upelmail.com -upenflight.com -upentors.ru -upetreal.ru -upf7qtcvyeev.cf -upf7qtcvyeev.ga -upf7qtcvyeev.gq -upf7qtcvyeev.tk -upgcsjy.com -upgo.host -upgrademyconsciousness.com -uphere.net -uphold.financial -upholdfinancial.financial -upholdfinancial.holdings -upholdfinancial.management -upholdfinancial.ventures -upholdpay.com -upholsbyeo.space -uphomail.ga -uphomeideas.info -uphonni.ru -upimage.net -upimail.com -upived.com -upived.online -upizzatakeaway.com -upl0adand1nsta11.com -uplandish.com -uplay-store.ru -upliftnow.com -uplinkdesign.com -uplipht.com -uploadboy.net -uploadnolimit.com -uploads.page -uploadscript.com -uploadshare.ru -uplvbg.com -upmail.com -upmedio.com -upmoe.com -upmovie.shop -upmovies.me -upnutrition.app -upoker.site -uponshoes.org -upozowac.info -upperpit.org -upppc.com -uppror.se -upraink.ru -uprightbroom.biz -uprightbroom.com -uprightbroom.us -uprightbrooms.biz -uprightbrooms.net -uprightbrooms.us -uproarinteractive.com -uprsoft.ru -upsetac.buzz -upsetbrav.icu -upsetbrav.xyz -upsetfo.email -upsetmone.space -upsetstudy.email -upshotpremium.club -upside.blog -upsidedownletters.xyz -upsiderealty.store -upsidetelemanagementinc.biz -upskirt-central.com -upskirtscr.com -upskrcnd.ml -upspecul.cf -upspecul.ga -upspecul.gq -upspecul.tk -upstairsgallery.org -upstate.dev -upstatecadillacdealers.com -upstateverything.com -upterip.cf -upterip.gq -upterip.ml -upterip.tk -uptimebee.com -uptin.net -uptiwin.cf -uptiwin.ga -uptiwin.gq -uptiwin.ml -uptiwin.tk -upto1.shop -uptodate.tech -uptownartsgranburytx.com -uptrendwindsor.com -uptuber.info -upumail.com -upurfiles.com -upvid.club -upvid.website -upvsi.live -upvue.com -upwithme.com -upwwpgjvj.shop -upy.kr -upyou.online -uq333.com -uq8c.us -uq8kpl.us -uqcgga04i1gfbqf.cf -uqcgga04i1gfbqf.ga -uqcgga04i1gfbqf.gq -uqcgga04i1gfbqf.ml -uqcgga04i1gfbqf.tk -uqdxyoij.auto.pl -uqemail.com -uqghq6tvq1p8c56.cf -uqghq6tvq1p8c56.ga -uqghq6tvq1p8c56.gq -uqghq6tvq1p8c56.ml -uqghq6tvq1p8c56.tk -uqmail.com -uqofr.com -uqopmail.com -uqxcmcjdvvvx32.cf -uqxcmcjdvvvx32.ga -uqxcmcjdvvvx32.gq -uqxcmcjdvvvx32.ml -uqxcmcjdvvvx32.tk -uqxgbt.us -uqxgz.com -uqxo.us -urabbow.cf -urabbow.gq -urabbow.tk -uradresnsk.ru -uraldc.ru -uralidze.ru -uralmaxx.ru -uralmer.ru -uralmet-ekb.ru -uralplay.ru -uralschool25.ru -uralsk-airport.ru -uralskie-pelmeni-bilety.ru -uralviayli.host -uran.realty -uranai-soudan.info -urayuliya.ru -urbanban.com -urbanblackpix.space -urbanbreaks.com -urbancampout.icu -urbanchannel.info -urbanchannel.live -urbanchickencoop.com -urbancowboypoetry.com -urbanfamilyfoundation.org -urbani.ph -urbanizacion.biz -urbanized.us -urbanlanguageadventures.com -urbanlegendsvideo.com -urbanloose.com -urbannw.org -urbanoaks.community -urbanoaks.properties -urbanoaks.us -urbanquarter.co -urbanspacepractice.com -urbanstand.com -urbanstudios.online -urbanvelo.ru -urbaza.com -urbsound.com -urcarfresheners.irish -urcemxrmd.pl -urchatz.ga -urdubbc.us -uredemail.com -ureee.us -ureforp.com -uremail.com -uremno.ga -uremno.gq -uremno.ml -urepair.site -urewsao.online -urfadegerkaybi.com -urfaliibo.xyz -urfalimrestaurant.com -urfalimrestaurant.xyz -urfapazari.net -urfavtech.biz -urfey.com -urfunktion.se -urgamebox.com -urgeinnovationlesson.website -urhen.com -urid-answer.ru -urirmail.com -urist-agunova495.ru -url.gen.in -urleur.com -urlina.ru -urlmoe.com -urlre.com -urltc.com -urlux.ru -urlwave.org -urlwiki.com -urmoney.icu -urmosa.ru -uroboros-team.ru -urodzinydlaadzieci.pl -uroetueptriwe.cz.cc -uroid.com -uroki-logopeda.ru -urokitv.ru -urologcenter.ru -uronva.com -urotrin-supershop.ru -urotrin62.ru -urotrinium.ru -urotrinz-supershop.ru -urrala.cf -urrala.ga -urrala.gq -urrala.tk -urs4kd9f2aufma7.xyz -ursdursh.shop -urshursd.shop -ursms.ru -urstar.site -urta.cz -urthmovement.org -urtinu.cf -urtinu.ga -urtinu.gq -urtinu.ml -uruarurqup5ri9s28ki.cf -uruarurqup5ri9s28ki.ga -uruarurqup5ri9s28ki.gq -uruarurqup5ri9s28ki.ml -uruarurqup5ri9s28ki.tk -urugvai-nedv.ru -urules.ru -urulsour.cf -urulsour.ga -urulsour.gq -urulsour.ml -urulsour.tk -urx7.com -urzelni.cf -urzelni.ga -urzelni.gq -urzelni.ml -urzelni.tk -us-bets.com -us-cup.com -us-ranch.com -us-uggboots.com -us.af -us.armymil.com -us.dlink.cf -us.dlink.gq -us.monkeywerks.net -us.tk -us.to -us315.xyz -us3day.com -us7day.com -usa-cc.usa.cc -usa-gov.cf -usa-gov.ga -usa-gov.gq -usa-gov.ml -usa-gov.tk -usa-lasvegas.com -usa-loanmods.biz -usa-mail.cf -usa-mail.ga -usa-mail.gq -usa-mail.ml -usa-nedv.ru -usa-nevada.com -usa-newjersey.com -usa-newyorkcity.com -usa-northcarolina.com -usa-tooday.biz -usa.cc -usa.isgre.at -usa623.gq -usaacrdmail.com -usaagents.com -usaairjordann.com -usabemestarfit.icu -usabestturmeric.net -usabookies.com -usabrains.us -usabrandhover.space -usabs.org -usabusinesslendingcoonline.com -usacasinoo.se -usacentrall.com -usachan.cf -usachan.gq -usachan.ml -usacityfacts.com -usactive.ru -usadaniesstore.com -usadphi.cf -usadphi.ga -usadphi.gq -usadphi.tk -usaf.dmtc.press -usagoodloan.com -usahandbagsonlinestorecoach.com -usahapoker.org -usahavanastore.com -usaindiananewyear.com -usajacketoutletsale.com -usakataturkioo.com -usakataturkioo.xyz -usakca.xyz -usakliuncular.xyz -usako.be -usako.net -usakteknikyapi.xyz -usalanmak.ga -usalanmak.ml -usalanmak.tk -usaliffebody.online -usaliffebody.site -usaliffebody.store -usalol.ru -usalvmalls.com -usamail.cf -usamail.com -usamail.gq -usamail.ml -usaohionewyears.com -usaonline.biz -usaoppo.com -usaotong.com -usapodcasd.com -usapurse.com -usarealme.com -usareplicawatch.com -usariderclothing.com -usartroreser.ru -usasyracuseoffc.com -usatelor.com -usatennesseenewyears.com -usatexasnewyears.com -usatradepro.com -usaultraliffe.host -usaultraliffe.website -usaunldqc.shop -usaveroofficial.com -usavsdonaldtrump.com -usavtrump.com -usawers.online -usawisconsinnewyear.com -usayoman.com -usayummy.com -usbc.be -usbcspot.com -usbdirect.ca -usbeefcompany.com -usbetter20.xyz -usbgadgetsusage.info -usbing.club -usbmicrophone.org.uk -usbvap.com -uscalfgu.biz -uscaves.com -uscbpimmegration.info -uscemrounds.com -uschalap.website -uschroniclenews.com -usclub.club -uscoachoutletstoreonlinezt.com -uscosplay.com -usda-loan.org -usdeal.us -usdebate.com -usdx.org -usdy.org -useaipins.com -useamerica.info -useappfacebook.tk -useblgs.xyz -useblog.xyz -useblogs.xyz -used-cars-uae.com -used-product.fr -usedate.online -usedcarsinpl.eu -usedcarsinqatar.com -usedcarsjacksonms.xyz -usedhospitalbeds.com -usedhospitalbeds.net -usedhospitalbeds.org -usedtoloves.com -useful-page.club -usefultipsforme.com -usefultools.pro -useglmrlds.site -useglz.com -usehealth.club -useithtra.site -usellwebuyfast.com -usemail.xyz -usenergypro.com -usenet.deals -usenet.sale -usenetmail.tk -useplace.ru -user-report.site -user.bottesuggds.com -user.peoplesocialspace.com -user.school -usercoupon.com -userdrivvers.ru -userfus.cf -useriostligg-confirmed.com -useriostligg-meet-backup.com -useriostligg-meet.com -usermobinfonew.top -usermobinfoupdate.com -userology.com -users.idbloc.co -users.totaldrama.net -userseo.ga -userwfargoupdate.com -userwfnewdev.com -usesinfo.com -usf.biz -usfai.xyz -usfeu-nich.ru -usgifter.com -usharingk.com -ushijima1129.cf -ushijima1129.ga -ushijima1129.gq -ushijima1129.ml -ushijima1129.tk -ushondaparts.com -ushortop.site -ushouldknowabout-1.site -ushwy287.com -usiaj.com -usingin.shop -usinsk-detsad22.ru -usiportal.ru -usitv.ga -uslgwcxmk.shop -uslouisvuittondamier.com -uslove.xyz -usloviyabankrot.xyz -uslugi-i-tovary.ru -uslugiseo.warszawa.pl -uslyn.com -usmailstar.com -usmediaweb.net -usn-dlya-ipe.ru -usn.pw -usnacewf.site -usnetads.online -usodellavoce.net -usoiv.com -uspeakw.com -uspermitservices.com -usps5.com -usps9.com -uspyparky.com -usrrs.us -ussat.one -ussolarpump.com -ussv.club -ustabbettsnupp2020.xyz -ustabetsnup.xyz -ustabilbettingsnap.xyz -ustabilbettsnapp.xyz -ustabilitybettingsnapp.xyz -ustayapisoke.xyz -ustins.ru -ustolur131.com -ustreamy.xyz -usurpator.ru -usyu.xyz -usywjsm.xyz -uszrn.us -ut-vacationrentals.com -ut432.com -ut6jlkt9.pl -ut6rtiy1ajr.ga -ut6rtiy1ajr.gq -ut6rtiy1ajr.ml -ut6rtiy1ajr.tk -ut7pf.us -ut990.com -utacloud.com -utahcann.org -utahdispensaryassociation.org -utahmail.com -utahmicrosoft.com -utahrockproducts.com -utangsss.online -utc7xrlttynuhc.cf -utc7xrlttynuhc.ga -utc7xrlttynuhc.gq -utc7xrlttynuhc.ml -utc7xrlttynuhc.tk -utcfxpbva.shop -utclubsxu.com -utcoiproc.cf -utcoiproc.ga -utcoiproc.tk -ute15.space -utechcomp.ru -utelzcpd.shop -utgreto.org -utgunlistings.com -uthalfpricedlistings.com -uthebettsnaps.xyz -uthruthg.shop -uththandi.com -uthwellsnewuser.com -utiket.us -utilitcrgg.space -utilities-online.info -utilitiesshop.futbol -utilitservis.ru -utilized659gg.online -utilqr.com -utilsans.ru -utimatebuilder.com -utimatesports.com -utime.space -utjuji.site -utmail.com -utoi.cu.uk -utoken.fund -utoo.email -utooemail.com -utool.com -utool.us -utopiacosmetic.xyz -utopiangiggly.com -utplexpotrabajos.com -utraisk.xyz -utsav-food.com -utsupma.cf -utsupma.ga -utsupma.gq -utsupma.ml -utsupma.tk -utterloos.us -utterrug.us -utterse.email -utthere.shop -uttmkl.site -uttoymdkyokix6b3.cf -uttoymdkyokix6b3.ga -uttoymdkyokix6b3.gq -uttoymdkyokix6b3.ml -uttoymdkyokix6b3.tk -uttvgar633r.cf -uttvgar633r.ga -uttvgar633r.gq -uttvgar633r.ml -uttvgar633r.tk -utubemp3.net -utwevq886bwc.cf -utwevq886bwc.ga -utwevq886bwc.gq -utwevq886bwc.ml -utwevq886bwc.tk -utxre1.site -utyneypmn.shop -uu.gl -uu1.pl -uu18269.com -uu2.ovh -uu34.space -uu36.space -uu38.space -uu39.space -uu41.space -uu42.space -uu486.com -uu57822.com -uu7wqv.ru -uu9827.com -uudimail.com -uufan.xyz -uugmail.com -uuhhxk.us -uuigjm.shop -uujewellrys.site -uujrh3886ffc.com -uukx.info -uul.pl -uultraashop.space -uuluu.net -uuluu.org -uumail.com -uumjdnff.pl -uunfg.com -uunifonykrakow.pl -uurbeheer.online -uurksjb7guo0.cf -uurksjb7guo0.ga -uurksjb7guo0.gq -uurksjb7guo0.ml -uurksjb7guo0.tk -uuroalaldoadkgk058.cf -uushoes.ru -uuu062.com -uuu813.com -uuups.ru -uuvk.ru -uv7v.com -uv8w.com -uvamail.com -uvdi.net -uvelichenie-grudi-kak.ru -uvelichit-grud.ru -uvezem.su -uvidetsmotret.ru -uvmail.com -uvomail.com -uvoofiwy.pl -uvrz8u52b.xyz -uvsgpctdl.shop -uvsvalue.com -uvvc.info -uvy.kr -uvyuviyopi.cf -uvyuviyopi.ga -uvyuviyopi.gq -uvyuviyopi.ml -uvyuviyopi.tk -uw333.com -uw5t6ds54.com -uw88.info -uw88.online -uw88.org -uwa7tq.info -uwag.org -uwamail.com -uwated.win -uwciw.us -uwdiscount.online -uwebmail.live -uwemail.com -uwentira.ga -uwhouse.com -uwhouse.net -uwillsuc.pw -uwimail.com -uwin90.online -uwington.icu -uwjtid.shop -uwmail.com -uwn5.xyz -uwomail.com -uwonym.ga -uwork4.us -uwtahw.site -uwu.lv -uwuefr.com -uwwmog.com -ux.dob.jp -ux.uk.to -uxcez1.site -uxdes54.com -uxlxpc2df3s.pl -uxmco.live -uxqp2019.com -uxqp2020.com -uxs14gvxcmzu.cf -uxs14gvxcmzu.ga -uxs14gvxcmzu.gq -uxs14gvxcmzu.ml -uxs14gvxcmzu.tk -uxtpht.us -uxxx.fun -uxyvyq.best -uxzicou.pl -uy77.xyz -uydagdmzsc.cf -uydagdmzsc.ga -uydagdmzsc.gq -uydagdmzsc.ml -uydagdmzsc.tk -uyemail.com -uyfs58-mail.xyz -uygunboyaci.com -uyhip.com -uyinnerssa.space -uyinnerssa7.space -uyizeaw8.com -uyjo.com -uymail.com -uyp5qbqidg.cf -uyp5qbqidg.ga -uyp5qbqidg.gq -uyp5qbqidg.ml -uyp5qbqidg.tk -uypcv.club -uyu.kr -uyv2d.us -uywnfoymy.shop -uywxa2.com -uyx3rqgaghtlqe.cf -uyx3rqgaghtlqe.ga -uyx3rqgaghtlqe.gq -uyx3rqgaghtlqe.ml -uyx3rqgaghtlqe.tk -uz6tgwk.com -uzbekbazaar.com -uzbekistan-nedv.ru -uzbet.com -uzgrthjrfr4hdyy.gq -uziblt.us -uzip.site -uzmail.com -uzmancevap.org -uzmanlarteknik.xyz -uzmanolsun.com -uzmanyakala.com -uzn5sw.info -uzo-amsterdam.com -uzrip.com -uzu6ji.info -uzundiz.best -uzxia.cf -uzxia.com -uzxia.ga -uzxia.gq -uzxia.ml -uzxia.tk -uzy8wdijuzm.pl -v-a-v.de -v-bucks.money -v-dosuge.ru -v-kirove.ru -v-kuhne.ru -v-kv.com -v-mail.xyz -v-on-honey.com -v-pizdu.net -v-plus.pro -v-pyti.ru -v-rewards32.info -v-rros.ru -v-science.ru -v-soc.ru -v-twins101.com -v-wiz.com -v-wiz.net -v.jsonp.ro -v.northibm.com -v.polosburberry.com -v00qy9qx4hfmbbqf.cf -v00qy9qx4hfmbbqf.ga -v00qy9qx4hfmbbqf.gq -v00qy9qx4hfmbbqf.ml -v00qy9qx4hfmbbqf.tk -v0domwwkbyzh1vkgz.cf -v0domwwkbyzh1vkgz.ga -v0domwwkbyzh1vkgz.gq -v0domwwkbyzh1vkgz.ml -v0domwwkbyzh1vkgz.tk -v0p1gm.info -v13.com -v17001.com -v1ael70wn6387fb.xyz -v1bob.com -v1vnks.us -v21.me.uk -v250.cf -v250.ga -v250.gq -v250.ml -v250.tk -v27hb4zrfc.cf -v27hb4zrfc.ga -v27hb4zrfc.gq -v27hb4zrfc.ml -v27hb4zrfc.tk -v2fly.xyz -v2oekh.us -v2poker.org -v3bsb9rs4blktoj.cf -v3bsb9rs4blktoj.ga -v3bsb9rs4blktoj.gq -v3bsb9rs4blktoj.ml -v3bsb9rs4blktoj.tk -v3gate.net -v3lrsh.us -v3py.biz -v3vz2c.com -v4gdm4ipndpsk.cf -v4gdm4ipndpsk.ga -v4gdm4ipndpsk.gq -v4gdm4ipndpsk.ml -v4gdm4ipndpsk.tk -v4hgfjhgf.xyz -v4p.ru -v4uryn.site -v58tk1r6kp2ft01.cf -v58tk1r6kp2ft01.ga -v58tk1r6kp2ft01.gq -v58tk1r6kp2ft01.ml -v58tk1r6kp2ft01.tk -v5mec.us -v5qnoc.online -v5r6e.us -v62qa2.xyz -v6hosting.com -v6iexwlhb6n2hf.ga -v6iexwlhb6n2hf.gq -v6iexwlhb6n2hf.ml -v6iexwlhb6n2hf.tk -v6ready.xyz -v6test.tokyo -v6uk95.site -v6v.dev -v7brxqo.pl -v7ecub.com -v7g2w7z76.pl -v7nk.us -v7px49yk.pl -v8.vin -v840xt.us -v8garagefloor.com -v8jumd.us -v8win.com -v8ze.icu -v9094.com -v9fxq.us -v9paying.com -v9pays.com -va-medic1.site -va-sale.online -va-sale.ru -va58beertrail.com -va5vsqerkpmsgibyk.cf -va5vsqerkpmsgibyk.ga -va5vsqerkpmsgibyk.gq -va5vsqerkpmsgibyk.ml -va5vsqerkpmsgibyk.tk -vaasfc4.tk -vaati.org -vacancies-job.info -vacancydom.ru -vacation-voyage-now.sale -vacationrental.zone -vacationrentals.business -vacationrentals.directory -vacationrentalshawaii.info -vacations.company -vacationtemp.com -vacationwithjason.com -vacavaca.ru -vacavillerentals.com -vaccimnatlod.xyz -vaccinepre.xyz -vachwu.com -vacpocket.com -vacuus.gq -vacwdlenws604.ml -vadable.xyz -vadalist.com -vadaway.icu -vadelect.xyz -vadick.design -vadlag.xyz -vadosh.website -vaefwm.us -vaffanculo.gq -vafleklassniki.ru -vafrem3456ails.com -vagabondvpn.pro -vagenland.cf -vagenland.ga -vagenland.gq -vagenland.ml -vagenland.tk -vagifx.net -vagilthe.ga -vagilthe.gq -vagilthe.ml -vaginkos.com -vagiserum.com -vagmag.com -vagnerlove.ru -vagrant.dev -vagsuerokgxim1inh.cf -vagsuerokgxim1inh.ga -vagsuerokgxim1inh.gq -vagsuerokgxim1inh.ml -vagsuerokgxim1inh.tk -vaguebuil.xyz -vagueen.xyz -vagueenfi.xyz -vaguefa.icu -vaguemodel.us -vaguetast.xyz -vaguproject.com -vagus.com -vahalfpricedlisting.com -vahalfpricelisting.com -vahallamarketing.net -vahidkhazaei.com -vahomeloansl1.com -vahsc.us -vaik.cf -vaik.ga -vaik.gq -vaik.ml -vaik.tk -vailhealthjobs.com -vailkilo.online -vailsnowboardlessons.com -vailuyen688.ga -vaimumi.cf -vaimumi.gq -vaimumi.tk -vainamail.club -vairs.org -vajdica.com -vajeri.info -vajobsri.cf -vajobsri.ga -vajobsri.gq -vajobsri.ml -vajobsri.tk -vajq8t6aiul.cf -vajq8t6aiul.ga -vajq8t6aiul.gq -vajq8t6aiul.ml -vajq8t6aiul.tk -vajra4d.com -vakifarabam.com -vaknin-law.com -vaktarjobb.se -valdezmail.men -valdisttul.ga -valdisttul.gq -valdisttul.ml -valdisttul.tk -valemail.net -valenceinvestment.com -valenciabackpackers.com -valencianista.com -valentin.best -valentinagrib.ru -valentinka.host -valentinobet2.online -valentinostakeaway.com -valentop.com -valeo-dar.ru -valerabet.ru -valeraverim.ru -valeria-ecclesie.com -valerieallenpowell.com -valeyventura.com -valhalladev.com -valiantgaming.net -valiantvineyards.net -valiantvineyardswinery.com -valibri.com -valid.digital -validsiegetech.info -valimodert.ru -valionkd.online -vallate.xyz -valledds.com -valleybrains.tech -valleyedit.com -valleyhealthphysicians.net -valleyhealthphysicians.org -valleyinnmistake.info -valleyinvestmentproperty.com -valleyrust.top -valleystudies.top -vallier.ru -valmosergraphics.com -valoitinc.biz -valorant-case.ru -valorant-drop.ru -valorant.codes -valorantasil.cf -valorantasil.ml -valorantasil.tk -valorantejder.cf -valorantejder.ga -valorantejder.ml -valorantejder.tk -valorantsjin.cf -valorantsjin.ml -valorantsjin.tk -valordinmuscle.com -valornades.com -valorstanding.com -valtresttranach.website -valtrexprime.com -valtrexrxonline.com -valuablegyan.com -value-digital.net -value-establish-point-stomach.xyz -value-group.net -valuebl.icu -valued.guide -valuedsport.store -valuesflyer.com -valueweboffers.com -valveball.net -valvebrush.biz -valvebrush.net -valvebrush.us -valvebrushes.biz -valvebrushes.us -valves-uk.com -valyutniy-kontrol.ru -vamosconfe.com -vamosdenovo.monster -vampiregirl.xyz -vampirelestad.live -vampresent.ru -van87.com -vanacken.xyz -vanairlines.xyz -vanbalen.icu -vanbil.tk -vancemail.men -vanclifts.info -vancouverenergyusa.com -vancouverhairsalons.com -vancouverislandrealestatecareer.com -vanderleimaciel.com -vandorrenn.com -vandstabmar.ga -vandstabmar.ml -vanessarobison.com -vanevans.xyz -vanheusden.site -vanhilleary.com -vanhoangtn1.ga -vanhoangtn1.ooo -vanhoangtn1.us -vanholtgroup.com -vaniercup52.com -vanilkin.ru -vanillalist.com -vankin.de -vanlilardernegi.com -vanmail.com -vanna-house.ru -vanneerbos.site -vanpirly.com -vanpoint.net -vantagepayment.com -vantaxi.pl -vanturtransfer.com -vanturtransfer.xyz -vanuatu-nedv.ru -vanvalu.linuxpl.info -vanvlachsen.com -vanxardmedia.com -vaparisy.info -vapecentral.ru -vapecpd.com -vapessenceuy.com -vapetaxi.ru -vapewildd.com -vapordu.cf -vapordu.ga -vapordu.gq -vapordu.ml -vapordu.tk -vaporizers776cv.online -vaporware.xyz -vappewild.com -var-2.site -varadeals.com -varag88.com -varantsigorta.com -vardanes.net -vardanes.org -varese-secure.com -varewn.site -varialomail.biz -variamize.com -varicoseveinslaser.com -varietyecompartners.com -varifya.space -varimlimon.com -varimmaltbira.com -variouscraft.ru -varkensoren.com -varlikholding.xyz -varmakir.cf -varmakir.ga -varmakir.gq -varna.vip -varnerllc.com -varnishbrush.net -varnishbrush.us -varnishbrushes.net -varout.com -varparide.com -varushka.ru -varyag51.ru -varzish-1xbet.net -vas-promokod.space -vasashing.fun -vasctechinc.com -vasectomize375xh.online -vash--mishka.ru -vash-promocod.website -vashakarta24.com -vasir.site -vasosrojosamericanos.com -vasquezcreeklodge.com -vasschlorin.cf -vasschlorin.ga -vasschlorin.gq -vasschlorin.ml -vast-03.com -vast-04.com -vasterbux.site -vastgoed.video -vastkey.com -vastorestaurante.net -vasvast.shop -vasy.site -vasyna.space -vaszerkolig.ru -vaszily.com -vatclinics.info -vatrel.com -vaudit.ru -vaughn.life -vauki.fun -vault.camp -vaultautoparts.com -vaultoffer.info -vaultpoint.us -vaultproject.dev -vaultsophia.com -vaultsophiaonline.com -vaultvision.app -vavacash.org -vavada777kasino.ru -vavadacazino.com -vawamu.info -vaxce.com -vaxport.online -vaxxport.online -vay.kr -vaybet38.com -vaycongso.vn -vaymail.com -vayme.com -vb17100astridcoleman.info -vb17101tesswalton.info -vb4cte.us -vb9vwd.us -vba.kr -vba.rzeszow.pl -vbalakovo.ru -vbdwreca.com -vbet.network -vbetstar.com -vbfaps.us -vbha0moqoig.ga -vbha0moqoig.ml -vbha0moqoig.tk -vbhoa.com -vbilet.com -vbkb050288.com -vbmvp.com -vbni.org -vbo.buzz -vbotanicalspa.com -vbpqap.us -vbrands.club -vbshopper.com -vbtsystem.site -vbusksk.xyz -vbwarez.net -vc58bo.info -vc9.net -vcamp.co -vcbmail.ga -vcbox.pro -vcfpn.space -vcgciw.club -vcgenk.com -vcghv0eyf3fr.cf -vcghv0eyf3fr.ga -vcghv0eyf3fr.gq -vcghv0eyf3fr.ml -vcghv0eyf3fr.tk -vchunger.games -vcicard.com -vcip5.us -vclvrq.icu -vcm.sk -vcmatchmaker.com -vcmfycxda.ml -vcnbzvers.site -vcplxm.us -vctel.com -vcticngsh5.ml -vctlwl.info -vcu26q-mail.xyz -vcwql.us -vcz.us -vcznb.us -vd-sale.online -vda.ro -vdaily.biz -vdaily.info -vdaymyvg.shop -vdbirxhg.shop -vdcasino366.com -vdcxnf.us -vddhs90.online -vdemegtic.shop -vdggehha.xyz -vdh.us -vdi-ms.com -vdieasy.com -vdig.com -vdims.com -vdione.com -vdlh0.us -vdmmhozx5kxeh.cf -vdmmhozx5kxeh.ga -vdmmhozx5kxeh.gq -vdmmhozx5kxeh.ml -vdmmhozx5kxeh.tk -vdnetmail.gdn -vdobromzdravyy.ru -vdomemilo.ru -vdownloader.email -vdp8ehmf.edu.pl -vdsound.ru -vdxm.com -vdy.itx.mybluehost.me -vdzbot.xyz -ve-101.com -ve-sale.online -ve-sale.ru -ve-v5.com -ve1droid.host -ve1f.net -ve1g.net -ve1i.net -ve1n.net -ve1p.net -ve1u.net -ve1v.net -ve1x.net -ve8zum01pfgqvm.cf -ve8zum01pfgqvm.ga -ve8zum01pfgqvm.gq -ve8zum01pfgqvm.ml -ve8zum01pfgqvm.tk -ve9xvwsmhks8wxpqst.cf -ve9xvwsmhks8wxpqst.ga -ve9xvwsmhks8wxpqst.gq -ve9xvwsmhks8wxpqst.ml -ve9xvwsmhks8wxpqst.tk -vealtex.online -veanlo.com -veat.ch -vebilewu.space -veboieye.space -vecene.net -vecijuo5.online -veckopengen.nu -veco.site -vecom.ltd -vect.org -vector-rzn.ru -vectorgo.site -vectoris.site -vedalholding.com -vedeniedelasud.xyz -vedic.site -vedid.com -vedioo.com -vedmail.com -vedojy.online -vedrolet.ru -veduco.xyz -vedula.com -vedv.de -veebee.cf -veebee.ga -veebee.gq -veebee.ml -veebee.tk -veee113.vip -veekcode.biz -veepex.com -veertjku.tk -veesms.com -veevacertification.com -vefdrq.us -vefspchlzs2qblgoodf.ga -vefspchlzs2qblgoodf.ml -vefspchlzs2qblgoodf.tk -veg2o.com -vega100mgtr.com -vegabet137.com -vegaeticaret.com -vegan-in-frankenthal.info -veganbargains.com -veganlifecoach.net -veganlogical.xyz -veganqueenrunnerbean.com -vegas-skills.com -vegas-x.app -vegas-x.biz -vegas368e.net -vegasbet.life -vegascasino.casino -vegaslim-official.online -vegaslimshop.online -vegasplus.ru -vegasrealestate.company -vegastickets.us -vegastour.pro -vegasworlds.com -vegemite.xyz -veggdekorasjon.site -veggiephiles.com -vegly.app -vegly.club -vegly.life -vegly.network -vegsthetime.org.ua -vegterlo.online -vehicle-blackbox-dvr.ru -vehicleowners.tk -vehiclestorageyubacity.com -vehinho.xyz -vehkud.us -veholdy.cf -veholdy.ga -veholdy.tk -vehw4ia60.xyz -veibelda.cf -veibelda.ga -veibelda.gq -veibelda.ml -veibelda.tk -veiligonlineprecedure.ru -vein-com.ru -veinaha.cf -veinaha.ga -veinaha.gq -veinaha.ml -veinaha.tk -veination.site -veiudo.tech -vejaalagoas.com -vejernews.com -vejohy.info -vekavu.info -vekbid.com -vektik.com -vektor-shop.ru -velar.cloud -velar.site -velarhost.com -velasdo.cf -velasdo.ga -velasdo.ml -velasdo.tk -velavadar.com -velbettdomino.com -veldahouse.co -veldmail.ga -velikos.host -velkam.org -velkanol.ru -velobotanicals.com -velobro.space -velocilight.com -velocities.space -velocity-digital.com -velocity-digital.org -velocitydigital.net -velomandryvo.xyz -veloped.us -velosegway.ru -velosiped-go.ru -velostocrat.com -velourareview.net -velourclothes.com -velourclothes.net -veloxmail.pw -veltean.com -velvetaroma.com -velvetshopping.net -vemaybaygiare.com -vemaybaytetgiare.com -veminia.com -vemmaelijahcarter.site -vemomail.win -vemple.info -vemrecik.com -vemser.com -ven8mf.com -venagoo.website -venanation.info -vendasml.ml -vendedores-premium.ml -vendedoresplatinum.ml -vendorbrands.com -vendorlinkusa.com -vendx.us -veneerdmd.com -veneersofficial.ru -veneersperfectsmile.ru -veneravalitova.ru -venesialottery.info -venesialottery.net -venesialottery.org -venesuela-nedv.ru -venezuelainc.com -venezuelanpro.com -venged.com -vengodwin.store -vengr-nedv.ru -venicedays.info -venka-mir.ru -venka.host -venmirack.cf -venmirack.gq -venmirack.tk -venok-mir.ru -venokbrus.ru -venompen.com -venomroleplay.ga -venomroleplay.tk -venomteam.ru -venosy.site -vent-krasnodar.ru -ventadepetardospirodexmurcia.com -ventamark.net -ventanamexico.info -ventanasvegas.com -ventastx.net -ventent.com -ventesflash75.com -ventgelteo.cf -ventgelteo.ga -ventgelteo.gq -ventgelteo.ml -ventgelteo.tk -venttanip.cf -venttanip.ml -venttanip.tk -venturacarpetcleaning.net -venturawaterwell.com -ventureschedule.com -ventureuoso.com -venturishost.com -venue-ars.com -venuears.com -venuedot.com -venusandmarssextoys.com -venuscicekcilik.xyz -venuselbow.recipes -venuselec.host -venusen.press -venusfactorreviews.co -venusgmv.net -venusocks.ru -venusstri.com -venweld.site -veo.kr -veomideg.cf -veomideg.ga -veomideg.gq -veomideg.ml -veomideg.tk -veona.pw -vepa.info -veperon.net -vepklvbuy.com -veqizuwu.website -ver0.cf -ver0.ga -ver0.gq -ver0.ml -ver0.tk -vera-zandbergen.nl -vera52.com -vera97.com -veraandaudrey.com -verajenkins.xyz -verajohnmuryo.com -veralucia.top -verarays.info -veratoiun.ga -verbee.ru -verboseguides.com -vercameab.cf -vercameab.ga -vercameab.gq -vercameab.ml -vercameab.tk -vercelli.cf -vercelli.ga -vercelli.gq -vercelli.ml -verconspat.cf -verconspat.ml -verconspat.tk -vercutemp.cf -vercutemp.ga -vercutemp.ml -vercutemp.tk -verdejo.com -verdetelecom.com -verdoto.cf -verdoto.ga -verdoto.gq -verdoto.ml -verdoto.tk -verdugolife.com -verenoxnetwork.online -verfisigca.xyz -vergiora.cf -vergiora.ga -vergiora.gq -vergiora.ml -vergiora.tk -verhonicaryan.com -veridiandyn.com -verificadas.tk -verified-real.net -verified.vote -verifiedbuyerscheme.com -verifiedbuyerscheme.org -verifyerror.online -verifykero.com -verifymail.cf -verifymail.ga -verifymail.gq -verifymail.ml -verifymail.win -veriguvenlik.com -veriifmail.com -verinic.net -verisign.cf -verisign.ga -verisign.gq -verissl.com -veritybusinesscenter.pl -veriyaz.com -veriyaz.net -verizondw.com -verkaufsstelle24.de -verkeersschoolalim.online -verkopenviabol.shop -verlo.casa -verlustfic.cf -verlustfic.gq -verlustfic.ml -vermagerentips24.xyz -vermontamazon.com -vermontcareers.com -vermontlinkedin.com -vermutlich.net -vernetzteshaus.me -verni-svoel.fun -vernichel.host -verniinternational.icu -vernipay.ru -verniplanet.icu -verniprava.com -vernisvoye.site -vernisystem.icu -vernivychet.ru -vernz.cf -vernz.ga -vernz.gq -vernz.ml -vernz.tk -verocourses.com -veroikasd.ml -veromodaonlineshop.com -veronateam.ru -veronisy.com -veropopshop.com -verossa-rp.ru -verozo.info -verprerock.ga -verprerock.gq -verprerock.ml -verrabahu.xyz -verrando.net -verrighde.cf -verrighde.ga -verrighde.ml -verrighde.tk -versaupe.cf -versaupe.ga -versaupe.ml -versaupe.tk -verseboard.com -versinet.com -versmesi.ga -versmesi.gq -versmesi.ml -versmesi.tk -verstanttran.cf -verstanttran.ga -verstanttran.gq -versteabags.gq -versteabags.ml -versteabags.tk -versuplitt.site -versusbooks.com -versustheghost.com -vertamo.cf -vertamo.ga -vertamo.gq -vertamo.ml -vertamo.tk -verterygiep.com -verticals.report -verticedecabo.com -vertigo.cd -vertigueiros.website -vertikali.site -vertiuoso.com -vertraut.love -vertraute.love -verumst.com -verweisnip.cf -verweisnip.ga -verweisnip.gq -verweisnip.ml -very-cheap-car-insurance.online -very-games.com -verybad.co.uk -verycheapcarinsurance.online -veryday.ch -veryday.eu -veryday.info -verydrunk.co.uk -veryfinepay.com -verymit.com -veryprice.co -veryrealemail.com -veryrude.co.uk -verytrendyshop.com -verywise.co.uk -verzekeringdeals.online -vesa.pw -vesiquvece.website -veska.pl -vespor.biz -vespor.info -vespor.net -vespor.online -vespor.org -vespor.xyz -vesteddjrr.space -vestgreensig.cf -vestgreensig.ga -vestgreensig.gq -vestgreensig.tk -vestigeschool.com -vestimed.ru -vestnikao.ru -vestniktm.ru -vestrelis.ga -vestrelis.ml -vestrelis.tk -vestrilga.cf -vestrilga.ml -vestrilga.tk -vet-impact.ong -vetaucanthocondao.com -vetechpayments.com -vetementuss.com -veteransbenefitsinc.icu -veteransinstem.org -veteranvanproject.com -veterinarnaya-kurkino11.ru -veterinaryproviders.org -vetklinikadmitrov.ru -vetlinkos.ru -vetmed22.website -vetofunhes.art -vetonound.site -vetpainters.com -vetpd.net -vetriangle.eu -vetro-colore.ru -vets-victories-dreams.net -vetsvictoriesdreams.com -vetsvictoriesdreams.net -vettechtoday.website -vettery.cf -vettery.gq -vettery.ml -vettery.tk -vety.site -veuduchalk.ga -veuduchalk.gq -veuduchalk.ml -vevacq.com -veve.decisivetalk.com -vevevevevery.ru -vevhjlks.cf -vevhjlks.ga -vevhjlks.ml -vevomail.cf -vevomail.ml -vevomail.tk -vevomail2.cf -vevomail2.ga -vevomail2.ml -vevomail2.tk -vevomail3.cf -vevomail3.ga -vevomail3.ml -vevomail3.tk -vevpqk.host -vewku.com -vewovegady.space -vex4.top -vexbug.us -vexotrol.com -vey0xl.com -veycanle.cf -veycanle.ga -veycanle.gq -veycanle.tk -veyera.tk -veyschoolsubt.cf -veyschoolsubt.ga -veyschoolsubt.gq -veyschoolsubt.ml -veyschoolsubt.tk -vezdehod-rent.ru -vezunchik-blog.ru -vf-sale.ru -vfbpdh.site -vfdikja.site -vfdvuo.us -vfemail.net -vffelbqst.shop -vfienvtua2dlahfi7.cf -vfienvtua2dlahfi7.ga -vfienvtua2dlahfi7.gq -vfienvtua2dlahfi7.ml -vfienvtua2dlahfi7.tk -vfile.org -vfj9g3vcnj7kadtty.cf -vfj9g3vcnj7kadtty.ga -vfj9g3vcnj7kadtty.gq -vfj9g3vcnj7kadtty.ml -vfj9g3vcnj7kadtty.tk -vfnvls.site -vfpkta.site -vfr3tz.site -vfru80.info -vfyodrokn.tk -vgamers.win -vgatineau.com -vgatodviadapter.com -vgb758.com -vgdbankrotstvo.ru -vge88.com -vgegadso.ru -vgfhfghfghfgh.tech -vgfjj85.pl -vgfxks.online -vggboutiqueenlignefr1.com -vglasses.com -vglobalnews.asia -vgmlnw.com -vgo-roulette.com -vgo-roulette.net -vgo-roulette.ru -vgoldmailer2.com -vgqgzqwg.shop -vgryhm.site -vgs28.com -vgs33.com -vgsbet.com -vgsreqqr564.cf -vgsreqqr564.ga -vgsreqqr564.gq -vgsreqqr564.ml -vgsreqqr564.tk -vgxwhriet.pl -vh-sale.online -vhak.org -vhan.tech -vhcoqj.us -vhdgroup.net -vhglvi6o.com -vhj.biz -vhmmanbetx.com -vhntp15yadrtz0.cf -vhntp15yadrtz0.ga -vhntp15yadrtz0.gq -vhntp15yadrtz0.ml -vhntp15yadrtz0.tk -vhobbi.ru -vhoff.com -vhpsc.us -vhw5ie.us -vhwiz8.us -vhwuph.rest -via-paypal.com -via.tokyo.jp -viableshoppingblog.club -viachinonk.ml -viacimex.info -viadodinheiro.com -viaferrata.net -viafordrivers.com -viagra-be.info -viagra-cheap.org -viagra-withoutadoctorprescription.com -viagra.com -viagra34.xyz -viagra88.shop -viagracy.com -viagrafoxcer.xyz -viagrageneric-usa.com -viagraigow.us -viagrakaufen.com -viagranowdirect.com -viagranrxbuyonlinerx.com -viagraonlineedshop.com -viagrasy.com -viagrawithoutadoctorprescription777.bid -viagraya.com -viaip.online -viajando.net -viajesatope.online -vialfishing.ru -viamobile.app -viamobileforcarriers.com -viamobileforshippers.com -viano.com -viantakte.ru -viarasno.cf -viarasno.ga -viarasno.ml -viarasno.tk -viasatelital.us -viascales.cf -viascales.ga -viascales.gq -viascales.ml -viascales.tk -viata.site -viata.space -viataestefrumoasa.site -vibejsk.host -viberi-tur.ru -vibhavram.com -vibi.cf -vibi4f1pc2xjk.cf -vibi4f1pc2xjk.ga -vibi4f1pc2xjk.gq -vibi4f1pc2xjk.ml -vibi4f1pc2xjk.tk -viblab.today -vibrantfaithmilestones.org -vibronic.site -vibupis.cf -vibupis.ga -vibupis.gq -vibupis.ml -vibupis.tk -vic-allen.com -vicaqq.com -vicdanhukuku.com -vicdanhukuku.xyz -vices.biz -vicfoban.cf -vicfoban.ga -vicfoban.ml -vicfoban.tk -vichnew.site -vicious.email -vicious.life -vickaentb.cf -vickaentb.ga -vickaentb.gq -vickaentb.ml -vickaentb.tk -vickeyhouse.co -vickeyhouse.com -vicloning.net -vicosgrill.com -victime.ninja -victimization206na.online -victor.whiskey.coayako.top -victor1.club -victorgabrielg.com -victoriagreen.mobi -victoriahousetakeaway.com -victoriaking55places.com -victoriantwins.com -victoriarcail.com -victoriasslots.com -victoriatakeaway.com -victoriazakopane.pl -victoriousrestoration.com -victorserge.ru -victorsierra.spithamail.top -victory-mag.ru -victoryboats.ru -victoryfarmsuganda.com -victoryforanimals.com -victorygardenv2.com -victorypointgames.org -victoryseminary.net -vidacriptomoneda.com -vidaneh.org -vidasole.com -vidchart.com -viddly.online -viddly.plus -viddly.site -viddsy.net -videgertools.info -video-16porno.fr -video-dating.info -video-dlj-tebya.ru -video-insanity.com -video-klass.ru -video-step.ru -video-tube-club.ru -video.ddnsking.com -video35.com -video4less.net -videoarenda.ru -videobell.ru -videobest-for-you.ru -videobuilda.com -videobut.com -videocalls.net -videochat.band -videochat.exposed -videochat.watch -videochat.wtf -videocht.com -videocorporation.ru -videodig.tk -videodr.us -videoeditors.org -videofilling.ru -videofilm.club -videogamefeed.info -videogameleadsheets.com -videogo49.com -videographer.agency -videographer.city -videographer.education -videographer.equipment -videographer.expert -videographer.global -videographer.group -videographer.legal -videographer.link -videographer.llc -videographer.ltd -videographer.productions -videographer.review -videographer.reviews -videographer.school -videographer.store -videographer.stream -videographer.studio -videographer.style -videographer.university -videographers.boutique -videographers.city -videographers.college -videographers.community -videographers.company -videographers.exchange -videographers.fan -videographers.global -videographers.guide -videographers.guru -videographers.legal -videographers.llc -videographers.ltd -videographers.page -videographers.productions -videographers.tips -videographers.website -videography.camera -videography.city -videography.click -videography.college -videography.community -videography.education -videography.equipment -videography.events -videography.foundation -videography.gallery -videography.global -videography.help -videography.productions -videography.review -videography.reviews -videography.site -videography.us -videohandle.com -videohandles.com -videohd-clip.ru -videohd-club.ru -videohdtv.site -videohdtv.tk -videoinfoblogs.com -videojuegos.icu -videojunke2018.com -videojurnal.ru -videokazdyideni.ru -videolovelock.net -videonabludenie-msk.ru -videonyanya.site -videoonlinecasino.tech -videophotos.ru -videoprosmotr.ru -videorealm.net -videored.site -videoregistrator-rus.space -videos-de-chasse.com -videos.mothere.com -videos.zonerig.com -videosliw.xyz -videossl.stream -videosx.blog -videosxxx.video -videotoob.ru -videotubegames.ru -videowap.site -videoxnxx.site -videoxred.site -videoxx-francais.fr -vidhosters.org -vidiboutique.site -viditag.com -vidltpvm.shop -vidnoe-beton-zavod.ru -vidoc.ru -vidred.cf -vidred.ga -vidred.gq -vidred.ml -vidred.tk -vidspot.xyz -vidssa.com -vidt.site -vidup.us -vidvila.icu -vidxnxx.site -vidxxx.fun -vidyo.site -vidywi.info -vieebee.cf -vieebee.ga -vieebee.gq -vieebee.tk -viehelpfolk.ga -viehelpfolk.gq -viehelpfolk.ml -vielove.com -vienna.cf -vientiane.blog -vientianebackpackershostel.com -vientianecarrental.net -vientianehostel.com -vieremat.cf -vieremat.gq -vieremat.tk -viergroup.ru -vieserli.cf -vieserli.ga -vieserli.gq -vieserli.ml -vieserli.tk -vietcafe.net -vietnam-nedv.ru -vietnam-travel-tours.info -vietnamesenannies.com -vietnamsflorist.net -vietnamsgift.net -vietnamtour360.com -vietnamtoursnews.com -vietnamtoursnews.net -vietnamtravelblog.info -vietnamvisas.net -vietpay.org -vietregtoday.site -vietuctour.com -vietvoters.org -vievibrant.com -viewarticle.mobi -viewcastmedia.com -viewcastmedia.net -viewcastmedia.org -viewinglifedictionary.com -viewleaders.com -viewpay.club -viewsitedesign.com -viewtechnology.info -viewworlds.com -viexymas.com -vifdjc.icu -vifes.se -viflix.site -vifocals.com -vigee.com -viggomobil.se -vigil4synod.org -vigilantkeep.net -vigilentveteran.com -vignirguobjarnarson.space -vigorhealth.ru -vigorstratagem-intellectualwisdomwisdominsider.com -vigra-tadacip.info -vigratadacip.info -vigrxpills.us -vigyapanti.com -vihost.ml -vihost.tk -vihxan.us -viiisummitperu.org -viineblog.xyz -viinnovation.com -viitorultau.club -viivaofficial.com -vijayanchor.com -vijoto.info -vikandow.com -vikaslin-ruraten.ru -vikfocye.shop -vikikredit.ru -vikingglass-kr.info -vikingpuresolutions.com -vikingsilkroad.xyz -vikingsonly.com -vikram-rao.com -viktminskningsnabbt.net -viktorgladchenko.ru -viktorina-2018.ru -viktorkedrovskiy.ru -vikylov.ru -vikyol.com -vil7xp.us -vilbarcpil.ga -vilbarcpil.gq -vilbarcpil.ml -vilbarcpil.tk -vile.ninja -vileblakkey.africa -villa-aina.com -villa-in-altea.site -villaairsms.com -villabhj.com -villadipuncak.com -villaforesta.studio -villageanimalclinicofdunwoody.com -villagecrestrehab.net -villagesoffairlakes.org -villagethemeparks.com -villageville.org -villapuncak.org -villarrealmail.men -villascondosamerica.com -villascondoseurope.com -villascondosusa.com -villastream.xyz -villatriestevegas.com -villekulla.email -villemolaque.info -villousproducts.com -vilnapresa.com -vilnuska.site -vilrata.cf -vilrata.ga -vilrata.gq -vilrata.tk -viltioni.cf -viltioni.ga -viltioni.gq -viltioni.ml -viltioni.tk -vilvefa.cf -vilvefa.ga -vilvefa.ml -vilvefa.tk -vilyzakh.ml -vimail24.com -vimailpro.net -vimi-kan.ru -vimmeter.com -vin-diesel.com -vinaclicks.com -vinas.host -vinatahouse.co -vincenoffc.com -vincentcreations.com -vincentjoness.com -vincentlegall.org -vincenza1818.site -vincenzosdrimnagh.com -vincenzositalianpizzeria.com -vincilamusica.shop -vincitop.com -vinclub.win -vincode24.ru -vinde.ru -vinder-life.ru -vineal.xyz -vinedali.site -vinerabazar.com -vinernet.com -vinetack.com -vineyardclinic.org -vineyardmetronorth.org -vingcesscar.cf -vingcesscar.ga -vingcesscar.gq -vingcesscar.ml -vingcesscar.tk -vingdera.cf -vingdera.ga -vingdera.ml -vingdera.tk -vingnammigh.cf -vingnammigh.ga -vingnammigh.ml -vingnammigh.tk -vinhsu.info -vinicolatresraices.com -vinnow.info -vino-sf.com -vino-veritas.ru -vino.ma -vinogradcentr.com -vinohrad.info -vinordknkz.ru -vinshipper.com -vinsmoke.tech -vinsshoptop.club -vintage-interior.ru -vintagecardiff.com -vintagecurrent.net -vintagefashion.de -vintagefashionblog.org -vintageranchwedding.com -vintageshop.store -vintagetrailer.info -vintange.com -vinted.org -vintedkids.com -vintee.club -vinviper.dev -vinviper.info -vinviper.org -vinyljudge.com -viocrypot.cf -viocrypot.ga -viocrypot.ml -viola.gq -violin.link -viollee.com -vionari.com -viotypog.ga -viotypog.gq -viotypog.tk -viouratel.ga -viouratel.gq -viouratel.ml -viouratel.tk -viovideo.com -viox.app -vip-aiptv.xyz -vip-asbet.site -vip-avtos.ru -vip-bal.ru -vip-clicker.ru -vip-dress.net -vip-food.biz -vip-intim-dosug.ru -vip-lovemagic.ru -vip-mail.ml -vip-mail.tk -vip-moyki.ru -vip-payday-loans.com -vip-replica1.eu -vip-smule.info -vip-sushi.ru -vip-timeclub.ru -vip-watches.ru -vip-watches1.eu -vip.aiot.eu.org -vip.boxmaill.com -vip.cool -vip.dmtc.press -vip.hstu.eu.org -vip.sohu.com -vip.sohu.net -vip.stu.office.gy -vip.tom.com -vip52.online -vip52.pro -vip5319.com -vip6372.com -vip666866.com -vip7777.net -vip9227.com -vip9stn.xyz -vipattendance.com -vipbd4.info -vipbet5.biz -vipchristianlouboutindiscount.com -vipclub.icu -vipcodes.info -vipconverter.org -vipdewapoker.com -vipdieta.info -vipdom-agoy.com -vipelin.info -vipelin.net -vipelin.site -vipenglishlearning.com -vipepe.com -viper.email -vipflix.xyz -vipfon.ru -vipgamemarket.ru -vipgod.ru -viphomeljjljk658.info -viphone.eu.org -viphop.ru -vipilitka.buzz -vipiskaegryult.xyz -vipizka-iz-egrp.ru -vipjis.top -viplasvegasparty.com -viplinz.ru -viplotto.net -viplovemagic.ru -viplvoutlet.com -vipmagi.ru -vipmail.in -vipmail.name -vipmail.net -vipmail.pw -vipmgm10.com -vipmovie.xyz -vipmp3.site -vipnikeairmax.co.uk -vippark29.com -vippark31.com -vippark37.com -vippark40.com -vippoker88.info -vippoker88.online -vippoker88.org -vipracing.icu -vipraybanuk.co.uk -vipsale2015online.com -vipsbet.com -vipsentence.ru -vipshkatulki.ru -vipsmail.us -vipsohu.net -vipstanok.info -viptaksitur.xyz -viptoto.info -viptupperware.ru -vipuskakcii.xyz -vipvolvos.info -vipweinisiren.com -vipwxb.com -vipxm.net -vipxtest.com -vir.waw.pl -viracochastore.xyz -viraginous.xyz -viral-hub.xyz -viral-science.fun -viral-update.xyz -viralchoose.com -viralclothes.com -viralemon.shop -viralhits.org -virallifestyles.com -viralplays.com -viraltoken.co -viralvideosf.com -viransehirlimited.xyz -viransehirtv.com -viraorg.com -virarowing.com -virarproperty.co.in -virasailingrowing.com -viraskibreak.com -vircaiget.cf -vircaiget.ml -vircaiget.tk -virdettype.xyz -vireonidae.com -vireopartners.com -virgilbunaophotography.com -virgilio.ga -virgilio.gq -virgilio.ml -virgiliomail.cf -virgiliomail.ga -virgiliomail.gq -virgiliomail.ml -virgiliomail.tk -virgin-eg.com -virginal.site -virginfavorableanalysis.website -virginiabasketballassociation.com -virginiabeachnailsalons.com -virginiabeachopiaterehab.com -virginiafarmshealthylifestyles.com -virginiaintel.com -virginiaquote.com -virginislandcharteryachts.com -virginmedua.com -virginshuttle.com -virginsrus.xyz -virgoans.co.uk -virgotv.com -virkbhandari.com -virngocsgoa.xyz -viro.live -virol.club -viroleni.cu.cc -virtania.site -virtize.com -virtual-agent.org -virtual-baccarat-online.com -virtual-bank.live -virtual-email.com -virtual-generations.com -virtual-mail.net -virtualemail.info -virtualjunkie.com -virtualmail.gq -virtualmedicalconsulting.com -virtualprivateserversindia.com -virtualrunninguk.com -virtualserver.pro -virtualsummeroutings.com -virtualtags.co -virtualtrainingprograms.com -virtualveggiepatch.com -virtualvicksburg.com -virtualxxxteens.site -virtuatest.com -virtuf.info -virtuosoy.xyz -virtusgroup.net -virtuswin.com -virtznakomstva.ru -virucide.school -viruscan.ru -virusfreeemail.com -virushelp.site -virusirto.cloud -virusonlya.space -virusremovallosangeles.com -virusremovalseattle.com -virusuneet.site -visa-pl.com -visa-securepay.cf -visa-securepay.ga -visa-securepay.gq -visa-securepay.ml -visa-securepay.tk -visa.coms.hk -visa.dns-cloud.net -visa.dnsabr.com -visa159.ru -visaabudhabi.com -visacz.name -visal007.tk -visal168.cf -visal168.ga -visal168.gq -visal168.ml -visal168.tk -visalaw.ru -visalus.com -visantia.ru -visaua.ru -viscidkluu.space -visconte.store -viseur.xyz -vishivkamktut.xyz -visiems.info -visiokatu.xyz -visionaries.world -visionariesglobal.com -visionbig.com -visiondating.info -visionwithoutglassesscam.org -visit-twin-peaks.com -visit24.ru -visitachetumal.com -visitaislamujeres.com -visitalgarve.info -visitany.com -visitcassi.com -visitfindhorn.com -visitguernsey.org -visitinbox.com -visitingcyprus.com -visitingob.com -visitnorwayusa.com -visitnycdeals.com -visitor99.info -visitorratings.com -visitors-tracker.ru -visitorweb.net -visitvlore.com -visitworldheritage.org -visitxhot.org -visitxx.com -vismecpazarlama.com -vismos-news.ru -visozial-backup.org -vispif.com -visshirts.online -vist.video -vista-tube.ru -vistadulcevegas.com -vistanavegas.com -vistarto.co.cc -vistasfilmfestival.org -vistm.ru -vistomail.com -vistore.co -visualarguments.com -visualcluster.com -visualfx.com -visualimpactreviews.com -visualkonzept.de -visualpro.online -visuellewelt.xyz -visuvu.com -visweden.com -vit-toy.site -vita-healthcare.com -vitaelix.dev -vitaj.org -vital-dermax.online -vital-medizin.info -vitalavita24.ru -vitalbeginning.com -vitaldevelopmentsolutions.com -vitaldrama.xyz -vitaliebblkuet.fun -vitaliemoscow.fun -vitaliemoscow.space -vitalitygang.com -vitalizebaby.com -vitalizebeauty.com -vitalizedelhi.com -vitalizedia.com -vitalizehairgummy.com -vitalizehairmen.com -vitalizehairvitamins.com -vitalizeindian.com -vitalizemen.com -vitalizesilkpillowcase.com -vitalizeskinforwomen.com -vitalizewomen.com -vitalpetprovisions.com -vitalslab.org -vitalyzereview.com -vitamin-water.net -vitaminb12direct.org -vitaminc.news -vitaminglossary.com -vitaminpassion.com -vitamins.cd -vitamins.com -vitaminsdiscounter.com -vitaminshope.org -vitaminydlyadushi.ru -vitamixcostco.us -vitapersonal.com -vitapure.org -vitarosehealthoffers.site -vitebsk-news.info -vithub.net -vitiferous.site -vitime.icu -vitobet11.com -vitolau2019.xyz -vitovem.xyz -vitrina82.ru -vitstratumfho.site -vityarustov.com -vivabem.xyz -vivabet91.online -vivabets90.info -vivafranco.tk -vivalafiestapuertosherry.com -vivaldi.media -vivamogul.org -vivaptb.site -vivarack.com -vivaroaffiliates.com -viveladobdeviajar.com -viventel.com -viverdemonetizze.com -viverointernacional.com -viversemdrama.com -vivfatura.website -vivianhouse.co -vividbase.xyz -vivie.club -vivigle.org -vivliopoli.xyz -vivo4d.online -vivocrop.ru -vivogame11.net -vivogame168.com -vivogame33.com -vivogame33.net -vivogame55.com -vivogame99.net -vivokiu.org -vivolight.ru -vivopelafe.com -vivreauxusa.com -vivrela.store -vivshine.com -vivusbet60.com -viwsala.com -vixiohosting.shop -vixiohub.shop -vixletdev.com -vixmalls.com -vixo.net -vixodkyh.shop -vizedf.site -vizi-forum.com -vizi-soft.com -vizionkc.com -vizit-fabric.xyz -vizsim.com -vizstar.net -vizyondafilm.info -vizzapizzeria.com -vj520.com -vjav.info -vjav.site -vjogpb.cf -vjov9w.online -vjrkvx.site -vjsbdp.com -vjvqdl.us -vjwwgppcf.shop -vk-app-online.ru -vk-appication.ru -vk-apps-online.ru -vk-com-application.ru -vk-com-golosa.site -vk-comm.ru -vk-fb-ok.ru -vk-goog.ru -vk-id5099994-loh.xyz -vk-nejno-sladko.ru -vk-net-app.ru -vk-net-application.ru -vk-russkoe.ru -vk-skachat.ru -vk-ssl-support5.host -vk-test.ru -vk-tvoe.ru -vk7077.com -vkbrand.xyz -vkchat.ru -vkcode.ru -vkdmtzzgsx.pl -vkdmtzzgsxa.pl -vkfwzulon.shop -vkgdno.us -vkhelp-com.online -vkhotkevich.ru -vkilotakte.ru -vkinomax.ru -vkitgm.com -vkjncf.com -vkladkpkvozvr.xyz -vknmanbetx.com -vknumber.website -vkontakteemail.co.cc -vkopssite.site -vkoxtakte.ru -vkoztakte.ru -vkpay.club -vkpornoprivate.ru -vksaver-pc.ru -vksmartparadise.com -vkstiker.fun -vkusno-vse.ru -vkusnosam.ru -vkusnyj-recept-foto.ru -vkusup.ru -vkvhod.ru -vkzbfuvrx.shop -vl-pla.ru -vl2ivlyuzopeawoepx.cf -vl2ivlyuzopeawoepx.ga -vl2ivlyuzopeawoepx.gq -vl2ivlyuzopeawoepx.ml -vl2ivlyuzopeawoepx.tk -vlad-webdevelopment.ru -vladinews.space -vladomusic.com -vlan.global -vlasy.site -vlbjx6.info -vlbtest.site -vlfbvia.design -vlifeinsure.com -vlinder.icu -vlinitial.com -vlipbttm9p37te.cf -vlipbttm9p37te.ga -vlipbttm9p37te.gq -vlipbttm9p37te.ml -vlipbttm9p37te.tk -vlivki.ru -vlk-gold.org -vlk-neon-online.com -vlk-pltnm.ru -vlk-prestige.net -vlkstarsbest.com -vlkstil-6.com -vlkstil-7.com -vlkstl-3.com -vln.io -vloggerusa.com -vlogino.pro -vlote.ru -vloux.com -vlquark.com -vlrnt.com -vlsca8nrtwpcmp2fe.cf -vlsca8nrtwpcmp2fe.ga -vlsca8nrtwpcmp2fe.gq -vlsca8nrtwpcmp2fe.ml -vlsca8nrtwpcmp2fe.tk -vlstwoclbfqip.cf -vlstwoclbfqip.ga -vlstwoclbfqip.gq -vlstwoclbfqip.ml -vlstwoclbfqip.tk -vlueo.net -vlvstech.com -vlvtsmtx.com -vlvwine.com -vlwomhm.xyz -vlzpji.com -vm009.com -vm088.com -vm2016.com -vmadhavan.com -vmail.me -vmail.tech -vmailcloud.com -vmailing.info -vmailpro.net -vmani.com -vmaryus.iogmail.com.urbanban.com -vmbkbs.us -vmentorgk.com -vmgmails.com -vmhdisfgxxqoejwhsu.cf -vmhdisfgxxqoejwhsu.ga -vmhdisfgxxqoejwhsu.gq -vmhdisfgxxqoejwhsu.ml -vmhdisfgxxqoejwhsu.tk -vmi13l.us -vmirenas.ru -vmish.icu -vmlfwgjgdw2mqlpc.cf -vmlfwgjgdw2mqlpc.ga -vmlfwgjgdw2mqlpc.ml -vmlfwgjgdw2mqlpc.tk -vmo.exchange -vmpanda.com -vmpanel.shop -vmpsd.com -vmv-msk.ru -vmvgoing.com -vmwgfaop.shop -vmy49.space -vmzll.com -vn009900.com -vn7ag6.us -vn8b3.us -vn92wutocpclwugc.cf -vn92wutocpclwugc.ga -vn92wutocpclwugc.gq -vn92wutocpclwugc.ml -vn92wutocpclwugc.tk -vna1ra.us -vna68.space -vnbdktv2.ml -vnbdktv2.tk -vncoders.net -vncwyesfy.pl -vnd3yf.us -vndeal.info -vndfgtte.com -vnds-20.site -vnds-2020.fun -vnds-go.club -vnds-go.info -vnds-go.site -vnds-go.xyz -vnds-h20.info -vnds-world.space -vnedorognik-yeti.ru -vnedu.me -vnexpaawj.shop -vngbam.us -vnhojkhdkla.info -vnitsolution.com -vnjpny.site -vnkrgjt10-privmderj.space -vnpnet.com -vnr98.com -vnrrdjhl.shop -vns2640.com -vns72h.com -vnshare.info -vnsl.com -vnuova.icu -vnvejjlh.shop -vnwcs9.us -vnwin99.com -vnxteam.xyz -vnznetve.online -voati.pro -vobeclinic.net -vobtic.buzz -vocabgym.com -vocabook.win -vocaloid.moe -vocobe.com -vocupeo.space -vod2019.org -vod9d9.website -voda-v-tule.ru -vodadesk.info -vodafone-au.host -vodafone-au.info -vodafone-au.space -vodafone-nz.site -vodafone-nz.space -vodakov.com -vodes.xyz -vodgard.ru -vodka.in -vodlockerseries.online -vodmir.com -vodtv.xyz -voedselbosnistelrode.com -voemail.com -vofnbz.site -vofu.ru -vogayervaluation.com -vogons.ru -vogrxtwas.pl -vogue.sk -vohashops.site -vohjzw.com -voiceclasses.com -voicefeas.xyz -voicememe.com -voiceseoservices.com -voicesheep.email -voicevictory.site -void.maride.cc -voidbay.com -voided.host -voikaserd.ga -voikskrant.online -voilans.com -voimacapbackno.space -voip-torg.ru -voip3.ru -voip4.ru -voip5.ru -voip6.ru -voip7.ru -voip8.ru -voipdevices.ru -voipjury.com -voipocoupon.com -voiporeview.com -voiptorg.ru -voiptrade.ru -voiquitruc.ga -voiquitruc.gq -voiquitruc.ml -voiquitruc.tk -voir-animes.xyz -voir-film1.website -voirfilms.blue -voirfilms.stream -voirfilmsgratuit.net -voirserie-streaming.com -voirseries-streaming.com -voirseries.host -voirseriestreaming.online -voirseriestreaming.xyz -voisonnhots.cf -voisonnhots.ga -voisonnhots.gq -voisonnhots.ml -voisonnhots.tk -voiture.cf -voitures.cd -voize.biz -voize.online -voizeapi.net -voizemall.com -vokbu0.info -voland.site -volary.site -volcanclub.com -volcano-wings.com -volestream.com -volestream19.com -volestream21.com -volestream22.com -volestream23.com -volestream24.com -volestream25.com -volestream26.com -volestream34.com -volestream35.com -volestream38.com -volestream39.com -volestream40.com -volestream41.com -volestream42.com -volestream43.com -volestream44.com -volestream46.com -volestream47.com -volestream48.com -volestream50.com -volgograd-nedv.ru -volkemol.ru -volknakone.cf -volknakone.ga -volknakone.gq -volknakone.ml -volknakone.tk -volkskran.online -volkswagen-ag.cf -volkswagen-ag.ga -volkswagen-ag.gq -volkswagen-ag.ml -volkswagen-ag.tk -volkswagenamenageoccasion.fr -vollfertig.vision -volna-realty.ru -volniisas.space -volodya-stavit.site -vologdalestopprom.ru -volshebstii.xyz -volshebstiiluch.xyz -volsingume.ru -volssecsy.info -voltaer.com -voltalin.site -voltanord.org -volthdas.gq -voltxsports.com -volumaska.host -volumehd.com -volumetudo.website -volumkas.cf -volunteerfirstresponder.com -volunteerfirstrespondernetwork.org -volunteerfirstresponders.net -volunteergarden.org -voluptuary.site -volvefloor.com -volvo-ab.cf -volvo-ab.ga -volvo-ab.gq -volvo-ab.ml -volvo-ab.tk -volvo-s60.cf -volvo-s60.ga -volvo-s60.gq -volvo-s60.ml -volvo-s60.tk -volvo-v40.ml -volvo-v40.tk -volvo-xc.ml -volvo-xc.tk -volvogroup.ga -volvogroup.gq -volvogroup.ml -volvogroup.tk -volvopenta.tk -vomadig.ga -vomadig.gq -vomadig.tk -vomar.be -vomechild.cf -vomechild.ga -vomechild.tk -vomega.org -vomiqo.info -vomoto.com -vomua.website -vomvos.org -vomwege.net -vonbe.tk -vonderheide.me -voneger.com -vonnihouse.co -vonumalls.site -vook.host -voopee.net -voozadnetwork.com -vopikaslukda.gq -vorarlberg.dev -vorga.org -vorimo.ru -voron-kryuk.ru -voron.center -voron.plus -voronkryuk.ru -vorply.com -vorpostport.cf -vorpostport.ga -vorpostport.gq -vorpostport.ml -vors.info -vorscorp.mooo.com -vosomart.site -vospitanievovrema.ru -vosts.com -votavk.com -vote4gas.org -vote4today.org -vote4tomorrow.org -votealaska.org -votebestofsu.com -votedb.info -voteforhot.net -votejohnfisher.com -votenogeorgia.com -votenonov6.com -votenoonnov6.com -votesoregon2006.info -voteulp.net -vothiquynhyen.info -votingportland07.info -votiputox.org -votofeliz.com -votretableaupersonnalise.fr -vouchergeek.com -vouchfor.app -vouhotpcrib.cf -vouhotpcrib.ga -vouhotpcrib.gq -vouhotpcrib.tk -voujoncafe.com -vouk.cf -vouk.gq -vouk.ml -vouk.tk -voulesrandom.com -vovin.gdn -vovin.life -vovva.ru -vowallco.cf -vowallco.ga -vowallco.gq -vowallco.ml -voxcj.com -voxelcore.com -voxpronoia.com -voxsign.com -voxsox.com -voyagebirmanie.net -voyancegratuite10min.com -voyeurseite.info -voyuboutique.site -voz79.shop -vozenkahi.xyz -vozmi-instrument.ru -vozmivtop.ru -vozsensual.com -vozvratpravrf.ru -vozvrmfovklad.xyz -vp.com -vp.ycare.de -vp4zy.us -vp8aop.us -vp8xi3.us -vp93.com -vpalt.net -vpanel.ru -vpapa.ooo -vpay.work -vpc608a0.pl -vperdolil.com -vpexpositor.com -vpfbattle.com -vphnfuu2sd85w.cf -vphnfuu2sd85w.ga -vphnfuu2sd85w.gq -vphnfuu2sd85w.ml -vphnfuu2sd85w.tk -vpidcvzfhfgxou.cf -vpidcvzfhfgxou.ga -vpidcvzfhfgxou.gq -vpidcvzfhfgxou.ml -vpidcvzfhfgxou.tk -vpieser.club -vpmaj.us -vpmsl.com -vpn-ike.net -vpn-tondar.xyz -vpn.st -vpn33.top -vpnexpress.best -vpnfinity.com -vpnflix.com -vpnforever.space -vpnforge.com -vpnfreetrial.best -vpngermany.company -vpngratuit.company -vpnike.org -vpnnotsafe.zone -vpnopenvpn.zone -vpnprivacy.fund -vpnprivate.fund -vpnratings.fail -vpns.best -vpnsupport.cool -vpntochina.city -vpntracker.band -vpoker99domino.com -vpomosmame.ru -vprice.co -vprintall.com -vprinter.com -vps.reviews -vps001.net -vps004.net -vps005.net -vps30.com -vps911.bet -vps911.net -vpsadminn.com -vpsbots.com -vpscloudvntoday.com -vpscommunity.us -vpsconfig.com -vpsdb.com -vpsdown.com -vpsera.com -vpsera.net -vpsfox.com -vpshi.com -vpsjb.com -vpsjqgkkn.pl -vpslists.com -vpsmobilecloudkb.com -vpsorg.pro -vpsorg.top -vpsscaler.com -vpstalk.com -vpstraffic.com -vpstrk.com -vpstube.com -vpsuniverse.com -vpswatch.com -vpswins.site -vpvtou.us -vpxdxsor.site -vq8nr.us -vqargiqlf.cf -vqgaakece.shop -vqqhry1j.xyz -vqrbaq.site -vqsjpy.com -vqsprint.com -vqzdwm.us -vr-sale.online -vr066.com -vr068.com -vr087.com -vr096.com -vr1ly4.us -vr21.ml -vr360listings.info -vr3s61.us -vr4x4.ru -vr5gpowerv.com -vrabote-doma.ru -vracg.com -vradportal.com -vram.xyz -vranton.buzz -vraskrutke.biz -vrcard.ru -vrdhy6.club -vredirect.com -vreeland.agencja-csk.pl -vreemail.com -vregion.ru -vremonte24-store.ru -vrender.ru -vreqfbev.shop -vreveal.com -vrgu4x.com -vrgwkwab2kj5.cf -vrgwkwab2kj5.ga -vrgwkwab2kj5.gq -vrgwkwab2kj5.ml -vrgwkwab2kj5.tk -vrheroes.info -vridhi.org -vrify.org -vrior.club -vripnc.us -vrjsoq.ru -vrjw.com -vrloco.com -vrmmeh.com -vrmqacrq.shop -vrmtr.com -vroomvroomvroom.rentals -vrou.cf -vrou.ga -vrou.gq -vrou.ml -vrou.tk -vrpitch.com -vrshop.life -vrsim.ir -vrstripshows.com -vrsykk.xyz -vrtgog.us -vrvrx.com -vryyqtgz.shop -vrzpoker.com -vs-ad.com -vs3ir4zvtgm.cf -vs3ir4zvtgm.ga -vs3ir4zvtgm.gq -vs3ir4zvtgm.ml -vs3ir4zvtgm.tk -vs7wgz.host -vs904a6.com -vs9992.net -vsalmonusq.com -vsc3bf.us -vscarymazegame.com -vsds.pro -vsdv.pro -vse-casino.com -vse-dveriru.ru -vse-massageri.ru -vse-nyew.ru -vse-oboiru.ru -vse-polyru.ru -vse-serii.xyz -vse-smi.ru -vse-strany.ru -vse-zamkiru.ru -vse-zdes.website -vseadvocaty.ru -vseadvokati.ru -vsebrigadi.ru -vsedirect.ru -vsedveriru.ru -vsegirect.ru -vsekatal.ru -vselennaya.su -vsembiznes.ru -vsemkvarti.ru -vsemotdihat.ru -vsemsoft.ru -vseoboiru.ru -vseoforexe.ru -vseokmoz.org.ua -vseoneyrosisteme7.ru -vseosade.ru -vseosade.site -vsepolyru.ru -vseturist.ru -vsevnovosti.ru -vsezamkiru.ru -vsezdorovie-vsem.ru -vsglives.com -vshisugg.pl -vsibkb.com -vsimcard.com -vsix.de -vsjfashions.com -vskins.market -vsmartdata.com -vsmartsync.com -vsmini.com -vspay.ru -vspiderf.com -vss6.com -vsshevvq.shop -vssms.com -vsszone.com -vstahigherlearning.com -vstarbliss.org -vstartup4q.com -vstoremisc.com -vsv1js1belhluaw.xyz -vsxz.pro -vsyamebel-nn.ru -vsz63.space -vt021.net -vt0bk.us -vt0uhhsb0kh.cf -vt0uhhsb0kh.ga -vt0uhhsb0kh.gq -vt0uhhsb0kh.ml -vt0uhhsb0kh.tk -vt6k5.us -vt8khiiu9xneq.cf -vt8khiiu9xneq.ga -vt8khiiu9xneq.gq -vt8khiiu9xneq.ml -vt8khiiu9xneq.tk -vt8zilugrvejbs.tk -vtaffiliate.com -vtallinn.info -vtavte.xyz -vtb365.com -vtbapp.com -vtbcn.com -vtbet.online -vtbfan.com -vtbja.us -vtblist.com -vtbnews.com -vtbshe.com -vtbsub.com -vtbt.design -vtbtt.com -vtbvtb.com -vtbvup.com -vtdetoxcenter.com -vteachesb.com -vteensp.com -vthalfpricelisting.com -vthalfpricelistings.com -vtj0.buzz -vtoasik.ru -vtol.us -vtolat.icu -vtopeklassniki.ru -vtormetresyrs.ru -vtoroum2.co.tv -vtrue.org -vtryan.monster -vtsm.net -vtuber.fan -vtuber365.com -vtubercn.com -vtuberlist.com -vtuberlive.com -vtubernews.com -vtubershe.com -vtuberworld.com -vtwelves.com -vtwumka.xyz -vtxmail.us -vu38.com -vu981s5cexvp.cf -vu981s5cexvp.ga -vu981s5cexvp.gq -vu981s5cexvp.ml -vuabai.info -vuacado.xyz -vuadoithuong.xyz -vuasanca.com -vuathethao.pro -vubby.com -vubori13.space -vudisdiz.space -vuecine.com -vuejshub.com -vufe.site -vufkbrsdd.shop -vugnlv.com -vuhoangtelecom.com -vuihet.ga -vuive.shop -vuiy.pw -vujave.info -vukdfe.us -vulcan-platinum24.com -vulcandengy.ru -vulcanrussia.club -vulccanstars.live -vulkan-game-casino.ru -vulkan-hot.online -vulkan-klub.ru -vulkan-maximum-scachat.org -vulkan-neon.space -vulkan-olimp.info -vulkan-olymp-mobile.xyz -vulkan-original.ru -vulkan-platinum-casino777.com -vulkan-russkiy.tech -vulkan-slots11.com -vulkan365-vhod.xyz -vulkanavtomatmaid.ru -vulkancasino.design -vulkansloti.ru -vulkanstavka.center -vulkanstl-8.com -vulkastars.ru -vulkhan-vip.ru -vulktee.com -vullesmemes.online -vuln.space -vulnerable.host -vulsiket.cf -vulsiket.ga -vulsiket.gq -vulsiket.tk -vultiasu.cf -vultiasu.ga -vultiasu.gq -vultiasu.ml -vultrvultr.com -vumaenergy.com -vumaevergy.com -vumparit.xyz -vumurt.org -vungchom.net -vunjrc.online -vuokuc.ru -vuongquocgowin.com -vup.moe -vupnews.com -vupvtb.com -vupwiki.com -vuqpid.us -vurbmedia.com -vurzoukewaq.ru -vusasoi3.site -vusd.net -vushocsgo.xyz -vutdrenaf56aq9zj68.cf -vutdrenaf56aq9zj68.ga -vutdrenaf56aq9zj68.gq -vutdrenaf56aq9zj68.ml -vutdrenaf56aq9zj68.tk -vuv9hhstrxnjkr.cf -vuv9hhstrxnjkr.ga -vuv9hhstrxnjkr.gq -vuv9hhstrxnjkr.ml -vuv9hhstrxnjkr.tk -vuvomarket.site -vuvuive.xyz -vuylkan.com -vuylu5.host -vuyulryu.xyz -vuzimir.cf -vv18269.com -vv3b.icu -vv7665.com -vv9094.com -vv9827.com -vvb3sh5ie0kgujv3u7n.cf -vvb3sh5ie0kgujv3u7n.ga -vvb3sh5ie0kgujv3u7n.gq -vvb3sh5ie0kgujv3u7n.ml -vvb3sh5ie0kgujv3u7n.tk -vvcc777.com -vve-ripperdahof.online -vventrachicago.com -vvg94.space -vvgmail.com -vvimbog.site -vvimboo.site -vvitrik.site -vvizion.site -vvlvmrutenfi1udh.ga -vvlvmrutenfi1udh.ml -vvlvmrutenfi1udh.tk -vvng8xzmv2.cf -vvng8xzmv2.ga -vvng8xzmv2.gq -vvng8xzmv2.ml -vvng8xzmv2.tk -vvolkov.top -vvoondun.site -vvoozzyl.site -vvopzc.shop -vvs.su -vvs3s.com -vvuti.ru -vvv813.com -vvvnagar.org -vvvpondo.info -vvvulek8.xyz -vvvv.de -vvvvv.uni.me -vvwbaidu.com -vvwin.com -vvx046q.com -vvyolr.site -vw-ag.tk -vw-audi.ml -vw-cc.cf -vw-cc.ga -vw-cc.gq -vw-cc.ml -vw-cc.tk -vw-eos.cf -vw-eos.ga -vw-eos.gq -vw-eos.ml -vw-eos.tk -vw-seat.ml -vw-skoda.ml -vw5opi.us -vw7w.com -vw8w.com -vwavkb.info -vwazamarshwildlifereserve.com -vwdiscount.online -vwdvpnxsm.shop -vwengh.xyz -vwhitetoothbrush.com -vwhomedecor.com -vwivod.rest -vwlk1i.us -vwolf.site -vworangecounty.com -vwqftf.us -vwstk.buzz -vwtedx7d7f.cf -vwtedx7d7f.ga -vwtedx7d7f.gq -vwtedx7d7f.ml -vwtedx7d7f.tk -vwugsdlro.ml -vwwape.com -vwwbaidu.com -vwydus.icu -vwzagoujq.shop -vxa34.space -vxc.edgac.com -vxcae9z14z.xyz -vxcs.pro -vxeqzvrgg.pl -vxhdtlud.shop -vxinzlno.xyz -vxmail.top -vxmail2.net -vxmlcmyde.pl -vxqkogil.shop -vxqt4uv19oiwo7p.cf -vxqt4uv19oiwo7p.ga -vxqt4uv19oiwo7p.gq -vxqt4uv19oiwo7p.ml -vxqt4uv19oiwo7p.tk -vxvcvcv.com -vxvv.net -vxwiew.site -vxxx.fun -vxznq.com -vy-sale.online -vy-sale.ru -vy555.com -vy69pr.us -vy7c9u.com -vy89.com -vy8iyh.com -vyajiponchoc.xyz -vydoei.rest -vyehg.us -vygsale.top -vyhade3z.gq -vyineily.com -vyjeku.info -vyjti-zapoya-pomoshchyu.ru -vykupavto1.ru -vylkinkz.xyz -vylqsc.us -vympelpravo.ru -vyrski4nwr5.cf -vyrski4nwr5.ga -vyrski4nwr5.gq -vyrski4nwr5.ml -vyrski4nwr5.tk -vytevident.com -vzanguard.com -vze0w.us -vziskaliment.xyz -vziskatosago.ru -vzlom4ik.tk -vzml.us -vzodv.com -vzpuj.com -vzroslyekartinki.ru -vzrxr.ru -vztc.com -vztu4a1r21hkmst.com -vzvqdh.site -vzwrdwggkv.host -vzwv6test.com -vzyat-ssudy.ru -w-amst.ru -w-asertun.ru -w-lo.top -w-oproz.ru -w-shoponline.info -w.comeddingwhoesaleusa.com -w.polosburberry.com -w03nmjqtx.site -w09xyeb3w.site -w0ht.us -w12io.space -w12qt.space -w12wc.space -w13sr.space -w15xx.space -w1775.com -w17ac.space -w17hs.space -w19oi.space -w1pars.online -w20al.space -w20tb.space -w2203.com -w22fe21.com -w22pj.space -w23ex.space -w24gs.space -w25nx.space -w25vz.buzz -w27qo.space -w2858.com -w2fdsqdhgr.xyz -w2go.xyz -w2yq4x-mail.xyz -w30gw.space -w310.club -w312.club -w313.club -w315.club -w31cy.space -w32qm.space -w33wq.space -w33yu.space -w34ct.space -w34nu.space -w34sf.space -w35ez.space -w35so.space -w37il.space -w37xg0.com -w3fun.com -w3internet.co.uk -w3k6sm.info -w3kit.ru -w3kv2e.us -w3mailbox.com -w3ur4.com -w3windsor.com -w41di.space -w41dm.space -w41lj.space -w41yn.space -w42fq.space -w42hm.space -w44hh.space -w44xf.space -w45678.com -w45ex.space -w45k6k.pl -w46db.space -w47al.space -w47rl.space -w4f.com -w4files.xyz -w4i3em6r.com -w4iaj.us -w4ms.ga -w4ms.ml -w50h.com -w58h.com -w5955.com -w5gpurn002.cf -w5gpurn002.ga -w5gpurn002.gq -w5gpurn002.ml -w5gpurn002.tk -w5p.ru -w5q.ru -w5t.ru -w634634.ga -w656n4564.cf -w656n4564.ga -w656n4564.gq -w656n4564.ml -w656n4564.tk -w6840.com -w6867.com -w6890.com -w68vn.com -w6att2c39zyj22i.xyz -w6mail.com -w6r9cs71xbbzwod.xyz -w6rz6j0ply1oppp.xyz -w6veyq.com -w7082.com -w70h.com -w70ptee1vxi40folt.cf -w70ptee1vxi40folt.ga -w70ptee1vxi40folt.gq -w70ptee1vxi40folt.ml -w70ptee1vxi40folt.tk -w777info.ru -w7l6tv.us -w7vcxs.online -w7wdhuw9acdwy.cf -w7wdhuw9acdwy.ga -w7wdhuw9acdwy.gq -w7wdhuw9acdwy.ml -w7wdhuw9acdwy.tk -w7zmjk2g.bij.pl -w8196.com -w888b.com -w888info.com -w888me.com -w88biz.com -w88first.com -w88good.com -w88id.xyz -w88shop.com -w88th.asia -w88th.one -w88vipen.com -w88w88.info -w88x3.com -w88yd0.com -w88yd2.com -w88yd4.com -w88yd5.com -w8fll.info -w8i8n.com -w8u55.com -w8u66.com -w8u77.com -w8u88.com -w8xo.us -w90h.com -w918bsq.com -w9339.com -w93o.us -w94ofm0z.icu -w9969.com -w9d23w.us -w9f.de -w9y9640c.com -w9zen.com -wa.itsminelove.com -wa010.com -waa03.info -waariswaldo.online -waasorchestrator.com -wackov.com -wacopyingy.com -wadawdawd.ru -waddayareckon.com -wadeeni.net -wadegriffinroofing.com -wadfes.ml -wadifa55.work -wadigum.cf -wadigum.ga -wadigum.gq -wadigum.ml -wadigum.tk -wadiz.blog -waelectrician.com -wafaz.com -wafege.info -wafflebrigadecaptain.net -waffwlwolf.live -wafrem3456ails.com -waftage.site -wafture.site -wagerrcore.com -wagerrcore.org -wagerrwallet.com -wagertalkpicks.com -wagfused.com -waggadistrict.com -waggeli.icu -waggy.media -waggy.toys -waggy.vacations -wagon58.website -wahab.com -wahalfpricedlistings.com -wahalfpricelisting.com -wahalfpricelistings.com -wahana888.org -wahart.store -wahch-movies.net -wahl-beret.online -wahlprofessional.ru -wahltek.biz -waibavic.cf -waibavic.ga -waibavic.gq -waibavic.ml -waibavic.tk -waifu.club -waifufigures.com -waifumail.ml -waikikieasthotel.com -waikinyxt.site -waimate.info -wait.cf -waitingjwo.com -waitslab.site -waitulea.cf -waitulea.ga -waitulea.ml -waitulea.tk -waivcoin.com -wajikethanh96ger.gq -wakabook.xyz -wakacje-e.pl -wakacjeznami.com.pl -wakaface.site -wakaface.xyz -wakainfo.site -wakatopinfo.site -wake-up-from-the-lies.com -wakescene.com -wakingupesther.com -walala.org -waldboard.biz -waldboard.com -waldemar.ru -waldened.net -waldlecum.cf -waldlecum.ga -waldlecum.gq -waldlecum.ml -waldlecum.tk -waldronpropertysolutionsllc.com -walepy.site -walgioci.cf -walgioci.ga -walgioci.gq -walgioci.ml -walgioci.tk -walizu.com -walk2metro.com -walkandtalk.app -walkerhill.shop -walkerroadchiropractic.com -walking-holiday-in-spain.com -walking-water.com -walkinremembrance.com -walkkiyo.ml -walkmail.net -walkmail.ru -walkritefootclinic.com -walkthiswaypaths.shop -wall-street.uni.me -wall5droid.ru -walldepha.cf -walldepha.ga -walldepha.gq -walldepha.ml -walldepha.tk -walletsshopjp.com -wallfit.me -wallingtalks.com -wallm.com -wallofcoins.org -wallpaperfren.com -wallpaperlive.org -wallpaperpedia.club -wallrkvagfg.email -walls4homes.com -wallsmail.men -wallsoo.com -wallstreetcn.live -wallus.casinokun.hu -walmart-eshop.com -walmart-site.com -walmart-web.com -walmarte-shop.com -walmarteshop.com -walmarteshops.com -walmartnet.com -walmartonlines.com -walmartpartners.com -walmartshops.com -walmartsites.com -walmartsoftware.com -walmartsshop.com -walmarttonlines.com -walmarttshops.com -walmartttonlines.com -walmartttshops.com -walmarttttonlines.com -walmarttttshops.com -walmartttttonlines.com -walmartttttshops.com -walmartwebs.com -walmartwebsites.com -walotu.site -walshpoems.com -walsinghamsociety.org -walter01.ru -walterchu.com -walterhgottschalk.org -walternal.info -waltoncomp.com -waltonor.buzz -waltpanko.net -waltsbeefjerky.net -waltsworkwearstore.com -walvoper.cf -walvoper.ga -walvoper.gq -walvoper.tk -wam-blog7.site -wam-blog8.site -wamdabiz.com -wampsetupserver.com -wanadoo.com -wanari.info -wancloud.ru -wander.love -wanderdszx.site -wanderingstarstudio.com -wanderlust.host -wandershopper.xyz -wanetwork.us -wangansheep.com -wangiparfum.info -wanglouyouxiluntan.xyz -wangluojingyingchangsuo.shop -wangsili.space -wangye.pub -wanhuiyule.net -wanida.se -wanitasukses.com -wanko.be -wanlzy.xyz -wanminle.com -wannabuyit.website -wanoptimization.info -want2lov.us -want2makemoneynow.com -wantisol.gq -wantisol.ml -wantisol.tk -wantplay.site -wantresult71.online -wantresultkzn.ru -wants.dicksinhisan.us -wants.dicksinmyan.us -wantsuccess.ru -wanttocum.com -wantwasherdryerparts.site -wantwp.com -wanxing-yl.com -wap8037.com -wap9827.com -wapclub.ru -wapenshaw.xyz -wapgwh.site -wapixdev.com -wapl.ga -wappay.xyz -wappia.app -wapqus.com -wapsound.ru -wapsportsmedicine.net -wapstores.org -waptube.site -wapxxx.site -wapyello.gq -waqoodtech.com -war-gift.ru -waratishou.us -warau-kadoni.com -warbet365.net -warbfisa.cf -warbfisa.ga -warbfisa.gq -warbfisa.tk -warblespe.cf -warblespe.ga -warblespe.gq -warcandde.cf -warcandde.ga -warcandde.gq -warcandde.ml -warcraftwallpapers.com -wardarabando.com -wardcabinetworks.com -wardenrant.com -wardlile.cf -wardlile.ga -wardlile.gq -wardlile.ml -wardlile.tk -wardprodun.ga -wardprodun.gq -wardprodun.ml -wardprodun.tk -wardwamse.cf -wardwamse.ga -wardwamse.gq -wardwamse.ml -wardwamse.tk -waredbarn.com -warehambowls.club -warehouse-flooring.com -warehouseofthebooks.site -warepool.com -warezbborg.ru -wareznulled.com -wareztalk.org -warfile.ru -warfingers.xyz -wargot.ru -waridsolutions.info -warjungle.com -warman.global -warmiki.ru -warmnessgirl.com -warmnessgirl.net -warmorop.gq -warmorop.ml -warmorop.tk -warmroofs.com -warmthday.com -warmthday.net -warmynfh.ru -warna222.com -warnabandarqnet.com -warnatoto.com -warnbuilding.com -warned.email -warnednl2.com -warnedwahen.cf -warnerbrobrewco.com -warnerwave.xyz -warning-10by25.stream -warnomics.com -waroengdo.store -waronrent.org -warp2p.com -warqaat.com -warranty.legal -warrenbuffetsnextdoor.com -warrenbuffett.org -warrenforpresident.com -warringalpublications.com -warriorhaze.com -warriorhemp.com -warriorpls.com -warriorsoul.clothing -warriorssweat.com -warriorsvscavs.info -warruga.com -warschauermusicstore.com -warskill.ru -waru88.xyz -waruh.com -warungku.me -warungsanak.com -warwickattorneys.com -warwickrealestateagents.com -wasabi-75.ru -wasabimalahide.com -wasanii.africa -wasatchpestcontrol.net -waschservice.de -wasd.dropmail.me -wasd.netmail.tk -wasdfgh.cf -wasdfgh.ga -wasdfgh.gq -wasdfgh.ml -wasdfgh.tk -wasenm12.xyz -wasenm15.xyz -wasenm16.xyz -wasenm19.xyz -wasenm22.xyz -wasenm25.xyz -wasenm26.xyz -wasenm33.xyz -wasenm36.xyz -wasenm39.xyz -wasenm40.xyz -wasenm41.xyz -wasenm42.xyz -wasenm45.xyz -wasenm46.xyz -wasenm47.xyz -wasenm53.xyz -wasenm55.xyz -wasenm6.xyz -wasenm64.xyz -wasenm68.xyz -wasenm71.xyz -wasenm72.xyz -wasenm78.xyz -wasenm83.xyz -wasenm85.xyz -wasenm86.xyz -wasenm87.xyz -wasenm89.xyz -wasevgjkg.shop -washdye.com -washi.store -washingmachines2012.info -washington-ttv.com -washingtonfeb.com -washingtongarricklawyers.com -washingtonmsn.com -washingtonrose.net -washingtonrose.org -washingtontitleandescrow.org -washingtonttv.com -washingtonweddingco.com -washstnqzz.ru -wasistforex.net -waskitacorp.cf -waskitacorp.ga -waskitacorp.gq -waskitacorp.ml -waskitacorp.tk -waslangewaehrtwirdendlichwar.love -wasp-reach.com -wasptemo.cf -wasptemo.ga -wasptemo.gq -wasptemo.ml -wasptemo.tk -wasse-asxzer.ru -wastecrea.xyz -wastefulaf.com -wastefunds.online -wastesli.xyz -wasteslic.xyz -wastespac.buzz -wastimenin.site -watacukrowaa.pl -watashiyuo.cf -watashiyuo.ga -watashiyuo.gq -watashiyuo.ml -watashiyuo.tk -watch-arb8.site -watch-harry-potter.com -watch-tv-series.tk -watchbotmail.org -watchclickbuyagency.com -watchclubonline.com -watchcontrabandonline.net -watchdairy.site -watchelements.asia -watches-mallhq.com -watchesbuys.com -watcheset.com -watchesforsale.org.uk -watcheshq.net -watchesju.com -watchesnow.info -watchesshop.futbol -watchestiny.com -watchever.biz -watchforums.org -watchfree.org -watchfull.net -watchfull.org -watchhaking.cf -watchhaking.tk -watchheaven.us -watchhosfold.cf -watchhosfold.ga -watchhosfold.gq -watchhosfold.ml -watchhosfold.tk -watchironman3onlinefreefullmovie.com -watchkingofthehill.info -watchmanonaledgeonline.net -watchmoviesonline-4-free.com -watchmoviesonlinefree0.com -watchmtv.co -watchnowfree.com -watchnsfw.com -watchofficial.ru -watchpart.com -watchpinoytambayan.ru -watchreplica.biz -watchreplica.org -watchsdt.tk -watchshak.recipes -watchstifva.cf -watchstifva.ga -watchstifva.gq -watchstifva.ml -watchthedevilinsideonline.net -watchti.icu -watchtre.xyz -watchtrea.xyz -watchtruebloodseason5episode3online.com -watchtvcoin.com -watchunderworldawakeningonline.net -watcstation.com -watdafuq.com -watdoigot.com -water-freedom.com -waterbedblog.com -watercoloraquariumgallery.com -waterhudcj.space -waterlifetmx.com.mx -waterlifetmx2.com.mx -waterloodoctors.com -waterloorealestateagents.com -watermarkmoso.com -waterparkphuket.fun -waterpointemortgage.com -waterqualityassociation.net -waterservice.xyz -watersit.site -waterso.com -watersportsmegastore.com -watertaxionlakegeorge.com -watertec1.com -watertinacos.com -watertownsbestsummercamp.com -wateruh.com -waterus2a.com -waterusa.com -wathie.site -wathuncont.cf -wathuncont.gq -wathuncont.tk -watingdiv.com -watkacukrowa.pl -watkinsmail.bid -watsonvilleapartments.com -watsonvilledoctors.com -watsonvillerentals.com -wattonmi.buzz -wattpad.pl -waucisni.cf -waucisni.gq -waucisni.tk -waudomen.space -wav257.com -waveneyhousehotel.com -waverlyohsa.info -wavescientist.com -wavesplatfom.ru -wavesplotform.ru -wavr.org -wawa990.pl -wawan.org -wawaterfilters.com -wawi.es -wawinfauzani.com -wawobuild.com -wawstudent.pl -wawuo.com -waxdesign.ru -waxyme.info -way-to-pay.space -way-to-pay.website -way2bargain.com -way2iceland.ru -wayacepaytl.com -waybet.ru -waybmw.com -wayofthesufi.com -waypayblock.com -ways2getback.info -ways2lays.info -wayszo.com -wayto.info -waywuygan.xyz -wayza.com -wazabi.club -wazino.bet -wazino777.bet -wazow.com -wazqup.us -waztempe.com -wb-master.ru -wb24.de -wbdev.tech -wbdymzon.shop -wbfre2956mails.com -wbfxaffiliate.com -wbhyzb.com -wbidfc.com -wbieszczady.xyz -wbkqcw.site -wbmkr0.us -wbml.net -wbn.bingo -wbnckidmxh.pl -wbngl0bal.net -wbqhurlzxuq.edu.pl -wbr.global -wbr.reviews -wbr21.site -wbrchristian.com -wbryfeb.mil.pl -wbseoseo.com -wbt24f.us -wbwck.us -wc-api-fjc--2.com -wc-api-fjc--4.com -wc-api-fjc--5.com -wc2ttpxd7o0y9np.xyz -wca.cn.com -wcapedhgh.shop -wccoba.org -wcddvezl974tnfpa7.cf -wcddvezl974tnfpa7.ga -wcddvezl974tnfpa7.gq -wcddvezl974tnfpa7.ml -wcddvezl974tnfpa7.tk -wcfzw.info -wcgnv.us -wchatz.ga -wcheat.xyz -wchhka.us -wclc.net -wclxwo.site -wco9zb.us -wcpuid.com -wcpww.info -wcqrg6.com -wcrpw.info -wcsoxefen.shop -wctpw.info -wcus6s.us -wcxnbu.best -wczasy.com -wczasy.nad.morzem.pl -wczasy.nom.pl -wd-shop.online -wd0payo12t8o1dqp.cf -wd0payo12t8o1dqp.ga -wd0payo12t8o1dqp.gq -wd0payo12t8o1dqp.ml -wd0payo12t8o1dqp.tk -wd5vxqb27.pl -wdaus1.us -wdbanyak.org -wdcloud.ru -wddfeg.xyz -wddgw.info -wddsocial.com -wdge.de -wdinengz.shop -wdiscount.online -wditu.com -wdjc.us -wdlyw.info -wdnotifications.com -wdplgwfsi.shop -wdr8tx.info -wdrecipes.com -wdrzw.info -wdsfbghfg77hj.gq -wdvhw1.site -wdw.ru -wdwot.com -wdx4.com -wdxgc.com -wdzsw.info -we-are-replay.com -we-dwoje.com.pl -we-lose.site -we-love-life.com -we.lovebitco.in -we.qq.my -we1j3y.us -we33pin.xyz -we34.space -we37.space -we40.space -we43.space -we55pin.xyz -we66pin.xyz -we77pin.xyz -we9pnv.us -weahteronline.com -wealth-mastermind.com -wealthbargains.com -wealthinusa.com -wealthru.club -wealthymoney.pw -weammo.xyz -weaponofmusicaldefence.com -wearableobjects.com -wearablesculpture.com -wearcocaine.online -weareallcavemen.com -weareallgamers.com -wearechange.site -wearefairfashion.cat -wearefairfashion.se -wearelantian.net -weareobodo.com -wearerootedinexcellence.com -wearethepeople.site -weareworkcomp.com -wearewynwood.com -wearewynwood.org -wearinguniforms.info -wearitonmyface.com -wearsn.com -wearsti19.tk -wearwoolf.space -weaseling606tw.online -weasity.ru -weatherdakar.com -weatherest.com -weatherrootfirefight.best -weatherslawblog.com -weave.email -weave.xyz -weavestixscalpscratcher.com -weavingbeads.host -web-contact.info -web-design-malta.com -web-design-ni.co.uk -web-development-companies-uae.info -web-email.eu -web-emailbox.eu -web-experts.net -web-gravitation.ru -web-ideal.fr -web-inc.net -web-kamere-za-odrasle-online.fun -web-mail.pp.ua -web-mail1.com -web-maill.com -web-mailz.com -web-model.info -web-novosti.ru -web-ryugaku.net -web-site-sale.ru -web-sites-sale.ru -web-solution.shop -web-wingmen.com -web.discard-email.cf -web2mailco.com -web2rss.com -web2web.bid -web2web.stream -web2web.top -web3411.de -web3437.de -web3453.de -web3561.de -webadilly.com -webadsprotectonline.club -webaff.com -webaheadstudios.com -webanalyticsalert.com -webandgraphicdesignbyphil.com -webarnak.fr.eu.org -webasto.ltd -webauth.shop -webauthn.cloud -webaward.online -webbamail.com -webbear.ru -webbiesharing.com -webbithosting.org -webbizprofit.com -webbox.biz -webbsfunny.com -webbusinessanalysts.com -webcache.site -webcam-strip.com -webcamchiks.com -webcamia.com -webcamjobslive.com -webcamrobots.com -webcams-girls.com -webcamsex.de -webcamsjapan.com -webcamtests.net -webcamwithme.com -webcamzilla.com -webcare.tips -webcarta.com -webcchelp.com -webcity.ml -webcity.tk -webcms.app -webcoffe.ru -webcontact-france.eu -webcool.club -webcoworking.ru -webcperbri.cf -webcperbri.ga -webcperbri.gq -webcperbri.tk -webdeal.biz -webdesign-guide.info -webdesign-romania.net -webdesignlabratory.com -webdesignspecialist.com.au -webdesigrsbio.gr -webdespro.ru -webdev-pro.ru -webeditonline.info -webemail.me -webemailtop.com -webet188tiga.net -webet24.biz -webet24.live -webex.expert -webfilm.online -webfin.top -webfreemanual.asia -webgameawards.com -webgamesclub.com -webgenic.online -webgirlsinternational.com -webgmail.info -webgravitation.ru -webhane.com -webharden.com -webharden.net -webhocseo.com -webhomes.net -webhook.online -webhostchart.com -webhostfarm.com -webhostingbuzz.org -webhostingdomain.ga -webhostingjoin.com -webhostingsimplicity.com -webhostingtable.com -webhostingwatch.ru -webhostingwebsite.info -webide.ga -webinar-kochandkarki.live -webinfoservices.website -webingways.com -webird.se -webjet.rentals -webkatalog1.org -webkiff.info -webkiper.ru -webkitfoundation.net -webkitfoundation.org -webkizlar.com -webkizlar.net -webkoffe.ru -weblab34.ru -weblenders.ru -webleverancier.com -weblima.info -weblovein.ru -webm1.xyz -webm4il.in -webm4il.info -webmail.flu.cc -webmail.igg.biz -webmail.kolmpuu.net -webmail24.to -webmail24.top -webmail360.eu -webmail4.club -webmaild.net -webmailforall.info -webmailn7program.tld.cc -webmails.top -webmails24.com -webmastercommerce.com -webmastergrounds.com -webmcampvi.cf -webmcampvi.ga -webmcampvi.gq -webmcampvi.ml -webmeetme.com -webmind-glu.online -webmind-glu.shop -webname.cloud -webnavster.com -webnet.cd -weboka.info -webonofos.com -webpersonalshopper.biz -webphanmem.net -webpinoyako.ru -webpinoyteleserye.ru -webpinoyteleserye.su -webpix.ch -webpoets.info -webpoker99.live -webpozdravka.ru -webpreserv.com -webpro24.ru -webrepository.ru -webryugaku.com -webservers.info -webserverwst.com -webshop.website -websitebod.com -websitebody.com -websitebooty.com -websitecheckin.com -websiteconcierge.net -websitedesignjb.com -websitedomain.website -websiteflags.com -websiteforbusiness.info -websitegalore.net -websitehostingserverindia.com -websitehostingservices.info -websitemoves.net -websiteproekt.ru -websiterank.com -websiteregistrationrequest.com -websitevsfunnel.com -websock.eu -websorcery.com -webspor76.com -webspor78.com -webspor82.com -webspor90.com -webstart.host -webstarter.xyz -websterinc.com -webstesting.com -webstoremy.site -websubtopnew.club -webtalk-reviews.com -webtare.cf -webtare.ga -webtare.gq -webtare.ml -webtasarimi.com -webtechmarketing.we.bs -webteleserye.ru -webtempmail.online -webtimereport.com -webting-net.com -webtoon.club -webtown2.com -webtown3.net -webtrip.ch -webuiltyoursite.com -webuser.in -webuyahouse.com -webuydayton.net -webuyhudsonvalleyhouses.com -webwallet.exchange -webx5.royal-almas.it -webxengine.com -webxphp.ru -webyzonerz.com -webziliao.com -webzone.icu -wecantaffordtowait.com -wecarepropertybuyers.com -wecell.net -weclickers.ru -wecloud.buzz -wecmail.cz.cc -wecmon.org -wecookittakeaway.com -wedbank.ru -wedding-lombok.com -weddingalley.net -weddingcopenhagen.com -weddingcrawler.com -weddingdating.info -weddingdressaccessory.com -weddingdresseszone.com -weddingdressparty.net -weddingfurniture.net -weddingily.com -weddinginsurancereviews.info -weddinglombok.com -weddingofficiant.vegas -weddingplannernews.com -weddingrepublic.com -weddingringsinfo.com -weddings.cd -weddingslombok.com -weddingsontheocean.com -weddingtop.site -weddingvenuexs.com -wedeliverknowdledge.info -wederaser.cf -wediapanel.online -wediapanel.xyz -wediasoft.com -wedigjobs.org -wednesburydirect.info -wednesdaylaura.com -wednesdaymovo.com -wedooos.cf -wedooos.ga -wedooos.gq -wedooos.ml -wedostuffwell.net -wedpurpleyet.website -wedvine.com -wee.my -weeatbricks.com -weebsterboi.com -weed.monster -weeditopia.com -weedseedsforsale.com -weegal.com -weekendemail.com -weeklion.com -weeklydozen.today -weekmovie.org -weekom.fr -weemanlivetv.live -weenmyip.com -weeping-willow.shop -weepingdragon.net -weer.de -weeya22.com -wef.gr -wefeelgood.tk -wefjo.grn.cc -wefky.com -wefod1.site -weftsealer.com -weg-beschlussbuch.de -weg-werf-email.de -wegas.ru -wegenbouw.works -wegetall.store -wego-delivery.com -wegolo.se -wegoloblogs.com -wegwerf-email-addressen.de -wegwerf-email-adressen.de -wegwerf-email.at -wegwerf-email.de -wegwerf-email.net -wegwerf-emails.de -wegwerfadresse.de -wegwerfemail.com -wegwerfemail.de -wegwerfemail.info -wegwerfemail.net -wegwerfemail.org -wegwerfemailadresse.com -wegwerfmail.de -wegwerfmail.info -wegwerfmail.net -wegwerfmail.org -wegwerpmailadres.nl -wegwrfmail.de -wegwrfmail.net -wegwrfmail.org -wehealasone.cf -wehnerrapids.buzz -weho.monster -wehungry.hk -weibomail.net -weiborss.com -weightbalance.ru -weighted.reviews -weightloss.info -weightlossandhealth.info -weightlossidealiss.com -weightlossketo.shop -weightlossmetrics.com -weightlosspak.space -weightlossremedy.icu -weightlossshort.info -weightlossworld.net -weightoffforgood.com -weightrating.com -weihnachts-gruesse.info -weikemm.com -weil4feet.com -weildasjaklarist.vision -weildworks.org -weimoe.com -weimoe.net -weinisirenyulecheng.net -weinjobs.org -weipafa.cf -weipafa.ga -weipafa.ml -weipafa.tk -weipai.ws -weird3.eu -weirdcups.com -weirdfella.com -weirenqs.space -weishanghl.com -weishiwave.monster -weissdesignlab.online -weitong001.com -weiwep.us -weixincom1341.xyz -weixinlog.com -weixyz.com -weiyitou.net -weja.site -wejmx.com -wejr.in -welch-plc.com -welcome33.ru -welcomecitydublin.com -welcomehomeastbay.com -welcometocheap.site -welcoming.ong -weldir.cf -weldonrailroad.com -welgati.cf -welgati.ga -welgati.gq -welgati.ml -welgati.tk -welikecookies.com -well-well.xyz -well.brainhard.net -well108.biz -wellc.site -wellcelebritydress.com -wellcelebritydress.net -welldonev.xyz -wellensstarts.com -welleveningdress.com -welleveningdress.net -welleveningdresses.com -welleveningdresses.net -wellget.website -wellhungup.dynu.net -wellick.ru -wellmaek.com -wellmiderg.cf -wellmiderg.ga -wellmiderg.ml -wellmiderg.tk -wellnessanalytics.com -wellnesscentersofnorthtx.com -wellnesscreativemarketing.org -wellnessdom.ru -wellnessgeeksview.com -wellnessintexas.info -wellnessmarketing.solutions -wellnessthroughliving.com -wellnesswelder.com -wello.systems -wellpromdresses.com -wellpromdresses.net -wellsauthuserinfo.com -wellsfargoclassactionlawsuit.com -wellsfargocomcardholders.com -wellsummary.site -wellsupdatenewinfo.com -welltop24.ru -wellys37.ru -weloveketodiet.store -welshpoultrycentre.co.uk -weltentor.info -welypower.com -wem.com -wemel.site -wemel.top -wemesh.com -wemoveit2.com -wemzi.com -wencyphrasepedia.com -wendyalper.net -wendyalper.org -wendygoodhealthblog.com -wendyguest.com -wenegey.ru -wenghuo.com -wenjiong.com -wenku.moe -wenku0.com -wenkuapp.com -wensjuweel.online -wensjuweel.site -wentzvilleeyecenter.info -weoieng.space -weontheworks.bid -wepaycashforyourhouses.com -wephrr.us -weprintgroup.com -weprof.it -wepulaversion3alpha.xyz -wer.ez.lv -wer34276869j.ga -wer34276869j.gq -wer34276869j.ml -wer34276869j.tk -werbtghtry007fdgbn.monster -wercessdown.cf -wercessdown.ga -wercessdown.tk -werdiwerp.cf -werdiwerp.ga -werdiwerp.gq -werdiwerp.ml -werdiwerp.tk -were-having-a-party.life -wereviewbiz.com -werfat.xyz -weritharter.gq -werj.in -werkprocessen.app -werkr.com -wernunado.xyz -weroityr.ml -werparacinasx.com -werpbuna.ml -werpbuna.tk -werrmai.com -wersar.ru -wersollesdennsonstmachenaussergutti.vision -wersumer.us -wertacy.ga -wertacy.ml -wertaret.com -wertdrivatmo.website -wertheforscv.org -wertuoicikax10.site -wertuoicikax11.site -wertuoicikax8.site -wertxdn253eg.cf -wertxdn253eg.ga -wertxdn253eg.gq -wertxdn253eg.ml -wertxdn253eg.tk -wertyu.com -werw436526.cf -werw436526.ga -werw436526.gq -werw436526.ml -werw436526.tk -werwe.in -wes-x.net -wesandrianto241.ml -wesatikah407.cf -wesatikah407.ml -wesayt.tk -wesazalia927.ga -wescabiescream.cu.cc -wesd.icu -wesellchicagohomesfast.com -wesellhousesct.com -weselne.livenet.pl -weselvina200.tk -weseni427.tk -wesfajria37.tk -wesfajriah489.ml -wesgaluh852.ga -wesgebe.xyz -weshasni356.ml -weship2you.ru -weshutahaean910.ga -wesjuliyanto744.ga -weskusumawardhani993.ga -wesleytatibana.com -wesmailer.com -wesmailer.comdmaildd.com -wesmubasyiroh167.ml -wesmuharia897.ga -wesnadya714.tk -wesnurullah701.tk -wesruslian738.cf -wessastra497.tk -wessmsellsnc.com -west-african-energy.com -west-africanenergy.com -west-aussie.com -west.shop -westayyoung.com -westbendcomputer.com -westbendrental.com -westbranchtreasures.com -westbymontana.com -westchicagoofficecleaning.com -westconsin.mobi -westcrypt.com -westerlaken.icu -western24.site -westernavenuenissanespanol.com -westernbloggen.online -westervilleapartments.com -westfieldicedogs.com -westgatereservas.com -westin.media -westjeffersonarts.net -westjeffersonweddings.com -westjeffersonweddings.net -westjordanshoes.us -westlaketakeaway.com -westleyrichardsstore.com -westlocationserver921.com -westlund.info -westmailer.com -westmichiganclones.com -westmontchiropractor.com -westmontphysicaltherapist.com -westmontphysicaltherapyandrehab.com -westmountains.site -westmountains.website -westocrealty.com -westozzie.com -westpointbodrum.xyz -westsacramentodentists.com -westshockey.net -westsideservicecenter.net -weststarrealestate.com -westuckvethospital.com -westvalleyhospice.com -westvalleyhospicecare.com -westvirginiabbb.com -wesutui.com -wesw881.ml -weswibowo593.cf -weswidihastuti191.ml -wesyuliyansih469.tk -weszwestyningrum767.cf -wet-fish.com -wet-lip.com -wetacompany.ru -wetheprotocol.net -wetrainbayarea.com -wetrainbayarea.org -wetreasureyoursmiles.com -wetteliga25.com -wettertunesien.com -wettish.best -wetvibes.com -wewatestg2513.com -wewintheylose.com -wewtmail.com -wexdh.info -wexdh.ooo -weyfamily.com -weyuoi.com -wezo.tech -wezuwio.com -wf1110.com -wf2227.com -wf333.net -wf3337.com -wf4999.com -wf5559.com -wf558.com -wf7722.com -wf8111.com -wf8833.com -wf9666.com -wfacommunity.com -wfconcepts.info -wfdongyu.com -wfes.site -wfewyibw.shop -wffxtr.site -wfgdfhj.tk -wfggh995.com -wfgoldpin.ru -wfgun.ru -wfh.college -wfjngl.com -wfjsiks854.com -wfkyd.com -wfmarion.com -wfmeat.com -wfought0o.com -wfpukr.us -wfrijgt4ke.cf -wfrijgt4ke.ga -wfrijgt4ke.gq -wfrijgt4ke.ml -wfrijgt4ke.tk -wfsbw.com -wfuij1.site -wfupdateauthuser.com -wfupdatenewdev.com -wfwddl.com -wfxegkfrmfvyvzcwjb.cf -wfxegkfrmfvyvzcwjb.ga -wfxegkfrmfvyvzcwjb.gq -wfxegkfrmfvyvzcwjb.ml -wfxegkfrmfvyvzcwjb.tk -wg-replays.online -wg0.com -wg48fr-mail.xyz -wg7aey.us -wgberlin.org -wgbrothers.com -wgc89.com -wgdbwu.site -wgdmensmuscle.com -wgetcu0qg9kxmr9yi.ga -wgetcu0qg9kxmr9yi.ml -wgetcu0qg9kxmr9yi.tk -wgfrankfurt.org -wgfvim.us -wgkfdq.host -wgkoeln.org -wgnyw.info -wgraj.com -wgrazd.site -wgw365.com -wgweddxy.shop -wgwsgz.tokyo -wgztc71ae.pl -wh419.site -wh4f.org -whaaaaaaaaaat.com -whaaso.tk -whackedgangsters.com -whackedmobsters.com -whackedoutcriminals.com -whackyourboss.info -whadadeal.com -whalbum.ru -whale-mail.com -whale-should-cow-stuck.xyz -whale-watching.biz -whalechip.fund -whaletrue.com -whanntechnologygroup.com -what-the-falafal-dublin.com -whatdatnoise.com -whatdaywasthemost.com -whatharam.com -whatiaas.com -whatifanalytics.com -whatifcapital.com -whatifpartners.org -whatisbitcoin.org -whatisforskolin.xyz -whatismyipaddress.host -whatisnfc.com -whatistrust.info -whatistrust.org -whatlovers.com -whatmailer.com -whatnametogivesite.com -whatowhatboyx.com -whatpaas.com -whatsaas.com -whatsaduckdo.com -whatshalal.delivery -whatshouldibuypetetoday.com -whatsmyfeed.com -whatsmyspeed.info -whatsnew.events -whatsonmyballot.com -whatsresfa.cf -whatsresfa.ga -whatsresfa.gq -whatsresfa.ml -whatsresfa.tk -whatsthepointofaventura.com -whatthefeast.com -whatwewant.live -whatworkscsc.org -whatyourdoctorwasnttaughtebook.com -whdentalstudio.xyz -wheatbright.com -wheatbright.net -wheatsunny.com -wheatsunny.net -wheelbalancetraining.net -wheelbarrow.red -wheeldown.com -wheelemail.com -wheelie-machine.pl -wheelingfoods.net -wheels-club.ru -whemmle.xyz -whenex.com -whenkids.ru -whenstert.tk -whentake.org.ua -whentheycry.com -whenwillmychild.com -whenxrp.com -wherebeesmeet.com -wherecanibuythe.biz -whereismyairport.com -wherenever.tk -whereonrch.space -wheretoget-backlinks.com -whereuntil.xyz -whermt2.com -whgrid.com -whguyr.site -whhs.co.uk -whhsbdp.com -which-code.com -whichfoodsareinseason.com -whichloadsfaster.org -whidbees.com -whiffles.org -whikere.cf -whikere.ga -whikere.gq -whikere.ml -whilezo.com -whimdinil.cf -whimdinil.ga -whimdinil.gq -whimdinil.ml -whimdinil.tk -whipamo.tk -whiplashh.com -whirdilt.website -whirlwinds.xyz -whisenhuntdesign.com -whiskey.xray.ezbunko.top -whiskeyalpha.webmailious.top -whiskeygolf.wollomail.top -whiskeyiota.webmailious.top -whiskeynotes.com -whiskonzin.edu -whiskygame.com -whislmilsfar.cf -whislmilsfar.ga -whislmilsfar.gq -whislmilsfar.ml -whislmilsfar.tk -whispercities.org -whisperfocus.com -whispers-from-above.com -whispersum.com -whistleapp.com -whitdentezk.com -white-hands.net -white-hands.org -white-legion.ru -white-oak-brain.com -white-teeth-premium.info -white-tips.com -whitealligator.info -whitearkitekter.us -whiteazurro.com -whitebeachresort.net -whitebearlakeapartments.com -whitebison.info -whiteboss.net -whitebot.ru -whiteboxnetwork.org -whitedentezm.com -whitedentezn.com -whitedice.fun -whitedoggdetroit.com -whiteflowers.site -whitehall-dress.ru -whitehall-solutions.com -whitehat.markets -whitehousemeats.com -whitekazino.com -whitekidneybeanreview.com -whitelabelextracts.org -whitelinehat.com -whitemail.ga -whitemoosecafe-d7.com -whitenorthcard.com -whiteowlcigars.biz -whitepeoplearesoweird.com -whiteprofile.tk -whiterhum.com -whitesearch.net -whiteseoromania.tk -whiteshagrug.net -whiteshirtlady.com -whiteshirtlady.net -whiteskgfv.space -whitespee.icu -whitesteak.com -whitesteaks.com -whitetaildreamsre.com -whiteteeth-tcmpc.com -whitetiger.tools -whitetrait.xyz -whiteunit.icu -whiteutt.icu -whitewaterawards.org -whitewro.recipes -whitneyartparty.org -whiz.dev -whizdom.app -whizdom.biz -whizdom.net -whj1wwre4ctaj.ml -whj1wwre4ctaj.tk -whkart.com -whkfyy.com -whkw6j.com -whkwj.com -whlevb.com -whmailtop.com -whmwcy.com -whnp.us -who95.com -whoamail.co -whocalled.xyz -whodamanny.com -whodj.com -whodj.net -whohq.us -whoisandygrant.com -whoishussainiran.com -whoisless.com -whoissteviej.com -whoisya.com -whole-foods.ru -wholearth.org -wholebet3.com -wholecustomdesign.com -wholefoodrunner.com -wholegraincooker.com -wholegrainresources.com -wholegrainshop.com -wholelifetermlifeinsurance.com -wholepeoplemedia.com -wholeranc.xyz -wholesale-belts.com -wholesale-cheapjewelrys.com -wholesalebag.info -wholesalecheap-hats.com -wholesalediscountshirts.info -wholesalediscountsshoes.info -wholesaleelec.tk -wholesalefavor.com -wholesalejordans.xyz -wholesalelove.org -wholesalepsilocybin.com -wholesaleshtcphones.info -wholesn.xyz -wholesna.icu -wholesomebotanical.com -wholesomefamilycooking.com -wholesomeniggamemes.com -wholestee.icu -wholete.xyz -wholetea.xyz -wholewidget.com -wholey.browndecorationlights.com -wholisticeden.com -whomshoulditip.com -whoold.site -whoox.com -whopy.com -whose-is-this-phone-number.com -whoshoulditip.com -whosthere.site -whotravel.ru -whowego.com -whowlft.com -whoyoushouldvotefor.com -whqywc.com -whstores.com -whszum.com -wht004.com -whtsqpp.com -why.edu.pl -whydelhis.info -whydoihaveacne.com -whydrinktea.info -whyexdi34gq.cf -whyexdigq.cf -whyglu.us -whyitthis.org.ua -whyiwantout.com -whymustcodes.net -whymustyarz.com -whynotjazz.org -whynottos.info -whyspam.me -whyworkhard.com -whzqozx.site -wiadomosc.pisz.pl -wiantygamecoffer.cf -wiantygamecoffer.ml -wibb.ru -wibblesmith.com -wibu.online -wicepay.org -wichitahometeam.net -wicked-game.cf -wicked-game.ga -wicked-game.gq -wicked-game.ml -wicked-game.tk -wicked-teens.com -wicked.cricket -wickeddvdsales.com -wickedgames.net -wickedhipstribal.com -wickedsecure.net -wickedticketspittsburgh.com -wickerby.com -wickerbydesign.com -wickerparkdentalil.com -wickmail.net -wicoco.com -wicollar.site -widaryanto.info -widatv.site -widelettings.xyz -wideline-studio.com -widelo.ru -widencatc.buzz -widencycl.xyz -widenequ.email -widenmeta.site -widenvide.xyz -wideopencomputer.com -widerska.ovh -widerwhite.com -wides.co -wideserv.com -widewhy.com -widewilliam.com -widgeon.org -widgepaste.com -widget.gg -widgmit.com -widows.info -widthgaf.email -widthgr.fun -widthgre.recipes -widthmouth.com -wie-zwischen-himmel-und-erde.de -wiebunkgi.ga -wiebunkgi.gq -wiebunkgi.ml -wiebunkgi.tk -wielkanocne-dekoracje.pl -wierie.tk -wiersmatenten.frl -wiese-consult.biz -wiesekey.com -wifesutensils.com -wifi-boost.shop -wifi-map.net -wifi-surge.com -wificon.eu -wifiyi.com -wig-catering.com.pl -wighn.icu -wigo4d.net -wigoclub.net -wigolive.com -wigsweet.com -wihalfpricelistings.com -wiibundledeals.us -wiipointsgen.com -wikaya.org -wiki24.ga -wiki24.ml -wikiacne.com -wikiafterdark.com -wikibola.net -wikidocuslava.ru -wikifar.com -wikifortunes.com -wikilibhub.ru -wikilimpieza.com -wikimediane.org -wikipedi.biz -wikipedia-inc.cf -wikipedia-inc.ga -wikipedia-inc.gq -wikipedia-inc.ml -wikipedia-inc.tk -wikipedia-llc.cf -wikipedia-llc.ga -wikipedia-llc.gq -wikipedia-llc.ml -wikipedia-llc.tk -wikiplanet.space -wikirefs.com -wikiserie.online -wikiserie.org -wikiserie.website -wikisite.co -wikiswearia.info -wikitunner.com -wiklysale.online -wikuiz.com -wil.kr -wilayone.com -wilbrahamhomevalue.com -wilbrahammahomevalue.com -wilburn.prometheusx.pl -wilburnbuckingbulls.com -wild-game.ru -wild.wiki -wildbeard.ru -wildberryyogurt.net -wildbluepublishing.com -wildcardstudio.art -wildetool.net -wildfilms.ru -wildgeesegolfsociety.net -wildlifepen.com -wildlifephotographyholidays.online -wildmountainseed.com -wildorqwpr.space -wildorqwpr.website -wildrasthr.space -wildstar-gold.co.uk -wildstar-gold.us -wildsusta.cf -wildsusta.ml -wildsusta.tk -wildthingsbap.org.uk -wilemail.com -wiliserie.club -wiliserie.host -wiliserie.online -wiliserie.org -wiliserie.site -wiliserie.website -wiliserie.xyz -wilkeaardema.info -wilkinsonms.com -wilkinspleckgarden.com -wilkun.xyz -will-yum.com -willakarmazym.pl -willemwakker.com -willette.com -willhackforfood.biz -william-tell-ballistics.com -williambowers.net -williamcastillo.me -williamkew.com -williamkhalick.realtor -williampatersonuniversity.com -williamrobinson.buzz -williamsburgisforgolflovers.com -williatkte.space -williaucvu.space -williebcochran.com -willleather.com -willloc.com -willm.cd -willner-ventures.com -willosel.cf -willosel.ga -willosel.gq -willosel.ml -willosel.tk -willowclothing.shop -willowhavenhome.com -willowkleding.online -willowkleding.shop -willowmattresses.com -willowtreeddental.com -willrazsi.cf -willrazsi.ga -willrazsi.gq -willrazsi.ml -willrazsi.tk -wills.guru -willselfdestruct.com -willymailly.com -willypopper.com -wilmatalks.se -wilmhba.com -wilmingtonrealestateagents.com -wilon0706384.xyz -wilon3000018.xyz -wilon3631867.xyz -wilon3951350.xyz -wilon4461641.xyz -wilon5707450.xyz -wilon6097856.xyz -wilon6322863.xyz -wilon6478376.xyz -wilon6702026.xyz -wilon7053973.xyz -wilon7746360.xyz -wilon9533166.xyz -wilon9600861.xyz -wilon9601599.xyz -wilon9602154.xyz -wilon9630049.xyz -wilon9634055.xyz -wilon9634558.xyz -wilon9649506.xyz -wilon9651371.xyz -wilon9658322.xyz -wilon9674110.xyz -wilon9676273.xyz -wilon9687326.xyz -wilon9691114.xyz -wilon9698394.xyz -wilon9711272.xyz -wilon9714738.xyz -wilon9714965.xyz -wilon9726374.xyz -wilon9739931.xyz -wilon9756029.xyz -wilon9757869.xyz -wilon9759538.xyz -wilon9782174.xyz -wilon9783874.xyz -wilon9794243.xyz -wilon9819104.xyz -wilon9825173.xyz -wilon9830966.xyz -wilon9843344.xyz -wilon9859733.xyz -wilon9937245.xyz -wilon9955293.xyz -wilon9974230.xyz -wilon9978419.xyz -wilon9980567.xyz -wilroptit.xyz -wilson-hsu.com -wilson.cd -wilsonbuilddirect.jp -wilsonexpress.org -wilsonsaberdare.com -wilsonsleather.info -wilyapps.com -wimbl.com -wimsg.com -win-123.com -win-2020.club -win-777.net -win-bet.space -win-clean.xyz -win-cool-prizes-today.buzz -win-get.online -win-reward-award-national.club -win-win-win-win-win-win.site -win-winto.site -win-your.site -win1000x.net -win11bet.org -win4d.online -win789.net -win9rolet.xyz -winallinpro.xyz -winalways.ru -winandplay.com -winanipadtips.info -winaniphone7.info -winbro.online -wincep.com -windharpswindchimes.com -windlady.com -windlady.net -windmaweek.cf -windmaweek.ga -windmaweek.gq -windmaweek.ml -windmaweek.tk -windmine.tk -windom.fun -window-55.net -windowconfigurator.com -windowoffice7.com -windows.sos.pl -windows8hosting.info -windows8service.info -windowsdedicatedserversindia.com -windowshelpme.ru -windowsicon.info -windowsmanageddedicatedserver.com -windowsmembership.com -windowsresellerwebhostinginindia.com -windowsunlimitedwebhosting.com -windrow.xyz -windsandfa.cf -windsandfa.ga -windsandfa.gq -windsandfa.ml -windsandfa.tk -windscribe.lol -windscribe.wtf -windscribeindir.com -windscriber.com -windshieldrepairtech.com -windsorrealestateagents.com -windsurfingintotheunknown.com -windycityui.com -windykacjawpraktyce.pl -windytransit.com -winebagohire.org -winecorkus.com -winedaddy.com -winemail.net -winemails.com -winemaven.in -winemaven.info -winesoda.com -winetastingdriver.net -winetastingdrivers.net -winetypeslist.com -winevacuumpump.info -winfine.website -winfire.com -winfreegifts.xyz -winftime.cf -winftime.ml -winftime.tk -wingamble.press -winginus.xyz -wingslacrosse.com -wingspkr.net -wingybubble.icu -winie.club -winifi.info -wink-scrubs.com -wink-versicherung.de -winkslab.com -winkuniformscrubs.com -winliga365.tips -winline-bonus.ru -winlinee.ru -winmail.org -winmail.world -winmails.net -winmiosports.com -winner-foryour-prizes11.life -winner-win.site -winneroqqld.email -winnersom.space -winnersom7.space -winnersqa7.space -winnersstores.com -winnerto.site -winneryourprize-supergut1.life -winniejames.com -winning365.com -winning365.social -winningcombi.xyz -winningeleven365.com -winnipegeventvideo.com -winnipegvideorecording.com -winnweb.net -winnweb.win -winong.top -winonlinerewards9.site -winoptimizer.com -winpayawardnational.club -winplay-casinox332.ru -winplay303.com -winplus24.com -winpublib.com -winpupe.cf -winpupe.ga -winpupe.gq -winregion.com -winrere.xyz -winrewardawardnational.club -wins-await.net -wins.com.br -wins.vote -winsbet88.org -winsdar.com -winslot97.net -winsomedress.com -winsomedress.net -winspins.party -winsrezde.cf -winsrezde.ga -winsrezde.gq -winsrezde.ml -winsrezde.tk -winstanleyspramworld.com -winter-solstice.info -winter-solstice2011.info -winterabootsboutique.info -winterafootwearonline.info -winteries.xyz -winterize843tp.online -wintersbootsonline.info -wintershop.icu -winterx.site -wintopaywin.fun -wintopaywin.host -wintopaywin.press -wintopaywin.space -wintopaywin.xyz -wintosa.info -wintowin18.com -wintowinz.site -winwin-77.net -winwin.realestate -winwincool.site -winwincool.website -winwinni.site -winwinus.xyz -winxmail.com -wip.com -wipaffillate.com -wipbet400.com -wipbet73.com -wipesshop.live -wira6d.info -wirasempana.com -wiratoto4d.xyz -wirawan.cf -wirawanakhmadi.cf -wire-shelving.info -wire.cd -wirebrush.biz -wirebrush.us -wirebrushes.us -wired-usa.com -wiredlifemag.com -wiredlifemagazine.com -wiredlivingmag.com -wiredlivingmagazine.com -wirednyc.com -wiredparis.com -wirefreeemail.com -wireless-alarm-system.info -wirelesspreviews.com -wiremail.host -wirepark.us -wirkel.site -wirkelantikored.site -wirkoennenjaauchgleichmckinseyanheuernwennssoweitergeht.vision -wirlwide.com -wirp.xyz -wirsindneuland.vision -wirtualnewiadomosci.space -wirull.site -wirwollenkeingelabermehr.vision -wirwox.com -wisans.ru -wisatajogja.xyz -wisataoperasiplastik.com -wisataseru.info -wisbuy.shop -wisconsincomedy.com -wisconsinlakehomefinder.com -wisdompublishers.com -wisdompush.com -wisdomsurvival.com -wisdomtime-healthmethod.com -wise-04.com -wise-06.com -wise-07.com -wise-08.com -wisechoiceinvestors.com -wiseeyessecurity.com -wisehomepurchasing.com -wiseideas.com -wisepromo.com -wiserspots.com -wisewad.net -wisfkzmitgxim.cf -wisfkzmitgxim.ga -wisfkzmitgxim.gq -wisfkzmitgxim.ml -wisfkzmitgxim.tk -wish-shoponline.info -wishan.net -wishboneengineering.se -wisheswide.com -wishlack.com -wispkz.ga -wit.coffee -wit123.com -witchermedallion.ru -witecollar.site -witel.com -witgoedexpo.online -with-u.us -withapi.net -withlove.sk -withlovedenise.com -withsflussurf.ga -withsflussurf.tk -withspark.com -withstar.se -witix.fun -wittenbergpartnership.com -wittfest.net -witty7.com -wittyotic.com -wity.site -wityjs.com -wix.creou.dev -wix.ptcu.dev -wixcmm.com -wixgdu.info -wixubou.space -wiyam.org -wiz2.site -wizaz.com -wizbangimages.com -wizerco.org -wizseoservicesaustralia.com -wizstep.club -wizzcar.space -wj5514.com -wj5517.com -wj7qzenox9.cf -wj7qzenox9.ga -wj7qzenox9.gq -wj7qzenox9.ml -wj7qzenox9.tk -wjblw.info -wjhndxn.xyz -wjjxxlib.com -wjkyw.info -wjs1001.com -wjs1006.com -wjs1007.com -wjs1009.com -wjzldt.us -wk-designedtowork.net -wk-designedtowork.se -wk376.com -wk5btj.info -wk853.com -wkbmcw.fun -wkbmwf.fun -wkcqw.info -wkd0as.info -wkdmyq.fun -wkernl.com -wkex.net -wkgmbb.fun -wkhaiii.cf -wkhaiii.ga -wkhaiii.gq -wkhaiii.ml -wkhaiii.tk -wkhmsr.fun -wkime.pl -wkjrj.com -wklik.com -wkmmzn.fun -wknmfp.fun -wkobe.us -wkoorts.fun -wkpmjm.fun -wkpmxt.fun -wkqmgq.fun -wkrmwr.fun -wkschemesx.com -wksmdn.fun -wktmpq.fun -wktmxd.fun -wkuteraeus.xyz -wkzmnp.fun -wkzrw.info -wla2d.info -wla2d.net -wla2d.xyz -wla9c4em.com -wladyslawa.xyz -wlands.online -wletu1.site -wlht8w.info -wlist.ro -wljia.com -wljkj3.com -wljycs.online -wlk.com -wloahs.icu -wlpyt.com -wlrzapp.com -wlvwv.us -wlwzvd.tokyo -wm-pecom.ru -wm335.com -wm336.com -wm567.com -wm5x.us -wm88th.com -wmail.cf -wmail.club -wmail.tk -wmail1.com -wmail2.com -wmail2.net -wmaill.site -wmaqw.space -wmbadszand2varyb7.cf -wmbadszand2varyb7.ga -wmbadszand2varyb7.gq -wmbadszand2varyb7.ml -wmbadszand2varyb7.tk -wmcsale.top -wmesale.top -wmgame88.com -wmik.de -wmjqzp.us -wmlorgana.com -wmpezacn.shop -wmpy.ru -wmrmail.com -wmux.ru -wmwha0sgkg4.ga -wmwha0sgkg4.ml -wmwha0sgkg4.tk -wmxhj3.us -wmzgen.ru -wmzgjewtfudm.cf -wmzgjewtfudm.ga -wmzgjewtfudm.gq -wmzgjewtfudm.ml -wmzgjewtfudm.tk -wn01kb.xyz -wn3wq9irtag62.cf -wn3wq9irtag62.ga -wn3wq9irtag62.gq -wn3wq9irtag62.ml -wn3wq9irtag62.tk -wn8c38i.com -wnacg.xyz -wncbigfoot.com -wncbigfoot.info -wncnw.com -wndcw.info -wnextaudit.com -wnmail.top -wnptdb.com -wns777.info -wnsocjnhz.pl -wnsymb.us -wntmw.info -wnu8lg.us -wnvpedwag.shop -wnyrcfl.org -wo-gg.com -wo295ttsarx6uqbo.cf -wo295ttsarx6uqbo.ga -wo295ttsarx6uqbo.gq -wo295ttsarx6uqbo.ml -wo295ttsarx6uqbo.tk -wo52ni.com -woa.org.ua -woae0g.site -wobblysausage.site -woberim.live -wobtel.biz -wobvmihyy.shop -woc-news.ru -wocall.com -wocowstore.com -wocy.info -wodexue.xyz -wodeyars.com -wodtorec.cf -wodtorec.ml -wodtorec.tk -wodtrials.com -wodulaw.com -wody.site -woe.com -woermawoerma1.info -wofa0.com -wofeshops.site -wofsrm6ty26tt.cf -wofsrm6ty26tt.ga -wofsrm6ty26tt.gq -wofsrm6ty26tt.ml -wofsrm6ty26tt.tk -wohbjs.online -wohiza.info -wohlbarkfeeb.cf -wohlbarkfeeb.ga -wohlbarkfeeb.gq -wohlbarkfeeb.ml -wohlbarkfeeb.tk -wohnzimmerdesignideen.me -wohoho.xyz -woikalsderf.tk -wokanguode.com -wokcy.com -wokecus.com -woktowalk-tallaght.com -wolaf.com -wolbac.club -wolbettv3.com -wolbettv4.com -wolbettv5.com -wolbettv6.com -wolbettv7.com -wolbettv9.com -wolckano24.website -wolcottelderlawgroup.com -wolf-os.com -wolf999.com -wolff-llc.com -wolff00.xyz -wolfmail.ml -wolfmedia.solutions -wolfmission.com -wolfnetworksecurity.com -wolfslag.info -wolfsmail.ml -wolfsmail.tk -wolfsmails.tk -wolfyx.xyz -wolij1.club -wolitwo.club -wollan.info -wolljk.club -wolukieh89gkj.tk -wolukiyeh88jik.ga -wolurem.ru -wolven.xyz -wolverinebaseball.us -womackautomation.com -woman-blog-list.info -woman2019.ru -womanolog.ru -womanshealth.online -womclub.su -women-g.ru -women999.com -womenbay.ru -womenblazerstoday.com -womenbox.ru -womencosmetic.info -womendressinfo.com -womenhealthcare.ooo -womeninaccountancyawards.com -womenklab.ru -womenmeanbusinessweek.com -womenofjewelry.online -womenoutfitters.xyz -womens.vote -womensmentalhealthcenters.com -womenssubstanceabusetreatmentprograms.com -womenstuff.icu -womenstuff.xyz -womentao.club -womentopsclothing.com -womentopswear.com -womenussf.online -womenvetsrun.com -womenvetsrun.org -wommangotobuy.site -womxht.us -wonaffiliate.com -wonderfish-recipe2.com -wonderfulblogthemes.info -wonderfulfitnessstores.com -wonderfulgifts.ru -wonderfulllife.space -wonderfulproperties.com -wonderlog.com -wondernest.kitchen -wonderouz.com -wonderphotobooth.site -wondersteri.com -wonderstwo.top -wonderwaregroup.com -wongndeso.gq -wongplay.com -wonlexofficial.ru -wonodds41.com -wonodds87.com -wonrg.com -wonwwf.com -woocommercemultiwarehouses.com -woodblittde.cf -woodblittde.ga -woodblittde.gq -woodblittde.tk -woodbridgeelderlawgroup.com -woodchristmasornaments.com -woodecorfurniture.com -woodfrek.tk -woodgribla.gq -woodgribla.tk -woodlandplace.info -woodlandplumbers.com -woodlandsfootspecialists.net -woodlandsnashville.us -woodmachinery-group.ru -woodmillcafe.com -woodoostudio.ru -woodroastedcoffee.store -woodsmail.bid -woodwilder.com -woodwindshop.life -woodworkingforum.life -woodykit43.ru -woodzone.info -woofbtqw.ru -woofee.ru -wooh.site -woollens.ru -woolop.best -woolrich-italy.com -woolrichhoutlet.com -woolrichoutlet-itley.com -woolticharticparkaoutlet.com -woolyburger.com -woonq.info -wooolrichitaly.com -wooppa.com -wooricasino.shop -woosha.se -wootap.me -wop.ro -wopc.cf -wopcmtdnqr.space -wopit.xyz -wopizza.ru -woppler.ru -worcesterbaseballclub.com -worcesterpartnership.com -word-literature.xyz -word.monster -wordfromthebirdblog.com -wordme.stream -wordmedia.site -wordmix.pl -wordpressbucuresti.com -wordpressitaly.com -wordpressmails.com -wordsajtg.ru -wordsorcerer.com -wordswzpdx.space -wordsyimages.com -work-info.ru -work-is-play.com -work.obask.com -work24h.eu -work4uber.us -work66.ru -workcareer.site -workcareer.today -workconsfun.cf -workconsfun.ga -workconsfun.gq -workconsfun.ml -workconsfun.tk -workdinser.ru -workemail5.ru -workers.su -workersunity.org -workevo.email -workfast24.ru -workflowtest.xyz -workflowy.club -workflowy.cn -workflowy.top -workflowy.work -workfromhome365.org -workfromhomegroups.com -workhard.by -workingzlq.space -worklists.ru -workmail.life -worknetli.cf -worknetli.gq -worknetli.ml -worknetli.tk -workout-onlinedvd.info -workoutsupplements.com -workplacemoodle.info -workplacemoodle.org -workright.ru -worksctory.email -workshopbrouwen.com -workshopdeautomaquiagem.com -workshopwha.email -worksmail.cf -worksmail.ga -worksmail.gq -worksmail.ml -worksmail.tk -worksoho.cf -worksoho.ga -worksoho.gq -worksoho.ml -worksoho.tk -worktgfkcwt.email -worktogetherbetter.com -workwithchampions.net -workwolf.fun -workwolf.host -workwolf.site -world-champion.ru -world-many.ru -world-news-pers.site -world-sale.ru -world-shopping.info -world-surprising.ru -world-travel.online -world4ch.org -worldatnet.com -worldawaits.org -worldbestoliveoils.com -worldbibleschool.name -worldcenter.ru -worldcoinmap.online -worldcoinmap.xyz -worldcpa.ru -worldcup2019-10.xyz -worldcup2019-11.xyz -worldcup2019-12.xyz -worldcup2019-13.xyz -worldcup2019-14.xyz -worldcup2019-15.xyz -worldcup2019-16.xyz -worldcup2019-17.xyz -worldcup2019-18.xyz -worldcup2019-2.xyz -worldcup2019-21.xyz -worldcup2019-23.xyz -worldcup2019-24.xyz -worldcup2019-3.xyz -worldcup2019-5.xyz -worldcup2019-6.xyz -worldcup2019-7.xyz -worldcup2019-8.xyz -worlddataproducts.com -worlddidac.com -worlddonation.org -worldfinanceloancompany.host -worldfowheels.com -worldfridge.com -worldgovernmentsummit.media -worldimprovementlabs.org -worldinvent.com -worldjournal.info -worldlivecams.com -worldlottowin.com -worldluckyclubwons.ru -worldmail.com -worldmuz.org -worldnewstoday.ru -worldof.works -worldof17hats.com -worldofeasier.com -worldofemail.info -worldofgamedesign.com -worldofhappy.info -worldofpetals.com -worldofrichworks.com -worldofzoe.com -worldopros3-ml.fun -worldpetcare.cf -worldrabiesday.asia -worldrabiesday.net -worldrabiesday.tel -worldrevolution.info -worldsbestever.company -worldsbestoliveoil.org -worldsbestoliveoils.com -worldshealth.org -worldsonlineradios.com -worldspace.link -worldsquare.sydney -worldsreversephonelookups.com -worldstarbetting7.com -worldstarbetting8.com -worldtaxback.com -worldteachersurvey.com -worldturinfo.ru -worldunitedmusic.com -worldw88.com -worldwatchnews.com -worldwidebusinesscards.com -worldwidecasings.com -worldwideprayerchain.org -worldwideviews.ru -worldwidewholesale.company -worldwidewholesalecompany.com -worldwite.com -worldwite.net -worldzip.info -worlhydlo.cf -worlhydlo.ml -worlhydlo.tk -worlipca.com -worllofa.ga -worllofa.gq -worllofa.ml -worllofa.tk -worlsiftfil.ga -worlsiftfil.gq -worlsiftfil.ml -wormbrand.com -wormbrand.net -wormbrand.org -wormholed.best -wormikj12.xyz -wormseo.cn -wormswap.com -wormswork.org -wormusiky.ru -wornbyacelebrity.com -worp.site -worryabothings.com -worrybr.icu -worrybre.xyz -worrycro.xyz -worrygrav.site -worryunc.xyz -worrywas.xyz -worrywh.xyz -worstautos.info -worstcoversever.com -worthitmarketing.com -worthniza.cf -worthniza.ga -worthniza.gq -worthniza.ml -worthniza.tk -worthshake.email -worthtri.recipes -worthwre.com -wortsesfa.cf -wortsesfa.ga -wortsesfa.gq -wortsesfa.ml -worxsites.net -wosenow.com -wosipaskbc.info -wosostand.site -wossm.site -wot-booster.ru -wot-replay.online -wotgjv.site -would-battle-toy-cheese.xyz -would.dev -woundje.icu -woundy.site -wovfkp.icu -wovz.cu.cc -wow-h2.com -wow-hack.com -wow-logic.com -wow-tb.com -wow-zakuski.ru -wow.royalbrandco.tk -wowable.com -wowauctionguide.com -wowbd.fun -wowcemafacfutpe.com -wowchina.club -wowclassicbot.com -wowcorp.com -wowgoldy.cz -wowgrill.ru -wowgua.com -wowhackgold.com -wowhair.ru -wowhundred.com -wowico.org -wowin.pl -wowishop.ru -wowizmir.com -wowjk.site -wowklas.site -wowlogik.com -wowmail.gq -wowmailing.com -wowmyksd.gq -wowokan.com -wowosp.xyz -wowpizza.ru -wowsale.website -wowthis.space -wowthis.tk -wowxv.com -woxvf3xsid13.cf -woxvf3xsid13.ga -woxvf3xsid13.gq -woxvf3xsid13.ml -woxvf3xsid13.tk -wp-admins.com -wp-ap.com -wp-coop.net -wp-global.ru -wp-viralclick.com -wp.company -wp2romantic.com -wp485k.us -wp568.com -wpaimj.us -wpbackup.online -wpbbq.dev -wpbbq.world -wpbinaq3w7zj5b0.cf -wpbinaq3w7zj5b0.ga -wpbinaq3w7zj5b0.ml -wpbinaq3w7zj5b0.tk -wpblogbuilders.com -wpbsw.info -wpcommentservices.info -wpcrash.site -wpdeveloperguides.com -wpdfs.com -wpdork.com -wpeopwfp099.tk -wperts.com -wpflsp.xyz -wpfoo.com -wpg.im -wpgeeks.online -wpgotten.com -wphacks.online -wpjigg.best -wpkg.de -wpkppihh.shop -wplusley.site -wpmail.org -wpmeaning.com -wpms9sus.pl -wpnotificationbar.com -wpondersteuning.com -wpower.info -wppremiumclub.com -wpredis.com -wpsavy.com -wpservices.expert -wpstorage.org -wpsurveys.com -wpuseractions.com -wputils.online -wpwjlr.site -wpxlgh.site -wqcefp.com -wqcefp.online -wqczu9.com -wqh0o.us -wqnbilqgz.pl -wqqkg5.com -wqsaunas.com -wqwhw.info -wqwq778.xyz -wqwwdhjij.pl -wqxhasgkbx88.cf -wqxhasgkbx88.ga -wqxhasgkbx88.gq -wqxhasgkbx88.ml -wqxhasgkbx88.tk -wqypw.info -wr-betad.com -wr.moeri.org -wr29zi.us -wr9v6at7.com -wracesis.cf -wracesis.ga -wracesis.gq -wracesis.ml -wracesis.tk -wracked.space -wraf.pro -wralawfirm.com -wrangler-sale.com -wrappedinit.com -wrappedstudio.com -wrapplese.ru -wrcbsaei.shop -wrdtme.us -wrenchenbt.space -wrf7vx.info -wrgs.icu -wrgtci.icu -wri.xyz -wrinadstal.cf -wrinadstal.gq -wrinadstal.ml -wrinadstal.tk -wrinklecareproduct.com -wristawf.icu -wristpl.icu -wristpla.icu -wristqueen.recipes -wristwast.xyz -wristwidt.com -writability.net -write-unknown-second-shot.xyz -writegoodessay.website -writehag.ga -writeme-lifestyle.com -writeme.us -writeme.xyz -writemyessays.onl -writemypaper.onl -writenownote.com -writergoods.com -writers.com -writersarticles.be -writersefx.com -writersservices.net -writidicim.site -writingforpennies.pro -writinghelper.top -writingservice.cf -writsenle.cf -writsenle.ga -writsenle.ml -writsenle.tk -written4you.info -writteninstonethemovie.com -wrjadeszd.pl -wrld.community -wrlnewstops.space -wrlxw.info -wroc.community -wroc.space -wroclaw-tenis-stolowy.pl -wroetret.site -wroglass.br -wrongfuldeathattorneyct.com -wronggrin.space -wronghead.com -wrongli.xyz -wronsu.com -wrpd4y.us -wrqbw.info -wrysutgst57.ga -wrzshield.xyz -wrzuta.com -ws.gy -ws1i0rh.pl -wsacommunications.com -wsad.xyz -wsanitizer.com -wsap.site -wsb-delta.ru -wsb-tourproject.biz -wsb365group.com -wsbclusterdelta.ru -wsbdelta.ru -wsbet.info -wscu73sazlccqsir.cf -wscu73sazlccqsir.ga -wscu73sazlccqsir.gq -wscu73sazlccqsir.ml -wscu73sazlccqsir.tk -wsd88poker.com -wsdbet88.net -wsen1.ru -wsfjtyk29-privtnyu.fun -wsfjtyk29-privtnyu.host -wsfjtyk29-privtnyu.site -wsfjtyk29-privtnyu.website -wsfjtyk29-privtnyu.xyz -wsh1q4.us -wsh72eonlzb5swa22.cf -wsh72eonlzb5swa22.ga -wsh72eonlzb5swa22.gq -wsh72eonlzb5swa22.ml -wsh72eonlzb5swa22.tk -wsiconsultant.com -wsifenetondr.host -wsiillinois.com -wsimediagroup.com -wsimiami.com -wsiyb.com -wsmeu.com -wsodrg.us -wsoparty.com -wsqaxdezxc.net -wsse.us -wsswoodstock.com -wsswoodstock.xyz -wstc.info -wstc8d.us -wsuart.com -wsuoptimize.org -wsvnsbtgq.pl -wswseo.com -wswsw.info -wszystkoolokatach.com.pl -wt-rus.ru -wt0vkmg1ppm.cf -wt0vkmg1ppm.ga -wt0vkmg1ppm.gq -wt0vkmg1ppm.ml -wt0vkmg1ppm.tk -wt2.orangotango.cf -wtbone.com -wtcnoida2.com -wtdmugimlyfgto13b.cf -wtdmugimlyfgto13b.ga -wtdmugimlyfgto13b.gq -wtdmugimlyfgto13b.ml -wtdmugimlyfgto13b.tk -wteoq7vewcy5rl.cf -wteoq7vewcy5rl.ga -wteoq7vewcy5rl.gq -wteoq7vewcy5rl.ml -wteoq7vewcy5rl.tk -wtf-man.net -wtfdesign.ru -wtflagu.bid -wtfzbg.ml -wtguns.com -wth0v.us -wtic.de -wtnqw.info -wtnw4.us -wto.com -wtprlf.com -wtransit.ru -wtrckhertz.com -wtskw.info -wttmw.info -wtu1sv.us -wtudeevd.shop -wu138.club -wu138.top -wu158.club -wu158.top -wu189.top -wu2vf.site -wu8vx48hyxst.cf -wu8vx48hyxst.ga -wu8vx48hyxst.gq -wu8vx48hyxst.ml -wu8vx48hyxst.tk -wucaitang.com -wudet.men -wudprint.online -wudtee.online -wuespdj.xyz -wueycgwuyebc.club -wufoshops.site -wufu45.com -wufu77.com -wufushe.org -wufuya.com -wugxxqrov.pl -wuhl.de -wujaze.info -wuji37.com -wuji38.com -wuji39.com -wujicloud.com -wujlsahrr.shop -wujy.site -wulcaner24.website -wum5sr-mail.xyz -wumail.com -wumbo.co -wunderkraut.ru -wunschbaum.info -wunvc.monster -wunvdh.xyz -wupics.com -wurasu.info -wurer.live -wurric.site -wusnet.site -wusrmp.best -wuvamarket.site -wuwaqu.info -wuwnxia.xyz -wuxoby.ru -wuxoshop.site -wuxq.xyz -wuyc41hgrf.cf -wuyc41hgrf.ga -wuyc41hgrf.gq -wuyc41hgrf.ml -wuyc41hgrf.tk -wuyebcuywebc.club -wuyecili.net -wuyecuwyec.club -wuzhizheng.mygbiz.com -wuzhou333.com -wuzup.net -wuzupmail.net -wv4t2k.info -wv94.com -wvcheckpoints.com -wvckgenbx.pl -wvclibrary.com -wvea.net -wvgtc.us -wvhalfpricedlisting.com -wvhalfpricelisting.com -wvipapp.com -wvjmpysbh.shop -wvl238skmf.com -wvmih7.site -wvppz7myufwmmgh.cf -wvppz7myufwmmgh.ga -wvppz7myufwmmgh.gq -wvppz7myufwmmgh.ml -wvppz7myufwmmgh.tk -wvpzbsx0bli.cf -wvpzbsx0bli.ga -wvpzbsx0bli.gq -wvpzbsx0bli.ml -wvpzbsx0bli.tk -wvrbee.org -wvrdwomer3arxsc4n.cf -wvrdwomer3arxsc4n.ga -wvrdwomer3arxsc4n.gq -wvrdwomer3arxsc4n.tk -wvruralhealthpolicy.org -wvulm5.us -wvv360.com -wvw3421.com -ww-ww.su -ww00.com -ww00bb.com -ww00ee.com -ww00ii.com -ww00qq.com -ww00xx.com -ww1775.com -ww33aa.com -ww33ii.com -ww33qq.com -ww33vv.com -ww33zz.com -ww696.net -wwah.org -wwatme7tpmkn4.cf -wwatme7tpmkn4.ga -wwatme7tpmkn4.gq -wwatme7tpmkn4.tk -wwatrakcje.pl -wwcp0000.com -wwcuh5.us -wwdd22.com -wwee00.com -wweeerraz.com -wwf.az.pl -wwfontsele.com -wwhbvoic.shop -wwii-1940s.com -wwii00.com -wwikiyas.site -wwjj55.com -wwjltnotun30qfczaae.cf -wwjltnotun30qfczaae.ga -wwjltnotun30qfczaae.gq -wwjltnotun30qfczaae.ml -wwjltnotun30qfczaae.tk -wwjmp.com -wwkk00.com -wwkk55.com -wwmails.com -wwnewstop.site -wwordbridgeg.site -wwordcluba.site -wworddogn.site -wwparaverlain.ml -wwparaverlain.tk -wwpshop.com -wwqysw.com -wwrmails.com -wwstockist.com -wwsww.info -wwva.net -wwvhaosou.com -wwvl2n.us -www-011usafuspzporpuss01.xyz -www-0419.com -www-123movies.best -www-19927.com -www-3886.com -www-49149.com -www-5875k.com -www-5875n.com -www-5875r.com -www-5875x.com -www-5875y.com -www-5875z.com -www-733555.com -www-7775678.com -www-88591.com -www-9424.com -www-9908818.com -www-9968818.com -www-bm1234.com -www-cx888.com -www-email.bid -www-hk09.com -www-hk288.com -www-host.site -www-ky5500.com -www-lr888.com -www-odqp.com -www-putlockers.best -www-rolimons.tk -www.barryogorman.com -www.bccto.com -www.bccto.me -www.cqnhtgs.top -www.dmtc.edu.pl -www.eairmail.com -www.gameaaholic.com -www.gishpuppy.com -www.hotmobilephoneoffers.com -www.live.co.kr.beo.kr -www.mailinator.com -www.mykak.us -www.nak-nordhorn.de -www.redpeanut.com -www.thestopplus.com -www1.hotmobilephoneoffers.com -www10.ru -www111elexbet.xyz -www111gao.com -www11rsx.net -www188gao.com -www2.htruckzk.biz -www22rsx.com -www24ruru.com -www25ruru.com -www33rsx.com -www38ruru.com -www41ruru.com -www44rsx.net -www55rsx.com -www55rsx.net -www6234.net -www700ruru.com -www77rsx.com -www800ruru.com -www880883.com -www99rsx.com -www99rsx.net -wwwap.ru -wwwatrakcje.pl -wwwblooom.com -wwwbm1234.com -wwwbox.tk -wwwbrightscope.com -wwwcruiseone.com -wwwdindon.ga -wwweaglerider.com -wwweb.cf -wwweb.ga -wwwemail.bid -wwwemail.racing -wwwemail.stream -wwwemail.trade -wwwemail.win -wwwerincondren.com -wwwerr.com -wwwfiserv.com -wwwfotowltaika.pl -wwwfotowoltaika.pl -wwwh567.com -wwwhaodiaochui.com -wwwhaodiaonv.com -wwwhaodiaopao.com -wwwhk09.com -wwwhk288.com -wwwht.com -wwwkreatorzyimprez.pl -wwwlh8828.com -wwwlr888.com -wwwmail.gq -wwwmetatrader5.com -wwwmitel.ga -wwwmontanatitle.info -wwwncslenders.net -wwwnew.de -wwwnew.eu -wwworkers.com -wwwoutmail.cf -wwwpao00.com -wwwpapa26.com -wwwpapa39.com -wwwpapa57.com -wwwplacertitle.mobi -wwwprclosings.net -wwwprepscholar.com -wwwptanow.us -wwwruru02.com -wwwruru03.com -wwwruru10.com -wwwruru13.com -wwwruru18.com -wwwruru21.com -wwwruru24.com -wwwruru32.com -wwwruru45.com -wwwruru98.com -wwwsafecu.org -wwwshoujinwang.com -wwwtexasnationaltitle.com -wwwtexasnationaltitle.us -wwwtexasnationaltltle.net -wwwtexasnationatite.org -wwwtm55.com -wwwtradervue.com -wwwtworcyimprez.pl -wwwuedfa.info -wwwuna.com -wwwvbaidu.com -wwww-011uspush-notification-af-uss08.xyz -wwww-011uspush-notification-af-uss09.xyz -wwwwp888.com -wwwwpobedun.ru -wwwwyomingtitle.com -wwwwyomingtitle.info -wwwwyomingtitle.net -wwwyp888.com -wwwyugeeson.xyz -wwxfur.com -wwzm8r.site -wx6018.com -wx7008.com -wxgsln.us -wxkmbrgh.shop -wxmail263.com -wxnmsy.com -wxnw.net -wxt2.icu -wxy5q9479s.men -wxyuetu.com -wy6klk.us -wyandotcountyfair.net -wybory.edu.pl -wybuwy.xyz -wychw.pl -wyeransmax.ga -wyeransmax.gq -wyeransmax.tk -wyfeedburner.com -wyfhyx.com -wygc2.info -wygjgg.com -wyhalfpricelistings.com -wyioum.shop -wyjatkoweokazje.online -wymarzonesluby.pl -wymeno.info -wymote.best -wynajemaauta.pl -wynajemmikolajawarszawa.pl -wynanet.ru -wynbud.com -wynncash01.com -wynncash13.com -wynwoodfarms.com -wyoming-nedv.ru -wyomingaluminum.xyz -wyomingou.com -wyomingtitl.us -wyomingtitle.info -wyomingtitle.org -wyomingtitle.us -wyseo.net -wyszukiwaramp3.pl -wyuqois.site -wyvernia.net -wyvy.site -wyzb39.xyz -wyzb40.xyz -wyzwt.com -wz69j3ah3uaa2b1.xyz -wz9227.com -wz9827.com -wz9837.com -wzeabtfzyd.pl -wzeabtfzyda.pl -wzfcw.info -wzgrupos.com -wzhn34.us -wzjfebopn.gq -wzjqg1.site -wzkdvl.com -wzm7.us -wzofwtsry.shop -wzorymatematyka.pl -wzukltd.com -wzxmtb3stvuavbx9hfu.cf -wzxmtb3stvuavbx9hfu.ga -wzxmtb3stvuavbx9hfu.gq -wzxmtb3stvuavbx9hfu.ml -wzxmtb3stvuavbx9hfu.tk -wzxsbz.com -wzyk.tech -wzyzex.icu -wzzhjl.com -x-8.buzz -x-bases.ru -x-cocaine3.online -x-fails.com -x-fuck.info -x-instruments.edu -x-izvestiya.ru -x-mail.cf -x-ms.info -x-mule.cf -x-mule.ga -x-mule.gq -x-mule.ml -x-mule.tk -x-musor.ru -x-netmail.com -x-new-ru-news.ru -x-pc.ru -x-porno-away.info -x-rugazeta.ru -x-runovosti.ru -x-rutochka.ru -x-today-x.info -x-v-x.com -x-vestnik.ru -x-w-x.com -x-watch.best -x.agriturismopavi.it -x.bigpurses.org -x.emailfake.ml -x.fackme.gq -x.nadazero.net -x.polosburberry.com -x.puk.ro -x.tonno.cf -x.tonno.gq -x.tonno.ml -x.tonno.tk -x.yeastinfectionnomorenow.com -x004scur.buzz -x006nfta.buzz -x00x.online -x012xvph.buzz -x015dtix.buzz -x01porn.xyz -x022ucsk.buzz -x025yyfb.buzz -x026ztea.buzz -x033ltnr.buzz -x0dj2u.info -x0m4nr.com -x0w4twkj0.pl -x0zj6k8.com -x1-payfree.info -x1-payfree.site -x1000000.site -x1069x.com -x13.dev -x13.email -x13.services -x13x13x13.com -x18clip.com -x1bkskmuf4.cf -x1bkskmuf4.ga -x1bkskmuf4.gq -x1bkskmuf4.ml -x1bkskmuf4.tk -x1cult.ru -x1econ.ru -x1lion.ru -x1news.ru -x1post.com -x1sci.ru -x1x.spb.ru -x1x22716.com -x1xthj.us -x2-greatfaro.site -x220.xyz -x24.com -x25rn1.us -x263.net -x2bhv4.us -x2c.ru -x2ewzd983ene0ijo8.cf -x2ewzd983ene0ijo8.ga -x2ewzd983ene0ijo8.gq -x2ewzd983ene0ijo8.ml -x2ewzd983ene0ijo8.tk -x2fsqundvczas.cf -x2fsqundvczas.ga -x2fsqundvczas.gq -x2fsqundvczas.ml -x2fsqundvczas.tk -x2lap6.us -x2news.ru -x2qys9.us -x2science.ru -x2t0n.us -x2x.foundation -x3-faropaymenrs.info -x3-faropaymenrs.site -x30-coolmoney.host -x31-funnycash.xyz -x33-funnymonney.website -x33-funnymonney.xyz -x33567.com -x3551.com -x37-megacashsait.host -x39-saitjoy.space -x3gaev.us -x3gsbkpu7wnqg.cf -x3gsbkpu7wnqg.ga -x3gsbkpu7wnqg.gq -x3gsbkpu7wnqg.ml -x3lbhdmnd206onc.xyz -x3m8pu.us -x3mailer.com -x3us.us -x3w875ioakdvmst.com -x4y.club -x58ff.com -x58ii.com -x5a9m8ugq.com -x5bj6zb5fsvbmqa.ga -x5bj6zb5fsvbmqa.ml -x5bj6zb5fsvbmqa.tk -x5ep20.info -x5lyq2xr.osa.pl -x5n.net -x5nw.com -x5sk7ofi.xyz -x5wcbd.us -x5wila.us -x6dqh5d5u.pl -x6z72z.com -x77.club -x777.icu -x777x.host -x78qp.com -x7971.com -x7ca5blmxvskfoj.xyz -x7mail.com -x7tzhbikutpaulpb9.cf -x7tzhbikutpaulpb9.ga -x7tzhbikutpaulpb9.gq -x7tzhbikutpaulpb9.ml -x7xjou.us -x8h8x941l.com -x8rbn.cloud -x8vplxtmrbegkoyms.cf -x8vplxtmrbegkoyms.ga -x8vplxtmrbegkoyms.gq -x8vplxtmrbegkoyms.ml -x8vplxtmrbegkoyms.tk -x9094.com -x90b.club -x9dofwvspm9ll.cf -x9dofwvspm9ll.ga -x9dofwvspm9ll.gq -x9dofwvspm9ll.ml -x9dofwvspm9ll.tk -x9vl67yw.edu.pl -x9y9.com -xa9f9hbrttiof1ftean.cf -xa9f9hbrttiof1ftean.ga -xa9f9hbrttiof1ftean.gq -xa9f9hbrttiof1ftean.ml -xa9f9hbrttiof1ftean.tk -xabe.site -xablogowicz.com -xacbdxbjd.shop -xact-solutions.com -xad.us -xadi.ru -xady.info -xadzbill247.com -xaffz.com -xafrem3456ails.com -xagloo.co -xagloo.com -xairbo.club -xak3qyaso.pl -xakalutu.com -xakas-online.ru -xakishop.site -xakomsung.cf -xakomsung.ga -xalipcode.xyz -xalipcodes.online -xamog.com -xandermemo.info -xanhvilla.website -xaotxauf.pro -xap.chat -xapocopi.site -xarakter.org -xaralabs.com -xartis89.co.uk -xarzru.icu -xas04oo56df2scl.cf -xas04oo56df2scl.ga -xas04oo56df2scl.gq -xas04oo56df2scl.ml -xas04oo56df2scl.tk -xasdrugshop.com -xasgs.com -xasqvz.com -xatovzzgb.pl -xaugroup.com -xautostabilbetsnup.xyz -xav.buzz -xaxugen.org -xaxx.ml -xaynetsss.ddns.net -xb-eco.info -xb07.xyz -xb709.com -xbaby69.top -xbapi.xyz -xbbprgxrl.shop -xbestwebdesigners.com -xbetpinupflag.ru -xbfby.xyz -xbizscl.space -xblbet.com -xbm7bx391sm5owt6xe.cf -xbm7bx391sm5owt6xe.ga -xbm7bx391sm5owt6xe.gq -xbm7bx391sm5owt6xe.ml -xbm7bx391sm5owt6xe.tk -xbmm.xyz -xbmyv8qyga0j9.cf -xbmyv8qyga0j9.ga -xbmyv8qyga0j9.gq -xbmyv8qyga0j9.ml -xbmyv8qyga0j9.tk -xbnxnf.com -xbombo.site -xbox360-cheats.com -xbox720.com -xboxbeta20117.co.tv -xboxformoney.com -xboxonelove.com -xbpybglk.shop -xbreg.com -xbtcpro.com -xbtpro.tech -xbtravel.com -xbtybo.info -xbusinesnews.com -xbvrfy45g.ga -xbwgfx.com -xbxjvl.online -xbytes.app -xbz0412.uu.me -xbziv2krqg7h6.cf -xbziv2krqg7h6.ga -xbziv2krqg7h6.gq -xbziv2krqg7h6.ml -xbziv2krqg7h6.tk -xc05fypuj.com -xc40.cf -xc40.ga -xc40.gq -xc40.ml -xc40.tk -xc60.cf -xc60.ga -xc60.gq -xc60.ml -xc60.tk -xc90.cf -xc90.ga -xc90.gq -xc90.ml -xc90.tk -xca.cz -xcameravip.info -xcasino-mega.ru -xcc-999.com -xcdn.ooo -xcekh6p.pl -xcfehg.com -xchanghe6majid.com -xcheesemail.info -xchita.com -xchjbvhgx20321.ga -xchjbvhgx31790.tk -xchjbvhgx70681.ga -xchjbvhgx70681.ml -xcisade129.ru -xckerkorkf33.info -xcmitm3ve.pl -xcnjvjhx12594.ga -xcnjvjhx13060.tk -xcnjvjhx19527.cf -xcnjvjhx19527.ga -xcnjvjhx19527.ml -xcnjvjhx19527.tk -xcnjvjhx30005.ml -xcnjvjhx30005.tk -xcnjvjhx49780.ml -xcnjvjhx49780.tk -xcnjvjhx64925.cf -xcnjvjhx72237.ml -xcnjvjhx77854.cf -xcnjvjhx77854.ga -xcnjvjhx77854.ml -xcnjvjhx77854.tk -xcnjvjhx96702.ml -xcnjvjhx96702.tk -xcnmarketingcompany.com -xcnvmf3-privbmngt.info -xcnvmf3-privbmngt.press -xcnvmf3-privbmngt.space -xcode.ro -xcodes.net -xcoex.asia -xcoex.chat -xcoex.email -xcoex.mobi -xcoex.net -xcoex.news -xcoex.org -xcoex.ru -xcoex.trade -xcompress.com -xconstantine.pro -xconvict-vpn.technology -xconvictz.com -xcoryo.site -xcpy.com -xcq61r.us -xcremail.com -xctc5r.us -xctrade.info -xcufrmogj.pl -xcure.xyz -xcvitir-account1manager1.com -xcvlolonyancat.com -xcvrtasdqwe.com -xcxqtsfd0ih2l.cf -xcxqtsfd0ih2l.ga -xcxqtsfd0ih2l.gq -xcxqtsfd0ih2l.ml -xcxqtsfd0ih2l.tk -xcy1.xyz -xcy8gl.site -xcygtvytxcv22910.tk -xcygtvytxcv23382.ga -xcygtvytxcv40382.cf -xcygtvytxcv40382.ga -xcygtvytxcv40382.tk -xcygtvytxcv99512.cf -xcygtvytxcv99512.ga -xcygtvytxcv99512.ml -xcygtvytxcv99512.tk -xczffumdemvoi23ugfs.cf -xczffumdemvoi23ugfs.ga -xczffumdemvoi23ugfs.gq -xczffumdemvoi23ugfs.ml -xczffumdemvoi23ugfs.tk -xd-solutions.com -xd2i8lq18.pl -xd7ueb.com -xdatel.com -xdatelocal.com -xdavpzaizawbqnivzs0.cf -xdavpzaizawbqnivzs0.ga -xdavpzaizawbqnivzs0.gq -xdavpzaizawbqnivzs0.ml -xdavpzaizawbqnivzs0.tk -xdbdqdkxbb.xyz -xdbdqkkxbb.xyz -xdbdqnkxbb.xyz -xdbdqskxbb.xyz -xdbdqxkxbb.xyz -xdeyegrymfw0w0e.xyz -xdfav.com -xdlink.icu -xdofud.info -xdoqsh.site -xdtf.fun -xdtf.site -xdtgme.online -xdumb.com -xdvsagsdg4we.ga -xdwtfc.online -xe2g.com -xe8kc.us -xeame.online -xeames.net -xeasystabilitybetsnupp20.xyz -xeb9xwp7.tk -xebrcxcfey.xyz -xecautaiquangngai.com -xedmi.com -xedoiutret.cf -xefezi.info -xefthth.xyz -xegi.net -xekeshop.site -xelacade.site -xemaps.com -xembongda.com -xemne.com -xemngay.buzz -xemnhantuong.com -xemrelim.cf -xemrelim.ga -xemrelim.gq -xemrelim.ml -xemrelim.tk -xenacareholdings.com -xenfun.net -xengthreview.com -xenicalprime.com -xenocountryses.com -xenodate.com -xenodio.gr -xenofon.gr -xenogamy.site -xenonforte.space -xenonheadlightsale.com -xenopharmacophilia.com -xents.com -xenzld.com -xeon-e3.ovh -xeon.net -xeosa9gvyb5fv.cf -xeosa9gvyb5fv.ga -xeosa9gvyb5fv.gq -xeosa9gvyb5fv.ml -xeosa9gvyb5fv.tk -xerath.tk -xeripu.info -xermo.info -xernonos62064.ga -xernonos84669.cf -xernonos84669.ga -xerothworld.com -xerqhpmma.shop -xesaxesb.shop -xet0p.us -xetaithanhvinh.com -xeti.com -xeu2ot.us -xeuja98.pl -xevents.buzz -xevents.site -xex66.com -xex88.com -xezbii.us -xf.sluteen.com -xf5di7.us -xf7asj.us -xfactorenterprise.com -xfamiliar9.com -xfashionset.com -xfcjfsfep.pl -xfdmwbbx.shop -xffbe2l8xiwnw.cf -xffbe2l8xiwnw.ga -xffbe2l8xiwnw.gq -xffbe2l8xiwnw.ml -xffbe2l8xiwnw.tk -xfghzdff75zdfhb.ml -xfind.online -xfinder.site -xfitkmvt.space -xfjyn.com -xfkfdmam.shop -xfmz9p.com -xfriend.fun -xfriend.site -xfriends.site -xfsdszd.site -xfuze.com -xfwb7l.us -xfwlcq.com -xfxbfv.us -xfzvtxrhu.shop -xg6sn5.us -xgaming.ca -xgenas.com -xgeuyh.icu -xgfpg.site -xgk6dy3eodx9kwqvn.cf -xgk6dy3eodx9kwqvn.ga -xgk6dy3eodx9kwqvn.gq -xgk6dy3eodx9kwqvn.tk -xgl4nb.com -xglmedia.com -xglrcflghzt.pl -xgmailoo.com -xgnowherei.com -xgoiuu.xyz -xgold.fun -xgqwpv.us -xgrxsuldeu.cf -xgrxsuldeu.ga -xgrxsuldeu.gq -xgrxsuldeu.ml -xgrxsuldeu.tk -xgsj.xyz -xgstabfbu.tk -xguy.net -xgyeco.us -xgyu.net -xgzslm.com -xh1118.com -xh4388.com -xh5ef.info -xh8954.com -xh8988.com -xh9z2af.pl -xhamster.ltd -xhanimatedm.com -xhcav.top -xhcbtduey.shop -xhd09.us -xhfc6m.us -xhhanndifng.info -xhhc123.com -xhiaxhik.shop -xhkss.net -xhmdh99.xyz -xho8i.info -xhouse.xyz -xhr10.com -xhs.bet -xht00.com -xht77.com -xhusjsx.xyz -xhxynyfbb.shop -xhybdnhyr.shop -xhyemail.com -xhypm.com -xhysp.xyz -xi-rang.com -xi-rang.net -xi2.net -xi6.buzz -xiacorilop.icu -xiaixue.club -xiangjiaodaohang.live -xiaoai.net -xiaobi100.com -xiaobi101.com -xiaobi103.com -xiaobi107.com -xiaobi108.com -xiaobi110.com -xiaobi112.com -xiaobi115.com -xiaobi119.com -xiaobi120.com -xiaobi126.com -xiaobi132.com -xiaobi133.com -xiaobi137.com -xiaobi139.com -xiaobi140.com -xiaobi142.com -xiaobi143.com -xiaobi146.com -xiaobi149.com -xiaobi153.com -xiaobi155.com -xiaobi156.com -xiaobi157.com -xiaobi159.com -xiaobi162.com -xiaobi164.com -xiaobi167.com -xiaobi168.com -xiaobi170.com -xiaobi171.com -xiaobi173.com -xiaobi175.com -xiaobi177.com -xiaobi178.com -xiaobi181.com -xiaobi182.com -xiaobi187.com -xiaobi188.com -xiaobi191.com -xiaobi195.com -xiaobi196.com -xiaobi198.com -xiaobi200.com -xiaojifang.com -xiaolaoshu.site -xiaomico.ru -xiaomimiband03.ru -xiaominglu88.com -xiaomitvplus.com -xiaoshir.com -xiaoshuo.ru -xiaoyangera.com -xiaoyenan.club -xiaoyocc.xyz -xiaoyodd.xyz -xiaoyoee.xyz -xiaoyogg.xyz -xiaoyohh.xyz -xiaoyojj.xyz -xiaoyokk.xyz -xiaoyomm.xyz -xiaoyonn.xyz -xiaoyoqq.xyz -xiaoyorr.xyz -xiaoyoss.xyz -xiaoyott.xyz -xiaoyovv.xyz -xiaoyoww.xyz -xiaoyoyy.xyz -xiaozao66.com -xias-daman1.ru -xiayuanpan.com -xiazaidang.com -xicoda.cf -xicoda.ga -xicoda.gq -xicoda.ml -xicoda.tk -xideen.site -xidy.site -xiehuomeitu.xyz -xieyugui.online -xifer.xyz -xifhbnqyi.shop -xihunwo.com -xihunwu.com -xijjfjoo.turystyka.pl -xikihn.us -xilaimai.club -xilaohu.top -xilinous.xyz -xilopro.com -xilor.com -ximant.pro -ximtyl.com -xin7749.info -xin88088.com -xin88288.com -xin88588.com -xin88688.com -xinbo.info -xinbox.info -xinfangloupan.com -xinfi.com.pl -xing886.uu.gl -xingc3yl.com -xingfushiguangktv.com -xinglossne.cf -xinglossne.gq -xinglossne.ml -xinglossne.tk -xingmadh.site -xingwater.com -xingyaoyule.biz -xingyaoyule77.com -xinhao102.com -xinhao103.com -xinhao106.com -xinhao107.com -xinhao108.com -xinhao109.com -xinhuanet.ru -xinjiacp.com -xinli18.info -xinmail.info -xinmeng8.xyz -xinqpi.com -xinsiji.info -xinsiji.org -xinsiji.xyz -xinsijifuli.org -xinsijifuli.xyz -xinsijitv.info -xinsijitv.xyz -xinsijitv00.info -xinsijitv11.info -xinsijitv13.info -xinsijitv14.info -xinsijitv15.info -xinsijitv16.info -xinsijitv17.info -xinsijitv18.info -xinsijitv2.info -xinsijitv20.info -xinsijitv22.info -xinsijitv23.info -xinsijitv25.info -xinsijitv26.info -xinsijitv28.info -xinsijitv29.info -xinsijitv3.info -xinsijitv32.info -xinsijitv33.info -xinsijitv34.info -xinsijitv35.info -xinsijitv36.info -xinsijitv37.info -xinsijitv38.info -xinsijitv4.info -xinsijitv40.info -xinsijitv41.info -xinsijitv42.info -xinsijitv43.info -xinsijitv45.info -xinsijitv46.info -xinsijitv47.info -xinsijitv49.info -xinsijitv50.info -xinsijitv52.info -xinsijitv53.info -xinsijitv54.info -xinsijitv55.info -xinsijitv56.info -xinsijitv57.info -xinsijitv58.info -xinsijitv59.info -xinsijitv60.info -xinsijitv62.info -xinsijitv63.info -xinsijitv64.info -xinsijitv65.info -xinsijitv66.info -xinsijitv67.info -xinsijitv68.info -xinsijitv69.info -xinsijitv70.info -xinsijitv72.info -xinsijitv73.info -xinsijitv74.info -xinsijitv76.info -xinsijitv77.info -xinsijitv79.info -xinsijitv8.info -xinsijitv82.info -xinsijitv83.info -xinsijitv84.info -xinsijitv86.info -xinsijitv87.info -xinsijitv88.info -xinsijitv89.info -xinsijitv9.info -xinsijitv90.info -xinsijitv91.info -xinsijitv92.info -xinsijitv93.info -xinsijitv95.info -xinsijitv96.info -xinwangcai.xyz -xinwangyl.net -xinxianguo.xyz -xinyushe.com -xinyuzu.com -xinzhi.org -xinzk1ul.com -xio7s7zsx8arq.cf -xio7s7zsx8arq.ga -xio7s7zsx8arq.gq -xio7s7zsx8arq.ml -xio7s7zsx8arq.tk -xionprotocol.com -xioplop.com -xiotel.com -xipcj6uovohr.cf -xipcj6uovohr.ga -xipcj6uovohr.gq -xipcj6uovohr.ml -xipcj6uovohr.tk -xipemedia.com -xiqfyn.us -xiqing11.com -xiqing22.com -xiqing55.com -xiqing66.com -xir7hi.site -xishibbs.com -xitedegaming.online -xiteen.asia -xitercs.ml -xitercs.tk -xitimail.com -xitroo.com -xitroo.de -xitroo.fr -xitroo.net -xitroo.org -xitzakaz.ru -xiujiajia.club -xiunhl.us -xiuptwzcv.pl -xiveth.xyz -xiwa1e.us -xix80j.com -xixx.site -xiyaopin.cn -xiyi12348.xyz -xizan62.icu -xizang.us -xizqxhuq.shop -xj1234.xyz -xj3322.com -xj333333.com -xj520aa.com -xj5237.com -xj6600.com -xjav52.com -xjav58.com -xjav77.com -xjaymn.com -xjbpav.com -xjedu1.site -xjgbw.com -xjghm.com -xjgyud.us -xjhytkjutk2er.xyz -xjin.xyz -xjkbrsi.pl -xjmjt.com -xjmwtk.info -xjoi.com -xjolfx.site -xjp991.com -xjpzit.us -xjqdbrqsi.ml -xjshutdownbaychiro.com -xjsjbd.com -xjsp123.xyz -xjsp55.xyz -xjudge.com -xjwmp.us -xjzodqqhb.pl -xk39zh.us -xk6.net -xk81g9.us -xkbmxs.fun -xkcmkl.fun -xkcmmg.fun -xkjmfw.fun -xklmlm.fun -xklmnj.fun -xklonecde.shop -xklt4qdifrivcw.cf -xklt4qdifrivcw.ga -xklt4qdifrivcw.gq -xklt4qdifrivcw.ml -xklt4qdifrivcw.tk -xklzdv.site -xkmmpw.fun -xkmpkjhth.shop -xknmxt.fun -xkpmbc.fun -xkpmrp.fun -xkpmzf.fun -xkqukjsq.shop -xkqvlbva.shop -xkrmkd.fun -xksmbc.fun -xksmfx.fun -xksmhp.fun -xktmfp.fun -xktmyb.fun -xktyr5.pl -xkwmjn.fun -xkx.me -xkymcw.fun -xkzmgj.fun -xl.cx -xl7fnr.us -xl8037.com -xl9837.com -xlarge.kiwi -xlekskpwcvl.pl -xlgaokao.com -xlgo.tk -xlgria.us -xlhf.us -xljelarabic.site -xljmz1.site -xlmx5p.host -xlootgame.fun -xloveme.top -xlpaketinternet.com -xlqndaij.pl -xlra5cuttko5.cf -xlra5cuttko5.ga -xlra5cuttko5.gq -xlra5cuttko5.ml -xlra5cuttko5.tk -xltbz8eudlfi6bdb6ru.cf -xltbz8eudlfi6bdb6ru.ga -xltbz8eudlfi6bdb6ru.gq -xltbz8eudlfi6bdb6ru.ml -xltbz8eudlfi6bdb6ru.tk -xlxe.pl -xlzdroj.ru -xmail.com -xmail.edu -xmail.org -xmail2.net -xmail365.net -xmaill.com -xmailpro.tech -xmailsme.com -xmailweb.com -xmailxz.com -xmaily.com -xmailz.ru -xmaq1.us -xmasloans.us -xmatch.buzz -xmatch.site -xmatchup.online -xmatchup.site -xmate.fun -xmate.online -xmate.site -xmcybgfd.pl -xmdszg.com -xmeetup.buzz -xmeetup.fun -xmeetup.site -xmerwdauq.pl -xmgczdjvx.pl -xmgzyw.com -xmhaoduoxie.com -xmjxcy.com -xmlat.com -xmljk.us -xmlkvr.us -xmma4c.xyz -xmmail.ru -xmmar3.xyz -xmmbas.xyz -xmmcou.xyz -xmme81.xyz -xmmf4u.xyz -xmmg8u.xyz -xmmhce.xyz -xmmiiu.xyz -xmmliq.xyz -xmmmx1.xyz -xmmoln.xyz -xmmtgp.xyz -xmmtxf.xyz -xmmybf.xyz -xmov.site -xmovies8.tech -xmovies8.today -xmp9o.us -xmpr.cf -xmpr.tk -xmqiangshou.com -xmrecoveryblogs.info -xmrigcc.me -xmule.cf -xmule.ga -xmule.gq -xmule.ml -xmv6txw5xtpsd65.xyz -xmyguides.site -xmymanuals.site -xmz73.com -xmze8t.us -xn-----6kcpc1bhcrdk5h1d.com -xn----0hcns4anp6av.xyz -xn----zhcqo4atp6am.com -xn----zhcqo4atp6am.net -xn----zhcqo4atp6am.xyz -xn--12cmd0bjwv5auyea8pldh5jrj.com -xn--1389-43d9dogi6n.com -xn--17-0j9i78yt70a.com -xn--1lqx47cqwv.app -xn--2-v30fu36e.com -xn--220b70t2ube1ltzb.com -xn--24-6kch4bfq8b.live -xn--299as8e18g.org -xn--2e0bspv5t.com -xn--2h3b21h6yfmub61a.com -xn--2h3bi8t39h.com -xn--2i0by5tlwa.com -xn--2n1b.com -xn--2o2b1x16o.com -xn--2p7bp2h.net -xn--31bsue4aj8a5mua.com -xn--352bl9l86p.net -xn--365-hy7mu67i.com -xn--3e0bu9ybmaw5m.com -xn--3oqt7hvrnu9zfgg.com -xn--42c6aa8cyaxn9mqc.com -xn--42c6bxagvbqjd8ded7s5c.com -xn--4dbceig1b7e.com -xn--4dbjnyln2as.com -xn--4dbjnyln2as.xyz -xn--4dd.com -xn--4gqt6ffycq7dca9225a3tp9e0d.top -xn--50talsklder-s8a.se -xn--51xyz-308h91u.xyz -xn--53h1310o.ws -xn--55qx2a60cqzlfp8a.hk -xn--5dd.com -xn--5tzu35b.hk -xn--6dd.com -xn--6zrr4hv82csok.hk -xn--72c5ai8avd1a7nla2d.net -xn--72cm8acj4ezas8a6bb1bzgrfc.com -xn--747-v18mt43c.com -xn--7gqvd.com -xn--7hvr7ae9s.top -xn--80aafsr8j.online -xn--80abdl4as.online -xn--80adbmpmfrc3ajdz.space -xn--80adjuryc.com -xn--80adydm6a.today -xn--80ajbbnaaicbe8ab2btj.org -xn--80anhm.online -xn--80asehdbfhkho.com -xn--8dd.com -xn--90af4abj.online -xn--90af4abj.su -xn--90aifdivcrocc1io.online -xn--950bt9so0e0pfctjn4i.com -xn--950bt9so0e0pfctjn4i.net -xn--9fyue625bora.top -xn--9i4b.net -xn--9kq967o.com -xn--9kqp1stng.top -xn--9l4b91e9xcm2a.com -xn--9l4b91i3dx8cc2a.net -xn--9l4bn3j2ta380a7zc.net -xn--9uv034f.top -xn--a-eeu4d6a4m.com -xn--aliexprss-1f7d.com -xn--alln-s6b.com -xn--almazaradefiana-9qb.com -xn--alsverismarketiniz-f0c.com -xn--amonn-9ra.xyz -xn--antamo-vua.com -xn--aradnhereyburda-2cc91ab29f.com -xn--ateliergzel-0hb.com -xn--atlantismhendislik-u6b.com -xn--aufsteckbrsten-kaufen-hic.de -xn--b-dga.vn -xn--b1aq.space -xn--b3c3ap8a0c0a.xyz -xn--badrumssrenoveringmrsta-e8b.se -xn--barcelonabmbardejada-k8b.cat -xn--bc-f5s.net -xn--bei.cf -xn--bei.ga -xn--bei.gq -xn--bei.ml -xn--bei.tk -xn--bichosdeestimao-xkb1e.com -xn--bk8vn8den8tweed-85c.xyz -xn--bka.net -xn--blckchain-66a.site -xn--blckchan-i2a8c.site -xn--blckchn-mwa2i6b.site -xn--blockchaj-t6a.com -xn--blockchan-n5a.site -xn--bluewn-7va.cf -xn--bnqv7k.net -xn--byggfretagistockholm-79b.nu -xn--c3cralk2a3ak7a5gghbv.com -xn--c3cralk2a3ak7a5gnbdr.com -xn--c3cralk2a3ak7a8c7anddj0t.com -xn--c3cralk2a3ak7a8c7angjb8s.com -xn--c3cralk2a3ak7a8c7anpbd4s.com -xn--c3cralk2a3ak7a8ce5aoqf4s.com -xn--c3cranh6a3ae7a0d7andcr3s.com -xn--c3cranh6a3ae7a0d7aqchj3s.com -xn--c3cranh6a3ae7a0d7ashdf3s.com -xn--c3cranh6a3ae7a0db8aulf3s.com -xn--c3cranh6a3ae7a1d7bjfq.com -xn--c3cranh6a3ae7a2hfdfq.com -xn--c3cranh6a3ae7a8gdcpq.com -xn--c3crat5cva1fdm.com -xn--c3crat5cva4edv.com -xn--c3crat5cva5bbzz9l.com -xn--c3crat5cva5byakd0n.com -xn--c3crat5cva5byatd9l.com -xn--c3crat5cva6b4bm.com -xn--c3cro5br0ed.com -xn--caddeparfm-ieb.com -xn--canldabahis-2zb.com -xn--centresantles4chemins-k5b.com -xn--cest9b816c0pi.top -xn--ciqp94mlxb.com -xn--cjr6vo4e4za759t.site -xn--clodflare-is7d.net -xn--cloudflae-7n6d.com -xn--cloudflar-3f7d.com -xn--cloudflar-3f7d.net -xn--cloudflre-676d.com -xn--cloudflre-676d.net -xn--clouflare-t05d.com -xn--cludflare-ml7d.com -xn--cludflare-ml7d.net -xn--comunicaci21-9hb.cat -xn--coudflare-qd6d.com -xn--coudflare-qd6d.net -xn--cret-bpa.holiday -xn--cretholiday-bbb.com -xn--cykelfrmjandet-cib.se -xn--d-bga.net -xn--d1abbzibngdp5b.com -xn--d2q.net -xn--damsolglasgon-rmb.se -xn--darma-2ta.xyz -xn--desayuno-tnico-jkb.info -xn--dimensin-normalizada-h8b.info -xn--dlqv1x88bf9qm66a.xyz -xn--dncesizlerkulbesi-22bam97r.xyz -xn--duzv1q24e.top -xn--dveloppersaconfiance-b2b.com -xn--dy-hpa.shop -xn--e5xx98d.top -xn--efvt95f.com -xn--ehquh6ex304a.top -xn--entretienmnagercommercial-kic.quebec -xn--farr-epa.cat -xn--faturakart-6ub.com -xn--fed.com -xn--filim-bsa.xyz -xn--fiq06l2rdsvs.online -xn--fiq06l2rdsvs.site -xn--fiq06l2rdsvs.tech -xn--fiq64f9jv65a.com -xn--fiqs8s9z5a1un.hk -xn--foto-en-el-lbum-xjb.info -xn--gilnationalreserve-dwb.com -xn--golvlggarestersund-ptb97a.se -xn--gorrinrosa-kbb.info -xn--gratislna-c3a.se -xn--grundstcke-geb.com -xn--gteborgbergvrme-clb80a.se -xn--gtvz22d7vt.com -xn--gvsy1c432dt4b73w.com -xn--h3t3kv19csvc4qh.wang -xn--h3t41m4st.com -xn--h3t41m4stzge.com -xn--h3t41m6yx.com -xn--h43axb.asia -xn--hilbetyenigiri-8zc.com -xn--horu63b9x9a.hk -xn--hospedagem-de-vdeo-vyb.info -xn--hottetser-q8a.com -xn--huslkaren-y2a.se -xn--hy1bt45ad8b.com -xn--hyra-buss-gteborg-9zb.se -xn--i8s19v917a.com -xn--ida.online -xn--ida.website -xn--ihq702hpui.top -xn--iloveand-5z9m0a.gq -xn--instgram-cza.com -xn--j6h.ml -xn--jkrzr252dtnal80f95bk17d.top -xn--jurdicorobot-ufb.com -xn--kabeldurchfhrung-tzb.info -xn--kbr860dxgb522ac8c.com -xn--kksrenoveringgvle-3qb24a.se -xn--kksrenoveringnorrkping-uhcr.se -xn--kksrenoveringstersund-hecm.se -xn--kksrenoveringsundsvall-uhc.se -xn--kltrkrtasiye-dlbc11f.com -xn--koltukrts-57a2eb.com -xn--krhemp-3ya.com -xn--l1b.live -xn--l3caiixzj3a4a0a4bofr.com -xn--l3caiixzj3a4a0a4bovk1p.com -xn--l3caiixzj3a4a7dghbv.com -xn--l3caiixzj3a4a7dnbdr.com -xn--l3caiixzj3a4aw7anddj0t.com -xn--l3caiixzj3a4aw7angjb8s.com -xn--l3caiixzj3a4awe5aoq9a9nla.com -xn--l3caiixzj3a4awe5aoqf4s.com -xn--l3cajg0aze3a4a0a3cjfq.com -xn--l3cajg0aze3a4a0a3copf1p.com -xn--l3cajg0aze3a4a0edcpq.com -xn--l3cajg0aze3a4a0efopf1p.com -xn--l3cajg0aze3a4a5efdfq.com -xn--l3cajg0aze3a4az7anfqy7pg.com -xn--l3cajg0aze3a4az7aqchj3s.com -xn--l3cajg0aze3a4azb8auqy7pg.com -xn--l3cao5brv2ceq.com -xn--l3cao5brv6cdm.com -xn--l3cao5brv9bdv.com -xn--l3cao5brv9bwaf1j.com -xn--l3cao5brvqbz9b6hg.com -xn--l3cao5brvqyk7a9ig.com -xn--l3cao5brvqyng3m.com -xn--l3cao5brvqytd9l.com -xn--l3cao5brvr8cf1j.com -xn--l3cj5ans2bd.com -xn--l3cj5ans5bd.com -xn--l3cj5ans8bd.com -xn--l3clf0bb4at.world -xn--la-caada-flintridge-appliance-90c.net -xn--leccindemsica-flb3i.info -xn--ledigajobbbors-xib.se -xn--lgbabba2ddn0k1a86eemd79bgab.com -xn--livredadepresso-xkb.com -xn--lna10000krdirekt-dob.se -xn--lndle-gra.dev -xn--lndwirt-hwa.com -xn--lttflrt-5wa0o.se -xn--m3cso0a9e4c3a.com -xn--malmstronomy-7ib.se -xn--marknadsfring-qmb.xyz -xn--mcdonals-8bb.com -xn--mes89wv6wqby9a05u.site -xn--mes89wv6wqby9a05u.website -xn--mgb.online -xn--mgbaak8abb3osw7v.com -xn--mgbad8a0b2cxa.com -xn--mgbgvi3fi.com -xn--mgbgz7e0zxg.com -xn--mgbq7clv.com -xn--mirn-xpa7a.xyz -xn--mlareume-9zah.nu -xn--mlarnuppsala-tcb.se -xn--mll-hoa.email -xn--mllemail-65a.com -xn--mllmail-n2a.com -xn--mmzn68d.hk -xn--mzn-elan1g.com -xn--n8j998g8ob7u1aivdps1a3h9b.com -xn--namnh-7ya4834c.net -xn--nct552fn5jdja.net -xn--ndice-ysa.com -xn--ndoor-m4a.shop -xn--nds7pu7ag41mqka.top -xn--nepreminine-split-zcc.com -xn--norrkpingmlare-uib0y.se -xn--ntex24-3ua.net -xn--o39a10at55b6sdcrf.com -xn--ob0br3r1td81o8tc.com -xn--odszkodowania-usugi-lgd.waw.pl -xn--ok0bo94b1pav74c.com -xn--ot24-px9g.biz -xn--otomotivingelecei-imc.com -xn--otu027d.com -xn--p89anzg24betd54dkw2abqa.shop -xn--pararse-as-t8a.info -xn--parasepeti-q6a.com -xn--parasoescondido-7ob.com -xn--paypa-9tb.com -xn--pddf8i.com -xn--pedescalo-x3a.com -xn--planteraltt-t8a.com -xn--planteraltt-t8a.nu -xn--planteraltt-t8a.se -xn--princessbetgiri1-0dd.com -xn--prncessbet1-0zb.com -xn--q3cadn7dwbj.com -xn--q3caxbff8ccp6afk4qmeqc.net -xn--qei8618m9qa.ws -xn--qxam.xyz -xn--r2baebyf8c2dtc.com -xn--ray-bg-2h6j.net -xn--razn-para-sonrer-nsb9g.info -xn--realmatc-y09c.com -xn--redovisningsbyrjnkping-25b32bc.nu -xn--refeio-7ta5a.online -xn--rgfest-vxa4c.com -xn--rhqt5tmrbt30afkiqpk45b.top -xn--ridsp-nua.se -xn--robotjurdico-zfb.com -xn--rpple-tsa.com -xn--rrmokarejnkping-8sbic.nu -xn--rrmokarenorrkping-zzbm.com -xn--saatbahaber-4zb11d.com -xn--sakerhetsdrrar-4pb.se -xn--sd-pla.elk.pl -xn--sdertrnsfjrrvrme-4nbd24ae.com -xn--sdertrnsfjrrvrme-4nbd24ae.nu -xn--sdertrnsfjrrvrme-4nbd24ae.se -xn--seorcane-e3a.com -xn--seorgol-5za.com -xn--sheyd8kejer-thb.xyz -xn--sk-fka.xyz -xn--skerhetsvst-l8ai.se -xn--skidvder-4za.nu -xn--smrtforum-w2a.se -xn--sngkheep-qcb2527era.com -xn--soclich-hya.com -xn--sprq0xrsg4w0ad9q.com -xn--stambytegvle-ocb.se -xn--stambyteume-78a.se -xn--sttvgsbehandlingstockholm-ffc07b.nu -xn--svenskkrnkraft-cib.se -xn--t-tma.xyz -xn--tacklggareoxelsund-ptb38a.se -xn--taklggaregvle-efbg.nu -xn--taklggareneskilstuna-ezb.se -xn--taklggarenrebro-3kb62a.se -xn--taklggarenvsters-ynbhx.nu -xn--taklggarestersund-tqb16a.se -xn--taklggarestockholm-otb.nu -xn--taklggareume-jcbw.nu -xn--tarzyakala-0ub.com -xn--taxinykping-xfb.se -xn--thepiratbay-ibb.org -xn--thepratebay-rcb.org -xn--thpiratebay-cbb.org -xn--til-e-emocionante-01b.info -xn--tiqz61cv9ct44b.asia -xn--tl3br0fpo32jc0f.net -xn--tn1b.com -xn--tn1b.net -xn--toms-2na.cat -xn--toms-olivo-lpez-pjb92a.info -xn--tryggmklare-q8a.se -xn--undaoscuro-m8a.info -xn--us1aq98a.top -xn--uzzfeed-22a.com -xn--v30bm5byymr7m.org -xn--v3chobrp9cc6k.com -xn--vk5b29y.com -xn--vo4b.com -xn--vo4b.net -xn--vrmepumpar-stockholm-bzb.se -xn--vuqutg24mksf.com -xn--wcso4nxt0ar2j.com -xn--wda.net -xn--wgkln-lua.org -xn--wkr.cf -xn--wkr.gq -xn--x2a.ltd -xn--x49ap35a6odo7t.net -xn--x8q24mjzay63b.top -xn--xft85u.asia -xn--xyz-t33er8o.xyz -xn--yenialdm-zkb.com -xn--yfr2t843afc006birqehc.top -xn--yfrx98av8bba7543a.biz -xn--yh4bv0ldmk.site -xn--yivy24d73j.com -xn--ynyz0b.com -xn--yuniverse-l4a.net -xn--yuniversity-nbb.com -xn--yuuniversity-oeb.com -xn--z8hxwp135i.ws -xn--zfr188b243a.hk -xn--ztsu23a.com -xncm.netmail.tk -xne2jaw.pl -xnefa7dpydciob6wu9.cf -xnefa7dpydciob6wu9.ga -xnefa7dpydciob6wu9.gq -xnefa7dpydciob6wu9.ml -xnefa7dpydciob6wu9.tk -xneopocza.xyz -xneopoczb.xyz -xneopoczc.xyz -xneu.com -xngirls.fun -xnmail.mooo.com -xnnpdqjow.shop -xnogl.us -xnscy.xyz -xnsmm.xyz -xnssf.xyz -xnszp.xyz -xnttjtpuk.shop -xntub.site -xnxn.biz -xnxxa.fun -xnxxa.site -xnxxb.site -xnxxmov.site -xnxxn.space -xnxxs.site -xnxxt.online -xnxxtube.site -xnxxup.site -xnxxv.site -xnxxv.top -xnxxz.site -xnxzzz.com -xnycy.best -xnzmlyhwgi.pl -xo0.buzz -xo0yvn.com -xoballoon.com -xodu.site -xoduje.info -xogolden.com -xography.site -xohi.site -xoifyjcyj.shop -xoixa.com -xokdgw.site -xolox.xyz -xomawmiux.pl -xooit.fr -xoolexa.xyz -xormail.net -xormail.org -xorpaopl.com -xoru.ga -xoso.online -xoso168.org -xoso889.net -xost.us -xov0qq.info -xowxdd4w4h.cf -xowxdd4w4h.ga -xowxdd4w4h.gq -xowxdd4w4h.ml -xowxdd4w4h.tk -xoxaxoda.site -xoxo-2012.info -xoxo1688.com -xoxox.cc -xoxy.net -xoxy.uk -xoxy.work -xoyctl.com -xoze0.us -xozith.com -xp603.top -xp6tq6vet4tzphy6b0n.cf -xp6tq6vet4tzphy6b0n.ga -xp6tq6vet4tzphy6b0n.gq -xp6tq6vet4tzphy6b0n.ml -xp6tq6vet4tzphy6b0n.tk -xpalcomp3.xyz -xpartner.site -xpasystems.com -xpaw.net -xpdevenv.com -xpdyab.site -xpee.tk -xperiae5.com -xpert.tech -xphyk.fun -xpict.buzz -xpict.site -xpiyg.com -xpj-333.com -xpj100999.com -xpjbct.com -xpjfvmjq.shop -xplannersr.com -xplanningzx.com -xplaytamil.pro -xploit.ml -xploreazadkashmir.com -xploziya.xyz -xpoker99.asia -xpoowivo.pl -xpornclub.com -xposenet.ooo -xposible.info -xpouch.com -xpressbattery.com -xpressionisme.com -xprice.co -xproofs.com -xproxyhost.com -xps-dl.xyz -xpsatnzenyljpozi.cf -xpsatnzenyljpozi.ga -xpsatnzenyljpozi.gq -xpsatnzenyljpozi.ml -xpsatnzenyljpozi.tk -xpslots.com -xpslotscasino.com -xpywg888.com -xq-diamond.com -xqcenter.com -xqfhm1.site -xqonu.us -xqsdr.com -xqur.xyz -xqworks.com -xqwuia.icu -xqyoqwnpl.shop -xqzsale.top -xr.ftpserver.biz -xr158a.com -xr160.com -xr160.info -xr232.com -xr3.elk.pl -xray.lambda.livefreemail.top -xrbsgv.us -xreiesx.club -xrerlf.us -xret.com -xrewspro.site -xrfact.website -xrg7vtiwfeluwk.cf -xrg7vtiwfeluwk.ga -xrg7vtiwfeluwk.gq -xrg7vtiwfeluwk.ml -xrg7vtiwfeluwk.tk -xrho.com -xrilop.com -xrlackli.shop -xrlihiuvt.shop -xrmail.xyz -xrmailbox.net -xrmdvvkre.shop -xrnwccun.com -xroenv.us -xrohan.ga -xronmyer.info -xrplug.com -xrpmail.com -xrqsoz.us -xrqwooehh.shop -xrsig.us -xrtt.xyz -xrum.xyz -xrumail.com -xrumer.warszawa.pl -xrumercracked.com -xrumerdownload.com -xrxrxr.host -xrzgxj.icu -xs-foto.org -xs188.net -xs31xs.com -xs31xs.info -xs31xs.org -xs31xs.xyz -xs5lfo.site -xsbetter20.xyz -xsbyby.com -xscdouzan.pl -xscrape.com -xsdfgh.ru -xsdolls.com -xsellize.xyz -xsgb2v.host -xshoestop.info -xsil43fw5fgzito.cf -xsil43fw5fgzito.ga -xsil43fw5fgzito.gq -xsil43fw5fgzito.ml -xsil43fw5fgzito.tk -xsingles.online -xsingles.site -xsiteservice.com -xsjfl.info -xsjfl.org -xsjfl.xyz -xskt168.com -xsmega.com -xsmega645.com -xsmfhh.icu -xsnapbet2020.xyz -xsnapbett.xyz -xsqc54.com -xsrrug.tokyo -xss.science -xssworm.com -xstabbettsnupp2020.xyz -xstabetsnup.xyz -xstabilbettingsnap.xyz -xstabilbettsnapp.xyz -xstabilitybettingsnapp.xyz -xstasyenergy.com -xstdshmpz.shop -xstest1.tk -xstratacoal.cd -xstratairon.cd -xstrerilize.com -xswtrl.com -xt-size.info -xt.net.pl -xt6jn.us -xtaint.host -xtbanke.com -xtbpkpq.online -xtc94az.pl -xtds.net -xteammail.com -xtgg8f.site -xtggarshz.shop -xtguj.com -xthemes.xyz -xtknrv.us -xtm7vr.us -xtmail.win -xtnr2cd464ivdj6exro.cf -xtnr2cd464ivdj6exro.ga -xtnr2cd464ivdj6exro.gq -xtnr2cd464ivdj6exro.ml -xtnr2cd464ivdj6exro.tk -xtocqw.club -xtojnhpq.shop -xtq6mk2swxuf0kr.cf -xtq6mk2swxuf0kr.ga -xtq6mk2swxuf0kr.gq -xtq6mk2swxuf0kr.ml -xtq6mk2swxuf0kr.tk -xtradult.com -xtrars.ga -xtrars.ml -xtrasize-funziona-opinioni-blog.it -xtremenano9h.net -xtremerouters.com -xtremeventure.com -xtremewebtraffic.net -xtrfacts.com -xtrsongs.com -xtrstories.com -xtrstudios.com -xtrtarget.com -xtrzeer.fun -xtsimilar.com -xtubemate.site -xtuc.com -xtwgtpfzxo.pl -xtxfdwe03zhnmrte0e.ga -xtxfdwe03zhnmrte0e.ml -xtxfdwe03zhnmrte0e.tk -xtzqytswu.pl -xtzverostrore.com -xu28.biz -xu54sgce3.xyz -xubawe.info -xubqgqyuq98c.cf -xubqgqyuq98c.ga -xubqgqyuq98c.gq -xubqgqyuq98c.ml -xubqgqyuq98c.tk -xudttnik4n.cf -xudttnik4n.ga -xudttnik4n.gq -xudttnik4n.ml -xudttnik4n.tk -xuduoshop.com -xueshenka.com -xueziwo.com -xugomuo0.online -xuiahyobv.shop -xuj56.us -xumail.cf -xumail.ga -xumail.gq -xumail.ml -xumail.tk -xumberleop.ru -xumku.ru -xun1314.com -xundayule.com -xunfood.com -xunixiaozhan.com -xuniyxa.ru -xunlei.ml -xuogcbcxw.pl -xuora.com -xupace.info -xusujyi.space -xutd8o2izswc3ib.xyz -xutemail.info -xuubu.com -xuuxmo1lvrth.cf -xuuxmo1lvrth.ga -xuuxmo1lvrth.gq -xuuxmo1lvrth.ml -xuuxmo1lvrth.tk -xuwome.info -xuwphq72clob.cf -xuwphq72clob.ga -xuwphq72clob.gq -xuwphq72clob.ml -xuwphq72clob.tk -xuxx.gq -xuyalter.ru -xuyushuai.com -xv9u9m.com -xvcezxodtqzbvvcfw4a.cf -xvcezxodtqzbvvcfw4a.ga -xvcezxodtqzbvvcfw4a.gq -xvcezxodtqzbvvcfw4a.ml -xvcezxodtqzbvvcfw4a.tk -xvnc.net -xvpkrm.online -xvpz6c.us -xvx.us -xwa3up.us -xwaretech.com -xwaretech.info -xwaretech.net -xwaretech.tk -xwcbk1.site -xwdmoe.cf -xwfzlvjb.shop -xwgpzgajlpw.cf -xwgpzgajlpw.ga -xwgpzgajlpw.gq -xwgpzgajlpw.ml -xwgpzgajlpw.tk -xwmca1.site -xwo4ua.us -xwpet8imjuihrlgs.cf -xwpet8imjuihrlgs.ga -xwpet8imjuihrlgs.gq -xwpet8imjuihrlgs.ml -xwpet8imjuihrlgs.tk -xwtaudcha.cf -xww.ro -xwyzperlkx.cf -xwyzperlkx.ga -xwyzperlkx.gq -xwyzperlkx.ml -xwyzperlkx.tk -xwzowgfnuuwcpvm.cf -xwzowgfnuuwcpvm.ga -xwzowgfnuuwcpvm.gq -xwzowgfnuuwcpvm.ml -xwzowgfnuuwcpvm.tk -xx-9.tk -xx-ms98.online -xx-xgirls.fun -xx-xgirls.host -xx11.icu -xx1775.com -xx18269.com -xx44.xyz -xx57822.com -xx6699.com -xx9094.com -xxbb834.info -xxbqgstore.com -xxckefu.online -xxckefu.xyz -xxdane5p2nj8mbi.xyz -xxgirls.site -xxgkhlbqi.pl -xxgmaail.com -xxgmail.com -xxgry.pl -xxhaili.com -xxhamsterxx.ga -xxhu70.com -xxhu71.com -xxhu74.com -xxhu76.com -xxi2.com -xxiyh.us -xxjj068.xyz -xxjj072.xyz -xxjj073.xyz -xxjj074.xyz -xxjj075.xyz -xxjj077.xyz -xxjj078.xyz -xxjj079.xyz -xxjj080.xyz -xxjj081.xyz -xxjj082.xyz -xxjj083.xyz -xxjj084.xyz -xxjj085.xyz -xxjj086.xyz -xxjj087.xyz -xxjj089.xyz -xxjj090.xyz -xxjj091.xyz -xxjj093.xyz -xxjj094.xyz -xxjj096.xyz -xxjj098.xyz -xxjj099.xyz -xxkangli.com -xxl.rzeszow.pl -xxldruckerei.de -xxlocanto.us -xxlxx.com -xxme.me -xxmuonline.net -xxmv.site -xxolocanto.us -xxpm12pzxpom6p.cf -xxpm12pzxpom6p.ga -xxpm12pzxpom6p.gq -xxpm12pzxpom6p.ml -xxpm12pzxpom6p.tk -xxqx3802.com -xxs.buzz -xxshe.info -xxsx.site -xxsxnr.tokyo -xxtxmore.online -xxtxmuse.best -xxtxtime.site -xxup.site -xxvcongresodeasem.org -xxvl.xyz -xxw22.com -xxx-chatten.online -xxx-gif.com -xxx-ios.ru -xxx-jino.ru -xxx-movies-tube.ru -xxx-movs-online.ru -xxx-mx.ru -xxx-strory.ru -xxx.sytes.net -xxx165.xyz -xxx28.ru -xxx36.ru -xxx65.ru -xxx72.ru -xxx72.space -xxx73.space -xxx75.space -xxx76.space -xxx81.space -xxx83.space -xxx84.space -xxx9827.com -xxxa.online -xxxa.site -xxxa.space -xxxamazing.com -xxxany.site -xxxb.fun -xxxbig.site -xxxbomb.site -xxxbox.site -xxxc.fun -xxxcam.ooo -xxxclips.site -xxxcock.site -xxxd.fun -xxxdreams.site -xxxe.club -xxxe.fun -xxxe.online -xxxe.site -xxxe.top -xxxe.website -xxxf.fun -xxxf.site -xxxflashgaming.com -xxxfresh.site -xxxfunny.site -xxxfuns.site -xxxg.fun -xxxg.site -xxxgamesshop.com -xxxgirls.online -xxxh.fun -xxxh.site -xxxh.space -xxxhdtv.top -xxxhdv.site -xxxhdv.top -xxxhi.site -xxxhjs.ga -xxxhot.fun -xxxhot.site -xxxhot.space -xxxi.club -xxxi.fun -xxxi.site -xxxi.space -xxxi.website -xxxin.site -xxxj.fun -xxxj.site -xxxju.site -xxxjust.com -xxxk.fun -xxxk.site -xxxk.space -xxxking.site -xxxl.fun -xxxlive.ooo -xxxlx.site -xxxm.fun -xxxm.online -xxxm.site -xxxmature.mobi -xxxmob.fun -xxxmovs.fun -xxxmovs.site -xxxmp4.site -xxxmx.site -xxxn.fun -xxxn.online -xxxn.site -xxxn.website -xxxnew.site -xxxnxx.fun -xxxnxx.site -xxxo.fun -xxxo.online -xxxo.site -xxxo.space -xxxo.website -xxxok.site -xxxooo.site -xxxorgy.site -xxxp.fun -xxxp.online -xxxpawme.com -xxxpictures.online -xxxpure.site -xxxq.fun -xxxq.site -xxxr.fun -xxxred.fun -xxxred.site -xxxred.xyz -xxxs.buzz -xxxs.online -xxxs.site -xxxs.website -xxxshort.com -xxxsn.site -xxxstars.site -xxxsweet.site -xxxsx.site -xxxt.fun -xxxtext.site -xxxtub.fun -xxxtyt.ru -xxxu.fun -xxxu.site -xxxv.fun -xxxv.online -xxxv.website -xxxvids.site -xxxvs.site -xxxvx.site -xxxw.fun -xxxw.online -xxxw.site -xxxw.space -xxxw.website -xxxwap.site -xxxxilo.com -xxxy.space -xxxy.website -xxxz.online -xxxz.site -xxxz.space -xxzyr.com -xy-78.com -xy1qrgqv3a.cf -xy1qrgqv3a.ga -xy1qrgqv3a.gq -xy1qrgqv3a.ml -xy1qrgqv3a.tk -xy2jg.us -xy66699.com -xy99955.com -xy9ce.tk -xycassino.com -xycp5556.com -xycp5557.com -xycp5559.com -xycp7775.com -xycp8880.com -xycp8882.com -xycp8883.com -xycp8885.com -xyguja.ru -xygy.site -xyhjzg.com -xyjckj.icu -xymailpro.com -xymgzp.com -xypo.site -xyso.site -xysthjx.com -xystus.site -xytexinternational.com -xytjjucfljt.atm.pl -xytojios.com -xyussmc.xyz -xyz-drive.info -xyzbnj.com -xyzcasinoforum.xyz -xyzcasinositeleri.xyz -xyzdzw.com -xyzfree.net -xyzmail.men -xyzmailhub.com -xyzpoker.club -xyzsite.space -xz3.net -xz5qwrfu7.pl -xz8syw3ymc.cf -xz8syw3ymc.ga -xz8syw3ymc.gq -xz8syw3ymc.ml -xz8syw3ymc.tk -xzavier1121.club -xzbags.com -xzcameras.com -xzcloth2.online -xzcsrv41.life -xzcsrv44.life -xzcsrv45.life -xzcsrv46.life -xzcsrv51.life -xzcsrv55.life -xzcsrv56.life -xzcsrv58.life -xzcsrv61.life -xzcsrv62.life -xzcsrv63.life -xzcsrv64.life -xzcsrv65.life -xzcsrv66.life -xzcsrv69.life -xzcsrv70.life -xzcsrv72.life -xzcsrv74.life -xzcsrv75.life -xzcsrv76.life -xzcsrv79.life -xzcsrv80.life -xzcsrv82.life -xzcsrv83.life -xzcsrv84.life -xzcsrv85.life -xzcsrv88.life -xzcsrv89.life -xzcsrv90.life -xzcsrv91.life -xzcsrv92.life -xzcsrv95.life -xzcsrv98.life -xzcsrv99.life -xzdcn.com -xzdhmail.tk -xzemw.us -xzephzdt.shop -xzhanziyuan.xyz -xzhguyvuygc15742.cf -xzhguyvuygc15742.ga -xzhguyvuygc15742.ml -xzhguyvuygc15742.tk -xzhguyvuygc32149.cf -xzhguyvuygc50724.ml -xzifgx.icu -xziyq.com -xzjwtsohya3.cf -xzjwtsohya3.ga -xzjwtsohya3.gq -xzjwtsohya3.ml -xzjwtsohya3.tk -xzljdt.com -xzlwdfugt.ga -xzmic.com -xzoahsuyb.shop -xzotokoah.pl -xzqrepurlrre7.cf -xzqrepurlrre7.ga -xzqrepurlrre7.gq -xzqrepurlrre7.ml -xzqrepurlrre7.tk -xzsok.com -xzxgo.com -xzxmymfz.shop -xzymoe.edu.pl -xzzy.info -y-3sapfirov.ru -y-andekac.ru -y-salex.ru -y-turist.ru -y-voronezh.ru -y.bcb.ro -y.lochou.fr -y.polosburberry.com -y.x.ssl.cloudns.asia -y033w3bs1t3a99m0b113.xyz -y05.xyz -y06nr.info -y0brainx6.com -y0cocb.us -y0ituhabqwjpnua.cf -y0ituhabqwjpnua.ga -y0ituhabqwjpnua.gq -y0ituhabqwjpnua.ml -y0ituhabqwjpnua.tk -y0rkhm246kd0.cf -y0rkhm246kd0.ga -y0rkhm246kd0.gq -y0rkhm246kd0.ml -y0rkhm246kd0.tk -y0up0rn.cf -y0up0rn.ga -y0up0rn.gq -y0up0rn.ml -y0up0rn.tk -y1ajs4.us -y1djbz.us -y1vmis713bucmc.cf -y1vmis713bucmc.ga -y1vmis713bucmc.gq -y1vmis713bucmc.ml -y1vmis713bucmc.tk -y1wl0z.us -y1xhu.us -y1ybl.cloud -y1zwny.us -y20acz.com -y20pq.site -y20pt.site -y2b.comx.cf -y2d.xyz -y2emu.us -y2kpz7mstrj.cf -y2kpz7mstrj.ga -y2kpz7mstrj.gq -y2kpz7mstrj.ml -y2kpz7mstrj.tk -y2oleo.us -y2ube.comx.cf -y2y4.com -y2zgop89uxtsk84.xyz -y3bbs.com -y3dvb0bw947k.cf -y3dvb0bw947k.ga -y3dvb0bw947k.gq -y3dvb0bw947k.ml -y3dvb0bw947k.tk -y3elp.com -y3qryj.us -y46abt.host -y4s9.icu -y56erx.us -y5815.com -y59.jp -y5artmb3.pl -y5kbku.host -y5q3pf.com -y6ce.us -y6npbt.us -y70.net -y75aff.site -y7bbbbbbbbbbt8.ga -y7sdpd.site -y7ukrb.host -y8c.info -y8fr9vbap.pl -y8gbc.cloud -y97998.com -y97dtdiwf.pl -y981ppe1a07kphr.xyz -y9827.com -y9ewd.site -ya-doctor.ru -ya-gamer.ru -ya-tourism.ru -ya-tourist.ru -ya-touristo.ru -ya-tur.ru -ya-turistik.ru -ya-turistom.ru -ya-tyt.ru -ya.yomail.info -yaadgar-tullamore.com -yaasked.com -yabackup.ru -yabai-oppai.tk -yabancifilm.mobi -yabba-dabba-dashery.co.uk -yabbadabbadoo.ru -yabet35.com -yabet36.com -yabingu.com -yablochnipirog.space -yabo0770.com -yabo0990.com -yabo701.com -yabo7070.com -yabo9090.com -yabo999l.com -yabocg.com -yaboda.shop -yabovip167.com -yabovip169.com -yabovip181.com -yabovip192.com -yabovip193.com -yabovip195.com -yabovip198.com -yabovip658.com -yabovip668.com -yabrigadir.ru -yabumail.com -yaburi.shop -yabyoo.xyz -yachassa09.com -yachassa16.com -yackir.store -yacsocial.us -yacxrz.pl -yadavnaresh.com.np -yadegarigift.icu -yadkincounty.org -yadong4.com -yadongmall.shop -yadoo.ru -yadro-electro.ru -yaelahrid.net -yaelahtodkokgitu.cf -yaelahtodkokgitu.ga -yaelahtodkokgitu.gq -yaelahtodkokgitu.ml -yaelahtodkokgitu.tk -yafrem3456ails.com -yafri.se -yagciogluajansmatbaa.xyz -yagfiltresi.com -yagg.com -yaglariazalt.site -yaha.com -yahahayuk.fun -yahane.shop -yahantv.shop -yahany.shop -yahaoo.co.uk -yahho.jino.ru -yahmail.top -yahnmtntxwhxtymrs.cf -yahnmtntxwhxtymrs.ga -yahnmtntxwhxtymrs.gq -yahnmtntxwhxtymrs.ml -yahnmtntxwhxtymrs.tk -yaho.co.uk -yaho.com -yahobi.com -yahomail.gdn -yahomail.top -yahoo-emails.online -yahoo-mail.ga -yahoo-team.org -yahoo.co.au -yahoo.comx.cf -yahoo.cu.uk -yahoo.netmail.tk -yahoo.us -yahoodashtrick.com -yahooi.aol -yahoomails.site -yahoon.com -yahooo.com -yahooo.com.mx -yahooo.xyz -yahooproduct.com -yahooproduct.net -yahoosportstab.com -yahooweb.co -yahooz.com -yahu.com -yahuu.com.uk -yajasoo2.net -yajasoo3.net -yajoo.de -yakgh.com -yakimarealestateagents.com -yakinikurestaurantejapones.com -yakolhoznik.ru -yalamail.com -yale-lisboa.com -yalelo.biz -yalelo.pro -yaleta.ru -yalexonyegues.com -yalild.tk -yalokh.site -yalovacakilliogrenciyurdu.xyz -yalovaemlakevi.xyz -yalovaklimaservisi.online -yalovalisveris.com -yalovamenar.com -yalovamenar.xyz -yalovamhaber.xyz -yalovamuzik.com -yalovasandalbalik.xyz -yalp.top -yalta.krim.ws -yamaika-nedv.ru -yamail.win -yamails.net -yamalmashstroy.ru -yaman3raby.com -yamanaraby.com -yamandex.com -yamin6.club -yamiyule88.com -yammydog.com -yammyshop.com -yamoa.shop -yamory.shop -yamuyade.site -yan-dex.cf -yan-dex.ga -yan-dex.gq -yan-dex.ml -yan-dex.tk -yana-dolgushina.ru -yanbex.website -yanbex.xyz -yandecompany.ru -yandere.cu.cc -yandex-mail.cf -yandex-mail.ga -yandex-mail.gq -yandex-mail.ml -yandex-mail.tk -yandex-prosto.ru -yandex-vladimir.ru -yandex.ca -yandex.comx.cf -yandex.net -yandex.uk.com -yandexdrive.pro -yandexmail.cf -yandexmail.ga -yandexmail.gq -yandexmailserv.com -yandextaxigp.ru -yandextaxilider.ru -yandikos8.ru -yandx.icu -yaner.icu -yanet.me -yanezii.club -yankee.epsilon.coayako.top -yankeeecho.wollomail.top -yannmail.win -yanseti.net -yanso.fun -yaocaobi003.xyz -yaokpm.site -yaoshe121.com -yaoshe122.com -yaoshe127.com -yaoshe128.com -yaoshe145.com -yaoshe148.com -yaoshe149.com -yaoshe155.com -yaoshe160.com -yaoshe199.com -yaoshe200.com -yapan-nedv.ru -yapbahsini112.com -yapbahsini114.com -yapkayyoldye.info -yaple9.com -yapohudeu.ru -yapped.net -yaqp.com -yaraon.cf -yaraon.ga -yaraon.gq -yaraon.ml -yaraon.tk -yargerfamily.com -yariga.org -yarigasport.info -yarigatv.net -yarikadeh.org -yarininogretmenleri.online -yarininogretmenleri.xyz -yarled.com -yarmarka-alla.ru -yarnpedia.cf -yarnpedia.ga -yarnpedia.gq -yarnpedia.ml -yarnpedia.tk -yarnsandtails.com -yarpnetb.com -yarra.click -yarra.design -yarra.studio -yarravalleyairport.com -yarzmail.xyz -yasakvideo.net -yasakvideo.org -yasalbahisiddaa.info -yasaljigoloajansi.info -yasaltv.icu -yase.xyz -yaseebet90.org -yasellerbot.xyz -yaseminilan.com -yaseutdcz.shop -yasewzgmax.pl -yashwantdedcollege.com -yasintasli.ml -yasiotio.com -yaskincamp.com -yasmama.net -yasminavaniterson.info -yasminbanks.buzz -yasser.ru -yasul.shop -yasvoyurist.ru -yatagandergisi.xyz -yatecars.info -yatesmail.men -yathaitakeaway.com -yatou-rist.ru -yatripath.com -yatube11.com -yatube13.com -yatube8.com -yatube9.com -yaturistik.ru -yaturistt.ru -yatutpapa.space -yaungshop.com -yausmail.com -yavdengah.ru -yavinedr.digital -yavolshebnik.ru -yavsety.ru -yavuzpack.xyz -yawemail.com -yaxoo.com -yayazhibo.com -yayinakisi.info -yayincilikokulu.com -yayincilikokulu.net -yayinturnvasi.ga -yayinturnvasi.ml -yazaral14.net -yazidanefantasy.com -yazilimfirmasi.com -yazobo.com -yb0hmi.us -yb45tyvn8945.cf -yb45tyvn8945.ga -yb45tyvn8945.gq -yb45tyvn8945.ml -yb45tyvn8945.tk -yb779901.com -yb78oim.cf -yb78oim.ga -yb78oim.gq -yb78oim.ml -yb78oim.tk -ybaznygl.shop -ybbltl.site -ybdwz.com -ybetsport.com -ybgnzblml.shop -ybmwukt.com -ybo96.com -ybozus.us -ybpxbqt.pl -ybq2.com -ybq4.com -ybrc8n.site -ybsc1o.us -ybtz1.com -ybvip10.com -ybw678.com -ybwcf.site -ybwjs.com -ybwrh1.us -ybymlcbfwql.pl -ybyule88.com -yc4.ru -yc9obkmthnla2owe.cf -yc9obkmthnla2owe.ga -yc9obkmthnla2owe.gq -yc9obkmthnla2owe.ml -yc9obkmthnla2owe.tk -yc9qv5.site -ycare.de -ycarpet.com -ycbfb.com -yccyds.com -yceqsd.tk -ychatz.ga -yckvz.com -ycm813ebx.pl -ycn.ro -ycrsnb.site -yctfn.us -ycwodpim.shop -ycxe3h.us -ycxrd1hlf.pl -ycy-charm.com -ycykly.com -ycysale.top -ycyuan.club -ycyuan.site -ycyuan.xyz -yd-wf.com -yd20q.site -yd2444.com -yd2yd.org -yd3oqf.us -yd7lw.us -ydbdsgnn.shop -ydd-naicha.com -ydd20.site -yddc5511.com -yddc999.com -ydeclinegv.com -ydgeimrgd.shop -ydhbbr.site -ydhopn.us -ydkscoyun.shop -ydlmkoutletjackets9us.com -ydnwgkulh.shop -ydouthink.com -ydpggbwe.shop -ydpq.site -ydpt.site -ydt1om.com -ydvrgaphk.shop -ydww88.com -ydwyw.com -ydyl5.com -ydznvykfk.tk -ydzwnq.site -ye.vc -ye20p.site -ye20q.site -ye20t.site -yeah.net.com -yeahdresses.com -yeahm.cn -yeamail.info -yean.site -yearbooks.xyz -yearnbudge.buzz -yearngra.xyz -yearngras.xyz -yeastinfectionnomorenow.com -yeckelk.tech -yed20.site -yedi.org -yedkvgar.site -yedogg.us -yedp.site -yedq.site -yedt.site -yedvmq.site -yeeeou.org.ua -yeeet.info -yeeshoes.store -yeezus.ru -yeezy888.com -yeheey.xyz -yehetang.info -yehha.xyz -yej2lf.us -yejdnp45ie1to.cf -yejdnp45ie1to.ga -yejdnp45ie1to.gq -yejdnp45ie1to.ml -yejdnp45ie1to.tk -yek2pay.shop -yektara.com -yelectronicsmost.info -yelkivpos2.ru -yelkons1.ru -yellingjournal.com -yellnbmv766.cf -yellnbmv766.ga -yellnbmv766.gq -yellnbmv766.ml -yellnbmv766.tk -yellow.casino -yellow.flu.cc -yellow.hotakama.tk -yellow.igg.biz -yellowbearpropertymanagement.com -yellowbearrealty.com -yellowbook.com.pl -yellowen.com -yellowhandprint.com -yelloww.ga -yelloww.gq -yelloww.ml -yelloww.tk -yelvin.info -yemailme.com -yemek46.com -yemekizmit.xyz -yemekykalmadi.cf -yemekykalmadi.ga -yemobaswq.online -yenderpern10.ru -yeniajan.cf -yeniajan.ml -yenigulen.xyz -yeniji777-com.xyz -yenilerturizm.online -yenilerturizm.xyz -yenilmezdijital.com -yenilmezdijital.xyz -yenimahalledershanesi.xyz -yenimail.site -yenimetinbeleri.cf -yenimetinbeleri.ml -yenimetinbeleri.tk -yenimusteri.com -yenisohbet33.online -yeniyasamgorukle.xyz -yennzu.com -yentzscholarship.xyz -yeod.site -yeoq.site -yeot.site -yeovv.site -yep.it -yepbd.com -yepmail.app -yepmail.cc -yepmail.club -yepmail.co -yepmail.email -yepmail.id -yepmail.in -yepmail.to -yepmail.us -yepmail.ws -yepnews.com -yeppee.net -yepq.site -yept.site -yepwprntw.pl -yeqlk1.site -yerberasdeluruguay.com -yerliarabafiyati.xyz -yerligurme.com -yermail.net -yermanbetx.com -yerpertod5.ru -yert.ye.vc -yertio.website -yertwowos9.ru -yertxenon.tk -yertxenor.tk -yes100.com -yes2khalistan.com -yesaccounts.net -yesdew.com -yesese.xyz -yesferadyim.ga -yesgotour.com -yesgreenenergy.com -yesgreenenergy.net -yesilimsi.ga -yesilimsi.tk -yesilyurtkurye.xyz -yesilyurtluyuz.com -yesimbla.cf -yesimbla.tk -yesiyu.com -yeskshop.space -yesnauk.com -yesnews.info -yeson1608.org -yesorting.com -yespickup.com -yespostcardyou.website -yesselma.com -yesterday2010.info -yesuan17.xyz -yesuan18.xyz -yesuan20.xyz -yeswecanevents.info -yeswetoys.com -yeswewill2024.com -yesxnxx.site -yesyes.site -yetereveoturupkaldim.ga -yetereveoturupkaldim.tk -yetgo.site -yetipay.cd -yetmail.net -yeuniverse.net -yeuniverse.org -yeupmail.cf -yeurth.com -yevme.com -yevvd.site -yevvp.site -yevvq.site -yeweuqwtru.tk -yewma46eta.ml -yewmail.com -yewtyigrhtyu.co.cc -yezy2112.ru -yf322.com -yf877.com -yfdaqxglnz.pl -yffxs.com -yfhffo.icu -yfkfct.info -yfn1d5.us -yfophx.us -yfpasf.biz -yfpoloralphlaurenpascher.com -yfqchina.com -yfqkryxpygz.pl -yfqkwvzkl.gq -yfqyvg.com -yfractal.com -yftfc.com -yfyf00000.info -yfyf11111.info -yfyf777.com -yfyf77777.info -yfyf88888.info -yfyf999.com -yg02sl.us -ygfghhs.xyz -ygfwhcpaqf.pl -ygifccwbzv.site -ygmail.pl -ygmin3.us -ygmx.de -ygnzqh2f97sv.cf -ygnzqh2f97sv.ga -ygnzqh2f97sv.gq -ygnzqh2f97sv.ml -ygnzqh2f97sv.tk -ygod2020.site -ygow2020.site -ygquc.us -ygroupvideoarchive.com -ygroupvideoarchive.net -ygrxw.com -ygryiprodagi.ru -yguh.com -ygva12.info -ygvz2n.site -yh00028.com -yh00078.com -yh08c6abpfm17g8cqds.cf -yh08c6abpfm17g8cqds.ga -yh08c6abpfm17g8cqds.gq -yh08c6abpfm17g8cqds.ml -yh08c6abpfm17g8cqds.tk -yh3kjs-mail.xyz -yh58581.com -yh6686.com -yh9837.com -yhaig.com -yham222.com -yham666.com -yham888.com -yhcaturkl79jk.tk -yhcaturxc69ol.ml -yhccetl.com -yhdichan.com -yhfadceub.shop -yhfryy.com -yhfs78.com -yhg.biz -yhgj9986.com -yhiy.site -yhjgh65hghgfj.tk -yhldqhvie.pl -yhq61.space -yhqbb.site -yhr93.club -yhtqks.us -yhttls.us -yhykmg6t56uhjjhn.best -yhyseo.com -yicaiwts.com -yidaiyiluwang.com -yidaolife.net -yidongo.xyz -yieldiwogk.space -yieldo.com -yierda.icu -yifan.net -yiffy.monster -yigeyidh1.xyz -yigitcafe.xyz -yihdc4.info -yihuang.xyz -yiiokb.xyz -yijinshiji.com -yikanabilirmaske.site -yikes.online -yikoujia.cd -yikpg.us -yikulju.com -yikwvmovcj.pl -yildirimgurses.xyz -yildirimmatbaareklam.xyz -yildizv2.cf -yildizv2.ga -yildizv2.tk -yildzentegre.com -yilmazplanlama.xyz -yimate.info -yin-m.com -yinbox.net -yinfengyule1.com -ying168.org -yingcaipiao.com -yingcy.xyz -yingeshiye.com -yinghangk.com -yingka-yule.com -yingnanstone.com -yintoni.com -yinz.cab -yipimalls.site -yippamail.info -yipsymail.info -yirotrin15.ru -yishuzhai.club -yitaifang.website -yitemalls.site -yitenghz.xyz -yiustrange.com -yivbfojva.tk -yiwuoutlet.site -yiximalls.site -yixiu.site -yiyi678.com -yiying.app -yiyuer.icu -yiyuncloud.services -yiz126dd4oz44ye.xyz -yizuchegroup.com -yj3nas.cf -yj3nas.ga -yj3nas.gq -yj3nas.ml -yj3nas.tk -yjav14.com -yjav15.com -yjav17.com -yjav18.com -yjav19.com -yjav20.com -yjav22.com -yjav23.com -yjav25.com -yjav28.com -yjav31.com -yjav32.com -yjav34.com -yjav37.com -yjav39.com -yjav40.com -yjav44.com -yjav46.com -yjav49.com -yjcoupone.com -yjehor.site -yjemjj.com -yjfcncch.shop -yjivq.us -yjjgcbxhn.shop -yjjk19.top -yjjvinbnr.shop -yjlnyo.space -yjnkteez.pl -yjpel.com -yjpth.us -yjyjwl.icu -yk20.com -yk888d.com -ykblzr.site -ykbmcp.fun -ykcpdz.us -ykctj.com -ykdmrk.fun -ykdszp.us -ykfmzg.fun -ykfx9u-mail.xyz -ykgmjf.fun -ykjmpb.fun -yklmgh.fun -yklmyt.fun -yknhcm.site -yknmpx.fun -ykp9.com -ykrmgb.fun -ykrmkp.fun -ykrybwiko.shop -yksmmk.fun -ykssyqub.pro -ykwmnt.fun -ykxhd.club -yl0661.com -yl2bs4.us -ylatd.com -yldvgi.us -ylegging.com -ylhmy.com -yliora.site -yliuetcxaf405.tk -ylkht.com -ylkpdp.info -yllw.info -yllw.life -yllw.rocks -yllw.us -ylouisvuittonoutlet.net -yltemvfak.pl -yluxuryshomemn.com -ylxnw6.com -ylyangsheng.com -ylztst.site -ym9.app -ymai.com -ymail.edu -ymail.net -ymail.org -ymail.site -ymail365.com -ymail4.com -ymail44.com -ymail5.com -ymails.pw -ymakers.shop -ymcswjdzmx.pl -ymdeeil.com -ymdeiel.com -ymdeil.com -ymedeil.com -ymeeil.com -ymeil.cc -ymggs.tk -ymjd9n.us -ymoaymor.shop -ymobil.ru -ymogof.cf -ymogof.ga -ymogof.ml -ymqzwwdo.shop -ymrnvjjgu.pl -yms.us -ymt198.com -ymv168.com -ymvosiwly.pl -ymwvlgzkn.shop -ymz7ur.us -yn3ahk.com -yn6lcg.us -yn8jnfb0cwr8.cf -yn8jnfb0cwr8.ga -yn8jnfb0cwr8.gq -yn8jnfb0cwr8.ml -yn8jnfb0cwr8.tk -yndrinks.com -yndx.online -yndx.press -yndx.space -yngjh.net -ynhblw.icu -ynhpgc.com -ynlasrpza.shop -ynmrealty.com -ynolptsmw.shop -ynowmt.us -ynrczx.icu -ynskleboots.com -yntou.club -ynumoriz6.ru -ynuyqc.com -ynvidixoc7.ru -ynvvehnfe.shop -ynvwdg.us -ynwfkeji.com -ynwkw.com -ynzfx6.us -yo20p.site -yo20t.site -yo35.xyz -yo88.pro -yoa69.space -yobe.pl -yobit.biz -yobogames.com -yockelz.best -yoco.dev -yoco.shop -yocxiphbi.shop -yod20.site -yodaat.com -yodabetbonus.com -yodd.site -yodogoods.com -yodq.site -yodt.site -yodw2020.site -yodx.ro -yoex0s.us -yofashops.site -yofibeauty.com -yofoto5188.com -yoga-flexible.club -yoga.cd -yogaatheart.biz -yogaemerald.com -yogagooddeal.ru -yogainsurancequote.com -yogaisaboutyou.ru -yogajellies.info -yogakovriki.ru -yogamaven.com -yogasauna.ru -yogashop.live -yogawithniyati.com -yogcartones.xyz -yogiain.com -yogida.host -yoginyogik.ru -yogivest.com -yogiwebsite.com -yogod.com -yogurtcereal.com -yohana.us -yohomail.ga -yohomail.ml -yohvshop.com -yojishinkawa.com -yokezkyx.space -yokmpqg.pl -yolahost.ru -yolbiletim.xyz -yoloisforgagsnoob.com -yolooo.top -yolosherpa.com -yom6dw.com -yomail.com -yomail.info -yomura.info -yomura.mobi -yomura.org -yomurabroadband.com -yomuracarrier.com -yomuracloud.com -yomuraethernet.com -yomuragroup.com -yomuraholdings.com -yomuraix.net -yomurarefugee.com -yomurarefugees.com -yomurastatus.com -yomuratransit.com -yomurawifi.com -yonaki.xyz -yongdaqm.com -yongfameiye.com -yonglewheel.com -yongxin3.com -yonisp.site -yoo.ro -yood.org -yoofollow.com -yoojeen.design -yoojeen.store -yoojeen.tech -yoolinemail.com -yoonpapa.site -yop.email -yop.emersion.fr -yop.fexp.io -yop.itram.es -yop.milter.int.eu.org -yop.profmusique.com -yop.ze.cx -yopail.com -yopmai.com -yopmail.biz.st -yopmail.cf -yopmail.co -yopmail.com -yopmail.dams.city -yopmail.fr -yopmail.fr.nf -yopmail.gq -yopmail.info -yopmail.ml -yopmail.net -yopmail.org -yopmail.pp.ua -yopmail.usa.cc -yopmail2.tk -yoposts.icu -yopq.site -yoptest.tk -yoqtedbre.shop -yordanmail.cf -yorecountryhome.com -yorkbet100.com -yorkbet49.com -yorkbet70.com -yorkieandco.com -yormanwhite.ml -yoroiwailet.com -yoru-dea.com -yoseek.de -yosemail.com -yoshoper.ru -yosketchers.ml -yosta.site -yosuoa.com -yotmail.com -yotobet.com -yotogroup.com -yotq.site -you-qi.com -you-shopping.info -you-spam.com -you-turist.ru -you.has.dating -youandmetrip.site -youareinvolved.org -youarenotdifferent.com -youarenotyourstigma.com -youbestone.pw -youbetcash.club -youbid.auction -youbid.network -youbid.team -youcankeepit.info -youcaresimple.com -youchat.ooo -youdealonline.org -youdoloveme.me -youfffgo.tk -yougoodshop.com -yougotgoated.com -youhachongdian.net -youhavegotnewmail.net -youhavegototbekidding.com -youhavetowatchthis.com -youhoo.co.uk -youhouse.biz -youjury.com -youkiss-me.online -youknow.blog -youknowscafftowrsz.com -youkybox.org -youkybox.store -youla-info.site -youla-payout.site -youla-rent.online -youlike88box.com -youlynx.com -youmail.ga -youmailr.com -youmails.online -youmakeincome.online -youneedmore.info -young-app-lexacc.com -young-living.store -youngadultrehabprograms.com -youngandjuicy.net -youngaudiences.us -youngbluekennels.com -youngbrofessionals.com -youngcrew.ga -youngforevers.com -younghemp.com -younguxqy.space -youniquebymom.com -youniquelycrowned.com -youporn.flu.cc -youporn.igg.biz -youporn.usa.cc -youpush1.xyz -youpymail.com -youqa.ru -youquwa.cn -your-airy-lashes-spb.ru -your-best-profits2.com -your-crossover-car-today.live -your-crossover-cars-deal.live -your-dating-zones.com -your-dating.website -your-dentalimplant-deal.rocks -your-dentalimplant-offer.sale -your-dentalimplantchoice.live -your-dentalimplantchoice.sale -your-dentalimplantdeals.rocks -your-dentalimplantguide.rocks -your-dentalimplantguides.live -your-dentalimplantonline.live -your-dentalimplantonline.sale -your-dentalimplantsites.rocks -your-dentalimplantspot.market -your-dentalimplantzone.market -your-energy.net -your-free-mail.bid -your-health.store -your-iphone.com -your-ugg-boots.com -your-up.online -your2020.life -youractors24.com -youradvocacystory.org -youranimations.com -yourannuityadvisors.com -yourannuityconsultant.com -yourannuityguru.com -yourapartmentinmadrid.com -youraquatics.com -yourargument.com -yourasshole.online -yourbeautygift.com -yourbellawedding.com -yourbestdate.website -yourbesthvac1.com -yourbestmua.ru -yourbestpropose.website -yourbestversion.space -yourbestwishes.ru -yourbettingrules.com -yourbonus.win -yourbranded.website -yourbrandsites.com -yourbreathcoach.com -yourbusinessjustgoteasier.com -yourbusinesstips.biz -yourcakerecipe.com -yourcambridgemortgageshrink.com -yourcelebshop.com -yourchristmasplan.com -yourcreative2020.website -yourdailypoll.club -yourdemowebsite.info -yourdirectoryguy.com -yourdomain.com -yourefiredday.com -youremail.cf -youremail.info -youremail.top -youremaillist.com -yourenotyourstigma.com -yourent.us -yourentuan.com -yourewronghereswhy.com -yourfast-prizehere9.life -yourfastcashloans.co.uk -yourfastmail.com -yourfilm.pl -yourfilmsite.com -yourfirststeps.blog -yourfitnessguide.org -yourfreeflix.me -yourfreemail.bid -yourfreemail.stream -yourfreemail.streammmail.men -yourfreemail.tk -yourfreemailbox.co -yourgrand-bonus-zone1.life -yourhatchpedia.com -yourhealthguide.co.uk -yourhealthyfamily.xyz -yourhighness5.info -yourhomesecured.net -yourhorseisfrog.online -yourhotbabes.com -yourhotclips.info -youri-tapper.shop -yourimail.bid -yourimail.download -yourimbox.cf -yourinbox.co -yourinternet.icu -yourinternets.world -youripost.bid -youripost.download -youritzones.com -yourjobguru.online -yourlincolnparkagent.com -yourlittlesource.com -yourlms.biz -yourluckycompany.net -yourluckylottery.com -yourmail.work -yourmailbox.co -yourmailbox.xyz -yourmailpro.bid -yourmailpro.stream -yourmailtoday.com -yourmedicinecenter.net -yourmommademecum.com -yourmoode.info -yournationalservice.com -yournetsolutions.bid -yournetsolutions.stream -yournewgadgetpresent.icu -yournewstarlog.com -yournogtrue.top -yournotice.xyz -yourofficiteblueprint.com -youroldemail.com -youronlyliveonce.online -youropa-re.com -youropinion.ooo -yourorder.xyz -yourparked.app -yourphen375.com -yourphoto.pl -yourpilotstars.com -yourpochta.tk -yourpresscorner.com -yourprivateembassy.com -yourprizehere10.life -yourprizeishere12.life -yourprizeishere14.info -yourquickcashloans.co.uk -yourqwik.cf -yourrealpartner1.com -yourresult.ru -yourroscoevillageagent.com -yoursafeinv.website -yoursaferate.biz -yoursaferate.info -yoursaferate.mobi -yoursaferate.name -yoursaferate.net -yoursaferate.org -yoursaferate.us -yoursales.coach -yoursent.gq -yourseo.name -yourshoesandhandbags.com -yoursmileava.info -yoursmileirea.info -yoursmilejulia.info -yoursmilekylie.info -yoursmilelily.info -yoursmilemia.info -yoursmileriley.info -yoursoulsrainbow.com -yourspace.ooo -yourspace.su -yourspamgoesto.space -yoursportszone.com -yourst.art -yourstat.com -yoursuperhealth.com -yoursurvivorstory.org -yourtechnology.info -yourtemecularealestateagent.com -yourtinylog.com -yourtrading.com -yourtube.ml -yourvideos.ru -yourweb.email -yourwebsite.world -yourwildheart.com -yourwinninglottery.com -yourwinprize.info -youryearofsayingyes.com -yousefnabulsi.com -yousupers.online -youtebem.site -youtheatingdisordertreatment.com -youtheatingdisordertreatments.com -youthexchange.club -youthfeet.com -youthfishingclub.com -youthfulhgh.com -youthhuntingclub.com -youthnetworks.info -youthquakelive.org -youthqueue.com -youtjube.waw.pl -youtube-page.com -youtube.comx.cf -youtube2vimeo.info -youtubeabonesatinal.net -youtubecasino.ru -youtubeconverter.tools -youtubelive360.com -youtuyuedu.top -youveo.ch -youw88.com -youwatchmovie.com -youweb.solutions -youwillenjoythis.com -youwinbahis.info -youwinturkiye.info -youxi.moe -youxi88.club -youxxx.site -youzend.net -yovv20.site -yovvd.site -yovvq.site -yovvt.site -yowinpoker.club -yoynk.net -yoyo11.xyz -yoyo69.com -yoyobt.online -yoyobt.xyz -yoyomedia.online -yozaruwi.site -yozgatcozumkoleji.com -yozgatdogruhaber.xyz -yozgatlialuminyum.com -yozgatliyiz.xyz -yozgatmedya.xyz -yozgatyazilim.xyz -yp10.info -yp20.tk -yp3sur.us -ypa7mi.us -ypapa.ooo -ypar82.info -ypcarp.us -ypcomq.com -ypctuz.com -ypehh.us -ypeople.shop -ypfkrl.site -ypicall.shop -ypkyl.fun -ypkzn.com -ypmail.webarnak.fr.eu.org -ypolk1.site -ypovert.shop -ypplasev.cf -ypplasev.gq -ypplasev.ml -ypplasev.tk -yppm0z5sjif.ga -yppm0z5sjif.gq -yppm0z5sjif.ml -yppm0z5sjif.tk -yprbcxde1cux.cf -yprbcxde1cux.ga -yprbcxde1cux.gq -yprbcxde1cux.ml -yprbcxde1cux.tk -ypsilantiapartments.com -yq2.app -yq3.app -yq6iki8l5xa.cf -yq6iki8l5xa.ga -yq6iki8l5xa.gq -yq6iki8l5xa.ml -yq6iki8l5xa.tk -yqdongze.com -yqejb1.site -yqevzp.online -yqjmtqpl.shop -yqlnd.art -yquhnhipm.pl -yqww14gpadey.cf -yqww14gpadey.ga -yqww14gpadey.ml -yqww14gpadey.tk -yqzzmo.info -yr2tx.us -yr6mhc.us -yr9mek.us -yraff.us -yraj46a46an43.tk -yrcr3.com -yrcr4.com -yrcr5.com -yrcr9.com -yreduslim.ru -yreferenta.ru -yreilof.xyz -yrfffo.shop -yritysporssi.ru -yrivgdbk.shop -yrmno5cxjkcp9qlen8t.cf -yrmno5cxjkcp9qlen8t.ga -yrmno5cxjkcp9qlen8t.gq -yrmno5cxjkcp9qlen8t.ml -yrmno5cxjkcp9qlen8t.tk -yroid.com -yrp35o.us -yrra.dev -yrseni.site -yrt74748944.cf -yrt74748944.ga -yrt74748944.gq -yrt74748944.ml -yrt74748944.tk -yrubjt.com -yrxwvnaovm.pl -yrzvip.com -ys034.com -ys054.com -ys204.com -ys242.com -ys264.com -ys3hhylgw.com -ys7eqe.site -ysavvides.com -ysbjwg.info -ysbnkz.com -yscape.net -ysgjzhjeos6f.best -ysgldvux.shop -yskyue.icu -yslonsale.com -yslyep.online -ysmm3.us -ysoundfirst.info -yspend.com -yspk.online -yspwhc.us -ystradgynlais.biz -ysvit7.online -ysyl000.com -ysyl03.com -ysyl09.com -ysyl10.com -ysyl222.com -ysyl33.com -ysyl444.com -yszjj.us -yt-creator.com -yt-dl.net -yt-google.com -yt6erya4646yf.gq -yta1965.com -ytb14a.us -ytbmc.tk -ytdyou.shop -ytg456hjkjh.cf -ytg456hjkjh.ga -ytg456hjkjh.gq -ytg456hjkjh.ml -ytg456hjkjh.tk -ytgzn.space -yth238.com -yth240.com -yth242.com -yth243.com -yth244.com -yth248.com -yth249.com -yth254.com -yth256.com -yth259.com -yth261.com -yth264.com -yth277.com -yth282.com -yth289.com -yth295.com -yth298.com -yth300.com -yth303.com -yth306.com -yth307.com -yth311.com -yth312.com -yth319.com -yth323.com -yth334.com -yth335.com -yth337.com -yth353.com -yth355.com -yth357.com -yth361.com -yth364.com -yth373.com -yth379.com -yth385.com -yth386.com -yth387.com -yth390.com -yth391.com -yth392.com -yth400.com -yth488.com -yth500.com -yth533.com -yth543.com -yth552.com -yth577.com -yth599.com -yth600.com -yth611.com -yth660.com -yth664.com -yth665.com -yth700.com -yth755.com -yth770.com -yth771.com -yth775.com -yth779.com -yth788.com -yth811.com -yth822.com -yth881.com -yth886.com -yth887.com -yth890.com -yth933.com -yth955.com -yth977.com -yth987.com -yth992.com -yth993.com -ythbb.com -ythunsha.com -ythyh.net -ytjh.site -ytkewl.rest -ytknu.space -ytkqv.space -ytkwowijn.gq -ytn333.com -ytpayy.com -ytpza.space -ytpzcsf.site -ytqou.space -ytrko.space -ytrojad.online -yttrevdfd.pl -ytutrl.co.uk -ytvanrfut.shop -ytvfu.space -ytwbws.site -ytwjxms.xyz -ytxot.space -ytyyh.com -ytzsgz.com -yu15.xyz -yualfq.rest -yubacityapartments.com -yubima.com -yubixiang.com -yuccavalleyhomes4sale.com -yucral.net -yuebo.xyz -yueluqu.cn -yuepaopai.world -yuese101.com -yuese104.com -yuese105.com -yuese106.com -yuese110.com -yuese122.com -yufu999.com -yugasandrika.com -yuge5189.xyz -yugfbjghbvh8v67.ml -yughfdjg67ff.ga -yuhe.us -yui.it -yuirz.com -yukaction.club -yukemon.online -yukiji.org -yukonznus.ru -yuksedekah.online -yuksu.com -yuku.net -yula-stayhome.ru -yuletideop.net -yultik.com -yum-king.com -yumavbbo.space -yumedream.ru -yumlecn.com -yummiescf31.com -yummyrecipeswithchicken.com -yumrecipekitchen.com -yumyumcentralondon.com -yunacg.com -yunchali.com -yundiktonber4.ru -yungal.com -yungkashsk.com -yuniang.club -yunik.in -yunipixos3.ru -yunpanke.com -yunshijiegj1.com -yuntiangjzc.com -yunusdelano.online -yunusemre.kim -yuoia.com -yupengjy.com -yups.xyz -yuqiliangju.com -yuradresfirm.xyz -yurfirmadres.xyz -yurimail.ml -yuristarbitraj.xyz -yurtdisitatilsec.com -yurtdisitursec.com -yuslamail.com -yusmpgroup.ru -yusomad.com -yusuhysu93805.tk -yut.com -yutnaya-kuhnya.ru -yutongdt.com -yutw706u.tk -yuugk9.us -yuurok.com -yuuuyyyyyui.site -yuuywil.date -yuweioaso.tk -yuwixms.xyz -yuxdeo.info -yuxuan.mobi -yuyoshop.site -yuyu.asia -yuzhen6688.com -yuzwdo.us -yvaw6gv9hytojpm.top -yvd20.site -yvdd.site -yvehyrain.shop -yverinostiimestnotiii.xyz -yverinostiipopul.xyz -yvessaintlaurentshoesuk.com -yveswindow.com -yvgalgu7zt.cf -yvgalgu7zt.ga -yvgalgu7zt.gq -yvgalgu7zt.ml -yvgalgu7zt.tk -yvo20.site -yvod.site -yvr4u.us -yvv20p.site -yvv20q.site -yvvd20.site -yvvdp.site -yvvdq.site -yvvdt.site -yvvpt.site -yvyflorestal.com -yvzcmk.us -yw4kz.info -ywamarts.org -ywamdayton.com -ywdd89.com -ywgsr.icu -ywhmsx.xyz -ywirywil.shop -ywjpfdry.xyz -ywsgeli.com -ywtong.icu -ywydw.com -ywzs20d76pb06zy.xyz -yx.dns-cloud.net -yx262.com -yx48bxdv.ga -yxbooketo.ru -yxbv0bipacuhtq4f6z.ga -yxbv0bipacuhtq4f6z.gq -yxbv0bipacuhtq4f6z.ml -yxbv0bipacuhtq4f6z.tk -yxir.cn -yxjump.ru -yxnfjlrhl.ml -yxpf.xyz -yxsdszd.club -yxtgame.com -yxyoqn.shop -yxzr4n.us -yxzx.net -yy-h2.nut.cc -yy18269.com -yy2h.info -yy330.xyz -yyaahooo.com -yyc.rocks -yydrbxzv.shop -yyemek.xyz -yyhdress.com -yyhmail.com -yyj295r31.com -yynkm.com -yyo18.space -yyolf.net -yyonya.site -yyp3yn.host -yyriibusines.ru -yytcza.com -yytv.ddns.net -yyugo.com -yyuuhxjt.shop -yywenxue.com -yyy.lol -yyymail.pl -yz-huanyu.com -yz2wbef.pl -yz831.com -yz888w.com -yz888x.com -yz888y.com -yz888z.com -yzgpxm.site -yzhz78hvsxm3zuuod.cf -yzhz78hvsxm3zuuod.ga -yzhz78hvsxm3zuuod.ml -yzi6co.us -yzidaxqyt.pl -yzjrhnfs.pro -yzjup.us -yzkrachel.com -yzmuht.us -yznakandex.ru -yznqa.us -yzovun.site -yzpcoygst.gq -yzrbjc.com -yzrd.org -yzrggs.com -yzsdhi.us -yztfgtqm.shop -yzwmanbetx.com -yzx12.com -yzxvbp.com -z-7mark.ru -z-mail.cf -z-mail.ga -z-mail.gq -z-mild.ga -z-o-e-v-a.ru -z-portfolio.ru -z-profit.ru -z-zap.ru -z-zerkalo.ru -z.polosburberry.com -z.thepinkbee.com -z00111.com -z00222.com -z00333.com -z00555.com -z00999.com -z0210.gmailmirror.com -z0b2h.info -z0d.eu -z0mg.org -z0numi.ml -z0zkjy.us -z1-fm.ru -z1-mp3.ru -z10888.com -z11bet.org -z1775.com -z18wgfafghatddm.cf -z18wgfafghatddm.ga -z18wgfafghatddm.gq -z18wgfafghatddm.ml -z18wgfafghatddm.tk -z1fm.site -z1gb4t.us -z1kycx2hlf1k7vo.xyz -z1ott6.us -z1p.biz -z1tiixjk7juqix94.ga -z1tiixjk7juqix94.ml -z1tiixjk7juqix94.tk -z2-payfree.site -z20888.com -z22123.com -z27-cashsait.host -z27-cashsait.site -z2v.ru -z3-userreferal.info -z3-userreferal.site -z30-megacash.host -z30-megacash.site -z30888.com -z32-faropartner.info -z33-funnymoney.host -z36-megajoy.xyz -z3at.us -z3cq.com -z3frrd.info -z3pbtvrxv76flacp4f.cf -z3pbtvrxv76flacp4f.ga -z3pbtvrxv76flacp4f.gq -z3pbtvrxv76flacp4f.ml -z3pbtvrxv76flacp4f.tk -z4445.com -z48bk5tvl.pl -z4vkg.info -z50888.com -z5cpw9pg8oiiuwylva.cf -z5cpw9pg8oiiuwylva.ga -z5cpw9pg8oiiuwylva.gq -z5cpw9pg8oiiuwylva.ml -z5cpw9pg8oiiuwylva.tk -z6s.net -z6ylqc.us -z6yr.top -z6z7tosg9.pl -z70888.com -z77567.com -z777e.space -z7az14m.com -z7az14m.com.com -z80888.com -z85frv.host -z86.ru -z87.info -z870wfurpwxadxrk.ga -z870wfurpwxadxrk.gq -z870wfurpwxadxrk.ml -z870wfurpwxadxrk.tk -z8bbq.art -z8h.info -z8hguj.site -z8zcx3gpit2kzo.gq -z8zcx3gpit2kzo.ml -z8zcx3gpit2kzo.tk -z90888.com -z9094.com -z9827.com -z9btpl.us -za-derzhavu.ru -za-gay.link -za-zdravie.ru -za-zelenskogo.info -za.com -za72p.com -zaa.org -zaab.de -zaandam.info -zaaskater.cf -zaaskater.ga -zaaskater.gq -zaaskater.ml -zaaskater.tk -zabaikalfood.club -zabawki.edu.pl -zabbabox.info -zabodau.xyz -zabolevaniya.info -zaborkalitka.ru -zabota-v-rodah.ru -zabross.com -zabtec.ru -zacharychan.buzz -zachemeto.xyz -zachpacks.online -zachrisso.com -zadder.xyz -zaderatsky.info -zadereasder.site -zadowolony-klient.org -zadz119.com -zae.monster -zaebbalo.info -zaednoschools.org -zaelmo.com -zaerapremiumbar.com -zaertlich.love -zafarullah.com -zafervip.online -zafran5in1.com -zafrem3456ails.com -zaftneqz2xsg87.cf -zaftneqz2xsg87.ga -zaftneqz2xsg87.gq -zaftneqz2xsg87.ml -zaftneqz2xsg87.tk -zaga.site -zagdy1.site -zageulyy.shop -zagorodnyi-domik.ru -zagorski-artstudios.com -zagrajse.pl -zagvxqywjw.pl -zah3jk.us -zaharin.ru -zahav.net -zahoditnaura.space -zahuy.site -zaikadublin.com -zaim-fart.ru -zaim-gotov.site -zaim-gotov.store -zaimi-na-karty.ru -zaimy-srochno.ru -zain.site -zainhaidermusic.com -zainmax.net -zakachaisya.org -zakatharta.net -zakaz-ber.space -zakazat-aviabilet.ru -zakazat-okno.ru -zakitri.website -zakkaas.com -zakl.org -zakonnaya-territoriya.ru -zakritieip.xyz -zakticorp.com -zaktouni.fr -zakupro.ru -zakvason.ru -zakzsvpgxu.pl -zalansed.xyz -zalina.live -zalmem.com -zalocasino.xyz -zalopner87.com -zalotti.com -zaltak.com -zalvisual.us -zamana.com -zamananow.com -zambezinationalparks.com -zambia-nedv.ru -zamena-stekla.ru -zamge.com -zamiana-domu.pl -zamojskie.com.pl -zamownie.pl -zamsahamtravel.com -zamsw.com -zamua.com -zamytravel.icu -zamzamtakeaway.com -zanaflex.pro -zanairsafety.com -zanaveskin.ru -zanboor.pro -zanchua53.icu -zanderfoxgrant.com -zandicapital.com -zane.pro -zane.prometheusx.pl -zane.rocks -zanemail.info -zanichelli.cf -zanichelli.ga -zanichelli.gq -zanichelli.ml -zanichelli.tk -zanist.xyz -zanistan.xyz -zanmei5.com -zannuaire.com -zanosgames.com -zanovosti.ru -zantsuppno.ga -zantsuppno.gq -zantsuppno.tk -zanzatoys.com -zanzedalo.com -zaochnik-berezniki.ru -zaonlineclassified.com -zaoonline.com -zaoregistr.xyz -zaoseda.ru -zaoshweika.ru -zap2q0drhxu.cf -zap2q0drhxu.ga -zap2q0drhxu.gq -zap2q0drhxu.ml -zap2q0drhxu.tk -zapak.com -zapak.in -zapatos.sk -zapbox.fr -zapchasti-daewoo-samara.ru -zapchasti-ford-sevastopol.ru -zapchasti-orig.ru -zapchasti-renault-sevastopol.ru -zapchati-a.ru -zapl.ink -zapqq.com -zapravka19.ru -zapstibliri.xyz -zapviral.com -zapzap.army -zapzap.band -zapzap.bar -zapzap.bike -zapzap.build -zapzap.care -zapzap.careers -zapzap.catering -zapzap.coach -zapzap.college -zapzap.construction -zapzap.cricket -zapzap.deals -zapzap.delivery -zapzap.dev -zapzap.equipment -zapzap.estate -zapzap.events -zapzap.financial -zapzap.fish -zapzap.florist -zapzap.gallery -zapzap.glass -zapzap.golf -zapzap.host -zapzap.ink -zapzap.legal -zapzap.lighting -zapzap.limo -zapzap.navy -zapzap.news -zapzap.photography -zapzap.plumbing -zapzap.properties -zapzap.racing -zapzap.realty -zapzap.rent -zapzap.solutions -zapzap.space -zapzap.store -zapzap.supply -zapzap.support -zapzap.tech -zapzap.tours -zapzap.toys -zapzap.trade -zapzap.travel -zapzap.vet -zapzap.video -zapzap.vision -zapzapchasty.ru -zapzapcloud.com -zar-fin.ru -zarabotaibystro.ru -zarabotati-sei4as.ru -zarabotay2020.host -zarabotay2020.space -zarabotay2020.website -zarabotok-77.host -zarabotok-biz.ru -zarabotok-v-internet.ru -zarabotok-vot-kat-prosto2020.site -zarabotokdoma11.ru -zarabotokdoma12.ru -zarabotokdoma7.ru -zarabotokdoma8.ru -zarabotokvseti.info -zarada7.co -zarafit.xyz -zaragozatoros.es -zarbelo.ga -zarbelo.tk -zard.website -zarifdardokuma.xyz -zarinparvaz.net -zaripov.digital -zarnitsa.su -zaromias24.net -zarplatniy-proekt.ru -zarplatnyj-proekt.ru -zarpldolgvzisk.xyz -zarubki.space -zaruchku.ru -zarurrora.online -zarweek.cf -zarweek.ga -zarweek.tk -zaryadkaofficial.ru -zaschitaimuschestva.xyz -zaschitprodavca.xyz -zasderea.site -zasod.com -zaspelj.xyz -zasrance.website -zasve.info -zatopplomi.xyz -zauj.us -zavejy.info -zavio.com.pl -zavio.nl -zavod-himii.ru -zavodzet.ru -zavtrac.ru -zawzad.com -zayacpups.space -zayiflatankarisim.site -zaym-mix.ru -zaym-o.ru -zaym-zaym.ru -zaymi-online.ru -zaymi-srochno.ru -zayna.love -zayna.style -zaz-co.com -zazebo.xyz -zazeto.xyz -zb8bpo.com -zbapaly.store -zbarman.com -zbbk.info -zbestcheaphostingforyou.info -zbfjhhbv82-priverfdrj.press -zbiznes.ru -zbl43.pl -zbl74.pl -zbmingfa.com -zbolg.xyz -zbook.site -zbpefn95saft.cf -zbpefn95saft.ga -zbpefn95saft.gq -zbpefn95saft.ml -zbpefn95saft.tk -zbpu84wf.edu.pl -zbtkazgf.site -zbtxx4iblkgp0qh.cf -zbtxx4iblkgp0qh.ga -zbtxx4iblkgp0qh.gq -zbtxx4iblkgp0qh.ml -zbtxx4iblkgp0qh.tk -zbyadk.com -zbzincs.com -zc3dy5.us -zc72379.top -zcash-cloud.com -zcbkh.space -zchatz.ga -zchwzskc.shop -zchx1.com -zcolor.live -zcphxq.shop -zcqrgaogm.pl -zcttrira.site -zcut.de -zcvtheiconic.com -zcwjsj.com -zcwx88.com -zcymamrqs.shop -zdanisphotography.com -zdbgjajg.shop -zdbgroup.com -zdcardtechglobal.com -zdecadesgl.com -zdenka.net -zdesyaigri.ru -zdferma.ru -zdfpost.net -zdfsmh.site -zdgvxposc.pl -zdie.us -zdjv0s.us -zdmxbqww.shop -zdorove-polar.ru -zdoroveem-molodeem.ru -zdorovie2-0.ru -zdorovmay.ru -zdorovpagh.ru -zdorovyeblogs.ru -zdpuppyiy.com -zdqe.icu -zdqfnk01rz.icu -zdqjt.com -zdr20.club -zdrajcy.xyz -zdrav-nadzor-03.site -zdravmol.ru -zdravnadzor07.site -zdravproduct.xyz -zdravslet.ru -zdravsredstvo.website -zdrowewlosy.info -zdrowystyl.net -zdtc.network -zdtnpkydingcw2e.xyz -ze.cx -ze.gally.jp -ze.tc -ze19.com -ze1ckq.com -ze31.com -ze4rty.pw -ze87.com -zealouste.com -zealouste.net -zeansteplnw.com -zebins.com -zebins.eu -zebra.email -zebras.network -zebua.cf -zebuaboy.cf -zebuasadis.ml -zebyic.tokyo -zeca.com -zecili.xyz -zed.expert -zedeliereo.icu -zednation.xyz -zedthei.shop -zeedcn.site -zeego.site -zeelandsezorg.com -zeemails.in -zeenews.app -zeepaw.com -zeeworldproduction.com -zefuqua.space -zeg59.us -zehnminuten.de -zehnminutenmail.de -zeiasscasino.com -zeinconsulting.info -zeingae.ru -zeitdesschwarms.com -zeko.site -zeky.site -zelda-planet.de -zelda.monster -zeldaforums.net -zelia.online -zelras.ru -zemail.ga -zemail.ml -zematsmskorela.host -zen.nieok.com -zen43.com.pl -zen4dad.com -zen4mom.com -zen4play.net -zen74.com.pl -zenadop.com -zenadops.com -zenaking.xyz -zenarz.esmtp.biz -zenblogpoczta.com.pl -zenbo.ga -zencab.com -zencart-web.com -zenek-poczta.com.pl -zenekpoczta.com.pl -zeng2b.us -zengolar.xyz -zeniga.com -zenithagedcare.sydney -zenithcalendars.info -zenitsumail.com -zenocoomniki.ru -zenopoker.com -zenopoker.net -zenplanneryoga.com -zenpocza.com.pl -zenpoczb.com.pl -zenpoczc.com.pl -zenrz.itemdb.com -zenseo.net -zensolutions.info -zentaiji.biz -zentaiji.info -zentaiji.name -zentaiji.net -zentaiji.us -zentradingmagazine.online -zentrumbox.com -zenyth.marketing -zenyth.online -zep-hyr.com -zepco.ru -zepexo.com -zephrmail.info -zepp.dk -zepter-moscow.biz -zer-0.cf -zer-0.ga -zer-0.gq -zer-0.ml -zercat.website -zergp.vip -zerkalo-admiralx.xyz -zerkalobet1x.site -zerkalosssport.website -zerkaloxc.ru -zero-action-shopping.ru -zero-product-stock.ru -zero-sale-inform.ru -zerocarboncalifornia.com -zerocarboncostarica.com -zerocopter.dev -zerocoptermail.com -zerocorp.ru -zerodog.icu -zeroe.ml -zeroegress.com -zeroegress.net -zeroen-douga.tokyo -zeroeth-world.org -zeroethworld.net -zerograv.top -zerohush.org -zeroknow.ga -zeromail.ga -zerosupervision.art -zerothccbd.us -zerothworld.net -zerotohero-1.com -zertigo.org -zest.me.uk -zesta.cf -zesta.gq -zestrany.website -zestroy.info -zeta-telecom.com -zetagames.club -zetap.travel -zetaseek.com -zetfilmy.pl -zetgets.com -zetia.in -zetmail.com -zettransport.pl -zeus0303430.xyz -zeus0310218.xyz -zeus0324202.xyz -zeus0454333.xyz -zeus0771866.xyz -zeus1252961.xyz -zeus1549658.xyz -zeus1817999.xyz -zeus2229034.xyz -zeus2502287.xyz -zeus3777396.xyz -zeus4588184.xyz -zeus5233852.xyz -zeus6397394.xyz -zeus6408834.xyz -zeus7843650.xyz -zeus8399726.xyz -zeus9447425.xyz -zeus9536726.xyz -zeus9550576.xyz -zeus9556189.xyz -zeus9563736.xyz -zeus9564765.xyz -zeus9577727.xyz -zeus9594524.xyz -zeus9603734.xyz -zeus9618305.xyz -zeus9665639.xyz -zeus9694503.xyz -zeus9695926.xyz -zeus9705328.xyz -zeus9723746.xyz -zeus9725408.xyz -zeus9730367.xyz -zeus9736785.xyz -zeus9762715.xyz -zeus9778146.xyz -zeus9779039.xyz -zeus9805897.xyz -zeus9821555.xyz -zeus9864546.xyz -zeus9892415.xyz -zeus9892949.xyz -zeus9895931.xyz -zeus9901564.xyz -zeus9907227.xyz -zeus9917624.xyz -zeus9929754.xyz -zeus9936224.xyz -zeus9947361.xyz -zeus9958726.xyz -zeus9959878.xyz -zeus9963130.xyz -zeus9989540.xyz -zeus9993314.xyz -zeuschimneyservice.com -zeusndione-eyewear.com -zeusonline99.biz -zeusrisky07.ml -zeusrisky07.tk -zeusus.ru -zeuwescull.cf -zeuwescull.ga -zeuwescull.ml -zeuwescull.tk -zeveyuse.com -zeveyuse.net -zewuju.info -zexeet9i5l49ocke.cf -zexeet9i5l49ocke.ga -zexeet9i5l49ocke.gq -zexeet9i5l49ocke.ml -zexeet9i5l49ocke.tk -zeyadtk.com -zeynepgenc.com -zeytech.net -zeytinburnudamlaspor.com -zeytinselesi.com -zezayiez.xyz -zezet.net -zezis.ru -zf0.info -zf4r34ie.com -zf813.com -zfbmt1.site -zfijv.us -zfilm6.ru -zfpsale.top -zfs4ug.us -zfshqt.online -zfvip75.com -zfvip76.com -zfvip78.com -zfvip79.com -zfvip80.com -zfxchk.site -zfxmanbetx.com -zfyl2.com -zfyl3.com -zfyl63.com -zfymail.com -zg2.info -zg5dl7go8ylo5im.xyz -zg8.info -zgame.zapto.org -zgbdwnfce.tk -zgbeilin.com -zgdayi.com -zgdsoper.space -zgeotd.us -zgfzazbe.shop -zgg520.com -zggbzlw.net -zggyfzyxgs.com -zgjlcbs.com -zgjxjx.com -zgktfj.com -zglysyw.com -zgm-ural.ru -zgmdl.com -zgqp9.com -zgsgjj.com -zgsphj.us -zgtjvczkp.shop -zgtmanbetx.com -zgu5la23tngr2molii.cf -zgu5la23tngr2molii.ga -zgu5la23tngr2molii.gq -zgu5la23tngr2molii.ml -zgu5la23tngr2molii.tk -zguide.site -zgupuf.site -zgxxt.com -zgzbqshy.com -zh.ax -zh214.com -zh9.info -zhaijimai.club -zhaimang.club -zhaixing.icu -zhaiyouji.club -zhaocaiqipai4.com -zhaohishu.com -zhaoqiang35.icu -zhaoyuanedu.cn -zhaoyuantu.com -zhaqiaocun.com -zhcne.com -zhcp123.com -zhdanov.su -zhebucuo.com -zhehot.com -zhejiang.today -zheleznodorognyi-beton-zavod.ru -zhemchug.xyz -zhenchashi.com -zhendesao.com -zhenghaokai.xyz -zhengjiatpou34.info -zhengyajun.com -zhenskayaodejda.ru -zhenskiy-stendap.best -zhenzhan16.icu -zhewei88.com -zhibang.info -zhibo69.com -zhibo69.xyz -zhibozhiyuan.xyz -zhidkiy-gazon.ru -zhilecai.xyz -zhitnadovkaifotivse.xyz -zhkmywb.site -zhkzux.shop -zhm.us -zhnslyzkv.shop -zhongbeike.com -zhongchengtz.com -zhongy.in -zhorachu.com -zhuaiyong15.icu -zhuanqianco.com -zhubed.us -zhubobao.xyz -zhuhaipools.com -zhuime85.icu -zhuishu.online -zhun.best -zhurnaliki.com -zhuting1993.com -zhuyong.org -zhvssnrf.shop -zhyl0.us -zi3asz.us -ziadbzo.ml -ziahask.ru -zib.com -zibiz.me -zibox.info -zicaolu.com -zicu.site -zidu.pw -ziebhagil.cf -ziebhagil.ga -ziebhagil.ml -ziebhagil.tk -zielonadioda.com -zielonyjeczmiennaodchudzanie.xyz -zientogel.com -zientogel.net -ziewrwp.space -zifersrl.com -zigblog.net -ziggurattemple.info -zigrab.online -zigspage.com -zigybt.us -zigzagmirror.ru -ziholexet.ru -zihuwu.info -zihuxb.rest -zik.dj -zik2zik.com -zikzak.gq -zil4czsdz3mvauc2.cf -zil4czsdz3mvauc2.ga -zil4czsdz3mvauc2.gq -zil4czsdz3mvauc2.ml -zil4czsdz3mvauc2.tk -zilbercoin.space -zillionsofdollars.info -zilmail.cf -zilmail.ga -zilmail.gq -zilmail.ml -zilmail.tk -zilonggj.com -zimail.com -zimail.ga -zimbabwe-nedv.ru -zimbail.me -zimbocrowd.info -zimerster.site -zimmermail.info -zimmermann-foto.com -zimonas.site -zimowapomoc.pl -zimu.moe -zimu123.com -zimufensi.cn -zinabf2edderus.xyz -zinany.com -zincc.us -zincset.com -zindevital.com -zineotic.com -zinfighkildo.ftpserver.biz -zingar.com -zingermail.co -zingibzfrr.space -zinmail.cf -zinmail.ga -zinmail.gq -zinmail.ml -zinmail.tk -zinnober.xyz -ziojp.com -zip-institute.com -zip1.site -zipa.online -zipac.site -zipada.com -zipas.site -zipax.site -zipb.site -zipbox.info -zipc.site -zipcad.com -zipd.site -zipdf.biz -ziped.site -ziph.site -zipil.site -zipir.site -zipj.site -zipk.site -zipl.online -zipl.site -ziplb.biz -ziplinegear.biz -ziplinehuntermountain.com -zipm.site -zipmail.xyz -zipn.site -zipo1.cf -zipo1.ga -zipo1.gq -zipo1.ml -zippiex.com -zippydownl.eu -zippymail.in -zippymail.info -zipq.site -zipr.site -ziprol.com -zipsendtest.com -zipt.site -ziptracker49062.info -ziptracker56123.info -ziptracker67311.info -ziptracker67451.info -ziptracker75121.info -ziptracker87612.info -ziptracker90211.info -ziptracker90513.info -zipv.site -zipx.site -zipz.online -zipz.site -zipzaprap.beerolympics.se -zipzaps.de -ziqo.studio -zis.netmail.tk -zisustand.site -zita-blog-xxx.ru -zithromaxonlinesure.com -zithromaxprime.com -zitong001.com -zitroproperties.com -ziu3z9.com -ziukfh.tokyo -ziuta.com -zivanto.xyz -zivvwh.com -zixaha.info -zixnnupt.shop -zixoa.com -ziyap.com -ziyaratarbaeen1437.com -ziyungj.com -ziza.pl -zizhuxizhu888.info -zizobt.org -zjdkoq.best -zjexmail.com -zjffmj.com -zjflqj.us -zjhonda.com -zjkksgs.com -zjlm28.com -zjlrau.rest -zjlzd.com -zjnicety.com -zjnmn.info -zjnxek.us -zjp.monster -zjrt4.us -zju.best -zju83.space -zjvg2x.us -zjwanjin.com -zjxiaosheng.com -zjxylcar.com -zk0r8a.com -zk2578.com -zk9sdg.online -zkb.su -zkcckwvt5j.cf -zkcckwvt5j.ga -zkcckwvt5j.gq -zkcckwvt5j.ml -zkcckwvt5j.tk -zkcmlp.fun -zkd252.com -zkd252.net -zkeiw.com -zkfmdm.fun -zkgdtarov.pl -zkgmgm.fun -zkgxvued.shop -zkhmmk.fun -zkhyib.ml -zkjbbf.vip -zkjmzj.fun -zkjmzz.fun -zkkefu.online -zklmkr.fun -zklundt.buzz -zkmusic.ru -zknow.org -zkushu.com -zkxr1u.us -zkyiad.icu -zkzjk.com -zkzone.icu -zl0irltxrb2c.cf -zl0irltxrb2c.ga -zl0irltxrb2c.gq -zl0irltxrb2c.ml -zl0irltxrb2c.tk -zl3ici.us -zlansa.site -zlatoj.ru -zlbpvs.us -zlcai168.net -zlcai1688.net -zlcai88.net -zlcai888.net -zld.us -zlebyqd34.pl -zledscsuobre9adudxm.cf -zledscsuobre9adudxm.ga -zledscsuobre9adudxm.gq -zledscsuobre9adudxm.ml -zledscsuobre9adudxm.tk -zleohkaqpt5.cf -zleohkaqpt5.ga -zleohkaqpt5.gq -zleohkaqpt5.ml -zleohkaqpt5.tk -zlinvo.site -zlmsl0rkw0232hph.cf -zlmsl0rkw0232hph.ga -zlmsl0rkw0232hph.gq -zlmsl0rkw0232hph.ml -zlmsl0rkw0232hph.tk -zlrjxmmt.shop -zltcsmym9xyns1eq.cf -zltcsmym9xyns1eq.tk -zltiu4.us -zluxretail.xyz -zm-44.com -zmac.club -zmail.info.tm -zmailforbusiness.com -zmailonline.info -zmaka.site -zmani.biz -zmara.com -zmat.xyz -zmbw.xyz -zmemq.com -zmi3cb.com -zmiev.ru -zmilkofthecow.info -zmkn.xyz -zmpoker.info -zmt.plus -zmtbbyqcr.pl -zmtdzc.com -zmti6x70hdop.cf -zmti6x70hdop.ga -zmti6x70hdop.gq -zmti6x70hdop.ml -zmti6x70hdop.tk -zmwgvx.site -zmxrrxipv.shop -zmylf33tompym.cf -zmylf33tompym.ga -zmylf33tompym.gq -zmylf33tompym.ml -zmylf33tompym.tk -zmywarkilodz.pl -zn4chyguz9rz2gvjcq.cf -zn4chyguz9rz2gvjcq.ga -zn4chyguz9rz2gvjcq.gq -zn4chyguz9rz2gvjcq.ml -zn4chyguz9rz2gvjcq.tk -zn7w0.us -zn9a.icu -znachenie-finance.ru -znacheniezvezd.ru -znai-gde.ru -znaisvoiprava.ru -znakomstva-vsem.ru -znam-ya.ru -znatb25xbul30ui.cf -znatb25xbul30ui.ga -znatb25xbul30ui.gq -znatb25xbul30ui.ml -znatb25xbul30ui.tk -znatzhestko.xyz -znbhuf.ooo -znbup3e30kpupwf.xyz -zncqtumbkq.cf -zncqtumbkq.ga -zncqtumbkq.gq -zncqtumbkq.ml -zncqtumbkq.tk -zndqv4.site -zngjfa.us -zni1d2bs6fx4lp.cf -zni1d2bs6fx4lp.ga -zni1d2bs6fx4lp.gq -zni1d2bs6fx4lp.ml -zni1d2bs6fx4lp.tk -znkzhidpasdp32423.info -znnix.com -znnxguest.com -znq0bc.us -zns1ad.com -znsupgvno.gq -znsxchgx212jc9y.xyz -znthe6ggfbh6d0mn2f.cf -znthe6ggfbh6d0mn2f.ga -znthe6ggfbh6d0mn2f.gq -znthe6ggfbh6d0mn2f.ml -znthe6ggfbh6d0mn2f.tk -znull.net -znxrzalb.shop -znyxer.icu -zoabok.ru -zoanthropy.xyz -zoaxe.com -zobeed.com -zocial.ru -zodekb.ru -zoedailythoughts.com -zoelifetips.com -zoelotem.ga -zoelotem.gq -zoelotem.ml -zoelotem.tk -zoemail.com -zoemail.net -zoemail.org -zoeov.com -zoepenny.com -zoeportals.icu -zoescolorfullegacy.org -zoetomlinson.buzz -zoetropes.org -zoevaofficial.online -zoevaofficial.ru -zogavm.ru -zoidberg.ninja -zojyta.xyz -zoknseybm.shop -zolaemporium.site -zoldnwx.com -zolman.org -zomail.org -zomantidecopics.site -zombie-hive.com -zombie99.com -zombieapocalypserace.com -zombiecourse.com -zombo.flu.cc -zombo.igg.biz -zombo.nut.cc -zomg.info -zona-kita.com -zona.best -zona24.ru -zona7.com -zonagaming77.club -zonagaming77.live -zonamail.ga -zonangopi.co -zonapara.fun -zondee.ru -zone-telechargement-1.com -zone10electric.com -zone4u-prizes1.info -zonecotton.com -zonedating.info -zonedefilmbarbie.com -zonemail.info -zonemail.monster -zonepyramid.com -zongases.cf -zongases.ga -zongases.gq -zongases.ml -zongases.tk -zongbopay1577.com -zongbopay2100.com -zongteng51.icu -zonguldakgundem.xyz -zonguldakozelders.xyz -zonland.ru -zonsurvey.xyz -zontero.top -zoo-chat.ru -zoo-game.ru -zoobutik.ru -zooki.net -zoom.cd -zoomafoo.info -zoombbearhota.xyz -zoombdcmi.shop -zoomclick.online -zoomfm.ru -zoomial.info -zoomnation.info -zoonti.pl -zoophagy.xyz -zoosuits.info -zoozentrum.de -zopeqsa.space -zoqqa.com -zoqyge.info -zor-da.ru -zorgkaartzeeland.com -zoroasterdomain.com -zoroasterplace.com -zoroastersite.com -zoroasterwebsite.com -zoromarkets.site -zoroter21.xyz -zorropace.se -zosiwuu3.site -zota.fun -zotorganics.com -zotyxsod.shop -zoutlook.com -zoutoutou.com -zoviraxprime.com -zowomavixy.website -zowtaguz.shop -zowuto.info -zozoprint.com -zozugo.info -zp4.info -zp5d0a.com -zpapa.ooo -zpaperfax.com -zpayhub2.com -zpcaf8dhq.pl -zpcdgm.us -zperczhnj.shop -zpfxhb.com -zph8ag47zm3zz1h.xyz -zphuxm.info -zpjcre.com -zpjdb1.site -zpjjmc.icu -zpjy.xyz -zpkdqkozdopc3mnta.cf -zpkdqkozdopc3mnta.ga -zpkdqkozdopc3mnta.gq -zpkdqkozdopc3mnta.ml -zpkdqkozdopc3mnta.tk -zpocu.net -zpp.su -zpqvdc.com -zprea.ru -zpsrwt.icu -zpvozwsri4aryzatr.cf -zpvozwsri4aryzatr.ga -zpvozwsri4aryzatr.gq -zpvozwsri4aryzatr.ml -zpvozwsri4aryzatr.tk -zpvpriozvodnja.com -zpxcb1.site -zpye.icu -zpzksad.space -zqakus.us -zqdnppf.site -zqe91.buzz -zqw.pl -zr8la.us -zran5yxefwrcpqtcq.cf -zran5yxefwrcpqtcq.ga -zran5yxefwrcpqtcq.gq -zran5yxefwrcpqtcq.ml -zran5yxefwrcpqtcq.tk -zrbmsx.top -zrczefgjv.pl -zre3i49lnsv6qt.cf -zre3i49lnsv6qt.ga -zre3i49lnsv6qt.gq -zre3i49lnsv6qt.ml -zre3i49lnsv6qt.tk -zrega.com -zregomen.cf -zregomen.ga -zregomen.ml -zregomen.tk -zrelost.ru -zrenieplus.space -zrinyi.org -zrmail.ga -zrmail.ml -zrpurhxql.pl -zrqlejfyt.shop -zruycop.site -zrvtddfh.shop -zrzljy.com -zs2019021.com -zs2019023.com -zs2019025.com -zs2019031.com -zs2019033.com -zs2019064.com -zs2019065.com -zs2019097.com -zs2019098.com -zs2019099.com -zs20192068.com -zs20192097.com -zs201939.com -zs201940.com -zs201942.com -zsaful.com -zsaleshow.site -zsba31.us -zsbgllzin.shop -zsccyccxea.pl -zsero.com -zsfuteer.com -zsgo45.com -zshaiwa.com -zshops.ru -zsigmondy.org -zsj05.com -zsjrxh.com -zskoqt.us -zslsz.com -zssgsexdqd.pl -zssh3d.com -zsvrqrmkr.pl -zsyu.org -zsyx158.com -zt5wgv.us -ztahoewgbo.com -ztd5af7qo1drt8.cf -ztd5af7qo1drt8.ga -ztd5af7qo1drt8.gq -ztd5af7qo1drt8.ml -ztd5af7qo1drt8.tk -ztdgrucjg92piejmx.cf -ztdgrucjg92piejmx.ga -ztdgrucjg92piejmx.gq -ztdgrucjg92piejmx.ml -ztdgrucjg92piejmx.tk -ztjspeakmn.com -ztlkky.icu -ztols4.online -ztrackz.tk -ztsecurity.org -ztssce.icu -zu15jn.us -zu91pml1dge6dcv.xyz -zualikhakk.cf -zualikhakk.ga -zualikhakk.gq -zualikhakk.ml -zualikhakk.tk -zuan4e.us -zubacteriax.com -zubayer.cf -zubr-store.ru -zucconi-dublin.com -zudrm1dxjnikm.cf -zudrm1dxjnikm.ga -zudrm1dxjnikm.gq -zudrm1dxjnikm.ml -zudrm1dxjnikm.tk -zuhaoban.com -zuhouse.ru -zuilinger.info -zuimap.com -zuinigverwarmen.com -zuiquandaohang.xyz -zujdg1.site -zujrn4.us -zukhy4.us -zukmail.cf -zukmail.ga -zukmail.ml -zukmail.tk -zulala.com -zulamri.com -zumail.net -zumbinimex.com -zumpul.com -zumrotin.ml -zumrut.tk -zun-s.icu -zunemasters.com -zunigersa.site -zuperholo.com -zupka.anglik.org -zupload.xyz -zupper.tk -zuppyezof.info -zuqame.info -zuqkfp.info -zurabhsan.ml -zurabhsan.tk -zurbdj.us -zurcasinocow.ru -zuribeauty.com -zurotrinz.ru -zurtel.cf -zurtel.ga -zurtel.gq -zurtel.ml -zurtel.tk -zuvio.com -zuxi.site -zuza.se -zv-mail.ru -zv-ml.ru -zv-send.ru -zv35.icu -zv6.info -zv68.com -zvbt.com -zvezda.website -zvhmuytt.shop -zvik-mail.ru -zvik-ml.ru -zvik-r.ru -zvik-ras.ru -zvik-rs.ru -zvik-sd.ru -zvik-send.ru -zvikeu.xyz -zvkkihlo.shop -zvnhkcpnq.shop -zvookkolonka.ru -zvtv.xyz -zvukofon.ru -zvwjfk.us -zw6provider.com -zwcmanbetx.com -zwerivokrug.xyz -zwiedzaniebrowaru.com.pl -zwiekszsile.pl -zwiknm.ru -zwmkv0.us -zwnrffoz.shop -zwoho.com -zwphmnfrs.shop -zwpqjsnpkdjbtu2soc.ga -zwpqjsnpkdjbtu2soc.ml -zwpqjsnpkdjbtu2soc.tk -zwunwvxz.shop -zwwaltered.com -zwwnhmmcec57ziwux.cf -zwwnhmmcec57ziwux.ga -zwwnhmmcec57ziwux.gq -zwwnhmmcec57ziwux.ml -zwwnhmmcec57ziwux.tk -zx180.com -zx3dl.com -zx3dlzc.com -zx3gw.com -zx553.com -zx81.ovh -zxcnvgj2-privnbmgt.press -zxcnvgj2-privnbmgt.xyz -zxcv.com -zxcvbn.in -zxcvbnm.cf -zxcvbnm.com -zxcvbnm.tk -zxcvbtyuytfcvb06nbp.monster -zxcvjhjh12198.cf -zxcvjhjh12198.ga -zxcvjhjh12198.ml -zxcvjhjh12198.tk -zxcvjhjh18924.cf -zxcvjhjh18924.ga -zxcvjhjh18924.ml -zxcvjhjh18924.tk -zxcvjhjh21878.cf -zxcvjhjh21878.ga -zxcvjhjh21878.ml -zxcvjhjh21878.tk -zxcvjhjh22711.cf -zxcvjhjh51720.ml -zxcvjhjh84673.tk -zxcvjhjh92976.ga -zxcvjhjh92976.ml -zxcvjhjh92976.tk -zxcxc.com -zxcxcva.com -zxd9837.com -zxgsd4gydfg.ga -zxlzct.info -zxnhu0.us -zxo.us -zxonkcw91bjdojkn.cf -zxonkcw91bjdojkn.ga -zxonkcw91bjdojkn.gq -zxonkcw91bjdojkn.ml -zxonkcw91bjdojkn.tk -zxpasystems.com -zxq1998.design -zxqpgame.com -zxuctaviaperze.info -zxuinf.us -zxusnkn0ahscvuk0v.cf -zxusnkn0ahscvuk0v.ga -zxusnkn0ahscvuk0v.gq -zxusnkn0ahscvuk0v.ml -zxusnkn0ahscvuk0v.tk -zxw114.info -zxwg.site -zxxxz.gq -zxxz.ml -zy33.com -zyarat40.com -zyazu.xyz -zybiqe.site -zybu.xyz -zyczeniurodzinow.pl -zyegabvk.shop -zyeht.info -zyfdz.com -zyga2d.us -zygnomic.xyz -zyjzdrowiej.club -zylpu4cm6hrwrgrqxb.cf -zylpu4cm6hrwrgrqxb.ga -zylpu4cm6hrwrgrqxb.gq -zylpu4cm6hrwrgrqxb.ml -zylpu4cm6hrwrgrqxb.tk -zymail.men -zymotic.xyz -zymuying.com -zynana.cf -zynana.ga -zynana.gq -zynga-email.com -zyngabahis77.com -zyngabahis80.com -zyoxry.site -zypu.site -zyqoje.info -zyrone.us -zyseo.com -zyte.site -zytrzz.com -zyyberrys.com -zyyg.net -zyyu6mute9qn.cf -zyyu6mute9qn.ga -zyyu6mute9qn.gq -zyyu6mute9qn.ml -zyyu6mute9qn.tk -zz-6677.com -zz.beststudentloansx.org -zz1298.com -zz75.net -zz7665.com -zz77.com -zz8ty.com -zz9094.com -zz9827.com -zza77.com -zzhjqr.com -zzi.us -zzjbfwqi.shop -zzolboo02.com -zzqaau.rest -zzrgg.com -zzuwnakb.pl -zzv2bfja5.pl -zzxilie.xyz -zzz-xxx.com -zzz.com -zzz813.com -zzz98.xyz -zzzmail.pl -zzzpush.icu -zzzz1717.com -zzzzzzzzzzzzz.com \ No newline at end of file diff --git a/api/src/util/entities/trustedEmailDomains.txt b/api/src/util/entities/trustedEmailDomains.txt deleted file mode 100644 index 38ffa4fa..00000000 --- a/api/src/util/entities/trustedEmailDomains.txt +++ /dev/null @@ -1,154 +0,0 @@ -aol.com -att.net -comcast.net -facebook.com -gmail.com -gmx.com -googlemail.com -google.com -hotmail.com -hotmail.co.uk -mac.com -me.com -mail.com -msn.com -live.com -sbcglobal.net -verizon.net -yahoo.com -yahoo.co.uk -email.com -fastmail.fm -games.com -gmx.net -hush.com -hushmail.com -icloud.com -iname.com -inbox.com -lavabit.com -love.com -outlook.com -pobox.com -protonmail.ch -protonmail.com -tutanota.de -tutanota.com -tutamail.com -tuta.io -keemail.me -rocketmail.com -safe-mail.net -wow.com -ygm.com -ymail.com -zoho.com -yandex.com -bellsouth.net -charter.net -cox.net -earthlink.net -juno.com -btinternet.com -virginmedia.com -blueyonder.co.uk -freeserve.co.uk -live.co.uk -ntlworld.com -o2.co.uk -orange.net -sky.com -talktalk.co.uk -tiscali.co.uk -virgin.net -wanadoo.co.uk -bt.com -sina.com -sina.cn -qq.com -naver.com -hanmail.net -daum.net -nate.com -yahoo.co.jp -yahoo.co.kr -yahoo.co.id -yahoo.co.in -yahoo.com.sg -yahoo.com.ph -163.com -yeah.net -126.com -21cn.com -aliyun.com -foxmail.com -hotmail.fr -live.fr -laposte.net -yahoo.fr -wanadoo.fr -orange.fr -gmx.fr -sfr.fr -neuf.fr -free.fr -gmx.de -hotmail.de -live.de -online.de -t-online.de -web.de -yahoo.de -libero.it -virgilio.it -hotmail.it -aol.it -tiscali.it -alice.it -live.it -yahoo.it -email.it -tin.it -poste.it -teletu.it -mail.ru -rambler.ru -yandex.ru -ya.ru -list.ru -hotmail.be -live.be -skynet.be -voo.be -tvcablenet.be -telenet.be -hotmail.com.ar -live.com.ar -yahoo.com.ar -fibertel.com.ar -speedy.com.ar -arnet.com.ar -yahoo.com.mx -live.com.mx -hotmail.es -hotmail.com.mx -prodigy.net.mx -yahoo.ca -hotmail.ca -bell.net -shaw.ca -sympatico.ca -rogers.com -yahoo.com.br -hotmail.com.br -outlook.com.br -uol.com.br -bol.com.br -terra.com.br -ig.com.br -itelefonica.com.br -r7.com -zipmail.com.br -globo.com -globomail.com -oi.com.br \ No newline at end of file diff --git a/api/src/util/handlers/Instance.ts b/api/src/util/handlers/Instance.ts deleted file mode 100644 index 7c337270..00000000 --- a/api/src/util/handlers/Instance.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Config, Guild, Session } from "@fosscord/util"; -import { createQueryBuilder } from "typeorm"; - -export async function initInstance() { - // TODO: clean up database and delete tombstone data - // TODO: set first user as instance administrator/or generate one if none exists and output it in the terminal - - // create default guild and add it to auto join - // TODO: check if any current user is not part of autoJoinGuilds - const { autoJoin } = Config.get().guild; - - if (autoJoin.enabled && !autoJoin.guilds?.length) { - let guild = await Guild.findOne({where: {}, order: {id: "ASC"}}); - if (guild) { - // @ts-ignore - await Config.set({ guild: { autoJoin: { guilds: [guild.id] } } }); - } - } - - // TODO: do no clear sessions for instance cluster - await Session.delete({}); -} diff --git a/api/src/util/handlers/Message.ts b/api/src/util/handlers/Message.ts deleted file mode 100644 index ff5ece75..00000000 --- a/api/src/util/handlers/Message.ts +++ /dev/null @@ -1,229 +0,0 @@ -import { - Channel, - Embed, - emitEvent, - Guild, - Message, - MessageCreateEvent, - MessageUpdateEvent, - getPermission, - getRights, - CHANNEL_MENTION, - Snowflake, - USER_MENTION, - ROLE_MENTION, - Role, - EVERYONE_MENTION, - HERE_MENTION, - MessageType, - User, - Application, - Webhook, - Attachment, - Config, - MessageCreateSchema, -} from "@fosscord/util"; -import { HTTPError } from "@fosscord/util"; -import fetch from "node-fetch"; -import cheerio from "cheerio"; -import { OrmUtils } from "@fosscord/util"; - -const allow_empty = false; -// TODO: check webhook, application, system author, stickers -// TODO: embed gifs/videos/images - -const LINK_REGEX = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g; - -const DEFAULT_FETCH_OPTIONS: any = { - redirect: "follow", - follow: 1, - headers: { - "user-agent": "Mozilla/5.0 (compatible; Fosscord/1.0; +https://github.com/fosscord/fosscord)" - }, - // size: 1024 * 1024 * 5, // grabbed from config later - compress: true, - method: "GET" -}; - -export async function handleMessage(opts: MessageOptions): Promise { - const channel = await Channel.findOneOrFail({ where: { id: opts.channel_id }, relations: ["recipients"] }); - if (!channel || !opts.channel_id) throw new HTTPError("Channel not found", 404); - - const message = OrmUtils.mergeDeep(new Message(), { - ...opts, - sticker_items: opts.sticker_ids?.map((x) => ({ id: x })), - guild_id: channel.guild_id, - channel_id: opts.channel_id, - attachments: opts.attachments || [], - embeds: opts.embeds || [], - reactions: /*opts.reactions ||*/ [], - type: opts.type ?? 0 - }); - - if (message.content && message.content.length > Config.get().limits.message.maxCharacters) { - throw new HTTPError("Content length over max character limit") - } - - if (opts.author_id) { - message.author = await User.getPublicUser(opts.author_id); - const rights = await getRights(opts.author_id); - rights.hasThrow("SEND_MESSAGES"); - } - if (opts.application_id) { - message.application = await Application.findOneOrFail({ where: { id: opts.application_id } }); - } - if (opts.webhook_id) { - message.webhook = await Webhook.findOneOrFail({ where: { id: opts.webhook_id } }); - } - - const permission = await getPermission(opts.author_id, channel.guild_id, opts.channel_id); - permission.hasThrow("SEND_MESSAGES"); - if (permission.cache.member) { - message.member = permission.cache.member; - } - - if (opts.tts) permission.hasThrow("SEND_TTS_MESSAGES"); - if (opts.message_reference) { - permission.hasThrow("READ_MESSAGE_HISTORY"); - // code below has to be redone when we add custom message routing - if (message.guild_id !== null) { - const guild = await Guild.findOneOrFail({ where: { id: channel.guild_id } }); - if (!guild.features.includes("CROSS_CHANNEL_REPLIES")) { - if (opts.message_reference.guild_id !== channel.guild_id) throw new HTTPError("You can only reference messages from this guild"); - if (opts.message_reference.channel_id !== opts.channel_id) throw new HTTPError("You can only reference messages from this channel"); - } - } - /** Q: should be checked if the referenced message exists? ANSWER: NO - otherwise backfilling won't work **/ - // @ts-ignore - message.type = MessageType.REPLY; - } - - // TODO: stickers/activity - if (!allow_empty && (!opts.content && !opts.embeds?.length && !opts.attachments?.length && !opts.sticker_ids?.length)) { - throw new HTTPError("Empty messages are not allowed", 50006); - } - - let content = opts.content; - let mention_channel_ids = [] as string[]; - let mention_role_ids = [] as string[]; - let mention_user_ids = [] as string[]; - let mention_everyone = false; - - if (content) { // TODO: explicit-only mentions - message.content = content.trim(); - for (const [_, mention] of content.matchAll(CHANNEL_MENTION)) { - if (!mention_channel_ids.includes(mention)) mention_channel_ids.push(mention); - } - - for (const [_, mention] of content.matchAll(USER_MENTION)) { - if (!mention_user_ids.includes(mention)) mention_user_ids.push(mention); - } - - await Promise.all( - Array.from(content.matchAll(ROLE_MENTION)).map(async ([_, mention]) => { - const role = await Role.findOneOrFail({ where: { id: mention, guild_id: channel.guild_id } }); - if (role.mentionable || permission.has("MANAGE_ROLES")) { - mention_role_ids.push(mention); - } - }) - ); - - if (permission.has("MENTION_EVERYONE")) { - mention_everyone = !!content.match(EVERYONE_MENTION) || !!content.match(HERE_MENTION); - } - } - - message.mention_channels = mention_channel_ids.map((x) => OrmUtils.mergeDeep(new Channel(), { id: x })); - message.mention_roles = mention_role_ids.map((x) => OrmUtils.mergeDeep(new Role(), { id: x })); - message.mentions = mention_user_ids.map((x) => OrmUtils.mergeDeep(new User(), { id: x })); - message.mention_everyone = mention_everyone; - - // TODO: check and put it all in the body - - return message; -} - -// TODO: cache link result in db -export async function postHandleMessage(message: Message) { - let links = message.content?.match(LINK_REGEX); - if (!links) return; - - const data = { ...message }; - data.embeds = data.embeds.filter((x) => x.type !== "link"); - - links = links.slice(0, 20); // embed max 20 links — TODO: make this configurable with instance policies - - for (const link of links) { - try { - const request = await fetch(link, { - ...DEFAULT_FETCH_OPTIONS, - size: Config.get().limits.message.maxEmbedDownloadSize, - }); - - const text = await request.text(); - const $ = cheerio.load(text); - - const title = $('meta[property="og:title"]').attr("content"); - const provider_name = $('meta[property="og:site_name"]').text(); - const author_name = $('meta[property="article:author"]').attr("content"); - const description = $('meta[property="og:description"]').attr("content") || $('meta[property="description"]').attr("content"); - const image = $('meta[property="og:image"]').attr("content"); - const url = $('meta[property="og:url"]').attr("content"); - // TODO: color - const embed: Embed = { - provider: { - url: link, - name: provider_name - } - }; - - if (author_name) embed.author = { name: author_name }; - if (image) embed.thumbnail = { proxy_url: image, url: image }; - if (title) embed.title = title; - if (url) embed.url = url; - if (description) embed.description = description; - - if (title || description) { - data.embeds.push(embed); - } - } catch (error) {} - } - - await Promise.all([ - emitEvent({ - event: "MESSAGE_UPDATE", - channel_id: message.channel_id, - data - } as MessageUpdateEvent), - Message.update({ id: message.id, channel_id: message.channel_id }, { embeds: data.embeds }) - ]); -} - -export async function sendMessage(opts: MessageOptions) { - const message = await handleMessage({ ...opts, timestamp: new Date() }); - - //TODO: check this, removed toJSON call - await Promise.all([ - Message.insert(message), - emitEvent({ event: "MESSAGE_CREATE", channel_id: opts.channel_id, data: message } as MessageCreateEvent) - ]); - - postHandleMessage(message).catch((e) => {}); // no await as it should catch error non-blockingly - - return message; -} - -interface MessageOptions extends MessageCreateSchema { - id?: string; - type?: MessageType; - pinned?: boolean; - author_id?: string; - webhook_id?: string; - application_id?: string; - embeds?: Embed[]; - channel_id?: string; - attachments?: Attachment[]; - edited_timestamp?: Date; - timestamp?: Date; -} diff --git a/api/src/util/handlers/Voice.ts b/api/src/util/handlers/Voice.ts deleted file mode 100644 index 4d60eb91..00000000 --- a/api/src/util/handlers/Voice.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Config } from "@fosscord/util"; -import { distanceBetweenLocations, IPAnalysis } from "../utility/ipAddress"; - -export async function getVoiceRegions(ipAddress: string, vip: boolean) { - const regions = Config.get().regions; - const availableRegions = regions.available.filter((ar) => (vip ? true : !ar.vip)); - let optimalId = regions.default; - - if (!regions.useDefaultAsOptimal) { - const clientIpAnalysis = await IPAnalysis(ipAddress); - - let min = Number.POSITIVE_INFINITY; - - for (let ar of availableRegions) { - //TODO the endpoint location should be saved in the database if not already present to prevent IPAnalysis call - const dist = distanceBetweenLocations(clientIpAnalysis, ar.location || (await IPAnalysis(ar.endpoint))); - - if (dist < min) { - min = dist; - optimalId = ar.id; - } - } - } - - return availableRegions.map((ar) => ({ - id: ar.id, - name: ar.name, - custom: ar.custom, - deprecated: ar.deprecated, - optimal: ar.id === optimalId - })); -} diff --git a/api/src/util/handlers/route.ts b/api/src/util/handlers/route.ts deleted file mode 100644 index f8130f3c..00000000 --- a/api/src/util/handlers/route.ts +++ /dev/null @@ -1,131 +0,0 @@ -import { - DiscordApiErrors, - EVENT, - Event, - EventData, - FieldErrors, - FosscordApiErrors, - getPermission, - getRights, - PermissionResolvable, - Permissions, - RightResolvable, - Rights -} from "@fosscord/util"; -import { NextFunction, Request, Response } from "express"; -import fs from "fs"; -import path from "path"; -import Ajv from "ajv"; -import { AnyValidateFunction } from "ajv/dist/core"; -import addFormats from "ajv-formats"; - -const SchemaPath = path.join(__dirname, "..", "..", "..", "assets", "schemas.json"); -const schemas = JSON.parse(fs.readFileSync(SchemaPath, { encoding: "utf8" })); - -export const ajv = new Ajv({ - allErrors: true, - parseDate: true, - allowDate: true, - schemas, - coerceTypes: true, - messages: true, - strict: true, - strictRequired: true -}); - -addFormats(ajv); - -declare global { - namespace Express { - interface Request { - permission?: Permissions; - } - } -} - -export type RouteResponse = { status?: number; body?: `${string}Response`; headers?: Record }; - -export interface RouteOptions { - permission?: PermissionResolvable; - right?: RightResolvable; - body?: `${string}Schema`; // typescript interface name - test?: { - response?: RouteResponse; - body?: any; - path?: string; - event?: EVENT | EVENT[]; - headers?: Record; - }; -} - -// Normalizer is introduced to workaround https://github.com/ajv-validator/ajv/issues/1287 -// this removes null values as ajv doesn't treat them as undefined -// normalizeBody allows to handle circular structures without issues -// taken from https://github.com/serverless/serverless/blob/master/lib/classes/ConfigSchemaHandler/index.js#L30 (MIT license) -const normalizeBody = (body: any = {}) => { - const normalizedObjectsSet = new WeakSet(); - const normalizeObject = (object: any) => { - if (normalizedObjectsSet.has(object)) return; - normalizedObjectsSet.add(object); - if (Array.isArray(object)) { - for (const [index, value] of object.entries()) { - if (typeof value === "object") normalizeObject(value); - } - } else { - for (const [key, value] of Object.entries(object)) { - if (value == null) { - if (key === "icon" || key === "avatar" || key === "banner" || key === "splash" || key === "discovery_splash") continue; - delete object[key]; - } else if (typeof value === "object") { - normalizeObject(value); - } - } - } - }; - normalizeObject(body); - return body; -}; - -export function route(opts: RouteOptions) { - let validate: AnyValidateFunction | undefined; - if (opts.body) { - validate = ajv.getSchema(opts.body); - if (!validate) throw new Error(`Body schema ${opts.body} not found`); - } - - return async (req: Request, res: Response, next: NextFunction) => { - if (opts.permission) { - const required = new Permissions(opts.permission); - req.permission = await getPermission(req.user_id, req.params.guild_id, req.params.channel_id); - - // bitfield comparison: check if user lacks certain permission - if (!req.permission.has(required)) { - throw DiscordApiErrors.MISSING_PERMISSIONS.withParams(opts.permission as string); - } - } - - if (opts.right) { - const required = new Rights(opts.right); - req.rights = await getRights(req.user_id); - - if (!req.rights || !req.rights.has(required)) { - throw FosscordApiErrors.MISSING_RIGHTS.withParams(opts.right as string); - } - } - - if (validate) { - const valid = validate(normalizeBody(req.body)); - if (!valid) { - const fields: Record = {}; - if(process.env.LOG_INVALID_BODY) { - console.log(`Got invalid request: ${req.method} ${req.originalUrl}`) - console.log(req.body) - validate.errors?.forEach(x => console.log(x.params)) - } - validate.errors?.forEach((x) => (fields[x.instancePath.slice(1)] = { code: x.keyword, message: x.message || "" })); - throw FieldErrors(fields); - } - } - next(); - }; -} diff --git a/api/src/util/index.ts b/api/src/util/index.ts deleted file mode 100644 index b3c7559f..00000000 --- a/api/src/util/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -export * from "./entities/AssetCacheItem"; -export * from "./handlers/Message"; -export * from "./handlers/route"; -export * from "./handlers/Voice"; -export * from "./utility/Base64"; -export * from "./utility/ipAddress"; -export * from "./utility/passwordStrength"; -export * from "./utility/RandomInviteID"; -export * from "./utility/String"; \ No newline at end of file diff --git a/api/src/util/utility/Base64.ts b/api/src/util/utility/Base64.ts deleted file mode 100644 index 46cff77a..00000000 --- a/api/src/util/utility/Base64.ts +++ /dev/null @@ -1,47 +0,0 @@ -const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+"; - -// binary to string lookup table -const b2s = alphabet.split(""); - -// string to binary lookup table -// 123 == 'z'.charCodeAt(0) + 1 -const s2b = new Array(123); -for (let i = 0; i < alphabet.length; i++) { - s2b[alphabet.charCodeAt(i)] = i; -} - -// number to base64 -export const ntob = (n: number): string => { - if (n < 0) return `-${ntob(-n)}`; - - let lo = n >>> 0; - let hi = (n / 4294967296) >>> 0; - - let right = ""; - while (hi > 0) { - right = b2s[0x3f & lo] + right; - lo >>>= 6; - lo |= (0x3f & hi) << 26; - hi >>>= 6; - } - - let left = ""; - do { - left = b2s[0x3f & lo] + left; - lo >>>= 6; - } while (lo > 0); - - return left + right; -}; - -// base64 to number -export const bton = (base64: string) => { - let number = 0; - const sign = base64.charAt(0) === "-" ? 1 : 0; - - for (let i = sign; i < base64.length; i++) { - number = number * 64 + s2b[base64.charCodeAt(i)]; - } - - return sign ? -number : number; -}; diff --git a/api/src/util/utility/RandomInviteID.ts b/api/src/util/utility/RandomInviteID.ts deleted file mode 100644 index 7ea344e0..00000000 --- a/api/src/util/utility/RandomInviteID.ts +++ /dev/null @@ -1,32 +0,0 @@ -import { Snowflake } from "@fosscord/util"; - -export function random(length = 6) { - // Declare all characters - let chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - - // Pick characers randomly - let str = ""; - for (let i = 0; i < length; i++) { - str += chars.charAt(Math.floor(Math.random() * chars.length)); - } - - return str; -} - -export function snowflakeBasedInvite() { - // Declare all characters - let chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - let base = BigInt(chars.length); - let snowflake = Snowflake.generateWorkerProcess(); - - // snowflakes hold ~10.75 characters worth of entropy; - // safe to generate a 8-char invite out of them - let str = ""; - for (let i=0; i < 10; i++) { - - str.concat(chars.charAt(Number(snowflake % base))); - snowflake = snowflake / base; - } - - return str.substr(3,8).split("").reverse().join(""); -} diff --git a/api/src/util/utility/String.ts b/api/src/util/utility/String.ts deleted file mode 100644 index 982b7e11..00000000 --- a/api/src/util/utility/String.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Request } from "express"; -import { ntob } from "./Base64"; -import { FieldErrors } from "@fosscord/util"; - -export function checkLength(str: string, min: number, max: number, key: string, req: Request) { - if (str.length < min || str.length > max) { - throw FieldErrors({ - [key]: { - code: "BASE_TYPE_BAD_LENGTH", - message: req.t("common:field.BASE_TYPE_BAD_LENGTH", { length: `${min} - ${max}` }) - } - }); - } -} - -export function generateCode() { - return ntob(Date.now() + Math.randomIntBetween(0, 10000)); -} diff --git a/api/src/util/utility/ipAddress.ts b/api/src/util/utility/ipAddress.ts deleted file mode 100644 index 8d986b26..00000000 --- a/api/src/util/utility/ipAddress.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { Config } from "@fosscord/util"; -import { Request } from "express"; -// use ipdata package instead of simple fetch because of integrated caching -import fetch from "node-fetch"; - -const exampleData = { - ip: "", - is_eu: true, - city: "", - region: "", - region_code: "", - country_name: "", - country_code: "", - continent_name: "", - continent_code: "", - latitude: 0, - longitude: 0, - postal: "", - calling_code: "", - flag: "", - emoji_flag: "", - emoji_unicode: "", - asn: { - asn: "", - name: "", - domain: "", - route: "", - type: "isp" - }, - languages: [ - { - name: "", - native: "" - } - ], - currency: { - name: "", - code: "", - symbol: "", - native: "", - plural: "" - }, - time_zone: { - name: "", - abbr: "", - offset: "", - is_dst: true, - current_time: "" - }, - threat: { - is_tor: false, - is_proxy: false, - is_anonymous: false, - is_known_attacker: false, - is_known_abuser: false, - is_threat: false, - is_bogon: false - }, - count: 0, - status: 200 -}; - -//TODO add function that support both ip and domain names -export async function IPAnalysis(ip: string): Promise { - const { ipdataApiKey } = Config.get().security; - if (!ipdataApiKey) return { ...exampleData, ip }; - - return (await fetch(`https://api.ipdata.co/${ip}?api-key=${ipdataApiKey}`)).json() as any; -} - -export function isProxy(data: typeof exampleData) { - if (!data || !data.asn || !data.threat) return false; - if (data.asn.type !== "isp") return true; - if (Object.values(data.threat).some((x) => x)) return true; - - return false; -} - -export function getIpAdress(req: Request): string { - // @ts-ignore - return req.headers[Config.get().security.forwadedFor] || req.socket.remoteAddress; -} - -export function distanceBetweenLocations(loc1: any, loc2: any): number { - return distanceBetweenCoords(loc1.latitude, loc1.longitude, loc2.latitude, loc2.longitude); -} - -//Haversine function -function distanceBetweenCoords(lat1: number, lon1: number, lat2: number, lon2: number) { - const p = 0.017453292519943295; // Math.PI / 180 - const c = Math.cos; - const a = 0.5 - c((lat2 - lat1) * p) / 2 + (c(lat1 * p) * c(lat2 * p) * (1 - c((lon2 - lon1) * p))) / 2; - - return 12742 * Math.asin(Math.sqrt(a)); // 2 * R; R = 6371 km -} diff --git a/api/src/util/utility/passwordStrength.ts b/api/src/util/utility/passwordStrength.ts deleted file mode 100644 index 8eca63b8..00000000 --- a/api/src/util/utility/passwordStrength.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { Config } from "@fosscord/util"; - -const reNUMBER = /[0-9]/g; -const reUPPERCASELETTER = /[A-Z]/g; -const reSYMBOLS = /[A-Z,a-z,0-9]/g; - -const blocklist: string[] = []; // TODO: update ones passwordblocklist is stored in db -/* - * https://en.wikipedia.org/wiki/Password_policy - * password must meet following criteria, to be perfect: - * - min chars - * - min numbers - * - min symbols - * - min uppercase chars - * - shannon entropy folded into [0, 1) interval - * - * Returns: 0 > pw > 1 - */ -export function checkPassword(password: string): number { - const { minLength, minNumbers, minUpperCase, minSymbols } = Config.get().register.password; - let strength = 0; - - // checks for total password len - if (password.length >= minLength - 1) { - strength += 0.05; - } - - // checks for amount of Numbers - if (password.count(reNUMBER) >= minNumbers - 1) { - strength += 0.05; - } - - // checks for amount of Uppercase Letters - if (password.count(reUPPERCASELETTER) >= minUpperCase - 1) { - strength += 0.05; - } - - // checks for amount of symbols - if (password.replace(reSYMBOLS, "").length >= minSymbols - 1) { - strength += 0.05; - } - - // checks if password only consists of numbers or only consists of chars - if (password.length == password.count(reNUMBER) || password.length === password.count(reUPPERCASELETTER)) { - strength = 0; - } - - let entropyMap: { [key: string]: number } = {}; - for (let i = 0; i < password.length; i++) { - if (entropyMap[password[i]]) entropyMap[password[i]]++; - else entropyMap[password[i]] = 1; - } - - let entropies = Object.values(entropyMap); - - entropies.map(x => (x / entropyMap.length)); - strength += entropies.reduceRight((a: number, x: number) => a - (x * Math.log2(x))) / Math.log2(password.length); - return strength; -} diff --git a/api/tests/routes.test.ts b/api/tests/routes.test.ts deleted file mode 100644 index c915fab9..00000000 --- a/api/tests/routes.test.ts +++ /dev/null @@ -1,155 +0,0 @@ -// TODO: check every route based on route() parameters: https://github.com/fosscord/fosscord-server/issues/308 -// TODO: check every route with different database engine - -import getRouteDescriptions from "../jest/getRouteDescriptions"; -import { join } from "path"; -import fs from "fs"; -import Ajv from "ajv"; -import addFormats from "ajv-formats"; -import fetch from "node-fetch"; -import { Event, User, events, Guild, Channel } from "@fosscord/util"; - -const SchemaPath = join(__dirname, "..", "assets", "schemas.json"); -const schemas = JSON.parse(fs.readFileSync(SchemaPath, { encoding: "utf8" })); -export const ajv = new Ajv({ - allErrors: true, - parseDate: true, - allowDate: true, - schemas, - messages: true, - strict: true, - strictRequired: true, - coerceTypes: true -}); -addFormats(ajv); - -let token: string; -let user: User; -let guild: Guild; -let channel: Channel; - -const request = async (path: string, opts: any = {}): Promise => { - const response = await fetch(`http://localhost:3001/api${path}`, { - ...opts, - method: opts.method || opts.body ? "POST" : "GET", - body: opts.body && JSON.stringify(opts.body), - headers: { - authorization: token, - ...(opts.body ? { "content-type": "application/json" } : {}), - ...(opts.header || {}) - } - }); - if (response.status === 204) return; - - let data = await response.text(); - try { - data = JSON.parse(data); - if (response.status >= 400) throw data; - return data; - } catch (error) { - throw data; - } -}; - -beforeAll(async (done) => { - try { - const response = await request("/auth/register", { - body: { - fingerprint: "805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", - username: "tester", - invite: null, - consent: true, - date_of_birth: "2000-01-01", - gift_code_sku_id: null, - captcha_key: null - } - }); - token = response.token; - user = await request(`/users/@me`); - const { id: guild_id } = await request("/guilds", { body: { name: "test server" } }); - guild = await request(`/guilds/${guild_id}`); - channel = (await request(`/guilds/${guild_id}/channels`))[0]; - - done(); - } catch (error) { - done(error); - } -}); - -const emit = events.emit; -events.emit = (event: string | symbol, ...args: any[]) => { - events.emit("event", args[0]); - return emit(event, ...args); -}; - -describe("Automatic unit tests with route description middleware", () => { - const routes = getRouteDescriptions(); - - routes.forEach((route, pathAndMethod) => { - const [path, method] = pathAndMethod.split("|"); - - test(`${method.toUpperCase()} ${path}`, async (done) => { - if (!route.test) { - console.log(`${(route as any).file}\nrouter.${method} is missing the test property`); - return done(); - } - const urlPath = - path.replace(":id", user.id).replace(":guild_id", guild.id).replace(":channel_id", channel.id) || route.test?.path; - let validate: any; - if (route.test.body) { - validate = ajv.getSchema(route.test.body); - if (!validate) return done(new Error(`Response schema ${route.test.body} not found`)); - } - - let body = ""; - let eventEmitted = Promise.resolve(); - - if (route.test.event) { - if (!Array.isArray(route.test.event)) route.test.event = [route.test.event]; - - eventEmitted = new Promise((resolve, reject) => { - const timeout = setTimeout(() => reject, 1000); - const received = []; - - events.on("event", (event: Event) => { - if (!route.test.event.includes(event.event)) return; - - received.push(event.event); - if (received.length === route.test.event.length) resolve(); - }); - }); - } - - try { - const response = await fetch(`http://localhost:3001/api${urlPath}`, { - method: method.toUpperCase(), - body: JSON.stringify(route.test.body), - headers: { ...route.test.headers, authorization: token } - }); - - body = await response.text(); - - expect(response.status, body).toBe(route.test.response.status || 200); - - // TODO: check headers - // TODO: expect event - - if (validate) { - body = JSON.parse(body); - const valid = validate(body); - if (!valid) return done(validate.errors); - } - } catch (error) { - return done(error); - } - - try { - await eventEmitted; - } catch (error) { - return done(new Error(`Event ${route.test.event} was not emitted`)); - } - - return done(); - }); - }); -}); diff --git a/api/tests/routes/auth/login.test.js b/api/tests/routes/auth/login.test.js deleted file mode 100644 index d4b52444..00000000 --- a/api/tests/routes/auth/login.test.js +++ /dev/null @@ -1,33 +0,0 @@ -const supertest = require("supertest"); -const request = supertest("http://localhost:3001"); - -describe("/api/auth/login", () => { - describe("POST", () => { - test("without body", async () => { - const response = await request.post("/api/auth/login").send({}); - expect(response.statusCode).toBe(400); - }); - test("with body", async () => { - const user = { - login: "fortnitefortnite@gmail.com", - password: "verysecurepassword" - }; - - await request.post("/api/auth/register").send({ - fingerprint: "805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", - email: user.login, - username: user.login.split("@")[0], - password: user.password, - invite: null, - consent: true, - date_of_birth: "2000-04-04", - gift_code_sku_id: null, - captcha_key: null - }); - - const response = await request.post("/api/auth/login").send(user); - - expect(response.statusCode).toBe(200); - }); - }); -}); diff --git a/api/tests/routes/auth/register.test.js b/api/tests/routes/auth/register.test.js deleted file mode 100644 index 5d7b4eaa..00000000 --- a/api/tests/routes/auth/register.test.js +++ /dev/null @@ -1,27 +0,0 @@ -const supertest = require("supertest"); -const request = supertest("http://localhost:3001"); - -describe("/api/auth/register", () => { - describe("POST", () => { - test("without body", async () => { - const response = await request.post("/api/auth/register").send({}); - - expect(response.statusCode).toBe(400); - }); - test("with body", async () => { - const response = await request.post("/api/auth/register").send({ - fingerprint: "805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", - email: "qo8etzvaf@gmail.com", - username: "qp39gr98", - password: "wtp9gep9gw", - invite: null, - consent: true, - date_of_birth: "2000-04-04", - gift_code_sku_id: null, - captcha_key: null - }); - - expect(response.statusCode).toBe(200); - }); - }); -}); diff --git a/api/tests/routes/ping.test.js b/api/tests/routes/ping.test.js deleted file mode 100644 index 6fa4b160..00000000 --- a/api/tests/routes/ping.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const supertest = require("supertest"); -const request = supertest("http://localhost:3001"); - -describe("/ping", () => { - describe("GET", () => { - test("should return 200 and pong", async () => { - let response = await request.get("/api/ping"); - expect(response.text).toBe("pong"); - expect(response.statusCode).toBe(200); - }); - }); -}); diff --git a/api/tsconfig.json b/api/tsconfig.json deleted file mode 100644 index 80fca16d..00000000 --- a/api/tsconfig.json +++ /dev/null @@ -1,75 +0,0 @@ -{ - "exclude": ["node_modules"], - "include": ["src/**/*.ts"], - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Basic Options */ - "incremental": false /* Enable incremental compilation */, - "target": "ESNext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - "lib": ["ES2021"] /* Specify library files to be included in the compilation. */, - "allowJs": true /* Allow javascript files to be compiled. */, - "checkJs": true /* Report errors in .js files. */, - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - "declaration": true /* Generates corresponding '.d.ts' file. */, - "declarationMap": false /* Generates a sourcemap for each corresponding '.d.ts' file. */, - "sourceMap": true /* Generates corresponding '.map' file. */, - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./dist/" /* Redirect output structure to the directory. */, - "rootDir": "./src/" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true /* Enable all strict type-checking options. */, - "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, - "strictNullChecks": true /* Enable strict null checks. */, - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */, - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - - /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - "types": ["node"] /* Type declaration files to be included in compilation. */, - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "skipLibCheck": true /* Skip type checking of declaration files. */, - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, - "baseUrl": ".", - "paths": { - "@fosscord/api": ["src/index"] - }, - "plugins": [{ "transform": "@ovos-media/ts-transform-paths" }], - "experimentalDecorators": true - } -} diff --git a/assets/checkLocale.js b/assets/checkLocale.js new file mode 100644 index 00000000..016d66c8 --- /dev/null +++ b/assets/checkLocale.js @@ -0,0 +1,47 @@ + const localStorage = window.localStorage; + // TODO: remote auth + // window.GLOBAL_ENV.REMOTE_AUTH_ENDPOINT = window.GLOBAL_ENV.GATEWAY_ENDPOINT.replace(/wss?:/, ""); + localStorage.setItem("gatewayURL", window.GLOBAL_ENV.GATEWAY_ENDPOINT); + localStorage.setItem( + "DeveloperOptionsStore", + `{"trace":false,"canary":false,"logGatewayEvents":true,"logOverlayEvents":true,"logAnalyticsEvents":true,"sourceMapsEnabled":false,"axeEnabled":false}` + ); + + const supportedLocales = [ + "bg", + "cs", + "da", + "de", + "el", + "en-GB", + "es-ES", + "fi", + "fr", + "hi", + "hr", + "hu", + "it", + "ja", + "ko", + "lt", + "nl", + "no", + "pl", + "pt-BR", + "ro", + "ru", + "sv-SE", + "th", + "tr", + "uk", + "vi", + "zh-CN", + "zh-TW" + ]; + + const settings = JSON.parse(localStorage.getItem("UserSettingsStore")); + if (settings && !supportedLocales.includes(settings.locale)) { + // fix client locale wrong and client not loading at all + settings.locale = "en-US"; + localStorage.setItem("UserSettingsStore", JSON.stringify(settings)); + } \ No newline at end of file diff --git a/assets/developers.html b/assets/developers.html new file mode 100644 index 00000000..87595e77 --- /dev/null +++ b/assets/developers.html @@ -0,0 +1,44 @@ + + + + + + + + + + Discord Test Client Developer Portal + + + + +
+ + + + + + + \ No newline at end of file diff --git a/assets/dff87c953f43b561d71fbcfe8a93a79a.png b/assets/dff87c953f43b561d71fbcfe8a93a79a.png new file mode 100644 index 00000000..e69de29b diff --git a/assets/endpoints.json b/assets/endpoints.json new file mode 100644 index 00000000..8b0514ce --- /dev/null +++ b/assets/endpoints.json @@ -0,0 +1,115 @@ +{ + "USER_CHANNELS": "/users/@me/channels", + "USER_ACTIVITY_STATISTICS": "/users/@me/activities/statistics/applications", + "ACTIVITIES": "/activities", + "LOBBIES": "/lobbies", + "LOBBY_SEARCH": "/lobbies/search", + "NETWORKING_TOKEN": "/networking/token", + "USER_GAMES_NOTIFICATIONS": "/users/@me/settings/game-notifications", + "USER_GAMES_NOTIFICATIONS_OVERRIDES": "/users/@me/settings/game-notifications/overrides", + "UNVERIFIED_APPLICATIONS": "/unverified-applications", + "UNVERIFIED_APPLICATIONS_ICONS": "/unverified-applications/icons", + "BULK_ACK": "/read-states/ack-bulk", + "GUILDS": "/guilds", + "CHANNELS": "/channels", + "TUTORIAL_INDICATORS": "/tutorial/indicators", + "TUTORIAL_INDICATORS_SUPPRESS": "/tutorial/indicators/suppress", + "USERS": "/users", + "ME": "/users/@me", + "DELETE_ACCOUNT": "/users/@me/delete", + "DISABLE_ACCOUNT": "/users/@me/disable", + "DEVICES": "/users/@me/devices", + "SETTINGS": "/users/@me/settings", + "SETTINGS_CONSENT": "/users/@me/consent", + "PHONE": "/users/@me/phone", + "VERIFY_PHONE": "/users/@me/phone/verify", + "VERIFY_PHONE_NEW": "/phone-verifications/verify", + "RESEND_PHONE": "/phone-verifications/resend", + "CONNECTIONS": "/users/@me/connections", + "CONNECTION_SYNC_CONTACTS": "/users/@me/connections/contacts/@me/external-friend-list-entries", + "NOTES": "/users/@me/notes", + "MENTIONS": "/users/@me/mentions", + "CAPTCHA": "/users/@me/captcha/verify", + "EXPERIMENTS": "/experiments", + "LOGIN": "/auth/login", + "LOGIN_MFA": "/auth/mfa/totp", + "LOGIN_SMS": "/auth/mfa/sms", + "LOGIN_SMS_SEND": "/auth/mfa/sms/send", + "REMOTE_AUTH_INITIALIZE": "/users/@me/remote-auth", + "REMOTE_AUTH_CANCEL": "/users/@me/remote-auth/cancel", + "REMOTE_AUTH_FINISH": "/users/@me/remote-auth/finish", + "LOGOUT": "/auth/logout", + "REGISTER": "/auth/register", + "REGISTER_PHONE": "/auth/register/phone", + "TRACK": "/science", + "SSO": "/sso", + "VERIFY": "/auth/verify", + "AUTHORIZE_IP": "/auth/authorize-ip", + "VERIFY_RESEND": "/auth/verify/resend", + "FORGOT_PASSWORD": "/auth/forgot", + "RESET_PASSWORD": "/auth/reset", + "ICE": "/voice/ice", + "REPORT": "/report", + "REPORT_V2": "/reports", + "REPORT_OPTIONS": "/report/options", + "INTEGRATIONS": "/integrations", + "GATEWAY": "/gateway", + "APPLICATIONS_DETECTABLE": "/applications/detectable", + "OAUTH2_AUTHORIZE": "/oauth2/authorize", + "OAUTH2_AUTHORIZE_WEBHOOK_CHANNELS": "/oauth2/authorize/webhook-channels", + "OAUTH2_CURRENT_AUTH": "/oauth2/@me", + "OAUTH2_TOKENS": "/oauth2/tokens", + "OAUTH2_WHITELIST_ACCEPT": "/oauth2/whitelist/accept", + "MFA_TOTP_ENABLE": "/users/@me/mfa/totp/enable", + "MFA_TOTP_DISABLE": "/users/@me/mfa/totp/disable", + "MFA_SMS_ENABLE": "/users/@me/mfa/sms/enable", + "MFA_SMS_DISABLE": "/users/@me/mfa/sms/disable", + "MFA_CODES": "/users/@me/mfa/codes", + "DISABLE_EMAIL_NOTIFICATIONS": "/users/disable-email-notifications", + "GUILD_PREMIUM_SUBSCRIPTION_COOLDOWN": "/users/@me/guilds/premium/subscriptions/cooldown", + "USER_GUILD_PREMIUM_SUBSCRIPTIONS": "/users/@me/guilds/premium/subscriptions", + "USER_PREMIUM_GUILD_SUBSCRIPTION_SLOTS": "/users/@me/guilds/premium/subscription-slots", + "BILLING_STRIPE_SETUP_INTENT_SECRET": "/users/@me/billing/stripe/setup-intents", + "BILLING_PAYMENT_SOURCES": "/users/@me/billing/payment-sources", + "BILLING_PAYMENTS": "/users/@me/billing/payments", + "BILLING_BRAINTREE_POPUP_BRIDGE": "/billing/braintree/popup-bridge", + "BILLING_BRAINTREE_POPUP_BRIDGE_CALLBACK": "/billing/braintree/popup-bridge/callback", + "BILLING_SUBSCRIPTIONS": "/users/@me/billing/subscriptions", + "BILLING_APPLY_APPLE_RECEIPT": "/billing/apple/apply-receipt", + "BILLING_INVOICE_PREVIEW": "/users/@me/billing/invoices/preview", + "USER_AGREEMENTS": "/users/@me/agreements", + "HANDOFF": "/auth/handoff", + "HANDOFF_EXCHANGE": "/auth/handoff/exchange", + "LIBRARY": "/users/@me/library", + "AUTH_CONSENT_REQUIRED": "/auth/consent-required", + "USER_HARVEST": "/users/@me/harvest", + "APPLICATION_BRANCHES": "/branches", + "APPLICATIONS_PUBLIC": "/applications/public", + "APPLICATIONS_TRENDING": "/applications/trending/global", + "STORE_PUBLISHED_LISTINGS_APPLICATIONS": "/store/published-listings/applications", + "STORE_PUBLISHED_LISTINGS_SKUS": "/store/published-listings/skus", + "ENTITLEMENTS_GIFTABLE": "/users/@me/entitlements/gifts", + "PROMOTIONS": "/promotions", + "PROMOTION_ACK": "/promotions/ack", + "HYPESQUAD_ONLINE": "/hypesquad/online", + "GIFS_SEARCH": "/gifs/search", + "GIFS_TRENDING": "/gifs/trending", + "GIFS_TRENDING_GIFS": "/gifs/trending-gifs", + "GIFS_SELECT": "/gifs/select", + "GIFS_SUGGEST": "/gifs/suggest", + "GIFS_TRENDING_SEARCH": "/gifs/trending-search", + "USER_GIFT_CODE_CREATE": "/users/@me/entitlements/gift-codes", + "USER_GIFT_CODES": "/users/@me/entitlements/gift-codes", + "GUILD_DISCOVERY": "/discoverable-guilds", + "GUILD_DISCOVERY_CATEGORIES": "/discovery/categories", + "GUILD_DISCOVERY_VALID_TERM": "/discovery/valid-term", + "USER_AFFINITIES": "/users/@me/affinities/users", + "GUILD_AFFINITIES": "/users/@me/affinities/guilds", + "XBOX_GAME_PASS_PROMOTION": "/promotions/xbox-game-pass", + "XBOX_GAME_PASS_PROMOTION_REDEEM": "/promotions/xbox-game-pass/redeem", + "FUNIMATION_PROMOTION": "/promotions/funimation", + "PARTNERS_CONNECTIONS": "/partners/connections", + "PARTNERS_APPLY": "/partners/apply", + "USER_STICKER_PACKS": "/users/@me/sticker-packs", + "INTERACTIONS": "/interactions" +} diff --git a/assets/features.json b/assets/features.json new file mode 100644 index 00000000..05a858a0 --- /dev/null +++ b/assets/features.json @@ -0,0 +1,26 @@ +[ + "ANIMATED_ICON", + "BANNER", + "COMMERCE", + "COMMUNITY", + "DISCOVERABLE", + "DISCOVERABLE_DISABLED", + "ENABLED_DISCOVERABLE_BEFORE", + "HUB", + "INVITE_SPLASH", + "MONETIZATION_ENABLED", + "MORE_EMOJI", + "MORE_STICKERS", + "NEWS", + "PARTNERED", + "PREVIEW_ENABLED", + "PRIVATE_THREADS", + "SEVEN_DAY_THREAD_ARCHIVE", + "THREE_DAY_THREAD_ARCHIVE", + "THREADS_ENABLED", + "TICKETED_EVENTS_ENABLED", + "VANITY_URL", + "VERIFIED", + "VIP_REGIONS", + "WELCOME_SCREEN_ENABLED" +] diff --git a/assets/fosscord-login.css b/assets/fosscord-login.css new file mode 100644 index 00000000..d507c545 --- /dev/null +++ b/assets/fosscord-login.css @@ -0,0 +1,68 @@ +/* replace tos acceptance popup */ +#app-mount > div:nth-child(7) > div > div > div.tooltipContent-bqVLWK { + visibility: hidden; +} +#app-mount > div:nth-child(7) > div > div > div.tooltipContent-bqVLWK::after{ + visibility: visible; + display: block; + content: "You need to agree to this instance's rules to continue"; + margin-top: -32px; +} +/* replace login header */ +#app-mount > div.app-1q1i1E > div > div > div > div > form > div > div > div.mainLoginContainer-1ddwnR > h3 { + visibility: hidden; +} +h3.title-jXR8lp.marginBottom8-AtZOdT.base-1x0h_U.size24-RIRrxO::after { + margin-top: -32px; + content: "Welcome to Fosscord!"; + visibility: visible; + display: block; +} + +/* Logo in top left when bg removed */ +#app-mount > div.app-1q1i1E > div > a { + /* replace me: original dimensions: 130x36 */ + background: url(https://raw.githubusercontent.com/fosscord/fosscord/master/assets-rebrand/svg/Fosscord-Wordmark-Gradient.svg); + width: 130px; + height: 23px; + background-size: contain; +} + +/* replace TOS text */ + +#app-mount + > div.app-1q1i1E + > div + > div + > div + > form + > div + > div + > div.flex-1xMQg5.flex-1O1GKY.horizontal-1ae9ci.horizontal-2EEEnY.flex-1O1GKY.directionRow-3v3tfG.justifyStart-2NDFzi.alignCenter-1dQNNs.noWrap-3jynv6.marginTop20-3TxNs6 + > label + > div.label-cywgfr.labelClickable-11AuB8.labelForward-1wfipV + > * { + visibility: hidden; +} + +#app-mount + > div.app-1q1i1E + > div + > div + > div + > form + > div + > div + > div.flex-1xMQg5.flex-1O1GKY.horizontal-1ae9ci.horizontal-2EEEnY.flex-1O1GKY.directionRow-3v3tfG.justifyStart-2NDFzi.alignCenter-1dQNNs.noWrap-3jynv6.marginTop20-3TxNs6 + > label + > div.label-cywgfr.labelClickable-11AuB8.labelForward-1wfipV::after { + visibility: visible; + content: "I have read and agree with the rules set by this instance."; + display: block; + margin-top: -16px; +} + +/* shrink login box to same size as register */ +.authBoxExpanded-2jqaBe { + width: 480px !important; +} diff --git a/assets/fosscord.css b/assets/fosscord.css new file mode 100644 index 00000000..6078fdeb --- /dev/null +++ b/assets/fosscord.css @@ -0,0 +1,46 @@ + +/* loading spinner */ +#app-mount > div.app-1q1i1E > div.container-16j22k.fixClipping-3qAKRb > div.content-1-zrf2 > video { + filter: opacity(1); + background: url("http://www.clipartbest.com/cliparts/7ca/6Rr/7ca6RrLAi.gif"); + background-size: contain; + /* width: 64px; + height: 64px; */ + padding-bottom: 64px; + background-repeat: no-repeat; +} + +/* home button icon */ +#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > nav > ul > div.scroller-1Bvpku.none-2Eo-qx.scrollerBase-289Jih > div.tutorialContainer-2sGCg9 > div > div.listItemWrapper-KhRmzM > div > svg > foreignObject > div > div +{ + background-image: url(https://raw.githubusercontent.com/fosscord/fosscord/master/assets-rebrand/svg/Fosscord-Icon-Rounded-Subtract.svg); + background-size: contain; + border-radius: 50%; +} + +#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > nav > ul > div.scroller-1Bvpku.none-2Eo-qx.scrollerBase-289Jih > div.tutorialContainer-2sGCg9 > div > div.listItemWrapper-KhRmzM > div > svg > foreignObject > div > div, #app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > nav > ul > div.scroller-1Bvpku.none-2Eo-qx.scrollerBase-289Jih > div.tutorialContainer-2sGCg9 > div > div.listItemWrapper-KhRmzM > div > svg > foreignObject > div > div:hover { + background-color: white; +} +/* Login QR */ +#app-mount > div.app-1q1i1E > div > div > div > div > form > div > div > div.transitionGroup-aR7y1d.qrLogin-1AOZMt, +#app-mount > div.app-1q1i1E > div > div > div > div > form > div > div > div.verticalSeparator-3huAjp, +/* Remove login bg */ +#app-mount > div.app-1q1i1E > div > svg, +/* Download bar */ +#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > div > div.notice-3bPHh-.colorDefault-22HBa0, +/* Connection problem links */ +#app-mount > div.app-1q1i1E > div.container-16j22k.fixClipping-3qAKRb > div.problems-3mgf6w.slideIn-sCvzGz > div:nth-child(2), +/* Downloads button */ +#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > nav > ul > div.scroller-1Bvpku.none-2Eo-qx.scrollerBase-289Jih > div:nth-child(7) > div.listItemWrapper-KhRmzM > div > svg > foreignObject > div, +#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > nav > ul > div.scroller-1Bvpku.none-2Eo-qx.scrollerBase-289Jih > div:nth-child(6) > div, +/* help button */ +#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > div > div.content-98HsJk > div.chat-3bRxxu > section > div.toolbar-1t6TWx > a, +/* download button start of guild */ +#chat-messages-899316648933185083 > div > div > div:nth-child(5), +/* Thread permissions etc popups */ +#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > div > div.content-98HsJk > div.sidebar-2K8pFh.hasNotice-1XRy4h > nav > div.container-3O_wAf, +/* home button icon */ +#app-mount > div.app-1q1i1E > div > div.layers-3iHuyZ.layers-3q14ss > div > div > nav > ul > div.scroller-1Bvpku.none-2Eo-qx.scrollerBase-289Jih > div.tutorialContainer-2sGCg9 > div > div.listItemWrapper-KhRmzM > div > svg > foreignObject > div > div > svg +{ + display: none; +} \ No newline at end of file diff --git a/assets/index.html b/assets/index.html new file mode 100644 index 00000000..64a2bdbf --- /dev/null +++ b/assets/index.html @@ -0,0 +1,84 @@ + + + + + + + Discord Test Client + + + + + + + + +
+ + + + + + + + + + \ No newline at end of file diff --git a/assets/inline-plugins/autoRegister.js b/assets/inline-plugins/autoRegister.js new file mode 100644 index 00000000..7bca39f8 --- /dev/null +++ b/assets/inline-plugins/autoRegister.js @@ -0,0 +1,62 @@ +// Auto register guest account: +const prefix = [ + "mysterious", + "adventurous", + "courageous", + "precious", + "cynical", + "flamer ", + "despicable", + "suspicious", + "gorgeous", + "impeccable", + "lovely", + "stunning", + "keyed", + "phoned", + "glorious", + "amazing", + "strange", + "arcane" +]; +const suffix = [ + "Anonymous", + "Boy", + "Lurker", + "Keyhitter", + "User", + "Enjoyer", + "Hunk", + "Coolstar", + "Wrestling", + "TylerTheCreator", + "Ad", + "Gamer", + "Games", + "Programmer" +]; + +Array.prototype.random = function () { + return this[Math.floor(Math.random() * this.length)]; +}; + +function _generateName() { + return `${prefix.random()}${suffix.random()}`; +} + +let token = JSON.parse(localStorage.getItem("token")); +if (!token && location.pathname !== "/login" && location.pathname !== "/register") { + fetch(`${window.GLOBAL_ENV.API_ENDPOINT}/auth/register`, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify({ username: `${_generateName()}`, consent: true }) //${Date.now().toString().slice(-4)} + }) + .then((x) => x.json()) + .then((x) => { + localStorage.setItem("token", `"${x.token}"`); + if (!window.localStorage) { + // client already loaded -> need to reload to apply the newly registered user token + location.reload(); + } + }); +} diff --git a/assets/inline-plugins/fosscord-login.js b/assets/inline-plugins/fosscord-login.js new file mode 100644 index 00000000..9191dad4 --- /dev/null +++ b/assets/inline-plugins/fosscord-login.js @@ -0,0 +1,12 @@ +// Remove `` from header when we're not accessing `/login` or `/register` +// fosscord-login.css replaces discord's TOS tooltip with something more fitting for fosscord, which when included in the main app, causes other tooltips +// to be affected, which is potentially unwanted. +// +// This script removes fosscord-login.css when a user reloads the page. From testing, it appears fosscord already properly removes +// fosscord-login.css after login is successful, but not if you reload the page after logging in. This script is to remove fosscord-login.css in +// that specific case. + +let token = JSON.parse(localStorage.getItem("token")); +if (!token && location.pathname !== "/login" && location.pathname !== "/register") { + document.getElementById("logincss").remove(); +} diff --git a/assets/locales/af/auth.json b/assets/locales/af/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/af/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/af/common.json b/assets/locales/af/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/af/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/ar/auth.json b/assets/locales/ar/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/ar/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/ar/common.json b/assets/locales/ar/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/ar/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/arn/auth.json b/assets/locales/arn/auth.json new file mode 100644 index 00000000..e19547a0 --- /dev/null +++ b/assets/locales/arn/auth.json @@ -0,0 +1,16 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled" + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/arn/common.json b/assets/locales/arn/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/arn/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/az/auth.json b/assets/locales/az/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/az/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/az/common.json b/assets/locales/az/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/az/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/be/auth.json b/assets/locales/be/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/be/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/be/common.json b/assets/locales/be/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/be/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/ber/auth.json b/assets/locales/ber/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/ber/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/ber/common.json b/assets/locales/ber/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/ber/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/bg/auth.json b/assets/locales/bg/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/bg/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/bg/common.json b/assets/locales/bg/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/bg/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/bo/auth.json b/assets/locales/bo/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/bo/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/bo/common.json b/assets/locales/bo/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/bo/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/ca/auth.json b/assets/locales/ca/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/ca/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/ca/common.json b/assets/locales/ca/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/ca/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/cs/auth.json b/assets/locales/cs/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/cs/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/cs/common.json b/assets/locales/cs/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/cs/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/da/auth.json b/assets/locales/da/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/da/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/da/common.json b/assets/locales/da/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/da/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/de/auth.json b/assets/locales/de/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/de/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/de/common.json b/assets/locales/de/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/de/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/el/auth.json b/assets/locales/el/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/el/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/el/common.json b/assets/locales/el/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/el/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/en/auth.json b/assets/locales/en/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/en/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/en/common.json b/assets/locales/en/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/en/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/eo/auth.json b/assets/locales/eo/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/eo/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/eo/common.json b/assets/locales/eo/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/eo/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/es/auth.json b/assets/locales/es/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/es/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/es/common.json b/assets/locales/es/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/es/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/eu/auth.json b/assets/locales/eu/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/eu/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/eu/common.json b/assets/locales/eu/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/eu/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/fa/auth.json b/assets/locales/fa/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/fa/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/fa/common.json b/assets/locales/fa/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/fa/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/fi/auth.json b/assets/locales/fi/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/fi/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/fi/common.json b/assets/locales/fi/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/fi/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/fr/auth.json b/assets/locales/fr/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/fr/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/fr/common.json b/assets/locales/fr/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/fr/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/gn/auth.json b/assets/locales/gn/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/gn/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/gn/common.json b/assets/locales/gn/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/gn/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/ha/auth.json b/assets/locales/ha/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/ha/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/ha/common.json b/assets/locales/ha/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/ha/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/he/auth.json b/assets/locales/he/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/he/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/he/common.json b/assets/locales/he/common.json new file mode 100644 index 00000000..9e72e941 --- /dev/null +++ b/assets/locales/he/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "שדה זה חייב להיות אובייקט", + "BASE_TYPE_ARRAY": "שדה זה חייב להיות מערך", + "UNKOWN_FIELD": "מפתח לא ידוע: {{key}}", + "BASE_TYPE_CONSTANT": "שדה זה להיות {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "כתובת דואר אלקטרוני לא חוקית", + "DATE_TYPE_PARSE": "לא ניתן לנתח {{date}}. צריך להיות ISO8601", + "BASE_TYPE_BAD_LENGTH": "האורך חייב להיות בין {{length}}" + } +} diff --git a/assets/locales/hi/auth.json b/assets/locales/hi/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/hi/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/hi/common.json b/assets/locales/hi/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/hi/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/hr/auth.json b/assets/locales/hr/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/hr/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/hr/common.json b/assets/locales/hr/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/hr/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/hu/auth.json b/assets/locales/hu/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/hu/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/hu/common.json b/assets/locales/hu/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/hu/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/id/auth.json b/assets/locales/id/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/id/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/id/common.json b/assets/locales/id/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/id/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/it/auth.json b/assets/locales/it/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/it/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/it/common.json b/assets/locales/it/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/it/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/ja/auth.json b/assets/locales/ja/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/ja/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/ja/common.json b/assets/locales/ja/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/ja/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/jv/auth.json b/assets/locales/jv/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/jv/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/jv/common.json b/assets/locales/jv/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/jv/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/kk/auth.json b/assets/locales/kk/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/kk/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/kk/common.json b/assets/locales/kk/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/kk/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/ko/auth.json b/assets/locales/ko/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/ko/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/ko/common.json b/assets/locales/ko/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/ko/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/ku/auth.json b/assets/locales/ku/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/ku/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/ku/common.json b/assets/locales/ku/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/ku/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/la/auth.json b/assets/locales/la/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/la/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/la/common.json b/assets/locales/la/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/la/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/lt/auth.json b/assets/locales/lt/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/lt/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/lt/common.json b/assets/locales/lt/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/lt/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/mi/auth.json b/assets/locales/mi/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/mi/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/mi/common.json b/assets/locales/mi/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/mi/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/mn/auth.json b/assets/locales/mn/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/mn/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/mn/common.json b/assets/locales/mn/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/mn/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/mr/auth.json b/assets/locales/mr/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/mr/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/mr/common.json b/assets/locales/mr/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/mr/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/nl/auth.json b/assets/locales/nl/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/nl/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/nl/common.json b/assets/locales/nl/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/nl/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/nn/auth.json b/assets/locales/nn/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/nn/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/nn/common.json b/assets/locales/nn/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/nn/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/no/auth.json b/assets/locales/no/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/no/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/no/common.json b/assets/locales/no/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/no/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/pa/auth.json b/assets/locales/pa/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/pa/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/pa/common.json b/assets/locales/pa/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/pa/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/pl/auth.json b/assets/locales/pl/auth.json new file mode 100644 index 00000000..ff17f237 --- /dev/null +++ b/assets/locales/pl/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-mail lub numer telefonu nie został znaleziony", + "INVALID_PASSWORD": "Nieprawidłowe hasło", + "ACCOUNT_DISABLED": "To konto jest nieaktywne", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "Rejestracja nowych użytkowników jest wyłączona", + "INVITE_ONLY": "Aby się zarejestrować, musisz zostać zaproszony", + "EMAIL_INVALID": "Nieprawidłowy E-mail", + "EMAIL_ALREADY_REGISTERED": "E-mail jest już zarejestrowany", + "DATE_OF_BIRTH_UNDERAGE": "Musisz mieć {{years}} lat lub więcej", + "CONSENT_REQUIRED": "Musisz zaakceptować Regulamin i Politykę Prywatności.", + "USERNAME_TOO_MANY_USERS": "Zbyt wielu użytkowników ma tę nazwę, spróbuj inną" + } +} diff --git a/assets/locales/pl/common.json b/assets/locales/pl/common.json new file mode 100644 index 00000000..98c0906b --- /dev/null +++ b/assets/locales/pl/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "To pole jest wymagane", + "BASE_TYPE_STRING": "To pole musi być ciągiem znaków", + "BASE_TYPE_NUMBER": "To pole musi być liczbą", + "BASE_TYPE_BIGINT": "To pole musi być bigint", + "BASE_TYPE_BOOLEAN": "To pole musi być wartością logiczną", + "BASE_TYPE_CHOICES": "To pole musi być jednym z ({{types}})", + "BASE_TYPE_CLASS": "To pole musi być instancją {{type}}", + "BASE_TYPE_OBJECT": "To pole musi być obiektem", + "BASE_TYPE_ARRAY": "To pole musi być tablicą", + "UNKOWN_FIELD": "Nieznany klucz: {{key}}", + "BASE_TYPE_CONSTANT": "To pole musi wynosić {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Źle sformułowany adres e-mail", + "DATE_TYPE_PARSE": "Nie można przetworzyć {{date}}. Powinno być ISO8601", + "BASE_TYPE_BAD_LENGTH": "Długość musi wynosić pomiędzy {{length}}" + } +} diff --git a/assets/locales/pt/auth.json b/assets/locales/pt/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/pt/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/pt/common.json b/assets/locales/pt/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/pt/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/qu/auth.json b/assets/locales/qu/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/qu/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/qu/common.json b/assets/locales/qu/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/qu/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/ro/auth.json b/assets/locales/ro/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/ro/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/ro/common.json b/assets/locales/ro/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/ro/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/ru/auth.json b/assets/locales/ru/auth.json new file mode 100644 index 00000000..be7ac845 --- /dev/null +++ b/assets/locales/ru/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "Данный адрес электронной почты или телефона не найден", + "INVALID_PASSWORD": "Неверный пароль", + "ACCOUNT_DISABLED": "Этот аккаунт отключён", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "Регистрация новых пользователей отключена", + "INVITE_ONLY": "Вы должны быть приглашены для регистрации", + "EMAIL_INVALID": "Неверный адрес электронной почты", + "EMAIL_ALREADY_REGISTERED": "Данный адрес электронной почты уже зарегистрирован", + "DATE_OF_BIRTH_UNDERAGE": "Вам должно быть больше {{years}} лет", + "CONSENT_REQUIRED": "Вы должны согласиться с Условиями использования и Политикой конфиденциальности.", + "USERNAME_TOO_MANY_USERS": "Слишком много пользователей имеют это имя пользователя, пожалуйста, попробуйте другое" + } +} diff --git a/assets/locales/ru/common.json b/assets/locales/ru/common.json new file mode 100644 index 00000000..35a74cfa --- /dev/null +++ b/assets/locales/ru/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "Это поле является обязательным", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "Это поле должно быть одним из ({{types}})", + "BASE_TYPE_CLASS": "Это поле должно быть экземпляром {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "Это поле должно быть {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Неправильный формат адреса электронной почты", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Длина должна быть между {{length}} в длину" + } +} diff --git a/assets/locales/sh/auth.json b/assets/locales/sh/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/sh/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/sh/common.json b/assets/locales/sh/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/sh/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/si/auth.json b/assets/locales/si/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/si/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/si/common.json b/assets/locales/si/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/si/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/sk/auth.json b/assets/locales/sk/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/sk/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/sk/common.json b/assets/locales/sk/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/sk/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/sr/auth.json b/assets/locales/sr/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/sr/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/sr/common.json b/assets/locales/sr/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/sr/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/sv/auth.json b/assets/locales/sv/auth.json new file mode 100644 index 00000000..573e685d --- /dev/null +++ b/assets/locales/sv/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-post eller telefon hittades inte", + "INVALID_PASSWORD": "Ogiltigt lösenord", + "ACCOUNT_DISABLED": "Detta konto är inaktiverat", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "Registrering av nya användare är inaktiverat", + "INVITE_ONLY": "Du måste vara inbjuden för att registrera dig", + "EMAIL_INVALID": "Ogiltig e-post", + "EMAIL_ALREADY_REGISTERED": "E-postadressen är redan registrerad", + "DATE_OF_BIRTH_UNDERAGE": "Du måste vara {{years}} år eller äldre", + "CONSENT_REQUIRED": "Du måste godkänna användarvillkoren och sekretesspolicyn.", + "USERNAME_TOO_MANY_USERS": "För många användare har detta användarnamn, försök med ett annat" + } +} diff --git a/assets/locales/sv/common.json b/assets/locales/sv/common.json new file mode 100644 index 00000000..56c02a64 --- /dev/null +++ b/assets/locales/sv/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "Detta fältet krävs", + "BASE_TYPE_STRING": "Detta fält måste vara en sträng", + "BASE_TYPE_NUMBER": "Detta fält måste vara ett nummer", + "BASE_TYPE_BIGINT": "Detta fält måste vara av typen bigint", + "BASE_TYPE_BOOLEAN": "Detta fält måste vara booleskt", + "BASE_TYPE_CHOICES": "Detta fält måste vara av typen av ett av följande ({{types}})", + "BASE_TYPE_CLASS": "Det här fältet måste vara en instans av {{type}}", + "BASE_TYPE_OBJECT": "Detta fält måste vara ett objekt", + "BASE_TYPE_ARRAY": "Detta fält måste vara en array", + "UNKOWN_FIELD": "Okänd nyckel: {{key}}", + "BASE_TYPE_CONSTANT": "Det här fältet måste vara {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "E-postadressen har inte korrekt format", + "DATE_TYPE_PARSE": "Kunde inte tolka {{date}}. Bör vara ISO8601", + "BASE_TYPE_BAD_LENGTH": "Måste vara mellan {{length}} i längd" + } +} diff --git a/assets/locales/sw/auth.json b/assets/locales/sw/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/sw/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/sw/common.json b/assets/locales/sw/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/sw/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/ta/auth.json b/assets/locales/ta/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/ta/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/ta/common.json b/assets/locales/ta/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/ta/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/te/auth.json b/assets/locales/te/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/te/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/te/common.json b/assets/locales/te/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/te/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/tl/auth.json b/assets/locales/tl/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/tl/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/tl/common.json b/assets/locales/tl/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/tl/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/tr/auth.json b/assets/locales/tr/auth.json new file mode 100644 index 00000000..670f07e3 --- /dev/null +++ b/assets/locales/tr/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-posta veya Telefon Numarası bulunamadı", + "INVALID_PASSWORD": "Geçersiz Şifre", + "ACCOUNT_DISABLED": "Bu hesap devre dışı bırakıldı", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "Yeni kullanıcı alımı devre dışı bırakıldı", + "INVITE_ONLY": "Kayıt olabilmek için davet edilmelisin", + "EMAIL_INVALID": "Geçersiz e-posta", + "EMAIL_ALREADY_REGISTERED": "Bu e-posta zaten kayıtlı", + "DATE_OF_BIRTH_UNDERAGE": "{{years}} yaşında veya daha büyük olmalısın", + "CONSENT_REQUIRED": "Hizmet Koşulları ve Gizlilik Politikasını kabul etmelisin.", + "USERNAME_TOO_MANY_USERS": "Çok fazla kullanıcı bu kullanıcı adını kullanıyor, lütfen başka bir kullanıcı adı dene" + } +} diff --git a/assets/locales/tr/common.json b/assets/locales/tr/common.json new file mode 100644 index 00000000..1f99c1d5 --- /dev/null +++ b/assets/locales/tr/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "Bu alan gereklidir", + "BASE_TYPE_STRING": "Bu alan bir metin (string) olmalı", + "BASE_TYPE_NUMBER": "Bu alan bir sayı olmalı", + "BASE_TYPE_BIGINT": "Bu alan uzun tamsayı değeri olmalıdır", + "BASE_TYPE_BOOLEAN": "Bu alan doğru/yanlış olmalıdır", + "BASE_TYPE_CHOICES": "Bu alan ({{types}}) tiplerinden biri olmalı", + "BASE_TYPE_CLASS": "Bu alan {{type}} türünden olmalı", + "BASE_TYPE_OBJECT": "Bu alan bir nesne olmalı", + "BASE_TYPE_ARRAY": "Bu alan bir dizi olmalı", + "UNKOWN_FIELD": "Bilinmeyen anahtar: {{key}}", + "BASE_TYPE_CONSTANT": "Bu alan {{value}} olmalı", + "EMAIL_TYPE_INVALID_EMAIL": "Geçerli bir e-posta adresi değil", + "DATE_TYPE_PARSE": "{{date}} işlenemiyor. ISO8601 standartlarında olmalı", + "BASE_TYPE_BAD_LENGTH": "{{length}} arası uzunlukta olmalı" + } +} diff --git a/assets/locales/ug/auth.json b/assets/locales/ug/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/ug/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/ug/common.json b/assets/locales/ug/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/ug/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/uk/auth.json b/assets/locales/uk/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/uk/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/uk/common.json b/assets/locales/uk/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/uk/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/ur/auth.json b/assets/locales/ur/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/ur/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/ur/common.json b/assets/locales/ur/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/ur/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/vec/auth.json b/assets/locales/vec/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/vec/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/vec/common.json b/assets/locales/vec/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/vec/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/vi/auth.json b/assets/locales/vi/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/vi/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/vi/common.json b/assets/locales/vi/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/vi/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/locales/zh/auth.json b/assets/locales/zh/auth.json new file mode 100644 index 00000000..a78d4d60 --- /dev/null +++ b/assets/locales/zh/auth.json @@ -0,0 +1,18 @@ +{ + "login": { + "INVALID_LOGIN": "E-Mail or Phone not found", + "INVALID_PASSWORD": "Invalid Password", + "ACCOUNT_DISABLED": "This account is disabled", + "INVALID_TOTP_CODE": "Invalid two-factor code.", + "INVALID_TOTP_SECRET": "Invalid two-factor secret." + }, + "register": { + "REGISTRATION_DISABLED": "New user registration is disabled", + "INVITE_ONLY": "You must be invited to register", + "EMAIL_INVALID": "Invalid Email", + "EMAIL_ALREADY_REGISTERED": "Email is already registered", + "DATE_OF_BIRTH_UNDERAGE": "You need to be {{years}} years or older", + "CONSENT_REQUIRED": "You must agree to the Terms of Service and Privacy Policy.", + "USERNAME_TOO_MANY_USERS": "Too many users have this username, please try another" + } +} diff --git a/assets/locales/zh/common.json b/assets/locales/zh/common.json new file mode 100644 index 00000000..8bb9c042 --- /dev/null +++ b/assets/locales/zh/common.json @@ -0,0 +1,18 @@ +{ + "field": { + "BASE_TYPE_REQUIRED": "This field is required", + "BASE_TYPE_STRING": "This field must be a string", + "BASE_TYPE_NUMBER": "This field must be a number", + "BASE_TYPE_BIGINT": "This field must be a bigint", + "BASE_TYPE_BOOLEAN": "This field must be a boolean", + "BASE_TYPE_CHOICES": "This field must be one of ({{types}})", + "BASE_TYPE_CLASS": "This field must be an instance of {{type}}", + "BASE_TYPE_OBJECT": "This field must be an object", + "BASE_TYPE_ARRAY": "This field must be an array", + "UNKOWN_FIELD": "Unknown key: {{key}}", + "BASE_TYPE_CONSTANT": "This field must be {{value}}", + "EMAIL_TYPE_INVALID_EMAIL": "Not a well-formed email address", + "DATE_TYPE_PARSE": "Could not parse {{date}}. Should be ISO8601", + "BASE_TYPE_BAD_LENGTH": "Must be between {{length}} in length" + } +} diff --git a/assets/openapi.json b/assets/openapi.json new file mode 100644 index 00000000..a8a657b2 --- /dev/null +++ b/assets/openapi.json @@ -0,0 +1,6000 @@ +{ + "openapi": "3.0.0", + "servers": [ + { + "url": "https://api.fosscord.com/api/v{version}", + "description": "Official fosscord instance", + "variables": { + "version": { + "default": "9", + "enum": ["8", "9"] + } + } + } + ], + "info": { + "description": "Fosscord is a free open source selfhostable discord compatible chat, voice and video platform", + "version": "1.0.0", + "title": "Fosscord HTTP API Routes", + "termsOfService": "", + "contact": { + "name": "Fosscord" + }, + "license": { + "name": "AGPLV3", + "url": "https://www.gnu.org/licenses/agpl-3.0.en.html" + } + }, + "tags": [ + { + "name": "auth" + }, + { + "name": "applications" + }, + { + "name": "channels" + }, + { + "name": "discoverable-guilds" + }, + { + "name": "experiments" + }, + { + "name": "guilds" + }, + { + "name": "gateway" + }, + { + "name": "invites" + }, + { + "name": "voice" + }, + { + "name": "users" + }, + { + "name": "outbound-promotions" + }, + { + "name": "ping" + }, + { + "name": "store" + }, + { + "name": "sticker-packs" + }, + { + "name": "science" + } + ], + "paths": { + "/users/{id}": { + "get": { + "summary": "", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "user id" + } + ], + "operationId": "", + "responses": { + "200": { + "description": "User found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserPublic" + } + } + } + }, + "404": { + "description": "User not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + }, + "security": [ + { + "Token": [] + } + ] + } + }, + "/users/@me": { + "get": { + "summary": "", + "parameters": [], + "operationId": "", + "responses": { + "200": { + "description": "Authenticated user", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserPublic" + } + } + } + } + }, + "security": [ + { + "Token": [] + } + ] + } + }, + "/voice/regions/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["voice"] + } + }, + "/users/@me/settings/": { + "patch": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserSettingsSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/relationships/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users", "relationships"] + }, + "post": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RelationshipPostSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/relationships/{id}": { + "put": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RelationshipPutSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "id" + } + ], + "tags": ["users"] + }, + "delete": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "id" + } + ], + "tags": ["users"] + } + }, + "/users/@me/library/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + }, + "patch": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserModifySchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/guilds/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/guilds/{id}": { + "delete": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "id" + } + ], + "tags": ["users"] + } + }, + "/users/@me/disable/": { + "post": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/devices/": { + "post": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/delete/": { + "post": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/connections/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/channels/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + }, + "post": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DmChannelCreateSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/billing/subscriptions/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/billing/country-code/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/applications/{app_id}/entitlements/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "app_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "app_id" + } + ], + "tags": ["users"] + } + }, + "/users/@me/affinities/users/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/@me/affinities/guilds/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["users"] + } + }, + "/users/{id}/profile/": { + "get": { + "description": "", + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UserProfileResponse" + } + } + }, + "description": "" + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "id" + } + ], + "tags": ["users"] + } + }, + "/users/{id}/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "id" + } + ], + "tags": ["users"] + } + }, + "/store/skus/skus/{id}": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "id" + } + ], + "tags": ["store"] + } + }, + "/store/applications/applications/{id}": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "id" + } + ], + "tags": ["store"] + } + }, + "/sticker-packs/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["sticker", "sticker-packs"] + } + }, + "/sticker-packs/{id}/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "id" + } + ], + "tags": ["sticker", "sticker-packs"] + } + }, + "/science/": { + "post": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["science"] + } + }, + "/ping/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["ping"] + } + }, + "/outbound-promotions/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["outbound", "outbound-promotions"] + } + }, + "/invites/{code}": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "code", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "code" + } + ], + "tags": ["invites"] + }, + "post": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "code", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "code" + } + ], + "tags": ["invites"] + }, + "delete": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "code", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "code" + } + ], + "tags": ["invites"] + } + }, + "/guilds/templates/{code}": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "code", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "code" + } + ], + "tags": ["guilds"] + }, + "post": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GuildTemplateCreateSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "code", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "code" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/": { + "post": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GuildCreateSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/widget.png/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/widget.json/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/widget/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + }, + "patch": { + "description": "##### Requires the ``MANAGE_GUILD`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WidgetModifySchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/welcome_screen/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + }, + "patch": { + "description": "##### Requires the ``MANAGE_GUILD`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GuildUpdateWelcomeScreenSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/voice-states/{user_id}/": { + "patch": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VoiceStateUpdateSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "user_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "user_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/vanity-url/": { + "get": { + "description": "##### Requires the ``MANAGE_GUILD`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + }, + "patch": { + "description": "##### Requires the ``MANAGE_GUILD`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/VanityUrlSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/templates/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + }, + "post": { + "description": "##### Requires the ``MANAGE_GUILD`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TemplateCreateSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/templates/{code}": { + "delete": { + "description": "##### Requires the ``MANAGE_GUILD`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "code", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "code" + } + ], + "tags": ["guilds"] + }, + "put": { + "description": "##### Requires the ``MANAGE_GUILD`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "code", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "code" + } + ], + "tags": ["guilds"] + }, + "patch": { + "description": "##### Requires the ``MANAGE_GUILD`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TemplateModifySchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "code", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "code" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/roles/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + }, + "post": { + "description": "##### Requires the ``MANAGE_ROLES`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleModifySchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + }, + "patch": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RolePositionUpdateSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/roles/{role_id}": { + "delete": { + "description": "##### Requires the ``MANAGE_ROLES`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "role_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "role_id" + } + ], + "tags": ["guilds"] + }, + "patch": { + "description": "##### Requires the ``MANAGE_ROLES`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RoleModifySchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "role_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "role_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/regions/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/members/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/members/{member_id}/nick/": { + "patch": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MemberNickChangeSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "member_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "member_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/members/{member_id}/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "member_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "member_id" + } + ], + "tags": ["guilds"] + }, + "patch": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MemberChangeSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "member_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "member_id" + } + ], + "tags": ["guilds"] + }, + "put": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "member_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "member_id" + } + ], + "tags": ["guilds"] + }, + "delete": { + "description": "##### Requires the ``KICK_MEMBERS`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "member_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "member_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/invites/": { + "get": { + "description": "##### Requires the ``MANAGE_GUILD`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + }, + "patch": { + "description": "##### Requires the ``MANAGE_GUILD`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/GuildUpdateSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/delete/": { + "post": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/channels/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + }, + "post": { + "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelModifySchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + }, + "patch": { + "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelReorderSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/bans/": { + "get": { + "description": "##### Requires the ``BAN_MEMBERS`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/bans/{user}": { + "get": { + "description": "##### Requires the ``BAN_MEMBERS`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "user", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "user" + } + ], + "tags": ["guilds"] + } + }, + "/guilds/{guild_id}/bans/{user_id}": { + "put": { + "description": "##### Requires the ``BAN_MEMBERS`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BanCreateSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "user_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "user_id" + } + ], + "tags": ["guilds"] + }, + "delete": { + "description": "##### Requires the ``BAN_MEMBERS`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "user_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "user_id" + } + ], + "tags": ["guilds"] + } + }, + "/gateway/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["gateway"] + } + }, + "/gateway/bot": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["gateway"] + } + }, + "/experiments/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["experiments"] + } + }, + "/discoverable-guilds/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["discoverable", "discoverable-guilds"] + } + }, + "/channels/{channel_id}/webhooks/": { + "post": { + "description": "##### Requires the ``MANAGE_WEBHOOKS`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WebhookCreateSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/typing/": { + "post": { + "description": "##### Requires the ``SEND_MESSAGES`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/recipients/{user_id}": { + "put": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "user_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "user_id" + } + ], + "tags": ["channels"] + }, + "delete": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "user_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "user_id" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/pins/{message_id}": { + "put": { + "description": "##### Requires the ``VIEW_CHANNEL`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "message_id" + } + ], + "tags": ["channels"] + }, + "delete": { + "description": "##### Requires the ``VIEW_CHANNEL`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "message_id" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/pins/": { + "get": { + "description": "##### Requires the ``READ_MESSAGE_HISTORY`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/permissions/{overwrite_id}": { + "put": { + "description": "##### Requires the ``MANAGE_ROLES`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelPermissionOverwriteSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "overwrite_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "overwrite_id" + } + ], + "tags": ["channels"] + }, + "delete": { + "description": "##### Requires the ``MANAGE_ROLES`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "overwrite_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "overwrite_id" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/messages/bulk-delete/": { + "post": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BulkDeleteSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/messages/{message_id}/reactions/": { + "delete": { + "description": "##### Requires the ``MANAGE_MESSAGES`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "message_id" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/messages/{message_id}/reactions/{emoji}": { + "delete": { + "description": "##### Requires the ``MANAGE_MESSAGES`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "message_id" + }, + { + "name": "emoji", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "emoji" + } + ], + "tags": ["channels"] + }, + "get": { + "description": "##### Requires the ``VIEW_CHANNEL`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "message_id" + }, + { + "name": "emoji", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "emoji" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/messages/{message_id}/reactions/{emoji}/{user_id}": { + "put": { + "description": "##### Requires the ``READ_MESSAGE_HISTORY`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "message_id" + }, + { + "name": "emoji", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "emoji" + }, + { + "name": "user_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "user_id" + } + ], + "tags": ["channels"] + }, + "delete": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "message_id" + }, + { + "name": "emoji", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "emoji" + }, + { + "name": "user_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "user_id" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/messages/{message_id}/": { + "patch": { + "description": "##### Requires the ``SEND_MESSAGES`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageCreateSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "message_id" + } + ], + "tags": ["channels"] + }, + "delete": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "message_id" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/messages/{message_id}/ack/": { + "post": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MessageAcknowledgeSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + }, + { + "name": "message_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "message_id" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/invites/": { + "post": { + "description": "##### Requires the ``CREATE_INSTANT_INVITE`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/InviteCreateSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + } + ], + "tags": ["channels"] + }, + "get": { + "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + } + ], + "tags": ["channels"] + } + }, + "/channels/{channel_id}/": { + "get": { + "description": "##### Requires the ``VIEW_CHANNEL`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + } + ], + "tags": ["channels"] + }, + "delete": { + "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + } + ], + "tags": ["channels"] + }, + "patch": { + "description": "##### Requires the ``MANAGE_CHANNELS`` permission\n", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ChannelModifySchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "channel_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "channel_id" + } + ], + "tags": ["channels"] + } + }, + "/auth/register/": { + "post": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegisterSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["auth"] + } + }, + "/applications/detectable/": { + "get": { + "description": "", + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["applications"] + } + }, + "/guilds/{guild_id}/members/{member_id}/roles/{role_id}/": { + "delete": { + "description": "##### Requires the ``MANAGE_ROLES`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "member_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "member_id" + }, + { + "name": "role_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "role_id" + } + ], + "tags": ["guilds"] + }, + "put": { + "description": "##### Requires the ``MANAGE_ROLES`` permission\n", + "responses": { + "default": { + "description": "not documented" + } + }, + "parameters": [ + { + "name": "guild_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "guild_id" + }, + { + "name": "member_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "member_id" + }, + { + "name": "role_id", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "description": "role_id" + } + ], + "tags": ["guilds"] + } + }, + "/auth/login/": { + "post": { + "description": "", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LoginSchema" + } + } + } + }, + "responses": { + "default": { + "description": "not documented" + } + }, + "tags": ["auth"] + } + } + }, + "externalDocs": { + "url": "http://docs.fosscord.com/" + }, + "components": { + "schemas": { + "Error": { + "type": "object", + "properties": { + "code": { + "type": "integer" + }, + "message": { + "type": "string" + } + }, + "required": ["code", "message"] + }, + "RateLimit": { + "type": "object", + "properties": { + "retry_after": { + "type": "integer" + }, + "message": { + "type": "string" + }, + "global": { + "type": "boolean" + } + }, + "required": ["code", "message", "globa"] + }, + "User": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "desktop": { + "type": "boolean" + }, + "mobile": { + "type": "boolean" + }, + "premium": { + "type": "boolean" + }, + "premium_type": { + "type": "integer" + }, + "bot": { + "type": "boolean" + }, + "bio": { + "type": "string" + }, + "system": { + "type": "boolean" + }, + "nsfw_allowed": { + "type": "boolean" + }, + "mfa_enabled": { + "type": "boolean" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "premium_since": { + "type": "string", + "format": "date-time" + }, + "verified": { + "type": "boolean" + }, + "disabled": { + "type": "boolean" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string" + }, + "flags": { + "type": "string" + }, + "public_flags": { + "type": "string" + }, + "relationships": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Relationship" + } + }, + "connected_accounts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ConnectedAccount" + } + }, + "data": { + "type": "object", + "properties": { + "valid_tokens_since": { + "type": "string", + "format": "date-time" + }, + "hash": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["valid_tokens_since"] + }, + "fingerprints": { + "type": "array", + "items": { + "type": "string" + } + }, + "settings": { + "$ref": "#/components/schemas/UserSettings" + }, + "id": { + "type": "string" + } + }, + "required": [ + "bio", + "bot", + "connected_accounts", + "created_at", + "data", + "deleted", + "desktop", + "disabled", + "discriminator", + "fingerprints", + "flags", + "id", + "mfa_enabled", + "mobile", + "nsfw_allowed", + "premium", + "premium_type", + "public_flags", + "relationships", + "settings", + "system", + "username", + "verified" + ] + }, + "Relationship": { + "type": "object", + "properties": { + "user_id": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "nickname": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/RelationshipType" + }, + "id": { + "type": "string" + } + }, + "required": ["id", "type", "user", "user_id"] + }, + "RelationshipType": { + "enum": [1, 2, 3, 4], + "type": "number" + }, + "ConnectedAccount": { + "type": "object", + "properties": { + "user_id": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "access_token": { + "type": "string" + }, + "friend_sync": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "revoked": { + "type": "boolean" + }, + "show_activity": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "verified": { + "type": "boolean" + }, + "visibility": { + "type": "integer" + }, + "id": { + "type": "string" + } + }, + "required": [ + "access_token", + "friend_sync", + "id", + "name", + "revoked", + "show_activity", + "type", + "user", + "user_id", + "verified", + "visibility" + ] + }, + "UserSettings": { + "type": "object", + "properties": { + "afk_timeout": { + "type": "integer" + }, + "allow_accessibility_detection": { + "type": "boolean" + }, + "animate_emoji": { + "type": "boolean" + }, + "animate_stickers": { + "type": "integer" + }, + "contact_sync_enabled": { + "type": "boolean" + }, + "convert_emoticons": { + "type": "boolean" + }, + "custom_status": { + "type": "object", + "properties": { + "emoji_id": { + "type": "string" + }, + "emoji_name": { + "type": "string" + }, + "expires_at": { + "type": "integer" + }, + "text": { + "type": "string" + } + }, + "additionalProperties": false + }, + "default_guilds_restricted": { + "type": "boolean" + }, + "detect_platform_accounts": { + "type": "boolean" + }, + "developer_mode": { + "type": "boolean" + }, + "disable_games_tab": { + "type": "boolean" + }, + "enable_tts_command": { + "type": "boolean" + }, + "explicit_content_filter": { + "type": "integer" + }, + "friend_source_flags": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": ["all"] + }, + "gateway_connected": { + "type": "boolean" + }, + "gif_auto_play": { + "type": "boolean" + }, + "guild_folders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color": { + "type": "integer" + }, + "guild_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["color", "guild_ids", "id", "name"] + } + }, + "guild_positions": { + "type": "array", + "items": { + "type": "string" + } + }, + "inline_attachment_media": { + "type": "boolean" + }, + "inline_embed_media": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "message_display_compact": { + "type": "boolean" + }, + "native_phone_integration_enabled": { + "type": "boolean" + }, + "render_embeds": { + "type": "boolean" + }, + "render_reactions": { + "type": "boolean" + }, + "restricted_guilds": { + "type": "array", + "items": { + "type": "string" + } + }, + "show_current_game": { + "type": "boolean" + }, + "status": { + "enum": ["dnd", "idle", "offline", "online", "invisible"], + "type": "string" + }, + "stream_notifications_enabled": { + "type": "boolean" + }, + "theme": { + "enum": ["dark", "white"], + "type": "string" + }, + "timezone_offset": { + "type": "integer" + } + }, + "required": [ + "afk_timeout", + "allow_accessibility_detection", + "animate_emoji", + "animate_stickers", + "contact_sync_enabled", + "convert_emoticons", + "custom_status", + "default_guilds_restricted", + "detect_platform_accounts", + "developer_mode", + "disable_games_tab", + "enable_tts_command", + "explicit_content_filter", + "friend_source_flags", + "gateway_connected", + "gif_auto_play", + "guild_folders", + "guild_positions", + "inline_attachment_media", + "inline_embed_media", + "locale", + "message_display_compact", + "native_phone_integration_enabled", + "render_embeds", + "render_reactions", + "restricted_guilds", + "show_current_game", + "status", + "stream_notifications_enabled", + "theme", + "timezone_offset" + ] + }, + "Team": { + "type": "object", + "properties": { + "icon": { + "type": "string" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/components/schemas/TeamMember" + } + }, + "name": { + "type": "string" + }, + "owner_user_id": { + "type": "string" + }, + "owner_user": { + "$ref": "#/components/schemas/User" + }, + "id": { + "type": "string" + } + }, + "required": ["id", "members", "name", "owner_user", "owner_user_id"] + }, + "TeamMember": { + "type": "object", + "properties": { + "membership_state": { + "$ref": "#/components/schemas/TeamMemberState" + }, + "permissions": { + "type": "array", + "items": { + "type": "string" + } + }, + "team_id": { + "type": "string" + }, + "team": { + "$ref": "#/components/schemas/Team" + }, + "user_id": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "id": { + "type": "string" + } + }, + "required": ["id", "membership_state", "permissions", "team", "team_id", "user", "user_id"] + }, + "TeamMemberState": { + "enum": [1, 2], + "type": "number" + }, + "Guild": { + "type": "object", + "properties": { + "afk_channel_id": { + "type": "string" + }, + "afk_channel": { + "$ref": "#/components/schemas/Channel" + }, + "afk_timeout": { + "type": "integer" + }, + "bans": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Ban" + } + }, + "banner": { + "type": "string" + }, + "default_message_notifications": { + "type": "integer" + }, + "description": { + "type": "string" + }, + "discovery_splash": { + "type": "string" + }, + "explicit_content_filter": { + "type": "integer" + }, + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "icon": { + "type": "string" + }, + "large": { + "type": "boolean" + }, + "max_members": { + "type": "integer" + }, + "max_presences": { + "type": "integer" + }, + "max_video_channel_users": { + "type": "integer" + }, + "member_count": { + "type": "integer" + }, + "presence_count": { + "type": "integer" + }, + "members": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Member" + } + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + } + }, + "channels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Channel" + } + }, + "template_id": { + "type": "string" + }, + "template": { + "$ref": "#/components/schemas/Template" + }, + "emojis": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Emoji" + } + }, + "stickers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sticker" + } + }, + "invites": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Invite" + } + }, + "voice_states": { + "type": "array", + "items": { + "$ref": "#/components/schemas/VoiceState" + } + }, + "webhooks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Webhook" + } + }, + "mfa_level": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "owner_id": { + "type": "string" + }, + "owner": { + "$ref": "#/components/schemas/User" + }, + "preferred_locale": { + "type": "string" + }, + "premium_subscription_count": { + "type": "integer" + }, + "premium_tier": { + "type": "integer" + }, + "public_updates_channel_id": { + "type": "string" + }, + "public_updates_channel": { + "$ref": "#/components/schemas/Channel" + }, + "rules_channel_id": { + "type": "string" + }, + "rules_channel": { + "type": "string" + }, + "region": { + "type": "string" + }, + "splash": { + "type": "string" + }, + "system_channel_id": { + "type": "string" + }, + "system_channel": { + "$ref": "#/components/schemas/Channel" + }, + "system_channel_flags": { + "type": "integer" + }, + "unavailable": { + "type": "boolean" + }, + "vanity_url_code": { + "type": "string" + }, + "vanity_url": { + "$ref": "#/components/schemas/Invite" + }, + "verification_level": { + "type": "integer" + }, + "welcome_screen": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "welcome_channels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "emoji_id": { + "type": "string" + }, + "emoji_name": { + "type": "string" + }, + "channel_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["channel_id", "description", "emoji_name"] + } + } + }, + "additionalProperties": false, + "required": ["description", "enabled", "welcome_channels"] + }, + "widget_channel_id": { + "type": "string" + }, + "widget_channel": { + "$ref": "#/components/schemas/Channel" + }, + "widget_enabled": { + "type": "boolean" + }, + "id": { + "type": "string" + } + }, + "required": [ + "bans", + "channels", + "emojis", + "features", + "id", + "invites", + "members", + "name", + "owner", + "owner_id", + "public_updates_channel_id", + "roles", + "stickers", + "template", + "template_id", + "voice_states", + "webhooks", + "welcome_screen" + ] + }, + "Channel": { + "type": "object", + "properties": { + "created_at": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/ChannelType" + }, + "recipients": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Recipient" + } + }, + "last_message_id": { + "type": "string" + }, + "last_message": { + "$ref": "#/components/schemas/Message" + }, + "guild_id": { + "type": "string" + }, + "guild": { + "$ref": "#/components/schemas/Guild" + }, + "parent_id": { + "type": "string" + }, + "parent": { + "$ref": "#/components/schemas/Channel" + }, + "owner_id": { + "type": "string" + }, + "owner": { + "$ref": "#/components/schemas/User" + }, + "last_pin_timestamp": { + "type": "integer" + }, + "default_auto_archive_duration": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelPermissionOverwrite" + } + }, + "video_quality_mode": { + "type": "integer" + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "nsfw": { + "type": "boolean" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "topic": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "required": [ + "created_at", + "guild", + "id", + "last_message_id", + "name", + "owner", + "owner_id", + "parent_id", + "permission_overwrites", + "position", + "type" + ] + }, + "ChannelType": { + "enum": [0, 1, 2, 3, 4, 5, 6], + "type": "number" + }, + "Recipient": { + "type": "object", + "properties": { + "channel_id": { + "type": "string" + }, + "channel": { + "$ref": "#/components/schemas/Channel" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "id": { + "type": "string" + } + }, + "required": ["channel", "channel_id", "id", "user"] + }, + "Message": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "channel_id": { + "type": "string" + }, + "channel": { + "$ref": "#/components/schemas/Channel" + }, + "guild_id": { + "type": "string" + }, + "guild": { + "$ref": "#/components/schemas/Guild" + }, + "author_id": { + "type": "string" + }, + "author": { + "$ref": "#/components/schemas/User" + }, + "member_id": { + "type": "string" + }, + "member": { + "$ref": "#/components/schemas/Member" + }, + "webhook_id": { + "type": "string" + }, + "webhook": { + "$ref": "#/components/schemas/Webhook" + }, + "application_id": { + "type": "string" + }, + "application": { + "$ref": "#/components/schemas/Application" + }, + "content": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "edited_timestamp": { + "type": "string", + "format": "date-time" + }, + "tts": { + "type": "boolean" + }, + "mention_everyone": { + "type": "boolean" + }, + "mentions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/User" + } + }, + "mention_roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + } + }, + "mention_channels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Channel" + } + }, + "sticker_items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sticker" + } + }, + "attachments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Attachment" + } + }, + "embeds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Embed" + } + }, + "reactions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Reaction" + } + }, + "nonce": { + "type": "string" + }, + "pinned": { + "type": "boolean" + }, + "type": { + "$ref": "#/components/schemas/MessageType" + }, + "activity": { + "type": "object", + "properties": { + "type": { + "type": "integer" + }, + "party_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["party_id", "type"] + }, + "flags": { + "type": "string" + }, + "message_reference": { + "type": "object", + "properties": { + "message_id": { + "type": "string" + }, + "channel_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["message_id"] + }, + "referenced_message": { + "$ref": "#/components/schemas/Message" + }, + "interaction": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/InteractionType" + }, + "name": { + "type": "string" + }, + "user_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["id", "name", "type", "user_id"] + }, + "components": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MessageComponent" + } + } + }, + "required": [ + "application_id", + "author_id", + "channel", + "channel_id", + "embeds", + "id", + "member_id", + "mention_channels", + "mention_roles", + "mentions", + "reactions", + "timestamp", + "type", + "webhook_id" + ] + }, + "Member": { + "type": "object", + "properties": { + "user_id": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "guild_id": { + "type": "string" + }, + "guild": { + "$ref": "#/components/schemas/Guild" + }, + "nick": { + "type": "string" + }, + "roles": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Role" + } + }, + "joined_at": { + "type": "string", + "format": "date-time" + }, + "premium_since": { + "type": "string", + "format": "date-time" + }, + "deaf": { + "type": "boolean" + }, + "mute": { + "type": "boolean" + }, + "pending": { + "type": "boolean" + }, + "settings": { + "$ref": "#/components/schemas/UserGuildSettings" + }, + "id": { + "type": "string" + } + }, + "required": ["deaf", "guild", "guild_id", "id", "joined_at", "mute", "pending", "roles", "settings", "user", "user_id"] + }, + "Role": { + "type": "object", + "properties": { + "guild_id": { + "type": "string" + }, + "guild": { + "$ref": "#/components/schemas/Guild" + }, + "color": { + "type": "integer" + }, + "hoist": { + "type": "boolean" + }, + "managed": { + "type": "boolean" + }, + "mentionable": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "permissions": { + "type": "string" + }, + "position": { + "type": "integer" + }, + "tags": { + "type": "object", + "properties": { + "bot_id": { + "type": "string" + }, + "integration_id": { + "type": "string" + }, + "premium_subscriber": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "id": { + "type": "string" + } + }, + "required": ["color", "guild", "guild_id", "hoist", "id", "managed", "mentionable", "name", "permissions", "position"] + }, + "UserGuildSettings": { + "type": "object", + "properties": { + "channel_overrides": { + "type": "array", + "items": { + "type": "object", + "properties": { + "channel_id": { + "type": "string" + }, + "message_notifications": { + "type": "integer" + }, + "mute_config": { + "$ref": "#/components/schemas/MuteConfig" + }, + "muted": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": ["channel_id", "message_notifications", "mute_config", "muted"] + } + }, + "message_notifications": { + "type": "integer" + }, + "mobile_push": { + "type": "boolean" + }, + "mute_config": { + "$ref": "#/components/schemas/MuteConfig" + }, + "muted": { + "type": "boolean" + }, + "suppress_everyone": { + "type": "boolean" + }, + "suppress_roles": { + "type": "boolean" + }, + "version": { + "type": "integer" + } + }, + "required": [ + "channel_overrides", + "message_notifications", + "mobile_push", + "mute_config", + "muted", + "suppress_everyone", + "suppress_roles", + "version" + ] + }, + "MuteConfig": { + "type": "object", + "properties": { + "end_time": { + "type": "integer" + }, + "selected_time_window": { + "type": "integer" + } + }, + "required": ["end_time", "selected_time_window"] + }, + "Webhook": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/WebhookType" + }, + "name": { + "type": "string" + }, + "avatar": { + "type": "string" + }, + "token": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "guild": { + "$ref": "#/components/schemas/Guild" + }, + "channel_id": { + "type": "string" + }, + "channel": { + "$ref": "#/components/schemas/Channel" + }, + "application_id": { + "type": "string" + }, + "application": { + "$ref": "#/components/schemas/Application" + }, + "user_id": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "source_guild_id": { + "type": "string" + }, + "source_guild": { + "$ref": "#/components/schemas/Guild" + } + }, + "required": [ + "application", + "application_id", + "channel", + "channel_id", + "guild", + "guild_id", + "id", + "source_guild", + "source_guild_id", + "type", + "user", + "user_id" + ] + }, + "WebhookType": { + "enum": [1, 2], + "type": "number" + }, + "Application": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "icon": { + "type": "string" + }, + "description": { + "type": "string" + }, + "rpc_origins": { + "type": "array", + "items": { + "type": "string" + } + }, + "bot_public": { + "type": "boolean" + }, + "bot_require_code_grant": { + "type": "boolean" + }, + "terms_of_service_url": { + "type": "string" + }, + "privacy_policy_url": { + "type": "string" + }, + "owner": { + "$ref": "#/components/schemas/User" + }, + "summary": { + "type": "string" + }, + "verify_key": { + "type": "string" + }, + "team": { + "$ref": "#/components/schemas/Team" + }, + "guild": { + "$ref": "#/components/schemas/Guild" + }, + "primary_sku_id": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "cover_image": { + "type": "string" + }, + "flags": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "required": ["bot_public", "bot_require_code_grant", "description", "flags", "guild", "id", "name", "verify_key"] + }, + "Sticker": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "tags": { + "type": "string" + }, + "pack_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "guild": { + "$ref": "#/components/schemas/Guild" + }, + "type": { + "$ref": "#/components/schemas/StickerType" + }, + "format_type": { + "$ref": "#/components/schemas/StickerFormatType" + }, + "id": { + "type": "string" + } + }, + "required": ["format_type", "id", "name", "pack_id", "tags", "type"] + }, + "StickerType": { + "enum": [1, 2], + "type": "number" + }, + "StickerFormatType": { + "enum": [1, 2, 3], + "type": "number" + }, + "Attachment": { + "type": "object", + "properties": { + "filename": { + "type": "string" + }, + "size": { + "type": "integer" + }, + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + }, + "content_type": { + "type": "string" + }, + "message_id": { + "type": "string" + }, + "message": { + "$ref": "#/components/schemas/Message" + }, + "id": { + "type": "string" + } + }, + "required": ["filename", "id", "message", "message_id", "proxy_url", "size", "url"] + }, + "Embed": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "type": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "description": { + "type": "string" + }, + "url": { + "type": "string" + }, + "timestamp": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "integer" + }, + "footer": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["text"] + }, + "image": { + "$ref": "#/components/schemas/EmbedImage" + }, + "thumbnail": { + "$ref": "#/components/schemas/EmbedImage" + }, + "video": { + "$ref": "#/components/schemas/EmbedImage" + }, + "provider": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string" + }, + "icon_url": { + "type": "string" + }, + "proxy_icon_url": { + "type": "string" + } + }, + "additionalProperties": false + }, + "fields": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "value": { + "type": "string" + }, + "inline": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": ["name", "value"] + } + } + } + }, + "EmbedType": { + "enum": ["article", "gifv", "image", "link", "rich", "video"], + "type": "string" + }, + "EmbedImage": { + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "proxy_url": { + "type": "string" + }, + "height": { + "type": "integer" + }, + "width": { + "type": "integer" + } + } + }, + "Reaction": { + "type": "object", + "properties": { + "count": { + "type": "integer" + }, + "emoji": { + "$ref": "#/components/schemas/PartialEmoji" + }, + "user_ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["count", "emoji", "user_ids"] + }, + "PartialEmoji": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "animated": { + "type": "boolean" + } + }, + "required": ["name"] + }, + "MessageType": { + "enum": [0, 1, 10, 11, 12, 14, 15, 19, 2, 20, 3, 4, 5, 6, 7, 8, 9], + "type": "number" + }, + "InteractionType": { + "enum": [1, 2], + "type": "number" + }, + "MessageComponent": { + "type": "object", + "properties": { + "type": { + "type": "integer" + }, + "style": { + "type": "integer" + }, + "label": { + "type": "string" + }, + "emoji": { + "$ref": "#/components/schemas/PartialEmoji" + }, + "custom_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "disabled": { + "type": "boolean" + }, + "components": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MessageComponent" + } + } + }, + "required": ["components", "type"] + }, + "ChannelPermissionOverwrite": { + "type": "object", + "properties": { + "allow": { + "type": "number" + }, + "deny": { + "type": "number" + }, + "id": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/ChannelPermissionOverwriteType" + } + }, + "required": ["allow", "deny", "id", "type"] + }, + "ChannelPermissionOverwriteType": { + "enum": [0, 1], + "type": "number" + }, + "Ban": { + "type": "object", + "properties": { + "user_id": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "guild_id": { + "type": "string" + }, + "guild": { + "$ref": "#/components/schemas/Guild" + }, + "executor_id": { + "type": "string" + }, + "executor": { + "$ref": "#/components/schemas/User" + }, + "ip": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "required": ["executor", "executor_id", "guild", "guild_id", "id", "ip", "user", "user_id"] + }, + "Template": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "usage_count": { + "type": "integer" + }, + "creator_id": { + "type": "string" + }, + "creator": { + "$ref": "#/components/schemas/User" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + }, + "source_guild_id": { + "type": "string" + }, + "source_guild": { + "$ref": "#/components/schemas/Guild" + }, + "serialized_source_guild": { + "$ref": "#/components/schemas/Guild" + }, + "id": { + "type": "string" + } + }, + "required": [ + "code", + "created_at", + "creator", + "creator_id", + "id", + "name", + "serialized_source_guild", + "source_guild", + "source_guild_id", + "updated_at" + ] + }, + "Emoji": { + "type": "object", + "properties": { + "animated": { + "type": "boolean" + }, + "available": { + "type": "boolean" + }, + "guild_id": { + "type": "string" + }, + "guild": { + "$ref": "#/components/schemas/Guild" + }, + "managed": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "require_colons": { + "type": "boolean" + }, + "id": { + "type": "string" + } + }, + "required": ["animated", "available", "guild", "guild_id", "id", "managed", "name", "require_colons"] + }, + "Invite": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "temporary": { + "type": "boolean" + }, + "uses": { + "type": "integer" + }, + "max_uses": { + "type": "integer" + }, + "max_age": { + "type": "integer" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "expires_at": { + "type": "string", + "format": "date-time" + }, + "guild_id": { + "type": "string" + }, + "guild": { + "$ref": "#/components/schemas/Guild" + }, + "channel_id": { + "type": "string" + }, + "channel": { + "$ref": "#/components/schemas/Channel" + }, + "inviter_id": { + "type": "string" + }, + "inviter": { + "$ref": "#/components/schemas/User" + }, + "target_user_id": { + "type": "string" + }, + "target_user": { + "type": "string" + }, + "target_user_type": { + "type": "integer" + }, + "id": { + "type": "string" + } + }, + "required": [ + "channel", + "channel_id", + "code", + "created_at", + "expires_at", + "guild", + "guild_id", + "id", + "inviter", + "inviter_id", + "max_age", + "max_uses", + "target_user_id", + "temporary", + "uses" + ] + }, + "VoiceState": { + "type": "object", + "properties": { + "guild_id": { + "type": "string" + }, + "guild": { + "$ref": "#/components/schemas/Guild" + }, + "channel_id": { + "type": "string" + }, + "channel": { + "$ref": "#/components/schemas/Channel" + }, + "user_id": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "session_id": { + "type": "string" + }, + "deaf": { + "type": "boolean" + }, + "mute": { + "type": "boolean" + }, + "self_deaf": { + "type": "boolean" + }, + "self_mute": { + "type": "boolean" + }, + "self_stream": { + "type": "boolean" + }, + "self_video": { + "type": "boolean" + }, + "suppress": { + "type": "boolean" + }, + "id": { + "type": "string" + } + }, + "required": [ + "channel", + "channel_id", + "deaf", + "guild_id", + "id", + "mute", + "self_deaf", + "self_mute", + "self_video", + "session_id", + "suppress", + "user", + "user_id" + ] + }, + "AuditLogEvents": { + "enum": [ + 1, 10, 11, 12, 13, 14, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 40, 41, 42, 50, 51, 52, 60, 61, 62, 72, 73, + 74, 75, 80, 81, 82 + ], + "type": "number" + }, + "AuditLogChange": { + "type": "object", + "properties": { + "new_value": { + "$ref": "#/components/schemas/AuditLogChangeValue" + }, + "old_value": { + "$ref": "#/components/schemas/AuditLogChangeValue" + }, + "key": { + "type": "string" + } + }, + "required": ["key"] + }, + "AuditLogChangeValue": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "icon_hash": { + "type": "string" + }, + "splash_hash": { + "type": "string" + }, + "discovery_splash_hash": { + "type": "string" + }, + "banner_hash": { + "type": "string" + }, + "owner_id": { + "type": "string" + }, + "region": { + "type": "string" + }, + "preferred_locale": { + "type": "string" + }, + "afk_channel_id": { + "type": "string" + }, + "afk_timeout": { + "type": "integer" + }, + "rules_channel_id": { + "type": "string" + }, + "public_updates_channel_id": { + "type": "string" + }, + "mfa_level": { + "type": "integer" + }, + "verification_level": { + "type": "integer" + }, + "explicit_content_filter": { + "type": "integer" + }, + "default_message_notifications": { + "type": "integer" + }, + "vanity_url_code": { + "type": "string" + }, + "$add": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + }, + "$remove": { + "type": "array", + "items": { + "type": "object", + "properties": {} + } + }, + "prune_delete_days": { + "type": "integer" + }, + "widget_enabled": { + "type": "boolean" + }, + "widget_channel_id": { + "type": "string" + }, + "system_channel_id": { + "type": "string" + }, + "position": { + "type": "integer" + }, + "topic": { + "type": "string" + }, + "bitrate": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelPermissionOverwrite" + } + }, + "nsfw": { + "type": "boolean" + }, + "application_id": { + "type": "string" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "permissions": { + "type": "string" + }, + "color": { + "type": "integer" + }, + "hoist": { + "type": "boolean" + }, + "mentionable": { + "type": "boolean" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + }, + "code": { + "type": "string" + }, + "channel_id": { + "type": "string" + }, + "inviter_id": { + "type": "string" + }, + "max_uses": { + "type": "integer" + }, + "uses": { + "type": "integer" + }, + "max_age": { + "type": "integer" + }, + "temporary": { + "type": "boolean" + }, + "deaf": { + "type": "boolean" + }, + "mute": { + "type": "boolean" + }, + "nick": { + "type": "string" + }, + "avatar_hash": { + "type": "string" + }, + "id": { + "type": "string" + }, + "type": { + "type": "integer" + }, + "enable_emoticons": { + "type": "boolean" + }, + "expire_behavior": { + "type": "integer" + }, + "expire_grace_period": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + } + } + }, + "AuditLog": { + "type": "object", + "properties": { + "target": { + "$ref": "#/components/schemas/User" + }, + "user_id": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "action_type": { + "$ref": "#/components/schemas/AuditLogEvents" + }, + "options": { + "type": "object", + "properties": { + "delete_member_days": { + "type": "string" + }, + "members_removed": { + "type": "string" + }, + "channel_id": { + "type": "string" + }, + "messaged_id": { + "type": "string" + }, + "count": { + "type": "string" + }, + "id": { + "type": "string" + }, + "type": { + "type": "string" + }, + "role_name": { + "type": "string" + } + }, + "additionalProperties": false + }, + "changes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/AuditLogChange" + } + }, + "reason": { + "type": "string" + }, + "id": { + "type": "string" + } + }, + "required": ["action_type", "changes", "id", "user", "user_id"] + }, + "ReadState": { + "type": "object", + "properties": { + "channel_id": { + "type": "string" + }, + "channel": { + "$ref": "#/components/schemas/Channel" + }, + "user_id": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/User" + }, + "last_message_id": { + "type": "string" + }, + "last_message": { + "$ref": "#/components/schemas/Message" + }, + "last_pin_timestamp": { + "type": "string", + "format": "date-time" + }, + "mention_count": { + "type": "integer" + }, + "manual": { + "type": "boolean" + }, + "id": { + "type": "string" + } + }, + "required": ["channel", "channel_id", "id", "last_message_id", "manual", "mention_count", "user", "user_id"] + }, + "UserPublic": { + "type": "object", + "properties": { + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "integer" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + } + }, + "required": ["bio", "bot", "discriminator", "id", "public_flags", "username"] + }, + "UserPrivate": { + "type": "object", + "properties": { + "locale": { + "type": "string" + }, + "disabled": { + "type": "boolean" + }, + "username": { + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "id": { + "type": "string" + }, + "public_flags": { + "type": "string" + }, + "avatar": { + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string" + }, + "bio": { + "type": "string" + }, + "bot": { + "type": "boolean" + }, + "flags": { + "type": "string" + }, + "mfa_enabled": { + "type": "boolean" + }, + "email": { + "type": "string" + }, + "phone": { + "type": "string" + }, + "verified": { + "type": "boolean" + }, + "nsfw_allowed": { + "type": "boolean" + }, + "premium": { + "type": "boolean" + }, + "premium_type": { + "type": "integer" + } + }, + "required": [ + "bio", + "bot", + "disabled", + "discriminator", + "flags", + "id", + "locale", + "mfa_enabled", + "nsfw_allowed", + "premium", + "premium_type", + "public_flags", + "username", + "verified" + ] + }, + "BanCreateSchema": { + "type": "object", + "properties": { + "delete_message_days": { + "type": "string" + }, + "reason": { + "type": "string" + } + } + }, + "DmChannelCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "recipients": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["recipients"] + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [0, 1, 10, 11, 12, 13, 2, 3, 4, 5, 6], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": "string", + "nullable": true + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "number" + }, + "deny": { + "type": "number" + } + }, + "additionalProperties": false, + "required": ["allow", "deny", "id", "type"] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + } + } + }, + "ChannelGuildPositionUpdateSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "position": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": ["id"] + } + }, + "EmojiCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "image": { + "type": "string" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["image", "name"] + }, + "GuildCreateSchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "region": { + "type": "string" + }, + "icon": { + "type": "string", + "nullable": true + }, + "channels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ChannelModifySchema" + } + }, + "guild_template_code": { + "type": "string" + }, + "system_channel_id": { + "type": "string" + }, + "rules_channel_id": { + "type": "string" + } + }, + "required": ["name"] + }, + "GuildUpdateSchema": { + "type": "object", + "properties": { + "banner": { + "type": "string", + "nullable": true + }, + "splash": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string" + }, + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "verification_level": { + "type": "integer" + }, + "default_message_notifications": { + "type": "integer" + }, + "system_channel_flags": { + "type": "integer" + }, + "explicit_content_filter": { + "type": "integer" + }, + "public_updates_channel_id": { + "type": "string" + }, + "afk_timeout": { + "type": "integer" + }, + "afk_channel_id": { + "type": "string" + }, + "preferred_locale": { + "type": "string" + }, + "name": { + "maxLength": 100, + "type": "string" + }, + "region": { + "type": "string" + }, + "icon": { + "type": "string", + "nullable": true + }, + "guild_template_code": { + "type": "string" + }, + "system_channel_id": { + "type": "string" + }, + "rules_channel_id": { + "type": "string" + } + }, + "required": ["name"] + }, + "GuildTemplateCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "avatar": { + "type": "string", + "nullable": true + } + }, + "required": ["name"] + }, + "GuildUpdateWelcomeScreenSchema": { + "type": "object", + "properties": { + "welcome_channels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "channel_id": { + "type": "string" + }, + "description": { + "type": "string" + }, + "emoji_id": { + "type": "string" + }, + "emoji_name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["channel_id", "description", "emoji_name"] + } + }, + "enabled": { + "type": "boolean" + }, + "description": { + "type": "string" + } + } + }, + "InviteCreateSchema": { + "type": "object", + "properties": { + "target_user_id": { + "type": "string" + }, + "target_type": { + "type": "string" + }, + "validate": { + "type": "string" + }, + "max_age": { + "type": "integer" + }, + "max_uses": { + "type": "integer" + }, + "temporary": { + "type": "boolean" + }, + "unique": { + "type": "boolean" + }, + "target_user": { + "type": "string" + }, + "target_user_type": { + "type": "integer" + } + } + }, + "MemberCreateSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "nick": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "joined_at": { + "type": "string", + "format": "date-time" + } + }, + "required": ["guild_id", "id", "joined_at", "nick"] + }, + "MemberNickChangeSchema": { + "type": "object", + "properties": { + "nick": { + "type": "string" + } + }, + "required": ["nick"] + }, + "MemberChangeSchema": { + "type": "object", + "properties": { + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "MessageCreateSchema": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "nonce": { + "type": "string" + }, + "tts": { + "type": "boolean" + }, + "flags": { + "type": "string" + }, + "embeds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Embed" + } + }, + "embed": { + "$ref": "#/components/schemas/Embed" + }, + "allowed_mentions": { + "type": "object", + "properties": { + "parse": { + "type": "array", + "items": { + "type": "string" + } + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "items": { + "type": "string" + } + }, + "replied_user": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "message_reference": { + "type": "object", + "properties": { + "message_id": { + "type": "string" + }, + "channel_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "fail_if_not_exists": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": ["channel_id", "message_id"] + }, + "payload_json": { + "type": "string" + }, + "file": {}, + "attachments": { + "type": "array", + "items": {} + } + } + }, + "RoleModifySchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "permissions": { + "type": "number" + }, + "color": { + "type": "integer" + }, + "hoist": { + "type": "boolean" + }, + "mentionable": { + "type": "boolean" + }, + "position": { + "type": "integer" + } + } + }, + "TemplateCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": ["name"] + }, + "TemplateModifySchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": ["name"] + }, + "UserModifySchema": { + "type": "object", + "properties": { + "username": { + "minLength": 1, + "maxLength": 100, + "type": "string" + }, + "avatar": { + "type": "string", + "nullable": true + }, + "bio": { + "maxLength": 1024, + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": "string", + "nullable": true + }, + "password": { + "type": "string" + }, + "new_password": { + "type": "string" + }, + "code": { + "type": "string" + } + } + }, + "UserSettingsSchema": { + "type": "object", + "properties": { + "afk_timeout": { + "type": "integer" + }, + "allow_accessibility_detection": { + "type": "boolean" + }, + "animate_emoji": { + "type": "boolean" + }, + "animate_stickers": { + "type": "integer" + }, + "contact_sync_enabled": { + "type": "boolean" + }, + "convert_emoticons": { + "type": "boolean" + }, + "custom_status": { + "type": "object", + "properties": { + "emoji_id": { + "type": "string" + }, + "emoji_name": { + "type": "string" + }, + "expires_at": { + "type": "integer" + }, + "text": { + "type": "string" + } + }, + "additionalProperties": false + }, + "default_guilds_restricted": { + "type": "boolean" + }, + "detect_platform_accounts": { + "type": "boolean" + }, + "developer_mode": { + "type": "boolean" + }, + "disable_games_tab": { + "type": "boolean" + }, + "enable_tts_command": { + "type": "boolean" + }, + "explicit_content_filter": { + "type": "integer" + }, + "friend_source_flags": { + "type": "object", + "properties": { + "all": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": ["all"] + }, + "gateway_connected": { + "type": "boolean" + }, + "gif_auto_play": { + "type": "boolean" + }, + "guild_folders": { + "type": "array", + "items": { + "type": "object", + "properties": { + "color": { + "type": "integer" + }, + "guild_ids": { + "type": "array", + "items": { + "type": "string" + } + }, + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["color", "guild_ids", "id", "name"] + } + }, + "guild_positions": { + "type": "array", + "items": { + "type": "string" + } + }, + "inline_attachment_media": { + "type": "boolean" + }, + "inline_embed_media": { + "type": "boolean" + }, + "locale": { + "type": "string" + }, + "message_display_compact": { + "type": "boolean" + }, + "native_phone_integration_enabled": { + "type": "boolean" + }, + "render_embeds": { + "type": "boolean" + }, + "render_reactions": { + "type": "boolean" + }, + "restricted_guilds": { + "type": "array", + "items": { + "type": "string" + } + }, + "show_current_game": { + "type": "boolean" + }, + "status": { + "enum": ["dnd", "idle", "offline", "online", "invisible"], + "type": "string" + }, + "stream_notifications_enabled": { + "type": "boolean" + }, + "theme": { + "enum": ["dark", "white"], + "type": "string" + }, + "timezone_offset": { + "type": "integer" + } + }, + "required": [ + "afk_timeout", + "allow_accessibility_detection", + "animate_emoji", + "animate_stickers", + "contact_sync_enabled", + "convert_emoticons", + "custom_status", + "default_guilds_restricted", + "detect_platform_accounts", + "developer_mode", + "disable_games_tab", + "enable_tts_command", + "explicit_content_filter", + "friend_source_flags", + "gateway_connected", + "gif_auto_play", + "guild_folders", + "guild_positions", + "inline_attachment_media", + "inline_embed_media", + "locale", + "message_display_compact", + "native_phone_integration_enabled", + "render_embeds", + "render_reactions", + "restricted_guilds", + "show_current_game", + "status", + "stream_notifications_enabled", + "theme", + "timezone_offset" + ] + }, + "WidgetModifySchema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "channel_id": { + "type": "string" + } + }, + "required": ["channel_id", "enabled"] + }, + "RegisterSchema": { + "type": "object", + "properties": { + "username": { + "minLength": 2, + "maxLength": 32, + "type": "string" + }, + "password": { + "minLength": 1, + "maxLength": 72, + "type": "string" + }, + "consent": { + "type": "boolean" + }, + "email": { + "format": "email", + "type": "string" + }, + "fingerprint": { + "type": "string" + }, + "invite": { + "type": "string" + }, + "date_of_birth": { + "type": "string" + }, + "gift_code_sku_id": { + "type": "string" + }, + "captcha_key": { + "type": "string" + } + }, + "required": ["consent", "username"] + }, + "LoginSchema": { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "password": { + "type": "string" + }, + "undelete": { + "type": "boolean" + }, + "captcha_key": { + "type": "string" + }, + "login_source": { + "type": "string" + }, + "gift_code_sku_id": { + "type": "string" + } + }, + "required": ["login", "password"] + }, + "MessageAcknowledgeSchema": { + "type": "object", + "properties": { + "manual": { + "type": "boolean" + }, + "mention_count": { + "type": "integer" + } + } + }, + "BulkDeleteSchema": { + "type": "object", + "properties": { + "messages": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": ["messages"] + }, + "ChannelPermissionOverwriteSchema": { + "type": "object", + "properties": { + "allow": { + "type": "number" + }, + "deny": { + "type": "number" + }, + "id": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/ChannelPermissionOverwriteType" + } + }, + "required": ["allow", "deny", "id", "type"] + }, + "WebhookCreateSchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 80, + "type": "string" + }, + "avatar": { + "type": "string" + } + }, + "required": ["avatar", "name"] + }, + "ChannelReorderSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "position": { + "type": "integer" + }, + "lock_permissions": { + "type": "boolean" + }, + "parent_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": ["id"] + } + }, + "RolePositionUpdateSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "position": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": ["id", "position"] + } + }, + "VanityUrlSchema": { + "type": "object", + "properties": { + "code": { + "minLength": 1, + "maxLength": 20, + "type": "string" + } + } + }, + "VoiceStateUpdateSchema": { + "type": "object", + "properties": { + "channel_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "suppress": { + "type": "boolean" + }, + "request_to_speak_timestamp": { + "type": "string", + "format": "date-time" + }, + "self_mute": { + "type": "boolean" + }, + "self_deaf": { + "type": "boolean" + }, + "self_video": { + "type": "boolean" + } + }, + "required": ["channel_id"] + }, + "UserProfileResponse": { + "type": "object", + "properties": { + "user": { + "$ref": "#/components/schemas/UserPublic" + }, + "connected_accounts": { + "$ref": "#/components/schemas/PublicConnectedAccount" + }, + "premium_guild_since": { + "type": "string", + "format": "date-time" + }, + "premium_since": { + "type": "string", + "format": "date-time" + } + }, + "required": ["connected_accounts", "user"] + }, + "RelationshipPutSchema": { + "type": "object", + "properties": { + "type": { + "enum": [1, 2, 3, 4], + "type": "number" + } + } + }, + "RelationshipPostSchema": { + "type": "object", + "properties": { + "discriminator": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "required": ["discriminator", "username"] + }, + "PublicConnectedAccount": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string" + }, + "verifie": { + "type": "boolean" + } + }, + "required": ["name", "type", "verifie"] + } + }, + "requestBodies": {}, + "securitySchemes": { + "Token": { + "type": "apiKey", + "name": "Authorization", + "in": "header" + } + }, + "links": {}, + "callbacks": {} + } +} diff --git a/assets/plugins/.gitkeep b/assets/plugins/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/assets/preload-plugins/.gitkeep b/assets/preload-plugins/.gitkeep new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/assets/preload-plugins/.gitkeep @@ -0,0 +1 @@ + diff --git a/assets/schemas.json b/assets/schemas.json new file mode 100644 index 00000000..0fe3dfa1 --- /dev/null +++ b/assets/schemas.json @@ -0,0 +1,1471 @@ +{ + "ActivitySchema": { + "type": "object", + "properties": { + "afk": { + "type": "boolean" + }, + "status": {}, + "activities": { + "type": "array", + "items": {} + }, + "since": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "afk", + "status" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "BanCreateSchema": { + "type": "object", + "properties": { + "delete_message_days": { + "type": "string" + }, + "reason": { + "type": "string" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "BanModeratorSchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "user_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "executor_id": { + "type": "string" + }, + "reason": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "executor_id", + "guild_id", + "id", + "user_id" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "BanRegistrySchema": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "user_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "executor_id": { + "type": "string" + }, + "ip": { + "type": "string" + }, + "reason": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "executor_id", + "guild_id", + "id", + "user_id" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "BulkDeleteSchema": { + "type": "object", + "properties": { + "messages": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "messages" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ts.server.TypingInstallerResponse": { + "type": "object", + "properties": { + "kind": { + "enum": [ + "action::invalidate", + "action::packageInstalled", + "action::set", + "event::beginInstallTypes", + "event::endInstallTypes", + "event::initializationFailed", + "event::typesRegistry" + ], + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ts.server.PackageInstalledResponse": { + "type": "object", + "properties": { + "kind": { + "type": "string", + "enum": [ + "action::packageInstalled" + ] + }, + "success": { + "type": "boolean" + }, + "message": { + "type": "string" + }, + "projectName": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "message", + "projectName", + "success" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ts.server.InitializationFailedResponse": { + "type": "object", + "properties": { + "kind": { + "type": "string", + "enum": [ + "event::initializationFailed" + ] + }, + "message": { + "type": "string" + }, + "stack": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "message" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ts.server.ProjectResponse": { + "type": "object", + "properties": { + "projectName": { + "type": "string" + }, + "kind": { + "enum": [ + "action::invalidate", + "action::packageInstalled", + "action::set", + "event::beginInstallTypes", + "event::endInstallTypes", + "event::initializationFailed", + "event::typesRegistry" + ], + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "kind", + "projectName" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ChannelPermissionOverwriteSchema": { + "type": "object", + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ChannelReorderSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "position": { + "type": "integer" + }, + "lock_permissions": { + "type": "boolean" + }, + "parent_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "id" + ] + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "DmChannelCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "recipients": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "recipients" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "EmojiCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "image": { + "type": "string" + }, + "require_colons": { + "type": [ + "null", + "boolean" + ] + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "required": [ + "image" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "EmojiModifySchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GuildCreateSchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "region": { + "type": "string" + }, + "icon": { + "type": [ + "null", + "string" + ] + }, + "channels": { + "type": "array", + "items": { + "$ref": "#/definitions/ChannelModifySchema" + } + }, + "guild_template_code": { + "type": "string" + }, + "system_channel_id": { + "type": "string" + }, + "rules_channel_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ], + "definitions": { + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [ + 0, + 1, + 10, + 11, + 12, + 13, + 14, + 15, + 2, + 255, + 3, + 33, + 34, + 35, + 4, + 5, + 6, + 64, + 7, + 8, + 9 + ], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": [ + "null", + "string" + ] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "allow", + "deny", + "id", + "type" + ] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + }, + "flags": { + "type": "integer" + }, + "default_thread_rate_limit_per_user": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "ChannelPermissionOverwriteType": { + "enum": [ + 0, + 1, + 2 + ], + "type": "number" + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GuildTemplateCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "avatar": { + "type": [ + "null", + "string" + ] + } + }, + "additionalProperties": false, + "required": [ + "name" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GuildUpdateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "banner": { + "type": [ + "null", + "string" + ] + }, + "splash": { + "type": [ + "null", + "string" + ] + }, + "description": { + "type": "string" + }, + "features": { + "type": "array", + "items": { + "type": "string" + } + }, + "verification_level": { + "type": "integer" + }, + "default_message_notifications": { + "type": "integer" + }, + "system_channel_flags": { + "type": "integer" + }, + "explicit_content_filter": { + "type": "integer" + }, + "public_updates_channel_id": { + "type": "string" + }, + "afk_timeout": { + "type": "integer" + }, + "afk_channel_id": { + "type": "string" + }, + "preferred_locale": { + "type": "string" + }, + "premium_progress_bar_enabled": { + "type": "boolean" + }, + "region": { + "type": "string" + }, + "icon": { + "type": [ + "null", + "string" + ] + }, + "guild_template_code": { + "type": "string" + }, + "system_channel_id": { + "type": "string" + }, + "rules_channel_id": { + "type": "string" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "GuildUpdateWelcomeScreenSchema": { + "type": "object", + "properties": { + "welcome_channels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "channel_id": { + "type": "string" + }, + "description": { + "type": "string" + }, + "emoji_id": { + "type": "string" + }, + "emoji_name": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "channel_id", + "description", + "emoji_name" + ] + } + }, + "enabled": { + "type": "boolean" + }, + "description": { + "type": "string" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "IdentifySchema": { + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "properties": { + "type": "object", + "properties": { + "os": { + "type": "string" + }, + "os_atch": { + "type": "string" + }, + "browser": { + "type": "string" + }, + "device": { + "type": "string" + }, + "$os": { + "type": "string" + }, + "$browser": { + "type": "string" + }, + "$device": { + "type": "string" + }, + "browser_user_agent": { + "type": "string" + }, + "browser_version": { + "type": "string" + }, + "os_version": { + "type": "string" + }, + "referrer": { + "type": "string" + }, + "referring_domain": { + "type": "string" + }, + "referrer_current": { + "type": "string" + }, + "referring_domain_current": { + "type": "string" + }, + "release_channel": { + "enum": [ + "canary", + "dev", + "ptb", + "stable" + ], + "type": "string" + }, + "client_build_number": { + "type": "integer" + }, + "client_event_source": {}, + "client_version": { + "type": "string" + }, + "system_locale": { + "type": "string" + } + }, + "additionalProperties": false + }, + "intents": { + "type": "string" + }, + "presence": { + "$ref": "#/definitions/ActivitySchema" + }, + "compress": { + "type": "boolean" + }, + "large_threshold": { + "type": "integer" + }, + "shard": { + "type": "array", + "items": [ + { + "type": "integer" + }, + { + "type": "integer" + } + ], + "minItems": 2, + "maxItems": 2 + }, + "guild_subscriptions": { + "type": "boolean" + }, + "capabilities": { + "type": "integer" + }, + "client_state": { + "type": "object", + "properties": { + "guild_hashes": {}, + "highest_last_message_id": { + "type": "string" + }, + "read_state_version": { + "type": "integer" + }, + "user_guild_settings_version": { + "type": "integer" + }, + "user_settings_version": { + "type": "integer" + } + }, + "additionalProperties": false + }, + "v": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "properties", + "token" + ], + "definitions": { + "ActivitySchema": { + "type": "object", + "properties": { + "afk": { + "type": "boolean" + }, + "status": {}, + "activities": { + "type": "array", + "items": {} + }, + "since": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "afk", + "status" + ] + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "InviteCreateSchema": { + "type": "object", + "properties": { + "target_user_id": { + "type": "string" + }, + "target_type": { + "type": "string" + }, + "validate": { + "type": "string" + }, + "max_age": { + "type": "integer" + }, + "max_uses": { + "type": "integer" + }, + "temporary": { + "type": "boolean" + }, + "unique": { + "type": "boolean" + }, + "target_user": { + "type": "string" + }, + "target_user_type": { + "type": "integer" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "LoginSchema": { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "password": { + "type": "string" + }, + "undelete": { + "type": "boolean" + }, + "captcha_key": { + "type": "string" + }, + "login_source": { + "type": "string" + }, + "gift_code_sku_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "login", + "password" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MemberChangeSchema": { + "type": "object", + "properties": { + "roles": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MemberNickChangeSchema": { + "type": "object", + "properties": { + "nick": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "nick" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MessageAcknowledgeSchema": { + "type": "object", + "properties": { + "manual": { + "type": "boolean" + }, + "mention_count": { + "type": "integer" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MessageCreateSchema": { + "type": "object", + "properties": { + "type": { + "type": "integer" + }, + "content": { + "type": "string" + }, + "nonce": { + "type": "string" + }, + "channel_id": { + "type": "string" + }, + "tts": { + "type": "boolean" + }, + "flags": { + "type": "string" + }, + "embeds": { + "type": "array", + "items": {} + }, + "embed": {}, + "allowed_mentions": { + "type": "object", + "properties": { + "parse": { + "type": "array", + "items": { + "type": "string" + } + }, + "roles": { + "type": "array", + "items": { + "type": "string" + } + }, + "users": { + "type": "array", + "items": { + "type": "string" + } + }, + "replied_user": { + "type": "boolean" + } + }, + "additionalProperties": false + }, + "message_reference": { + "type": "object", + "properties": { + "message_id": { + "type": "string" + }, + "channel_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "fail_if_not_exists": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "channel_id", + "message_id" + ] + }, + "payload_json": { + "type": "string" + }, + "file": {}, + "attachments": { + "description": "TODO: we should create an interface for attachments\nTODO: OpenWAAO<-->attachment-style metadata conversion", + "type": "array", + "items": {} + }, + "sticker_ids": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "MfaCodesSchema": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "regenerate": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "password" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ModifyGuildStickerSchema": { + "type": "object", + "properties": { + "name": { + "minLength": 2, + "maxLength": 30, + "type": "string" + }, + "description": { + "maxLength": 100, + "type": "string" + }, + "tags": { + "maxLength": 200, + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name", + "tags" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "PruneSchema": { + "type": "object", + "properties": { + "days": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "days" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "PurgeSchema": { + "type": "object", + "properties": { + "before": { + "type": "string" + }, + "after": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "after", + "before" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RegisterSchema": { + "type": "object", + "properties": { + "username": { + "minLength": 2, + "maxLength": 32, + "type": "string" + }, + "password": { + "minLength": 1, + "maxLength": 72, + "type": "string" + }, + "consent": { + "type": "boolean" + }, + "email": { + "format": "email", + "type": "string" + }, + "fingerprint": { + "type": "string" + }, + "invite": { + "type": "string" + }, + "date_of_birth": { + "type": "string" + }, + "gift_code_sku_id": { + "type": "string" + }, + "captcha_key": { + "type": "string" + }, + "promotional_email_opt_in": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "consent", + "username" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RelationshipPostSchema": { + "type": "object", + "properties": { + "discriminator": { + "type": "string" + }, + "username": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "discriminator", + "username" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RelationshipPutSchema": { + "type": "object", + "properties": { + "type": {} + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RoleModifySchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "permissions": { + "type": "string" + }, + "color": { + "type": "integer" + }, + "hoist": { + "type": "boolean" + }, + "mentionable": { + "type": "boolean" + }, + "position": { + "type": "integer" + }, + "icon": { + "type": "string" + }, + "unicode_emoji": { + "type": "string" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "RolePositionUpdateSchema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "position": { + "type": "integer" + } + }, + "additionalProperties": false, + "required": [ + "id", + "position" + ] + }, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TemplateCreateSchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TemplateModifySchema": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TotpDisableSchema": { + "type": "object", + "properties": { + "code": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "code" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TotpEnableSchema": { + "type": "object", + "properties": { + "password": { + "type": "string" + }, + "code": { + "type": "string" + }, + "secret": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "password" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "TotpSchema": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "ticket": { + "type": "string" + }, + "gift_code_sku_id": { + "type": [ + "null", + "string" + ] + }, + "login_source": { + "type": [ + "null", + "string" + ] + } + }, + "additionalProperties": false, + "required": [ + "code", + "ticket" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserModifySchema": { + "type": "object", + "properties": { + "username": { + "minLength": 1, + "maxLength": 100, + "type": "string" + }, + "discriminator": { + "type": "string" + }, + "avatar": { + "type": [ + "null", + "string" + ] + }, + "bio": { + "maxLength": 1024, + "type": "string" + }, + "accent_color": { + "type": "integer" + }, + "banner": { + "type": [ + "null", + "string" + ] + }, + "password": { + "type": "string" + }, + "new_password": { + "type": "string" + }, + "code": { + "type": "string" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "UserSettingsSchema": { + "type": "object", + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "VanityUrlSchema": { + "type": "object", + "properties": { + "code": { + "minLength": 1, + "maxLength": 20, + "type": "string" + } + }, + "additionalProperties": false, + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "VoiceStateUpdateSchema": { + "type": "object", + "properties": { + "channel_id": { + "type": "string" + }, + "guild_id": { + "type": "string" + }, + "suppress": { + "type": "boolean" + }, + "request_to_speak_timestamp": { + "type": "string", + "format": "date-time" + }, + "self_mute": { + "type": "boolean" + }, + "self_deaf": { + "type": "boolean" + }, + "self_video": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "channel_id" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "WebhookCreateSchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 80, + "type": "string" + }, + "avatar": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "WidgetModifySchema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + }, + "channel_id": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "channel_id", + "enabled" + ], + "$schema": "http://json-schema.org/draft-07/schema#" + }, + "ChannelModifySchema": { + "type": "object", + "properties": { + "name": { + "maxLength": 100, + "type": "string" + }, + "type": { + "enum": [ + 0, + 1, + 10, + 11, + 12, + 13, + 14, + 15, + 2, + 255, + 3, + 33, + 34, + 35, + 4, + 5, + 6, + 64, + 7, + 8, + 9 + ], + "type": "number" + }, + "topic": { + "type": "string" + }, + "icon": { + "type": [ + "null", + "string" + ] + }, + "bitrate": { + "type": "integer" + }, + "user_limit": { + "type": "integer" + }, + "rate_limit_per_user": { + "type": "integer" + }, + "position": { + "type": "integer" + }, + "permission_overwrites": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "type": { + "$ref": "#/definitions/ChannelPermissionOverwriteType" + }, + "allow": { + "type": "string" + }, + "deny": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "allow", + "deny", + "id", + "type" + ] + } + }, + "parent_id": { + "type": "string" + }, + "id": { + "type": "string" + }, + "nsfw": { + "type": "boolean" + }, + "rtc_region": { + "type": "string" + }, + "default_auto_archive_duration": { + "type": "integer" + }, + "flags": { + "type": "integer" + }, + "default_thread_rate_limit_per_user": { + "type": "integer" + } + }, + "additionalProperties": false, + "definitions": { + "ChannelPermissionOverwriteType": { + "enum": [ + 0, + 1, + 2 + ], + "type": "number" + } + }, + "$schema": "http://json-schema.org/draft-07/schema#" + } +} \ No newline at end of file diff --git a/assets/user.css b/assets/user.css new file mode 100644 index 00000000..a7e5c4f3 --- /dev/null +++ b/assets/user.css @@ -0,0 +1 @@ +/* Your custom CSS goes here, enjoy! */ \ No newline at end of file diff --git a/assets/widget/banner1.png b/assets/widget/banner1.png new file mode 100644 index 00000000..ed9bd5c0 Binary files /dev/null and b/assets/widget/banner1.png differ diff --git a/assets/widget/banner2.png b/assets/widget/banner2.png new file mode 100644 index 00000000..90d3713d Binary files /dev/null and b/assets/widget/banner2.png differ diff --git a/assets/widget/banner3.png b/assets/widget/banner3.png new file mode 100644 index 00000000..22351898 Binary files /dev/null and b/assets/widget/banner3.png differ diff --git a/assets/widget/banner4.png b/assets/widget/banner4.png new file mode 100644 index 00000000..e6bd7b6f Binary files /dev/null and b/assets/widget/banner4.png differ diff --git a/assets/widget/shield.png b/assets/widget/shield.png new file mode 100644 index 00000000..30277db2 Binary files /dev/null and b/assets/widget/shield.png differ diff --git a/bundle/.prettierrc b/bundle/.prettierrc deleted file mode 100644 index 6a48eb4a..00000000 --- a/bundle/.prettierrc +++ /dev/null @@ -1,4 +0,0 @@ -{ - "useTabs": true, - "tabWidth": 4 -} diff --git a/bundle/.vscode/launch.json b/bundle/.vscode/launch.json deleted file mode 100644 index d7129ed8..00000000 --- a/bundle/.vscode/launch.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "sourceMaps": true, - "name": "ts-node", - "type": "node", - "request": "launch", - "args": [ - "${workspaceFolder}/src/start.ts" - ], - "runtimeArgs": [ - "-r", - "ts-node/register" - ], - "protocol": "inspector", - "internalConsoleOptions": "openOnSessionStart", - "env": { - "TS_NODE_PROJECT": "${workspaceFolder}/tsnode.tsconfig.json", - "TS_NODE_COMPILER": "typescript-cached-transpile" - }, - "resolveSourceMapLocations": null, /* allow breakpoints in modules other than bundle */ - }, - { - "sourceMaps": true, - "type": "node", - "request": "launch", - "name": "Launch Server", - "program": "${workspaceFolder}/dist/bundle/src/start.js", - "preLaunchTask": "tsc: build - tsconfig.json", - "outFiles": ["${workspaceFolder}/dist/**/*.js"], - "envFile": "${workspaceFolder}/.env", - } - ] -} diff --git a/bundle/package-lock.json b/bundle/package-lock.json deleted file mode 100644 index f6cbc82b..00000000 --- a/bundle/package-lock.json +++ /dev/null @@ -1,19202 +0,0 @@ -{ - "name": "@fosscord/server", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fosscord/server", - "version": "1.0.0", - "license": "AGPL-3.0-only", - "dependencies": { - "@aws-sdk/client-s3": "^3.137.0", - "@babel/preset-typescript": "^7.15.0", - "@fosscord/api": "file:../api", - "@fosscord/cdn": "file:../cdn", - "@fosscord/gateway": "file:../gateway", - "@ovos-media/ts-transform-paths": "^1.7.18-1", - "@sentry/node": "^7.7.0", - "@sentry/tracing": "^7.7.0", - "@types/node-fetch": "^2.6.2", - "ajv": "8.6.2", - "ajv-formats": "^2.1.1", - "amqplib": "^0.10.1", - "bcrypt": "^5.0.1", - "body-parser": "^1.19.0", - "canvas": "^2.9.3", - "cheerio": "^1.0.0-rc.10", - "dotenv": "^16.0.1", - "exif-be-gone": "^1.3.0", - "express": "^4.17.1", - "file-type": "16.5", - "form-data": "^4.0.0", - "i18next": "^21.8.14", - "i18next-http-middleware": "^3.1.3", - "i18next-node-fs-backend": "^2.1.3", - "image-size": "^1.0.0", - "jest": "^28.1.3", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "morgan": "^1.10.0", - "multer": "^1.4.5-lts.1", - "mysql2": "^2.3.3", - "node-2fa": "^2.0.3", - "node-fetch": "^2.6.7", - "node-os-utils": "^1.3.7", - "patch-package": "^6.4.7", - "pg": "^8.7.3", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "sqlite3": "^5.0.11", - "supertest": "^6.1.6", - "typeorm": "^0.3.7", - "typescript": "^4.1.2", - "ws": "^8.8.1" - }, - "devDependencies": { - "@babel/core": "^7.18.9", - "@babel/preset-env": "^7.18.9", - "@babel/preset-typescript": "^7.15.0", - "@types/amqplib": "^0.8.1", - "@types/bcrypt": "^5.0.0", - "@types/body-parser": "^1.19.0", - "@types/dotenv": "^8.2.0", - "@types/express": "^4.17.12", - "@types/i18next-node-fs-backend": "^2.1.0", - "@types/jsonwebtoken": "^8.5.8", - "@types/morgan": "^1.9.3", - "@types/multer": "^1.4.7", - "@types/node": "^18.0.6", - "@types/node-os-utils": "^1.3.0", - "@types/ws": "^8.5.3", - "jest": "^28.1.3", - "jest-expect-message": "^1.0.2", - "ts-node": "^10.2.1", - "ts-node-dev": "^2.0.0", - "ts-patch": "^2.0.1", - "typescript": "^4.2.3", - "typescript-json-schema": "^0.54.0" - } - }, - "../api": { - "name": "@fosscord/api", - "version": "1.0.0", - "hasInstallScript": true, - "license": "AGPL-3.0-only", - "dependencies": { - "@babel/preset-typescript": "^7.15.0", - "@fosscord/util": "file:../util", - "ajv": "8.6.2", - "ajv-formats": "^2.1.1", - "bcrypt": "^5.0.1", - "body-parser": "^1.19.0", - "canvas": "^2.9.3", - "cheerio": "^1.0.0-rc.10", - "dotenv": "^16.0.1", - "express": "^4.17.1", - "i18next": "^21.8.14", - "i18next-http-middleware": "^3.1.3", - "i18next-node-fs-backend": "^2.1.3", - "image-size": "^1.0.0", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "morgan": "^1.10.0", - "multer": "^1.4.5-lts.1", - "node-2fa": "^2.0.3", - "node-fetch": "^2.6.7", - "patch-package": "^6.4.7", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "supertest": "^6.1.6", - "typeorm": "^0.3.7" - }, - "devDependencies": { - "@babel/core": "^7.18.9", - "@babel/preset-env": "^7.18.9", - "@babel/preset-typescript": "^7.15.0", - "@types/bcrypt": "^5.0.0", - "@types/express": "^4.17.9", - "@types/i18next-node-fs-backend": "^2.1.0", - "@types/morgan": "^1.9.3", - "@types/multer": "^1.4.5", - "@types/node": "^18.0.6", - "jest": "^28.1.3", - "jest-expect-message": "^1.0.2", - "ts-node-dev": "^2.0.0", - "typescript": "^4.4.2", - "typescript-json-schema": "^0.54.0" - } - }, - "../cdn": { - "name": "@fosscord/cdn", - "version": "1.0.0", - "license": "AGPL-3.0-only", - "dependencies": { - "@aws-sdk/client-s3": "^3.137.0", - "@fosscord/util": "file:../util", - "@types/node-fetch": "^2.6.2", - "body-parser": "^1.19.0", - "dotenv": "^16.0.1", - "exif-be-gone": "^1.3.0", - "express": "^4.17.1", - "file-type": "16.5", - "image-size": "^1.0.0", - "jest": "^28.1.3", - "lambert-server": "^1.2.12", - "multer": "^1.4.5-lts.1", - "node-fetch": "^2.6.7", - "picocolors": "^1.0.0", - "supertest": "^6.1.6", - "typescript": "^4.1.2" - }, - "devDependencies": { - "@types/body-parser": "^1.19.0", - "@types/dotenv": "^8.2.0", - "@types/express": "^4.17.12", - "@types/multer": "^1.4.7", - "@types/node": "^18.6.3" - } - }, - "../gateway": { - "name": "@fosscord/gateway", - "version": "1.0.0", - "hasInstallScript": true, - "license": "AGPL-3.0-only", - "dependencies": { - "@fosscord/util": "file:../util", - "amqplib": "^0.10.1", - "dotenv": "^16.0.1", - "typeorm": "^0.3.7", - "ws": "^8.8.1" - }, - "devDependencies": { - "@types/amqplib": "^0.8.1", - "@types/node": "^18.0.6", - "@types/ws": "^8.5.3", - "ts-node-dev": "^2.0.0", - "ts-patch": "^2.0.1", - "typescript": "^4.2.3" - }, - "optionalDependencies": { - "@yukikaze-bot/erlpack": "^1.0.1" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@aws-crypto/crc32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-2.0.0.tgz", - "integrity": "sha512-TvE1r2CUueyXOuHdEigYjIZVesInd9KN+K/TFFNfkkxRThiNxO6i4ZqqAVMoEjAamZZ1AA8WXJkjCz7YShHPQA==", - "dependencies": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/crc32/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/crc32c": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-2.0.0.tgz", - "integrity": "sha512-vF0eMdMHx3O3MoOXUfBZry8Y4ZDtcuskjjKgJz8YfIDjLStxTZrYXk+kZqtl6A0uCmmiN/Eb/JbC/CndTV1MHg==", - "dependencies": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/crc32c/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/ie11-detection": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz", - "integrity": "sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==", - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/sha1-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-2.0.0.tgz", - "integrity": "sha512-3fIVRjPFY8EG5HWXR+ZJZMdWNRpwbxGzJ9IH9q93FpbgCH8u8GHRi46mZXp3cYD7gealmyqpm3ThZwLKJjWJhA==", - "dependencies": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha1-browser/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/sha256-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", - "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", - "dependencies": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/sha256-js": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/sha256-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", - "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", - "dependencies": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/supports-web-crypto": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz", - "integrity": "sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==", - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/util": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz", - "integrity": "sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==", - "dependencies": { - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/util/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-sdk/abort-controller": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.127.0.tgz", - "integrity": "sha512-G77FLYcl9egUoD3ZmR6TX94NMqBMeT53hBGrEE3uVUJV1CwfGKfaF007mPpRZnIB3avnJBQGEK6MrwlCfv2qAw==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/chunked-blob-reader": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.55.0.tgz", - "integrity": "sha512-o/xjMCq81opAjSBjt7YdHJwIJcGVG5XIV9+C2KXcY5QwVimkOKPybWTv0mXPvSwSilSx+EhpLNhkcJuXdzhw4w==", - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/chunked-blob-reader-native": { - "version": "3.109.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.109.0.tgz", - "integrity": "sha512-Ybn3vDZ3CqGyprL2qdF6QZqoqlx8lA3qOJepobjuKKDRw+KgGxjUY4NvWe0R2MdRoduyaDj6uvhIay0S1MOSJQ==", - "dependencies": { - "@aws-sdk/util-base64-browser": "3.109.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/client-s3": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.142.0.tgz", - "integrity": "sha512-hCGhaxEpbbpwy++CltjMoDgt6814kdq+c6fkvh2UwLg6ojx9Z/Z2DMZcIuvpVNr2DFm6xevXzEHrx9i7lOd5Rw==", - "dependencies": { - "@aws-crypto/sha1-browser": "2.0.0", - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.142.0", - "@aws-sdk/config-resolver": "3.130.0", - "@aws-sdk/credential-provider-node": "3.142.0", - "@aws-sdk/eventstream-serde-browser": "3.127.0", - "@aws-sdk/eventstream-serde-config-resolver": "3.127.0", - "@aws-sdk/eventstream-serde-node": "3.127.0", - "@aws-sdk/fetch-http-handler": "3.131.0", - "@aws-sdk/hash-blob-browser": "3.127.0", - "@aws-sdk/hash-node": "3.127.0", - "@aws-sdk/hash-stream-node": "3.127.0", - "@aws-sdk/invalid-dependency": "3.127.0", - "@aws-sdk/md5-js": "3.127.0", - "@aws-sdk/middleware-bucket-endpoint": "3.127.0", - "@aws-sdk/middleware-content-length": "3.127.0", - "@aws-sdk/middleware-expect-continue": "3.127.0", - "@aws-sdk/middleware-flexible-checksums": "3.127.0", - "@aws-sdk/middleware-host-header": "3.127.0", - "@aws-sdk/middleware-location-constraint": "3.127.0", - "@aws-sdk/middleware-logger": "3.127.0", - "@aws-sdk/middleware-recursion-detection": "3.127.0", - "@aws-sdk/middleware-retry": "3.127.0", - "@aws-sdk/middleware-sdk-s3": "3.127.0", - "@aws-sdk/middleware-serde": "3.127.0", - "@aws-sdk/middleware-signing": "3.130.0", - "@aws-sdk/middleware-ssec": "3.127.0", - "@aws-sdk/middleware-stack": "3.127.0", - "@aws-sdk/middleware-user-agent": "3.127.0", - "@aws-sdk/node-config-provider": "3.127.0", - "@aws-sdk/node-http-handler": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/signature-v4-multi-region": "3.130.0", - "@aws-sdk/smithy-client": "3.142.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/url-parser": "3.127.0", - "@aws-sdk/util-base64-browser": "3.109.0", - "@aws-sdk/util-base64-node": "3.55.0", - "@aws-sdk/util-body-length-browser": "3.55.0", - "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.142.0", - "@aws-sdk/util-defaults-mode-node": "3.142.0", - "@aws-sdk/util-stream-browser": "3.131.0", - "@aws-sdk/util-stream-node": "3.129.0", - "@aws-sdk/util-user-agent-browser": "3.127.0", - "@aws-sdk/util-user-agent-node": "3.127.0", - "@aws-sdk/util-utf8-browser": "3.109.0", - "@aws-sdk/util-utf8-node": "3.109.0", - "@aws-sdk/util-waiter": "3.127.0", - "@aws-sdk/xml-builder": "3.142.0", - "entities": "2.2.0", - "fast-xml-parser": "3.19.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.142.0.tgz", - "integrity": "sha512-Pewcpxq+wqcbB3t3s6KImBUUf+qqBNqMfd2wgQ3PdpYBjlNzrWYLHAnIT1vhIFjOGJXDi/qwF8FX7qbWNUB7Lg==", - "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.130.0", - "@aws-sdk/fetch-http-handler": "3.131.0", - "@aws-sdk/hash-node": "3.127.0", - "@aws-sdk/invalid-dependency": "3.127.0", - "@aws-sdk/middleware-content-length": "3.127.0", - "@aws-sdk/middleware-host-header": "3.127.0", - "@aws-sdk/middleware-logger": "3.127.0", - "@aws-sdk/middleware-recursion-detection": "3.127.0", - "@aws-sdk/middleware-retry": "3.127.0", - "@aws-sdk/middleware-serde": "3.127.0", - "@aws-sdk/middleware-stack": "3.127.0", - "@aws-sdk/middleware-user-agent": "3.127.0", - "@aws-sdk/node-config-provider": "3.127.0", - "@aws-sdk/node-http-handler": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/smithy-client": "3.142.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/url-parser": "3.127.0", - "@aws-sdk/util-base64-browser": "3.109.0", - "@aws-sdk/util-base64-node": "3.55.0", - "@aws-sdk/util-body-length-browser": "3.55.0", - "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.142.0", - "@aws-sdk/util-defaults-mode-node": "3.142.0", - "@aws-sdk/util-user-agent-browser": "3.127.0", - "@aws-sdk/util-user-agent-node": "3.127.0", - "@aws-sdk/util-utf8-browser": "3.109.0", - "@aws-sdk/util-utf8-node": "3.109.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@aws-sdk/client-sts": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.142.0.tgz", - "integrity": "sha512-rOa1MTI1h3kTjlHkItAlXGHefM5sjsfw3muhNEhzrZBuhpOrLU8apbiG2rcJqB8m0prMoY39PuG+WquxN4ap6g==", - "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.130.0", - "@aws-sdk/credential-provider-node": "3.142.0", - "@aws-sdk/fetch-http-handler": "3.131.0", - "@aws-sdk/hash-node": "3.127.0", - "@aws-sdk/invalid-dependency": "3.127.0", - "@aws-sdk/middleware-content-length": "3.127.0", - "@aws-sdk/middleware-host-header": "3.127.0", - "@aws-sdk/middleware-logger": "3.127.0", - "@aws-sdk/middleware-recursion-detection": "3.127.0", - "@aws-sdk/middleware-retry": "3.127.0", - "@aws-sdk/middleware-sdk-sts": "3.130.0", - "@aws-sdk/middleware-serde": "3.127.0", - "@aws-sdk/middleware-signing": "3.130.0", - "@aws-sdk/middleware-stack": "3.127.0", - "@aws-sdk/middleware-user-agent": "3.127.0", - "@aws-sdk/node-config-provider": "3.127.0", - "@aws-sdk/node-http-handler": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/smithy-client": "3.142.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/url-parser": "3.127.0", - "@aws-sdk/util-base64-browser": "3.109.0", - "@aws-sdk/util-base64-node": "3.55.0", - "@aws-sdk/util-body-length-browser": "3.55.0", - "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.142.0", - "@aws-sdk/util-defaults-mode-node": "3.142.0", - "@aws-sdk/util-user-agent-browser": "3.127.0", - "@aws-sdk/util-user-agent-node": "3.127.0", - "@aws-sdk/util-utf8-browser": "3.109.0", - "@aws-sdk/util-utf8-node": "3.109.0", - "entities": "2.2.0", - "fast-xml-parser": "3.19.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@aws-sdk/config-resolver": { - "version": "3.130.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.130.0.tgz", - "integrity": "sha512-7dkCHHI9kRcHW6YNr9/2Ub6XkvU9Fu6H/BnlKbaKlDR8jq7QpaFhPhctOVi5D/NDpxJgALifexFne0dvo3piTw==", - "dependencies": { - "@aws-sdk/signature-v4": "3.130.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-config-provider": "3.109.0", - "@aws-sdk/util-middleware": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.127.0.tgz", - "integrity": "sha512-Ig7XhUikRBlnRTYT5JBGzWfYZp68X5vkFVIFCmsHHt/qVy0Nz9raZpmDHicdS1u67yxDkWgCPn/bNevWnM0GFg==", - "dependencies": { - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-imds": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.127.0.tgz", - "integrity": "sha512-I6KlIBBzmJn/U1KikiC50PK3SspT9G5lkVLBaW5a6YfOcijqVTXfAN3kYzqhfeS0j4IgfJEwKVsjsZfmprJO5A==", - "dependencies": { - "@aws-sdk/node-config-provider": "3.127.0", - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/url-parser": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.142.0.tgz", - "integrity": "sha512-joMJTxUTNmxURnVmmd7XhtwOwijMjh7z09V8o2EHQMk+ak+rhaRgqb2kTA2nO0J3SRxdO5z5SKkyQgW0d1fY9g==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.127.0", - "@aws-sdk/credential-provider-imds": "3.127.0", - "@aws-sdk/credential-provider-sso": "3.142.0", - "@aws-sdk/credential-provider-web-identity": "3.127.0", - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/shared-ini-file-loader": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.142.0.tgz", - "integrity": "sha512-JkhCKNkEhCS2vgD/qg5hJPatupNLObqts9FXiDia5CF6w8YcHLH+mWSvhUMCUGkunAOvFHDkQL1uPXfoQuJvPg==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.127.0", - "@aws-sdk/credential-provider-imds": "3.127.0", - "@aws-sdk/credential-provider-ini": "3.142.0", - "@aws-sdk/credential-provider-process": "3.127.0", - "@aws-sdk/credential-provider-sso": "3.142.0", - "@aws-sdk/credential-provider-web-identity": "3.127.0", - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/shared-ini-file-loader": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.127.0.tgz", - "integrity": "sha512-6v0m2lqkO9J5fNlTl+HjriQNIdfg8mjVST544+5y9EnC/FVmTnIz64vfHveWdNkP/fehFx7wTimNENtoSqCn3A==", - "dependencies": { - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/shared-ini-file-loader": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.142.0.tgz", - "integrity": "sha512-jJvp/A5xrikaeL0DhjhQTvUc0+eF0hN5Nbo+nxpnUOiOOkyqs329g65NI1TmLp/OzDcqQ/8p5vj2+7ufTGEOXQ==", - "dependencies": { - "@aws-sdk/client-sso": "3.142.0", - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/shared-ini-file-loader": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.127.0.tgz", - "integrity": "sha512-85ahDZnLYB3dqkW+cQ0bWt+NVqOoxomTrJoq3IC2q6muebeFrJ0pyf0JEW/RNRzBiUvvsZujzGdWifzWyQKfVg==", - "dependencies": { - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/eventstream-codec": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.127.0.tgz", - "integrity": "sha512-+Tlujx3VkB4DK8tYzG0rwxIE0ee6hWItQgSEREEmi5CwHQFw7VpRLYAShYabEx9wIJmRFObWzhlKxWNRi+TfaA==", - "dependencies": { - "@aws-crypto/crc32": "2.0.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-hex-encoding": "3.109.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/eventstream-serde-browser": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.127.0.tgz", - "integrity": "sha512-d1rTK4ljEp3Y/BQ78/AJ7eqgGyI6TE0bxNosCmXWcUBv00Tr5cerPqPe7Zvw8XwIMPX5y8cjtd1/cOtB2ePaBw==", - "dependencies": { - "@aws-sdk/eventstream-serde-universal": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/eventstream-serde-config-resolver": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.127.0.tgz", - "integrity": "sha512-dYvLfQYcKLOFtZVgwLwKDCykAxNkDyDLQRWytJK9DHCyjRig66IKi1codts9vOy4j0CeYwnXWs5WDavrUaE05g==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/eventstream-serde-node": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.127.0.tgz", - "integrity": "sha512-Ie59jZYAIw3Kt6GePvEilp1k3JoYEQpY3WIyVZltm3dkVf0GmzhCZrPROH9vgF3qApzu1aGOWDV2wX91poXF8A==", - "dependencies": { - "@aws-sdk/eventstream-serde-universal": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/eventstream-serde-universal": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.127.0.tgz", - "integrity": "sha512-cJLSTtYDGTevknMTykzHpcDNRbD6yGve8FBUKSAczuNVjXZOedj0GbHJqkASuLj0ZnojbKBdCx4uu1XGyvubng==", - "dependencies": { - "@aws-sdk/eventstream-codec": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/fetch-http-handler": { - "version": "3.131.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.131.0.tgz", - "integrity": "sha512-eNxmPZQX2IUeBGWHNC7eNTekWn9VIPLYEMKJbKYUBJryxuTJ7TtLeyEK5oakUjMwP1AUvWT+CV7C+8L7uG1omQ==", - "dependencies": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/querystring-builder": "3.127.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-base64-browser": "3.109.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/hash-blob-browser": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.127.0.tgz", - "integrity": "sha512-XH9s2w6GXCtDI+3/y+sDAzMWJRTvhRXJJtI1fVDsCiyq96SYUTNKLLaUSuR01uawEBiRDBqGDDPMT8qJPDXc/w==", - "dependencies": { - "@aws-sdk/chunked-blob-reader": "3.55.0", - "@aws-sdk/chunked-blob-reader-native": "3.109.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/hash-node": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.127.0.tgz", - "integrity": "sha512-wx7DKlXdKebH4JcMsOevdsm2oDNMVm36kuMm0XWRIrFWQ/oq7OquDpEMJzWvGqWF/IfFUpb7FhAWZZpALwlcwA==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/hash-stream-node": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.127.0.tgz", - "integrity": "sha512-ZCNqi+FJViYFCo8JfSx+YK0Hd/SC555gHqBe24GVBMCDqJ8UFIled7tF+GOQ8wTcKjxuwp/0EXDTXoaAb0K89g==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/invalid-dependency": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.127.0.tgz", - "integrity": "sha512-bxvmtmJ6gIRfOHvh1jAPZBH2mzppEblPjEOFo4mOzXz4U3qPIxeuukCjboMnGK9QEpV2wObWcYYld0vxoRrfiA==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/is-array-buffer": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz", - "integrity": "sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/md5-js": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.127.0.tgz", - "integrity": "sha512-9FzD++p2bvfZ56hbDxvGcLlA9JIMt9uZB/m4NEvbuvrpx1qnUpFv6HqthhGaVuhctkK25hONT5ZpOYHSisATrA==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-utf8-browser": "3.109.0", - "@aws-sdk/util-utf8-node": "3.109.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.127.0.tgz", - "integrity": "sha512-wJpXxWceBDhWktoxrRb4s6tMx0dWsEGYIaV0KkQPGhTPk2KMUgwa4xApfCXXVfYcE3THk486OKwHhPrR5jpe+g==", - "dependencies": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-arn-parser": "3.55.0", - "@aws-sdk/util-config-provider": "3.109.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-content-length": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.127.0.tgz", - "integrity": "sha512-AFmMaIEW3Rzg0TaKB9l/RENLowd7ZEEOpm0trYw1CgUUORWW/ydCsDT7pekPlC25CPbhUmWXCSA4xPFSYOVnDw==", - "dependencies": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.127.0.tgz", - "integrity": "sha512-+X7mdgFqt9UqUDeGuMt+afR8CBX9nMecTxEIilAKdVOLx+fuXzHnC2mpddKMtiE9IGKMU4BI1Ahf7t32Odhs1Q==", - "dependencies": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.127.0.tgz", - "integrity": "sha512-sXkAwhE9dikO72sEJ7DrUCo5mawauAxICCqipCCSGp0geSkptvtZHhySgJNMVSbUJQmu5bcS+zsFpFVwuJvGxg==", - "dependencies": { - "@aws-crypto/crc32": "2.0.0", - "@aws-crypto/crc32c": "2.0.0", - "@aws-sdk/is-array-buffer": "3.55.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.127.0.tgz", - "integrity": "sha512-e2gTLJb5lYP9lRV7hN3rKY2l4jv8OygOoHElZJ3Z8KPZskjHelYPcQ8XbdfhSXXxC3vc/0QqN0ResFt3W3Pplg==", - "dependencies": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.127.0.tgz", - "integrity": "sha512-UtPmbOKEVu+Ue7CwICFSOOOSePV8Piydco/v2IpdRkMO0e4bqQ3Tn0XprBlWWfSW4QCtAPzydrArLsUdk636GA==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-logger": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.127.0.tgz", - "integrity": "sha512-jMNLcZB/ECA7OfkNBLNeAlrLRehyfnUeNQJHW3kcxs9h1+6VxaF6wY+WKozszLI7/3OBzQrFHBQCfRZV7ykSLg==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.127.0.tgz", - "integrity": "sha512-tB6WX+Z1kUKTnn5h38XFrTCzoqPKjUZLUjN4Wb27/cbeSiTSKGAZcCXHOJm36Ukorl5arlybQTqGe689EU00Hw==", - "dependencies": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-retry": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.127.0.tgz", - "integrity": "sha512-ZSvg/AyGUacWnf3i8ZbyImtiCH+NyafF8uV7bITP7JkwPrG+VdNocJZOr88GRM0c1A0jfkOf7+oq+fInPwwiNA==", - "dependencies": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/service-error-classification": "3.127.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-middleware": "3.127.0", - "tslib": "^2.3.1", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.127.0.tgz", - "integrity": "sha512-q1mkEN7kYYdQ3LOHIhaT56omYe8DCubyiCKOXuEo5ZiIkE5iq06K/BxWxj3f8bFZxSX80Ma1m8XA5jcOEMphSA==", - "dependencies": { - "@aws-sdk/middleware-bucket-endpoint": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-arn-parser": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.130.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.130.0.tgz", - "integrity": "sha512-FDfs7+ohbhEK3eH3Dshr6JDiL8P72bp3ffeNpPBXuURFqwt4pCmjHuX3SqQR0JIJ2cl3aIdxc17rKaZJfOjtPw==", - "dependencies": { - "@aws-sdk/middleware-signing": "3.130.0", - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/signature-v4": "3.130.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-serde": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.127.0.tgz", - "integrity": "sha512-xmWMYV/t9M+b9yHjqaD1noDNJJViI2QwOH7TQZ9VbbrvdVtDrFuS9Sf9He80TBCJqeHShwQN9783W1I3Pu/8kw==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-signing": { - "version": "3.130.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.130.0.tgz", - "integrity": "sha512-JePq5XLR9TfRN3RQ0d7Za/bEW5D3xgtD1FNAwHeenWALeozMuQgRPjM5RroCnL/5jY3wuvCZI7cSXeqhawWqmA==", - "dependencies": { - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/signature-v4": "3.130.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.127.0.tgz", - "integrity": "sha512-R5A13EvdYPdYD2Tq9eW5jqIdscyZlQykQXFEolBD2oi4pew7TZpc/5aazZC0zo9YKJ29qiUR1P4NvjcFJ7zFBg==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-stack": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.127.0.tgz", - "integrity": "sha512-S1IoUE5o1vCmjsF5nIE8zlItNOM1UE+lhmZeigF7knXJ9+a6ewMB6POAj/s4eoi0wcn0eSnAGsqJCWMSUjOPLA==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.127.0.tgz", - "integrity": "sha512-CHxgswoOzdkOEoIq7Oyob3Sx/4FYUv6BhUesAX7MNshaDDsTQPbSWjw5bqZDiL/gO+X/34fvqCVVpVD2GvxW/g==", - "dependencies": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/node-config-provider": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.127.0.tgz", - "integrity": "sha512-bAHkASMhLZHT1yv2TX6OJGFV9Lc3t1gKfTMEKdXM2O2YhGfSx9A/qLeJm79oDfnILWQtSS2NicxlRDI2lYGf4g==", - "dependencies": { - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/shared-ini-file-loader": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/node-http-handler": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.127.0.tgz", - "integrity": "sha512-pyMKvheK8eDwWLgYIRsWy8wiyhsbYYcqkZQs3Eh6upI4E8iCY7eMmhWvHYCibvsO+UjsOwa4cAMOfwnv/Z9s8A==", - "dependencies": { - "@aws-sdk/abort-controller": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/querystring-builder": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/property-provider": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.127.0.tgz", - "integrity": "sha512-JxenxlTEkWfLrtJqIjaXaJzAVQbbscoCb5bNjmdud07ESLVfWRKJx2nAJdecHKYp2M5NQyqBuFhQ1ELSFYQKCA==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/protocol-http": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.127.0.tgz", - "integrity": "sha512-UG83PVuKX40wilG2uRU0Fvz4OY8Bt+bSPOG776DFjwIXYzK7BwpJm9H2XI2HLhS5WxrJHhwrLBRgW6UiykMnFw==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/querystring-builder": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.127.0.tgz", - "integrity": "sha512-tsoyp4lLPsASPDYWsezGAHD8VJsZbjUNATNAzTCFdH6p+4SKBK83Q5kfXCzxt13M+l3oKbxxIWLvS0kVQFyltQ==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-uri-escape": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/querystring-parser": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.127.0.tgz", - "integrity": "sha512-Vn/Dv+PqUSepp/DzLqq0LJJD8HdPefJCnLbO5WcHCARHSGlyGlZUFEM45k/oEHpTvgMXj/ORaP3A+tLwLu0AmA==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/service-error-classification": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.127.0.tgz", - "integrity": "sha512-wjZY9rnlA8SPrICUumTYicEKtK4/yKB62iadUk66hxe8MrH8JhuHH2NqIad0Pt/bK/YtNVhd3yb4pRapOeY5qQ==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/shared-ini-file-loader": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.127.0.tgz", - "integrity": "sha512-S3Nn4KRTqoJsB/TbRZSWBBUrkckNMR0Juqz7bOB+wupVvddKP6IcpspSC/GX9zgJjVMV8iGisZ6AUsYsC5r+cA==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/signature-v4": { - "version": "3.130.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.130.0.tgz", - "integrity": "sha512-g5G1a1NHL2uOoFfC2zQdZcj+wbjgBQPkx6xGdtqNKf9v2kS0n6ap5JUGEaqWE02lUlmWHsoMsS73hXtzwXaBRQ==", - "dependencies": { - "@aws-sdk/is-array-buffer": "3.55.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-hex-encoding": "3.109.0", - "@aws-sdk/util-middleware": "3.127.0", - "@aws-sdk/util-uri-escape": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.130.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.130.0.tgz", - "integrity": "sha512-ZRRoPRoCVdkGDtjuog81pqHsSLfnXK6ELrWm4Dq8xdcHQGbEDNdYmeXARXG9yPAO42x9yIJXHNutMz5Y/P64cw==", - "dependencies": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/signature-v4": "3.130.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-arn-parser": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "@aws-sdk/signature-v4-crt": "^3.118.0" - }, - "peerDependenciesMeta": { - "@aws-sdk/signature-v4-crt": { - "optional": true - } - } - }, - "node_modules/@aws-sdk/smithy-client": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.142.0.tgz", - "integrity": "sha512-G38YWTfSFZb5cOH6IwLct530Uy8pnmJvJFeC1pd1nkKD4PRZb+bI2w4xXSX+znYdLA71RYK620OtVKJlB44PtA==", - "dependencies": { - "@aws-sdk/middleware-stack": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/types": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.127.0.tgz", - "integrity": "sha512-e0wtx2IkOl7rwfKfLH5pPTzQ+d45V7b1WrjeL0WDI8kOu6w+sXmhNxI6uM2kf0k4NiTLN84lW290AEWupey9Og==", - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/url-parser": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.127.0.tgz", - "integrity": "sha512-njZ7zn41JHRpNfr3BCesVXCLZE0zcWSfEdtRV0ICw0cU1FgYcKELSuY9+gLUB4ci6uc7gq7mPE8+w30FcM4QeA==", - "dependencies": { - "@aws-sdk/querystring-parser": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-arn-parser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.55.0.tgz", - "integrity": "sha512-76KJxp4MRWufHYWys7DFl64znr5yeJ3AIQNAPCKKw1sP0hzO7p6Kx0PaJnw9x+CPSzOrT4NbuApL6/srYhKDGg==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-base64-browser": { - "version": "3.109.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.109.0.tgz", - "integrity": "sha512-lAZ6fyDGiRLaIsKT9qh7P9FGuNyZ4gAbr1YOSQk/5mHtaTuUvxlPptZuInNM/0MPQm6lpcot00D8IWTucn4PbA==", - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-base64-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz", - "integrity": "sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ==", - "dependencies": { - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-body-length-browser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz", - "integrity": "sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q==", - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-body-length-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz", - "integrity": "sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-buffer-from": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz", - "integrity": "sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==", - "dependencies": { - "@aws-sdk/is-array-buffer": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-config-provider": { - "version": "3.109.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.109.0.tgz", - "integrity": "sha512-GrAZl/aBv0A28LkyNyq8SPJ5fmViCwz80fWLMeWx/6q5AbivuILogjlWwEZSvZ9zrlHOcFC0+AnCa5pQrjaslw==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-defaults-mode-browser": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.142.0.tgz", - "integrity": "sha512-vVB/CrodMmIfv4v54MyBlKO0sQSI/+Mvs4g5gMyVjmT4a+1gnktJQ9R6ZHQ2/ErGewcra6eH9MU5T0r1kYe0+w==", - "dependencies": { - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/types": "3.127.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-defaults-mode-node": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.142.0.tgz", - "integrity": "sha512-13d5RZLO13EDwll3COUq3D4KVsqM63kdf+YjG5mzXR1eXo6GVjghfQfiy0MYM6YbAjTfJxZQkc0nFgWLU8jdyg==", - "dependencies": { - "@aws-sdk/config-resolver": "3.130.0", - "@aws-sdk/credential-provider-imds": "3.127.0", - "@aws-sdk/node-config-provider": "3.127.0", - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-hex-encoding": { - "version": "3.109.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.109.0.tgz", - "integrity": "sha512-s8CgTNrn3cLkrdiohfxLuOYPCanzvHn/aH5RW6DaMoeQiG5Hl9QUiP/WtdQ9QQx3xvpQFpmvxIaSBwSgFNLQxA==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-locate-window": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz", - "integrity": "sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-middleware": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.127.0.tgz", - "integrity": "sha512-EwAPPed9TNqh+Wov2VStLn2NuJ/Wyt7IkZCbCsBuSNp3BFZ1V4gfwTjqtKCtB2LQgQ48MTgWgNCvrH0zjCSPGg==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-stream-browser": { - "version": "3.131.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.131.0.tgz", - "integrity": "sha512-1YFbBPDu+elIgp8z1woUfT7zM+2PAvgJiw6ljDBuAlJzsP5xMhwk0X9e+8aQ+Qe4XftA0e7y/PH0gqvjNgCx2A==", - "dependencies": { - "@aws-sdk/fetch-http-handler": "3.131.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-base64-browser": "3.109.0", - "@aws-sdk/util-hex-encoding": "3.109.0", - "@aws-sdk/util-utf8-browser": "3.109.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-stream-node": { - "version": "3.129.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.129.0.tgz", - "integrity": "sha512-1iWqsWvVXyP4JLPPPs8tBZKyzs7D5e7KctXuCtIjI+cnGOCeVLL+X4L/7KDZfV7sI2D6vONtIoTnUjMl5V/kEg==", - "dependencies": { - "@aws-sdk/node-http-handler": "3.127.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-uri-escape": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz", - "integrity": "sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.127.0.tgz", - "integrity": "sha512-uO2oHmJswuYKJS+GiMdYI8izhpC9M7/jFFvnAmLlTEVwpEi1VX9KePAOF+u5AaBC2kzITo/7dg141XfRHZloIQ==", - "dependencies": { - "@aws-sdk/types": "3.127.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.127.0.tgz", - "integrity": "sha512-3P/M4ZDD2qMeeoCk7TE/Mw7cG5IjB87F6BP8nI8/oHuaz7j6fsI7D49SNpyjl8JApRynZ122Ad6hwQwRj3isYw==", - "dependencies": { - "@aws-sdk/node-config-provider": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - }, - "peerDependencies": { - "aws-crt": ">=1.0.0" - }, - "peerDependenciesMeta": { - "aws-crt": { - "optional": true - } - } - }, - "node_modules/@aws-sdk/util-utf8-browser": { - "version": "3.109.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.109.0.tgz", - "integrity": "sha512-FmcGSz0v7Bqpl1SE8G1Gc0CtDpug+rvqNCG/szn86JApD/f5x8oByjbEiAyTU2ZH2VevUntx6EW68ulHyH+x+w==", - "dependencies": { - "tslib": "^2.3.1" - } - }, - "node_modules/@aws-sdk/util-utf8-node": { - "version": "3.109.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.109.0.tgz", - "integrity": "sha512-Ti/ZBdvz2eSTElsucjzNmzpyg2MwfD1rXmxD0hZuIF8bPON/0+sZYnWd5CbDw9kgmhy28dmKue086tbZ1G0iLQ==", - "dependencies": { - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/util-waiter": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.127.0.tgz", - "integrity": "sha512-E5qrRpBJS8dmClqSDW1pWVMKzCG/mxabG6jVUtlW/WLHnl/znxGaOQc6tnnwKik0nEq/4DpT9fEfPUz9JiLrkw==", - "dependencies": { - "@aws-sdk/abort-controller": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@aws-sdk/xml-builder": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.142.0.tgz", - "integrity": "sha512-e8rFjm5y9ngFc/cPwWMNn/CmMMrLx98CajWew9q7OzP6OOXQJ0H6TaRps2uQPM5XUv3/Ab5YQCV3NiaLJLqqNg==", - "dependencies": { - "tslib": "^2.3.1" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", - "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.10", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/generator": { - "version": "7.18.12", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", - "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.10", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz", - "integrity": "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.9", - "@babel/helper-split-export-declaration": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", - "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", - "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", - "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.18.9", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.11", - "@babel/types": "^7.18.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", - "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", - "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", - "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-replace-supers": "^7.18.9", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", - "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", - "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", - "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typescript": { - "version": "7.18.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz", - "integrity": "sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-typescript": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", - "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.18.10", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", - "@babel/plugin-transform-classes": "^7.18.9", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.9", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.9", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.8", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.9", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.10", - "babel-plugin-polyfill-corejs2": "^0.3.2", - "babel-plugin-polyfill-corejs3": "^0.5.3", - "babel-plugin-polyfill-regenerator": "^0.4.0", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-typescript": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", - "dependencies": { - "regenerator-runtime": "^0.13.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", - "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.11", - "@babel/types": "^7.18.10", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", - "dev": true, - "dependencies": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "devOptional": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@fosscord/api": { - "resolved": "../api", - "link": true - }, - "node_modules/@fosscord/cdn": { - "resolved": "../cdn", - "link": true - }, - "node_modules/@fosscord/gateway": { - "resolved": "../gateway", - "link": true - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "optional": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/core": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", - "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/reporters": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^28.1.3", - "jest-config": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-resolve-dependencies": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "jest-watcher": "^28.1.3", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", - "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", - "dev": true, - "dependencies": { - "expect": "^28.1.3", - "jest-snapshot": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", - "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", - "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/types": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", - "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", - "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.13", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", - "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", - "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz", - "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==", - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "optional": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "optional": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@ovos-media/ts-transform-paths": { - "version": "1.7.18-1", - "resolved": "https://registry.npmjs.org/@ovos-media/ts-transform-paths/-/ts-transform-paths-1.7.18-1.tgz", - "integrity": "sha512-5uYtraYSWg1klaMYus3ouCOUUNzcI40pS0NCaw0PhoaPTimVfT3MV061ZLYR/4F14THqyofMjmCNcHgFrBX3AA==", - "dependencies": { - "@zerollup/ts-helpers": "^1.7.18" - }, - "peerDependencies": { - "typescript": ">=3.7.2" - } - }, - "node_modules/@sentry/core": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.7.0.tgz", - "integrity": "sha512-Z15ACiuiFINFcK4gbMrnejLn4AVjKBPJOWKrrmpIe8mh+Y9diOuswt5mMUABs+jhpZvqht3PBLLGBL0WMsYMYA==", - "dependencies": { - "@sentry/hub": "7.7.0", - "@sentry/types": "7.7.0", - "@sentry/utils": "7.7.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/core/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/hub": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-7.7.0.tgz", - "integrity": "sha512-6gydK234+a0nKhBRDdIJ7Dp42CaiW2juTiHegUVDq+482balVzbZyEAmESCmuzKJhx5BhlCElVxs/cci1NjMpg==", - "dependencies": { - "@sentry/types": "7.7.0", - "@sentry/utils": "7.7.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/hub/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/node": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.7.0.tgz", - "integrity": "sha512-i62x23NHEhLe6CJ6l9E30uRCUMm0VMz9aUmmrjW+9uxS1mZhHTG2kpbU16ozyh9KTLswKDOSE75Z+MzQpGSQ/Q==", - "dependencies": { - "@sentry/core": "7.7.0", - "@sentry/hub": "7.7.0", - "@sentry/types": "7.7.0", - "@sentry/utils": "7.7.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/node/node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/@sentry/node/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/tracing": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.7.0.tgz", - "integrity": "sha512-HNmvTwemuc21q/K6HXsSp9njkne6N1JQ71TB+QGqYU5VtxsVgYSUhhYqV6WcHz7LK4Hj6TvNFoeu69/rO0ysgw==", - "dependencies": { - "@sentry/hub": "7.7.0", - "@sentry/types": "7.7.0", - "@sentry/utils": "7.7.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/tracing/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sentry/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.7.0.tgz", - "integrity": "sha512-4x8O7uerSGLnYC10krHl9t8h7xXHn5FextqKYbTCXCnx2hC8D+9lz8wcbQAFo0d97wiUYqI8opmEgFVGx7c5hQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/utils": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.7.0.tgz", - "integrity": "sha512-fD+ROSFpeJlK7bEvUT2LOW7QqgjBpXJwVISKZ0P2fuzclRC3KoB2pbZgBM4PXMMTiSzRGWhvfRRjBiBvQJBBJQ==", - "dependencies": { - "@sentry/types": "7.7.0", - "tslib": "^1.9.3" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@sentry/utils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@sinclair/typebox": { - "version": "0.24.27", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.27.tgz", - "integrity": "sha512-K7C7IlQ3zLePEZleUN21ceBA2aLcMnLHTLph8QWk1JK37L90obdpY+QGY8bXMKxf1ht1Z0MNewvXxWv0oGDYFg==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@sqltools/formatter": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz", - "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" - }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "devOptional": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "devOptional": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "devOptional": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "devOptional": true - }, - "node_modules/@types/amqplib": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz", - "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==", - "dev": true, - "dependencies": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "node_modules/@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.0.tgz", - "integrity": "sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/bcrypt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-5.0.0.tgz", - "integrity": "sha512-agtcFKaruL8TmcvqbndlqHPSJgsolhf/qPWchFlgnW1gECTN/nKbFcoFnvKAQRFfKbh+BO6A3SWdJu9t+xF3Lw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "node_modules/@types/body-parser": { - "version": "1.19.1", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/dotenv": { - "version": "8.2.0", - "integrity": "sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw==", - "deprecated": "This is a stub types definition. dotenv provides its own type definitions, so you do not need this installed.", - "dev": true, - "dependencies": { - "dotenv": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.13", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.24", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/i18next-node-fs-backend": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.1.tgz", - "integrity": "sha512-ESvH90OICQkKU3yuuRzF6YfHt5KACE55FOiUM59mMGnC+h03lHGdEYo3z3THbwS5FdMskLyIs2O7f6Oaz8P9sw==", - "dev": true, - "dependencies": { - "i18next": ">=17.0.11" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", - "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "node_modules/@types/morgan": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.3.tgz", - "integrity": "sha512-BiLcfVqGBZCyNCnCH3F4o2GmDLrpy0HeBVnNlyZG4fo88ZiE9SoiBe3C+2ezuwbjlEyT+PDZ17//TAlRxAn75Q==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/multer": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz", - "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/node": { - "version": "18.0.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz", - "integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==" - }, - "node_modules/@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/node-os-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/node-os-utils/-/node-os-utils-1.3.0.tgz", - "integrity": "sha512-XwVteWQx/XkfRPyaGkw8dEbrCAkoRZ73pI3XznUYIpzbCfpQB3UnDlR5TnmdhetlT889tUJGF8QWo9xrgTpsiA==", - "dev": true - }, - "node_modules/@types/notp": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/notp/-/notp-2.0.2.tgz", - "integrity": "sha512-JUcVYN9Tmw0AjoAfvjslS4hbv39fPBbZdftBK3b50g5z/DmhLsu6cd0UOEBiQuMwy2FirshF2Gk9gAvfWjshMw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/stream-buffers": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.4.tgz", - "integrity": "sha512-qU/K1tb2yUdhXkLIATzsIPwbtX6BpZk0l3dPW6xqWyhfzzM1ECaQ/8faEnu3CNraLiQ9LHyQQPBGp7N9Fbs25w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==", - "dev": true - }, - "node_modules/@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", - "dev": true - }, - "node_modules/@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.11.tgz", - "integrity": "sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" - }, - "node_modules/@zerollup/ts-helpers": { - "version": "1.7.18", - "resolved": "https://registry.npmjs.org/@zerollup/ts-helpers/-/ts-helpers-1.7.18.tgz", - "integrity": "sha512-S9zN+y+i5yN/evfWquzSO3lubqPXIsPQf6p9OiPMpRxDx/0totPLF39XoRw48Dav5dSvbIE8D2eAPpXXJxvKwg==", - "dependencies": { - "resolve": "^1.12.0" - }, - "peerDependencies": { - "typescript": ">=3.7.2" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "optional": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/agentkeepalive/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agentkeepalive/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "optional": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/agentkeepalive/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "optional": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/amqplib": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.10.2.tgz", - "integrity": "sha512-l8U1thHT5QRNJF6Fv6ZveMeHV/bl+3UROQBn/cLOwRfeV3F0syZxkjnumJCG4NMvqfy9wT7mCgwpPSq2fApRpA==", - "dependencies": { - "bitsyntax": "~0.1.0", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "url-parse": "~1.5.10" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/amqplib/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/amqplib/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/app-root-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" - }, - "node_modules/aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/babel-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", - "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", - "dev": true, - "dependencies": { - "@jest/transform": "^28.1.3", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", - "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", - "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.2", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", - "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.2", - "core-js-compat": "^3.21.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", - "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", - "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^28.1.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/basic-auth/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/bcrypt": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", - "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^3.1.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/bcrypt/node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bitsyntax": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz", - "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==", - "dependencies": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/bitsyntax/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, - "node_modules/bowser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-more-ints": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz", - "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "optional": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001374", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz", - "integrity": "sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/canvas": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.9.3.tgz", - "integrity": "sha512-WOUM7ghii5TV2rbhaZkh1youv/vW1/Canev6Yx6BG2W+1S07w8jKZqKkPnbiPpQEDsnJdN8ouDd7OvQEGXDcUw==", - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "nan": "^2.15.0", - "simple-get": "^3.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", - "dev": true - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/cli-highlight/node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "node_modules/cli-highlight/node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/cli-highlight/node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/cli-highlight/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-highlight/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/color-convert": { - "version": "2.0.1", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" - }, - "node_modules/core-js-compat": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", - "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.3", - "semver": "7.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/create-require": { - "version": "1.1.1", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/date-fns": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.1.tgz", - "integrity": "sha512-dlLD5rKaKxpFdnjrs+5azHDFOPEu4ANy/LTh04A1DTzMM7qoajmKCBc8pkKRFT41CNzw+4gQh79X5C+Jq27HAw==", - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/degenerator": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz", - "integrity": "sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==", - "dependencies": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.8" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" - }, - "node_modules/denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "devOptional": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/dotenv": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", - "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/dynamic-dedupe": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz", - "integrity": "sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==", - "dev": true, - "dependencies": { - "xtend": "^4.0.0" - } - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.211", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz", - "integrity": "sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "optional": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exif-be-gone": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/exif-be-gone/-/exif-be-gone-1.3.1.tgz", - "integrity": "sha512-lHvNqbaTsH0WzhzfxxiTh9KwmXjAfiiTfY6UVmUZXJsaU62ccURy8beEVYFKSmNfvf0n6srLIFi0NDBWvhYUlQ==", - "dependencies": { - "@types/stream-buffers": "^3.0.3" - }, - "bin": { - "exif-be-gone": "cli.js" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express-async-errors": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/express-async-errors/-/express-async-errors-3.1.1.tgz", - "integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==", - "peerDependencies": { - "express": "^4.16.2" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/fast-xml-parser": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", - "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==", - "bin": { - "xml2js": "cli.js" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-type": { - "version": "16.5.4", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", - "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" - } - }, - "node_modules/file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "dependencies": { - "micromatch": "^4.0.2" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formidable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", - "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", - "dependencies": { - "dezalgo": "1.0.3", - "hexoid": "1.0.0", - "once": "1.4.0", - "qs": "6.9.3" - }, - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/formidable/node_modules/qs": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==", - "dependencies": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/ftp/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/ftp/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", - "dependencies": { - "is-property": "^1.0.2" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", - "dependencies": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/get-uri/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/get-uri/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/has": { - "version": "1.0.3", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, - "node_modules/helmet": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", - "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/hexoid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", - "engines": { - "node": ">=8" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "engines": { - "node": "*" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" - } - }, - "node_modules/htmlparser2/node_modules/entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "optional": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "optional": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/i18next": { - "version": "21.8.16", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.8.16.tgz", - "integrity": "sha512-acJLCk38YMfEPjBR/1vS13SFY7rBQLs9E5m1tSRnWc9UW3f+SZszgH+NP1fZRA1+O+CdG2eLGGmuUMJW52EwzQ==", - "funding": [ - { - "type": "individual", - "url": "https://locize.com" - }, - { - "type": "individual", - "url": "https://locize.com/i18next.html" - }, - { - "type": "individual", - "url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project" - } - ], - "dependencies": { - "@babel/runtime": "^7.17.2" - } - }, - "node_modules/i18next-http-middleware": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/i18next-http-middleware/-/i18next-http-middleware-3.2.1.tgz", - "integrity": "sha512-zBwXxDChT0YLoTXIR6jRuqnUUhXW0Iw7egoTnNXyaDRtTbfWNXwU0a53ThyuRPQ+k+tXu3ZMNKRzfLuononaRw==" - }, - "node_modules/i18next-node-fs-backend": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.3.tgz", - "integrity": "sha512-CreMFiVl3ChlMc5ys/e0QfuLFOZyFcL40Jj6jaKD6DxZ/GCUMxPI9BpU43QMWUgC7r+PClpxg2cGXAl0CjG04g==", - "deprecated": "replaced by i18next-fs-backend", - "dependencies": { - "js-yaml": "3.13.1", - "json5": "2.0.0" - } - }, - "node_modules/i18next-node-fs-backend/node_modules/json5": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.0.0.tgz", - "integrity": "sha512-0EdQvHuLm7yJ7lyG5dp7Q3X2ku++BG5ZHaJ5FTnaXpKqDrw4pMxel5Bt3oAYMthnrthFBdnZ1FcsXTPyrQlV0w==", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/image-size": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", - "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "devOptional": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "optional": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "optional": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/interpret": { - "version": "1.4.0", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.6.0", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "optional": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/isexe": { - "version": "2.0.0", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", - "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.3", - "@jest/types": "^28.1.3", - "import-local": "^3.0.2", - "jest-cli": "^28.1.3" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", - "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", - "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "p-limit": "^3.1.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-cli": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", - "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-config": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", - "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.3", - "@jest/types": "^28.1.3", - "babel-jest": "^28.1.3", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.3", - "jest-environment-node": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", - "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", - "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.3", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", - "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-expect-message": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jest-expect-message/-/jest-expect-message-1.0.2.tgz", - "integrity": "sha512-WFiXMgwS2lOqQZt1iJMI/hOXpUm32X+ApsuzYcQpW5m16Pv6/Gd9kgC+Q+Q1YVNU04kYcAOv9NXMnjg6kKUy6Q==", - "dev": true - }, - "node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", - "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", - "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-mock": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", - "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", - "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", - "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runner": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", - "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/environment": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "graceful-fs": "^4.2.9", - "jest-docblock": "^28.1.1", - "jest-environment-node": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-leak-detector": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-resolve": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-util": "^28.1.3", - "jest-watcher": "^28.1.3", - "jest-worker": "^28.1.3", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", - "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/globals": "^28.1.3", - "@jest/source-map": "^28.1.2", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", - "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", - "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "leven": "^3.1.0", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/jsonwebtoken/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/jsonwebtoken/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klaw-sync": { - "version": "6.0.0", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", - "dependencies": { - "graceful-fs": "^4.1.11" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/lambert-server": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/lambert-server/-/lambert-server-1.2.12.tgz", - "integrity": "sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw==", - "dependencies": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "devOptional": true - }, - "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "optional": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/methods": { - "version": "1.1.2", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "optional": true, - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/missing-native-js-functions": { - "version": "1.2.18", - "resolved": "https://registry.npmjs.org/missing-native-js-functions/-/missing-native-js-functions-1.2.18.tgz", - "integrity": "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg==" - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/morgan": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", - "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", - "dependencies": { - "basic-auth": "~2.0.1", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-finished": "~2.3.0", - "on-headers": "~1.0.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/morgan/node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/multer": { - "version": "1.4.5-lts.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", - "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", - "dependencies": { - "append-field": "^1.0.0", - "busboy": "^1.0.0", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/multer/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mysql2": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", - "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", - "dependencies": { - "denque": "^2.0.1", - "generate-function": "^2.3.1", - "iconv-lite": "^0.6.3", - "long": "^4.0.0", - "lru-cache": "^6.0.0", - "named-placeholders": "^1.1.2", - "seq-queue": "^0.0.5", - "sqlstring": "^2.3.2" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/mysql2/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/named-placeholders": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", - "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", - "dependencies": { - "lru-cache": "^4.1.3" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/named-placeholders/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/named-placeholders/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" - }, - "node_modules/nan": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", - "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node_modules/node-2fa": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-2fa/-/node-2fa-2.0.3.tgz", - "integrity": "sha512-PQldrOhjuoZyoydMvMSctllPN1ZPZ1/NwkEcgYwY9faVqE/OymxR+3awPpbWZxm6acLKqvmNqQmdqTsqYyflFw==", - "dependencies": { - "@types/notp": "^2.0.0", - "notp": "^2.0.3", - "thirty-two": "1.0.2", - "tslib": "^2.1.0" - } - }, - "node_modules/node-abi/node_modules/semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "extraneous": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "optional": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "optional": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "optional": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "optional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-os-utils": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.3.7.tgz", - "integrity": "sha512-fvnX9tZbR7WfCG5BAy3yO/nCLyjVWD6MghEq0z5FDfN+ZXpLWNITBdbifxQkQ25ebr16G0N7eRWJisOcMEHG3Q==" - }, - "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/notp": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/notp/-/notp-2.0.3.tgz", - "integrity": "sha512-oBig/2uqkjQ5AkBuw4QJYwkEWa/q+zHxI5/I5z6IeP2NT0alpJFsP/trrfCC+9xOAgQSZXssNi962kp5KBmypQ==", - "engines": { - "node": "> v0.6.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.3.tgz", - "integrity": "sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "7.4.2", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open/node_modules/is-wsl": { - "version": "2.2.0", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "optional": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pac-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", - "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/pac-proxy-agent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/pac-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/pac-proxy-agent/node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pac-resolver": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz", - "integrity": "sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==", - "dependencies": { - "degenerator": "^3.0.2", - "ip": "^1.1.5", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/pac-resolver/node_modules/ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" - }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", - "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", - "dependencies": { - "entities": "^4.3.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parse5/node_modules/entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/patch-package": { - "version": "6.4.7", - "integrity": "sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==", - "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^7.0.1", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.0", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33" - }, - "bin": { - "patch-package": "index.js" - }, - "engines": { - "npm": ">5" - } - }, - "node_modules/patch-package/node_modules/ansi-styles": { - "version": "3.2.1", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/patch-package/node_modules/chalk": { - "version": "2.4.2", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/patch-package/node_modules/ci-info": { - "version": "2.0.0", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "node_modules/patch-package/node_modules/color-convert": { - "version": "1.9.3", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/patch-package/node_modules/color-name": { - "version": "1.1.3", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/patch-package/node_modules/cross-spawn": { - "version": "6.0.5", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/patch-package/node_modules/fs-extra": { - "version": "7.0.1", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/patch-package/node_modules/has-flag": { - "version": "3.0.0", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/patch-package/node_modules/is-ci": { - "version": "2.0.0", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/patch-package/node_modules/path-key": { - "version": "2.0.1", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "node_modules/patch-package/node_modules/rimraf": { - "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/patch-package/node_modules/semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/patch-package/node_modules/shebang-command": { - "version": "1.2.0", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/patch-package/node_modules/shebang-regex": { - "version": "1.0.0", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/patch-package/node_modules/slash": { - "version": "2.0.0", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/patch-package/node_modules/supports-color": { - "version": "5.5.0", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-equal": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.2.tgz", - "integrity": "sha512-AUJvbcle1Zgb1TgtftHYknlrgrSYyI1ytrYgSbKUHSybwqUDnbD2cw9PIWivuMvsN+GTXmr/DRN4VBXpHG6aGg==", - "dev": true, - "hasInstallScript": true - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/peek-readable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==", - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/pg": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", - "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.5.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "pg-native": ">=2.0.0" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz", - "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "dependencies": { - "split2": "^4.1.0" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "optional": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "optional": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", - "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", - "dependencies": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/proxy-agent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/proxy-agent/node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-agent/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regexpu-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", - "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "node_modules/resolve": { - "version": "1.20.0", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "optional": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-stable-stringify": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", - "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/seq-queue": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", - "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz", - "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==", - "dependencies": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "optional": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "optional": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socks-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/split2": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", - "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "node_modules/sqlite3": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.11.tgz", - "integrity": "sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA==", - "hasInstallScript": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^4.2.0", - "tar": "^6.1.11" - }, - "optionalDependencies": { - "node-gyp": "8.x" - }, - "peerDependencies": { - "node-gyp": "8.x" - }, - "peerDependenciesMeta": { - "node-gyp": { - "optional": true - } - } - }, - "node_modules/sqlstring": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", - "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "optional": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/strtok3": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", - "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/superagent": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.0.tgz", - "integrity": "sha512-iudipXEel+SzlP9y29UBWGDjB+Zzag+eeA1iLosaR2YHBRr1Q1kC29iBrF2zIVD9fqVbpZnXkN/VJmwFMVyNWg==", - "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.3", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^2.0.1", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.10.3", - "readable-stream": "^3.6.0", - "semver": "^7.3.7" - }, - "engines": { - "node": ">=6.4.0 <13 || >=14" - } - }, - "node_modules/superagent/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/superagent/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/superagent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/supertest": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.4.tgz", - "integrity": "sha512-M8xVnCNv+q2T2WXVzxDECvL2695Uv2uUj2O0utxsld/HRyJvOU8W9f1gvsYxSNU4wmIe0/L/ItnpU4iKq0emDA==", - "dependencies": { - "methods": "^1.1.2", - "superagent": "^8.0.0" - }, - "engines": { - "node": ">=6.4.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/thirty-two": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz", - "integrity": "sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==", - "engines": { - "node": ">=0.2.6" - } - }, - "node_modules/tmp": { - "version": "0.0.33", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/token-types": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", - "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "devOptional": true, - "dependencies": { - "@cspotcode/source-map-support": "0.7.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node-dev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-2.0.0.tgz", - "integrity": "sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.1", - "dynamic-dedupe": "^0.3.0", - "minimist": "^1.2.6", - "mkdirp": "^1.0.4", - "resolve": "^1.0.0", - "rimraf": "^2.6.1", - "source-map-support": "^0.5.12", - "tree-kill": "^1.2.2", - "ts-node": "^10.4.0", - "tsconfig": "^7.0.0" - }, - "bin": { - "ts-node-dev": "lib/bin.js", - "tsnd": "lib/bin.js" - }, - "engines": { - "node": ">=0.8.0" - }, - "peerDependencies": { - "node-notifier": "*", - "typescript": "*" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/ts-node-dev/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ts-node/node_modules/@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "devOptional": true, - "dependencies": { - "@cspotcode/source-map-consumer": "0.8.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/ts-patch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-2.0.1.tgz", - "integrity": "sha512-mP7beU1QkmyDs1+SzXYVaSTD6Xo7ZCibOJ3sZkb/xsQjoAQXvn4oPjk0keC2LfCNAgilqtqgjiWp3pQri1uz4w==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "glob": "^7.1.7", - "global-prefix": "^3.0.0", - "minimist": "^1.2.5", - "resolve": "^1.20.0", - "shelljs": "^0.8.4", - "strip-ansi": "^6.0.0" - }, - "bin": { - "ts-patch": "bin/cli.js" - }, - "peerDependencies": { - "typescript": ">=4.0.0" - } - }, - "node_modules/tsconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", - "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", - "dev": true, - "dependencies": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "node_modules/tsconfig/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/tsconfig/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "node_modules/typeorm": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", - "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", - "dependencies": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - }, - "bin": { - "typeorm": "cli.js", - "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", - "typeorm-ts-node-esm": "cli-ts-node-esm.js" - }, - "engines": { - "node": ">= 12.9.0" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@google-cloud/spanner": "^5.18.0", - "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2", - "hdb-pool": "^0.1.6", - "ioredis": "^5.0.4", - "mongodb": "^3.6.0", - "mssql": "^7.3.0", - "mysql2": "^2.2.5", - "oracledb": "^5.1.0", - "pg": "^8.5.1", - "pg-native": "^3.0.0", - "pg-query-stream": "^4.0.0", - "redis": "^3.1.1 || ^4.0.0", - "sql.js": "^1.4.0", - "sqlite3": "^5.0.3", - "ts-node": "^10.7.0", - "typeorm-aurora-data-api-driver": "^2.0.0" - }, - "peerDependenciesMeta": { - "@google-cloud/spanner": { - "optional": true - }, - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/typeorm/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/typeorm/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/typescript-json-schema": { - "version": "0.54.0", - "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.54.0.tgz", - "integrity": "sha512-/MNhm1pjdxXiVspjjyRCrQAA1B768cRzHU83aIqN5vQqQEW2NgyyKOfcguiRIMM64lseIZIelegnHOHEu7YDCg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "@types/node": "^16.9.2", - "glob": "^7.1.7", - "path-equal": "^1.1.2", - "safe-stable-stringify": "^2.2.0", - "ts-node": "^10.2.1", - "typescript": "~4.6.0", - "yargs": "^17.1.1" - }, - "bin": { - "typescript-json-schema": "bin/typescript-json-schema" - } - }, - "node_modules/typescript-json-schema/node_modules/@types/node": { - "version": "16.11.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.47.tgz", - "integrity": "sha512-fpP+jk2zJ4VW66+wAMFoBJlx1bxmBKx4DUFf68UHgdGCOuyUTDlLWqsaNPJh7xhNDykyJ9eIzAygilP/4WoN8g==", - "dev": true - }, - "node_modules/typescript-json-schema/node_modules/typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "optional": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "optional": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vm2": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.10.tgz", - "integrity": "sha512-AuECTSvwu2OHLAZYhG716YzwodKCIJxB6u1zG7PgSQwIgAlEaoXH52bxdcvT8GkGjnYK7r7yWDW0m0sOsPuBjQ==", - "dependencies": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "bin": { - "vm2": "bin/vm2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==", - "engines": { - "node": "*" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "engines": { - "node": ">=12" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@aws-crypto/crc32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-2.0.0.tgz", - "integrity": "sha512-TvE1r2CUueyXOuHdEigYjIZVesInd9KN+K/TFFNfkkxRThiNxO6i4ZqqAVMoEjAamZZ1AA8WXJkjCz7YShHPQA==", - "requires": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/crc32c": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-2.0.0.tgz", - "integrity": "sha512-vF0eMdMHx3O3MoOXUfBZry8Y4ZDtcuskjjKgJz8YfIDjLStxTZrYXk+kZqtl6A0uCmmiN/Eb/JbC/CndTV1MHg==", - "requires": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/ie11-detection": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz", - "integrity": "sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==", - "requires": { - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/sha1-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-2.0.0.tgz", - "integrity": "sha512-3fIVRjPFY8EG5HWXR+ZJZMdWNRpwbxGzJ9IH9q93FpbgCH8u8GHRi46mZXp3cYD7gealmyqpm3ThZwLKJjWJhA==", - "requires": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/sha256-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", - "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", - "requires": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/sha256-js": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/sha256-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", - "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", - "requires": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/supports-web-crypto": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz", - "integrity": "sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==", - "requires": { - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/util": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz", - "integrity": "sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==", - "requires": { - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-sdk/abort-controller": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.127.0.tgz", - "integrity": "sha512-G77FLYcl9egUoD3ZmR6TX94NMqBMeT53hBGrEE3uVUJV1CwfGKfaF007mPpRZnIB3avnJBQGEK6MrwlCfv2qAw==", - "requires": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/chunked-blob-reader": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.55.0.tgz", - "integrity": "sha512-o/xjMCq81opAjSBjt7YdHJwIJcGVG5XIV9+C2KXcY5QwVimkOKPybWTv0mXPvSwSilSx+EhpLNhkcJuXdzhw4w==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/chunked-blob-reader-native": { - "version": "3.109.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.109.0.tgz", - "integrity": "sha512-Ybn3vDZ3CqGyprL2qdF6QZqoqlx8lA3qOJepobjuKKDRw+KgGxjUY4NvWe0R2MdRoduyaDj6uvhIay0S1MOSJQ==", - "requires": { - "@aws-sdk/util-base64-browser": "3.109.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/client-s3": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.142.0.tgz", - "integrity": "sha512-hCGhaxEpbbpwy++CltjMoDgt6814kdq+c6fkvh2UwLg6ojx9Z/Z2DMZcIuvpVNr2DFm6xevXzEHrx9i7lOd5Rw==", - "requires": { - "@aws-crypto/sha1-browser": "2.0.0", - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.142.0", - "@aws-sdk/config-resolver": "3.130.0", - "@aws-sdk/credential-provider-node": "3.142.0", - "@aws-sdk/eventstream-serde-browser": "3.127.0", - "@aws-sdk/eventstream-serde-config-resolver": "3.127.0", - "@aws-sdk/eventstream-serde-node": "3.127.0", - "@aws-sdk/fetch-http-handler": "3.131.0", - "@aws-sdk/hash-blob-browser": "3.127.0", - "@aws-sdk/hash-node": "3.127.0", - "@aws-sdk/hash-stream-node": "3.127.0", - "@aws-sdk/invalid-dependency": "3.127.0", - "@aws-sdk/md5-js": "3.127.0", - "@aws-sdk/middleware-bucket-endpoint": "3.127.0", - "@aws-sdk/middleware-content-length": "3.127.0", - "@aws-sdk/middleware-expect-continue": "3.127.0", - "@aws-sdk/middleware-flexible-checksums": "3.127.0", - "@aws-sdk/middleware-host-header": "3.127.0", - "@aws-sdk/middleware-location-constraint": "3.127.0", - "@aws-sdk/middleware-logger": "3.127.0", - "@aws-sdk/middleware-recursion-detection": "3.127.0", - "@aws-sdk/middleware-retry": "3.127.0", - "@aws-sdk/middleware-sdk-s3": "3.127.0", - "@aws-sdk/middleware-serde": "3.127.0", - "@aws-sdk/middleware-signing": "3.130.0", - "@aws-sdk/middleware-ssec": "3.127.0", - "@aws-sdk/middleware-stack": "3.127.0", - "@aws-sdk/middleware-user-agent": "3.127.0", - "@aws-sdk/node-config-provider": "3.127.0", - "@aws-sdk/node-http-handler": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/signature-v4-multi-region": "3.130.0", - "@aws-sdk/smithy-client": "3.142.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/url-parser": "3.127.0", - "@aws-sdk/util-base64-browser": "3.109.0", - "@aws-sdk/util-base64-node": "3.55.0", - "@aws-sdk/util-body-length-browser": "3.55.0", - "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.142.0", - "@aws-sdk/util-defaults-mode-node": "3.142.0", - "@aws-sdk/util-stream-browser": "3.131.0", - "@aws-sdk/util-stream-node": "3.129.0", - "@aws-sdk/util-user-agent-browser": "3.127.0", - "@aws-sdk/util-user-agent-node": "3.127.0", - "@aws-sdk/util-utf8-browser": "3.109.0", - "@aws-sdk/util-utf8-node": "3.109.0", - "@aws-sdk/util-waiter": "3.127.0", - "@aws-sdk/xml-builder": "3.142.0", - "entities": "2.2.0", - "fast-xml-parser": "3.19.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/client-sso": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.142.0.tgz", - "integrity": "sha512-Pewcpxq+wqcbB3t3s6KImBUUf+qqBNqMfd2wgQ3PdpYBjlNzrWYLHAnIT1vhIFjOGJXDi/qwF8FX7qbWNUB7Lg==", - "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.130.0", - "@aws-sdk/fetch-http-handler": "3.131.0", - "@aws-sdk/hash-node": "3.127.0", - "@aws-sdk/invalid-dependency": "3.127.0", - "@aws-sdk/middleware-content-length": "3.127.0", - "@aws-sdk/middleware-host-header": "3.127.0", - "@aws-sdk/middleware-logger": "3.127.0", - "@aws-sdk/middleware-recursion-detection": "3.127.0", - "@aws-sdk/middleware-retry": "3.127.0", - "@aws-sdk/middleware-serde": "3.127.0", - "@aws-sdk/middleware-stack": "3.127.0", - "@aws-sdk/middleware-user-agent": "3.127.0", - "@aws-sdk/node-config-provider": "3.127.0", - "@aws-sdk/node-http-handler": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/smithy-client": "3.142.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/url-parser": "3.127.0", - "@aws-sdk/util-base64-browser": "3.109.0", - "@aws-sdk/util-base64-node": "3.55.0", - "@aws-sdk/util-body-length-browser": "3.55.0", - "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.142.0", - "@aws-sdk/util-defaults-mode-node": "3.142.0", - "@aws-sdk/util-user-agent-browser": "3.127.0", - "@aws-sdk/util-user-agent-node": "3.127.0", - "@aws-sdk/util-utf8-browser": "3.109.0", - "@aws-sdk/util-utf8-node": "3.109.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/client-sts": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.142.0.tgz", - "integrity": "sha512-rOa1MTI1h3kTjlHkItAlXGHefM5sjsfw3muhNEhzrZBuhpOrLU8apbiG2rcJqB8m0prMoY39PuG+WquxN4ap6g==", - "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.130.0", - "@aws-sdk/credential-provider-node": "3.142.0", - "@aws-sdk/fetch-http-handler": "3.131.0", - "@aws-sdk/hash-node": "3.127.0", - "@aws-sdk/invalid-dependency": "3.127.0", - "@aws-sdk/middleware-content-length": "3.127.0", - "@aws-sdk/middleware-host-header": "3.127.0", - "@aws-sdk/middleware-logger": "3.127.0", - "@aws-sdk/middleware-recursion-detection": "3.127.0", - "@aws-sdk/middleware-retry": "3.127.0", - "@aws-sdk/middleware-sdk-sts": "3.130.0", - "@aws-sdk/middleware-serde": "3.127.0", - "@aws-sdk/middleware-signing": "3.130.0", - "@aws-sdk/middleware-stack": "3.127.0", - "@aws-sdk/middleware-user-agent": "3.127.0", - "@aws-sdk/node-config-provider": "3.127.0", - "@aws-sdk/node-http-handler": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/smithy-client": "3.142.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/url-parser": "3.127.0", - "@aws-sdk/util-base64-browser": "3.109.0", - "@aws-sdk/util-base64-node": "3.55.0", - "@aws-sdk/util-body-length-browser": "3.55.0", - "@aws-sdk/util-body-length-node": "3.55.0", - "@aws-sdk/util-defaults-mode-browser": "3.142.0", - "@aws-sdk/util-defaults-mode-node": "3.142.0", - "@aws-sdk/util-user-agent-browser": "3.127.0", - "@aws-sdk/util-user-agent-node": "3.127.0", - "@aws-sdk/util-utf8-browser": "3.109.0", - "@aws-sdk/util-utf8-node": "3.109.0", - "entities": "2.2.0", - "fast-xml-parser": "3.19.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/config-resolver": { - "version": "3.130.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.130.0.tgz", - "integrity": "sha512-7dkCHHI9kRcHW6YNr9/2Ub6XkvU9Fu6H/BnlKbaKlDR8jq7QpaFhPhctOVi5D/NDpxJgALifexFne0dvo3piTw==", - "requires": { - "@aws-sdk/signature-v4": "3.130.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-config-provider": "3.109.0", - "@aws-sdk/util-middleware": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/credential-provider-env": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.127.0.tgz", - "integrity": "sha512-Ig7XhUikRBlnRTYT5JBGzWfYZp68X5vkFVIFCmsHHt/qVy0Nz9raZpmDHicdS1u67yxDkWgCPn/bNevWnM0GFg==", - "requires": { - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/credential-provider-imds": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.127.0.tgz", - "integrity": "sha512-I6KlIBBzmJn/U1KikiC50PK3SspT9G5lkVLBaW5a6YfOcijqVTXfAN3kYzqhfeS0j4IgfJEwKVsjsZfmprJO5A==", - "requires": { - "@aws-sdk/node-config-provider": "3.127.0", - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/url-parser": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/credential-provider-ini": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.142.0.tgz", - "integrity": "sha512-joMJTxUTNmxURnVmmd7XhtwOwijMjh7z09V8o2EHQMk+ak+rhaRgqb2kTA2nO0J3SRxdO5z5SKkyQgW0d1fY9g==", - "requires": { - "@aws-sdk/credential-provider-env": "3.127.0", - "@aws-sdk/credential-provider-imds": "3.127.0", - "@aws-sdk/credential-provider-sso": "3.142.0", - "@aws-sdk/credential-provider-web-identity": "3.127.0", - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/shared-ini-file-loader": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/credential-provider-node": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.142.0.tgz", - "integrity": "sha512-JkhCKNkEhCS2vgD/qg5hJPatupNLObqts9FXiDia5CF6w8YcHLH+mWSvhUMCUGkunAOvFHDkQL1uPXfoQuJvPg==", - "requires": { - "@aws-sdk/credential-provider-env": "3.127.0", - "@aws-sdk/credential-provider-imds": "3.127.0", - "@aws-sdk/credential-provider-ini": "3.142.0", - "@aws-sdk/credential-provider-process": "3.127.0", - "@aws-sdk/credential-provider-sso": "3.142.0", - "@aws-sdk/credential-provider-web-identity": "3.127.0", - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/shared-ini-file-loader": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/credential-provider-process": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.127.0.tgz", - "integrity": "sha512-6v0m2lqkO9J5fNlTl+HjriQNIdfg8mjVST544+5y9EnC/FVmTnIz64vfHveWdNkP/fehFx7wTimNENtoSqCn3A==", - "requires": { - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/shared-ini-file-loader": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/credential-provider-sso": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.142.0.tgz", - "integrity": "sha512-jJvp/A5xrikaeL0DhjhQTvUc0+eF0hN5Nbo+nxpnUOiOOkyqs329g65NI1TmLp/OzDcqQ/8p5vj2+7ufTGEOXQ==", - "requires": { - "@aws-sdk/client-sso": "3.142.0", - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/shared-ini-file-loader": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/credential-provider-web-identity": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.127.0.tgz", - "integrity": "sha512-85ahDZnLYB3dqkW+cQ0bWt+NVqOoxomTrJoq3IC2q6muebeFrJ0pyf0JEW/RNRzBiUvvsZujzGdWifzWyQKfVg==", - "requires": { - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/eventstream-codec": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.127.0.tgz", - "integrity": "sha512-+Tlujx3VkB4DK8tYzG0rwxIE0ee6hWItQgSEREEmi5CwHQFw7VpRLYAShYabEx9wIJmRFObWzhlKxWNRi+TfaA==", - "requires": { - "@aws-crypto/crc32": "2.0.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-hex-encoding": "3.109.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/eventstream-serde-browser": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.127.0.tgz", - "integrity": "sha512-d1rTK4ljEp3Y/BQ78/AJ7eqgGyI6TE0bxNosCmXWcUBv00Tr5cerPqPe7Zvw8XwIMPX5y8cjtd1/cOtB2ePaBw==", - "requires": { - "@aws-sdk/eventstream-serde-universal": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/eventstream-serde-config-resolver": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.127.0.tgz", - "integrity": "sha512-dYvLfQYcKLOFtZVgwLwKDCykAxNkDyDLQRWytJK9DHCyjRig66IKi1codts9vOy4j0CeYwnXWs5WDavrUaE05g==", - "requires": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/eventstream-serde-node": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.127.0.tgz", - "integrity": "sha512-Ie59jZYAIw3Kt6GePvEilp1k3JoYEQpY3WIyVZltm3dkVf0GmzhCZrPROH9vgF3qApzu1aGOWDV2wX91poXF8A==", - "requires": { - "@aws-sdk/eventstream-serde-universal": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/eventstream-serde-universal": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.127.0.tgz", - "integrity": "sha512-cJLSTtYDGTevknMTykzHpcDNRbD6yGve8FBUKSAczuNVjXZOedj0GbHJqkASuLj0ZnojbKBdCx4uu1XGyvubng==", - "requires": { - "@aws-sdk/eventstream-codec": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/fetch-http-handler": { - "version": "3.131.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.131.0.tgz", - "integrity": "sha512-eNxmPZQX2IUeBGWHNC7eNTekWn9VIPLYEMKJbKYUBJryxuTJ7TtLeyEK5oakUjMwP1AUvWT+CV7C+8L7uG1omQ==", - "requires": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/querystring-builder": "3.127.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-base64-browser": "3.109.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/hash-blob-browser": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.127.0.tgz", - "integrity": "sha512-XH9s2w6GXCtDI+3/y+sDAzMWJRTvhRXJJtI1fVDsCiyq96SYUTNKLLaUSuR01uawEBiRDBqGDDPMT8qJPDXc/w==", - "requires": { - "@aws-sdk/chunked-blob-reader": "3.55.0", - "@aws-sdk/chunked-blob-reader-native": "3.109.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/hash-node": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.127.0.tgz", - "integrity": "sha512-wx7DKlXdKebH4JcMsOevdsm2oDNMVm36kuMm0XWRIrFWQ/oq7OquDpEMJzWvGqWF/IfFUpb7FhAWZZpALwlcwA==", - "requires": { - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/hash-stream-node": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.127.0.tgz", - "integrity": "sha512-ZCNqi+FJViYFCo8JfSx+YK0Hd/SC555gHqBe24GVBMCDqJ8UFIled7tF+GOQ8wTcKjxuwp/0EXDTXoaAb0K89g==", - "requires": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/invalid-dependency": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.127.0.tgz", - "integrity": "sha512-bxvmtmJ6gIRfOHvh1jAPZBH2mzppEblPjEOFo4mOzXz4U3qPIxeuukCjboMnGK9QEpV2wObWcYYld0vxoRrfiA==", - "requires": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/is-array-buffer": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz", - "integrity": "sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/md5-js": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.127.0.tgz", - "integrity": "sha512-9FzD++p2bvfZ56hbDxvGcLlA9JIMt9uZB/m4NEvbuvrpx1qnUpFv6HqthhGaVuhctkK25hONT5ZpOYHSisATrA==", - "requires": { - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-utf8-browser": "3.109.0", - "@aws-sdk/util-utf8-node": "3.109.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-bucket-endpoint": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.127.0.tgz", - "integrity": "sha512-wJpXxWceBDhWktoxrRb4s6tMx0dWsEGYIaV0KkQPGhTPk2KMUgwa4xApfCXXVfYcE3THk486OKwHhPrR5jpe+g==", - "requires": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-arn-parser": "3.55.0", - "@aws-sdk/util-config-provider": "3.109.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-content-length": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.127.0.tgz", - "integrity": "sha512-AFmMaIEW3Rzg0TaKB9l/RENLowd7ZEEOpm0trYw1CgUUORWW/ydCsDT7pekPlC25CPbhUmWXCSA4xPFSYOVnDw==", - "requires": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-expect-continue": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.127.0.tgz", - "integrity": "sha512-+X7mdgFqt9UqUDeGuMt+afR8CBX9nMecTxEIilAKdVOLx+fuXzHnC2mpddKMtiE9IGKMU4BI1Ahf7t32Odhs1Q==", - "requires": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-flexible-checksums": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.127.0.tgz", - "integrity": "sha512-sXkAwhE9dikO72sEJ7DrUCo5mawauAxICCqipCCSGp0geSkptvtZHhySgJNMVSbUJQmu5bcS+zsFpFVwuJvGxg==", - "requires": { - "@aws-crypto/crc32": "2.0.0", - "@aws-crypto/crc32c": "2.0.0", - "@aws-sdk/is-array-buffer": "3.55.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-host-header": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.127.0.tgz", - "integrity": "sha512-e2gTLJb5lYP9lRV7hN3rKY2l4jv8OygOoHElZJ3Z8KPZskjHelYPcQ8XbdfhSXXxC3vc/0QqN0ResFt3W3Pplg==", - "requires": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-location-constraint": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.127.0.tgz", - "integrity": "sha512-UtPmbOKEVu+Ue7CwICFSOOOSePV8Piydco/v2IpdRkMO0e4bqQ3Tn0XprBlWWfSW4QCtAPzydrArLsUdk636GA==", - "requires": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-logger": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.127.0.tgz", - "integrity": "sha512-jMNLcZB/ECA7OfkNBLNeAlrLRehyfnUeNQJHW3kcxs9h1+6VxaF6wY+WKozszLI7/3OBzQrFHBQCfRZV7ykSLg==", - "requires": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-recursion-detection": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.127.0.tgz", - "integrity": "sha512-tB6WX+Z1kUKTnn5h38XFrTCzoqPKjUZLUjN4Wb27/cbeSiTSKGAZcCXHOJm36Ukorl5arlybQTqGe689EU00Hw==", - "requires": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-retry": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.127.0.tgz", - "integrity": "sha512-ZSvg/AyGUacWnf3i8ZbyImtiCH+NyafF8uV7bITP7JkwPrG+VdNocJZOr88GRM0c1A0jfkOf7+oq+fInPwwiNA==", - "requires": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/service-error-classification": "3.127.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-middleware": "3.127.0", - "tslib": "^2.3.1", - "uuid": "^8.3.2" - } - }, - "@aws-sdk/middleware-sdk-s3": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.127.0.tgz", - "integrity": "sha512-q1mkEN7kYYdQ3LOHIhaT56omYe8DCubyiCKOXuEo5ZiIkE5iq06K/BxWxj3f8bFZxSX80Ma1m8XA5jcOEMphSA==", - "requires": { - "@aws-sdk/middleware-bucket-endpoint": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-arn-parser": "3.55.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-sdk-sts": { - "version": "3.130.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.130.0.tgz", - "integrity": "sha512-FDfs7+ohbhEK3eH3Dshr6JDiL8P72bp3ffeNpPBXuURFqwt4pCmjHuX3SqQR0JIJ2cl3aIdxc17rKaZJfOjtPw==", - "requires": { - "@aws-sdk/middleware-signing": "3.130.0", - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/signature-v4": "3.130.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-serde": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.127.0.tgz", - "integrity": "sha512-xmWMYV/t9M+b9yHjqaD1noDNJJViI2QwOH7TQZ9VbbrvdVtDrFuS9Sf9He80TBCJqeHShwQN9783W1I3Pu/8kw==", - "requires": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-signing": { - "version": "3.130.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.130.0.tgz", - "integrity": "sha512-JePq5XLR9TfRN3RQ0d7Za/bEW5D3xgtD1FNAwHeenWALeozMuQgRPjM5RroCnL/5jY3wuvCZI7cSXeqhawWqmA==", - "requires": { - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/signature-v4": "3.130.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-ssec": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.127.0.tgz", - "integrity": "sha512-R5A13EvdYPdYD2Tq9eW5jqIdscyZlQykQXFEolBD2oi4pew7TZpc/5aazZC0zo9YKJ29qiUR1P4NvjcFJ7zFBg==", - "requires": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-stack": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.127.0.tgz", - "integrity": "sha512-S1IoUE5o1vCmjsF5nIE8zlItNOM1UE+lhmZeigF7knXJ9+a6ewMB6POAj/s4eoi0wcn0eSnAGsqJCWMSUjOPLA==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/middleware-user-agent": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.127.0.tgz", - "integrity": "sha512-CHxgswoOzdkOEoIq7Oyob3Sx/4FYUv6BhUesAX7MNshaDDsTQPbSWjw5bqZDiL/gO+X/34fvqCVVpVD2GvxW/g==", - "requires": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/node-config-provider": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.127.0.tgz", - "integrity": "sha512-bAHkASMhLZHT1yv2TX6OJGFV9Lc3t1gKfTMEKdXM2O2YhGfSx9A/qLeJm79oDfnILWQtSS2NicxlRDI2lYGf4g==", - "requires": { - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/shared-ini-file-loader": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/node-http-handler": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.127.0.tgz", - "integrity": "sha512-pyMKvheK8eDwWLgYIRsWy8wiyhsbYYcqkZQs3Eh6upI4E8iCY7eMmhWvHYCibvsO+UjsOwa4cAMOfwnv/Z9s8A==", - "requires": { - "@aws-sdk/abort-controller": "3.127.0", - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/querystring-builder": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/property-provider": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.127.0.tgz", - "integrity": "sha512-JxenxlTEkWfLrtJqIjaXaJzAVQbbscoCb5bNjmdud07ESLVfWRKJx2nAJdecHKYp2M5NQyqBuFhQ1ELSFYQKCA==", - "requires": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/protocol-http": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.127.0.tgz", - "integrity": "sha512-UG83PVuKX40wilG2uRU0Fvz4OY8Bt+bSPOG776DFjwIXYzK7BwpJm9H2XI2HLhS5WxrJHhwrLBRgW6UiykMnFw==", - "requires": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/querystring-builder": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.127.0.tgz", - "integrity": "sha512-tsoyp4lLPsASPDYWsezGAHD8VJsZbjUNATNAzTCFdH6p+4SKBK83Q5kfXCzxt13M+l3oKbxxIWLvS0kVQFyltQ==", - "requires": { - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-uri-escape": "3.55.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/querystring-parser": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.127.0.tgz", - "integrity": "sha512-Vn/Dv+PqUSepp/DzLqq0LJJD8HdPefJCnLbO5WcHCARHSGlyGlZUFEM45k/oEHpTvgMXj/ORaP3A+tLwLu0AmA==", - "requires": { - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/service-error-classification": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.127.0.tgz", - "integrity": "sha512-wjZY9rnlA8SPrICUumTYicEKtK4/yKB62iadUk66hxe8MrH8JhuHH2NqIad0Pt/bK/YtNVhd3yb4pRapOeY5qQ==" - }, - "@aws-sdk/shared-ini-file-loader": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.127.0.tgz", - "integrity": "sha512-S3Nn4KRTqoJsB/TbRZSWBBUrkckNMR0Juqz7bOB+wupVvddKP6IcpspSC/GX9zgJjVMV8iGisZ6AUsYsC5r+cA==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/signature-v4": { - "version": "3.130.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.130.0.tgz", - "integrity": "sha512-g5G1a1NHL2uOoFfC2zQdZcj+wbjgBQPkx6xGdtqNKf9v2kS0n6ap5JUGEaqWE02lUlmWHsoMsS73hXtzwXaBRQ==", - "requires": { - "@aws-sdk/is-array-buffer": "3.55.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-hex-encoding": "3.109.0", - "@aws-sdk/util-middleware": "3.127.0", - "@aws-sdk/util-uri-escape": "3.55.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/signature-v4-multi-region": { - "version": "3.130.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.130.0.tgz", - "integrity": "sha512-ZRRoPRoCVdkGDtjuog81pqHsSLfnXK6ELrWm4Dq8xdcHQGbEDNdYmeXARXG9yPAO42x9yIJXHNutMz5Y/P64cw==", - "requires": { - "@aws-sdk/protocol-http": "3.127.0", - "@aws-sdk/signature-v4": "3.130.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-arn-parser": "3.55.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/smithy-client": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.142.0.tgz", - "integrity": "sha512-G38YWTfSFZb5cOH6IwLct530Uy8pnmJvJFeC1pd1nkKD4PRZb+bI2w4xXSX+znYdLA71RYK620OtVKJlB44PtA==", - "requires": { - "@aws-sdk/middleware-stack": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/types": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.127.0.tgz", - "integrity": "sha512-e0wtx2IkOl7rwfKfLH5pPTzQ+d45V7b1WrjeL0WDI8kOu6w+sXmhNxI6uM2kf0k4NiTLN84lW290AEWupey9Og==" - }, - "@aws-sdk/url-parser": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.127.0.tgz", - "integrity": "sha512-njZ7zn41JHRpNfr3BCesVXCLZE0zcWSfEdtRV0ICw0cU1FgYcKELSuY9+gLUB4ci6uc7gq7mPE8+w30FcM4QeA==", - "requires": { - "@aws-sdk/querystring-parser": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-arn-parser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.55.0.tgz", - "integrity": "sha512-76KJxp4MRWufHYWys7DFl64znr5yeJ3AIQNAPCKKw1sP0hzO7p6Kx0PaJnw9x+CPSzOrT4NbuApL6/srYhKDGg==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-base64-browser": { - "version": "3.109.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.109.0.tgz", - "integrity": "sha512-lAZ6fyDGiRLaIsKT9qh7P9FGuNyZ4gAbr1YOSQk/5mHtaTuUvxlPptZuInNM/0MPQm6lpcot00D8IWTucn4PbA==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-base64-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz", - "integrity": "sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ==", - "requires": { - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-body-length-browser": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz", - "integrity": "sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-body-length-node": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz", - "integrity": "sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-buffer-from": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz", - "integrity": "sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==", - "requires": { - "@aws-sdk/is-array-buffer": "3.55.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-config-provider": { - "version": "3.109.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.109.0.tgz", - "integrity": "sha512-GrAZl/aBv0A28LkyNyq8SPJ5fmViCwz80fWLMeWx/6q5AbivuILogjlWwEZSvZ9zrlHOcFC0+AnCa5pQrjaslw==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-defaults-mode-browser": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.142.0.tgz", - "integrity": "sha512-vVB/CrodMmIfv4v54MyBlKO0sQSI/+Mvs4g5gMyVjmT4a+1gnktJQ9R6ZHQ2/ErGewcra6eH9MU5T0r1kYe0+w==", - "requires": { - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/types": "3.127.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-defaults-mode-node": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.142.0.tgz", - "integrity": "sha512-13d5RZLO13EDwll3COUq3D4KVsqM63kdf+YjG5mzXR1eXo6GVjghfQfiy0MYM6YbAjTfJxZQkc0nFgWLU8jdyg==", - "requires": { - "@aws-sdk/config-resolver": "3.130.0", - "@aws-sdk/credential-provider-imds": "3.127.0", - "@aws-sdk/node-config-provider": "3.127.0", - "@aws-sdk/property-provider": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-hex-encoding": { - "version": "3.109.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.109.0.tgz", - "integrity": "sha512-s8CgTNrn3cLkrdiohfxLuOYPCanzvHn/aH5RW6DaMoeQiG5Hl9QUiP/WtdQ9QQx3xvpQFpmvxIaSBwSgFNLQxA==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-locate-window": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz", - "integrity": "sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-middleware": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.127.0.tgz", - "integrity": "sha512-EwAPPed9TNqh+Wov2VStLn2NuJ/Wyt7IkZCbCsBuSNp3BFZ1V4gfwTjqtKCtB2LQgQ48MTgWgNCvrH0zjCSPGg==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-stream-browser": { - "version": "3.131.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.131.0.tgz", - "integrity": "sha512-1YFbBPDu+elIgp8z1woUfT7zM+2PAvgJiw6ljDBuAlJzsP5xMhwk0X9e+8aQ+Qe4XftA0e7y/PH0gqvjNgCx2A==", - "requires": { - "@aws-sdk/fetch-http-handler": "3.131.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-base64-browser": "3.109.0", - "@aws-sdk/util-hex-encoding": "3.109.0", - "@aws-sdk/util-utf8-browser": "3.109.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-stream-node": { - "version": "3.129.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.129.0.tgz", - "integrity": "sha512-1iWqsWvVXyP4JLPPPs8tBZKyzs7D5e7KctXuCtIjI+cnGOCeVLL+X4L/7KDZfV7sI2D6vONtIoTnUjMl5V/kEg==", - "requires": { - "@aws-sdk/node-http-handler": "3.127.0", - "@aws-sdk/types": "3.127.0", - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-uri-escape": { - "version": "3.55.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz", - "integrity": "sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-user-agent-browser": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.127.0.tgz", - "integrity": "sha512-uO2oHmJswuYKJS+GiMdYI8izhpC9M7/jFFvnAmLlTEVwpEi1VX9KePAOF+u5AaBC2kzITo/7dg141XfRHZloIQ==", - "requires": { - "@aws-sdk/types": "3.127.0", - "bowser": "^2.11.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-user-agent-node": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.127.0.tgz", - "integrity": "sha512-3P/M4ZDD2qMeeoCk7TE/Mw7cG5IjB87F6BP8nI8/oHuaz7j6fsI7D49SNpyjl8JApRynZ122Ad6hwQwRj3isYw==", - "requires": { - "@aws-sdk/node-config-provider": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-utf8-browser": { - "version": "3.109.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.109.0.tgz", - "integrity": "sha512-FmcGSz0v7Bqpl1SE8G1Gc0CtDpug+rvqNCG/szn86JApD/f5x8oByjbEiAyTU2ZH2VevUntx6EW68ulHyH+x+w==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-utf8-node": { - "version": "3.109.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.109.0.tgz", - "integrity": "sha512-Ti/ZBdvz2eSTElsucjzNmzpyg2MwfD1rXmxD0hZuIF8bPON/0+sZYnWd5CbDw9kgmhy28dmKue086tbZ1G0iLQ==", - "requires": { - "@aws-sdk/util-buffer-from": "3.55.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/util-waiter": { - "version": "3.127.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.127.0.tgz", - "integrity": "sha512-E5qrRpBJS8dmClqSDW1pWVMKzCG/mxabG6jVUtlW/WLHnl/znxGaOQc6tnnwKik0nEq/4DpT9fEfPUz9JiLrkw==", - "requires": { - "@aws-sdk/abort-controller": "3.127.0", - "@aws-sdk/types": "3.127.0", - "tslib": "^2.3.1" - } - }, - "@aws-sdk/xml-builder": { - "version": "3.142.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.142.0.tgz", - "integrity": "sha512-e8rFjm5y9ngFc/cPwWMNn/CmMMrLx98CajWew9q7OzP6OOXQJ0H6TaRps2uQPM5XUv3/Ab5YQCV3NiaLJLqqNg==", - "requires": { - "tslib": "^2.3.1" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", - "dev": true - }, - "@babel/core": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", - "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.10", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", - "@babel/types": "^7.18.10", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.18.12", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.12.tgz", - "integrity": "sha512-dfQ8ebCN98SvyL7IxNMCUtZQSq5R7kxgN+r8qYTGDmmSion1hX2C0zq2yo1bsCDhXixokv1SAWTZUMYbO/V5zg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.10", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz", - "integrity": "sha512-WvypNAYaVh23QcjpMR24CwZY2Nz6hqdOcFdPbNpV56hL5H6KiFheO7Xm1aPdlLQ7d5emYZX7VZwPp9x3z+2opw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.9", - "@babel/helper-split-export-declaration": "^7.18.6" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", - "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-replace-supers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", - "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", - "dev": true, - "requires": { - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", - "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.18.9", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.11", - "@babel/types": "^7.18.10" - } - }, - "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.11.tgz", - "integrity": "sha512-9JKn5vN+hDt0Hdqn1PiJ2guflwP+B6Ga8qbDuoF0PzzVhrzsKIJo8yGqVk6CmMHiMei9w1C1Bp9IMJSIK+HPIQ==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", - "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", - "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-replace-supers": "^7.18.9", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", - "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", - "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", - "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-typescript": { - "version": "7.18.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz", - "integrity": "sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-typescript": "^7.18.6" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/preset-env": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", - "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.18.10", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", - "@babel/plugin-transform-classes": "^7.18.9", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.9", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.9", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.8", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.9", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.10", - "babel-plugin-polyfill-corejs2": "^0.3.2", - "babel-plugin-polyfill-corejs3": "^0.5.3", - "babel-plugin-polyfill-regenerator": "^0.4.0", - "core-js-compat": "^3.22.1", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz", - "integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-typescript": "^7.18.6" - } - }, - "@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", - "requires": { - "regenerator-runtime": "^0.13.4" - } - }, - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - } - }, - "@babel/traverse": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.11.tgz", - "integrity": "sha512-TG9PiM2R/cWCAy6BPJKeHzNbu4lPzOSZpeMfeNErskGpTJx6trEvFaVCbDvpcxwy49BKWmEPwiW8mrysNiDvIQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.10", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.11", - "@babel/types": "^7.18.10", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", - "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "devOptional": true - }, - "@fosscord/api": { - "version": "file:../api", - "requires": { - "@babel/core": "^7.18.9", - "@babel/preset-env": "^7.18.9", - "@babel/preset-typescript": "^7.15.0", - "@fosscord/util": "file:../util", - "@types/bcrypt": "^5.0.0", - "@types/express": "^4.17.9", - "@types/i18next-node-fs-backend": "^2.1.0", - "@types/morgan": "^1.9.3", - "@types/multer": "^1.4.5", - "@types/node": "^18.0.6", - "ajv": "8.6.2", - "ajv-formats": "^2.1.1", - "bcrypt": "^5.0.1", - "body-parser": "^1.19.0", - "canvas": "^2.9.3", - "cheerio": "^1.0.0-rc.10", - "dotenv": "^16.0.1", - "express": "^4.17.1", - "i18next": "^21.8.14", - "i18next-http-middleware": "^3.1.3", - "i18next-node-fs-backend": "^2.1.3", - "image-size": "^1.0.0", - "jest": "^28.1.3", - "jest-expect-message": "^1.0.2", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "morgan": "^1.10.0", - "multer": "^1.4.5-lts.1", - "node-2fa": "^2.0.3", - "node-fetch": "^2.6.7", - "patch-package": "^6.4.7", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "supertest": "^6.1.6", - "ts-node-dev": "^2.0.0", - "typeorm": "^0.3.7", - "typescript": "^4.4.2", - "typescript-json-schema": "^0.54.0" - } - }, - "@fosscord/cdn": { - "version": "file:../cdn", - "requires": { - "@aws-sdk/client-s3": "^3.137.0", - "@fosscord/util": "file:../util", - "@types/body-parser": "^1.19.0", - "@types/dotenv": "^8.2.0", - "@types/express": "^4.17.12", - "@types/multer": "^1.4.7", - "@types/node": "^18.6.3", - "@types/node-fetch": "^2.6.2", - "body-parser": "^1.19.0", - "dotenv": "^16.0.1", - "exif-be-gone": "^1.3.0", - "express": "^4.17.1", - "file-type": "16.5", - "image-size": "^1.0.0", - "jest": "^28.1.3", - "lambert-server": "^1.2.12", - "multer": "^1.4.5-lts.1", - "node-fetch": "^2.6.7", - "picocolors": "^1.0.0", - "supertest": "^6.1.6", - "typescript": "^4.1.2" - } - }, - "@fosscord/gateway": { - "version": "file:../gateway", - "requires": { - "@fosscord/util": "file:../util", - "@types/amqplib": "^0.8.1", - "@types/node": "^18.0.6", - "@types/ws": "^8.5.3", - "@yukikaze-bot/erlpack": "^1.0.1", - "amqplib": "^0.10.1", - "dotenv": "^16.0.1", - "ts-node-dev": "^2.0.0", - "ts-patch": "^2.0.1", - "typeorm": "^0.3.7", - "typescript": "^4.2.3", - "ws": "^8.8.1" - } - }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "optional": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", - "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/reporters": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^28.1.3", - "jest-config": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-resolve-dependencies": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "jest-watcher": "^28.1.3", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", - "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3" - } - }, - "@jest/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", - "dev": true, - "requires": { - "expect": "^28.1.3", - "jest-snapshot": "^28.1.3" - } - }, - "@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", - "dev": true, - "requires": { - "jest-get-type": "^28.0.2" - } - }, - "@jest/fake-timers": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", - "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "@jest/globals": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", - "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/types": "^28.1.3" - } - }, - "@jest/reporters": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", - "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^9.0.1" - } - }, - "@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.24.1" - } - }, - "@jest/source-map": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", - "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.13", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - } - }, - "@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", - "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", - "dev": true, - "requires": { - "@jest/test-result": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "slash": "^3.0.0" - } - }, - "@jest/transform": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", - "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - } - }, - "@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@mapbox/node-pre-gyp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz", - "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==", - "requires": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - } - }, - "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "optional": true, - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "optional": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@ovos-media/ts-transform-paths": { - "version": "1.7.18-1", - "resolved": "https://registry.npmjs.org/@ovos-media/ts-transform-paths/-/ts-transform-paths-1.7.18-1.tgz", - "integrity": "sha512-5uYtraYSWg1klaMYus3ouCOUUNzcI40pS0NCaw0PhoaPTimVfT3MV061ZLYR/4F14THqyofMjmCNcHgFrBX3AA==", - "requires": { - "@zerollup/ts-helpers": "^1.7.18" - } - }, - "@sentry/core": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.7.0.tgz", - "integrity": "sha512-Z15ACiuiFINFcK4gbMrnejLn4AVjKBPJOWKrrmpIe8mh+Y9diOuswt5mMUABs+jhpZvqht3PBLLGBL0WMsYMYA==", - "requires": { - "@sentry/hub": "7.7.0", - "@sentry/types": "7.7.0", - "@sentry/utils": "7.7.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/hub": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-7.7.0.tgz", - "integrity": "sha512-6gydK234+a0nKhBRDdIJ7Dp42CaiW2juTiHegUVDq+482balVzbZyEAmESCmuzKJhx5BhlCElVxs/cci1NjMpg==", - "requires": { - "@sentry/types": "7.7.0", - "@sentry/utils": "7.7.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/node": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.7.0.tgz", - "integrity": "sha512-i62x23NHEhLe6CJ6l9E30uRCUMm0VMz9aUmmrjW+9uxS1mZhHTG2kpbU16ozyh9KTLswKDOSE75Z+MzQpGSQ/Q==", - "requires": { - "@sentry/core": "7.7.0", - "@sentry/hub": "7.7.0", - "@sentry/types": "7.7.0", - "@sentry/utils": "7.7.0", - "cookie": "^0.4.1", - "https-proxy-agent": "^5.0.0", - "lru_map": "^0.3.3", - "tslib": "^1.9.3" - }, - "dependencies": { - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/tracing": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.7.0.tgz", - "integrity": "sha512-HNmvTwemuc21q/K6HXsSp9njkne6N1JQ71TB+QGqYU5VtxsVgYSUhhYqV6WcHz7LK4Hj6TvNFoeu69/rO0ysgw==", - "requires": { - "@sentry/hub": "7.7.0", - "@sentry/types": "7.7.0", - "@sentry/utils": "7.7.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sentry/types": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.7.0.tgz", - "integrity": "sha512-4x8O7uerSGLnYC10krHl9t8h7xXHn5FextqKYbTCXCnx2hC8D+9lz8wcbQAFo0d97wiUYqI8opmEgFVGx7c5hQ==" - }, - "@sentry/utils": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.7.0.tgz", - "integrity": "sha512-fD+ROSFpeJlK7bEvUT2LOW7QqgjBpXJwVISKZ0P2fuzclRC3KoB2pbZgBM4PXMMTiSzRGWhvfRRjBiBvQJBBJQ==", - "requires": { - "@sentry/types": "7.7.0", - "tslib": "^1.9.3" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@sinclair/typebox": { - "version": "0.24.27", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.27.tgz", - "integrity": "sha512-K7C7IlQ3zLePEZleUN21ceBA2aLcMnLHTLph8QWk1JK37L90obdpY+QGY8bXMKxf1ht1Z0MNewvXxWv0oGDYFg==", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@sqltools/formatter": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz", - "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" - }, - "@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@tsconfig/node10": { - "version": "1.0.8", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "devOptional": true - }, - "@tsconfig/node12": { - "version": "1.0.9", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "devOptional": true - }, - "@tsconfig/node14": { - "version": "1.0.1", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "devOptional": true - }, - "@tsconfig/node16": { - "version": "1.0.2", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "devOptional": true - }, - "@types/amqplib": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz", - "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==", - "dev": true, - "requires": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.18.0.tgz", - "integrity": "sha512-v4Vwdko+pgymgS+A2UIaJru93zQd85vIGWObM5ekZNdXCKtDYqATlEYnWgfo86Q6I1Lh0oXnksDnMU1cwmlPDw==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/bcrypt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-5.0.0.tgz", - "integrity": "sha512-agtcFKaruL8TmcvqbndlqHPSJgsolhf/qPWchFlgnW1gECTN/nKbFcoFnvKAQRFfKbh+BO6A3SWdJu9t+xF3Lw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.1", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/dotenv": { - "version": "8.2.0", - "integrity": "sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw==", - "dev": true, - "requires": { - "dotenv": "*" - } - }, - "@types/express": { - "version": "4.17.13", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.24", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/i18next-node-fs-backend": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@types/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.1.tgz", - "integrity": "sha512-ESvH90OICQkKU3yuuRzF6YfHt5KACE55FOiUM59mMGnC+h03lHGdEYo3z3THbwS5FdMskLyIs2O7f6Oaz8P9sw==", - "dev": true, - "requires": { - "i18next": ">=17.0.11" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/jsonwebtoken": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", - "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/mime": { - "version": "1.3.2", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "@types/morgan": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.3.tgz", - "integrity": "sha512-BiLcfVqGBZCyNCnCH3F4o2GmDLrpy0HeBVnNlyZG4fo88ZiE9SoiBe3C+2ezuwbjlEyT+PDZ17//TAlRxAn75Q==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/multer": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz", - "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/node": { - "version": "18.0.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz", - "integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==" - }, - "@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/node-os-utils": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@types/node-os-utils/-/node-os-utils-1.3.0.tgz", - "integrity": "sha512-XwVteWQx/XkfRPyaGkw8dEbrCAkoRZ73pI3XznUYIpzbCfpQB3UnDlR5TnmdhetlT889tUJGF8QWo9xrgTpsiA==", - "dev": true - }, - "@types/notp": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@types/notp/-/notp-2.0.2.tgz", - "integrity": "sha512-JUcVYN9Tmw0AjoAfvjslS4hbv39fPBbZdftBK3b50g5z/DmhLsu6cd0UOEBiQuMwy2FirshF2Gk9gAvfWjshMw==", - "requires": { - "@types/node": "*" - } - }, - "@types/prettier": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz", - "integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.10", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/stream-buffers": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.4.tgz", - "integrity": "sha512-qU/K1tb2yUdhXkLIATzsIPwbtX6BpZk0l3dPW6xqWyhfzzM1ECaQ/8faEnu3CNraLiQ9LHyQQPBGp7N9Fbs25w==", - "requires": { - "@types/node": "*" - } - }, - "@types/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==", - "dev": true - }, - "@types/strip-json-comments": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", - "dev": true - }, - "@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/yargs": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.11.tgz", - "integrity": "sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "@yarnpkg/lockfile": { - "version": "1.1.0", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" - }, - "@zerollup/ts-helpers": { - "version": "1.7.18", - "resolved": "https://registry.npmjs.org/@zerollup/ts-helpers/-/ts-helpers-1.7.18.tgz", - "integrity": "sha512-S9zN+y+i5yN/evfWquzSO3lubqPXIsPQf6p9OiPMpRxDx/0totPLF39XoRw48Dav5dSvbIE8D2eAPpXXJxvKwg==", - "requires": { - "resolve": "^1.12.0" - } - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==" - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - }, - "agent-base": { - "version": "6.0.2", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "optional": true, - "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "optional": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true - } - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "optional": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "requires": { - "ajv": "^8.0.0" - } - }, - "amqplib": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.10.2.tgz", - "integrity": "sha512-l8U1thHT5QRNJF6Fv6ZveMeHV/bl+3UROQBn/cLOwRfeV3F0syZxkjnumJCG4NMvqfy9wT7mCgwpPSq2fApRpA==", - "requires": { - "bitsyntax": "~0.1.0", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "url-parse": "~1.5.10" - }, - "dependencies": { - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - } - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==" - }, - "append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" - }, - "aproba": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", - "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" - }, - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "arg": { - "version": "4.1.3", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "requires": { - "tslib": "^2.0.1" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "babel-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", - "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", - "dev": true, - "requires": { - "@jest/transform": "^28.1.3", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", - "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", - "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.2", - "semver": "^6.1.1" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", - "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.2", - "core-js-compat": "^3.21.0" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", - "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.2" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", - "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^28.1.3", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "bcrypt": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz", - "integrity": "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==", - "requires": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^3.1.0" - }, - "dependencies": { - "node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" - } - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bitsyntax": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz", - "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==", - "requires": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" - }, - "bowser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" - }, - "brace-expansion": { - "version": "1.1.11", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-more-ints": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz", - "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" - }, - "buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==" - }, - "busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "requires": { - "streamsearch": "^1.1.0" - } - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "optional": true, - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001374", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001374.tgz", - "integrity": "sha512-mWvzatRx3w+j5wx/mpFN5v5twlPrabG8NqX2c6e45LCpymdoGqNvRkRutFUqpRTXKFQFNQJasvK0YT7suW6/Hw==", - "dev": true - }, - "canvas": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.9.3.tgz", - "integrity": "sha512-WOUM7ghii5TV2rbhaZkh1youv/vW1/Canev6Yx6BG2W+1S07w8jKZqKkPnbiPpQEDsnJdN8ouDd7OvQEGXDcUw==", - "requires": { - "@mapbox/node-pre-gyp": "^1.0.0", - "nan": "^2.15.0", - "simple-get": "^3.0.3" - } - }, - "chalk": { - "version": "4.1.2", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "cheerio": { - "version": "1.0.0-rc.12", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "requires": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - } - }, - "cheerio-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "requires": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" - }, - "ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "optional": true - }, - "cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "requires": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "dependencies": { - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "requires": { - "parse5": "^6.0.1" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - } - } - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - } - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - }, - "cookie-signature": { - "version": "1.0.6", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" - }, - "core-js-compat": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", - "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", - "dev": true, - "requires": { - "browserslist": "^4.21.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "create-require": { - "version": "1.1.1", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" - }, - "data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" - }, - "date-fns": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.29.1.tgz", - "integrity": "sha512-dlLD5rKaKxpFdnjrs+5azHDFOPEu4ANy/LTh04A1DTzMM7qoajmKCBc8pkKRFT41CNzw+4gQh79X5C+Jq27HAw==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "requires": { - "mimic-response": "^2.0.0" - } - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "degenerator": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz", - "integrity": "sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==", - "requires": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.8" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" - }, - "denque": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", - "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", - "requires": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "diff": { - "version": "4.0.2", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "devOptional": true - }, - "diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true - }, - "dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "dependencies": { - "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==" - } - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - }, - "domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "requires": { - "domelementtype": "^2.3.0" - } - }, - "domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "requires": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - } - }, - "dotenv": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", - "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" - }, - "dynamic-dedupe": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz", - "integrity": "sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==", - "dev": true, - "requires": { - "xtend": "^4.0.0" - } - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "electron-to-chromium": { - "version": "1.4.211", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz", - "integrity": "sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A==", - "dev": true - }, - "emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "optional": true - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "optional": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exif-be-gone": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/exif-be-gone/-/exif-be-gone-1.3.1.tgz", - "integrity": "sha512-lHvNqbaTsH0WzhzfxxiTh9KwmXjAfiiTfY6UVmUZXJsaU62ccURy8beEVYFKSmNfvf0n6srLIFi0NDBWvhYUlQ==", - "requires": { - "@types/stream-buffers": "^3.0.3" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true - }, - "expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "dev": true, - "requires": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "express-async-errors": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/express-async-errors/-/express-async-errors-3.1.1.tgz", - "integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==", - "requires": {} - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "fast-xml-parser": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", - "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==" - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "file-type": { - "version": "16.5.4", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", - "requires": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - } - }, - "file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==" - }, - "fill-range": { - "version": "7.0.1", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "find-yarn-workspace-root": { - "version": "2.0.0", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "requires": { - "micromatch": "^4.0.2" - } - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "formidable": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", - "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", - "requires": { - "dezalgo": "1.0.3", - "hexoid": "1.0.0", - "once": "1.4.0", - "qs": "6.9.3" - }, - "dependencies": { - "qs": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==" - } - } - }, - "forwarded": { - "version": "0.2.0", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - } - } - }, - "function-bind": { - "version": "1.1.1", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - } - }, - "generate-function": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", - "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", - "requires": { - "is-property": "^1.0.2" - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", - "requires": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-prefix": { - "version": "3.0.0", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "has": { - "version": "1.0.3", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" - }, - "helmet": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", - "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==" - }, - "hexoid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==" - }, - "highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" - }, - "dependencies": { - "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==" - } - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "optional": true - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "optional": true, - "requires": { - "ms": "^2.0.0" - } - }, - "i18next": { - "version": "21.8.16", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.8.16.tgz", - "integrity": "sha512-acJLCk38YMfEPjBR/1vS13SFY7rBQLs9E5m1tSRnWc9UW3f+SZszgH+NP1fZRA1+O+CdG2eLGGmuUMJW52EwzQ==", - "requires": { - "@babel/runtime": "^7.17.2" - } - }, - "i18next-http-middleware": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/i18next-http-middleware/-/i18next-http-middleware-3.2.1.tgz", - "integrity": "sha512-zBwXxDChT0YLoTXIR6jRuqnUUhXW0Iw7egoTnNXyaDRtTbfWNXwU0a53ThyuRPQ+k+tXu3ZMNKRzfLuononaRw==" - }, - "i18next-node-fs-backend": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.3.tgz", - "integrity": "sha512-CreMFiVl3ChlMc5ys/e0QfuLFOZyFcL40Jj6jaKD6DxZ/GCUMxPI9BpU43QMWUgC7r+PClpxg2cGXAl0CjG04g==", - "requires": { - "js-yaml": "3.13.1", - "json5": "2.0.0" - }, - "dependencies": { - "json5": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.0.0.tgz", - "integrity": "sha512-0EdQvHuLm7yJ7lyG5dp7Q3X2ku++BG5ZHaJ5FTnaXpKqDrw4pMxel5Bt3oAYMthnrthFBdnZ1FcsXTPyrQlV0w==", - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "image-size": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz", - "integrity": "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==", - "requires": { - "queue": "6.0.2" - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "devOptional": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "optional": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "optional": true - }, - "inflight": { - "version": "1.0.6", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "interpret": { - "version": "1.4.0", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "ip": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", - "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" - }, - "ipaddr.js": { - "version": "1.9.1", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.6.0", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "requires": { - "has": "^1.0.3" - } - }, - "is-docker": { - "version": "2.2.1", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "optional": true - }, - "is-number": { - "version": "7.0.0", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-property": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", - "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "isexe": { - "version": "2.0.0", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", - "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", - "dev": true, - "requires": { - "@jest/core": "^28.1.3", - "@jest/types": "^28.1.3", - "import-local": "^3.0.2", - "jest-cli": "^28.1.3" - } - }, - "jest-changed-files": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", - "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", - "dev": true, - "requires": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - } - }, - "jest-circus": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", - "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "p-limit": "^3.1.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-cli": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", - "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", - "dev": true, - "requires": { - "@jest/core": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - } - }, - "jest-config": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", - "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.3", - "@jest/types": "^28.1.3", - "babel-jest": "^28.1.3", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.3", - "jest-environment-node": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - } - }, - "jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-docblock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", - "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", - "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.3", - "pretty-format": "^28.1.3" - } - }, - "jest-environment-node": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", - "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "jest-expect-message": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/jest-expect-message/-/jest-expect-message-1.0.2.tgz", - "integrity": "sha512-WFiXMgwS2lOqQZt1iJMI/hOXpUm32X+ApsuzYcQpW5m16Pv6/Gd9kgC+Q+Q1YVNU04kYcAOv9NXMnjg6kKUy6Q==", - "dev": true - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "jest-haste-map": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", - "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-leak-detector": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", - "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", - "dev": true, - "requires": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", - "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true - }, - "jest-resolve": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", - "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", - "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", - "dev": true, - "requires": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.3" - } - }, - "jest-runner": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", - "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/environment": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "graceful-fs": "^4.2.9", - "jest-docblock": "^28.1.1", - "jest-environment-node": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-leak-detector": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-resolve": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-util": "^28.1.3", - "jest-watcher": "^28.1.3", - "jest-worker": "^28.1.3", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - } - }, - "jest-runtime": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", - "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/globals": "^28.1.3", - "@jest/source-map": "^28.1.2", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - } - }, - "jest-snapshot": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", - "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.3", - "semver": "^7.3.5" - } - }, - "jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", - "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "leven": "^3.1.0", - "pretty-format": "^28.1.3" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "dev": true, - "requires": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "klaw-sync": { - "version": "6.0.0", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", - "requires": { - "graceful-fs": "^4.1.11" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "lambert-server": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/lambert-server/-/lambert-server-1.2.12.tgz", - "integrity": "sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw==", - "requires": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "lru_map": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", - "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "make-error": { - "version": "1.3.6", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "devOptional": true - }, - "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "optional": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - }, - "merge-descriptors": { - "version": "1.0.1", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "4.0.4", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "minipass": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", - "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "optional": true, - "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "missing-native-js-functions": { - "version": "1.2.18", - "resolved": "https://registry.npmjs.org/missing-native-js-functions/-/missing-native-js-functions-1.2.18.tgz", - "integrity": "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg==" - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "morgan": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", - "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", - "requires": { - "basic-auth": "~2.0.1", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-finished": "~2.3.0", - "on-headers": "~1.0.2" - }, - "dependencies": { - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", - "requires": { - "ee-first": "1.1.1" - } - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "multer": { - "version": "1.4.5-lts.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", - "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", - "requires": { - "append-field": "^1.0.0", - "busboy": "^1.0.0", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - } - } - }, - "mysql2": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", - "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", - "requires": { - "denque": "^2.0.1", - "generate-function": "^2.3.1", - "iconv-lite": "^0.6.3", - "long": "^4.0.0", - "lru-cache": "^6.0.0", - "named-placeholders": "^1.1.2", - "seq-queue": "^0.0.5", - "sqlstring": "^2.3.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "named-placeholders": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", - "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", - "requires": { - "lru-cache": "^4.1.3" - }, - "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" - } - } - }, - "nan": { - "version": "2.16.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", - "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" - }, - "nice-try": { - "version": "1.0.5", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node-2fa": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-2fa/-/node-2fa-2.0.3.tgz", - "integrity": "sha512-PQldrOhjuoZyoydMvMSctllPN1ZPZ1/NwkEcgYwY9faVqE/OymxR+3awPpbWZxm6acLKqvmNqQmdqTsqYyflFw==", - "requires": { - "@types/notp": "^2.0.0", - "notp": "^2.0.3", - "thirty-two": "1.0.2", - "tslib": "^2.1.0" - } - }, - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "optional": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "optional": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "optional": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "optional": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-os-utils": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/node-os-utils/-/node-os-utils-1.3.7.tgz", - "integrity": "sha512-fvnX9tZbR7WfCG5BAy3yO/nCLyjVWD6MghEq0z5FDfN+ZXpLWNITBdbifxQkQ25ebr16G0N7eRWJisOcMEHG3Q==" - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "notp": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/notp/-/notp-2.0.3.tgz", - "integrity": "sha512-oBig/2uqkjQ5AkBuw4QJYwkEWa/q+zHxI5/I5z6IeP2NT0alpJFsP/trrfCC+9xOAgQSZXssNi962kp5KBmypQ==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "requires": { - "boolbase": "^1.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.3.tgz", - "integrity": "sha512-ZFJnX3zltyjcYJL0RoCJuzb+11zWGyaDbjgxZbdV7rFEcHQuYxrZqhow67aA7xpes6LhojyFDaBKAFfogQrikA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" - }, - "once": { - "version": "1.4.0", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.4.2", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "dependencies": { - "is-wsl": { - "version": "2.2.0", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - } - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-tmpdir": { - "version": "1.0.2", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "optional": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pac-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", - "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "requires": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - } - } - } - }, - "pac-resolver": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz", - "integrity": "sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==", - "requires": { - "degenerator": "^3.0.2", - "ip": "^1.1.5", - "netmask": "^2.0.2" - }, - "dependencies": { - "ip": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", - "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" - } - } - }, - "packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", - "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", - "requires": { - "entities": "^4.3.0" - }, - "dependencies": { - "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==" - } - } - }, - "parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "requires": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "patch-package": { - "version": "6.4.7", - "integrity": "sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==", - "requires": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^7.0.1", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.0", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "ci-info": { - "version": "2.0.0", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "color-convert": { - "version": "1.9.3", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "cross-spawn": { - "version": "6.0.5", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "fs-extra": { - "version": "7.0.1", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "has-flag": { - "version": "3.0.0", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "is-ci": { - "version": "2.0.0", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "rimraf": { - "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "shebang-command": { - "version": "1.2.0", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "slash": { - "version": "2.0.0", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "supports-color": { - "version": "5.5.0", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "path-equal": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.2.tgz", - "integrity": "sha512-AUJvbcle1Zgb1TgtftHYknlrgrSYyI1ytrYgSbKUHSybwqUDnbD2cw9PIWivuMvsN+GTXmr/DRN4VBXpHG6aGg==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "peek-readable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", - "integrity": "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" - }, - "pg": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", - "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", - "requires": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.5.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - } - }, - "pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" - }, - "pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" - }, - "pg-pool": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz", - "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==", - "requires": {} - }, - "pg-protocol": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" - }, - "pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "requires": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - } - }, - "pgpass": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", - "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", - "requires": { - "split2": "^4.1.0" - } - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.0", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==" - }, - "postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==" - }, - "postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==" - }, - "postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "requires": { - "xtend": "^4.0.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "optional": true - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "optional": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "proxy-addr": { - "version": "2.0.7", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", - "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", - "requires": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "requires": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "requires": { - "inherits": "~2.0.3" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "requires": { - "readable-stream": "^3.6.0" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.6.2", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" - }, - "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regexpu-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", - "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", - "dev": true - }, - "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true - } - } - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, - "resolve": { - "version": "1.20.0", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "optional": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-stable-stringify": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", - "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "seq-queue": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", - "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" - }, - "simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, - "socks": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.0.tgz", - "integrity": "sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA==", - "requires": { - "ip": "^2.0.0", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "optional": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "optional": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "split2": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", - "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" - }, - "sqlite3": { - "version": "5.0.11", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.11.tgz", - "integrity": "sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA==", - "requires": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^4.2.0", - "node-gyp": "8.x", - "tar": "^6.1.11" - } - }, - "sqlstring": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", - "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "optional": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "strtok3": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz", - "integrity": "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==", - "requires": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.1.0" - } - }, - "superagent": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.0.tgz", - "integrity": "sha512-iudipXEel+SzlP9y29UBWGDjB+Zzag+eeA1iLosaR2YHBRr1Q1kC29iBrF2zIVD9fqVbpZnXkN/VJmwFMVyNWg==", - "requires": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.3", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^2.0.1", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.10.3", - "readable-stream": "^3.6.0", - "semver": "^7.3.7" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "supertest": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.4.tgz", - "integrity": "sha512-M8xVnCNv+q2T2WXVzxDECvL2695Uv2uUj2O0utxsld/HRyJvOU8W9f1gvsYxSNU4wmIe0/L/ItnpU4iKq0emDA==", - "requires": { - "methods": "^1.1.2", - "superagent": "^8.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "thirty-two": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz", - "integrity": "sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==" - }, - "tmp": { - "version": "0.0.33", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "token-types": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz", - "integrity": "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==", - "requires": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - } - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "devOptional": true, - "requires": { - "@cspotcode/source-map-support": "0.7.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "yn": "3.1.1" - }, - "dependencies": { - "@cspotcode/source-map-support": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz", - "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==", - "devOptional": true, - "requires": { - "@cspotcode/source-map-consumer": "0.8.0" - } - } - } - }, - "ts-node-dev": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-2.0.0.tgz", - "integrity": "sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==", - "dev": true, - "requires": { - "chokidar": "^3.5.1", - "dynamic-dedupe": "^0.3.0", - "minimist": "^1.2.6", - "mkdirp": "^1.0.4", - "resolve": "^1.0.0", - "rimraf": "^2.6.1", - "source-map-support": "^0.5.12", - "tree-kill": "^1.2.2", - "ts-node": "^10.4.0", - "tsconfig": "^7.0.0" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "ts-patch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-2.0.1.tgz", - "integrity": "sha512-mP7beU1QkmyDs1+SzXYVaSTD6Xo7ZCibOJ3sZkb/xsQjoAQXvn4oPjk0keC2LfCNAgilqtqgjiWp3pQri1uz4w==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "glob": "^7.1.7", - "global-prefix": "^3.0.0", - "minimist": "^1.2.5", - "resolve": "^1.20.0", - "shelljs": "^0.8.4", - "strip-ansi": "^6.0.0" - } - }, - "tsconfig": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz", - "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", - "dev": true, - "requires": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - }, - "dependencies": { - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true - } - } - }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" - }, - "typeorm": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", - "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", - "requires": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==" - }, - "typescript-json-schema": { - "version": "0.54.0", - "resolved": "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.54.0.tgz", - "integrity": "sha512-/MNhm1pjdxXiVspjjyRCrQAA1B768cRzHU83aIqN5vQqQEW2NgyyKOfcguiRIMM64lseIZIelegnHOHEu7YDCg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "@types/node": "^16.9.2", - "glob": "^7.1.7", - "path-equal": "^1.1.2", - "safe-stable-stringify": "^2.2.0", - "ts-node": "^10.2.1", - "typescript": "~4.6.0", - "yargs": "^17.1.1" - }, - "dependencies": { - "@types/node": { - "version": "16.11.47", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.47.tgz", - "integrity": "sha512-fpP+jk2zJ4VW66+wAMFoBJlx1bxmBKx4DUFf68UHgdGCOuyUTDlLWqsaNPJh7xhNDykyJ9eIzAygilP/4WoN8g==", - "dev": true - }, - "typescript": { - "version": "4.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", - "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", - "dev": true - } - } - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", - "dev": true - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "optional": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "optional": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, - "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "utils-merge": { - "version": "1.0.1", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - } - }, - "vary": { - "version": "1.1.2", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vm2": { - "version": "3.9.10", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.10.tgz", - "integrity": "sha512-AuECTSvwu2OHLAZYhG716YzwodKCIJxB6u1zG7PgSQwIgAlEaoXH52bxdcvT8GkGjnYK7r7yWDW0m0sOsPuBjQ==", - "requires": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", - "requires": {} - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" - }, - "yn": { - "version": "3.1.1", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "devOptional": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} diff --git a/bundle/package.json b/bundle/package.json deleted file mode 100644 index 7431a96f..00000000 --- a/bundle/package.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "name": "@fosscord/server", - "version": "1.0.0", - "description": "", - "main": "src/start.js", - "scripts": { - "setup": "node scripts/install.js && npm install --omit optional && ts-patch install -s && patch-package --patch-dir ../api/patches/ && npm run build", - "depclean": "node scripts/depclean.js", - "depcheck": "node scripts/depcheck.js", - "syncdeps": "node scripts/install.js", - "build": "node scripts/build.js", - "genschemas": "node scripts/update_schemas.js", - "start": "node scripts/build.js && node --enable-source-maps dist/bundle/src/start.js", - "start:bundle": "node --enable-source-maps dist/bundle/src/start.js", - "start:bundle:dbg": "node --enable-source-maps --inspect dist/bundle/src/start.js", - "start:bundle:vscode-dbg": "npm run genschemas && npm run build clean logerrors pretty-errors && node --enable-source-maps --inspect dist/bundle/src/start.js", - "test": "echo \"Error: no test specified\" && exit 1", - "migrate": "cd ../util/ && npm i && node --require ts-node/register node_modules/typeorm/cli.js -f ../util/ormconfig.json migration:run", - "tsnode": "npx ts-node --transpile-only -P tsnode.tsconfig.json src/start.ts" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fosscord/fosscord-server.git" - }, - "keywords": [], - "author": "Fosscord", - "license": "AGPL-3.0-only", - "bugs": { - "url": "https://github.com/fosscord/fosscord-server/issues" - }, - "homepage": "https://fosscord.com", - "devDependencies": { - "@babel/core": "^7.18.9", - "@babel/preset-env": "^7.18.9", - "@babel/preset-typescript": "^7.15.0", - "@types/amqplib": "^0.8.1", - "@types/bcrypt": "^5.0.0", - "@types/body-parser": "^1.19.0", - "@types/dotenv": "^8.2.0", - "@types/express": "^4.17.12", - "@types/i18next-node-fs-backend": "^2.1.0", - "@types/jsonwebtoken": "^8.5.8", - "@types/morgan": "^1.9.3", - "@types/multer": "^1.4.7", - "@types/node": "^18.0.6", - "@types/node-os-utils": "^1.3.0", - "@types/ws": "^8.5.3", - "jest": "^28.1.3", - "jest-expect-message": "^1.0.2", - "ts-node": "^10.2.1", - "ts-node-dev": "^2.0.0", - "ts-patch": "^2.0.1", - "typescript": "^4.2.3", - "typescript-json-schema": "^0.54.0" - }, - "dependencies": { - "@aws-sdk/client-s3": "^3.137.0", - "@babel/preset-typescript": "^7.15.0", - "@fosscord/api": "file:../api", - "@fosscord/cdn": "file:../cdn", - "@fosscord/gateway": "file:../gateway", - "@ovos-media/ts-transform-paths": "^1.7.18-1", - "@sentry/node": "^7.7.0", - "@sentry/tracing": "^7.7.0", - "@types/node-fetch": "^2.6.2", - "ajv": "8.6.2", - "ajv-formats": "^2.1.1", - "amqplib": "^0.10.1", - "bcrypt": "^5.0.1", - "body-parser": "^1.19.0", - "canvas": "^2.9.3", - "cheerio": "^1.0.0-rc.10", - "dotenv": "^16.0.1", - "exif-be-gone": "^1.3.0", - "express": "^4.17.1", - "file-type": "16.5", - "form-data": "^4.0.0", - "i18next": "^21.8.14", - "i18next-http-middleware": "^3.1.3", - "i18next-node-fs-backend": "^2.1.3", - "image-size": "^1.0.0", - "jest": "^28.1.3", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "morgan": "^1.10.0", - "multer": "^1.4.5-lts.1", - "mysql2": "^2.3.3", - "node-2fa": "^2.0.3", - "node-fetch": "^2.6.7", - "node-os-utils": "^1.3.7", - "patch-package": "^6.4.7", - "pg": "^8.7.3", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "sqlite3": "^5.0.11", - "supertest": "^6.1.6", - "typeorm": "^0.3.7", - "typescript": "^4.1.2", - "ws": "^8.8.1" - } -} \ No newline at end of file diff --git a/bundle/scripts/benchmark/connections.js b/bundle/scripts/benchmark/connections.js deleted file mode 100644 index 661548c3..00000000 --- a/bundle/scripts/benchmark/connections.js +++ /dev/null @@ -1,64 +0,0 @@ -require("dotenv").config(); -const cluster = require("cluster"); -const WebSocket = require("ws"); -const endpoint = process.env.GATEWAY || "ws://localhost:3001"; -const connections = Number(process.env.CONNECTIONS) || 50; -const token = process.env.TOKEN; -let cores = 1; -try { - cores = Number(process.env.THREADS) || os.cpus().length; -} catch { - console.log("[Bundle] Failed to get thread count! Using 1...") -} - -if (!token) { - console.error("TOKEN env var missing"); - process.exit(); -} - -if (cluster.isMaster) { - for (let i = 0; i < threads; i++) { - cluster.fork(); - } - - cluster.on("exit", (worker, code, signal) => { - console.log(`worker ${worker.process.pid} died`); - }); -} else { - for (let i = 0; i < connections; i++) { - connect(); - } -} - -function connect() { - const client = new WebSocket(endpoint); - client.on("message", (data) => { - data = JSON.parse(data); - - switch (data.op) { - case 10: - client.interval = setInterval(() => { - client.send(JSON.stringify({ op: 1 })); - }, data.d.heartbeat_interval); - - client.send( - JSON.stringify({ - op: 2, - d: { - token, - properties: {}, - }, - }) - ); - - break; - } - }); - client.once("close", (code, reason) => { - clearInterval(client.interval); - connect(); - }); - client.on("error", (err) => { - // console.log(err); - }); -} diff --git a/bundle/scripts/benchmark/index.js b/bundle/scripts/benchmark/index.js deleted file mode 100644 index 37ac5633..00000000 --- a/bundle/scripts/benchmark/index.js +++ /dev/null @@ -1,4 +0,0 @@ -require("dotenv").config(); - -require("./connections"); -require("./messages"); diff --git a/bundle/scripts/benchmark/users.js b/bundle/scripts/benchmark/users.js deleted file mode 100644 index bce67bf4..00000000 --- a/bundle/scripts/benchmark/users.js +++ /dev/null @@ -1,25 +0,0 @@ -require("dotenv").config(); -const fetch = require("node-fetch"); -const count = Number(process.env.COUNT) || 50; -const endpoint = process.env.API || "http://localhost:3001"; - -async function main() { - for (let i = 0; i < count; i++) { - fetch(`${endpoint}/api/auth/register`, { - method: "POST", - body: JSON.stringify({ - fingerprint: `${i}.wR8vi8lGlFBJerErO9LG5NViJFw`, - username: `test${i}`, - invite: null, - consent: true, - date_of_birth: "2000-01-01", - gift_code_sku_id: null, - captcha_key: null, - }), - headers: { "content-type": "application/json" }, - }); - console.log(i); - } -} - -main(); diff --git a/bundle/scripts/build.js b/bundle/scripts/build.js deleted file mode 100644 index f53a2223..00000000 --- a/bundle/scripts/build.js +++ /dev/null @@ -1,93 +0,0 @@ -const { execSync } = require("child_process"); -const path = require("path"); -const fs = require("fs"); -const { getSystemErrorMap } = require("util"); -const { argv, stdout, exit } = require("process"); -const { copyRecursiveSync, execIn, parts } = require('./utils'); - -if(argv.includes("help")) { - console.log(`Fosscord build script help: -Arguments: - clean Cleans up previous builds - copyonly Only copy source files, don't build (useful for updating assets) - verbose Enable verbose logging - logerrors Log build errors to console - pretty-errors Pretty-print build errors - silent No output to console or files.`); - exit(0); -} - -let steps = 3, i = 0; -if (argv.includes("clean")) steps++; -if (argv.includes("copyonly")) steps--; - -const verbose = argv.includes("verbose") || argv.includes("v"); -const logerr = argv.includes("logerrors"); -const pretty = argv.includes("pretty-errors"); -const silent = argv.includes("silent"); - -if(silent) console.error = console.log = function(){} - -if (argv.includes("clean")) { - console.log(`[${++i}/${steps}] Cleaning...`); - parts.forEach((a) => { - let d = "../" + a + "/dist"; - if (fs.existsSync(d)) { - fs.rmSync(d, { recursive: true }); - if (verbose) console.log(`Deleted ${d}!`); - } - }); -} - -console.log(`[${++i}/${steps}] Checking if dependencies were installed correctly...`); -//exif-be-gone v1.3.0 doesnt build js, known bug -if(!fs.existsSync(path.join(__dirname, "..", "node_modules", "exif-be-gone", "index.js"))) - execIn("npm run build", path.join(__dirname, "..", "node_modules", "exif-be-gone")); - -console.log(`[${++i}/${steps}] Copying src files...`); -copyRecursiveSync(path.join(__dirname, "..", "..", "api", "assets"), path.join(__dirname, "..", "dist", "api", "assets")); -copyRecursiveSync(path.join(__dirname, "..", "..", "api", "client_test"), path.join(__dirname, "..", "dist", "api", "client_test")); -copyRecursiveSync(path.join(__dirname, "..", "..", "api", "locales"), path.join(__dirname, "..", "dist", "api", "locales")); -parts.forEach((a) => { - copyRecursiveSync("../" + a + "/src", "dist/" + a + "/src"); - if (verbose) console.log(`Copied ${"../" + a + "/dist"} -> ${"dist/" + a + "/src"}!`); -}); - -if (!argv.includes("copyonly")) { - console.log(`[${++i}/${steps}] Compiling src files ...`); - - let buildFlags = '' - if(pretty) buildFlags += '--pretty ' - - try { - execSync( - 'node "' + - path.join(__dirname, "..", "node_modules", "typescript", "lib", "tsc.js") + - '" -p "' + - path.join(__dirname, "..") + - '" ' + buildFlags, - { - cwd: path.join(__dirname, ".."), - shell: true, - env: process.env, - encoding: "utf8" - } - ) - } catch (error) { - if(verbose || logerr) { - error.stdout.split(/\r?\n/).forEach((line) => { - let _line = line.replace('dist/','',1); - if(!pretty && _line.includes('.ts(')) { - //reformat file path for easy jumping - _line = _line.replace('(',':',1).replace(',',':',1).replace(')','',1) - } - console.error(_line); - }) - } - console.error(`Build failed! Please check build.log for info!`); - if(!silent){ - if(pretty) fs.writeFileSync("build.log.ansi", error.stdout); - fs.writeFileSync("build.log", error.stdout.replaceAll(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '')); - } - } -} \ No newline at end of file diff --git a/bundle/scripts/db_migrations.sh b/bundle/scripts/db_migrations.sh deleted file mode 100755 index 83f15a2b..00000000 --- a/bundle/scripts/db_migrations.sh +++ /dev/null @@ -1,40 +0,0 @@ -#!/bin/sh - -if [ ! -z "$1" ] -then - FILENAME="$1" - echo "Using filename: $FILENAME" -else - read -p "Enter migration filename: " FILENAME -fi - -[ -f ".env" ] && ( - mv .env .env.tmp - source .env.tmp -) - -make_migration() { - echo "Creating migrations for $2" - mkdir "../util/src/migrations/$2" -# npm run build clean logerrors pretty-errors -# THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle - THREADS=1 DATABASE="$1" DB_MIGRATE=a npx typeorm-ts-node-commonjs migration:generate "../util/src/migrations/$2/$FILENAME" -d ../util/src/util/Database.ts -p - npm run build clean logerrors pretty-errors - THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle -} - -npm i sqlite3 -make_migration "database.db" "sqlite" - -[ -z "$FC_DB_POSTGRES" ] || ( - npm i pg - make_migration "$FC_DB_POSTGRES" "postgres" -) - -[ -z "$FC_DB_MARIADB" ] || ( - npm i mysql2 - make_migration "$FC_DB_MARIADB" "mariadb" -) - -[ -f ".env.tmp" ] && mv .env.tmp .env - diff --git a/bundle/scripts/depcheck.js b/bundle/scripts/depcheck.js deleted file mode 100644 index 1957f794..00000000 --- a/bundle/scripts/depcheck.js +++ /dev/null @@ -1,56 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const { env } = require("process"); -const { execSync } = require("child_process"); -const { argv, stdout, exit } = require("process"); - -const { execIn, getLines, parts } = require("./utils"); - -let npmi_extra_flags = ""; - -const resolveminor = argv.includes("resolveminor"); -if(argv.includes("nobuild")) npmi_extra_flags += "--ignore-scripts "; - -parts.forEach((part) => { - let partDir = path.join(__dirname, "..", "..", part); - let distDir = path.join(partDir, "dist"); - console.log(`Checking updates for ${part} (${partDir})`); - if(part == "bundle") { - execIn(`npm run syncdeps`, partDir) - } - if(resolveminor) { - fs.rmSync(path.join(partDir, "node_modules"), { - recursive: true, - force: true, - }); - execIn(`npm i --save --no-fund --no-audit --no-package-lock ${npmi_extra_flags}`, partDir) - } - let x = [ - [ - "pkg", - { - current: "1.0", - wanted: "2.0", - latest: "2.0", - dependent: "cdn", - location: "/usr/src/fosscord/bundle/node_packages/pkg", - }, - ], - ]; - x = Object.entries( - JSON.parse(execIn("npm outdated --json", partDir)) - ); - x.forEach((a) => { - let pkgname = a[0]; - let pkginfo = a[1]; - if(!pkginfo.current) - console.log(`MISSING ${pkgname}: ${pkginfo.current} -> ${pkginfo.wanted} (latest: ${pkginfo.latest})`); - else if(pkginfo.latest != pkginfo.wanted){ - if(pkginfo.current != pkginfo.wanted) - console.log(`MINOR ${pkgname}: ${pkginfo.current} -> ${pkginfo.wanted}`); - console.log(`MAJOR ${pkgname}: ${pkginfo.current} -> ${pkginfo.latest}`); - } - else - console.log(`MINOR ${pkgname}: ${pkginfo.current} -> ${pkginfo.wanted}`); - }); -}); diff --git a/bundle/scripts/depclean.js b/bundle/scripts/depclean.js deleted file mode 100644 index 830081b9..00000000 --- a/bundle/scripts/depclean.js +++ /dev/null @@ -1,65 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const { env } = require("process"); -const { execSync } = require("child_process"); -const { argv, stdout, exit } = require("process"); - -const { execIn, getLines, parts } = require('./utils'); - -const bundleRequired = ["@ovos-media/ts-transform-paths"]; -const removeModules = argv.includes("cleanup"); - -parts.forEach((part) => { - console.log(`Installing all packages for ${part}...`); - execIn("npm i", path.join(__dirname, "..", "..", part)); -}); - -parts.forEach((part) => { - let partDir = path.join(__dirname, "..", "..", part); - let distDir = path.join(partDir, "dist"); - let start = 0; - start = getLines( - execIn("npm ls --parseable --package-lock-only -a", partDir) - ); - if (fs.existsSync(distDir)) - fs.rmSync(distDir, { - recursive: true, - force: true, - }); - let x = { - dependencies: [], - devDependencies: [], - invalidDirs: [], - invalidFiles: [], - missing: [], - using: [], - }; - let dcproc = execIn("npx depcheck --json", partDir); - if(dcproc.stdout) x = JSON.parse(dcproc.stdout); - else x = JSON.parse(dcproc); - - fs.writeFileSync( - path.join(__dirname, "..", `depclean.out.${part}.json`), - JSON.stringify(x, null, "\t"), - { encoding: "utf8" } - ); - - let depsToRemove = x.dependencies.join(" "); - if (depsToRemove) execIn(`npm r --save ${depsToRemove}`, partDir); - - depsToRemove = x.devDependencies.join(" "); - if (depsToRemove) execIn(`npm r --save --dev ${depsToRemove}`, partDir); - - if (removeModules && fs.existsSync(path.join(partDir, "node_modules"))) - fs.rmSync(path.join(partDir, "node_modules"), { - recursive: true, - force: true, - }); - let end = getLines( - execIn("npm ls --parseable --package-lock-only -a", partDir) - ); - console.log(`${part}: ${start} -> ${end} (diff: ${start - end})`); -}); -console.log("Installing required packages for bundle..."); - -execIn(`npm i --save ${bundleRequired.join(" ")}`, path.join(__dirname, "..")); diff --git a/bundle/scripts/gen_index.js b/bundle/scripts/gen_index.js deleted file mode 100644 index 71c64a9f..00000000 --- a/bundle/scripts/gen_index.js +++ /dev/null @@ -1,34 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const { execIn, getLines, parts } = require('./utils'); - -if (!process.argv[2] || !fs.existsSync(process.argv[2])) { - console.log("Please pass a directory that exists!"); - process.exit(1); -} -console.log(`// ${process.argv[2]}/index.ts`) -const recurse = process.argv.includes("--recursive") - -const files = fs.readdirSync(process.argv[2]).filter(x => x.endsWith('.ts') && x != 'index.ts'); - -let output = ''; - -files.forEach(x => output += `export * from "./${x.replaceAll('.ts','')}";\n`) - -const dirs = fs.readdirSync(process.argv[2]).filter(x => { - try { - fs.readdirSync(path.join(process.argv[2], x)); - return true; - } catch (e) { - return false; - } -}); -dirs.forEach(x => { - output += `export * from "./${x}/index";\n` -}) -console.log(output); -fs.writeFileSync(path.join(process.argv[2], "index.ts"), output) - -dirs.forEach(x => { - if(recurse) console.log(execIn([process.argv[0], process.argv[1], `"${path.join(process.argv[2], x)}"`, "--recursive"].join(' '), process.cwd())) -}) \ No newline at end of file diff --git a/bundle/scripts/install.js b/bundle/scripts/install.js deleted file mode 100644 index db9dadbc..00000000 --- a/bundle/scripts/install.js +++ /dev/null @@ -1,23 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const parts = ["api", "util", "cdn", "gateway"]; - -const bundle = require("../package.json"); - -for (const part of parts) { - const { devDependencies, dependencies } = require(path.join( - "..", - "..", - part, - "package.json" - )); - bundle.devDependencies = { ...bundle.devDependencies, ...devDependencies }; - bundle.dependencies = { ...bundle.dependencies, ...dependencies }; - delete bundle.dependencies["@fosscord/util"]; -} - -fs.writeFileSync( - path.join(__dirname, "..", "package.json"), - JSON.stringify(bundle, null, "\t"), - { encoding: "utf8" } -); diff --git a/bundle/scripts/rights.js b/bundle/scripts/rights.js deleted file mode 100644 index c363b0c5..00000000 --- a/bundle/scripts/rights.js +++ /dev/null @@ -1,34 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const { env } = require("process"); -const { execSync } = require("child_process"); -const { argv, stdout, exit } = require("process"); - -const { execIn, getLines, parts } = require("./utils"); - -let lines = fs.readFileSync(path.join(__dirname, "..", "..", "util", "src","util","Rights.ts")).toString() -let lines2 = lines.split("\n"); -let lines3 = lines2.filter(y=>y.includes(": BitFlag(")); -let lines4 = lines3.map(x=>x.split("//")[0].trim()) - -function BitFlag(int) { - return 1n << eval(`${int}n`); -} - -let rights = [] -let maxRights = 0n; -lines4.forEach(x=>{ - maxRights += eval(`rights.${x.replace(':'," = ").replace(",",";")}`) -}) -//max rights... -console.log(`Maximum rights: ${maxRights}`); -//discord rights... -discordRights = maxRights; -discordRights -= rights.SEND_BACKDATED_EVENTS; -discordRights -= rights.MANAGE_GUILD_DIRECTORY; -discordRights -= rights.CREDITABLE; -discordRights -= rights.BYPASS_RATE_LIMITS; -discordRights -= rights.ADD_MEMBERS; -discordRights -= rights.MANAGE_RATE_LIMITS; -discordRights -= rights.OPERATOR; -console.log(`Discord-like rights: ${discordRights}`); \ No newline at end of file diff --git a/bundle/scripts/update_schemas.js b/bundle/scripts/update_schemas.js deleted file mode 100644 index a018120b..00000000 --- a/bundle/scripts/update_schemas.js +++ /dev/null @@ -1,9 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const { env } = require("process"); -const { execSync } = require("child_process"); -const { argv, stdout, exit } = require("process"); - -const { execIn, getLines, parts } = require("./utils"); - -execIn("node scripts/generate_schema.js", path.join("..", "api")); \ No newline at end of file diff --git a/bundle/scripts/utils.js b/bundle/scripts/utils.js deleted file mode 100644 index f4b1ad7f..00000000 --- a/bundle/scripts/utils.js +++ /dev/null @@ -1,54 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const { env } = require("process"); -const { execSync } = require("child_process"); -const { argv, stdout, exit } = require("process"); - -const parts = ["api", "util", "cdn", "gateway", "bundle"]; - -function copyRecursiveSync(src, dest) { - //if (verbose) console.log(`cpsync: ${src} -> ${dest}`); - let exists = fs.existsSync(src); - if (!exists) { - console.log(src + " doesn't exist, not copying!"); - return; - } - let stats = exists && fs.statSync(src); - let isDirectory = exists && stats.isDirectory(); - if (isDirectory) { - fs.mkdirSync(dest, { recursive: true }); - fs.readdirSync(src).forEach(function (childItemName) { - copyRecursiveSync( - path.join(src, childItemName), - path.join(dest, childItemName) - ); - }); - } else { - fs.copyFileSync(src, dest); - } -} - -function execIn(cmd, workdir, opts) { - try { - return execSync(cmd, { - cwd: workdir, - shell: true, - env: process.env, - encoding: "utf-8", - ...opts - }); - } catch (error) { - return error.stdout; - } -} - -function getLines(output) { - return output.split("\n").length; -} - -module.exports = { - //consts - parts, - //functions - copyRecursiveSync, execIn, getLines -}; diff --git a/bundle/src/Server.ts b/bundle/src/Server.ts deleted file mode 100644 index 165ab121..00000000 --- a/bundle/src/Server.ts +++ /dev/null @@ -1,101 +0,0 @@ -process.on("unhandledRejection", console.error); -process.on("uncaughtException", console.error); - -import http from "http"; -import * as Api from "@fosscord/api"; -import * as Gateway from "@fosscord/gateway"; -import { CDNServer } from "@fosscord/cdn"; -import express from "express"; -import { green, bold, yellow } from "picocolors"; -import { Config, getOrInitialiseDatabase } from "@fosscord/util"; -import * as Sentry from "@sentry/node"; -import * as Tracing from "@sentry/tracing"; -import { PluginLoader } from "@fosscord/util"; - -const app = express(); -const server = http.createServer(); -const port = Number(process.env.PORT) || 3001; -const production = process.env.NODE_ENV == "development" ? false : true; -server.on("request", app); - -// @ts-ignore -const api = new Api.FosscordServer({ server, port, production, app }); -// @ts-ignore -const cdn = new CDNServer({ server, port, production, app }); -// @ts-ignore -const gateway = new Gateway.Server({ server, port, production }); - -//this is what has been added for the /stop API route -process.on('SIGTERM', () => { - setTimeout(()=>process.exit(0), 3000) - server.close(() => { - console.log("Stop API has been successfully POSTed, SIGTERM sent") - }) -}) -//this is what has been added for the /stop API route - -async function main() { - server.listen(port); - await getOrInitialiseDatabase(); - await Config.init(); - // only set endpointPublic, if not already set - await Config.set({ - cdn: { - endpointClient: "${location.host}", - endpointPrivate: `http://localhost:${port}`, - }, - gateway: { - endpointClient: - '${location.protocol === "https:" ? "wss://" : "ws://"}${location.host}', - endpointPrivate: `ws://localhost:${port}`, - ...(!Config.get().gateway.endpointPublic && { - endpointPublic: `ws://localhost:${port}`, - }), - }, - // regions: { - // default: "fosscord", - // useDefaultAsOptimal: true, - // available: [ - // { - // id: "fosscord", - // name: "Fosscord", - // endpoint: "127.0.0.1:3001", - // vip: false, - // custom: false, - // deprecated: false, - // }, - // ], - // }, - } as any); - - //Sentry - if (Config.get().sentry.enabled) { - console.log( - `[Bundle] ${yellow("You are using Sentry! This may slightly impact performance on large loads!")}` - ); - Sentry.init({ - dsn: Config.get().sentry.endpoint, - integrations: [ - new Sentry.Integrations.Http({ tracing: true }), - new Tracing.Integrations.Express({ app }), - ], - tracesSampleRate: Config.get().sentry.traceSampleRate, - environment: Config.get().sentry.environment - }); - - app.use(Sentry.Handlers.requestHandler()); - app.use(Sentry.Handlers.tracingHandler()); - } - await Promise.all([api.start(), cdn.start(), gateway.start()]); - if (Config.get().sentry.enabled) { - app.use(Sentry.Handlers.errorHandler()); - app.use(function onError(err: any, req: any, res: any, next: any) { - res.statusCode = 500; - res.end(res.sentry + "\n"); - }); - } - console.log(`[Server] ${green(`listening on port ${bold(port)}`)}`); - PluginLoader.loadPlugins(); -} - -main().catch(console.error); diff --git a/bundle/src/start.ts b/bundle/src/start.ts deleted file mode 100644 index a20581c3..00000000 --- a/bundle/src/start.ts +++ /dev/null @@ -1,97 +0,0 @@ -// process.env.MONGOMS_DEBUG = "true"; -import "reflect-metadata"; -import cluster, { Worker } from "cluster"; -import os from "os"; -import { red, bold, yellow, cyan } from "picocolors"; -import { initStats } from "./stats"; -import { config } from "dotenv"; -config(); -import { execSync } from "child_process"; - -// TODO: add socket event transmission -let cores = 1; -try { - cores = Number(process.env.THREADS) || os.cpus().length; -} catch { - console.log("[API] Failed to get thread count! Using 1...") -} - -if (cluster.isMaster) { - function getCommitOrFail() { - try { - return execSync("git rev-parse HEAD").toString().trim(); - } catch (e) { - return null; - } - } - const commit = getCommitOrFail(); - - console.log( - bold(` -███████╗ ██████╗ ███████╗███████╗ ██████╗ ██████╗ ██████╗ ██████╗ -██╔════╝██╔═══██╗██╔════╝██╔════╝██╔════╝██╔═══██╗██╔══██╗██╔══██╗ -█████╗ ██║ ██║███████╗███████╗██║ ██║ ██║██████╔╝██║ ██║ -██╔══╝ ██║ ██║╚════██║╚════██║██║ ██║ ██║██╔══██╗██║ ██║ -██║ ╚██████╔╝███████║███████║╚██████╗╚██████╔╝██║ ██║██████╔╝ -╚═╝ ╚═════╝ ╚══════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ - - fosscord-server | ${yellow( - `Pre-release (${ - commit !== null - ? commit.slice(0, 7) - : "Unknown (Git cannot be found)" - })` - )} - -Commit Hash: ${ - commit !== null - ? `${cyan(commit)} (${yellow(commit.slice(0, 7))})` - : "Unknown (Git cannot be found)" - } -Cores: ${cyan(os.cpus().length)} (Using ${cores} thread(s).) -`) - ); - - if (commit == null) { - console.log(yellow(`Warning: Git is not installed or not in PATH.`)); - } - - initStats(); - - console.log(`[Process] starting with ${cores} threads`); - - if (cores === 1) { - require("./Server"); - } else { - process.env.EVENT_TRANSMISSION = "process"; - - // Fork workers. - for (let i = 0; i < cores; i++) { - // Delay each worker start if using sqlite database to prevent locking it - let delay = process.env.DATABASE?.includes("://") ? 0 : i * 1000; - setTimeout(() => { - cluster.fork(); - console.log(`[Process] worker ${cyan(i)} started.`); - }, delay); - } - - cluster.on("message", (sender: Worker, message: any) => { - for (const id in cluster.workers) { - const worker = cluster.workers[id]; - if (worker === sender || !worker) continue; - worker.send(message); - } - }); - - cluster.on("exit", (worker: any, code: any, signal: any) => { - console.log( - `[Worker] ${red( - `died with PID: ${worker.process.pid} , restarting ...` - )}` - ); - cluster.fork(); - }); - } -} else { - require("./Server"); -} diff --git a/bundle/src/stats.ts b/bundle/src/stats.ts deleted file mode 100644 index 022b2000..00000000 --- a/bundle/src/stats.ts +++ /dev/null @@ -1,43 +0,0 @@ -import os from "os"; -import osu from "node-os-utils"; -import { red } from "picocolors"; - -export function initStats() { - console.log(`[Path] running in ${__dirname}`); - try { - console.log(`[CPU] ${osu.cpu.model()} Cores x${osu.cpu.count()}`); - } - catch { - console.log('[CPU] Failed to get cpu model!') - } - - console.log(`[System] ${os.platform()} ${os.arch()}`); - console.log(`[Process] running with PID: ${process.pid}`); - if (process.getuid && process.getuid() === 0) { - console.warn( - red( - `[Process] Warning fosscord is running as root, this highly discouraged and might expose your system vulnerable to attackers. Please run fosscord as a user without root privileges.` - ) - ); - } - - // TODO: node-os-utils might have a memory leak, more investigation needed - // TODO: doesn't work if spawned with multiple threads - // setInterval(async () => { - // const [cpuUsed, memory, network] = await Promise.all([ - // osu.cpu.usage(), - // osu.mem.info(), - // osu.netstat.inOut(), - // ]); - // let networkUsage = ""; - // if (typeof network === "object") { - // networkUsage = `| [Network]: in ${network.total.inputMb}mb | out ${network.total.outputMb}mb`; - // } - - // console.log( - // `[CPU] ${cpuUsed.toPrecision(3)}% | [Memory] ${Math.round( - // process.memoryUsage().rss / 1024 / 1024 - // )}mb/${memory.totalMemMb.toFixed(0)}mb ${networkUsage}` - // ); - // }, 1000 * 60 * 5); -} diff --git a/bundle/tsconfig.json b/bundle/tsconfig.json deleted file mode 100644 index 87f6578a..00000000 --- a/bundle/tsconfig.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "include": ["dist/**/*.ts"], - "exclude": [], - "compilerOptions": { - - /* Basic Options */ - "incremental": false /* Enable incremental compilation */, - "target": "ESNext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - "lib": [ - "ESNext" - ] /* Specify library files to be included in the compilation. */, - "allowJs": true /* Allow javascript files to be compiled. */, - "checkJs": true /* Report errors in .js files. */, - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - "declaration": false /* Generates corresponding '.d.ts' file. */, - "declarationMap": false /* Generates a sourcemap for each corresponding '.d.ts' file. */, - "sourceMap": true /* Generates corresponding '.map' file. */, - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./dist/" /* Redirect output structure to the directory. */, - "rootDir": "./dist/" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true /* Enable all strict type-checking options. */, - "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, - "strictNullChecks": true /* Enable strict null checks. */, - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */, - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - - /* Module Resolution Options */ - "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - "types": [ - "node" - ] /* Type declaration files to be included in compilation. */, - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "skipLibCheck": true /* Skip type checking of declaration files. */, - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "resolveJsonModule": true, - "baseUrl": "./dist/", - "paths": { - "@fosscord/api": ["api/src/index"], - "@fosscord/gateway": ["gateway/src/index"], - "@fosscord/cdn": ["cdn/src/index"], - "@fosscord/util": ["util/src/index"] - }, - "plugins": [{ "transform": "@ovos-media/ts-transform-paths" }], - "noEmitHelpers": true, - "importHelpers": true - } -} diff --git a/bundle/tsnode.tsconfig.json b/bundle/tsnode.tsconfig.json deleted file mode 100644 index 422d336c..00000000 --- a/bundle/tsnode.tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "extends": "./tsconfig.json", - "ts-node": { - "transpileOnly": true, - "preferTsExts": true, - "require": ["tsconfig-paths/register"], - "compiler": "typescript-cached-transpile", - }, - "compilerOptions": { - "rootDir": "../", - "baseUrl": "../", - "sourceRoot": "../", - "sourceMap": true, - } -} \ No newline at end of file diff --git a/cdn/.env.example b/cdn/.env.example deleted file mode 100644 index b5e011f1..00000000 --- a/cdn/.env.example +++ /dev/null @@ -1,3 +0,0 @@ -STORAGE_LOCATION=files/ -STORAGE_PROVIDER=file -PORT=3003 \ No newline at end of file diff --git a/cdn/.gitignore b/cdn/.gitignore deleted file mode 100644 index 14dd53b5..00000000 --- a/cdn/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -.vscode/ -node_modules/ -.DS_Store -.env -dist/ -files/ -coverage/ \ No newline at end of file diff --git a/cdn/.swcrc b/cdn/.swcrc deleted file mode 100644 index ab531194..00000000 --- a/cdn/.swcrc +++ /dev/null @@ -1,17 +0,0 @@ -{ - "module": { - "type": "commonjs" - }, - "jsc": { - "parser": { - "syntax": "typescript", - "decorators": true - }, - "target": "es2021", - "baseUrl": ".", - "paths": { - "@fosscord/cdn/": ["src/index"], - "@fosscord/cdn/*": ["src/*"] - } - } -} diff --git a/cdn/Dockerfile b/cdn/Dockerfile deleted file mode 100644 index d9ad78f4..00000000 --- a/cdn/Dockerfile +++ /dev/null @@ -1,7 +0,0 @@ -FROM node:lts-alpine -WORKDIR /usr/src/fosscord-cdn -COPY package.json . -RUN npm install -COPY . . -EXPOSE 3003 -CMD ["node", "dist/"] \ No newline at end of file diff --git a/cdn/README.md b/cdn/README.md deleted file mode 100644 index 7d8e99b0..00000000 --- a/cdn/README.md +++ /dev/null @@ -1,112 +0,0 @@ -# Fosscord-CDN - -CDN for Fosscord - -## Run localy: - -``` -npm i -node dist/ -``` - -## Endpoints: - -### POST `/attachments/` - -``` -Content-Type: form-data - -attachment: File (binary-data) -``` - -##### Returns: - -``` -{ - "success": boolean, // true - "message": string, // "attachment uploaded" - "id": snowflake, // "794183329158135808" - "filename": string // "lakdoiauej.png" -} -``` - -### GET `/attachments//` - -``` -requests image from database with given and -``` - -##### Returns: - -``` -Content-Type: image/ -Image -``` - -### DELETE `/attachments//` - -``` -deletes database entry -``` - -##### Returns: - -``` -Content-Type: application/json - -{ - "success": true, - "message": "attachment deleted" -} -``` - -
- -_(endpoints for crawler):_ - -### POST `/external` - -``` -requests crawling of `og:`metadata and the download of the `og:image` property --------- -Content-Type: application/json - -body: -{"url": URL} // "https://discord.com" -``` - -##### Returns: - -``` -Content-Type: application/json - -{ - "id": string, // "aHR0cHM6Ly9kaXNjb3JkLmNvbQ==" - "ogTitle": string, // "Discord | Your Place to Talk and Hang Out" - "ogDescription": string, // "Discord is the easiest way to talk over voice, video, and text. Talk, chat, hang out, and stay close with your friends and communities." - "cachedImage": string, // "/external/aHR0cHM6Ly9kaXNjb3JkLmNvbQ==/discord.png" - "ogUrl": string, // "https://discord.com/" - "ogType": string // "website" -} -``` - -### GET `/external//` - -- requests cached crawled image - -``` -url-params: - :id // aHR0cHM6Ly9kaXNjb3JkLmNvbQ== - :filename // discord.png -``` - -``` -/external/aHR0cHM6Ly9kaXNjb3JkLmNvbQ==/discord.png -``` - -##### Returns: - -``` -Content-Type: image/ -Image -``` diff --git a/cdn/jest/setup.js b/cdn/jest/setup.js deleted file mode 100644 index abc485ae..00000000 --- a/cdn/jest/setup.js +++ /dev/null @@ -1,2 +0,0 @@ -jest.spyOn(global.console, "log").mockImplementation(() => jest.fn()); -jest.spyOn(global.console, "info").mockImplementation(() => jest.fn()); diff --git a/cdn/package-lock.json b/cdn/package-lock.json deleted file mode 100644 index 08d49abf..00000000 --- a/cdn/package-lock.json +++ /dev/null @@ -1,13871 +0,0 @@ -{ - "name": "@fosscord/cdn", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fosscord/cdn", - "version": "1.0.0", - "license": "AGPL-3.0-only", - "dependencies": { - "@aws-sdk/client-s3": "^3.36.1", - "@aws-sdk/node-http-handler": "^3.36.0", - "@fosscord/util": "file:../util", - "body-parser": "^1.19.0", - "btoa": "^1.2.1", - "dotenv": "^10.0.0", - "exif-be-gone": "^1.2.0", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "file-type": "^16.5.4", - "form-data": "^4.0.0", - "fs-extra": "^10.0.0", - "image-size": "^1.0.0", - "jest": "^27.0.6", - "lambert-db": "^1.2.3", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.17", - "multer": "^1.4.2", - "nanocolors": "^0.2.12", - "node-fetch": "^2.6.2", - "supertest": "^6.1.6", - "typescript": "^4.1.2" - }, - "devDependencies": { - "@types/amqplib": "^0.8.1", - "@types/body-parser": "^1.19.0", - "@types/btoa": "^1.2.3", - "@types/dotenv": "^8.2.0", - "@types/express": "^4.17.12", - "@types/fs-extra": "^9.0.12", - "@types/jsonwebtoken": "^8.5.0", - "@types/multer": "^1.4.7", - "@types/node": "^14.17.0", - "@types/node-fetch": "^2.5.7", - "@ovos-media/ts-transform-paths": "^1.7.18-1", - "ts-patch": "^1.4.4" - } - }, - "../util": { - "name": "@fosscord/util", - "version": "1.0.0", - "hasInstallScript": true, - "license": "AGPL-3.0-only", - "dependencies": { - "amqplib": "^0.8.0", - "form-data": "^4.0.0", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "multer": "^1.4.3", - "node-fetch": "^2.6.2", - "patch-package": "^6.4.7", - "pg": "^8.7.1", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "typeorm": "^0.2.38", - "typescript": "^4.4.2", - "typescript-json-schema": "^0.50.1" - }, - "devDependencies": { - "@types/amqplib": "^0.8.1", - "@types/jsonwebtoken": "^8.5.0", - "@types/multer": "^1.4.7", - "@types/node": "^14.17.9", - "@types/node-fetch": "^2.5.12", - "jest": "^27.0.6", - "ts-node": "^10.2.1" - } - }, - "node_modules/@aws-crypto/crc32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-2.0.0.tgz", - "integrity": "sha512-TvE1r2CUueyXOuHdEigYjIZVesInd9KN+K/TFFNfkkxRThiNxO6i4ZqqAVMoEjAamZZ1AA8WXJkjCz7YShHPQA==", - "dependencies": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/crc32/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/ie11-detection": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz", - "integrity": "sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==", - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/ie11-detection/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/sha256-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", - "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", - "dependencies": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/sha256-js": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha256-browser/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/sha256-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", - "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", - "dependencies": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/sha256-js/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/supports-web-crypto": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz", - "integrity": "sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==", - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-crypto/util": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz", - "integrity": "sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==", - "dependencies": { - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - } - }, - "node_modules/@aws-crypto/util/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/@aws-sdk/abort-controller": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.40.0.tgz", - "integrity": "sha512-S7LzLvNuwuf0q7r4q7zqGzxd/W2xYsn8cpZ90MMb3ObolhbkLySrikUJujmXae8k+2/KFCOr+FVC0YLrATSUgQ==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/chunked-blob-reader": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.37.0.tgz", - "integrity": "sha512-uDacnFaczeO962RnVttwAQddS4rgDfI7nfeY8NV6iZkDv5uxGzHTfH4jT7WvPDM1pSMcOMDx8RJ+Tmtsd1VTsA==", - "dependencies": { - "tslib": "^2.3.0" - } - }, - "node_modules/@aws-sdk/chunked-blob-reader-native": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.37.0.tgz", - "integrity": "sha512-h9OYq6EvDrpb7SKod+Kow+d3aRNFVBYR1a8G8ahEDDQe3AtmA2Smyvni4kt/ABTiKvYdof2//Pq3BL/IUV9n9Q==", - "dependencies": { - "@aws-sdk/util-base64-browser": "3.37.0", - "tslib": "^2.3.0" - } - }, - "node_modules/@aws-sdk/client-s3": { - "version": "3.44.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.44.0.tgz", - "integrity": "sha512-vv3w5RhAZnT/LfiV0SICvvzv5SAeH61erbwm6FpKC9W7lGdcA6o7F2/Bls44fyMW41awYIRZKoPGZApYCrFR6A==", - "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.43.0", - "@aws-sdk/config-resolver": "3.40.0", - "@aws-sdk/credential-provider-node": "3.41.0", - "@aws-sdk/eventstream-serde-browser": "3.40.0", - "@aws-sdk/eventstream-serde-config-resolver": "3.40.0", - "@aws-sdk/eventstream-serde-node": "3.40.0", - "@aws-sdk/fetch-http-handler": "3.40.0", - "@aws-sdk/hash-blob-browser": "3.40.0", - "@aws-sdk/hash-node": "3.40.0", - "@aws-sdk/hash-stream-node": "3.40.0", - "@aws-sdk/invalid-dependency": "3.40.0", - "@aws-sdk/md5-js": "3.40.0", - "@aws-sdk/middleware-apply-body-checksum": "3.40.0", - "@aws-sdk/middleware-bucket-endpoint": "3.41.0", - "@aws-sdk/middleware-content-length": "3.40.0", - "@aws-sdk/middleware-expect-continue": "3.40.0", - "@aws-sdk/middleware-host-header": "3.40.0", - "@aws-sdk/middleware-location-constraint": "3.40.0", - "@aws-sdk/middleware-logger": "3.40.0", - "@aws-sdk/middleware-retry": "3.40.0", - "@aws-sdk/middleware-sdk-s3": "3.41.0", - "@aws-sdk/middleware-serde": "3.40.0", - "@aws-sdk/middleware-signing": "3.40.0", - "@aws-sdk/middleware-ssec": "3.40.0", - "@aws-sdk/middleware-stack": "3.40.0", - "@aws-sdk/middleware-user-agent": "3.40.0", - "@aws-sdk/node-config-provider": "3.40.0", - "@aws-sdk/node-http-handler": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/smithy-client": "3.41.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/url-parser": "3.40.0", - "@aws-sdk/util-base64-browser": "3.37.0", - "@aws-sdk/util-base64-node": "3.37.0", - "@aws-sdk/util-body-length-browser": "3.37.0", - "@aws-sdk/util-body-length-node": "3.37.0", - "@aws-sdk/util-user-agent-browser": "3.40.0", - "@aws-sdk/util-user-agent-node": "3.40.0", - "@aws-sdk/util-utf8-browser": "3.37.0", - "@aws-sdk/util-utf8-node": "3.37.0", - "@aws-sdk/util-waiter": "3.40.0", - "@aws-sdk/xml-builder": "3.37.0", - "entities": "2.2.0", - "fast-xml-parser": "3.19.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@aws-sdk/client-sso": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.41.0.tgz", - "integrity": "sha512-xDvcy7wv3KdHhOpl5fZN+Ydw+dHBmsCZwMFI1ZdJVCSGO+ZKgl5KVWi1LCif6vjZP1pUuGl44oDOZz1ACqOzTg==", - "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.40.0", - "@aws-sdk/fetch-http-handler": "3.40.0", - "@aws-sdk/hash-node": "3.40.0", - "@aws-sdk/invalid-dependency": "3.40.0", - "@aws-sdk/middleware-content-length": "3.40.0", - "@aws-sdk/middleware-host-header": "3.40.0", - "@aws-sdk/middleware-logger": "3.40.0", - "@aws-sdk/middleware-retry": "3.40.0", - "@aws-sdk/middleware-serde": "3.40.0", - "@aws-sdk/middleware-stack": "3.40.0", - "@aws-sdk/middleware-user-agent": "3.40.0", - "@aws-sdk/node-config-provider": "3.40.0", - "@aws-sdk/node-http-handler": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/smithy-client": "3.41.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/url-parser": "3.40.0", - "@aws-sdk/util-base64-browser": "3.37.0", - "@aws-sdk/util-base64-node": "3.37.0", - "@aws-sdk/util-body-length-browser": "3.37.0", - "@aws-sdk/util-body-length-node": "3.37.0", - "@aws-sdk/util-user-agent-browser": "3.40.0", - "@aws-sdk/util-user-agent-node": "3.40.0", - "@aws-sdk/util-utf8-browser": "3.37.0", - "@aws-sdk/util-utf8-node": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@aws-sdk/client-sts": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.43.0.tgz", - "integrity": "sha512-4CKYimjhIEixVtJH0Y8FR5FXc7zIepZtfScy8QHgH+DERXm/YL5cuUbkJiL6ZRTpek0vztVvE+mNSQU0z1eXag==", - "dependencies": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.40.0", - "@aws-sdk/credential-provider-node": "3.41.0", - "@aws-sdk/fetch-http-handler": "3.40.0", - "@aws-sdk/hash-node": "3.40.0", - "@aws-sdk/invalid-dependency": "3.40.0", - "@aws-sdk/middleware-content-length": "3.40.0", - "@aws-sdk/middleware-host-header": "3.40.0", - "@aws-sdk/middleware-logger": "3.40.0", - "@aws-sdk/middleware-retry": "3.40.0", - "@aws-sdk/middleware-sdk-sts": "3.40.0", - "@aws-sdk/middleware-serde": "3.40.0", - "@aws-sdk/middleware-signing": "3.40.0", - "@aws-sdk/middleware-stack": "3.40.0", - "@aws-sdk/middleware-user-agent": "3.40.0", - "@aws-sdk/node-config-provider": "3.40.0", - "@aws-sdk/node-http-handler": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/smithy-client": "3.41.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/url-parser": "3.40.0", - "@aws-sdk/util-base64-browser": "3.37.0", - "@aws-sdk/util-base64-node": "3.37.0", - "@aws-sdk/util-body-length-browser": "3.37.0", - "@aws-sdk/util-body-length-node": "3.37.0", - "@aws-sdk/util-user-agent-browser": "3.40.0", - "@aws-sdk/util-user-agent-node": "3.40.0", - "@aws-sdk/util-utf8-browser": "3.37.0", - "@aws-sdk/util-utf8-node": "3.37.0", - "entities": "2.2.0", - "fast-xml-parser": "3.19.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@aws-sdk/config-resolver": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.40.0.tgz", - "integrity": "sha512-QYy6J2k31QL6J74hPBfptnLW1kQYdN+xjwH4UQ1mv7EUhRoJN9ZY2soStJowFy4at6IIOOVWbyG5dyqvrbEovg==", - "dependencies": { - "@aws-sdk/signature-v4": "3.40.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-config-provider": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.40.0.tgz", - "integrity": "sha512-qHZdf2vxhzZkSygjw2I4SEYFL2dMZxxYvO4QlkqQouKY81OVxs/j69oiNCjPasQzGz5jaZZKI8xEAIfkSyr1lg==", - "dependencies": { - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-imds": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.40.0.tgz", - "integrity": "sha512-Ty/wVa+BQrCFrP06AGl5S1CeLifDt68YrlYXUnkRn603SX4DvxBgVO7XFeDH58G8ziDCiqxfmVl4yjbncPPeSw==", - "dependencies": { - "@aws-sdk/node-config-provider": "3.40.0", - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/url-parser": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.41.0.tgz", - "integrity": "sha512-98CGEHg7Tb6HxK5ZIdbAcijvD3IpLe0ddse1xMe/Ilhjz770FS/L2UNprOP6PZTqrSfBffiMrvfThUSuUaTlIQ==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.40.0", - "@aws-sdk/credential-provider-imds": "3.40.0", - "@aws-sdk/credential-provider-sso": "3.41.0", - "@aws-sdk/credential-provider-web-identity": "3.41.0", - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/shared-ini-file-loader": "3.37.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-credentials": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.41.0.tgz", - "integrity": "sha512-5FW6+wNJgyDCsbAd+mLm/1DBTDkyIYOMVzcxbr6Vi3pM4UrMFdeLdAP62edYW8usg78Xg+c6vaAoEv/M3zkS0Q==", - "dependencies": { - "@aws-sdk/credential-provider-env": "3.40.0", - "@aws-sdk/credential-provider-imds": "3.40.0", - "@aws-sdk/credential-provider-ini": "3.41.0", - "@aws-sdk/credential-provider-process": "3.40.0", - "@aws-sdk/credential-provider-sso": "3.41.0", - "@aws-sdk/credential-provider-web-identity": "3.41.0", - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/shared-ini-file-loader": "3.37.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-credentials": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.40.0.tgz", - "integrity": "sha512-qsaNCDesW2GasDbzpeOA371gxugi05JWxt3EKonLbUfkGKBK7kmmL6EgLIxZuNm2/Ve4RS07PKp8yBGm4xIx9w==", - "dependencies": { - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/shared-ini-file-loader": "3.37.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-credentials": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.41.0.tgz", - "integrity": "sha512-9s7SWu3RVIQ/MTcBCt35EMzxNQm3avivrbpSOKfJwxR5L+oNKPsV+gSqMlkNZGwOVJyUicIsZGcq/4ON6CjrOg==", - "dependencies": { - "@aws-sdk/client-sso": "3.41.0", - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/shared-ini-file-loader": "3.37.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-credentials": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.41.0.tgz", - "integrity": "sha512-VqvVoEh9C8xTXl4stKyJC5IKQhS8g1Gi5k6B9HPHLIxFRRfKxkE73DT4pMN6npnus7o0yi0MTFGQFQGYSrFO2g==", - "dependencies": { - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/eventstream-marshaller": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-marshaller/-/eventstream-marshaller-3.40.0.tgz", - "integrity": "sha512-zHGchfkG3B9M8OOKRpByeS5g1/15YQ0+QQHwxQRtm/CPtKBAIAsCZRQaCNBLu9uQMtBBKj5JsDUcjirhGeSvIg==", - "dependencies": { - "@aws-crypto/crc32": "2.0.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-hex-encoding": "3.37.0", - "tslib": "^2.3.0" - } - }, - "node_modules/@aws-sdk/eventstream-serde-browser": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.40.0.tgz", - "integrity": "sha512-V0AXAfSkhY0hgxDJ0cNA+r42kL8295U7UTCp2Q2fvCaob3wKWh+54KZ2L4IOYTlK3yNzXJ5V6PP1zUuRlsUTew==", - "dependencies": { - "@aws-sdk/eventstream-marshaller": "3.40.0", - "@aws-sdk/eventstream-serde-universal": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/eventstream-serde-config-resolver": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.40.0.tgz", - "integrity": "sha512-GgGiJBsQ1/SBTpRM/wCdFBCMo1Nybvy46bNVkH1ujCdp8UTLc5PozzNpH+15V2IQbc9sPDYffMab6HSFjDp5vw==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/eventstream-serde-node": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.40.0.tgz", - "integrity": "sha512-CnzX/JZGvhWlg+ooIPVZ78T+5wIm5Ld1BD7jwhlptJa8IjTMvkc8Nh4pAhc7T0ZScy4zZa/oTkqeVYCOVCyd1Q==", - "dependencies": { - "@aws-sdk/eventstream-marshaller": "3.40.0", - "@aws-sdk/eventstream-serde-universal": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/eventstream-serde-universal": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.40.0.tgz", - "integrity": "sha512-rkHwVMyZJMhp9iBixkuaAGQNer/DPxZ9kxDDtE+LuAMhepTYQ8c4lUW0QQhYbNMWf48QKD1G4FV3JXIj9JfP9A==", - "dependencies": { - "@aws-sdk/eventstream-marshaller": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/fetch-http-handler": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.40.0.tgz", - "integrity": "sha512-w1HiZromoU+/bbEo89uO81l6UO/M+c2uOMnXntZqe6t3ZHUUUo3AbvhKh0QGVFqRQa+Oi0+95KqWmTHa72/9Iw==", - "dependencies": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/querystring-builder": "3.40.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-base64-browser": "3.37.0", - "tslib": "^2.3.0" - } - }, - "node_modules/@aws-sdk/hash-blob-browser": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.40.0.tgz", - "integrity": "sha512-l8xyprVVKKH+720VrQ677X6VkvHttDXB4MxkMuxhSvwYBQwsRzP2Wppo7xIAtWGoS+oqlLmD4LCbHdhFRcN5yA==", - "dependencies": { - "@aws-sdk/chunked-blob-reader": "3.37.0", - "@aws-sdk/chunked-blob-reader-native": "3.37.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "node_modules/@aws-sdk/hash-node": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.40.0.tgz", - "integrity": "sha512-yOXXK85DdGDktdnQtXgMdaVKii4wtMjEhJ1mrvx2A9nMFNaPhxvERkVVIUKSWlJRa9ZujOw5jWOx8d2R51/Kjg==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-buffer-from": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/hash-stream-node": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.40.0.tgz", - "integrity": "sha512-4yvRwODMGYtj6qrt+fyydV5MwVwPPoyoeqDoXdLo9x75vRY71DT1pMRt8PDOoY/ZwWbIdEt4+V7x0sLt2uy9WA==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/invalid-dependency": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.40.0.tgz", - "integrity": "sha512-axIWtDwCBDDqEgAJipX1FB1ZNpWYXquVwKDMo+7G+ftPBZ4FEq4M1ELhXJL3hhNJ9ZmCQzv+4F6Wnt8dwuzUaQ==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "node_modules/@aws-sdk/is-array-buffer": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.37.0.tgz", - "integrity": "sha512-XLjA/a6AuGnCvcJZLsMTy2jxF2upgGhqCCkoIJgLlzzXHSihur13KcmPvW/zcaGnCRj0SvKWXiJHl4vDlW75VQ==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/md5-js": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.40.0.tgz", - "integrity": "sha512-P1tzEljMD/MkjSc00TkVBYvfaVv/7S+04YEwE7tpu/jtxWxMHnk3CMKqq/F2iMhY83DRoqoYy+YqnaF4Bzr1uA==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-utf8-browser": "3.37.0", - "@aws-sdk/util-utf8-node": "3.37.0", - "tslib": "^2.3.0" - } - }, - "node_modules/@aws-sdk/middleware-apply-body-checksum": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-apply-body-checksum/-/middleware-apply-body-checksum-3.40.0.tgz", - "integrity": "sha512-gNSFlFu/O8cxAM0X64OwiLLN/NPXvK3FsAIJRsfhIW+dX0bEq4lsGPsdU8Tx+9eenaj/Z01uqgWZ6Izar8zVvQ==", - "dependencies": { - "@aws-sdk/is-array-buffer": "3.37.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.41.0.tgz", - "integrity": "sha512-4A0kWHH2qemd4P7CZKS7XB6qtSUP2xMJ7Dn/llxYgvadR0mKEfGPeYPhAss/k7T1JGv+kSTIV30RwUXwdXgE/A==", - "dependencies": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-arn-parser": "3.37.0", - "@aws-sdk/util-config-provider": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-content-length": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.40.0.tgz", - "integrity": "sha512-sybAJb8v7I/vvL08R3+TI/XDAg9gybQTZ2treC24Ap4+jAOz4QBTHJPMKaUlEeFlMUcq4rj6/u2897ebYH6opw==", - "dependencies": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.40.0.tgz", - "integrity": "sha512-FY6vT0u1ptDZ2bBj1yG/Iyk6HZB7U9fbrpeZNPYzgq8HJxBcTgfLwtB3VLobyhThQm9X2a7R2YZrwtArW8yQfQ==", - "dependencies": { - "@aws-sdk/middleware-header-default": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-header-default": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-header-default/-/middleware-header-default-3.40.0.tgz", - "integrity": "sha512-eXQ13x/AivPZKoG8/akp9g5xdNHuKftl83GMuk9K6tt4+eAa22TdxiFu4R0UVlKAvo2feqxFrNs5DhhhBeAQWA==", - "dependencies": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.40.0.tgz", - "integrity": "sha512-/wocR7JFOLM7/+BQM1DgAd6KCFYcdxYu1P7AhI451GlVNuYa5f89zh7p0gt3SRC6monI5lXgpL7RudhDm8fTrA==", - "dependencies": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.40.0.tgz", - "integrity": "sha512-9XaVPYsDQVJbWJH96sNdv4HHY3j1raman+lYxMu4528Awp0OdWUeSsGRYRN+CnRPlkHnfNw4m6SKdWYHxdjshw==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-logger": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.40.0.tgz", - "integrity": "sha512-19kx0Xg5ymVRKoupmhdmfTBkROcv3DZj508agpyG2YAo0abOObMlIP4Jltg0VD4PhNjGzNh0jFGJnvhjdwv4/A==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-retry": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.40.0.tgz", - "integrity": "sha512-SMUJrukugLL7YJE5X8B2ToukxMWMPwnf7jAFr84ptycCe8bdWv8x8klQ3EtVWpyqochtNlbTi6J/tTQBniUX7A==", - "dependencies": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/service-error-classification": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.41.0.tgz", - "integrity": "sha512-B7JOpmIpm1zxERQEMwZCWj3FisTvwfUgpfQglYdqrB6VpIoCM8fk2pmi5KzU/JDeNBlhTouj6mwnhJL/z5jopA==", - "dependencies": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/signature-v4": "3.40.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-arn-parser": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "peerDependencies": { - "@aws-sdk/signature-v4-crt": "^3.31.0" - } - }, - "node_modules/@aws-sdk/middleware-sdk-sts": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.40.0.tgz", - "integrity": "sha512-TcrbCvj1PkabFZiNczT3yePZtuEm2fAIw1OVnQyLcF2KW+p62Hv5YkK4MPOfx3LA/0lzjOUO1RNl2x7gzV443Q==", - "dependencies": { - "@aws-sdk/middleware-signing": "3.40.0", - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/signature-v4": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-serde": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.40.0.tgz", - "integrity": "sha512-uOWfZjlAoBy6xPqp0d4ka83WNNbEVCWn9WwfqBUXThyoTdTooYSpXe5y2YzN0BJa8b+tEZTyWpgamnBpFLp47g==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-signing": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.40.0.tgz", - "integrity": "sha512-RqK5nPbfma0qInMvjtpVkDYY/KkFS6EKlOv3DWTdxbXJ4YuOxgKiuUromhmBUoyjFag0JO7LUWod07H+/DawoA==", - "dependencies": { - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/signature-v4": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.40.0.tgz", - "integrity": "sha512-ZoRpaZeAIQa1Q+NyEh74ATwOR3nFGfcP6Nu0jFzgqoVijCReMnhtlCRx23ccBu1ZLZNUsNk6MhKjY+ZTfNsjEg==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-stack": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.40.0.tgz", - "integrity": "sha512-hby9HvESUYJxpdALX+6Dn2LPmS5jtMVurGB/+j3MWOvIcDYB4bcSXgVRvXzYnTKwbSupIdbX9zOE2ZAx2SJpUQ==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.40.0.tgz", - "integrity": "sha512-dzC2fxWnanetFJ1oYgil8df3N36bR1yc/OCOpbdfQNiUk1FrXiCXqH5rHNO8zCvnwJAj8GHFwpFGd9a2Qube2w==", - "dependencies": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/node-config-provider": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.40.0.tgz", - "integrity": "sha512-AmokjgUDECG8osoMfdRsPNweqI+L1pn4bYGk5iTLmzbBi0o4ot0U1FdX8Rf0qJZZwS4t1TXc3s8/PDVknmPxKg==", - "dependencies": { - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/shared-ini-file-loader": "3.37.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/node-http-handler": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.40.0.tgz", - "integrity": "sha512-qjda6IbxDhbYr8NHmrMurKkbjgLUkfTMVgagDErDK24Nm3Dn5VaO6J4n6c0Q4OLHlmFaRcUfZSTrOo5DAubqCw==", - "dependencies": { - "@aws-sdk/abort-controller": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/querystring-builder": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/property-provider": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.40.0.tgz", - "integrity": "sha512-Mx4lkShjsYRwW9ujHA1pcnuubrWQ4kF5/DXWNfUiXuSIO/0Lojp1qTLheyBm4vzkJIlx5umyP6NvRAUkEHSN4Q==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/protocol-http": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.40.0.tgz", - "integrity": "sha512-f4ea7/HZkjpvGBrnRIuzc/bhrExWrgDv7eulj4htPukZGHdTqSJD3Jk8lEXWvFuX2vUKQDGhEhCDsqup7YWJQQ==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/querystring-builder": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.40.0.tgz", - "integrity": "sha512-gO24oipnNaxJRBXB7lhLfa96vIMOd8gtMBqJTjelTjS2e1ZP1YY12CNKKTWwafSk8Ge021erZAG/YTOaXGpv+g==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-uri-escape": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/querystring-parser": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.40.0.tgz", - "integrity": "sha512-XZIyaKQIiZAM6zelCBcsLHhVDOLafi7XIOd3jy6SymGN8ajj3HqUJ/vdQ5G6ISTk18OrqgqcCOI9oNzv+nrBcA==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/service-error-classification": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.40.0.tgz", - "integrity": "sha512-c8btKmkvjXczWudXubGdbO3JgmjySBUVC/gCrZDNfwNGsG8RYJJQYYcnmt1gWjelUZsgMDl/2PIzxTlxVF91rA==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/shared-ini-file-loader": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.37.0.tgz", - "integrity": "sha512-+vRBSlfa48R9KL7DpQt3dsu5/+5atjRgoCISblWo3SLpjrx41pKcjKneo7a1u0aP1Xc2oG2TfIyqTWZuOXsmEQ==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/signature-v4": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.40.0.tgz", - "integrity": "sha512-Q1GNZJRCS3W2qsRtDsX/b6EOSfMXfr6TW46N3LnLTGYZ3KAN2SOSJ1DsW59AuGpEZyRmOhJ9L/Q5U403+bZMXQ==", - "dependencies": { - "@aws-sdk/is-array-buffer": "3.37.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-hex-encoding": "3.37.0", - "@aws-sdk/util-uri-escape": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/signature-v4-crt": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.41.0.tgz", - "integrity": "sha512-qqFPptnVz62s4CCGv7z5scrjZ2YW65LJw8UcZIugr2Z+KKeDSlwwFkyagigTzp67rewuI4PYtTCD1vETAcVERg==", - "peer": true, - "dependencies": { - "@aws-sdk/is-array-buffer": "3.37.0", - "@aws-sdk/querystring-parser": "3.40.0", - "@aws-sdk/signature-v4": "3.40.0", - "@aws-sdk/util-hex-encoding": "3.37.0", - "@aws-sdk/util-uri-escape": "3.37.0", - "aws-crt": "^1.9.7", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/smithy-client": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.41.0.tgz", - "integrity": "sha512-ldhS0Pf3v6yHCd//kk5DvKcdyeUkKEwxNDRanAp+ekTW68J3XcYgKaPC9sNDhVTDH1zrywTvtEz5zWHEvXjQow==", - "dependencies": { - "@aws-sdk/middleware-stack": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/types": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.40.0.tgz", - "integrity": "sha512-KpILcfvRaL88TLvo3SY4OuCCg90SvcNLPyjDwUuBqiOyWODjrKShHtAPJzej4CLp92lofh+ul0UnBfV9Jb/5PA==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/url-parser": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.40.0.tgz", - "integrity": "sha512-HwNV+HX7bHgLk5FzTOgdXANsC0SeVz5PMC4Nh+TLz2IoeQnrw4H8dsA4YNonncjern5oC5veKRjQeOoCL5SlSQ==", - "dependencies": { - "@aws-sdk/querystring-parser": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "node_modules/@aws-sdk/util-arn-parser": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.37.0.tgz", - "integrity": "sha512-njIYn8gzm7Ms17A2oEu0vN/0GJpgq7cNFFtzBrM1cPtrc1jhMRJx5hzS7uX5h6ll8BM92bA3y00evRZFHxQPVQ==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-base64-browser": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.37.0.tgz", - "integrity": "sha512-o4s/rHVm5k8eC/T7grJQINyYA/mKfDmEWKMA9wk5iBroXlI2rUm7x649TBk5hzoddufk/mffEeNz/1wM7yTmlg==", - "dependencies": { - "tslib": "^2.3.0" - } - }, - "node_modules/@aws-sdk/util-base64-node": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.37.0.tgz", - "integrity": "sha512-1UPxly1GPrGZtlIWvbNCDIAund4Oyp8cFi9neA43TeNACvrmEQu/nG01pDbOoo0ENoVSVJrNAVBeqKEpqjH2GA==", - "dependencies": { - "@aws-sdk/util-buffer-from": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-body-length-browser": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.37.0.tgz", - "integrity": "sha512-tClmH1uYelqWT43xxmnOsVFbCQJiIwizp6y4E109G2LIof07inxrO0L8nbwBpjhugVplx6NZr9IaqTFqbdM1gA==", - "dependencies": { - "tslib": "^2.3.0" - } - }, - "node_modules/@aws-sdk/util-body-length-node": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.37.0.tgz", - "integrity": "sha512-aY3mXdbEajruRi9CHgq/heM89R+Gectj/Xrs1naewmamaN8NJrvjDm3s+cw//lqqSOW903LYHXDgm7wvCzUnFA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-buffer-from": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.37.0.tgz", - "integrity": "sha512-aa3SBwjLwImuJoE4+hxDIWQ9REz3UFb3p7KFPe9qopdXb/yB12RTcbrXVb4whUux4i4mO6KRij0ZNjFZrjrKPg==", - "dependencies": { - "@aws-sdk/is-array-buffer": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-config-provider": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.40.0.tgz", - "integrity": "sha512-NjZGrA4mqhpr6gkVCAUweurP0Z9d3vFyXJCtulC0BFbpKAnKCf/crSK56NwUaNhAEMCkSuBvjRFzkbfT+HO8bA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-credentials": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-credentials/-/util-credentials-3.37.0.tgz", - "integrity": "sha512-zcLhSZDKgBLhUjSU5HoQpuQiP3v8oE86NmV/tiZVPEaO6YVULEAB2Cfj1hpM/b/JXWzjSHfT06KXT7QUODKS+A==", - "dependencies": { - "@aws-sdk/shared-ini-file-loader": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-hex-encoding": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.37.0.tgz", - "integrity": "sha512-tn5UpfaeM+rZWqynoNqB8lwtcAXil5YYO3HLGH9himpWAdft/2Z7LK6bsYDpctaAI1WHgMDcL0bw3Id04ZUbhA==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-locate-window": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.37.0.tgz", - "integrity": "sha512-NvDCfOhLLVHp27oGUUs8EVirhz91aX5gdxGS7J/sh5PF0cNN8rwaR1vSLR7BxPmJHMO7NH7i9EwiELfLfYcq6g==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-uri-escape": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.37.0.tgz", - "integrity": "sha512-8pKf4YJTELP5lm/CEgYw2atyJBB1RWWqFa0sZx6YJmTlOtLF5G6raUdAi4iDa2hldGt2B6IAdIIyuusT8zeU8Q==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.40.0.tgz", - "integrity": "sha512-C69sTI26bV2EprTv3DTXu9XP7kD9Wu4YVPBzqztOYArd2GDYw3w+jS8SEg3XRbjAKY/mOPZ2Thw4StjpZlWZiA==", - "dependencies": { - "@aws-sdk/types": "3.40.0", - "bowser": "^2.11.0", - "tslib": "^2.3.0" - } - }, - "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.40.0.tgz", - "integrity": "sha512-cjIzd0hRZFTTh7iLJD6Bciu++Em1iaM1clyG02xRl0JD5DEtDSR1zO02uu+AeM7GSLGOxIvwOkK2j8ySPAOmBA==", - "dependencies": { - "@aws-sdk/node-config-provider": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-utf8-browser": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.37.0.tgz", - "integrity": "sha512-tuiOxzfqet1kKGYzlgpMGfhr64AHJnYsFx2jZiH/O6Yq8XQg43ryjQlbJlim/K/XHGNzY0R+nabeJg34q3Ua1g==", - "dependencies": { - "tslib": "^2.3.0" - } - }, - "node_modules/@aws-sdk/util-utf8-node": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.37.0.tgz", - "integrity": "sha512-fUAgd7UTCULL36j9/vnXHxVhxvswnq23mYgTCIT8NQ7wHN30q2a89ym1e9DwGeQkJEBOkOcKLn6nsMsN7YQMDQ==", - "dependencies": { - "@aws-sdk/util-buffer-from": "3.37.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/util-waiter": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.40.0.tgz", - "integrity": "sha512-jdxwNEZdID49ZvyAnxaeNm5w2moIfMLOwj/q6TxKlxYoXMs16FQWkhyfGue0vEASzchS49ewbyt+KBqpT31Ebg==", - "dependencies": { - "@aws-sdk/abort-controller": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@aws-sdk/xml-builder": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.37.0.tgz", - "integrity": "sha512-Vf0f4ZQ+IBo/l9wUaTOXLqqQO9b/Ll5yPbg+EhHx8zlHbTHIm89ettkVCGyT/taGagC1X+ZeTK9maX6ymEOBow==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "dependencies": { - "@babel/highlight": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.5.tgz", - "integrity": "sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.5", - "@babel/helper-compilation-targets": "^7.16.3", - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helpers": "^7.16.5", - "@babel/parser": "^7.16.5", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz", - "integrity": "sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==", - "dependencies": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", - "dependencies": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz", - "integrity": "sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", - "dependencies": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz", - "integrity": "sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==", - "dependencies": { - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz", - "integrity": "sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", - "dependencies": { - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz", - "integrity": "sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==", - "dependencies": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.16.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.6.tgz", - "integrity": "sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.5.tgz", - "integrity": "sha512-/d4//lZ1Vqb4mZ5xTep3dDK888j7BGM/iKqBmndBaoYAFPlPKrGU608VVBz5JeyAb6YQDjRu1UKqj86UhwWVgw==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.16.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz", - "integrity": "sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==", - "dependencies": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.5", - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.5", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "dependencies": { - "@babel/helper-validator-identifier": "^7.15.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "node_modules/@fosscord/util": { - "resolved": "../util", - "link": true - }, - "node_modules/@httptoolkit/websocket-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@httptoolkit/websocket-stream/-/websocket-stream-6.0.0.tgz", - "integrity": "sha512-EC8m9JbhpGX2okfvLakqrmy4Le0VyNKR7b3IdvFZR/BfFO4ruh/XceBvXhCFHkykchnFxuOSlRwFiqNSXlwcGA==", - "peer": true, - "dependencies": { - "@types/ws": "*", - "duplexify": "^3.5.1", - "inherits": "^2.0.1", - "isomorphic-ws": "^4.0.1", - "readable-stream": "^2.3.3", - "safe-buffer": "^5.1.2", - "ws": "*", - "xtend": "^4.0.0" - } - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.2.tgz", - "integrity": "sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg==", - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.2", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.5.tgz", - "integrity": "sha512-3tm/Pevmi8bDsgvo73nX8p/WPng6KWlCyScW10FPEoN1HU4pwI83tJ3TsFvi1FfzsjwUlMNEPowgb/rPau/LTQ==", - "dependencies": { - "@jest/console": "^27.4.2", - "@jest/reporters": "^27.4.5", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.5", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.4.2", - "jest-config": "^27.4.5", - "jest-haste-map": "^27.4.5", - "jest-message-util": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.5", - "jest-resolve-dependencies": "^27.4.5", - "jest-runner": "^27.4.5", - "jest-runtime": "^27.4.5", - "jest-snapshot": "^27.4.5", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "jest-watcher": "^27.4.2", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "27.4.4", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.4.tgz", - "integrity": "sha512-q+niMx7cJgt/t/b6dzLOh4W8Ef/8VyKG7hxASK39jakijJzbFBGpptx3RXz13FFV7OishQ9lTbv+dQ5K3EhfDQ==", - "dependencies": { - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.2.tgz", - "integrity": "sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg==", - "dependencies": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.2", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "27.4.4", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.4.tgz", - "integrity": "sha512-bqpqQhW30BOreXM8bA8t8JbOQzsq/WnPTnBl+It3UxAD9J8yxEAaBEylHx1dtBapAr/UBk8GidXbzmqnee8tYQ==", - "dependencies": { - "@jest/environment": "^27.4.4", - "@jest/types": "^27.4.2", - "expect": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.5.tgz", - "integrity": "sha512-3orsG4vi8zXuBqEoy2LbnC1kuvkg1KQUgqNxmxpQgIOQEPeV0onvZu+qDQnEoX8qTQErtqn/xzcnbpeTuOLSiA==", - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.5", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.4.5", - "jest-resolve": "^27.4.5", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.5", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/source-map": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", - "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==", - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-result": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.2.tgz", - "integrity": "sha512-kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA==", - "dependencies": { - "@jest/console": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.5.tgz", - "integrity": "sha512-n5woIn/1v+FT+9hniymHPARA9upYUmfi5Pw9ewVwXCDlK4F5/Gkees9v8vdjGdAIJ2MPHLHodiajLpZZanWzEQ==", - "dependencies": { - "@jest/test-result": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.5", - "jest-runtime": "^27.4.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.5.tgz", - "integrity": "sha512-PuMet2UlZtlGzwc6L+aZmR3I7CEBpqadO03pU40l2RNY2fFJ191b9/ITB44LNOhVtsyykx0OZvj0PCyuLm7Eew==", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.4.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.5", - "jest-regex-util": "^27.4.0", - "jest-util": "^27.4.2", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/amqplib": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz", - "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==", - "dev": true, - "dependencies": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "node_modules/@types/babel__core": { - "version": "7.1.17", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.17.tgz", - "integrity": "sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A==", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bson": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.5.tgz", - "integrity": "sha512-vVLwMUqhYJSQ/WKcE60eFqcyuWse5fGH+NMAXHuKrUAPoryq3ATxk5o4bgYNtg5aOM4APVg7Hnb3ASqUYG0PKg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/btoa": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/btoa/-/btoa-1.2.3.tgz", - "integrity": "sha512-ANNCZICS/ofxhzUl8V1DniBJs+sFQ+Yg5am1ZwVEf/sxoKY/J2+h5Fuw3xUErlZ7eJLdgzukBjZwnsV6+/2Rmg==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@types/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw==", - "deprecated": "This is a stub types definition. dotenv provides its own type definitions, so you do not need this installed.", - "dev": true, - "dependencies": { - "dotenv": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.26", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.26.tgz", - "integrity": "sha512-zeu3tpouA043RHxW0gzRxwCHchMgftE8GArRsvYT0ByDMbn19olQHx5jLue0LxWY6iYtXb7rXmuVtSkhy9YZvQ==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.6.tgz", - "integrity": "sha512-+P3O/xC7nzVizIi5VbF34YtqSonFsdnbXBnWUCYRiKOi1f9gA4sEFvXkrGr/QVV23IbMYvcoerI7nnhDUiWXRQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "node_modules/@types/mongodb": { - "version": "3.6.20", - "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz", - "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==", - "dependencies": { - "@types/bson": "*", - "@types/node": "*" - } - }, - "node_modules/@types/multer": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz", - "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/node": { - "version": "14.18.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.2.tgz", - "integrity": "sha512-fqtSN5xn/bBzDxMT77C1rJg6CsH/R49E7qsGuvdPJa20HtV5zSTuLJPNfnlyVH3wauKnkHdLggTVkOW/xP9oQg==" - }, - "node_modules/@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==" - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - }, - "node_modules/@types/stream-buffers": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.4.tgz", - "integrity": "sha512-qU/K1tb2yUdhXkLIATzsIPwbtX6BpZk0l3dPW6xqWyhfzzM1ECaQ/8faEnu3CNraLiQ9LHyQQPBGp7N9Fbs25w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", - "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", - "peer": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" - }, - "node_modules/@zerollup/ts-helpers": { - "version": "1.7.18", - "resolved": "https://registry.npmjs.org/@zerollup/ts-helpers/-/ts-helpers-1.7.18.tgz", - "integrity": "sha512-S9zN+y+i5yN/evfWquzSO3lubqPXIsPQf6p9OiPMpRxDx/0totPLF39XoRw48Dav5dSvbIE8D2eAPpXXJxvKwg==", - "dev": true, - "dependencies": { - "resolve": "^1.12.0" - }, - "peerDependencies": { - "typescript": ">=3.7.2" - } - }, - "node_modules/@zerollup/ts-transform-paths": { - "version": "1.7.18", - "resolved": "https://registry.npmjs.org/@zerollup/ts-transform-paths/-/ts-transform-paths-1.7.18.tgz", - "integrity": "sha512-YPVUxvWQVzRx1OBN0Pmkd58+R9FcfUJuwTaPUSoi5rKxuXMtxevTXdfi0w5mEaIH8b0DfL+wg0wFDHiJE+S2zA==", - "dev": true, - "dependencies": { - "@zerollup/ts-helpers": "^1.7.18" - }, - "peerDependencies": { - "typescript": ">=3.7.2" - } - }, - "node_modules/abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/ansi": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", - "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=", - "peer": true - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" - }, - "node_modules/are-we-there-yet": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz", - "integrity": "sha1-otKMkxAqpsyWJFomy5VN4G7FPww=", - "peer": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.0 || ^1.1.13" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/aws-crt": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/aws-crt/-/aws-crt-1.10.5.tgz", - "integrity": "sha512-RLMy9AdBILBUw/EPQuVa7AGsYV2BDPKWMCrautnZka5zm/14w/jODhOBzgtYyixEz/bgq40dhwLIGWvLru12XA==", - "hasInstallScript": true, - "peer": true, - "dependencies": { - "@httptoolkit/websocket-stream": "^6.0.0", - "axios": "^0.21.4", - "cmake-js": "6.3.0", - "crypto-js": "^4.0.0", - "fastestsmallesttextencoderdecoder": "^1.0.22", - "mqtt": "^4.2.8", - "tar": "^6.1.11", - "ws": "^7.5.5" - } - }, - "node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "peer": true, - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/babel-jest": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.5.tgz", - "integrity": "sha512-3uuUTjXbgtODmSv/DXO9nZfD52IyC2OYTFaXGRzL0kpykzroaquCrD5+lZNafTvZlnNqZHt5pb0M08qVBZnsnA==", - "dependencies": { - "@jest/transform": "^27.4.5", - "@jest/types": "^27.4.2", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.4.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz", - "integrity": "sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==", - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz", - "integrity": "sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==", - "dependencies": { - "babel-plugin-jest-hoist": "^27.4.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true - }, - "node_modules/big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "peer": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "peer": true, - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" - }, - "node_modules/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "dependencies": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/bowser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - }, - "node_modules/browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "dependencies": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/bson": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", - "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", - "bin": { - "btoa": "bin/btoa.js" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "peer": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", - "peer": true - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "peer": true, - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "dependencies": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/busboy/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/busboy/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/busboy/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001291", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001291.tgz", - "integrity": "sha512-roMV5V0HNGgJ88s42eE70sstqGW/gwFndosYrikHthw98N5tLnOTxFqMLQjZVRxTWFlJ4rn+MsgXrR7MDPY4jA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "peer": true, - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "engines": { - "node": ">=10" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" - }, - "node_modules/cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "peer": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "peer": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cmake-js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/cmake-js/-/cmake-js-6.3.0.tgz", - "integrity": "sha512-1uqTOmFt6BIqKlrX+39/aewU/JVhyZWDqwAL+6psToUwxj3yWPJiwxiZFmV0XdcoWmqGs7peZTxTbJtAcH8hxw==", - "peer": true, - "dependencies": { - "axios": "^0.21.1", - "debug": "^4", - "fs-extra": "^5.0.0", - "is-iojs": "^1.0.1", - "lodash": "^4", - "memory-stream": "0", - "npmlog": "^1.2.0", - "rc": "^1.2.7", - "semver": "^5.0.3", - "splitargs": "0", - "tar": "^4", - "unzipper": "^0.8.13", - "url-join": "0", - "which": "^1.0.9", - "yargs": "^3.6.0" - }, - "bin": { - "cmake-js": "bin/cmake-js" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/cmake-js/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "peer": true - }, - "node_modules/cmake-js/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/cmake-js/node_modules/fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/cmake-js/node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "peer": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/cmake-js/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "peer": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/cmake-js/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "peer": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/cmake-js/node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "peer": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/cmake-js/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - }, - "node_modules/cmake-js/node_modules/tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "peer": true, - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/cmake-js/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "peer": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/cmake-js/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "peer": true - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz", - "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==", - "peer": true, - "dependencies": { - "leven": "^2.1.0", - "minimist": "^1.1.0" - } - }, - "node_modules/commist/node_modules/leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "engines": [ - "node >= 6.0" - ], - "peer": true, - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==", - "peer": true - }, - "node_modules/cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "peer": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "peer": true - }, - "node_modules/denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "dependencies": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/dicer/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/dicer/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/dicer/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/diff-sequences": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", - "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", - "engines": { - "node": ">=10" - } - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "peer": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "peer": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.25", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.25.tgz", - "integrity": "sha512-bTwub9Y/76EiNmfaiJih+hAy6xn7Ns95S4KvI2NuKNOz8TEEKKQUu44xuy0PYMudjM9zdjKRS1bitsUvHTfuUg==" - }, - "node_modules/emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "peer": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exif-be-gone": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exif-be-gone/-/exif-be-gone-1.2.2.tgz", - "integrity": "sha512-qKZcsFBrNq+IARVrY/tdDH2t+JsXv6R9DpfsuvQjVgYAFVlcWQkSdiULcxZZBhpnLT5gf/97P6tYOjXOEsksJA==", - "dependencies": { - "@types/stream-buffers": "^3.0.3" - }, - "bin": { - "exif-be-gone": "cli.js" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expect": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.2.tgz", - "integrity": "sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg==", - "dependencies": { - "@jest/types": "^27.4.2", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.4.0", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-regex-util": "^27.4.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express-async-errors": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/express-async-errors/-/express-async-errors-3.1.1.tgz", - "integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==", - "peerDependencies": { - "express": "^4.16.2" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "node_modules/fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "node_modules/fast-xml-parser": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", - "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==", - "bin": { - "xml2js": "cli.js" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/naturalintelligence" - } - }, - "node_modules/fastestsmallesttextencoderdecoder": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", - "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==", - "peer": true - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-type": { - "version": "16.5.4", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", - "dependencies": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/file-type?sponsor=1" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "peer": true, - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/formidable": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", - "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==", - "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", - "funding": { - "url": "https://ko-fi.com/tunnckoCore/commissions" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/gauge": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz", - "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=", - "peer": true, - "dependencies": { - "ansi": "^0.3.0", - "has-unicode": "^2.0.0", - "lodash.pad": "^4.1.0", - "lodash.padend": "^4.1.0", - "lodash.padstart": "^4.1.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "peer": true - }, - "node_modules/helmet": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", - "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/help-me": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/help-me/-/help-me-3.0.0.tgz", - "integrity": "sha512-hx73jClhyk910sidBB7ERlnhMlFsJJIBqSVMFDwPN8o2v9nmp5KgLq1Xz1Bf1fCMMZ6mPrX159iG0VLy/fPMtQ==", - "peer": true, - "dependencies": { - "glob": "^7.1.6", - "readable-stream": "^3.6.0" - } - }, - "node_modules/help-me/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/image-size": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz", - "integrity": "sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==", - "dependencies": { - "queue": "6.0.2" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "peer": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-iojs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-iojs/-/is-iojs-1.1.0.tgz", - "integrity": "sha1-TBEDO11dlNbqs3dd7cm+fQCDJfE=", - "peer": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "peer": true, - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/istanbul-reports": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", - "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.5.tgz", - "integrity": "sha512-uT5MiVN3Jppt314kidCk47MYIRilJjA/l2mxwiuzzxGUeJIvA8/pDaJOAX5KWvjAo7SCydcW0/4WEtgbLMiJkg==", - "dependencies": { - "@jest/core": "^27.4.5", - "import-local": "^3.0.2", - "jest-cli": "^27.4.5" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz", - "integrity": "sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==", - "dependencies": { - "@jest/types": "^27.4.2", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-circus": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.5.tgz", - "integrity": "sha512-eTNWa9wsvBwPykhMMShheafbwyakcdHZaEYh5iRrQ0PFJxkDP/e3U/FvzGuKWu2WpwUA3C3hPlfpuzvOdTVqnw==", - "dependencies": { - "@jest/environment": "^27.4.4", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.4.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-runtime": "^27.4.5", - "jest-snapshot": "^27.4.5", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-cli": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.5.tgz", - "integrity": "sha512-hrky3DSgE0u7sQxaCL7bdebEPHx5QzYmrGuUjaPLmPE8jx5adtvGuOlRspvMoVLTTDOHRnZDoRLYJuA+VCI7Hg==", - "dependencies": { - "@jest/core": "^27.4.5", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.4.5", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/jest-cli/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/jest-cli/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-config": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.5.tgz", - "integrity": "sha512-t+STVJtPt+fpqQ8GBw850NtSQbnDOw/UzdPfzDaHQ48/AylQlW7LHj3dH+ndxhC1UxJ0Q3qkq7IH+nM1skwTwA==", - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.4.5", - "@jest/types": "^27.4.2", - "babel-jest": "^27.4.5", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.4.5", - "jest-environment-jsdom": "^27.4.4", - "jest-environment-node": "^27.4.4", - "jest-get-type": "^27.4.0", - "jest-jasmine2": "^27.4.5", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.5", - "jest-runner": "^27.4.5", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.2", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-diff": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz", - "integrity": "sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.4.0", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz", - "integrity": "sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-each": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.4.2.tgz", - "integrity": "sha512-53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg==", - "dependencies": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-jsdom": { - "version": "27.4.4", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.4.tgz", - "integrity": "sha512-cYR3ndNfHBqQgFvS1RL7dNqSvD//K56j/q1s2ygNHcfTCAp12zfIromO1w3COmXrxS8hWAh7+CmZmGCIoqGcGA==", - "dependencies": { - "@jest/environment": "^27.4.4", - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "27.4.4", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.4.tgz", - "integrity": "sha512-D+v3lbJ2GjQTQR23TK0kY3vFVmSeea05giInI41HHOaJnAwOnmUHTZgUaZL+VxUB43pIzoa7PMwWtCVlIUoVoA==", - "dependencies": { - "@jest/environment": "^27.4.4", - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.5.tgz", - "integrity": "sha512-oJm1b5qhhPs78K24EDGifWS0dELYxnoBiDhatT/FThgB9yxqUm5F6li3Pv+Q+apMBmmPNzOBnZ7ZxWMB1Leq1Q==", - "dependencies": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.5", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-jasmine2": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.5.tgz", - "integrity": "sha512-oUnvwhJDj2LhOiUB1kdnJjkx8C5PwgUZQb9urF77mELH9DGR4e2GqpWQKBOYXWs5+uTN9BGDqRz3Aeg5Wts7aw==", - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.4.4", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.4.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-runtime": "^27.4.5", - "jest-snapshot": "^27.4.5", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-leak-detector": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.2.tgz", - "integrity": "sha512-ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw==", - "dependencies": { - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz", - "integrity": "sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ==", - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.2.tgz", - "integrity": "sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w==", - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-mock": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.2.tgz", - "integrity": "sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA==", - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==", - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.5.tgz", - "integrity": "sha512-xU3z1BuOz/hUhVUL+918KqUgK+skqOuUsAi7A+iwoUldK6/+PW+utK8l8cxIWT9AW7IAhGNXjSAh1UYmjULZZw==", - "dependencies": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.5", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.5.tgz", - "integrity": "sha512-elEVvkvRK51y037NshtEkEnukMBWvlPzZHiL847OrIljJ8yIsujD2GXRPqDXC4rEVKbcdsy7W0FxoZb4WmEs7w==", - "dependencies": { - "@jest/types": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-snapshot": "^27.4.5" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runner": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.5.tgz", - "integrity": "sha512-/irauncTfmY1WkTaRQGRWcyQLzK1g98GYG/8QvIPviHgO1Fqz1JYeEIsSfF+9mc/UTA6S+IIHFgKyvUrtiBIZg==", - "dependencies": { - "@jest/console": "^27.4.2", - "@jest/environment": "^27.4.4", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.5", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.4.0", - "jest-environment-jsdom": "^27.4.4", - "jest-environment-node": "^27.4.4", - "jest-haste-map": "^27.4.5", - "jest-leak-detector": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.5", - "jest-runtime": "^27.4.5", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.5", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.5.tgz", - "integrity": "sha512-CIYqwuJQXHQtPd/idgrx4zgJ6iCb6uBjQq1RSAGQrw2S8XifDmoM1Ot8NRd80ooAm+ZNdHVwsktIMGlA1F1FAQ==", - "dependencies": { - "@jest/console": "^27.4.2", - "@jest/environment": "^27.4.4", - "@jest/globals": "^27.4.4", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.5", - "@jest/types": "^27.4.2", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.5", - "jest-message-util": "^27.4.2", - "jest-mock": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.5", - "jest-snapshot": "^27.4.5", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-runtime/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/jest-runtime/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-runtime/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/jest-runtime/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-runtime/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.5.tgz", - "integrity": "sha512-eCi/iM1YJFrJWiT9de4+RpWWWBqsHiYxFG9V9o/n0WXs6GpW4lUt4FAHAgFPTLPqCUVzrMQmSmTZSgQzwqR7IQ==", - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.5", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.5", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.5", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "dependencies": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "dependencies": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.2.tgz", - "integrity": "sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg==", - "dependencies": { - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.4.2", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-worker": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz", - "integrity": "sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/kareem": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", - "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "engines": { - "node": ">=6" - } - }, - "node_modules/lambert-db": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lambert-db/-/lambert-db-1.2.4.tgz", - "integrity": "sha512-E++xLrMIBW+yuaTpTV7icdCPvt9nMauVJk9S3bRLgce1c0olLFoPrvVbxdqkVbpwKxMU8Wolr/gsgsXIB+o7Wg==", - "dependencies": { - "missing-native-js-functions": "^1.2.7", - "mongodb": "^3.6.2", - "mongoose": "^5.11.8", - "rethinkdb-ts": "^2.4.5" - } - }, - "node_modules/lambert-server": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/lambert-server/-/lambert-server-1.2.12.tgz", - "integrity": "sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw==", - "dependencies": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "node_modules/lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "peer": true, - "dependencies": { - "invert-kv": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "peer": true - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.pad": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", - "integrity": "sha1-QzCUmoM6fI2iLMIPaibE1Z3runA=", - "peer": true - }, - "node_modules/lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "peer": true - }, - "node_modules/lodash.padstart": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=", - "peer": true - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "optional": true - }, - "node_modules/memory-stream": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/memory-stream/-/memory-stream-0.0.3.tgz", - "integrity": "sha1-6+jdHDuLw4wOeUHp3dWuvmtN6D8=", - "peer": true, - "dependencies": { - "readable-stream": "~1.0.26-2" - } - }, - "node_modules/memory-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "peer": true - }, - "node_modules/memory-stream/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/memory-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "peer": true - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "dependencies": { - "mime-db": "1.51.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "peer": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/missing-native-js-functions": { - "version": "1.2.18", - "resolved": "https://registry.npmjs.org/missing-native-js-functions/-/missing-native-js-functions-1.2.18.tgz", - "integrity": "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg==" - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mongodb": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz", - "integrity": "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==", - "dependencies": { - "bl": "^2.2.1", - "bson": "^1.1.4", - "denque": "^1.4.1", - "optional-require": "^1.1.8", - "safe-buffer": "^5.1.2" - }, - "engines": { - "node": ">=4" - }, - "optionalDependencies": { - "saslprep": "^1.0.0" - }, - "peerDependenciesMeta": { - "aws4": { - "optional": true - }, - "bson-ext": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "mongodb-extjson": { - "optional": true - }, - "snappy": { - "optional": true - } - } - }, - "node_modules/mongoose": { - "version": "5.13.13", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.13.tgz", - "integrity": "sha512-M55tpCr/p5i6vdJ54nm4MG6/7SKV4JqlWnqbx6yCRuAuW05CZ7u+gNuHVPQVF9dZ59ALXjOtPEUl+OXklAa7ng==", - "dependencies": { - "@types/bson": "1.x || 4.0.x", - "@types/mongodb": "^3.5.27", - "bson": "^1.1.4", - "kareem": "2.3.2", - "mongodb": "3.7.3", - "mongoose-legacy-pluralize": "1.0.2", - "mpath": "0.8.4", - "mquery": "3.2.5", - "ms": "2.1.2", - "optional-require": "1.0.x", - "regexp-clone": "1.0.0", - "safe-buffer": "5.2.1", - "sift": "13.5.2", - "sliced": "1.0.1" - }, - "engines": { - "node": ">=4.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mongoose" - } - }, - "node_modules/mongoose-legacy-pluralize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", - "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==", - "peerDependencies": { - "mongoose": "*" - } - }, - "node_modules/mongoose/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mongoose/node_modules/optional-require": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz", - "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/mpath": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", - "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==", - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mqtt": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-4.2.8.tgz", - "integrity": "sha512-DJYjlXODVXtSDecN8jnNzi6ItX3+ufGsEs9OB3YV24HtkRrh7kpx8L5M1LuyF0KzaiGtWr2PzDcMGAY60KGOSA==", - "peer": true, - "dependencies": { - "commist": "^1.0.0", - "concat-stream": "^2.0.0", - "debug": "^4.1.1", - "duplexify": "^4.1.1", - "help-me": "^3.0.0", - "inherits": "^2.0.3", - "minimist": "^1.2.5", - "mqtt-packet": "^6.8.0", - "pump": "^3.0.0", - "readable-stream": "^3.6.0", - "reinterval": "^1.1.0", - "split2": "^3.1.0", - "ws": "^7.5.0", - "xtend": "^4.0.2" - }, - "bin": { - "mqtt": "bin/mqtt.js", - "mqtt_pub": "bin/pub.js", - "mqtt_sub": "bin/sub.js" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/mqtt-packet": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.10.0.tgz", - "integrity": "sha512-ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA==", - "peer": true, - "dependencies": { - "bl": "^4.0.2", - "debug": "^4.1.1", - "process-nextick-args": "^2.0.1" - } - }, - "node_modules/mqtt-packet/node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "peer": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/mqtt-packet/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mqtt-packet/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - }, - "node_modules/mqtt-packet/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/mqtt/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mqtt/node_modules/duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", - "peer": true, - "dependencies": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, - "node_modules/mqtt/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - }, - "node_modules/mqtt/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/mquery": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz", - "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==", - "dependencies": { - "bluebird": "3.5.1", - "debug": "3.1.0", - "regexp-clone": "^1.0.0", - "safe-buffer": "5.1.2", - "sliced": "1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mquery/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/mquery/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/multer": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz", - "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", - "dependencies": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/multer/node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/nanocolors": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", - "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==" - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node_modules/node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz", - "integrity": "sha1-KOe+YZYJtT960d0wChDWTXFiaLY=", - "peer": true, - "dependencies": { - "ansi": "~0.3.0", - "are-we-there-yet": "~1.0.0", - "gauge": "~1.2.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optional-require": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz", - "integrity": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==", - "dependencies": { - "require-at": "^1.0.6" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "peer": true, - "dependencies": { - "lcid": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/peek-readable": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.2.tgz", - "integrity": "sha512-9fMaz6zoxw9ypO1KZy5RDJgSupEtu0Q+g/OqqsVHX3rKGR8qehRLYzsFARZ4bVvdvfknKiXvuDbkMnO1g6cRpQ==", - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", - "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-format": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", - "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", - "dependencies": { - "@jest/types": "^27.4.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "peer": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "dependencies": { - "inherits": "~2.0.3" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "dependencies": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "peer": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "dependencies": { - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/readable-web-to-node-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regexp-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", - "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" - }, - "node_modules/reinterval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz", - "integrity": "sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc=", - "peer": true - }, - "node_modules/require-at": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz", - "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "engines": { - "node": ">=10" - } - }, - "node_modules/rethinkdb-ts": { - "version": "2.4.18", - "resolved": "https://registry.npmjs.org/rethinkdb-ts/-/rethinkdb-ts-2.4.18.tgz", - "integrity": "sha512-7PvElU5xHbwz0U6GfF6CizfNsONItd0DuOXfnulS9YbRkBkZGeEHBqIvRKMzSkUVeBH0brbVTxt4M8MqQRzvhw==", - "engines": { - "node": ">=12.x <=17.x" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "optional": true, - "dependencies": { - "sparse-bitfield": "^3.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "peer": true - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/sift": { - "version": "13.5.2", - "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", - "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" - }, - "node_modules/signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "engines": { - "node": ">=8" - } - }, - "node_modules/sliced": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", - "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", - "optional": true, - "dependencies": { - "memory-pager": "^1.0.2" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "peer": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/split2/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/splitargs": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/splitargs/-/splitargs-0.0.7.tgz", - "integrity": "sha1-/p965lc3GzOxDLgNoUPPgknPazs=", - "peer": true - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "peer": true - }, - "node_modules/streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "peer": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "peer": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strtok3": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", - "integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.0.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/superagent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz", - "integrity": "sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==", - "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.2", - "debug": "^4.1.1", - "fast-safe-stringify": "^2.0.7", - "form-data": "^3.0.0", - "formidable": "^1.2.2", - "methods": "^1.1.2", - "mime": "^2.4.6", - "qs": "^6.9.4", - "readable-stream": "^3.6.0", - "semver": "^7.3.2" - }, - "engines": { - "node": ">= 7.0.0" - } - }, - "node_modules/superagent/node_modules/debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/superagent/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/superagent/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/superagent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/superagent/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/superagent/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/supertest": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.1.6.tgz", - "integrity": "sha512-0hACYGNJ8OHRg8CRITeZOdbjur7NLuNs0mBjVhdpxi7hP6t3QIbOzLON5RTUmZcy2I9riuII3+Pr2C7yztrIIg==", - "dependencies": { - "methods": "^1.1.2", - "superagent": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "peer": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/token-types": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", - "integrity": "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==", - "dependencies": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Borewit" - } - }, - "node_modules/tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "peer": true, - "engines": { - "node": "*" - } - }, - "node_modules/ts-patch": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-1.4.5.tgz", - "integrity": "sha512-8H1lIhT8uNm2TH+fk8FR1DWSyNIZ4E46aCXrUY+6mgzwiOnrqfHwb3sFGX23NR+s/vthyRxxsIZykqfGJVLvsg==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "glob": "^7.1.7", - "global-prefix": "^3.0.0", - "minimist": "^1.2.5", - "resolve": "^1.20.0", - "shelljs": "^0.8.4", - "strip-ansi": "^6.0.0" - }, - "bin": { - "ts-patch": "bin/cli.js" - }, - "peerDependencies": { - "typescript": ">2.7.0" - } - }, - "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unzipper": { - "version": "0.8.14", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.8.14.tgz", - "integrity": "sha512-8rFtE7EP5ssOwGpN2dt1Q4njl0N1hUXJ7sSPz0leU2hRdq6+pra57z4YPBlVqm40vcgv6ooKZEAx48fMTv9x4w==", - "peer": true, - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "~1.0.10", - "listenercount": "~1.0.1", - "readable-stream": "~2.1.5", - "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "peer": true - }, - "node_modules/unzipper/node_modules/process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "peer": true - }, - "node_modules/unzipper/node_modules/readable-stream": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", - "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=", - "peer": true, - "dependencies": { - "buffer-shims": "^1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/unzipper/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "peer": true - }, - "node_modules/url-join": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz", - "integrity": "sha1-HbSK1CLTQCRpqH99l73r/k+x48g=", - "peer": true - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "engines": { - "node": ">= 8" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "engines": { - "node": ">=10.4" - } - }, - "node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/window-size": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", - "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", - "peer": true, - "bin": { - "window-size": "cli.js" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "peer": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "peer": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", - "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "peer": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", - "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", - "peer": true, - "dependencies": { - "camelcase": "^2.0.1", - "cliui": "^3.0.3", - "decamelize": "^1.1.1", - "os-locale": "^1.4.0", - "string-width": "^1.0.1", - "window-size": "^0.1.4", - "y18n": "^3.2.0" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "peer": true, - "engines": { - "node": ">=0.10.0" - } - } - }, - "dependencies": { - "@aws-crypto/crc32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-2.0.0.tgz", - "integrity": "sha512-TvE1r2CUueyXOuHdEigYjIZVesInd9KN+K/TFFNfkkxRThiNxO6i4ZqqAVMoEjAamZZ1AA8WXJkjCz7YShHPQA==", - "requires": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/ie11-detection": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz", - "integrity": "sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==", - "requires": { - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/sha256-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz", - "integrity": "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==", - "requires": { - "@aws-crypto/ie11-detection": "^2.0.0", - "@aws-crypto/sha256-js": "^2.0.0", - "@aws-crypto/supports-web-crypto": "^2.0.0", - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-locate-window": "^3.0.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/sha256-js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz", - "integrity": "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==", - "requires": { - "@aws-crypto/util": "^2.0.0", - "@aws-sdk/types": "^3.1.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/supports-web-crypto": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz", - "integrity": "sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==", - "requires": { - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-crypto/util": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz", - "integrity": "sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==", - "requires": { - "@aws-sdk/types": "^3.1.0", - "@aws-sdk/util-utf8-browser": "^3.0.0", - "tslib": "^1.11.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } - } - }, - "@aws-sdk/abort-controller": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.40.0.tgz", - "integrity": "sha512-S7LzLvNuwuf0q7r4q7zqGzxd/W2xYsn8cpZ90MMb3ObolhbkLySrikUJujmXae8k+2/KFCOr+FVC0YLrATSUgQ==", - "requires": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/chunked-blob-reader": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.37.0.tgz", - "integrity": "sha512-uDacnFaczeO962RnVttwAQddS4rgDfI7nfeY8NV6iZkDv5uxGzHTfH4jT7WvPDM1pSMcOMDx8RJ+Tmtsd1VTsA==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/chunked-blob-reader-native": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.37.0.tgz", - "integrity": "sha512-h9OYq6EvDrpb7SKod+Kow+d3aRNFVBYR1a8G8ahEDDQe3AtmA2Smyvni4kt/ABTiKvYdof2//Pq3BL/IUV9n9Q==", - "requires": { - "@aws-sdk/util-base64-browser": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/client-s3": { - "version": "3.44.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.44.0.tgz", - "integrity": "sha512-vv3w5RhAZnT/LfiV0SICvvzv5SAeH61erbwm6FpKC9W7lGdcA6o7F2/Bls44fyMW41awYIRZKoPGZApYCrFR6A==", - "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/client-sts": "3.43.0", - "@aws-sdk/config-resolver": "3.40.0", - "@aws-sdk/credential-provider-node": "3.41.0", - "@aws-sdk/eventstream-serde-browser": "3.40.0", - "@aws-sdk/eventstream-serde-config-resolver": "3.40.0", - "@aws-sdk/eventstream-serde-node": "3.40.0", - "@aws-sdk/fetch-http-handler": "3.40.0", - "@aws-sdk/hash-blob-browser": "3.40.0", - "@aws-sdk/hash-node": "3.40.0", - "@aws-sdk/hash-stream-node": "3.40.0", - "@aws-sdk/invalid-dependency": "3.40.0", - "@aws-sdk/md5-js": "3.40.0", - "@aws-sdk/middleware-apply-body-checksum": "3.40.0", - "@aws-sdk/middleware-bucket-endpoint": "3.41.0", - "@aws-sdk/middleware-content-length": "3.40.0", - "@aws-sdk/middleware-expect-continue": "3.40.0", - "@aws-sdk/middleware-host-header": "3.40.0", - "@aws-sdk/middleware-location-constraint": "3.40.0", - "@aws-sdk/middleware-logger": "3.40.0", - "@aws-sdk/middleware-retry": "3.40.0", - "@aws-sdk/middleware-sdk-s3": "3.41.0", - "@aws-sdk/middleware-serde": "3.40.0", - "@aws-sdk/middleware-signing": "3.40.0", - "@aws-sdk/middleware-ssec": "3.40.0", - "@aws-sdk/middleware-stack": "3.40.0", - "@aws-sdk/middleware-user-agent": "3.40.0", - "@aws-sdk/node-config-provider": "3.40.0", - "@aws-sdk/node-http-handler": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/smithy-client": "3.41.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/url-parser": "3.40.0", - "@aws-sdk/util-base64-browser": "3.37.0", - "@aws-sdk/util-base64-node": "3.37.0", - "@aws-sdk/util-body-length-browser": "3.37.0", - "@aws-sdk/util-body-length-node": "3.37.0", - "@aws-sdk/util-user-agent-browser": "3.40.0", - "@aws-sdk/util-user-agent-node": "3.40.0", - "@aws-sdk/util-utf8-browser": "3.37.0", - "@aws-sdk/util-utf8-node": "3.37.0", - "@aws-sdk/util-waiter": "3.40.0", - "@aws-sdk/xml-builder": "3.37.0", - "entities": "2.2.0", - "fast-xml-parser": "3.19.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/client-sso": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.41.0.tgz", - "integrity": "sha512-xDvcy7wv3KdHhOpl5fZN+Ydw+dHBmsCZwMFI1ZdJVCSGO+ZKgl5KVWi1LCif6vjZP1pUuGl44oDOZz1ACqOzTg==", - "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.40.0", - "@aws-sdk/fetch-http-handler": "3.40.0", - "@aws-sdk/hash-node": "3.40.0", - "@aws-sdk/invalid-dependency": "3.40.0", - "@aws-sdk/middleware-content-length": "3.40.0", - "@aws-sdk/middleware-host-header": "3.40.0", - "@aws-sdk/middleware-logger": "3.40.0", - "@aws-sdk/middleware-retry": "3.40.0", - "@aws-sdk/middleware-serde": "3.40.0", - "@aws-sdk/middleware-stack": "3.40.0", - "@aws-sdk/middleware-user-agent": "3.40.0", - "@aws-sdk/node-config-provider": "3.40.0", - "@aws-sdk/node-http-handler": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/smithy-client": "3.41.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/url-parser": "3.40.0", - "@aws-sdk/util-base64-browser": "3.37.0", - "@aws-sdk/util-base64-node": "3.37.0", - "@aws-sdk/util-body-length-browser": "3.37.0", - "@aws-sdk/util-body-length-node": "3.37.0", - "@aws-sdk/util-user-agent-browser": "3.40.0", - "@aws-sdk/util-user-agent-node": "3.40.0", - "@aws-sdk/util-utf8-browser": "3.37.0", - "@aws-sdk/util-utf8-node": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/client-sts": { - "version": "3.43.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.43.0.tgz", - "integrity": "sha512-4CKYimjhIEixVtJH0Y8FR5FXc7zIepZtfScy8QHgH+DERXm/YL5cuUbkJiL6ZRTpek0vztVvE+mNSQU0z1eXag==", - "requires": { - "@aws-crypto/sha256-browser": "2.0.0", - "@aws-crypto/sha256-js": "2.0.0", - "@aws-sdk/config-resolver": "3.40.0", - "@aws-sdk/credential-provider-node": "3.41.0", - "@aws-sdk/fetch-http-handler": "3.40.0", - "@aws-sdk/hash-node": "3.40.0", - "@aws-sdk/invalid-dependency": "3.40.0", - "@aws-sdk/middleware-content-length": "3.40.0", - "@aws-sdk/middleware-host-header": "3.40.0", - "@aws-sdk/middleware-logger": "3.40.0", - "@aws-sdk/middleware-retry": "3.40.0", - "@aws-sdk/middleware-sdk-sts": "3.40.0", - "@aws-sdk/middleware-serde": "3.40.0", - "@aws-sdk/middleware-signing": "3.40.0", - "@aws-sdk/middleware-stack": "3.40.0", - "@aws-sdk/middleware-user-agent": "3.40.0", - "@aws-sdk/node-config-provider": "3.40.0", - "@aws-sdk/node-http-handler": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/smithy-client": "3.41.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/url-parser": "3.40.0", - "@aws-sdk/util-base64-browser": "3.37.0", - "@aws-sdk/util-base64-node": "3.37.0", - "@aws-sdk/util-body-length-browser": "3.37.0", - "@aws-sdk/util-body-length-node": "3.37.0", - "@aws-sdk/util-user-agent-browser": "3.40.0", - "@aws-sdk/util-user-agent-node": "3.40.0", - "@aws-sdk/util-utf8-browser": "3.37.0", - "@aws-sdk/util-utf8-node": "3.37.0", - "entities": "2.2.0", - "fast-xml-parser": "3.19.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/config-resolver": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.40.0.tgz", - "integrity": "sha512-QYy6J2k31QL6J74hPBfptnLW1kQYdN+xjwH4UQ1mv7EUhRoJN9ZY2soStJowFy4at6IIOOVWbyG5dyqvrbEovg==", - "requires": { - "@aws-sdk/signature-v4": "3.40.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-config-provider": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/credential-provider-env": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.40.0.tgz", - "integrity": "sha512-qHZdf2vxhzZkSygjw2I4SEYFL2dMZxxYvO4QlkqQouKY81OVxs/j69oiNCjPasQzGz5jaZZKI8xEAIfkSyr1lg==", - "requires": { - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/credential-provider-imds": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.40.0.tgz", - "integrity": "sha512-Ty/wVa+BQrCFrP06AGl5S1CeLifDt68YrlYXUnkRn603SX4DvxBgVO7XFeDH58G8ziDCiqxfmVl4yjbncPPeSw==", - "requires": { - "@aws-sdk/node-config-provider": "3.40.0", - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/url-parser": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/credential-provider-ini": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.41.0.tgz", - "integrity": "sha512-98CGEHg7Tb6HxK5ZIdbAcijvD3IpLe0ddse1xMe/Ilhjz770FS/L2UNprOP6PZTqrSfBffiMrvfThUSuUaTlIQ==", - "requires": { - "@aws-sdk/credential-provider-env": "3.40.0", - "@aws-sdk/credential-provider-imds": "3.40.0", - "@aws-sdk/credential-provider-sso": "3.41.0", - "@aws-sdk/credential-provider-web-identity": "3.41.0", - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/shared-ini-file-loader": "3.37.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-credentials": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/credential-provider-node": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.41.0.tgz", - "integrity": "sha512-5FW6+wNJgyDCsbAd+mLm/1DBTDkyIYOMVzcxbr6Vi3pM4UrMFdeLdAP62edYW8usg78Xg+c6vaAoEv/M3zkS0Q==", - "requires": { - "@aws-sdk/credential-provider-env": "3.40.0", - "@aws-sdk/credential-provider-imds": "3.40.0", - "@aws-sdk/credential-provider-ini": "3.41.0", - "@aws-sdk/credential-provider-process": "3.40.0", - "@aws-sdk/credential-provider-sso": "3.41.0", - "@aws-sdk/credential-provider-web-identity": "3.41.0", - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/shared-ini-file-loader": "3.37.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-credentials": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/credential-provider-process": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.40.0.tgz", - "integrity": "sha512-qsaNCDesW2GasDbzpeOA371gxugi05JWxt3EKonLbUfkGKBK7kmmL6EgLIxZuNm2/Ve4RS07PKp8yBGm4xIx9w==", - "requires": { - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/shared-ini-file-loader": "3.37.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-credentials": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/credential-provider-sso": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.41.0.tgz", - "integrity": "sha512-9s7SWu3RVIQ/MTcBCt35EMzxNQm3avivrbpSOKfJwxR5L+oNKPsV+gSqMlkNZGwOVJyUicIsZGcq/4ON6CjrOg==", - "requires": { - "@aws-sdk/client-sso": "3.41.0", - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/shared-ini-file-loader": "3.37.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-credentials": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/credential-provider-web-identity": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.41.0.tgz", - "integrity": "sha512-VqvVoEh9C8xTXl4stKyJC5IKQhS8g1Gi5k6B9HPHLIxFRRfKxkE73DT4pMN6npnus7o0yi0MTFGQFQGYSrFO2g==", - "requires": { - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/eventstream-marshaller": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-marshaller/-/eventstream-marshaller-3.40.0.tgz", - "integrity": "sha512-zHGchfkG3B9M8OOKRpByeS5g1/15YQ0+QQHwxQRtm/CPtKBAIAsCZRQaCNBLu9uQMtBBKj5JsDUcjirhGeSvIg==", - "requires": { - "@aws-crypto/crc32": "2.0.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-hex-encoding": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/eventstream-serde-browser": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.40.0.tgz", - "integrity": "sha512-V0AXAfSkhY0hgxDJ0cNA+r42kL8295U7UTCp2Q2fvCaob3wKWh+54KZ2L4IOYTlK3yNzXJ5V6PP1zUuRlsUTew==", - "requires": { - "@aws-sdk/eventstream-marshaller": "3.40.0", - "@aws-sdk/eventstream-serde-universal": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/eventstream-serde-config-resolver": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.40.0.tgz", - "integrity": "sha512-GgGiJBsQ1/SBTpRM/wCdFBCMo1Nybvy46bNVkH1ujCdp8UTLc5PozzNpH+15V2IQbc9sPDYffMab6HSFjDp5vw==", - "requires": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/eventstream-serde-node": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.40.0.tgz", - "integrity": "sha512-CnzX/JZGvhWlg+ooIPVZ78T+5wIm5Ld1BD7jwhlptJa8IjTMvkc8Nh4pAhc7T0ZScy4zZa/oTkqeVYCOVCyd1Q==", - "requires": { - "@aws-sdk/eventstream-marshaller": "3.40.0", - "@aws-sdk/eventstream-serde-universal": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/eventstream-serde-universal": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.40.0.tgz", - "integrity": "sha512-rkHwVMyZJMhp9iBixkuaAGQNer/DPxZ9kxDDtE+LuAMhepTYQ8c4lUW0QQhYbNMWf48QKD1G4FV3JXIj9JfP9A==", - "requires": { - "@aws-sdk/eventstream-marshaller": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/fetch-http-handler": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.40.0.tgz", - "integrity": "sha512-w1HiZromoU+/bbEo89uO81l6UO/M+c2uOMnXntZqe6t3ZHUUUo3AbvhKh0QGVFqRQa+Oi0+95KqWmTHa72/9Iw==", - "requires": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/querystring-builder": "3.40.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-base64-browser": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/hash-blob-browser": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.40.0.tgz", - "integrity": "sha512-l8xyprVVKKH+720VrQ677X6VkvHttDXB4MxkMuxhSvwYBQwsRzP2Wppo7xIAtWGoS+oqlLmD4LCbHdhFRcN5yA==", - "requires": { - "@aws-sdk/chunked-blob-reader": "3.37.0", - "@aws-sdk/chunked-blob-reader-native": "3.37.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/hash-node": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.40.0.tgz", - "integrity": "sha512-yOXXK85DdGDktdnQtXgMdaVKii4wtMjEhJ1mrvx2A9nMFNaPhxvERkVVIUKSWlJRa9ZujOw5jWOx8d2R51/Kjg==", - "requires": { - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-buffer-from": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/hash-stream-node": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.40.0.tgz", - "integrity": "sha512-4yvRwODMGYtj6qrt+fyydV5MwVwPPoyoeqDoXdLo9x75vRY71DT1pMRt8PDOoY/ZwWbIdEt4+V7x0sLt2uy9WA==", - "requires": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/invalid-dependency": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.40.0.tgz", - "integrity": "sha512-axIWtDwCBDDqEgAJipX1FB1ZNpWYXquVwKDMo+7G+ftPBZ4FEq4M1ELhXJL3hhNJ9ZmCQzv+4F6Wnt8dwuzUaQ==", - "requires": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/is-array-buffer": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.37.0.tgz", - "integrity": "sha512-XLjA/a6AuGnCvcJZLsMTy2jxF2upgGhqCCkoIJgLlzzXHSihur13KcmPvW/zcaGnCRj0SvKWXiJHl4vDlW75VQ==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/md5-js": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.40.0.tgz", - "integrity": "sha512-P1tzEljMD/MkjSc00TkVBYvfaVv/7S+04YEwE7tpu/jtxWxMHnk3CMKqq/F2iMhY83DRoqoYy+YqnaF4Bzr1uA==", - "requires": { - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-utf8-browser": "3.37.0", - "@aws-sdk/util-utf8-node": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-apply-body-checksum": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-apply-body-checksum/-/middleware-apply-body-checksum-3.40.0.tgz", - "integrity": "sha512-gNSFlFu/O8cxAM0X64OwiLLN/NPXvK3FsAIJRsfhIW+dX0bEq4lsGPsdU8Tx+9eenaj/Z01uqgWZ6Izar8zVvQ==", - "requires": { - "@aws-sdk/is-array-buffer": "3.37.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-bucket-endpoint": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.41.0.tgz", - "integrity": "sha512-4A0kWHH2qemd4P7CZKS7XB6qtSUP2xMJ7Dn/llxYgvadR0mKEfGPeYPhAss/k7T1JGv+kSTIV30RwUXwdXgE/A==", - "requires": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-arn-parser": "3.37.0", - "@aws-sdk/util-config-provider": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-content-length": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.40.0.tgz", - "integrity": "sha512-sybAJb8v7I/vvL08R3+TI/XDAg9gybQTZ2treC24Ap4+jAOz4QBTHJPMKaUlEeFlMUcq4rj6/u2897ebYH6opw==", - "requires": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-expect-continue": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.40.0.tgz", - "integrity": "sha512-FY6vT0u1ptDZ2bBj1yG/Iyk6HZB7U9fbrpeZNPYzgq8HJxBcTgfLwtB3VLobyhThQm9X2a7R2YZrwtArW8yQfQ==", - "requires": { - "@aws-sdk/middleware-header-default": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-header-default": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-header-default/-/middleware-header-default-3.40.0.tgz", - "integrity": "sha512-eXQ13x/AivPZKoG8/akp9g5xdNHuKftl83GMuk9K6tt4+eAa22TdxiFu4R0UVlKAvo2feqxFrNs5DhhhBeAQWA==", - "requires": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-host-header": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.40.0.tgz", - "integrity": "sha512-/wocR7JFOLM7/+BQM1DgAd6KCFYcdxYu1P7AhI451GlVNuYa5f89zh7p0gt3SRC6monI5lXgpL7RudhDm8fTrA==", - "requires": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-location-constraint": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.40.0.tgz", - "integrity": "sha512-9XaVPYsDQVJbWJH96sNdv4HHY3j1raman+lYxMu4528Awp0OdWUeSsGRYRN+CnRPlkHnfNw4m6SKdWYHxdjshw==", - "requires": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-logger": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.40.0.tgz", - "integrity": "sha512-19kx0Xg5ymVRKoupmhdmfTBkROcv3DZj508agpyG2YAo0abOObMlIP4Jltg0VD4PhNjGzNh0jFGJnvhjdwv4/A==", - "requires": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-retry": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.40.0.tgz", - "integrity": "sha512-SMUJrukugLL7YJE5X8B2ToukxMWMPwnf7jAFr84ptycCe8bdWv8x8klQ3EtVWpyqochtNlbTi6J/tTQBniUX7A==", - "requires": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/service-error-classification": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0", - "uuid": "^8.3.2" - } - }, - "@aws-sdk/middleware-sdk-s3": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.41.0.tgz", - "integrity": "sha512-B7JOpmIpm1zxERQEMwZCWj3FisTvwfUgpfQglYdqrB6VpIoCM8fk2pmi5KzU/JDeNBlhTouj6mwnhJL/z5jopA==", - "requires": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/signature-v4": "3.40.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-arn-parser": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-sdk-sts": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.40.0.tgz", - "integrity": "sha512-TcrbCvj1PkabFZiNczT3yePZtuEm2fAIw1OVnQyLcF2KW+p62Hv5YkK4MPOfx3LA/0lzjOUO1RNl2x7gzV443Q==", - "requires": { - "@aws-sdk/middleware-signing": "3.40.0", - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/signature-v4": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-serde": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.40.0.tgz", - "integrity": "sha512-uOWfZjlAoBy6xPqp0d4ka83WNNbEVCWn9WwfqBUXThyoTdTooYSpXe5y2YzN0BJa8b+tEZTyWpgamnBpFLp47g==", - "requires": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-signing": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.40.0.tgz", - "integrity": "sha512-RqK5nPbfma0qInMvjtpVkDYY/KkFS6EKlOv3DWTdxbXJ4YuOxgKiuUromhmBUoyjFag0JO7LUWod07H+/DawoA==", - "requires": { - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/signature-v4": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-ssec": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.40.0.tgz", - "integrity": "sha512-ZoRpaZeAIQa1Q+NyEh74ATwOR3nFGfcP6Nu0jFzgqoVijCReMnhtlCRx23ccBu1ZLZNUsNk6MhKjY+ZTfNsjEg==", - "requires": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-stack": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.40.0.tgz", - "integrity": "sha512-hby9HvESUYJxpdALX+6Dn2LPmS5jtMVurGB/+j3MWOvIcDYB4bcSXgVRvXzYnTKwbSupIdbX9zOE2ZAx2SJpUQ==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/middleware-user-agent": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.40.0.tgz", - "integrity": "sha512-dzC2fxWnanetFJ1oYgil8df3N36bR1yc/OCOpbdfQNiUk1FrXiCXqH5rHNO8zCvnwJAj8GHFwpFGd9a2Qube2w==", - "requires": { - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/node-config-provider": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.40.0.tgz", - "integrity": "sha512-AmokjgUDECG8osoMfdRsPNweqI+L1pn4bYGk5iTLmzbBi0o4ot0U1FdX8Rf0qJZZwS4t1TXc3s8/PDVknmPxKg==", - "requires": { - "@aws-sdk/property-provider": "3.40.0", - "@aws-sdk/shared-ini-file-loader": "3.37.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/node-http-handler": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.40.0.tgz", - "integrity": "sha512-qjda6IbxDhbYr8NHmrMurKkbjgLUkfTMVgagDErDK24Nm3Dn5VaO6J4n6c0Q4OLHlmFaRcUfZSTrOo5DAubqCw==", - "requires": { - "@aws-sdk/abort-controller": "3.40.0", - "@aws-sdk/protocol-http": "3.40.0", - "@aws-sdk/querystring-builder": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/property-provider": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.40.0.tgz", - "integrity": "sha512-Mx4lkShjsYRwW9ujHA1pcnuubrWQ4kF5/DXWNfUiXuSIO/0Lojp1qTLheyBm4vzkJIlx5umyP6NvRAUkEHSN4Q==", - "requires": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/protocol-http": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.40.0.tgz", - "integrity": "sha512-f4ea7/HZkjpvGBrnRIuzc/bhrExWrgDv7eulj4htPukZGHdTqSJD3Jk8lEXWvFuX2vUKQDGhEhCDsqup7YWJQQ==", - "requires": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/querystring-builder": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.40.0.tgz", - "integrity": "sha512-gO24oipnNaxJRBXB7lhLfa96vIMOd8gtMBqJTjelTjS2e1ZP1YY12CNKKTWwafSk8Ge021erZAG/YTOaXGpv+g==", - "requires": { - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-uri-escape": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/querystring-parser": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.40.0.tgz", - "integrity": "sha512-XZIyaKQIiZAM6zelCBcsLHhVDOLafi7XIOd3jy6SymGN8ajj3HqUJ/vdQ5G6ISTk18OrqgqcCOI9oNzv+nrBcA==", - "requires": { - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/service-error-classification": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.40.0.tgz", - "integrity": "sha512-c8btKmkvjXczWudXubGdbO3JgmjySBUVC/gCrZDNfwNGsG8RYJJQYYcnmt1gWjelUZsgMDl/2PIzxTlxVF91rA==" - }, - "@aws-sdk/shared-ini-file-loader": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.37.0.tgz", - "integrity": "sha512-+vRBSlfa48R9KL7DpQt3dsu5/+5atjRgoCISblWo3SLpjrx41pKcjKneo7a1u0aP1Xc2oG2TfIyqTWZuOXsmEQ==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/signature-v4": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.40.0.tgz", - "integrity": "sha512-Q1GNZJRCS3W2qsRtDsX/b6EOSfMXfr6TW46N3LnLTGYZ3KAN2SOSJ1DsW59AuGpEZyRmOhJ9L/Q5U403+bZMXQ==", - "requires": { - "@aws-sdk/is-array-buffer": "3.37.0", - "@aws-sdk/types": "3.40.0", - "@aws-sdk/util-hex-encoding": "3.37.0", - "@aws-sdk/util-uri-escape": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/signature-v4-crt": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-crt/-/signature-v4-crt-3.41.0.tgz", - "integrity": "sha512-qqFPptnVz62s4CCGv7z5scrjZ2YW65LJw8UcZIugr2Z+KKeDSlwwFkyagigTzp67rewuI4PYtTCD1vETAcVERg==", - "peer": true, - "requires": { - "@aws-sdk/is-array-buffer": "3.37.0", - "@aws-sdk/querystring-parser": "3.40.0", - "@aws-sdk/signature-v4": "3.40.0", - "@aws-sdk/util-hex-encoding": "3.37.0", - "@aws-sdk/util-uri-escape": "3.37.0", - "aws-crt": "^1.9.7", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/smithy-client": { - "version": "3.41.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.41.0.tgz", - "integrity": "sha512-ldhS0Pf3v6yHCd//kk5DvKcdyeUkKEwxNDRanAp+ekTW68J3XcYgKaPC9sNDhVTDH1zrywTvtEz5zWHEvXjQow==", - "requires": { - "@aws-sdk/middleware-stack": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/types": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.40.0.tgz", - "integrity": "sha512-KpILcfvRaL88TLvo3SY4OuCCg90SvcNLPyjDwUuBqiOyWODjrKShHtAPJzej4CLp92lofh+ul0UnBfV9Jb/5PA==" - }, - "@aws-sdk/url-parser": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.40.0.tgz", - "integrity": "sha512-HwNV+HX7bHgLk5FzTOgdXANsC0SeVz5PMC4Nh+TLz2IoeQnrw4H8dsA4YNonncjern5oC5veKRjQeOoCL5SlSQ==", - "requires": { - "@aws-sdk/querystring-parser": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-arn-parser": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.37.0.tgz", - "integrity": "sha512-njIYn8gzm7Ms17A2oEu0vN/0GJpgq7cNFFtzBrM1cPtrc1jhMRJx5hzS7uX5h6ll8BM92bA3y00evRZFHxQPVQ==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-base64-browser": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.37.0.tgz", - "integrity": "sha512-o4s/rHVm5k8eC/T7grJQINyYA/mKfDmEWKMA9wk5iBroXlI2rUm7x649TBk5hzoddufk/mffEeNz/1wM7yTmlg==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-base64-node": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.37.0.tgz", - "integrity": "sha512-1UPxly1GPrGZtlIWvbNCDIAund4Oyp8cFi9neA43TeNACvrmEQu/nG01pDbOoo0ENoVSVJrNAVBeqKEpqjH2GA==", - "requires": { - "@aws-sdk/util-buffer-from": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-body-length-browser": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.37.0.tgz", - "integrity": "sha512-tClmH1uYelqWT43xxmnOsVFbCQJiIwizp6y4E109G2LIof07inxrO0L8nbwBpjhugVplx6NZr9IaqTFqbdM1gA==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-body-length-node": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.37.0.tgz", - "integrity": "sha512-aY3mXdbEajruRi9CHgq/heM89R+Gectj/Xrs1naewmamaN8NJrvjDm3s+cw//lqqSOW903LYHXDgm7wvCzUnFA==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-buffer-from": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.37.0.tgz", - "integrity": "sha512-aa3SBwjLwImuJoE4+hxDIWQ9REz3UFb3p7KFPe9qopdXb/yB12RTcbrXVb4whUux4i4mO6KRij0ZNjFZrjrKPg==", - "requires": { - "@aws-sdk/is-array-buffer": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-config-provider": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.40.0.tgz", - "integrity": "sha512-NjZGrA4mqhpr6gkVCAUweurP0Z9d3vFyXJCtulC0BFbpKAnKCf/crSK56NwUaNhAEMCkSuBvjRFzkbfT+HO8bA==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-credentials": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-credentials/-/util-credentials-3.37.0.tgz", - "integrity": "sha512-zcLhSZDKgBLhUjSU5HoQpuQiP3v8oE86NmV/tiZVPEaO6YVULEAB2Cfj1hpM/b/JXWzjSHfT06KXT7QUODKS+A==", - "requires": { - "@aws-sdk/shared-ini-file-loader": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-hex-encoding": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.37.0.tgz", - "integrity": "sha512-tn5UpfaeM+rZWqynoNqB8lwtcAXil5YYO3HLGH9himpWAdft/2Z7LK6bsYDpctaAI1WHgMDcL0bw3Id04ZUbhA==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-locate-window": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.37.0.tgz", - "integrity": "sha512-NvDCfOhLLVHp27oGUUs8EVirhz91aX5gdxGS7J/sh5PF0cNN8rwaR1vSLR7BxPmJHMO7NH7i9EwiELfLfYcq6g==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-uri-escape": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.37.0.tgz", - "integrity": "sha512-8pKf4YJTELP5lm/CEgYw2atyJBB1RWWqFa0sZx6YJmTlOtLF5G6raUdAi4iDa2hldGt2B6IAdIIyuusT8zeU8Q==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-user-agent-browser": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.40.0.tgz", - "integrity": "sha512-C69sTI26bV2EprTv3DTXu9XP7kD9Wu4YVPBzqztOYArd2GDYw3w+jS8SEg3XRbjAKY/mOPZ2Thw4StjpZlWZiA==", - "requires": { - "@aws-sdk/types": "3.40.0", - "bowser": "^2.11.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-user-agent-node": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.40.0.tgz", - "integrity": "sha512-cjIzd0hRZFTTh7iLJD6Bciu++Em1iaM1clyG02xRl0JD5DEtDSR1zO02uu+AeM7GSLGOxIvwOkK2j8ySPAOmBA==", - "requires": { - "@aws-sdk/node-config-provider": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-utf8-browser": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.37.0.tgz", - "integrity": "sha512-tuiOxzfqet1kKGYzlgpMGfhr64AHJnYsFx2jZiH/O6Yq8XQg43ryjQlbJlim/K/XHGNzY0R+nabeJg34q3Ua1g==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-utf8-node": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.37.0.tgz", - "integrity": "sha512-fUAgd7UTCULL36j9/vnXHxVhxvswnq23mYgTCIT8NQ7wHN30q2a89ym1e9DwGeQkJEBOkOcKLn6nsMsN7YQMDQ==", - "requires": { - "@aws-sdk/util-buffer-from": "3.37.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/util-waiter": { - "version": "3.40.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.40.0.tgz", - "integrity": "sha512-jdxwNEZdID49ZvyAnxaeNm5w2moIfMLOwj/q6TxKlxYoXMs16FQWkhyfGue0vEASzchS49ewbyt+KBqpT31Ebg==", - "requires": { - "@aws-sdk/abort-controller": "3.40.0", - "@aws-sdk/types": "3.40.0", - "tslib": "^2.3.0" - } - }, - "@aws-sdk/xml-builder": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.37.0.tgz", - "integrity": "sha512-Vf0f4ZQ+IBo/l9wUaTOXLqqQO9b/Ll5yPbg+EhHx8zlHbTHIm89ettkVCGyT/taGagC1X+ZeTK9maX6ymEOBow==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@babel/code-frame": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.0.tgz", - "integrity": "sha512-IF4EOMEV+bfYwOmNxGzSnjR2EmQod7f1UXOpZM3l4i4o4QNwzjtJAu/HxdjHq0aYBvdqMuQEY1eg0nqW9ZPORA==", - "requires": { - "@babel/highlight": "^7.16.0" - } - }, - "@babel/compat-data": { - "version": "7.16.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.16.4.tgz", - "integrity": "sha512-1o/jo7D+kC9ZjHX5v+EHrdjl3PhxMrLSOTGsOdHJ+KL8HCaEK6ehrVL2RS6oHDZp+L7xLirLrPmQtEng769J/Q==" - }, - "@babel/core": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.16.5.tgz", - "integrity": "sha512-wUcenlLzuWMZ9Zt8S0KmFwGlH6QKRh3vsm/dhDA3CHkiTA45YuG1XkHRcNRl73EFPXDp/d5kVOU0/y7x2w6OaQ==", - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.5", - "@babel/helper-compilation-targets": "^7.16.3", - "@babel/helper-module-transforms": "^7.16.5", - "@babel/helpers": "^7.16.5", - "@babel/parser": "^7.16.5", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/generator": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.16.5.tgz", - "integrity": "sha512-kIvCdjZqcdKqoDbVVdt5R99icaRtrtYhYK/xux5qiWCBmfdvEYMFZ68QCrpE5cbFM1JsuArUNs1ZkuKtTtUcZA==", - "requires": { - "@babel/types": "^7.16.0", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.16.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.3.tgz", - "integrity": "sha512-vKsoSQAyBmxS35JUOOt+07cLc6Nk/2ljLIHwmq2/NM6hdioUaqEXq/S+nXvbvXbZkNDlWOymPanJGOc4CBjSJA==", - "requires": { - "@babel/compat-data": "^7.16.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.17.5", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "@babel/helper-environment-visitor": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.5.tgz", - "integrity": "sha512-ODQyc5AnxmZWm/R2W7fzhamOk1ey8gSguo5SGvF0zcB3uUzRpTRmM/jmLSm9bDMyPlvbyJ+PwPEK0BWIoZ9wjg==", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-function-name": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.16.0.tgz", - "integrity": "sha512-BZh4mEk1xi2h4HFjWUXRQX5AEx4rvaZxHgax9gcjdLWdkjsY7MKt5p0otjsg5noXw+pB+clMCjw+aEVYADMjog==", - "requires": { - "@babel/helper-get-function-arity": "^7.16.0", - "@babel/template": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.0.tgz", - "integrity": "sha512-ASCquNcywC1NkYh/z7Cgp3w31YW8aojjYIlNg4VeJiHkqyP4AzIvr4qx7pYDb4/s8YcsZWqqOSxgkvjUz1kpDQ==", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.0.tgz", - "integrity": "sha512-1AZlpazjUR0EQZQv3sgRNfM9mEVWPK3M6vlalczA+EECcPz3XPh6VplbErL5UoMpChhSck5wAJHthlj1bYpcmg==", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-module-imports": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.0.tgz", - "integrity": "sha512-kkH7sWzKPq0xt3H1n+ghb4xEMP8k0U7XV3kkB+ZGy69kDk2ySFW1qPi06sjKzFY3t1j6XbJSqr4mF9L7CYVyhg==", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-module-transforms": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.5.tgz", - "integrity": "sha512-CkvMxgV4ZyyioElFwcuWnDCcNIeyqTkCm9BxXZi73RR1ozqlpboqsbGUNvRTflgZtFbbJ1v5Emvm+lkjMYY/LQ==", - "requires": { - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-module-imports": "^7.16.0", - "@babel/helper-simple-access": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.5.tgz", - "integrity": "sha512-59KHWHXxVA9K4HNF4sbHCf+eJeFe0Te/ZFGqBT4OjXhrwvA04sGfaEGsVTdsjoszq0YTP49RC9UKe5g8uN2RwQ==" - }, - "@babel/helper-simple-access": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.0.tgz", - "integrity": "sha512-o1rjBT/gppAqKsYfUdfHq5Rk03lMQrkPHG1OWzHWpLgVXRH4HnMM9Et9CVdIqwkCQlobnGHEJMsgWP/jE1zUiw==", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.0.tgz", - "integrity": "sha512-0YMMRpuDFNGTHNRiiqJX19GjNXA4H0E8jZ2ibccfSxaCogbm3am5WN/2nQNj0YnQwGWM1J06GOcQ2qnh3+0paw==", - "requires": { - "@babel/types": "^7.16.0" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.15.7.tgz", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==" - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==" - }, - "@babel/helpers": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.16.5.tgz", - "integrity": "sha512-TLgi6Lh71vvMZGEkFuIxzaPsyeYCHQ5jJOOX1f0xXn0uciFuE8cEk0wyBquMcCxBXZ5BJhE2aUB7pnWTD150Tw==", - "requires": { - "@babel/template": "^7.16.0", - "@babel/traverse": "^7.16.5", - "@babel/types": "^7.16.0" - } - }, - "@babel/highlight": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.0.tgz", - "integrity": "sha512-t8MH41kUQylBtu2+4IQA3atqevA2lRgqA2wyVB/YiWmsDSuylZZuXOUy9ric30hfzauEFfdsuk/eXTRrGrfd0g==", - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.16.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.6.tgz", - "integrity": "sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ==" - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.5.tgz", - "integrity": "sha512-/d4//lZ1Vqb4mZ5xTep3dDK888j7BGM/iKqBmndBaoYAFPlPKrGU608VVBz5JeyAb6YQDjRu1UKqj86UhwWVgw==", - "requires": { - "@babel/helper-plugin-utils": "^7.16.5" - } - }, - "@babel/template": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.0.tgz", - "integrity": "sha512-MnZdpFD/ZdYhXwiunMqqgyZyucaYsbL0IrjoGjaVhGilz+x8YB++kRfygSOIj1yOtWKPlx7NBp+9I1RQSgsd5A==", - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/parser": "^7.16.0", - "@babel/types": "^7.16.0" - } - }, - "@babel/traverse": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.16.5.tgz", - "integrity": "sha512-FOCODAzqUMROikDYLYxl4nmwiLlu85rNqBML/A5hKRVXG2LV8d0iMqgPzdYTcIpjZEBB7D6UDU9vxRZiriASdQ==", - "requires": { - "@babel/code-frame": "^7.16.0", - "@babel/generator": "^7.16.5", - "@babel/helper-environment-visitor": "^7.16.5", - "@babel/helper-function-name": "^7.16.0", - "@babel/helper-hoist-variables": "^7.16.0", - "@babel/helper-split-export-declaration": "^7.16.0", - "@babel/parser": "^7.16.5", - "@babel/types": "^7.16.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "@babel/types": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.0.tgz", - "integrity": "sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg==", - "requires": { - "@babel/helper-validator-identifier": "^7.15.7", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "@fosscord/util": { - "version": "file:../util", - "requires": { - "@types/amqplib": "^0.8.1", - "@types/jsonwebtoken": "^8.5.0", - "@types/multer": "^1.4.7", - "@types/node": "^14.17.9", - "@types/node-fetch": "^2.5.12", - "amqplib": "^0.8.0", - "form-data": "^4.0.0", - "jest": "^27.0.6", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "multer": "^1.4.3", - "node-fetch": "^2.6.2", - "patch-package": "^6.4.7", - "pg": "^8.7.1", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "ts-node": "^10.2.1", - "typeorm": "^0.2.38", - "typescript": "^4.4.2", - "typescript-json-schema": "^0.50.1" - } - }, - "@httptoolkit/websocket-stream": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@httptoolkit/websocket-stream/-/websocket-stream-6.0.0.tgz", - "integrity": "sha512-EC8m9JbhpGX2okfvLakqrmy4Le0VyNKR7b3IdvFZR/BfFO4ruh/XceBvXhCFHkykchnFxuOSlRwFiqNSXlwcGA==", - "peer": true, - "requires": { - "@types/ws": "*", - "duplexify": "^3.5.1", - "inherits": "^2.0.1", - "isomorphic-ws": "^4.0.1", - "readable-stream": "^2.3.3", - "safe-buffer": "^5.1.2", - "ws": "*", - "xtend": "^4.0.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" - }, - "@jest/console": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.2.tgz", - "integrity": "sha512-xknHThRsPB/To1FUbi6pCe43y58qFC03zfb6R7fDb/FfC7k2R3i1l+izRBJf8DI46KhYGRaF14Eo9A3qbBoixg==", - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.4.2", - "jest-util": "^27.4.2", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.5.tgz", - "integrity": "sha512-3tm/Pevmi8bDsgvo73nX8p/WPng6KWlCyScW10FPEoN1HU4pwI83tJ3TsFvi1FfzsjwUlMNEPowgb/rPau/LTQ==", - "requires": { - "@jest/console": "^27.4.2", - "@jest/reporters": "^27.4.5", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.5", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.4.2", - "jest-config": "^27.4.5", - "jest-haste-map": "^27.4.5", - "jest-message-util": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.5", - "jest-resolve-dependencies": "^27.4.5", - "jest-runner": "^27.4.5", - "jest-runtime": "^27.4.5", - "jest-snapshot": "^27.4.5", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "jest-watcher": "^27.4.2", - "micromatch": "^4.0.4", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "27.4.4", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.4.tgz", - "integrity": "sha512-q+niMx7cJgt/t/b6dzLOh4W8Ef/8VyKG7hxASK39jakijJzbFBGpptx3RXz13FFV7OishQ9lTbv+dQ5K3EhfDQ==", - "requires": { - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2" - } - }, - "@jest/fake-timers": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.2.tgz", - "integrity": "sha512-f/Xpzn5YQk5adtqBgvw1V6bF8Nx3hY0OIRRpCvWcfPl0EAjdqWPdhH3t/3XpiWZqtjIEHDyMKP9ajpva1l4Zmg==", - "requires": { - "@jest/types": "^27.4.2", - "@sinonjs/fake-timers": "^8.0.1", - "@types/node": "*", - "jest-message-util": "^27.4.2", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2" - } - }, - "@jest/globals": { - "version": "27.4.4", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.4.tgz", - "integrity": "sha512-bqpqQhW30BOreXM8bA8t8JbOQzsq/WnPTnBl+It3UxAD9J8yxEAaBEylHx1dtBapAr/UBk8GidXbzmqnee8tYQ==", - "requires": { - "@jest/environment": "^27.4.4", - "@jest/types": "^27.4.2", - "expect": "^27.4.2" - } - }, - "@jest/reporters": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.5.tgz", - "integrity": "sha512-3orsG4vi8zXuBqEoy2LbnC1kuvkg1KQUgqNxmxpQgIOQEPeV0onvZu+qDQnEoX8qTQErtqn/xzcnbpeTuOLSiA==", - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.4.2", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.5", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.4.5", - "jest-resolve": "^27.4.5", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.5", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.1.0" - } - }, - "@jest/source-map": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz", - "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==", - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.2.tgz", - "integrity": "sha512-kr+bCrra9jfTgxHXHa2UwoQjxvQk3Am6QbpAiJ5x/50LW8llOYrxILkqY0lZRW/hu8FXesnudbql263+EW9iNA==", - "requires": { - "@jest/console": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.5.tgz", - "integrity": "sha512-n5woIn/1v+FT+9hniymHPARA9upYUmfi5Pw9ewVwXCDlK4F5/Gkees9v8vdjGdAIJ2MPHLHodiajLpZZanWzEQ==", - "requires": { - "@jest/test-result": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.5", - "jest-runtime": "^27.4.5" - } - }, - "@jest/transform": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.5.tgz", - "integrity": "sha512-PuMet2UlZtlGzwc6L+aZmR3I7CEBpqadO03pU40l2RNY2fFJ191b9/ITB44LNOhVtsyykx0OZvj0PCyuLm7Eew==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.4.2", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.5", - "jest-regex-util": "^27.4.0", - "jest-util": "^27.4.2", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz", - "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", - "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@tokenizer/token": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", - "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@types/amqplib": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz", - "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==", - "dev": true, - "requires": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "@types/babel__core": { - "version": "7.1.17", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.17.tgz", - "integrity": "sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.14.2.tgz", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/bson": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@types/bson/-/bson-4.0.5.tgz", - "integrity": "sha512-vVLwMUqhYJSQ/WKcE60eFqcyuWse5fGH+NMAXHuKrUAPoryq3ATxk5o4bgYNtg5aOM4APVg7Hnb3ASqUYG0PKg==", - "requires": { - "@types/node": "*" - } - }, - "@types/btoa": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/btoa/-/btoa-1.2.3.tgz", - "integrity": "sha512-ANNCZICS/ofxhzUl8V1DniBJs+sFQ+Yg5am1ZwVEf/sxoKY/J2+h5Fuw3xUErlZ7eJLdgzukBjZwnsV6+/2Rmg==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/dotenv": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@types/dotenv/-/dotenv-8.2.0.tgz", - "integrity": "sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw==", - "dev": true, - "requires": { - "dotenv": "*" - } - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.26", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.26.tgz", - "integrity": "sha512-zeu3tpouA043RHxW0gzRxwCHchMgftE8GArRsvYT0ByDMbn19olQHx5jLue0LxWY6iYtXb7rXmuVtSkhy9YZvQ==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/fs-extra": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", - "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jsonwebtoken": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.6.tgz", - "integrity": "sha512-+P3O/xC7nzVizIi5VbF34YtqSonFsdnbXBnWUCYRiKOi1f9gA4sEFvXkrGr/QVV23IbMYvcoerI7nnhDUiWXRQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "@types/mongodb": { - "version": "3.6.20", - "resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.6.20.tgz", - "integrity": "sha512-WcdpPJCakFzcWWD9juKoZbRtQxKIMYF/JIAM4JrNHrMcnJL6/a2NWjXxW7fo9hxboxxkg+icff8d7+WIEvKgYQ==", - "requires": { - "@types/bson": "*", - "@types/node": "*" - } - }, - "@types/multer": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz", - "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/node": { - "version": "14.18.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.2.tgz", - "integrity": "sha512-fqtSN5xn/bBzDxMT77C1rJg6CsH/R49E7qsGuvdPJa20HtV5zSTuLJPNfnlyVH3wauKnkHdLggTVkOW/xP9oQg==" - }, - "@types/node-fetch": { - "version": "2.5.12", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.12.tgz", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==" - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" - }, - "@types/stream-buffers": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.4.tgz", - "integrity": "sha512-qU/K1tb2yUdhXkLIATzsIPwbtX6BpZk0l3dPW6xqWyhfzzM1ECaQ/8faEnu3CNraLiQ9LHyQQPBGp7N9Fbs25w==", - "requires": { - "@types/node": "*" - } - }, - "@types/ws": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", - "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", - "peer": true, - "requires": { - "@types/node": "*" - } - }, - "@types/yargs": { - "version": "16.0.4", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==" - }, - "@zerollup/ts-helpers": { - "version": "1.7.18", - "resolved": "https://registry.npmjs.org/@zerollup/ts-helpers/-/ts-helpers-1.7.18.tgz", - "integrity": "sha512-S9zN+y+i5yN/evfWquzSO3lubqPXIsPQf6p9OiPMpRxDx/0totPLF39XoRw48Dav5dSvbIE8D2eAPpXXJxvKwg==", - "dev": true, - "requires": { - "resolve": "^1.12.0" - } - }, - "@zerollup/ts-transform-paths": { - "version": "1.7.18", - "resolved": "https://registry.npmjs.org/@zerollup/ts-transform-paths/-/ts-transform-paths-1.7.18.tgz", - "integrity": "sha512-YPVUxvWQVzRx1OBN0Pmkd58+R9FcfUJuwTaPUSoi5rKxuXMtxevTXdfi0w5mEaIH8b0DfL+wg0wFDHiJE+S2zA==", - "dev": true, - "requires": { - "@zerollup/ts-helpers": "^1.7.18" - } - }, - "abab": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==" - }, - "acorn-globals": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" - } - } - }, - "acorn-walk": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "ansi": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz", - "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=", - "peer": true - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" - }, - "are-we-there-yet": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz", - "integrity": "sha1-otKMkxAqpsyWJFomy5VN4G7FPww=", - "peer": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.0 || ^1.1.13" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "aws-crt": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/aws-crt/-/aws-crt-1.10.5.tgz", - "integrity": "sha512-RLMy9AdBILBUw/EPQuVa7AGsYV2BDPKWMCrautnZka5zm/14w/jODhOBzgtYyixEz/bgq40dhwLIGWvLru12XA==", - "peer": true, - "requires": { - "@httptoolkit/websocket-stream": "^6.0.0", - "axios": "^0.21.4", - "cmake-js": "6.3.0", - "crypto-js": "^4.0.0", - "fastestsmallesttextencoderdecoder": "^1.0.22", - "mqtt": "^4.2.8", - "tar": "^6.1.11", - "ws": "^7.5.5" - } - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "peer": true, - "requires": { - "follow-redirects": "^1.14.0" - } - }, - "babel-jest": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.5.tgz", - "integrity": "sha512-3uuUTjXbgtODmSv/DXO9nZfD52IyC2OYTFaXGRzL0kpykzroaquCrD5+lZNafTvZlnNqZHt5pb0M08qVBZnsnA==", - "requires": { - "@jest/transform": "^27.4.5", - "@jest/types": "^27.4.2", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.4.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "dependencies": { - "istanbul-lib-instrument": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.1.0.tgz", - "integrity": "sha512-czwUz525rkOFDJxfKK6mYfIs9zBKILyrZQxjz3ABhjQXhbhFsSbo1HW/BFcsDnfJYJWA6thRR5/TUY2qs5W99Q==", - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "babel-plugin-jest-hoist": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz", - "integrity": "sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==", - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz", - "integrity": "sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==", - "requires": { - "babel-plugin-jest-hoist": "^27.4.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "peer": true - }, - "big-integer": { - "version": "1.6.51", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", - "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", - "peer": true - }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "peer": true, - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } - }, - "bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "bluebird": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", - "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==" - }, - "body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==", - "requires": { - "bytes": "3.1.1", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.6", - "raw-body": "2.4.2", - "type-is": "~1.6.18" - } - }, - "bowser": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", - "integrity": "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" - }, - "browserslist": { - "version": "4.19.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz", - "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==", - "requires": { - "caniuse-lite": "^1.0.30001286", - "electron-to-chromium": "^1.4.17", - "escalade": "^3.1.1", - "node-releases": "^2.0.1", - "picocolors": "^1.0.0" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "requires": { - "node-int64": "^0.4.0" - } - }, - "bson": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", - "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==" - }, - "btoa": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", - "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "peer": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "peer": true - }, - "buffer-shims": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz", - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E=", - "peer": true - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "peer": true - }, - "busboy": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "bytes": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz", - "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==" - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "caniuse-lite": { - "version": "1.0.30001291", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001291.tgz", - "integrity": "sha512-roMV5V0HNGgJ88s42eE70sstqGW/gwFndosYrikHthw98N5tLnOTxFqMLQjZVRxTWFlJ4rn+MsgXrR7MDPY4jA==" - }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "peer": true, - "requires": { - "traverse": ">=0.3.0 <0.4" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" - }, - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "peer": true - }, - "ci-info": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.0.tgz", - "integrity": "sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==" - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "peer": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "peer": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "peer": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "cmake-js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/cmake-js/-/cmake-js-6.3.0.tgz", - "integrity": "sha512-1uqTOmFt6BIqKlrX+39/aewU/JVhyZWDqwAL+6psToUwxj3yWPJiwxiZFmV0XdcoWmqGs7peZTxTbJtAcH8hxw==", - "peer": true, - "requires": { - "axios": "^0.21.1", - "debug": "^4", - "fs-extra": "^5.0.0", - "is-iojs": "^1.0.1", - "lodash": "^4", - "memory-stream": "0", - "npmlog": "^1.2.0", - "rc": "^1.2.7", - "semver": "^5.0.3", - "splitargs": "0", - "tar": "^4", - "unzipper": "^0.8.13", - "url-join": "0", - "which": "^1.0.9", - "yargs": "^3.6.0" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "peer": true - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", - "peer": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "peer": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "peer": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "peer": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "peer": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - }, - "tar": { - "version": "4.4.19", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "peer": true, - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "peer": true - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "peer": true - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "peer": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commist": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz", - "integrity": "sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==", - "peer": true, - "requires": { - "leven": "^2.1.0", - "minimist": "^1.1.0" - }, - "dependencies": { - "leven": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", - "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", - "peer": true - } - } - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", - "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", - "peer": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.0.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "cookie": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", - "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "cookiejar": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "dependencies": { - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "crypto-js": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", - "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==", - "peer": true - }, - "cssom": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" - }, - "cssstyle": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - } - } - }, - "data-urls": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "peer": true - }, - "decimal.js": { - "version": "10.3.1", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==" - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=" - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "peer": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "peer": true - }, - "denque": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" - }, - "dicer": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "diff-sequences": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", - "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==" - }, - "domexception": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" - } - } - }, - "dotenv": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", - "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==" - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "peer": true, - "requires": { - "readable-stream": "^2.0.2" - } - }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "peer": true, - "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.4.25", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.25.tgz", - "integrity": "sha512-bTwub9Y/76EiNmfaiJih+hAy6xn7Ns95S4KvI2NuKNOz8TEEKKQUu44xuy0PYMudjM9zdjKRS1bitsUvHTfuUg==" - }, - "emittery": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==" - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "peer": true, - "requires": { - "once": "^1.4.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - }, - "escodegen": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exif-be-gone": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exif-be-gone/-/exif-be-gone-1.2.2.tgz", - "integrity": "sha512-qKZcsFBrNq+IARVrY/tdDH2t+JsXv6R9DpfsuvQjVgYAFVlcWQkSdiULcxZZBhpnLT5gf/97P6tYOjXOEsksJA==", - "requires": { - "@types/stream-buffers": "^3.0.3" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" - }, - "expect": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.2.tgz", - "integrity": "sha512-BjAXIDC6ZOW+WBFNg96J22D27Nq5ohn+oGcuP2rtOtcjuxNoV9McpQ60PcQWhdFOSBIQdR72e+4HdnbZTFSTyg==", - "requires": { - "@jest/types": "^27.4.2", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.4.0", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-regex-util": "^27.4.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - }, - "express": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz", - "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.4.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.9.6", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", - "setprototypeof": "1.2.0", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - } - }, - "express-async-errors": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/express-async-errors/-/express-async-errors-3.1.1.tgz", - "integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==", - "requires": {} - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fast-safe-stringify": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" - }, - "fast-xml-parser": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz", - "integrity": "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==" - }, - "fastestsmallesttextencoderdecoder": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/fastestsmallesttextencoderdecoder/-/fastestsmallesttextencoderdecoder-1.0.22.tgz", - "integrity": "sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==", - "peer": true - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "requires": { - "bser": "2.1.1" - } - }, - "file-type": { - "version": "16.5.4", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz", - "integrity": "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==", - "requires": { - "readable-web-to-node-stream": "^3.0.0", - "strtok3": "^6.2.4", - "token-types": "^4.1.1" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "follow-redirects": { - "version": "1.14.8", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.8.tgz", - "integrity": "sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA==", - "peer": true - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "formidable": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", - "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==" - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-extra": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz", - "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "peer": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "peer": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "gauge": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz", - "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=", - "peer": true, - "requires": { - "ansi": "^0.3.0", - "has-unicode": "^2.0.0", - "lodash.pad": "^4.1.0", - "lodash.padend": "^4.1.0", - "lodash.padstart": "^4.1.0" - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "peer": true - }, - "helmet": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", - "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==" - }, - "help-me": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/help-me/-/help-me-3.0.0.tgz", - "integrity": "sha512-hx73jClhyk910sidBB7ERlnhMlFsJJIBqSVMFDwPN8o2v9nmp5KgLq1Xz1Bf1fCMMZ6mPrX159iG0VLy/fPMtQ==", - "peer": true, - "requires": { - "glob": "^7.1.6", - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "image-size": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.0.0.tgz", - "integrity": "sha512-JLJ6OwBfO1KcA+TvJT+v8gbE6iWbj24LyDNFgFEN0lzegn6cC6a/p3NIDaepMsJjQjlUWqIC7wJv8lBFxPNjcw==", - "requires": { - "queue": "6.0.2" - } - }, - "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "peer": true - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", - "requires": { - "has": "^1.0.3" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "peer": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" - }, - "is-iojs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-iojs/-/is-iojs-1.1.0.tgz", - "integrity": "sha1-TBEDO11dlNbqs3dd7cm+fQCDJfE=", - "peer": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "peer": true, - "requires": {} - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "istanbul-reports": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", - "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.5.tgz", - "integrity": "sha512-uT5MiVN3Jppt314kidCk47MYIRilJjA/l2mxwiuzzxGUeJIvA8/pDaJOAX5KWvjAo7SCydcW0/4WEtgbLMiJkg==", - "requires": { - "@jest/core": "^27.4.5", - "import-local": "^3.0.2", - "jest-cli": "^27.4.5" - } - }, - "jest-changed-files": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz", - "integrity": "sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==", - "requires": { - "@jest/types": "^27.4.2", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.5.tgz", - "integrity": "sha512-eTNWa9wsvBwPykhMMShheafbwyakcdHZaEYh5iRrQ0PFJxkDP/e3U/FvzGuKWu2WpwUA3C3hPlfpuzvOdTVqnw==", - "requires": { - "@jest/environment": "^27.4.4", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.4.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-runtime": "^27.4.5", - "jest-snapshot": "^27.4.5", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - } - }, - "jest-cli": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.5.tgz", - "integrity": "sha512-hrky3DSgE0u7sQxaCL7bdebEPHx5QzYmrGuUjaPLmPE8jx5adtvGuOlRspvMoVLTTDOHRnZDoRLYJuA+VCI7Hg==", - "requires": { - "@jest/core": "^27.4.5", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.4.5", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "prompts": "^2.0.1", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "jest-config": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.5.tgz", - "integrity": "sha512-t+STVJtPt+fpqQ8GBw850NtSQbnDOw/UzdPfzDaHQ48/AylQlW7LHj3dH+ndxhC1UxJ0Q3qkq7IH+nM1skwTwA==", - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.4.5", - "@jest/types": "^27.4.2", - "babel-jest": "^27.4.5", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "jest-circus": "^27.4.5", - "jest-environment-jsdom": "^27.4.4", - "jest-environment-node": "^27.4.4", - "jest-get-type": "^27.4.0", - "jest-jasmine2": "^27.4.5", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.5", - "jest-runner": "^27.4.5", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.2", - "slash": "^3.0.0" - } - }, - "jest-diff": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.2.tgz", - "integrity": "sha512-ujc9ToyUZDh9KcqvQDkk/gkbf6zSaeEg9AiBxtttXW59H/AcqEYp1ciXAtJp+jXWva5nAf/ePtSsgWwE5mqp4Q==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.4.0", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - } - }, - "jest-docblock": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz", - "integrity": "sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==", - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.4.2.tgz", - "integrity": "sha512-53V2MNyW28CTruB3lXaHNk6PkiIFuzdOC9gR3C6j8YE/ACfrPnz+slB0s17AgU1TtxNzLuHyvNlLJ+8QYw9nBg==", - "requires": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2" - } - }, - "jest-environment-jsdom": { - "version": "27.4.4", - "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.4.tgz", - "integrity": "sha512-cYR3ndNfHBqQgFvS1RL7dNqSvD//K56j/q1s2ygNHcfTCAp12zfIromO1w3COmXrxS8hWAh7+CmZmGCIoqGcGA==", - "requires": { - "@jest/environment": "^27.4.4", - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.4.4", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.4.tgz", - "integrity": "sha512-D+v3lbJ2GjQTQR23TK0kY3vFVmSeea05giInI41HHOaJnAwOnmUHTZgUaZL+VxUB43pIzoa7PMwWtCVlIUoVoA==", - "requires": { - "@jest/environment": "^27.4.4", - "@jest/fake-timers": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "jest-mock": "^27.4.2", - "jest-util": "^27.4.2" - } - }, - "jest-get-type": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", - "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==" - }, - "jest-haste-map": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.5.tgz", - "integrity": "sha512-oJm1b5qhhPs78K24EDGifWS0dELYxnoBiDhatT/FThgB9yxqUm5F6li3Pv+Q+apMBmmPNzOBnZ7ZxWMB1Leq1Q==", - "requires": { - "@jest/types": "^27.4.2", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.4.0", - "jest-serializer": "^27.4.0", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.5", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.5.tgz", - "integrity": "sha512-oUnvwhJDj2LhOiUB1kdnJjkx8C5PwgUZQb9urF77mELH9DGR4e2GqpWQKBOYXWs5+uTN9BGDqRz3Aeg5Wts7aw==", - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.4.4", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.4.2", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.4.2", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-runtime": "^27.4.5", - "jest-snapshot": "^27.4.5", - "jest-util": "^27.4.2", - "pretty-format": "^27.4.2", - "throat": "^6.0.1" - } - }, - "jest-leak-detector": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.2.tgz", - "integrity": "sha512-ml0KvFYZllzPBJWDei3mDzUhyp/M4ubKebX++fPaudpe8OsxUE+m+P6ciVLboQsrzOCWDjE20/eXew9QMx/VGw==", - "requires": { - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - } - }, - "jest-matcher-utils": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.2.tgz", - "integrity": "sha512-jyP28er3RRtMv+fmYC/PKG8wvAmfGcSNproVTW2Y0P/OY7/hWUOmsPfxN1jOhM+0u2xU984u2yEagGivz9OBGQ==", - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "pretty-format": "^27.4.2" - } - }, - "jest-message-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.2.tgz", - "integrity": "sha512-OMRqRNd9E0DkBLZpFtZkAGYOXl6ZpoMtQJWTAREJKDOFa0M6ptB7L67tp+cszMBkvSgKOhNtQp2Vbcz3ZZKo/w==", - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.4.2", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.4.2", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.2.tgz", - "integrity": "sha512-PDDPuyhoukk20JrQKeofK12hqtSka7mWH0QQuxSNgrdiPsrnYYLS6wbzu/HDlxZRzji5ylLRULeuI/vmZZDrYA==", - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "requires": {} - }, - "jest-regex-util": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz", - "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==" - }, - "jest-resolve": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.5.tgz", - "integrity": "sha512-xU3z1BuOz/hUhVUL+918KqUgK+skqOuUsAi7A+iwoUldK6/+PW+utK8l8cxIWT9AW7IAhGNXjSAh1UYmjULZZw==", - "requires": { - "@jest/types": "^27.4.2", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.5", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.5.tgz", - "integrity": "sha512-elEVvkvRK51y037NshtEkEnukMBWvlPzZHiL847OrIljJ8yIsujD2GXRPqDXC4rEVKbcdsy7W0FxoZb4WmEs7w==", - "requires": { - "@jest/types": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-snapshot": "^27.4.5" - } - }, - "jest-runner": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.5.tgz", - "integrity": "sha512-/irauncTfmY1WkTaRQGRWcyQLzK1g98GYG/8QvIPviHgO1Fqz1JYeEIsSfF+9mc/UTA6S+IIHFgKyvUrtiBIZg==", - "requires": { - "@jest/console": "^27.4.2", - "@jest/environment": "^27.4.4", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.5", - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.4.0", - "jest-environment-jsdom": "^27.4.4", - "jest-environment-node": "^27.4.4", - "jest-haste-map": "^27.4.5", - "jest-leak-detector": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.5", - "jest-runtime": "^27.4.5", - "jest-util": "^27.4.2", - "jest-worker": "^27.4.5", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - } - }, - "jest-runtime": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.5.tgz", - "integrity": "sha512-CIYqwuJQXHQtPd/idgrx4zgJ6iCb6uBjQq1RSAGQrw2S8XifDmoM1Ot8NRd80ooAm+ZNdHVwsktIMGlA1F1FAQ==", - "requires": { - "@jest/console": "^27.4.2", - "@jest/environment": "^27.4.4", - "@jest/globals": "^27.4.4", - "@jest/source-map": "^27.4.0", - "@jest/test-result": "^27.4.2", - "@jest/transform": "^27.4.5", - "@jest/types": "^27.4.2", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.4.5", - "jest-message-util": "^27.4.2", - "jest-mock": "^27.4.2", - "jest-regex-util": "^27.4.0", - "jest-resolve": "^27.4.5", - "jest-snapshot": "^27.4.5", - "jest-util": "^27.4.2", - "jest-validate": "^27.4.2", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.2.0" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "jest-serializer": { - "version": "27.4.0", - "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz", - "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==", - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.5.tgz", - "integrity": "sha512-eCi/iM1YJFrJWiT9de4+RpWWWBqsHiYxFG9V9o/n0WXs6GpW4lUt4FAHAgFPTLPqCUVzrMQmSmTZSgQzwqR7IQ==", - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.4.5", - "@jest/types": "^27.4.2", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.4.2", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.4.2", - "jest-get-type": "^27.4.0", - "jest-haste-map": "^27.4.5", - "jest-matcher-utils": "^27.4.2", - "jest-message-util": "^27.4.2", - "jest-resolve": "^27.4.5", - "jest-util": "^27.4.2", - "natural-compare": "^1.4.0", - "pretty-format": "^27.4.2", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-util": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz", - "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==", - "requires": { - "@jest/types": "^27.4.2", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.4", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.2.tgz", - "integrity": "sha512-hWYsSUej+Fs8ZhOm5vhWzwSLmVaPAxRy+Mr+z5MzeaHm9AxUpXdoVMEW4R86y5gOobVfBsMFLk4Rb+QkiEpx1A==", - "requires": { - "@jest/types": "^27.4.2", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.4.0", - "leven": "^3.1.0", - "pretty-format": "^27.4.2" - }, - "dependencies": { - "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==" - } - } - }, - "jest-watcher": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.2.tgz", - "integrity": "sha512-NJvMVyyBeXfDezhWzUOCOYZrUmkSCiatpjpm+nFUid74OZEHk6aMLrZAukIiFDwdbqp6mTM6Ui1w4oc+8EobQg==", - "requires": { - "@jest/test-result": "^27.4.2", - "@jest/types": "^27.4.2", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.4.2", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz", - "integrity": "sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==", - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsdom": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "kareem": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.2.tgz", - "integrity": "sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==" - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" - }, - "lambert-db": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lambert-db/-/lambert-db-1.2.4.tgz", - "integrity": "sha512-E++xLrMIBW+yuaTpTV7icdCPvt9nMauVJk9S3bRLgce1c0olLFoPrvVbxdqkVbpwKxMU8Wolr/gsgsXIB+o7Wg==", - "requires": { - "missing-native-js-functions": "^1.2.7", - "mongodb": "^3.6.2", - "mongoose": "^5.11.8", - "rethinkdb-ts": "^2.4.5" - } - }, - "lambert-server": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/lambert-server/-/lambert-server-1.2.12.tgz", - "integrity": "sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw==", - "requires": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "peer": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "peer": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.pad": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz", - "integrity": "sha1-QzCUmoM6fI2iLMIPaibE1Z3runA=", - "peer": true - }, - "lodash.padend": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz", - "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=", - "peer": true - }, - "lodash.padstart": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", - "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=", - "peer": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - } - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "requires": { - "tmpl": "1.0.5" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "optional": true - }, - "memory-stream": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/memory-stream/-/memory-stream-0.0.3.tgz", - "integrity": "sha1-6+jdHDuLw4wOeUHp3dWuvmtN6D8=", - "peer": true, - "requires": { - "readable-stream": "~1.0.26-2" - }, - "dependencies": { - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "peer": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "peer": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "peer": true - } - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", - "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" - }, - "mime-types": { - "version": "2.1.34", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", - "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", - "requires": { - "mime-db": "1.51.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "peer": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "peer": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "missing-native-js-functions": { - "version": "1.2.18", - "resolved": "https://registry.npmjs.org/missing-native-js-functions/-/missing-native-js-functions-1.2.18.tgz", - "integrity": "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg==" - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "mongodb": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz", - "integrity": "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==", - "requires": { - "bl": "^2.2.1", - "bson": "^1.1.4", - "denque": "^1.4.1", - "optional-require": "^1.1.8", - "safe-buffer": "^5.1.2", - "saslprep": "^1.0.0" - } - }, - "mongoose": { - "version": "5.13.13", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.13.13.tgz", - "integrity": "sha512-M55tpCr/p5i6vdJ54nm4MG6/7SKV4JqlWnqbx6yCRuAuW05CZ7u+gNuHVPQVF9dZ59ALXjOtPEUl+OXklAa7ng==", - "requires": { - "@types/bson": "1.x || 4.0.x", - "@types/mongodb": "^3.5.27", - "bson": "^1.1.4", - "kareem": "2.3.2", - "mongodb": "3.7.3", - "mongoose-legacy-pluralize": "1.0.2", - "mpath": "0.8.4", - "mquery": "3.2.5", - "ms": "2.1.2", - "optional-require": "1.0.x", - "regexp-clone": "1.0.0", - "safe-buffer": "5.2.1", - "sift": "13.5.2", - "sliced": "1.0.1" - }, - "dependencies": { - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "optional-require": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.0.3.tgz", - "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==" - } - } - }, - "mongoose-legacy-pluralize": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz", - "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ==", - "requires": {} - }, - "mpath": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.8.4.tgz", - "integrity": "sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==" - }, - "mqtt": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/mqtt/-/mqtt-4.2.8.tgz", - "integrity": "sha512-DJYjlXODVXtSDecN8jnNzi6ItX3+ufGsEs9OB3YV24HtkRrh7kpx8L5M1LuyF0KzaiGtWr2PzDcMGAY60KGOSA==", - "peer": true, - "requires": { - "commist": "^1.0.0", - "concat-stream": "^2.0.0", - "debug": "^4.1.1", - "duplexify": "^4.1.1", - "help-me": "^3.0.0", - "inherits": "^2.0.3", - "minimist": "^1.2.5", - "mqtt-packet": "^6.8.0", - "pump": "^3.0.0", - "readable-stream": "^3.6.0", - "reinterval": "^1.1.0", - "split2": "^3.1.0", - "ws": "^7.5.0", - "xtend": "^4.0.2" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "duplexify": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz", - "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==", - "peer": true, - "requires": { - "end-of-stream": "^1.4.1", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1", - "stream-shift": "^1.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "mqtt-packet": { - "version": "6.10.0", - "resolved": "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.10.0.tgz", - "integrity": "sha512-ja8+mFKIHdB1Tpl6vac+sktqy3gA8t9Mduom1BA75cI+R9AHnZOiaBQwpGiWnaVJLDGRdNhQmFaAqd7tkKSMGA==", - "peer": true, - "requires": { - "bl": "^4.0.2", - "debug": "^4.1.1", - "process-nextick-args": "^2.0.1" - }, - "dependencies": { - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "peer": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "peer": true - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "mquery": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.5.tgz", - "integrity": "sha512-VjOKHHgU84wij7IUoZzFRU07IAxd5kWJaDmyUzQlbjHjyoeK5TNeeo8ZsFDtTYnSgpW6n/nMNIHvE3u8Lbrf4A==", - "requires": { - "bluebird": "3.5.1", - "debug": "3.1.0", - "regexp-clone": "^1.0.0", - "safe-buffer": "5.1.2", - "sliced": "1.0.1" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "requires": { - "ms": "2.0.0" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multer": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz", - "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==", - "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "dependencies": { - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - } - } - }, - "nanocolors": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/nanocolors/-/nanocolors-0.2.13.tgz", - "integrity": "sha512-0n3mSAQLPpGLV9ORXT5+C/D4mwew7Ebws69Hx4E2sgz2ZA5+32Q80B9tL8PbL7XHnRDiAxH/pnrUJ9a4fkTNTA==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - }, - "dependencies": { - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - } - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" - }, - "node-releases": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz", - "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==" - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz", - "integrity": "sha1-KOe+YZYJtT960d0wChDWTXFiaLY=", - "peer": true, - "requires": { - "ansi": "~0.3.0", - "are-we-there-yet": "~1.0.0", - "gauge": "~1.2.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "peer": true - }, - "nwsapi": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optional-require": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz", - "integrity": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==", - "requires": { - "require-at": "^1.0.6" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "peer": true, - "requires": { - "lcid": "^1.0.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "peek-readable": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.0.2.tgz", - "integrity": "sha512-9fMaz6zoxw9ypO1KZy5RDJgSupEtu0Q+g/OqqsVHX3rKGR8qehRLYzsFARZ4bVvdvfknKiXvuDbkMnO1g6cRpQ==" - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" - }, - "pirates": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.4.tgz", - "integrity": "sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==" - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "requires": { - "find-up": "^4.0.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "pretty-format": { - "version": "27.4.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.2.tgz", - "integrity": "sha512-p0wNtJ9oLuvgOQDEIZ9zQjZffK7KtyR6Si0jnXULIDwrlNF8Cuir3AZP0hHv0jmKuNN/edOnbMjnzd4uTcmWiw==", - "requires": { - "@jest/types": "^27.4.2", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "peer": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" - }, - "queue": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", - "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", - "requires": { - "inherits": "~2.0.3" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz", - "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==", - "requires": { - "bytes": "3.1.1", - "http-errors": "1.8.1", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "peer": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "readable-web-to-node-stream": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz", - "integrity": "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==", - "requires": { - "readable-stream": "^3.6.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "regexp-clone": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz", - "integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==" - }, - "reinterval": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz", - "integrity": "sha1-M2Hs+jymwYKDOA3Qu5VG85D17Oc=", - "peer": true - }, - "require-at": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz", - "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" - }, - "rethinkdb-ts": { - "version": "2.4.18", - "resolved": "https://registry.npmjs.org/rethinkdb-ts/-/rethinkdb-ts-2.4.18.tgz", - "integrity": "sha512-7PvElU5xHbwz0U6GfF6CizfNsONItd0DuOXfnulS9YbRkBkZGeEHBqIvRKMzSkUVeBH0brbVTxt4M8MqQRzvhw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "optional": true, - "requires": { - "sparse-bitfield": "^3.0.3" - } - }, - "saxes": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "requires": { - "xmlchars": "^2.2.0" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "peer": true - }, - "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "1.8.1", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.2" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "peer": true - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "shelljs": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "sift": { - "version": "13.5.2", - "resolved": "https://registry.npmjs.org/sift/-/sift-13.5.2.tgz", - "integrity": "sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==" - }, - "signal-exit": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz", - "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ==" - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" - }, - "sliced": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", - "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", - "optional": true, - "requires": { - "memory-pager": "^1.0.2" - } - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "peer": true, - "requires": { - "readable-stream": "^3.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "splitargs": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/splitargs/-/splitargs-0.0.7.tgz", - "integrity": "sha1-/p965lc3GzOxDLgNoUPPgknPazs=", - "peer": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "peer": true - }, - "streamsearch": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "peer": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "peer": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "peer": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "peer": true - }, - "strtok3": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-6.2.4.tgz", - "integrity": "sha512-GO8IcFF9GmFDvqduIspUBwCzCbqzegyVKIsSymcMgiZKeCfrN9SowtUoi8+b59WZMAjIzVZic/Ft97+pynR3Iw==", - "requires": { - "@tokenizer/token": "^0.3.0", - "peek-readable": "^4.0.1" - } - }, - "superagent": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz", - "integrity": "sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==", - "requires": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.2", - "debug": "^4.1.1", - "fast-safe-stringify": "^2.0.7", - "form-data": "^3.0.0", - "formidable": "^1.2.2", - "methods": "^1.1.2", - "mime": "^2.4.6", - "qs": "^6.9.4", - "readable-stream": "^3.6.0", - "semver": "^7.3.2" - }, - "dependencies": { - "debug": { - "version": "4.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", - "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", - "requires": { - "ms": "2.1.2" - } - }, - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "supertest": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.1.6.tgz", - "integrity": "sha512-0hACYGNJ8OHRg8CRITeZOdbjur7NLuNs0mBjVhdpxi7hP6t3QIbOzLON5RTUmZcy2I9riuII3+Pr2C7yztrIIg==", - "requires": { - "methods": "^1.1.2", - "superagent": "^6.1.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "peer": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "peer": true - } - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "throat": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.1.tgz", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==" - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "token-types": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/token-types/-/token-types-4.1.1.tgz", - "integrity": "sha512-hD+QyuUAyI2spzsI0B7gf/jJ2ggR4RjkAo37j3StuePhApJUwcWDjnHDOFdIWYSwNR28H14hpwm4EI+V1Ted1w==", - "requires": { - "@tokenizer/token": "^0.3.0", - "ieee754": "^1.2.1" - } - }, - "tough-cookie": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "dependencies": { - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - } - } - }, - "tr46": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "requires": { - "punycode": "^2.1.1" - } - }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "peer": true - }, - "ts-patch": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-1.4.5.tgz", - "integrity": "sha512-8H1lIhT8uNm2TH+fk8FR1DWSyNIZ4E46aCXrUY+6mgzwiOnrqfHwb3sFGX23NR+s/vthyRxxsIZykqfGJVLvsg==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "glob": "^7.1.7", - "global-prefix": "^3.0.0", - "minimist": "^1.2.5", - "resolve": "^1.20.0", - "shelljs": "^0.8.4", - "strip-ansi": "^6.0.0" - } - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==" - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "unzipper": { - "version": "0.8.14", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.8.14.tgz", - "integrity": "sha512-8rFtE7EP5ssOwGpN2dt1Q4njl0N1hUXJ7sSPz0leU2hRdq6+pra57z4YPBlVqm40vcgv6ooKZEAx48fMTv9x4w==", - "peer": true, - "requires": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "~1.0.10", - "listenercount": "~1.0.1", - "readable-stream": "~2.1.5", - "setimmediate": "~1.0.4" - }, - "dependencies": { - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "peer": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "peer": true - }, - "readable-stream": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz", - "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=", - "peer": true, - "requires": { - "buffer-shims": "^1.0.0", - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "peer": true - } - } - }, - "url-join": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz", - "integrity": "sha1-HbSK1CLTQCRpqH99l73r/k+x48g=", - "peer": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-to-istanbul": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.0.tgz", - "integrity": "sha512-/PRhfd8aTNp9Ggr62HPzXg2XasNFGy5PBt0Rp04du7/8GNNSgxFL6WBTkgMKSL9bFjH+8kKEG3f37FmxiTqUUA==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==" - } - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "w3c-hr-time": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "requires": { - "makeerror": "1.0.12" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" - }, - "whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" - }, - "whatwg-url": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - }, - "window-size": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", - "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", - "peer": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "peer": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "peer": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "peer": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz", - "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==", - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" - }, - "xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", - "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==", - "peer": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yargs": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", - "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", - "peer": true, - "requires": { - "camelcase": "^2.0.1", - "cliui": "^3.0.3", - "decamelize": "^1.1.1", - "os-locale": "^1.4.0", - "string-width": "^1.0.1", - "window-size": "^0.1.4", - "y18n": "^3.2.0" - }, - "dependencies": { - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "peer": true - } - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - } - } -} diff --git a/cdn/package.json b/cdn/package.json deleted file mode 100644 index 22d6c8c2..00000000 --- a/cdn/package.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "name": "@fosscord/cdn", - "version": "1.0.0", - "description": "cdn for fosscord", - "main": "dist/index.js", - "types": "src/index.ts", - "scripts": { - "test": "npm run build && npx jest --coverage ./tests", - "build": "npx tsc -p .", - "start": "node dist/start.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fosscord/fosscord-server.git" - }, - "keywords": [], - "author": "Fosscord", - "license": "AGPL-3.0-only", - "bugs": { - "url": "https://github.com/fosscord/fosscord-server/issues" - }, - "homepage": "https://github.com/fosscord/fosscord-server#readme", - "devDependencies": { - "@types/body-parser": "^1.19.0", - "@types/dotenv": "^8.2.0", - "@types/express": "^4.17.12", - "@types/multer": "^1.4.7", - "@types/node": "^18.6.3" - }, - "dependencies": { - "@aws-sdk/client-s3": "^3.137.0", - "@fosscord/util": "file:../util", - "@types/node-fetch": "^2.6.2", - "body-parser": "^1.19.0", - "dotenv": "^16.0.1", - "exif-be-gone": "^1.3.0", - "express": "^4.17.1", - "file-type": "16.5", - "image-size": "^1.0.0", - "jest": "^28.1.3", - "lambert-server": "^1.2.12", - "multer": "^1.4.5-lts.1", - "node-fetch": "^2.6.7", - "picocolors": "^1.0.0", - "supertest": "^6.1.6", - "typescript": "^4.1.2" - }, - "jest": { - "setupFilesAfterEnv": [ - "/jest/setup.js" - ], - "verbose": true - } -} diff --git a/cdn/src/Server.ts b/cdn/src/Server.ts deleted file mode 100644 index b27d3321..00000000 --- a/cdn/src/Server.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Server, ServerOptions } from "lambert-server"; -import { Config, getOrInitialiseDatabase, registerRoutes } from "@fosscord/util"; -import path from "path"; -import avatarsRoute from "./routes/avatars"; -import iconsRoute from "./routes/role-icons"; -import bodyParser from "body-parser"; - -export interface CDNServerOptions extends ServerOptions {} - -export class CDNServer extends Server { - public declare options: CDNServerOptions; - - constructor(options?: Partial) { - super(options); - } - - async start() { - await getOrInitialiseDatabase(); - await Config.init(); - this.app.use((req, res, next) => { - res.set("Access-Control-Allow-Origin", "*"); - // TODO: use better CSP policy - res.set( - "Content-security-policy", - "default-src * data: blob: filesystem: about: ws: wss: 'unsafe-inline' 'unsafe-eval'; script-src * data: blob: 'unsafe-inline' 'unsafe-eval'; connect-src * data: blob: 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src * data: blob: ; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';" - ); - res.set( - "Access-Control-Allow-Headers", - req.header("Access-Control-Request-Headers") || "*" - ); - res.set( - "Access-Control-Allow-Methods", - req.header("Access-Control-Request-Methods") || "*" - ); - next(); - }); - this.app.use(bodyParser.json({ inflate: true, limit: "10mb" })); - - await registerRoutes(this, path.join(__dirname, "routes/")); - - this.app.use("/icons/", avatarsRoute); - this.log("verbose", "[Server] Route /icons registered"); - - this.app.use("/role-icons/", iconsRoute); - this.log("verbose", "[Server] Route /role-icons registered"); - - this.app.use("/emojis/", avatarsRoute); - this.log("verbose", "[Server] Route /emojis registered"); - - this.app.use("/stickers/", avatarsRoute); - this.log("verbose", "[Server] Route /stickers registered"); - - this.app.use("/banners/", avatarsRoute); - this.log("verbose", "[Server] Route /banners registered"); - - this.app.use("/splashes/", avatarsRoute); - this.log("verbose", "[Server] Route /splashes registered"); - - this.app.use("/app-icons/", avatarsRoute); - this.log("verbose", "[Server] Route /app-icons registered"); - - this.app.use("/app-assets/", avatarsRoute); - this.log("verbose", "[Server] Route /app-assets registered"); - - this.app.use("/discover-splashes/", avatarsRoute); - this.log("verbose", "[Server] Route /discover-splashes registered"); - - this.app.use("/team-icons/", avatarsRoute); - this.log("verbose", "[Server] Route /team-icons registered"); - - this.app.use("/channel-icons/", avatarsRoute); - this.log("verbose", "[Server] Route /channel-icons registered"); - - return super.start(); - } - - async stop() { - return super.stop(); - } -} diff --git a/cdn/src/index.ts b/cdn/src/index.ts deleted file mode 100644 index a24300d6..00000000 --- a/cdn/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./Server"; -export * from "./util/FileStorage"; -export * from "./util/Storage"; -export * from "./util/multer"; diff --git a/cdn/src/routes/attachments.ts b/cdn/src/routes/attachments.ts deleted file mode 100644 index 723a6c03..00000000 --- a/cdn/src/routes/attachments.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { Router, Response, Request } from "express"; -import { Config, Snowflake } from "@fosscord/util"; -import { storage } from "../util/Storage"; -import FileType from "file-type"; -import { HTTPError } from "@fosscord/util"; -import { multer } from "../util/multer"; -import imageSize from "image-size"; - -const router = Router(); - -const SANITIZED_CONTENT_TYPE = [ - "text/html", - "text/mhtml", - "multipart/related", - "application/xhtml+xml", -]; - -router.post( - "/:channel_id", - multer.single("file"), - async (req: Request, res: Response) => { - if (req.headers.signature !== Config.get().security.requestSignature) - throw new HTTPError("Invalid request signature"); - if (!req.file) throw new HTTPError("file missing"); - - const { buffer, mimetype, size, originalname, fieldname } = req.file; - const { channel_id } = req.params; - const filename = originalname - .replaceAll(" ", "_") - .replace(/[^a-zA-Z0-9._]+/g, ""); - const id = Snowflake.generate(); - const path = `attachments/${channel_id}/${id}/${filename}`; - - const endpoint = - Config.get()?.cdn.endpointPublic || "http://localhost:3003"; - - await storage.set(path, buffer); - let width; - let height; - if (mimetype.includes("image")) { - const dimensions = imageSize(buffer); - if (dimensions) { - width = dimensions.width; - height = dimensions.height; - } - } - - const file = { - id, - content_type: mimetype, - filename: filename, - size, - url: `${endpoint}/${path}`, - width, - height, - }; - - return res.json(file); - } -); - -router.get( - "/:channel_id/:id/:filename", - async (req: Request, res: Response) => { - const { channel_id, id, filename } = req.params; - - const file = await storage.get( - `attachments/${channel_id}/${id}/${filename}` - ); - if (!file) throw new HTTPError("File not found"); - const type = await FileType.fromBuffer(file); - let content_type = type?.mime || "application/octet-stream"; - - if (SANITIZED_CONTENT_TYPE.includes(content_type)) { - content_type = "application/octet-stream"; - } - - res.set("Content-Type", content_type); - res.set("Cache-Control", "public, max-age=31536000"); - - return res.send(file); - } -); - -router.delete( - "/:channel_id/:id/:filename", - async (req: Request, res: Response) => { - if (req.headers.signature !== Config.get().security.requestSignature) - throw new HTTPError("Invalid request signature"); - - const { channel_id, id, filename } = req.params; - const path = `attachments/${channel_id}/${id}/${filename}`; - - await storage.delete(path); - - return res.send({ success: true }); - } -); - -export default router; diff --git a/cdn/src/routes/avatars.ts b/cdn/src/routes/avatars.ts deleted file mode 100644 index 40705b2e..00000000 --- a/cdn/src/routes/avatars.ts +++ /dev/null @@ -1,102 +0,0 @@ -import { Router, Response, Request } from "express"; -import { Config, Snowflake } from "@fosscord/util"; -import { storage } from "../util/Storage"; -import FileType from "file-type"; -import { HTTPError } from "@fosscord/util"; -import crypto from "crypto"; -import { multer } from "../util/multer"; - -// TODO: check premium and animated pfp are allowed in the config -// TODO: generate different sizes of icon -// TODO: generate different image types of icon -// TODO: delete old icons - -const ANIMATED_MIME_TYPES = ["image/apng", "image/gif", "image/gifv"]; -const STATIC_MIME_TYPES = [ - "image/png", - "image/jpeg", - "image/webp", - "image/svg+xml", - "image/svg", -]; -const ALLOWED_MIME_TYPES = [...ANIMATED_MIME_TYPES, ...STATIC_MIME_TYPES]; - -const router = Router(); - -router.post( - "/:user_id", - multer.single("file"), - async (req: Request, res: Response) => { - if (req.headers.signature !== Config.get().security.requestSignature) - throw new HTTPError("Invalid request signature"); - if (!req.file) throw new HTTPError("Missing file"); - const { buffer, mimetype, size, originalname, fieldname } = req.file; - const { user_id } = req.params; - - let hash = crypto - .createHash("md5") - .update(Snowflake.generate()) - .digest("hex"); - - const type = await FileType.fromBuffer(buffer); - if (!type || !ALLOWED_MIME_TYPES.includes(type.mime)) - throw new HTTPError("Invalid file type"); - if (ANIMATED_MIME_TYPES.includes(type.mime)) hash = `a_${hash}`; // animated icons have a_ infront of the hash - - const path = `avatars/${user_id}/${hash}`; - const endpoint = - Config.get().cdn.endpointPublic || "http://localhost:3003"; - - await storage.set(path, buffer); - - return res.json({ - id: hash, - content_type: type.mime, - size, - url: `${endpoint}${req.baseUrl}/${user_id}/${hash}`, - }); - } -); - -router.get("/:user_id", async (req: Request, res: Response) => { - let { user_id } = req.params; - user_id = user_id.split(".")[0]; // remove .file extension - const path = `avatars/${user_id}`; - - const file = await storage.get(path); - if (!file) throw new HTTPError("not found", 404); - const type = await FileType.fromBuffer(file); - - res.set("Content-Type", type?.mime); - res.set("Cache-Control", "public, max-age=31536000"); - - return res.send(file); -}); - -router.get("/:user_id/:hash", async (req: Request, res: Response) => { - let { user_id, hash } = req.params; - hash = hash.split(".")[0]; // remove .file extension - const path = `avatars/${user_id}/${hash}`; - - const file = await storage.get(path); - if (!file) throw new HTTPError("not found", 404); - const type = await FileType.fromBuffer(file); - - res.set("Content-Type", type?.mime); - res.set("Cache-Control", "public, max-age=31536000"); - - return res.send(file); -}); - -router.delete("/:user_id/:id", async (req: Request, res: Response) => { - if (req.headers.signature !== Config.get().security.requestSignature) - throw new HTTPError("Invalid request signature"); - const { user_id, id } = req.params; - const path = `avatars/${user_id}/${id}`; - - await storage.delete(path); - - return res.send({ success: true }); -}); - -export default router; diff --git a/cdn/src/routes/external.ts b/cdn/src/routes/external.ts deleted file mode 100644 index c9441fc2..00000000 --- a/cdn/src/routes/external.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Router, Response, Request } from "express"; -import fetch from "node-fetch"; -import { HTTPError } from "@fosscord/util"; -import { Snowflake, Config } from "@fosscord/util"; -import { storage } from "../util/Storage"; -import FileType from "file-type"; - -// TODO: somehow handle the deletion of images posted to the /external route - -const router = Router(); -const DEFAULT_FETCH_OPTIONS: any = { - redirect: "follow", - follow: 1, - headers: { - "user-agent": - "Mozilla/5.0 (compatible Fosscordbot/0.1; +https://fosscord.com)", - }, - size: 1024 * 1024 * 8, - compress: true, - method: "GET", -}; - -router.post("/", async (req: Request, res: Response) => { - if (req.headers.signature !== Config.get().security.requestSignature) - throw new HTTPError("Invalid request signature"); - - if (!req.body) throw new HTTPError("Invalid Body"); - - const { url } = req.body; - if (!url || typeof url !== "string") throw new HTTPError("Invalid url"); - - const id = Snowflake.generate(); - - try { - const response = await fetch(url, DEFAULT_FETCH_OPTIONS); - const buffer = await response.buffer(); - - await storage.set(`/external/${id}`, buffer); - - res.send({ id }); - } catch (error) { - throw new HTTPError("Couldn't fetch website"); - } -}); - -router.get("/:id", async (req: Request, res: Response) => { - const { id } = req.params; - - const file = await storage.get(`/external/${id}`); - if (!file) throw new HTTPError("File not found"); - const result = await FileType.fromBuffer(file); - - res.set("Content-Type", result?.mime); - - return res.send(file); -}); - -export default router; diff --git a/cdn/src/routes/ping.ts b/cdn/src/routes/ping.ts deleted file mode 100644 index 38daf81e..00000000 --- a/cdn/src/routes/ping.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Router, Response, Request } from "express"; - -const router = Router(); - -router.get("/", (req: Request, res: Response) => { - res.send("pong"); -}); - -export default router; diff --git a/cdn/src/routes/role-icons.ts b/cdn/src/routes/role-icons.ts deleted file mode 100644 index 2e5c42dd..00000000 --- a/cdn/src/routes/role-icons.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { Router, Response, Request } from "express"; -import { Config, Snowflake } from "@fosscord/util"; -import { storage } from "../util/Storage"; -import FileType from "file-type"; -import { HTTPError } from "@fosscord/util"; -import crypto from "crypto"; -import { multer } from "../util/multer"; - -//Role icons ---> avatars.ts modified - -// TODO: check user rights and perks and animated pfp are allowed in the policies -// TODO: generate different sizes of icon -// TODO: generate different image types of icon - -const STATIC_MIME_TYPES = [ - "image/png", - "image/jpeg", - "image/webp", - "image/svg+xml", - "image/svg", -]; -const ALLOWED_MIME_TYPES = [...STATIC_MIME_TYPES]; - -const router = Router(); - -router.post( - "/:role_id", - multer.single("file"), - async (req: Request, res: Response) => { - if (req.headers.signature !== Config.get().security.requestSignature) - throw new HTTPError("Invalid request signature"); - if (!req.file) throw new HTTPError("Missing file"); - const { buffer, mimetype, size, originalname, fieldname } = req.file; - const { role_id } = req.params; - - let hash = crypto - .createHash("md5") - .update(Snowflake.generate()) - .digest("hex"); - - const type = await FileType.fromBuffer(buffer); - if (!type || !ALLOWED_MIME_TYPES.includes(type.mime)) - throw new HTTPError("Invalid file type"); - - const path = `role-icons/${role_id}/${hash}.png`; - const endpoint = - Config.get().cdn.endpointPublic || "http://localhost:3003"; - - await storage.set(path, buffer); - - return res.json({ - id: hash, - content_type: type.mime, - size, - url: `${endpoint}${req.baseUrl}/${role_id}/${hash}`, - }); - } -); - -router.get("/:role_id", async (req: Request, res: Response) => { - let { role_id } = req.params; - //role_id = role_id.split(".")[0]; // remove .file extension - const path = `role-icons/${role_id}`; - - const file = await storage.get(path); - if (!file) throw new HTTPError("not found", 404); - const type = await FileType.fromBuffer(file); - - res.set("Content-Type", type?.mime); - res.set("Cache-Control", "public, max-age=31536000, must-revalidate"); - - return res.send(file); -}); - -router.get("/:role_id/:hash", async (req: Request, res: Response) => { - let { role_id, hash } = req.params; - //hash = hash.split(".")[0]; // remove .file extension - const path = `role-icons/${role_id}/${hash}`; - - const file = await storage.get(path); - if (!file) throw new HTTPError("not found", 404); - const type = await FileType.fromBuffer(file); - - res.set("Content-Type", type?.mime); - res.set("Cache-Control", "public, max-age=31536000, must-revalidate"); - - return res.send(file); -}); - -router.delete("/:role_id/:id", async (req: Request, res: Response) => { - if (req.headers.signature !== Config.get().security.requestSignature) - throw new HTTPError("Invalid request signature"); - const { role_id, id } = req.params; - const path = `role-icons/${role_id}/${id}`; - - await storage.delete(path); - - return res.send({ success: true }); -}); - -export default router; diff --git a/cdn/src/start.ts b/cdn/src/start.ts deleted file mode 100644 index 71681b40..00000000 --- a/cdn/src/start.ts +++ /dev/null @@ -1,13 +0,0 @@ -import dotenv from "dotenv"; -dotenv.config(); - -import { CDNServer } from "./Server"; -const server = new CDNServer({ port: Number(process.env.PORT) || 3003 }); -server - .start() - .then(() => { - console.log("[Server] started on :" + server.options.port); - }) - .catch((e) => console.error("[Server] Error starting: ", e)); - -module.exports = server; diff --git a/cdn/src/util/FileStorage.ts b/cdn/src/util/FileStorage.ts deleted file mode 100644 index aee9d345..00000000 --- a/cdn/src/util/FileStorage.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Storage } from "./Storage"; -import fs from "fs"; -import { join, relative, dirname } from "path"; -import { Readable } from "stream"; -//import ExifTransformer = require("exif-be-gone"); -import ExifTransformer from "exif-be-gone"; - -// TODO: split stored files into separate folders named after cloned route - -function getPath(path: string) { - // STORAGE_LOCATION has a default value in start.ts - const root = process.env.STORAGE_LOCATION || "../"; - let filename = join(root, path); - - if (path.indexOf("\0") !== -1 || !filename.startsWith(root)) - throw new Error("invalid path"); - return filename; -} - -export class FileStorage implements Storage { - async get(path: string): Promise { - path = getPath(path); - try { - return fs.readFileSync(path); - } catch (error) { - try { - const files = fs.readdirSync(path); - if (!files.length) return null; - return fs.readFileSync(join(path, files[0])); - } catch (error) { - return null; - } - } - } - - async set(path: string, value: any) { - path = getPath(path); - //fse.ensureDirSync(dirname(path)); - fs.mkdirSync(dirname(path), {recursive: true}); - - value = Readable.from(value); - const cleaned_file = fs.createWriteStream(path); - - return value.pipe(new ExifTransformer()).pipe(cleaned_file); - } - - async delete(path: string) { - //TODO we should delete the parent directory if empty - fs.unlinkSync(getPath(path)); - } -} diff --git a/cdn/src/util/S3Storage.ts b/cdn/src/util/S3Storage.ts deleted file mode 100644 index c4066817..00000000 --- a/cdn/src/util/S3Storage.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { S3 } from "@aws-sdk/client-s3"; -import { Readable } from "stream"; -import { Storage } from "./Storage"; - -const readableToBuffer = (readable: Readable): Promise => - new Promise((resolve, reject) => { - const chunks: Buffer[] = []; - readable.on("data", (chunk) => chunks.push(chunk)); - readable.on("error", reject); - readable.on("end", () => resolve(Buffer.concat(chunks))); - }); - -export class S3Storage implements Storage { - public constructor( - private client: S3, - private bucket: string, - private basePath?: string - ) {} - - /** - * Always return a string, to ensure consistency. - */ - get bucketBasePath() { - return this.basePath ?? ""; - } - - async set(path: string, data: Buffer): Promise { - await this.client.putObject({ - Bucket: this.bucket, - Key: `${this.bucketBasePath}${path}`, - Body: data, - }); - } - - async get(path: string): Promise { - try { - const s3Object = await this.client.getObject({ - Bucket: this.bucket, - Key: `${this.bucketBasePath ?? ""}${path}`, - }); - - if (!s3Object.Body) return null; - - const body = s3Object.Body; - - return await readableToBuffer(body); - } catch (err) { - console.error(`[CDN] Unable to get S3 object at path ${path}.`); - console.error(err); - return null; - } - } - - async delete(path: string): Promise { - await this.client.deleteObject({ - Bucket: this.bucket, - Key: `${this.bucketBasePath}${path}`, - }); - } -} diff --git a/cdn/src/util/Storage.ts b/cdn/src/util/Storage.ts deleted file mode 100644 index 728804a0..00000000 --- a/cdn/src/util/Storage.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { FileStorage } from "./FileStorage"; -import path from "path"; -//import fse from "fs-extra"; -import fs from "fs"; -import { bgCyan, black } from "picocolors"; -import { S3 } from "@aws-sdk/client-s3"; -import { S3Storage } from "./S3Storage"; -process.cwd(); - -export interface Storage { - set(path: string, data: Buffer): Promise; - get(path: string): Promise; - delete(path: string): Promise; -} - -let storage: Storage; - -if (process.env.STORAGE_PROVIDER === "file" || !process.env.STORAGE_PROVIDER) { - let location = process.env.STORAGE_LOCATION; - if (location) { - location = path.resolve(location); - } else { - location = path.join(process.cwd(), "files"); - } - console.log(`[CDN] storage location: ${bgCyan(`${black(location)}`)}`); - //fse.ensureDirSync(location); - fs.mkdirSync(location, {recursive: true}); - process.env.STORAGE_LOCATION = location; - - storage = new FileStorage(); -} else if (process.env.STORAGE_PROVIDER === "s3") { - const region = process.env.STORAGE_REGION, - bucket = process.env.STORAGE_BUCKET; - - if (!region) { - console.error( - `[CDN] You must provide a region when using the S3 storage provider.` - ); - process.exit(1); - } - - if (!bucket) { - console.error( - `[CDN] You must provide a bucket when using the S3 storage provider.` - ); - process.exit(1); - } - - // in the S3 provider, this should be the root path in the bucket - let location = process.env.STORAGE_LOCATION; - - if (!location) { - console.warn( - `[CDN] STORAGE_LOCATION unconfigured for S3 provider, defaulting to the bucket root...` - ); - location = undefined; - } - - const client = new S3({ region }); - - storage = new S3Storage(client, bucket, location); -} - -export { storage }; diff --git a/cdn/src/util/index.ts b/cdn/src/util/index.ts deleted file mode 100644 index 07a5c31a..00000000 --- a/cdn/src/util/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./FileStorage"; -export * from "./multer"; -export * from "./Storage"; diff --git a/cdn/src/util/multer.ts b/cdn/src/util/multer.ts deleted file mode 100644 index bfdf6aff..00000000 --- a/cdn/src/util/multer.ts +++ /dev/null @@ -1,10 +0,0 @@ -import multerConfig from "multer"; - -export const multer = multerConfig({ - storage: multerConfig.memoryStorage(), - limits: { - fields: 10, - files: 10, - fileSize: 1024 * 1024 * 100, // 100 mb - }, -}); diff --git a/cdn/tests/antman.jpg b/cdn/tests/antman.jpg deleted file mode 100644 index 56af9063..00000000 Binary files a/cdn/tests/antman.jpg and /dev/null differ diff --git a/cdn/tests/cdn_endpoints.test.js b/cdn/tests/cdn_endpoints.test.js deleted file mode 100644 index 5a543e54..00000000 --- a/cdn/tests/cdn_endpoints.test.js +++ /dev/null @@ -1,238 +0,0 @@ -const dotenv = require("dotenv"); -const path = require("path"); -const fs = require("fs"); -dotenv.config(); - -// TODO: write unittest to check if FileStorage.ts is working -// TODO: write unitest to check if env vars are defined - -if (!process.env.STORAGE_PROVIDER) process.env.STORAGE_PROVIDER = "file"; -// TODO:nodejs path.join trailing slash windows compatible -if (process.env.STORAGE_PROVIDER === "file") { - if (process.env.STORAGE_LOCATION) { - if (!process.env.STORAGE_LOCATION.startsWith("/")) { - process.env.STORAGE_LOCATION = path.join( - __dirname, - "..", - process.env.STORAGE_LOCATION, - "/" - ); - } - } else { - process.env.STORAGE_LOCATION = path.join(__dirname, "..", "files", "/"); - } - if(!fs.existsSync(process.env.STORAGE_LOCATION)) fs.mkdirSync(process.env.STORAGE_LOCATION, {recursive:true}); -} -const { CDNServer } = require("../dist/Server"); -const { Config } = require("@fosscord/util"); -const supertest = require("supertest"); -const request = supertest("http://localhost:3003"); -const server = new CDNServer({ port: Number(process.env.PORT) || 3003 }); - -beforeAll(async () => { - await server.start(); - return server; -}); - -afterAll(() => { - return server.stop(); -}); - -describe("/ping", () => { - describe("GET", () => { - describe("without signature specified", () => { - test("route should respond with 200", async () => { - let response = await request.get("/ping"); - expect(response.text).toBe("pong"); - }); - }); - }); -}); - -describe("/attachments", () => { - describe("POST", () => { - describe("without signature specified", () => { - test("route should respond with 400", async () => { - const response = await request.post("/attachments/123456789"); - expect(response.statusCode).toBe(400); - }); - }); - describe("with signature specified, without file specified", () => { - test("route should respond with 400", async () => { - const response = await request - .post("/attachments/123456789") - .set({ signature: Config.get().security.requestSignature }); - expect(response.statusCode).toBe(400); - }); - }); - describe("with signature specified, with file specified ", () => { - test("route should respond with Content-type: application/json, 200 and res.body.url", async () => { - const response = await request - .post("/attachments/123456789") - .set({ signature: Config.get().security.requestSignature }) - .attach("file", __dirname + "/antman.jpg"); - expect(response.statusCode).toBe(200); - expect(response.headers["content-type"]).toEqual( - expect.stringContaining("json") - ); - expect(response.body.url).toBeDefined(); - }); - }); - }); - describe("GET", () => { - describe("getting uploaded image by url returned by POST /attachments", () => { - test("route should respond with 200", async () => { - let response = await request - .post("/attachments/123456789") - .set({ signature: Config.get().security.requestSignature }) - .attach("file", __dirname + "/antman.jpg"); - request - .get(response.body.url.replace("http://localhost:3003", "")) - .then((x) => { - expect(x.statusCode).toBe(200); - }); - }); - }); - }); - describe("DELETE", () => { - describe("deleting uploaded image by url returned by POST /attachments", () => { - test("route should respond with res.body.success", async () => { - let response = await request - .post("/attachments/123456789") - .set({ signature: Config.get().security.requestSignature }) - .attach("file", __dirname + "/antman.jpg"); - request - .delete( - response.body.url.replace("http://localhost:3003", "") - ) - .then((x) => { - expect(x.body.success).toBeDefined(); - }); - }); - }); - }); -}); - -describe("/avatars", () => { - describe("POST", () => { - describe("without signature specified", () => { - test("route should respond with 400", async () => { - const response = await request.post("/avatars/123456789"); - expect(response.statusCode).toBe(400); - }); - }); - describe("with signature specified, without file specified", () => { - test("route should respond with 400", async () => { - const response = await request - .post("/avatars/123456789") - .set({ signature: Config.get().security.requestSignature }); - expect(response.statusCode).toBe(400); - }); - }); - describe("with signature specified, with file specified ", () => { - test("route should respond with Content-type: application/json, 200 and res.body.url", async () => { - const response = await request - .post("/avatars/123456789") - .set({ signature: Config.get().security.requestSignature }) - .attach("file", __dirname + "/antman.jpg"); - expect(response.statusCode).toBe(200); - expect(response.headers["content-type"]).toEqual( - expect.stringContaining("json") - ); - expect(response.body.url).toBeDefined(); - }); - }); - }); - describe("GET", () => { - describe("getting uploaded image by url returned by POST /avatars", () => { - test("route should respond with 200", async () => { - let response = await request - .post("/avatars/123456789") - .set({ signature: Config.get().security.requestSignature }) - .attach("file", __dirname + "/antman.jpg"); - request - .get(response.body.url.replace("http://localhost:3003", "")) - .then((x) => { - expect(x.statusCode).toBe(200); - }); - }); - }); - }); - describe("DELETE", () => { - describe("deleting uploaded image by url returned by POST /avatars", () => { - test("route should respond with res.body.success", async () => { - let response = await request - .post("/avatars/123456789") - .set({ signature: Config.get().security.requestSignature }) - .attach("file", __dirname + "/antman.jpg"); - request - .delete( - response.body.url.replace("http://localhost:3003", "") - ) - .then((x) => { - expect(x.body.success).toBeDefined(); - }); - }); - }); - }); -}); - -describe("/external", () => { - describe("POST", () => { - describe("without signature specified", () => { - test("route should respond with 400", async () => { - const response = await request.post("/external"); - expect(response.statusCode).toBe(400); - }); - }); - describe("with signature specified, without file specified", () => { - test("route should respond with 400", async () => { - const response = await request - .post("/external") - .set({ signature: Config.get().security.requestSignature }); - expect(response.statusCode).toBe(400); - }); - }); - describe("with signature specified, with file specified ", () => { - test("route should respond with Content-type: application/json, 200 and res.body.url", async () => { - const response = await request - .post("/external") - .set({ signature: Config.get().security.requestSignature }) - .send({ - url: "https://i.ytimg.com/vi_webp/TiXzhQr5AUc/mqdefault.webp", - }); - expect(response.statusCode).toBe(200); - expect(response.headers["content-type"]).toEqual( - expect.stringContaining("json") - ); - expect(response.body.id).toBeDefined(); - }); - }); - describe("with signature specified, with falsy url specified ", () => { - test("route should respond with 400", async () => { - const response = await request - .post("/external") - .set({ signature: Config.get().security.requestSignature }) - .send({ - url: "notavalidurl.123", - }); - expect(response.statusCode).toBe(400); - }); - }); - }); - describe("GET", () => { - describe("getting uploaded image by url returned by POST /avatars", () => { - test("route should respond with 200", async () => { - let response = await request - .post("/external") - .set({ signature: Config.get().security.requestSignature }) - .send({ - url: "https://i.ytimg.com/vi_webp/TiXzhQr5AUc/mqdefault.webp", - }); - request.get(`external/${response.body.id}`).then((x) => { - expect(x.statusCode).toBe(200); - }); - }); - }); - }); -}); diff --git a/cdn/tests/filestorage.test.js b/cdn/tests/filestorage.test.js deleted file mode 100644 index 78036602..00000000 --- a/cdn/tests/filestorage.test.js +++ /dev/null @@ -1,27 +0,0 @@ -const path = require("path"); -process.env.STORAGE_LOCATION = path.join(__dirname, "..", "files", "/"); - -const { FileStorage } = require("../dist/util/FileStorage"); -const storage = new FileStorage(); -const fs = require("fs"); - -const file = fs.readFileSync(path.join(__dirname, "antman.jpg")); - -describe("FileStorage", () => { - describe("saving a file", () => { - test("saving a buffer", async () => { - await storage.set("test_saving_file", file); - }); - }); - describe("getting a file", () => { - test("getting buffer with given name", async () => { - const buffer2 = await storage.get("test_saving_file"); - expect(Buffer.compare(file, buffer2)).toBeTruthy(); - }); - }); - describe("deleting a file", () => { - test("deleting buffer with given name", async () => { - await storage.delete("test_saving_file"); - }); - }); -}); diff --git a/cdn/tsconfig.json b/cdn/tsconfig.json deleted file mode 100644 index 85b35f55..00000000 --- a/cdn/tsconfig.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "include": ["src/**/*.ts"], - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Basic Options */ - "incremental": false /* Enable incremental compilation */, - "target": "ES6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - "lib": [ - "ES2021", - "dom" - ] /* Specify library files to be included in the compilation. */, - "allowJs": true /* Allow javascript files to be compiled. */, - "checkJs": true /* Report errors in .js files. */, - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - "declaration": true /* Generates corresponding '.d.ts' file. */, - "declarationMap": false /* Generates a sourcemap for each corresponding '.d.ts' file. */, - "inlineSourceMap": true /* Emit a single file with source maps instead of having a separate file. */, - "sourceMap": true /* Generates corresponding '.map' file. */, - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./dist/" /* Redirect output structure to the directory. */, - "rootDir": "./src/" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true /* Enable all strict type-checking options. */, - "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, - // "strictNullChecks": true, /* Enable strict null checks. */ - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */, - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - - /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - "types": [ - "node" - ] /* Type declaration files to be included in compilation. */, - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "skipLibCheck": true /* Skip type checking of declaration files. */, - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, - "baseUrl": ".", - "paths": { - "@fosscord/cdn": ["src/index"], - "@fosscord/cdn/*": ["src/*"] - }, - "plugins": [{ "transform": "@ovos-media/ts-transform-paths" }] - } -} diff --git a/dashboard/README.md b/dashboard/README.md deleted file mode 100644 index df1157a1..00000000 --- a/dashboard/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Fosscord-dashboard - -A admin dashboard for fosscord-server - -## (planned) Features - -- [ ] Overview usage (registered users, concurrent connections, voice usage, reports) -- [ ] Reports -- [ ] Member managment (edit (disable, delete, premium, username, discriminator)) -- [ ] Configuration ([Config.ts](https://github.com/fosscord/fosscord-server-util/blob/master/src/util/Config.ts)) - -port = 3005 diff --git a/dashboard/package-lock.json b/dashboard/package-lock.json deleted file mode 100644 index 4d56041e..00000000 --- a/dashboard/package-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "dashboard", - "lockfileVersion": 2, - "requires": true, - "packages": {} -} diff --git a/dashboard/package.json b/dashboard/package.json deleted file mode 100644 index 87bc1699..00000000 --- a/dashboard/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@fosscord/dashboard", - "version": "1.0.0", - "description": "Dashboard for Fosscord", - "main": "dist/index.js", - "types": "src/index.ts", - "scripts": { - "test": "npm run build && npx jest --coverage ./tests", - "build": "npx tsc -p .", - "start": "node dist/start.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fosscord/fosscord-server.git" - }, - "keywords": [], - "author": "Fosscord", - "license": "AGPL-3.0-only", - "bugs": { - "url": "https://github.com/fosscord/fosscord-server/issues" - }, - "homepage": "https://github.com/fosscord/fosscord-server#readme" -} diff --git a/dashboard/src/index.ts b/dashboard/src/index.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/gateway/.env.example b/gateway/.env.example deleted file mode 100644 index 0224de64..00000000 --- a/gateway/.env.example +++ /dev/null @@ -1,4 +0,0 @@ -MONGO_URL=mongodb://localhost/fosscord -PORT=3002 -PRODUCTION=TRUE -THREADS=# automatically use all available cores, only available if production = true \ No newline at end of file diff --git a/gateway/.gitignore b/gateway/.gitignore deleted file mode 100644 index daf8591a..00000000 --- a/gateway/.gitignore +++ /dev/null @@ -1,107 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env -.env.test - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# Next.js build output -.next - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and *not* Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port -.DS_Store - -data \ No newline at end of file diff --git a/gateway/.swcrc b/gateway/.swcrc deleted file mode 100644 index e8cbb8a1..00000000 --- a/gateway/.swcrc +++ /dev/null @@ -1,16 +0,0 @@ -{ - "module": { - "type": "commonjs" - }, - "jsc": { - "parser": { - "syntax": "typescript", - "decorators": true - }, - "target": "es5", - "baseUrl": ".", - "paths": { - "@fosscord/gateway": ["src/index"] - } - } -} diff --git a/gateway/.vscode/launch.json b/gateway/.vscode/launch.json deleted file mode 100644 index 29bdde13..00000000 --- a/gateway/.vscode/launch.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "sourceMaps": true, - "type": "node", - "request": "launch", - "name": "Launch Server", - "program": "${workspaceFolder}/dist/start.js", - "preLaunchTask": "tsc: build - tsconfig.json", - "outFiles": ["${workspaceFolder}/dist/**/*.js"] - } - ] -} diff --git a/gateway/Dockerfile b/gateway/Dockerfile deleted file mode 100644 index e07b7d8f..00000000 --- a/gateway/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM node:lts-alpine -WORKDIR /usr/src/fosscord-gateway -COPY package.json . -COPY package-lock.json . -RUN apk --no-cache --virtual build-dependencies add \ - python \ - make \ - g++ -RUN npm install -RUN apk del build-dependencies -COPY . . -RUN npm run build -EXPOSE 3002 -CMD ["node", "dist/start.js"] diff --git a/gateway/README.md b/gateway/README.md deleted file mode 100644 index 959d0d5b..00000000 --- a/gateway/README.md +++ /dev/null @@ -1,42 +0,0 @@ -

- -

-

Fosscord WebSocket Gateway Server

- -

- - - - -

- -## [About](https://github.com/fosscord/fosscord-gateway/wiki) - -Fosscord is **f**ree **o**pen **s**ource **s**oftware compatible to dis**cord**. It is a selfhostable Chat, Voice and Video platform similar to Slack, Rocket.chat and Discord-compatible. - -- Discord-compatible -- Selfhostable -- Open Source -- Configurable -- Secure -- Decentralized -- Extendable -- Themeable - -logo by [@nwlandas](https://twitter.com/nwlandas) - -## Installation - -_it is in development and not yet finished_ - -## Support - -https://discord.gg/ZrnGQP6p3d - -if we are finished we'll host our own support server. - -## Contribute - -This project is only possible by volunteers like you and me, your contribution is very much appreciated 🥺. - -If you want to make this project reality and and you would like to contribute then [read the wiki](https://github.com/fosscord/fosscord-gateway/wiki) first. diff --git a/gateway/package-lock.json b/gateway/package-lock.json deleted file mode 100644 index cbad96dc..00000000 --- a/gateway/package-lock.json +++ /dev/null @@ -1,17853 +0,0 @@ -{ - "name": "@fosscord/gateway", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fosscord/gateway", - "version": "1.0.0", - "hasInstallScript": true, - "license": "GPLV3", - "dependencies": { - "@fosscord/util": "file:../util", - "amqplib": "^0.8.0", - "dotenv": "^8.2.0", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.11", - "missing-native-js-functions": "^1.2.18", - "node-fetch": "^2.6.2", - "proxy-agent": "^5.0.0", - "typeorm": "^0.2.37", - "ws": "^7.4.2" - }, - "devDependencies": { - "@types/amqplib": "^0.8.1", - "@types/jsonwebtoken": "^8.5.0", - "@types/node": "^14.17.9", - "@types/node-fetch": "^2.5.12", - "@types/ws": "^7.4.0", - "@ovos-media/ts-transform-paths": "^1.7.18-1", - "ts-node-dev": "^1.1.6", - "ts-patch": "^1.4.4", - "typescript": "^4.2.3" - }, - "optionalDependencies": { - "@yukikaze-bot/erlpack": "^1.0.1" - } - }, - "../util": { - "name": "@fosscord/util", - "version": "1.0.0", - "hasInstallScript": true, - "license": "GPLV3", - "dependencies": { - "amqplib": "^0.8.0", - "form-data": "^4.0.0", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "multer": "^1.4.3", - "node-fetch": "^2.6.2", - "patch-package": "^6.4.7", - "pg": "^8.7.1", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "typeorm": "^0.2.38", - "typescript": "^4.4.2", - "typescript-json-schema": "^0.50.1" - }, - "devDependencies": { - "@types/amqplib": "^0.8.1", - "@types/jsonwebtoken": "^8.5.0", - "@types/multer": "^1.4.7", - "@types/node": "^14.17.9", - "@types/node-fetch": "^2.5.12", - "jest": "^27.0.6", - "ts-node": "^10.2.1" - } - }, - "../util/node_modules/@babel/code-frame": { - "version": "7.14.5", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/compat-data": { - "version": "7.15.0", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/core": { - "version": "7.15.5", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "../util/node_modules/@babel/core/node_modules/debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "../util/node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/@babel/generator": { - "version": "7.15.4", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/@babel/helper-compilation-targets": { - "version": "7.15.4", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "../util/node_modules/@babel/helper-function-name": { - "version": "7.15.4", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-get-function-arity": { - "version": "7.15.4", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-hoist-variables": { - "version": "7.15.4", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-module-imports": { - "version": "7.15.4", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-module-transforms": { - "version": "7.15.7", - "integrity": "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-plugin-utils": { - "version": "7.14.5", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-replace-supers": { - "version": "7.15.4", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-simple-access": { - "version": "7.15.4", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-split-export-declaration": { - "version": "7.15.4", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-validator-identifier": { - "version": "7.15.7", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helper-validator-option": { - "version": "7.14.5", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/helpers": { - "version": "7.15.4", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/highlight": { - "version": "7.14.5", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "../util/node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "../util/node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/@babel/parser": { - "version": "7.15.7", - "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "../util/node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "../util/node_modules/@babel/template": { - "version": "7.15.4", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/traverse": { - "version": "7.15.4", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "../util/node_modules/@babel/types": { - "version": "7.15.6", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "../util/node_modules/@cspotcode/source-map-consumer": { - "version": "0.8.0", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "../util/node_modules/@cspotcode/source-map-support": { - "version": "0.6.1", - "integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-consumer": "0.8.0" - }, - "engines": { - "node": ">=12" - } - }, - "../util/node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/@jest/console": { - "version": "27.2.0", - "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/core": { - "version": "27.2.0", - "integrity": "sha512-E/2NHhq+VMo18DpKkoty8Sjey8Kps5Cqa88A8NP757s6JjYqPdioMuyUBhDiIOGCdQByEp0ou3jskkTszMS0nw==", - "dev": true, - "dependencies": { - "@jest/console": "^27.2.0", - "@jest/reporters": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.1.1", - "jest-config": "^27.2.0", - "jest-haste-map": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-resolve-dependencies": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "jest-watcher": "^27.2.0", - "micromatch": "^4.0.4", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "../util/node_modules/@jest/core/node_modules/jest-config": { - "version": "27.2.0", - "integrity": "sha512-Z1romHpxeNwLxQtouQ4xt07bY6HSFGKTo0xJcvOK3u6uJHveA4LB2P+ty9ArBLpTh3AqqPxsyw9l9GMnWBYS9A==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.0", - "@jest/types": "^27.1.1", - "babel-jest": "^27.2.0", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.2.0", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "../util/node_modules/@jest/environment": { - "version": "27.2.0", - "integrity": "sha512-iPWmQI0wRIYSZX3wKu4FXHK4eIqkfq6n1DCDJS+v3uby7SOXrHvX4eiTBuEdSvtDRMTIH2kjrSkjHf/F9JIYyQ==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/fake-timers": { - "version": "27.2.0", - "integrity": "sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@sinonjs/fake-timers": "^7.0.2", - "@types/node": "*", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/globals": { - "version": "27.2.0", - "integrity": "sha512-raqk9Gf9WC3hlBa57rmRmJfRl9hom2b+qEE/ifheMtwn5USH5VZxzrHHOZg0Zsd/qC2WJ8UtyTwHKQAnNlDMdg==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.2.0", - "@jest/types": "^27.1.1", - "expect": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/reporters": { - "version": "27.2.0", - "integrity": "sha512-7wfkE3iRTLaT0F51h1mnxH3nQVwDCdbfgXiLuCcNkF1FnxXLH9utHqkSLIiwOTV1AtmiE0YagHbOvx4rnMP/GA==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "../util/node_modules/@jest/source-map": { - "version": "27.0.6", - "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/test-result": { - "version": "27.2.0", - "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", - "dev": true, - "dependencies": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/test-sequencer": { - "version": "27.2.0", - "integrity": "sha512-PrqarcpzOU1KSAK7aPwfL8nnpaqTMwPe7JBPnaOYRDSe/C6AoJiL5Kbnonqf1+DregxZIRAoDg69R9/DXMGqXA==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.2.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-runtime": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/transform": { - "version": "27.2.0", - "integrity": "sha512-Q8Q/8xXIZYllk1AF7Ou5sV3egOZsdY/Wlv09CSbcexBRcC1Qt6lVZ7jRFAZtbHsEEzvOCyFEC4PcrwKwyjXtCg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.1.1", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.2.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@jest/types": { - "version": "27.1.1", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/@sinonjs/commons": { - "version": "1.8.3", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "../util/node_modules/@sinonjs/fake-timers": { - "version": "7.1.2", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "../util/node_modules/@sqltools/formatter": { - "version": "1.2.3", - "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" - }, - "../util/node_modules/@tootallnate/once": { - "version": "1.1.2", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/@tsconfig/node10": { - "version": "1.0.8", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "../util/node_modules/@tsconfig/node12": { - "version": "1.0.9", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true - }, - "../util/node_modules/@tsconfig/node14": { - "version": "1.0.1", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true - }, - "../util/node_modules/@tsconfig/node16": { - "version": "1.0.2", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true - }, - "../util/node_modules/@types/amqplib": { - "version": "0.8.2", - "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==", - "dev": true, - "dependencies": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "../util/node_modules/@types/babel__core": { - "version": "7.1.16", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "../util/node_modules/@types/babel__generator": { - "version": "7.6.3", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "../util/node_modules/@types/babel__template": { - "version": "7.4.1", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "../util/node_modules/@types/babel__traverse": { - "version": "7.14.2", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "../util/node_modules/@types/bluebird": { - "version": "3.5.36", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "../util/node_modules/@types/body-parser": { - "version": "1.19.1", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "../util/node_modules/@types/connect": { - "version": "3.4.35", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "../util/node_modules/@types/express": { - "version": "4.17.13", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "../util/node_modules/@types/express-serve-static-core": { - "version": "4.17.24", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "../util/node_modules/@types/graceful-fs": { - "version": "4.1.5", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "../util/node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.3", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "../util/node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "../util/node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "../util/node_modules/@types/json-schema": { - "version": "7.0.9", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - }, - "../util/node_modules/@types/jsonwebtoken": { - "version": "8.5.5", - "integrity": "sha512-OGqtHQ7N5/Ap/TUwO6IgHDuLiAoTmHhGpNvgkCm/F4N6pKzx/RBSfr2OXZSwC6vkfnsEdb6+7DNZVtiXiwdwFw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "../util/node_modules/@types/mime": { - "version": "1.3.2", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "../util/node_modules/@types/multer": { - "version": "1.4.7", - "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "../util/node_modules/@types/node": { - "version": "14.17.17", - "integrity": "sha512-niAjcewgEYvSPCZm3OaM9y6YQrL2SEPH9PymtE6fuZAvFiP6ereCcvApGl2jKTq7copTIguX3PBvfP08LN4LvQ==" - }, - "../util/node_modules/@types/node-fetch": { - "version": "2.5.12", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "../util/node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/@types/prettier": { - "version": "2.3.2", - "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", - "dev": true - }, - "../util/node_modules/@types/qs": { - "version": "6.9.7", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "../util/node_modules/@types/range-parser": { - "version": "1.2.4", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "../util/node_modules/@types/serve-static": { - "version": "1.13.10", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "../util/node_modules/@types/stack-utils": { - "version": "2.0.1", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "../util/node_modules/@types/yargs": { - "version": "16.0.4", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "../util/node_modules/@types/yargs-parser": { - "version": "20.2.1", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "../util/node_modules/@types/zen-observable": { - "version": "0.8.3", - "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" - }, - "../util/node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" - }, - "../util/node_modules/abab": { - "version": "2.0.5", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "../util/node_modules/abbrev": { - "version": "1.1.1", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true, - "peer": true - }, - "../util/node_modules/accepts": { - "version": "1.3.7", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/acorn": { - "version": "8.5.0", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "../util/node_modules/acorn-globals": { - "version": "6.0.0", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "dependencies": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - } - }, - "../util/node_modules/acorn-globals/node_modules/acorn": { - "version": "7.4.1", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "../util/node_modules/acorn-walk": { - "version": "7.2.0", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "../util/node_modules/agent-base": { - "version": "6.0.2", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "../util/node_modules/agent-base/node_modules/debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "../util/node_modules/ajv": { - "version": "6.12.6", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "optional": true, - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "../util/node_modules/amqplib": { - "version": "0.8.0", - "integrity": "sha512-icU+a4kkq4Y1PS4NNi+YPDMwdlbFcZ1EZTQT2nigW3fvOb6AOgUQ9+Mk4ue0Zu5cBg/XpDzB40oH10ysrk2dmA==", - "dependencies": { - "bitsyntax": "~0.1.0", - "bluebird": "^3.7.2", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "safe-buffer": "~5.2.1", - "url-parse": "~1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/ansi-escapes": { - "version": "4.3.2", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/ansi-regex": { - "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/ansi-styles": { - "version": "4.3.0", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "../util/node_modules/any-promise": { - "version": "1.3.0", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "../util/node_modules/anymatch": { - "version": "3.1.2", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/app-root-path": { - "version": "3.0.0", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", - "engines": { - "node": ">= 6.0.0" - } - }, - "../util/node_modules/append-field": { - "version": "1.0.0", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" - }, - "../util/node_modules/aproba": { - "version": "1.2.0", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true, - "peer": true - }, - "../util/node_modules/are-we-there-yet": { - "version": "1.1.7", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "peer": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "../util/node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true, - "peer": true - }, - "../util/node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "../util/node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true, - "peer": true - }, - "../util/node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "../util/node_modules/arg": { - "version": "4.1.3", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "../util/node_modules/argparse": { - "version": "1.0.10", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "../util/node_modules/array-flatten": { - "version": "1.1.1", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "../util/node_modules/asn1": { - "version": "0.2.4", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "../util/node_modules/assert-plus": { - "version": "1.0.0", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.8" - } - }, - "../util/node_modules/asynckit": { - "version": "0.4.0", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "devOptional": true - }, - "../util/node_modules/aws-sign2": { - "version": "0.7.0", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "../util/node_modules/aws4": { - "version": "1.11.0", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "optional": true, - "peer": true - }, - "../util/node_modules/babel-jest": { - "version": "27.2.0", - "integrity": "sha512-bS2p+KGGVVmWXBa8+i6SO/xzpiz2Q/2LnqLbQknPKefWXVZ67YIjA4iXup/jMOEZplga9PpWn+wrdb3UdDwRaA==", - "dev": true, - "dependencies": { - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.2.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "../util/node_modules/babel-plugin-istanbul": { - "version": "6.0.0", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/babel-plugin-jest-hoist": { - "version": "27.2.0", - "integrity": "sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "../util/node_modules/babel-preset-jest": { - "version": "27.2.0", - "integrity": "sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^27.2.0", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "../util/node_modules/balanced-match": { - "version": "1.0.2", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "../util/node_modules/base64-js": { - "version": "1.5.1", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "../util/node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "optional": true, - "peer": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "../util/node_modules/better-sqlite3": { - "version": "7.4.3", - "integrity": "sha512-07bKjClZg/f4KMVRkzWtoIvazVPcF1gsvVKVIXlxwleC2DxuIhnra3KCMlUT1rFeRYXXckot2a46UciF2d9KLw==", - "hasInstallScript": true, - "optional": true, - "peer": true, - "dependencies": { - "bindings": "^1.5.0", - "prebuild-install": "^6.0.1", - "tar": "^6.1.0" - } - }, - "../util/node_modules/better-sqlite3/node_modules/chownr": { - "version": "2.0.0", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/better-sqlite3/node_modules/fs-minipass": { - "version": "2.1.0", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/better-sqlite3/node_modules/minipass": { - "version": "3.1.5", - "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/better-sqlite3/node_modules/minizlib": { - "version": "2.1.2", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/better-sqlite3/node_modules/mkdirp": { - "version": "1.0.4", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/better-sqlite3/node_modules/tar": { - "version": "6.1.11", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "optional": true, - "peer": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "../util/node_modules/bindings": { - "version": "1.5.0", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "peer": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "../util/node_modules/bitsyntax": { - "version": "0.1.0", - "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==", - "dependencies": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "../util/node_modules/bitsyntax/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "../util/node_modules/bl": { - "version": "4.1.0", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "optional": true, - "peer": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "../util/node_modules/bl/node_modules/readable-stream": { - "version": "3.6.0", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/bl/node_modules/string_decoder": { - "version": "1.3.0", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "../util/node_modules/block-stream": { - "version": "0.0.9", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "optional": true, - "peer": true, - "dependencies": { - "inherits": "~2.0.0" - }, - "engines": { - "node": "0.4 || >=0.5.8" - } - }, - "../util/node_modules/bluebird": { - "version": "3.7.2", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "../util/node_modules/body-parser": { - "version": "1.19.0", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/brace-expansion": { - "version": "1.1.11", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "../util/node_modules/braces": { - "version": "3.0.2", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/browser-process-hrtime": { - "version": "1.0.0", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "../util/node_modules/browserslist": { - "version": "4.17.0", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", - "escalade": "^3.1.1", - "node-releases": "^1.1.75" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "../util/node_modules/bser": { - "version": "2.1.1", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "../util/node_modules/buffer": { - "version": "5.7.1", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "peer": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "../util/node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "../util/node_modules/buffer-from": { - "version": "1.1.2", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "../util/node_modules/buffer-more-ints": { - "version": "1.0.0", - "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" - }, - "../util/node_modules/buffer-writer": { - "version": "2.0.0", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/busboy": { - "version": "0.2.14", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "dependencies": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/bytes": { - "version": "3.1.0", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/callsites": { - "version": "3.1.0", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/camelcase": { - "version": "5.3.1", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/caniuse-lite": { - "version": "1.0.30001258", - "integrity": "sha512-RBByOG6xWXUp0CR2/WU2amXz3stjKpSl5J1xU49F1n2OxD//uBZO4wCKUiG+QMGf7CHGfDDcqoKriomoGVxTeA==", - "dev": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - } - }, - "../util/node_modules/caseless": { - "version": "0.12.0", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "optional": true, - "peer": true - }, - "../util/node_modules/chalk": { - "version": "4.1.2", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "../util/node_modules/char-regex": { - "version": "1.0.2", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/chownr": { - "version": "1.1.4", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true, - "peer": true - }, - "../util/node_modules/ci-info": { - "version": "3.2.0", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "../util/node_modules/cjs-module-lexer": { - "version": "1.2.2", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "../util/node_modules/cli-highlight": { - "version": "2.1.11", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "../util/node_modules/cli-highlight/node_modules/parse5": { - "version": "5.1.1", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "../util/node_modules/cliui": { - "version": "7.0.4", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "../util/node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/cliui/node_modules/string-width": { - "version": "4.2.2", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/co": { - "version": "4.6.0", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "../util/node_modules/code-point-at": { - "version": "1.1.0", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/collect-v8-coverage": { - "version": "1.0.1", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "../util/node_modules/color-convert": { - "version": "2.0.1", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "../util/node_modules/color-name": { - "version": "1.1.4", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "../util/node_modules/colorette": { - "version": "1.4.0", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "../util/node_modules/combined-stream": { - "version": "1.0.8", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "devOptional": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/concat-map": { - "version": "0.0.1", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "../util/node_modules/concat-stream": { - "version": "1.6.2", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "../util/node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "../util/node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "../util/node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "../util/node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "../util/node_modules/console-control-strings": { - "version": "1.1.0", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true, - "peer": true - }, - "../util/node_modules/content-disposition": { - "version": "0.5.3", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "../util/node_modules/content-type": { - "version": "1.0.4", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/convert-source-map": { - "version": "1.8.0", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "../util/node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "../util/node_modules/cookie": { - "version": "0.4.0", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/cookie-signature": { - "version": "1.0.6", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "../util/node_modules/core-util-is": { - "version": "1.0.3", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "../util/node_modules/create-require": { - "version": "1.1.1", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "../util/node_modules/cross-spawn": { - "version": "7.0.3", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/cssom": { - "version": "0.4.4", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "../util/node_modules/cssstyle": { - "version": "2.3.0", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, - "../util/node_modules/dashdash": { - "version": "1.14.1", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "../util/node_modules/data-urls": { - "version": "2.0.0", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/debug": { - "version": "2.6.9", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "../util/node_modules/decimal.js": { - "version": "10.3.1", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "../util/node_modules/decompress-response": { - "version": "4.2.1", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "optional": true, - "peer": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/dedent": { - "version": "0.7.0", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "../util/node_modules/deep-extend": { - "version": "0.6.0", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=4.0.0" - } - }, - "../util/node_modules/deep-is": { - "version": "0.1.4", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "../util/node_modules/deepmerge": { - "version": "4.2.2", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/delayed-stream": { - "version": "1.0.0", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "devOptional": true, - "engines": { - "node": ">=0.4.0" - } - }, - "../util/node_modules/delegates": { - "version": "1.0.0", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true, - "peer": true - }, - "../util/node_modules/depd": { - "version": "1.1.2", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/destroy": { - "version": "1.0.4", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "../util/node_modules/detect-libc": { - "version": "1.0.3", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true, - "peer": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "../util/node_modules/detect-newline": { - "version": "3.1.0", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/dicer": { - "version": "0.2.5", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "dependencies": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/diff": { - "version": "4.0.2", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "engines": { - "node": ">=0.3.1" - } - }, - "../util/node_modules/diff-sequences": { - "version": "27.0.6", - "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/domexception": { - "version": "2.0.1", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "dependencies": { - "webidl-conversions": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/domexception/node_modules/webidl-conversions": { - "version": "5.0.0", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/dotenv": { - "version": "8.6.0", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/ecc-jsbn": { - "version": "0.1.2", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "optional": true, - "peer": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "../util/node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "../util/node_modules/ee-first": { - "version": "1.1.1", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "../util/node_modules/electron-to-chromium": { - "version": "1.3.843", - "integrity": "sha512-OWEwAbzaVd1Lk9MohVw8LxMXFlnYd9oYTYxfX8KS++kLLjDfbovLOcEEXwRhG612dqGQ6+44SZvim0GXuBRiKg==", - "dev": true - }, - "../util/node_modules/emittery": { - "version": "0.8.1", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "../util/node_modules/emoji-regex": { - "version": "8.0.0", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "../util/node_modules/encodeurl": { - "version": "1.0.2", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/end-of-stream": { - "version": "1.4.4", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "optional": true, - "peer": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "../util/node_modules/escalade": { - "version": "3.1.1", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/escape-html": { - "version": "1.0.3", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "../util/node_modules/escape-string-regexp": { - "version": "2.0.0", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/escodegen": { - "version": "2.0.0", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "../util/node_modules/esprima": { - "version": "4.0.1", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/estraverse": { - "version": "5.2.0", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "../util/node_modules/esutils": { - "version": "2.0.3", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/etag": { - "version": "1.8.1", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/execa": { - "version": "5.1.1", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "../util/node_modules/exit": { - "version": "0.1.2", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/expand-template": { - "version": "2.0.3", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/expect": { - "version": "27.2.0", - "integrity": "sha512-oOTbawMQv7AK1FZURbPTgGSzmhxkjFzoARSvDjOMnOpeWuYQx1tP6rXu9MIX5mrACmyCAM7fSNP8IJO2f1p0CQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-regex-util": "^27.0.6" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/expect/node_modules/ansi-styles": { - "version": "5.2.0", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "../util/node_modules/express": { - "version": "4.17.1", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "../util/node_modules/express-async-errors": { - "version": "3.1.1", - "integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==", - "peerDependencies": { - "express": "^4.16.2" - } - }, - "../util/node_modules/express/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "../util/node_modules/extend": { - "version": "3.0.2", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "optional": true, - "peer": true - }, - "../util/node_modules/extsprintf": { - "version": "1.3.0", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "engines": [ - "node >=0.6.0" - ], - "optional": true, - "peer": true - }, - "../util/node_modules/fast-deep-equal": { - "version": "3.1.3", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "optional": true, - "peer": true - }, - "../util/node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "devOptional": true - }, - "../util/node_modules/fast-levenshtein": { - "version": "2.0.6", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "../util/node_modules/fb-watchman": { - "version": "2.0.1", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "../util/node_modules/figlet": { - "version": "1.5.2", - "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "../util/node_modules/file-uri-to-path": { - "version": "1.0.0", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true, - "peer": true - }, - "../util/node_modules/fill-range": { - "version": "7.0.1", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/finalhandler": { - "version": "1.1.2", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/find-up": { - "version": "4.1.0", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "dependencies": { - "micromatch": "^4.0.2" - } - }, - "../util/node_modules/forever-agent": { - "version": "0.6.1", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "../util/node_modules/forwarded": { - "version": "0.2.0", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/fresh": { - "version": "0.5.2", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/fs-constants": { - "version": "1.0.0", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "optional": true, - "peer": true - }, - "../util/node_modules/fs-extra": { - "version": "7.0.1", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "../util/node_modules/fs-minipass": { - "version": "1.2.7", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "../util/node_modules/fs.realpath": { - "version": "1.0.0", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "../util/node_modules/fsevents": { - "version": "2.3.2", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "../util/node_modules/fstream": { - "version": "1.0.12", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "optional": true, - "peer": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "../util/node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "../util/node_modules/function-bind": { - "version": "1.1.1", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "../util/node_modules/gauge": { - "version": "2.7.4", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "peer": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "../util/node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/gensync": { - "version": "1.0.0-beta.2", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "../util/node_modules/get-caller-file": { - "version": "2.0.5", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "../util/node_modules/get-package-type": { - "version": "0.1.0", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "../util/node_modules/get-stream": { - "version": "6.0.1", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/getpass": { - "version": "0.1.7", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "../util/node_modules/github-from-package": { - "version": "0.0.0", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "optional": true, - "peer": true - }, - "../util/node_modules/glob": { - "version": "7.1.7", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../util/node_modules/globals": { - "version": "11.12.0", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/graceful-fs": { - "version": "4.2.8", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "../util/node_modules/har-schema": { - "version": "2.0.0", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/har-validator": { - "version": "5.1.5", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "optional": true, - "peer": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/has": { - "version": "1.0.3", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "../util/node_modules/has-ansi": { - "version": "2.0.0", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/has-flag": { - "version": "4.0.0", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/has-unicode": { - "version": "2.0.1", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true, - "peer": true - }, - "../util/node_modules/helmet": { - "version": "4.6.0", - "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==", - "engines": { - "node": ">=10.0.0" - } - }, - "../util/node_modules/highlight.js": { - "version": "10.7.3", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "engines": { - "node": "*" - } - }, - "../util/node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/html-escaper": { - "version": "2.0.2", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "../util/node_modules/http-errors": { - "version": "1.7.2", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "../util/node_modules/http-proxy-agent": { - "version": "4.0.1", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "../util/node_modules/http-signature": { - "version": "1.2.0", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "../util/node_modules/https-proxy-agent": { - "version": "5.0.0", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "../util/node_modules/human-signals": { - "version": "2.1.0", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "../util/node_modules/iconv-lite": { - "version": "0.4.24", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/ieee754": { - "version": "1.2.1", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "../util/node_modules/ignore-walk": { - "version": "3.0.4", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "optional": true, - "peer": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "../util/node_modules/import-local": { - "version": "3.0.2", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/imurmurhash": { - "version": "0.1.4", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "../util/node_modules/inflight": { - "version": "1.0.6", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "../util/node_modules/inherits": { - "version": "2.0.4", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "../util/node_modules/ini": { - "version": "1.3.8", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "optional": true, - "peer": true - }, - "../util/node_modules/ipaddr.js": { - "version": "1.9.1", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "../util/node_modules/is-ci": { - "version": "3.0.0", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "dependencies": { - "ci-info": "^3.1.1" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "../util/node_modules/is-core-module": { - "version": "2.6.0", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../util/node_modules/is-docker": { - "version": "2.2.1", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "peer": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/is-generator-fn": { - "version": "2.1.0", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/is-number": { - "version": "7.0.0", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "../util/node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "../util/node_modules/is-stream": { - "version": "2.0.1", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/is-typedarray": { - "version": "1.0.0", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "devOptional": true - }, - "../util/node_modules/is-wsl": { - "version": "2.2.0", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/isarray": { - "version": "0.0.1", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "../util/node_modules/isexe": { - "version": "2.0.0", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "../util/node_modules/isstream": { - "version": "0.1.2", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "optional": true, - "peer": true - }, - "../util/node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/istanbul-lib-report": { - "version": "3.0.0", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/istanbul-lib-source-maps": { - "version": "4.0.0", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "../util/node_modules/istanbul-reports": { - "version": "3.0.2", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/jest": { - "version": "27.2.0", - "integrity": "sha512-oUqVXyvh5YwEWl263KWdPUAqEzBFzGHdFLQ05hUnITr1tH+9SscEI9A/GH9eBClA+Nw1ct+KNuuOV6wlnmBPcg==", - "dev": true, - "dependencies": { - "@jest/core": "^27.2.0", - "import-local": "^3.0.2", - "jest-cli": "^27.2.0" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "../util/node_modules/jest-changed-files": { - "version": "27.1.1", - "integrity": "sha512-5TV9+fYlC2A6hu3qtoyGHprBwCAn0AuGA77bZdUgYvVlRMjHXo063VcWTEAyx6XAZ85DYHqp0+aHKbPlfRDRvA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-circus": { - "version": "27.2.0", - "integrity": "sha512-WwENhaZwOARB1nmcboYPSv/PwHBUGRpA4MEgszjr9DLCl97MYw0qZprBwLb7rNzvMwfIvNGG7pefQ5rxyBlzIA==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.2.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-cli": { - "version": "27.2.0", - "integrity": "sha512-bq1X/B/b1kT9y1zIFMEW3GFRX1HEhFybiqKdbxM+j11XMMYSbU9WezfyWIhrSOmPT+iODLATVjfsCnbQs7cfIA==", - "dev": true, - "dependencies": { - "@jest/core": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "prompts": "^2.0.1", - "yargs": "^16.0.3" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "../util/node_modules/jest-cli/node_modules/jest-config": { - "version": "27.2.0", - "integrity": "sha512-Z1romHpxeNwLxQtouQ4xt07bY6HSFGKTo0xJcvOK3u6uJHveA4LB2P+ty9ArBLpTh3AqqPxsyw9l9GMnWBYS9A==", - "dev": true, - "dependencies": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.0", - "@jest/types": "^27.1.1", - "babel-jest": "^27.2.0", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.2.0", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "peerDependencies": { - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "ts-node": { - "optional": true - } - } - }, - "../util/node_modules/jest-diff": { - "version": "27.2.0", - "integrity": "sha512-QSO9WC6btFYWtRJ3Hac0sRrkspf7B01mGrrQEiCW6TobtViJ9RWL0EmOs/WnBsZDsI/Y2IoSHZA2x6offu0sYw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-docblock": { - "version": "27.0.6", - "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-each": { - "version": "27.2.0", - "integrity": "sha512-biDmmUQjg+HZOB7MfY2RHSFL3j418nMoC3TK3pGAj880fQQSxvQe1y2Wy23JJJNUlk6YXiGU0yWy86Le1HBPmA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-environment-jsdom": { - "version": "27.2.0", - "integrity": "sha512-wNQJi6Rd/AkUWqTc4gWhuTIFPo7tlMK0RPZXeM6AqRHZA3D3vwvTa9ktAktyVyWYmUoXdYstOfyYMG3w4jt7eA==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0", - "jsdom": "^16.6.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-environment-node": { - "version": "27.2.0", - "integrity": "sha512-WbW+vdM4u88iy6Q3ftUEQOSgMPtSgjm3qixYYK2AKEuqmFO2zmACTw1vFUB0qI/QN88X6hA6ZkVKIdIWWzz+yg==", - "dev": true, - "dependencies": { - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-get-type": { - "version": "27.0.6", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-haste-map": { - "version": "27.2.0", - "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "../util/node_modules/jest-jasmine2": { - "version": "27.2.0", - "integrity": "sha512-NcPzZBk6IkDW3Z2V8orGueheGJJYfT5P0zI/vTO/Jp+R9KluUdgFrgwfvZ0A34Kw6HKgiWFILZmh3oQ/eS+UxA==", - "dev": true, - "dependencies": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.2.0", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.2.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-leak-detector": { - "version": "27.2.0", - "integrity": "sha512-e91BIEmbZw5+MHkB4Hnrq7S86coTxUMCkz4n7DLmQYvl9pEKmRx9H/JFH87bBqbIU5B2Ju1soKxRWX6/eGFGpA==", - "dev": true, - "dependencies": { - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-matcher-utils": { - "version": "27.2.0", - "integrity": "sha512-F+LG3iTwJ0gPjxBX6HCyrARFXq6jjiqhwBQeskkJQgSLeF1j6ui1RTV08SR7O51XTUhtc8zqpDj8iCG4RGmdKw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^27.2.0", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-message-util": { - "version": "27.2.0", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-mock": { - "version": "27.1.1", - "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@types/node": "*" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "../util/node_modules/jest-regex-util": { - "version": "27.0.6", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-resolve": { - "version": "27.2.0", - "integrity": "sha512-v09p9Ib/VtpHM6Cz+i9lEAv1Z/M5NVxsyghRHRMEUOqwPQs3zwTdwp1xS3O/k5LocjKiGS0OTaJoBSpjbM2Jlw==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "escalade": "^3.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "resolve": "^1.20.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-resolve-dependencies": { - "version": "27.2.0", - "integrity": "sha512-EY5jc/Y0oxn+oVEEldTidmmdVoZaknKPyDORA012JUdqPyqPL+lNdRyI3pGti0RCydds6coaw6xt4JQY54dKsg==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-runner": { - "version": "27.2.0", - "integrity": "sha512-Cl+BHpduIc0cIVTjwoyx0pQk4Br8gn+wkr35PmKCmzEdOUnQ2wN7QVXA8vXnMQXSlFkN/+KWnk20TAVBmhgrww==", - "dev": true, - "dependencies": { - "@jest/console": "^27.2.0", - "@jest/environment": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-haste-map": "^27.2.0", - "jest-leak-detector": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-runtime": { - "version": "27.2.0", - "integrity": "sha512-6gRE9AVVX49hgBbWQ9PcNDeM4upMUXzTpBs0kmbrjyotyUyIJixLPsYjpeTFwAA07PVLDei1iAm2chmWycdGdQ==", - "dev": true, - "dependencies": { - "@jest/console": "^27.2.0", - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/globals": "^27.2.0", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.0.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-serializer": { - "version": "27.0.6", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-snapshot": { - "version": "27.2.0", - "integrity": "sha512-MukJvy3KEqemCT2FoT3Gum37CQqso/62PKTfIzWmZVTsLsuyxQmJd2PI5KPcBYFqLlA8LgZLHM8ZlazkVt8LsQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.2.0", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.2.0", - "jest-get-type": "^27.0.6", - "jest-haste-map": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-util": "^27.2.0", - "natural-compare": "^1.4.0", - "pretty-format": "^27.2.0", - "semver": "^7.3.2" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.5", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/jest-util": { - "version": "27.2.0", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-validate": { - "version": "27.2.0", - "integrity": "sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "leven": "^3.1.0", - "pretty-format": "^27.2.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-validate/node_modules/camelcase": { - "version": "6.2.0", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/jest-watcher": { - "version": "27.2.0", - "integrity": "sha512-SjRWhnr+qO8aBsrcnYIyF+qRxNZk6MZH8TIDgvi+VlsyrvOyqg0d+Rm/v9KHiTtC9mGGeFi9BFqgavyWib6xLg==", - "dev": true, - "dependencies": { - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.2.0", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/jest-worker": { - "version": "27.2.0", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "../util/node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "../util/node_modules/js-tokens": { - "version": "4.0.0", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "../util/node_modules/js-yaml": { - "version": "3.14.1", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../util/node_modules/jsbn": { - "version": "0.1.1", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true, - "peer": true - }, - "../util/node_modules/jsdom": { - "version": "16.7.0", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "../util/node_modules/jsdom/node_modules/form-data": { - "version": "3.0.1", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/jsesc": { - "version": "2.5.2", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/json-schema": { - "version": "0.2.3", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "optional": true, - "peer": true - }, - "../util/node_modules/json-schema-traverse": { - "version": "0.4.1", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "optional": true, - "peer": true - }, - "../util/node_modules/json-stable-stringify": { - "version": "1.0.1", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dependencies": { - "jsonify": "~0.0.0" - } - }, - "../util/node_modules/json-stringify-safe": { - "version": "5.0.1", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "optional": true, - "peer": true - }, - "../util/node_modules/json5": { - "version": "2.2.0", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/jsonfile": { - "version": "4.0.0", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "../util/node_modules/jsonify": { - "version": "0.0.0", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "engines": { - "node": "*" - } - }, - "../util/node_modules/jsonwebtoken": { - "version": "8.5.1", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "../util/node_modules/jsonwebtoken/node_modules/ms": { - "version": "2.1.3", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "../util/node_modules/jsonwebtoken/node_modules/semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "../util/node_modules/jsprim": { - "version": "1.4.1", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "engines": [ - "node >=0.6.0" - ], - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "../util/node_modules/jwa": { - "version": "1.4.1", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "../util/node_modules/jws": { - "version": "3.2.2", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "../util/node_modules/klaw-sync": { - "version": "6.0.0", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", - "dependencies": { - "graceful-fs": "^4.1.11" - } - }, - "../util/node_modules/kleur": { - "version": "3.0.3", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/lambert-server": { - "version": "1.2.12", - "integrity": "sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw==", - "dependencies": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "../util/node_modules/leven": { - "version": "3.1.0", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/levn": { - "version": "0.3.0", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/locate-path": { - "version": "5.0.0", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/lodash": { - "version": "4.17.21", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "../util/node_modules/lodash.includes": { - "version": "4.3.0", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "../util/node_modules/lodash.isboolean": { - "version": "3.0.3", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "../util/node_modules/lodash.isinteger": { - "version": "4.0.4", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "../util/node_modules/lodash.isnumber": { - "version": "3.0.3", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "../util/node_modules/lodash.isplainobject": { - "version": "4.0.6", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "../util/node_modules/lodash.isstring": { - "version": "4.0.1", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "../util/node_modules/lodash.once": { - "version": "4.1.1", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "../util/node_modules/lru-cache": { - "version": "6.0.0", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/make-dir": { - "version": "3.1.0", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/make-error": { - "version": "1.3.6", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "../util/node_modules/makeerror": { - "version": "1.0.11", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dev": true, - "dependencies": { - "tmpl": "1.0.x" - } - }, - "../util/node_modules/media-typer": { - "version": "0.3.0", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/merge-descriptors": { - "version": "1.0.1", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "../util/node_modules/merge-stream": { - "version": "2.0.0", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "../util/node_modules/methods": { - "version": "1.1.2", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/micromatch": { - "version": "4.0.4", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "../util/node_modules/mime": { - "version": "1.6.0", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/mime-db": { - "version": "1.49.0", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/mime-types": { - "version": "2.1.32", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/mimic-fn": { - "version": "2.1.0", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/mimic-response": { - "version": "2.1.0", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/minimatch": { - "version": "3.0.4", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "../util/node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "../util/node_modules/minipass": { - "version": "2.9.0", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "../util/node_modules/minipass/node_modules/yallist": { - "version": "3.1.1", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true, - "peer": true - }, - "../util/node_modules/minizlib": { - "version": "1.3.3", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "../util/node_modules/missing-native-js-functions": { - "version": "1.2.18", - "integrity": "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg==" - }, - "../util/node_modules/mkdirp": { - "version": "0.5.5", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "../util/node_modules/mkdirp-classic": { - "version": "0.5.3", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "optional": true, - "peer": true - }, - "../util/node_modules/ms": { - "version": "2.0.0", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "../util/node_modules/multer": { - "version": "1.4.3", - "integrity": "sha512-np0YLKncuZoTzufbkM6wEKp68EhWJXcU6fq6QqrSwkckd2LlMgd1UqhUJLj6NS/5sZ8dE8LYDWslsltJznnXlg==", - "dependencies": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "../util/node_modules/mz": { - "version": "2.7.0", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "../util/node_modules/napi-build-utils": { - "version": "1.0.2", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "optional": true, - "peer": true - }, - "../util/node_modules/natural-compare": { - "version": "1.4.0", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "../util/node_modules/needle": { - "version": "2.9.1", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "optional": true, - "peer": true, - "dependencies": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "bin": { - "needle": "bin/needle" - }, - "engines": { - "node": ">= 4.4.x" - } - }, - "../util/node_modules/needle/node_modules/debug": { - "version": "3.2.7", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "optional": true, - "peer": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "../util/node_modules/needle/node_modules/ms": { - "version": "2.1.3", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true, - "peer": true - }, - "../util/node_modules/negotiator": { - "version": "0.6.2", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/nice-try": { - "version": "1.0.5", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "../util/node_modules/node-abi": { - "version": "2.30.1", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "optional": true, - "peer": true, - "dependencies": { - "semver": "^5.4.1" - } - }, - "../util/node_modules/node-abi/node_modules/semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "../util/node_modules/node-addon-api": { - "version": "3.2.1", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "optional": true, - "peer": true - }, - "../util/node_modules/node-fetch": { - "version": "2.6.2", - "integrity": "sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "../util/node_modules/node-gyp": { - "version": "3.8.0", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "optional": true, - "peer": true, - "dependencies": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/node-gyp/node_modules/rimraf": { - "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "../util/node_modules/node-gyp/node_modules/semver": { - "version": "5.3.0", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "../util/node_modules/node-gyp/node_modules/which": { - "version": "1.3.1", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "optional": true, - "peer": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "../util/node_modules/node-int64": { - "version": "0.4.0", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "../util/node_modules/node-modules-regexp": { - "version": "1.0.0", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/node-pre-gyp": { - "version": "0.11.0", - "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", - "deprecated": "Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future", - "optional": true, - "peer": true, - "dependencies": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "../util/node_modules/node-pre-gyp/node_modules/nopt": { - "version": "4.0.3", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "optional": true, - "peer": true, - "dependencies": { - "abbrev": "1", - "osenv": "^0.1.4" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "../util/node_modules/node-pre-gyp/node_modules/rimraf": { - "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "peer": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "../util/node_modules/node-pre-gyp/node_modules/semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "../util/node_modules/node-pre-gyp/node_modules/tar": { - "version": "4.4.19", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "optional": true, - "peer": true, - "dependencies": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - }, - "engines": { - "node": ">=4.5" - } - }, - "../util/node_modules/node-pre-gyp/node_modules/yallist": { - "version": "3.1.1", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true, - "peer": true - }, - "../util/node_modules/node-releases": { - "version": "1.1.75", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==", - "dev": true - }, - "../util/node_modules/nopt": { - "version": "3.0.6", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "optional": true, - "peer": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - } - }, - "../util/node_modules/normalize-path": { - "version": "3.0.0", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/npm-bundled": { - "version": "1.1.2", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "optional": true, - "peer": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "../util/node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "optional": true, - "peer": true - }, - "../util/node_modules/npm-packlist": { - "version": "1.4.8", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "optional": true, - "peer": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "../util/node_modules/npm-run-path": { - "version": "4.0.1", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/npmlog": { - "version": "4.1.2", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "peer": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "../util/node_modules/number-is-nan": { - "version": "1.0.1", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/nwsapi": { - "version": "2.2.0", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "../util/node_modules/oauth-sign": { - "version": "0.9.0", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "optional": true, - "peer": true, - "engines": { - "node": "*" - } - }, - "../util/node_modules/object-assign": { - "version": "4.1.1", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/on-finished": { - "version": "2.3.0", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/once": { - "version": "1.4.0", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "../util/node_modules/onetime": { - "version": "5.1.2", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/open": { - "version": "7.4.2", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/optionator": { - "version": "0.8.3", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/os-homedir": { - "version": "1.0.2", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/os-tmpdir": { - "version": "1.0.2", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/osenv": { - "version": "0.1.5", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, - "peer": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "../util/node_modules/p-each-series": { - "version": "2.2.0", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/p-limit": { - "version": "2.3.0", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/p-locate": { - "version": "4.1.0", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/p-try": { - "version": "2.2.0", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/packet-reader": { - "version": "1.0.0", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "../util/node_modules/parent-require": { - "version": "1.0.0", - "integrity": "sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc=", - "engines": { - "node": ">= 0.4.0" - } - }, - "../util/node_modules/parse5": { - "version": "6.0.1", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "../util/node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "../util/node_modules/parseurl": { - "version": "1.3.3", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/patch-package": { - "version": "6.4.7", - "integrity": "sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==", - "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^7.0.1", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.0", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33" - }, - "bin": { - "patch-package": "index.js" - }, - "engines": { - "npm": ">5" - } - }, - "../util/node_modules/patch-package/node_modules/ansi-styles": { - "version": "3.2.1", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/patch-package/node_modules/chalk": { - "version": "2.4.2", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/patch-package/node_modules/ci-info": { - "version": "2.0.0", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "../util/node_modules/patch-package/node_modules/color-convert": { - "version": "1.9.3", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "../util/node_modules/patch-package/node_modules/color-name": { - "version": "1.1.3", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "../util/node_modules/patch-package/node_modules/cross-spawn": { - "version": "6.0.5", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "../util/node_modules/patch-package/node_modules/escape-string-regexp": { - "version": "1.0.5", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/patch-package/node_modules/has-flag": { - "version": "3.0.0", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/patch-package/node_modules/is-ci": { - "version": "2.0.0", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "../util/node_modules/patch-package/node_modules/path-key": { - "version": "2.0.1", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/patch-package/node_modules/rimraf": { - "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "../util/node_modules/patch-package/node_modules/semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "../util/node_modules/patch-package/node_modules/shebang-command": { - "version": "1.2.0", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/patch-package/node_modules/shebang-regex": { - "version": "1.0.0", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/patch-package/node_modules/slash": { - "version": "2.0.0", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/patch-package/node_modules/supports-color": { - "version": "5.5.0", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/patch-package/node_modules/which": { - "version": "1.3.1", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "../util/node_modules/path-exists": { - "version": "4.0.0", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/path-is-absolute": { - "version": "1.0.1", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/path-key": { - "version": "3.1.1", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/path-parse": { - "version": "1.0.7", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "../util/node_modules/path-to-regexp": { - "version": "0.1.7", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "../util/node_modules/performance-now": { - "version": "2.1.0", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "optional": true, - "peer": true - }, - "../util/node_modules/pg": { - "version": "8.7.1", - "integrity": "sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA==", - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.4.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "pg-native": ">=2.0.0" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "../util/node_modules/pg-connection-string": { - "version": "2.5.0", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" - }, - "../util/node_modules/pg-int8": { - "version": "1.0.1", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "engines": { - "node": ">=4.0.0" - } - }, - "../util/node_modules/pg-pool": { - "version": "3.4.1", - "integrity": "sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==", - "peerDependencies": { - "pg": ">=8.0" - } - }, - "../util/node_modules/pg-protocol": { - "version": "1.5.0", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" - }, - "../util/node_modules/pg-types": { - "version": "2.2.0", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/pgpass": { - "version": "1.0.4", - "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==", - "dependencies": { - "split2": "^3.1.1" - } - }, - "../util/node_modules/picomatch": { - "version": "2.3.0", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "../util/node_modules/pirates": { - "version": "4.0.1", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "dependencies": { - "node-modules-regexp": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/pkg-dir": { - "version": "4.2.0", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/postgres-array": { - "version": "2.0.0", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/postgres-bytea": { - "version": "1.0.0", - "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/postgres-date": { - "version": "1.0.7", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/postgres-interval": { - "version": "1.2.0", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/prebuild-install": { - "version": "6.1.4", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", - "optional": true, - "peer": true, - "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/prelude-ls": { - "version": "1.1.2", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/pretty-format": { - "version": "27.2.0", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "dependencies": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "../util/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "../util/node_modules/process-nextick-args": { - "version": "2.0.1", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "../util/node_modules/prompts": { - "version": "2.4.1", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/proxy-addr": { - "version": "2.0.7", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "../util/node_modules/psl": { - "version": "1.8.0", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "devOptional": true - }, - "../util/node_modules/pump": { - "version": "3.0.0", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "optional": true, - "peer": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "../util/node_modules/punycode": { - "version": "2.1.1", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/qs": { - "version": "6.7.0", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "engines": { - "node": ">=0.6" - } - }, - "../util/node_modules/querystringify": { - "version": "2.2.0", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "../util/node_modules/range-parser": { - "version": "1.2.1", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/raw-body": { - "version": "2.4.0", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/rc": { - "version": "1.2.8", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "optional": true, - "peer": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "../util/node_modules/react-is": { - "version": "17.0.2", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "../util/node_modules/readable-stream": { - "version": "1.1.14", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "../util/node_modules/reflect-metadata": { - "version": "0.1.13", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "../util/node_modules/request": { - "version": "2.88.2", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "optional": true, - "peer": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/request/node_modules/form-data": { - "version": "2.3.3", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "optional": true, - "peer": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "../util/node_modules/request/node_modules/qs": { - "version": "6.5.2", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.6" - } - }, - "../util/node_modules/request/node_modules/tough-cookie": { - "version": "2.5.0", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "optional": true, - "peer": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "../util/node_modules/require-directory": { - "version": "2.1.1", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/requires-port": { - "version": "1.0.0", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "../util/node_modules/resolve": { - "version": "1.20.0", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "../util/node_modules/resolve-cwd": { - "version": "3.0.0", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/resolve-from": { - "version": "5.0.0", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/rimraf": { - "version": "3.0.2", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "../util/node_modules/safe-buffer": { - "version": "5.2.1", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "../util/node_modules/safer-buffer": { - "version": "2.1.2", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "../util/node_modules/sax": { - "version": "1.2.4", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "../util/node_modules/saxes": { - "version": "5.0.1", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/semver": { - "version": "6.3.0", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "../util/node_modules/send": { - "version": "0.17.1", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/send/node_modules/ms": { - "version": "2.1.1", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "../util/node_modules/serve-static": { - "version": "1.14.1", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/set-blocking": { - "version": "2.0.0", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "optional": true, - "peer": true - }, - "../util/node_modules/setprototypeof": { - "version": "1.1.1", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "../util/node_modules/sha.js": { - "version": "2.4.11", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "../util/node_modules/shebang-command": { - "version": "2.0.0", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/shebang-regex": { - "version": "3.0.0", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/signal-exit": { - "version": "3.0.4", - "integrity": "sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==", - "devOptional": true - }, - "../util/node_modules/simple-concat": { - "version": "1.0.1", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "peer": true - }, - "../util/node_modules/simple-get": { - "version": "3.1.0", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", - "optional": true, - "peer": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "../util/node_modules/sisteransi": { - "version": "1.0.5", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "../util/node_modules/slash": { - "version": "3.0.0", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/source-map": { - "version": "0.6.1", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/source-map-support": { - "version": "0.5.20", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "../util/node_modules/split2": { - "version": "3.2.2", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "../util/node_modules/split2/node_modules/readable-stream": { - "version": "3.6.0", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/split2/node_modules/string_decoder": { - "version": "1.3.0", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "../util/node_modules/sprintf-js": { - "version": "1.0.3", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "../util/node_modules/sqlite3": { - "version": "5.0.2", - "integrity": "sha512-1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==", - "hasInstallScript": true, - "optional": true, - "peer": true, - "dependencies": { - "node-addon-api": "^3.0.0", - "node-pre-gyp": "^0.11.0" - }, - "optionalDependencies": { - "node-gyp": "3.x" - }, - "peerDependencies": { - "node-gyp": "3.x" - }, - "peerDependenciesMeta": { - "node-gyp": { - "optional": true - } - } - }, - "../util/node_modules/sshpk": { - "version": "1.16.1", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "optional": true, - "peer": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/stack-utils": { - "version": "2.0.5", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/statuses": { - "version": "1.5.0", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/streamsearch": { - "version": "0.1.2", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/string_decoder": { - "version": "0.10.31", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "../util/node_modules/string-length": { - "version": "4.0.2", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/string-width": { - "version": "1.0.2", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "peer": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/string-width/node_modules/ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/string-width/node_modules/strip-ansi": { - "version": "3.0.1", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/strip-ansi": { - "version": "6.0.0", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/strip-bom": { - "version": "4.0.0", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/strip-final-newline": { - "version": "2.0.0", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/strip-json-comments": { - "version": "2.0.1", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/supports-color": { - "version": "7.2.0", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/supports-hyperlinks": { - "version": "2.2.0", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/symbol-tree": { - "version": "3.2.4", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "../util/node_modules/tar": { - "version": "2.2.2", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "deprecated": "This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.", - "optional": true, - "peer": true, - "dependencies": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, - "../util/node_modules/tar-fs": { - "version": "2.1.1", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "optional": true, - "peer": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "../util/node_modules/tar-stream": { - "version": "2.2.0", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "optional": true, - "peer": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.0", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "../util/node_modules/tar-stream/node_modules/string_decoder": { - "version": "1.3.0", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "../util/node_modules/terminal-link": { - "version": "2.1.1", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/test-exclude": { - "version": "6.0.0", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/thenify": { - "version": "3.3.1", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "../util/node_modules/thenify-all": { - "version": "1.6.0", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "../util/node_modules/throat": { - "version": "6.0.1", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "../util/node_modules/tmp": { - "version": "0.0.33", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "../util/node_modules/tmpl": { - "version": "1.0.5", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "../util/node_modules/to-fast-properties": { - "version": "2.0.0", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/to-regex-range": { - "version": "5.0.1", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "../util/node_modules/toidentifier": { - "version": "1.0.0", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "engines": { - "node": ">=0.6" - } - }, - "../util/node_modules/tough-cookie": { - "version": "4.0.0", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - }, - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/tr46": { - "version": "2.1.0", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "dependencies": { - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/ts-node": { - "version": "10.2.1", - "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "0.6.1", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "../util/node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.2.0", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "../util/node_modules/tslib": { - "version": "2.3.1", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "../util/node_modules/tunnel-agent": { - "version": "0.6.0", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "../util/node_modules/tweetnacl": { - "version": "0.14.5", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true, - "peer": true - }, - "../util/node_modules/type-check": { - "version": "0.3.2", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "../util/node_modules/type-detect": { - "version": "4.0.8", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "../util/node_modules/type-fest": { - "version": "0.21.3", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "../util/node_modules/type-is": { - "version": "1.6.18", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "../util/node_modules/typedarray": { - "version": "0.0.6", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "../util/node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "../util/node_modules/typeorm": { - "version": "0.2.38", - "integrity": "sha512-M6Y3KQcAREQcphOVJciywf4mv6+A0I/SeR+lWNjKsjnQ+a3XcMwGYMGL0Jonsx3H0Cqlf/3yYqVki1jIXSK/xg==", - "dependencies": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "debug": "^4.3.1", - "dotenv": "^8.2.0", - "glob": "^7.1.6", - "js-yaml": "^4.0.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.1.0", - "xml2js": "^0.4.23", - "yargonaut": "^1.1.4", - "yargs": "^17.0.1", - "zen-observable-ts": "^1.0.0" - }, - "bin": { - "typeorm": "cli.js" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@sap/hana-client": "*", - "better-sqlite3": "*", - "hdb-pool": "*", - "ioredis": "*", - "mongodb": "^3.6.0", - "mssql": "*", - "mysql2": "*", - "oracledb": "*", - "pg": "*", - "pg-native": "*", - "pg-query-stream": "*", - "redis": "*", - "sql.js": "*", - "sqlite3": "*", - "typeorm-aurora-data-api-driver": "*" - }, - "peerDependenciesMeta": { - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "../util/node_modules/typeorm/node_modules/argparse": { - "version": "2.0.1", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "../util/node_modules/typeorm/node_modules/buffer": { - "version": "6.0.3", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "../util/node_modules/typeorm/node_modules/debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "../util/node_modules/typeorm/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/typeorm/node_modules/js-yaml": { - "version": "4.1.0", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "../util/node_modules/typeorm/node_modules/mkdirp": { - "version": "1.0.4", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/typeorm/node_modules/ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "../util/node_modules/typeorm/node_modules/string-width": { - "version": "4.2.2", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/typeorm/node_modules/yargs": { - "version": "17.1.1", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=12" - } - }, - "../util/node_modules/typescript": { - "version": "4.4.3", - "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "../util/node_modules/typescript-json-schema": { - "version": "0.50.1", - "integrity": "sha512-GCof/SDoiTDl0qzPonNEV4CHyCsZEIIf+mZtlrjoD8vURCcEzEfa2deRuxYid8Znp/e27eDR7Cjg8jgGrimBCA==", - "dependencies": { - "@types/json-schema": "^7.0.7", - "@types/node": "^14.14.33", - "glob": "^7.1.6", - "json-stable-stringify": "^1.0.1", - "ts-node": "^9.1.1", - "typescript": "~4.2.3", - "yargs": "^16.2.0" - }, - "bin": { - "typescript-json-schema": "bin/typescript-json-schema" - } - }, - "../util/node_modules/typescript-json-schema/node_modules/ts-node": { - "version": "9.1.1", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" - } - }, - "../util/node_modules/typescript-json-schema/node_modules/typescript": { - "version": "4.2.4", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "../util/node_modules/universalify": { - "version": "0.1.2", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "../util/node_modules/unpipe": { - "version": "1.0.0", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/uri-js": { - "version": "4.4.1", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "optional": true, - "peer": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "../util/node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "../util/node_modules/util-deprecate": { - "version": "1.0.2", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "../util/node_modules/utils-merge": { - "version": "1.0.1", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "../util/node_modules/uuid": { - "version": "3.4.0", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "optional": true, - "peer": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "../util/node_modules/v8-to-istanbul": { - "version": "8.0.0", - "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "../util/node_modules/v8-to-istanbul/node_modules/source-map": { - "version": "0.7.3", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/vary": { - "version": "1.1.2", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "../util/node_modules/verror": { - "version": "1.10.0", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "engines": [ - "node >=0.6.0" - ], - "optional": true, - "peer": true, - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "../util/node_modules/verror/node_modules/core-util-is": { - "version": "1.0.2", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "optional": true, - "peer": true - }, - "../util/node_modules/w3c-hr-time": { - "version": "1.0.2", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "dependencies": { - "browser-process-hrtime": "^1.0.0" - } - }, - "../util/node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/walker": { - "version": "1.0.7", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, - "dependencies": { - "makeerror": "1.0.x" - } - }, - "../util/node_modules/webidl-conversions": { - "version": "6.1.0", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, - "../util/node_modules/whatwg-encoding": { - "version": "1.0.5", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "../util/node_modules/whatwg-mimetype": { - "version": "2.3.0", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "../util/node_modules/whatwg-url": { - "version": "8.7.0", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/which": { - "version": "2.0.2", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "../util/node_modules/wide-align": { - "version": "1.1.3", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "optional": true, - "peer": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "../util/node_modules/word-wrap": { - "version": "1.2.3", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/wrap-ansi": { - "version": "7.0.0", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "../util/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.2", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/wrappy": { - "version": "1.0.2", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "../util/node_modules/write-file-atomic": { - "version": "3.0.3", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "../util/node_modules/ws": { - "version": "7.5.5", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "../util/node_modules/xml-name-validator": { - "version": "3.0.0", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "../util/node_modules/xml2js": { - "version": "0.4.23", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "../util/node_modules/xmlbuilder": { - "version": "11.0.1", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, - "../util/node_modules/xmlchars": { - "version": "2.2.0", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "../util/node_modules/xtend": { - "version": "4.0.2", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "../util/node_modules/y18n": { - "version": "5.0.8", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/yallist": { - "version": "4.0.0", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "devOptional": true - }, - "../util/node_modules/yargonaut": { - "version": "1.1.4", - "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", - "dependencies": { - "chalk": "^1.1.1", - "figlet": "^1.1.1", - "parent-require": "^1.0.0" - } - }, - "../util/node_modules/yargonaut/node_modules/ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/yargonaut/node_modules/ansi-styles": { - "version": "2.2.1", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/yargonaut/node_modules/chalk": { - "version": "1.1.3", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/yargonaut/node_modules/escape-string-regexp": { - "version": "1.0.5", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/yargonaut/node_modules/strip-ansi": { - "version": "3.0.1", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "../util/node_modules/yargonaut/node_modules/supports-color": { - "version": "2.0.0", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "engines": { - "node": ">=0.8.0" - } - }, - "../util/node_modules/yargs": { - "version": "16.2.0", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/yargs-parser": { - "version": "20.2.9", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "../util/node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/yargs/node_modules/string-width": { - "version": "4.2.2", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "../util/node_modules/yn": { - "version": "3.1.1", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "engines": { - "node": ">=6" - } - }, - "../util/node_modules/zen-observable": { - "version": "0.8.15", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "../util/node_modules/zen-observable-ts": { - "version": "1.1.0", - "integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==", - "dependencies": { - "@types/zen-observable": "0.8.3", - "zen-observable": "0.8.15" - } - }, - "node_modules/@fosscord/util": { - "resolved": "../util", - "link": true - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.5", - "integrity": "sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==", - "optional": true, - "dependencies": { - "detect-libc": "^1.0.3", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.1", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "rimraf": "^3.0.2", - "semver": "^7.3.4", - "tar": "^6.1.0" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/rimraf": { - "version": "3.0.2", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { - "version": "7.3.5", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@sqltools/formatter": { - "version": "1.2.3", - "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/amqplib": { - "version": "0.8.2", - "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==", - "dev": true, - "dependencies": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bluebird": { - "version": "3.5.36", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.5", - "integrity": "sha512-OGqtHQ7N5/Ap/TUwO6IgHDuLiAoTmHhGpNvgkCm/F4N6pKzx/RBSfr2OXZSwC6vkfnsEdb6+7DNZVtiXiwdwFw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "14.17.16", - "integrity": "sha512-WiFf2izl01P1CpeY8WqFAeKWwByMueBEkND38EcN8N68qb0aDG3oIS1P5MhAX5kUdr469qRyqsY/MjanLjsFbQ==", - "dev": true - }, - "node_modules/@types/node-fetch": { - "version": "2.5.12", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/strip-bom": { - "version": "3.0.0", - "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", - "dev": true - }, - "node_modules/@types/strip-json-comments": { - "version": "0.0.30", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", - "dev": true - }, - "node_modules/@types/ws": { - "version": "7.4.7", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/zen-observable": { - "version": "0.8.3", - "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" - }, - "node_modules/@yukikaze-bot/erlpack": { - "version": "1.0.1", - "integrity": "sha512-PCJ2lGCf8DsQtrE411PY+NTsolK48l4InNn1kcBo0iUllKZYGLqeqXEWGA/INrmwanKcoYkU4pBySqUFLQDEoA==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.5", - "node-addon-api": "^4.0.0" - } - }, - "node_modules/@zerollup/ts-helpers": { - "version": "1.7.18", - "integrity": "sha512-S9zN+y+i5yN/evfWquzSO3lubqPXIsPQf6p9OiPMpRxDx/0totPLF39XoRw48Dav5dSvbIE8D2eAPpXXJxvKwg==", - "dev": true, - "dependencies": { - "resolve": "^1.12.0" - }, - "peerDependencies": { - "typescript": ">=3.7.2" - } - }, - "node_modules/@zerollup/ts-transform-paths": { - "version": "1.7.18", - "integrity": "sha512-YPVUxvWQVzRx1OBN0Pmkd58+R9FcfUJuwTaPUSoi5rKxuXMtxevTXdfi0w5mEaIH8b0DfL+wg0wFDHiJE+S2zA==", - "dev": true, - "dependencies": { - "@zerollup/ts-helpers": "^1.7.18" - }, - "peerDependencies": { - "typescript": ">=3.7.2" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, - "node_modules/accepts": { - "version": "1.3.7", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/amqplib": { - "version": "0.8.0", - "integrity": "sha512-icU+a4kkq4Y1PS4NNi+YPDMwdlbFcZ1EZTQT2nigW3fvOb6AOgUQ9+Mk4ue0Zu5cBg/XpDzB40oH10ysrk2dmA==", - "dependencies": { - "bitsyntax": "~0.1.0", - "bluebird": "^3.7.2", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "safe-buffer": "~5.2.1", - "url-parse": "~1.5.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "node_modules/anymatch": { - "version": "3.1.2", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/app-root-path": { - "version": "3.0.0", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bitsyntax": { - "version": "0.1.0", - "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==", - "dependencies": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/bitsyntax/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/bl": { - "version": "2.2.1", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "optional": true, - "peer": true, - "dependencies": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/bl/node_modules/isarray": { - "version": "1.0.0", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true, - "peer": true - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "2.3.7", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/bl/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true, - "peer": true - }, - "node_modules/bl/node_modules/string_decoder": { - "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "node_modules/body-parser": { - "version": "1.19.0", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-more-ints": { - "version": "1.0.0", - "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" - }, - "node_modules/bytes": { - "version": "3.1.0", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/chokidar": { - "version": "3.5.2", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chownr": { - "version": "2.0.0", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/cli-highlight": { - "version": "2.1.11", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/cli-highlight/node_modules/yargs": { - "version": "16.2.0", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/content-type": { - "version": "1.0.4", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.4.0", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/create-require": { - "version": "1.1.1", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/degenerator": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.1.tgz", - "integrity": "sha512-LFsIFEeLPlKvAKXu7j3ssIG6RT0TbI7/GhsqrI0DnHASEQjXQ0LUSYcjJteGgRGmZbl1TnMSxpNQIAiJ7Du5TQ==", - "dependencies": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true - }, - "node_modules/denque": { - "version": "1.5.1", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/depd": { - "version": "1.1.2", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dotenv": { - "version": "8.6.0", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==", - "engines": { - "node": ">=10" - } - }, - "node_modules/dynamic-dedupe": { - "version": "0.3.0", - "integrity": "sha1-BuRMIj9eTpTXjvnbI6ZRXOL5YqE=", - "dev": true, - "dependencies": { - "xtend": "^4.0.0" - } - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.17.1", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express-async-errors": { - "version": "3.1.1", - "integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==", - "peerDependencies": { - "express": "^4.16.2" - } - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "node_modules/figlet": { - "version": "1.5.2", - "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/form-data": { - "version": "3.0.1", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "dependencies": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/gauge": { - "version": "2.7.4", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", - "dependencies": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/get-uri/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/get-uri/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/glob": { - "version": "7.1.7", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/global-prefix": { - "version": "3.0.0", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "dependencies": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "node_modules/has": { - "version": "1.0.3", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true - }, - "node_modules/helmet": { - "version": "4.6.0", - "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "engines": { - "node": "*" - } - }, - "node_modules/http-errors": { - "version": "1.7.2", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/inflight": { - "version": "1.0.6", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.3", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/ini": { - "version": "1.3.8", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/interpret": { - "version": "1.4.0", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.6.0", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonwebtoken": { - "version": "8.5.1", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/jsonwebtoken/node_modules/ms": { - "version": "2.1.3", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/jwa": { - "version": "1.4.1", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lambert-server": { - "version": "1.2.11", - "integrity": "sha512-6Uqritpx+ryNWrzLv9YXNqSfCZ10EQh97cHtz8nZMH2WiZm0wL+C3vSMhevdKAE8xdtmeIQXc3idH94nQEx9mA==", - "dependencies": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "optional": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.0", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "optional": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/media-typer": { - "version": "0.3.0", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memory-pager": { - "version": "1.5.0", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "optional": true, - "peer": true - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/methods": { - "version": "1.1.2", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.49.0", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.32", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.0.4", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "node_modules/minipass": { - "version": "3.1.5", - "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "optional": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/missing-native-js-functions": { - "version": "1.2.18", - "integrity": "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg==" - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mongodb": { - "version": "3.6.11", - "integrity": "sha512-4Y4lTFHDHZZdgMaHmojtNAlqkvddX2QQBEN0K//GzxhGwlI9tZ9R0vhbjr1Decw+TF7qK0ZLjQT292XgHRRQgw==", - "optional": true, - "peer": true, - "dependencies": { - "bl": "^2.2.1", - "bson": "^1.1.4", - "denque": "^1.4.1", - "optional-require": "^1.0.3", - "safe-buffer": "^5.1.2" - }, - "engines": { - "node": ">=4" - }, - "optionalDependencies": { - "saslprep": "^1.0.0" - }, - "peerDependenciesMeta": { - "aws4": { - "optional": true - }, - "bson-ext": { - "optional": true - }, - "kerberos": { - "optional": true - }, - "mongodb-client-encryption": { - "optional": true - }, - "mongodb-extjson": { - "optional": true - }, - "snappy": { - "optional": true - } - } - }, - "node_modules/mongodb/node_modules/bson": { - "version": "1.1.6", - "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.6.19" - } - }, - "node_modules/ms": { - "version": "2.0.0", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/mz": { - "version": "2.7.0", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.2", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/node-addon-api": { - "version": "4.2.0", - "integrity": "sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q==", - "optional": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/nopt": { - "version": "5.0.0", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optional-require": { - "version": "1.0.3", - "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pac-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", - "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/pac-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/pac-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/pac-resolver": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.0.tgz", - "integrity": "sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA==", - "dependencies": { - "degenerator": "^3.0.1", - "ip": "^1.1.5", - "netmask": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/parent-require": { - "version": "1.0.0", - "integrity": "sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/parse5": { - "version": "5.1.1", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { - "version": "6.0.1", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parseurl": { - "version": "1.3.3", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "optional": true - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", - "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", - "dependencies": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/proxy-agent/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/qs": { - "version": "6.7.0", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/range-parser": { - "version": "1.2.1", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readable-stream": { - "version": "1.1.14", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rechoir": { - "version": "0.6.2", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "node_modules/require-directory": { - "version": "2.1.1", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "node_modules/resolve": { - "version": "1.20.0", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/rimraf": { - "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/saslprep": { - "version": "1.0.3", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "optional": true, - "peer": true, - "dependencies": { - "sparse-bitfield": "^3.0.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.17.1", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "node_modules/serve-static": { - "version": "1.14.1", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "optional": true - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shelljs": { - "version": "0.8.4", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/signal-exit": { - "version": "3.0.4", - "integrity": "sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==", - "optional": true - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socks-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/source-map": { - "version": "0.6.1", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.20", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/sparse-bitfield": { - "version": "3.0.3", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", - "optional": true, - "peer": true, - "dependencies": { - "memory-pager": "^1.0.2" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/string_decoder": { - "version": "0.10.31", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/string-width": { - "version": "4.2.2", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "optional": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/ts-node": { - "version": "9.1.1", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "dependencies": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "typescript": ">=2.7" - } - }, - "node_modules/ts-node-dev": { - "version": "1.1.8", - "integrity": "sha512-Q/m3vEwzYwLZKmV6/0VlFxcZzVV/xcgOt+Tx/VjaaRHyiBcFlV0541yrT09QjzzCxlDZ34OzKjrFAynlmtflEg==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.1", - "dynamic-dedupe": "^0.3.0", - "minimist": "^1.2.5", - "mkdirp": "^1.0.4", - "resolve": "^1.0.0", - "rimraf": "^2.6.1", - "source-map-support": "^0.5.12", - "tree-kill": "^1.2.2", - "ts-node": "^9.0.0", - "tsconfig": "^7.0.0" - }, - "bin": { - "ts-node-dev": "lib/bin.js", - "tsnd": "lib/bin.js" - }, - "engines": { - "node": ">=0.8.0" - }, - "peerDependencies": { - "node-notifier": "*", - "typescript": "*" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/ts-patch": { - "version": "1.4.4", - "integrity": "sha512-b0CxxrkrCGsD22gl5BtSFlXzyTFP2mbOVffxMOWRrwdSh37sM01wzxSY4wlbBiHHHAJICmaaDgESzJ8lKkVoZA==", - "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "glob": "^7.1.7", - "global-prefix": "^3.0.0", - "minimist": "^1.2.5", - "resolve": "^1.20.0", - "shelljs": "^0.8.4", - "strip-ansi": "^6.0.0" - }, - "bin": { - "ts-patch": "bin/cli.js" - }, - "peerDependencies": { - "typescript": ">2.7.0" - } - }, - "node_modules/tsconfig": { - "version": "7.0.0", - "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", - "dev": true, - "dependencies": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "node_modules/tslib": { - "version": "2.3.1", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typeorm": { - "version": "0.2.37", - "integrity": "sha512-7rkW0yCgFC24I5T0f3S/twmLSuccPh1SQmxET/oDWn2sSDVzbyWdnItSdKy27CdJGTlKHYtUVeOcMYw5LRsXVw==", - "dependencies": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "debug": "^4.3.1", - "dotenv": "^8.2.0", - "glob": "^7.1.6", - "js-yaml": "^4.0.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.1.0", - "xml2js": "^0.4.23", - "yargonaut": "^1.1.4", - "yargs": "^17.0.1", - "zen-observable-ts": "^1.0.0" - }, - "bin": { - "typeorm": "cli.js" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@sap/hana-client": "*", - "better-sqlite3": "*", - "hdb-pool": "*", - "ioredis": "*", - "mongodb": "^3.6.0", - "mssql": "*", - "mysql2": "*", - "oracledb": "*", - "pg": "*", - "pg-native": "*", - "pg-query-stream": "*", - "redis": "*", - "sql.js": "*", - "sqlite3": "*", - "typeorm-aurora-data-api-driver": "*" - }, - "peerDependenciesMeta": { - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/buffer": { - "version": "6.0.3", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/typeorm/node_modules/debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/typescript": { - "version": "4.4.3", - "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "optional": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vm2": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.7.tgz", - "integrity": "sha512-g/GZ7V0Mlmch3eDVOATvAXr1GsJNg6kQ5PjvYy3HbJMCRn5slNbo/u73Uy7r5yUej1cRa3ZjtoVwcWSQuQ/fow==", - "dependencies": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "bin": { - "vm2": "bin/vm2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "1.3.1", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/wide-align": { - "version": "1.1.3", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/wide-align/node_modules/ansi-regex": { - "version": "3.0.0", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/string-width": { - "version": "2.1.1", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "optional": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wide-align/node_modules/strip-ansi": { - "version": "4.0.0", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "optional": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/ws": { - "version": "7.5.5", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xml2js": { - "version": "0.4.23", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", - "engines": { - "node": "*" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "node_modules/yargonaut": { - "version": "1.1.4", - "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", - "dependencies": { - "chalk": "^1.1.1", - "figlet": "^1.1.1", - "parent-require": "^1.0.0" - } - }, - "node_modules/yargonaut/node_modules/ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargonaut/node_modules/ansi-styles": { - "version": "2.2.1", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargonaut/node_modules/chalk": { - "version": "1.1.3", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargonaut/node_modules/strip-ansi": { - "version": "3.0.1", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yargonaut/node_modules/supports-color": { - "version": "2.0.0", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/yargs": { - "version": "17.1.1", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/zen-observable": { - "version": "0.8.15", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "node_modules/zen-observable-ts": { - "version": "1.1.0", - "integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==", - "dependencies": { - "@types/zen-observable": "0.8.3", - "zen-observable": "0.8.15" - } - } - }, - "dependencies": { - "@fosscord/util": { - "version": "file:../util", - "requires": { - "@types/amqplib": "^0.8.1", - "@types/jsonwebtoken": "^8.5.0", - "@types/multer": "^1.4.7", - "@types/node": "^14.17.9", - "@types/node-fetch": "^2.5.12", - "amqplib": "^0.8.0", - "form-data": "^4.0.0", - "jest": "^27.0.6", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "multer": "^1.4.3", - "node-fetch": "^2.6.2", - "patch-package": "^6.4.7", - "pg": "^8.7.1", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "ts-node": "^10.2.1", - "typeorm": "^0.2.38", - "typescript": "^4.4.2", - "typescript-json-schema": "^0.50.1" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.14.5", - "integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.14.5" - } - }, - "@babel/compat-data": { - "version": "7.15.0", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", - "dev": true - }, - "@babel/core": { - "version": "7.15.5", - "integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-compilation-targets": "^7.15.4", - "@babel/helper-module-transforms": "^7.15.4", - "@babel/helpers": "^7.15.4", - "@babel/parser": "^7.15.5", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.1.2", - "semver": "^6.3.0", - "source-map": "^0.5.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.15.4", - "integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.15.4", - "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - } - }, - "@babel/helper-function-name": { - "version": "7.15.4", - "integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.15.4", - "integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.15.4", - "integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.15.4", - "integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-imports": { - "version": "7.15.4", - "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-module-transforms": { - "version": "7.15.7", - "integrity": "sha512-ZNqjjQG/AuFfekFTY+7nY4RgBSklgTu970c7Rj3m/JOhIu5KPBUuTA9AY6zaKcUvk4g6EbDXdBnhi35FAssdSw==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.15.4", - "integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.14.5", - "integrity": "sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ==", - "dev": true - }, - "@babel/helper-replace-supers": { - "version": "7.15.4", - "integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-simple-access": { - "version": "7.15.4", - "integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.15.4", - "integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==", - "dev": true, - "requires": { - "@babel/types": "^7.15.4" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.15.7", - "integrity": "sha512-K4JvCtQqad9OY2+yTU8w+E82ywk/fe+ELNlt1G8z3bVGlZfn/hOcQQsUhGhW/N+tb3fxK800wLtKOE/aM0m72w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.14.5", - "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==", - "dev": true - }, - "@babel/helpers": { - "version": "7.15.4", - "integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==", - "dev": true, - "requires": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/highlight": { - "version": "7.14.5", - "integrity": "sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.15.7", - "integrity": "sha512-rycZXvQ+xS9QyIcJ9HXeDWf1uxqlbVFAUq0Rq0dbc50Zb/+wUe/ehyfzGfm9KZZF0kBejYgxltBXocP+gKdL2g==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.14.5", - "integrity": "sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/template": { - "version": "7.15.4", - "integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - } - }, - "@babel/traverse": { - "version": "7.15.4", - "integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.15.6", - "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cspotcode/source-map-consumer": { - "version": "0.8.0", - "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==", - "dev": true - }, - "@cspotcode/source-map-support": { - "version": "0.6.1", - "integrity": "sha512-DX3Z+T5dt1ockmPdobJS/FAsQPW4V4SrWEhD2iYQT2Cb2tQsiMnYxrcUH9By/Z3B+v0S5LMBkQtV/XOBbpLEOg==", - "dev": true, - "requires": { - "@cspotcode/source-map-consumer": "0.8.0" - } - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "27.2.0", - "integrity": "sha512-35z+RqsK2CCgNxn+lWyK8X4KkaDtfL4BggT7oeZ0JffIiAiEYFYPo5B67V50ZubqDS1ehBrdCR2jduFnIrZOYw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^27.2.0", - "jest-util": "^27.2.0", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "27.2.0", - "integrity": "sha512-E/2NHhq+VMo18DpKkoty8Sjey8Kps5Cqa88A8NP757s6JjYqPdioMuyUBhDiIOGCdQByEp0ou3jskkTszMS0nw==", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/reporters": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-changed-files": "^27.1.1", - "jest-config": "^27.2.0", - "jest-haste-map": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-resolve-dependencies": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "jest-watcher": "^27.2.0", - "micromatch": "^4.0.4", - "p-each-series": "^2.1.0", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "jest-config": { - "version": "27.2.0", - "integrity": "sha512-Z1romHpxeNwLxQtouQ4xt07bY6HSFGKTo0xJcvOK3u6uJHveA4LB2P+ty9ArBLpTh3AqqPxsyw9l9GMnWBYS9A==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.0", - "@jest/types": "^27.1.1", - "babel-jest": "^27.2.0", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.2.0", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0" - } - } - } - }, - "@jest/environment": { - "version": "27.2.0", - "integrity": "sha512-iPWmQI0wRIYSZX3wKu4FXHK4eIqkfq6n1DCDJS+v3uby7SOXrHvX4eiTBuEdSvtDRMTIH2kjrSkjHf/F9JIYyQ==", - "dev": true, - "requires": { - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1" - } - }, - "@jest/fake-timers": { - "version": "27.2.0", - "integrity": "sha512-gSu3YHvQOoVaTWYGgHFB7IYFtcF2HBzX4l7s47VcjvkUgL4/FBnE20x7TNLa3W6ABERtGd5gStSwsA8bcn+c4w==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@sinonjs/fake-timers": "^7.0.2", - "@types/node": "*", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" - } - }, - "@jest/globals": { - "version": "27.2.0", - "integrity": "sha512-raqk9Gf9WC3hlBa57rmRmJfRl9hom2b+qEE/ifheMtwn5USH5VZxzrHHOZg0Zsd/qC2WJ8UtyTwHKQAnNlDMdg==", - "dev": true, - "requires": { - "@jest/environment": "^27.2.0", - "@jest/types": "^27.1.1", - "expect": "^27.2.0" - } - }, - "@jest/reporters": { - "version": "27.2.0", - "integrity": "sha512-7wfkE3iRTLaT0F51h1mnxH3nQVwDCdbfgXiLuCcNkF1FnxXLH9utHqkSLIiwOTV1AtmiE0YagHbOvx4rnMP/GA==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.2", - "graceful-fs": "^4.2.4", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^4.0.3", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.0.2", - "jest-haste-map": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "slash": "^3.0.0", - "source-map": "^0.6.0", - "string-length": "^4.0.1", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^8.0.0" - } - }, - "@jest/source-map": { - "version": "27.0.6", - "integrity": "sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0", - "graceful-fs": "^4.2.4", - "source-map": "^0.6.0" - } - }, - "@jest/test-result": { - "version": "27.2.0", - "integrity": "sha512-JPPqn8h0RGr4HyeY1Km+FivDIjTFzDROU46iAvzVjD42ooGwYoqYO/MQTilhfajdz6jpVnnphFrKZI5OYrBONA==", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "27.2.0", - "integrity": "sha512-PrqarcpzOU1KSAK7aPwfL8nnpaqTMwPe7JBPnaOYRDSe/C6AoJiL5Kbnonqf1+DregxZIRAoDg69R9/DXMGqXA==", - "dev": true, - "requires": { - "@jest/test-result": "^27.2.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-runtime": "^27.2.0" - } - }, - "@jest/transform": { - "version": "27.2.0", - "integrity": "sha512-Q8Q/8xXIZYllk1AF7Ou5sV3egOZsdY/Wlv09CSbcexBRcC1Qt6lVZ7jRFAZtbHsEEzvOCyFEC4PcrwKwyjXtCg==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/types": "^27.1.1", - "babel-plugin-istanbul": "^6.0.0", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-util": "^27.2.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.1", - "slash": "^3.0.0", - "source-map": "^0.6.1", - "write-file-atomic": "^3.0.0" - } - }, - "@jest/types": { - "version": "27.1.1", - "integrity": "sha512-yqJPDDseb0mXgKqmNqypCsb85C22K1aY5+LUxh7syIM9n/b0AsaltxNy+o6tt29VcfGDpYEve175bm3uOhcehA==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0" - } - }, - "@sinonjs/commons": { - "version": "1.8.3", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "7.1.2", - "integrity": "sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@sqltools/formatter": { - "version": "1.2.3", - "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" - }, - "@tootallnate/once": { - "version": "1.1.2", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true - }, - "@tsconfig/node10": { - "version": "1.0.8", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "dev": true - }, - "@tsconfig/node12": { - "version": "1.0.9", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "dev": true - }, - "@tsconfig/node14": { - "version": "1.0.1", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "dev": true - }, - "@tsconfig/node16": { - "version": "1.0.2", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "dev": true - }, - "@types/amqplib": { - "version": "0.8.2", - "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==", - "dev": true, - "requires": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "@types/babel__core": { - "version": "7.1.16", - "integrity": "sha512-EAEHtisTMM+KaKwfWdC3oyllIqswlznXCIVCt7/oRNrh+DhgT4UEBNC/jlADNjvw7UnfbcdkGQcPVZ1xYiLcrQ==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.3", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.14.2", - "integrity": "sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/bluebird": { - "version": "3.5.36", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.1", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/express": { - "version": "4.17.13", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.24", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/json-schema": { - "version": "7.0.9", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==" - }, - "@types/jsonwebtoken": { - "version": "8.5.5", - "integrity": "sha512-OGqtHQ7N5/Ap/TUwO6IgHDuLiAoTmHhGpNvgkCm/F4N6pKzx/RBSfr2OXZSwC6vkfnsEdb6+7DNZVtiXiwdwFw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/mime": { - "version": "1.3.2", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "@types/multer": { - "version": "1.4.7", - "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/node": { - "version": "14.17.17", - "integrity": "sha512-niAjcewgEYvSPCZm3OaM9y6YQrL2SEPH9PymtE6fuZAvFiP6ereCcvApGl2jKTq7copTIguX3PBvfP08LN4LvQ==" - }, - "@types/node-fetch": { - "version": "2.5.12", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/prettier": { - "version": "2.3.2", - "integrity": "sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog==", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.10", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "16.0.4", - "integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "20.2.1", - "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==", - "dev": true - }, - "@types/zen-observable": { - "version": "0.8.3", - "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" - }, - "@yarnpkg/lockfile": { - "version": "1.1.0", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" - }, - "abab": { - "version": "2.0.5", - "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true, - "peer": true - }, - "accepts": { - "version": "1.3.7", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "8.5.0", - "integrity": "sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==", - "dev": true - }, - "acorn-globals": { - "version": "6.0.0", - "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "acorn-walk": "^7.1.1" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - } - } - }, - "acorn-walk": { - "version": "7.2.0", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "ajv": { - "version": "6.12.6", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "optional": true, - "peer": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "amqplib": { - "version": "0.8.0", - "integrity": "sha512-icU+a4kkq4Y1PS4NNi+YPDMwdlbFcZ1EZTQT2nigW3fvOb6AOgUQ9+Mk4ue0Zu5cBg/XpDzB40oH10ysrk2dmA==", - "requires": { - "bitsyntax": "~0.1.0", - "bluebird": "^3.7.2", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "safe-buffer": "~5.2.1", - "url-parse": "~1.5.1" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "any-promise": { - "version": "1.3.0", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "anymatch": { - "version": "3.1.2", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-path": { - "version": "3.0.0", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==" - }, - "append-field": { - "version": "1.0.0", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" - }, - "aproba": { - "version": "1.2.0", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true, - "peer": true - }, - "are-we-there-yet": { - "version": "1.1.7", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "peer": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true, - "peer": true - }, - "readable-stream": { - "version": "2.3.7", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "peer": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true, - "peer": true - }, - "string_decoder": { - "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "arg": { - "version": "4.1.3", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "argparse": { - "version": "1.0.10", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "asn1": { - "version": "0.2.4", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "optional": true, - "peer": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "optional": true, - "peer": true - }, - "asynckit": { - "version": "0.4.0", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "devOptional": true - }, - "aws-sign2": { - "version": "0.7.0", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "optional": true, - "peer": true - }, - "aws4": { - "version": "1.11.0", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "optional": true, - "peer": true - }, - "babel-jest": { - "version": "27.2.0", - "integrity": "sha512-bS2p+KGGVVmWXBa8+i6SO/xzpiz2Q/2LnqLbQknPKefWXVZ67YIjA4iXup/jMOEZplga9PpWn+wrdb3UdDwRaA==", - "dev": true, - "requires": { - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.0.0", - "babel-preset-jest": "^27.2.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.0.0", - "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^4.0.0", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "27.2.0", - "integrity": "sha512-TOux9khNKdi64mW+0OIhcmbAn75tTlzKhxmiNXevQaPbrBYK7YKjP1jl6NHTJ6XR5UgUrJbCnWlKVnJn29dfjw==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.0.0", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "27.2.0", - "integrity": "sha512-z7MgQ3peBwN5L5aCqBKnF6iqdlvZvFUQynEhu0J+X9nHLU72jO3iY331lcYrg+AssJ8q7xsv5/3AICzVmJ/wvg==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^27.2.0", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "optional": true, - "peer": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "better-sqlite3": { - "version": "7.4.3", - "integrity": "sha512-07bKjClZg/f4KMVRkzWtoIvazVPcF1gsvVKVIXlxwleC2DxuIhnra3KCMlUT1rFeRYXXckot2a46UciF2d9KLw==", - "optional": true, - "peer": true, - "requires": { - "bindings": "^1.5.0", - "prebuild-install": "^6.0.1", - "tar": "^6.1.0" - }, - "dependencies": { - "chownr": { - "version": "2.0.0", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true, - "peer": true - }, - "fs-minipass": { - "version": "2.1.0", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass": { - "version": "3.1.5", - "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", - "optional": true, - "peer": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "peer": true - }, - "tar": { - "version": "6.1.11", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "optional": true, - "peer": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - } - } - }, - "bindings": { - "version": "1.5.0", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "peer": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bitsyntax": { - "version": "0.1.0", - "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==", - "requires": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "bl": { - "version": "4.1.0", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "optional": true, - "peer": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "block-stream": { - "version": "0.0.9", - "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "optional": true, - "peer": true, - "requires": { - "inherits": "~2.0.0" - } - }, - "bluebird": { - "version": "3.7.2", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "body-parser": { - "version": "1.19.0", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - } - }, - "brace-expansion": { - "version": "1.1.11", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "browser-process-hrtime": { - "version": "1.0.0", - "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", - "dev": true - }, - "browserslist": { - "version": "4.17.0", - "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001254", - "colorette": "^1.3.0", - "electron-to-chromium": "^1.3.830", - "escalade": "^3.1.1", - "node-releases": "^1.1.75" - } - }, - "bser": { - "version": "2.1.1", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "5.7.1", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "optional": true, - "peer": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "buffer-from": { - "version": "1.1.2", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-more-ints": { - "version": "1.0.0", - "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" - }, - "buffer-writer": { - "version": "2.0.0", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==" - }, - "busboy": { - "version": "0.2.14", - "integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=", - "requires": { - "dicer": "0.2.5", - "readable-stream": "1.1.x" - } - }, - "bytes": { - "version": "3.1.0", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "callsites": { - "version": "3.1.0", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001258", - "integrity": "sha512-RBByOG6xWXUp0CR2/WU2amXz3stjKpSl5J1xU49F1n2OxD//uBZO4wCKUiG+QMGf7CHGfDDcqoKriomoGVxTeA==", - "dev": true - }, - "caseless": { - "version": "0.12.0", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "optional": true, - "peer": true - }, - "chalk": { - "version": "4.1.2", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "chownr": { - "version": "1.1.4", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true, - "peer": true - }, - "ci-info": { - "version": "3.2.0", - "integrity": "sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "cli-highlight": { - "version": "2.1.11", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "requires": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "dependencies": { - "parse5": { - "version": "5.1.1", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - } - } - }, - "cliui": { - "version": "7.0.4", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.2", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "co": { - "version": "4.6.0", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "optional": true, - "peer": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "colorette": { - "version": "1.4.0", - "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "devOptional": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.7", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true, - "peer": true - }, - "content-disposition": { - "version": "0.5.3", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "content-type": { - "version": "1.0.4", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.8.0", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "cookie": { - "version": "0.4.0", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-signature": { - "version": "1.0.6", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-util-is": { - "version": "1.0.3", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "create-require": { - "version": "1.1.1", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "cross-spawn": { - "version": "7.0.3", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "cssom": { - "version": "0.4.4", - "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", - "dev": true - }, - "cssstyle": { - "version": "2.3.0", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "requires": { - "cssom": "~0.3.6" - }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - } - } - }, - "dashdash": { - "version": "1.14.1", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "optional": true, - "peer": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "data-urls": { - "version": "2.0.0", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "requires": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - } - }, - "debug": { - "version": "2.6.9", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decimal.js": { - "version": "10.3.1", - "integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==", - "dev": true - }, - "decompress-response": { - "version": "4.2.1", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "optional": true, - "peer": true, - "requires": { - "mimic-response": "^2.0.0" - } - }, - "dedent": { - "version": "0.7.0", - "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", - "dev": true - }, - "deep-extend": { - "version": "0.6.0", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "optional": true, - "peer": true - }, - "deep-is": { - "version": "0.1.4", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "4.2.2", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "devOptional": true - }, - "delegates": { - "version": "1.0.0", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true, - "peer": true - }, - "depd": { - "version": "1.1.2", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-libc": { - "version": "1.0.3", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true, - "peer": true - }, - "detect-newline": { - "version": "3.1.0", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "dicer": { - "version": "0.2.5", - "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", - "requires": { - "readable-stream": "1.1.x", - "streamsearch": "0.1.2" - } - }, - "diff": { - "version": "4.0.2", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - }, - "diff-sequences": { - "version": "27.0.6", - "integrity": "sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ==", - "dev": true - }, - "domexception": { - "version": "2.0.1", - "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "dev": true, - "requires": { - "webidl-conversions": "^5.0.0" - }, - "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", - "dev": true - } - } - }, - "dotenv": { - "version": "8.6.0", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" - }, - "ecc-jsbn": { - "version": "0.1.2", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "optional": true, - "peer": true, - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.3.843", - "integrity": "sha512-OWEwAbzaVd1Lk9MohVw8LxMXFlnYd9oYTYxfX8KS++kLLjDfbovLOcEEXwRhG612dqGQ6+44SZvim0GXuBRiKg==", - "dev": true - }, - "emittery": { - "version": "0.8.1", - "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encodeurl": { - "version": "1.0.2", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "end-of-stream": { - "version": "1.4.4", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "optional": true, - "peer": true, - "requires": { - "once": "^1.4.0" - } - }, - "escalade": { - "version": "3.1.1", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "2.0.0", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "escodegen": { - "version": "2.0.0", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, - "requires": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "4.0.1", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "estraverse": { - "version": "5.2.0", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "execa": { - "version": "5.1.1", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true - }, - "expand-template": { - "version": "2.0.3", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "optional": true, - "peer": true - }, - "expect": { - "version": "27.2.0", - "integrity": "sha512-oOTbawMQv7AK1FZURbPTgGSzmhxkjFzoARSvDjOMnOpeWuYQx1tP6rXu9MIX5mrACmyCAM7fSNP8IJO2f1p0CQ==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-styles": "^5.0.0", - "jest-get-type": "^27.0.6", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-regex-util": "^27.0.6" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "express": { - "version": "4.17.1", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "express-async-errors": { - "version": "3.1.1", - "integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==", - "requires": {} - }, - "extend": { - "version": "3.0.2", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "optional": true, - "peer": true - }, - "extsprintf": { - "version": "1.3.0", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "optional": true, - "peer": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "optional": true, - "peer": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "devOptional": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", - "dev": true - }, - "fb-watchman": { - "version": "2.0.1", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "figlet": { - "version": "1.5.2", - "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==" - }, - "file-uri-to-path": { - "version": "1.0.0", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true, - "peer": true - }, - "fill-range": { - "version": "7.0.1", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-up": { - "version": "4.1.0", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "find-yarn-workspace-root": { - "version": "2.0.0", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "requires": { - "micromatch": "^4.0.2" - } - }, - "forever-agent": { - "version": "0.6.1", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "optional": true, - "peer": true - }, - "forwarded": { - "version": "0.2.0", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-constants": { - "version": "1.0.0", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "optional": true, - "peer": true - }, - "fs-extra": { - "version": "7.0.1", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "1.2.7", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^2.6.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "fstream": { - "version": "1.0.12", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "optional": true, - "peer": true, - "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "peer": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "function-bind": { - "version": "1.1.1", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "peer": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "peer": true - }, - "strip-ansi": { - "version": "3.0.1", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "peer": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-package-type": { - "version": "0.1.0", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "optional": true, - "peer": true, - "requires": { - "assert-plus": "^1.0.0" - } - }, - "github-from-package": { - "version": "0.0.0", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "optional": true, - "peer": true - }, - "glob": { - "version": "7.1.7", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.12.0", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.8", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "har-schema": { - "version": "2.0.0", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "optional": true, - "peer": true - }, - "har-validator": { - "version": "5.1.5", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "optional": true, - "peer": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has": { - "version": "1.0.3", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, - "has-flag": { - "version": "4.0.0", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-unicode": { - "version": "2.0.1", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true, - "peer": true - }, - "helmet": { - "version": "4.6.0", - "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==" - }, - "highlight.js": { - "version": "10.7.3", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" - }, - "html-encoding-sniffer": { - "version": "2.0.1", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "requires": { - "whatwg-encoding": "^1.0.5" - } - }, - "html-escaper": { - "version": "2.0.2", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-errors": { - "version": "1.7.2", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "http-signature": { - "version": "1.2.0", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "optional": true, - "peer": true, - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "human-signals": { - "version": "2.1.0", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "ignore-walk": { - "version": "3.0.4", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", - "optional": true, - "peer": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "import-local": { - "version": "3.0.2", - "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "optional": true, - "peer": true - }, - "ipaddr.js": { - "version": "1.9.1", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-ci": { - "version": "3.0.0", - "integrity": "sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ==", - "dev": true, - "requires": { - "ci-info": "^3.1.1" - } - }, - "is-core-module": { - "version": "2.6.0", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-docker": { - "version": "2.2.1", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "peer": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-generator-fn": { - "version": "2.1.0", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-potential-custom-element-name": { - "version": "1.0.1", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "devOptional": true - }, - "is-wsl": { - "version": "2.2.0", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "0.0.1", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "isexe": { - "version": "2.0.0", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" - }, - "isstream": { - "version": "0.1.2", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "optional": true, - "peer": true - }, - "istanbul-lib-coverage": { - "version": "3.0.0", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.0", - "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.0.2", - "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "27.2.0", - "integrity": "sha512-oUqVXyvh5YwEWl263KWdPUAqEzBFzGHdFLQ05hUnITr1tH+9SscEI9A/GH9eBClA+Nw1ct+KNuuOV6wlnmBPcg==", - "dev": true, - "requires": { - "@jest/core": "^27.2.0", - "import-local": "^3.0.2", - "jest-cli": "^27.2.0" - } - }, - "jest-changed-files": { - "version": "27.1.1", - "integrity": "sha512-5TV9+fYlC2A6hu3qtoyGHprBwCAn0AuGA77bZdUgYvVlRMjHXo063VcWTEAyx6XAZ85DYHqp0+aHKbPlfRDRvA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "execa": "^5.0.0", - "throat": "^6.0.1" - } - }, - "jest-circus": { - "version": "27.2.0", - "integrity": "sha512-WwENhaZwOARB1nmcboYPSv/PwHBUGRpA4MEgszjr9DLCl97MYw0qZprBwLb7rNzvMwfIvNGG7pefQ5rxyBlzIA==", - "dev": true, - "requires": { - "@jest/environment": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "expect": "^27.2.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3", - "throat": "^6.0.1" - } - }, - "jest-cli": { - "version": "27.2.0", - "integrity": "sha512-bq1X/B/b1kT9y1zIFMEW3GFRX1HEhFybiqKdbxM+j11XMMYSbU9WezfyWIhrSOmPT+iODLATVjfsCnbQs7cfIA==", - "dev": true, - "requires": { - "@jest/core": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "import-local": "^3.0.2", - "jest-config": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "prompts": "^2.0.1", - "yargs": "^16.0.3" - }, - "dependencies": { - "jest-config": { - "version": "27.2.0", - "integrity": "sha512-Z1romHpxeNwLxQtouQ4xt07bY6HSFGKTo0xJcvOK3u6uJHveA4LB2P+ty9ArBLpTh3AqqPxsyw9l9GMnWBYS9A==", - "dev": true, - "requires": { - "@babel/core": "^7.1.0", - "@jest/test-sequencer": "^27.2.0", - "@jest/types": "^27.1.1", - "babel-jest": "^27.2.0", - "chalk": "^4.0.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.1", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "jest-circus": "^27.2.0", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-get-type": "^27.0.6", - "jest-jasmine2": "^27.2.0", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-runner": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0" - } - } - } - }, - "jest-diff": { - "version": "27.2.0", - "integrity": "sha512-QSO9WC6btFYWtRJ3Hac0sRrkspf7B01mGrrQEiCW6TobtViJ9RWL0EmOs/WnBsZDsI/Y2IoSHZA2x6offu0sYw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - } - }, - "jest-docblock": { - "version": "27.0.6", - "integrity": "sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "27.2.0", - "integrity": "sha512-biDmmUQjg+HZOB7MfY2RHSFL3j418nMoC3TK3pGAj880fQQSxvQe1y2Wy23JJJNUlk6YXiGU0yWy86Le1HBPmA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0" - } - }, - "jest-environment-jsdom": { - "version": "27.2.0", - "integrity": "sha512-wNQJi6Rd/AkUWqTc4gWhuTIFPo7tlMK0RPZXeM6AqRHZA3D3vwvTa9ktAktyVyWYmUoXdYstOfyYMG3w4jt7eA==", - "dev": true, - "requires": { - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0", - "jsdom": "^16.6.0" - } - }, - "jest-environment-node": { - "version": "27.2.0", - "integrity": "sha512-WbW+vdM4u88iy6Q3ftUEQOSgMPtSgjm3qixYYK2AKEuqmFO2zmACTw1vFUB0qI/QN88X6hA6ZkVKIdIWWzz+yg==", - "dev": true, - "requires": { - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "jest-mock": "^27.1.1", - "jest-util": "^27.2.0" - } - }, - "jest-get-type": { - "version": "27.0.6", - "integrity": "sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg==", - "dev": true - }, - "jest-haste-map": { - "version": "27.2.0", - "integrity": "sha512-laFet7QkNlWjwZtMGHCucLvF8o9PAh2cgePRck1+uadSM4E4XH9J4gnx4do+a6do8ZV5XHNEAXEkIoNg5XUH2Q==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/graceful-fs": "^4.1.2", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.4", - "jest-regex-util": "^27.0.6", - "jest-serializer": "^27.0.6", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "micromatch": "^4.0.4", - "walker": "^1.0.7" - } - }, - "jest-jasmine2": { - "version": "27.2.0", - "integrity": "sha512-NcPzZBk6IkDW3Z2V8orGueheGJJYfT5P0zI/vTO/Jp+R9KluUdgFrgwfvZ0A34Kw6HKgiWFILZmh3oQ/eS+UxA==", - "dev": true, - "requires": { - "@babel/traverse": "^7.1.0", - "@jest/environment": "^27.2.0", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "expect": "^27.2.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "pretty-format": "^27.2.0", - "throat": "^6.0.1" - } - }, - "jest-leak-detector": { - "version": "27.2.0", - "integrity": "sha512-e91BIEmbZw5+MHkB4Hnrq7S86coTxUMCkz4n7DLmQYvl9pEKmRx9H/JFH87bBqbIU5B2Ju1soKxRWX6/eGFGpA==", - "dev": true, - "requires": { - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - } - }, - "jest-matcher-utils": { - "version": "27.2.0", - "integrity": "sha512-F+LG3iTwJ0gPjxBX6HCyrARFXq6jjiqhwBQeskkJQgSLeF1j6ui1RTV08SR7O51XTUhtc8zqpDj8iCG4RGmdKw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^27.2.0", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.2.0" - } - }, - "jest-message-util": { - "version": "27.2.0", - "integrity": "sha512-y+sfT/94CiP8rKXgwCOzO1mUazIEdEhrLjuiu+RKmCP+8O/TJTSne9dqQRbFIHBtlR2+q7cddJlWGir8UATu5w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^27.1.1", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "micromatch": "^4.0.4", - "pretty-format": "^27.2.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "27.1.1", - "integrity": "sha512-SClsFKuYBf+6SSi8jtAYOuPw8DDMsTElUWEae3zq7vDhH01ayVSIHUSIa8UgbDOUalCFp6gNsaikN0rbxN4dbw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "27.0.6", - "integrity": "sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ==", - "dev": true - }, - "jest-resolve": { - "version": "27.2.0", - "integrity": "sha512-v09p9Ib/VtpHM6Cz+i9lEAv1Z/M5NVxsyghRHRMEUOqwPQs3zwTdwp1xS3O/k5LocjKiGS0OTaJoBSpjbM2Jlw==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "chalk": "^4.0.0", - "escalade": "^3.1.1", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "resolve": "^1.20.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "27.2.0", - "integrity": "sha512-EY5jc/Y0oxn+oVEEldTidmmdVoZaknKPyDORA012JUdqPyqPL+lNdRyI3pGti0RCydds6coaw6xt4JQY54dKsg==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-snapshot": "^27.2.0" - } - }, - "jest-runner": { - "version": "27.2.0", - "integrity": "sha512-Cl+BHpduIc0cIVTjwoyx0pQk4Br8gn+wkr35PmKCmzEdOUnQ2wN7QVXA8vXnMQXSlFkN/+KWnk20TAVBmhgrww==", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/environment": "^27.2.0", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "exit": "^0.1.2", - "graceful-fs": "^4.2.4", - "jest-docblock": "^27.0.6", - "jest-environment-jsdom": "^27.2.0", - "jest-environment-node": "^27.2.0", - "jest-haste-map": "^27.2.0", - "jest-leak-detector": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-runtime": "^27.2.0", - "jest-util": "^27.2.0", - "jest-worker": "^27.2.0", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - } - }, - "jest-runtime": { - "version": "27.2.0", - "integrity": "sha512-6gRE9AVVX49hgBbWQ9PcNDeM4upMUXzTpBs0kmbrjyotyUyIJixLPsYjpeTFwAA07PVLDei1iAm2chmWycdGdQ==", - "dev": true, - "requires": { - "@jest/console": "^27.2.0", - "@jest/environment": "^27.2.0", - "@jest/fake-timers": "^27.2.0", - "@jest/globals": "^27.2.0", - "@jest/source-map": "^27.0.6", - "@jest/test-result": "^27.2.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/yargs": "^16.0.0", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.4", - "jest-haste-map": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-mock": "^27.1.1", - "jest-regex-util": "^27.0.6", - "jest-resolve": "^27.2.0", - "jest-snapshot": "^27.2.0", - "jest-util": "^27.2.0", - "jest-validate": "^27.2.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0", - "yargs": "^16.0.3" - } - }, - "jest-serializer": { - "version": "27.0.6", - "integrity": "sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA==", - "dev": true, - "requires": { - "@types/node": "*", - "graceful-fs": "^4.2.4" - } - }, - "jest-snapshot": { - "version": "27.2.0", - "integrity": "sha512-MukJvy3KEqemCT2FoT3Gum37CQqso/62PKTfIzWmZVTsLsuyxQmJd2PI5KPcBYFqLlA8LgZLHM8ZlazkVt8LsQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.2", - "@babel/generator": "^7.7.2", - "@babel/parser": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.0.0", - "@jest/transform": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/babel__traverse": "^7.0.4", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^27.2.0", - "graceful-fs": "^4.2.4", - "jest-diff": "^27.2.0", - "jest-get-type": "^27.0.6", - "jest-haste-map": "^27.2.0", - "jest-matcher-utils": "^27.2.0", - "jest-message-util": "^27.2.0", - "jest-resolve": "^27.2.0", - "jest-util": "^27.2.0", - "natural-compare": "^1.4.0", - "pretty-format": "^27.2.0", - "semver": "^7.3.2" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-util": { - "version": "27.2.0", - "integrity": "sha512-T5ZJCNeFpqcLBpx+Hl9r9KoxBCUqeWlJ1Htli+vryigZVJ1vuLB9j35grEBASp4R13KFkV7jM52bBGnArpJN6A==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "@types/node": "*", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.4", - "is-ci": "^3.0.0", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "27.2.0", - "integrity": "sha512-uIEZGkFKk3+4liA81Xu0maG5aGDyPLdp+4ed244c+Ql0k3aLWQYcMbaMLXOIFcb83LPHzYzqQ8hwNnIxTqfAGQ==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^27.0.6", - "leven": "^3.1.0", - "pretty-format": "^27.2.0" - }, - "dependencies": { - "camelcase": { - "version": "6.2.0", - "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "27.2.0", - "integrity": "sha512-SjRWhnr+qO8aBsrcnYIyF+qRxNZk6MZH8TIDgvi+VlsyrvOyqg0d+Rm/v9KHiTtC9mGGeFi9BFqgavyWib6xLg==", - "dev": true, - "requires": { - "@jest/test-result": "^27.2.0", - "@jest/types": "^27.1.1", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "jest-util": "^27.2.0", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "27.2.0", - "integrity": "sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsbn": { - "version": "0.1.1", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true, - "peer": true - }, - "jsdom": { - "version": "16.7.0", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "requires": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "jsesc": { - "version": "2.5.2", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-schema": { - "version": "0.2.3", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "optional": true, - "peer": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "optional": true, - "peer": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "requires": { - "jsonify": "~0.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "optional": true, - "peer": true - }, - "json5": { - "version": "2.2.0", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "jsonfile": { - "version": "4.0.0", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonify": { - "version": "0.0.0", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" - }, - "jsonwebtoken": { - "version": "8.5.1", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "jsprim": { - "version": "1.4.1", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "optional": true, - "peer": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jwa": { - "version": "1.4.1", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "klaw-sync": { - "version": "6.0.0", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", - "requires": { - "graceful-fs": "^4.1.11" - } - }, - "kleur": { - "version": "3.0.3", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "lambert-server": { - "version": "1.2.12", - "integrity": "sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw==", - "requires": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "leven": { - "version": "3.1.0", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "locate-path": { - "version": "5.0.0", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "lodash.includes": { - "version": "4.3.0", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "lru-cache": { - "version": "6.0.0", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "make-error": { - "version": "1.3.6", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "makeerror": { - "version": "1.0.11", - "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", - "dev": true, - "requires": { - "tmpl": "1.0.x" - } - }, - "media-typer": { - "version": "0.3.0", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-stream": { - "version": "2.0.0", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "4.0.4", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.49.0", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" - }, - "mime-types": { - "version": "2.1.32", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "requires": { - "mime-db": "1.49.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mimic-response": { - "version": "2.1.0", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "optional": true, - "peer": true - }, - "minimatch": { - "version": "3.0.4", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "minipass": { - "version": "2.9.0", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true, - "peer": true - } - } - }, - "minizlib": { - "version": "1.3.3", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^2.9.0" - } - }, - "missing-native-js-functions": { - "version": "1.2.18", - "integrity": "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg==" - }, - "mkdirp": { - "version": "0.5.5", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp-classic": { - "version": "0.5.3", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "optional": true, - "peer": true - }, - "ms": { - "version": "2.0.0", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multer": { - "version": "1.4.3", - "integrity": "sha512-np0YLKncuZoTzufbkM6wEKp68EhWJXcU6fq6QqrSwkckd2LlMgd1UqhUJLj6NS/5sZ8dE8LYDWslsltJznnXlg==", - "requires": { - "append-field": "^1.0.0", - "busboy": "^0.2.11", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "on-finished": "^2.3.0", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - } - }, - "mz": { - "version": "2.7.0", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "napi-build-utils": { - "version": "1.0.2", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "optional": true, - "peer": true - }, - "natural-compare": { - "version": "1.4.0", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", - "dev": true - }, - "needle": { - "version": "2.9.1", - "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", - "optional": true, - "peer": true, - "requires": { - "debug": "^3.2.6", - "iconv-lite": "^0.4.4", - "sax": "^1.2.4" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "optional": true, - "peer": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "optional": true, - "peer": true - } - } - }, - "negotiator": { - "version": "0.6.2", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "nice-try": { - "version": "1.0.5", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" - }, - "node-abi": { - "version": "2.30.1", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "optional": true, - "peer": true, - "requires": { - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "peer": true - } - } - }, - "node-addon-api": { - "version": "3.2.1", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "optional": true, - "peer": true - }, - "node-fetch": { - "version": "2.6.2", - "integrity": "sha512-aLoxToI6RfZ+0NOjmWAgn9+LEd30YCkJKFSyWacNZdEKTit/ZMcKjGkTRo8uWEsnIb/hfKecNPEbln02PdWbcA==" - }, - "node-gyp": { - "version": "3.8.0", - "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "optional": true, - "peer": true, - "requires": { - "fstream": "^1.0.0", - "glob": "^7.0.3", - "graceful-fs": "^4.1.2", - "mkdirp": "^0.5.0", - "nopt": "2 || 3", - "npmlog": "0 || 1 || 2 || 3 || 4", - "osenv": "0", - "request": "^2.87.0", - "rimraf": "2", - "semver": "~5.3.0", - "tar": "^2.0.0", - "which": "1" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "peer": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.3.0", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "optional": true, - "peer": true - }, - "which": { - "version": "1.3.1", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "optional": true, - "peer": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "node-int64": { - "version": "0.4.0", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", - "dev": true - }, - "node-modules-regexp": { - "version": "1.0.0", - "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", - "dev": true - }, - "node-pre-gyp": { - "version": "0.11.0", - "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", - "optional": true, - "peer": true, - "requires": { - "detect-libc": "^1.0.2", - "mkdirp": "^0.5.1", - "needle": "^2.2.1", - "nopt": "^4.0.1", - "npm-packlist": "^1.1.6", - "npmlog": "^4.0.2", - "rc": "^1.2.7", - "rimraf": "^2.6.1", - "semver": "^5.3.0", - "tar": "^4" - }, - "dependencies": { - "nopt": { - "version": "4.0.3", - "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", - "optional": true, - "peer": true, - "requires": { - "abbrev": "1", - "osenv": "^0.1.4" - } - }, - "rimraf": { - "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "optional": true, - "peer": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "peer": true - }, - "tar": { - "version": "4.4.19", - "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==", - "optional": true, - "peer": true, - "requires": { - "chownr": "^1.1.4", - "fs-minipass": "^1.2.7", - "minipass": "^2.9.0", - "minizlib": "^1.3.3", - "mkdirp": "^0.5.5", - "safe-buffer": "^5.2.1", - "yallist": "^3.1.1" - } - }, - "yallist": { - "version": "3.1.1", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "optional": true, - "peer": true - } - } - }, - "node-releases": { - "version": "1.1.75", - "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==", - "dev": true - }, - "nopt": { - "version": "3.0.6", - "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "optional": true, - "peer": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-bundled": { - "version": "1.1.2", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", - "optional": true, - "peer": true, - "requires": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "optional": true, - "peer": true - }, - "npm-packlist": { - "version": "1.4.8", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "optional": true, - "peer": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "npm-run-path": { - "version": "4.0.1", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "peer": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "optional": true, - "peer": true - }, - "nwsapi": { - "version": "2.2.0", - "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", - "dev": true - }, - "oauth-sign": { - "version": "0.9.0", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "optional": true, - "peer": true - }, - "object-assign": { - "version": "4.1.1", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "on-finished": { - "version": "2.3.0", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "7.4.2", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - } - }, - "optionator": { - "version": "0.8.3", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "os-homedir": { - "version": "1.0.2", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "optional": true, - "peer": true - }, - "os-tmpdir": { - "version": "1.0.2", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" - }, - "osenv": { - "version": "0.1.5", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "optional": true, - "peer": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "p-each-series": { - "version": "2.2.0", - "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", - "dev": true - }, - "p-limit": { - "version": "2.3.0", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "packet-reader": { - "version": "1.0.0", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" - }, - "parent-require": { - "version": "1.0.0", - "integrity": "sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc=" - }, - "parse5": { - "version": "6.0.1", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "requires": { - "parse5": "^6.0.1" - } - }, - "parseurl": { - "version": "1.3.3", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "patch-package": { - "version": "6.4.7", - "integrity": "sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==", - "requires": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^2.4.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^7.0.1", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.0", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "ci-info": { - "version": "2.0.0", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" - }, - "color-convert": { - "version": "1.9.3", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" - }, - "cross-spawn": { - "version": "6.0.5", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "has-flag": { - "version": "3.0.0", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" - }, - "is-ci": { - "version": "2.0.0", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "requires": { - "ci-info": "^2.0.0" - } - }, - "path-key": { - "version": "2.0.1", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" - }, - "rimraf": { - "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "shebang-command": { - "version": "1.2.0", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" - }, - "slash": { - "version": "2.0.0", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" - }, - "supports-color": { - "version": "5.5.0", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "path-exists": { - "version": "4.0.0", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "performance-now": { - "version": "2.1.0", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "optional": true, - "peer": true - }, - "pg": { - "version": "8.7.1", - "integrity": "sha512-7bdYcv7V6U3KAtWjpQJJBww0UEsWuh4yQ/EjNf2HeO/NnvKjpvhEIe/A/TleP6wtmSKnUnghs5A9jUoK6iDdkA==", - "requires": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.4.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - } - }, - "pg-connection-string": { - "version": "2.5.0", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" - }, - "pg-int8": { - "version": "1.0.1", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" - }, - "pg-pool": { - "version": "3.4.1", - "integrity": "sha512-TVHxR/gf3MeJRvchgNHxsYsTCHQ+4wm3VIHSS19z8NC0+gioEhq1okDY1sm/TYbfoP6JLFx01s0ShvZ3puP/iQ==", - "requires": {} - }, - "pg-protocol": { - "version": "1.5.0", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" - }, - "pg-types": { - "version": "2.2.0", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "requires": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - } - }, - "pgpass": { - "version": "1.0.4", - "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==", - "requires": { - "split2": "^3.1.1" - } - }, - "picomatch": { - "version": "2.3.0", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==" - }, - "pirates": { - "version": "4.0.1", - "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", - "dev": true, - "requires": { - "node-modules-regexp": "^1.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "postgres-array": { - "version": "2.0.0", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==" - }, - "postgres-bytea": { - "version": "1.0.0", - "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=" - }, - "postgres-date": { - "version": "1.0.7", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==" - }, - "postgres-interval": { - "version": "1.2.0", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "requires": { - "xtend": "^4.0.0" - } - }, - "prebuild-install": { - "version": "6.1.4", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", - "optional": true, - "peer": true, - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "dev": true - }, - "pretty-format": { - "version": "27.2.0", - "integrity": "sha512-KyJdmgBkMscLqo8A7K77omgLx5PWPiXJswtTtFV7XgVZv2+qPk6UivpXXO+5k6ZEbWIbLoKdx1pZ6ldINzbwTA==", - "dev": true, - "requires": { - "@jest/types": "^27.1.1", - "ansi-regex": "^5.0.0", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "prompts": { - "version": "2.4.1", - "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "proxy-addr": { - "version": "2.0.7", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "psl": { - "version": "1.8.0", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "devOptional": true - }, - "pump": { - "version": "3.0.0", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "optional": true, - "peer": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "punycode": { - "version": "2.1.1", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "devOptional": true - }, - "qs": { - "version": "6.7.0", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "querystringify": { - "version": "2.2.0", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "range-parser": { - "version": "1.2.1", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.0", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "optional": true, - "peer": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react-is": { - "version": "17.0.2", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "request": { - "version": "2.88.2", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "optional": true, - "peer": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "form-data": { - "version": "2.3.3", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "optional": true, - "peer": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "qs": { - "version": "6.5.2", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "optional": true, - "peer": true - }, - "tough-cookie": { - "version": "2.5.0", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "optional": true, - "peer": true, - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } - } - }, - "require-directory": { - "version": "2.1.1", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "requires-port": { - "version": "1.0.0", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.20.0", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "rimraf": { - "version": "3.0.2", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.2.1", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "saxes": { - "version": "5.0.1", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "requires": { - "xmlchars": "^2.2.0" - } - }, - "semver": { - "version": "6.3.0", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "send": { - "version": "0.17.1", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "serve-static": { - "version": "1.14.1", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "optional": true, - "peer": true - }, - "setprototypeof": { - "version": "1.1.1", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "sha.js": { - "version": "2.4.11", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "signal-exit": { - "version": "3.0.4", - "integrity": "sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==", - "devOptional": true - }, - "simple-concat": { - "version": "1.0.1", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "optional": true, - "peer": true - }, - "simple-get": { - "version": "3.1.0", - "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", - "optional": true, - "peer": true, - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sisteransi": { - "version": "1.0.5", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-support": { - "version": "0.5.20", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "split2": { - "version": "3.2.2", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "requires": { - "readable-stream": "^3.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sqlite3": { - "version": "5.0.2", - "integrity": "sha512-1SdTNo+BVU211Xj1csWa8lV6KM0CtucDwRyA0VHl91wEH1Mgh7RxUpI4rVvG7OhHrzCSGaVyW5g8vKvlrk9DJA==", - "optional": true, - "peer": true, - "requires": { - "node-addon-api": "^3.0.0", - "node-gyp": "3.x", - "node-pre-gyp": "^0.11.0" - } - }, - "sshpk": { - "version": "1.16.1", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "optional": true, - "peer": true, - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "stack-utils": { - "version": "2.0.5", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "statuses": { - "version": "1.5.0", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "streamsearch": { - "version": "0.1.2", - "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" - }, - "string_decoder": { - "version": "0.10.31", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "string-length": { - "version": "4.0.2", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "peer": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "peer": true - }, - "strip-ansi": { - "version": "3.0.1", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "peer": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "strip-ansi": { - "version": "6.0.0", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-bom": { - "version": "4.0.0", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "optional": true, - "peer": true - }, - "supports-color": { - "version": "7.2.0", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "symbol-tree": { - "version": "3.2.4", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true - }, - "tar": { - "version": "2.2.2", - "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "optional": true, - "peer": true, - "requires": { - "block-stream": "*", - "fstream": "^1.0.12", - "inherits": "2" - } - }, - "tar-fs": { - "version": "2.1.1", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "optional": true, - "peer": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "tar-stream": { - "version": "2.2.0", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "optional": true, - "peer": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "terminal-link": { - "version": "2.1.1", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "thenify": { - "version": "3.3.1", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "throat": { - "version": "6.0.1", - "integrity": "sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==", - "dev": true - }, - "tmp": { - "version": "0.0.33", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "requires": { - "os-tmpdir": "~1.0.2" - } - }, - "tmpl": { - "version": "1.0.5", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "tough-cookie": { - "version": "4.0.0", - "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", - "dev": true, - "requires": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.1.2" - } - }, - "tr46": { - "version": "2.1.0", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", - "dev": true, - "requires": { - "punycode": "^2.1.1" - } - }, - "ts-node": { - "version": "10.2.1", - "integrity": "sha512-hCnyOyuGmD5wHleOQX6NIjJtYVIO8bPP8F2acWkB4W06wdlkgyvJtubO/I9NkI88hCFECbsEgoLc0VNkYmcSfw==", - "dev": true, - "requires": { - "@cspotcode/source-map-support": "0.6.1", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "yn": "3.1.1" - }, - "dependencies": { - "acorn-walk": { - "version": "8.2.0", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true - } - } - }, - "tslib": { - "version": "2.3.1", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "tunnel-agent": { - "version": "0.6.0", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true, - "peer": true - }, - "type-check": { - "version": "0.3.2", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "requires": { - "is-typedarray": "^1.0.0" - } - }, - "typeorm": { - "version": "0.2.38", - "integrity": "sha512-M6Y3KQcAREQcphOVJciywf4mv6+A0I/SeR+lWNjKsjnQ+a3XcMwGYMGL0Jonsx3H0Cqlf/3yYqVki1jIXSK/xg==", - "requires": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "debug": "^4.3.1", - "dotenv": "^8.2.0", - "glob": "^7.1.6", - "js-yaml": "^4.0.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.1.0", - "xml2js": "^0.4.23", - "yargonaut": "^1.1.4", - "yargs": "^17.0.1", - "zen-observable-ts": "^1.0.0" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "buffer": { - "version": "6.0.3", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "js-yaml": { - "version": "4.1.0", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "string-width": { - "version": "4.2.2", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "yargs": { - "version": "17.1.1", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "typescript": { - "version": "4.4.3", - "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==" - }, - "typescript-json-schema": { - "version": "0.50.1", - "integrity": "sha512-GCof/SDoiTDl0qzPonNEV4CHyCsZEIIf+mZtlrjoD8vURCcEzEfa2deRuxYid8Znp/e27eDR7Cjg8jgGrimBCA==", - "requires": { - "@types/json-schema": "^7.0.7", - "@types/node": "^14.14.33", - "glob": "^7.1.6", - "json-stable-stringify": "^1.0.1", - "ts-node": "^9.1.1", - "typescript": "~4.2.3", - "yargs": "^16.2.0" - }, - "dependencies": { - "ts-node": { - "version": "9.1.1", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "typescript": { - "version": "4.2.4", - "integrity": "sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==" - } - } - }, - "universalify": { - "version": "0.1.2", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "uri-js": { - "version": "4.4.1", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "optional": true, - "peer": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.4.0", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "optional": true, - "peer": true - }, - "v8-to-istanbul": { - "version": "8.0.0", - "integrity": "sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "source-map": { - "version": "0.7.3", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true - } - } - }, - "vary": { - "version": "1.1.2", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "optional": true, - "peer": true, - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "dependencies": { - "core-util-is": { - "version": "1.0.2", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "optional": true, - "peer": true - } - } - }, - "w3c-hr-time": { - "version": "1.0.2", - "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "dev": true, - "requires": { - "browser-process-hrtime": "^1.0.0" - } - }, - "w3c-xmlserializer": { - "version": "2.0.0", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "requires": { - "xml-name-validator": "^3.0.0" - } - }, - "walker": { - "version": "1.0.7", - "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", - "dev": true, - "requires": { - "makeerror": "1.0.x" - } - }, - "webidl-conversions": { - "version": "6.1.0", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true - }, - "whatwg-encoding": { - "version": "1.0.5", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "requires": { - "iconv-lite": "0.4.24" - } - }, - "whatwg-mimetype": { - "version": "2.3.0", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, - "whatwg-url": { - "version": "8.7.0", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "requires": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - } - }, - "which": { - "version": "2.0.2", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.3", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "optional": true, - "peer": true, - "requires": { - "string-width": "^1.0.2 || 2" - } - }, - "word-wrap": { - "version": "1.2.3", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.2", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "3.0.3", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "ws": { - "version": "7.5.5", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "dev": true, - "requires": {} - }, - "xml-name-validator": { - "version": "3.0.0", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, - "xml2js": { - "version": "0.4.23", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - }, - "xmlchars": { - "version": "2.2.0", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "5.0.8", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "devOptional": true - }, - "yargonaut": { - "version": "1.1.4", - "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", - "requires": { - "chalk": "^1.1.1", - "figlet": "^1.1.1", - "parent-require": "^1.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "strip-ansi": { - "version": "3.0.1", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "yargs": { - "version": "16.2.0", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.2", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "yargs-parser": { - "version": "20.2.9", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - }, - "yn": { - "version": "3.1.1", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" - }, - "zen-observable": { - "version": "0.8.15", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "zen-observable-ts": { - "version": "1.1.0", - "integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==", - "requires": { - "@types/zen-observable": "0.8.3", - "zen-observable": "0.8.15" - } - } - } - }, - "@mapbox/node-pre-gyp": { - "version": "1.0.5", - "integrity": "sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==", - "optional": true, - "requires": { - "detect-libc": "^1.0.3", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.1", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "rimraf": "^3.0.2", - "semver": "^7.3.4", - "tar": "^6.1.0" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "7.3.5", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@sqltools/formatter": { - "version": "1.2.3", - "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@types/amqplib": { - "version": "0.8.2", - "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==", - "dev": true, - "requires": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "@types/bluebird": { - "version": "3.5.36", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "@types/jsonwebtoken": { - "version": "8.5.5", - "integrity": "sha512-OGqtHQ7N5/Ap/TUwO6IgHDuLiAoTmHhGpNvgkCm/F4N6pKzx/RBSfr2OXZSwC6vkfnsEdb6+7DNZVtiXiwdwFw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/node": { - "version": "14.17.16", - "integrity": "sha512-WiFf2izl01P1CpeY8WqFAeKWwByMueBEkND38EcN8N68qb0aDG3oIS1P5MhAX5kUdr469qRyqsY/MjanLjsFbQ==", - "dev": true - }, - "@types/node-fetch": { - "version": "2.5.12", - "integrity": "sha512-MKgC4dlq4kKNa/mYrwpKfzQMB5X3ee5U6fSprkKpToBqBmX4nFZL9cW5jl6sWn+xpRJ7ypWh2yyqqr8UUCstSw==", - "dev": true, - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "@types/strip-bom": { - "version": "3.0.0", - "integrity": "sha1-FKjsOVbC6B7bdSB5CuzyHCkK69I=", - "dev": true - }, - "@types/strip-json-comments": { - "version": "0.0.30", - "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", - "dev": true - }, - "@types/ws": { - "version": "7.4.7", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/zen-observable": { - "version": "0.8.3", - "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==" - }, - "@yukikaze-bot/erlpack": { - "version": "1.0.1", - "integrity": "sha512-PCJ2lGCf8DsQtrE411PY+NTsolK48l4InNn1kcBo0iUllKZYGLqeqXEWGA/INrmwanKcoYkU4pBySqUFLQDEoA==", - "optional": true, - "requires": { - "@mapbox/node-pre-gyp": "^1.0.5", - "node-addon-api": "^4.0.0" - } - }, - "@zerollup/ts-helpers": { - "version": "1.7.18", - "integrity": "sha512-S9zN+y+i5yN/evfWquzSO3lubqPXIsPQf6p9OiPMpRxDx/0totPLF39XoRw48Dav5dSvbIE8D2eAPpXXJxvKwg==", - "dev": true, - "requires": { - "resolve": "^1.12.0" - } - }, - "@zerollup/ts-transform-paths": { - "version": "1.7.18", - "integrity": "sha512-YPVUxvWQVzRx1OBN0Pmkd58+R9FcfUJuwTaPUSoi5rKxuXMtxevTXdfi0w5mEaIH8b0DfL+wg0wFDHiJE+S2zA==", - "dev": true, - "requires": { - "@zerollup/ts-helpers": "^1.7.18" - } - }, - "abbrev": { - "version": "1.1.1", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true - }, - "accepts": { - "version": "1.3.7", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - }, - "agent-base": { - "version": "6.0.2", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "amqplib": { - "version": "0.8.0", - "integrity": "sha512-icU+a4kkq4Y1PS4NNi+YPDMwdlbFcZ1EZTQT2nigW3fvOb6AOgUQ9+Mk4ue0Zu5cBg/XpDzB40oH10ysrk2dmA==", - "requires": { - "bitsyntax": "~0.1.0", - "bluebird": "^3.7.2", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "safe-buffer": "~5.2.1", - "url-parse": "~1.5.1" - } - }, - "ansi-regex": { - "version": "5.0.1", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "any-promise": { - "version": "1.3.0", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "anymatch": { - "version": "3.1.2", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-path": { - "version": "3.0.0", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==" - }, - "aproba": { - "version": "1.2.0", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.7", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true - }, - "readable-stream": { - "version": "2.3.7", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true - }, - "string_decoder": { - "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "arg": { - "version": "4.1.3", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "2.0.1", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "array-flatten": { - "version": "1.1.1", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "requires": { - "tslib": "^2.0.1" - } - }, - "asynckit": { - "version": "0.4.0", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "balanced-match": { - "version": "1.0.2", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "binary-extensions": { - "version": "2.2.0", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bitsyntax": { - "version": "0.1.0", - "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==", - "requires": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "bl": { - "version": "2.2.1", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "optional": true, - "peer": true, - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true, - "peer": true - }, - "readable-stream": { - "version": "2.3.7", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "peer": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true, - "peer": true - }, - "string_decoder": { - "version": "1.1.1", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "bluebird": { - "version": "3.7.2", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" - }, - "body-parser": { - "version": "1.19.0", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - } - }, - "brace-expansion": { - "version": "1.1.11", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "buffer-from": { - "version": "1.1.2", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buffer-more-ints": { - "version": "1.0.0", - "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" - }, - "bytes": { - "version": "3.1.0", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "chalk": { - "version": "4.1.2", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "chokidar": { - "version": "3.5.2", - "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "chownr": { - "version": "2.0.0", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true - }, - "cli-highlight": { - "version": "2.1.11", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "requires": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "dependencies": { - "yargs": { - "version": "16.2.0", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - } - } - }, - "cliui": { - "version": "7.0.4", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "code-point-at": { - "version": "1.1.0", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "optional": true - }, - "color-convert": { - "version": "2.0.1", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "combined-stream": { - "version": "1.0.8", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "console-control-strings": { - "version": "1.1.0", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true - }, - "content-disposition": { - "version": "0.5.3", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "content-type": { - "version": "1.0.4", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.4.0", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-signature": { - "version": "1.0.6", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-util-is": { - "version": "1.0.3", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "create-require": { - "version": "1.1.1", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" - }, - "debug": { - "version": "2.6.9", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "degenerator": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.1.tgz", - "integrity": "sha512-LFsIFEeLPlKvAKXu7j3ssIG6RT0TbI7/GhsqrI0DnHASEQjXQ0LUSYcjJteGgRGmZbl1TnMSxpNQIAiJ7Du5TQ==", - "requires": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.3" - } - }, - "delayed-stream": { - "version": "1.0.0", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true - }, - "denque": { - "version": "1.5.1", - "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", - "optional": true, - "peer": true - }, - "depd": { - "version": "1.1.2", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-libc": { - "version": "1.0.3", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true - }, - "diff": { - "version": "4.0.2", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true - }, - "dotenv": { - "version": "8.6.0", - "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==" - }, - "dynamic-dedupe": { - "version": "0.3.0", - "integrity": "sha1-BuRMIj9eTpTXjvnbI6ZRXOL5YqE=", - "dev": true, - "requires": { - "xtend": "^4.0.0" - } - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "emoji-regex": { - "version": "8.0.0", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encodeurl": { - "version": "1.0.2", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "escalade": { - "version": "3.1.1", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "1.0.5", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" - }, - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "express": { - "version": "4.17.1", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "express-async-errors": { - "version": "3.1.1", - "integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==", - "requires": {} - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "figlet": { - "version": "1.5.2", - "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==" - }, - "file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==" - }, - "fill-range": { - "version": "7.0.1", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "form-data": { - "version": "3.0.1", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "optional": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - } - }, - "function-bind": { - "version": "1.1.1", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "get-caller-file": { - "version": "2.0.5", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", - "requires": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "glob": { - "version": "7.1.7", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "global-prefix": { - "version": "3.0.0", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", - "dev": true, - "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" - } - }, - "graceful-fs": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.8.tgz", - "integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==" - }, - "has": { - "version": "1.0.3", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "requires": { - "ansi-regex": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - } - } - }, - "has-flag": { - "version": "4.0.0", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-unicode": { - "version": "2.0.1", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true - }, - "helmet": { - "version": "4.6.0", - "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==" - }, - "highlight.js": { - "version": "10.7.3", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" - }, - "http-errors": { - "version": "1.7.2", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "iconv-lite": { - "version": "0.4.24", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inflight": { - "version": "1.0.6", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.3", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "ini": { - "version": "1.3.8", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "interpret": { - "version": "1.4.0", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "dev": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ipaddr.js": { - "version": "1.9.1", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-binary-path": { - "version": "2.1.0", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.6.0", - "integrity": "sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-glob": { - "version": "4.0.1", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "isexe": { - "version": "2.0.0", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "js-yaml": { - "version": "4.1.0", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonwebtoken": { - "version": "8.5.1", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "jwa": { - "version": "1.4.1", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "kind-of": { - "version": "6.0.3", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "lambert-server": { - "version": "1.2.11", - "integrity": "sha512-6Uqritpx+ryNWrzLv9YXNqSfCZ10EQh97cHtz8nZMH2WiZm0wL+C3vSMhevdKAE8xdtmeIQXc3idH94nQEx9mA==", - "requires": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lodash.includes": { - "version": "4.3.0", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "lru-cache": { - "version": "6.0.0", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "optional": true, - "requires": { - "semver": "^6.0.0" - }, - "dependencies": { - "semver": { - "version": "6.3.0", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "optional": true - } - } - }, - "make-error": { - "version": "1.3.6", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "memory-pager": { - "version": "1.5.0", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "optional": true, - "peer": true - }, - "merge-descriptors": { - "version": "1.0.1", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.6.0", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.49.0", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" - }, - "mime-types": { - "version": "2.1.32", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "requires": { - "mime-db": "1.49.0" - } - }, - "minimatch": { - "version": "3.0.4", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "minipass": { - "version": "3.1.5", - "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "optional": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "missing-native-js-functions": { - "version": "1.2.18", - "integrity": "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg==" - }, - "mkdirp": { - "version": "1.0.4", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "mongodb": { - "version": "3.6.11", - "integrity": "sha512-4Y4lTFHDHZZdgMaHmojtNAlqkvddX2QQBEN0K//GzxhGwlI9tZ9R0vhbjr1Decw+TF7qK0ZLjQT292XgHRRQgw==", - "optional": true, - "peer": true, - "requires": { - "bl": "^2.2.1", - "bson": "^1.1.4", - "denque": "^1.4.1", - "optional-require": "^1.0.3", - "safe-buffer": "^5.1.2", - "saslprep": "^1.0.0" - }, - "dependencies": { - "bson": { - "version": "1.1.6", - "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==", - "optional": true, - "peer": true - } - } - }, - "ms": { - "version": "2.0.0", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "mz": { - "version": "2.7.0", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "negotiator": { - "version": "0.6.2", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" - }, - "node-addon-api": { - "version": "4.2.0", - "integrity": "sha512-eazsqzwG2lskuzBqCGPi7Ac2UgOoMz8JVOXVhTvvPDYhthvNpefx8jWD8Np7Gv+2Sz0FlPWZk0nJV0z598Wn8Q==", - "optional": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "nopt": { - "version": "5.0.0", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npmlog": { - "version": "4.1.2", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "on-finished": { - "version": "2.3.0", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "optional-require": { - "version": "1.0.3", - "integrity": "sha512-RV2Zp2MY2aeYK5G+B/Sps8lW5NHAzE5QClbFP15j+PWmP+T9PxlJXBOOLoSAdgwFvS4t0aMR4vpedMkbHfh0nA==", - "optional": true, - "peer": true - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "pac-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", - "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "pac-resolver": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.0.tgz", - "integrity": "sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA==", - "requires": { - "degenerator": "^3.0.1", - "ip": "^1.1.5", - "netmask": "^2.0.1" - } - }, - "parent-require": { - "version": "1.0.0", - "integrity": "sha1-dGoWdjgIOoYLDu9nMssn7UbDKXc=" - }, - "parse5": { - "version": "5.1.1", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "requires": { - "parse5": "^6.0.1" - }, - "dependencies": { - "parse5": { - "version": "6.0.1", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - } - } - }, - "parseurl": { - "version": "1.3.3", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-is-absolute": { - "version": "1.0.1", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-parse": { - "version": "1.0.7", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "picomatch": { - "version": "2.3.0", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "process-nextick-args": { - "version": "2.0.1", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "optional": true - }, - "proxy-addr": { - "version": "2.0.7", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", - "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", - "requires": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "qs": { - "version": "6.7.0", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "querystringify": { - "version": "2.2.0", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "range-parser": { - "version": "1.2.1", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.0", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "1.1.14", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "readdirp": { - "version": "3.6.0", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.6.2", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "require-directory": { - "version": "2.1.1", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "requires-port": { - "version": "1.0.0", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.20.0", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", - "dev": true, - "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" - } - }, - "rimraf": { - "version": "2.7.1", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.2.1", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "saslprep": { - "version": "1.0.3", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "optional": true, - "peer": true, - "requires": { - "sparse-bitfield": "^3.0.3" - } - }, - "sax": { - "version": "1.2.4", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "semver": { - "version": "5.7.1", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "send": { - "version": "0.17.1", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "serve-static": { - "version": "1.14.1", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "optional": true - }, - "setprototypeof": { - "version": "1.1.1", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "sha.js": { - "version": "2.4.11", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shelljs": { - "version": "0.8.4", - "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } - }, - "signal-exit": { - "version": "3.0.4", - "integrity": "sha512-rqYhcAnZ6d/vTPGghdrw7iumdcbXpsk1b8IG/rz+VWV51DM0p7XCtMoJ3qhPLIbp3tvyt3pKRbaaEMZYpHto8Q==", - "optional": true - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, - "socks": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.1.tgz", - "integrity": "sha512-kLQ9N5ucj8uIcxrDwjm0Jsqk06xdpBjGNQtpXy4Q8/QY2k+fY7nZH8CARy+hkbG+SGAovmzzuauCpBlb8FrnBA==", - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "requires": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "source-map": { - "version": "0.6.1", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true - }, - "source-map-support": { - "version": "0.5.20", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "sparse-bitfield": { - "version": "3.0.3", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", - "optional": true, - "peer": true, - "requires": { - "memory-pager": "^1.0.2" - } - }, - "statuses": { - "version": "1.5.0", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "string_decoder": { - "version": "0.10.31", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "string-width": { - "version": "4.2.2", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "strip-bom": { - "version": "3.0.0", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "tar": { - "version": "6.1.11", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "optional": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, - "thenify": { - "version": "3.3.1", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "to-regex-range": { - "version": "5.0.1", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" - }, - "tree-kill": { - "version": "1.2.2", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, - "ts-node": { - "version": "9.1.1", - "integrity": "sha512-hPlt7ZACERQGf03M253ytLY3dHbGNGrAq9qIHWUY9XHYl1z7wYngSr3OQ5xmui8o2AaxsONxIzjafLUiWBo1Fg==", - "dev": true, - "requires": { - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.17", - "yn": "3.1.1" - } - }, - "ts-node-dev": { - "version": "1.1.8", - "integrity": "sha512-Q/m3vEwzYwLZKmV6/0VlFxcZzVV/xcgOt+Tx/VjaaRHyiBcFlV0541yrT09QjzzCxlDZ34OzKjrFAynlmtflEg==", - "dev": true, - "requires": { - "chokidar": "^3.5.1", - "dynamic-dedupe": "^0.3.0", - "minimist": "^1.2.5", - "mkdirp": "^1.0.4", - "resolve": "^1.0.0", - "rimraf": "^2.6.1", - "source-map-support": "^0.5.12", - "tree-kill": "^1.2.2", - "ts-node": "^9.0.0", - "tsconfig": "^7.0.0" - } - }, - "ts-patch": { - "version": "1.4.4", - "integrity": "sha512-b0CxxrkrCGsD22gl5BtSFlXzyTFP2mbOVffxMOWRrwdSh37sM01wzxSY4wlbBiHHHAJICmaaDgESzJ8lKkVoZA==", - "dev": true, - "requires": { - "chalk": "^4.1.0", - "glob": "^7.1.7", - "global-prefix": "^3.0.0", - "minimist": "^1.2.5", - "resolve": "^1.20.0", - "shelljs": "^0.8.4", - "strip-ansi": "^6.0.0" - } - }, - "tsconfig": { - "version": "7.0.0", - "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", - "dev": true, - "requires": { - "@types/strip-bom": "^3.0.0", - "@types/strip-json-comments": "0.0.30", - "strip-bom": "^3.0.0", - "strip-json-comments": "^2.0.0" - } - }, - "tslib": { - "version": "2.3.1", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-is": { - "version": "1.6.18", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typeorm": { - "version": "0.2.37", - "integrity": "sha512-7rkW0yCgFC24I5T0f3S/twmLSuccPh1SQmxET/oDWn2sSDVzbyWdnItSdKy27CdJGTlKHYtUVeOcMYw5LRsXVw==", - "requires": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "debug": "^4.3.1", - "dotenv": "^8.2.0", - "glob": "^7.1.6", - "js-yaml": "^4.0.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.1.0", - "xml2js": "^0.4.23", - "yargonaut": "^1.1.4", - "yargs": "^17.0.1", - "zen-observable-ts": "^1.0.0" - }, - "dependencies": { - "buffer": { - "version": "6.0.3", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "debug": { - "version": "4.3.2", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "typescript": { - "version": "4.4.3", - "integrity": "sha512-4xfscpisVgqqDfPaJo5vkd+Qd/ItkoagnHpufr+i2QCHBsNYp+G7UAoyFl8aPtx879u38wPV65rZ8qbGZijalA==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "optional": true - }, - "utils-merge": { - "version": "1.0.1", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "vary": { - "version": "1.1.2", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vm2": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.7.tgz", - "integrity": "sha512-g/GZ7V0Mlmch3eDVOATvAXr1GsJNg6kQ5PjvYy3HbJMCRn5slNbo/u73Uy7r5yUej1cRa3ZjtoVwcWSQuQ/fow==", - "requires": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.3", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "optional": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "optional": true - }, - "string-width": { - "version": "2.1.1", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "optional": true, - "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - } - }, - "strip-ansi": { - "version": "4.0.0", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "optional": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "wrap-ansi": { - "version": "7.0.0", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "ws": { - "version": "7.5.5", - "integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==", - "requires": {} - }, - "xml2js": { - "version": "0.4.23", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" - }, - "xtend": { - "version": "4.0.2", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "yargonaut": { - "version": "1.1.4", - "integrity": "sha512-rHgFmbgXAAzl+1nngqOcwEljqHGG9uUZoPjsdZEs1w5JW9RXYzrSvH/u70C1JE5qFi0qjsdhnUX/dJRpWqitSA==", - "requires": { - "chalk": "^1.1.1", - "figlet": "^1.1.1", - "parent-require": "^1.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" - }, - "ansi-styles": { - "version": "2.2.1", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" - }, - "chalk": { - "version": "1.1.3", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" - } - } - }, - "yargs": { - "version": "17.1.1", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - }, - "yn": { - "version": "3.1.1", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true - }, - "zen-observable": { - "version": "0.8.15", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "zen-observable-ts": { - "version": "1.1.0", - "integrity": "sha512-1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==", - "requires": { - "@types/zen-observable": "0.8.3", - "zen-observable": "0.8.15" - } - } - } -} diff --git a/gateway/package.json b/gateway/package.json deleted file mode 100644 index f9e9f030..00000000 --- a/gateway/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "@fosscord/gateway", - "version": "1.0.0", - "description": "", - "main": "dist/index.js", - "types": "src/index.ts", - "scripts": { - "postinstall": "npx ts-patch install -s", - "test": "echo \"Error: no test specified\" && exit 1", - "start": "npm run build && node dist/start.js", - "build": "npx tsc -p .", - "dev": "npx tsnd --respawn src/start.ts" - }, - "keywords": [], - "author": "Fosscord", - "license": "AGPL-3.0-only", - "devDependencies": { - "@types/amqplib": "^0.8.1", - "@types/node": "^18.0.6", - "@types/ws": "^8.5.3", - "ts-node-dev": "^2.0.0", - "ts-patch": "^2.0.1", - "typescript": "^4.2.3" - }, - "dependencies": { - "@fosscord/util": "file:../util", - "amqplib": "^0.10.1", - "dotenv": "^16.0.1", - "typeorm": "^0.3.7", - "ws": "^8.8.1" - }, - "optionalDependencies": { - "@yukikaze-bot/erlpack": "^1.0.1" - } -} diff --git a/gateway/src/Server.ts b/gateway/src/Server.ts deleted file mode 100644 index 82fbeba2..00000000 --- a/gateway/src/Server.ts +++ /dev/null @@ -1,62 +0,0 @@ -import dotenv from "dotenv"; -dotenv.config(); -import { closeDatabase, Config, getOrInitialiseDatabase, initEvent } from "@fosscord/util"; -import ws from "ws"; -import { Connection } from "./events/Connection"; -import http from "http"; - -export class Server { - public ws: ws.Server; - public port: number; - public server: http.Server; - public production: boolean; - - constructor({ - port, - server, - production, - }: { - port: number; - server?: http.Server; - production?: boolean; - }) { - this.port = port; - this.production = production || false; - - if (server) this.server = server; - else { - this.server = http.createServer(function (req, res) { - res.writeHead(200).end("Online"); - }); - } - - this.server.on("upgrade", (request, socket, head) => { - // @ts-ignore - this.ws.handleUpgrade(request, socket, head, (socket) => { - this.ws.emit("connection", socket, request); - }); - }); - - this.ws = new ws.Server({ - maxPayload: 4096, - noServer: true, - }); - this.ws.on("connection", Connection); - this.ws.on("error", console.error); - } - - async start(): Promise { - await getOrInitialiseDatabase(); - await Config.init(); - await initEvent(); - if (!this.server.listening) { - this.server.listen(this.port); - console.log(`[Gateway] online on 0.0.0.0:${this.port}`); - } - } - - async stop() { - closeDatabase(); - this.server.close(); - } -} diff --git a/gateway/src/events/Close.ts b/gateway/src/events/Close.ts deleted file mode 100644 index 5b7c512c..00000000 --- a/gateway/src/events/Close.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { WebSocket } from "@fosscord/gateway"; -import { - emitEvent, - PresenceUpdateEvent, - PrivateSessionProjection, - Session, - SessionsReplace, - User, -} from "@fosscord/util"; - -export async function Close(this: WebSocket, code: number, reason: string) { - console.log("[WebSocket] closed", code, reason); - if (this.heartbeatTimeout) clearTimeout(this.heartbeatTimeout); - if (this.readyTimeout) clearTimeout(this.readyTimeout); - this.deflate?.close(); - this.removeAllListeners(); - - if (this.session_id) { - await Session.delete({ session_id: this.session_id }); - const sessions = await Session.find({ - where: { user_id: this.user_id }, - select: PrivateSessionProjection, - }); - await emitEvent({ - event: "SESSIONS_REPLACE", - user_id: this.user_id, - data: sessions, - } as SessionsReplace); - const session = sessions.first() || { - activities: [], - client_info: {}, - status: "offline", - }; - - await emitEvent({ - event: "PRESENCE_UPDATE", - user_id: this.user_id, - data: { - user: await User.getPublicUser(this.user_id), - activities: session.activities, - client_status: session?.client_info, - status: session.status, - }, - } as PresenceUpdateEvent); - } -} diff --git a/gateway/src/events/Connection.ts b/gateway/src/events/Connection.ts deleted file mode 100644 index 508b4741..00000000 --- a/gateway/src/events/Connection.ts +++ /dev/null @@ -1,94 +0,0 @@ -import WS from "ws"; -import { WebSocket } from "@fosscord/gateway"; -import { Send } from "../util/Send"; -import { CLOSECODES, OPCODES } from "../util/Constants"; -import { setHeartbeat } from "../util/Heartbeat"; -import { IncomingMessage } from "http"; -import { Close } from "./Close"; -import { Message } from "./Message"; -import { createDeflate } from "zlib"; -import { URL } from "url"; -let erlpack: any; -try { - erlpack = require("@yukikaze-bot/erlpack"); -} catch (error) {} - -// TODO: check rate limit -// TODO: specify rate limit in config -// TODO: check msg max size - -export async function Connection( - this: WS.Server, - socket: WebSocket, - request: IncomingMessage -) { - try { - // @ts-ignore - socket.on("close", Close); - // @ts-ignore - socket.on("message", Message); - - if(process.env.WS_LOGEVENTS) - [ - "close", - "error", - "upgrade", - //"message", - "open", - "ping", - "pong", - "unexpected-response" - ].forEach(x=>{ - socket.on(x, y => console.log(x, y)); - }); - - console.log(`[Gateway] Connections: ${this.clients.size}`); - - const { searchParams } = new URL(`http://localhost${request.url}`); - // @ts-ignore - socket.encoding = searchParams.get("encoding") || "json"; - if (!["json", "etf"].includes(socket.encoding)) { - if (socket.encoding === "etf" && erlpack) { - throw new Error( - "Erlpack is not installed: 'npm i @yukikaze-bot/erlpack'" - ); - } - return socket.close(CLOSECODES.Decode_error); - } - - // @ts-ignore - socket.version = Number(searchParams.get("version")) || 8; - if (socket.version != 8) - return socket.close(CLOSECODES.Invalid_API_version); - - // @ts-ignore - socket.compress = searchParams.get("compress") || ""; - if (socket.compress) { - if (socket.compress !== "zlib-stream") - return socket.close(CLOSECODES.Decode_error); - socket.deflate = createDeflate({ chunkSize: 65535 }); - socket.deflate.on("data", (chunk) => socket.send(chunk)); - } - - socket.events = {}; - socket.member_events = {}; - socket.permissions = {}; - socket.sequence = 0; - - setHeartbeat(socket); - - await Send(socket, { - op: OPCODES.Hello, - d: { - heartbeat_interval: 1000 * 30, - }, - }); - - socket.readyTimeout = setTimeout(() => { - return socket.close(CLOSECODES.Session_timed_out); - }, 1000 * 30); - } catch (error) { - console.error(error); - return socket.close(CLOSECODES.Unknown_error); - } -} diff --git a/gateway/src/events/Message.ts b/gateway/src/events/Message.ts deleted file mode 100644 index 7ed1dd06..00000000 --- a/gateway/src/events/Message.ts +++ /dev/null @@ -1,62 +0,0 @@ -import { CLOSECODES } from "../util/Constants"; -import { WebSocket, Payload } from "@fosscord/gateway"; -let erlpack: any; -try { - erlpack = require("@yukikaze-bot/erlpack"); -} catch (error) {} -import OPCodeHandlers from "../opcodes"; -import { check } from "../opcodes/instanceOf"; -import WS from "ws"; - -const PayloadSchema = { - op: Number, - $d: Object || Number, // or number for heartbeat sequence - $s: Number, - $t: String, -}; - -export async function Message(this: WebSocket, buffer: WS.RawData) { - // TODO: compression - let data: Payload; - - if (this.encoding === "etf" && buffer instanceof Buffer) - data = erlpack.unpack(buffer); - else if (this.encoding === "json") - data = JSON.parse(buffer as unknown as string); //TODO: is this even correct?? seems to work for web clients... - else if(/--debug|--inspect/.test(process.execArgv.join(' '))) { - debugger; - return; - } - else { - console.log("Invalid gateway connection! Use a debugger to inspect!"); - return; - } - - if(process.env.WS_VERBOSE) - console.log(`[Websocket] Incomming message: ${JSON.stringify(data)}`); - if(data.op !== 1) - check.call(this, PayloadSchema, data); - else { //custom validation for numbers, because heartbeat - if(data.s || data.t || (typeof data.d !== "number" && data.d)) { - console.log("Invalid heartbeat..."); - this.close(CLOSECODES.Decode_error); - } - } - - // @ts-ignore - const OPCodeHandler = OPCodeHandlers[data.op]; - if (!OPCodeHandler) { - console.error("[Gateway] Unkown opcode " + data.op); - // TODO: if all opcodes are implemented comment this out: - // this.close(CLOSECODES.Unknown_opcode); - return; - } - - try { - return await OPCodeHandler.call(this, data); - } catch (error) { - console.error(error); - if (!this.CLOSED && this.CLOSING) - return this.close(CLOSECODES.Unknown_error); - } -} diff --git a/gateway/src/index.ts b/gateway/src/index.ts deleted file mode 100644 index d77ce931..00000000 --- a/gateway/src/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export * from "./Server"; -export * from "./util/"; -export * from "./opcodes/"; -export * from "./listener/listener"; diff --git a/gateway/src/listener/listener.ts b/gateway/src/listener/listener.ts deleted file mode 100644 index 8c69e193..00000000 --- a/gateway/src/listener/listener.ts +++ /dev/null @@ -1,249 +0,0 @@ -import { - getPermission, - Permissions, - RabbitMQ, - listenEvent, - EventOpts, - ListenEventOpts, - Member, - EVENTEnum, - Relationship, - RelationshipType, -} from "@fosscord/util"; -import { OPCODES } from "../util/Constants"; -import { Send } from "../util/Send"; -import { WebSocket } from "@fosscord/gateway"; -import { Channel as AMQChannel } from "amqplib"; -import { Recipient } from "@fosscord/util"; - -// TODO: close connection on Invalidated Token -// TODO: check intent -// TODO: Guild Member Update is sent for current-user updates regardless of whether the GUILD_MEMBERS intent is set. - -// Sharding: calculate if the current shard id matches the formula: shard_id = (guild_id >> 22) % num_shards -// https://discord.com/developers/docs/topics/gateway#sharding - -export function handlePresenceUpdate( - this: WebSocket, - { event, acknowledge, data }: EventOpts -) { - acknowledge?.(); - if (event === EVENTEnum.PresenceUpdate) { - return Send(this, { - op: OPCODES.Dispatch, - t: event, - d: data, - s: this.sequence++, - }); - } -} - -// TODO: use already queried guilds/channels of Identify and don't fetch them again -export async function setupListener(this: WebSocket) { - const [members, recipients, relationships] = await Promise.all([ - Member.find({ - where: { id: this.user_id }, - relations: ["guild", "guild.channels"], - }), - Recipient.find({ - where: { user_id: this.user_id, closed: false }, - relations: ["channel"], - }), - Relationship.find({ where: { - from_id: this.user_id, - type: RelationshipType.friends, - } }), - ]); - - const guilds = members.map((x) => x.guild); - const dm_channels = recipients.map((x) => x.channel); - - const opts: { acknowledge: boolean; channel?: AMQChannel } = { - acknowledge: true, - }; - this.listen_options = opts; - const consumer = consume.bind(this); - - if (RabbitMQ.connection) { - opts.channel = await RabbitMQ.connection.createChannel(); - // @ts-ignore - opts.channel.queues = {}; - } - - this.events[this.user_id] = await listenEvent(this.user_id, consumer, opts); - - relationships.forEach(async (relationship) => { - this.events[relationship.to_id] = await listenEvent( - relationship.to_id, - handlePresenceUpdate.bind(this), - opts - ); - }); - - dm_channels.forEach(async (channel) => { - this.events[channel.id] = await listenEvent(channel.id, consumer, opts); - }); - - guilds.forEach(async (guild) => { - const permission = await getPermission(this.user_id, guild.id); - this.permissions[guild.id] = permission; - this.events[guild.id] = await listenEvent(guild.id, consumer, opts); - - guild.channels.forEach(async (channel) => { - if ( - permission - .overwriteChannel(channel.permission_overwrites!) - .has("VIEW_CHANNEL") - ) { - this.events[channel.id] = await listenEvent( - channel.id, - consumer, - opts - ); - } - }); - }); - - this.once("close", () => { - if (opts.channel) opts.channel.close(); - else { - Object.values(this.events).forEach((x) => x()); - Object.values(this.member_events).forEach((x) => x()); - } - }); -} - -// TODO: only subscribe for events that are in the connection intents -async function consume(this: WebSocket, opts: EventOpts) { - const { data, event } = opts; - let id = data.id as string; - const permission = this.permissions[id] || new Permissions("ADMINISTRATOR"); // default permission for dm - - const consumer = consume.bind(this); - const listenOpts = opts as ListenEventOpts; - opts.acknowledge?.(); - // console.log("event", event); - - // subscription managment - switch (event) { - case "GUILD_MEMBER_REMOVE": - this.member_events[data.user.id]?.(); - delete this.member_events[data.user.id]; - case "GUILD_MEMBER_ADD": - if (this.member_events[data.user.id]) break; // already subscribed - this.member_events[data.user.id] = await listenEvent( - data.user.id, - handlePresenceUpdate.bind(this), - this.listen_options - ); - break; - case "GUILD_MEMBER_REMOVE": - if (!this.member_events[data.user.id]) break; - this.member_events[data.user.id](); - break; - case "RELATIONSHIP_REMOVE": - case "CHANNEL_DELETE": - case "GUILD_DELETE": - delete this.events[id]; - opts.cancel(); - break; - case "CHANNEL_CREATE": - if ( - !permission - .overwriteChannel(data.permission_overwrites) - .has("VIEW_CHANNEL") - ) { - return; - } - this.events[id] = await listenEvent(id, consumer, listenOpts); - break; - case "RELATIONSHIP_ADD": - this.events[data.user.id] = await listenEvent( - data.user.id, - handlePresenceUpdate.bind(this), - this.listen_options - ); - break; - case "GUILD_CREATE": - this.events[id] = await listenEvent(id, consumer, listenOpts); - break; - case "CHANNEL_UPDATE": - const exists = this.events[id]; - // @ts-ignore - if ( - permission - .overwriteChannel(data.permission_overwrites) - .has("VIEW_CHANNEL") - ) { - if (exists) break; - this.events[id] = await listenEvent(id, consumer, listenOpts); - } else { - if (!exists) return; // return -> do not send channel update events for hidden channels - opts.cancel(id); - delete this.events[id]; - } - break; - } - - // permission checking - switch (event) { - case "INVITE_CREATE": - case "INVITE_DELETE": - case "GUILD_INTEGRATIONS_UPDATE": - if (!permission.has("MANAGE_GUILD")) return; - break; - case "WEBHOOKS_UPDATE": - if (!permission.has("MANAGE_WEBHOOKS")) return; - break; - case "GUILD_MEMBER_ADD": - case "GUILD_MEMBER_REMOVE": - case "GUILD_MEMBER_UPDATE": - // only send them, if the user subscribed for this part of the member list, or is a bot - case "PRESENCE_UPDATE": // exception if user is friend - break; - case "GUILD_BAN_ADD": - case "GUILD_BAN_REMOVE": - if (!permission.has("BAN_MEMBERS")) break; - break; - case "VOICE_STATE_UPDATE": - case "MESSAGE_CREATE": - case "MESSAGE_DELETE": - case "MESSAGE_DELETE_BULK": - case "MESSAGE_UPDATE": - case "CHANNEL_PINS_UPDATE": - case "MESSAGE_REACTION_ADD": - case "MESSAGE_REACTION_REMOVE": - case "MESSAGE_REACTION_REMOVE_ALL": - case "MESSAGE_REACTION_REMOVE_EMOJI": - case "TYPING_START": - // only gets send if the user is alowed to view the current channel - if (!permission.has("VIEW_CHANNEL")) return; - break; - case "GUILD_CREATE": - case "GUILD_DELETE": - case "GUILD_UPDATE": - case "GUILD_ROLE_CREATE": - case "GUILD_ROLE_UPDATE": - case "GUILD_ROLE_DELETE": - case "CHANNEL_CREATE": - case "CHANNEL_DELETE": - case "CHANNEL_UPDATE": - case "GUILD_EMOJIS_UPDATE": - case "READY": // will be sent by the gateway - case "USER_UPDATE": - case "APPLICATION_COMMAND_CREATE": - case "APPLICATION_COMMAND_DELETE": - case "APPLICATION_COMMAND_UPDATE": - default: - // always gets sent - // Any events not defined in an intent are considered "passthrough" and will always be sent - break; - } - - Send(this, { - op: OPCODES.Dispatch, - t: event, - d: data, - s: this.sequence++, - }); -} diff --git a/gateway/src/opcodes/Heartbeat.ts b/gateway/src/opcodes/Heartbeat.ts deleted file mode 100644 index 42b72d4b..00000000 --- a/gateway/src/opcodes/Heartbeat.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Payload, WebSocket } from "@fosscord/gateway"; -import { setHeartbeat } from "../util/Heartbeat"; -import { Send } from "../util/Send"; - -export async function onHeartbeat(this: WebSocket, _data: Payload) { - // TODO: validate payload - - setHeartbeat(this); - - await Send(this, { op: 11 }); -} diff --git a/gateway/src/opcodes/LazyRequest.ts b/gateway/src/opcodes/LazyRequest.ts deleted file mode 100644 index cd0586de..00000000 --- a/gateway/src/opcodes/LazyRequest.ts +++ /dev/null @@ -1,173 +0,0 @@ -import { getPermission, listenEvent, Member, Role, getOrInitialiseDatabase, LazyRequest } from "@fosscord/util"; -import { Send } from "../util/Send"; -import { OPCODES } from "../util/Constants"; -import { WebSocket, Payload, handlePresenceUpdate } from "@fosscord/gateway"; -import { check } from "./instanceOf"; -import { getRepository } from "typeorm"; - -// TODO: only show roles/members that have access to this channel -// TODO: config: to list all members (even those who are offline) sorted by role, or just those who are online -// TODO: rewrite typeorm - -async function getMembers(guild_id: string, range: [number, number]) { - if (!Array.isArray(range) || range.length !== 2) { - throw new Error("range is not a valid array"); - } - // TODO: wait for typeorm to implement ordering for .find queries https://github.com/typeorm/typeorm/issues/2620 - // TODO: rewrite this, released in 0.3.0 - - let members = await (await getOrInitialiseDatabase()).getRepository(Member) - .createQueryBuilder("member") - .where("member.guild_id = :guild_id", { guild_id }) - .leftJoinAndSelect("member.roles", "role") - .leftJoinAndSelect("member.user", "user") - .leftJoinAndSelect("user.sessions", "session") - .addSelect( - "CASE WHEN session.status = 'offline' THEN 0 ELSE 1 END", - "_status" - ) - .orderBy("role.position", "DESC") - .addOrderBy("_status", "DESC") - .addOrderBy("user.username", "ASC") - .offset(Number(range[0]) || 0) - .limit(Number(range[1]) || 100) - .getMany(); - - const groups = [] as any[]; - const items = []; - const member_roles = members - .map((m) => m.roles) - .flat() - .unique((r: Role) => r.id); - - const offlineItems = []; - - for (const role of member_roles) { - // @ts-ignore - const [role_members, other_members] = partition(members, (m: Member) => - m.roles.find((r) => r.id === role.id) - ); - const group = { - count: role_members.length, - id: role.id === guild_id ? "online" : role.id, - }; - - items.push({ group }); - groups.push(group); - - for (const member of role_members) { - const roles = member.roles - .filter((x: Role) => x.id !== guild_id) - .map((x: Role) => x.id); - - const session = member.user.sessions.first(); - - // TODO: properly mock/hide offline/invisible status - const item = { - member: { - ...member, - roles, - user: { ...member.user, sessions: undefined }, - presence: { - ...session, - activities: session?.activities || [], - user: { id: member.user.id }, - }, - }, - } - - if (!member?.user?.sessions || !member.user.sessions.length) { - offlineItems.push(item); - group.count--; - continue; - } - - items.push(item); - } - members = other_members; - } - - if (offlineItems.length) { - const group = { - count: offlineItems.length, - id: "offline", - }; - items.push({ group }); - groups.push(group); - - items.push(...offlineItems); - } - - return { - items, - groups, - range, - members: items.map((x) => 'member' in x ? x.member : undefined).filter(x => !!x), - }; -} - -export async function onLazyRequest(this: WebSocket, { d }: Payload) { - // TODO: check data - check.call(this, LazyRequest, d); - const { guild_id, typing, channels, activities } = d as LazyRequest; - - const channel_id = Object.keys(channels || {}).first(); - if (!channel_id) return; - - const permissions = await getPermission(this.user_id, guild_id, channel_id); - permissions.hasThrow("VIEW_CHANNEL"); - - const ranges = channels![channel_id]; - if (!Array.isArray(ranges)) throw new Error("Not a valid Array"); - - const member_count = await Member.count({ where: { guild_id } }); - const ops = await Promise.all(ranges.map((x) => getMembers(guild_id, x))); - - // TODO: unsubscribe member_events that are not in op.members - - ops.forEach((op) => { - op.members.forEach(async (member) => { - if (this.events[member.user.id]) return; // already subscribed as friend - if (this.member_events[member.user.id]) return; // already subscribed in member list - this.member_events[member.user.id] = await listenEvent( - member.user.id, - handlePresenceUpdate.bind(this), - this.listen_options - ); - }); - }); - - return Send(this, { - op: OPCODES.Dispatch, - s: this.sequence++, - t: "GUILD_MEMBER_LIST_UPDATE", - d: { - ops: ops.map((x) => ({ - items: x.items, - op: "SYNC", - range: x.range, - })), - online_count: member_count, - member_count, - id: "everyone", - guild_id, - groups: ops - .map((x) => x.groups) - .flat() - .unique(), - }, - }); -} - -function partition(array: T[], isValid: Function) { - // @ts-ignore - return array.reduce( - // @ts-ignore - ([pass, fail], elem) => { - return isValid(elem) - ? [[...pass, elem], fail] - : [pass, [...fail, elem]]; - }, - [[], []] - ); -} diff --git a/gateway/src/opcodes/PresenceUpdate.ts b/gateway/src/opcodes/PresenceUpdate.ts deleted file mode 100644 index f31c9161..00000000 --- a/gateway/src/opcodes/PresenceUpdate.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { WebSocket, Payload } from "@fosscord/gateway"; -import { ActivitySchema, emitEvent, PresenceUpdateEvent, Session, User } from "@fosscord/util"; -import { check } from "./instanceOf"; - -export async function onPresenceUpdate(this: WebSocket, { d }: Payload) { - check.call(this, ActivitySchema, d); - const presence = d as ActivitySchema; - - await Session.update( - { session_id: this.session_id }, - { status: presence.status, activities: presence.activities } - ); - - await emitEvent({ - event: "PRESENCE_UPDATE", - user_id: this.user_id, - data: { - user: await User.getPublicUser(this.user_id), - activities: presence.activities, - client_status: {}, // TODO: - status: presence.status, - }, - } as PresenceUpdateEvent); -} diff --git a/gateway/src/opcodes/RequestGuildMembers.ts b/gateway/src/opcodes/RequestGuildMembers.ts deleted file mode 100644 index b80721dc..00000000 --- a/gateway/src/opcodes/RequestGuildMembers.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Payload, WebSocket } from "@fosscord/gateway"; - -export function onRequestGuildMembers(this: WebSocket, data: Payload) { - // return this.close(CLOSECODES.Unknown_error); -} diff --git a/gateway/src/opcodes/Resume.ts b/gateway/src/opcodes/Resume.ts deleted file mode 100644 index 42dc586d..00000000 --- a/gateway/src/opcodes/Resume.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { WebSocket, Payload } from "@fosscord/gateway"; -import { Send } from "../util/Send"; - -export async function onResume(this: WebSocket, data: Payload) { - console.log("Got Resume -> cancel not implemented"); - await Send(this, { - op: 9, - d: false, - }); - - // return this.close(CLOSECODES.Invalid_session); -} diff --git a/gateway/src/opcodes/VoiceStateUpdate.ts b/gateway/src/opcodes/VoiceStateUpdate.ts deleted file mode 100644 index 73f73565..00000000 --- a/gateway/src/opcodes/VoiceStateUpdate.ts +++ /dev/null @@ -1,116 +0,0 @@ -import { Payload, WebSocket } from "@fosscord/gateway"; -import { genVoiceToken } from "../util/SessionUtils"; -import { check } from "./instanceOf"; -import { - Config, - emitEvent, - Guild, - Member, - VoiceServerUpdateEvent, - VoiceState, - VoiceStateUpdateEvent, - VoiceStateUpdateSchema, -} from "@fosscord/util"; -import { OrmUtils } from "@fosscord/util"; -import { Region } from "@fosscord/util/src/config"; -// TODO: check if a voice server is setup -// Notice: Bot users respect the voice channel's user limit, if set. When the voice channel is full, you will not receive the Voice State Update or Voice Server Update events in response to your own Voice State Update. Having MANAGE_CHANNELS permission bypasses this limit and allows you to join regardless of the channel being full or not. - -export async function onVoiceStateUpdate(this: WebSocket, data: Payload) { - check.call(this, VoiceStateUpdateSchema, data.d); - const body = data.d as VoiceStateUpdateSchema; - - if(body.guild_id == null) { - console.log(`[Gateway] VoiceStateUpdate called with guild_id == null by user ${this.user_id}!`); - return; - } - - let voiceState: VoiceState; - try { - voiceState = await VoiceState.findOneOrFail({ - where: { user_id: this.user_id }, - }); - if ( - voiceState.session_id !== this.session_id && - body.channel_id === null - ) { - //Should we also check guild_id === null? - //changing deaf or mute on a client that's not the one with the same session of the voicestate in the database should be ignored - return; - } - - //If a user change voice channel between guild we should send a left event first - if ( - voiceState.guild_id !== body.guild_id && - voiceState.session_id === this.session_id - ) { - await emitEvent({ - event: "VOICE_STATE_UPDATE", - data: { ...voiceState, channel_id: null }, - guild_id: voiceState.guild_id, - }); - } - - //The event send by Discord's client on channel leave has both guild_id and channel_id as null - if (body.guild_id === null) body.guild_id = voiceState.guild_id; - voiceState = OrmUtils.mergeDeep(voiceState, body); - } catch (error) { - voiceState = OrmUtils.mergeDeep(new VoiceState(), { - ...body, - user_id: this.user_id, - deaf: false, - mute: false, - suppress: false, - }); - } - - //TODO the member should only have these properties: hoisted_role, deaf, joined_at, mute, roles, user - //TODO the member.user should only have these properties: avatar, discriminator, id, username - //TODO this may fail - voiceState.member = await Member.findOneOrFail({ - where: { id: voiceState.user_id, guild_id: voiceState.guild_id }, - relations: ["user", "roles"], - }); - - //If the session changed we generate a new token - if (voiceState.session_id !== this.session_id) - voiceState.token = genVoiceToken(); - voiceState.session_id = this.session_id; - - const { id, ...newObj } = voiceState; - - await Promise.all([ - voiceState.save(), - emitEvent({ - event: "VOICE_STATE_UPDATE", - data: newObj, - guild_id: voiceState.guild_id, - } as VoiceStateUpdateEvent), - ]); - - //If it's null it means that we are leaving the channel and this event is not needed - if (voiceState.channel_id !== null) { - const guild = await Guild.findOne({ where: { id: voiceState.guild_id } }); - const regions = Config.get().regions; - let guildRegion: Region; - if (guild && guild.region) { - guildRegion = regions.available.filter( - (r) => r.id === guild.region - )[0]; - } else { - guildRegion = regions.available.filter( - (r) => r.id === regions.default - )[0]; - } - - await emitEvent({ - event: "VOICE_SERVER_UPDATE", - data: { - token: voiceState.token, - guild_id: voiceState.guild_id, - endpoint: guildRegion.endpoint, - }, - guild_id: voiceState.guild_id, - } as VoiceServerUpdateEvent); - } -} diff --git a/gateway/src/opcodes/experiments.json b/gateway/src/opcodes/experiments.json deleted file mode 100644 index 0370b5da..00000000 --- a/gateway/src/opcodes/experiments.json +++ /dev/null @@ -1,76 +0,0 @@ -[ - [4047587481, 0, 0, -1, 0], - [1509401575, 0, 1, -1, 0], - [1865079242, 0, 1, -1, 0], - [1962538549, 1, 0, -1, 0], - [3816091942, 3, 2, -1, 0], - [4130837190, 0, 10, -1, 0], - [1861568052, 0, 1, -1, 0], - [2290910058, 6, 2, -1, 0], - [1578940118, 1, 1, -1, 0], - [1571676964, 0, 1, -1, 2], - [3640172371, 0, 2, -1, 2], - [1658164312, 2, 1, -1, 0], - [98883956, 1, 1, -1, 0], - [3114091169, 0, 1, -1, 0], - [2570684145, 4, 1, -1, 2], - [4007615411, 0, 1, -1, 0], - [3665310159, 2, 1, -1, 1], - [852550504, 3, 1, -1, 0], - [2333572067, 0, 1, -1, 0], - [935994771, 1, 1, -1, 0], - [1127795596, 1, 1, -1, 0], - [4168223991, 0, 1, -1, 0], - [18585280, 0, 1, -1, 1], - [327482016, 0, 1, -1, 2], - [3458098201, 7, 1, -1, 0], - [478613943, 2, 1, -1, 1], - [2792197902, 0, 1, -1, 2], - [284670956, 0, 1, -1, 0], - [2099185390, 0, 1, -1, 0], - [1202202685, 0, 1, -1, 0], - [2122174751, 0, 1, -1, 0], - [3633864632, 0, 1, -1, 0], - [3103053065, 0, 1, -1, 0], - [820624960, 0, 1, -1, 0], - [1134479292, 0, 1, -1, 0], - [2511257455, 3, 1, -1, 3], - [2599708267, 0, 1, -1, 0], - [613180822, 1, 1, -1, 0], - [2885186814, 0, 1, -1, 0], - [221503477, 0, 1, -1, 0], - [1054317075, 0, 1, -1, 3], - [683872522, 0, 1, -1, 1], - [1739278764, 0, 2, -1, 0], - [2855249023, 0, 1, -1, 0], - [3721841948, 0, 1, -1, 0], - [1285203515, 0, 1, -1, 0], - [1365487849, 6, 1, -1, 0], - [955229746, 0, 1, -1, 0], - [3128009767, 0, 10, -1, 0], - [441885003, 0, 1, -1, 0], - [3433971238, 0, 1, -1, 2], - [1038765354, 3, 1, -1, 0], - [1174347196, 0, 1, -1, 0], - [3649806352, 1, 1, -1, 0], - [2973729510, 2, 1, -1, 0], - [2571931329, 1, 6, -1, 0], - [3884442008, 0, 1, -1, 0], - [978673395, 1, 1, -1, 0], - [4050927174, 0, 1, -1, 0], - [1260103069, 0, 1, -1, 0], - [4168894280, 0, 1, -1, 0], - [4045587091, 0, 1, -1, 0], - [2003494159, 1, 1, -1, 0], - [51193042, 0, 1, -1, 0], - [2634540382, 3, 1, -1, 0], - [886364171, 0, 1, -1, 0], - [3898604944, 0, 1, -1, 0], - [3388129398, 0, 1, -1, 0], - [3964382884, 2, 1, -1, 1], - [3305874255, 0, 1, -1, 0], - [156590431, 0, 1, -1, 0], - [3106485751, 0, 0, -1, 0], - [3035674767, 0, 1, -1, 0], - [851697110, 0, 1, -1, 0] -] diff --git a/gateway/src/opcodes/index.ts b/gateway/src/opcodes/index.ts deleted file mode 100644 index 027739db..00000000 --- a/gateway/src/opcodes/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { WebSocket, Payload } from "@fosscord/gateway"; -import { onHeartbeat } from "./Heartbeat"; -import { onIdentify } from "./Identify"; -import { onLazyRequest } from "./LazyRequest"; -import { onPresenceUpdate } from "./PresenceUpdate"; -import { onRequestGuildMembers } from "./RequestGuildMembers"; -import { onResume } from "./Resume"; -import { onVoiceStateUpdate } from "./VoiceStateUpdate"; - -export type OPCodeHandler = (this: WebSocket, data: Payload) => any; - -export default { - 1: onHeartbeat, - 2: onIdentify, - 3: onPresenceUpdate, - 4: onVoiceStateUpdate, - // 5: Voice Server Ping - 6: onResume, - // 7: Reconnect: You should attempt to reconnect and resume immediately. - 8: onRequestGuildMembers, - // 9: Invalid Session - // 10: Hello - // 13: Dm_update - 14: onLazyRequest, -}; diff --git a/gateway/src/opcodes/instanceOf.ts b/gateway/src/opcodes/instanceOf.ts deleted file mode 100644 index eb6f6ea1..00000000 --- a/gateway/src/opcodes/instanceOf.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { instanceOf } from "@fosscord/util"; -import { WebSocket } from "@fosscord/gateway"; -import { CLOSECODES } from "../util/Constants"; - -export function check(this: WebSocket, schema: any, data: any) { - try { - const error = instanceOf(schema, data, { path: "body" }); - if (error !== true) { - throw error; - } - return true; - } catch (error) { - console.error(error); - // invalid payload - this.close(CLOSECODES.Decode_error); - throw error; - } -} diff --git a/gateway/src/start.ts b/gateway/src/start.ts deleted file mode 100644 index 2000522a..00000000 --- a/gateway/src/start.ts +++ /dev/null @@ -1,14 +0,0 @@ -process.on("uncaughtException", console.error); -process.on("unhandledRejection", console.error); - -import { Server } from "./Server"; -import { config } from "dotenv"; -config(); - -let port = Number(process.env.PORT); -if (isNaN(port)) port = 3002; - -const server = new Server({ - port, -}); -server.start(); diff --git a/gateway/src/util/Constants.ts b/gateway/src/util/Constants.ts deleted file mode 100644 index 692f9028..00000000 --- a/gateway/src/util/Constants.ts +++ /dev/null @@ -1,50 +0,0 @@ -export enum OPCODES { - Dispatch = 0, - Heartbeat = 1, - Identify = 2, - Presence_Update = 3, - Voice_State_Update = 4, - Voice_Server_Ping = 5, // ? What is opcode 5? - Resume = 6, - Reconnect = 7, - Request_Guild_Members = 8, - Invalid_Session = 9, - Hello = 10, - Heartbeat_ACK = 11, - Guild_Sync = 12, - DM_Update = 13, - Lazy_Request = 14, - Lobby_Connect = 15, - Lobby_Disconnect = 16, - Lobby_Voice_States_Update = 17, - Stream_Create = 18, - Stream_Delete = 19, - Stream_Watch = 20, - Stream_Ping = 21, - Stream_Set_Paused = 22, - Request_Application_Commands = 24, -} -export enum CLOSECODES { - Unknown_error = 4000, - Unknown_opcode, - Decode_error, - Not_authenticated, - Authentication_failed, - Already_authenticated, - Invalid_session, - Invalid_seq, - Rate_limited, - Session_timed_out, - Invalid_shard, - Sharding_required, - Invalid_API_version, - Invalid_intent, - Disallowed_intent, -} - -export interface Payload { - op: OPCODES; - d?: any; - s?: number; - t?: string; -} diff --git a/gateway/src/util/Heartbeat.ts b/gateway/src/util/Heartbeat.ts deleted file mode 100644 index f6871cfe..00000000 --- a/gateway/src/util/Heartbeat.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { CLOSECODES } from "./Constants"; -import { WebSocket } from "./WebSocket"; - -// TODO: make heartbeat timeout configurable -export function setHeartbeat(socket: WebSocket) { - if (socket.heartbeatTimeout) clearTimeout(socket.heartbeatTimeout); - - socket.heartbeatTimeout = setTimeout(() => { - return socket.close(CLOSECODES.Session_timed_out); - }, 1000 * 45); -} diff --git a/gateway/src/util/Send.ts b/gateway/src/util/Send.ts deleted file mode 100644 index 2a28d8e0..00000000 --- a/gateway/src/util/Send.ts +++ /dev/null @@ -1,33 +0,0 @@ -let erlpack: any; -try { - erlpack = require("@yukikaze-bot/erlpack"); -} catch (error) { - console.log("Missing @yukikaze-bot/erlpack, electron-based desktop clients designed for discord.com will not be able to connect!"); -} -import { Payload, WebSocket } from "@fosscord/gateway"; - -export async function Send(socket: WebSocket, data: Payload) { - if(process.env.WS_VERBOSE) - console.log(`[Websocket] Outgoing message: ${JSON.stringify(data)}`); - let buffer: Buffer | string; - if (socket.encoding === "etf") buffer = erlpack.pack(data); - // TODO: encode circular object - else if (socket.encoding === "json") buffer = JSON.stringify(data); - else return; - // TODO: compression - if (socket.deflate) { - socket.deflate.write(buffer); - socket.deflate.flush(); - return; - } - - return new Promise((res, rej) => { - if (socket.readyState !== 1) { - return rej("socket not open"); - } - socket.send(buffer, (err: any) => { - if (err) return rej(err); - return res(null); - }); - }); -} diff --git a/gateway/src/util/SessionUtils.ts b/gateway/src/util/SessionUtils.ts deleted file mode 100644 index bf854042..00000000 --- a/gateway/src/util/SessionUtils.ts +++ /dev/null @@ -1,13 +0,0 @@ -export function genSessionId() { - return genRanHex(32); -} - -export function genVoiceToken() { - return genRanHex(16); -} - -function genRanHex(size: number) { - return [...Array(size)] - .map(() => Math.floor(Math.random() * 16).toString(16)) - .join(""); -} diff --git a/gateway/src/util/WebSocket.ts b/gateway/src/util/WebSocket.ts deleted file mode 100644 index e3313f40..00000000 --- a/gateway/src/util/WebSocket.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Intents, Permissions } from "@fosscord/util"; -import WS from "ws"; -import { Deflate } from "zlib"; - -export interface WebSocket extends WS { - version: number; - user_id: string; - session_id: string; - encoding: "etf" | "json"; - compress?: "zlib-stream"; - shard_count?: bigint; - shard_id?: bigint; - deflate?: Deflate; - heartbeatTimeout: NodeJS.Timeout; - readyTimeout: NodeJS.Timeout; - intents: Intents; - sequence: number; - permissions: Record; - events: Record; - member_events: Record; - listen_options: any; -} diff --git a/gateway/src/util/index.ts b/gateway/src/util/index.ts deleted file mode 100644 index 0be5ecee..00000000 --- a/gateway/src/util/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./Constants"; -export * from "./Send"; -export * from "./SessionUtils"; -export * from "./Heartbeat"; -export * from "./WebSocket"; diff --git a/gateway/tsconfig.json b/gateway/tsconfig.json deleted file mode 100644 index 9f855d33..00000000 --- a/gateway/tsconfig.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "include": ["src/**/*.ts"], - "exclude": ["*.js", "dist", "attachments"], - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Basic Options */ - "incremental": false /* Enable incremental compilation */, - "target": "ES2020" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - "lib": [ - "ES2019", - "ES2020.BigInt", - "DOM" - ] /* Specify library files to be included in the compilation. */, - "allowJs": true /* Allow javascript files to be compiled. */, - "checkJs": true /* Report errors in .js files. */, - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - "declaration": true /* Generates corresponding '.d.ts' file. */, - "declarationMap": false /* Generates a sourcemap for each corresponding '.d.ts' file. */, - "sourceMap": true /* Generates corresponding '.map' file. */, - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./dist/" /* Redirect output structure to the directory. */, - "rootDir": "./src/" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true /* Enable all strict type-checking options. */, - "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, - "strictNullChecks": true /* Enable strict null checks. */, - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */, - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - - /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - "types": [ - "node" - ] /* Type declaration files to be included in compilation. */, - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - "inlineSourceMap": true /* Emit a single file with source maps instead of having a separate file. */, - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "skipLibCheck": true /* Skip type checking of declaration files. */, - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, - "resolveJsonModule": true, - "baseUrl": ".", - "paths": { - "@fosscord/gateway": ["src/index.ts"], - "@fosscord/gateway/*": ["src/*"] - }, - "plugins": [{ "transform": "@ovos-media/ts-transform-paths" }] - } -} diff --git a/package-lock.json b/package-lock.json index b76df0ee..a97e75be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,22 +1,87 @@ { - "name": "fosscord-server", + "name": "@fosscord/server", "version": "1.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { - "name": "fosscord-server", + "name": "@fosscord/server", "version": "1.0.0", "license": "AGPL-3.0-only", - "workspaces": [ - "api", - "cdn", - "gateway" - ] + "dependencies": { + "@aws-sdk/client-s3": "^3.137.0", + "@babel/preset-typescript": "^7.15.0", + "@ovos-media/ts-transform-paths": "^1.7.18-1", + "@sentry/node": "^7.7.0", + "@sentry/tracing": "^7.7.0", + "@types/node-fetch": "^2.6.2", + "ajv": "^8.11.0", + "ajv-formats": "^2.1.1", + "amqplib": "^0.10.1", + "bcrypt": "^5.0.1", + "body-parser": "^1.19.0", + "canvas": "^2.9.3", + "cheerio": "^1.0.0-rc.10", + "dotenv": "^16.0.1", + "exif-be-gone": "^1.3.0", + "express": "^4.17.1", + "file-type": "16.5", + "form-data": "^4.0.0", + "i18next": "^21.8.14", + "i18next-http-middleware": "^3.1.3", + "i18next-node-fs-backend": "^2.1.3", + "image-size": "^1.0.0", + "jest": "^28.1.3", + "jsonwebtoken": "^8.5.1", + "lambert-server": "^1.2.12", + "missing-native-js-functions": "^1.2.18", + "morgan": "^1.10.0", + "multer": "^1.4.5-lts.1", + "node-2fa": "^2.0.3", + "node-fetch": "^2.6.7", + "patch-package": "^6.4.7", + "picocolors": "^1.0.0", + "proxy-agent": "^5.0.0", + "reflect-metadata": "^0.1.13", + "typeorm": "^0.3.7", + "typescript": "^4.1.2", + "ws": "^8.8.1" + }, + "devDependencies": { + "@babel/core": "^7.18.9", + "@babel/preset-env": "^7.18.9", + "@babel/preset-typescript": "^7.15.0", + "@types/amqplib": "^0.8.1", + "@types/bcrypt": "^5.0.0", + "@types/body-parser": "^1.19.0", + "@types/dotenv": "^8.2.0", + "@types/express": "^4.17.12", + "@types/i18next-node-fs-backend": "^2.1.0", + "@types/jsonwebtoken": "^8.5.8", + "@types/morgan": "^1.9.3", + "@types/multer": "^1.4.7", + "@types/node": "^18.0.6", + "@types/node-os-utils": "^1.3.0", + "@types/ws": "^8.5.3", + "jest": "^28.1.3", + "jest-expect-message": "^1.0.2", + "supertest": "^6.1.6", + "ts-node": "^10.2.1", + "ts-node-dev": "^2.0.0", + "ts-patch": "^2.0.1", + "typescript": "^4.2.3", + "typescript-json-schema": "^0.54.0" + }, + "optionalDependencies": { + "mysql2": "^2.3.3", + "pg": "^8.7.3", + "sqlite3": "^5.0.11" + } }, "api": { "name": "@fosscord/api", "version": "1.0.0", + "extraneous": true, "hasInstallScript": true, "license": "AGPL-3.0-only", "dependencies": { @@ -63,232 +128,10 @@ "typescript-json-schema": "^0.54.0" } }, - "api/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "api/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "api/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "api/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "api/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "api/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "api/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "api/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "api/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "api/node_modules/typeorm": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", - "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", - "dependencies": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - }, - "bin": { - "typeorm": "cli.js", - "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", - "typeorm-ts-node-esm": "cli-ts-node-esm.js" - }, - "engines": { - "node": ">= 12.9.0" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@google-cloud/spanner": "^5.18.0", - "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2", - "hdb-pool": "^0.1.6", - "ioredis": "^5.0.4", - "mongodb": "^3.6.0", - "mssql": "^7.3.0", - "mysql2": "^2.2.5", - "oracledb": "^5.1.0", - "pg": "^8.5.1", - "pg-native": "^3.0.0", - "pg-query-stream": "^4.0.0", - "redis": "^3.1.1 || ^4.0.0", - "sql.js": "^1.4.0", - "sqlite3": "^5.0.3", - "ts-node": "^10.7.0", - "typeorm-aurora-data-api-driver": "^2.0.0" - }, - "peerDependenciesMeta": { - "@google-cloud/spanner": { - "optional": true - }, - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "api/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "api/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "engines": { - "node": ">=12" - } - }, "cdn": { "name": "@fosscord/cdn", "version": "1.0.0", + "extraneous": true, "license": "AGPL-3.0-only", "dependencies": { "@aws-sdk/client-s3": "^3.137.0", @@ -309,264 +152,43 @@ "typescript": "^4.1.2" }, "devDependencies": { - "@types/body-parser": "^1.19.0", - "@types/dotenv": "^8.2.0", - "@types/express": "^4.17.12", - "@types/multer": "^1.4.7", - "@types/node": "^18.6.3" - } - }, - "gateway": { - "name": "@fosscord/gateway", - "version": "1.0.0", - "hasInstallScript": true, - "license": "AGPL-3.0-only", - "dependencies": { - "@fosscord/util": "file:../util", - "amqplib": "^0.10.1", - "dotenv": "^16.0.1", - "typeorm": "^0.3.7", - "ws": "^8.8.1" - }, - "devDependencies": { - "@types/amqplib": "^0.8.1", - "@types/node": "^18.0.6", - "@types/ws": "^8.5.3", - "ts-node-dev": "^2.0.0", - "ts-patch": "^2.0.1", - "typescript": "^4.2.3" - }, - "optionalDependencies": { - "@yukikaze-bot/erlpack": "^1.0.1" - } - }, - "gateway/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "gateway/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "gateway/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "gateway/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "gateway/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "gateway/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "gateway/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "gateway/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "gateway/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "gateway/node_modules/typeorm": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", - "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", - "dependencies": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - }, - "bin": { - "typeorm": "cli.js", - "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", - "typeorm-ts-node-esm": "cli-ts-node-esm.js" - }, - "engines": { - "node": ">= 12.9.0" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@google-cloud/spanner": "^5.18.0", - "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2", - "hdb-pool": "^0.1.6", - "ioredis": "^5.0.4", - "mongodb": "^3.6.0", - "mssql": "^7.3.0", - "mysql2": "^2.2.5", - "oracledb": "^5.1.0", - "pg": "^8.5.1", - "pg-native": "^3.0.0", - "pg-query-stream": "^4.0.0", - "redis": "^3.1.1 || ^4.0.0", - "sql.js": "^1.4.0", - "sqlite3": "^5.0.3", - "ts-node": "^10.7.0", - "typeorm-aurora-data-api-driver": "^2.0.0" - }, - "peerDependenciesMeta": { - "@google-cloud/spanner": { - "optional": true - }, - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "gateway/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" + "@types/body-parser": "^1.19.0", + "@types/dotenv": "^8.2.0", + "@types/express": "^4.17.12", + "@types/multer": "^1.4.7", + "@types/node": "^18.6.3" } }, - "gateway/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "engines": { - "node": ">=12" + "gateway": { + "name": "@fosscord/gateway", + "version": "1.0.0", + "extraneous": true, + "hasInstallScript": true, + "license": "AGPL-3.0-only", + "dependencies": { + "@fosscord/util": "file:../util", + "amqplib": "^0.10.1", + "dotenv": "^16.0.1", + "typeorm": "^0.3.7", + "ws": "^8.8.1" + }, + "devDependencies": { + "@types/amqplib": "^0.8.1", + "@types/node": "^18.0.6", + "@types/ws": "^8.5.3", + "ts-node-dev": "^2.0.0", + "ts-patch": "^2.0.1", + "typescript": "^4.2.3" + }, + "optionalDependencies": { + "@yukikaze-bot/erlpack": "^1.0.1" } }, "node_modules/@ampproject/remapping": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -1780,6 +1402,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -1791,6 +1414,7 @@ "version": "7.18.8", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -1799,6 +1423,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", + "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -1828,6 +1453,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz", "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==", + "dev": true, "dependencies": { "@babel/types": "^7.18.9", "@jridgewell/gen-mapping": "^0.3.2", @@ -1841,6 +1467,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1879,6 +1506,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "dev": true, "dependencies": { "@babel/compat-data": "^7.18.8", "@babel/helper-validator-option": "^7.18.6", @@ -1952,6 +1580,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -1972,6 +1601,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "dev": true, "dependencies": { "@babel/template": "^7.18.6", "@babel/types": "^7.18.9" @@ -1984,6 +1614,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -2007,6 +1638,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -2018,6 +1650,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -2048,6 +1681,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -2090,6 +1724,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -2113,6 +1748,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -2124,6 +1760,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -2132,6 +1769,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -2155,6 +1793,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "dev": true, "dependencies": { "@babel/template": "^7.18.6", "@babel/traverse": "^7.18.9", @@ -2168,6 +1807,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -2181,6 +1821,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", + "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -2473,6 +2114,7 @@ "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2484,6 +2126,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2495,6 +2138,7 @@ "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.12.13" }, @@ -2560,6 +2204,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -2571,6 +2216,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2582,6 +2228,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -2593,6 +2240,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2604,6 +2252,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.10.4" }, @@ -2615,6 +2264,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2626,6 +2276,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2637,6 +2288,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.8.0" }, @@ -2663,6 +2315,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.14.5" }, @@ -2677,6 +2330,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" }, @@ -3349,6 +3003,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.6", @@ -3362,6 +3017,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz", "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==", + "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.18.9", @@ -3382,6 +3038,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz", "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==", + "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" @@ -3393,7 +3050,8 @@ "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", @@ -3417,26 +3075,17 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@fosscord/api": { - "resolved": "api", - "link": true - }, - "node_modules/@fosscord/cdn": { - "resolved": "cdn", - "link": true - }, - "node_modules/@fosscord/gateway": { - "resolved": "gateway", - "link": true - }, - "node_modules/@fosscord/util": { - "resolved": "util", - "link": true + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "optional": true }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, "dependencies": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -3452,6 +3101,7 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true, "engines": { "node": ">=8" } @@ -3460,6 +3110,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, "dependencies": { "@jest/types": "^28.1.3", "@types/node": "*", @@ -3476,6 +3127,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3490,6 +3142,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3505,6 +3158,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -3515,12 +3169,14 @@ "node_modules/@jest/console/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/@jest/console/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -3529,6 +3185,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -3540,6 +3197,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, "dependencies": { "@jest/console": "^28.1.3", "@jest/reporters": "^28.1.3", @@ -3587,6 +3245,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3601,6 +3260,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3616,6 +3276,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -3626,12 +3287,14 @@ "node_modules/@jest/core/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/@jest/core/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -3640,6 +3303,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -3651,6 +3315,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, "dependencies": { "@jest/fake-timers": "^28.1.3", "@jest/types": "^28.1.3", @@ -3665,6 +3330,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, "dependencies": { "expect": "^28.1.3", "jest-snapshot": "^28.1.3" @@ -3677,6 +3343,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, "dependencies": { "jest-get-type": "^28.0.2" }, @@ -3688,6 +3355,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, "dependencies": { "@jest/types": "^28.1.3", "@sinonjs/fake-timers": "^9.1.2", @@ -3704,6 +3372,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, "dependencies": { "@jest/environment": "^28.1.3", "@jest/expect": "^28.1.3", @@ -3717,6 +3386,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^28.1.3", @@ -3760,6 +3430,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3774,6 +3445,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3789,6 +3461,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -3799,12 +3472,14 @@ "node_modules/@jest/reporters/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/@jest/reporters/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -3813,6 +3488,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -3824,6 +3500,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, "dependencies": { "@sinclair/typebox": "^0.24.1" }, @@ -3835,6 +3512,7 @@ "version": "28.1.2", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.13", "callsites": "^3.0.0", @@ -3848,6 +3526,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, "dependencies": { "@jest/console": "^28.1.3", "@jest/types": "^28.1.3", @@ -3862,6 +3541,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, "dependencies": { "@jest/test-result": "^28.1.3", "graceful-fs": "^4.2.9", @@ -3876,6 +3556,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/types": "^28.1.3", @@ -3901,6 +3582,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3915,6 +3597,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -3930,6 +3613,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -3940,12 +3624,14 @@ "node_modules/@jest/transform/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/@jest/transform/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -3954,6 +3640,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -3965,6 +3652,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, "dependencies": { "@jest/schemas": "^28.1.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -3981,6 +3669,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3995,6 +3684,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4010,6 +3700,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -4020,12 +3711,14 @@ "node_modules/@jest/types/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/@jest/types/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -4034,6 +3727,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -4045,6 +3739,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -4057,6 +3752,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "devOptional": true, "engines": { "node": ">=6.0.0" } @@ -4065,6 +3761,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, "engines": { "node": ">=6.0.0" } @@ -4072,12 +3769,14 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "devOptional": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.14", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -4102,45 +3801,230 @@ "node-pre-gyp": "bin/node-pre-gyp" } }, - "node_modules/@mapbox/node-pre-gyp/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/@mapbox/node-pre-gyp/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "optional": true, + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/fs/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/fs/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "optional": true, + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "optional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@ovos-media/ts-transform-paths": { + "version": "1.7.18-1", + "resolved": "https://registry.npmjs.org/@ovos-media/ts-transform-paths/-/ts-transform-paths-1.7.18-1.tgz", + "integrity": "sha512-5uYtraYSWg1klaMYus3ouCOUUNzcI40pS0NCaw0PhoaPTimVfT3MV061ZLYR/4F14THqyofMjmCNcHgFrBX3AA==", + "dependencies": { + "@zerollup/ts-helpers": "^1.7.18" + }, + "peerDependencies": { + "typescript": ">=3.7.2" + } + }, + "node_modules/@sentry/core": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.10.0.tgz", + "integrity": "sha512-uq6oUXPH+6cjsEL5/j/xSW91mVrJo7knTqax7E5MDiA5j98BPK4budGiBiPO7GEB856QhA7N+pOO0lccii5QYQ==", + "dependencies": { + "@sentry/hub": "7.10.0", + "@sentry/types": "7.10.0", + "@sentry/utils": "7.10.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/core/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/hub": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-7.10.0.tgz", + "integrity": "sha512-9Appy7J87EU7Xu2BDY1cLK79nsuE72geeYmG71lgdttTD3XOMcQBOxET4/2sAI+d/ansurXnURx+DAQ9FOKT+w==", + "dependencies": { + "@sentry/types": "7.10.0", + "@sentry/utils": "7.10.0", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/hub/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/node": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.10.0.tgz", + "integrity": "sha512-L/DSEJ7Biy8ovvlCyfu5MpCYG108FIGVbJ1h0NBGr5+uLxTNg2WJWojJoiQNiRcWl4s0dcIXrRdi0HR2Sx+DUw==", + "dependencies": { + "@sentry/core": "7.10.0", + "@sentry/hub": "7.10.0", + "@sentry/types": "7.10.0", + "@sentry/utils": "7.10.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/node/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/tracing": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.10.0.tgz", + "integrity": "sha512-ojuBYS1bL/IGWKt/ItY4HmC8NElJrYtTUvm73VbhylhIO4zcn5ICHmgMFj1lqL9gQ1nCnAlifKiWIjL9qUatTA==", "dependencies": { - "yallist": "^4.0.0" + "@sentry/hub": "7.10.0", + "@sentry/types": "7.10.0", + "@sentry/utils": "7.10.0", + "tslib": "^1.9.3" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "node_modules/@sentry/tracing/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/@sentry/types": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.10.0.tgz", + "integrity": "sha512-1UBwdbS0xXzANzp63g4eNQly/qKIXp0swP5OTKWoADvKBtL4anroLUA/l8ADMtuwFZYtVANc8WRGxM2+YmaXtg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@sentry/utils": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.10.0.tgz", + "integrity": "sha512-/aD2DnfyOhV0Wdbb6VF78vu4fQIZJyuReDpBI7MV/EqcEB6FxUKq2YjinfKZF/exHEPig6Ag/Yt+CRFgvtVFuw==", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "@sentry/types": "7.10.0", + "tslib": "^1.9.3" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/@mapbox/node-pre-gyp/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "node_modules/@sentry/utils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@sinclair/typebox": { "version": "0.24.20", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.20.tgz", - "integrity": "sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ==" + "integrity": "sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ==", + "dev": true }, "node_modules/@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, "dependencies": { "type-detect": "4.0.8" } @@ -4149,6 +4033,7 @@ "version": "9.1.2", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, "dependencies": { "@sinonjs/commons": "^1.7.0" } @@ -4209,6 +4094,7 @@ "version": "7.1.19", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", @@ -4221,6 +4107,7 @@ "version": "7.6.4", "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, "dependencies": { "@babel/types": "^7.0.0" } @@ -4229,6 +4116,7 @@ "version": "7.4.1", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, "dependencies": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -4238,6 +4126,7 @@ "version": "7.17.1", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, "dependencies": { "@babel/types": "^7.3.0" } @@ -4313,6 +4202,7 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, "dependencies": { "@types/node": "*" } @@ -4329,12 +4219,14 @@ "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, "dependencies": { "@types/istanbul-lib-coverage": "*" } @@ -4343,6 +4235,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, "dependencies": { "@types/istanbul-lib-report": "*" } @@ -4400,6 +4293,25 @@ "form-data": "^3.0.0" } }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/node-os-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/node-os-utils/-/node-os-utils-1.3.0.tgz", + "integrity": "sha512-XwVteWQx/XkfRPyaGkw8dEbrCAkoRZ73pI3XznUYIpzbCfpQB3UnDlR5TnmdhetlT889tUJGF8QWo9xrgTpsiA==", + "dev": true + }, "node_modules/@types/notp": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@types/notp/-/notp-2.0.2.tgz", @@ -4411,7 +4323,8 @@ "node_modules/@types/prettier": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", - "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==" + "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", + "dev": true }, "node_modules/@types/qs": { "version": "6.9.7", @@ -4438,7 +4351,8 @@ "node_modules/@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true }, "node_modules/@types/stream-buffers": { "version": "3.0.4", @@ -4473,6 +4387,7 @@ "version": "17.0.10", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "dev": true, "dependencies": { "@types/yargs-parser": "*" } @@ -4480,30 +4395,25 @@ "node_modules/@types/yargs-parser": { "version": "21.0.0", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" }, - "node_modules/@yukikaze-bot/erlpack": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@yukikaze-bot/erlpack/-/erlpack-1.0.1.tgz", - "integrity": "sha512-PCJ2lGCf8DsQtrE411PY+NTsolK48l4InNn1kcBo0iUllKZYGLqeqXEWGA/INrmwanKcoYkU4pBySqUFLQDEoA==", - "hasInstallScript": true, - "optional": true, + "node_modules/@zerollup/ts-helpers": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@zerollup/ts-helpers/-/ts-helpers-1.7.18.tgz", + "integrity": "sha512-S9zN+y+i5yN/evfWquzSO3lubqPXIsPQf6p9OiPMpRxDx/0totPLF39XoRw48Dav5dSvbIE8D2eAPpXXJxvKwg==", "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.5", - "node-addon-api": "^4.0.0" + "resolve": "^1.12.0" + }, + "peerDependencies": { + "typescript": ">=3.7.2" } }, - "node_modules/@yukikaze-bot/erlpack/node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true - }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -4551,10 +4461,46 @@ "node": ">= 6.0.0" } }, + "node_modules/agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "optional": true, + "dependencies": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/agentkeepalive/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "optional": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -4600,6 +4546,7 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -4638,6 +4585,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -4719,7 +4667,8 @@ "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true }, "node_modules/ast-types": { "version": "0.13.4", @@ -4741,6 +4690,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, "dependencies": { "@jest/transform": "^28.1.3", "@types/babel__core": "^7.1.14", @@ -4761,6 +4711,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -4775,6 +4726,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -4790,6 +4742,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -4800,12 +4753,14 @@ "node_modules/babel-jest/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/babel-jest/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -4814,6 +4769,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -4834,6 +4790,7 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -4849,6 +4806,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, "dependencies": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -4902,6 +4860,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -4924,6 +4883,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, "dependencies": { "babel-plugin-jest-hoist": "^28.1.3", "babel-preset-current-node-syntax": "^1.0.0" @@ -5149,6 +5109,7 @@ "version": "4.21.2", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz", "integrity": "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==", + "dev": true, "funding": [ { "type": "opencollective", @@ -5176,6 +5137,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, "dependencies": { "node-int64": "^0.4.0" } @@ -5233,7 +5195,6 @@ "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", "optional": true, - "peer": true, "engines": { "node": ">=4" } @@ -5257,6 +5218,65 @@ "node": ">= 0.8" } }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "optional": true, + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "optional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -5273,6 +5293,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, "engines": { "node": ">=6" } @@ -5281,6 +5302,7 @@ "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, "engines": { "node": ">=6" } @@ -5289,6 +5311,7 @@ "version": "1.0.30001367", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz", "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==", + "dev": true, "funding": [ { "type": "opencollective", @@ -5331,6 +5354,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true, "engines": { "node": ">=10" } @@ -5409,12 +5433,23 @@ "node_modules/ci-info": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==" + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "dev": true }, "node_modules/cjs-module-lexer": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "optional": true, + "engines": { + "node": ">=6" + } }, "node_modules/cli-highlight": { "version": "2.1.11", @@ -5532,6 +5567,7 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -5540,7 +5576,8 @@ "node_modules/collect-v8-coverage": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true }, "node_modules/color-convert": { "version": "1.9.3", @@ -5577,7 +5614,8 @@ "node_modules/component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true }, "node_modules/concat-map": { "version": "0.0.1", @@ -5658,6 +5696,7 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, "dependencies": { "safe-buffer": "~5.1.1" } @@ -5665,7 +5704,16 @@ "node_modules/convert-source-map/node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "engines": { + "node": ">= 0.6" + } }, "node_modules/cookie-signature": { "version": "1.0.6", @@ -5675,7 +5723,8 @@ "node_modules/cookiejar": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "dev": true }, "node_modules/core-js-compat": { "version": "3.23.4", @@ -5715,6 +5764,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -5800,7 +5850,8 @@ "node_modules/dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true }, "node_modules/deep-is": { "version": "0.1.4", @@ -5811,6 +5862,7 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -5926,6 +5978,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true, "engines": { "node": ">=8" } @@ -5934,6 +5987,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", + "dev": true, "dependencies": { "asap": "^2.0.0", "wrappy": "1" @@ -5952,6 +6006,7 @@ "version": "28.1.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true, "engines": { "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } @@ -6051,12 +6106,14 @@ "node_modules/electron-to-chromium": { "version": "1.4.192", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.192.tgz", - "integrity": "sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw==" + "integrity": "sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw==", + "dev": true }, "node_modules/emittery": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true, "engines": { "node": ">=12" }, @@ -6077,6 +6134,27 @@ "node": ">= 0.8" } }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/encoding/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -6085,10 +6163,26 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "optional": true + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, "dependencies": { "is-arrayish": "^0.2.1" } @@ -6146,6 +6240,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -6179,6 +6274,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, "engines": { "node": ">= 0.8.0" } @@ -6187,6 +6283,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, "dependencies": { "@jest/expect-utils": "^28.1.3", "jest-get-type": "^28.0.2", @@ -6276,7 +6373,8 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -6286,7 +6384,8 @@ "node_modules/fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true }, "node_modules/fast-xml-parser": { "version": "3.19.0", @@ -6304,6 +6403,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, "dependencies": { "bser": "2.1.1" } @@ -6377,6 +6477,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "dependencies": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -6394,9 +6495,9 @@ } }, "node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -6410,6 +6511,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "dev": true, "dependencies": { "dezalgo": "1.0.3", "hexoid": "1.0.0", @@ -6424,6 +6526,7 @@ "version": "6.9.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "dev": true, "engines": { "node": ">=0.6" }, @@ -6467,6 +6570,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -6512,10 +6616,20 @@ "node": ">=10" } }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "optional": true, + "dependencies": { + "is-property": "^1.0.2" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, "engines": { "node": ">=6.9.0" } @@ -6545,6 +6659,7 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true, "engines": { "node": ">=8.0.0" } @@ -6553,6 +6668,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, "engines": { "node": ">=10" }, @@ -6666,6 +6782,7 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, "engines": { "node": ">=4" } @@ -6734,6 +6851,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true, "engines": { "node": ">=8" } @@ -6749,7 +6867,8 @@ "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true }, "node_modules/htmlparser2": { "version": "8.0.1", @@ -6780,6 +6899,12 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "optional": true + }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -6824,10 +6949,20 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, "engines": { "node": ">=10.17.0" } }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "optional": true, + "dependencies": { + "ms": "^2.0.0" + } + }, "node_modules/i18next": { "version": "21.8.14", "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.8.14.tgz", @@ -6927,6 +7062,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -6945,10 +7081,26 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "devOptional": true, "engines": { "node": ">=0.8.19" } }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "optional": true + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -6994,7 +7146,8 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true }, "node_modules/is-binary-path": { "version": "2.1.0", @@ -7070,6 +7223,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true, "engines": { "node": ">=6" } @@ -7086,6 +7240,12 @@ "node": ">=0.10.0" } }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "optional": true + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -7094,10 +7254,17 @@ "node": ">=0.12.0" } }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", + "optional": true + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, "engines": { "node": ">=8" }, @@ -7130,6 +7297,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true, "engines": { "node": ">=8" } @@ -7138,6 +7306,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "dev": true, "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -7153,6 +7322,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", @@ -7166,6 +7336,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -7174,6 +7345,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7185,6 +7357,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -7198,6 +7371,7 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -7210,6 +7384,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, "dependencies": { "@jest/core": "^28.1.3", "@jest/types": "^28.1.3", @@ -7235,6 +7410,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, "dependencies": { "execa": "^5.0.0", "p-limit": "^3.1.0" @@ -7247,6 +7423,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -7261,6 +7438,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, "dependencies": { "@jest/environment": "^28.1.3", "@jest/expect": "^28.1.3", @@ -7290,6 +7468,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7304,6 +7483,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7319,6 +7499,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -7329,12 +7510,14 @@ "node_modules/jest-circus/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-circus/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -7343,6 +7526,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -7357,6 +7541,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7368,6 +7553,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, "dependencies": { "@jest/core": "^28.1.3", "@jest/test-result": "^28.1.3", @@ -7401,6 +7587,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7415,6 +7602,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7430,6 +7618,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -7440,12 +7629,14 @@ "node_modules/jest-cli/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-cli/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -7454,6 +7645,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7465,6 +7657,7 @@ "version": "17.5.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, "dependencies": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -7482,6 +7675,7 @@ "version": "21.0.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true, "engines": { "node": ">=12" } @@ -7490,6 +7684,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^28.1.3", @@ -7534,6 +7729,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7548,6 +7744,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7563,6 +7760,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -7573,12 +7771,14 @@ "node_modules/jest-config/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-config/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -7587,6 +7787,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7598,6 +7799,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, "dependencies": { "chalk": "^4.0.0", "diff-sequences": "^28.1.1", @@ -7612,6 +7814,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7626,6 +7829,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7641,6 +7845,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -7651,12 +7856,14 @@ "node_modules/jest-diff/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-diff/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -7665,6 +7872,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7676,6 +7884,7 @@ "version": "28.1.1", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, "dependencies": { "detect-newline": "^3.0.0" }, @@ -7687,6 +7896,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, "dependencies": { "@jest/types": "^28.1.3", "chalk": "^4.0.0", @@ -7702,6 +7912,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7716,6 +7927,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7731,6 +7943,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -7741,12 +7954,14 @@ "node_modules/jest-each/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-each/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -7755,6 +7970,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7766,6 +7982,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, "dependencies": { "@jest/environment": "^28.1.3", "@jest/fake-timers": "^28.1.3", @@ -7788,6 +8005,7 @@ "version": "28.0.2", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true, "engines": { "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } @@ -7796,6 +8014,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, "dependencies": { "@jest/types": "^28.1.3", "@types/graceful-fs": "^4.1.3", @@ -7820,6 +8039,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, "dependencies": { "jest-get-type": "^28.0.2", "pretty-format": "^28.1.3" @@ -7832,6 +8052,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, "dependencies": { "chalk": "^4.0.0", "jest-diff": "^28.1.3", @@ -7846,6 +8067,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7860,6 +8082,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7875,6 +8098,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -7885,12 +8109,14 @@ "node_modules/jest-matcher-utils/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-matcher-utils/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -7899,6 +8125,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7910,6 +8137,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, "dependencies": { "@babel/code-frame": "^7.12.13", "@jest/types": "^28.1.3", @@ -7929,6 +8157,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -7943,6 +8172,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -7958,6 +8188,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -7968,12 +8199,14 @@ "node_modules/jest-message-util/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-message-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -7982,6 +8215,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -7993,6 +8227,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, "dependencies": { "@jest/types": "^28.1.3", "@types/node": "*" @@ -8005,6 +8240,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, "engines": { "node": ">=6" }, @@ -8021,6 +8257,7 @@ "version": "28.0.2", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true, "engines": { "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } @@ -8029,6 +8266,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, "dependencies": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -8048,6 +8286,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, "dependencies": { "jest-regex-util": "^28.0.2", "jest-snapshot": "^28.1.3" @@ -8060,6 +8299,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -8074,6 +8314,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8089,6 +8330,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -8099,12 +8341,14 @@ "node_modules/jest-resolve/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-resolve/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -8113,6 +8357,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -8124,6 +8369,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, "dependencies": { "@jest/console": "^28.1.3", "@jest/environment": "^28.1.3", @@ -8155,6 +8401,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -8169,6 +8416,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8184,6 +8432,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -8194,12 +8443,14 @@ "node_modules/jest-runner/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-runner/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -8208,6 +8459,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -8222,6 +8474,7 @@ "version": "0.5.13", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -8231,6 +8484,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -8242,6 +8496,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, "dependencies": { "@jest/environment": "^28.1.3", "@jest/fake-timers": "^28.1.3", @@ -8274,6 +8529,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -8288,6 +8544,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8303,6 +8560,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -8313,12 +8571,14 @@ "node_modules/jest-runtime/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-runtime/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -8327,6 +8587,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -8338,6 +8599,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, "dependencies": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -8371,6 +8633,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -8385,6 +8648,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8400,6 +8664,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -8410,12 +8675,14 @@ "node_modules/jest-snapshot/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-snapshot/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -8424,6 +8691,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -8435,6 +8703,7 @@ "version": "7.3.7", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -8449,6 +8718,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -8459,12 +8729,14 @@ "node_modules/jest-snapshot/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/jest-util": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, "dependencies": { "@jest/types": "^28.1.3", "@types/node": "*", @@ -8481,6 +8753,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -8495,6 +8768,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8510,6 +8784,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -8520,12 +8795,14 @@ "node_modules/jest-util/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -8534,6 +8811,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -8545,6 +8823,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, "dependencies": { "@jest/types": "^28.1.3", "camelcase": "^6.2.0", @@ -8561,6 +8840,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -8575,6 +8855,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, "engines": { "node": ">=10" }, @@ -8586,6 +8867,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8601,6 +8883,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -8611,12 +8894,14 @@ "node_modules/jest-validate/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-validate/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -8625,6 +8910,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -8636,6 +8922,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, "dependencies": { "@jest/test-result": "^28.1.3", "@jest/types": "^28.1.3", @@ -8654,6 +8941,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -8668,6 +8956,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -8683,6 +8972,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -8693,12 +8983,14 @@ "node_modules/jest-watcher/node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "node_modules/jest-watcher/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -8707,6 +8999,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -8718,6 +9011,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -8731,6 +9025,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -8739,6 +9034,7 @@ "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -8752,7 +9048,8 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "node_modules/js-yaml": { "version": "3.13.1", @@ -8770,6 +9067,7 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, "bin": { "jsesc": "bin/jsesc" }, @@ -8780,7 +9078,8 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "node_modules/json-schema-traverse": { "version": "1.0.0", @@ -8791,6 +9090,7 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true, "bin": { "json5": "lib/cli.js" }, @@ -8867,6 +9167,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, "engines": { "node": ">=6" } @@ -8952,6 +9253,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true, "engines": { "node": ">=6" } @@ -8971,12 +9273,14 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true }, "node_modules/locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, "dependencies": { "p-locate": "^4.1.0" }, @@ -9025,6 +9329,17 @@ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "optional": true + }, + "node_modules/lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==" + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -9053,10 +9368,70 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "devOptional": true }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "optional": true, + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "optional": true, + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, "dependencies": { "tmpl": "1.0.5" } @@ -9084,7 +9459,8 @@ "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "node_modules/methods": { "version": "1.1.2", @@ -9140,6 +9516,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, "engines": { "node": ">=6" } @@ -9176,7 +9553,72 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", "dependencies": { - "yallist": "^4.0.0" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "optional": true, + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" }, "engines": { "node": ">=8" @@ -9321,6 +9763,64 @@ "node": ">= 6.0.0" } }, + "node_modules/mysql2": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", + "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", + "optional": true, + "dependencies": { + "denque": "^2.0.1", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^4.0.0", + "lru-cache": "^6.0.0", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "optional": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mysql2/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mysql2/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -9331,6 +9831,34 @@ "thenify-all": "^1.0.0" } }, + "node_modules/named-placeholders": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", + "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", + "optional": true, + "dependencies": { + "lru-cache": "^4.1.3" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "optional": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/named-placeholders/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "optional": true + }, "node_modules/nan": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", @@ -9339,7 +9867,8 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, "node_modules/negotiator": { "version": "0.6.3", @@ -9416,15 +9945,144 @@ "webidl-conversions": "^3.0.0" } }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "optional": true, + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, + "node_modules/node-gyp/node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/node-gyp/node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "optional": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/node-gyp/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "optional": true, + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/node-gyp/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/node-gyp/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "optional": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/node-gyp/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true }, "node_modules/node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true }, "node_modules/nopt": { "version": "5.0.0", @@ -9444,6 +10102,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -9460,6 +10119,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, "dependencies": { "path-key": "^3.0.0" }, @@ -9563,6 +10223,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -9629,6 +10290,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "dependencies": { "p-try": "^2.0.0" }, @@ -9643,6 +10305,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, "dependencies": { "p-limit": "^2.2.0" }, @@ -9650,10 +10313,26 @@ "node": ">=8" } }, + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "optional": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, "engines": { "node": ">=6" } @@ -9694,13 +10373,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==", - "optional": true, - "peer": true + "optional": true }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -9902,6 +10581,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, "engines": { "node": ">=8" } @@ -9918,6 +10598,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, "engines": { "node": ">=8" } @@ -9949,7 +10630,6 @@ "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", "optional": true, - "peer": true, "dependencies": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", @@ -9975,15 +10655,13 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==", - "optional": true, - "peer": true + "optional": true }, "node_modules/pg-int8": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", "optional": true, - "peer": true, "engines": { "node": ">=4.0.0" } @@ -9993,7 +10671,6 @@ "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz", "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==", "optional": true, - "peer": true, "peerDependencies": { "pg": ">=8.0" } @@ -10002,15 +10679,13 @@ "version": "1.5.0", "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==", - "optional": true, - "peer": true + "optional": true }, "node_modules/pg-types": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", "optional": true, - "peer": true, "dependencies": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", @@ -10027,7 +10702,6 @@ "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", "optional": true, - "peer": true, "dependencies": { "split2": "^4.1.0" } @@ -10052,6 +10726,7 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true, "engines": { "node": ">= 6" } @@ -10060,6 +10735,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, "dependencies": { "find-up": "^4.0.0" }, @@ -10072,7 +10748,6 @@ "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", "optional": true, - "peer": true, "engines": { "node": ">=4" } @@ -10082,7 +10757,6 @@ "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", "optional": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -10092,7 +10766,6 @@ "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", "optional": true, - "peer": true, "engines": { "node": ">=0.10.0" } @@ -10102,7 +10775,6 @@ "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", "optional": true, - "peer": true, "dependencies": { "xtend": "^4.0.0" }, @@ -10122,6 +10794,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, "dependencies": { "@jest/schemas": "^28.1.3", "ansi-regex": "^5.0.1", @@ -10136,6 +10809,7 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, "engines": { "node": ">=10" }, @@ -10148,10 +10822,30 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "optional": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "optional": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, "dependencies": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -10195,6 +10889,12 @@ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "optional": true + }, "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -10255,7 +10955,8 @@ "node_modules/react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true }, "node_modules/readable-stream": { "version": "1.1.14", @@ -10460,6 +11161,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, "dependencies": { "resolve-from": "^5.0.0" }, @@ -10471,6 +11173,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, "engines": { "node": ">=8" } @@ -10479,10 +11182,20 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true, "engines": { "node": ">=10" } }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "optional": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -10597,6 +11310,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==", + "optional": true + }, "node_modules/serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", @@ -10637,6 +11356,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "dependencies": { "shebang-regex": "^3.0.0" }, @@ -10648,6 +11368,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, "engines": { "node": ">=8" } @@ -10719,12 +11440,14 @@ "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "engines": { "node": ">=8" } @@ -10768,6 +11491,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -10797,7 +11521,6 @@ "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", "optional": true, - "peer": true, "engines": { "node": ">= 10.x" } @@ -10807,10 +11530,61 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, + "node_modules/sqlite3": { + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.11.tgz", + "integrity": "sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "node-addon-api": "^4.2.0", + "tar": "^6.1.11" + }, + "optionalDependencies": { + "node-gyp": "8.x" + }, + "peerDependencies": { + "node-gyp": "8.x" + }, + "peerDependenciesMeta": { + "node-gyp": { + "optional": true + } + } + }, + "node_modules/sqlite3/node_modules/node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "optional": true + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "optional": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "optional": true, + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, "dependencies": { "escape-string-regexp": "^2.0.0" }, @@ -10822,6 +11596,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, "engines": { "node": ">=8" } @@ -10851,6 +11626,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, "dependencies": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -10887,6 +11663,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true, "engines": { "node": ">=8" } @@ -10895,6 +11672,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, "engines": { "node": ">=6" } @@ -10903,6 +11681,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, "engines": { "node": ">=8" }, @@ -10930,6 +11709,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.0.tgz", "integrity": "sha512-iudipXEel+SzlP9y29UBWGDjB+Zzag+eeA1iLosaR2YHBRr1Q1kC29iBrF2zIVD9fqVbpZnXkN/VJmwFMVyNWg==", + "dev": true, "dependencies": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.3", @@ -10947,23 +11727,11 @@ "node": ">=6.4.0 <13 || >=14" } }, - "node_modules/superagent/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/superagent/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "dependencies": { "yallist": "^4.0.0" }, @@ -10975,6 +11743,7 @@ "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, "bin": { "mime": "cli.js" }, @@ -10986,6 +11755,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -10999,6 +11769,7 @@ "version": "7.3.7", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, @@ -11013,6 +11784,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -11020,12 +11792,14 @@ "node_modules/superagent/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, "node_modules/supertest": { "version": "6.2.4", "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.4.tgz", "integrity": "sha512-M8xVnCNv+q2T2WXVzxDECvL2695Uv2uUj2O0utxsld/HRyJvOU8W9f1gvsYxSNU4wmIe0/L/ItnpU4iKq0emDA==", + "dev": true, "dependencies": { "methods": "^1.1.2", "superagent": "^8.0.0" @@ -11049,6 +11823,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -11061,6 +11836,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, "engines": { "node": ">=8" } @@ -11069,6 +11845,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "dependencies": { "has-flag": "^4.0.0" }, @@ -11123,6 +11900,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, "dependencies": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" @@ -11138,6 +11916,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -11188,12 +11967,14 @@ "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, "engines": { "node": ">=4" } @@ -11484,6 +12265,7 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, "engines": { "node": ">=4" } @@ -11492,6 +12274,7 @@ "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, "engines": { "node": ">=10" }, @@ -11516,6 +12299,229 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" }, + "node_modules/typeorm": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", + "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", + "dependencies": { + "@sqltools/formatter": "^1.2.2", + "app-root-path": "^3.0.0", + "buffer": "^6.0.3", + "chalk": "^4.1.0", + "cli-highlight": "^2.1.11", + "date-fns": "^2.28.0", + "debug": "^4.3.3", + "dotenv": "^16.0.0", + "glob": "^7.2.0", + "js-yaml": "^4.1.0", + "mkdirp": "^1.0.4", + "reflect-metadata": "^0.1.13", + "sha.js": "^2.4.11", + "tslib": "^2.3.1", + "uuid": "^8.3.2", + "xml2js": "^0.4.23", + "yargs": "^17.3.1" + }, + "bin": { + "typeorm": "cli.js", + "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", + "typeorm-ts-node-esm": "cli-ts-node-esm.js" + }, + "engines": { + "node": ">= 12.9.0" + }, + "funding": { + "url": "https://opencollective.com/typeorm" + }, + "peerDependencies": { + "@google-cloud/spanner": "^5.18.0", + "@sap/hana-client": "^2.12.25", + "better-sqlite3": "^7.1.2", + "hdb-pool": "^0.1.6", + "ioredis": "^5.0.4", + "mongodb": "^3.6.0", + "mssql": "^7.3.0", + "mysql2": "^2.2.5", + "oracledb": "^5.1.0", + "pg": "^8.5.1", + "pg-native": "^3.0.0", + "pg-query-stream": "^4.0.0", + "redis": "^3.1.1 || ^4.0.0", + "sql.js": "^1.4.0", + "sqlite3": "^5.0.3", + "ts-node": "^10.7.0", + "typeorm-aurora-data-api-driver": "^2.0.0" + }, + "peerDependenciesMeta": { + "@google-cloud/spanner": { + "optional": true + }, + "@sap/hana-client": { + "optional": true + }, + "better-sqlite3": { + "optional": true + }, + "hdb-pool": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "mongodb": { + "optional": true + }, + "mssql": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "oracledb": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-native": { + "optional": true + }, + "pg-query-stream": { + "optional": true + }, + "redis": { + "optional": true + }, + "sql.js": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "ts-node": { + "optional": true + }, + "typeorm-aurora-data-api-driver": { + "optional": true + } + } + }, + "node_modules/typeorm/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/typeorm/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/typeorm/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/typeorm/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/typeorm/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/typeorm/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/typeorm/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/typeorm/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/typeorm/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/typeorm/node_modules/yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/typeorm/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, "node_modules/typescript": { "version": "4.7.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", @@ -11633,6 +12639,24 @@ "node": ">=4" } }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "optional": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "optional": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -11645,6 +12669,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "dev": true, "funding": [ { "type": "opencollective", @@ -11714,6 +12739,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -11750,6 +12776,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, "dependencies": { "makeerror": "1.0.12" } @@ -11758,6 +12785,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "devOptional": true, "dependencies": { "isexe": "^2.0.0" }, @@ -11839,6 +12867,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -11954,276 +12983,42 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "util": { - "name": "@fosscord/util", - "version": "1.0.0", - "hasInstallScript": true, - "license": "AGPL-3.0-only", - "dependencies": { - "@types/node-fetch": "^2.6.2", - "amqplib": "^0.10.0", - "form-data": "^4.0.0", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "multer": "^1.4.5-lts.1", - "node-fetch": "^2.6.7", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "typeorm": "^0.3.7", - "typescript": "^4.7.4" - }, - "devDependencies": { - "@types/amqplib": "^0.8.1", - "@types/jsonwebtoken": "^8.5.8", - "@types/multer": "^1.4.7", - "@types/node": "^18.0.6", - "jest": "^28.1.3", - "ts-node": "^10.2.1" - } - }, - "util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "util/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "util/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "util/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "util/node_modules/typeorm": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", - "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", - "dependencies": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - }, - "bin": { - "typeorm": "cli.js", - "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", - "typeorm-ts-node-esm": "cli-ts-node-esm.js" - }, - "engines": { - "node": ">= 12.9.0" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@google-cloud/spanner": "^5.18.0", - "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2", - "hdb-pool": "^0.1.6", - "ioredis": "^5.0.4", - "mongodb": "^3.6.0", - "mssql": "^7.3.0", - "mysql2": "^2.2.5", - "oracledb": "^5.1.0", - "pg": "^8.5.1", - "pg-native": "^3.0.0", - "pg-query-stream": "^4.0.0", - "redis": "^3.1.1 || ^4.0.0", - "sql.js": "^1.4.0", - "sqlite3": "^5.0.3", - "ts-node": "^10.7.0", - "typeorm-aurora-data-api-driver": "^2.0.0" - }, - "peerDependenciesMeta": { - "@google-cloud/spanner": { - "optional": true - }, - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "util/node_modules/typeorm/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "util/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "util/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "engines": { - "node": ">=12" + "util": { + "name": "@fosscord/util", + "version": "1.0.0", + "extraneous": true, + "hasInstallScript": true, + "license": "AGPL-3.0-only", + "dependencies": { + "@types/node-fetch": "^2.6.2", + "amqplib": "^0.10.0", + "form-data": "^4.0.0", + "jsonwebtoken": "^8.5.1", + "lambert-server": "^1.2.12", + "missing-native-js-functions": "^1.2.18", + "multer": "^1.4.5-lts.1", + "node-fetch": "^2.6.7", + "picocolors": "^1.0.0", + "proxy-agent": "^5.0.0", + "reflect-metadata": "^0.1.13", + "typeorm": "^0.3.7", + "typescript": "^4.7.4" + }, + "devDependencies": { + "@types/amqplib": "^0.8.1", + "@types/jsonwebtoken": "^8.5.8", + "@types/multer": "^1.4.7", + "@types/node": "^18.0.6", + "jest": "^28.1.3", + "ts-node": "^10.2.1" } } }, @@ -12232,6 +13027,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -13253,6 +14049,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, "requires": { "@babel/highlight": "^7.18.6" } @@ -13260,12 +14057,14 @@ "@babel/compat-data": { "version": "7.18.8", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==" + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "dev": true }, "@babel/core": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", + "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -13288,6 +14087,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz", "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==", + "dev": true, "requires": { "@babel/types": "^7.18.9", "@jridgewell/gen-mapping": "^0.3.2", @@ -13298,6 +14098,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -13329,6 +14130,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "dev": true, "requires": { "@babel/compat-data": "^7.18.8", "@babel/helper-validator-option": "^7.18.6", @@ -13380,7 +14182,8 @@ "@babel/helper-environment-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true }, "@babel/helper-explode-assignable-expression": { "version": "7.18.6", @@ -13395,6 +14198,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "dev": true, "requires": { "@babel/template": "^7.18.6", "@babel/types": "^7.18.9" @@ -13404,6 +14208,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -13421,6 +14226,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -13429,6 +14235,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -13452,7 +14259,8 @@ "@babel/helper-plugin-utils": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==" + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "dev": true }, "@babel/helper-remap-async-to-generator": { "version": "7.18.6", @@ -13483,6 +14291,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -13500,6 +14309,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -13507,12 +14317,14 @@ "@babel/helper-validator-identifier": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true }, "@babel/helper-validator-option": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "dev": true }, "@babel/helper-wrap-function": { "version": "7.18.6", @@ -13530,6 +14342,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "dev": true, "requires": { "@babel/template": "^7.18.6", "@babel/traverse": "^7.18.9", @@ -13540,6 +14353,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -13549,7 +14363,8 @@ "@babel/parser": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", - "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==" + "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", + "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { "version": "7.18.6", @@ -13734,6 +14549,7 @@ "version": "7.8.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } @@ -13742,6 +14558,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } @@ -13750,6 +14567,7 @@ "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.12.13" } @@ -13794,6 +14612,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } @@ -13802,6 +14621,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } @@ -13810,6 +14630,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } @@ -13818,6 +14639,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } @@ -13826,6 +14648,7 @@ "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.10.4" } @@ -13834,6 +14657,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } @@ -13842,6 +14666,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } @@ -13850,6 +14675,7 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.0" } @@ -13867,6 +14693,7 @@ "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.14.5" } @@ -13875,6 +14702,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } @@ -14325,6 +15153,7 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "dev": true, "requires": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.6", @@ -14335,6 +15164,7 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz", "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==", + "dev": true, "requires": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.18.9", @@ -14351,482 +15181,51 @@ "@babel/types": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz", - "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==", - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "devOptional": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "devOptional": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@fosscord/api": { - "version": "file:api", - "requires": { - "@babel/core": "^7.18.9", - "@babel/preset-env": "^7.18.9", - "@babel/preset-typescript": "^7.15.0", - "@fosscord/util": "file:../util", - "@types/bcrypt": "^5.0.0", - "@types/express": "^4.17.9", - "@types/i18next-node-fs-backend": "^2.1.0", - "@types/morgan": "^1.9.3", - "@types/multer": "^1.4.5", - "@types/node": "^18.0.6", - "ajv": "8.6.2", - "ajv-formats": "^2.1.1", - "bcrypt": "^5.0.1", - "body-parser": "^1.19.0", - "canvas": "^2.9.3", - "cheerio": "^1.0.0-rc.10", - "dotenv": "^16.0.1", - "express": "^4.17.1", - "i18next": "^21.8.14", - "i18next-http-middleware": "^3.1.3", - "i18next-node-fs-backend": "^2.1.3", - "image-size": "^1.0.0", - "jest": "^28.1.3", - "jest-expect-message": "^1.0.2", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "morgan": "^1.10.0", - "multer": "^1.4.5-lts.1", - "node-2fa": "^2.0.3", - "node-fetch": "^2.6.7", - "patch-package": "^6.4.7", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "supertest": "^6.1.6", - "ts-node-dev": "^2.0.0", - "typeorm": "^0.3.7", - "typescript": "^4.4.2", - "typescript-json-schema": "^0.54.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "typeorm": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", - "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", - "requires": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - } - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" - } - } - }, - "@fosscord/cdn": { - "version": "file:cdn", - "requires": { - "@aws-sdk/client-s3": "^3.137.0", - "@fosscord/util": "file:../util", - "@types/body-parser": "^1.19.0", - "@types/dotenv": "^8.2.0", - "@types/express": "^4.17.12", - "@types/multer": "^1.4.7", - "@types/node": "^18.6.3", - "@types/node-fetch": "^2.6.2", - "body-parser": "^1.19.0", - "dotenv": "^16.0.1", - "exif-be-gone": "^1.3.0", - "express": "^4.17.1", - "file-type": "16.5", - "image-size": "^1.0.0", - "jest": "^28.1.3", - "lambert-server": "^1.2.12", - "multer": "^1.4.5-lts.1", - "node-fetch": "^2.6.7", - "picocolors": "^1.0.0", - "supertest": "^6.1.6", - "typescript": "^4.1.2" - } - }, - "@fosscord/gateway": { - "version": "file:gateway", + "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==", + "dev": true, "requires": { - "@fosscord/util": "file:../util", - "@types/amqplib": "^0.8.1", - "@types/node": "^18.0.6", - "@types/ws": "^8.5.3", - "@yukikaze-bot/erlpack": "^1.0.1", - "amqplib": "^0.10.1", - "dotenv": "^16.0.1", - "ts-node-dev": "^2.0.0", - "ts-patch": "^2.0.1", - "typeorm": "^0.3.7", - "typescript": "^4.2.3", - "ws": "^8.8.1" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "typeorm": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", - "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", - "requires": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - } - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" - } + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" } }, - "@fosscord/util": { - "version": "file:util", + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "devOptional": true, "requires": { - "@types/amqplib": "^0.8.1", - "@types/jsonwebtoken": "^8.5.8", - "@types/multer": "^1.4.7", - "@types/node": "^18.0.6", - "@types/node-fetch": "^2.6.2", - "amqplib": "^0.10.0", - "form-data": "^4.0.0", - "jest": "^28.1.3", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "multer": "^1.4.5-lts.1", - "node-fetch": "^2.6.7", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "ts-node": "^10.2.1", - "typeorm": "^0.3.7", - "typescript": "^4.7.4" + "@jridgewell/trace-mapping": "0.3.9" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "typeorm": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", - "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", - "requires": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - } - } - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "devOptional": true, "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" } } }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "optional": true + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, "requires": { "camelcase": "^5.3.1", "find-up": "^4.1.0", @@ -14838,12 +15237,14 @@ "@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true }, "@jest/console": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dev": true, "requires": { "@jest/types": "^28.1.3", "@types/node": "*", @@ -14857,6 +15258,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -14865,6 +15267,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -14874,6 +15277,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -14881,17 +15285,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -14902,6 +15309,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", + "dev": true, "requires": { "@jest/console": "^28.1.3", "@jest/reporters": "^28.1.3", @@ -14938,6 +15346,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -14946,6 +15355,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -14955,6 +15365,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -14962,17 +15373,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -14983,6 +15397,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", + "dev": true, "requires": { "@jest/fake-timers": "^28.1.3", "@jest/types": "^28.1.3", @@ -14994,6 +15409,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", + "dev": true, "requires": { "expect": "^28.1.3", "jest-snapshot": "^28.1.3" @@ -15003,6 +15419,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", + "dev": true, "requires": { "jest-get-type": "^28.0.2" } @@ -15011,6 +15428,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", + "dev": true, "requires": { "@jest/types": "^28.1.3", "@sinonjs/fake-timers": "^9.1.2", @@ -15024,6 +15442,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", + "dev": true, "requires": { "@jest/environment": "^28.1.3", "@jest/expect": "^28.1.3", @@ -15034,6 +15453,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", + "dev": true, "requires": { "@bcoe/v8-coverage": "^0.2.3", "@jest/console": "^28.1.3", @@ -15066,6 +15486,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -15074,6 +15495,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -15083,6 +15505,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -15090,17 +15513,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -15111,6 +15537,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dev": true, "requires": { "@sinclair/typebox": "^0.24.1" } @@ -15119,6 +15546,7 @@ "version": "28.1.2", "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", + "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.13", "callsites": "^3.0.0", @@ -15129,6 +15557,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dev": true, "requires": { "@jest/console": "^28.1.3", "@jest/types": "^28.1.3", @@ -15140,6 +15569,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", + "dev": true, "requires": { "@jest/test-result": "^28.1.3", "graceful-fs": "^4.2.9", @@ -15151,6 +15581,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", + "dev": true, "requires": { "@babel/core": "^7.11.6", "@jest/types": "^28.1.3", @@ -15173,6 +15604,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -15181,6 +15613,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -15190,6 +15623,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -15197,17 +15631,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -15218,6 +15655,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dev": true, "requires": { "@jest/schemas": "^28.1.3", "@types/istanbul-lib-coverage": "^2.0.0", @@ -15231,6 +15669,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -15239,6 +15678,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -15248,6 +15688,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -15255,17 +15696,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -15276,6 +15720,7 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, "requires": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -15284,22 +15729,26 @@ "@jridgewell/resolve-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "devOptional": true }, "@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true }, "@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "devOptional": true }, "@jridgewell/trace-mapping": { "version": "0.3.14", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -15344,15 +15793,175 @@ } } }, + "@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "optional": true, + "requires": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + } + } + }, + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "optional": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "optional": true + } + } + }, + "@ovos-media/ts-transform-paths": { + "version": "1.7.18-1", + "resolved": "https://registry.npmjs.org/@ovos-media/ts-transform-paths/-/ts-transform-paths-1.7.18-1.tgz", + "integrity": "sha512-5uYtraYSWg1klaMYus3ouCOUUNzcI40pS0NCaw0PhoaPTimVfT3MV061ZLYR/4F14THqyofMjmCNcHgFrBX3AA==", + "requires": { + "@zerollup/ts-helpers": "^1.7.18" + } + }, + "@sentry/core": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.10.0.tgz", + "integrity": "sha512-uq6oUXPH+6cjsEL5/j/xSW91mVrJo7knTqax7E5MDiA5j98BPK4budGiBiPO7GEB856QhA7N+pOO0lccii5QYQ==", + "requires": { + "@sentry/hub": "7.10.0", + "@sentry/types": "7.10.0", + "@sentry/utils": "7.10.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/hub": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@sentry/hub/-/hub-7.10.0.tgz", + "integrity": "sha512-9Appy7J87EU7Xu2BDY1cLK79nsuE72geeYmG71lgdttTD3XOMcQBOxET4/2sAI+d/ansurXnURx+DAQ9FOKT+w==", + "requires": { + "@sentry/types": "7.10.0", + "@sentry/utils": "7.10.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/node": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.10.0.tgz", + "integrity": "sha512-L/DSEJ7Biy8ovvlCyfu5MpCYG108FIGVbJ1h0NBGr5+uLxTNg2WJWojJoiQNiRcWl4s0dcIXrRdi0HR2Sx+DUw==", + "requires": { + "@sentry/core": "7.10.0", + "@sentry/hub": "7.10.0", + "@sentry/types": "7.10.0", + "@sentry/utils": "7.10.0", + "cookie": "^0.4.1", + "https-proxy-agent": "^5.0.0", + "lru_map": "^0.3.3", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/tracing": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.10.0.tgz", + "integrity": "sha512-ojuBYS1bL/IGWKt/ItY4HmC8NElJrYtTUvm73VbhylhIO4zcn5ICHmgMFj1lqL9gQ1nCnAlifKiWIjL9qUatTA==", + "requires": { + "@sentry/hub": "7.10.0", + "@sentry/types": "7.10.0", + "@sentry/utils": "7.10.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, + "@sentry/types": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.10.0.tgz", + "integrity": "sha512-1UBwdbS0xXzANzp63g4eNQly/qKIXp0swP5OTKWoADvKBtL4anroLUA/l8ADMtuwFZYtVANc8WRGxM2+YmaXtg==" + }, + "@sentry/utils": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.10.0.tgz", + "integrity": "sha512-/aD2DnfyOhV0Wdbb6VF78vu4fQIZJyuReDpBI7MV/EqcEB6FxUKq2YjinfKZF/exHEPig6Ag/Yt+CRFgvtVFuw==", + "requires": { + "@sentry/types": "7.10.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + } + } + }, "@sinclair/typebox": { "version": "0.24.20", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.20.tgz", - "integrity": "sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ==" + "integrity": "sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ==", + "dev": true }, "@sinonjs/commons": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, "requires": { "type-detect": "4.0.8" } @@ -15361,6 +15970,7 @@ "version": "9.1.2", "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", + "dev": true, "requires": { "@sinonjs/commons": "^1.7.0" } @@ -15418,6 +16028,7 @@ "version": "7.1.19", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", + "dev": true, "requires": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", @@ -15430,6 +16041,7 @@ "version": "7.6.4", "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", + "dev": true, "requires": { "@babel/types": "^7.0.0" } @@ -15438,6 +16050,7 @@ "version": "7.4.1", "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", + "dev": true, "requires": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0" @@ -15447,6 +16060,7 @@ "version": "7.17.1", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", + "dev": true, "requires": { "@babel/types": "^7.3.0" } @@ -15521,6 +16135,7 @@ "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, "requires": { "@types/node": "*" } @@ -15537,12 +16152,14 @@ "@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true }, "@types/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, "requires": { "@types/istanbul-lib-coverage": "*" } @@ -15551,6 +16168,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, "requires": { "@types/istanbul-lib-report": "*" } @@ -15606,8 +16224,26 @@ "requires": { "@types/node": "*", "form-data": "^3.0.0" + }, + "dependencies": { + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } } }, + "@types/node-os-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/node-os-utils/-/node-os-utils-1.3.0.tgz", + "integrity": "sha512-XwVteWQx/XkfRPyaGkw8dEbrCAkoRZ73pI3XznUYIpzbCfpQB3UnDlR5TnmdhetlT889tUJGF8QWo9xrgTpsiA==", + "dev": true + }, "@types/notp": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@types/notp/-/notp-2.0.2.tgz", @@ -15619,7 +16255,8 @@ "@types/prettier": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", - "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==" + "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", + "dev": true }, "@types/qs": { "version": "6.9.7", @@ -15646,7 +16283,8 @@ "@types/stack-utils": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true }, "@types/stream-buffers": { "version": "3.0.4", @@ -15681,6 +16319,7 @@ "version": "17.0.10", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", + "dev": true, "requires": { "@types/yargs-parser": "*" } @@ -15688,29 +16327,20 @@ "@types/yargs-parser": { "version": "21.0.0", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true }, "@yarnpkg/lockfile": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" }, - "@yukikaze-bot/erlpack": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@yukikaze-bot/erlpack/-/erlpack-1.0.1.tgz", - "integrity": "sha512-PCJ2lGCf8DsQtrE411PY+NTsolK48l4InNn1kcBo0iUllKZYGLqeqXEWGA/INrmwanKcoYkU4pBySqUFLQDEoA==", - "optional": true, + "@zerollup/ts-helpers": { + "version": "1.7.18", + "resolved": "https://registry.npmjs.org/@zerollup/ts-helpers/-/ts-helpers-1.7.18.tgz", + "integrity": "sha512-S9zN+y+i5yN/evfWquzSO3lubqPXIsPQf6p9OiPMpRxDx/0totPLF39XoRw48Dav5dSvbIE8D2eAPpXXJxvKwg==", "requires": { - "@mapbox/node-pre-gyp": "^1.0.5", - "node-addon-api": "^4.0.0" - }, - "dependencies": { - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true - } + "resolve": "^1.12.0" } }, "abbrev": { @@ -15745,10 +16375,39 @@ "debug": "4" } }, + "agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "optional": true, + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "optional": true + } + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "optional": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, "ajv": { - "version": "8.6.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", - "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -15779,6 +16438,7 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, "requires": { "type-fest": "^0.21.3" } @@ -15805,6 +16465,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, "requires": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -15876,7 +16537,8 @@ "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true }, "ast-types": { "version": "0.13.4", @@ -15895,6 +16557,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", + "dev": true, "requires": { "@jest/transform": "^28.1.3", "@types/babel__core": "^7.1.14", @@ -15909,6 +16572,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -15917,6 +16581,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -15926,6 +16591,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -15933,17 +16599,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -15963,6 +16632,7 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", @@ -15975,6 +16645,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", + "dev": true, "requires": { "@babel/template": "^7.3.3", "@babel/types": "^7.3.3", @@ -16016,6 +16687,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, "requires": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", @@ -16035,6 +16707,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", + "dev": true, "requires": { "babel-plugin-jest-hoist": "^28.1.3", "babel-preset-current-node-syntax": "^1.0.0" @@ -16228,6 +16901,7 @@ "version": "4.21.2", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz", "integrity": "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==", + "dev": true, "requires": { "caniuse-lite": "^1.0.30001366", "electron-to-chromium": "^1.4.188", @@ -16239,6 +16913,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dev": true, "requires": { "node-int64": "^0.4.0" } @@ -16278,8 +16953,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "optional": true, - "peer": true + "optional": true }, "busboy": { "version": "1.6.0", @@ -16289,11 +16963,60 @@ "streamsearch": "^1.1.0" } }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "optional": true, + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "optional": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + } + } + }, "call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -16306,17 +17029,20 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true }, "caniuse-lite": { "version": "1.0.30001367", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz", - "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==" + "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==", + "dev": true }, "canvas": { "version": "2.9.3", @@ -16341,7 +17067,8 @@ "char-regex": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true }, "cheerio": { "version": "1.0.0-rc.12", @@ -16394,12 +17121,20 @@ "ci-info": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==" + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "dev": true }, "cjs-module-lexer": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", + "dev": true + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "optional": true }, "cli-highlight": { "version": "2.1.11", @@ -16492,12 +17227,14 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true }, "collect-v8-coverage": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true }, "color-convert": { "version": "1.9.3", @@ -16528,7 +17265,8 @@ "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true }, "concat-map": { "version": "0.0.1", @@ -16602,6 +17340,7 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", + "dev": true, "requires": { "safe-buffer": "~5.1.1" }, @@ -16609,10 +17348,16 @@ "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true } } }, + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", @@ -16621,7 +17366,8 @@ "cookiejar": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz", - "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" + "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==", + "dev": true }, "core-js-compat": { "version": "3.23.4", @@ -16656,6 +17402,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -16708,7 +17455,8 @@ "dedent": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", + "dev": true }, "deep-is": { "version": "0.1.4", @@ -16718,7 +17466,8 @@ "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true }, "define-properties": { "version": "1.1.4", @@ -16795,12 +17544,14 @@ "detect-newline": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true }, "dezalgo": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", "integrity": "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==", + "dev": true, "requires": { "asap": "^2.0.0", "wrappy": "1" @@ -16815,7 +17566,8 @@ "diff-sequences": { "version": "28.1.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==" + "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", + "dev": true }, "dom-serializer": { "version": "2.0.0", @@ -16887,12 +17639,14 @@ "electron-to-chromium": { "version": "1.4.192", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.192.tgz", - "integrity": "sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw==" + "integrity": "sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw==", + "dev": true }, "emittery": { "version": "0.10.2", "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==" + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "dev": true }, "emoji-regex": { "version": "8.0.0", @@ -16904,15 +17658,48 @@ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "requires": { + "iconv-lite": "^0.6.2" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" }, + "env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "optional": true + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "optional": true + }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -16951,6 +17738,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, "requires": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -16974,12 +17762,14 @@ "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true }, "expect": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", + "dev": true, "requires": { "@jest/expect-utils": "^28.1.3", "jest-get-type": "^28.0.2", @@ -17060,7 +17850,8 @@ "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", @@ -17070,7 +17861,8 @@ "fast-safe-stringify": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", - "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true }, "fast-xml-parser": { "version": "3.19.0", @@ -17081,6 +17873,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dev": true, "requires": { "bser": "2.1.1" } @@ -17141,6 +17934,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" @@ -17155,9 +17949,9 @@ } }, "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -17168,6 +17962,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz", "integrity": "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==", + "dev": true, "requires": { "dezalgo": "1.0.3", "hexoid": "1.0.0", @@ -17178,7 +17973,8 @@ "qs": { "version": "6.9.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz", - "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==" + "integrity": "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==", + "dev": true } } }, @@ -17209,6 +18005,7 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, "optional": true }, "ftp": { @@ -17241,10 +18038,20 @@ "wide-align": "^1.1.2" } }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "optional": true, + "requires": { + "is-property": "^1.0.2" + } + }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true }, "get-caller-file": { "version": "2.0.5", @@ -17264,12 +18071,14 @@ "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true }, "get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true }, "get-uri": { "version": "3.0.2", @@ -17356,7 +18165,8 @@ "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true }, "graceful-fs": { "version": "4.2.10", @@ -17403,7 +18213,8 @@ "hexoid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz", - "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==" + "integrity": "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==", + "dev": true }, "highlight.js": { "version": "10.7.3", @@ -17413,7 +18224,8 @@ "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true }, "htmlparser2": { "version": "8.0.1", @@ -17433,6 +18245,12 @@ } } }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "optional": true + }, "http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -17467,7 +18285,17 @@ "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "optional": true, + "requires": { + "ms": "^2.0.0" + } }, "i18next": { "version": "21.8.14", @@ -17526,6 +18354,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dev": true, "requires": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -17534,7 +18363,20 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "devOptional": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "optional": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "optional": true }, "inflight": { "version": "1.0.6", @@ -17575,7 +18417,8 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true }, "is-binary-path": { "version": "2.1.0", @@ -17628,7 +18471,8 @@ "is-generator-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true }, "is-glob": { "version": "4.0.3", @@ -17639,15 +18483,28 @@ "is-extglob": "^2.1.1" } }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "optional": true + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", + "optional": true + }, "is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true }, "is-wsl": { "version": "2.2.0", @@ -17670,12 +18527,14 @@ "istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", + "dev": true }, "istanbul-lib-instrument": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", + "dev": true, "requires": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -17688,6 +18547,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, "requires": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^3.0.0", @@ -17697,12 +18557,14 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -17713,6 +18575,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dev": true, "requires": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -17723,6 +18586,7 @@ "version": "3.1.5", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", + "dev": true, "requires": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -17732,6 +18596,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", + "dev": true, "requires": { "@jest/core": "^28.1.3", "@jest/types": "^28.1.3", @@ -17743,6 +18608,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", + "dev": true, "requires": { "execa": "^5.0.0", "p-limit": "^3.1.0" @@ -17752,6 +18618,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "requires": { "yocto-queue": "^0.1.0" } @@ -17762,6 +18629,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", + "dev": true, "requires": { "@jest/environment": "^28.1.3", "@jest/expect": "^28.1.3", @@ -17788,6 +18656,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -17796,6 +18665,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -17805,6 +18675,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -17812,17 +18683,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "requires": { "yocto-queue": "^0.1.0" } @@ -17831,6 +18705,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -17841,6 +18716,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", + "dev": true, "requires": { "@jest/core": "^28.1.3", "@jest/test-result": "^28.1.3", @@ -17860,6 +18736,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -17868,6 +18745,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -17877,6 +18755,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -17884,17 +18763,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -17903,6 +18785,7 @@ "version": "17.5.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, "requires": { "cliui": "^7.0.2", "escalade": "^3.1.1", @@ -17916,7 +18799,8 @@ "yargs-parser": { "version": "21.0.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true } } }, @@ -17924,6 +18808,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", + "dev": true, "requires": { "@babel/core": "^7.11.6", "@jest/test-sequencer": "^28.1.3", @@ -17953,6 +18838,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -17961,6 +18847,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -17970,6 +18857,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -17977,17 +18865,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -17998,6 +18889,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", + "dev": true, "requires": { "chalk": "^4.0.0", "diff-sequences": "^28.1.1", @@ -18009,6 +18901,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -18017,6 +18910,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18026,6 +18920,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -18033,17 +18928,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18054,6 +18952,7 @@ "version": "28.1.1", "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", + "dev": true, "requires": { "detect-newline": "^3.0.0" } @@ -18062,6 +18961,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", + "dev": true, "requires": { "@jest/types": "^28.1.3", "chalk": "^4.0.0", @@ -18074,6 +18974,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -18082,6 +18983,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18091,6 +18993,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -18098,17 +19001,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18119,6 +19025,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", + "dev": true, "requires": { "@jest/environment": "^28.1.3", "@jest/fake-timers": "^28.1.3", @@ -18137,12 +19044,14 @@ "jest-get-type": { "version": "28.0.2", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==" + "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", + "dev": true }, "jest-haste-map": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", + "dev": true, "requires": { "@jest/types": "^28.1.3", "@types/graceful-fs": "^4.1.3", @@ -18162,6 +19071,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", + "dev": true, "requires": { "jest-get-type": "^28.0.2", "pretty-format": "^28.1.3" @@ -18171,6 +19081,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", + "dev": true, "requires": { "chalk": "^4.0.0", "jest-diff": "^28.1.3", @@ -18182,6 +19093,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -18190,6 +19102,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18199,6 +19112,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -18206,17 +19120,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18227,6 +19144,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@jest/types": "^28.1.3", @@ -18243,6 +19161,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -18251,6 +19170,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18260,6 +19180,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -18267,17 +19188,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18288,6 +19212,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", + "dev": true, "requires": { "@jest/types": "^28.1.3", "@types/node": "*" @@ -18297,17 +19222,20 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true, "requires": {} }, "jest-regex-util": { "version": "28.0.2", "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==" + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "dev": true }, "jest-resolve": { "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", + "dev": true, "requires": { "chalk": "^4.0.0", "graceful-fs": "^4.2.9", @@ -18324,6 +19252,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -18332,6 +19261,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18341,6 +19271,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -18348,17 +19279,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18369,6 +19303,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", + "dev": true, "requires": { "jest-regex-util": "^28.0.2", "jest-snapshot": "^28.1.3" @@ -18378,6 +19313,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", + "dev": true, "requires": { "@jest/console": "^28.1.3", "@jest/environment": "^28.1.3", @@ -18406,6 +19342,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -18414,6 +19351,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18423,6 +19361,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -18430,17 +19369,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, "requires": { "yocto-queue": "^0.1.0" } @@ -18449,6 +19391,7 @@ "version": "0.5.13", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -18458,6 +19401,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18468,6 +19412,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", + "dev": true, "requires": { "@jest/environment": "^28.1.3", "@jest/fake-timers": "^28.1.3", @@ -18497,6 +19442,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -18505,6 +19451,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18514,6 +19461,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -18521,17 +19469,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18542,6 +19493,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", + "dev": true, "requires": { "@babel/core": "^7.11.6", "@babel/generator": "^7.7.2", @@ -18572,6 +19524,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -18580,6 +19533,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18589,6 +19543,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -18596,17 +19551,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "requires": { "yallist": "^4.0.0" } @@ -18615,6 +19573,7 @@ "version": "7.3.7", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -18623,6 +19582,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18630,7 +19590,8 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -18638,6 +19599,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dev": true, "requires": { "@jest/types": "^28.1.3", "@types/node": "*", @@ -18651,6 +19613,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -18659,6 +19622,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18668,6 +19632,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -18675,17 +19640,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18696,6 +19664,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", + "dev": true, "requires": { "@jest/types": "^28.1.3", "camelcase": "^6.2.0", @@ -18709,6 +19678,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -18716,12 +19686,14 @@ "camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18731,6 +19703,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -18738,17 +19711,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18759,6 +19735,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dev": true, "requires": { "@jest/test-result": "^28.1.3", "@jest/types": "^28.1.3", @@ -18774,6 +19751,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -18782,6 +19760,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -18791,6 +19770,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, "requires": { "color-name": "~1.1.4" } @@ -18798,17 +19778,20 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18819,6 +19802,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dev": true, "requires": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -18828,12 +19812,14 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -18843,7 +19829,8 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "js-yaml": { "version": "3.13.1", @@ -18857,12 +19844,14 @@ "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true }, "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true }, "json-schema-traverse": { "version": "1.0.0", @@ -18872,7 +19861,8 @@ "json5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", + "dev": true }, "jsonwebtoken": { "version": "8.5.1", @@ -18934,7 +19924,8 @@ "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true }, "lambert-server": { "version": "1.2.12", @@ -18997,7 +19988,8 @@ "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true }, "levn": { "version": "0.3.0", @@ -19011,12 +20003,14 @@ "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, "requires": { "p-locate": "^4.1.0" } @@ -19062,6 +20056,17 @@ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==", + "optional": true + }, + "lru_map": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", + "integrity": "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==" + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -19084,10 +20089,63 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "devOptional": true }, + "make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "optional": true, + "requires": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "optional": true, + "requires": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + } + } + }, "makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dev": true, "requires": { "tmpl": "1.0.5" } @@ -19112,7 +20170,8 @@ "merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, "methods": { "version": "1.1.2", @@ -19149,7 +20208,8 @@ "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true }, "mimic-response": { "version": "2.1.0", @@ -19184,6 +20244,54 @@ } } }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "optional": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "optional": true, + "requires": { + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "optional": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "optional": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "optional": true, + "requires": { + "minipass": "^3.0.0" + } + }, "minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", @@ -19282,6 +20390,54 @@ "xtend": "^4.0.0" } }, + "mysql2": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz", + "integrity": "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==", + "optional": true, + "requires": { + "denque": "^2.0.1", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^4.0.0", + "lru-cache": "^6.0.0", + "named-placeholders": "^1.1.2", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "dependencies": { + "denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "optional": true + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + } + } + }, "mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -19292,6 +20448,33 @@ "thenify-all": "^1.0.0" } }, + "named-placeholders": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz", + "integrity": "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==", + "optional": true, + "requires": { + "lru-cache": "^4.1.3" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "optional": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "optional": true + } + } + }, "nan": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", @@ -19300,7 +20483,8 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, "negotiator": { "version": "0.6.3", @@ -19362,15 +20546,119 @@ } } }, + "node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "optional": true, + "requires": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "dependencies": { + "are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "optional": true, + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "optional": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "optional": true, + "requires": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "optional": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "optional": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "optional": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "optional": true + } + } + }, "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true }, "node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true }, "nopt": { "version": "5.0.0", @@ -19383,7 +20671,8 @@ "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true }, "notp": { "version": "2.0.3", @@ -19394,6 +20683,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, "requires": { "path-key": "^3.0.0" } @@ -19470,6 +20760,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, "requires": { "mimic-fn": "^2.1.0" } @@ -19515,6 +20806,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, "requires": { "p-try": "^2.0.0" } @@ -19523,14 +20815,25 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", + "optional": true, "requires": { - "p-limit": "^2.2.0" + "aggregate-error": "^3.0.0" } }, "p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true }, "pac-proxy-agent": { "version": "5.0.0", @@ -19562,13 +20865,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==", - "optional": true, - "peer": true + "optional": true }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -19715,7 +21018,8 @@ "path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -19725,7 +21029,8 @@ "path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true }, "path-parse": { "version": "1.0.7", @@ -19747,7 +21052,6 @@ "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", "optional": true, - "peer": true, "requires": { "buffer-writer": "2.0.0", "packet-reader": "1.0.0", @@ -19762,37 +21066,32 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==", - "optional": true, - "peer": true + "optional": true }, "pg-int8": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "optional": true, - "peer": true + "optional": true }, "pg-pool": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz", "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==", "optional": true, - "peer": true, "requires": {} }, "pg-protocol": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==", - "optional": true, - "peer": true + "optional": true }, "pg-types": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", "optional": true, - "peer": true, "requires": { "pg-int8": "1.0.1", "postgres-array": "~2.0.0", @@ -19806,7 +21105,6 @@ "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz", "integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==", "optional": true, - "peer": true, "requires": { "split2": "^4.1.0" } @@ -19824,12 +21122,14 @@ "pirates": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", + "dev": true }, "pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, "requires": { "find-up": "^4.0.0" } @@ -19838,29 +21138,25 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "optional": true, - "peer": true + "optional": true }, "postgres-bytea": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", "integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==", - "optional": true, - "peer": true + "optional": true }, "postgres-date": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "optional": true, - "peer": true + "optional": true }, "postgres-interval": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", "optional": true, - "peer": true, "requires": { "xtend": "^4.0.0" } @@ -19874,6 +21170,7 @@ "version": "28.1.3", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dev": true, "requires": { "@jest/schemas": "^28.1.3", "ansi-regex": "^5.0.1", @@ -19884,7 +21181,8 @@ "ansi-styles": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true } } }, @@ -19893,10 +21191,27 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "optional": true + }, + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "optional": true, + "requires": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + } + }, "prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -19931,6 +21246,12 @@ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "optional": true + }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -19976,7 +21297,8 @@ "react-is": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true }, "readable-stream": { "version": "1.1.14", @@ -20142,6 +21464,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, "requires": { "resolve-from": "^5.0.0" } @@ -20149,12 +21472,20 @@ "resolve-from": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true }, "resolve.exports": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" + "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "optional": true }, "rimraf": { "version": "3.0.2", @@ -20242,6 +21573,12 @@ } } }, + "seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==", + "optional": true + }, "serve-static": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", @@ -20276,6 +21613,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, "requires": { "shebang-regex": "^3.0.0" } @@ -20283,7 +21621,8 @@ "shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true }, "shelljs": { "version": "0.8.5", @@ -20329,12 +21668,14 @@ "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true }, "smart-buffer": { "version": "4.2.0", @@ -20363,7 +21704,8 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true }, "source-map-support": { "version": "0.5.21", @@ -20389,18 +21731,53 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz", "integrity": "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==", - "optional": true, - "peer": true + "optional": true }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, + "sqlite3": { + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.11.tgz", + "integrity": "sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA==", + "optional": true, + "requires": { + "@mapbox/node-pre-gyp": "^1.0.0", + "node-addon-api": "^4.2.0", + "node-gyp": "8.x", + "tar": "^6.1.11" + }, + "dependencies": { + "node-addon-api": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", + "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", + "optional": true + } + } + }, + "sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "optional": true + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "optional": true, + "requires": { + "minipass": "^3.1.1" + } + }, "stack-utils": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", + "dev": true, "requires": { "escape-string-regexp": "^2.0.0" }, @@ -20408,7 +21785,8 @@ "escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true } } }, @@ -20431,6 +21809,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, "requires": { "char-regex": "^1.0.2", "strip-ansi": "^6.0.0" @@ -20457,17 +21836,20 @@ "strip-bom": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true }, "strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true }, "strtok3": { "version": "6.3.0", @@ -20482,6 +21864,7 @@ "version": "8.0.0", "resolved": "https://registry.npmjs.org/superagent/-/superagent-8.0.0.tgz", "integrity": "sha512-iudipXEel+SzlP9y29UBWGDjB+Zzag+eeA1iLosaR2YHBRr1Q1kC29iBrF2zIVD9fqVbpZnXkN/VJmwFMVyNWg==", + "dev": true, "requires": { "component-emitter": "^1.3.0", "cookiejar": "^2.1.3", @@ -20496,20 +21879,11 @@ "semver": "^7.3.7" }, "dependencies": { - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, "requires": { "yallist": "^4.0.0" } @@ -20517,12 +21891,14 @@ "mime": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -20533,6 +21909,7 @@ "version": "7.3.7", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, "requires": { "lru-cache": "^6.0.0" } @@ -20541,6 +21918,7 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, "requires": { "safe-buffer": "~5.2.0" } @@ -20548,7 +21926,8 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true } } }, @@ -20556,6 +21935,7 @@ "version": "6.2.4", "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.2.4.tgz", "integrity": "sha512-M8xVnCNv+q2T2WXVzxDECvL2695Uv2uUj2O0utxsld/HRyJvOU8W9f1gvsYxSNU4wmIe0/L/ItnpU4iKq0emDA==", + "dev": true, "requires": { "methods": "^1.1.2", "superagent": "^8.0.0" @@ -20573,6 +21953,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -20581,12 +21962,14 @@ "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, "requires": { "has-flag": "^4.0.0" } @@ -20627,6 +22010,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, "requires": { "ansi-escapes": "^4.2.1", "supports-hyperlinks": "^2.0.0" @@ -20636,6 +22020,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, "requires": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", @@ -20674,12 +22059,14 @@ "tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true }, "to-regex-range": { "version": "5.0.1", @@ -20873,12 +22260,14 @@ "type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true }, "type-fest": { "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true }, "type-is": { "version": "1.6.18", @@ -20894,6 +22283,112 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" }, + "typeorm": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", + "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", + "requires": { + "@sqltools/formatter": "^1.2.2", + "app-root-path": "^3.0.0", + "buffer": "^6.0.3", + "chalk": "^4.1.0", + "cli-highlight": "^2.1.11", + "date-fns": "^2.28.0", + "debug": "^4.3.3", + "dotenv": "^16.0.0", + "glob": "^7.2.0", + "js-yaml": "^4.1.0", + "mkdirp": "^1.0.4", + "reflect-metadata": "^0.1.13", + "sha.js": "^2.4.11", + "tslib": "^2.3.1", + "uuid": "^8.3.2", + "xml2js": "^0.4.23", + "yargs": "^17.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + } + } + }, "typescript": { "version": "4.7.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", @@ -20978,6 +22473,24 @@ "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", "dev": true }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "optional": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "optional": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -20987,6 +22500,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", + "dev": true, "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -21034,6 +22548,7 @@ "version": "9.0.1", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", + "dev": true, "requires": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", @@ -21058,6 +22573,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dev": true, "requires": { "makeerror": "1.0.12" } @@ -21066,6 +22582,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "devOptional": true, "requires": { "isexe": "^2.0.0" } @@ -21125,6 +22642,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", + "dev": true, "requires": { "imurmurhash": "^0.1.4", "signal-exit": "^3.0.7" @@ -21198,7 +22716,8 @@ "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true } } } diff --git a/package.json b/package.json index 8488ff28..95dbb659 100644 --- a/package.json +++ b/package.json @@ -1,17 +1,101 @@ { - "name": "fosscord-server", + "name": "@fosscord/server", "version": "1.0.0", - "description": "A Fosscord server written in Node.js", - "workspaces": ["api", "cdn", "gateway"], - "scripts": {}, + "description": "", + "main": "src/start.js", + "scripts": { + "setup": "npm install --omit optional && ts-patch install -s && patch-package && npm run build", + "depclean": "node scripts/depclean.js", + "depcheck": "node scripts/depcheck.js", + "syncdeps": "node scripts/install.js", + "build": "node scripts/build.js", + "postinstall": "patch-package", + "genschemas": "node scripts/generate_schemas.js", + "start": "node scripts/build.js && node --enable-source-maps dist/start.js", + "start:bundle": "node --enable-source-maps dist/start.js", + "start:bundle:dbg": "node --enable-source-maps --inspect dist/start.js", + "start:bundle:vscode-dbg": "npm run build clean logerrors pretty-errors && node --enable-source-maps --inspect dist/start.js", + "migrate": "cd ../util/ && npm i && node --require ts-node/register node_modules/typeorm/cli.js -f ../util/ormconfig.json migration:run", + "tsnode": "npx ts-node --transpile-only -P tsnode.tsconfig.json src/start.ts" + }, "repository": { "type": "git", "url": "git+https://github.com/fosscord/fosscord-server.git" }, + "keywords": [], "author": "Fosscord", "license": "AGPL-3.0-only", "bugs": { "url": "https://github.com/fosscord/fosscord-server/issues" }, - "homepage": "https://fosscord.com" + "homepage": "https://fosscord.com", + "devDependencies": { + "@babel/core": "^7.18.9", + "@babel/preset-env": "^7.18.9", + "@babel/preset-typescript": "^7.15.0", + "@types/amqplib": "^0.8.1", + "@types/bcrypt": "^5.0.0", + "@types/body-parser": "^1.19.0", + "@types/dotenv": "^8.2.0", + "@types/express": "^4.17.12", + "@types/i18next-node-fs-backend": "^2.1.0", + "@types/jsonwebtoken": "^8.5.8", + "@types/morgan": "^1.9.3", + "@types/multer": "^1.4.7", + "@types/node": "^18.0.6", + "@types/node-os-utils": "^1.3.0", + "@types/ws": "^8.5.3", + "jest": "^28.1.3", + "jest-expect-message": "^1.0.2", + "supertest": "^6.1.6", + "ts-node": "^10.2.1", + "ts-node-dev": "^2.0.0", + "ts-patch": "^2.0.2", + "typescript": "^4.2.3", + "typescript-json-schema": "^0.54.0" + }, + "dependencies": { + "@aws-sdk/client-s3": "^3.137.0", + "@babel/preset-typescript": "^7.15.0", + "@ovos-media/ts-transform-paths": "^1.7.18-1", + "@sentry/node": "^7.7.0", + "@sentry/tracing": "^7.7.0", + "@types/node-fetch": "^2.6.2", + "ajv": "^8.11.0", + "ajv-formats": "^2.1.1", + "amqplib": "^0.10.1", + "bcrypt": "^5.0.1", + "body-parser": "^1.19.0", + "canvas": "^2.9.3", + "cheerio": "^1.0.0-rc.10", + "dotenv": "^16.0.1", + "exif-be-gone": "^1.3.0", + "express": "^4.17.1", + "file-type": "16.5", + "form-data": "^4.0.0", + "i18next": "^21.8.14", + "i18next-http-middleware": "^3.1.3", + "i18next-node-fs-backend": "^2.1.3", + "image-size": "^1.0.0", + "jest": "^28.1.3", + "jsonwebtoken": "^8.5.1", + "lambert-server": "^1.2.12", + "missing-native-js-functions": "^1.2.18", + "morgan": "^1.10.0", + "multer": "^1.4.5-lts.1", + "node-2fa": "^2.0.3", + "node-fetch": "^2.6.7", + "patch-package": "^6.4.7", + "picocolors": "^1.0.0", + "proxy-agent": "^5.0.0", + "reflect-metadata": "^0.1.13", + "typeorm": "^0.3.7", + "typescript": "^4.1.2", + "ws": "^8.8.1" + }, + "optionalDependencies": { + "mysql2": "^2.3.3", + "pg": "^8.7.3", + "sqlite3": "^5.0.11" + } } diff --git a/patches/ajv+8.6.2.patch b/patches/ajv+8.6.2.patch new file mode 100644 index 00000000..3f54881b --- /dev/null +++ b/patches/ajv+8.6.2.patch @@ -0,0 +1,249 @@ +diff --git a/node_modules/ajv/dist/compile/jtd/parse.js b/node_modules/ajv/dist/compile/jtd/parse.js +index 1eeb1be..7684121 100644 +--- a/node_modules/ajv/dist/compile/jtd/parse.js ++++ b/node_modules/ajv/dist/compile/jtd/parse.js +@@ -239,6 +239,9 @@ function parseType(cxt) { + gen.if(fail, () => parsingError(cxt, codegen_1.str `invalid timestamp`)); + break; + } ++ case "bigint": ++ parseBigInt(cxt); ++ break + case "float32": + case "float64": + parseNumber(cxt); +@@ -284,6 +287,15 @@ function parseNumber(cxt, maxDigits) { + skipWhitespace(cxt); + gen.if(codegen_1._ `"-0123456789".indexOf(${jsonSlice(1)}) < 0`, () => jsonSyntaxError(cxt), () => parseWith(cxt, parseJson_1.parseJsonNumber, maxDigits)); + } ++function parseBigInt(cxt, maxDigits) { ++ const {gen} = cxt ++ skipWhitespace(cxt) ++ gen.if( ++ _`"-0123456789".indexOf(${jsonSlice(1)}) < 0`, ++ () => jsonSyntaxError(cxt), ++ () => parseWith(cxt, parseJson_1.parseJsonBigInt, maxDigits) ++ ) ++} + function parseBooleanToken(bool, fail) { + return (cxt) => { + const { gen, data } = cxt; +diff --git a/node_modules/ajv/dist/compile/rules.js b/node_modules/ajv/dist/compile/rules.js +index 82a591f..1ebd8fe 100644 +--- a/node_modules/ajv/dist/compile/rules.js ++++ b/node_modules/ajv/dist/compile/rules.js +@@ -1,7 +1,7 @@ + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.getRules = exports.isJSONType = void 0; +-const _jsonTypes = ["string", "number", "integer", "boolean", "null", "object", "array"]; ++const _jsonTypes = ["string", "number", "integer", "boolean", "null", "object", "array","bigint"]; + const jsonTypes = new Set(_jsonTypes); + function isJSONType(x) { + return typeof x == "string" && jsonTypes.has(x); +@@ -13,10 +13,11 @@ function getRules() { + string: { type: "string", rules: [] }, + array: { type: "array", rules: [] }, + object: { type: "object", rules: [] }, ++ bigint: {type: "bigint", rules: []} + }; + return { +- types: { ...groups, integer: true, boolean: true, null: true }, +- rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object], ++ types: { ...groups, integer: true, boolean: true, null: true, bigint: true }, ++ rules: [{ rules: [] }, groups.number, groups.string, groups.array, groups.object, groups.bigint], + post: { rules: [] }, + all: {}, + keywords: {}, +diff --git a/node_modules/ajv/dist/compile/validate/dataType.js b/node_modules/ajv/dist/compile/validate/dataType.js +index 6319e76..8b50b4c 100644 +--- a/node_modules/ajv/dist/compile/validate/dataType.js ++++ b/node_modules/ajv/dist/compile/validate/dataType.js +@@ -52,7 +52,7 @@ function coerceAndCheckDataType(it, types) { + return checkTypes; + } + exports.coerceAndCheckDataType = coerceAndCheckDataType; +-const COERCIBLE = new Set(["string", "number", "integer", "boolean", "null"]); ++const COERCIBLE = new Set(["string", "number", "integer", "boolean", "null","bigint"]); + function coerceToTypes(types, coerceTypes) { + return coerceTypes + ? types.filter((t) => COERCIBLE.has(t) || (coerceTypes === "array" && t === "array")) +@@ -83,6 +83,14 @@ function coerceData(it, types, coerceTo) { + }); + function coerceSpecificType(t) { + switch (t) { ++ case "bigint": ++ gen ++ .elseIf( ++ codegen_1._`${dataType} == "boolean" || ${data} === null ++ || (${dataType} == "string" && ${data} && ${data} == BigInt(${data}))` ++ ) ++ .assign(coerced, codegen_1._`BigInt(${data})`) ++ return + case "string": + gen + .elseIf(codegen_1._ `${dataType} == "number" || ${dataType} == "boolean"`) +@@ -143,6 +151,9 @@ function checkDataType(dataType, data, strictNums, correct = DataType.Correct) { + case "number": + cond = numCond(); + break; ++ case "bigint": ++ cond = codegen_1._`typeof ${data} == "bigint" && isFinite(${data})` ++ break + default: + return codegen_1._ `typeof ${data} ${EQ} ${dataType}`; + } +diff --git a/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json b/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +index 7027a12..25679c8 100644 +--- a/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json ++++ b/node_modules/ajv/dist/refs/json-schema-2019-09/meta/validation.json +@@ -78,7 +78,7 @@ + "default": 0 + }, + "simpleTypes": { +- "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] ++ "enum": ["array", "boolean", "integer", "null", "number", "object", "string","bigint"] + }, + "stringArray": { + "type": "array", +diff --git a/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json b/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +index e0ae13d..57c9036 100644 +--- a/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json ++++ b/node_modules/ajv/dist/refs/json-schema-2020-12/meta/validation.json +@@ -78,7 +78,7 @@ + "default": 0 + }, + "simpleTypes": { +- "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] ++ "enum": ["array", "boolean", "integer", "null", "number", "object", "string","bigint"] + }, + "stringArray": { + "type": "array", +diff --git a/node_modules/ajv/dist/refs/json-schema-draft-06.json b/node_modules/ajv/dist/refs/json-schema-draft-06.json +index 5410064..774435b 100644 +--- a/node_modules/ajv/dist/refs/json-schema-draft-06.json ++++ b/node_modules/ajv/dist/refs/json-schema-draft-06.json +@@ -16,7 +16,7 @@ + "allOf": [{"$ref": "#/definitions/nonNegativeInteger"}, {"default": 0}] + }, + "simpleTypes": { +- "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] ++ "enum": ["array", "boolean", "integer", "null", "number", "object", "string","bigint"] + }, + "stringArray": { + "type": "array", +diff --git a/node_modules/ajv/dist/refs/json-schema-draft-07.json b/node_modules/ajv/dist/refs/json-schema-draft-07.json +index 6a74851..fc6dd7d 100644 +--- a/node_modules/ajv/dist/refs/json-schema-draft-07.json ++++ b/node_modules/ajv/dist/refs/json-schema-draft-07.json +@@ -16,7 +16,7 @@ + "allOf": [{"$ref": "#/definitions/nonNegativeInteger"}, {"default": 0}] + }, + "simpleTypes": { +- "enum": ["array", "boolean", "integer", "null", "number", "object", "string"] ++ "enum": ["array", "boolean", "integer", "null", "number", "object", "string","bigint"] + }, + "stringArray": { + "type": "array", +diff --git a/node_modules/ajv/dist/refs/jtd-schema.js b/node_modules/ajv/dist/refs/jtd-schema.js +index 1ee940a..1148887 100644 +--- a/node_modules/ajv/dist/refs/jtd-schema.js ++++ b/node_modules/ajv/dist/refs/jtd-schema.js +@@ -38,6 +38,7 @@ const typeForm = (root) => ({ + "uint16", + "int32", + "uint32", ++ "bigint", + ], + }, + }, +diff --git a/node_modules/ajv/dist/runtime/parseJson.js b/node_modules/ajv/dist/runtime/parseJson.js +index 2576a6e..e7447b1 100644 +--- a/node_modules/ajv/dist/runtime/parseJson.js ++++ b/node_modules/ajv/dist/runtime/parseJson.js +@@ -97,6 +97,71 @@ exports.parseJsonNumber = parseJsonNumber; + parseJsonNumber.message = undefined; + parseJsonNumber.position = 0; + parseJsonNumber.code = 'require("ajv/dist/runtime/parseJson").parseJsonNumber'; ++ ++function parseJsonBigInt(s, pos, maxDigits) { ++ let numStr = ""; ++ let c; ++ parseJsonBigInt.message = undefined; ++ if (s[pos] === "-") { ++ numStr += "-"; ++ pos++; ++ } ++ if (s[pos] === "0") { ++ numStr += "0"; ++ pos++; ++ } ++ else { ++ if (!parseDigits(maxDigits)) { ++ errorMessage(); ++ return undefined; ++ } ++ } ++ if (maxDigits) { ++ parseJsonBigInt.position = pos; ++ return BigInt(numStr); ++ } ++ if (s[pos] === ".") { ++ numStr += "."; ++ pos++; ++ if (!parseDigits()) { ++ errorMessage(); ++ return undefined; ++ } ++ } ++ if (((c = s[pos]), c === "e" || c === "E")) { ++ numStr += "e"; ++ pos++; ++ if (((c = s[pos]), c === "+" || c === "-")) { ++ numStr += c; ++ pos++; ++ } ++ if (!parseDigits()) { ++ errorMessage(); ++ return undefined; ++ } ++ } ++ parseJsonBigInt.position = pos; ++ return BigInt(numStr); ++ function parseDigits(maxLen) { ++ let digit = false; ++ while (((c = s[pos]), c >= "0" && c <= "9" && (maxLen === undefined || maxLen-- > 0))) { ++ digit = true; ++ numStr += c; ++ pos++; ++ } ++ return digit; ++ } ++ function errorMessage() { ++ parseJsonBigInt.position = pos; ++ parseJsonBigInt.message = pos < s.length ? `unexpected token ${s[pos]}` : "unexpected end"; ++ } ++} ++exports.parseJsonBigInt = parseJsonBigInt; ++parseJsonBigInt.message = undefined; ++parseJsonBigInt.position = 0; ++parseJsonBigInt.code = 'require("ajv/dist/runtime/parseJson").parseJsonBigInt'; ++ ++ + const escapedChars = { + b: "\b", + f: "\f", +diff --git a/node_modules/ajv/dist/vocabularies/jtd/type.js b/node_modules/ajv/dist/vocabularies/jtd/type.js +index 428bddb..fbc3070 100644 +--- a/node_modules/ajv/dist/vocabularies/jtd/type.js ++++ b/node_modules/ajv/dist/vocabularies/jtd/type.js +@@ -45,6 +45,9 @@ const def = { + cond = timestampCode(cxt); + break; + } ++ case "bigint": ++ cond = codegen_1._`typeof ${data} == "bigint" || typeof ${data} == "string"` ++ break + case "float32": + case "float64": + cond = codegen_1._ `typeof ${data} == "number"`; \ No newline at end of file diff --git a/patches/typescript-json-schema+0.54.0.patch b/patches/typescript-json-schema+0.54.0.patch new file mode 100644 index 00000000..2a319ec4 --- /dev/null +++ b/patches/typescript-json-schema+0.54.0.patch @@ -0,0 +1,14 @@ +diff --git a/node_modules/typescript-json-schema/dist/typescript-json-schema.js b/node_modules/typescript-json-schema/dist/typescript-json-schema.js +index 78f97ba..790c516 100644 +--- a/node_modules/typescript-json-schema/dist/typescript-json-schema.js ++++ b/node_modules/typescript-json-schema/dist/typescript-json-schema.js +@@ -453,6 +453,9 @@ var JsonSchemaGenerator = (function () { + else if (flags & ts.TypeFlags.Boolean) { + definition.type = "boolean"; + } ++ else if (flags & ts.TypeFlags.BigInt) { ++ definition.type = "bigint"; ++ } + else if (flags & ts.TypeFlags.Null) { + definition.type = "null"; + } diff --git a/rtc/.gitignore b/rtc/.gitignore deleted file mode 100644 index f14b4548..00000000 --- a/rtc/.gitignore +++ /dev/null @@ -1,145 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env -.env.test - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# Next.js build output -.next - -# Nuxt.js build / generate output -.nuxt - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and *not* Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port -.DS_Store - -# Compiled TypeScript code -dist/ -# Prerequisites -*.d - -# Compiled Object files -*.slo -*.lo -*.o -*.obj - -# Precompiled Headers -*.gch -*.pch - -# Compiled Dynamic libraries -*.so -*.dylib -*.dll - -# Fortran module files -*.mod -*.smod - -# Compiled Static libraries -*.lai -*.la -*.a -*.lib - -# Executables -*.o - -# Protobuffer builds -*.pb.cc -*.pb.h - -# Directories -build/ -.vscode/ diff --git a/rtc/.npmignore b/rtc/.npmignore deleted file mode 100644 index 05a9d0cf..00000000 --- a/rtc/.npmignore +++ /dev/null @@ -1 +0,0 @@ -!dist/ \ No newline at end of file diff --git a/rtc/.prettierrc b/rtc/.prettierrc deleted file mode 100644 index d569c548..00000000 --- a/rtc/.prettierrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "tabWidth": 4, - "useTabs": true, - "printWidth": 120 -} diff --git a/rtc/CMakeLists.txt b/rtc/CMakeLists.txt deleted file mode 100644 index 2cf5c0a6..00000000 --- a/rtc/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -cmake_minimum_required(VERSION 3.2) -project(fosscord-media) - -set(CMAKE_CXX_STANDARD 17) - -find_package(Threads REQUIRED) - -find_package(mongocxx REQUIRED) -find_package(Boost REQUIRED) - - -file(GLOB SourceFiles ${PROJECT_SOURCE_DIR}/src/*.cpp) -#include_directories("bsoncxx/v_noabi/bsoncxx/") -add_executable(${CMAKE_PROJECT_NAME} ${SourceFiles}) - -target_link_libraries(${CMAKE_PROJECT_NAME} datachannel mongo::mongocxx_shared Boost::boost) \ No newline at end of file diff --git a/rtc/README.md b/rtc/README.md deleted file mode 100644 index ee452adf..00000000 --- a/rtc/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Fosscord-media - -A Fosscord media (voice and video) server - -## Installation - -### Prerequisites - -- Install the [libdatachannel](https://github.com/paullouisageneau/libdatachannel) library -- Install the [libmongocxx](http://mongocxx.org/mongocxx-v3/installation/) driver and its requirements - -### Building - -```bash -$ cmake -$ cd build -$ make -``` diff --git a/rtc/config.json b/rtc/config.json deleted file mode 100644 index 0967ef42..00000000 --- a/rtc/config.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/rtc/src/main.cpp b/rtc/src/main.cpp deleted file mode 100644 index 372eaa00..00000000 --- a/rtc/src/main.cpp +++ /dev/null @@ -1,47 +0,0 @@ -// $$$$$$\ $$\ -// $$ __$$\ $$ | -// $$ / \__|$$$$$$\ $$$$$$$\ $$$$$$$\ $$$$$$$\ $$$$$$\ $$$$$$\ $$$$$$$ | -// $$$$\ $$ __$$\ $$ _____|$$ _____|$$ _____|$$ __$$\ $$ __$$\ $$ __$$ | -// $$ _| $$ / $$ |\$$$$$$\ \$$$$$$\ $$ / $$ / $$ |$$ | \__|$$ / $$ | -// $$ | $$ | $$ | \____$$\ \____$$\ $$ | $$ | $$ |$$ | $$ | $$ | -// $$ | \$$$$$$ |$$$$$$$ |$$$$$$$ |\$$$$$$$\ \$$$$$$ |$$ | \$$$$$$$ | -// \__| \______/ \_______/ \_______/ \_______| \______/ \__| \_______| -// -// -// -// $$\ $$$$$$\ -// \__| $$ __$$\ -// $$\ $$\ $$$$$$\ $$\ $$$$$$$\ $$$$$$\ $$ / \__| $$$$$$\ $$$$$$\ $$\ $$\ $$$$$$\ $$$$$$\ -// \$$\ $$ |$$ __$$\ $$ |$$ _____|$$ __$$\ \$$$$$$\ $$ __$$\ $$ __$$\\$$\ $$ |$$ __$$\ $$ __$$\ -// \$$\$$ / $$ / $$ |$$ |$$ / $$$$$$$$ | \____$$\ $$$$$$$$ |$$ | \__|\$$\$$ / $$$$$$$$ |$$ | \__| -// \$$$ / $$ | $$ |$$ |$$ | $$ ____|$$\ $$ |$$ ____|$$ | \$$$ / $$ ____|$$ | -// \$ / \$$$$$$ |$$ |\$$$$$$$\ \$$$$$$$\ \$$$$$$ |\$$$$$$$\ $$ | \$ / \$$$$$$$\ $$ | -// \_/ \______/ \__| \_______| \_______| \______/ \_______|\__| \_/ \_______|\__| -// -// -// - -#include "rtcPeerHandler.hpp" //Handle peer connection requests -#include "mongoStub.hpp" //Handle communication with the MongoDB server - -int main(int argc, char **argv){ - - auto commsHandler = std::make_shared(); - auto mongoHandler = std::make_unique(); - - mongocxx::options::change_stream options; - //voiceEvents collection watcher - mongocxx::change_stream colCs = mongoHandler->getCol().watch(options); - - std::cout << "Server created and listening for events" << std::endl; - - //Check for new messages in the collection - for (;;){ - std::vector t = mongoHandler->getNewMessages(&colCs); - for(auto &i : t){ - std::cout << "[" << i.eventName << "] " << std::endl; - } - } - - return 0; -} \ No newline at end of file diff --git a/rtc/src/mongoStub.cpp b/rtc/src/mongoStub.cpp deleted file mode 100644 index ccd2abda..00000000 --- a/rtc/src/mongoStub.cpp +++ /dev/null @@ -1,84 +0,0 @@ -#include "mongoStub.hpp" - -mongoStub::mongoStub() { - if (this->client) { - this->db = client["fosscord"]; - - if (this->db) { - this->col = db["events"]; - - } else { - std::cout << "db not found"; - exit(-1); - } - } else { - std::cout << "Client couldn't be initialized"; - exit(-1); - } -} - -// Too slow for my liking -std::vector mongoStub::getNewMessages( - mongocxx::change_stream* colCs) { - std::vector retVec; - - for (auto&& event : *colCs) { - mongoStub::mongoMessage returnValue; - - std::cout << bsoncxx::to_json(event) << std::endl; - - // Only listen to insert events (to avoid "precondition failed: data" - // exception) - if (event["operationType"].get_utf8().value.to_string() != "insert") { - continue; - } - - std::string evName = event["fullDocument"]["event"].get_utf8().value.to_string(); - - if(evName.substr(0, 7)=="VSERVER"){ continue; } //Ignore the event if it's been emited by a voice server - - if (evName == "UDP_CONNECTION") { - handleUdpRequest( - event["fullDocument"]["data"]["d"]["address"].get_utf8().value.to_string(), - event["fullDocument"]["data"]["d"]["port"].get_int32().value, - event["fullDocument"]["data"]["d"]["mode"].get_utf8().value.to_string() - ); - - } else if (evName == "VOICE_REQUEST") { - //TODO - continue; - } - - returnValue.eventName = evName; - retVec.push_back(returnValue); - } - - return retVec; -} - - -void mongoStub::handleUdpRequest(std::string address, int port, std::string mode) { - using bsoncxx::builder::basic::kvp; - using bsoncxx::builder::basic::sub_array; - using bsoncxx::builder::basic::sub_document; - - auto builder = bsoncxx::builder::basic::document{}; - - //Handle UDP socket stuff (later tho) - - builder.append(kvp("event", "VSERVER_UDP_RESPONSE")); - builder.append(kvp("op", "4")); - builder.append(kvp("d", [](sub_document subdoc) { - subdoc.append(kvp("mode", "CRYPT_MODE")), - subdoc.append(kvp("secret_key", [](sub_array subarr) { - subarr.append(1, 2, 3, 5); // HOW DO I GEN A SKEY? - })); - })); - - - bsoncxx::stdx::optional r= col.insert_one(builder.view()); -} - -void mongoStub::handleVoiceRequest() { - //Is this really needed? idk -} \ No newline at end of file diff --git a/rtc/src/mongoStub.hpp b/rtc/src/mongoStub.hpp deleted file mode 100644 index 2809142f..00000000 --- a/rtc/src/mongoStub.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef MONGOSTUB_HPP -#define MONGOSTUB_HPP - -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -class mongoStub{ - public: - mongoStub(); - - struct mongoMessage{ - std::string eventName; - std::vector data; - }; - - std::vector getNewMessages(mongocxx::change_stream* colCs); - - mongocxx::collection getCol() const { return col; } - - - - private: - mongocxx::instance instance; - mongocxx::client client{mongocxx::uri{}}; - mongocxx::database db; - mongocxx::collection col; - mongocxx::change_stream* colCs = nullptr; - - void handleUdpRequest(std::string address, int port, std::string mode); - void handleVoiceRequest(); -}; - -#endif diff --git a/rtc/src/rtcPeerHandler.cpp b/rtc/src/rtcPeerHandler.cpp deleted file mode 100644 index 9bfc6466..00000000 --- a/rtc/src/rtcPeerHandler.cpp +++ /dev/null @@ -1,83 +0,0 @@ -#include "rtcPeerHandler.hpp" - -rtcPeerHandler::rtcPeerHandler() { - rtc::InitLogger(rtc::LogLevel::Verbose, NULL); -} - -void rtcPeerHandler::initiateConnection(std::string peerIP, int peerPort) { - // Socket connection between client and server - SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0); - sockaddr_in addr; - addr.sin_addr.s_addr = inet_addr(peerIP.c_str()); - addr.sin_port = htons(peerPort); - addr.sin_family = AF_INET; - - rtc::Configuration conf; - conf.enableIceTcp = false; - conf.disableAutoNegotiation = false; - - auto pc = std::make_shared(conf); - - rtc::Description::Audio media("audio", - rtc::Description::Direction::SendRecv); - media.addOpusCodec(96); - media.setBitrate(64); - - auto track = pc->addTrack(media); - - // auto session = std::make_shared(); - - // track->setMediaHandler(session); - - rtc::Reliability rtcRel; - rtcRel.unordered = true; - rtcRel.type = rtc::Reliability::Type::Timed; - rtcRel.rexmit = 500; - - rtc::DataChannelInit rtcConf; - rtcConf.reliability = rtcRel; - rtcConf.negotiated = false; - - pc->onStateChange([](rtc::PeerConnection::State state) { - std::cout << "State: " << state << std::endl; - if (state == rtc::PeerConnection::State::Disconnected || - state == rtc::PeerConnection::State::Failed || - state == rtc::PeerConnection::State::Closed) { - // remove disconnected client - } - }); - - pc->onGatheringStateChange([](rtc::PeerConnection::GatheringState state) { - std::cout << "Gathering State: " << state << std::endl; - }); - - /*std::tuple addAudio( - - const std::shared_ptr pc, - const uint8_t payloadType, const uint32_t ssrc, const std::string cname, - const std::string msid, const std::function onOpen) { - auto audio = Description::Audio(cname); - audio.addOpusCodec(payloadType); - audio.addSSRC(ssrc, cname, msid, cname); - auto track = pc->addTrack(audio); - // create RTP configuration - auto rtpConfig = make_shared( - ssrc, cname, payloadType, OpusRtpPacketizer::defaultClockRate); - // create packetizer - auto packetizer = make_shared(rtpConfig); - // create opus handler - auto opusHandler = make_shared(packetizer); - - // add RTCP SR handler - auto srReporter = make_shared(rtpConfig); - opusHandler->addToChain(srReporter); - - // set handler - track->setMediaHandler(opusHandler); - track->onOpen(onOpen); - auto trackData = make_shared(track, srReporter); - return trackData; - }*/ - - pc->createDataChannel("Fosscord voice connection", rtcConf); -} diff --git a/rtc/src/rtcPeerHandler.hpp b/rtc/src/rtcPeerHandler.hpp deleted file mode 100644 index 3ba32a83..00000000 --- a/rtc/src/rtcPeerHandler.hpp +++ /dev/null @@ -1,32 +0,0 @@ -#include "libdatachannel/rtc.hpp" -#include -#include -#include "nlohmann/json.hpp" -#include - -#ifdef _WIN32 -#include -#else -#include -typedef int SOCKET; -#endif - -using json = nlohmann::json; - -#ifndef RTCPEERHANDLER -#define RTCPEERHANDLER -class rtcPeerHandler{ -public: - rtcPeerHandler(); - void initiateConnection(std::string peerIP, int peerPort); - - struct client - { - std::shared_ptr pc; - std::shared_ptr dc; - }; - -private: - std::map clients; -}; -#endif \ No newline at end of file diff --git a/rtc/src/rtcServer.hpp b/rtc/src/rtcServer.hpp deleted file mode 100644 index e69de29b..00000000 diff --git a/scripts/benchmark.js b/scripts/benchmark.js new file mode 100644 index 00000000..e7435191 --- /dev/null +++ b/scripts/benchmark.js @@ -0,0 +1,28 @@ +const typeorm = require("typeorm"); +const Models = require("../dist/entities"); +const { PrimaryColumn } = require("typeorm"); + +function shouldIncludeEntity(name) { + return ![Models.BaseClassWithoutId, PrimaryColumn, Models.BaseClass, Models.PrimaryGeneratedColumn] + .map((x) => x?.name) + .includes(name); +} + +async function main() { + console.log("starting"); + const db = new typeorm.DataSource({ + type: "sqlite", + database: ":memory:", + entities: Object.values(Models).filter((x) => x.constructor.name == "Function" && shouldIncludeEntity(x.name)), + synchronize: true, + }); + await db.initialize(); + console.log("Initialized database"); + + for (var i = 0; i < 100; i++) { + await Models.User.register({ username: "User" + i }); + console.log("registered user " + i); + } +} + +main(); diff --git a/scripts/benchmark/connections.js b/scripts/benchmark/connections.js new file mode 100644 index 00000000..661548c3 --- /dev/null +++ b/scripts/benchmark/connections.js @@ -0,0 +1,64 @@ +require("dotenv").config(); +const cluster = require("cluster"); +const WebSocket = require("ws"); +const endpoint = process.env.GATEWAY || "ws://localhost:3001"; +const connections = Number(process.env.CONNECTIONS) || 50; +const token = process.env.TOKEN; +let cores = 1; +try { + cores = Number(process.env.THREADS) || os.cpus().length; +} catch { + console.log("[Bundle] Failed to get thread count! Using 1...") +} + +if (!token) { + console.error("TOKEN env var missing"); + process.exit(); +} + +if (cluster.isMaster) { + for (let i = 0; i < threads; i++) { + cluster.fork(); + } + + cluster.on("exit", (worker, code, signal) => { + console.log(`worker ${worker.process.pid} died`); + }); +} else { + for (let i = 0; i < connections; i++) { + connect(); + } +} + +function connect() { + const client = new WebSocket(endpoint); + client.on("message", (data) => { + data = JSON.parse(data); + + switch (data.op) { + case 10: + client.interval = setInterval(() => { + client.send(JSON.stringify({ op: 1 })); + }, data.d.heartbeat_interval); + + client.send( + JSON.stringify({ + op: 2, + d: { + token, + properties: {}, + }, + }) + ); + + break; + } + }); + client.once("close", (code, reason) => { + clearInterval(client.interval); + connect(); + }); + client.on("error", (err) => { + // console.log(err); + }); +} diff --git a/scripts/benchmark/index.js b/scripts/benchmark/index.js new file mode 100644 index 00000000..37ac5633 --- /dev/null +++ b/scripts/benchmark/index.js @@ -0,0 +1,4 @@ +require("dotenv").config(); + +require("./connections"); +require("./messages"); diff --git a/scripts/benchmark/users.js b/scripts/benchmark/users.js new file mode 100644 index 00000000..bce67bf4 --- /dev/null +++ b/scripts/benchmark/users.js @@ -0,0 +1,25 @@ +require("dotenv").config(); +const fetch = require("node-fetch"); +const count = Number(process.env.COUNT) || 50; +const endpoint = process.env.API || "http://localhost:3001"; + +async function main() { + for (let i = 0; i < count; i++) { + fetch(`${endpoint}/api/auth/register`, { + method: "POST", + body: JSON.stringify({ + fingerprint: `${i}.wR8vi8lGlFBJerErO9LG5NViJFw`, + username: `test${i}`, + invite: null, + consent: true, + date_of_birth: "2000-01-01", + gift_code_sku_id: null, + captcha_key: null, + }), + headers: { "content-type": "application/json" }, + }); + console.log(i); + } +} + +main(); diff --git a/scripts/build.js b/scripts/build.js new file mode 100644 index 00000000..49353c87 --- /dev/null +++ b/scripts/build.js @@ -0,0 +1,84 @@ +const { execSync } = require("child_process"); +const path = require("path"); +const fs = require("fs"); +const { argv, stdout, exit } = require("process"); +const { execIn, parts } = require('./utils'); + +if(argv.includes("help")) { + console.log(`Fosscord build script help: +Arguments: + clean Cleans up previous builds + copyonly Only copy source files, don't build (useful for updating assets) + verbose Enable verbose logging + logerrors Log build errors to console + pretty-errors Pretty-print build errors + silent No output to console or files.`); + exit(0); +} + +let steps = 3, i = 0; +if (argv.includes("clean")) steps++; +if (argv.includes("copyonly")) steps--; + +const verbose = argv.includes("verbose") || argv.includes("v"); +const logerr = argv.includes("logerrors"); +const pretty = argv.includes("pretty-errors"); +const silent = argv.includes("silent"); + +if(silent) console.error = console.log = function(){} + +if (argv.includes("clean")) { + console.log(`[${++i}/${steps}] Cleaning...`); + parts.forEach((a) => { + let d = "../" + a + "/dist"; + if (fs.existsSync(d)) { + fs.rmSync(d, { recursive: true }); + if (verbose) console.log(`Deleted ${d}!`); + } + }); +} + +console.log(`[${++i}/${steps}] Checking if dependencies were installed correctly...`); +//exif-be-gone v1.3.0 doesnt build js, known bug +if(!fs.existsSync(path.join(__dirname, "..", "node_modules", "exif-be-gone", "index.js"))) + execIn("npm run build", path.join(__dirname, "..", "node_modules", "exif-be-gone")); + + +if (!argv.includes("copyonly")) { + console.log(`[${++i}/${steps}] Compiling src files ...`); + + let buildFlags = '' + if(pretty) buildFlags += '--pretty ' + + try { + execSync( + 'node "' + + path.join(__dirname, "..", "node_modules", "typescript", "lib", "tsc.js") + + '" -p "' + + path.join(__dirname, "..") + + '" ' + buildFlags, + { + cwd: path.join(__dirname, ".."), + shell: true, + env: process.env, + encoding: "utf8" + } + ) + } catch (error) { + if(verbose || logerr) { + error.stdout.split(/\r?\n/).forEach((line) => { + let _line = line.replace('dist/','',1); + if(!pretty && _line.includes('.ts(')) { + //reformat file path for easy jumping + _line = _line.replace('(',':',1).replace(',',':',1).replace(')','',1) + } + console.error(_line); + }) + } + console.error(`Build failed! Please check build.log for info!`); + if(!silent){ + if(pretty) fs.writeFileSync("build.log.ansi", error.stdout); + fs.writeFileSync("build.log", error.stdout.replaceAll(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '')); + } + } +} \ No newline at end of file diff --git a/scripts/db_migrations.sh b/scripts/db_migrations.sh new file mode 100755 index 00000000..83f15a2b --- /dev/null +++ b/scripts/db_migrations.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +if [ ! -z "$1" ] +then + FILENAME="$1" + echo "Using filename: $FILENAME" +else + read -p "Enter migration filename: " FILENAME +fi + +[ -f ".env" ] && ( + mv .env .env.tmp + source .env.tmp +) + +make_migration() { + echo "Creating migrations for $2" + mkdir "../util/src/migrations/$2" +# npm run build clean logerrors pretty-errors +# THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle + THREADS=1 DATABASE="$1" DB_MIGRATE=a npx typeorm-ts-node-commonjs migration:generate "../util/src/migrations/$2/$FILENAME" -d ../util/src/util/Database.ts -p + npm run build clean logerrors pretty-errors + THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle +} + +npm i sqlite3 +make_migration "database.db" "sqlite" + +[ -z "$FC_DB_POSTGRES" ] || ( + npm i pg + make_migration "$FC_DB_POSTGRES" "postgres" +) + +[ -z "$FC_DB_MARIADB" ] || ( + npm i mysql2 + make_migration "$FC_DB_MARIADB" "mariadb" +) + +[ -f ".env.tmp" ] && mv .env.tmp .env + diff --git a/scripts/depcheck.js b/scripts/depcheck.js new file mode 100644 index 00000000..1957f794 --- /dev/null +++ b/scripts/depcheck.js @@ -0,0 +1,56 @@ +const path = require("path"); +const fs = require("fs"); +const { env } = require("process"); +const { execSync } = require("child_process"); +const { argv, stdout, exit } = require("process"); + +const { execIn, getLines, parts } = require("./utils"); + +let npmi_extra_flags = ""; + +const resolveminor = argv.includes("resolveminor"); +if(argv.includes("nobuild")) npmi_extra_flags += "--ignore-scripts "; + +parts.forEach((part) => { + let partDir = path.join(__dirname, "..", "..", part); + let distDir = path.join(partDir, "dist"); + console.log(`Checking updates for ${part} (${partDir})`); + if(part == "bundle") { + execIn(`npm run syncdeps`, partDir) + } + if(resolveminor) { + fs.rmSync(path.join(partDir, "node_modules"), { + recursive: true, + force: true, + }); + execIn(`npm i --save --no-fund --no-audit --no-package-lock ${npmi_extra_flags}`, partDir) + } + let x = [ + [ + "pkg", + { + current: "1.0", + wanted: "2.0", + latest: "2.0", + dependent: "cdn", + location: "/usr/src/fosscord/bundle/node_packages/pkg", + }, + ], + ]; + x = Object.entries( + JSON.parse(execIn("npm outdated --json", partDir)) + ); + x.forEach((a) => { + let pkgname = a[0]; + let pkginfo = a[1]; + if(!pkginfo.current) + console.log(`MISSING ${pkgname}: ${pkginfo.current} -> ${pkginfo.wanted} (latest: ${pkginfo.latest})`); + else if(pkginfo.latest != pkginfo.wanted){ + if(pkginfo.current != pkginfo.wanted) + console.log(`MINOR ${pkgname}: ${pkginfo.current} -> ${pkginfo.wanted}`); + console.log(`MAJOR ${pkgname}: ${pkginfo.current} -> ${pkginfo.latest}`); + } + else + console.log(`MINOR ${pkgname}: ${pkginfo.current} -> ${pkginfo.wanted}`); + }); +}); diff --git a/scripts/depclean.js b/scripts/depclean.js new file mode 100644 index 00000000..830081b9 --- /dev/null +++ b/scripts/depclean.js @@ -0,0 +1,65 @@ +const path = require("path"); +const fs = require("fs"); +const { env } = require("process"); +const { execSync } = require("child_process"); +const { argv, stdout, exit } = require("process"); + +const { execIn, getLines, parts } = require('./utils'); + +const bundleRequired = ["@ovos-media/ts-transform-paths"]; +const removeModules = argv.includes("cleanup"); + +parts.forEach((part) => { + console.log(`Installing all packages for ${part}...`); + execIn("npm i", path.join(__dirname, "..", "..", part)); +}); + +parts.forEach((part) => { + let partDir = path.join(__dirname, "..", "..", part); + let distDir = path.join(partDir, "dist"); + let start = 0; + start = getLines( + execIn("npm ls --parseable --package-lock-only -a", partDir) + ); + if (fs.existsSync(distDir)) + fs.rmSync(distDir, { + recursive: true, + force: true, + }); + let x = { + dependencies: [], + devDependencies: [], + invalidDirs: [], + invalidFiles: [], + missing: [], + using: [], + }; + let dcproc = execIn("npx depcheck --json", partDir); + if(dcproc.stdout) x = JSON.parse(dcproc.stdout); + else x = JSON.parse(dcproc); + + fs.writeFileSync( + path.join(__dirname, "..", `depclean.out.${part}.json`), + JSON.stringify(x, null, "\t"), + { encoding: "utf8" } + ); + + let depsToRemove = x.dependencies.join(" "); + if (depsToRemove) execIn(`npm r --save ${depsToRemove}`, partDir); + + depsToRemove = x.devDependencies.join(" "); + if (depsToRemove) execIn(`npm r --save --dev ${depsToRemove}`, partDir); + + if (removeModules && fs.existsSync(path.join(partDir, "node_modules"))) + fs.rmSync(path.join(partDir, "node_modules"), { + recursive: true, + force: true, + }); + let end = getLines( + execIn("npm ls --parseable --package-lock-only -a", partDir) + ); + console.log(`${part}: ${start} -> ${end} (diff: ${start - end})`); +}); +console.log("Installing required packages for bundle..."); + +execIn(`npm i --save ${bundleRequired.join(" ")}`, path.join(__dirname, "..")); diff --git a/scripts/droptables.sql b/scripts/droptables.sql new file mode 100644 index 00000000..8a852048 --- /dev/null +++ b/scripts/droptables.sql @@ -0,0 +1,31 @@ +DROP TABLE applications; +DROP TABLE attachments; +DROP TABLE audit_logs; +DROP TABLE bans; +DROP TABLE connected_accounts; +DROP TABLE emojis; +DROP TABLE invites; +DROP TABLE member_roles; +DROP TABLE message_channel_mentions; +DROP TABLE message_role_mentions; +DROP TABLE message_stickers; +DROP TABLE message_user_mentions; +DROP TABLE messages; +DROP TABLE rate_limits; +DROP TABLE read_states; +DROP TABLE recipients; +DROP TABLE relationships; +DROP TABLE roles; +DROP TABLE sessions; +DROP TABLE stickers; +DROP TABLE team_members; +DROP TABLE teams; +DROP TABLE templates; +DROP TABLE voice_states; +DROP TABLE webhooks; +DROP TABLE channels; +DROP TABLE members; +DROP TABLE guilds; +DROP TABLE client_release; +-- DROP TABLE users; +-- DROP TABLE config; \ No newline at end of file diff --git a/scripts/gen_index.js b/scripts/gen_index.js new file mode 100644 index 00000000..71c64a9f --- /dev/null +++ b/scripts/gen_index.js @@ -0,0 +1,34 @@ +const path = require("path"); +const fs = require("fs"); +const { execIn, getLines, parts } = require('./utils'); + +if (!process.argv[2] || !fs.existsSync(process.argv[2])) { + console.log("Please pass a directory that exists!"); + process.exit(1); +} +console.log(`// ${process.argv[2]}/index.ts`) +const recurse = process.argv.includes("--recursive") + +const files = fs.readdirSync(process.argv[2]).filter(x => x.endsWith('.ts') && x != 'index.ts'); + +let output = ''; + +files.forEach(x => output += `export * from "./${x.replaceAll('.ts','')}";\n`) + +const dirs = fs.readdirSync(process.argv[2]).filter(x => { + try { + fs.readdirSync(path.join(process.argv[2], x)); + return true; + } catch (e) { + return false; + } +}); +dirs.forEach(x => { + output += `export * from "./${x}/index";\n` +}) +console.log(output); +fs.writeFileSync(path.join(process.argv[2], "index.ts"), output) + +dirs.forEach(x => { + if(recurse) console.log(execIn([process.argv[0], process.argv[1], `"${path.join(process.argv[2], x)}"`, "--recursive"].join(' '), process.cwd())) +}) \ No newline at end of file diff --git a/scripts/generate_openapi.js b/scripts/generate_openapi.js new file mode 100644 index 00000000..9624a5b9 --- /dev/null +++ b/scripts/generate_openapi.js @@ -0,0 +1,137 @@ +// https://mermade.github.io/openapi-gui/# +// https://editor.swagger.io/ +const getRouteDescriptions = require("../jest/getRouteDescriptions"); +const path = require("path"); +const fs = require("fs"); +require("missing-native-js-functions"); + +const openapiPath = path.join(__dirname, "..", "assets", "openapi.json"); +const SchemaPath = path.join(__dirname, "..", "assets", "schemas.json"); +const schemas = JSON.parse(fs.readFileSync(SchemaPath, { encoding: "utf8" })); +const specification = JSON.parse(fs.readFileSync(openapiPath, { encoding: "utf8" })); + +function combineSchemas(schemas) { + let definitions = {}; + + for (const name in schemas) { + definitions = { + ...definitions, + ...schemas[name].definitions, + [name]: { ...schemas[name], definitions: undefined, $schema: undefined } + }; + } + + for (const key in definitions) { + specification.components.schemas[key] = definitions[key]; + delete definitions[key].additionalProperties; + delete definitions[key].$schema; + const definition = definitions[key]; + + if (typeof definition.properties === "object") { + for (const property of Object.values(definition.properties)) { + if (Array.isArray(property.type)) { + if (property.type.includes("null")) { + property.type = property.type.find((x) => x !== "null"); + property.nullable = true; + } + } + } + } + } + + return definitions; +} + +function getTag(key) { + return key.match(/\/([\w-]+)/)[1]; +} + +function apiRoutes() { + const routes = getRouteDescriptions(); + + const tags = Array.from(routes.keys()).map((x) => getTag(x)); + specification.tags = [...specification.tags.map((x) => x.name), ...tags].unique().map((x) => ({ name: x })); + + routes.forEach((route, pathAndMethod) => { + const [p, method] = pathAndMethod.split("|"); + const path = p.replace(/:(\w+)/g, "{$1}"); + + let obj = specification.paths[path]?.[method] || {}; + if (!obj.description) { + const permission = route.permission ? `##### Requires the \`\`${route.permission}\`\` permission\n` : ""; + const event = route.test?.event ? `##### Fires a \`\`${route.test?.event}\`\` event\n` : ""; + obj.description = permission + event; + } + if (route.body) { + obj.requestBody = { + required: true, + content: { + "application/json": { + schema: { $ref: `#/components/schemas/${route.body}` } + } + } + }.merge(obj.requestBody); + } + if (!obj.responses) { + obj.responses = { + default: { + description: "not documented" + } + }; + } + if (route.test?.response) { + const status = route.test.response.status || 200; + let schema = { + allOf: [ + { + $ref: `#/components/schemas/${route.test.response.body}` + }, + { + example: route.test.body + } + ] + }; + if (!route.test.body) schema = schema.allOf[0]; + + obj.responses = { + [status]: { + ...(route.test.response.body + ? { + description: obj.responses[status].description || "", + content: { + "application/json": { + schema: schema + } + } + } + : {}) + } + }.merge(obj.responses); + delete obj.responses.default; + } + if (p.includes(":")) { + obj.parameters = p.match(/:\w+/g)?.map((x) => ({ + name: x.replace(":", ""), + in: "path", + required: true, + schema: { type: "string" }, + description: x.replace(":", "") + })); + } + obj.tags = [...(obj.tags || []), getTag(p)].unique(); + + specification.paths[path] = { ...specification.paths[path], [method]: obj }; + }); +} + +function main() { + combineSchemas(schemas); + apiRoutes(); + + fs.writeFileSync( + openapiPath, + JSON.stringify(specification, null, 4).replaceAll("#/definitions", "#/components/schemas").replaceAll("bigint", "number") + ); +} + +main(); diff --git a/scripts/generate_schema.js b/scripts/generate_schema.js new file mode 100644 index 00000000..6925df5d --- /dev/null +++ b/scripts/generate_schema.js @@ -0,0 +1,95 @@ +// https://mermade.github.io/openapi-gui/# +// https://editor.swagger.io/ +const path = require("path"); +const fs = require("fs"); +const TJS = require("typescript-json-schema"); +require("missing-native-js-functions"); +const schemaPath = path.join(__dirname, "..", "assets", "schemas.json"); + +const settings = { + required: true, + ignoreErrors: true, + excludePrivate: true, + defaultNumberType: "integer", + noExtraProps: true, + defaultProps: false +}; +const compilerOptions = { + strictNullChecks: true +}; +const Excluded = [ + "DefaultSchema", + "Schema", + "EntitySchema", + "ServerResponse", + "Http2ServerResponse", + "global.Express.Response", + "Response", + "e.Response", + "request.Response", + "supertest.Response", + + // TODO: Figure out how to exclude schemas from node_modules? + "SomeJSONSchema", + "UncheckedPartialSchema", + "PartialSchema", + "UncheckedPropertiesSchema", + "PropertiesSchema", + "AsyncSchema", + "AnySchema", +]; + +function modify(obj) { + for (let k in obj) { + if (typeof obj[k] === "object" && obj[k] !== null) { + modify(obj[k]); + } + } +} + +function main() { + const files = [ + ...walk(path.join(__dirname, "..", "src", "util", "schemas")), + ]; + const program = TJS.getProgramFromFiles( + files, + compilerOptions + ); + const generator = TJS.buildGenerator(program, settings); + if (!generator || !program) return; + + let schemas = generator.getUserSymbols().filter((x) => (x.endsWith("Schema") || x.endsWith("Response")) && !Excluded.includes(x)); + console.log(schemas); + + let definitions = {}; + + for (const name of schemas) { + const part = TJS.generateSchema(program, name, settings, [], generator); + if (!part) continue; + + definitions = { ...definitions, [name]: { ...part } }; + } + + modify(definitions); + + fs.writeFileSync(schemaPath, JSON.stringify(definitions, null, 4)); +} + +main(); + +function walk(dir) { + let results = []; + let list = fs.readdirSync(dir); + list.forEach(function (file) { + file = dir + "/" + file; + let stat = fs.statSync(file); + if (stat && stat.isDirectory()) { + /* Recurse into a subdirectory */ + results = results.concat(walk(file)); + } else { + if (!file.endsWith(".ts")) return; + results.push(file); + } + }); + return results; +} diff --git a/scripts/install.js b/scripts/install.js new file mode 100644 index 00000000..db9dadbc --- /dev/null +++ b/scripts/install.js @@ -0,0 +1,23 @@ +const path = require("path"); +const fs = require("fs"); +const parts = ["api", "util", "cdn", "gateway"]; + +const bundle = require("../package.json"); + +for (const part of parts) { + const { devDependencies, dependencies } = require(path.join( + "..", + "..", + part, + "package.json" + )); + bundle.devDependencies = { ...bundle.devDependencies, ...devDependencies }; + bundle.dependencies = { ...bundle.dependencies, ...dependencies }; + delete bundle.dependencies["@fosscord/util"]; +} + +fs.writeFileSync( + path.join(__dirname, "..", "package.json"), + JSON.stringify(bundle, null, "\t"), + { encoding: "utf8" } +); diff --git a/scripts/migrate_db_engine.js b/scripts/migrate_db_engine.js new file mode 100644 index 00000000..79e9d86f --- /dev/null +++ b/scripts/migrate_db_engine.js @@ -0,0 +1,109 @@ +const { config } = require("dotenv"); +config(); +const { createConnection } = require("typeorm"); +const { initDatabase } = require("../../dist/util/Database"); +require("missing-native-js-functions"); +const { + Application, + Attachment, + Ban, + Channel, + ConfigEntity, + ConnectedAccount, + Emoji, + Guild, + Invite, + Member, + Message, + ReadState, + Recipient, + Relationship, + Role, + Sticker, + Team, + TeamMember, + Template, + User, + VoiceState, + Webhook, +} = require("../../dist/entities/index"); + +async function main() { + if (!process.env.TO) throw new Error("TO database env connection string not set"); + + // manually arrange them because of foreign keys + const entities = [ + ConfigEntity, + User, + Guild, + Channel, + Invite, + Role, + Ban, + Application, + Emoji, + ConnectedAccount, + Member, + ReadState, + Recipient, + Relationship, + Sticker, + Team, + TeamMember, + Template, + VoiceState, + Webhook, + Message, + Attachment, + ]; + + const oldDB = await initDatabase(); + + const type = process.env.TO.includes("://") ? process.env.TO.split(":")[0]?.replace("+srv", "") : "sqlite"; + const isSqlite = type.includes("sqlite"); + + // @ts-ignore + const newDB = await createConnection({ + type, + url: isSqlite ? undefined : process.env.TO, + database: isSqlite ? process.env.TO : undefined, + entities, + name: "new", + synchronize: true, + }); + let i = 0; + + try { + for (const entity of entities) { + const entries = await oldDB.manager.find(entity); + + // @ts-ignore + console.log("migrating " + entries.length + " " + entity.name + " ..."); + + for (const entry of entries) { + console.log(i++); + + try { + await newDB.manager.insert(entity, entry); + } catch (error) { + try { + if (!entry.id) throw new Error("object doesn't have a unique id: " + entry); + await newDB.manager.update(entity, { id: entry.id }, entry); + } catch (error) { + console.error("couldn't migrate " + i + " " + entity.name, error); + } + } + } + + // @ts-ignore + console.log("migrated " + entries.length + " " + entity.name); + } + } catch (error) { + console.error(error.message); + } + + console.log("SUCCESS migrated all data"); + await newDB.close(); +} + +main().caught(); diff --git a/scripts/rights.js b/scripts/rights.js new file mode 100644 index 00000000..c363b0c5 --- /dev/null +++ b/scripts/rights.js @@ -0,0 +1,34 @@ +const path = require("path"); +const fs = require("fs"); +const { env } = require("process"); +const { execSync } = require("child_process"); +const { argv, stdout, exit } = require("process"); + +const { execIn, getLines, parts } = require("./utils"); + +let lines = fs.readFileSync(path.join(__dirname, "..", "..", "util", "src","util","Rights.ts")).toString() +let lines2 = lines.split("\n"); +let lines3 = lines2.filter(y=>y.includes(": BitFlag(")); +let lines4 = lines3.map(x=>x.split("//")[0].trim()) + +function BitFlag(int) { + return 1n << eval(`${int}n`); +} + +let rights = [] +let maxRights = 0n; +lines4.forEach(x=>{ + maxRights += eval(`rights.${x.replace(':'," = ").replace(",",";")}`) +}) +//max rights... +console.log(`Maximum rights: ${maxRights}`); +//discord rights... +discordRights = maxRights; +discordRights -= rights.SEND_BACKDATED_EVENTS; +discordRights -= rights.MANAGE_GUILD_DIRECTORY; +discordRights -= rights.CREDITABLE; +discordRights -= rights.BYPASS_RATE_LIMITS; +discordRights -= rights.ADD_MEMBERS; +discordRights -= rights.MANAGE_RATE_LIMITS; +discordRights -= rights.OPERATOR; +console.log(`Discord-like rights: ${discordRights}`); \ No newline at end of file diff --git a/scripts/stresstest/.gitignore b/scripts/stresstest/.gitignore new file mode 100644 index 00000000..bde26fd4 --- /dev/null +++ b/scripts/stresstest/.gitignore @@ -0,0 +1,3 @@ +/node_modules +config.json +accounts.json diff --git a/scripts/stresstest/accounts.json.example b/scripts/stresstest/accounts.json.example new file mode 100644 index 00000000..61904c5e --- /dev/null +++ b/scripts/stresstest/accounts.json.example @@ -0,0 +1 @@ +[{"email":"org11ncxa8.wi732t9b4o@fosscord.com","password":"x.ibahfyqwle.ne4hajbzp11.gpc4lcup4"},{"email":"rek6kyprik.i5hldol255@fosscord.com","password":"1.o3w16haor2y.0e1ey2yk1x.1r0gn5o5h"},{"email":"07o37povsi.uk5q9dtxbp@fosscord.com","password":"8.6z64gcjavp1n.uar3qqymwfi.g0sfmmbd9m"},{"email":"94di5zaie4.n1vhzdfsj@fosscord.com","password":"1e.k3ijylxme1u.e9xr9yqbrk.3tir7qnvh"},{"email":"zbrqft4chj.yl73e5puq3@fosscord.com","password":"5.nkc3g8cvwl15.dmp8ywmkka.m79e9t4wij"},{"email":"br1wknv7k.6hw6yl69e@fosscord.com","password":"3.gimzx06u7mh.6rjrdflo9j1t.h3d8k2f5t"},{"email":"cdehs12h6h.iexxvg16xf@fosscord.com","password":"1i.5ab7e9rtwl1n.31qtfv7cz9.e1k313py9"},{"email":"pazx37jpra.mgsb8k50ip@fosscord.com","password":"d.eg5dwqvd981e.5qobehiyffe.6k5pb4fqm"},{"email":"vs6k62ak2o.xo1v4w0rj@fosscord.com","password":"c.hrkcrnlxlg1d.w18ztd39d1p.eycgehb49"},{"email":"u5d27rbewm.3p0wa7s899@fosscord.com","password":"s.1r7o1ur8o9k.puzbm1uuta9.an5m8bhh0a"},{"email":"vyp6x66fr.yv74eftomo@fosscord.com","password":"m.w0c7h21asf.pq2lj3uot6a.xnhv9ftqii"},{"email":"da0k6sra2n.qts4gs9ufg@fosscord.com","password":"h.8e42ud5f6r5.896sp1t8y6e.shwe0d8no9"},{"email":"l093koc05n.81vt1v8tsx@fosscord.com","password":"11.zhkv1jbhdf.0ub2po3mnu.no4lq8l4"},{"email":"115tfo7ct.muvy04u0tf@fosscord.com","password":"1c.4bpk2a17z1p.gw2h6qmvhez.57drs0quz"},{"email":"dq6bk1hjch.huw092gkhr@fosscord.com","password":"1l.kp28mclrtee.5i4dmacbpc1j.hcqgemsni"},{"email":"8g8q9v3wmk.l2frwpuds8@fosscord.com","password":"1n.i0wwg0njmv.teaiqjqalt1g.ib6551nh4"},{"email":"5b3y3neqxa.mmi0ex2hxd@fosscord.com","password":"8.tvz7q9uw0hm.6ufz6fu65c1a.88vp9di6e"},{"email":"mg28g3krsp.35h1akxrqj@fosscord.com","password":"s.y8j2n19iffr.qyecyrgo6ig.6hgrc5vy9"},{"email":"ehtumcok2j.2oozlhiq97@fosscord.com","password":"11.uq0up8g8h1q.ofvjsx29yd.pfwen3kr38"},{"email":"le98rah1uc.au4ug9tpnt@fosscord.com","password":"t.q15zsc0q2mt.2nj3jsdxhfc.leb9ba1xku"},{"email":"hrroex9f5n.6cl98h3jsi@fosscord.com","password":"17.qnqqhg2us4.kh92v74atg19.49ufgil7g"},{"email":"w95wrrn48.6gfnue7dcq@fosscord.com","password":"b.jnqgbi89oj1k.8rn0llovbll.kcblui80th"},{"email":"rqo4n0il5w.4gl1u8hlyc@fosscord.com","password":"17.41d1lpjmi0.d8ijhslby11w.sjn7sqhi9"},{"email":"6dv3yp4kon.pk7ye6q1r6@fosscord.com","password":"0.j70py6yysjz.sf56ebpp2gp.z68yo9hiim"},{"email":"knmi9qkige.5v1bg6h09w@fosscord.com","password":"1d.7n58xntwg1s.umnglex7h13.c5xrsfkosm"},{"email":"cefymgc7te.dd81jabws4@fosscord.com","password":"1u.73ea7dde1o.0i1fhyaird.sjk30nky1e"},{"email":"33xcwiqf73.r6khs46a7j@fosscord.com","password":"b.5p5gdmh1891f.11g4590n5a.vfoek6qjb9"},{"email":"9zcgmr84s6.utnlygoubi@fosscord.com","password":"8.g4v53t7kcl16.wgaiufzgg1u.pusdfdneb"},{"email":"26vpzekrdw.3bwq27wla@fosscord.com","password":"11.yxey8293lj1d.nxhkju2eke.hl86mcvswd"},{"email":"vvq6w36r84.lr1auhpfc@fosscord.com","password":"y.7vlqbpftom.6xfrtozd11k.ycf9ifi7o"},{"email":"6ejeiq64yo.zorve5saw4@fosscord.com","password":"o.eue50qp1frq.qi0rwphg3dv.psph7va2fb"},{"email":"6s0hu88ro8.hsckrmud1i@fosscord.com","password":"16.fc836nhb91a.ul37503ppg.l62wgser4i"},{"email":"h8qwchz2x9.5br1kcw1iv@fosscord.com","password":"l.iw1041wgy.6azyc9h6vb.br9cr0dmn8"},{"email":"yx13rst2hu.ybisfdwgv@fosscord.com","password":"8.5yasf5ba619.ir0toxu251p.tbgwjd18f"},{"email":"1j7vrr1trh.wqj0ozl357@fosscord.com","password":"1m.iucscoe7b0.6ca1jfaag361.c2trc36mnvk"},{"email":"9w2w572pzr.fv1rk360pp@fosscord.com","password":"t.labzw6qw8t3.33k42uvhgd1s.e1gj71h14"},{"email":"yf5e43ol4.6509owbcxa@fosscord.com","password":"12.jewy0uvx1m1m.ce28kht6dk.v2p0bzlvz"},{"email":"gzny2o1re.1xrl0ua7yd@fosscord.com","password":"h.3valf7r8jh.6bzfr4ions.r4b2mt0l0g"},{"email":"bc77a5kw9v.hu5barps6q@fosscord.com","password":"1a.jt11azsa81j.4v70jvm9d1o.hflrb1tigk"},{"email":"ltoezpefev.hrvnxmq9ee@fosscord.com","password":"b.v4f5lqrlc912.dx4dd4xq91v.zj345to03"},{"email":"svcpsuoenk.b8mfqxpbzg@fosscord.com","password":"1a.7aobev8b4r.xqqfybkcs1t.cjuswku0a"},{"email":"n0mroewqq.svq5iq57pe@fosscord.com","password":"1l.zxm1xhlavp.65rp7bz57x.01vjajdsc"},{"email":"trly6yupd.dt37kh07dn@fosscord.com","password":"1i.o2ieg72fz1j.er031tzerx.2ngg4dcvlh"},{"email":"ickkf14cqv.9pu2pnmx7n@fosscord.com","password":"18.pyhd9ruatl1k.erfchcjc95.wfd67r5e8x"},{"email":"5o4ornfwy9.yabymb8e2k@fosscord.com","password":"1g.117kmei8df10.cedozr4vee.08te5d44nb"},{"email":"p0ulegfi3.dgmar6qc2v@fosscord.com","password":"1h.tle7s3ed82.un20o5nv3dk.wnz4w802h8"},{"email":"58gejpvr6v.jolxrsl83p@fosscord.com","password":"e.ksw14117hbo.f0pgufr3na.ssrjys23al"},{"email":"vf349zeoja.r8bjel59kd@fosscord.com","password":"1o.79kh6e6glm9.d76d86g1jp16.u37p4jhf7"},{"email":"uc786nn0go.n9ygun6owj@fosscord.com","password":"m.xo4bwhct5be.lpokbj59w8p.z4l52dzv1r"},{"email":"5jgx24s87u.odlx0bfo0r@fosscord.com","password":"1k.ni9jyfol7h1g.vczzsa8dbg.r4bhoh5op"},{"email":"2v44408x8l.unfspunnnm@fosscord.com","password":"16.63njhji5b4.r4xkcf672f1a.x389dr603g"},{"email":"ityj8kcvrm.9djzannsll@fosscord.com","password":"1p.6jdbhaxiqc.nfnpw7e09g8.967dtt2dy3"},{"email":"8csbvl9qot.28etdf4pf@fosscord.com","password":"1b.52rdo5qmj3.ta9jw1wm3k9.m96fe27tp"},{"email":"dqndi38hsq.yv77wk3mov@fosscord.com","password":"k.zpjwpwxmlr1f.tbj03rxayn17.9x451qclu"},{"email":"ohwmvag9j.w6t8ngs4t@fosscord.com","password":"b.h1ta0mly991q.wzu1ssffyk1h.kc10wt8i2"},{"email":"2mmors2h0w.jwukibc7oi@fosscord.com","password":"y.xo4kgepqa1t.b77zwt1in5.3um79fx22r"},{"email":"ux0q6gvwnr.gnywxxrsn@fosscord.com","password":"g.52userbsonu.ny8omqaduf.rvhtwq4jer"},{"email":"0q12b4zet.y87zc04r8r@fosscord.com","password":"1t.79mg1a9q85.k66wagu67j14.ad0gw3caw"},{"email":"gatbconrvq.dsopxa8fkk@fosscord.com","password":"1n.fycl7y9roh1p.4yg37pst4k16.votnvabrf"},{"email":"mmp9g1b1v.xz1w4qzxee@fosscord.com","password":"1k.cjmz3huosl.jh502yz5jf1e.hyce7qc67"},{"email":"5s90s1hbns.b027pfiv3s@fosscord.com","password":"1l.86ipkmi6fg.scabtvproj4.yw4nb9qui9"},{"email":"l4zrvtrbpb.1r627sllk@fosscord.com","password":"1l.zzm1dunzzek.10sr7mp01ly.yyrjj1hsli"},{"email":"xih9rwk90i.rmdifv40g@fosscord.com","password":"15.db9k0pxci1v.hs6l033urm.5a1zv42fhl"},{"email":"55mq93jdq.2dhr1ps4f5@fosscord.com","password":"i.v5hpg2qez1u.xhs32cwes1h.n10pexmfff"},{"email":"5c0vb38rul.5su27w4pn8@fosscord.com","password":"12.y87q6jxq41m.qgiji2j0hm.gmy2wuavc"},{"email":"qjk2eoqeqq.ljq4dig10o@fosscord.com","password":"0.lpu8eio3hra12.mq8qcehpe1e.77p7zilh4"},{"email":"b45ltbf5d.o4oouuik1e@fosscord.com","password":"1u.wb7hn2b1x1k.jys5p3ri4j.9ew9jab3ll"},{"email":"1mw205tjri.gpi2h76eps@fosscord.com","password":"1g.kyh53pnamd13.5yufexmyv1h.r56pmhm7i"},{"email":"8y0psdjq2s.ifqyimhnkj@fosscord.com","password":"1d.fi03hlwk41u.b89w0vrd712.ljudzvdo6"},{"email":"ls73glp0q9.3rtqyb262@fosscord.com","password":"1.z70c4ef5hfi.fes9zmue2it.5cobkz3ah"},{"email":"ipe2um46bi.in93oau1l@fosscord.com","password":"5.a5he7keuru1n.l05ivx4n24.piohqdy51w"},{"email":"mt16ta8diq.krypy2t9cv@fosscord.com","password":"n.zk4goctn5p3.r1fhllqy1m1p.ni2q3y68w"},{"email":"qehwflm0ja.x5uvmxgfle@fosscord.com","password":"1e.r2sj0uimq1f.nmtozr8qd1s.xgvz4d62b"},{"email":"0ppn1iwd6.ivrqbvn17i@fosscord.com","password":"1n.fr6x1pbzjl.c8xwipgo6c.m1me2h2g58"},{"email":"xiiq47ofev.u9z0gndxs6@fosscord.com","password":"1t.7tfe0181ij.jbznx5eebs.ytm50kp5qf"},{"email":"kqhk3lt2mo.o4y7u23zbu@fosscord.com","password":"1b.bkoqmxjcf1l.c5q9oneuz1u.00x93z7l4"},{"email":"ri64c5o5zn.o429slph64@fosscord.com","password":"1r.mre2hu1gpu.401xyxa6eu.j98cetaplg"},{"email":"j5jpukoktw.q5bseyjfu@fosscord.com","password":"h.k1ar11fpx1m.n50t8tz4k4.9oj17rtdjw"},{"email":"cg8gyuhu16.jezv2bo8n@fosscord.com","password":"1c.vyfo117pd1b.hxlc7e9zve.j6ej7ho2rk"},{"email":"7ngysyss7w.yjy0whd5fh@fosscord.com","password":"12.pl4jjp66wi1r.xx7s13gsgy.v2slv2vyx"},{"email":"7uhylwdaiq.w557htx0x@fosscord.com","password":"1j.icm6w8m4mh.4qyoql77m8.ar8kliax0s"},{"email":"y6yn1ckm1e.7xxizerecm@fosscord.com","password":"1e.om7n18zisn1w.usblhxf4p1m.r9ke41xox"},{"email":"uwdsktqhuw.4vmh5gmg7d@fosscord.com","password":"6.cdte4bk24b16.cf1sbtxlx1o.n62w4weh9"},{"email":"8v1nt755y.w0y1jgfcgm@fosscord.com","password":"f.ozxpvznxj41o.bs5s5dhua1l.ffayy0gsy"},{"email":"rmy9b61cij.qir0bjorcm@fosscord.com","password":"1h.bxjxpx0u6f13.e97yh8g761c.j8zog74iql"},{"email":"93ir0yiyi9.1f7bfzt3fb@fosscord.com","password":"18.vky28kwlw14.w1wsoyu6c15.yhxbr725xe"},{"email":"g0kqw9plr.v2zcovhyg6@fosscord.com","password":"1r.3txq1jt4zl1d.ha0ejtekjh.xhjl9e6vqg"},{"email":"xmk2q5zxa.v1ka9gm3a8@fosscord.com","password":"1l.ryvykh3ihm16.rxea04ifq0.h14sz83yisv"},{"email":"mqt2bmltj9.53o16bc6xn@fosscord.com","password":"i.vt66ajtme1f.lllyzaprk16.yb0yh0o1z"},{"email":"4kvjyddsv.7u7lmex2df@fosscord.com","password":"1i.axaegtd0qz.2yvfr5n261g.8s8fprsd8"},{"email":"yigntcopcc.8bchnlmclm@fosscord.com","password":"n.b5yn5xried1d.siep9e4fb1t.h6s6erw5t"},{"email":"meubr1b03t.t97015wih6@fosscord.com","password":"5.wu3izi2gyqi.iurx5qpp7l.znq1htzuel"},{"email":"xz3gta0hi.1x5o83xyee@fosscord.com","password":"14.uafjiryde3.oin9k24w3510.vkjmjleb4i"},{"email":"9jkrkk9r6o.6ossrgj919@fosscord.com","password":"v.u9531wtw2o11.151eg145bf.bk57nd0s6u"},{"email":"kf9fdmnacv.67shfcubvn@fosscord.com","password":"1i.7f1olv2hkt.v2cso7zxlfw.8ylhl33g1"},{"email":"k8zuiett0r.0w299k0t9j@fosscord.com","password":"t.1mrpwsil15.999lbrfvz1h.7od0kjlxo"},{"email":"8m9rt3vgg.vkpf6apx9@fosscord.com","password":"1n.2ohz11tk412.5ezp8ujcwn8.rvqqrozh9s"},{"email":"rfavhpnhc.6xwy7o3ulm@fosscord.com","password":"11.ikd54271zj.vq3brjark7.h1ryvz7ap8"},{"email":"6zmju5azrd.4bes4a3cq@fosscord.com","password":"5.litb6taajto.ownyp3uhjkh.f543o47uc9"},{"email":"ml5pst7t3g.kbvn8b1vg@fosscord.com","password":"1q.co2aumj6fw.fa18frro5e.vnpotfg209"},{"email":"kaa1r6srjs.wjriguic5e@fosscord.com","password":"y.y635jqxai9.s4hcd1weni5.51i7z3c26r"},{"email":"n09uhfkuc5.9aqau9qyk@fosscord.com","password":"1f.wtjqoqzdwg6.mfvvtcwtx91t.8ujt3pwx4"},{"email":"6y5y3px9oa.4183pg5aq6@fosscord.com","password":"11.8a00uh75g1i.d462wzpqv1t.dnd8sdvr"},{"email":"aqdzadem03.f8uv1m4zv4@fosscord.com","password":"4.4ndx89thn53.afcjfzjqe51o.ivaemdp5hf"},{"email":"oqv3944yav.31ccatif3r@fosscord.com","password":"1w.9cstqu9o21f.p40uqca3vl19.iqnn79lqde"},{"email":"akzyzmigv.9c6w5aj4o@fosscord.com","password":"m.m382wa8nznr.szvso4c03ke.ttw2jhnwh8"},{"email":"13dqfm57jo.e05e711ggt@fosscord.com","password":"1b.t1b51jt7lf.rhi4j32rw91u.0foqthilf"},{"email":"3derfs5v66.s2kbedbm3o@fosscord.com","password":"t.e153si8xso1m.9rv9il857fd.e3i0di3ope"},{"email":"92k9vmws7.dt9mvv6ijh@fosscord.com","password":"1r.r8oy0su9c1e.irtwz9gdna.3fddwt8k4n"},{"email":"w1huzvblr.q9qp44japt@fosscord.com","password":"1v.dfdr92srfs.3x2wd25frh15.z73xb3vol"},{"email":"vne3an2fif.32eq9woyl@fosscord.com","password":"7.lurd6n689ek.sf3gedrf711.5xclyfsn3"},{"email":"298zj4dvxf.5sfh7f2e2m@fosscord.com","password":"n.1rbv0z54wr1n.nt2041ujks.0gwbe80zyl"},{"email":"ywp1ssr2zh.gl97epixxu@fosscord.com","password":"1w.gfpvze8vq1p.is7b2795819.4hilzah3"},{"email":"kqzujy4m5j.ocydwl4yyh@fosscord.com","password":"1c.sqxzxuareez.fgczf2qh3en.yi5vo23phn"},{"email":"ck8n5p7d6d.2vu4cdm6iw@fosscord.com","password":"1o.g3lq6grnm1t.otf44zgiw1c.jfdgqubfjl"},{"email":"s3vqe9bzj.muec34461t@fosscord.com","password":"1u.i4u3eidof19.tl8hf5fpdv.mvbij0fdgc"},{"email":"7hedrsktw.oqe4hym4us@fosscord.com","password":"1j.orlptqc2h.hs6661zehh1r.ngepsoldvf"},{"email":"44tm2rsu6j.oxrw5ib1np@fosscord.com","password":"1o.n71dxtllrf9.htwjv6fsi81l.5w9pyr8eee"},{"email":"o28saa2e4t.m49530ir45@fosscord.com","password":"16.z31xrcp6li12.uaklzxvskl.nqyq23zqb"},{"email":"aaz3kkwx2q.u42rdyacy6@fosscord.com","password":"1k.aohk44bxqkq.6lec7k6yfa14.geiq4ok3b"},{"email":"ntw1oc87mh.js3q1iqxrh@fosscord.com","password":"15.li45vduoy15.h90fv4ytl1t.3v78qdvcq"},{"email":"cpkgoh313.lkdhhl039a@fosscord.com","password":"3.fdw00uv0dn1v.qz6frlgeh0.3g0c7xnn9le"},{"email":"wznnajnyww.3f5s5cf0lt@fosscord.com","password":"4.3d2ro1uvag2.9yum8m4gd5t.yd1zriwovn"},{"email":"odwdxlk49g.m113aywba@fosscord.com","password":"y.24hnap1ckh.n0q1dtobf717.0tzaopasse"},{"email":"0xt66uuwbs.24qfa4w82q@fosscord.com","password":"e.3cfcd0usw57.oydvjpl5wm1b.sxnf38ihh"},{"email":"4pxgasro0t.xifcrlp26f@fosscord.com","password":"1d.oxpqgh8jbgb.6epjawtwga1u.o5d33jm"},{"email":"l202g9q8xo.t4ck4xu44v@fosscord.com","password":"d.gyul2yhu7h1g.163rzn4kqik.e5qlstdwp"},{"email":"8mwzma33ko.b9on13ypjl@fosscord.com","password":"b.0sdy90whqr1o.rruwt57r8l14.hjejwclmr"},{"email":"h8dm19fu77.hzpnw8famh@fosscord.com","password":"s.q49kg1uq8gc.046rudurb1o.2lqegjfds"},{"email":"exkp3ve6z7.mdydbk9jy@fosscord.com","password":"16.bq8o0d13sd8.tri7wtdjpro.2ebtbyqgtt"},{"email":"n8fe02yphv.huwi91ywha@fosscord.com","password":"1d.8qp5wkq541k.ulwk4bzjsm19.q3qbxorto"},{"email":"lsslgvrdyb.u86qng3p7o@fosscord.com","password":"11.9q1m8gwavd.9z3kflcg5k1e.lrux8aqm8"},{"email":"0jur86ya2p.gb26btuz7@fosscord.com","password":"n.fflp1f1yksg.10rh6etc61.yld8y7u9hi"},{"email":"raseda2c45.vl9resp89r@fosscord.com","password":"b.6gd8az3ljg.es1yjenqskk.i4i8m466p"},{"email":"jmam7ha069.b96jzg1bkl@fosscord.com","password":"1f.2z41vc92bo.84f3d3j3gra.5yev9enzv"},{"email":"pp2rki7hjd.a037bg6u6@fosscord.com","password":"3.nktq53a97c19.khsapwl0wd.ej16kksime"},{"email":"c35l8m3ikr.e7vx8nmbil@fosscord.com","password":"2.oryjofui8mu.7jes36sirs1u.oclq1geaf"},{"email":"ufhsl7tn5u.j4ey0abswv@fosscord.com","password":"14.uctn73o6h1n.t75arwloxgf.nvgdr4l41o"},{"email":"8ru4fr2ed.kf8ffg9ko8@fosscord.com","password":"n.hqxwr2ypwd1l.vu23byfp3c.nzgszptoqk"},{"email":"6gmjeij67o.ep5256bmf@fosscord.com","password":"1i.237gs5pk5j1w.yvuhvp9ho15.l4qibsw5i"},{"email":"4wrhgqel0w.e0sz7l0zki@fosscord.com","password":"w.g09qtor0p1g.a5uzjl6u3g17.v3z6rhb9h"},{"email":"3860ixs8g.6pha1slnur@fosscord.com","password":"m.o7o62cqw3g.wkkaak7zz8.h82m4nenbf"},{"email":"wnnpg8stto.zwsxqfp38i@fosscord.com","password":"c.k2b6jn1b3r14.ojpvlbxil1r.rpkncuyqp"},{"email":"t04ss33dlw.98dpq7j8rg@fosscord.com","password":"5.7zgfmumai7.iphztcsjfw1h.sq2kp3j9j"},{"email":"hy53et7kw6.vsku4tebj9@fosscord.com","password":"3.ayjddj0roe1m.ngz1qajzlgu.xue35w1d1d"},{"email":"252ueajele.j4euv8la1d@fosscord.com","password":"h.tw1utyw7mh9.ydii1rkvp4.8xafwfxrqd"},{"email":"ye2mi1d86.uqa7ig7qxb@fosscord.com","password":"j.pn3eoar1ft1e.k8febwch91o.fzau5lnbx"},{"email":"4cq5y22mm8.q33hk612wu@fosscord.com","password":"1l.7tx03ihc9e1a.3i2l76ur5.28yffumat8"},{"email":"d9op87vvj7.vbu23p4mnq@fosscord.com","password":"10.z7pgyokesip.0i0axexmwpa.0p5xrlag9k"},{"email":"tnhgsqizxh.14ulf4jinl@fosscord.com","password":"j.8p0jucy5xk10.creosnkf2o.vzznt05x"},{"email":"8h2h3w3ex5.8ogl7f027n@fosscord.com","password":"1b.08wkhdm03g3.8hdklh1zj41t.fq57w9raf"},{"email":"ommn4ocwtn.1fkdjbz2v8@fosscord.com","password":"1e.i8k15b9uk1p.70n34lxbzf.4inv63cwt8"},{"email":"fnxg92zeqn.ljg5uumt3e@fosscord.com","password":"w.ltho2dsgveu.d1ome2w0x8j.7wr2hq1wk8"},{"email":"lzi8aurosp.mck9i974of@fosscord.com","password":"u.zezf4qdz2p0.l2g634tak98.ql0n1tg6sq"},{"email":"fdhv4fccm5.o9x209i94g@fosscord.com","password":"5.2o84u6v43619.4c0c71a9gk7.n9cmjegefv"},{"email":"tuedrm1ajt.bxjgzsyj4s@fosscord.com","password":"1m.ng2h807gvu.rhd056e6bbb.lkvewwp2tg"},{"email":"488bryb32a.x928qzsf8g@fosscord.com","password":"y.n2c3x3irffa.fz9xwiimno8.nnpvm280oc"},{"email":"n928oorjaa.kj35rf9p35@fosscord.com","password":"1l.flvmvopcj16.pmx6n9hi7hi.v9odjzq3at"},{"email":"emzd8qz0f8.b972dvhf0m@fosscord.com","password":"3.7umgbd5apm18.0n6yi8ol9g.m4607npuc"},{"email":"g7jzdulwv5.0a2wzws2ua@fosscord.com","password":"10.1u1sac19wkf.lvi2qwfhtq16.8wbdddpms"},{"email":"giuivahumo.7iqapfnbfr@fosscord.com","password":"q.pzck5qtbype.llhl9ypv6b1e.3dz8gsv0pg"},{"email":"0t84mm2pj9.kycgvqkuag@fosscord.com","password":"1t.kpvjmvipo14.kwv0np3ordv.ustw31ifu"},{"email":"vx5t6yurg7.pocn2c069m@fosscord.com","password":"f.gdwgrk0wia1u.7m1ozam0b0.d5y62kwyih5"},{"email":"p7arvq1hha.7wryrvhvl@fosscord.com","password":"1v.eb62r3rx71h.d3fhbfdxa1l.4gzcu184s"},{"email":"adp64dkhdd.q2nc2qvy3@fosscord.com","password":"q.96rt5rc517h.3f0foodom4.h1wee4z428"},{"email":"pfhrq2kv8.92dq9bxy8a@fosscord.com","password":"1g.nfaha2xx7hi.vtng22emxs1l.fpbra2wo6h"},{"email":"jjnysdssoc.eqr6v2pqeo@fosscord.com","password":"1.112arb9m3cb.w3yfq6ekz1d.keb15ptd5"},{"email":"m5rab6dhrc.p1tnxv9feg@fosscord.com","password":"1.3guc8m7j0uj4.xphgg3121714.7ii7ah6g7f"},{"email":"zgq1iount.blsiqtyvc6@fosscord.com","password":"16.dzt6188au1w.ilwc3p3ds17.7j7lcsqur"},{"email":"ix7nx1ce4a.3wj4gs8b7p@fosscord.com","password":"13.p2v1p2nwa1t.2yarcqsmzk.ay7w9u0p1r"},{"email":"5jh7wm63ug.feyytgy11g@fosscord.com","password":"10.otpp2mz0smb.uv94hcp26c8.a3nlz16n14"},{"email":"9cd7yy1ps4.jet2fn1fdb@fosscord.com","password":"9.bjtfocm7zk12.sushyeb1yg.lhtmj6a70t"},{"email":"20u20f6dlk.l8n5tvh2re@fosscord.com","password":"19.qfrr25rarj.4tzf063a9n4.3i5s3vm30b"},{"email":"b1hnmmwcb.q21mrflg1h@fosscord.com","password":"3.ysh10ultyjz.nz8azt84216.lxn1kgvly"},{"email":"j7nhj8s2d.aqaeidbi8m@fosscord.com","password":"g.nlnw7ejuqbz.41exhwj2wiv.1yr0njmd"}] \ No newline at end of file diff --git a/scripts/stresstest/config.json.example b/scripts/stresstest/config.json.example new file mode 100644 index 00000000..73f52f05 --- /dev/null +++ b/scripts/stresstest/config.json.example @@ -0,0 +1,5 @@ +{ + "url": "", + "text-channel": "", + "invite": "" +} diff --git a/scripts/stresstest/index.js b/scripts/stresstest/index.js new file mode 100644 index 00000000..740a9011 --- /dev/null +++ b/scripts/stresstest/index.js @@ -0,0 +1,38 @@ +const register = require("./src/register"); +const login = require("./src/login/index"); +const config = require("./config.json"); +const figlet = require("figlet"); +const sendMessage = require("./src/message/send"); +const fs = require("fs"); +figlet("Fosscord Stress Test :)", function (err, data) { + if (err) { + console.log("Something went wrong..."); + console.dir(err); + return; + } + console.log("\x1b[32m", data); +}); +setInterval(() => { + generate(); +}, 1000 * 5); +setInterval(() => { + getUsers(); +}, 60 * 1000); +async function generate() { + let accounts = await JSON.parse(fs.readFileSync("accounts.json")); + console.log(accounts); + let account = await register(); + accounts.push(account); + fs.writeFileSync("accounts.json", JSON.stringify(accounts)); + console.log(accounts.length); + let y = await login(account); + sendMessage(y); +} +async function getUsers() { + let accounts = await JSON.parse(fs.readFileSync("accounts.json")); + accounts.forEach(async (x) => { + let y = await login(x); + console.log(y); + sendMessage(y); + }); +} diff --git a/scripts/stresstest/package-lock.json b/scripts/stresstest/package-lock.json new file mode 100644 index 00000000..81c9b817 --- /dev/null +++ b/scripts/stresstest/package-lock.json @@ -0,0 +1,856 @@ +{ + "name": "stresstest", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "stresstest", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "figlet": "^1.5.2", + "node-fetch": "^2.6.6", + "request": "^2.88.2" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/figlet": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz", + "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "node_modules/jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "dependencies": { + "mime-db": "1.51.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "figlet": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz", + "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "jsprim": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "mime-db": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz", + "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g==" + }, + "mime-types": { + "version": "2.1.34", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz", + "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==", + "requires": { + "mime-db": "1.51.0" + } + }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + } + } +} diff --git a/scripts/stresstest/package.json b/scripts/stresstest/package.json new file mode 100644 index 00000000..8d94d05b --- /dev/null +++ b/scripts/stresstest/package.json @@ -0,0 +1,17 @@ +{ + "name": "stresstest", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node ." + }, + "author": "", + "license": "ISC", + "dependencies": { + "figlet": "^1.5.2", + "node-fetch": "^2.6.6", + "request": "^2.88.2" + } +} diff --git a/scripts/stresstest/src/login/index.js b/scripts/stresstest/src/login/index.js new file mode 100644 index 00000000..b153550e --- /dev/null +++ b/scripts/stresstest/src/login/index.js @@ -0,0 +1,20 @@ +const fetch = require("node-fetch"); +const fs = require("fs"); +let config = require("../../config.json"); +module.exports = login; +async function login(account) { + let body = { + fingerprint: "805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", + login: account.email, + password: account.password + }; + let x = await fetch(config.url + "/auth/login", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(body) + }); + console.log(x); + x = await x.json(); + console.log(x); + return x; +} diff --git a/scripts/stresstest/src/message/send.js b/scripts/stresstest/src/message/send.js new file mode 100644 index 00000000..d1b86914 --- /dev/null +++ b/scripts/stresstest/src/message/send.js @@ -0,0 +1,23 @@ +const fetch = require("node-fetch"); +const fs = require("fs"); +let config = require("./../../config.json"); +module.exports = sendMessage; +async function sendMessage(account) { + let body = { + fingerprint: "805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", + content: "Test", + tts: false + }; + let x = await fetch(config.url + "/channels/" + config["text-channel"] + "/messages", { + method: "POST", + headers: { + "Content-Type": "application/json", + Authorization: account.token + }, + body: JSON.stringify(body) + }); + console.log(x); + x = await x.json(); + console.log(x); + return x; +} diff --git a/scripts/stresstest/src/register/index.js b/scripts/stresstest/src/register/index.js new file mode 100644 index 00000000..578b9022 --- /dev/null +++ b/scripts/stresstest/src/register/index.js @@ -0,0 +1,34 @@ +const fetch = require("node-fetch"); +const fs = require("fs"); +let config = require("./../../config.json"); +module.exports = generate; +async function generate() { + let mail = (Math.random() + 10).toString(36).substring(2); + mail = mail + "." + (Math.random() + 10).toString(36).substring(2) + "@stresstest.com"; + let password = + (Math.random() * 69).toString(36).substring(-7) + + (Math.random() * 69).toString(36).substring(-7) + + (Math.random() * 69).toString(36).substring(-8); + console.log(mail); + console.log(password); + let body = { + fingerprint: "805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", + email: mail, + username: "Fosscord Stress Test", + password: password, + invite: config.invite, + consent: true, + date_of_birth: "2000-04-04", + gift_code_sku_id: null, + captcha_key: null + }; + let x = await fetch(config.url + "/auth/register", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(body) + }); + console.log(x); + x = await x.json(); + console.log(x); + return { email: mail, password: password }; +} diff --git a/scripts/update_schemas.js b/scripts/update_schemas.js new file mode 100644 index 00000000..a018120b --- /dev/null +++ b/scripts/update_schemas.js @@ -0,0 +1,9 @@ +const path = require("path"); +const fs = require("fs"); +const { env } = require("process"); +const { execSync } = require("child_process"); +const { argv, stdout, exit } = require("process"); + +const { execIn, getLines, parts } = require("./utils"); + +execIn("node scripts/generate_schema.js", path.join("..", "api")); \ No newline at end of file diff --git a/scripts/utils.js b/scripts/utils.js new file mode 100644 index 00000000..f4b1ad7f --- /dev/null +++ b/scripts/utils.js @@ -0,0 +1,54 @@ +const path = require("path"); +const fs = require("fs"); +const { env } = require("process"); +const { execSync } = require("child_process"); +const { argv, stdout, exit } = require("process"); + +const parts = ["api", "util", "cdn", "gateway", "bundle"]; + +function copyRecursiveSync(src, dest) { + //if (verbose) console.log(`cpsync: ${src} -> ${dest}`); + let exists = fs.existsSync(src); + if (!exists) { + console.log(src + " doesn't exist, not copying!"); + return; + } + let stats = exists && fs.statSync(src); + let isDirectory = exists && stats.isDirectory(); + if (isDirectory) { + fs.mkdirSync(dest, { recursive: true }); + fs.readdirSync(src).forEach(function (childItemName) { + copyRecursiveSync( + path.join(src, childItemName), + path.join(dest, childItemName) + ); + }); + } else { + fs.copyFileSync(src, dest); + } +} + +function execIn(cmd, workdir, opts) { + try { + return execSync(cmd, { + cwd: workdir, + shell: true, + env: process.env, + encoding: "utf-8", + ...opts + }); + } catch (error) { + return error.stdout; + } +} + +function getLines(output) { + return output.split("\n").length; +} + +module.exports = { + //consts + parts, + //functions + copyRecursiveSync, execIn, getLines +}; diff --git a/src/Server.ts b/src/Server.ts new file mode 100644 index 00000000..4d5d6422 --- /dev/null +++ b/src/Server.ts @@ -0,0 +1,101 @@ +process.on("unhandledRejection", console.error); +process.on("uncaughtException", console.error); + +import http from "http"; +import * as Api from "@fosscord/api"; +import * as Gateway from "@fosscord/gateway"; +import { CDNServer } from "@fosscord/cdn"; +import express from "express"; +import { green, bold, yellow } from "picocolors"; +import { Config, getOrInitialiseDatabase } from "@fosscord/util"; +import * as Sentry from "@sentry/node"; +import * as Tracing from "@sentry/tracing"; +// import { PluginLoader } from "@fosscord/util"; + +const app = express(); +const server = http.createServer(); +const port = Number(process.env.PORT) || 3001; +const production = process.env.NODE_ENV == "development" ? false : true; +server.on("request", app); + +// @ts-ignore +const api = new Api.FosscordServer({ server, port, production, app }); +// @ts-ignore +const cdn = new CDNServer({ server, port, production, app }); +// @ts-ignore +const gateway = new Gateway.Server({ server, port, production }); + +//this is what has been added for the /stop API route +process.on('SIGTERM', () => { + setTimeout(()=>process.exit(0), 3000) + server.close(() => { + console.log("Stop API has been successfully POSTed, SIGTERM sent") + }) +}) +//this is what has been added for the /stop API route + +async function main() { + server.listen(port); + await getOrInitialiseDatabase(); + await Config.init(); + // only set endpointPublic, if not already set + await Config.set({ + cdn: { + endpointClient: "${location.host}", + endpointPrivate: `http://localhost:${port}`, + }, + gateway: { + endpointClient: + '${location.protocol === "https:" ? "wss://" : "ws://"}${location.host}', + endpointPrivate: `ws://localhost:${port}`, + ...(!Config.get().gateway.endpointPublic && { + endpointPublic: `ws://localhost:${port}`, + }), + }, + // regions: { + // default: "fosscord", + // useDefaultAsOptimal: true, + // available: [ + // { + // id: "fosscord", + // name: "Fosscord", + // endpoint: "127.0.0.1:3001", + // vip: false, + // custom: false, + // deprecated: false, + // }, + // ], + // }, + } as any); + + //Sentry + if (Config.get().sentry.enabled) { + console.log( + `[Bundle] ${yellow("You are using Sentry! This may slightly impact performance on large loads!")}` + ); + Sentry.init({ + dsn: Config.get().sentry.endpoint, + integrations: [ + new Sentry.Integrations.Http({ tracing: true }), + new Tracing.Integrations.Express({ app }), + ], + tracesSampleRate: Config.get().sentry.traceSampleRate, + environment: Config.get().sentry.environment + }); + + app.use(Sentry.Handlers.requestHandler()); + app.use(Sentry.Handlers.tracingHandler()); + } + await Promise.all([api.start(), cdn.start(), gateway.start()]); + if (Config.get().sentry.enabled) { + app.use(Sentry.Handlers.errorHandler()); + app.use(function onError(err: any, req: any, res: any, next: any) { + res.statusCode = 500; + res.end(res.sentry + "\n"); + }); + } + console.log(`[Server] ${green(`listening on port ${bold(port)}`)}`); + // PluginLoader.loadPlugins(); +} + +main().catch(console.error); diff --git a/src/api/Server.ts b/src/api/Server.ts new file mode 100644 index 00000000..136f9814 --- /dev/null +++ b/src/api/Server.ts @@ -0,0 +1,92 @@ +import { Server, ServerOptions } from "lambert-server"; +import { Authentication, CORS } from "./middlewares/"; +import { Config, getOrInitialiseDatabase, initEvent, registerRoutes } from "@fosscord/util"; +import { ErrorHandler } from "./middlewares/ErrorHandler"; +import { BodyParser } from "./middlewares/BodyParser"; +import { Router, Request, Response, NextFunction } from "express"; +import path from "path"; +import { initRateLimits } from "./middlewares/RateLimit"; +import TestClient from "./middlewares/TestClient"; +import { initTranslation } from "./middlewares/Translation"; +import morgan from "morgan"; +import { initInstance } from "./util/handlers/Instance"; +import { red } from "picocolors" + +export interface FosscordServerOptions extends ServerOptions {} + +declare global { + namespace Express { + interface Request { + // @ts-ignore + server: FosscordServer; + } + } +} + +export class FosscordServer extends Server { + public declare options: FosscordServerOptions; + + constructor(opts?: Partial) { + // @ts-ignore + super({ ...opts, errorHandler: false, jsonBody: false }); + } + + async start() { + await getOrInitialiseDatabase(); + await Config.init(); + await initEvent(); + await initInstance(); + + let logRequests = process.env["LOG_REQUESTS"] != undefined; + if (logRequests) { + this.app.use( + morgan("combined", { + skip: (req, res) => { + let skip = !(process.env["LOG_REQUESTS"]?.includes(res.statusCode.toString()) ?? false); + if (process.env["LOG_REQUESTS"]?.charAt(0) == "-") skip = !skip; + return skip; + } + }) + ); + } + + this.app.use(CORS); + this.app.use(BodyParser({ inflate: true, limit: "10mb" })); + + const app = this.app; + const api = Router(); // @ts-ignore + this.app = api; + + api.use(Authentication); + await initRateLimits(api); + await initTranslation(api); + + this.routes = await registerRoutes(this, path.join(__dirname, "routes", "/")); + + api.use("*", (error: any, req: Request, res: Response, next: NextFunction) => { + if (error) return next(error); + res.status(404).json({ + message: "404 endpoint not found", + code: 0 + }); + next(); + }); + + this.app = app; + + //app.use("/__development", ) + //app.use("/__internals", ) + app.use("/api/v6", api); + app.use("/api/v7", api); + app.use("/api/v8", api); + app.use("/api/v9", api); + app.use("/api", api); // allow unversioned requests + + this.app.use(ErrorHandler); + TestClient(this.app); + + if (logRequests) console.log(red(`Warning: Request logging is enabled! This will spam your console!\nTo disable this, unset the 'LOG_REQUESTS' environment variable!`)); + + return super.start(); + } +} \ No newline at end of file diff --git a/src/api/global.d.ts b/src/api/global.d.ts new file mode 100644 index 00000000..7751af8f --- /dev/null +++ b/src/api/global.d.ts @@ -0,0 +1,8 @@ +declare global { + namespace Express { + interface Request { + user_id: any; + token: any; + } + } +} diff --git a/src/api/index.ts b/src/api/index.ts new file mode 100644 index 00000000..adc7649c --- /dev/null +++ b/src/api/index.ts @@ -0,0 +1,3 @@ +export * from "./Server"; +export * from "./middlewares/"; +export * from "./util/"; diff --git a/src/api/middlewares/Authentication.ts b/src/api/middlewares/Authentication.ts new file mode 100644 index 00000000..2d9ccf57 --- /dev/null +++ b/src/api/middlewares/Authentication.ts @@ -0,0 +1,72 @@ +import { NextFunction, Request, Response } from "express"; +import { HTTPError } from "@fosscord/util"; +import { checkToken, Config, Rights } from "@fosscord/util"; + +export const NO_AUTHORIZATION_ROUTES = [ + // Authentication routes + "/auth/login", + "/auth/register", + "/auth/location-metadata", + "/auth/mfa/totp", + // Routes with a seperate auth system + "/webhooks/", + // Public information endpoints + "/ping", + "/gateway", + "/experiments", + "/updates", + "/downloads/", + "/scheduled-maintenances/upcoming.json", + // Public kubernetes integration + "/-/readyz", + "/-/healthz", + // Client analytics + "/science", + "/track", + // Public policy pages + "/policies/instance", + // Asset delivery + /\/guilds\/\d+\/widget\.(json|png)/ +]; + +export const API_PREFIX = /^\/api(\/v\d+)?/; +export const API_PREFIX_TRAILING_SLASH = /^\/api(\/v\d+)?\//; + +declare global { + namespace Express { + interface Request { + user_id: string; + user_bot: boolean; + token: string; + rights: Rights; + } + } +} + +export async function Authentication(req: Request, res: Response, next: NextFunction) { + if (req.method === "OPTIONS") return res.sendStatus(204); + const url = req.url.replace(API_PREFIX, ""); + if (url.startsWith("/invites") && req.method === "GET") return next(); + if ( + NO_AUTHORIZATION_ROUTES.some((x) => { + if (typeof x === "string") return url.startsWith(x); + return x.test(url); + }) + ) + return next(); + if (!req.headers.authorization) return next(new HTTPError("Missing Authorization Header", 401)); + + try { + const { jwtSecret } = Config.get().security; + + const { decoded, user }: any = await checkToken(req.headers.authorization, jwtSecret); + + req.token = decoded; + req.user_id = decoded.id; + req.user_bot = user.bot; + req.rights = new Rights(Number(user.rights)); + return next(); + } catch (error: any) { + return next(new HTTPError(error?.toString(), 400)); + } +} diff --git a/src/api/middlewares/BodyParser.ts b/src/api/middlewares/BodyParser.ts new file mode 100644 index 00000000..35db3c6f --- /dev/null +++ b/src/api/middlewares/BodyParser.ts @@ -0,0 +1,19 @@ +import bodyParser, { OptionsJson } from "body-parser"; +import { NextFunction, Request, Response } from "express"; +import { HTTPError } from "@fosscord/util"; + +export function BodyParser(opts?: OptionsJson) { + const jsonParser = bodyParser.json(opts); + + return (req: Request, res: Response, next: NextFunction) => { + if (!req.headers["content-type"]) req.headers["content-type"] = "application/json"; + + jsonParser(req, res, (err) => { + if (err) { + // TODO: different errors for body parser (request size limit, wrong body type, invalid body, ...) + return next(new HTTPError("Invalid Body", 400)); + } + next(); + }); + }; +} diff --git a/src/api/middlewares/CORS.ts b/src/api/middlewares/CORS.ts new file mode 100644 index 00000000..20260cf9 --- /dev/null +++ b/src/api/middlewares/CORS.ts @@ -0,0 +1,16 @@ +import { NextFunction, Request, Response } from "express"; + +// TODO: config settings + +export function CORS(req: Request, res: Response, next: NextFunction) { + res.set("Access-Control-Allow-Origin", "*"); + // TODO: use better CSP + res.set( + "Content-security-policy", + "default-src * data: blob: filesystem: about: ws: wss: 'unsafe-inline' 'unsafe-eval'; script-src * data: blob: 'unsafe-inline' 'unsafe-eval'; connect-src * data: blob: 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src * data: blob: ; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';" + ); + res.set("Access-Control-Allow-Headers", req.header("Access-Control-Request-Headers") || "*"); + res.set("Access-Control-Allow-Methods", req.header("Access-Control-Request-Methods") || "*"); + + next(); +} diff --git a/src/api/middlewares/ErrorHandler.ts b/src/api/middlewares/ErrorHandler.ts new file mode 100644 index 00000000..8a046e06 --- /dev/null +++ b/src/api/middlewares/ErrorHandler.ts @@ -0,0 +1,44 @@ +import { NextFunction, Request, Response } from "express"; +import { HTTPError } from "@fosscord/util"; +import { ApiError, FieldError } from "@fosscord/util"; +const EntityNotFoundErrorRegex = /"(\w+)"/; + +export function ErrorHandler(error: Error, req: Request, res: Response, next: NextFunction) { + if (!error) return next(); + + try { + let code = 400; + let httpcode = code; + let message = error?.toString(); + let errors = undefined; + + if (error instanceof HTTPError && error.code) code = httpcode = error.code; + else if (error instanceof ApiError) { + code = error.code; + message = error.message; + httpcode = error.httpStatus; + } else if (error.name === "EntityNotFoundError") { + message = `${error.message.match(EntityNotFoundErrorRegex)?.[1] || "Item"} could not be found`; + code = httpcode = 404; + } else if (error instanceof FieldError) { + code = Number(error.code); + message = error.message; + errors = error.errors; + } else { + console.error(`[Error] ${code} ${req.url}\n`, errors || error, "\nbody:", req.body); + + if (req.server?.options?.production) { + // don't expose internal errors to the user, instead human errors should be thrown as HTTPError + message = "Internal Server Error"; + } + code = httpcode = 500; + } + + if (httpcode > 511) httpcode = 400; + + res.status(httpcode).json({ code: code, message, errors }); + } catch (error) { + console.error(`[Internal Server Error] 500`, error); + return res.status(500).json({ code: 500, message: "Internal Server Error" }); + } +} diff --git a/src/api/middlewares/RateLimit.ts b/src/api/middlewares/RateLimit.ts new file mode 100644 index 00000000..47180b62 --- /dev/null +++ b/src/api/middlewares/RateLimit.ts @@ -0,0 +1,215 @@ +import { Config, getRights, listenEvent, Rights } from "@fosscord/util"; +import { NextFunction, Request, Response, Router } from "express"; +import { getIpAdress } from "@fosscord/api"; +import { API_PREFIX_TRAILING_SLASH } from "./Authentication"; + +// Docs: https://discord.com/developers/docs/topics/rate-limits + +// TODO: use better caching (e.g. redis) as else it creates to much pressure on the database + +/* +? bucket limit? Max actions/sec per bucket? +(ANSWER: a small fosscord instance might not need a complex rate limiting system) + +TODO: delay database requests to include multiple queries +TODO: different for methods (GET/POST) + +> IP addresses that make too many invalid HTTP requests are automatically and temporarily restricted from accessing the Discord API. Currently, this limit is 10,000 per 10 minutes. An invalid request is one that results in 401, 403, or 429 statuses. + +> All bots can make up to 50 requests per second to our API. This is independent of any individual rate limit on a route. If your bot gets big enough, based on its functionality, it may be impossible to stay below 50 requests per second during normal operations. + +*/ + +type RateLimit = { + id: "global" | "error" | string; + executor_id: string; + hits: number; + blocked: boolean; + expires_at: Date; +}; + +let Cache = new Map(); +const EventRateLimit = "RATELIMIT"; + +export default function rateLimit(opts: { + bucket?: string; + window: number; + count: number; + bot?: number; + webhook?: number; + oauth?: number; + GET?: number; + MODIFY?: number; + error?: boolean; + success?: boolean; + onlyIp?: boolean; +}): any { + return async (req: Request, res: Response, next: NextFunction): Promise => { + // exempt user? if so, immediately short circuit + if (req.user_id) { + const rights = await getRights(req.user_id); + if (rights.has("BYPASS_RATE_LIMITS")) return; + } + + const bucket_id = opts.bucket || req.originalUrl.replace(API_PREFIX_TRAILING_SLASH, ""); + let executor_id = getIpAdress(req); + if (!opts.onlyIp && req.user_id) executor_id = req.user_id; + + let max_hits = opts.count; + if (opts.bot && req.user_bot) max_hits = opts.bot; + if (opts.GET && ["GET", "OPTIONS", "HEAD"].includes(req.method)) max_hits = opts.GET; + else if (opts.MODIFY && ["POST", "DELETE", "PATCH", "PUT"].includes(req.method)) max_hits = opts.MODIFY; + + let offender = Cache.get(executor_id + bucket_id); + + if (offender) { + let reset = offender.expires_at.getTime(); + let resetAfterMs = reset - Date.now(); + let resetAfterSec = Math.ceil(resetAfterMs / 1000); + + if (resetAfterMs <= 0) { + offender.hits = 0; + offender.expires_at = new Date(Date.now() + opts.window * 1000); + offender.blocked = false; + + Cache.delete(executor_id + bucket_id); + } + + if (offender.blocked) { + const global = bucket_id === "global"; + // each block violation pushes the expiry one full window further + reset += opts.window * 1000; + offender.expires_at = new Date(offender.expires_at.getTime() + opts.window * 1000); + resetAfterMs = reset - Date.now(); + resetAfterSec = Math.ceil(resetAfterMs / 1000); + + console.log("blocked bucket: " + bucket_id, { resetAfterMs }); + return ( + res + .status(429) + .set("X-RateLimit-Limit", `${max_hits}`) + .set("X-RateLimit-Remaining", "0") + .set("X-RateLimit-Reset", `${reset}`) + .set("X-RateLimit-Reset-After", `${resetAfterSec}`) + .set("X-RateLimit-Global", `${global}`) + .set("Retry-After", `${Math.ceil(resetAfterSec)}`) + .set("X-RateLimit-Bucket", `${bucket_id}`) + // TODO: error rate limit message translation + .send({ message: "You are being rate limited.", retry_after: resetAfterSec, global }) + ); + } + } + + next(); + const hitRouteOpts = { bucket_id, executor_id, max_hits, window: opts.window }; + + if (opts.error || opts.success) { + res.once("finish", () => { + // check if error and increment error rate limit + if (res.statusCode >= 400 && opts.error) { + return hitRoute(hitRouteOpts); + } else if (res.statusCode >= 200 && res.statusCode < 300 && opts.success) { + return hitRoute(hitRouteOpts); + } + }); + } else { + return hitRoute(hitRouteOpts); + } + }; +} + +export async function initRateLimits(app: Router) { + const { routes, global, ip, error, disabled } = Config.get().limits.rate; + if (disabled) return; + await listenEvent(EventRateLimit, (event) => { + Cache.set(event.channel_id as string, event.data); + event.acknowledge?.(); + }); + // await RateLimit.delete({ expires_at: LessThan(new Date().toISOString()) }); // cleans up if not already deleted, morethan -> older date + // const limits = await RateLimit.find({ blocked: true }); + // limits.forEach((limit) => { + // Cache.set(limit.executor_id, limit); + // }); + + setInterval(() => { + Cache.forEach((x, key) => { + if (new Date() > x.expires_at) { + Cache.delete(key); + // RateLimit.delete({ executor_id: key }); + } + }); + }, 1000 * 60); + + app.use( + rateLimit({ + bucket: "global", + onlyIp: true, + ...ip + }) + ); + app.use(rateLimit({ bucket: "global", ...global })); + app.use( + rateLimit({ + bucket: "error", + error: true, + onlyIp: true, + ...error + }) + ); + app.use("/guilds/:id", rateLimit(routes.guild)); + app.use("/webhooks/:id", rateLimit(routes.webhook)); + app.use("/channels/:id", rateLimit(routes.channel)); + app.use("/auth/login", rateLimit(routes.auth.login)); + app.use("/auth/register", rateLimit({ onlyIp: true, success: true, ...routes.auth.register })); +} + +async function hitRoute(opts: { executor_id: string; bucket_id: string; max_hits: number; window: number; }) { + const id = opts.executor_id + opts.bucket_id; + let limit = Cache.get(id); + if (!limit) { + limit = { + id: opts.bucket_id, + executor_id: opts.executor_id, + expires_at: new Date(Date.now() + opts.window * 1000), + hits: 0, + blocked: false + }; + Cache.set(id, limit); + } + + limit.hits++; + if (limit.hits >= opts.max_hits) { + limit.blocked = true; + } + + /* + let ratelimit = await RateLimit.findOne({ where: { id: opts.bucket_id, executor_id: opts.executor_id } }); + if (!ratelimit) { + ratelimit = new RateLimit({ + id: opts.bucket_id, + executor_id: opts.executor_id, + expires_at: new Date(Date.now() + opts.window * 1000), + hits: 0, + blocked: false + }); + } + + ratelimit.hits++; + + const updateBlock = !ratelimit.blocked && ratelimit.hits >= opts.max_hits; + + if (updateBlock) { + ratelimit.blocked = true; + Cache.set(opts.executor_id + opts.bucket_id, ratelimit); + await emitEvent({ + channel_id: EventRateLimit, + event: EventRateLimit, + data: ratelimit + }); + } else { + Cache.delete(opts.executor_id); + } + + await ratelimit.save(); + */ +} diff --git a/src/api/middlewares/TestClient.ts b/src/api/middlewares/TestClient.ts new file mode 100644 index 00000000..a47ff396 --- /dev/null +++ b/src/api/middlewares/TestClient.ts @@ -0,0 +1,154 @@ +import express, { Request, Response, Application } from "express"; +import fs from "fs"; +import path from "path"; +import fetch, { Response as FetchResponse, Headers } from "node-fetch"; +import ProxyAgent from 'proxy-agent'; +import { Config } from "@fosscord/util"; +import { AssetCacheItem } from "../util/entities/AssetCacheItem" +import { green } from "picocolors"; + +const AssetsPath = path.join(__dirname, "..", "..", "..", "assets") + +export default function TestClient(app: Application) { + const agent = new ProxyAgent(); + + //build client page + let html = fs.readFileSync(path.join(AssetsPath, "index.html"), { encoding: "utf8" }); + html = applyEnv(html); + html = applyInlinePlugins(html); + html = applyPlugins(html); + html = applyPreloadPlugins(html); + + //load asset cache + let newAssetCache: Map = new Map(); + let assetCacheDir = path.join(AssetsPath, "cache"); + if(process.env.ASSET_CACHE_DIR) + assetCacheDir = process.env.ASSET_CACHE_DIR + + console.log(`[TestClient] ${green(`Using asset cache path: ${assetCacheDir}`)}`) + if(!fs.existsSync(assetCacheDir)) { + fs.mkdirSync(assetCacheDir); + } + if(fs.existsSync(path.join(assetCacheDir, "index.json"))) { + let rawdata = fs.readFileSync(path.join(assetCacheDir, "index.json")); + newAssetCache = new Map(Object.entries(JSON.parse(rawdata.toString()))); + } + + app.use("/assets", express.static(path.join(AssetsPath))); + app.get("/assets/:file", async (req: Request, res: Response) => { + delete req.headers.host; + let response: FetchResponse; + let buffer: Buffer; + let assetCacheItem: AssetCacheItem = new AssetCacheItem(req.params.file); + if(newAssetCache.has(req.params.file)){ + assetCacheItem = newAssetCache.get(req.params.file)!; + assetCacheItem.Headers.forEach((value: any, name: any) => { + res.set(name, value); + }); + } + else { + console.log(`[TestClient] Downloading file not yet cached! Asset file: ${req.params.file}`); + response = await fetch(`https://discord.com/assets/${req.params.file}`, { + agent, + // @ts-ignore + headers: { + ...req.headers + } + }); + + //set cache info + assetCacheItem.Headers = Object.fromEntries(stripHeaders(response.headers)); + assetCacheItem.FilePath = path.join(assetCacheDir, req.params.file); + assetCacheItem.Key = req.params.file; + //add to cache and save + newAssetCache.set(req.params.file, assetCacheItem); + fs.writeFileSync(path.join(assetCacheDir, "index.json"), JSON.stringify(Object.fromEntries(newAssetCache), null, 4)); + //download file + fs.writeFileSync(assetCacheItem.FilePath, await response.buffer()); + } + + assetCacheItem.Headers.forEach((value: string, name: string) => { + res.set(name, value); + }); + return res.send(fs.readFileSync(assetCacheItem.FilePath)); + }); + app.get("/developers*", (_req: Request, res: Response) => { + const { useTestClient } = Config.get().client; + res.set("Cache-Control", "public, max-age=" + 60 * 60 * 24); + res.set("content-type", "text/html"); + + if(!useTestClient) return res.send("Test client is disabled on this instance. Use a stand-alone client to connect this instance.") + + res.send(fs.readFileSync(path.join(__dirname, "..", "..", "client_test", "developers.html"), { encoding: "utf8" })); + }); + app.get("*", (req: Request, res: Response) => { + const { useTestClient } = Config.get().client; + res.set("Cache-Control", "public, max-age=" + 60 * 60 * 24); + res.set("content-type", "text/html"); + + if(req.url.startsWith("/api") || req.url.startsWith("/__development")) return; + + if(!useTestClient) return res.send("Test client is disabled on this instance. Use a stand-alone client to connect this instance.") + if (req.url.startsWith("/invite")) return res.send(html.replace("9b2b7f0632acd0c5e781", "9f24f709a3de09b67c49")); + + res.send(html); + }); + + +} + +function applyEnv(html: string): string { + const CDN_ENDPOINT = (Config.get().cdn.endpointClient || Config.get()?.cdn.endpointPublic || process.env.CDN || "").replace( + /(https?)?(:\/\/?)/g, + "" + ); + const GATEWAY_ENDPOINT = Config.get().gateway.endpointClient || Config.get()?.gateway.endpointPublic || process.env.GATEWAY || ""; + + if (CDN_ENDPOINT) { + html = html.replace(/CDN_HOST: .+/, `CDN_HOST: \`${CDN_ENDPOINT}\`,`); + } + if (GATEWAY_ENDPOINT) { + html = html.replace(/GATEWAY_ENDPOINT: .+/, `GATEWAY_ENDPOINT: \`${GATEWAY_ENDPOINT}\`,`); + } + return html; +} + +function applyPlugins(html: string): string { + // plugins + let files = fs.readdirSync(path.join(AssetsPath, "plugins")); + let plugins = ""; + files.forEach(x =>{if(x.endsWith(".js")) plugins += `\n`; }); + return html.replaceAll("", plugins); +} + +function applyInlinePlugins(html: string): string{ + // inline plugins + let files = fs.readdirSync(path.join(AssetsPath, "inline-plugins")); + let plugins = ""; + files.forEach(x =>{if(x.endsWith(".js")) plugins += `\n\n`; }); + return html.replaceAll("", plugins); +} + +function applyPreloadPlugins(html: string): string{ + //preload plugins + let files = fs.readdirSync(path.join(AssetsPath, "preload-plugins")); + let plugins = ""; + files.forEach(x =>{if(x.endsWith(".js")) plugins += `\n`; }); + return html.replaceAll("", plugins); +} + +function stripHeaders(headers: Headers): Headers { + [ + "content-length", + "content-security-policy", + "strict-transport-security", + "set-cookie", + "transfer-encoding", + "expect-ct", + "access-control-allow-origin", + "content-encoding" + ].forEach(headerName => { + headers.delete(headerName); + }); + return headers; +} diff --git a/src/api/middlewares/Translation.ts b/src/api/middlewares/Translation.ts new file mode 100644 index 00000000..64b03bf8 --- /dev/null +++ b/src/api/middlewares/Translation.ts @@ -0,0 +1,28 @@ +import fs from "fs"; +import path from "path"; +import i18next from "i18next"; +import i18nextMiddleware from "i18next-http-middleware"; +import i18nextBackend from "i18next-node-fs-backend"; +import { Router } from "express"; + +export async function initTranslation(router: Router) { + const languages = fs.readdirSync(path.join(__dirname, "..", "..", "..", "assets", "locales")); + const namespaces = fs.readdirSync(path.join(__dirname, "..", "..", "..", "assets", "locales", "en")); + const ns = namespaces.filter((x) => x.endsWith(".json")).map((x) => x.slice(0, x.length - 5)); + + await i18next + .use(i18nextBackend) + .use(i18nextMiddleware.LanguageDetector) + .init({ + preload: languages, + // debug: true, + fallbackLng: "en", + ns, + backend: { + loadPath: __dirname + "/../../../assets/locales/{{lng}}/{{ns}}.json" + }, + load: "all" + }); + + router.use(i18nextMiddleware.handle(i18next, {})); +} diff --git a/src/api/middlewares/index.ts b/src/api/middlewares/index.ts new file mode 100644 index 00000000..f0c50dbe --- /dev/null +++ b/src/api/middlewares/index.ts @@ -0,0 +1,5 @@ +export * from "./Authentication"; +export * from "./BodyParser"; +export * from "./CORS"; +export * from "./ErrorHandler"; +export * from "./RateLimit"; diff --git a/src/api/routes/-/healthz.ts b/src/api/routes/-/healthz.ts new file mode 100644 index 00000000..f7bcfebf --- /dev/null +++ b/src/api/routes/-/healthz.ts @@ -0,0 +1,17 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; +import { getConnection } from "typeorm"; + +const router = Router(); + +router.get("/", route({}), (req: Request, res: Response) => { + try { + // test that the database is alive & responding + getConnection(); + return res.sendStatus(200); + } catch (e) { + res.sendStatus(503); + } +}); + +export default router; diff --git a/src/api/routes/-/readyz.ts b/src/api/routes/-/readyz.ts new file mode 100644 index 00000000..f7bcfebf --- /dev/null +++ b/src/api/routes/-/readyz.ts @@ -0,0 +1,17 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; +import { getConnection } from "typeorm"; + +const router = Router(); + +router.get("/", route({}), (req: Request, res: Response) => { + try { + // test that the database is alive & responding + getConnection(); + return res.sendStatus(200); + } catch (e) { + res.sendStatus(503); + } +}); + +export default router; diff --git a/src/api/routes/applications/#id/entitlements.ts b/src/api/routes/applications/#id/entitlements.ts new file mode 100644 index 00000000..cfcfe40f --- /dev/null +++ b/src/api/routes/applications/#id/entitlements.ts @@ -0,0 +1,12 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.get("/", route({}), (req: Request, res: Response) => { + // TODO: + //const { exclude_consumed } = req.query; + res.status(200).send([]); +}); + +export default router; diff --git a/src/api/routes/applications/detectable.ts b/src/api/routes/applications/detectable.ts new file mode 100644 index 00000000..28ce42da --- /dev/null +++ b/src/api/routes/applications/detectable.ts @@ -0,0 +1,11 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + //TODO + res.send([]).status(200); +}); + +export default router; diff --git a/src/api/routes/applications/index.ts b/src/api/routes/applications/index.ts new file mode 100644 index 00000000..033dcc51 --- /dev/null +++ b/src/api/routes/applications/index.ts @@ -0,0 +1,34 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; +import { Application, OrmUtils, Team, trimSpecial, User } from "@fosscord/util"; + +const router: Router = Router(); + +export interface ApplicationCreateSchema { + name: string; + team_id?: string | number; +} + +router.get("/", route({}), async (req: Request, res: Response) => { + //TODO + let results = await Application.find({where: {owner: {id: req.user_id}}, relations: ["owner", "bot"] }); + res.json(results).status(200); +}); + +router.post("/", route({}), async (req: Request, res: Response) => { + const body = req.body as ApplicationCreateSchema; + const user = await User.findOne({where: {id: req.user_id}}) + if(!user) res.status(420); + let app = OrmUtils.mergeDeep(new Application(), { + name: trimSpecial(body.name), + description: "", + bot_public: true, + owner: user, + verify_key: "IMPLEMENTME", + flags: 0 + }); + await app.save(); + res.json(app).status(200); +}); + +export default router; \ No newline at end of file diff --git a/src/api/routes/auth/location-metadata.ts b/src/api/routes/auth/location-metadata.ts new file mode 100644 index 00000000..f4c2bd16 --- /dev/null +++ b/src/api/routes/auth/location-metadata.ts @@ -0,0 +1,13 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +import { getIpAdress, IPAnalysis } from "@fosscord/api"; +const router = Router(); + +router.get("/",route({}), async (req: Request, res: Response) => { + //TODO + //Note: It's most likely related to legal. At the moment Discord hasn't finished this too + const country_code = (await IPAnalysis(getIpAdress(req))).country_code; + res.json({ consent_required: false, country_code: country_code, promotional_email_opt_in: { required: true, pre_checked: false}}); +}); + +export default router; diff --git a/src/api/routes/auth/login.ts b/src/api/routes/auth/login.ts new file mode 100644 index 00000000..9fc5924d --- /dev/null +++ b/src/api/routes/auth/login.ts @@ -0,0 +1,87 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; +import bcrypt from "bcrypt"; +import { Config, User, generateToken, adjustEmail, FieldErrors, LoginSchema } from "@fosscord/util"; +import crypto from "crypto"; + +const router: Router = Router(); +export default router; + +router.post("/", route({ body: "LoginSchema" }), async (req: Request, res: Response) => { + const { login, password, captcha_key, undelete } = req.body as LoginSchema; + const email = adjustEmail(login); + + const config = Config.get(); + + if (config.login.requireCaptcha && config.security.captcha.enabled) { + if (!captcha_key) { + const { sitekey, service } = config.security.captcha; + return res.status(400).json({ + captcha_key: ["captcha-required"], + captcha_sitekey: sitekey, + captcha_service: service + }); + } + + // TODO: check captcha + } + + const user = await User.findOneOrFail({ + where: [{ phone: login }, { email: login }], + select: ["data", "id", "disabled", "deleted", "settings", "totp_secret", "mfa_enabled"] + }).catch((e) => { + throw FieldErrors({ login: { message: req.t("auth:login.INVALID_LOGIN"), code: "INVALID_LOGIN" } }); + }); + + if (undelete) { + // undelete refers to un'disable' here + if (user.disabled) await User.update({ id: user.id }, { disabled: false }); + if (user.deleted) await User.update({ id: user.id }, { deleted: false }); + } else { + if (user.deleted) return res.status(400).json({ message: "This account is scheduled for deletion.", code: 20011 }); + if (user.disabled) return res.status(400).json({ message: req.t("auth:login.ACCOUNT_DISABLED"), code: 20013 }); + } + + // the salt is saved in the password refer to bcrypt docs + const same_password = await bcrypt.compare(password, user.data.hash || ""); + if (!same_password) { + throw FieldErrors({ password: { message: req.t("auth:login.INVALID_PASSWORD"), code: "INVALID_PASSWORD" } }); + } + + if (user.mfa_enabled) { + // TODO: This is not a discord.com ticket. I'm not sure what it is but I'm lazy + const ticket = crypto.randomBytes(40).toString("hex"); + + await User.update({ id: user.id }, { totp_last_ticket: ticket }); + + return res.json({ + ticket: ticket, + mfa: true, + sms: false, // TODO + token: null, + }) + } + + const token = await generateToken(user.id); + + // Notice this will have a different token structure, than discord + // Discord header is just the user id as string, which is not possible with npm-jsonwebtoken package + // https://user-images.githubusercontent.com/6506416/81051916-dd8c9900-8ec2-11ea-8794-daf12d6f31f0.png + + res.json({ token, settings: user.settings }); +}); + +/** + * POST /auth/login + * @argument { login: "email@gmail.com", password: "cleartextpassword", undelete: false, captcha_key: null, login_source: null, gift_code_sku_id: null, } + + * MFA required: + * @returns {"token": null, "mfa": true, "sms": true, "ticket": "SOME TICKET JWT TOKEN"} + + * Captcha required: + * @returns {"captcha_key": ["captcha-required"], "captcha_sitekey": null, "captcha_service": "recaptcha"} + + * Sucess: + * @returns {"token": "USERTOKEN", "settings": {"locale": "en", "theme": "dark"}} + + */ diff --git a/src/api/routes/auth/mfa/totp.ts b/src/api/routes/auth/mfa/totp.ts new file mode 100644 index 00000000..421dbafa --- /dev/null +++ b/src/api/routes/auth/mfa/totp.ts @@ -0,0 +1,42 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +import { BackupCode, FieldErrors, generateToken, TotpSchema, User } from "@fosscord/util"; +import { verifyToken } from "node-2fa"; +import { HTTPError } from "lambert-server"; +const router = Router(); + +router.post("/", route({ body: "TotpSchema" }), async (req: Request, res: Response) => { + const { code, ticket, gift_code_sku_id, login_source } = req.body as TotpSchema; + + const user = await User.findOneOrFail({ + where: { + totp_last_ticket: ticket, + }, + select: [ + "id", + "totp_secret", + "settings", + ], + }); + + const backup = await BackupCode.findOne({ where: { code: code, expired: false, consumed: false, user: { id: user.id } } }); + + if (!backup) { + const ret = verifyToken(user.totp_secret!, code); + if (!ret || ret.delta != 0) + throw new HTTPError(req.t("auth:login.INVALID_TOTP_CODE"), 60008); + } + else { + backup.consumed = true; + await backup.save(); + } + + await User.update({ id: user.id }, { totp_last_ticket: "" }); + + return res.json({ + token: await generateToken(user.id), + user_settings: user.settings, + }); +}); + +export default router; diff --git a/src/api/routes/auth/register.ts b/src/api/routes/auth/register.ts new file mode 100644 index 00000000..09366a12 --- /dev/null +++ b/src/api/routes/auth/register.ts @@ -0,0 +1,157 @@ +import { Request, Response, Router } from "express"; +import { Config, generateToken, Invite, FieldErrors, User, adjustEmail, trimSpecial, RegisterSchema } from "@fosscord/util"; +import { route, getIpAdress, IPAnalysis, isProxy } from "@fosscord/api"; +import bcrypt from "bcrypt"; +import { HTTPError } from "@fosscord/util"; + +const router: Router = Router(); + +router.post("/", route({ body: "RegisterSchema" }), async (req: Request, res: Response) => { + const body = req.body as RegisterSchema; + const { register, security } = Config.get(); + const ip = getIpAdress(req); + + // email will be slightly modified version of the user supplied email -> e.g. protection against GMail Trick + let email = adjustEmail(body.email); + + // check if registration is allowed + if (!register.allowNewRegistration) { + throw FieldErrors({ + email: { code: "REGISTRATION_DISABLED", message: req.t("auth:register.REGISTRATION_DISABLED") } + }); + } + + // check if the user agreed to the Terms of Service + if (!body.consent) { + throw FieldErrors({ + consent: { code: "CONSENT_REQUIRED", message: req.t("auth:register.CONSENT_REQUIRED") } + }); + } + + if (register.disabled) { + throw FieldErrors({ + email: { + code: "DISABLED", + message: "registration is disabled on this instance" + } + }); + } + + if (register.requireCaptcha && security.captcha.enabled) { + if (!body.captcha_key) { + const { sitekey, service } = security.captcha; + return res?.status(400).json({ + captcha_key: ["captcha-required"], + captcha_sitekey: sitekey, + captcha_service: service + }); + } + + // TODO: check captcha + } + + if (!register.allowMultipleAccounts) { + // TODO: check if fingerprint was eligible generated + const exists = await User.findOne({ where: { fingerprints: body.fingerprint }, select: ["id"] }); + + if (exists) { + throw FieldErrors({ + email: { + code: "EMAIL_ALREADY_REGISTERED", + message: req.t("auth:register.EMAIL_ALREADY_REGISTERED") + } + }); + } + } + + if (register.blockProxies) { + if (isProxy(await IPAnalysis(ip))) { + console.log(`proxy ${ip} blocked from registration`); + throw new HTTPError("Your IP is blocked from registration"); + } + } + + // TODO: gift_code_sku_id? + // TODO: check password strength + + if (email) { + // replace all dots and chars after +, if its a gmail.com email + if (!email) { + throw FieldErrors({ email: { code: "INVALID_EMAIL", message: req?.t("auth:register.INVALID_EMAIL") } }); + } + + // check if there is already an account with this email + const exists = await User.findOne({ where: { email: email } }); + + if (exists) { + throw FieldErrors({ + email: { + code: "EMAIL_ALREADY_REGISTERED", + message: req.t("auth:register.EMAIL_ALREADY_REGISTERED") + } + }); + } + } else if (register.email.required) { + throw FieldErrors({ + email: { code: "BASE_TYPE_REQUIRED", message: req.t("common:field.BASE_TYPE_REQUIRED") } + }); + } + + if (register.dateOfBirth.required && !body.date_of_birth) { + throw FieldErrors({ + date_of_birth: { code: "BASE_TYPE_REQUIRED", message: req.t("common:field.BASE_TYPE_REQUIRED") } + }); + } else if (register.dateOfBirth.required && register.dateOfBirth.minimum) { + const minimum = new Date(); + minimum.setFullYear(minimum.getFullYear() - register.dateOfBirth.minimum); + body.date_of_birth = new Date(body.date_of_birth as Date); + + // higher is younger + if (body.date_of_birth > minimum) { + throw FieldErrors({ + date_of_birth: { + code: "DATE_OF_BIRTH_UNDERAGE", + message: req.t("auth:register.DATE_OF_BIRTH_UNDERAGE", { years: register.dateOfBirth.minimum }) + } + }); + } + } + + if (body.password) { + // the salt is saved in the password refer to bcrypt docs + body.password = await bcrypt.hash(body.password, 12); + } else if (register.password.required) { + throw FieldErrors({ + password: { code: "BASE_TYPE_REQUIRED", message: req.t("common:field.BASE_TYPE_REQUIRED") } + }); + } + + if (!body.invite && (register.requireInvite || (register.guestsRequireInvite && !register.email))) { + // require invite to register -> e.g. for organizations to send invites to their employees + throw FieldErrors({ + email: { code: "INVITE_ONLY", message: req.t("auth:register.INVITE_ONLY") } + }); + } + + const user = await User.register({ ...body, req }); + + if (body.invite) { + // await to fail if the invite doesn't exist (necessary for requireInvite to work properly) (username only signups are possible) + await Invite.joinGuild(user.id, body.invite); + } + + return res.json({ token: await generateToken(user.id) }); +}); + +export default router; + +/** + * POST /auth/register + * @argument { "fingerprint":"805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", "email":"qo8etzvaf@gmail.com", "username":"qp39gr98", "password":"wtp9gep9gw", "invite":null, "consent":true, "date_of_birth":"2000-04-04", "gift_code_sku_id":null, "captcha_key":null} + * + * Field Error + * @returns { "code": 50035, "errors": { "consent": { "_errors": [{ "code": "CONSENT_REQUIRED", "message": "You must agree to Discord's Terms of Service and Privacy Policy." }]}}, "message": "Invalid Form Body"} + * + * Success 200: + * @returns {token: "OMITTED"} + */ diff --git a/src/api/routes/channels/#channel_id/followers.ts b/src/api/routes/channels/#channel_id/followers.ts new file mode 100644 index 00000000..641af4f8 --- /dev/null +++ b/src/api/routes/channels/#channel_id/followers.ts @@ -0,0 +1,14 @@ +import { Router, Response, Request } from "express"; +const router: Router = Router(); +// TODO: + +export default router; + +/** + * + * @param {"webhook_channel_id":"754001514330062952"} + * + * Creates a WebHook in the channel and returns the id of it + * + * @returns {"channel_id": "816382962056560690", "webhook_id": "834910735095037962"} + */ diff --git a/src/api/routes/channels/#channel_id/index.ts b/src/api/routes/channels/#channel_id/index.ts new file mode 100644 index 00000000..bb8b868b --- /dev/null +++ b/src/api/routes/channels/#channel_id/index.ts @@ -0,0 +1,72 @@ +import { + Channel, + ChannelDeleteEvent, + ChannelPermissionOverwriteType, + ChannelType, + ChannelUpdateEvent, + emitEvent, + Recipient, + handleFile, + ChannelModifySchema +} from "@fosscord/util"; +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; +import { OrmUtils } from "@fosscord/util"; + +const router: Router = Router(); +// TODO: delete channel +// TODO: Get channel + +router.get("/", route({ permission: "VIEW_CHANNEL" }), async (req: Request, res: Response) => { + const { channel_id } = req.params; + + const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + + return res.send(channel); +}); + +router.delete("/", route({ permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { + const { channel_id } = req.params; + + const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients"] }); + + if (channel.type === ChannelType.DM) { + const recipient = await Recipient.findOneOrFail({ where: { channel_id, user_id: req.user_id } }); + recipient.closed = true; + await Promise.all([ + recipient.save(), + emitEvent({ event: "CHANNEL_DELETE", data: channel, user_id: req.user_id } as ChannelDeleteEvent) + ]); + } else if (channel.type === ChannelType.GROUP_DM) { + await Channel.removeRecipientFromChannel(channel, req.user_id); + } else { + await Promise.all([ + Channel.delete({ id: channel_id }), + emitEvent({ event: "CHANNEL_DELETE", data: channel, channel_id } as ChannelDeleteEvent) + ]); + } + + res.send(channel); +}); + +router.patch("/", route({ body: "ChannelModifySchema", permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { + let payload = req.body as ChannelModifySchema; + const { channel_id } = req.params; + if (payload.icon) payload.icon = await handleFile(`/channel-icons/${channel_id}`, payload.icon); + + let channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + channel = OrmUtils.mergeDeep(channel, payload); + + await Promise.all([ + channel.save(), + emitEvent({ + event: "CHANNEL_UPDATE", + data: channel, + channel_id + } as ChannelUpdateEvent) + ]); + + res.send(channel); +}); + +export default router; diff --git a/src/api/routes/channels/#channel_id/invites.ts b/src/api/routes/channels/#channel_id/invites.ts new file mode 100644 index 00000000..b5c65c0d --- /dev/null +++ b/src/api/routes/channels/#channel_id/invites.ts @@ -0,0 +1,58 @@ +import { Router, Request, Response } from "express"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { random } from "@fosscord/api"; +import { Channel, Invite, InviteCreateEvent, emitEvent, User, Guild, PublicInviteRelation } from "@fosscord/util"; +import { isTextChannel } from "./messages"; +import { OrmUtils } from "@fosscord/util"; + +const router: Router = Router(); + +router.post("/", route({ body: "InviteCreateSchema", permission: "CREATE_INSTANT_INVITE", right: "CREATE_INVITES" }), + async (req: Request, res: Response) => { + const { user_id } = req; + const { channel_id } = req.params; + const channel = await Channel.findOneOrFail({ where: { id: channel_id }, select: ["id", "name", "type", "guild_id"] }); + isTextChannel(channel.type); + + if (!channel.guild_id) { + throw new HTTPError("This channel doesn't exist", 404); + } + const { guild_id } = channel; + + const expires_at = new Date(req.body.max_age * 1000 + Date.now()); + + const invite = await OrmUtils.mergeDeep(new Invite(),{ + temporary: req.body.temporary || true, + max_uses: req.body.max_uses, + max_age: req.body.max_age, + expires_at, + guild_id, + channel_id, + inviter_id: user_id + }).save(); + //TODO: check this, removed toJSON call + const data = JSON.parse(JSON.stringify(invite)); + data.inviter = await User.getPublicUser(req.user_id); + data.guild = await Guild.findOne({ where: { id: guild_id } }); + data.channel = channel; + + await emitEvent({ event: "INVITE_CREATE", data, guild_id } as InviteCreateEvent); + res.status(201).send(data); +}); + +router.get("/", route({ permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { + const { channel_id } = req.params; + const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + + if (!channel.guild_id) { + throw new HTTPError("This channel doesn't exist", 404); + } + const { guild_id } = channel; + + const invites = await Invite.find({ where: { guild_id }, relations: PublicInviteRelation }); + + res.status(200).send(invites); +}); + +export default router; diff --git a/src/api/routes/channels/#channel_id/messages/#message_id/ack.ts b/src/api/routes/channels/#channel_id/messages/#message_id/ack.ts new file mode 100644 index 00000000..041f4d5e --- /dev/null +++ b/src/api/routes/channels/#channel_id/messages/#message_id/ack.ts @@ -0,0 +1,33 @@ +import { emitEvent, getPermission, MessageAckEvent, ReadState, Snowflake } from "@fosscord/util"; +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; +import { OrmUtils } from "@fosscord/util"; + +const router = Router(); + +router.post("/", route({ body: "MessageAcknowledgeSchema" }), async (req: Request, res: Response) => { + const { channel_id, message_id } = req.params; + + const permission = await getPermission(req.user_id, undefined, channel_id); + permission.hasThrow("VIEW_CHANNEL"); + + let read_state = await ReadState.findOne({ where: { user_id: req.user_id, channel_id } }); + if (!read_state) read_state = OrmUtils.mergeDeep(new ReadState(), { user_id: req.user_id, channel_id }) as ReadState; + read_state.last_message_id = message_id; + + await read_state.save(); + + await emitEvent({ + event: "MESSAGE_ACK", + user_id: req.user_id, + data: { + channel_id, + message_id, + version: 3763 + } + } as MessageAckEvent); + + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/channels/#channel_id/messages/#message_id/crosspost.ts b/src/api/routes/channels/#channel_id/messages/#message_id/crosspost.ts new file mode 100644 index 00000000..b2cb6763 --- /dev/null +++ b/src/api/routes/channels/#channel_id/messages/#message_id/crosspost.ts @@ -0,0 +1,28 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.post("/", route({ permission: "MANAGE_MESSAGES" }), (req: Request, res: Response) => { + // TODO: + res.json({ + id: "", + type: 0, + content: "", + channel_id: "", + author: { id: "", username: "", avatar: "", discriminator: "", public_flags: 64 }, + attachments: [], + embeds: [], + mentions: [], + mention_roles: [], + pinned: false, + mention_everyone: false, + tts: false, + timestamp: "", + edited_timestamp: null, + flags: 1, + components: [] + }).status(200); +}); + +export default router; diff --git a/src/api/routes/channels/#channel_id/messages/#message_id/index.ts b/src/api/routes/channels/#channel_id/messages/#message_id/index.ts new file mode 100644 index 00000000..d7e27062 --- /dev/null +++ b/src/api/routes/channels/#channel_id/messages/#message_id/index.ts @@ -0,0 +1,199 @@ +import { + Attachment, + Channel, + Embed, + DiscordApiErrors, + emitEvent, + FosscordApiErrors, + getPermission, + getRights, + Message, + MessageCreateEvent, + MessageDeleteEvent, + MessageUpdateEvent, + Snowflake, + uploadFile, + MessageCreateSchema +} from "@fosscord/util"; +import { Router, Response, Request } from "express"; +import multer from "multer"; +import { route } from "@fosscord/api"; +import { handleMessage, postHandleMessage } from "@fosscord/api"; +import { HTTPError } from "@fosscord/util"; + +const router = Router(); +// TODO: message content/embed string length limit + +const messageUpload = multer({ + limits: { + fileSize: 1024 * 1024 * 100, + fields: 10, + files: 1 + }, + storage: multer.memoryStorage() +}); // max upload 50 mb + +router.patch("/", route({ body: "MessageCreateSchema", permission: "SEND_MESSAGES", right: "SEND_MESSAGES" }), async (req: Request, res: Response) => { + const { message_id, channel_id } = req.params; + let body = req.body as MessageCreateSchema; + + const message = await Message.findOneOrFail({ where: { id: message_id, channel_id }, relations: ["attachments"] }); + + const permissions = await getPermission(req.user_id, undefined, channel_id); + + const rights = await getRights(req.user_id); + + if ((req.user_id !== message.author_id)) { + if (!rights.has("MANAGE_MESSAGES")) { + permissions.hasThrow("MANAGE_MESSAGES"); + body = { flags: body.flags }; +// guild admins can only suppress embeds of other messages, no such restriction imposed to instance-wide admins + } + } else rights.hasThrow("SELF_EDIT_MESSAGES"); + + const new_message = await handleMessage({ + ...message, + // TODO: should message_reference be overridable? + // @ts-ignore + message_reference: message.message_reference, + ...body, + author_id: message.author_id, + channel_id, + id: message_id, + edited_timestamp: new Date() + }); + + await Promise.all([ + new_message!.save(), + await emitEvent({ + event: "MESSAGE_UPDATE", + channel_id, + data: { ...new_message, nonce: undefined } + } as MessageUpdateEvent) + ]); + + postHandleMessage(message); + + return res.json(message); +}); + + +// Backfill message with specific timestamp +router.put( + "/", + messageUpload.single("file"), + async (req, res, next) => { + if (req.body.payload_json) { + req.body = JSON.parse(req.body.payload_json); + } + + next(); + }, + route({ body: "MessageCreateSchema", permission: "SEND_MESSAGES", right: "SEND_BACKDATED_EVENTS" }), + async (req: Request, res: Response) => { + const { channel_id, message_id } = req.params; + let body = req.body as MessageCreateSchema; + const attachments: Attachment[] = []; + + const rights = await getRights(req.user_id); + rights.hasThrow("SEND_MESSAGES"); + + // regex to check if message contains anything other than numerals ( also no decimals ) + if (!message_id.match(/^\+?\d+$/)) { + throw new HTTPError("Message IDs must be positive integers", 400); + } + + const snowflake = Snowflake.deconstruct(message_id) + if (Date.now() < snowflake.timestamp) { + // message is in the future + throw FosscordApiErrors.CANNOT_BACKFILL_TO_THE_FUTURE; + } + + const exists = await Message.findOne({ where: { id: message_id, channel_id: channel_id }}); + if (exists) { + throw FosscordApiErrors.CANNOT_REPLACE_BY_BACKFILL; + } + + if (req.file) { + try { + const file: any = await uploadFile(`/attachments/${req.params.channel_id}`, req.file); + attachments.push({ ...file, proxy_url: file.url }); + } catch (error) { + return res.status(400).json(error); + } + } + const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients", "recipients.user"] }); + + const embeds = body.embeds || []; + if (body.embed) embeds.push(body.embed); + let message = await handleMessage({ + ...body, + type: 0, + pinned: false, + author_id: req.user_id, + id: message_id, + embeds, + channel_id, + attachments, + edited_timestamp: undefined, + timestamp: new Date(snowflake.timestamp), + }); + + //Fix for the client bug + delete message.member + + await Promise.all([ + message.save(), + emitEvent({ event: "MESSAGE_CREATE", channel_id: channel_id, data: message } as MessageCreateEvent), + channel.save() + ]); + + postHandleMessage(message).catch((e) => { }); // no await as it shouldnt block the message send function and silently catch error + + return res.json(message); + } +); + +router.get("/", route({ permission: "VIEW_CHANNEL" }), async (req: Request, res: Response) => { + const { message_id, channel_id } = req.params; + + const message = await Message.findOneOrFail({ where: { id: message_id, channel_id }, relations: ["attachments"] }); + + const permissions = await getPermission(req.user_id, undefined, channel_id); + + if (message.author_id !== req.user_id) permissions.hasThrow("READ_MESSAGE_HISTORY"); + + return res.json(message); +}); + +router.delete("/", route({}), async (req: Request, res: Response) => { + const { message_id, channel_id } = req.params; + + const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + const message = await Message.findOneOrFail({ where: { id: message_id } }); + + const rights = await getRights(req.user_id); + + if ((message.author_id !== req.user_id)) { + if (!rights.has("MANAGE_MESSAGES")) { + const permission = await getPermission(req.user_id, channel.guild_id, channel_id); + permission.hasThrow("MANAGE_MESSAGES"); + } + } else rights.hasThrow("SELF_DELETE_MESSAGES"); + + await Message.delete({ id: message_id }); + + await emitEvent({ + event: "MESSAGE_DELETE", + channel_id, + data: { + id: message_id, + channel_id, + guild_id: channel.guild_id + } + } as MessageDeleteEvent); + + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/channels/#channel_id/messages/#message_id/reactions.ts b/src/api/routes/channels/#channel_id/messages/#message_id/reactions.ts new file mode 100644 index 00000000..d0ab35bb --- /dev/null +++ b/src/api/routes/channels/#channel_id/messages/#message_id/reactions.ts @@ -0,0 +1,185 @@ +import { + Channel, + emitEvent, + Emoji, + getPermission, + Member, + Message, + MessageReactionAddEvent, + MessageReactionRemoveAllEvent, + MessageReactionRemoveEmojiEvent, + MessageReactionRemoveEvent, + PartialEmoji, + PublicUserProjection, + User +} from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { Router, Response, Request } from "express"; +import { HTTPError } from "@fosscord/util"; +import { In } from "typeorm"; + +const router = Router(); +// TODO: check if emoji is really an unicode emoji or a prperly encoded external emoji + +function getEmoji(emoji: string): PartialEmoji { + emoji = decodeURIComponent(emoji); + const parts = emoji.includes(":") && emoji.split(":"); + if (parts) + return { + name: parts[0], + id: parts[1] + }; + + return { + id: undefined, + name: emoji + }; +} + +router.delete("/", route({ permission: "MANAGE_MESSAGES" }), async (req: Request, res: Response) => { + const { message_id, channel_id } = req.params; + + const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + + await Message.update({ id: message_id, channel_id }, { reactions: [] }); + + await emitEvent({ + event: "MESSAGE_REACTION_REMOVE_ALL", + channel_id, + data: { + channel_id, + message_id, + guild_id: channel.guild_id + } + } as MessageReactionRemoveAllEvent); + + res.sendStatus(204); +}); + +router.delete("/:emoji", route({ permission: "MANAGE_MESSAGES" }), async (req: Request, res: Response) => { + const { message_id, channel_id } = req.params; + const emoji = getEmoji(req.params.emoji); + + const message = await Message.findOneOrFail({ where: { id: message_id, channel_id } }); + + const already_added = message.reactions.find((x) => (x.emoji.id === emoji.id && emoji.id) || x.emoji.name === emoji.name); + if (!already_added) throw new HTTPError("Reaction not found", 404); + message.reactions.remove(already_added); + + await Promise.all([ + message.save(), + emitEvent({ + event: "MESSAGE_REACTION_REMOVE_EMOJI", + channel_id, + data: { + channel_id, + message_id, + guild_id: message.guild_id, + emoji + } + } as MessageReactionRemoveEmojiEvent) + ]); + + res.sendStatus(204); +}); + +router.get("/:emoji", route({ permission: "VIEW_CHANNEL" }), async (req: Request, res: Response) => { + const { message_id, channel_id } = req.params; + const emoji = getEmoji(req.params.emoji); + + const message = await Message.findOneOrFail({ where: { id: message_id, channel_id } }); + const reaction = message.reactions.find((x) => (x.emoji.id === emoji.id && emoji.id) || x.emoji.name === emoji.name); + if (!reaction) throw new HTTPError("Reaction not found", 404); + + const users = await User.find({ + where: { + id: In(reaction.user_ids) + }, + select: PublicUserProjection + }); + + res.json(users); +}); + +router.put("/:emoji/:user_id", route({ permission: "READ_MESSAGE_HISTORY", right: "SELF_ADD_REACTIONS" }), async (req: Request, res: Response) => { + const { message_id, channel_id, user_id } = req.params; + if (user_id !== "@me") throw new HTTPError("Invalid user"); + const emoji = getEmoji(req.params.emoji); + + const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + const message = await Message.findOneOrFail({ where: { id: message_id, channel_id } }); + const already_added = message.reactions.find((x) => (x.emoji.id === emoji.id && emoji.id) || x.emoji.name === emoji.name); + + if (!already_added) req.permission!.hasThrow("ADD_REACTIONS"); + + if (emoji.id) { + const external_emoji = await Emoji.findOneOrFail({ where: { id: emoji.id } }); + if (!already_added) req.permission!.hasThrow("USE_EXTERNAL_EMOJIS"); + emoji.animated = external_emoji.animated; + emoji.name = external_emoji.name; + } + + if (already_added) { + if (already_added.user_ids.includes(req.user_id)) return res.sendStatus(204); // Do not throw an error ¯\_(ツ)_/¯ as discord also doesn't throw any error + already_added.count++; + } else message.reactions.push({ count: 1, emoji, user_ids: [req.user_id] }); + + await message.save(); + + const member = channel.guild_id && (await Member.findOneOrFail({ where: { id: req.user_id } })); + + await emitEvent({ + event: "MESSAGE_REACTION_ADD", + channel_id, + data: { + user_id: req.user_id, + channel_id, + message_id, + guild_id: channel.guild_id, + emoji, + member + } + } as MessageReactionAddEvent); + + res.sendStatus(204); +}); + +router.delete("/:emoji/:user_id", route({}), async (req: Request, res: Response) => { + let { message_id, channel_id, user_id } = req.params; + + const emoji = getEmoji(req.params.emoji); + + const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + const message = await Message.findOneOrFail({ where: { id: message_id, channel_id } }); + + if (user_id === "@me") user_id = req.user_id; + else { + const permissions = await getPermission(req.user_id, undefined, channel_id); + permissions.hasThrow("MANAGE_MESSAGES"); + } + + const already_added = message.reactions.find((x) => (x.emoji.id === emoji.id && emoji.id) || x.emoji.name === emoji.name); + if (!already_added || !already_added.user_ids.includes(user_id)) throw new HTTPError("Reaction not found", 404); + + already_added.count--; + + if (already_added.count <= 0) message.reactions.remove(already_added); + + await message.save(); + + await emitEvent({ + event: "MESSAGE_REACTION_REMOVE", + channel_id, + data: { + user_id: req.user_id, + channel_id, + message_id, + guild_id: channel.guild_id, + emoji + } + } as MessageReactionRemoveEvent); + + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/channels/#channel_id/messages/bulk-delete.ts b/src/api/routes/channels/#channel_id/messages/bulk-delete.ts new file mode 100644 index 00000000..af44b522 --- /dev/null +++ b/src/api/routes/channels/#channel_id/messages/bulk-delete.ts @@ -0,0 +1,43 @@ +import { Router, Response, Request } from "express"; +import { Channel, Config, emitEvent, getPermission, getRights, MessageDeleteBulkEvent, Message } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { In } from "typeorm"; + +const router: Router = Router(); + +export default router; + +// should users be able to bulk delete messages or only bots? ANSWER: all users +// should this request fail, if you provide messages older than 14 days/invalid ids? ANSWER: NO +// https://discord.com/developers/docs/resources/channel#bulk-delete-messages +router.post("/", route({ body: "BulkDeleteSchema" }), async (req: Request, res: Response) => { + const { channel_id } = req.params; + const channel = await Channel.findOneOrFail({where:{ id: channel_id} }); + if (!channel.guild_id) throw new HTTPError("Can't bulk delete dm channel messages", 400); + + const rights = await getRights(req.user_id); + rights.hasThrow("SELF_DELETE_MESSAGES"); + + let superuser = rights.has("MANAGE_MESSAGES"); + const permission = await getPermission(req.user_id, channel?.guild_id, channel_id); + + const { maxBulkDelete } = Config.get().limits.message; + + const { messages } = req.body as { messages: string[] }; + if (messages.length === 0) throw new HTTPError("You must specify messages to bulk delete"); + if (!superuser) { + permission.hasThrow("MANAGE_MESSAGES"); + if (messages.length > maxBulkDelete) throw new HTTPError(`You cannot delete more than ${maxBulkDelete} messages`); + } + + await Message.delete({ id: In(messages) }); + + await emitEvent({ + event: "MESSAGE_DELETE_BULK", + channel_id, + data: { ids: messages, channel_id, guild_id: channel.guild_id } + } as MessageDeleteBulkEvent); + + res.sendStatus(204); +}); diff --git a/src/api/routes/channels/#channel_id/messages/index.ts b/src/api/routes/channels/#channel_id/messages/index.ts new file mode 100644 index 00000000..9ab0d97d --- /dev/null +++ b/src/api/routes/channels/#channel_id/messages/index.ts @@ -0,0 +1,241 @@ +import { Router, Response, Request } from "express"; +import { + Attachment, + Channel, + ChannelType, + Config, + DmChannelDTO, + emitEvent, + getPermission, + getRights, + Message, + MessageCreateEvent, + Snowflake, + uploadFile, + Member, + MessageCreateSchema +} from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { handleMessage, postHandleMessage, route } from "@fosscord/api"; +import multer from "multer"; +import { FindManyOptions, LessThan, MoreThan } from "typeorm"; +import { URL } from "url"; + +const router: Router = Router(); + +export default router; + +export function isTextChannel(type: ChannelType): boolean { + switch (type) { + case ChannelType.GUILD_STORE: + case ChannelType.GUILD_VOICE: + case ChannelType.GUILD_STAGE_VOICE: + case ChannelType.GUILD_CATEGORY: + case ChannelType.GUILD_FORUM: + case ChannelType.DIRECTORY: + throw new HTTPError("not a text channel", 400); + case ChannelType.DM: + case ChannelType.GROUP_DM: + case ChannelType.GUILD_NEWS: + case ChannelType.GUILD_NEWS_THREAD: + case ChannelType.GUILD_PUBLIC_THREAD: + case ChannelType.GUILD_PRIVATE_THREAD: + case ChannelType.GUILD_TEXT: + case ChannelType.ENCRYPTED: + case ChannelType.ENCRYPTED_THREAD: + return true; + default: + throw new HTTPError("unimplemented", 400); + } +} + +// https://discord.com/developers/docs/resources/channel#create-message +// get messages +router.get("/", async (req: Request, res: Response) => { + const channel_id = req.params.channel_id; + const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + if (!channel) throw new HTTPError("Channel not found", 404); + + isTextChannel(channel.type); + const around = req.query.around ? `${req.query.around}` : undefined; + const before = req.query.before ? `${req.query.before}` : undefined; + const after = req.query.after ? `${req.query.after}` : undefined; + const limit = Number(req.query.limit) || 50; + if (limit < 1 || limit > 100) throw new HTTPError("limit must be between 1 and 100", 422); + + let halfLimit = Math.floor(limit / 2); + + const permissions = await getPermission(req.user_id, channel.guild_id, channel_id); + permissions.hasThrow("VIEW_CHANNEL"); + if (!permissions.has("READ_MESSAGE_HISTORY")) return res.json([]); + + let query: FindManyOptions & { where: { id?: any; }; } = { + order: { id: "DESC" }, + take: limit, + where: { channel_id }, + relations: ["author", "webhook", "application", "mentions", "mention_roles", "mention_channels", "sticker_items", "attachments"] + }; + + + if (after) { + if (after > new Snowflake()) return res.status(422); + query.where.id = MoreThan(after); + } + else if (before) { + if (before < req.params.channel_id) return res.status(422); + query.where.id = LessThan(before); + } + else if (around) { + query.where.id = [ + MoreThan((BigInt(around) - BigInt(halfLimit)).toString()), + LessThan((BigInt(around) + BigInt(halfLimit)).toString()) + ]; + } + + const messages = await Message.find(query); + const endpoint = Config.get().cdn.endpointPublic; + + return res.json( + messages.map((x: any) => { + (x.reactions || []).forEach((x: any) => { + // @ts-ignore + if ((x.user_ids || []).includes(req.user_id)) x.me = true; + // @ts-ignore + delete x.user_ids; + }); + // @ts-ignore + if (!x.author) x.author = { id: "4", discriminator: "0000", username: "Fosscord Ghost", public_flags: "0", avatar: null }; + x.attachments?.forEach((y: any) => { + // dynamically set attachment proxy_url in case the endpoint changed + const uri = y.proxy_url.startsWith("http") ? y.proxy_url : `https://example.org${y.proxy_url}`; + y.proxy_url = `${endpoint == null ? "" : endpoint}${new URL(uri).pathname}`; + }); + + /** + Some clients ( discord.js ) only check if a property exists within the response, + which causes erorrs when, say, the `application` property is `null`. + **/ + + for (let curr in x) { + if (x[curr] === null) + delete x[curr]; + } + + return x; + }) + ); +}); + +// TODO: config max upload size +const messageUpload = multer({ + limits: { + fileSize: 1024 * 1024 * 100, + fields: 10, + // files: 1 + }, + storage: multer.memoryStorage() +}); // max upload 50 mb +/** + TODO: dynamically change limit of MessageCreateSchema with config + + https://discord.com/developers/docs/resources/channel#create-message + TODO: text channel slowdown (per-user and across-users) + Q: trim and replace message content and every embed field A: NO, given this cannot be implemented in E2EE channels + TODO: only dispatch notifications for mentions denoted in allowed_mentions +**/ +// Send message +router.post( + "/", + messageUpload.any(), + async (req, res, next) => { + if (req.body.payload_json) { + req.body = JSON.parse(req.body.payload_json); + } + + next(); + }, + route({ body: "MessageCreateSchema", permission: "SEND_MESSAGES", right: "SEND_MESSAGES" }), + async (req: Request, res: Response) => { + const { channel_id } = req.params; + let body = req.body as MessageCreateSchema; + const attachments: Attachment[] = []; + + const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients", "recipients.user"] }); + if (!channel.isWritable()) { + throw new HTTPError(`Cannot send messages to channel of type ${channel.type}`, 400) + } + + const files = req.files as Express.Multer.File[] ?? []; + for (let currFile of files) { + try { + const file: any = await uploadFile(`/attachments/${channel.id}`, currFile); + attachments.push({ ...file, proxy_url: file.url }); + } + catch (error) { + return res.status(400).json(error); + } + } + + const embeds = body.embeds || []; + if (body.embed) embeds.push(body.embed); + let message = await handleMessage({ + ...body, + type: 0, + pinned: false, + author_id: req.user_id, + embeds, + channel_id, + attachments, + edited_timestamp: undefined, + timestamp: new Date() + }); + + channel.last_message_id = message.id; + + if (channel.isDm()) { + const channel_dto = await DmChannelDTO.from(channel); + + // Only one recipients should be closed here, since in group DMs the recipient is deleted not closed + Promise.all( + channel.recipients!.map((recipient) => { + if (recipient.closed) { + recipient.closed = false; + return Promise.all([ + recipient.save(), + emitEvent({ + event: "CHANNEL_CREATE", + data: channel_dto.excludedRecipients([recipient.user_id]), + user_id: recipient.user_id + }) + ]); + } + }) + ); + } + + //Defining member fields + var member = await Member.findOneOrFail({ where: { id: req.user_id }, relations: ["roles"] }); + // TODO: This doesn't work either + // member.roles = member.roles.filter((role) => { + // return role.id !== role.guild_id; + // }).map((role) => { + // return role.id; + // }); + message.member = member; + // TODO: Figure this out + // delete message.member.last_message_id; + // delete message.member.index; + + await Promise.all([ + message.save(), + emitEvent({ event: "MESSAGE_CREATE", channel_id: channel_id, data: message } as MessageCreateEvent), + message.guild_id ? Member.update({ id: req.user_id, guild_id: message.guild_id }, { last_message_id: message.id }) : null, + channel.save() + ]); + + postHandleMessage(message).catch((e) => { }); // no await as it shouldnt block the message send function and silently catch error + + return res.json(message); + } +); + diff --git a/src/api/routes/channels/#channel_id/permissions.ts b/src/api/routes/channels/#channel_id/permissions.ts new file mode 100644 index 00000000..34052fe5 --- /dev/null +++ b/src/api/routes/channels/#channel_id/permissions.ts @@ -0,0 +1,81 @@ +import { + Channel, + ChannelPermissionOverwrite, + ChannelPermissionOverwriteSchema, + ChannelPermissionOverwriteType, + ChannelUpdateEvent, + emitEvent, + getPermission, + Member, + Role +} from "@fosscord/util"; +import { Router, Response, Request } from "express"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.put( + "/:overwrite_id", + route({ body: "ChannelPermissionOverwriteSchema", permission: "MANAGE_ROLES" }), + async (req: Request, res: Response) => { + const { channel_id, overwrite_id } = req.params; + const body = req.body as ChannelPermissionOverwriteSchema; + + let channel = await Channel.findOneOrFail({ where: {id: channel_id} }); + if (!channel.guild_id) throw new HTTPError("Channel not found", 404); + + if (body.type === 0) { + if (!(await Role.count({ where: { id: overwrite_id } }))) throw new HTTPError("role not found", 404); + } else if (body.type === 1) { + if (!(await Member.count({ where: { id: overwrite_id } }))) throw new HTTPError("user not found", 404); + } else throw new HTTPError("type not supported", 501); + + // @ts-ignore + let overwrite: ChannelPermissionOverwrite = channel.permission_overwrites.find((x) => x.id === overwrite_id); + if (!overwrite) { + // @ts-ignore + overwrite = { + id: overwrite_id, + type: body.type + }; + channel.permission_overwrites!.push(overwrite); + } + overwrite.allow = String(req.permission!.bitfield & (BigInt(body.allow) || BigInt("0"))); + overwrite.deny = String(req.permission!.bitfield & (BigInt(body.deny) || BigInt("0"))); + + await Promise.all([ + channel.save(), + emitEvent({ + event: "CHANNEL_UPDATE", + channel_id, + data: channel + } as ChannelUpdateEvent) + ]); + + return res.sendStatus(204); + } +); + +// TODO: check permission hierarchy +router.delete("/:overwrite_id", route({ permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => { + const { channel_id, overwrite_id } = req.params; + + const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + if (!channel.guild_id) throw new HTTPError("Channel not found", 404); + + channel.permission_overwrites = channel.permission_overwrites!.filter((x) => x.id === overwrite_id); + + await Promise.all([ + channel.save(), + emitEvent({ + event: "CHANNEL_UPDATE", + channel_id, + data: channel + } as ChannelUpdateEvent) + ]); + + return res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/channels/#channel_id/pins.ts b/src/api/routes/channels/#channel_id/pins.ts new file mode 100644 index 00000000..003638c5 --- /dev/null +++ b/src/api/routes/channels/#channel_id/pins.ts @@ -0,0 +1,90 @@ +import { + Channel, + ChannelPinsUpdateEvent, + Config, + emitEvent, + getPermission, + Message, + MessageUpdateEvent, + DiscordApiErrors +} from "@fosscord/util"; +import { Router, Request, Response } from "express"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.put("/:message_id", route({ permission: "VIEW_CHANNEL" }), async (req: Request, res: Response) => { + const { channel_id, message_id } = req.params; + + const message = await Message.findOneOrFail({ where: { id: message_id } }); + + // * in dm channels anyone can pin messages -> only check for guilds + if (message.guild_id) req.permission!.hasThrow("MANAGE_MESSAGES"); + + const pinned_count = await Message.count({ where: { channel: { id: channel_id }, pinned: true } }); + const { maxPins } = Config.get().limits.channel; + if (pinned_count >= maxPins) throw DiscordApiErrors.MAXIMUM_PINS.withParams(maxPins); + + await Promise.all([ + Message.update({ id: message_id }, { pinned: true }), + emitEvent({ + event: "MESSAGE_UPDATE", + channel_id, + data: message + } as MessageUpdateEvent), + emitEvent({ + event: "CHANNEL_PINS_UPDATE", + channel_id, + data: { + channel_id, + guild_id: message.guild_id, + last_pin_timestamp: undefined + } + } as ChannelPinsUpdateEvent) + ]); + + res.sendStatus(204); +}); + +router.delete("/:message_id", route({ permission: "VIEW_CHANNEL" }), async (req: Request, res: Response) => { + const { channel_id, message_id } = req.params; + + const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + if (channel.guild_id) req.permission!.hasThrow("MANAGE_MESSAGES"); + + const message = await Message.findOneOrFail({ where: { id: message_id } }); + message.pinned = false; + + await Promise.all([ + message.save(), + + emitEvent({ + event: "MESSAGE_UPDATE", + channel_id, + data: message + } as MessageUpdateEvent), + + emitEvent({ + event: "CHANNEL_PINS_UPDATE", + channel_id, + data: { + channel_id, + guild_id: channel.guild_id, + last_pin_timestamp: undefined + } + } as ChannelPinsUpdateEvent) + ]); + + res.sendStatus(204); +}); + +router.get("/", route({ permission: ["READ_MESSAGE_HISTORY"] }), async (req: Request, res: Response) => { + const { channel_id } = req.params; + + let pins = await Message.find({ where: { channel_id, pinned: true } }); + + res.send(pins); +}); + +export default router; diff --git a/src/api/routes/channels/#channel_id/purge.ts b/src/api/routes/channels/#channel_id/purge.ts new file mode 100644 index 00000000..1ef6e1d7 --- /dev/null +++ b/src/api/routes/channels/#channel_id/purge.ts @@ -0,0 +1,64 @@ +import { HTTPError, PurgeSchema } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { isTextChannel } from "./messages"; +import { FindManyOptions, Between, Not } from "typeorm"; +import { Channel, Config, emitEvent, getPermission, getRights, Message, MessageDeleteBulkEvent } from "@fosscord/util"; +import { Router, Response, Request } from "express"; +import { In } from "typeorm"; + +const router: Router = Router(); + +export default router; + +/** +TODO: apply the delete bit by bit to prevent client and database stress +**/ +router.post("/",route({ /*body: "PurgeSchema",*/ }), async (req: Request, res: Response) => { + const { channel_id } = req.params; + const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + + if (!channel.guild_id) throw new HTTPError("Can't purge dm channels", 400); + isTextChannel(channel.type); + + const rights = await getRights(req.user_id); + if (!rights.has("MANAGE_MESSAGES")) { + const permissions = await getPermission(req.user_id, channel.guild_id, channel_id); + permissions.hasThrow("MANAGE_MESSAGES"); + permissions.hasThrow("MANAGE_CHANNELS"); + } + + const { before, after } = req.body as PurgeSchema; + + // TODO: send the deletion event bite-by-bite to prevent client stress + + let query: FindManyOptions & { where: { id?: any } } = { + order: { id: "ASC" }, + // take: limit, + where: { + channel_id, + id: Between(after, before), // the right way around + author_id: rights.has("SELF_DELETE_MESSAGES") ? undefined : Not(req.user_id) + // if you lack the right of self-deletion, you can't delete your own messages, even in purges + }, + relations: ["author", "webhook", "application", "mentions", "mention_roles", "mention_channels", "sticker_items", "attachments"] + }; + + const messages = await Message.find(query); + const endpoint = Config.get().cdn.endpointPublic; + + if (messages.length == 0) { + res.sendStatus(304); + return; + } + + await Message.delete({ id: In(messages) }); + + await emitEvent({ + event: "MESSAGE_DELETE_BULK", + channel_id, + data: { ids: messages.map((x) => x.id), channel_id, guild_id: channel.guild_id } + } as MessageDeleteBulkEvent); + + res.sendStatus(204); + } +); diff --git a/src/api/routes/channels/#channel_id/recipients.ts b/src/api/routes/channels/#channel_id/recipients.ts new file mode 100644 index 00000000..069212e2 --- /dev/null +++ b/src/api/routes/channels/#channel_id/recipients.ts @@ -0,0 +1,68 @@ +import { Request, Response, Router } from "express"; +import { + Channel, + ChannelRecipientAddEvent, + ChannelType, + DiscordApiErrors, + DmChannelDTO, + emitEvent, + PublicUserProjection, + Recipient, + User +} from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { OrmUtils } from "@fosscord/util"; + +const router: Router = Router(); + +router.put("/:user_id", route({}), async (req: Request, res: Response) => { + const { channel_id, user_id } = req.params; + const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients"] }); + + if (channel.type !== ChannelType.GROUP_DM) { + const recipients = [...channel.recipients!.map((r) => r.user_id), user_id].unique(); + + const new_channel = await Channel.createDMChannel(recipients, req.user_id); + return res.status(201).json(new_channel); + } else { + if (channel.recipients!.map((r) => r.user_id).includes(user_id)) { + throw DiscordApiErrors.INVALID_RECIPIENT; //TODO is this the right error? + } + + channel.recipients!.push(OrmUtils.mergeDeep(new Recipient(), { channel_id, user_id: user_id })); + await channel.save(); + + await emitEvent({ + event: "CHANNEL_CREATE", + data: await DmChannelDTO.from(channel, [user_id]), + user_id: user_id + }); + + await emitEvent({ + event: "CHANNEL_RECIPIENT_ADD", + data: { + channel_id: channel_id, + user: await User.findOneOrFail({ where: { id: user_id }, select: PublicUserProjection }) + }, + channel_id: channel_id + } as ChannelRecipientAddEvent); + return res.sendStatus(204); + } +}); + +router.delete("/:user_id", route({}), async (req: Request, res: Response) => { + const { channel_id, user_id } = req.params; + const channel = await Channel.findOneOrFail({ where: { id: channel_id }, relations: ["recipients"] }); + if (!(channel.type === ChannelType.GROUP_DM && (channel.owner_id === req.user_id || user_id === req.user_id))) + throw DiscordApiErrors.MISSING_PERMISSIONS; + + if (!channel.recipients!.map((r) => r.user_id).includes(user_id)) { + throw DiscordApiErrors.INVALID_RECIPIENT; //TODO is this the right error? + } + + await Channel.removeRecipientFromChannel(channel, user_id); + + return res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/channels/#channel_id/typing.ts b/src/api/routes/channels/#channel_id/typing.ts new file mode 100644 index 00000000..99460f6e --- /dev/null +++ b/src/api/routes/channels/#channel_id/typing.ts @@ -0,0 +1,29 @@ +import { Channel, emitEvent, Member, TypingStartEvent } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { Router, Request, Response } from "express"; + +const router: Router = Router(); + +router.post("/", route({ permission: "SEND_MESSAGES" }), async (req: Request, res: Response) => { + const { channel_id } = req.params; + const user_id = req.user_id; + const timestamp = Date.now(); + const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + const member = await Member.findOne({ where: { id: user_id, guild_id: channel.guild_id }, relations: ["roles", "user"] }); + + await emitEvent({ + event: "TYPING_START", + channel_id: channel_id, + data: { + ...(member ? { member: { ...member, roles: member?.roles?.map((x) => x.id) } } : null), + channel_id, + timestamp, + user_id, + guild_id: channel.guild_id + } + } as TypingStartEvent); + + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/channels/#channel_id/webhooks.ts b/src/api/routes/channels/#channel_id/webhooks.ts new file mode 100644 index 00000000..b11c8eb9 --- /dev/null +++ b/src/api/routes/channels/#channel_id/webhooks.ts @@ -0,0 +1,34 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; +import { Channel, Config, getPermission, trimSpecial, Webhook } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { isTextChannel } from "./messages/index"; +import { DiscordApiErrors } from "@fosscord/util"; + +const router: Router = Router(); +//TODO: implement webhooks +router.get("/", route({}), async (req: Request, res: Response) => { + res.json([]); +}); + +// TODO: use Image Data Type for avatar instead of String +router.post("/", route({ body: "WebhookCreateSchema", permission: "MANAGE_WEBHOOKS" }), async (req: Request, res: Response) => { + const channel_id = req.params.channel_id; + const channel = await Channel.findOneOrFail({ where: { id: channel_id } }); + + isTextChannel(channel.type); + if (!channel.guild_id) throw new HTTPError("Not a guild channel", 400); + + const webhook_count = await Webhook.count({ where: { channel_id } }); + const { maxWebhooks } = Config.get().limits.channel; + if (webhook_count > maxWebhooks) throw DiscordApiErrors.MAXIMUM_WEBHOOKS.withParams(maxWebhooks); + + let { avatar, name } = req.body as { name: string; avatar?: string }; + name = trimSpecial(name); + if (name === "clyde") throw new HTTPError("Invalid name", 400); + + // TODO: save webhook in database and send response + res.json(new Webhook()); +}); + +export default router; diff --git a/src/api/routes/discoverable-guilds.ts b/src/api/routes/discoverable-guilds.ts new file mode 100644 index 00000000..35ecf28c --- /dev/null +++ b/src/api/routes/discoverable-guilds.ts @@ -0,0 +1,39 @@ +import { Guild, Config } from "@fosscord/util"; + +import { Router, Request, Response } from "express"; +import { route } from ".."; +import { Like } from "typeorm"; + +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { offset, limit, categories } = req.query; + let showAllGuilds = Config.get().guild.discovery.showAllGuilds; + let configLimit = Config.get().guild.discovery.limit; + // ! this only works using SQL querys + // const guilds = await Guild.find({ where: { features: "DISCOVERABLE" } }); //, take: Math.abs(Number(limit)) }); + let guilds; + if (categories == undefined) { + guilds = showAllGuilds + ? await Guild.find({ take: Math.abs(Number(limit || configLimit)) }) + : await Guild.find({ where: { features: Like("%DISCOVERABLE%") }, take: Math.abs(Number(limit || configLimit)) }); + } else { + guilds = showAllGuilds + ? await Guild.find({ where: { primary_category_id: Number(categories) }, take: Math.abs(Number(limit || configLimit)) }) + : await Guild.find({ + where: { primary_category_id: Number(categories), features: Like("%DISCOVERABLE%") }, + take: Math.abs(Number(limit || configLimit)) + }); + } + + const total = guilds ? guilds.length : undefined; + + res.send({ + total: total, + guilds: guilds, + offset: Number(offset || Config.get().guild.discovery.offset), + limit: Number(limit || configLimit) + }); +}); + +export default router; diff --git a/src/api/routes/discovery.ts b/src/api/routes/discovery.ts new file mode 100644 index 00000000..30c418c6 --- /dev/null +++ b/src/api/routes/discovery.ts @@ -0,0 +1,18 @@ +import { Categories } from "@fosscord/util"; +import { Router, Response, Request } from "express"; +import { route } from ".."; + +const router = Router(); + +router.get("/categories", route({}), async (req: Request, res: Response) => { + // TODO: + // Get locale instead + + const { locale, primary_only } = req.query; + + const out = primary_only ? await Categories.find() : await Categories.find({ where: {is_primary: true} }); + + res.send(out); +}); + +export default router; diff --git a/src/api/routes/downloads.ts b/src/api/routes/downloads.ts new file mode 100644 index 00000000..44530353 --- /dev/null +++ b/src/api/routes/downloads.ts @@ -0,0 +1,20 @@ +import { Router, Response, Request } from "express"; +import { route } from ".."; +import { Release, Config } from "@fosscord/util"; + +const router = Router(); + +router.get("/:branch", route({}), async (req: Request, res: Response) => { + const { client } = Config.get(); + const { branch } = req.params; + const { platform } = req.query; + //TODO + + if(!platform || !["linux", "osx", "win"].includes(platform.toString())) return res.status(404) + + const release = await Release.findOneOrFail({ where: { name: client.releases.upstreamVersion } }); + + res.redirect(release[`win_url`]); +}); + +export default router; diff --git a/src/api/routes/experiments.ts b/src/api/routes/experiments.ts new file mode 100644 index 00000000..fcbd9271 --- /dev/null +++ b/src/api/routes/experiments.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { route } from ".."; + +const router = Router(); + +router.get("/", route({}), (req: Request, res: Response) => { + // TODO: + res.send({ fingerprint: "", assignments: [], guild_experiments:[] }); +}); + +export default router; diff --git a/src/api/routes/gateway/bot.ts b/src/api/routes/gateway/bot.ts new file mode 100644 index 00000000..f1dbb9df --- /dev/null +++ b/src/api/routes/gateway/bot.ts @@ -0,0 +1,40 @@ +import { Config } from "@fosscord/util"; +import { Router, Response, Request } from "express"; +import { route, RouteOptions } from "@fosscord/api"; + +const router = Router(); + +export interface GatewayBotResponse { + url: string; + shards: number; + session_start_limit: { + total: number; + remaining: number; + reset_after: number; + max_concurrency: number; + }; +} + +const options: RouteOptions = { + test: { + response: { + body: "GatewayBotResponse" + } + } +}; + +router.get("/", route(options), (req: Request, res: Response) => { + const { endpointPublic } = Config.get().gateway; + res.json({ + url: endpointPublic || process.env.GATEWAY || "ws://localhost:3002", + shards: 1, + session_start_limit: { + total: 1000, + remaining: 999, + reset_after: 14400000, + max_concurrency: 1 + } + }); +}); + +export default router; diff --git a/src/api/routes/gateway/index.ts b/src/api/routes/gateway/index.ts new file mode 100644 index 00000000..9bad7478 --- /dev/null +++ b/src/api/routes/gateway/index.ts @@ -0,0 +1,24 @@ +import { Config } from "@fosscord/util"; +import { Router, Response, Request } from "express"; +import { route, RouteOptions } from "@fosscord/api"; + +const router = Router(); + +export interface GatewayResponse { + url: string; +} + +const options: RouteOptions = { + test: { + response: { + body: "GatewayResponse" + } + } +}; + +router.get("/", route(options), (req: Request, res: Response) => { + const { endpointPublic } = Config.get().gateway; + res.json({ url: endpointPublic || process.env.GATEWAY || "ws://localhost:3002" }); +}); + +export default router; diff --git a/src/api/routes/gifs/search.ts b/src/api/routes/gifs/search.ts new file mode 100644 index 00000000..1099dc4a --- /dev/null +++ b/src/api/routes/gifs/search.ts @@ -0,0 +1,28 @@ +import { Router, Response, Request } from "express"; +import fetch from "node-fetch"; +import ProxyAgent from 'proxy-agent'; +import { route } from "@fosscord/api"; +import { getGifApiKey, parseGifResult } from "./trending"; + +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + // TODO: Custom providers + const { q, media_format, locale } = req.query; + + const apiKey = getGifApiKey(); + + const agent = new ProxyAgent(); + + const response = await fetch(`https://g.tenor.com/v1/search?q=${q}&media_format=${media_format}&locale=${locale}&key=${apiKey}`, { + agent, + method: "get", + headers: { "Content-Type": "application/json" } + }); + + const { results } = await response.json() as any; + + res.json(results.map(parseGifResult)).status(200); +}); + +export default router; diff --git a/src/api/routes/gifs/trending-gifs.ts b/src/api/routes/gifs/trending-gifs.ts new file mode 100644 index 00000000..2b28d9d2 --- /dev/null +++ b/src/api/routes/gifs/trending-gifs.ts @@ -0,0 +1,28 @@ +import { Router, Response, Request } from "express"; +import fetch from "node-fetch"; +import ProxyAgent from 'proxy-agent'; +import { route } from "@fosscord/api"; +import { getGifApiKey, parseGifResult } from "./trending"; + +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + // TODO: Custom providers + const { media_format, locale } = req.query; + + const apiKey = getGifApiKey(); + + const agent = new ProxyAgent(); + + const response = await fetch(`https://g.tenor.com/v1/trending?media_format=${media_format}&locale=${locale}&key=${apiKey}`, { + agent, + method: "get", + headers: { "Content-Type": "application/json" } + }); + + const { results } = await response.json() as any; + + res.json(results.map(parseGifResult)).status(200); +}); + +export default router; diff --git a/src/api/routes/gifs/trending.ts b/src/api/routes/gifs/trending.ts new file mode 100644 index 00000000..61eb76c4 --- /dev/null +++ b/src/api/routes/gifs/trending.ts @@ -0,0 +1,62 @@ +import { Router, Response, Request } from "express"; +import fetch from "node-fetch"; +import ProxyAgent from 'proxy-agent'; +import { route } from "@fosscord/api"; +import { Config } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; + +const router = Router(); + +export function parseGifResult(result: any) { + return { + id: result.id, + title: result.title, + url: result.itemurl, + src: result.media[0].mp4.url, + gif_src: result.media[0].gif.url, + width: result.media[0].mp4.dims[0], + height: result.media[0].mp4.dims[1], + preview: result.media[0].mp4.preview + }; +} + +export function getGifApiKey() { + const { enabled, provider, apiKey } = Config.get().gif; + if (!enabled) throw new HTTPError(`Gifs are disabled`); + if (provider !== "tenor" || !apiKey) throw new HTTPError(`${provider} gif provider not supported`); + + return apiKey; +} + +router.get("/", route({}), async (req: Request, res: Response) => { + // TODO: Custom providers + // TODO: return gifs as mp4 + const { media_format, locale } = req.query; + + const apiKey = getGifApiKey(); + + const agent = new ProxyAgent(); + + const [responseSource, trendGifSource] = await Promise.all([ + fetch(`https://g.tenor.com/v1/categories?locale=${locale}&key=${apiKey}`, { + agent, + method: "get", + headers: { "Content-Type": "application/json" } + }), + fetch(`https://g.tenor.com/v1/trending?locale=${locale}&key=${apiKey}`, { + agent, + method: "get", + headers: { "Content-Type": "application/json" } + }) + ]); + + const { tags } = await responseSource.json() as any; + const { results } = await trendGifSource.json() as any; + + res.json({ + categories: tags.map((x: any) => ({ name: x.searchterm, src: x.image })), + gifs: [parseGifResult(results[0])] + }).status(200); +}); + +export default router; diff --git a/src/api/routes/guild-recommendations.ts b/src/api/routes/guild-recommendations.ts new file mode 100644 index 00000000..bd0140d6 --- /dev/null +++ b/src/api/routes/guild-recommendations.ts @@ -0,0 +1,24 @@ +import { Guild, Config } from "@fosscord/util"; + +import { Router, Request, Response } from "express"; +import { route } from ".."; +import {Like} from "typeorm" + +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { limit, personalization_disabled } = req.query; + let showAllGuilds = Config.get().guild.discovery.showAllGuilds; + // ! this only works using SQL querys + // TODO: implement this with default typeorm query + // const guilds = await Guild.find({ where: { features: "DISCOVERABLE" } }); //, take: Math.abs(Number(limit)) }); + + const genLoadId = (size: Number) => [...Array(size)].map(() => Math.floor(Math.random() * 16).toString(16)).join(''); + + const guilds = showAllGuilds + ? await Guild.find({ take: Math.abs(Number(limit || 24)) }) + : await Guild.find({ where: { features: Like('%DISCOVERABLE%') }, take: Math.abs(Number(limit || 24)) }); + res.send({ recommended_guilds: guilds, load_id: `server_recs/${genLoadId(32)}`}).status(200); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/audit-logs.ts b/src/api/routes/guilds/#guild_id/audit-logs.ts new file mode 100644 index 00000000..b54835fc --- /dev/null +++ b/src/api/routes/guilds/#guild_id/audit-logs.ts @@ -0,0 +1,17 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; +const router = Router(); + +//TODO: implement audit logs +router.get("/", route({}), async (req: Request, res: Response) => { + res.json({ + audit_log_entries: [], + users: [], + integrations: [], + webhooks: [], + guild_scheduled_events: [], + threads: [], + application_commands: [] + }); +}); +export default router; diff --git a/src/api/routes/guilds/#guild_id/bans.ts b/src/api/routes/guilds/#guild_id/bans.ts new file mode 100644 index 00000000..3d405344 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/bans.ts @@ -0,0 +1,157 @@ +import { Request, Response, Router } from "express"; +import { DiscordApiErrors, emitEvent, getPermission, GuildBanAddEvent, GuildBanRemoveEvent, Guild, Ban, User, Member, BanRegistrySchema, BanModeratorSchema } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { getIpAdress, route } from "@fosscord/api"; +import { OrmUtils } from "@fosscord/util"; + +const router: Router = Router(); + +/* TODO: Deleting the secrets is just a temporary go-around. Views should be implemented for both safety and better handling. */ + +router.get("/", route({ permission: "BAN_MEMBERS" }), async (req: Request, res: Response) => { + const { guild_id } = req.params; + + let bans = await Ban.find({ where: { guild_id } }); + let promisesToAwait: object[] = []; + const bansObj: object[] = []; + + bans.filter((ban) => ban.user_id !== ban.executor_id); // pretend self-bans don't exist to prevent victim chasing + + bans.forEach((ban) => { + promisesToAwait.push(User.getPublicUser(ban.user_id)); + }); + + const bannedUsers: object[] = await Promise.all(promisesToAwait); + + bans.forEach((ban, index) => { + const user = bannedUsers[index] as User; + bansObj.push({ + reason: ban.reason, + user: { + username: user.username, + discriminator: user.discriminator, + id: user.id, + avatar: user.avatar, + public_flags: user.public_flags + } + }); + }); + + return res.json(bansObj); +}); + +router.get("/:user", route({ permission: "BAN_MEMBERS" }), async (req: Request, res: Response) => { + const { guild_id } = req.params; + const user_id = req.params.ban; + + let ban = await Ban.findOneOrFail({ where: { guild_id, user_id } }) as BanRegistrySchema; + + if (ban.user_id === ban.executor_id) throw DiscordApiErrors.UNKNOWN_BAN; + // pretend self-bans don't exist to prevent victim chasing + + /* Filter secret from registry. */ + + ban = ban as BanModeratorSchema; + + delete ban.ip + + return res.json(ban); +}); + +router.put("/:user_id", route({ body: "BanCreateSchema", permission: "BAN_MEMBERS" }), async (req: Request, res: Response) => { + const { guild_id } = req.params; + const banned_user_id = req.params.user_id; + + if ( (req.user_id === banned_user_id) && (banned_user_id === req.permission!.cache.guild?.owner_id)) + throw new HTTPError("You are the guild owner, hence can't ban yourself", 403); + + if (req.permission!.cache.guild?.owner_id === banned_user_id) throw new HTTPError("You can't ban the owner", 400); + + const banned_user = await User.getPublicUser(banned_user_id); + + const ban = OrmUtils.mergeDeep(new Ban(),{ + user_id: banned_user_id, + guild_id: guild_id, + ip: getIpAdress(req), + executor_id: req.user_id, + reason: req.body.reason // || otherwise empty + }); + + await Promise.all([ + Member.removeFromGuild(banned_user_id, guild_id), + ban.save(), + emitEvent({ + event: "GUILD_BAN_ADD", + data: { + guild_id: guild_id, + user: banned_user + }, + guild_id: guild_id + } as GuildBanAddEvent) + ]); + + return res.json(ban); +}); + +router.put("/@me", route({ body: "BanCreateSchema"}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + + const banned_user = await User.getPublicUser(req.params.user_id); + + if (req.permission!.cache.guild?.owner_id === req.params.user_id) + throw new HTTPError("You are the guild owner, hence can't ban yourself", 403); + + const ban = OrmUtils.mergeDeep(new Ban(), { + user_id: req.params.user_id, + guild_id: guild_id, + ip: getIpAdress(req), + executor_id: req.params.user_id, + reason: req.body.reason // || otherwise empty + }); + + await Promise.all([ + Member.removeFromGuild(req.user_id, guild_id), + ban.save(), + emitEvent({ + event: "GUILD_BAN_ADD", + data: { + guild_id: guild_id, + user: banned_user + }, + guild_id: guild_id + } as GuildBanAddEvent) + ]); + + return res.json(ban); +}); + +router.delete("/:user_id", route({ permission: "BAN_MEMBERS" }), async (req: Request, res: Response) => { + const { guild_id, user_id } = req.params; + + let ban = await Ban.findOneOrFail({ where: { guild_id, user_id } }); + + if (ban.user_id === ban.executor_id) throw DiscordApiErrors.UNKNOWN_BAN; + // make self-bans irreversible and hide them from view to avoid victim chasing + + const banned_user = await User.getPublicUser(user_id); + + await Promise.all([ + Ban.delete({ + user_id: user_id, + guild_id + }), + + emitEvent({ + event: "GUILD_BAN_REMOVE", + data: { + guild_id, + user: banned_user + }, + guild_id + } as GuildBanRemoveEvent) + ]); + + return res.status(204).send(); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/channels.ts b/src/api/routes/guilds/#guild_id/channels.ts new file mode 100644 index 00000000..8f2d3643 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/channels.ts @@ -0,0 +1,57 @@ +import { Router, Response, Request } from "express"; +import { Channel, ChannelUpdateEvent, getPermission, emitEvent, ChannelModifySchema, ChannelReorderSchema } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + const channels = await Channel.find({ where: { guild_id } }); + + res.json(channels); +}); + +router.post("/", route({ body: "ChannelModifySchema", permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { + // creates a new guild channel https://discord.com/developers/docs/resources/guild#create-guild-channel + const { guild_id } = req.params; + const body = req.body as ChannelModifySchema; + + const channel = await Channel.createChannel({ ...body, guild_id }, req.user_id); + + res.status(201).json(channel); +}); + +router.patch("/", route({ body: "ChannelReorderSchema", permission: "MANAGE_CHANNELS" }), async (req: Request, res: Response) => { + // changes guild channel position + const { guild_id } = req.params; + const body = req.body as ChannelReorderSchema; + + await Promise.all([ + body.map(async (x) => { + if (x.position == null && !x.parent_id) throw new HTTPError(`You need to at least specify position or parent_id`, 400); + + const opts: any = {}; + if (x.position != null) opts.position = x.position; + + if (x.parent_id) { + opts.parent_id = x.parent_id; + const parent_channel = await Channel.findOneOrFail({ + where: { id: x.parent_id, guild_id }, + select: ["permission_overwrites"] + }); + if (x.lock_permissions) { + opts.permission_overwrites = parent_channel.permission_overwrites; + } + } + + await Channel.update({ guild_id, id: x.id }, opts); + const channel = await Channel.findOneOrFail({ where: { guild_id, id: x.id } }); + + await emitEvent({ event: "CHANNEL_UPDATE", data: channel, channel_id: x.id, guild_id } as ChannelUpdateEvent); + }) + ]); + + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/delete.ts b/src/api/routes/guilds/#guild_id/delete.ts new file mode 100644 index 00000000..e2624651 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/delete.ts @@ -0,0 +1,30 @@ +import { Channel, emitEvent, GuildDeleteEvent, Guild, Member, Message, Role, Invite, Emoji } from "@fosscord/util"; +import { Router, Request, Response } from "express"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; + +const router = Router(); + +// discord prefixes this route with /delete instead of using the delete method +// docs are wrong https://discord.com/developers/docs/resources/guild#delete-guild +router.post("/", route({}), async (req: Request, res: Response) => { + let { guild_id } = req.params; + + const guild = await Guild.findOneOrFail({ where: { id: guild_id }, select: ["owner_id"] }); + if (guild.owner_id !== req.user_id) throw new HTTPError("You are not the owner of this guild", 401); + + await Promise.all([ + Guild.delete({ id: guild_id }), // this will also delete all guild related data + emitEvent({ + event: "GUILD_DELETE", + data: { + id: guild_id + }, + guild_id: guild_id + } as GuildDeleteEvent) + ]); + + return res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/discovery-requirements.ts b/src/api/routes/guilds/#guild_id/discovery-requirements.ts new file mode 100644 index 00000000..ad20633f --- /dev/null +++ b/src/api/routes/guilds/#guild_id/discovery-requirements.ts @@ -0,0 +1,39 @@ +import { Guild, Config } from "@fosscord/util"; + +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + // TODO: + // Load from database + // Admin control, but for now it allows anyone to be discoverable + + res.send({ + guild_id: guild_id, + safe_environment: true, + healthy: true, + health_score_pending: false, + size: true, + nsfw_properties: {}, + protected: true, + sufficient: true, + sufficient_without_grace_period: true, + valid_rules_channel: true, + retention_healthy: true, + engagement_healthy: true, + age: true, + minimum_age: 0, + health_score: { + avg_nonnew_participators: 0, + avg_nonnew_communicators: 0, + num_intentful_joiners: 0, + perc_ret_w1_intentful: 0 + }, + minimum_size: 0 + }); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/emojis.ts b/src/api/routes/guilds/#guild_id/emojis.ts new file mode 100644 index 00000000..4bf4bdcd --- /dev/null +++ b/src/api/routes/guilds/#guild_id/emojis.ts @@ -0,0 +1,107 @@ +import { Router, Request, Response } from "express"; +import { Config, DiscordApiErrors, emitEvent, Emoji, EmojiCreateSchema, EmojiModifySchema, GuildEmojisUpdateEvent, handleFile, Member, Snowflake, User } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { OrmUtils } from "@fosscord/util"; + +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + + await Member.IsInGuildOrFail(req.user_id, guild_id); + + const emojis = await Emoji.find({ where: { guild_id: guild_id }, relations: ["user"] }); + + return res.json(emojis); +}); + +router.get("/:emoji_id", route({}), async (req: Request, res: Response) => { + const { guild_id, emoji_id } = req.params; + + await Member.IsInGuildOrFail(req.user_id, guild_id); + + const emoji = await Emoji.findOneOrFail({ where: { guild_id: guild_id, id: emoji_id }, relations: ["user"] }); + + return res.json(emoji); +}); + +router.post("/", route({ body: "EmojiCreateSchema", permission: "MANAGE_EMOJIS_AND_STICKERS" }), async (req: Request, res: Response) => { + const { guild_id } = req.params; + const body = req.body as EmojiCreateSchema; + + const id = Snowflake.generate(); + const emoji_count = await Emoji.count({ where: { guild_id } }); + const { maxEmojis } = Config.get().limits.guild; + + if (emoji_count >= maxEmojis) throw DiscordApiErrors.MAXIMUM_NUMBER_OF_EMOJIS_REACHED.withParams(maxEmojis); + if (body.require_colons == null) body.require_colons = true; + + const user = await User.findOneOrFail({ where: { id: req.user_id } }); + body.image = (await handleFile(`/emojis/${id}`, body.image)) as string; + + const emoji = await OrmUtils.mergeDeep(new Emoji(), { + id: id, + guild_id: guild_id, + ...body, + user: user, + managed: false, + animated: false, // TODO: Add support animated emojis + available: true, + roles: [] + }).save(); + + await emitEvent({ + event: "GUILD_EMOJIS_UPDATE", + guild_id: guild_id, + data: { + guild_id: guild_id, + emojis: await Emoji.find({ where: { guild_id } }) + } + } as GuildEmojisUpdateEvent); + + return res.status(201).json(emoji); +}); + +router.patch( + "/:emoji_id", + route({ body: "EmojiModifySchema", permission: "MANAGE_EMOJIS_AND_STICKERS" }), + async (req: Request, res: Response) => { + const { emoji_id, guild_id } = req.params; + const body = req.body as EmojiModifySchema; + + const emoji = await OrmUtils.mergeDeep(new Emoji(), { ...body, id: emoji_id, guild_id: guild_id }).save(); + + await emitEvent({ + event: "GUILD_EMOJIS_UPDATE", + guild_id: guild_id, + data: { + guild_id: guild_id, + emojis: await Emoji.find({ where: { guild_id } }) + } + } as GuildEmojisUpdateEvent); + + return res.json(emoji); + } +); + +router.delete("/:emoji_id", route({ permission: "MANAGE_EMOJIS_AND_STICKERS" }), async (req: Request, res: Response) => { + const { emoji_id, guild_id } = req.params; + + await Emoji.delete({ + id: emoji_id, + guild_id: guild_id + }); + + await emitEvent({ + event: "GUILD_EMOJIS_UPDATE", + guild_id: guild_id, + data: { + guild_id: guild_id, + emojis: await Emoji.find({ where: { guild_id } }) + } + } as GuildEmojisUpdateEvent); + + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/index.ts b/src/api/routes/guilds/#guild_id/index.ts new file mode 100644 index 00000000..a9712c71 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/index.ts @@ -0,0 +1,60 @@ +import { Request, Response, Router } from "express"; +import { DiscordApiErrors, emitEvent, getPermission, getRights, Guild, GuildUpdateEvent, GuildUpdateSchema, handleFile, Member } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { OrmUtils } from "@fosscord/util"; + +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + + const [guild, member] = await Promise.all([ + Guild.findOneOrFail({ where: { id: guild_id } }), + Member.findOne({ where: { guild_id, id: req.user_id } }) + ]); + if (!member) throw new HTTPError("You are not a member of the guild you are trying to access", 401); + + // @ts-ignore + guild.joined_at = member?.joined_at; + + return res.send(guild); +}); + +router.patch("/", route({ body: "GuildUpdateSchema"}), async (req: Request, res: Response) => { + const body = req.body as GuildUpdateSchema; + const { guild_id } = req.params; + + + const rights = await getRights(req.user_id); + const permission = await getPermission(req.user_id, guild_id); + + if (!rights.has("MANAGE_GUILDS")||!permission.has("MANAGE_GUILD")) + throw DiscordApiErrors.MISSING_PERMISSIONS.withParams("MANAGE_GUILD"); + + // TODO: guild update check image + + if (body.icon) body.icon = await handleFile(`/icons/${guild_id}`, body.icon); + if (body.banner) body.banner = await handleFile(`/banners/${guild_id}`, body.banner); + if (body.splash) body.splash = await handleFile(`/splashes/${guild_id}`, body.splash); + + let guild = await Guild.findOneOrFail({ + where: { id: guild_id }, + relations: ["emojis", "roles", "stickers"] + }); + // TODO: check if body ids are valid + guild = OrmUtils.mergeDeep(guild, body); + + //TODO: check this, removed toJSON call + const data = JSON.parse(JSON.stringify(guild)); + // TODO: guild hashes + // TODO: fix vanity_url_code, template_id + delete data.vanity_url_code; + delete data.template_id; + + await Promise.all([guild.save(), emitEvent({ event: "GUILD_UPDATE", data, guild_id } as GuildUpdateEvent)]); + + return res.json(data); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/integrations.ts b/src/api/routes/guilds/#guild_id/integrations.ts new file mode 100644 index 00000000..90650111 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/integrations.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { Channel, ChannelUpdateEvent, getPermission, emitEvent } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; +const router = Router(); + +//TODO: implement integrations list +router.get("/", route({}), async (req: Request, res: Response) => { + res.json([]); +}); +export default router; diff --git a/src/api/routes/guilds/#guild_id/invites.ts b/src/api/routes/guilds/#guild_id/invites.ts new file mode 100644 index 00000000..b7534e31 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/invites.ts @@ -0,0 +1,15 @@ +import { getPermission, Invite, PublicInviteRelation } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { Request, Response, Router } from "express"; + +const router = Router(); + +router.get("/", route({ permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { + const { guild_id } = req.params; + + const invites = await Invite.find({ where: { guild_id }, relations: PublicInviteRelation }); + + return res.json(invites); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/members/#member_id/index.ts b/src/api/routes/guilds/#guild_id/members/#member_id/index.ts new file mode 100644 index 00000000..794369d8 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/members/#member_id/index.ts @@ -0,0 +1,98 @@ +import { Request, Response, Router } from "express"; +import { Member, getPermission, getRights, Role, GuildMemberUpdateEvent, emitEvent, Sticker, Emoji, Rights, Guild, MemberChangeSchema } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { OrmUtils } from "@fosscord/util"; + +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id, member_id } = req.params; + await Member.IsInGuildOrFail(req.user_id, guild_id); + + const member = await Member.findOneOrFail({ where: { id: member_id, guild_id } }); + + return res.json(member); +}); + +router.patch("/", route({ body: "MemberChangeSchema" }), async (req: Request, res: Response) => { + let { guild_id, member_id } = req.params; + if (member_id === "@me") member_id = req.user_id; + const body = req.body as MemberChangeSchema; + + const member = await Member.findOneOrFail({ where: { id: member_id, guild_id }, relations: ["roles", "user"] }); + const permission = await getPermission(req.user_id, guild_id); + const everyone = await Role.findOneOrFail({ where: { guild_id: guild_id, name: "@everyone", position: 0 } }); + + if (body.roles) { + permission.hasThrow("MANAGE_ROLES"); + + if (body.roles.indexOf(everyone.id) === -1) body.roles.push(everyone.id); + member.roles = body.roles.map((x) => OrmUtils.mergeDeep(new Role(), { id: x })); // foreign key constraint will fail if role doesn't exist + } + + await member.save(); + + member.roles = member.roles.filter((x) => x.id !== everyone.id); + + // do not use promise.all as we have to first write to db before emitting the event to catch errors + await emitEvent({ + event: "GUILD_MEMBER_UPDATE", + guild_id, + data: { ...member, roles: member.roles.map((x) => x.id) } + } as GuildMemberUpdateEvent); + + res.json(member); +}); + +router.put("/", route({}), async (req: Request, res: Response) => { + + // TODO: Lurker mode + + const rights = await getRights(req.user_id); + + let { guild_id, member_id } = req.params; + if (member_id === "@me") { + member_id = req.user_id; + rights.hasThrow("JOIN_GUILDS"); + } else { + // TODO: join others by controller + } + + let guild = await Guild.findOneOrFail({ + where: { id: guild_id } + }); + + let emoji = await Emoji.find({ + where: { guild_id: guild_id } + }); + + let roles = await Role.find({ + where: { guild_id: guild_id } + }); + + let stickers = await Sticker.find({ + where: { guild_id: guild_id } + }); + + await Member.addToGuild(member_id, guild_id); + res.send({ ...guild, emojis: emoji, roles: roles, stickers: stickers }); +}); + +router.delete("/", route({}), async (req: Request, res: Response) => { + const permission = await getPermission(req.user_id); + const rights = await getRights(req.user_id); + const { guild_id, member_id } = req.params; + if (member_id !== "@me" || member_id === req.user_id) { + // TODO: unless force-joined + rights.hasThrow("SELF_LEAVE_GROUPS"); + } else { + rights.hasThrow("KICK_BAN_MEMBERS"); + permission.hasThrow("KICK_MEMBERS"); + } + + await Member.removeFromGuild(member_id, guild_id); + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/members/#member_id/nick.ts b/src/api/routes/guilds/#guild_id/members/#member_id/nick.ts new file mode 100644 index 00000000..a6c71333 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/members/#member_id/nick.ts @@ -0,0 +1,22 @@ +import { getPermission, Member, PermissionResolvable } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { Request, Response, Router } from "express"; + +const router = Router(); + +router.patch("/", route({ body: "MemberNickChangeSchema" }), async (req: Request, res: Response) => { + let { guild_id, member_id } = req.params; + let permissionString: PermissionResolvable = "MANAGE_NICKNAMES"; + if (member_id === "@me") { + member_id = req.user_id; + permissionString = "CHANGE_NICKNAME"; + } + + const perms = await getPermission(req.user_id, guild_id); + perms.hasThrow(permissionString); + + await Member.changeNickname(member_id, guild_id, req.body.nick); + res.status(200).send(); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/members/#member_id/roles/#role_id/index.ts b/src/api/routes/guilds/#guild_id/members/#member_id/roles/#role_id/index.ts new file mode 100644 index 00000000..8f5ca7ba --- /dev/null +++ b/src/api/routes/guilds/#guild_id/members/#member_id/roles/#role_id/index.ts @@ -0,0 +1,21 @@ +import { getPermission, Member } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { Request, Response, Router } from "express"; + +const router = Router(); + +router.delete("/", route({ permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => { + const { guild_id, role_id, member_id } = req.params; + + await Member.removeRole(member_id, guild_id, role_id); + res.sendStatus(204); +}); + +router.put("/", route({ permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => { + const { guild_id, role_id, member_id } = req.params; + + await Member.addRole(member_id, guild_id, role_id); + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/members/index.ts b/src/api/routes/guilds/#guild_id/members/index.ts new file mode 100644 index 00000000..2ed28bda --- /dev/null +++ b/src/api/routes/guilds/#guild_id/members/index.ts @@ -0,0 +1,31 @@ +import { Request, Response, Router } from "express"; +import { Guild, Member, PublicMemberProjection } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { MoreThan } from "typeorm"; +import { HTTPError } from "@fosscord/util"; + +const router = Router(); + +// TODO: send over websocket +// TODO: check for GUILD_MEMBERS intent + +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + const limit = Number(req.query.limit) || 1; + if (limit > 1000 || limit < 1) throw new HTTPError("Limit must be between 1 and 1000"); + const after = `${req.query.after}`; + const query = after ? { id: MoreThan(after) } : {}; + + await Member.IsInGuildOrFail(req.user_id, guild_id); + + const members = await Member.find({ + where: { guild_id, ...query }, + select: PublicMemberProjection, + take: limit, + order: { id: "ASC" } + }); + + return res.json(members); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/premium.ts b/src/api/routes/guilds/#guild_id/premium.ts new file mode 100644 index 00000000..75361ac6 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/premium.ts @@ -0,0 +1,10 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +const router = Router(); + +router.get("/subscriptions", route({}), async (req: Request, res: Response) => { + // TODO: + res.json([]); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/prune.ts b/src/api/routes/guilds/#guild_id/prune.ts new file mode 100644 index 00000000..673f022f --- /dev/null +++ b/src/api/routes/guilds/#guild_id/prune.ts @@ -0,0 +1,79 @@ +import { Router, Request, Response } from "express"; +import { Guild, Member, Snowflake } from "@fosscord/util"; +import { LessThan, IsNull } from "typeorm"; +import { route } from "@fosscord/api"; +const router = Router(); + +//Returns all inactive members, respecting role hierarchy +export const inactiveMembers = async (guild_id: string, user_id: string, days: number, roles: string[] = []) => { + let date = new Date(); + date.setDate(date.getDate() - days); + //Snowflake should have `generateFromTime` method? Or similar? + let minId = BigInt(date.valueOf() - Snowflake.EPOCH) << BigInt(22); + + /** + idea: ability to customise the cutoff variable + possible candidates: public read receipt, last presence, last VC leave + **/ + let members = await Member.find({ + where: [ + { + guild_id, + last_message_id: LessThan(minId.toString()) + }, + { + last_message_id: IsNull() + } + ], + relations: ["roles"] + }); + console.log(members); + if (!members.length) return []; + + //I'm sure I can do this in the above db query ( and it would probably be better to do so ), but oh well. + if (roles.length && members.length) members = members.filter((user) => user.roles?.some((role) => roles.includes(role.id))); + + const me = await Member.findOneOrFail({ where: { id: user_id, guild_id }, relations: ["roles"] }); + const myHighestRole = Math.max(...(me.roles?.map((x) => x.position) || [])); + + const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); + + members = members.filter( + (member) => + member.id !== guild.owner_id && //can't kick owner + member.roles?.some( + (role) => + role.position < myHighestRole || //roles higher than me can't be kicked + me.id === guild.owner_id //owner can kick anyone + ) + ); + + return members; +}; + +router.get("/", route({}), async (req: Request, res: Response) => { + const days = parseInt(req.query.days as string); + + let roles = req.query.include_roles; + if (typeof roles === "string") roles = [roles]; //express will return array otherwise + + const members = await inactiveMembers(req.params.guild_id, req.user_id, days, roles as string[]); + + res.send({ pruned: members.length }); +}); + +router.post("/", route({ permission: "KICK_MEMBERS", right: "KICK_BAN_MEMBERS" }), async (req: Request, res: Response) => { + const days = parseInt(req.body.days); + + let roles = req.query.include_roles; + if (typeof roles === "string") roles = [roles]; + + const { guild_id } = req.params; + const members = await inactiveMembers(guild_id, req.user_id, days, roles as string[]); + + await Promise.all(members.map((x) => Member.removeFromGuild(x.id, guild_id))); + + res.send({ purged: members.length }); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/regions.ts b/src/api/routes/guilds/#guild_id/regions.ts new file mode 100644 index 00000000..308d5ee5 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/regions.ts @@ -0,0 +1,15 @@ +import { Config, Guild, Member } from "@fosscord/util"; +import { Request, Response, Router } from "express"; +import { getVoiceRegions, route } from "@fosscord/api"; +import { getIpAdress } from "@fosscord/api"; + +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); + //TODO we should use an enum for guild's features and not hardcoded strings + return res.json(await getVoiceRegions(getIpAdress(req), guild.features.includes("VIP_REGIONS"))); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/roles/#role_id/index.ts b/src/api/routes/guilds/#guild_id/roles/#role_id/index.ts new file mode 100644 index 00000000..d4422a9c --- /dev/null +++ b/src/api/routes/guilds/#guild_id/roles/#role_id/index.ts @@ -0,0 +1,68 @@ +import { Router, Request, Response } from "express"; +import { Role, Member, GuildRoleUpdateEvent, GuildRoleDeleteEvent, emitEvent, handleFile, RoleModifySchema } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { HTTPError } from "@fosscord/util"; +import { OrmUtils } from "@fosscord/util"; + +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id, role_id } = req.params; + await Member.IsInGuildOrFail(req.user_id, guild_id); + const role = await Role.findOneOrFail({ where: { guild_id, id: role_id } }); + return res.json(role); +}); + +router.delete("/", route({ permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => { + const { guild_id, role_id } = req.params; + if (role_id === guild_id) throw new HTTPError("You can't delete the @everyone role"); + + await Promise.all([ + Role.delete({ + id: role_id, + guild_id: guild_id + }), + emitEvent({ + event: "GUILD_ROLE_DELETE", + guild_id, + data: { + guild_id, + role_id + } + } as GuildRoleDeleteEvent) + ]); + + res.sendStatus(204); +}); + +// TODO: check role hierarchy + +router.patch("/", route({ body: "RoleModifySchema", permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => { + const { role_id, guild_id } = req.params; + const body = req.body as RoleModifySchema; + + if (body.icon) body.icon = await handleFile(`/role-icons/${role_id}`, body.icon as string); + + const role = OrmUtils.mergeDeep(new Role(), { + ...body, + id: role_id, + guild_id, + permissions: String(req.permission!.bitfield & BigInt(body.permissions || "0")) + }); + + await Promise.all([ + role.save(), + emitEvent({ + event: "GUILD_ROLE_UPDATE", + guild_id, + data: { + guild_id, + role + } + } as GuildRoleUpdateEvent) + ]); + + res.json(role); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/roles/index.ts b/src/api/routes/guilds/#guild_id/roles/index.ts new file mode 100644 index 00000000..17f0b5e9 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/roles/index.ts @@ -0,0 +1,98 @@ +import { Request, Response, Router } from "express"; +import { + Role, + getPermission, + Member, + GuildRoleCreateEvent, + GuildRoleUpdateEvent, + GuildRoleDeleteEvent, + emitEvent, + Config, + DiscordApiErrors, + handleFile, + RoleModifySchema, + RolePositionUpdateSchema +} from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { OrmUtils } from "@fosscord/util"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const guild_id = req.params.guild_id; + + await Member.IsInGuildOrFail(req.user_id, guild_id); + + const roles = await Role.find({ where: { guild_id } }); + + return res.json(roles); +}); + +router.post("/", route({ body: "RoleModifySchema", permission: "MANAGE_ROLES" }), async (req: Request, res: Response) => { + const guild_id = req.params.guild_id; + const body = req.body as RoleModifySchema; + + const role_count = await Role.count({ where: { guild_id } }); + const { maxRoles } = Config.get().limits.guild; + + if (role_count > maxRoles) throw DiscordApiErrors.MAXIMUM_ROLES.withParams(maxRoles); + + let role: Role = OrmUtils.mergeDeep(new Role(),{ + // values before ...body are default and can be overriden + position: 0, + hoist: false, + color: 0, + mentionable: false, + ...body, + guild_id: guild_id, + managed: false, + permissions: String(req.permission!.bitfield & BigInt(body.permissions || "0")), + tags: undefined, + icon: null, + unicode_emoji: null + }); + + await Promise.all([ + role.save(), + emitEvent({ + event: "GUILD_ROLE_CREATE", + guild_id, + data: { + guild_id, + role: role + } + } as GuildRoleCreateEvent) + ]); + + res.json(role); +}); + +router.patch("/", route({ body: "RolePositionUpdateSchema" }), async (req: Request, res: Response) => { + const { guild_id } = req.params; + const body = req.body as RolePositionUpdateSchema; + + const perms = await getPermission(req.user_id, guild_id); + perms.hasThrow("MANAGE_ROLES"); + + await Promise.all(body.map(async (x) => Role.update({ guild_id, id: x.id }, { position: x.position }))); + + const roles = await Role.find({ where: body.map((x) => ({ id: x.id, guild_id })) }); + + await Promise.all( + roles.map((x) => + emitEvent({ + event: "GUILD_ROLE_UPDATE", + guild_id, + data: { + guild_id, + role: x + } + } as GuildRoleUpdateEvent) + ) + ); + + res.json(roles); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/stickers.ts b/src/api/routes/guilds/#guild_id/stickers.ts new file mode 100644 index 00000000..71c9dfcd --- /dev/null +++ b/src/api/routes/guilds/#guild_id/stickers.ts @@ -0,0 +1,121 @@ +import { + emitEvent, + GuildStickersUpdateEvent, + handleFile, + Member, + ModifyGuildStickerSchema, + Snowflake, + Sticker, + StickerFormatType, + StickerType, + uploadFile +} from "@fosscord/util"; +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +import multer from "multer"; +import { HTTPError } from "@fosscord/util"; +import { OrmUtils } from "@fosscord/util"; +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + await Member.IsInGuildOrFail(req.user_id, guild_id); + + res.json(await Sticker.find({ where: { guild_id } })); +}); + +const bodyParser = multer({ + limits: { + fileSize: 1024 * 1024 * 100, + fields: 10, + files: 1 + }, + storage: multer.memoryStorage() +}).single("file"); + +router.post( + "/", + bodyParser, + route({ permission: "MANAGE_EMOJIS_AND_STICKERS", body: "ModifyGuildStickerSchema" }), + async (req: Request, res: Response) => { + if (!req.file) throw new HTTPError("missing file"); + + const { guild_id } = req.params; + const body = req.body as ModifyGuildStickerSchema; + const id = Snowflake.generate(); + + const [sticker] = await Promise.all([ + OrmUtils.mergeDeep(new Sticker(), { + ...body, + guild_id, + id, + type: StickerType.GUILD, + format_type: getStickerFormat(req.file.mimetype), + available: true + }).save(), + uploadFile(`/stickers/${id}`, req.file) + ]); + + await sendStickerUpdateEvent(guild_id); + + res.json(sticker); + } +); + +export function getStickerFormat(mime_type: string) { + switch (mime_type) { + case "image/apng": + return StickerFormatType.APNG; + case "application/json": + return StickerFormatType.LOTTIE; + case "image/png": + return StickerFormatType.PNG; + case "image/gif": + return StickerFormatType.GIF; + default: + throw new HTTPError("invalid sticker format: must be png, apng or lottie"); + } +} + +router.get("/:sticker_id", route({}), async (req: Request, res: Response) => { + const { guild_id, sticker_id } = req.params; + await Member.IsInGuildOrFail(req.user_id, guild_id); + + res.json(await Sticker.findOneOrFail({ where: { guild_id, id: sticker_id } })); +}); + +router.patch( + "/:sticker_id", + route({ body: "ModifyGuildStickerSchema", permission: "MANAGE_EMOJIS_AND_STICKERS" }), + async (req: Request, res: Response) => { + const { guild_id, sticker_id } = req.params; + const body = req.body as ModifyGuildStickerSchema; + + const sticker = await OrmUtils.mergeDeep(new Sticker(), { ...body, guild_id, id: sticker_id }).save(); + await sendStickerUpdateEvent(guild_id); + + return res.json(sticker); + } +); + +async function sendStickerUpdateEvent(guild_id: string) { + return emitEvent({ + event: "GUILD_STICKERS_UPDATE", + guild_id: guild_id, + data: { + guild_id: guild_id, + stickers: await Sticker.find({ where: { guild_id } }) + } + } as GuildStickersUpdateEvent); +} + +router.delete("/:sticker_id", route({ permission: "MANAGE_EMOJIS_AND_STICKERS" }), async (req: Request, res: Response) => { + const { guild_id, sticker_id } = req.params; + + await Sticker.delete({ guild_id, id: sticker_id }); + await sendStickerUpdateEvent(guild_id); + + return res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/templates.ts b/src/api/routes/guilds/#guild_id/templates.ts new file mode 100644 index 00000000..9c79692d --- /dev/null +++ b/src/api/routes/guilds/#guild_id/templates.ts @@ -0,0 +1,83 @@ +import { Request, Response, Router } from "express"; +import { Guild, Template } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { generateCode } from "@fosscord/api"; +import { OrmUtils } from "@fosscord/util"; + +const router: Router = Router(); + +const TemplateGuildProjection: (keyof Guild)[] = [ + "name", + "description", + "region", + "verification_level", + "default_message_notifications", + "explicit_content_filter", + "preferred_locale", + "afk_timeout", + "roles", + // "channels", + "afk_channel_id", + "system_channel_id", + "system_channel_flags", + "icon" +]; + +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + + let templates = await Template.find({ where: { source_guild_id: guild_id } }); + + return res.json(templates); +}); + +router.post("/", route({ body: "TemplateCreateSchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { + const { guild_id } = req.params; + const guild = await Guild.findOneOrFail({ where: { id: guild_id }, select: TemplateGuildProjection }); + const exists = await Template.findOneOrFail({ where: { id: guild_id } }).catch((e) => {}); + if (exists) throw new HTTPError("Template already exists", 400); + + const template = await OrmUtils.mergeDeep(new Template(), { + ...req.body, + code: generateCode(), + creator_id: req.user_id, + created_at: new Date(), + updated_at: new Date(), + source_guild_id: guild_id, + serialized_source_guild: guild + }).save(); + + res.json(template); +}); + +router.delete("/:code", route({ permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { + const { code, guild_id } = req.params; + + const template = await Template.delete({ + code, + source_guild_id: guild_id + }); + + res.json(template); +}); + +router.put("/:code", route({ permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { + const { code, guild_id } = req.params; + const guild = await Guild.findOneOrFail({ where: { id: guild_id }, select: TemplateGuildProjection }); + + const template = await OrmUtils.mergeDeep(new Template(), { code, serialized_source_guild: guild }).save(); + + res.json(template); +}); + +router.patch("/:code", route({ body: "TemplateModifySchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { + const { code, guild_id } = req.params; + const { name, description } = req.body; + + const template = await OrmUtils.mergeDeep(new Template(), { code, name: name, description: description, source_guild_id: guild_id }).save(); + + res.json(template); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/vanity-url.ts b/src/api/routes/guilds/#guild_id/vanity-url.ts new file mode 100644 index 00000000..ff92ce8d --- /dev/null +++ b/src/api/routes/guilds/#guild_id/vanity-url.ts @@ -0,0 +1,59 @@ +import { Channel, ChannelType, getPermission, Guild, Invite, trimSpecial, VanityUrlSchema } from "@fosscord/util"; +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +import { HTTPError } from "@fosscord/util"; +import { OrmUtils } from "@fosscord/util"; + +const router = Router(); + +const InviteRegex = /\W/g; + +router.get("/", route({ permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { + const { guild_id } = req.params; + const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); + + if (!guild.features.includes("ALIASABLE_NAMES")) { + const invite = await Invite.findOne({ where: { guild_id: guild_id, vanity_url: true } }); + if (!invite) return res.json({ code: null }); + + return res.json({ code: invite.code, uses: invite.uses }); + } else { + const invite = await Invite.find({ where: { guild_id: guild_id, vanity_url: true } }); + if (!invite || invite.length == 0) return res.json({ code: null }); + + return res.json(invite.map((x) => ({ code: x.code, uses: x.uses }))); + } +}); + +router.patch("/", route({ body: "VanityUrlSchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { + const { guild_id } = req.params; + const body = req.body as VanityUrlSchema; + const code = body.code?.replace(InviteRegex, ""); + + const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); + if (!guild.features.includes("VANITY_URL")) throw new HTTPError("Your guild doesn't support vanity urls"); + + if (!code || code.length === 0) throw new HTTPError("Code cannot be null or empty"); + + const invite = await Invite.findOne({ where: { code } }); + if (invite) throw new HTTPError("Invite already exists"); + + const { id } = await Channel.findOneOrFail({ where: { guild_id, type: ChannelType.GUILD_TEXT } }); + + await OrmUtils.mergeDeep(new Invite(), { + vanity_url: true, + code: code, + temporary: false, + uses: 0, + max_uses: 0, + max_age: 0, + created_at: new Date(), + expires_at: new Date(), + guild_id: guild_id, + channel_id: id + }).save(); + + return res.json({ where: { code } }); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/voice-states/#user_id/index.ts b/src/api/routes/guilds/#guild_id/voice-states/#user_id/index.ts new file mode 100644 index 00000000..28a9e8c1 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/voice-states/#user_id/index.ts @@ -0,0 +1,51 @@ +import { Channel, ChannelType, DiscordApiErrors, emitEvent, getPermission, VoiceState, VoiceStateUpdateEvent, VoiceStateUpdateSchema } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { Request, Response, Router } from "express"; +import { OrmUtils } from "@fosscord/util"; + +const router = Router(); +router.patch("/", route({ body: "VoiceStateUpdateSchema" }), async (req: Request, res: Response) => { + const body = req.body as VoiceStateUpdateSchema; + let { guild_id, user_id } = req.params; + if (user_id === "@me") user_id = req.user_id; + + const perms = await getPermission(req.user_id, guild_id, body.channel_id); + + /* + From https://discord.com/developers/docs/resources/guild#modify-current-user-voice-state + You must have the MUTE_MEMBERS permission to unsuppress others. You can always suppress yourself. + You must have the REQUEST_TO_SPEAK permission to request to speak. You can always clear your own request to speak. + */ + if (body.suppress && user_id !== req.user_id) { + perms.hasThrow("MUTE_MEMBERS"); + } + if (!body.suppress) body.request_to_speak_timestamp = new Date(); + if (body.request_to_speak_timestamp) perms.hasThrow("REQUEST_TO_SPEAK"); + + let voice_state = await VoiceState.findOne({ + where: { + guild_id, + channel_id: body.channel_id, + user_id + } + }); + if (!voice_state) throw DiscordApiErrors.UNKNOWN_VOICE_STATE; + + voice_state = OrmUtils.mergeDeep(voice_state, body) as VoiceState; + const channel = await Channel.findOneOrFail({ where: { guild_id, id: body.channel_id } }); + if (channel.type !== ChannelType.GUILD_STAGE_VOICE) { + throw DiscordApiErrors.CANNOT_EXECUTE_ON_THIS_CHANNEL_TYPE; + } + + await Promise.all([ + voice_state.save(), + emitEvent({ + event: "VOICE_STATE_UPDATE", + data: voice_state, + guild_id + } as VoiceStateUpdateEvent) + ]); + return res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/webhooks.ts b/src/api/routes/guilds/#guild_id/webhooks.ts new file mode 100644 index 00000000..c8c1eb5c --- /dev/null +++ b/src/api/routes/guilds/#guild_id/webhooks.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { Channel, ChannelUpdateEvent, getPermission, emitEvent } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; +const router = Router(); + +//TODO: implement webhooks +router.get("/", route({}), async (req: Request, res: Response) => { + res.json([]); +}); +export default router; diff --git a/src/api/routes/guilds/#guild_id/welcome_screen.ts b/src/api/routes/guilds/#guild_id/welcome_screen.ts new file mode 100644 index 00000000..d08300ba --- /dev/null +++ b/src/api/routes/guilds/#guild_id/welcome_screen.ts @@ -0,0 +1,31 @@ +import { Request, Response, Router } from "express"; +import { Guild, getPermission, Snowflake, Member, GuildUpdateWelcomeScreenSchema } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const guild_id = req.params.guild_id; + + const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); + await Member.IsInGuildOrFail(req.user_id, guild_id); + + res.json(guild.welcome_screen); +}); + +router.patch("/", route({ body: "GuildUpdateWelcomeScreenSchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { + const guild_id = req.params.guild_id; + const body = req.body as GuildUpdateWelcomeScreenSchema; + + const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); + + if (!guild.welcome_screen.enabled) throw new HTTPError("Welcome screen disabled", 400); + if (body.welcome_channels) guild.welcome_screen.welcome_channels = body.welcome_channels; // TODO: check if they exist and are valid + if (body.description) guild.welcome_screen.description = body.description; + if (body.enabled != null) guild.welcome_screen.enabled = body.enabled; + + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/widget.json.ts b/src/api/routes/guilds/#guild_id/widget.json.ts new file mode 100644 index 00000000..37739418 --- /dev/null +++ b/src/api/routes/guilds/#guild_id/widget.json.ts @@ -0,0 +1,83 @@ +import { Request, Response, Router } from "express"; +import { Config, Permissions, Guild, Invite, Channel, Member } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { random, route } from "@fosscord/api"; +import { OrmUtils } from "@fosscord/util"; + +const router: Router = Router(); + +// Undocumented API notes: +// An invite is created for the widget_channel_id on request (only if an existing one created by the widget doesn't already exist) +// This invite created doesn't include an inviter object like user created ones and has a default expiry of 24 hours +// Missing user object information is intentional (https://github.com/discord/discord-api-docs/issues/1287) +// channels returns voice channel objects where @everyone has the CONNECT permission +// members (max 100 returned) is a sample of all members, and bots par invisible status, there exists some alphabetical distribution pattern between the members returned + +// https://discord.com/developers/docs/resources/guild#get-guild-widget +// TODO: Cache the response for a guild for 5 minutes regardless of response +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + + const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); + if (!guild.widget_enabled) throw new HTTPError("Widget Disabled", 404); + + // Fetch existing widget invite for widget channel + let invite = await Invite.findOne({ where: { channel_id: guild.widget_channel_id } }); + + if (guild.widget_channel_id && !invite) { + // Create invite for channel if none exists + // TODO: Refactor invite create code to a shared function + const max_age = 86400; // 24 hours + const expires_at = new Date(max_age * 1000 + Date.now()); + const body = { + code: random(), + temporary: false, + uses: 0, + max_uses: 0, + max_age: max_age, + expires_at, + created_at: new Date(), + guild_id, + channel_id: guild.widget_channel_id, + inviter_id: null + }; + + invite = await OrmUtils.mergeDeep(new Invite(), body).save(); + } + + // Fetch voice channels, and the @everyone permissions object + const channels = [] as any[]; + + (await Channel.find({ where: { guild_id: guild_id, type: 2 }, order: { position: "ASC" } })).filter((doc) => { + // Only return channels where @everyone has the CONNECT permission + if ( + doc.permission_overwrites === undefined || + Permissions.channelPermission(doc.permission_overwrites, Permissions.FLAGS.CONNECT) === Permissions.FLAGS.CONNECT + ) { + channels.push({ + id: doc.id, + name: doc.name, + position: doc.position + }); + } + }); + + // Fetch members + // TODO: Understand how Discord's max 100 random member sample works, and apply to here (see top of this file) + let members = await Member.find({ where: { guild_id } }); + + // Construct object to respond with + const data = { + id: guild_id, + name: guild.name, + instant_invite: invite?.code, + channels: channels, + members: members, + presence_count: guild.presence_count + }; + + res.set("Cache-Control", "public, max-age=300"); + return res.json(data); +}); + +export default router; diff --git a/src/api/routes/guilds/#guild_id/widget.png.ts b/src/api/routes/guilds/#guild_id/widget.png.ts new file mode 100644 index 00000000..a61d938d --- /dev/null +++ b/src/api/routes/guilds/#guild_id/widget.png.ts @@ -0,0 +1,111 @@ +import { Request, Response, Router } from "express"; +import { Guild } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import fs from "fs"; +import path from "path"; + +const router: Router = Router(); + +// TODO: use svg templates instead of node-canvas for improved performance and to change it easily + +// https://discord.com/developers/docs/resources/guild#get-guild-widget-image +// TODO: Cache the response +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + + const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); + if (!guild.widget_enabled) throw new HTTPError("Unknown Guild", 404); + + // Fetch guild information + const icon = guild.icon; + const name = guild.name; + const presence = guild.presence_count + " ONLINE"; + + // Fetch parameter + const style = req.query.style?.toString() || "shield"; + if (!["shield", "banner1", "banner2", "banner3", "banner4"].includes(style)) { + throw new HTTPError("Value must be one of ('shield', 'banner1', 'banner2', 'banner3', 'banner4').", 400); + } + + // Setup canvas + const { createCanvas } = require("canvas"); + const { loadImage } = require("canvas"); + const sizeOf = require("image-size"); + + // TODO: Widget style templates need Fosscord branding + const source = path.join(__dirname, "..", "..", "..", "..", "..", "assets", "widget", `${style}.png`); + if (!fs.existsSync(source)) { + throw new HTTPError("Widget template does not exist.", 400); + } + + // Create base template image for parameter + const { width, height } = await sizeOf(source); + const canvas = createCanvas(width, height); + const ctx = canvas.getContext("2d"); + const template = await loadImage(source); + ctx.drawImage(template, 0, 0); + + // Add the guild specific information to the template asset image + switch (style) { + case "shield": + ctx.textAlign = "center"; + await drawText(ctx, 73, 13, "#FFFFFF", "thin 10px Verdana", presence); + break; + case "banner1": + if (icon) await drawIcon(ctx, 20, 27, 50, icon); + await drawText(ctx, 83, 51, "#FFFFFF", "12px Verdana", name, 22); + await drawText(ctx, 83, 66, "#C9D2F0FF", "thin 11px Verdana", presence); + break; + case "banner2": + if (icon) await drawIcon(ctx, 13, 19, 36, icon); + await drawText(ctx, 62, 34, "#FFFFFF", "12px Verdana", name, 15); + await drawText(ctx, 62, 49, "#C9D2F0FF", "thin 11px Verdana", presence); + break; + case "banner3": + if (icon) await drawIcon(ctx, 20, 20, 50, icon); + await drawText(ctx, 83, 44, "#FFFFFF", "12px Verdana", name, 27); + await drawText(ctx, 83, 58, "#C9D2F0FF", "thin 11px Verdana", presence); + break; + case "banner4": + if (icon) await drawIcon(ctx, 21, 136, 50, icon); + await drawText(ctx, 84, 156, "#FFFFFF", "13px Verdana", name, 27); + await drawText(ctx, 84, 171, "#C9D2F0FF", "thin 12px Verdana", presence); + break; + default: + throw new HTTPError("Value must be one of ('shield', 'banner1', 'banner2', 'banner3', 'banner4').", 400); + } + + // Return final image + const buffer = canvas.toBuffer("image/png"); + res.set("Content-Type", "image/png"); + res.set("Cache-Control", "public, max-age=3600"); + return res.send(buffer); +}); + +async function drawIcon(canvas: any, x: number, y: number, scale: number, icon: string) { + // @ts-ignore + const img = new require("canvas").Image(); + img.src = icon; + + // Do some canvas clipping magic! + canvas.save(); + canvas.beginPath(); + + const r = scale / 2; // use scale to determine radius + canvas.arc(x + r, y + r, r, 0, 2 * Math.PI, false); // start circle at x, and y coords + radius to find center + + canvas.clip(); + canvas.drawImage(img, x, y, scale, scale); + + canvas.restore(); +} + +async function drawText(canvas: any, x: number, y: number, color: string, font: string, text: string, maxcharacters?: number) { + canvas.fillStyle = color; + canvas.font = font; + if (text.length > (maxcharacters || 0) && maxcharacters) text = text.slice(0, maxcharacters) + "..."; + canvas.fillText(text, x, y); +} + +export default router; diff --git a/src/api/routes/guilds/#guild_id/widget.ts b/src/api/routes/guilds/#guild_id/widget.ts new file mode 100644 index 00000000..dbb4cc0c --- /dev/null +++ b/src/api/routes/guilds/#guild_id/widget.ts @@ -0,0 +1,27 @@ +import { Request, Response, Router } from "express"; +import { Guild, WidgetModifySchema } from "@fosscord/util"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +// https://discord.com/developers/docs/resources/guild#get-guild-widget-settings +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + + const guild = await Guild.findOneOrFail({ where: { id: guild_id } }); + + return res.json({ enabled: guild.widget_enabled || false, channel_id: guild.widget_channel_id || null }); +}); + +// https://discord.com/developers/docs/resources/guild#modify-guild-widget +router.patch("/", route({ body: "WidgetModifySchema", permission: "MANAGE_GUILD" }), async (req: Request, res: Response) => { + const body = req.body as WidgetModifySchema; + const { guild_id } = req.params; + + await Guild.update({ id: guild_id }, { widget_enabled: body.enabled, widget_channel_id: body.channel_id }); + // Widget invite for the widget_channel_id gets created as part of the /guilds/{guild.id}/widget.json request + + return res.json(body); +}); + +export default router; diff --git a/src/api/routes/guilds/index.ts b/src/api/routes/guilds/index.ts new file mode 100644 index 00000000..e4d66192 --- /dev/null +++ b/src/api/routes/guilds/index.ts @@ -0,0 +1,32 @@ +import { Router, Request, Response } from "express"; +import { Role, Guild, Snowflake, Config, getRights, Member, Channel, DiscordApiErrors, handleFile, GuildCreateSchema } from "@fosscord/util"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +//TODO: create default channel + +router.post("/", route({ body: "GuildCreateSchema", right: "CREATE_GUILDS" }), async (req: Request, res: Response) => { + const body = req.body as GuildCreateSchema; + + const { maxGuilds } = Config.get().limits.user; + const guild_count = await Member.count({ where: { id: req.user_id } }); + const rights = await getRights(req.user_id); + if ((guild_count >= maxGuilds)&&!rights.has("MANAGE_GUILDS")) { + throw DiscordApiErrors.MAXIMUM_GUILDS.withParams(maxGuilds); + } + + const guild = await Guild.createGuild({ ...body, owner_id: req.user_id }); + + const { autoJoin } = Config.get().guild; + if (autoJoin.enabled && !autoJoin.guilds?.length) { + // @ts-ignore + await Config.set({ guild: { autoJoin: { guilds: [guild.id] } } }); + } + + await Member.addToGuild(req.user_id, guild.id); + + res.status(201).json({ id: guild.id }); +}); + +export default router; diff --git a/src/api/routes/guilds/templates/index.ts b/src/api/routes/guilds/templates/index.ts new file mode 100644 index 00000000..3a0de9e8 --- /dev/null +++ b/src/api/routes/guilds/templates/index.ts @@ -0,0 +1,79 @@ +import { Request, Response, Router } from "express"; +import { Template, Guild, Role, Snowflake, Config, User, Member, DiscordApiErrors, OrmUtils, GuildTemplateCreateSchema } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import fetch from "node-fetch"; +const router: Router = Router(); + +router.get("/:code", route({}), async (req: Request, res: Response) => { + const { allowDiscordTemplates, allowRaws, enabled } = Config.get().templates; + if (!enabled) res.json({ code: 403, message: "Template creation & usage is disabled on this instance." }).sendStatus(403); + + const { code } = req.params; + + if (code.startsWith("discord:")) { + if (!allowDiscordTemplates) return res.json({ code: 403, message: "Discord templates cannot be used on this instance." }).sendStatus(403); + const discordTemplateID = code.split("discord:", 2)[1]; + + const discordTemplateData = await fetch(`https://discord.com/api/v9/guilds/templates/${discordTemplateID}`, { + method: "get", + headers: { "Content-Type": "application/json" } + }); + return res.json(await discordTemplateData.json()); + } + + if (code.startsWith("external:")) { + if (!allowRaws) return res.json({ code: 403, message: "Importing raws is disabled on this instance." }).sendStatus(403); + + return res.json(code.split("external:", 2)[1]); + } + + const template = await Template.findOneOrFail({ where: { code } }); + res.json(template); +}); + +router.post("/:code", route({ body: "GuildTemplateCreateSchema" }), async (req: Request, res: Response) => { + const { enabled, allowTemplateCreation, allowDiscordTemplates, allowRaws } = Config.get().templates; + if (!enabled) return res.json({ code: 403, message: "Template creation & usage is disabled on this instance." }).sendStatus(403); + if (!allowTemplateCreation) return res.json({ code: 403, message: "Template creation is disabled on this instance." }).sendStatus(403); + + const { code } = req.params; + const body = req.body as GuildTemplateCreateSchema; + + const { maxGuilds } = Config.get().limits.user; + + const guild_count = await Member.count({ where: { id: req.user_id } }); + if (guild_count >= maxGuilds) { + throw DiscordApiErrors.MAXIMUM_GUILDS.withParams(maxGuilds); + } + + const template = await Template.findOneOrFail({ where: { code } }); + + const guild_id = Snowflake.generate(); + + const [guild, role] = await Promise.all([ + OrmUtils.mergeDeep(new Guild(), { + ...body, + ...template.serialized_source_guild, + id: guild_id, + owner_id: req.user_id + }).save(), + (OrmUtils.mergeDeep(new Role(), { + id: guild_id, + guild_id: guild_id, + color: 0, + hoist: false, + managed: true, + mentionable: true, + name: "@everyone", + permissions: BigInt("2251804225"), + position: 0, + tags: null + }) as Role).save() + ]); + + await Member.addToGuild(req.user_id, guild_id); + + res.status(201).json({ id: guild.id }); +}); + +export default router; diff --git a/src/api/routes/invites/index.ts b/src/api/routes/invites/index.ts new file mode 100644 index 00000000..1b434505 --- /dev/null +++ b/src/api/routes/invites/index.ts @@ -0,0 +1,57 @@ +import { Router, Request, Response } from "express"; +import { emitEvent, getPermission, Guild, Invite, InviteDeleteEvent, User, PublicInviteRelation } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { HTTPError } from "@fosscord/util"; + +const router: Router = Router(); + +router.get("/:code", route({}), async (req: Request, res: Response) => { + const { code } = req.params; + + const invite = await Invite.findOneOrFail({ where: { code }, relations: PublicInviteRelation }); + + res.status(200).send(invite); +}); + +router.post("/:code", route({right: "USE_MASS_INVITES"}), async (req: Request, res: Response) => { + const { code } = req.params; + const { guild_id } = await Invite.findOneOrFail({ where: { code } }) + const { features } = await Guild.findOneOrFail({ where: { id: guild_id} }); + const { public_flags } = await User.findOneOrFail({ where: { id: req.user_id } }); + + if(features.includes("INTERNAL_EMPLOYEE_ONLY") && (public_flags & 1) !== 1) throw new HTTPError("Only intended for the staff of this server.", 401); + if(features.includes("INVITES_CLOSED")) throw new HTTPError("Sorry, this guild has joins closed.", 403); + + const invite = await Invite.joinGuild(req.user_id, code); + + res.json(invite); +}); + +// * cant use permission of route() function because path doesn't have guild_id/channel_id +router.delete("/:code", route({}), async (req: Request, res: Response) => { + const { code } = req.params; + const invite = await Invite.findOneOrFail({ where: { code } }); + const { guild_id, channel_id } = invite; + + const permission = await getPermission(req.user_id, guild_id, channel_id); + + if (!permission.has("MANAGE_GUILD") && !permission.has("MANAGE_CHANNELS")) + throw new HTTPError("You missing the MANAGE_GUILD or MANAGE_CHANNELS permission", 401); + + await Promise.all([ + Invite.delete({ code }), + emitEvent({ + event: "INVITE_DELETE", + guild_id: guild_id, + data: { + channel_id: channel_id, + guild_id: guild_id, + code: code + } + } as InviteDeleteEvent) + ]); + + res.json({ invite: invite }); +}); + +export default router; diff --git a/src/api/routes/oauth2/tokens.ts b/src/api/routes/oauth2/tokens.ts new file mode 100644 index 00000000..bd284221 --- /dev/null +++ b/src/api/routes/oauth2/tokens.ts @@ -0,0 +1,10 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + //TODO + res.json([]); +}); + +export default router; diff --git a/src/api/routes/outbound-promotions.ts b/src/api/routes/outbound-promotions.ts new file mode 100644 index 00000000..411e95bf --- /dev/null +++ b/src/api/routes/outbound-promotions.ts @@ -0,0 +1,11 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + //TODO + res.json([]).status(200); +}); + +export default router; diff --git a/src/api/routes/partners/#guild_id/requirements.ts b/src/api/routes/partners/#guild_id/requirements.ts new file mode 100644 index 00000000..545c5c78 --- /dev/null +++ b/src/api/routes/partners/#guild_id/requirements.ts @@ -0,0 +1,40 @@ + +import { Guild, Config } from "@fosscord/util"; + +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { guild_id } = req.params; + // TODO: + // Load from database + // Admin control, but for now it allows anyone to be discoverable + + res.send({ + guild_id: guild_id, + safe_environment: true, + healthy: true, + health_score_pending: false, + size: true, + nsfw_properties: {}, + protected: true, + sufficient: true, + sufficient_without_grace_period: true, + valid_rules_channel: true, + retention_healthy: true, + engagement_healthy: true, + age: true, + minimum_age: 0, + health_score: { + avg_nonnew_participators: 0, + avg_nonnew_communicators: 0, + num_intentful_joiners: 0, + perc_ret_w1_intentful: 0 + }, + minimum_size: 0 + }); +}); + +export default router; diff --git a/src/api/routes/ping.ts b/src/api/routes/ping.ts new file mode 100644 index 00000000..3c1da2c3 --- /dev/null +++ b/src/api/routes/ping.ts @@ -0,0 +1,26 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; +import { Config } from "@fosscord/util"; + +const router = Router(); + +router.get("/", route({}), (req: Request, res: Response) => { + const { general } = Config.get(); + res.send({ + ping: "pong!", + instance: { + id: general.instanceId, + name: general.instanceName, + description: general.instanceDescription, + image: general.image, + + correspondenceEmail: general.correspondenceEmail, + correspondenceUserID: general.correspondenceUserID, + + frontPage: general.frontPage, + tosPage: general.tosPage, + }, + }); +}); + +export default router; diff --git a/src/api/routes/policies/instance/domains.ts b/src/api/routes/policies/instance/domains.ts new file mode 100644 index 00000000..20cd07ba --- /dev/null +++ b/src/api/routes/policies/instance/domains.ts @@ -0,0 +1,18 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +import { Config } from "@fosscord/util"; +import { config } from "dotenv" +const router = Router(); + +router.get("/",route({}), async (req: Request, res: Response) => { + const { cdn, gateway } = Config.get(); + + const IdentityForm = { + cdn: cdn.endpointPublic || process.env.CDN || "http://localhost:3001", + gateway: gateway.endpointPublic || process.env.GATEWAY || "ws://localhost:3002" + }; + + res.json(IdentityForm); +}); + +export default router; diff --git a/src/api/routes/policies/instance/index.ts b/src/api/routes/policies/instance/index.ts new file mode 100644 index 00000000..e3da014f --- /dev/null +++ b/src/api/routes/policies/instance/index.ts @@ -0,0 +1,12 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +import { Config } from "@fosscord/util"; +const router = Router(); + + +router.get("/",route({}), async (req: Request, res: Response) => { + const { general } = Config.get(); + res.json(general); +}); + +export default router; diff --git a/src/api/routes/policies/instance/limits.ts b/src/api/routes/policies/instance/limits.ts new file mode 100644 index 00000000..7de1476b --- /dev/null +++ b/src/api/routes/policies/instance/limits.ts @@ -0,0 +1,11 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +import { Config } from "@fosscord/util"; +const router = Router(); + +router.get("/",route({}), async (req: Request, res: Response) => { + const { limits } = Config.get(); + res.json(limits); +}); + +export default router; diff --git a/src/api/routes/scheduled-maintenances/upcoming_json.ts b/src/api/routes/scheduled-maintenances/upcoming_json.ts new file mode 100644 index 00000000..83092e44 --- /dev/null +++ b/src/api/routes/scheduled-maintenances/upcoming_json.ts @@ -0,0 +1,12 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +const router = Router(); + +router.get("/scheduled-maintenances/upcoming.json",route({}), async (req: Request, res: Response) => { + res.json({ + "page": {}, + "scheduled_maintenances": {} + }); +}); + +export default router; diff --git a/src/api/routes/science.ts b/src/api/routes/science.ts new file mode 100644 index 00000000..8556a3ad --- /dev/null +++ b/src/api/routes/science.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.post("/", route({}), (req: Request, res: Response) => { + // TODO: + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/stage-instances.ts b/src/api/routes/stage-instances.ts new file mode 100644 index 00000000..411e95bf --- /dev/null +++ b/src/api/routes/stage-instances.ts @@ -0,0 +1,11 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + //TODO + res.json([]).status(200); +}); + +export default router; diff --git a/src/api/routes/sticker-packs/index.ts b/src/api/routes/sticker-packs/index.ts new file mode 100644 index 00000000..e6560d12 --- /dev/null +++ b/src/api/routes/sticker-packs/index.ts @@ -0,0 +1,13 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; +import { StickerPack } from "@fosscord/util"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const sticker_packs = await StickerPack.find({ relations: ["stickers"] }); + + res.json({ sticker_packs }); +}); + +export default router; diff --git a/src/api/routes/stickers/#sticker_id/index.ts b/src/api/routes/stickers/#sticker_id/index.ts new file mode 100644 index 00000000..b484a7a1 --- /dev/null +++ b/src/api/routes/stickers/#sticker_id/index.ts @@ -0,0 +1,12 @@ +import { Sticker } from "@fosscord/util"; +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { sticker_id } = req.params; + + res.json(await Sticker.find({ where: { id: sticker_id } })); +}); + +export default router; diff --git a/src/api/routes/stop.ts b/src/api/routes/stop.ts new file mode 100644 index 00000000..7f8b78ba --- /dev/null +++ b/src/api/routes/stop.ts @@ -0,0 +1,26 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +import { User } from "@fosscord/util"; + +const router: Router = Router(); + +router.post("/", route({}), async (req: Request, res: Response) => { + //EXPERIMENTAL: have an "OPERATOR" platform permission implemented for this API route + const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["rights"] }); + if((Number(user.rights) << Number(0))%Number(2)==Number(1)) { + console.log("user that POSTed to the API was ALLOWED"); + console.log(user.rights); + res.sendStatus(200) + process.kill(process.pid, 'SIGTERM') + } + else { + console.log("operation failed"); + console.log(user.rights); + res.sendStatus(403) + } +}); + +export default router; + +//THIS API CAN ONLY BE USED BY USERS WITH THE 'OPERATOR' RIGHT (which is the value of 1) ONLY IF ANY OTHER RIGHTS ARE ADDED OR IF THE USER DOESNT HAVE PERMISSION, +//THE REQUEST WILL RETURN 403 'FORBIDDEN' diff --git a/src/api/routes/store/published-listings/applications.ts b/src/api/routes/store/published-listings/applications.ts new file mode 100644 index 00000000..060a4c3d --- /dev/null +++ b/src/api/routes/store/published-listings/applications.ts @@ -0,0 +1,79 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/:id", route({}), async (req: Request, res: Response) => { + //TODO + const id = req.params.id; + res.json({ + id: "", + summary: "", + sku: { + id: "", + type: 1, + dependent_sku_id: null, + application_id: "", + manifets_labels: [], + access_type: 2, + name: "", + features: [], + release_date: "", + premium: false, + slug: "", + flags: 4, + genres: [], + legal_notice: "", + application: { + id: "", + name: "", + icon: "", + description: "", + summary: "", + cover_image: "", + primary_sku_id: "", + hook: true, + slug: "", + guild_id: "", + bot_public: "", + bot_require_code_grant: false, + verify_key: "", + publishers: [ + { + id: "", + name: "" + } + ], + developers: [ + { + id: "", + name: "" + } + ], + system_requirements: {}, + show_age_gate: false, + price: { + amount: 0, + currency: "EUR" + }, + locales: [] + }, + tagline: "", + description: "", + carousel_items: [ + { + asset_id: "" + } + ], + header_logo_dark_theme: {}, //{id: "", size: 4665, mime_type: "image/gif", width 160, height: 160} + header_logo_light_theme: {}, + box_art: {}, + thumbnail: {}, + header_background: {}, + hero_background: {}, + assets: [] + } + }).status(200); +}); + +export default router; diff --git a/src/api/routes/store/published-listings/applications/#id/subscription-plans.ts b/src/api/routes/store/published-listings/applications/#id/subscription-plans.ts new file mode 100644 index 00000000..54151ae5 --- /dev/null +++ b/src/api/routes/store/published-listings/applications/#id/subscription-plans.ts @@ -0,0 +1,25 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + //TODO + res.json([ + { + id: "", + name: "", + interval: 1, + interval_count: 1, + tax_inclusive: true, + sku_id: "", + fallback_price: 499, + fallback_currency: "eur", + currency: "eur", + price: 4199, + price_tier: null + } + ]).status(200); +}); + +export default router; diff --git a/src/api/routes/store/published-listings/skus.ts b/src/api/routes/store/published-listings/skus.ts new file mode 100644 index 00000000..060a4c3d --- /dev/null +++ b/src/api/routes/store/published-listings/skus.ts @@ -0,0 +1,79 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/:id", route({}), async (req: Request, res: Response) => { + //TODO + const id = req.params.id; + res.json({ + id: "", + summary: "", + sku: { + id: "", + type: 1, + dependent_sku_id: null, + application_id: "", + manifets_labels: [], + access_type: 2, + name: "", + features: [], + release_date: "", + premium: false, + slug: "", + flags: 4, + genres: [], + legal_notice: "", + application: { + id: "", + name: "", + icon: "", + description: "", + summary: "", + cover_image: "", + primary_sku_id: "", + hook: true, + slug: "", + guild_id: "", + bot_public: "", + bot_require_code_grant: false, + verify_key: "", + publishers: [ + { + id: "", + name: "" + } + ], + developers: [ + { + id: "", + name: "" + } + ], + system_requirements: {}, + show_age_gate: false, + price: { + amount: 0, + currency: "EUR" + }, + locales: [] + }, + tagline: "", + description: "", + carousel_items: [ + { + asset_id: "" + } + ], + header_logo_dark_theme: {}, //{id: "", size: 4665, mime_type: "image/gif", width 160, height: 160} + header_logo_light_theme: {}, + box_art: {}, + thumbnail: {}, + header_background: {}, + hero_background: {}, + assets: [] + } + }).status(200); +}); + +export default router; diff --git a/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts b/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts new file mode 100644 index 00000000..723a5160 --- /dev/null +++ b/src/api/routes/store/published-listings/skus/#sku_id/subscription-plans.ts @@ -0,0 +1,142 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +const skus = new Map([ + [ + "521842865731534868", + [ + { + id: "511651856145973248", + name: "Premium Monthly (Legacy)", + interval: 1, + interval_count: 1, + tax_inclusive: true, + sku_id: "521842865731534868", + currency: "usd", + price: 0, + price_tier: null + }, + { + id: "511651860671627264", + name: "Premium Yearly (Legacy)", + interval: 2, + interval_count: 1, + tax_inclusive: true, + sku_id: "521842865731534868", + currency: "usd", + price: 0, + price_tier: null + } + ] + ], + [ + "521846918637420545", + [ + { + id: "511651871736201216", + name: "Premium Classic Monthly", + interval: 1, + interval_count: 1, + tax_inclusive: true, + sku_id: "521846918637420545", + currency: "usd", + price: 0, + price_tier: null + }, + { + id: "511651876987469824", + name: "Premium Classic Yearly", + interval: 2, + interval_count: 1, + tax_inclusive: true, + sku_id: "521846918637420545", + currency: "usd", + price: 0, + price_tier: null + } + ] + ], + [ + "521847234246082599", + [ + { + id: "642251038925127690", + name: "Premium Quarterly", + interval: 1, + interval_count: 3, + tax_inclusive: true, + sku_id: "521847234246082599", + currency: "usd", + price: 0, + price_tier: null + }, + { + id: "511651880837840896", + name: "Premium Monthly", + interval: 1, + interval_count: 1, + tax_inclusive: true, + sku_id: "521847234246082599", + currency: "usd", + price: 0, + price_tier: null + }, + { + id: "511651885459963904", + name: "Premium Yearly", + interval: 2, + interval_count: 1, + tax_inclusive: true, + sku_id: "521847234246082599", + currency: "usd", + price: 0, + price_tier: null + } + ] + ], + [ + "590663762298667008", + [ + { + id: "590665532894740483", + name: "Server Boost Monthly", + interval: 1, + interval_count: 1, + tax_inclusive: true, + sku_id: "590663762298667008", + discount_price: 0, + currency: "usd", + price: 0, + price_tier: null + }, + { + id: "590665538238152709", + name: "Server Boost Yearly", + interval: 2, + interval_count: 1, + tax_inclusive: true, + sku_id: "590663762298667008", + discount_price: 0, + currency: "usd", + price: 0, + price_tier: null + } + ] + ] +]); + +router.get("/", route({}), async (req: Request, res: Response) => { + // TODO: add the ability to add custom + const { sku_id } = req.params; + + if (!skus.has(sku_id)) { + console.log(`Request for invalid SKU ${sku_id}! Please report this!`); + res.sendStatus(404); + } else { + res.json(skus.get(sku_id)).status(200); + } +}); + +export default router; diff --git a/src/api/routes/teams.ts b/src/api/routes/teams.ts new file mode 100644 index 00000000..7ce3abcb --- /dev/null +++ b/src/api/routes/teams.ts @@ -0,0 +1,11 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + //TODO + res.send([]); +}); + +export default router; diff --git a/src/api/routes/template.ts.disabled b/src/api/routes/template.ts.disabled new file mode 100644 index 00000000..fcc59ef4 --- /dev/null +++ b/src/api/routes/template.ts.disabled @@ -0,0 +1,11 @@ +//TODO: this is a template for a generic route + +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +const router = Router(); + +router.get("/",route({}), async (req: Request, res: Response) => { + res.json({}); +}); + +export default router; diff --git a/src/api/routes/track.ts b/src/api/routes/track.ts new file mode 100644 index 00000000..8556a3ad --- /dev/null +++ b/src/api/routes/track.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.post("/", route({}), (req: Request, res: Response) => { + // TODO: + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/updates.ts b/src/api/routes/updates.ts new file mode 100644 index 00000000..a24e94c1 --- /dev/null +++ b/src/api/routes/updates.ts @@ -0,0 +1,20 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; +import { Config, Release } from "@fosscord/util"; + +const router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { client } = Config.get(); + + const release = await Release.findOneOrFail({ where: { name: client.releases.upstreamVersion } }) + + res.json({ + name: release.name, + pub_date: release.pub_date, + url: release.url, + notes: release.notes + }); +}); + +export default router; diff --git a/src/api/routes/users/#id/index.ts b/src/api/routes/users/#id/index.ts new file mode 100644 index 00000000..bdb1060f --- /dev/null +++ b/src/api/routes/users/#id/index.ts @@ -0,0 +1,13 @@ +import { Router, Request, Response } from "express"; +import { User } from "@fosscord/util"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const { id } = req.params; + + res.json(await User.getPublicUser(id)); +}); + +export default router; diff --git a/src/api/routes/users/#id/profile.ts b/src/api/routes/users/#id/profile.ts new file mode 100644 index 00000000..7a995a8c --- /dev/null +++ b/src/api/routes/users/#id/profile.ts @@ -0,0 +1,58 @@ +import { Router, Request, Response } from "express"; +import { PublicConnectedAccount, PublicUser, User, UserPublic, Member } from "@fosscord/util"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +export interface UserProfileResponse { + user: UserPublic; + connected_accounts: PublicConnectedAccount; + premium_guild_since?: Date; + premium_since?: Date; +} + +router.get("/", route({ test: { response: { body: "UserProfileResponse" } } }), async (req: Request, res: Response) => { + if (req.params.id === "@me") req.params.id = req.user_id; + const user = await User.getPublicUser(req.params.id, { relations: ["connected_accounts"] }); + + let mutual_guilds: object[] = []; + let premium_guild_since; + const requested_member = await Member.find( { where: { id: req.params.id, } }) + const self_member = await Member.find( { where: { id: req.user_id, } }) + + for(const rmem of requested_member) { + if(rmem.premium_since) { + if(premium_guild_since){ + if(premium_guild_since > rmem.premium_since) { + premium_guild_since = rmem.premium_since; + } + } else { + premium_guild_since = rmem.premium_since; + } + } + for(const smem of self_member) { + if (smem.guild_id === rmem.guild_id) { + mutual_guilds.push({id: rmem.guild_id, nick: rmem.nick}) + } + } + } + res.json({ + connected_accounts: user.connected_accounts, + premium_guild_since: premium_guild_since, // TODO + premium_since: user.premium_since, // TODO + mutual_guilds: mutual_guilds, // TODO {id: "", nick: null} when ?with_mutual_guilds=true + user: { + username: user.username, + discriminator: user.discriminator, + id: user.id, + public_flags: user.public_flags, + avatar: user.avatar, + accent_color: user.accent_color, + banner: user.banner, + bio: req.user_bot ? null : user.bio, + bot: user.bot + } + }); +}); + +export default router; diff --git a/src/api/routes/users/#id/relationships.ts b/src/api/routes/users/#id/relationships.ts new file mode 100644 index 00000000..61655c25 --- /dev/null +++ b/src/api/routes/users/#id/relationships.ts @@ -0,0 +1,41 @@ +import { Router, Request, Response } from "express"; +import { User } from "@fosscord/util"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +export interface UserRelationsResponse { + object: { + id?: string, + username?: string, + avatar?: string, + discriminator?: string, + public_flags?: number + } +} + + +router.get("/", route({ test: { response: { body: "UserRelationsResponse" } } }), async (req: Request, res: Response) => { + let mutual_relations: object[] = []; + const requested_relations = await User.findOneOrFail({ + where: { id: req.params.id }, + relations: ["relationships"] + }); + const self_relations = await User.findOneOrFail({ + where: { id: req.user_id }, + relations: ["relationships"] + }); + + for(const rmem of requested_relations.relationships) { + for(const smem of self_relations.relationships) + if (rmem.to_id === smem.to_id && rmem.type === 1 && rmem.to_id !== req.user_id) { + let relation_user = await User.getPublicUser(rmem.to_id) + + mutual_relations.push({id: relation_user.id, username: relation_user.username, avatar: relation_user.avatar, discriminator: relation_user.discriminator, public_flags: relation_user.public_flags}) + } + } + + res.json(mutual_relations) +}); + +export default router; diff --git a/src/api/routes/users/@me/activities/statistics/applications.ts b/src/api/routes/users/@me/activities/statistics/applications.ts new file mode 100644 index 00000000..014df8af --- /dev/null +++ b/src/api/routes/users/@me/activities/statistics/applications.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.get("/", route({}), (req: Request, res: Response) => { + // TODO: + res.json([]).status(200); +}); + +export default router; diff --git a/src/api/routes/users/@me/affinities/guilds.ts b/src/api/routes/users/@me/affinities/guilds.ts new file mode 100644 index 00000000..8d744744 --- /dev/null +++ b/src/api/routes/users/@me/affinities/guilds.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.get("/", route({}), (req: Request, res: Response) => { + // TODO: + res.status(200).send({ guild_affinities: [] }); +}); + +export default router; diff --git a/src/api/routes/users/@me/affinities/users.ts b/src/api/routes/users/@me/affinities/users.ts new file mode 100644 index 00000000..6d4e4991 --- /dev/null +++ b/src/api/routes/users/@me/affinities/users.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.get("/", route({}), (req: Request, res: Response) => { + // TODO: + res.status(200).send({ user_affinities: [], inverse_user_affinities: [] }); +}); + +export default router; diff --git a/src/api/routes/users/@me/applications/#app_id/entitlements.ts b/src/api/routes/users/@me/applications/#app_id/entitlements.ts new file mode 100644 index 00000000..411e95bf --- /dev/null +++ b/src/api/routes/users/@me/applications/#app_id/entitlements.ts @@ -0,0 +1,11 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + //TODO + res.json([]).status(200); +}); + +export default router; diff --git a/src/api/routes/users/@me/billing/country-code.ts b/src/api/routes/users/@me/billing/country-code.ts new file mode 100644 index 00000000..33d40796 --- /dev/null +++ b/src/api/routes/users/@me/billing/country-code.ts @@ -0,0 +1,11 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + //TODO + res.json({ country_code: "US" }).status(200); +}); + +export default router; diff --git a/src/api/routes/users/@me/billing/payment-sources.ts b/src/api/routes/users/@me/billing/payment-sources.ts new file mode 100644 index 00000000..014df8af --- /dev/null +++ b/src/api/routes/users/@me/billing/payment-sources.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.get("/", route({}), (req: Request, res: Response) => { + // TODO: + res.json([]).status(200); +}); + +export default router; diff --git a/src/api/routes/users/@me/billing/subscriptions.ts b/src/api/routes/users/@me/billing/subscriptions.ts new file mode 100644 index 00000000..411e95bf --- /dev/null +++ b/src/api/routes/users/@me/billing/subscriptions.ts @@ -0,0 +1,11 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + //TODO + res.json([]).status(200); +}); + +export default router; diff --git a/src/api/routes/users/@me/channels.ts b/src/api/routes/users/@me/channels.ts new file mode 100644 index 00000000..ad483529 --- /dev/null +++ b/src/api/routes/users/@me/channels.ts @@ -0,0 +1,20 @@ +import { Request, Response, Router } from "express"; +import { Recipient, DmChannelDTO, Channel, DmChannelCreateSchema } from "@fosscord/util"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const recipients = await Recipient.find({ + where: { user_id: req.user_id, closed: false }, + relations: ["channel", "channel.recipients"] + }); + res.json(await Promise.all(recipients.map((r) => DmChannelDTO.from(r.channel, [req.user_id])))); +}); + +router.post("/", route({ body: "DmChannelCreateSchema" }), async (req: Request, res: Response) => { + const body = req.body as DmChannelCreateSchema; + res.json(await Channel.createDMChannel(body.recipients, req.user_id, body.name)); +}); + +export default router; diff --git a/src/api/routes/users/@me/connections.ts b/src/api/routes/users/@me/connections.ts new file mode 100644 index 00000000..411e95bf --- /dev/null +++ b/src/api/routes/users/@me/connections.ts @@ -0,0 +1,11 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + //TODO + res.json([]).status(200); +}); + +export default router; diff --git a/src/api/routes/users/@me/delete.ts b/src/api/routes/users/@me/delete.ts new file mode 100644 index 00000000..1d81c2b9 --- /dev/null +++ b/src/api/routes/users/@me/delete.ts @@ -0,0 +1,32 @@ +import { Router, Request, Response } from "express"; +import { Guild, Member, User } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import bcrypt from "bcrypt"; +import { HTTPError } from "@fosscord/util"; + +const router = Router(); + +router.post("/", route({}), async (req: Request, res: Response) => { + const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["data"] }); //User object + let correctpass = true; + + if (user.data.hash) { + // guest accounts can delete accounts without password + correctpass = await bcrypt.compare(req.body.password, user.data.hash); + if (!correctpass) { + throw new HTTPError(req.t("auth:login.INVALID_PASSWORD")); + } + } + + // TODO: decrement guild member count + + if (correctpass) { + await Promise.all([User.delete({ id: req.user_id }), Member.delete({ id: req.user_id })]); + + res.sendStatus(204); + } else { + res.sendStatus(401); + } +}); + +export default router; diff --git a/src/api/routes/users/@me/devices.ts b/src/api/routes/users/@me/devices.ts new file mode 100644 index 00000000..8556a3ad --- /dev/null +++ b/src/api/routes/users/@me/devices.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.post("/", route({}), (req: Request, res: Response) => { + // TODO: + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/users/@me/disable.ts b/src/api/routes/users/@me/disable.ts new file mode 100644 index 00000000..4aff3774 --- /dev/null +++ b/src/api/routes/users/@me/disable.ts @@ -0,0 +1,26 @@ +import { User } from "@fosscord/util"; +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; +import bcrypt from "bcrypt"; + +const router = Router(); + +router.post("/", route({}), async (req: Request, res: Response) => { + const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["data"] }); //User object + let correctpass = true; + + if (user.data.hash) { + // guest accounts can delete accounts without password + correctpass = await bcrypt.compare(req.body.password, user.data.hash); //Not sure if user typed right password :/ + } + + if (correctpass) { + await User.update({ id: req.user_id }, { disabled: true }); + + res.sendStatus(204); + } else { + res.status(400).json({ message: "Password does not match", code: 50018 }); + } +}); + +export default router; diff --git a/src/api/routes/users/@me/email-settings.ts b/src/api/routes/users/@me/email-settings.ts new file mode 100644 index 00000000..3114984e --- /dev/null +++ b/src/api/routes/users/@me/email-settings.ts @@ -0,0 +1,20 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.get("/", route({}), (req: Request, res: Response) => { + // TODO: + res.json({ + categories: { + social: true, + communication: true, + tips: false, + updates_and_announcements: false, + recommendations_and_events: false + }, + initialized: false + }).status(200); +}); + +export default router; diff --git a/src/api/routes/users/@me/entitlements.ts b/src/api/routes/users/@me/entitlements.ts new file mode 100644 index 00000000..341e2b4c --- /dev/null +++ b/src/api/routes/users/@me/entitlements.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.get("/gifts", route({}), (req: Request, res: Response) => { + // TODO: + res.json([]).status(200); +}); + +export default router; diff --git a/src/api/routes/users/@me/guilds.ts b/src/api/routes/users/@me/guilds.ts new file mode 100644 index 00000000..4d4fccd4 --- /dev/null +++ b/src/api/routes/users/@me/guilds.ts @@ -0,0 +1,57 @@ +import { Router, Request, Response } from "express"; +import { Guild, Member, User, GuildDeleteEvent, GuildMemberRemoveEvent, emitEvent, Config } from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import { route } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + const members = await Member.find({ relations: ["guild"], where: { id: req.user_id } }); + + let guild = members.map((x) => x.guild); + + if ("with_counts" in req.query && req.query.with_counts == "true") { + guild = []; // TODO: Load guilds with user role permissions number + } + + res.json(guild); +}); + +// user send to leave a certain guild +router.delete("/:guild_id", route({}), async (req: Request, res: Response) => { + const { autoJoin } = Config.get().guild; + const { guild_id } = req.params; + const guild = await Guild.findOneOrFail({ where: { id: guild_id }, select: ["owner_id"] }); + + if (!guild) throw new HTTPError("Guild doesn't exist", 404); + if (guild.owner_id === req.user_id) throw new HTTPError("You can't leave your own guild", 400); + if (autoJoin.enabled && autoJoin.guilds.includes(guild_id) && !autoJoin.canLeave) { + throw new HTTPError("You can't leave instance auto join guilds", 400); + } + + await Promise.all([ + Member.delete({ id: req.user_id, guild_id: guild_id }), + emitEvent({ + event: "GUILD_DELETE", + data: { + id: guild_id + }, + user_id: req.user_id + } as GuildDeleteEvent) + ]); + + const user = await User.getPublicUser(req.user_id); + + await emitEvent({ + event: "GUILD_MEMBER_REMOVE", + data: { + guild_id: guild_id, + user: user + }, + guild_id: guild_id + } as GuildMemberRemoveEvent); + + return res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/users/@me/guilds/premium/subscription-slots.ts b/src/api/routes/users/@me/guilds/premium/subscription-slots.ts new file mode 100644 index 00000000..014df8af --- /dev/null +++ b/src/api/routes/users/@me/guilds/premium/subscription-slots.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.get("/", route({}), (req: Request, res: Response) => { + // TODO: + res.json([]).status(200); +}); + +export default router; diff --git a/src/api/routes/users/@me/index.ts b/src/api/routes/users/@me/index.ts new file mode 100644 index 00000000..7d095451 --- /dev/null +++ b/src/api/routes/users/@me/index.ts @@ -0,0 +1,72 @@ +import { Router, Request, Response } from "express"; +import { User, PrivateUserProjection, emitEvent, UserUpdateEvent, handleFile, FieldErrors, UserModifySchema } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import bcrypt from "bcrypt"; +import { OrmUtils, generateToken } from "@fosscord/util"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + res.json(await User.findOne({ select: PrivateUserProjection, where: { id: req.user_id } })); +}); + +router.patch("/", route({ body: "UserModifySchema" }), async (req: Request, res: Response) => { + var token = null as any; + const body = req.body as UserModifySchema; + + if (body.avatar) body.avatar = await handleFile(`/avatars/${req.user_id}`, body.avatar as string); + if (body.banner) body.banner = await handleFile(`/banners/${req.user_id}`, body.banner as string); + let user = await User.findOneOrFail({ where: { id: req.user_id }, select: [...PrivateUserProjection, "data"] }); + + if (body.password) { + if (user.data?.hash) { + const same_password = await bcrypt.compare(body.password, user.data.hash || ""); + if (!same_password) { + throw FieldErrors({ password: { message: req.t("auth:login.INVALID_PASSWORD"), code: "INVALID_PASSWORD" } }); + } + } else { + user.data.hash = await bcrypt.hash(body.password, 12); + } + } + + if (body.new_password) { + if (!body.password && !user.email) { + throw FieldErrors({ + password: { code: "BASE_TYPE_REQUIRED", message: req.t("common:field.BASE_TYPE_REQUIRED") } + }); + } + user.data.hash = await bcrypt.hash(body.new_password, 12); + user.data.valid_tokens_since = new Date(); + token = await generateToken(user.id) as string; + } + + if(body.username){ + let check_username = body?.username?.replace(/\s/g, ''); + if(!check_username) { + throw FieldErrors({ + username: { code: "BASE_TYPE_REQUIRED", message: req.t("common:field.BASE_TYPE_REQUIRED") } + }); + } + } + + user = OrmUtils.mergeDeep(user, body); + await user.save(); + + // @ts-ignore + delete user.data; + + // TODO: send update member list event in gateway + await emitEvent({ + event: "USER_UPDATE", + user_id: req.user_id, + data: user + } as UserUpdateEvent); + + res.json({ + ...user, + token + }); +}); + +export default router; +// {"message": "Invalid two-factor code", "code": 60008} diff --git a/src/api/routes/users/@me/library.ts b/src/api/routes/users/@me/library.ts new file mode 100644 index 00000000..7ac13bae --- /dev/null +++ b/src/api/routes/users/@me/library.ts @@ -0,0 +1,11 @@ +import { Router, Response, Request } from "express"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.get("/", route({}), (req: Request, res: Response) => { + // TODO: + res.status(200).send([]); +}); + +export default router; diff --git a/src/api/routes/users/@me/mfa/codes.ts b/src/api/routes/users/@me/mfa/codes.ts new file mode 100644 index 00000000..4224a1c0 --- /dev/null +++ b/src/api/routes/users/@me/mfa/codes.ts @@ -0,0 +1,45 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +import { BackupCode, Config, FieldErrors, generateMfaBackupCodes, MfaCodesSchema, User } from "@fosscord/util"; +import bcrypt from "bcrypt"; + +const router = Router(); + +// TODO: This route is replaced with users/@me/mfa/codes-verification in newer clients + +router.post("/", route({ body: "MfaCodesSchema" }), async (req: Request, res: Response) => { + const { password, regenerate } = req.body as MfaCodesSchema; + + const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["data"] }); + + if (!await bcrypt.compare(password, user.data.hash || "")) { + throw FieldErrors({ password: { message: req.t("auth:login.INVALID_PASSWORD"), code: "INVALID_PASSWORD" } }); + } + + var codes: BackupCode[]; + if (regenerate && Config.get().security.twoFactor.generateBackupCodes) { + await BackupCode.update( + { user: { id: req.user_id } }, + { expired: true } + ); + + codes = generateMfaBackupCodes(req.user_id); + await Promise.all(codes.map(x => x.save())); + } + else { + codes = await BackupCode.find({ + where: { + user: { + id: req.user_id, + }, + expired: false + } + }); + } + + return res.json({ + backup_codes: codes.map(x => ({ ...x, expired: undefined })), + }) +}); + +export default router; diff --git a/src/api/routes/users/@me/mfa/totp/disable.ts b/src/api/routes/users/@me/mfa/totp/disable.ts new file mode 100644 index 00000000..2fe9355c --- /dev/null +++ b/src/api/routes/users/@me/mfa/totp/disable.ts @@ -0,0 +1,41 @@ +import { Router, Request, Response } from "express"; +import { route } from "@fosscord/api"; +import { verifyToken } from 'node-2fa'; +import { HTTPError } from "lambert-server"; +import { User, generateToken, BackupCode, TotpDisableSchema } from "@fosscord/util"; + +const router = Router(); + +router.post("/", route({ body: "TotpDisableSchema" }), async (req: Request, res: Response) => { + const body = req.body as TotpDisableSchema; + + const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["totp_secret"] }); + + const backup = await BackupCode.findOne({ where: { code: body.code } }); + if (!backup) { + const ret = verifyToken(user.totp_secret!, body.code); + if (!ret || ret.delta != 0) + throw new HTTPError(req.t("auth:login.INVALID_TOTP_CODE"), 60008); + } + + await User.update( + { id: req.user_id }, + { + mfa_enabled: false, + totp_secret: "", + }, + ); + + await BackupCode.update( + { user: { id: req.user_id } }, + { + expired: true, + } + ); + + return res.json({ + token: await generateToken(user.id), + }); +}); + +export default router; \ No newline at end of file diff --git a/src/api/routes/users/@me/mfa/totp/enable.ts b/src/api/routes/users/@me/mfa/totp/enable.ts new file mode 100644 index 00000000..ac668d1d --- /dev/null +++ b/src/api/routes/users/@me/mfa/totp/enable.ts @@ -0,0 +1,48 @@ +import { Router, Request, Response } from "express"; +import { User, generateToken, BackupCode, generateMfaBackupCodes, Config, TotpEnableSchema } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import bcrypt from "bcrypt"; +import { HTTPError } from "lambert-server"; +import { verifyToken } from 'node-2fa'; + +const router = Router(); + +router.post("/", route({ body: "TotpEnableSchema" }), async (req: Request, res: Response) => { + const body = req.body as TotpEnableSchema; + + const user = await User.findOneOrFail({ where: { id: req.user_id }, select: ["data"] }); + + // TODO: Are guests allowed to enable 2fa? + if (user.data.hash) { + if (!await bcrypt.compare(body.password, user.data.hash)) { + throw new HTTPError(req.t("auth:login.INVALID_PASSWORD")); + } + } + + if (!body.secret) + throw new HTTPError(req.t("auth:login.INVALID_TOTP_SECRET"), 60005); + + if (!body.code) + throw new HTTPError(req.t("auth:login.INVALID_TOTP_CODE"), 60008); + + if (verifyToken(body.secret, body.code)?.delta != 0) + throw new HTTPError(req.t("auth:login.INVALID_TOTP_CODE"), 60008); + + let backup_codes: BackupCode[] = []; + if (Config.get().security.twoFactor.generateBackupCodes) { + backup_codes = generateMfaBackupCodes(req.user_id); + await Promise.all(backup_codes.map(x => x.save())); + } + + await User.update( + { id: req.user_id }, + { mfa_enabled: true, totp_secret: body.secret } + ); + + res.send({ + token: await generateToken(user.id), + backup_codes: backup_codes.map(x => ({ ...x, expired: undefined })), + }); +}); + +export default router; \ No newline at end of file diff --git a/src/api/routes/users/@me/notes.ts b/src/api/routes/users/@me/notes.ts new file mode 100644 index 00000000..f938f088 --- /dev/null +++ b/src/api/routes/users/@me/notes.ts @@ -0,0 +1,60 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; +import { User, Note, emitEvent, Snowflake } from "@fosscord/util"; + +const router: Router = Router(); + +router.get("/:id", route({}), async (req: Request, res: Response) => { + const { id } = req.params; + + const note = await Note.findOneOrFail({ + where: { + owner: { id: req.user_id }, + target: { id: id }, + } + }); + + return res.json({ + note: note?.content, + note_user_id: id, + user_id: req.user_id, + }); +}); + +router.put("/:id", route({}), async (req: Request, res: Response) => { + const { id } = req.params; + const owner = await User.findOneOrFail({ where: { id: req.user_id } }); + const target = await User.findOneOrFail({ where: { id: id } }); //if noted user does not exist throw + const { note } = req.body; + + if (note && note.length) { + // upsert a note + if (await Note.findOne({ where: { owner: { id: owner.id }, target: { id: target.id } } })) { + Note.update( + { owner: { id: owner.id }, target: { id: target.id } }, + { owner, target, content: note } + ); + } + else { + Note.insert( + { id: Snowflake.generate(), owner, target, content: note } + ); + } + } + else { + await Note.delete({ owner: { id: owner.id }, target: { id: target.id } }); + } + + await emitEvent({ + event: "USER_NOTE_UPDATE", + data: { + note: note, + id: target.id + }, + user_id: owner.id, + }); + + return res.status(204); +}); + +export default router; diff --git a/src/api/routes/users/@me/relationships.ts b/src/api/routes/users/@me/relationships.ts new file mode 100644 index 00000000..f7464b99 --- /dev/null +++ b/src/api/routes/users/@me/relationships.ts @@ -0,0 +1,204 @@ +import { + RelationshipAddEvent, + User, + PublicUserProjection, + RelationshipType, + RelationshipRemoveEvent, + emitEvent, + Relationship, + Config +} from "@fosscord/util"; +import { Router, Response, Request } from "express"; +import { HTTPError } from "@fosscord/util"; +import { DiscordApiErrors } from "@fosscord/util"; +import { route } from "@fosscord/api"; +import { OrmUtils } from "@fosscord/util"; + +const router = Router(); + +const userProjection: (keyof User)[] = ["relationships", ...PublicUserProjection]; + +router.get("/", route({}), async (req: Request, res: Response) => { + const user = await User.findOneOrFail({ + where: { id: req.user_id }, + relations: ["relationships", "relationships.to"], + select: ["relationships"] + }); + + //TODO DTO + const related_users = user.relationships.map((r) => { + return { + id: r.to.id, + type: r.type, + nickname: null, + user: r.to.toPublicUser() + }; + }); + + return res.json(related_users); +}); + +router.put("/:id", route({ body: "RelationshipPutSchema" }), async (req: Request, res: Response) => { + return await updateRelationship( + req, + res, + await User.findOneOrFail({ where: { id: req.params.id }, relations: ["relationships", "relationships.to"], select: userProjection }), + req.body.type ?? RelationshipType.friends + ); +}); + +router.post("/", route({ body: "RelationshipPostSchema" }), async (req: Request, res: Response) => { + return await updateRelationship( + req, + res, + await User.findOneOrFail({ + relations: ["relationships", "relationships.to"], + select: userProjection, + where: { + discriminator: String(req.body.discriminator).padStart(4, "0"), //Discord send the discriminator as integer, we need to add leading zeroes + username: req.body.username + } + }), + req.body.type + ); +}); + +router.delete("/:id", route({}), async (req: Request, res: Response) => { + const { id } = req.params; + if (id === req.user_id) throw new HTTPError("You can't remove yourself as a friend"); + + const user = await User.findOneOrFail({ where: { id: req.user_id }, select: userProjection, relations: ["relationships"] }); + const friend = await User.findOneOrFail({ where: { id: id }, select: userProjection, relations: ["relationships"] }); + + const relationship = user.relationships.find((x) => x.to_id === id); + const friendRequest = friend.relationships.find((x) => x.to_id === req.user_id); + + if (!relationship) throw new HTTPError("You are not friends with the user", 404); + if (relationship?.type === RelationshipType.blocked) { + // unblock user + + await Promise.all([ + Relationship.delete({ id: relationship.id }), + emitEvent({ + event: "RELATIONSHIP_REMOVE", + user_id: req.user_id, + data: relationship.toPublicRelationship() + } as RelationshipRemoveEvent) + ]); + return res.sendStatus(204); + } + if (friendRequest && friendRequest.type !== RelationshipType.blocked) { + await Promise.all([ + Relationship.delete({ id: friendRequest.id }), + await emitEvent({ + event: "RELATIONSHIP_REMOVE", + data: friendRequest.toPublicRelationship(), + user_id: id + } as RelationshipRemoveEvent) + ]); + } + + await Promise.all([ + Relationship.delete({ id: relationship.id }), + emitEvent({ + event: "RELATIONSHIP_REMOVE", + data: relationship.toPublicRelationship(), + user_id: req.user_id + } as RelationshipRemoveEvent) + ]); + + return res.sendStatus(204); +}); + +export default router; + +async function updateRelationship(req: Request, res: Response, friend: User, type: RelationshipType) { + const id = friend.id; + if (id === req.user_id) throw new HTTPError("You can't add yourself as a friend"); + + const user = await User.findOneOrFail({ + where: { id: req.user_id }, + relations: ["relationships", "relationships.to"], + select: userProjection + }); + + let relationship = user.relationships.find((x) => x.to_id === id); + const friendRequest = friend.relationships.find((x) => x.to_id === req.user_id); + + // TODO: you can add infinitely many blocked users (should this be prevented?) + if (type === RelationshipType.blocked) { + if (relationship) { + if (relationship.type === RelationshipType.blocked) throw new HTTPError("You already blocked the user"); + relationship.type = RelationshipType.blocked; + await relationship.save(); + } else { + relationship = await (OrmUtils.mergeDeep(new Relationship(), { to_id: id, type: RelationshipType.blocked, from_id: req.user_id }) as Relationship).save(); + } + + if (friendRequest && friendRequest.type !== RelationshipType.blocked) { + await Promise.all([ + Relationship.delete({ id: friendRequest.id }), + emitEvent({ + event: "RELATIONSHIP_REMOVE", + data: friendRequest.toPublicRelationship(), + user_id: id + } as RelationshipRemoveEvent) + ]); + } + + await emitEvent({ + event: "RELATIONSHIP_ADD", + data: relationship.toPublicRelationship(), + user_id: req.user_id + } as RelationshipAddEvent); + + return res.sendStatus(204); + } + + const { maxFriends } = Config.get().limits.user; + if (user.relationships.length >= maxFriends) throw DiscordApiErrors.MAXIMUM_FRIENDS.withParams(maxFriends); + + let incoming_relationship = OrmUtils.mergeDeep(new Relationship(), { nickname: undefined, type: RelationshipType.incoming, to: user, from: friend }); + let outgoing_relationship = OrmUtils.mergeDeep(new Relationship(), { + nickname: undefined, + type: RelationshipType.outgoing, + to: friend, + from: user + }); + + if (friendRequest) { + if (friendRequest.type === RelationshipType.blocked) throw new HTTPError("The user blocked you"); + if (friendRequest.type === RelationshipType.friends) throw new HTTPError("You are already friends with the user"); + // accept friend request + incoming_relationship = friendRequest as any; //TODO: checkme, any cast + incoming_relationship.type = RelationshipType.friends; + } + + if (relationship) { + if (relationship.type === RelationshipType.outgoing) throw new HTTPError("You already sent a friend request"); + if (relationship.type === RelationshipType.blocked) throw new HTTPError("Unblock the user before sending a friend request"); + if (relationship.type === RelationshipType.friends) throw new HTTPError("You are already friends with the user"); + outgoing_relationship = relationship as any; //TODO: checkme, any cast + outgoing_relationship.type = RelationshipType.friends; + } + + await Promise.all([ + incoming_relationship.save(), + outgoing_relationship.save(), + emitEvent({ + event: "RELATIONSHIP_ADD", + data: outgoing_relationship.toPublicRelationship(), + user_id: req.user_id + } as RelationshipAddEvent), + emitEvent({ + event: "RELATIONSHIP_ADD", + data: { + ...incoming_relationship.toPublicRelationship(), + should_notify: true + }, + user_id: id + } as RelationshipAddEvent) + ]); + + return res.sendStatus(204); +} diff --git a/src/api/routes/users/@me/settings.ts b/src/api/routes/users/@me/settings.ts new file mode 100644 index 00000000..7578d36e --- /dev/null +++ b/src/api/routes/users/@me/settings.ts @@ -0,0 +1,18 @@ +import { Router, Response, Request } from "express"; +import { User, UserSettings } from "@fosscord/util"; +import { route } from "@fosscord/api"; + +const router = Router(); + +router.patch("/", route({ body: "UserSettingsSchema" }), async (req: Request, res: Response) => { + const body = req.body as UserSettings; + if (body.locale === "en") body.locale = "en-US"; // fix discord client crash on unkown locale + + const user = await User.findOneOrFail({ where: { id: req.user_id, bot: false }, relations: ["settings"] }); + user.settings = { ...user.settings, ...body } as UserSettings; + await user.save(); + + res.sendStatus(204); +}); + +export default router; diff --git a/src/api/routes/voice/regions.ts b/src/api/routes/voice/regions.ts new file mode 100644 index 00000000..4de304ee --- /dev/null +++ b/src/api/routes/voice/regions.ts @@ -0,0 +1,11 @@ +import { Router, Request, Response } from "express"; +import { getIpAdress, route } from "@fosscord/api"; +import { getVoiceRegions } from "@fosscord/api"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + res.json(await getVoiceRegions(getIpAdress(req), true)); //vip true? +}); + +export default router; diff --git a/src/api/start.ts b/src/api/start.ts new file mode 100644 index 00000000..9ba198e7 --- /dev/null +++ b/src/api/start.ts @@ -0,0 +1,36 @@ +process.on("uncaughtException", console.error); +process.on("unhandledRejection", console.error); + +import { config } from "dotenv"; +config(); +import { FosscordServer } from "./Server"; +import cluster from "cluster"; +import os from "os"; +let cores = 1; +try { + cores = Number(process.env.THREADS) || os.cpus().length; +} catch { + console.log("[API] Failed to get thread count! Using 1...") +} + +if (cluster.isMaster && process.env.NODE_ENV == "production") { + console.log(`Primary ${process.pid} is running`); + + // Fork workers. + for (let i = 0; i < cores; i++) { + cluster.fork(); + } + + cluster.on("exit", (worker, code, signal) => { + console.log(`worker ${worker.process.pid} died, restart worker`); + cluster.fork(); + }); +} else { + let port = Number(process.env.PORT) || 3001; + + const server = new FosscordServer({ port }); + server.start().catch(console.error); + + // @ts-ignore + global.server = server; +} diff --git a/src/api/util/entities/AssetCacheItem.ts b/src/api/util/entities/AssetCacheItem.ts new file mode 100644 index 00000000..160dece6 --- /dev/null +++ b/src/api/util/entities/AssetCacheItem.ts @@ -0,0 +1,3 @@ +export class AssetCacheItem { + constructor(public Key: string, public FilePath: string = "", public Headers: any = null as any) {} +} \ No newline at end of file diff --git a/src/api/util/entities/blockedEmailDomains.txt b/src/api/util/entities/blockedEmailDomains.txt new file mode 100644 index 00000000..eb88305d --- /dev/null +++ b/src/api/util/entities/blockedEmailDomains.txt @@ -0,0 +1,123978 @@ +0-00.usa.cc +0-180.com +0-30-24.com +0-420.com +0-900.com +0-aa.com +0-attorney.com +0-mail.com +0-z.xyz +00.msk.ru +00.pe +000000pay.com +00043015.com +000476.com +000521.xyz +000777.info +00082aa.com +00082cc.com +00082ff.com +00082ii.com +00082mm.com +00082rr.com +00082ss.com +00082uu.com +00082xx.com +00082zz.com +000865b.com +000865e.com +000865g.com +000865j.com +0009827.com +000av.app +000br88.com +000xxoo.com +001.igg.biz +0010.monster +0018k7.com +001913.com +0019k7.com +001xs.net +001xs.org +001xs.xyz +002.city +002288211.com +002r.com +002t.com +0031casino.com +003271.com +0033.pl +003388211.com +0039.cf +0039.ga +0039.gq +0039.ml +003919.com +003j.com +004697.com +004k.com +004r.com +005005.xyz +005588211.com +0058.ru +005f4.xyz +006j.com +006o.com +006z.com +007.surf +007946.com +007948.com +007dotcom.com +007game.ru +007security.com +008106.com +0083015.com +008g8662shjel9p.xyz +0094445.com +009988211.com +009qs.com +00b2bcr51qv59xst2.cf +00b2bcr51qv59xst2.ga +00b2bcr51qv59xst2.gq +00b2bcr51qv59xst2.ml +00b2bcr51qv59xst2.tk +00daipai.com +00g0.com +00reviews.com +00xht.com +01-lund.ru +0100110tomachine.com +01011099.com +0101888dns.com +0104445.com +01080.ru +010880.com +01092019.ru +010pc28.com +010xfhs.com +01106.monster +0111vns.com +01122200.com +01122233.com +01122255.com +01133322.com +01133333.com +01133377.com +01144422.com +01144488.com +01144499.com +01155555.com +0124445.com +0134445.com +01428570.xyz +01502.monster +0164445.com +0168.cd +01689306707.mobi +0174445.com +0184445.com +0188.info +0188019.com +01911.ru +019352.com +019625.com +0199902.com +0199903.com +0199906.com +0199908.com +0199912.com +0199917.com +0199918.com +0199919.com +0199920.com +0199921.com +0199923.com +0199924.com +0199926.com +0199930.com +0199931.com +0199934.com +0199935.com +0199937.com +0199938.com +0199941.com +0199942.com +0199945.com +0199946.com +0199947.com +0199948.com +0199949.com +0199950.com +0199952.com +0199954.com +0199956.com +0199959.com +0199960.com +0199961.com +0199963.com +0199965.com +0199968.com +0199970.com +0199971.com +0199972.com +0199973.com +0199974.com +0199976.com +0199980.com +0199983.com +0199984.com +0199985.com +0199986.com +01bktwi2lzvg05.cf +01bktwi2lzvg05.ga +01bktwi2lzvg05.gq +01bktwi2lzvg05.ml +01bktwi2lzvg05.tk +01g.cloud +01hosting.biz +01mc.ru +01rexell.website +02.pl +020-82278622.com +0204445.com +020yiren.com +020zlgc.com +021-club.live +021-game.live +021-games.live +0212nosorgulama.com +021go.org +021vip.org +0234445.com +02433.monster +02466.cf +02466.ga +02466.gq +02466.ml +02540.xyz +0264445.com +027168.com +0274445.com +02831.monster +02914.monster +0294445.com +02a2k17zaxk9cal.xyz +02bmw.ru +02didi.com +02nss.icu +02rexell.website +02zbji.us +03-genkzmail.ga +0304445.com +0310ww.com +0317123.cn +031803.com +031804.com +031806.com +031823.com +031825.com +031827.com +031829.com +031832.com +031834.com +031836.com +031837.com +031839.com +031845.com +031850.com +031859.com +031870.com +031873.com +031879.com +031892.com +031897.com +031905.com +031906.com +0322.info +03343.monster +0334445.com +0335g.com +0351an.com +0354445.com +0374445.com +039837.com +039mch.info +03group.ru +03rexell.website +03riri.com +03vtg9.us +04.biz +04022019usercontent.cf +0403site01.fun +0403site02.fun +04058.monster +0406.group +0440tlrfm056aznoelu9775.com +0440tvrzee5qzzbpreu8481.com +045.net +04514.monster +0454445.com +046189.icu +04700.xyz +04834.xyz +04840.monster +0484445.com +049335.com +049356.com +04ocdi.us +04rexell.website +04t687ck855wd6u.xyz +050506.com +05088.xyz +0513rl.com +0530fk.com +05379.monster +0543sh.com +0551149.xyz +0553jt.com +0554445.com +05555.monster +05602.monster +05643.monster +0575520.com +0579city.com +058583.com +05873.monster +05didi.com +05gb.com +05net.info +05ovik.com +05rexell.website +0614445.com +061642.icu +0623456.com +0624445.com +062ee.com +062ii.com +062jj.com +062nn.com +0644445.com +06460.monster +064742.com +065260.com +0654445.com +06600.monster +0662dq.com +06961616.xyz +069827.com +069837.com +06inci.xyz +06rexell.website +07-izvestiya.ru +07-vesti.ru +0704445.com +0713wang.com +07157.com +071qs.com +0734445.com +074445.com +074kiu.us +0752baby.com +0754445.com +0755.us +0755baozhuang.com +0759.us +0764445.com +077077.xyz +077112.com +07718888.com +07819.cf +07819.ga +07819.gq +07819.ml +07819.tk +078698.com +0788.info +078qs.com +07900010.com +079827.com +079i080nhj.info +07d.xyz +07didi.com +07habermagazin.com +07lnyi.us +07lxym.info +07rexell.website +07riri.com +07stees.online +08-gazeta.ru +08-life.ru +08-mir.ru +08-novosti.ru +08034.monster +080mail.com +0815.ru +0815.su +08221.monster +08236.monster +082qs.com +0845.ru +084ltxr6.ink +085341.com +0854445.com +08839.club +0884445.com +0888vns.com +08cente.com +08didi.com +08gcla.com +08rexell.website +08ty8.icu +08yft7.us +09090kosmos.site +092092111.com +0924445.com +092hd.com +092kjw.com +0934445.com +093457.com +095cz.com +095ipnone.com +096189.com +096206.com +0964445.com +0974445.com +09796.monster +0984445.com +099837.com +0999vns.com +09cente.com +09e14e.club +09ojsdhad.info +09rexell.website +09stees.online +0a7fk6.info +0accounts.com +0adzp1.us +0ak.org +0an.ru +0aswhv.us +0b3dc612.xyz +0b7zwe.com +0box.eu +0box.net +0c4538c.club +0c5139f.xyz +0cadb.club +0celot.com +0cindcywrokv.cf +0cindcywrokv.ga +0cindcywrokv.gq +0cindcywrokv.ml +0cindcywrokv.tk +0clickemail.com +0clock.net +0clock.org +0costofivf.com +0cv23qjrvmcpt.cf +0cv23qjrvmcpt.ga +0cv23qjrvmcpt.gq +0cv23qjrvmcpt.ml +0cv23qjrvmcpt.tk +0cydlx.stream +0d00.com +0d1vii.us +0d4dcc.xyz +0droow.host +0dyqp.com +0eevsq.online +0ehtkltu0sgd.ga +0ehtkltu0sgd.ml +0ehtkltu0sgd.tk +0experts.com +0f590da1.bounceme.net +0f739b2f.xyz +0fcftwpreu5qvxlnreu5201.com +0fit2z.com +0flxvl.us +0fru8te0xkgfptti.cf +0fru8te0xkgfptti.ga +0fru8te0xkgfptti.gq +0fru8te0xkgfptti.ml +0fru8te0xkgfptti.tk +0fu.com +0fzs7d.us +0gag.com +0gf.com +0h26le75d.pl +0havda.us +0hboy.com +0hcow.com +0hdear.com +0hdxlk.us +0hio.net +0hio.org +0hio0ak.com +0hiolce.com +0hioln.com +0hxoea.us +0i5cjq.us +0icdes.us +0igxcd.us +0ils.net +0ils.org +0ioi.net +0ito9e.us +0iz891s1c1whvw0.xyz +0izyq.us +0jm79.buzz +0jralz2qipvmr3n.ga +0jralz2qipvmr3n.ml +0jralz2qipvmr3n.tk +0jylaegwalss9m6ilvq.cf +0jylaegwalss9m6ilvq.ga +0jylaegwalss9m6ilvq.gq +0jylaegwalss9m6ilvq.ml +0jylaegwalss9m6ilvq.tk +0kj4.us +0kok.net +0kok.org +0l87d.com +0lbs.com +0ld0ak.com +0ld0x.com +0live.org +0ll2au4c8.pl +0lm.com +0lsta7.us +0mel.com +0mfs0mxufjpcfc.cf +0mfs0mxufjpcfc.ga +0mfs0mxufjpcfc.gq +0mfs0mxufjpcfc.ml +0mfs0mxufjpcfc.tk +0mixmail.info +0n0ff.net +0nb9zti01sgz8u2a.cf +0nb9zti01sgz8u2a.ga +0nb9zti01sgz8u2a.gq +0nb9zti01sgz8u2a.ml +0nb9zti01sgz8u2a.tk +0nce.net +0ne0ak.com +0ne0ut.com +0ne3qc.us +0nedrive.cf +0nedrive.ga +0nedrive.gq +0nedrive.ml +0nedrive.tk +0nelce.com +0nes.net +0nes.org +0nlinetova.ru +0nlinetovar.ru +0nly.org +0nrg.com +0nshwb.club +0nshwb.online +0o9.cc +0oxgvfdufyydergd.cf +0oxgvfdufyydergd.ga +0oxgvfdufyydergd.gq +0oxgvfdufyydergd.ml +0oxgvfdufyydergd.tk +0penhouse.com +0peo0pe0.shop +0pkgbj.host +0place.org +0px.com +0qaakx.info +0r0wfuwfteqwmbt.cf +0r0wfuwfteqwmbt.ga +0r0wfuwfteqwmbt.gq +0r0wfuwfteqwmbt.ml +0r0wfuwfteqwmbt.tk +0rdered.com +0rdering.com +0regon.net +0regon.org +0ryjm.us +0seav.com +0sg.net +0sp.me +0swvak.us +0sx.ru +0t31.buzz +0t5123enk41x6v8.xyz +0t6bsc.us +0t9dl4.us +0tct.icu +0tczdl.info +0tdgeh.com +0th-world.com +0th-world.net +0th-world.org +0tinak9zyvf.cf +0tinak9zyvf.ga +0tinak9zyvf.gq +0tinak9zyvf.ml +0tinak9zyvf.tk +0tk8a3a1q4t94.space +0tl.org +0to6oiry4ghhscmlokt.cf +0to6oiry4ghhscmlokt.ga +0to6oiry4ghhscmlokt.gq +0to6oiry4ghhscmlokt.ml +0to6oiry4ghhscmlokt.tk +0u.ro +0ub2je.us +0ulook.com +0utln.com +0uxpgdvol9n.cf +0uxpgdvol9n.ga +0uxpgdvol9n.gq +0uxpgdvol9n.ml +0uxpgdvol9n.tk +0v.ro +0w.ro +0wenku.com +0wmfq2.us +0wn3d.pl +0wnd.net +0wnd.org +0wos8czt469.ga +0wos8czt469.gq +0wos8czt469.tk +0x00.name +0x000.cf +0x000.ga +0x000.gq +0x000.ml +0x01.gq +0x01.tk +0x02.cf +0x02.ga +0x02.gq +0x02.ml +0x02.tk +0x03.cf +0x03.ga +0x03.gq +0x03.ml +0x03.tk +0x207.info +0x7121.com +0xcafebabe.com +0xpomn.us +0xshincode.de +0ye1sg.us +0za7vhxzpkd.cf +0za7vhxzpkd.ga +0za7vhxzpkd.gq +0za7vhxzpkd.ml +0za7vhxzpkd.tk +0zc7eznv3rsiswlohu.cf +0zc7eznv3rsiswlohu.ml +0zc7eznv3rsiswlohu.tk +0zspgifzbo.cf +0zspgifzbo.ga +0zspgifzbo.gq +0zspgifzbo.ml +0zspgifzbo.tk +1-2-3-direct.com +1-3-3-7.net +1-8.biz +1-800-bajafun.com +1-800-cuba-info.com +1-800-free-spirit.com +1-800-rockies.com +1-800-ski-deal.com +1-800-ski-europe.com +1-j.org +1-million-rubley.xyz +1-up.cf +1-up.ga +1-up.gq +1-up.ml +1-up.tk +1-w.net +1.atm-mi.cf +1.atm-mi.ga +1.atm-mi.gq +1.atm-mi.ml +1.atm-mi.tk +1.batikbantul.com +1.emaile.org +1.emailfake.ml +1.fackme.gq +1.kerl.cf +1.localaddres.com +1.sheikhdailyshop.com +10-minute-mail.com +10-minute-mail.de +10-minuten-mail.de +10-tube.ru +10.dns-cloud.net +1000.frecciarossa.tk +100008544398863.online +10000websites.miasta.pl +1000kostumov.ru +1000kti.xyz +1000mail.com +1000mail.tk +1000maketov.ru +1000rebates.stream +1000rub.com +1000segodnia.ru +100101.ru +1001jobs.org +1001onlinegames.com +1004net.shop +1004toon.shop +1007920195136.icu +100b.live +100b.site +100bet.online +100bet.store +100bet.xyz +100beteto.com +100bets.info +100bets.pro +100biz.ru +100cd.com +100da.ga +100dollarburger.com +100exchange.ru +100female.ru +100guanya.com +100hot.ru +100kkk.ru +100kti.xyz +100lat.com.pl +100likers.com +100lvl.com +100m.hl.cninfo.net +100meterdash.com +100percentlegal.com +100percentlegal.net +100percentlegal.org +100pet.ru +100projets.com +100ra-design.ru +100ss.ru +100stul.ru +100tb-porno.ru +100timebet.com +100vesov24.ru +100vokalistov.ru +100xbet.com +10100.ml +101027.xyz +1010vision.com +10147.monster +10158a.com +101c62b.club +101cs.ru +101ead9a74b8.club +101peoplesearches.com +101pl.us +101price.co +101reasonstoquit.com +101searchen.com +101todaynews.site +1020986532.info +1020pay.com +102508.icu +102comfort.site +102cq.com +102ndarmyband.com +102pc.site +102pinbahis.com +1034493459167.online +1034productions.com +104pinbahis.com +1050.gq +105402.com +105403.com +105415.com +105417.com +105427.com +105452.com +105455.com +105459.com +105463.com +105472.com +105482.com +105495.com +105514.com +105528.com +105554.com +105598.com +10562.app +105632.com +10564.app +10565.app +105672.com +10568.app +10569.app +1056windtreetrace.com +105kg.ru +1069wjrj.com +10746.monster +107dronewaiver.com +107punto7.com +1092df.com +10bet881088.com +10bet88888.com +10bir.com +10bo888810.com +10bwy.space +10cafe.ru +10fpjo.us +10host.top +10kilo.us +10launcheds.com +10m.email +10m.in +10mail.com +10mail.org +10mail.tk +10mi.org +10minut.com.pl +10minut.xyz +10minute-email.com +10minute.cf +10minutemail.be +10minutemail.cf +10minutemail.co.uk +10minutemail.co.za +10minutemail.com +10minutemail.de +10minutemail.ga +10minutemail.gq +10minutemail.info +10minutemail.ml +10minutemail.net +10minutemail.nl +10minutemail.org +10minutemail.pl +10minutemail.pro +10minutemail.ru +10minutemail.us +10minutemail2.com +10minutemailbox.com +10minutemails.in +10minutenemail.de +10minutesmail.com +10minutesmail.fr +10minutesmail.net +10minutesmail.ru +10minutetempemail.com +10minutmail.pl +10mldl2020.com +10mt.cc +10panx.com +10pmdesign.com +10rexell.website +10star.app +10star.casino +10star.events +10star.football +10star.hockey +10star.how +10star.partners +10star.services +10star.soccer +10star.solutions +10star.systems +10star.tennis +10star.tools +10star.wiki +10stupidestmistakes.com +10tasty.com +10th-market-shopp.online +10togel.club +10top-product.ru +10vitalya.fun +10vpn.info +10x.es +10x10-bet.com +10x10.bet +10x10bet.net +10x9.com +10xbet.org +10xtaas.com +10xtbet.com +11-32.cf +11-32.ga +11-32.gq +11-32.ml +11-32.tk +110202.com +1108885.com +1108891.com +1108897.com +110line.biz +110mail.net +111000.shop +1111.ru +11111.ru +1111122223333.xyz +11111cn.com +11113339.com +111151007.buzz +111159129.buzz +1111homes.com +111206.cc +111222.pl +11141z.com +11163.com +1119837.com +111btbt.com +111bubu.com +111hhhh.com +111iiii.com +111lulu.com +111pupu.com +111vt.com +11216812520.com +112211111.com +112288211.com +1122fa.info +11277hd.com +11277jgj.com +11296.monster +112f.net +112soeks.ru +11314.monster +113388211.com +113nu.com +113wo.com +113yo.com +113zi.com +114207.com +114dianying5.xyz +115200.xyz +115588211.com +115mail.net +115mo.com +115nu.com +115ou.com +115su.com +1166t.com +116ss.com +117.yyolf.net +117788211.com +1177d.com +118lbl.com +11974.monster +119988211.com +119mail.com +119winter.com +11a-klass.ru +11ant.org +11b-klass.ru +11booting.com +11cows.com +11fortune.com +11hg.app +11hg.bet +11hhqp.com +11himchistka.ru +11lu.org +11mot.ru +11ngu01.fun +11ngu02.fun +11ngu04.fun +11ngu05.fun +11rexell.website +11shlf.com +11thhourgospelgroup.com +11tn.xyz +11top.xyz +11trafsfdmn.club +11vitalya.icu +11xz.com +11yh.app +12-m.com +12-znakov.ru +12001.net +120mail.com +120wenyi.com +121ac.com +1221locust.com +123-m.com +123-weight-loss.com +123.dns-cloud.net +123.insure +1231247.com +1231253.com +1231254.com +1231266.com +123321asedad.info +1234567.website +123456798.xyz +1234liuhe.com +1236456.com +1239827.com +123amateucam.com +123anddone.com +123box.org +123coupons.com +123erfgb.xyz +123fsb.com +123fxtrading.com +123gal.com +123gmail.com +123hummer.com +123info.ru +123kid.club +123kissanime.net +123mail.ml +123market.com +123movies-to.xyz +123movies.rent +123movies.tours +123moviesfree.one +123moviesonline.club +123moviesweb.com +123parfemy.sk +123salesreps.com +123tlv.com +123w321.ru +123win.club +123worldcup.com +124033.com +12488aaa.com +12488bbb.com +12488cc.com +12488ccc.com +12499aaa.com +12499bb.com +12499bbb.com +12499cc.com +12499ccc.com +125-jahre-kudamm.de +1257.website +125av.net +125mail.cf +125mail.ga +125mail.gq +125mail.ml +125mail.tk +126.com.com +12602.monster +126game.com +126mali.cn +126sell.com +126ue.space +12734.monster +1281984.com +1281988.com +1281989.com +128celtabet.com +128dewa.net +128won.com +129aastersisyii.info +12ab.info +12bet247.mobi +12blogwonders.com +12chans.com +12clones.com +12freebet.com +12funnet.club +12guitar.com +12hosting.net +12houremail.com +12minutemail.com +12minutemail.net +12minutospordia.com +12monkeystattoo.com +12monthsloan1.co.uk +12ny.com +12pkpk.xyz +12playpoker.info +12r81.buzz +12rexell.website +12search.com +12shoe.com +12stelle.com +12steps-to-happiness.ru +12storage.com +12ur8rat.pl +12voice.com +12wqeza.com +13-stones.ru +131009.com +13195.monster +131qs.com +1333337.xyz +1337.email +1337.no +1337xx.best +133mail.cn +135mail.cn +13602.monster +136889.com +1369.ru +1373757.info +137mail.cn +1380.ga +13816.xyz +139.com +13929973100.xyz +13976448255.com +139av.net +13coin.ru +13d940.xyz +13dk.net +13e0.xyz +13fishing.ru +13go.site +13hsv.us +13rexell.website +13sasytkgb0qobwxat.cf +13sasytkgb0qobwxat.ga +13sasytkgb0qobwxat.gq +13sasytkgb0qobwxat.ml +13sasytkgb0qobwxat.tk +140002.com +140unichars.com +14140x3013.xyz +1434f.xyz +144206.com +14546.monster +145484.com +1455a2.xyz +146027.com +147.cl +147gmail.com +1481650.xyz +14895.monster +1490wntj.com +149356.com +149827.com +149837.com +14dayshift.com +14ersposter.com +14f992.xyz +14hgf.us +14n.co.uk +14nikatro.ru +14p.in +14rexell.website +14richiefamous.ru +14ru.com +1500klass.ru +15057700.com +15057722.com +15057755.com +15057777.com +15057799.com +150bc.com +151qs.com +15207.xyz +1531188.net +153369.com +1534625231.xyz +15349.monster +154884.com +156ac.com +156mail.cn +157mail.cn +1580887.com +1581232.com +1581235.com +1581686.com +158877.com +1588pj.com +158av.net +158dj44.com +158dj55.com +158mail.cn +15906.site +15907.site +15908.site +15910.site +15asia.com +15darkyears.com +15qm-mail.red +15qm.com +15rexell.website +1600daily.news +1601617.com +1601619.com +1601628.com +1601629.com +1601646.com +1601654.com +1601656.com +160899.com +161332.com +16178.monster +161936.com +161aaa161.com +161cc161.com +161ee161.com +161fff161.com +161gg161.com +161ii161.com +161jjj161.com +161ooo161.com +161uu161.com +161yyy161.com +1621188.net +163fy.com +163gx.site +16401.monster +16443.monster +164qq.com +16620.xyz +16626.monster +166ac.com +1676.ru +167mail.com +1687300.com +16888star.com +1688daogou.com +168bfo.com +168cyg.com +168hy.xyz +168vegus.net +168wbtoto3.club +16b33d.club +16cnc.com +16didi.com +16ik7egctrkxpn9okr.ga +16ik7egctrkxpn9okr.ml +16ik7egctrkxpn9okr.tk +16kilogramm.ru +16rexell.website +16up.ru +1700599.com +1701host.com +1716000.app +171611.app +171612.app +171616.app +171621.app +171625.app +171626.app +171629.app +171630.app +171631.app +171634.app +171635.app +171637.app +171640.app +171641.app +171644.app +171646.app +171648.app +171650.app +1716555.app +1716666.app +1716777.app +1716888.app +1716999.app +1716aaa.com +1716bbb.com +1716jjj.com +1716kkk.com +1716lll.com +1716www.com +1716xxx.com +172tuan.com +174podarka.ru +1756bb.com +1758indianway.com +1766258.com +1768aa.com +1768cc.com +1769022.com +1769050.com +1769070.com +1769113.com +1769117.com +1769220.com +1769221.com +1769225.com +1769300.com +1769330.com +1769337.com +1769553.com +1769660.com +1769661.com +1769700.com +1769771.com +1769779.com +1769aaa.com +1769bbs.com +1769blog.com +1769book.com +1769ccc.com +1769f.com +1769fff.com +1769h.com +1769kk.com +1769ll.com +1769mp4.com +1769sss.com +1769t.com +1769www.com +1769yy.com +1771716.com +1771719.com +1771724.com +1771727.com +1771745.com +17746980.xyz +1776patriotsupportonline.com +178fo.com +178mem94.monster +179bet.club +17adh.xyz +17co3x74.xyz +17goals.live +17heixiu.com +17moa01.com +17tgo.com +17tgy.com +17upay.com +18-19.cf +18-19.ga +18-19.gq +18-19.ml +18-19.tk +18-9-2.cf +18-9-2.ga +18-9-2.gq +18-9-2.ml +18-9-2.tk +1800-americas.info +1800033.com +1800doorpros.com +1800endo.net +1800formybaby.com +1800waterdamagefranchise.info +1800waterdamagefranchise.net +182100.ru +1824p.com +1824q.com +1824t.com +1824u.com +18273.monster +1828k.com +1831188.net +183carlton.changeip.net +18408180x38.xyz +184717.site +185ac.com +1866sailobx.com +1871188.net +1877production.com +1881182.com +1881185.com +188133756.ru +1881684.com +1888547.com +1888564.com +188881-e.com +188881-g.com +188881-k.com +188881-p.com +188881-s.com +188881-u.com +188881-y.com +188betqq.com +188indobet.me +188ku.club +188liga.onl +188mbsport.net +188xin.com +189.cn +1891188.net +1895photography.com +18a8q82bc.pl +18acabfd.club +18am.ru +18chiks.com +18clubin.com +18clubtw.com +18dealblast.com +18dealnshop.com +18dealscash.com +18dealtires.com +18dno.site +18e95e9.xyz +18ladies.com +18luck.domains +18moa10.net +18pic.com +18seuparolss.space +18siotragola.space +18sotok.ru +18wheeltruckaccidents.com +18x18x.com +18xapp.com +18xdh.com +18xtv.com +19-crimes.ru +190326start.website +1903bjk.net +1913qipai.com +1919-2009ch.pl +1919666.net +191ac.com +19216811.host +19292.monster +193029.com +193120.ru +193283.com +1935hurricane.com +19424445.com +19439.monster +194802.site +194kg7.com +19504445.com +195kai.com +19608037.com +196206.com +196ks.com +1981pc.com +198208.com +1984tee.com +1984yesitsgenocide.org +1985abc.com +1985ken.net +19874445.com +19879.monster +198funds.com +1991955.com +1991956.com +1991957.com +1991958.com +1991959.com +1991972.com +1991973.com +19922.cf +19922.ga +19922.gq +19922.ml +19955355555.com +1998g.com +1999buy.com +1999flowers.info +199accessories.com +199cases.com +19f6cop53ghzrys.xyz +19kysg.ru +19pink.com +19q.ru +19quotes.com +1a-flashgames.info +1abvote.com +1adir.com +1afbwqtl8bcimxioz.cf +1afbwqtl8bcimxioz.ga +1afbwqtl8bcimxioz.gq +1afbwqtl8bcimxioz.ml +1afbwqtl8bcimxioz.tk +1airpods.ru +1amdevsites.xyz +1ank6cw.gmina.pl +1ankh0ngthebjetdc.space +1ano.gratis +1aolmail.com +1apviz.com +1asdasd.com +1asexchat.com +1aujk9.host +1automovers.info +1ayj8yi7lpiksxawav.cf +1ayj8yi7lpiksxawav.ga +1ayj8yi7lpiksxawav.gq +1ayj8yi7lpiksxawav.ml +1ayj8yi7lpiksxawav.tk +1bahisno1.com +1bedpage.com +1betslife.com +1biyabet2020.com +1bizshop.ru +1blackmoon.com +1blueymail.gq +1bola88.com +1bola88.social +1bolaku.biz +1bolaku.club +1bolaku88.com +1boxtv.com +1bstb.ru +1bthd.com +1bup.com +1bx-a.icu +1bxaepy68dgiz63.xyz +1bythetimeweclick.online +1c-spec.ru +1caa4c.club +1cdds.ru +1ce.us +1centdruck.com +1chan.club +1chelper.site +1chsdjk7f.pl +1chuan.com +1ckursy.ru +1claud.site +1clck2.com +1click-me.info +1clou.site +1club4d.com +1clublive.com +1clubpoker.com +1clubslot.com +1cmmit.ru +1cocosmail.co.cc +1cost.ru +1cp3tnzok0nyr4t.xyz +1cw1mszn.pl +1d1c.com +1d6c.club +1dask-raxe.ru +1datingintheusa.com +1dds23.com +1dmedical.com +1dne.com +1dollarwindowshosting.com +1drby3.site +1drive.cf +1drive.ga +1drive.gq +1drv.digital +1dv37p.info +1dxcme.us +1e1kazayaptim.net +1e4e4b.xyz +1e72.com +1e80.com +1ebestday.online +1ec-v.icu +1email.ru +1eo-v.icu +1errz9femsvhqao6.cf +1errz9femsvhqao6.ga +1errz9femsvhqao6.gq +1errz9femsvhqao6.ml +1errz9femsvhqao6.tk +1etp.ru +1euqhmw9xmzn.cf +1euqhmw9xmzn.ga +1euqhmw9xmzn.gq +1euqhmw9xmzn.ml +1euqhmw9xmzn.tk +1exch.live +1eyedg.com +1f3t.com +1f4.xyz +1fa2b.club +1fatbitch.com +1feb3.club +1fedlaprosir.space +1firstdayofa.online +1forthemoney.com +1fsdfdsfsdf.tk +1fv.info +1game.store +1gatwickaccommodation.info +1gdaily-profit.site +1ghosts.com +1ghtyu.com +1gi.info +1gmail.com +1googlemail.com +1gsn.us +1hdbt.com +1hdd.site +1hdek9.us +1heizi.com +1hermesbirkin0.com +1hi.info +1hmoxs72qd.cf +1hmoxs72qd.ga +1hmoxs72qd.ml +1hmoxs72qd.tk +1hotmail.com +1hp0x.us +1hsoagca2euowj3ktc.ga +1hsoagca2euowj3ktc.gq +1hsoagca2euowj3ktc.ml +1hsoagca2euowj3ktc.tk +1hxffe.com +1ifawc.com +1intimshop.ru +1itsoft.site +1jutakg.com +1jypg93t.orge.pl +1kingbetting.com +1kmnorff.com +1kues.info +1l24ac.us +1l9fd.us +1letras.info +1liqu1d.gq +1load-fiiliiies.ru +1lp7j.us +1lv.in +1lvt220yzdgn5z1.xyz +1lwr.us +1mail.ml +1mail.uk.to +1manbet.info +1marsbet.com +1metr.info +1milliondollars.xyz +1minutemedia.com +1mn-u.icu +1mojadieta.ru +1moresurvey.com +1mport.ru +1mqn2g.host +1mspkvfntkn9vxs1oit.cf +1mspkvfntkn9vxs1oit.ga +1mspkvfntkn9vxs1oit.gq +1mspkvfntkn9vxs1oit.ml +1mspkvfntkn9vxs1oit.tk +1mu3.com +1mz.com +1mz.net +1n220ei4n58hht0.xyz +1n2us.us +1nb7.icu +1nenod.xyz +1noc0w.info +1nppx7ykw.pl +1num.ru +1nut.com +1o4nww.us +1oh1.com +1oim.ru +1om.co +1oooo.ru +1ouboutinshoes.com +1ouisvuitton1.com +1ouisvuittonborseit.com +1ouisvuittonfr.com +1p6yx8.us +1pad.de +1palacebet365.com +1pap-company.buzz +1pay-o.club +1pay-s.club +1pay1mypay.ru +1paymy1pay.ru +1penceauction.co.uk +1persian360.site +1pervd.us +1pfeyw.us +1pi.org +1pmok.site +1pornin.xyz +1print-kazan.ru +1printkazan.ru +1pt.net +1pw8qy.us +1qpatglchm1.cf +1qpatglchm1.ga +1qpatglchm1.gq +1qpatglchm1.ml +1qpatglchm1.tk +1qut3i.com +1qwezaa.com +1r7bsm.us +1rentcar.top +1rererer.ru +1richprize.com +1riladg.mil.pl +1rmgqwfno8wplt.cf +1rmgqwfno8wplt.ga +1rmgqwfno8wplt.gq +1rmgqwfno8wplt.ml +1rmgqwfno8wplt.tk +1rnydobtxcgijcfgl.cf +1rnydobtxcgijcfgl.ga +1rnydobtxcgijcfgl.gq +1rnydobtxcgijcfgl.ml +1rnydobtxcgijcfgl.tk +1roff.site +1ru-c.icu +1rumk9woxp1.pl +1rzk1ufcirxtg.ga +1rzk1ufcirxtg.ml +1rzk1ufcirxtg.tk +1rzpdv6y4a5cf5rcmxg.cf +1rzpdv6y4a5cf5rcmxg.ga +1rzpdv6y4a5cf5rcmxg.gq +1rzpdv6y4a5cf5rcmxg.ml +1rzpdv6y4a5cf5rcmxg.tk +1s.fr +1s1uasxaqhm9.cf +1s1uasxaqhm9.ga +1s1uasxaqhm9.gq +1s1uasxaqhm9.ml +1s1uasxaqhm9.tk +1scr.ru +1secmail.com +1secmail.net +1secmail.org +1secmail.xyz +1seria.ru +1sheshobet.site +1shivom.com +1sj2003.com +1slate.com +1soq14.club +1soq14.online +1sourcevideo.net +1spcziorgtfpqdo.cf +1spcziorgtfpqdo.ga +1spcziorgtfpqdo.gq +1spcziorgtfpqdo.ml +1spcziorgtfpqdo.tk +1sport7.com +1sport7.org +1sportplay24.com +1sqare.com +1ss.noip.me +1st-forms.com +1stadhouderskade.com +1stbest.info +1stcallsecurity.com +1stcircuit.com +1stcommercialrealty.com +1sthandfoundation.org +1stimme1schritt.com +1stlibe.website +1stoffer.com +1stopbeautyshop.com +1stpatrol.info +1ststepdetoxcenter.net +1sydney.net +1syn.info +1ta.org +1tasvegas.club +1thecity.biz +1tmail.ltd +1to1mail.org +1to1mix.com +1turkeyfarmlane.com +1tware.com +1tyc222.com +1u3.ru +1u6hqr.us +1ul-u.icu +1up.orangotango.gq +1upcyber.com +1us-v.icu +1usemail.com +1utk81n8xa0p5ue.xyz +1vitsitoufficiale.com +1vs1.app +1vsitoit.com +1vt.com +1vvb.ru +1vwd.biz +1wanbet.info +1webmail.info +1website.net +1weirdfood.com +1wgapljizpfn3f1.xyz +1wk.site +1x1zsv9or.pl +1x2.run +1x3.download +1xbeet90.org +1xbet-1bet.site +1xbet-web-cm.net +1xbets-bk-onlines.ru +1xbkbet.com +1xgolxdbxt.online +1xkfe3oimup4gpuop.cf +1xkfe3oimup4gpuop.ga +1xkfe3oimup4gpuop.gq +1xkfe3oimup4gpuop.ml +1xkfe3oimup4gpuop.tk +1xnwh.host +1xowua.site +1xstabka.ru +1xstats.com +1xstavka-app.ru +1xy86py.top +1ybm5.us +1yci.com +1yvicd.com +1zaem.ru +1zc.info +1zd.info +1ze9d7uml.xyz +1zhuan.com +1zl.org +1zxzhoonfaia3.cf +1zxzhoonfaia3.ga +1zxzhoonfaia3.gq +1zxzhoonfaia3.ml +1zxzhoonfaia3.tk +2-attorney.com +2-bee.tk +2-ch.space +2-l.net +2-zatona.ru +2-znakomstva.ru +2.batikbantul.com +2.chatpuffs.pro +2.emailfake.ml +2.fackme.gq +2.kerl.cf +2.mmspa.cf +2.safemail.cf +2.safemail.tk +2.sexymail.ooo +2.tebwinsoi.ooo +2.vvsmail.com +20-20pathways.com +20-20trustees.com +20.dns-cloud.net +20.gov +2000-plus.pl +2000rebates.stream +2002mm01.fun +2002mm02.fun +2002mm04.fun +2002mm05.fun +200555.com +2006sf.net +200740534.xyz +2008firecode.info +2008radiochat.info +200da.ga +200ok.ru +2010tour.info +2011cleanermail.info +2011rollover.info +2012-2016.ru +2012-2019-compensac.site +2012ajanda.com +2012burberryhandbagsjp.com +2012casquebeatsbydre.info +2012moncleroutletjacketssale.com +2012nflnews.com +2012pandoracharms.net +2013-ddrvers.ru +2013-lloadboxxx.ru +2013cheapnikeairjordan.org +2013dietsfromoz.com +2013fitflopoutlet.com +2013longchamppaschere.com +2013louboutinoutlets.com +2013mercurialshoeusa.com +2013nikeairmaxv.com +2013spmd.ru +2014mail.ru +2017597.com +2018-12-23.ga +20181141916151820.com +201813143.com +2019-hydra.com +2019-pozdravleniya.ru +201910031.com +201910032.com +201910041.com +201910042.com +201910044.com +201910055.com +201910056.com +201910066.com +201910068.com +201910073.com +201910077.com +201910078.com +201910082.com +201910083.com +201910086.com +201910093.com +201910094.com +201910095.com +201910162.com +201920047.com +201920054.com +201920065.com +201920100.com +201920103.com +201920108.com +201920110.com +201920113.com +201920116.com +201920119.com +2019x.cf +2019x.ga +2019x.gq +2019x.ml +2019y.cf +2019y.ga +2019y.gq +2019y.ml +2019z.cf +2019z.ga +2019z.gq +2019z.ml +2019z.tk +2020-ford-bronco.com +202064.net +2020ads01.xyz +2020ads02.xyz +2020ads03.xyz +2020bearmarket.com +2020honorbowl.com +2020yy.net +20218037.com +20223339.com +20258037.com +20268037.com +20288037.com +202qs.com +20303.host +20344445.com +20368037.com +2044445.com +204qs.com +2051333.ru +20520.com +2054445.com +2061144.com +2061177.com +206154.com +206156.com +206163.com +206164.com +206167.com +206169.com +206176.com +206182.com +206206206.com +206214.com +206224.com +206241.com +206242.com +206243.com +206244.com +206252.com +206254.com +206261.com +206267.com +206270.com +206274.com +206304.com +206305.com +206314.com +206324.com +206340.com +206361.com +206367.com +206372.com +206374.com +206376.com +206385.com +206422.com +206423.com +206424.com +206427.com +206430.com +206438.com +206439.com +2064445.com +206490.com +206514.com +206516.com +206526.com +206534.com +206536.com +206541.com +206547.com +206560.com +206561.com +206576.com +206584.com +206617.com +206637.com +206701.com +206704.com +206716.com +206726.com +206736.com +206740.com +206748.com +206757.com +206762.com +206763.com +206773.com +206790.com +206802.com +206806.com +206810.com +206816.com +206817.com +206821.com +206827.com +206830.com +206834.com +206836.com +206841.com +206847.com +206854.com +206859.com +206860.com +206871.com +206873.com +206890.com +206891.com +206892.com +206894.com +206896.com +206897.com +206901.com +206907.com +206912.com +206917.com +206921.com +206923.com +206925.com +206926.com +206927.com +206930.com +206932.com +206942.com +206945.com +206947.com +206948.com +206953.com +206954.com +206956.com +206961.com +206962.com +206963.com +206971.com +206973.com +206975.com +206ddd.com +206fff.com +206hhh.com +206iii.com +206j.net +206jjj.com +206m.net +206n.net +206o.net +206ooo.com +206ppp.com +206q.net +206qqq.com +206rrr.com +206s.net +206vvv.com +206w.net +206x.net +206yth.net +2074445.com +20760.monster +2079shipin.xyz +207am.com +2084-antiutopia.ru +2088pj.com +209179.site +2094445.com +209827.com +209op.link +20abc.ru +20b8d52d.club +20bit.ru +20boxme.org +20daysof.com +20email.eu +20email.it +20german.online +20hsolutions.com +20likegoda.top +20mail.eu +20mail.in +20mail.it +20min.email +20minute.email +20minutemail.com +20minutemail.it +20mm.eu +20nastya.press +20nastya.tech +20sep.net +20sep.online +20september.online +20twelvedubstep.com +20wolff.xyz +20yeye.com +21047.monster +21081.monster +2109827.com +210ms.com +211153079.buzz +211157563.buzz +211158710.buzz +211319.xyz +211379.xyz +2114445.com +211619.xyz +2120001.net +2124445.com +21266.monster +2127.info +212812.com +212912.com +212staff.com +213269.xyz +2134445.com +213969.xyz +213989.xyz +2140884843zll.xyz +2144445.com +21451.xyz +2147483648.com +215329.xyz +215369.xyz +215529.xyz +215565.com +215579.xyz +215679.xyz +215779.xyz +215819.xyz +215829.xyz +215839.xyz +215859.xyz +215889.xyz +215969.xyz +215979.xyz +216169.xyz +216179.xyz +216219.xyz +216239.xyz +216259.xyz +2164445.com +216539.xyz +216559.xyz +216636.com +2166tow6.mil.pl +216729.xyz +216959.xyz +2174445.com +217lll.com +2184445.com +2188019.com +218bet.com +2194445.com +219ac.com +21biolevel.ru +21cselling.com +21daysugardetoxreview.org +21den.ru +21email4now.info +21gw.info +21jag.com +21kky.club +21lr12.cf +21sp.xyz +21stcenturyfitness.net +21timebet.com +21yearsofblood.com +21yyinsani.com +22-bet.life +22-bet.org +22003.fun +220088211.com +22020.ru +220w.net +221188211.com +2211m.com +221884.com +221921.com +221ac.com +221bnw15rt.com +221zz.com +222288211.com +2222bienbet.com +2225258.com +2227728.com +2229837.com +222bubu.com +222mmmm.com +222reklam.com +223388211.com +2234445.com +22443.monster +224eee.com +224hhh.com +224lll.com +224power.com +224ppp.com +224qs.com +224sss.com +224zzz.com +225522.ml +225588211.com +22602.monster +22613.xyz +2264445.com +226688211.com +2266av.com +2267pp.com +2267vv.com +2267xx.com +2267yy.com +2274445.com +22794.com +228581.com +2288av.com +229988211.com +22aday-notok.info +22aday-notok.mobi +22bet.co.bi +22bet.co.rw +22ccf.com +22eb.club +22ffnrxk11oog.cf +22ffnrxk11oog.ga +22ffnrxk11oog.gq +22ffnrxk11oog.tk +22hg.app +22hg.bet +22hhqp.com +22meds.com +22money.xyz +22mot.ru +22office.com +22ov17gzgebhrl.cf +22ov17gzgebhrl.gq +22ov17gzgebhrl.ml +22ov17gzgebhrl.tk +22pesok.ru +22stttn.xyz +22xx33.xyz +22zollmonitor.com +23-february-posdrav.ru +23037.monster +2314445.com +2323bryanstreet.com +2334445.com +2336900.com +233bt.com +233calliope4.com +233dy.com +234.pl +23403.monster +23413.monster +23443.fun +2344445.com +23445656.xyz +234546764.xyz +234567875.xyz +2345678901.xyz +234927.com +234asdadsxz.info +234dhyjgj.com +235francisco.com +235gm.com +237367.com +23791.monster +237bets.com +238ac.com +2394445.com +239qs.com +23all.com +23f951.xyz +23fanofknives.com +23h4y.us +23i9k.site +23owqo5r.xyz +23ox.xyz +23pxdb.us +23sfeqazx.com +23swap.site +23thingstodoxz.com +24-7-demolition-adelaide.com +24-7-fencer-brisbane.com +24-7-plumber-brisbane.com +24-7-retaining-walls-brisbane.com +24-ex.ru +240305.com +24030917.xyz +2404445.com +24297.monster +242nn.net +242tt.net +24337.xyz +24408.monster +244206.com +244spencer.com +246hltwog9utrzsfmj.cf +246hltwog9utrzsfmj.ga +246hltwog9utrzsfmj.gq +246hltwog9utrzsfmj.ml +246hltwog9utrzsfmj.tk +247blog.com +247gmail.com +247jockey.com +247prohost.com +247web.net +248790.com +2488682.ru +249827.com +24ali.ru +24betty.ru +24cable.ru +24cafe.ru +24cheapdrugsonline.ru +24consulting.ru +24ddw6hy4ltg.cf +24ddw6hy4ltg.ga +24ddw6hy4ltg.gq +24ddw6hy4ltg.ml +24ddw6hy4ltg.tk +24facet.com +24fitness.ru +24fm.org +24hbanner.com +24hinbox.com +24horas-aust.host +24hotesl.com +24hourfitness.com +24hourloans.us +24hourmail.com +24hourmail.net +24hrcalladoctor.info +24hrcallmd.info +24hrphoneadoc.info +24hrphoneamd.info +24hrsofsales.com +24kcbd-plus.com +24kcbd.net +24kcbdplus.net +24kinfused.com +24kuai.com +24mail.top +24mail.xyz +24medic-news.ru +24meds.com +24na8.ru +24news24.ru +24online-marketing.ru +24openlock.ru +24prm.ru +24repporter.ru +24score.kg +24skey.ru +24smartwatch.ru +24tops.site +24vice.biz +24vlk.biz +24vlk.link +24vlk.xyz +24volcano.net +24vul-canm.com +24vul-slot.net +24x7daily.com +24xj.us +24youla.ru +2511188.net +2514445.com +2524445.com +252507.com +2525bienbet.com +252hg.com +25310.monster +2534445.com +253lv.com +253mo.com +253ou.com +253pu.com +25419.monster +25430044.com +25430077.com +25430268.com +25431113.com +25431115.com +25431117.com +25431118.com +25431119.com +25431120.com +25431126.com +25432233.com +25433456.com +25434455.com +25436789.com +25438.monster +25438899.com +2554445.com +257379.xyz +2574445.com +25806.monster +2584445.com +2594445.com +2595966.com +25betturka.com +25comp.ru +25fwlp1ih7av5ym.xyz +25mails.com +25olney.online +26032.monster +2614445.com +2621188.net +2626bienbet.com +262fo.com +262gu.com +262ju.com +262lo.com +262lv.com +262pi.com +262re.com +2635-13.com +26352.monster +2635yy.com +2636552.com +263mali.cn +263meet.com +26465.com +26487.com +2654445.com +26564.xyz +26581.monster +265ac.com +265ke.com +265ne.com +265re.com +265sa.com +26610.monster +266ac.com +2674445.com +267918.com +2694445.com +269ac.com +26c7.club +26ca93.xyz +26euro.ga +26evbkf6n.aid.pl +26fuli.com +26llxdhttjb.cf +26llxdhttjb.ga +26llxdhttjb.gq +26llxdhttjb.ml +26llxdhttjb.tk +26m.net +26mishki.ru +26pg.com +26timebet.com +26x8da.us +271529.xyz +2716ca.xyz +271729.xyz +271759.xyz +272274.xyz +27384.com +27422.monster +2750303.site +2754445.com +275ac.com +275d.club +2764445.com +2774445.com +27770.monster +277782474.xyz +27787.monster +2784445.com +27850999.net +278ac.com +27911b.com +27a169.xyz +27casinox.com +27hotesl.com +2802211.com +2814445.com +28177.monster +2820666hyby.com +2828766.com +2834445.com +283993.com +2844.xyz +284kf.com +28572.monster +2864445.com +2880688.com +2881788.com +2889188.com +28c000.com +28c0033.com +28c0055.com +28c0066.com +28c0088.com +28c11.com +28c1122.com +28c33.com +28c333.com +28c44.com +28c555.com +28c66.com +28c777.com +28c888.com +28it.ru +28musicbaran.us +28onnae92bleuiennc1.cf +28onnae92bleuiennc1.ga +28onnae92bleuiennc1.gq +28onnae92bleuiennc1.ml +28onnae92bleuiennc1.tk +28pc888.com +28pinbahis.com +28voma.info +28woman.com +28z8d5fu7yyrdbg.xyz +29007.monster +291.usa.cc +2911.net +291q.com +29231.buzz +2924445.com +292692.com +292892.com +29296819.xyz +2934445.com +2944445.com +2950d69b.xyz +29530.xyz +296969bb.com +296969tt.com +296969ww.com +296969zz.com +29753.monster +2990303.ru +29980011.com +29987.monster +29gbmc.com +29hoki9.xyz +29q62.buzz +29t3.com +29wrzesnia.pl +2a479bf8.club +2ad66df3.club +2adiamonds.com +2adltw.us +2aitycnhnno6.cf +2aitycnhnno6.ga +2aitycnhnno6.gq +2aitycnhnno6.ml +2aitycnhnno6.tk +2all.xyz +2and2mail.tk +2anime.org +2ankemthilamxao.space +2anom.com +2aoytd.com +2av.biz +2avz.net +2bcgxx.us +2bestbet90.xyz +2bfan.com +2bi.ru +2bin.ru +2bpgta.online +2br.in +2brooke.com +2brutus.com +2bucksagig.com +2bussines.ru +2buyshop.ru +2bxapl.info +2c0.net +2c225.club +2c2f494.club +2cdof1.us +2ch.coms.hk +2ch.daemon.asia +2ch.orgs.hk +2china.site +2ckf.com +2cnlh.us +2cny2bstqhouldn.cf +2cny2bstqhouldn.ga +2cny2bstqhouldn.gq +2cny2bstqhouldn.ml +2cny2bstqhouldn.tk +2container.com +2coolchops.info +2cor9.com +2cpeerr.club +2cpezrr.club +2ctech.net +2cy123.com +2cyapp.com +2cybbs.com +2cyblog.com +2cybt.com +2cyp.com +2cypan.com +2cypic.com +2cyshop.com +2d-art.ru +2d485c.club +2dapp.com +2dbt.com +2detox.com +2dfmail.ga +2dfmail.ml +2dfmail.tk +2dgate.com +2dge1.us +2dgo.com +2di9ul.us +2dku.com +2dsectv.ru +2edgklfs9o5i.cf +2edgklfs9o5i.ga +2edgklfs9o5i.gq +2edgklfs9o5i.ml +2edgklfs9o5i.tk +2emailock.com +2emea.com +2eq8eaj32sxi.cf +2eq8eaj32sxi.ga +2eq8eaj32sxi.gq +2eq8eaj32sxi.ml +2eq8eaj32sxi.tk +2ether.net +2ewldu.us +2ez6l4oxx.pl +2f1fv16ljgb88nj.xyz +2f2tisxv.bij.pl +2f5b8c.xyz +2fat4me.com +2fdgdfgdfgdf.tk +2ffja3uf.agency +2filmshd.online +2fly.xyz +2folddoor.com +2fyba7.site +2gbndigital.com +2gear.ru +2gep2ipnuno4oc.cf +2gep2ipnuno4oc.ga +2gep2ipnuno4oc.gq +2gep2ipnuno4oc.ml +2gep2ipnuno4oc.tk +2getyou.com +2go-mail.com +2gocasino.net +2goodnews.site +2gufaxhuzqt2g1h.cf +2gufaxhuzqt2g1h.ga +2gufaxhuzqt2g1h.gq +2gufaxhuzqt2g1h.ml +2gufaxhuzqt2g1h.tk +2gurmana.ru +2gvn.com +2hand.xyz +2have.net +2hermesbirkin0.com +2hg000.com +2hg11.com +2hg1111.com +2hg15.com +2hg16.com +2hg17.com +2hg18.com +2hg19.com +2hg22.com +2hg333.com +2hg4.com +2hg55.com +2hg555.com +2hg6.com +2hg99.com +2hgw111.com +2hgw22.com +2hgw44.com +2hgw444.com +2hgw666.com +2hgw999.com +2hotmail.com +2houndsdesigns.com +2hq5om.us +2i3tjz.com +2iikwltxabbkofa.cf +2iikwltxabbkofa.ga +2iikwltxabbkofa.gq +2iikwltxabbkofa.ml +2instagram.ru +2iror47qx.xyz +2iuzngbdujnf3e.cf +2iuzngbdujnf3e.ga +2iuzngbdujnf3e.gq +2iuzngbdujnf3e.ml +2iuzngbdujnf3e.tk +2j06.buzz +2jckh7.info +2jn.space +2k.vin +2k18.mailr.eu +2k20.mailr.eu +2kcr.win +2kolesaclub.ru +2kpda46zg.ml +2kwebserverus.info +2kyv36.info +2l7g4s.us +2la.info +2leg.com +2lf.info +2lgvhy.us +2listen.ru +2lj.info +2lqkqz.us +2lug.com +2lyvui3rlbx9.cf +2lyvui3rlbx9.ga +2lyvui3rlbx9.gq +2lyvui3rlbx9.ml +2m36.space +2m40.space +2m46.space +2m51.space +2m55.space +2m5u.com +2mailcloud.com +2mailnext.com +2mailnext.top +2mao.xyz +2maudacieuse.org +2mbet.info +2mcfha.site +2mhtw.info +2movierulz.club +2movierulz.one +2movierulz.org +2nd-mail.xyz +2ndamendmentguns.net +2ndamendmenttactical.com +2nf.org +2niqqw.us +2npfba.host +2o3ffrm7pm.cf +2o3ffrm7pm.ga +2o3ffrm7pm.gq +2o3ffrm7pm.ml +2o3ffrm7pm.tk +2oceanview.com +2odem.com +2onacxpmdzuco57.xyz +2oqqouxuruvik6zzw9.cf +2oqqouxuruvik6zzw9.ga +2oqqouxuruvik6zzw9.gq +2oqqouxuruvik6zzw9.ml +2oqqouxuruvik6zzw9.tk +2orkid.com +2osq1y.site +2oz.net +2p-mail.com +2p7u8ukr6pksiu.cf +2p7u8ukr6pksiu.ga +2p7u8ukr6pksiu.gq +2p7u8ukr6pksiu.ml +2p7u8ukr6pksiu.tk +2pair.com +2papa.ooo +2pay-e.club +2pay-n.club +2pay-s.club +2pay-w.club +2pays.ru +2prong.com +2ptech.info +2pwwbt.us +2pwwmb.us +2pxmpu.com +2r1znbwk.fun +2rix.com +2rna.com +2rntkv.us +2rus.ru +2ryajg.us +2rz6no.us +2s2bmanagement.com +2s4uke.us +2s9qa.us +2sap.com +2scxlq.us +2sea.org +2sea.xyz +2seuparolss.space +2sharp.com +2sim-gsm.ru +2skjqy.pl +2slq5o.us +2snokot.site +2sunssolutions.ru +2svun8.us +2tellmystory.com +2timebet.com +2tl2qamiivskdcz.cf +2tl2qamiivskdcz.ga +2tl2qamiivskdcz.gq +2tl2qamiivskdcz.ml +2tl2qamiivskdcz.tk +2tl9hz.us +2tmk.icu +2tug.com +2twpu9ne.net +2uisk2man.xyz +2umail.org +2ursxg0dbka.cf +2ursxg0dbka.ga +2ursxg0dbka.gq +2ursxg0dbka.ml +2ursxg0dbka.tk +2v3vjqapd6itot8g4z.cf +2v3vjqapd6itot8g4z.ga +2v3vjqapd6itot8g4z.gq +2v3vjqapd6itot8g4z.ml +2v3vjqapd6itot8g4z.tk +2v45m.us +2viewerl.com +2vkahi.host +2vznqascgnfgvwogy.cf +2vznqascgnfgvwogy.ga +2vznqascgnfgvwogy.gq +2vznqascgnfgvwogy.ml +2vznqascgnfgvwogy.tk +2way2win.info +2wc.info +2web.com.pl +2wjxak4a4te.cf +2wjxak4a4te.ga +2wjxak4a4te.gq +2wjxak4a4te.ml +2wjxak4a4te.tk +2wm3yhacf4fvts.ga +2wm3yhacf4fvts.gq +2wm3yhacf4fvts.ml +2wm3yhacf4fvts.tk +2world.pl +2wy9b4h36f6hsw7.xyz +2x45bet.net +2xd.ru +2xfit.site +2xhl.icu +2xpush.com +2xup.site +2xxx.com +2y4u.ru +2yannecker.xyz +2ycr9p.us +2yd4bo.site +2ydk.com +2yh6uz.bee.pl +2yigoqolrmfjoh.gq +2yigoqolrmfjoh.ml +2yigoqolrmfjoh.tk +2yldy.biz +2young4u.ru +2yvxt8.us +2z6vrd.online +2zozbzcohz3sde.cf +2zozbzcohz3sde.gq +2zozbzcohz3sde.ml +2zozbzcohz3sde.tk +2zpph1mgg70hhub.cf +2zpph1mgg70hhub.ga +2zpph1mgg70hhub.gq +2zpph1mgg70hhub.ml +2zpph1mgg70hhub.tk +3-attorney.com +3-debt.com +3.batikbantul.com +3.emailfake.ml +3.fackme.gq +3.kerl.cf +3.vvsmail.com +30.dns-cloud.net +300-lukoil.ru +300book.info +300da.ga +300ktournament.biz +300mbmovies.shop +300vegans.org +30150005.com +30158.monster +301er.com +301omp.link +301server.net +301url.info +3023vip.com +3027a.com +303030.ru +3032.ru +30378844.com +303online.org +30669.monster +30718.monster +30739.monster +30742061.xyz +3074445.com +307468021.xyz +308980.com +309356.com +3094445.com +30abc.ru +30daycycle.com +30daygoldmine.com +30daystothinreview.org +30diasparaemagrecer.site +30don.ru +30euro.ga +30it.ru +30madden.com +30mail.ir +30minutemail.com +30minutenmail.eu +30morqca.info +30mot.ru +30rd.com +30rip.ru +30secondsmile-review.info +30set.ru +30traveller.com +30vcd.com +30wave.com +30yo.site +3104445.com +311156553.buzz +311159521.buzz +311584.com +31292.monster +313102.com +3134445.com +31397.monster +313bt1.com +313bt1.net +313communications.com +31415926535.net +3158.cd +316206.com +31711555.com +31711577.com +31711599.com +31711633.com +31711655.com +31711666.com +31711677.com +31711822.com +31711877.com +31711955.com +31711966.com +31711988.com +31722133.com +31722188.com +31722266.com +31722299.com +31722366.com +31722377.com +31722399.com +31722511.com +31722533.com +31722555.com +31722622.com +31722722.com +31722755.com +31722788.com +31722888.com +31722922.com +31722955.com +31722999.com +31733222.com +31733355.com +31733388.com +31733399.com +31733511.com +31733577.com +31733588.com +31733599.com +31733611.com +31733622.com +31733633.com +31733722.com +31733777.com +31733833.com +31733855.com +31733922.com +31733977.com +31733988.com +31755155.com +31755199.com +31755211.com +31755255.com +31755333.com +31755355.com +31755366.com +31755388.com +31755511.com +31755522.com +31755555.com +31755633.com +31755688.com +31755699.com +31755788.com +31755855.com +31755866.com +31755888.com +31755933.com +31755988.com +31862.monster +318factory.com +318road.com +318tuan.com +319358.com +31980.monster +31di.club +31k.it +31lossweibox.com +31s.info +32.biz +3202.com +32021.xyz +3204445.com +321-email.com +32194.monster +321appblog.xyz +321appclub.xyz +321dasdjioadoi.info +321ideas.com +321mail.ir +321marinetowing.com +322appville.xyz +322capital.xyz +322dental.xyz +322events.xyz +322live.xyz +322llc.xyz +322mc.xyz +322na.com +322nj.xyz +322photo.xyz +322productions.xyz +323ac.com +323designhome.xyz +323enterprises.xyz +323fm.xyz +323grouphome.xyz +323law.xyz +324445.com +32499.monster +32528.monster +3254445.com +3255566.net +325city.xyz +325dayclub.xyz +325designcentre.xyz +325online.xyz +325shop.xyz +3261188.net +3261r.com +326herry.com +326law.xyz +326photo.xyz +326sao.com +326tech.xyz +326usa.xyz +327communications.xyz +327designexperts.xyz +327dev.xyz +327enterprises.xyz +327mag.xyz +327pictures.xyz +327plus.xyz +327studios.xyz +327web.xyz +328037.com +328art.xyz +328center.xyz +328club.xyz +328grouppoint.xyz +328herry.com +328hetty.com +328music.xyz +328net.xyz +328photo.xyz +329blog.xyz +329capital.xyz +329club.xyz +329designsolutions.xyz +329events.xyz +329hotel.xyz +329inc.xyz +329music.xyz +329nj.xyz +329pr.xyz +329press.xyz +329ru.com +329shop.xyz +329si.com +329store.xyz +329trading.xyz +329wo.com +329xu.com +32a6.club +32bfe2.xyz +32doso.com +32inchledtvreviews.com +32rnhp.com +32try.com +32y.ru +32zbl.xyz +330561.com +330563.com +330565.com +330a330.com +330d330.com +330g330.com +330j330.com +330n330.com +330o330.com +330q330.com +330r330.com +330x330.com +330z330.com +331main.com +33212e.com +33212g.com +33212i.com +33212k.com +33212q.com +33212r.com +332288211.com +3324445.com +3325804.com +333-exemptions.net +333.igg.biz +333001d.com +333001e.com +333001h.com +333001x.com +3335258.com +3337426.com +3338a.com +333933.com +3339u.com +333br88.com +333kao.com +333qp.com +333ua.com +333ub.com +333uh.com +333uq.com +333uw.com +333vk.com +333yeye.com +334206.com +334488211.com +335588211.com +33760.xyz +33833.xyz +338888211.com +338aqq.net +339206.com +3398766.com +339ac.com +33bit.ru +33di.club +33hg.bet +33hhqp.com +33jisu.com +33m.co +33mail.com +33protector.ru +33s.info +33sil.site +33xliczvveq9ukw7.best +3404445.com +340c.club +3414445.com +34150c19.xyz +341858.com +34487.fun +344vip31.com +344vip32.com +345.pl +34545656.xyz +3459827.com +345v345t34t.cf +345v345t34t.ga +345v345t34t.gq +345v345t34t.ml +345v345t34t.tk +346345473.xyz +3464445.com +34828.monster +3484445.com +348es7arsy2.cf +348es7arsy2.ga +348es7arsy2.gq +348es7arsy2.ml +348es7arsy2.tk +349827.com +34favorisen.com +34rf6y.as +34rfwef2sdf.co.pl +34se.biz +34svet.site +350qs.com +351qs.com +35216.monster +3522173.site +3524445.com +3529842636452.info +35349.monster +3535.site +35382.monster +353ac.com +3554445.com +3555js.com +356qs.com +356ue.space +3574445.com +357merry.com +357ue.space +3584445.com +358ue.space +359956.com +359ue.space +35b638.xyz +35betx.xyz +35bit.ru +35favorisen.com +35german.online +35ihe.us +35top.space +35yuan.com +360.associates +360.auction +360.band +360.bargains +360.black +360.camp +360.catering +360.church +360.clinic +360.contractors +360.dance +360.delivery +360.directory +360.education +360.equipment +360.exposed +360.express +360.forsale +360.furniture +360.gives +360.hosting +360.industries +360.institute +360.irish +360.lgbt +360.limo +360.markets +360.melbourne +360.monster +360.moscow +360.motorcycles +360.museum +360.navy +360.partners +360.pics +360.recipes +360.soccer +360.study +360.surgery +360.tires +360.toys +360.vet +36061.monster +36080.monster +360832.com +360975.com +360artem.xyz +360casefullprotection.xyz +360chs.site +360cinema.ru +360discountgames.info +360la.buzz +360onefirm.com +360reviews.net +360shopat.com +360spel.se +360woodworking.com +3611188.net +3614445.com +36233.monster +362332.com +3629927.com +362ue.space +363.net +3634445.com +3637glendonave.com +3644445.com +364ue.space +365-day.ru +365.moe +3651ri.com +3651se.com +3651she.com +36534.monster +36552a.com +36552b.com +36552e.com +36552g.com +36552k.com +36552o.com +36552u.com +36552x.com +36552y.com +36552z.com +365600.info +365600.net +365600.xyz +3657she.com +365generators.com +365jjs.com +365live7m.com +365me.info +365scotland.com +365tickets.global +365ue.space +366655.net +366yr.com +366zy.com +3675.mooo.com +36832.monster +36868a.com +368904.com +368herry.com +368hetty.com +368pan.com +369hetty.com +369mimi.com +36c4.xyz +36degreebuilders.com +36fd.club +36poker.ru +36ru.com +36rzd.ru +36xx.biz +37045.monster +370shop.com +370z-uk.com +37141190.xyz +3714445.com +37146.monster +37285.monster +374kj.com +374r.com +3754445.com +37556.monster +375piksel.xyz +3761188.net +37613.monster +3764445.com +3782wqk.targi.pl +37870.monster +37art.com +37ddpe.us +37dnah.us +380064.com +3804445.com +38117.monster +38365.monster +38399.host +3844445.com +38488.fun +38528.com +385619.com +385manbetx.com +386a101.com +386a102.com +386catering.ru +386herry.com +386hetty.com +38759.monster +38768.monster +3880988.com +3882988.com +38850006.com +38850007.com +38850008.com +3885688.com +3885988.com +3886123.com +3886128.com +3886129.com +3886190.com +3886388.com +3887388.com +3887788.com +38992.monster +38bhsx.us +38bvn.net +38favorisen.com +38l0wf.info +38sy.bet +38timebet.com +3903.com +3914445.com +391881.com +3924445.com +3938hg.com +39397.monster +3940hg.com +3942hg.com +3943hg.com +3944hg.com +3945hg.com +3946hg.com +3947hg.com +3948hg.com +3950hg.com +3952hg.com +3954445.com +3955566.net +3957hg.com +39584.xyz +3959hg.com +395dy.com +396206.com +3964445.com +3964hg.com +396ac.com +396hetty.com +398314.com +3983gg.com +3983ii.com +3983mm.com +3983pp.com +3983tt.com +3983vv.com +3984445.com +398ac.com +39bio.net +39d78.club +39hair.com +39koyr.us +39p.ru +39pop.com +39shipin.xyz +3a-trust.ru +3abenv.us +3ac5e.xyz +3aenuu.us +3agg8gojyj.ga +3agg8gojyj.gq +3agg8gojyj.ml +3aijs.us +3amrous.ga +3arn.net +3at7w.us +3avz.net +3axe.pro +3b5fzy.com +3ba.online +3bdyw.info +3bffpe.us +3bo1grwl36e9q.cf +3bo1grwl36e9q.ga +3bo1grwl36e9q.gq +3bo1grwl36e9q.ml +3bo1grwl36e9q.tk +3boshi.info +3c0zpnrhdv78n.ga +3c0zpnrhdv78n.gq +3c0zpnrhdv78n.ml +3c0zpnrhdv78n.tk +3c168.com +3c63e56.club +3c9d8ecb.xyz +3ce5jbjog.pl +3chefsoriginal.com +3colormaster.site +3czfe.site +3d-films.ru +3d-live.ru +3d-magical-magnet.ru +3d-painting.com +3d-sculptor.ru +3d180.com +3d34.space +3d36.space +3d4299.xyz +3d4o.com +3d98mz.us +3dadultdate.com +3dadultsim.com +3darchitekci.com.pl +3dautomobiles.com +3day.us +3db7.xyz +3dbca2b4.club +3dcamcorders.com +3dcollection.ru +3dcopyme.ru +3dfsfdfdfddffd.com +3dgct7.info +3dgit.com +3dgit.info +3dgit.net +3dheadsets.net +3dholography.info +3dhome26.ru +3dhor.com +3diifwl.mil.pl +3dmail.top +3dnevvs.ru +3doggrafx.com +3dollarcafe.net +3doyunlar24.com +3dpen-msk01.ru +3dporte.site +3dprinter-vl.ru +3drugs.com +3dsculpter.com +3dsculpter.net +3dsgateway.eu +3dsimulator.ru +3dstartups.net +3dtovari.ru +3dwstudios.net +3ebdb9.site +3efc7c.club +3eli.ru +3enrg.com +3escaladcdh.site +3etvi1zbiuv9n.cf +3etvi1zbiuv9n.ga +3etvi1zbiuv9n.gq +3etvi1zbiuv9n.ml +3etvi1zbiuv9n.tk +3eu2hy.com +3ew.usa.cc +3fb7to.best +3fhjcewk.pl +3fkq7b.us +3fsv.site +3fy1rcwevwm4y.cf +3fy1rcwevwm4y.ga +3fy1rcwevwm4y.gq +3fy1rcwevwm4y.ml +3fy1rcwevwm4y.tk +3g24.pl +3g2bpbxdrbyieuv9n.cf +3g2bpbxdrbyieuv9n.ga +3g2bpbxdrbyieuv9n.gq +3g2bpbxdrbyieuv9n.ml +3g2bpbxdrbyieuv9n.tk +3g9c.club +3gauto.co.uk +3gk2yftgot.cf +3gk2yftgot.ga +3gk2yftgot.gq +3gk2yftgot.ml +3gk2yftgot.tk +3gly.com +3gmovierulz.com +3gmtlalvfggbl3mxm.cf +3gmtlalvfggbl3mxm.ga +3gmtlalvfggbl3mxm.gq +3gmtlalvfggbl3mxm.ml +3gmtlalvfggbl3mxm.tk +3gnet.ru +3goam9.xyz +3goodnews.space +3h6tey.us +3hdmku.us +3hermesbirkin0.com +3hvp5pvdzamlkpj.xyz +3i6vxc.us +3ib54k5n.space +3imaginarygirls.com +3ipmo.us +3issamewlaidofficail.space +3izo1a.us +3j0rq.us +3j4rnelenwrlvni1t.ga +3j4rnelenwrlvni1t.gq +3j4rnelenwrlvni1t.ml +3j4rnelenwrlvni1t.tk +3jiepai.xyz +3jl.ru +3jq.info +3jxux4awkcrz3oz.xyz +3kbyueliyjkrfhsg.ga +3kbyueliyjkrfhsg.gq +3kbyueliyjkrfhsg.ml +3kbyueliyjkrfhsg.tk +3ker23i7vpgxt2hp.cf +3ker23i7vpgxt2hp.ga +3ker23i7vpgxt2hp.gq +3ker23i7vpgxt2hp.ml +3ker23i7vpgxt2hp.tk +3kh990rrox.cf +3kh990rrox.ml +3kh990rrox.tk +3kk20.com +3kk23.com +3kk27.com +3kk29.com +3kk38.com +3kk41.com +3kk43.com +3knloiai.mil.pl +3kqvns1s1ft7kenhdv8.cf +3kqvns1s1ft7kenhdv8.ga +3kqvns1s1ft7kenhdv8.gq +3kqvns1s1ft7kenhdv8.ml +3kqvns1s1ft7kenhdv8.tk +3krtqc2fr7e.cf +3krtqc2fr7e.ga +3krtqc2fr7e.gq +3krtqc2fr7e.ml +3krtqc2fr7e.tk +3kurge.us +3l6.com +3m4i1s.pl +3m8vt.icu +3mail.ga +3mail.gq +3mail.rocks +3mailapp.net +3mbet.info +3mcoin.info +3mcoin.org +3md.xyz +3mi.org +3million3.com +3milyoner365.com +3mir4osvd.pl +3monthloanseveryday.co.uk +3movierulzz.club +3mx.biz +3ndbw8.host +3nixmail.com +3nn0y.site +3ntiqo.info +3ntongm4il.ga +3ntxtrts3g4eko.cf +3ntxtrts3g4eko.ga +3ntxtrts3g4eko.gq +3ntxtrts3g4eko.ml +3ntxtrts3g4eko.tk +3ohwhrgn.website +3on.tech +3p11.club +3p30.club +3p9c2m.racing +3papa.ooo +3pily.ru +3pl-distribution.net +3pleasantgentlemen.com +3pozsm.us +3pscsr94r3dct1a7.cf +3pscsr94r3dct1a7.ga +3pscsr94r3dct1a7.gq +3pscsr94r3dct1a7.ml +3pscsr94r3dct1a7.tk +3pxsport.com +3q138.com +3q7j3h.online +3qaths.info +3qi6hy.us +3qp6a6d.media.pl +3qpplo4avtreo4k.cf +3qpplo4avtreo4k.ga +3qpplo4avtreo4k.gq +3qpplo4avtreo4k.ml +3qpplo4avtreo4k.tk +3qxfar.us +3qzcpn.us +3r5onu.site +3r8pmr.site +3raspberryketonemonster.com +3rdeyeassociates.com +3rdhour.com +3rdwavefashion.com +3redbatsaffiliates.com +3rmduz.us +3rood.website +3s3n.info +3s3n.org +3s3n.us +3s8831.com +3s8888.net +3skzlr.site +3spoker.com +3spoker.net +3spraut.ru +3sprauts.ru +3ssfif.pl +3suisses-3pagen.com +3sw17d.us +3tcini.info +3tfnnk.us +3th-market-shopp.online +3tp.ru +3trtretgfrfe.tk +3twewx.online +3ucq.us +3uiexk.us +3uptc.us +3utasmqjcv.cf +3utasmqjcv.ga +3utasmqjcv.gq +3utasmqjcv.ml +3utasmqjcv.tk +3utilities.com +3voip.ru +3vuwk8.info +3wbetx.info +3wcgah.us +3win.live +3wmnivgb8ng6d.cf +3wmnivgb8ng6d.ga +3wmnivgb8ng6d.gq +3wmnivgb8ng6d.ml +3wmnivgb8ng6d.tk +3wxhmv.info +3wxoiia16pb9ck4o.cf +3wxoiia16pb9ck4o.ga +3wxoiia16pb9ck4o.ml +3wxoiia16pb9ck4o.tk +3x0ex1x2yx0.cf +3x0ex1x2yx0.ga +3x0ex1x2yx0.gq +3x0ex1x2yx0.ml +3x0ex1x2yx0.tk +3x56.com +3xb90.club +3xjg0x.us +3xk.xyz +3xmoney.ru +3xophlbc5k3s2d6tb.cf +3xophlbc5k3s2d6tb.ga +3xophlbc5k3s2d6tb.gq +3xophlbc5k3s2d6tb.ml +3xophlbc5k3s2d6tb.tk +3xpl0it.vip +3ykacb.us +3z1ybp.host +3zar0252773.xyz +3zar0631533.xyz +3zar4406240.xyz +3zar5092660.xyz +3zar5960488.xyz +3zar9560167.xyz +3zar9582935.xyz +3zar9588159.xyz +3zar9610850.xyz +3zar9648137.xyz +3zar9649755.xyz +3zar9679233.xyz +3zar9711484.xyz +3zar9727694.xyz +3zar9747292.xyz +3zar9751254.xyz +3zar9751917.xyz +3zar9754677.xyz +3zar9770435.xyz +3zar9774507.xyz +3zar9787007.xyz +3zar9817748.xyz +3zar9855085.xyz +3zar9857698.xyz +3zar9869835.xyz +3zar9879852.xyz +3zar9889771.xyz +3zar9902505.xyz +3zar9906626.xyz +3zar9913256.xyz +3zar9920018.xyz +3zar9928344.xyz +3zar9941846.xyz +3zar9968623.xyz +3zar9979186.xyz +3zumchngf2t.cf +3zumchngf2t.ga +3zumchngf2t.gq +3zumchngf2t.ml +3zumchngf2t.tk +3zxdwj.site +4-boy.com +4-credit.com +4-debt.com +4-n.us +4.batikbantul.com +4.emailfake.ml +4.fackme.gq +40.volvo-xc.ml +40.volvo-xc.tk +4004445.com +4006444444.com +4006633333.com +4006677777.com +400br88.com +400da.ga +400domov.ru +40112.monster +4014445.com +401k300.live +401k300.ninja +401khedgefund.com +401kinvestmentadvisers.com +4034445.com +403qs.com +404box.com +404lorn.com +404qs.com +4057.com +4059.com +405piksel.xyz +4064445.com +406net.works +40837.monster +409356.com +40abc.ru +40andfitformen.com +40az.com +40bit.ru +40channels.com +40daikonkatsu-kisarazusi.xyz +40e0f2df.xyz +40favorisen.com +40gm40.club +40rip.ru +40rty.shop +40set.ru +40siri90.com +410piksel.xyz +411206.com +4114445.com +411beach.com +411beaches.com +411brides.com +411jobsblog.xyz +411jobsclub.xyz +411jobshomes.xyz +411jobslife.xyz +411jobsshop.xyz +411reversedirectory.com +411todayblog.xyz +411todayclub.xyz +411todaygroup.xyz +411todayhome.xyz +411todayone.xyz +411todayonline.xyz +411todayshop.xyz +41255.monster +4136552.com +4144445.com +415piksel.xyz +417homesphotography.xyz +417homesservices.xyz +417realtyclub.xyz +418.dk +418.se +4188019.com +419827.com +419833.com +41baoku.com +41blueslipnyc.com +41designclub.xyz +41eoyr.us +41plusdrive.xyz +41plusfoundation.xyz +41plusonline.xyz +41plusphotography.xyz +41scu.us +41uno.com +41uno.net +41usa.xyz +41v1relaxn.com +41y.ru +4204445.com +420baby.store +420blaze.it +420ico.bid +420pure.com +42380398.xyz +424267.com +42507.com +426074.com +42691.monster +427qs.com +4284445.com +429080.com +429356.com +4294445.com +429827.com +429a5d2.club +42assets.com +42betlike.com +42j3qfxroi.xyz +42o.org +42papa.com +42pets.com +42pinbahis.com +42trust.com +42u902u41t0.online +42u902u41t0.space +42u902u41t01t0.online +42u902u41t01t0.space +42u902u41t0924.online +42u902u41t0924.space +42u902u442i90j.online +42u902u442i90j.space +42u902u4924.online +42u902u4924.space +42u902u49241t0.online +42u902u49241t0.space +42u902u4924924.online +42u902u4924924.space +42u902u4h33u19.online +42u902u4vhh13h.online +42u902u4vhh13h.space +43070.monster +431qs.com +432206.com +4329827.com +433080.com +433206.com +4333840.site +4334445.com +433g.net +433qs.com +4344445.com +43601.xyz +438037.com +438800.com +438manbetx.com +4394445.com +439827.com +43adsdzxcz.info +43day365.xyz +43daydrive.xyz +43dayone.xyz +43dayshop.xyz +43dayway.xyz +43design365.xyz +43designclub.xyz +43designdrive.xyz +43designone.xyz +43designphotography.xyz +43designshop.xyz +43designway.xyz +43donschool.ru +43events.xyz +43manbetx.com +43papa.com +43sdvs.com +43site.xyz +43w6ft.netmail.tk +4404445.com +441206.com +443206.com +443388211.com +444044.xyz +44422.app +44443339.com +444449a.com +4444bbb.com +4444gao.com +4444riri.com +4444ru.com +4444sqw.com +4444vod.com +4444yin.com +4445aomenjinsha.com +4445i.com +4445j.com +4445jinsha.com +4445ms.com +4445n.com +4445q.com +4445sc.com +4445v.com +4445wap.com +4445x.com +4449837.com +444gege.com +444riri.com +444yiyi.com +444yyhh.com +44556677.igg.biz +445588211.com +445e8b.club +445t6454545ty4.cf +445t6454545ty4.ga +445t6454545ty4.gq +445t6454545ty4.ml +445t6454545ty4.tk +446206.com +446688211.com +446988.com +447206.com +44741.monster +4474445.com +448206.com +448440.com +4484445.com +448888211.com +449206.com +449988211.com +44ant.biz +44bit.ru +44bubu.com +44din.com +44favorisen.com +44hg.app +44mot.ru +44msc.biz +44scores.com +44stttn.xyz +45.biz +4504445.com +45058.monster +450com.com +450piksel.xyz +4510471.com +4510471.xyz +4524445.com +453000.win +453007.site +4533.top +4545.a.hostable.me +45456455.xyz +45460703.xyz +4547b3.com +454jackpot.com +455206.com +4555yh.com +456.dns-cloud.net +45632155.xyz +4564445.com +45656743.xyz +45656753.xyz +456575675.xyz +4569827.com +456b4564.cf +456b4564.ga +456b4564.gq +456b4564.ml +456b4564ev4.ga +456b4564ev4.gq +456b4564ev4.ml +456b4564ev4.tk +4574445.com +45780b1.club +4584445.com +459356.com +459d.club +45bt2.club +45e6.club +45favorisen.com +45hotesl.com +45it.ru +45kti.xyz +45up.com +46018.monster +460328.com +4604445.com +46059e0.xyz +4636552.com +463bv.space +465279.com +466453.usa.cc +46735.xyz +4674445.com +467uph4b5eezvbzdx.cf +467uph4b5eezvbzdx.ga +467uph4b5eezvbzdx.gq +467uph4b5eezvbzdx.ml +468391.com +4685dg.download +468671.info +46885c3f.xyz +469827.com +469837.com +46beton.ru +46designclub.xyz +46designdrive.xyz +46designhotel.xyz +46designplace.xyz +46homes.xyz +46international.xyz +46lclee29x6m02kz.cf +46lclee29x6m02kz.ga +46lclee29x6m02kz.gq +46lclee29x6m02kz.ml +46lclee29x6m02kz.tk +46plusone.xyz +46timebet.com +46world.xyz +47057.xyz +470qs.com +4720799.club +4744445.com +4754445.com +475829487mail.net +476429.com +47660.monster +476812763.info +4774445.com +47871.monster +478webhost.biz +4794445.com +479827.com +47ad119.club +47bit.ru +47c8kp.site +47designhomes.xyz +47designonline.xyz +47designphotography.xyz +47global.xyz +47l6g.us +47stmedia.com +47t.de +47webclub.xyz +47webone.xyz +47webonline.xyz +47webplace.xyz +480972.com +48164.monster +4818barsun.com +4824e.xyz +48365.xyz +48411.monster +4844445.com +4849.ru +48643.monster +4864445.com +487.nut.cc +48725.monster +4874445.com +48745.monster +4897c.club +4899w.com +48b3f73f.club +48dayclub.xyz +48daymovie.xyz +48ent.xyz +48m.info +48marketing.xyz +48nga.com +48plusclub.xyz +48plushomes.xyz +48plusmovie.xyz +48plusone.xyz +48plusphotography.xyz +48plusshop.xyz +48step.xyz +48usa.xyz +48way.xyz +4904445.com +4924445.com +492949a.com +493085.com +4944445.com +495-5454-695.ru +4954445.com +495metrov.ru +4964445.com +49696.xyz +4984445.com +498546511.xyz +499494a.com +49com.com +49dayblog.xyz +49daydrive.xyz +49dayhome.xyz +49dayhomes.xyz +49dayonline.xyz +49designblog.xyz +49designhome.xyz +49designone.xyz +49dgx.us +49ersproteamshop.com +49erssuperbowlproshop.com +49ersuperbowlshop.com +49guide.xyz +49pinbahis.com +49qoyzl.aid.pl +49thcoffee.club +49xq.com +49zuhbfwo9pfk13.xyz +4a12003.club +4agr.com +4alltradezmall.store +4alphapro.com +4avz.net +4b5yt45b4.cf +4b5yt45b4.ga +4b5yt45b4.gq +4b5yt45b4.ml +4b5yt45b4.tk +4baptists.com +4bb01643e14b.xyz +4bees.org +4bettergolf.com +4bf7eh.us +4blogers.com +4brothersdevelopment.com +4btec.com +4bver2tkysutf.cf +4bver2tkysutf.ga +4bver2tkysutf.gq +4bver2tkysutf.ml +4bver2tkysutf.tk +4bvm5o8wc.pl +4c1jydiuy.pl +4c5kzxhdbozk1sxeww.cf +4c5kzxhdbozk1sxeww.gq +4c5kzxhdbozk1sxeww.ml +4c5kzxhdbozk1sxeww.tk +4ca0d5c0.club +4callofduty.com +4chan.club +4cheaplaptops.com +4chnan.org +4cloud47.xyz +4cs-laser.com +4d2.online +4d2.rocks +4d2.solutions +4d2.store +4d2.world +4dentalsolutions.com +4diabetes.ru +4dincheon.info +4dincheon.org +4dlive.info +4dmacan.org +4dpondok.biz +4dtianjin.info +4dtianjin.org +4dx.pw +4e50ky.us +4easyemail.com +4eofbxcphifsma.cf +4eofbxcphifsma.ga +4eofbxcphifsma.gq +4eofbxcphifsma.ml +4eofbxcphifsma.tk +4etkwggjit7n4o6.xyz +4evangelicals.com +4ex30.us +4exporters.com +4ezloss.com +4fbdeo.us +4fcw4lt.best +4fda.club +4fengli.com +4fly.ga +4fly.ml +4fm9zk.us +4fou.com +4free.li +4freemail.org +4funpedia.com +4gamersbygamers.com +4gamesale.club +4gei7vonq5buvdvsd8y.cf +4gei7vonq5buvdvsd8y.ga +4gei7vonq5buvdvsd8y.gq +4gei7vonq5buvdvsd8y.ml +4gei7vonq5buvdvsd8y.tk +4georgia.org +4gfdsgfdgfd.tk +4gmovierulz.com +4grtkr.site +4gtula.us +4guam.org +4gwpencfprnmehx.cf +4gwpencfprnmehx.ga +4gwpencfprnmehx.gq +4gwpencfprnmehx.ml +4gwpencfprnmehx.tk +4hd8zutuircto.cf +4hd8zutuircto.ga +4hd8zutuircto.gq +4hd8zutuircto.ml +4hd8zutuircto.tk +4heat.ru +4hilton.net +4homeschooling.com +4hsxniz4fpiuwoma.ga +4hsxniz4fpiuwoma.ml +4hsxniz4fpiuwoma.tk +4illinois.org +4ima1x.us +4indiana.org +4indianews.com +4itcv3.us +4j3bvd.stream +4j9kl3ocq7.best +4j9tm.com +4jojo.com +4k2glw.us +4kd.ru +4kentucky.org +4kqk58d4y.pl +4kse.xyz +4kvadro.ru +4kzsjg.com +4l7r.icu +4lasoankhokthich.space +4lfqre.us +4louisiana.org +4lvpet.us +4mail.cf +4mail.ga +4mail.top +4mbet.info +4milyoner365.com +4minnesota.org +4mispc8ou3helz3sjh.cf +4mispc8ou3helz3sjh.ga +4mispc8ou3helz3sjh.gq +4mispc8ou3helz3sjh.ml +4mispc8ou3helz3sjh.tk +4mjrad.us +4mnsuaaluts.cf +4mnsuaaluts.ga +4mnsuaaluts.gq +4mnsuaaluts.ml +4mnsuaaluts.tk +4mnvi.ru +4mobile.pw +4mod.com +4money.site +4movierulzfree.com +4mpdsv.us +4mqrehwp.monster +4mtxds.us +4mwgfceokw83x1y7o.cf +4mwgfceokw83x1y7o.ga +4mwgfceokw83x1y7o.gq +4mwgfceokw83x1y7o.ml +4mwgfceokw83x1y7o.tk +4myloveones.com +4na3.pl +4nb.info +4nextmail.com +4nl.info +4nmpjhlrfp3uy06.xyz +4nmv.ru +4nv9v.us +4oawtg.site +4ocly.us +4ocmmk87.pl +4of671adx.pl +4ofqb4hq.pc.pl +4oi.ru +4oklahoma.org +4orty.com +4ozqi.us +4padpnhp5hs7k5no.cf +4padpnhp5hs7k5no.ga +4padpnhp5hs7k5no.gq +4padpnhp5hs7k5no.ml +4padpnhp5hs7k5no.tk +4pass.tk +4pet.ro +4pkr15vtrpwha.cf +4pkr15vtrpwha.ga +4pkr15vtrpwha.gq +4pkr15vtrpwha.ml +4pkr15vtrpwha.tk +4prkrmmail.net +4puertorico.org +4q9tw.site +4qmail.com +4rakipbet.com +4rdbt.icu +4red.ru +4rfv6qn1jwvl.cf +4rfv6qn1jwvl.ga +4rfv6qn1jwvl.gq +4rfv6qn1jwvl.ml +4rfv6qn1jwvl.tk +4rl.info +4rxiet.us +4rybu.us +4s9ryg.us +4sakej.us +4sauna.ru +4sculpting.com +4se.us +4search.global +4search.pictures +4security.ru +4securityguards.com +4senditnow.com +4senior.life +4shizzleyo.com +4simpleemail.com +4siri90.com +4sjgy8.us +4softsite.info +4starmaids.com +4stroy.info +4stroy.pl +4struga.com +4studio43.xyz +4suf6rohbfglzrlte.cf +4suf6rohbfglzrlte.ga +4suf6rohbfglzrlte.gq +4suf6rohbfglzrlte.ml +4suf6rohbfglzrlte.tk +4sumki.org.ua +4supermarkets.com +4sygo.com +4tb.host +4tbny5.site +4testimonials.com +4timesover.com +4tmail.com +4tmail.net +4tphy5m.pl +4trainers.ru +4trumpers.com +4u2web.com +4u36s.us +4up3vtaxujpdm2.cf +4up3vtaxujpdm2.ga +4up3vtaxujpdm2.gq +4up3vtaxujpdm2.ml +4up3vtaxujpdm2.tk +4vc0pezfz7oppcv.xyz +4verified.com +4vjtan.com +4vlasti.net +4vny8e.us +4vocal.com +4vq19hhmxgaruka.cf +4vq19hhmxgaruka.ga +4vq19hhmxgaruka.gq +4vq19hhmxgaruka.ml +4vq19hhmxgaruka.tk +4w.io +4w0sz.us +4w4w4w.xyz +4wanbet.org +4warding.com +4warding.net +4warding.org +4wpgxw.info +4wu2et.us +4wyoming.org +4x10.ru +4x1y3n98pdus.online +4x4-team-usm.pl +4x4man.com +4x4n.ru +4x5aecxibj4.cf +4x5aecxibj4.ga +4x5aecxibj4.gq +4x5aecxibj4.ml +4x5aecxibj4.tk +4x888.com +4xmail.net +4xmail.org +4xyitv.site +4xzotgbunzq.cf +4xzotgbunzq.ga +4xzotgbunzq.gq +4xzotgbunzq.ml +4xzotgbunzq.tk +4y3zos.us +4yhcmx.us +4yodarbestfdish.xyz +4yooufoodsme.xyz +4you.de +4youalamitech.xyz +4youbet.info +4youbet.org +4youbuzzza.xyz +4youchoicce.store +4youfoodalami.xyz +4youihibasouit.xyz +4ypbc.us +4ywzd.xyz +4zbt9rqmvqf.cf +4zbt9rqmvqf.ga +4zbt9rqmvqf.gq +4zbt9rqmvqf.ml +4zbt9rqmvqf.tk +4ze1hnq6jjok.cf +4ze1hnq6jjok.ga +4ze1hnq6jjok.gq +4ze1hnq6jjok.ml +4ze1hnq6jjok.tk +4zhens.info +4zm1fjk8hpn.cf +4zm1fjk8hpn.ga +4zm1fjk8hpn.gq +4zm1fjk8hpn.ml +4zm1fjk8hpn.tk +5-attorney.com +5-box.ru +5-mail.info +5-star.repair +5.emailfake.ml +5.fackme.gq +500-0-501.ru +500-rub.ru +50000t.com +50000z.com +5000302.ru +500555.app +50056.monster +500888.app +5009778.com +500au.com +500da.ga +500loan-payday.com +500ml.art +500obyavlenii.ru +500qf.com +50271.monster +5044445.com +504718.com +50573c.com +505812.com +5064445.com +506760.com +5074445.com +508227.com +509journey.com +50abc.ru +50c0bnui7wh.cf +50c0bnui7wh.ga +50c0bnui7wh.gq +50c0bnui7wh.ml +50c0bnui7wh.tk +50daikonkatsu-oumihatimansi.xyz +50it.ru +50jin.ru +50mb.ml +50offsale.com +50plusfitnesscenters.com +50sale.club +50sale.edu.vn +50saleclub.com +50set.ru +51.com +510014.com +510520.org +510md.com +510sc.com +511153126.buzz +511157544.buzz +5114445.com +5124445.com +5129927.com +512jsq.com +51329.monster +514loans.net +515.tech +5154445.com +5159927.com +5164445.com +516ac.com +516qs.com +517577aa.com +517577ff.com +517577hh.com +517577jj.com +517577oo.com +517dnf.com +517she.com +517wanzhuan.com +517xc.space +5184445.com +5188yg.com +5194445.com +519art.com +51azinoijefomcf.icu +51cp66.com +51forex.online +51icq.com +51jel.com +51jiaju.net +51kayak.com +51kfb.xyz +51kky.club +51kyb.com +51lya8.site +51lyt.com +51mfty.com +51stocks.xyz +51store.ru +51ttkx.com +51xh.fun +51xiuqi.com +51xoyo.com +51zws.com +5200001.top +5202010.com +5202011.com +5202012.com +5202016.com +5204445.com +5204567.com +520mgm1.com +520mgm2.com +520mgm5.com +520mgm9.com +520pp.xyz +520wukong.com +520xjapp.com +52110.monster +52154.monster +5217.website +5218ag.com +523gbt.com +52438.xyz +524713.com +5258aaa.com +5258ccc.com +5258cz.com +5258ddd.com +5258hhh.com +5258iii.com +5258kj.com +5258kkk.com +5258lll.com +5258m.com +5258mmm.com +5258n.com +5258nnn.com +5258r.com +5258rrr.com +5258ttt.com +5258u.com +5258v.com +5258vvv.com +5258www.com +5258xxx.com +5258y.com +5258z.com +5258zf.com +5258zzz.com +5259d1.xyz +525kou.com +5261188.net +52694.xyz +526ba.com +526ca.com +526di.com +526en.com +526ge.com +526ji.com +526ke.com +526li.com +528037.com +52896.monster +5289927.com +5294445.com +52964.xyz +529ac.com +529qs.com +52akb.ru +52astar.com +52avpzg.info +52gmail.com +52it.ru +52moe.com +52panda.info +52siwa.xyz +52smooth.com +52subg.org +52tbao.com +52tour.com +52xjapp.com +5304445.com +530run.com +530run.net +5311188.net +5314445.com +5325566.net +53256.monster +532qs.com +533ac.com +5351188.net +5354445.com +536898.club +5369927.com +5376k.com +5380b.club +53822.monster +538a.xyz +538hd.com +53978.monster +539b82a0.club +53vtbcwxf91gcar.cf +53vtbcwxf91gcar.ga +53vtbcwxf91gcar.gq +53vtbcwxf91gcar.ml +53vtbcwxf91gcar.tk +54177.monster +541lfh.us +54268426542654.info +5434445.com +543dsadsdawq.info +545kp.info +5464445.com +54693.monster +54770.xyz +5485.website +548fqr.us +54916.monster +549356.com +549827.com +54988.com +54artistry.com +54ewma.us +54mguitcku64n7f.xyz +54np.club +54pyy.com +54tiljt6dz9tcdryc2g.cf +54tiljt6dz9tcdryc2g.ga +54tiljt6dz9tcdryc2g.gq +54tiljt6dz9tcdryc2g.ml +54tiljt6dz9tcdryc2g.tk +54zxl.info +55002123.com +550088211.com +5500jc4.com +5500jc6.com +5500xz.com +550559.info +55206.cc +552288211.com +55229.net +5524445.com +553388211.com +5534445.com +554206.com +5544445.com +5544499.info +554ds.com +555000jc4.com +555000jc9.com +555536566.com +55555cn.com +5555fun.com +5555lx.com +55581555.com +55586555.com +55593555.com +555gmail.com +555papa.com +555uh.com +555ur.com +5564445.com +5566178.com +5566358.com +5566368.com +5566508.com +5566518.com +5566528.com +5566538.com +556655vn.com +5566598.com +5566617.com +5566623.com +5566627.com +5566628.com +5566653.com +5566658.com +5566659.com +5566672.com +5566681.com +5566682.com +5566691.com +5566693.com +5566738.com +5566758.com +556688211.com +557652.com +5579927.com +558-10.com +558-11.com +558-22.com +558-33.com +558-44.com +558-66.com +558-77.com +558-8.com +558-88.com +5581788.com +5588600.com +558888211.com +5588rt.space +55919b.com +5594445.com +5599rt.space +55abx.xyz +55c1bda2.xyz +55dy.info +55hg.app +55hg.bet +55hosting.net +55mariettastreet.com +56123m.com +56234m.com +5624445.com +5629927.com +5634445.com +56466233sb1.xyz +564b.club +5654445.com +56567m.com +5664445.com +567107.com +56787.com +5679827.com +568ac.com +56k.tokyo +56toyk.us +570nk.com +5714445.com +57151711.xyz +5717.ru +571ri.com +571sa.com +571se.com +571te.com +571yi.com +571za.com +5724445.com +57291.xyz +5739222.com +574c9d1.club +5754445.com +576166nn.com +576166ss.com +576166ww.com +576166zz.com +576cce70.xyz +576qs.com +5774445.com +5788hy.com +57994.xyz +57ffdjz.host +57timebet.com +57top.ru +57up.com +57xd.icu +5801000.ru +5804445.com +580628.com +5814445.com +5829927.com +582ds.com +5858.cd +5864445.com +586qs.com +587922.com +588-10.net +588-9.net +5880088.com +5880288.com +5880388.com +5880688.com +5882088.com +5882388.com +5884445.com +5885678.com +5886088.com +5886388.com +588card.com +588indo.com +588v2.info +5897f.com +58994.xyz +58as.com +58cam.live +58cam.site +58ec7.club +58h.de +58k.ru +59003456.com +59188cp.com +5925566.net +592ac.com +593ds.com +594qs.com +595ac.com +597401.com +597517.com +5979837.com +597j.com +5989927.com +5994445.com +59avtovokzal.ru +59o.net +59smi.ru +59solo.com +5a58wijv3fxctgputir.cf +5a58wijv3fxctgputir.ga +5a58wijv3fxctgputir.gq +5a58wijv3fxctgputir.ml +5a58wijv3fxctgputir.tk +5aaa.ru +5acmkg8cgud5ky.cf +5acmkg8cgud5ky.ga +5acmkg8cgud5ky.gq +5acmkg8cgud5ky.ml +5acmkg8cgud5ky.tk +5ajfk.us +5am5ung.cf +5am5ung.ga +5am5ung.gq +5am5ung.ml +5am5ung.tk +5avzu4.host +5azino777.org +5b2rak.com +5biya2otdnpkd7llam.cf +5biya2otdnpkd7llam.ga +5biya2otdnpkd7llam.gq +5biya2otdnpkd7llam.ml +5blayg.site +5btxankuqtlmpg5.cf +5btxankuqtlmpg5.ga +5btxankuqtlmpg5.gq +5btxankuqtlmpg5.ml +5btxankuqtlmpg5.tk +5c0804b6.xyz +5c86f93c.xyz +5cac.club +5cbc.com +5ciyuan.com +5cjvx4dbh4rvv6c.xyz +5cyzrn.us +5d763.xyz +5ddgrmk3f2dxcoqa3.cf +5ddgrmk3f2dxcoqa3.ga +5ddgrmk3f2dxcoqa3.gq +5ddgrmk3f2dxcoqa3.ml +5ddgrmk3f2dxcoqa3.tk +5dsmartstore.com +5e66.xyz +5ekufm.us +5el5nhjf.pl +5erdft.info +5euro.ga +5evr3o.site +5f9x2r.stream +5fengli.com +5fingershoesoutlet.com +5foods.asia +5fp31.site +5fr2hnaflkpl10f.xyz +5fwl03.info +5g.events +5g.glass +5g009.com +5g4.us +5gamdo.com +5game.ink +5gdeos.net +5gdytt.com +5gdyxz.com +5ghgfhfghfgh.tk +5gnulq.us +5gpdx.net +5gr6v4inzp8l.cf +5gr6v4inzp8l.ga +5gr6v4inzp8l.gq +5gr6v4inzp8l.ml +5gramos.com +5gvergelijker.com +5haj3n.us +5hcc9hnrpqpe.cf +5hcc9hnrpqpe.ga +5hcc9hnrpqpe.gq +5hcc9hnrpqpe.ml +5hcc9hnrpqpe.tk +5hcioh.us +5hfmczghlkmuiduha8t.cf +5hfmczghlkmuiduha8t.ga +5hfmczghlkmuiduha8t.gq +5hfmczghlkmuiduha8t.ml +5hfmczghlkmuiduha8t.tk +5hiu2b.site +5i8gvs.us +5ikos.us +5ixa0b.us +5iznnnr6sabq0b6.cf +5iznnnr6sabq0b6.ga +5iznnnr6sabq0b6.gq +5iznnnr6sabq0b6.ml +5iznnnr6sabq0b6.tk +5jchkz.us +5jddaxewlm6gump.xyz +5jir9r4j.pl +5jjh3o.best +5july.org +5jy5.icu +5ketonemastery.com +5kgube.us +5kife.us +5kino.ru +5kmklh82yh72tk0.xyz +5kzdxs.com +5l3jh.us +5ljkf.icu +5ljqim.us +5lmpsj.com +5lqwcl.us +5lydpa.space +5lzfn.icu +5m6wa.us +5mail.cf +5mail.ga +5mail.xyz +5mails.xyz +5manbetx.info +5manbetx.org +5masters.site +5mi3rb.us +5minutetrip.com +5mot.ru +5music.info +5music.top +5muvf9cd4.xyz +5my.ru +5n9f1.xyz +5nqkxprvoctdc0.cf +5nqkxprvoctdc0.ga +5nqkxprvoctdc0.gq +5nqkxprvoctdc0.ml +5nqkxprvoctdc0.tk +5nvsoc.com +5nwnks.fun +5oclockmonkey.online +5ocwa7.com +5od56.site +5ogessl0pnue88t.xyz +5ok6.com +5osjrktwc5pzxzn.cf +5osjrktwc5pzxzn.ga +5osjrktwc5pzxzn.gq +5osjrktwc5pzxzn.ml +5osjrktwc5pzxzn.tk +5ouce2.us +5ouhkf8v4vr6ii1fh.cf +5ouhkf8v4vr6ii1fh.ga +5ouhkf8v4vr6ii1fh.gq +5ouhkf8v4vr6ii1fh.ml +5ouhkf8v4vr6ii1fh.tk +5oz.ru +5papa.ooo +5qjgt.us +5qq59.xyz +5quickrecipes.com +5quq5vbtzswx.cf +5quq5vbtzswx.ga +5quq5vbtzswx.gq +5quq5vbtzswx.ml +5quq5vbtzswx.tk +5r6atirlv.pl +5rakipbet.com +5rclxb.com +5rdqv3.us +5rfscr.us +5rof.cf +5rxsy.us +5se.life +5se.mobi +5se01.com +5se04.com +5se17.com +5se24.com +5se30.com +5se43.com +5se46.com +5se48.com +5se50.com +5se56.com +5se57.com +5se63.com +5se68.com +5se70.com +5se74.com +5se79.com +5se81.com +5se85.com +5se89.com +5se94.com +5shoecoupon.com +5slap.com +5slmjs.com +5so1mammwlf8c.cf +5so1mammwlf8c.ga +5so1mammwlf8c.gq +5so1mammwlf8c.ml +5so1mammwlf8c.tk +5starsretail.com +5steps-site.ru +5sun.net +5t2e.us +5t42.space +5tb-pix.ru +5tb-video.ru +5tgrfy.com +5u4nms.us +5u612b.com +5uet4izbel.cf +5uet4izbel.ga +5uet4izbel.gq +5uet4izbel.ml +5uet4izbel.tk +5umbw2.us +5urhrt.us +5vaubc.host +5vcxwmwtq62t5.cf +5vcxwmwtq62t5.ga +5vcxwmwtq62t5.gq +5vcxwmwtq62t5.ml +5vcxwmwtq62t5.tk +5vlimcrvbyurmmllcw0.cf +5vlimcrvbyurmmllcw0.ga +5vlimcrvbyurmmllcw0.gq +5vlimcrvbyurmmllcw0.ml +5vlimcrvbyurmmllcw0.tk +5vpn.org +5vviio.us +5wanbetx.org +5watch5.com +5wjft.us +5x25.com +5xgzdu.com +5y5u.com +5yatc.site +5ygeqi.us +5yh55.com +5yi9xi9.mil.pl +5yk.idea-makers.tk +5ymail.com +5ytff56753kkk.cf +5ytff56753kkk.ga +5ytff56753kkk.gq +5ytff56753kkk.ml +5ytff56753kkk.tk +5yxhkg.us +5zan.us +5zvt9h.us +6-6-6.cf +6-6-6.ga +6-6-6.igg.biz +6-6-6.ml +6-6-6.nut.cc +6-6-6.usa.cc +6-attorney.com +6-debt.com +6.emailfake.ml +6.fackme.gq +60-minuten-mail.de +60.volvo-xc.ml +60.volvo-xc.tk +600br88.com +600da.ga +600pro.com +60127.monster +6018pc.com +601ds.com +60236.monster +6024445.com +602ds.com +6034500.info +603ds.com +604799588.xyz +605f45.xyz +6060search.com +6064445.com +60950.cn +609k23.pl +60dayworkoutdvd.info +60g2.icu +60leaves.com +60minutemail.com +60paydayloans.co.uk +60set.ru +61042.xyz +610ds.com +6114445.com +612ds.com +6136552.com +613cycling.com +6144445.com +61466.monster +614ds.com +61508.monster +6154445.com +616202.com +6169927.com +6174445.com +618011.com +61802.xyz +6194445.com +619va2h8.info +61movierulz.com +61xb.com +620047.com +6204445.com +62181.monster +621ac.com +62277.monster +6239927.com +623ac.com +62712.xyz +627ds.com +62897a64.club +62it.ru +62rwb3.info +63086.xyz +630aa.com +630ds.com +6314445.com +631ds.com +6321066.com +6321067.com +6321069.com +6321070.com +6325a.com +63305.monster +6334445.com +6339092.com +633bp.com +6344445.com +6353020.site +6369927.com +636niu.com +6375566.net +638c2997.xyz +638ds.com +63cc.net +63euro.ga +6404445.com +640niu.com +64255.xyz +644ds.com +645251.com +645lpd.site +64632.monster +64655.monster +6467.host +646dl1.com +6474445.com +6483769.xyz +6484445.com +649827.com +64a8f.us +64gvj.buzz +64mo7b.online +64uxbcwkcy8.website +650489632148.xyz +6524445.com +6530348.com +6530358.com +6530378.com +6530418.com +6530428.com +6530458.com +6530468.com +6530498.com +6530508.com +6530528.com +6530548.com +653147.com +6533c.club +6534668.com +6534848.com +6534928.com +6534948.com +6534978.com +6534998.com +653niu.com +6542984265429.info +6546500656.info +6549827.com +655559999.com +655qs.com +6564445.com +6568899.com +656niu.com +65705.xyz +657niu.com +658hg.com +659niu.com +65nryny6y7.cf +65nryny6y7.ga +65nryny6y7.gq +65nryny6y7.ml +65nryny6y7.tk +65uwtobxcok66.cf +65uwtobxcok66.ga +65uwtobxcok66.gq +65uwtobxcok66.ml +65uwtobxcok66.tk +6600a10.com +6600a16.com +6600a18.com +6600a19.com +6600a22.com +6600a23.com +6600a25.com +6600a27.com +6600a32.com +6600a33.com +6600a34.com +6600a43.com +6600a44.com +6600a48.com +6600a50.com +6600a54.com +6600a56.com +6600a57.com +6600a61.com +6600a62.com +6600a66.com +6600a67.com +6600a68.com +6600a69.com +6600a71.com +6600a72.com +6600a80.com +6600a83.com +6600a84.com +6600a85.com +6600a86.com +6600a87.com +6600a89.com +6600a92.com +6600a96.com +6600jc3.com +6604445.com +660niu.com +6615566.net +6616818.com +6618ca.com +66227d.com +6624445.com +663388211.com +663niu.com +664niu.com +665588211.com +665niu.com +665qs.com +666-evil.com +666-satan.cf +666-satan.ga +666-satan.gq +666-satan.ml +666-satan.tk +666.run +666002.xyz +66663339.com +666688211.com +666777bb.com +6667988.com +6668288.com +6668658.com +666866aa.com +666866bb.com +666866cc.com +666866dd.com +666866ee.com +666866ff.com +666866ii.com +666866jj.com +666866ll.com +666866nn.com +666866pp.com +666866rr.com +666866ss.com +666866tt.com +666866uu.com +666866vip.com +666866vv.com +666866ww.com +666866zz.com +6668788.com +6668978.com +6669008.com +6669188.com +6669318.com +6669388.com +6669398.com +6669588.com +6669628.com +6669668.com +6669868.com +6669e.com +666betgiris.net +666fsd.com +666mai.com +666nyg.com +666se16.top +666store.xyz +666vu.com +666yiyi.com +666zagrusssski.ru +666zwzm.com +6672.website +667766vn.com +6678.info +6678788.com +667niu.com +667tv.com +6681788.com +6682188.com +6682388.com +6682588.com +6683088.com +6683188.com +6683588.com +6683788.com +6685988.com +6686088.com +6688256.com +6688257.com +6688260.com +668888211.com +6690088.com +6690288.com +6690588.com +6692288.com +6692388.com +6692588.com +6692688.com +6693188.com +6693288.com +6693388.com +6693688.com +6695088.com +6695188.com +6695288.com +6695388.com +6695588.com +6695688.com +6696188.com +6696388.com +6697688.com +6698088.com +6698388.com +669988211.com +66a101.com +66a102.com +66a106.com +66a41.com +66a44.com +66a47.com +66a54.com +66a71.com +66a76.com +66a80.com +66a85.com +66a90.com +66a96.com +66abc.ru +66br88.com +66ddy.com +66ec16.xyz +66fc96b.xyz +66hg.bet +66hhqp.com +66jin.ru +66rrnn.com +66secao.icu +66shun.biz +66stttn.xyz +66tower.com +66ttll.com +66ty.online +66ty.space +66uuaa.com +66uugg.com +66uurr.com +66uutt.com +66vvee.com +66vvmm.com +66vvrr.com +66vvss.com +66wwcc.com +66wwrr.com +66wwzz.com +66zzll.com +66zzpp.com +6704445.com +670niu.com +671niu.com +67244de.xyz +672643.net +67296666.com +67297777.com +6734445.com +673506.com +6736552.com +6751188.net +675hosting.com +675hosting.net +675hosting.org +676199.com +676ac.com +676niu.com +6774445.com +677lu.com +677niu.com +67832.cf +67832.ga +67832.ml +67832.tk +6789038.com +6789058.com +6789108.com +6789128.com +6789138.com +6789158.com +6789178.com +6789208.com +6789248.com +6789258.com +6789358.com +6789548.com +6789618.com +6789648.com +6789658.com +6789827.com +6789848.com +6789938.com +6789978.com +6789v.com +678jav.com +678niu.com +678nu.com +678ou.com +678si.com +679045.icu +67998.monster +679niu.com +679yo.com +679zi.com +67azck3y6zgtxfoybdm.cf +67azck3y6zgtxfoybdm.ga +67azck3y6zgtxfoybdm.gq +67azck3y6zgtxfoybdm.ml +67azck3y6zgtxfoybdm.tk +67nref.info +67qcqm.com +67rzpjb2im3fuehh9gp.cf +67rzpjb2im3fuehh9gp.ga +67rzpjb2im3fuehh9gp.gq +67rzpjb2im3fuehh9gp.ml +67rzpjb2im3fuehh9gp.tk +67sharov.ru +67xxzwhzv5fr.cf +67xxzwhzv5fr.ga +67xxzwhzv5fr.gq +67xxzwhzv5fr.tk +67y9.icu +680niu.com +680rve.us +68168136.com +681hu.com +681lv.com +681ne.com +681niu.com +681pa.com +681pi.com +681qi.com +682653.com +682ne.com +682niu.com +682pa.com +6831.host +6831.space +684niu.com +68583.xyz +685niu.com +686206.com +6875666.com +6883188.com +6883688.com +6884688.com +6885788.com +6885988.com +6886088.com +6886188.com +6887088.com +6887188.com +6887588.com +6888588.com +6889188.com +6889588.com +688as.org +689ac.com +68ace.net +68apps.com +68azpqh.pl +68mail.com +68s.info +68weijiaoyi.com +69-ew.tk +6904445.com +690805611.xyz +6911666.com +691ds.com +6921666.com +6930666.com +694069190.xyz +6944445.com +6946.buzz +6948.buzz +6949.buzz +6954445.com +6957.buzz +6957666.com +695ty.xyz +6961666.com +6963.buzz +6964.buzz +6964445.com +6965666.com +6967.buzz +6967666.com +696ac.com +6970.buzz +6975.buzz +6980066.com +698024.com +698025.com +698026.com +698027.com +698029.com +698031.com +698035.com +698042.com +698052.com +698053.com +698054.com +6981.buzz +698149.com +698154.com +698164.com +698174.com +698180.com +698201.com +698203.com +698204.com +698207.com +698224.com +6982277.com +698240.com +698241.com +698244.com +698246.com +698248.com +698254.com +698264.com +698274.com +698284.com +698294.com +698309.com +698341.com +698342.com +698343.com +698344.com +698354.com +6983666.com +698394.com +698403.com +698404.com +698405.com +698406.com +698407.com +698409.com +698410.com +698414.com +698416.com +698417.com +698420.com +698424.com +698425.com +698426.com +698427.com +698428.com +698429.com +698430.com +698432.com +698434.com +698435.com +698437.com +698438.com +698441.com +698443.com +6984433.com +6984455.com +698447.com +698460.com +698464.com +698467.com +698480.com +698485.com +698490.com +698493.com +698497.com +698540.com +698549.com +6985522.com +698554.com +698574.com +698590.com +698604.com +698610.com +698620.com +698634.com +698640.com +698642.com +698643.com +698649.com +6986655.com +698674.com +698694.com +698706.com +698742.com +6987711.com +6987722.com +6987733.com +698794.com +698907.com +698914.com +698924.com +698934.com +698974.com +6989911.com +698994.com +6989966.com +698ac.com +6991.buzz +6991666.com +699695.com +69e10d94.xyz +69postix.info +69s.buzz +69sp.art +69sp.mobi +69sp.red +69sp.sale +69t03rpsl4.cf +69t03rpsl4.ga +69t03rpsl4.gq +69t03rpsl4.ml +69t03rpsl4.tk +69tv.art +69xba.xyz +69xinpian.xyz +69xk4.us +69yogo.xyz +6a1.xyz +6a24bzvvu.pl +6a4.xyz +6a7dtwpreu5qvxlnreu5201.com +6a7dtxpjne1uwxhnelk6136.com +6a81fostts.cf +6a81fostts.ga +6a81fostts.gq +6a81fostts.ml +6a81fostts.tk +6a84da.club +6acg.com +6aplgd.info +6aqm2c.us +6asocx.us +6b58.xyz +6brmwv.cf +6brmwv.ga +6brmwv.gq +6brmwv.ml +6brmwv.tk +6c171.club +6c5bf61.club +6cbc.com +6ciku.us +6cq9epnn.edu.pl +6cv.info +6cw.info +6d5.xyz +6d6bc6.com +6dadcx.us +6dx.info +6dz.info +6ed.info +6ed9cit4qpxrcngbq.cf +6ed9cit4qpxrcngbq.ga +6ed9cit4qpxrcngbq.gq +6ed9cit4qpxrcngbq.ml +6ed9cit4qpxrcngbq.tk +6ei.info +6ek.info +6elkf86.pl +6en.info +6en9mail2.ga +6eng-zma1lz.ga +6eogvwbma.pl +6eq.info +6etix1.site +6eu.info +6ev.info +6f.pl +6f4af.club +6faw.icu +6fengli.com +6fihtu.com +6fqwxa.info +6g.glass +6gavlf.online +6gbixl.site +6gotkl.us +6gumwj.us +6hermesbirkin0.com +6hjgjhgkilkj.tk +6hk.info +6hq6.com +6ip.us +6iv1mc.com +6j8onr9olu54u3c.xyz +6k4wm9.info +6kelb5.info +6kg8ddf6mtlyzzi5mm.cf +6kg8ddf6mtlyzzi5mm.ga +6kg8ddf6mtlyzzi5mm.gq +6kg8ddf6mtlyzzi5mm.ml +6kg8ddf6mtlyzzi5mm.tk +6koxz4.us +6lb1kb.us +6lhp5tembvpl.cf +6lhp5tembvpl.ga +6lhp5tembvpl.gq +6lhp5tembvpl.ml +6lhp5tembvpl.tk +6lr.info +6mail.cc +6mail.cf +6mail.ga +6mail.ml +6mail.top +6mails.com +6manbetx.info +6mbetx.info +6monthscarinsurance.co.uk +6movierulz.net +6nb5.us +6nns09jw.bee.pl +6od.info +6osjcz.us +6ox.com +6papa.ooo +6paq.com +6pzukk.host +6q70sdpgjzm2irltn.cf +6q70sdpgjzm2irltn.ga +6q70sdpgjzm2irltn.gq +6q70sdpgjzm2irltn.ml +6q70sdpgjzm2irltn.tk +6qssmefkx.pl +6qstz1fsm8hquzz.cf +6qstz1fsm8hquzz.ga +6qstz1fsm8hquzz.gq +6qstz1fsm8hquzz.ml +6qstz1fsm8hquzz.tk +6qwkvhcedxo85fni.cf +6qwkvhcedxo85fni.ga +6qwkvhcedxo85fni.gq +6qwkvhcedxo85fni.ml +6qwkvhcedxo85fni.tk +6qzwgn.us +6ra8wqulh.pl +6rndtguzgeajcce.cf +6rndtguzgeajcce.ga +6rndtguzgeajcce.gq +6rndtguzgeajcce.ml +6rndtguzgeajcce.tk +6rrtk52.mil.pl +6s2duahvy0da2fum.space +6s5z.com +6scwis5lamcv.gq +6somok.ru +6tevf8.us +6th-market-shopp.online +6trsqu.us +6tumdl.site +6twkd1jggp9emimfya8.cf +6twkd1jggp9emimfya8.ga +6twkd1jggp9emimfya8.gq +6twkd1jggp9emimfya8.ml +6twkd1jggp9emimfya8.tk +6u1fuh.info +6ugzob6xpyzwt.cf +6ugzob6xpyzwt.ga +6ugzob6xpyzwt.gq +6ugzob6xpyzwt.ml +6ugzob6xpyzwt.tk +6url.com +6v9haqno4e.cf +6v9haqno4e.ga +6v9haqno4e.gq +6v9haqno4e.ml +6v9haqno4e.tk +6vdmep.us +6vgflujwsc.cf +6vgflujwsc.ga +6vgflujwsc.gq +6vgflujwsc.ml +6wkaez.site +6wtms1.com +6xozla.us +6xtx.com +6yh66.com +6yhlim.host +6z2uwj53vosfvgr.xyz +6zbih.us +6zl1e.us +6zxpbk.us +7-attorney.com +7.emailfake.ml +7.fackme.gq +70000000.xyz +7005tkrbne16ttvnale3924.com +7005tkrnmu5eazfnrgc9508.com +7005tkrnne56stforfu2545.com +700br88.com +700m.site +702action.com +702called.xyz +702whitepages.xyz +702yl.com +703041.icu +7034445.com +7036552.com +703xanmf2tk5lny.cf +703xanmf2tk5lny.ga +703xanmf2tk5lny.gq +703xanmf2tk5lny.ml +703xanmf2tk5lny.tk +7043w.com +7054445.com +7060dy.com +7064445.com +7068001.com +7068003.com +70742e.club +707579.com +7088708.biz +708997.com +708ugg-boots.com +7094445.com +70abc.ru +70don.ru +70k6ylzl2aumii.cf +70k6ylzl2aumii.ga +70k6ylzl2aumii.gq +70k6ylzl2aumii.ml +70k6ylzl2aumii.tk +70lg8cbebpd5mst.com +70lgat.us +70mot.ru +70rang.net +70rang.org +70s.ink +710manbetx.com +711.shop +7119.net +711d895.xyz +7139927.com +713ewm5.com +713ewm6.com +713ewm7.com +713ewm8.com +713properties.com +7154445.com +715801.site +7174445.com +718037.com +719x.com +71btdutk.blogrtui.ru +71cnb.space +71compete.com +71d0.club +71squared.net +7204445.com +72153.monster +7219ii.com +7219jj.com +7219kk.com +7219ll.com +7219nn.com +7219oo.com +7219pp.com +7219rr.com +7219tt.com +7219xx.com +7219yy.com +7219zz.com +722552.com +7234445.com +72388dzz.com +72388sx.com +72388yh.com +723ds.com +726xhknin96v9oxdqa.cf +726xhknin96v9oxdqa.gq +726xhknin96v9oxdqa.ml +726xhknin96v9oxdqa.tk +727qs.com +72825.monster +7284445.com +729904.com +729ac.com +72hremergencypack.com +72w.com +72yin.com +730490.com +73052.monster +73189.monster +731ds.com +733ac.com +733manbetx.com +7345.host +734manbetx.com +734santamaria.com +738037.com +7384445.com +738ac.com +739837.com +7399837.com +73999r.com +73ac4b.us +73cnb.space +73n.app +73t1xa.us +73up.com +73wire.com +73xk2p39p.pl +7414445.com +741bfa10.xyz +7426118.com +74507.monster +7474445.com +747c67.club +749356.com +7494445.com +749827.com +749837.com +749manbetx.com +74cnb.space +74d30a57.club +74jw.com +74shequ.icu +74xa6v.com +750shipping.com +7511188.net +7519927.com +751ac.com +7524445.com +75271.monster +7544445.com +75470.xyz +7555.info +755820.com +755978.com +7567fdcvvghw2.cf +7567fdcvvghw2.ga +7567fdcvvghw2.gq +7567fdcvvghw2.ml +7567fdcvvghw2.tk +757199.com +7583.host +758ac.com +759b02.com +759b03.com +759b100.com +759b101.com +759b103.com +759b104.com +759b107.com +759b110.com +759b112.com +759b114.com +759b116.com +759b120.com +759b121.com +759b123.com +759b125.com +759b129.com +759b130.com +759b133.com +759b134.com +759b136.com +759b139.com +759b140.com +759b141.com +759b143.com +759b150.com +759b152.com +759b160.com +759b161.com +759b166.com +759b169.com +759b171.com +759b173.com +759b191.com +759b192.com +759b193.com +759b195.com +759b196.com +759b197.com +759b212.com +759b259.com +759b272.com +759b273.com +759b43.com +759b45.com +759b57.com +759b58.com +759b61.com +759b72.com +759b73.com +759b75.com +759b76.com +759b87.com +759b88.com +759b89.com +759b90.com +759b93.com +759b94.com +759c51.com +75bt2y.site +75e6dbc.xyz +75gf7g7h.xyz +75happy.com +75hosting.com +75hosting.net +75hosting.org +75it.ru +7614445.com +7615089.site +7619837.com +765manbetx.com +765qs.com +7664445.com +76654422.com +76654433.com +76654488.com +76654499.com +76655511.com +76655533.com +76655544.com +76655555.com +76655566.com +76655577.com +76655588.com +76655599.com +76656644.com +76656655.com +76656688.com +76657777.com +76657788.com +76657799.com +76658800.com +76658811.com +76658833.com +76658855.com +76658866.com +76658877.com +76659911.com +76659922.com +76659944.com +76659966.com +76659977.com +768037.com +768699.com +76938.monster +76ctr.us +76ersbasketballpro.com +76etij.us +76jdafbnde38cd.cf +76jdafbnde38cd.ga +76jdafbnde38cd.gq +76jdafbnde38cd.ml +76jdafbnde38cd.tk +76l5ht.us +76rcnf.us +76servers.com +76up.com +7700xj.com +770206.com +7714445.com +771e05.club +772245.com +772288211.com +77230.monster +7728ccc.com +7728s.com +7728u.com +7728w.com +7728wx.com +7728x.com +7728y.com +7733111.com +7736552.com +7739927.com +773yz.com +774257.icu +77448b.com +77448bb.com +77448c.com +77448cc.com +77448d.com +77448dd.com +77448e.com +77448f.com +77448g.com +77448h.com +77448ii.com +77448j.com +77448jj.com +77448k.com +77448l.com +77448ll.com +77448m.com +77448mm.com +77448n.com +77448nn.com +77448pp.com +77448qq.com +77448r.com +77448s.com +77448ss.com +77448vv.com +77448w.com +77448ww.com +77448x.com +77448xx.com +77448y.com +77448z.com +77448zz.com +7752050.ru +7754445.com +775588211.com +7755bbb.com +7755c0.com +775tit.com +777-pm945.ru +777-rox999.ru +777-university.ru +777.net.cn +7770199.com +77744.app +7776e.com +77777778888888.com +77778.cd +777788211.com +7777bbtt.com +7777bubu.com +7777lulu.com +7777yeye.com +7778989.ru +7779u.com +777azino-duac.icu +777et.com +777fortune.com +777game1.xyz +777jsc.com +777originals.win +777score-ag.com +777score-ca.com +777score-fj.com +777score-gg.com +777score-gu.com +777score-kn.com +777score-ky.com +777score-lr.com +777score-mv.com +777score-rw.com +777score-sc.com +777score-to.com +777score-vi.com +777slots-online.com +777y.buzz +777y.monster +778789.com +779118.com +779988211.com +779e0f1u7f7bivc.xyz +77betbet.info +77cnb.space +77corner.com +77game.ru +77jin.ru +77mot.ru +77q2j.com +77q3f.com +77q4g.com +77q4j.com +77q5f.com +77q5g.com +77q6h.com +77q6m.com +77q7g.com +77q8f.com +77q8g.com +77q8k.com +77q8m.com +77q9h.com +77q9j.com +77royal.online +77royal.site +77xht.com +78012m.com +780667.com +78123m.com +7814445.com +78345m.com +7836552.com +7837788.com +78456m.com +784666.net +7854445.com +78567m.com +78678m.com +786gambling.com +786gambling.games +786gambling.net +787199.com +787y849s.bij.pl +788c1.com +789.dns-cloud.net +789.game +789.tips +789327.app +7894.website +7894445.com +789456123mail.ml +7899w.top +789club.fun +789movies.com +789toto.org +78avalon.green +78avalon.land +78e4f9a.club +78el.ru +78jxs.com +78zjx.com +78zjxs.com +790060.com +7900wan.com +790344.com +7904445.com +7924445.com +792646.com +7929837.com +7936552.com +79422.monster +7954445.com +796ty.com +7984445.com +798ac.com +7994445.com +79966.xyz +799fu.com +79mail.com +7ag83mwrabz.ga +7ag83mwrabz.ml +7ag83mwrabz.tk +7ahug9.us +7at2psgzt6689u9.xyz +7avz.net +7aw.ru +7awa.live +7azino777.org +7bafilmy.ru +7banrz.us +7bcc935.club +7be.org +7belt.com +7beta90.org +7bhmsthext.cf +7bhmsthext.ga +7bhmsthext.gq +7bhmsthext.ml +7bhmsthext.tk +7bhtm0suwklftwx7.cf +7bhtm0suwklftwx7.ga +7bhtm0suwklftwx7.gq +7bhtm0suwklftwx7.ml +7bhtm0suwklftwx7.tk +7bolgesigorta.xyz +7c3d0ba2.xyz +7cc8a0.xyz +7d7ebci63.pl +7dach-market.ru +7days-printing.com +7dd.info +7ddf32e.info +7dewapoker.net +7di5vd603tkzk9h.xyz +7dicas.online +7dmail.com +7doin.info +7e42hrmxv14s.best +7ecdmj.us +7ecfps.us +7ef9e0.club +7efwe0.com +7f20.icu +7f40.club +7fewrg.com +7fge6u.us +7figureadvisorsecrets.com +7figurealliance.com +7figureconsultants.com +7figurehq.com +7figuresalesmachines.com +7figuresalespipeline.com +7figuresecretsauce.com +7ful.com +7fyg2l.com +7go.info +7gpvegspglb8x8bczws.cf +7gpvegspglb8x8bczws.ga +7gpvegspglb8x8bczws.gq +7gpvegspglb8x8bczws.ml +7gpvegspglb8x8bczws.tk +7gr.pl +7h3ybn.us +7hqcwl.us +7hxt5zbkt7jihsf.xyz +7hy4qy.us +7ihd9vh6.edu.pl +7ijabi.com +7jbsrsj4fzfl61x.xyz +7kcv1y.com +7ki.club +7ktrtk.site +7kuiqff4ay.cf +7kuiqff4ay.ga +7kuiqff4ay.gq +7kuiqff4ay.ml +7kuiqff4ay.tk +7l6qix.us +7liveinfo.com +7lvl44.club +7lzgfpq05bkumst.com +7m3aq2e9chlicm.cf +7m3aq2e9chlicm.ga +7m3aq2e9chlicm.gq +7m3aq2e9chlicm.ml +7m3aq2e9chlicm.tk +7magazinov.ru +7mail.ga +7mail.io +7mail.ml +7mail.xyz +7mail7.com +7manbet.org +7med24.co.uk +7mtff.us +7n2a.us +7ncsjy.us +7nglhuzdtv.cf +7nglhuzdtv.ga +7nglhuzdtv.gq +7nglhuzdtv.ml +7nglhuzdtv.tk +7nka4e.us +7nsska.us +7o3zds.online +7o4g2.us +7oalyv.com +7obgt.us +7ocnju.site +7od.biz +7odibr.us +7oicpwgcc8trzcvvfww.cf +7oicpwgcc8trzcvvfww.ga +7oicpwgcc8trzcvvfww.gq +7oicpwgcc8trzcvvfww.ml +7oicpwgcc8trzcvvfww.tk +7opp2romngiww8vto.cf +7opp2romngiww8vto.ga +7opp2romngiww8vto.gq +7opp2romngiww8vto.ml +7opp2romngiww8vto.tk +7oryat.com +7p29u3zshrfe.com +7p3bme.us +7p6kz0omk2kb6fs8lst.cf +7p6kz0omk2kb6fs8lst.ga +7p6kz0omk2kb6fs8lst.gq +7p6kz0omk2kb6fs8lst.ml +7p6kz0omk2kb6fs8lst.tk +7pccf.cf +7pccf.ga +7pccf.gq +7pccf.ml +7pccf.tk +7pdqpb96.pl +7pfmnw.us +7pirlh.us +7qrtbew5cigi.cf +7qrtbew5cigi.ga +7qrtbew5cigi.gq +7qrtbew5cigi.ml +7qrtbew5cigi.tk +7qxme5zd.xyz +7rdhli.us +7rent.top +7rtay.info +7rx24.com +7seatercarsz.com +7sisko.com +7slot.fun +7star.ninja +7startruckdrivingschool.com +7tags.com +7th-market-shopp.online +7thcircuitreview.com +7thposition.org +7thsons.org +7tiqqxsfmd2qx5.cf +7tiqqxsfmd2qx5.ga +7tiqqxsfmd2qx5.gq +7tiqqxsfmd2qx5.ml +7tiqqxsfmd2qx5.tk +7tp8b4tfevfpvew.xyz +7tqzu.info +7tsjf6nmvzud3jj.xyz +7tsrslgtclz.pl +7twlev.bij.pl +7txk4c.best +7u2yob.site +7u61.space +7u64.space +7u65.space +7u77.space +7u7rdldlbvcnklclnpx.cf +7u7rdldlbvcnklclnpx.ga +7u7rdldlbvcnklclnpx.gq +7u7rdldlbvcnklclnpx.ml +7u7rdldlbvcnklclnpx.tk +7u80.space +7uoeta.info +7uy35p.cf +7uy35p.ga +7uy35p.gq +7uy35p.ml +7uy35p.tk +7v.app +7vc.info +7vchsh.us +7vcntir8vyufqzuqvri.cf +7vcntir8vyufqzuqvri.ga +7vcntir8vyufqzuqvri.gq +7vcntir8vyufqzuqvri.ml +7vcntir8vyufqzuqvri.tk +7vj.info +7vl.info +7wafa.com +7wager.com +7wd45do5l.pl +7we2x0.us +7wn.net +7woz2k.us +7wzctlngbx6fawlv.cf +7wzctlngbx6fawlv.ga +7wzctlngbx6fawlv.gq +7wzctlngbx6fawlv.ml +7wzctlngbx6fawlv.tk +7xnk9kv.pl +7ymdfc.site +7yt1l6.us +7z3026peeg82ay9.xyz +7z4hjm.us +8-mail.com +8-sun.com +8.dnsabr.com +8.emailfake.ml +8.fackme.gq +800hotspots.info +800sacramento.tk +801272.com +8020cockpit.com +8020simrig.com +8020wheelstand.com +802260.com +802charities.org +803760.com +8037bet.com +8037by.com +8037dt4.com +8037dt5.com +8037dt8.com +8037kf.com +8037vip.com +8037wap.com +8037xs.com +80401.monster +80449.club +80476.monster +804m66.pl +805318gj11t0.online +805318gj11t0.space +805318gj1924.online +805318gj1924.space +806.flu.cc +80600.net +80665.com +80887.monster +808app.com +808hjc.com +808qs.com +8090jd.com +80abc.ru +80br88.com +80cnb.space +80hcy.com +80i3ba.best +80it.ru +80mot.ru +80pu.info +80r0zc5fxpmuwczzxl.cf +80r0zc5fxpmuwczzxl.ga +80r0zc5fxpmuwczzxl.gq +80r0zc5fxpmuwczzxl.ml +80r0zc5fxpmuwczzxl.tk +80rip.ru +80ro.eu +80set.ru +80siri90.com +80smoviequotes.com +80zooiwpz1nglieuad8.cf +80zooiwpz1nglieuad8.ga +80zooiwpz1nglieuad8.gq +80zooiwpz1nglieuad8.ml +80zooiwpz1nglieuad8.tk +81004.xyz +81111199.com +81122266.com +81122277.com +811ac.com +81263.monster +812676354.xyz +8127ep.com +8131.fun +813471.com +813nn.com +813oo.com +813tt.com +813uu.com +813zf.com +81462.site +81512c.com +81519gcu.orge.pl +816206.com +816qs.com +8179927.com +8187222.com +8190.fun +8191.at +819110.com +819760.com +819978f0-0b0f-11e2-892e-0800200c9a66.com +81baby.com +81cnb.space +81iot.com +81qtwk.site +8218d.club +821e54e.xyz +821xc.space +8220.fun +82299pay.com +822xc.space +8236552.com +824351081.xyz +8250o.com +8260213.com +8260613.com +8261013.com +8261313.com +8261513.com +8262413.com +8262513.com +8262613.com +826297.com +8263513.com +8263813.com +8264213.com +8264313.com +8264513.com +8265013.com +8265913.com +8266613.com +8268013.com +8268213.com +8268513.com +8268613.com +8268913.com +8269013.com +8269513.com +826xc.space +8282-tit.com +8282pa.com +82842.monster +8290.com +82c8.com +82cnb.space +82j2we.pl +82mss4.site +8309.fun +8312.fun +831243.com +83127.monster +83194.monster +8336552.com +834s.biz +8350.fun +8351399.com +8351699.com +8351799.com +8352099.com +8352299.com +8352599.com +8352p.com +8353099.com +8353199.com +8353299.com +8353399.com +8353599.com +8353799.com +8355.host +8355099.com +8355399.com +8355566.net +8355699.com +8355799.com +8356099.com +8356299.com +8356599.com +8356699.com +8356799.com +8357099.com +8357299.com +8357399.com +8357699.com +8357899.com +8358199.com +8358399.com +8358699.com +8359199.com +8359599.com +8359699.com +835qs.com +8360199.com +8360299.com +8360399.com +8360699.com +8361399.com +8361699.com +8361899.com +8362599.com +8362799.com +8363099.com +8363199.com +8363299.com +8363399.com +8363799.com +8363899.com +8365199.com +8365299.com +8365599.com +8365799.com +8365899.com +8366099.com +8366799.com +8366899.com +8367199.com +8367299.com +8367399.com +8367699.com +8367899.com +8368299.com +8368399.com +8368799.com +8369199.com +8369299.com +8369599.com +837p1070n.site +8382.fun +8392.fun +839604.icu +839qs.com +83a7.icu +83csj0.best +83gd90qriawwf.cf +83gd90qriawwf.ga +83gd90qriawwf.gq +83gd90qriawwf.ml +83gd90qriawwf.tk +84310.xyz +8436552.com +844206.com +8449955.com +845097.com +845102.com +845103.com +845106.com +845137.com +845144.com +84517.xyz +845172.com +845192.com +845227.com +845240.com +845242.com +845269.com +845276.com +845279.com +845280.com +845293.com +845294.com +845297.com +8453.fun +845302.com +845325.com +845343.com +845391.com +845405.com +845418.com +845427.com +845457.com +845470.com +845471.com +845493.com +845512.com +845524.com +845532.com +845542.com +845561.com +845562.com +845574.com +845583.com +84569.xyz +84651609846540.info +847103.com +847120.com +847125.com +847160.com +847174.com +847187.com +847194.com +847225.com +847262.com +847263.com +847331.com +847391.com +847403.com +847409.com +847425.com +847446.com +847460.com +847467.com +847482.com +847509.com +847524.com +847540.com +847541.com +84758.monster +847583.com +84863.monster +84863.xyz +849356.com +84b16.club +84bit.ru +84mce5gufev8.cf +84mce5gufev8.ga +84mce5gufev8.gq +84mce5gufev8.ml +84mce5gufev8.tk +84rhilv8mm3xut2.cf +84rhilv8mm3xut2.ga +84rhilv8mm3xut2.gq +84rhilv8mm3xut2.ml +84rhilv8mm3xut2.tk +8505.fun +8532.fun +8538.fun +8539927.com +8547.fun +855pkr.life +858585m.com +858585n.com +858585o.com +858585p.com +858585r.com +858585t.com +858585v.com +858585w.com +858585x.com +858585y.com +858585z.com +858ac.com +859ac.com +85fc653.club +85it.ru +85rrt.site +8601.ru +8618.fun +8619927.com +86263d.com +86263v.com +8636.fun +8639927.com +864443.com +86492.xyz +865034.com +865qs.com +866303.com +86682.xyz +8673.fun +868757.com +86876.xyz +86883hd.online +86883hd.website +8695.fun +8696.fun +8699006.com +86ac26f5.club +86cnb.space +86d14866fx.ml +86kk.net +86uiu.site +86vns.net +86xlig.us +8701collins.com +871-tit.com +8715.fun +8723891.com +872953.com +87296.club +873391.com +873396.com +873827.com +8742.website +8751.fun +8753.host +875369.com +875655234954.xyz +87605599.com +876518.xyz +8768.fun +8769827.com +8769837.com +8769927.com +8772.fun +8787733.com +8789837.com +879023.xyz +879326.com +87959app.com +87959vip.com +879762.com +879828555.xyz +8799837.com +87cnb.space +87e939e.club +87gjgsdre2sv.cf +87gjgsdre2sv.ga +87gjgsdre2sv.gq +87gjgsdre2sv.ml +87gjgsdre2sv.tk +87mmwdtf63b.cf +87mmwdtf63b.ga +87mmwdtf63b.gq +87mmwdtf63b.ml +87mmwdtf63b.tk +87nxtc.us +87yhasdasdmail.ru +88000234.com +88000345.com +88000567.com +88000789.com +880888e.com +8808go.com +88116.xyz +8812.fun +88122.xyz +88123666.com +88126.xyz +88140.xyz +88146.xyz +8815.fun +88152.xyz +88153.xyz +88155.xyz +88161.xyz +88175.xyz +88176.xyz +8819.fun +88200.xyz +88206.xyz +88208.xyz +88209.xyz +882112233.com +882112244.com +882113322.com +882113377.com +882113399.com +882114422.com +882114433.com +882114455.com +882114477.com +882114488.com +882114499.com +882115522.com +882115544.com +882115555.com +882115566.com +882115577.com +882115588.com +882115599.com +882116611.com +882116633.com +882116644.com +882116655.com +882116666.com +882116688.com +882116699.com +882117711.com +882117722.com +882117733.com +882117744.com +882117766.com +882117777.com +882118811.com +882118822.com +882118877.com +882118888.com +882118899.com +882119900.com +882119911.com +882119955.com +88224.xyz +88227.xyz +8822855.com +88230.xyz +88242.xyz +88243.xyz +88244.xyz +88262.xyz +88264.xyz +88270.xyz +88277.xyz +8828zhuce.com +88290.xyz +88295.xyz +88296.xyz +88299.xyz +88303.xyz +88304.xyz +88306.com +88309.xyz +88312.xyz +88318.xyz +88325.xyz +88329.xyz +883388211.com +88356.xyz +88357.xyz +88365.xyz +88373.xyz +88374.xyz +88381.xyz +88386.xyz +88387.xyz +88388.org +88393.xyz +8839837.com +883q9.com +88407.xyz +88409.xyz +88410.xyz +88411.monster +884118.com +88412.xyz +8841778.com +8841878.com +8842958.com +88432.xyz +88437.xyz +88448.xyz +884488211.com +88451.xyz +88454.xyz +88477.xyz +8848.net +88492.xyz +88503.xyz +88506.xyz +8852.fun +886688211.com +8867.fun +888-app.ru +888-casino.ru +888.dns-cloud.net +888.gen.in +888001.xyz +888005.xyz +888008.xyz +888234.xyz +8883229.com +8883236.com +8883372.com +8883488.com +8883919.com +8883936.com +88868804.com +88868810.com +888888211.com +8888bubu.com +8888iii.com +8888rere.com +888dyqp.com +888getcare.com +888luckys.net +888qq59.xyz +888tron.biz +888tron.info +888tron.life +888tron.net +888tron.org +888z5.cf +888z5.ga +888z5.gq +888z5.ml +888z5.tk +889931666.com +88998.com +889988211.com +88av.net +88bubu.com +88bwin88.com +88chaye.com +88clean.pro +88cnb.space +88cot.info +88jin.ru +88kaskings.com +88kaskings.net +88macaupools.com +88mon.space +88rbrb.com +88solo.space +88sun11.com +88sun22.com +88sun33.com +88sy000.com +88sy22.com +88sy222.com +88sy33.com +88sy333.com +88sy44.com +88sy444.com +88sy55.com +88sy555.com +88sy666.com +88sy77.com +88sy777.com +88sy888.com +88sy99.com +88sy999.com +88ter.space +88trader.com +88urtyzty.pl +88videos.site +88yiyi.com +88zzf.space +8906.fun +891157.com +891172.com +891175.com +8919927.com +89234m.com +8929927.com +8938.fun +893ac.com +8949.fun +8954.fun +895971.com +8959837.com +8959b2.club +897116.com +897152.com +897629.com +89769988.com +897744.app +897925.com +897su.com +897tu.com +897wu.com +8983.fun +89861.monster +898ac.com +899079.com +8993.fun +89979.club +8999837.com +89b8.club +89dnxs.site +89ghferrq.com +89mom.space +89sese.space +89solo.space +89yliughdo89tly.com +8a37d104.xyz +8a4e.club +8a4wcr.host +8a818.club +8a9itx.online +8aj.net +8americain.fr +8angue9wtjv4dwa9.com +8avz.net +8b05kwh1y2l90cw.xyz +8ballroulette.com +8betslife.com +8byjrn.info +8c03a46b.xyz +8c8.club +8ca761.xyz +8chan.co +8cl3.icu +8clv5u.com +8cqznp.us +8dipbk.online +8dizhi.xyz +8e6d9wk7a19vedntm35.cf +8e6d9wk7a19vedntm35.ga +8e6d9wk7a19vedntm35.gq +8e6d9wk7a19vedntm35.ml +8e7168b6.club +8ecaf.club +8eoqovels2mxnxzwn7a.cf +8eoqovels2mxnxzwn7a.ga +8eoqovels2mxnxzwn7a.gq +8eoqovels2mxnxzwn7a.ml +8eoqovels2mxnxzwn7a.tk +8estcommunity.org +8ev9nir3ilwuw95zp.cf +8ev9nir3ilwuw95zp.ga +8ev9nir3ilwuw95zp.gq +8ev9nir3ilwuw95zp.ml +8ev9nir3ilwuw95zp.tk +8f1.club +8f2bf5.club +8fd1v9.us +8ffn7qixgk3vq4z.cf +8ffn7qixgk3vq4z.ga +8ffn7qixgk3vq4z.gq +8ffn7qixgk3vq4z.ml +8ffn7qixgk3vq4z.tk +8fmr93.us +8fuur0zzvo8otsk.cf +8fuur0zzvo8otsk.ga +8fuur0zzvo8otsk.gq +8fuur0zzvo8otsk.ml +8fuur0zzvo8otsk.tk +8ghfai.site +8gnkb3b.sos.pl +8h40vw.us +8hadrm28w.pl +8hdjw.us +8hermesbirkin0.com +8hfzqpstkqux.cf +8hfzqpstkqux.ga +8hfzqpstkqux.gq +8hfzqpstkqux.ml +8hfzqpstkqux.tk +8hj3rdieaek.cf +8hj3rdieaek.ga +8hj3rdieaek.gq +8hj3rdieaek.ml +8hj3rdieaek.tk +8hkvcr.us +8i7.net +8imefdzddci.cf +8imefdzddci.ga +8imefdzddci.gq +8imefdzddci.ml +8imefdzddci.tk +8jstc.us +8k4tns.us +8kazino-slotv1.ru +8kcpfcer6keqqm.cf +8kcpfcer6keqqm.ml +8kcpfcer6keqqm.tk +8kej4c.us +8klddrkdxoibtasn3g.cf +8klddrkdxoibtasn3g.ga +8klddrkdxoibtasn3g.gq +8klddrkdxoibtasn3g.ml +8klddrkdxoibtasn3g.tk +8kut.us +8laypf.us +8liffwp16.pl +8live.biz +8ltepf.info +8m6qu.us +8mail.cf +8mail.ga +8mail.ml +8mailpro.com +8mbetx.info +8mbetx.org +8mdtpl.us +8mhjz.us +8mnqpys1n.pl +8mot.ru +8mpulsa.org +8n1.in +8nbh2m.site +8ndonc.us +8nujq9.us +8oboi80bcv1.cf +8oboi80bcv1.ga +8oboi80bcv1.gq +8os2qr.online +8ouyuy5.ce.ms +8pc2ztkr6.pl +8pukcddnthjql.cf +8pukcddnthjql.ga +8pukcddnthjql.gq +8pukcddnthjql.ml +8pukcddnthjql.tk +8px6jo.us +8pyda.us +8pyqkw0jg6jimst.com +8qdanx.us +8qdw3jexxncwd.cf +8qdw3jexxncwd.ga +8qdw3jexxncwd.gq +8qdw3jexxncwd.ml +8qdw3jexxncwd.tk +8qwh37kibb6ut7.cf +8qwh37kibb6ut7.ga +8qwh37kibb6ut7.gq +8qwh37kibb6ut7.ml +8qwh37kibb6ut7.tk +8rp2rre7wn4t98s.xyz +8rskf3xpyq.cf +8rskf3xpyq.ga +8rskf3xpyq.gq +8rskf3xpyq.ml +8rskf3xpyq.tk +8rygn.com +8t0sznngp6aowxsrj.cf +8t0sznngp6aowxsrj.ga +8t0sznngp6aowxsrj.gq +8t0sznngp6aowxsrj.ml +8t0sznngp6aowxsrj.tk +8turbo.com +8u4e3qqbu.pl +8ujf53.com +8um9zsaxf4peky7.xyz +8umrsb.us +8urls.gq +8usmwuqxh1s1pw.cf +8usmwuqxh1s1pw.ga +8usmwuqxh1s1pw.gq +8usmwuqxh1s1pw.ml +8usmwuqxh1s1pw.tk +8vd.ru +8verxcdkrfal61pfag.cf +8verxcdkrfal61pfag.ga +8verxcdkrfal61pfag.gq +8verxcdkrfal61pfag.ml +8verxcdkrfal61pfag.tk +8vkopg.us +8vnond.us +8w903.buzz +8wehgc2atizw.cf +8wehgc2atizw.ga +8wehgc2atizw.gq +8wehgc2atizw.ml +8wehgc2atizw.tk +8wkkrizxpphbm3c.cf +8wkkrizxpphbm3c.ga +8wkkrizxpphbm3c.gq +8wkkrizxpphbm3c.ml +8wkkrizxpphbm3c.tk +8wwxmcyntfrf.cf +8wwxmcyntfrf.ga +8wwxmcyntfrf.gq +8wwxmcyntfrf.ml +8x8x.site +8xcdzvxgnfztticc.cf +8xcdzvxgnfztticc.ga +8xcdzvxgnfztticc.gq +8xcdzvxgnfztticc.tk +8xcfu.us +8xduee.us +8xfin.com +8xfing.com +8xfong.com +8xfui.com +8xfve.com +8xgan.com +8xgang.com +8xgei.com +8xgen.com +8xgeng.com +8xger.com +8xgie.com +8xgiu.com +8xgong.com +8xgui.com +8xgun.com +8xgve.com +8xi.org +8xyz8.dynu.net +8xzr.com +8ycxiazai.com +8ycxz.com +8ythwpz.pl +8ywnv.us +8zbpmvhxvue.cf +8zbpmvhxvue.ga +8zbpmvhxvue.gq +8zbpmvhxvue.ml +8zbpmvhxvue.tk +9.emailfake.ml +9.fackme.gq +90.volvo-xc.ml +90.volvo-xc.tk +9006l.com +900br88.com +900dafa.com +900k.es +901.email +901fernie.com +9036552.com +9046.life +90480.xyz +9049.life +9050.life +9054.life +9065.life +9068.life +9069.life +906dafa.com +9088.life +908997.com +908dafa.com +9090ach.xyz +9090stttn.xyz +9091.life +9094.life +9094pay.com +9094vip.com +909dafa.com +90abc.ru +90bit.ru +90bola.link +90br88.com +90catkrbne16ttvnale3924.com +90catlrnmk1uutroak04863.com +90caturbmk9eqxlorfe0244.com +90cnb.space +90dy.net +90ksb.club +90money90.xyz +90rip.ru +90seconds.live +90set.ru +90shemroon.xyz +90siri90.com +90sp.xyz +90stttn.xyz +90vipstttn.xyz +90xbbt.club +90xbt.club +90zakhar.xyz +91.land +91000.com +91026.club +9111.life +9120.info +9136552.com +913jg913j1t0.online +913jg913j1t0.space +913jg913j42i90j.online +913jg913j924.online +913jg913jh33u19.online +913jg913jjrbh2h4.online +913jg913jjrbh2h4.space +913qs.com +9154.fun +916w1ckjejaa140.xyz +918.ninja +918cai.net +918lott.net +9191lao.cd +9199837.com +91b1e.xyz +91cod7mjala7k99.xyz +91gxfl11.info +91gxfl111.info +91gxfl123.info +91gxfl333.info +91gxfl555.info +91gxfl567.info +91gxfl666.info +91gxfl77.info +91gxfl777.info +91gxfl88.info +91gxfl888.info +91gxfl987.info +91gxfl99.info +91gxfl999.info +91gxflaa.info +91gxflclub.info +91gxflgo.info +91gxflok.info +91kanpian.xyz +91maishen.com +91mfsp.xyz +91minecraft.com +91nydh.xyz +91pan.org +91rb6.xyz +91sedh.xyz +91shuxin.com +91taoliuliang.com +91tiaojiao.com +91zp6.xyz +91zp7.xyz +91zp8.xyz +920qs.com +921.best +92140.monster +92149.com +92178b.com +92178c4.com +92178c8.com +92178d.com +92178d1.com +92178d2.com +92178d4.com +92178d8.com +92178e.com +9227bet.com +9227bq.com +9227dh.com +9227jc.com +9227xpj.com +923218.com +9236552.com +925067429.xyz +926tao.com +9279837.com +928ps.com +929.be +92dyj.com +92gui.com +92macau.com +92no3o.us +92ooxx.xyz +930.dog +930zb.com +9310.ru +93144.info +931512.com +931862.com +93398bb.com +933j.com +9354445.com +9364943601.com +9369837.com +938.dog +9394445.com +9399837.com +93cdfc.site +93eeok.com +93fxf.site +93k0ldakr6uzqe.cf +93k0ldakr6uzqe.ga +93k0ldakr6uzqe.gq +93k0ldakr6uzqe.ml +93k0ldakr6uzqe.tk +93ki.com +93mon.space +93solo.space +94.biz +9404445.com +940qs.com +9414.fun +9414445.com +9418.fun +9424445.com +942789.com +944.dog +944206.com +94502.info +9454445.com +945xl.com +9461.fun +9474445.com +9476.fun +948.dog +9484445.com +9495.fun +949lax.com +94bit.ru +94jo.com +94xtyktqtgsw7c7ljxx.co.cc +9504445.com +9514445.com +9522900.com +95253.monster +9529837.com +9536552.com +95367.fun +9544445.com +95478.monster +95566pay.net +956ac.com +957.dog +959.dog +95926.monster +95998833.net +95ta.com +95vbp4.us +96058.monster +96081.monster +961.dog +9619837.com +961mold.com +96303.monster +96320.xyz +9634445.com +964.dog +9644445.com +965334.com +9654.fun +96553b.com +96553c.com +96553d.com +96553e.com +96553f.com +96553g.com +96553h.com +96553j.com +96553r.com +96553ss.com +96553sss.com +96553t.com +96553ttt.com +96553u.com +96553vvv.com +96553w.com +96553x.com +96553xx.com +96553y.com +96553yy.com +96553z.com +96553zz.com +9659837.com +9666z.com +9669837.com +967333app.com +9694445.com +9696.eu +96966data.xyz +9699837.com +96c9236.xyz +96ulas.com +96wql.buzz +970.dog +970av.com +97138e.xyz +9714445.com +97178b.com +97178c1.com +97178c2.com +97178c5.com +97178c6.com +97207q.com +9722.us +9724445.com +9727a.com +973.dog +9734445.com +97432.monster +9744445.com +97470.monster +97471.monster +9751188.net +9754445.com +977.dog +977206.com +9784445.com +979.dog +97949.monster +97962.monster +97av4.com +97av5.com +97b23a.club +97bns.com +97bo2.com +97bo5.com +97cos.xyz +97di.club +97dy3.com +97dy4.com +97kx.biz +97so1ubz7g5unsqgt6.cf +97so1ubz7g5unsqgt6.ga +97so1ubz7g5unsqgt6.gq +97so1ubz7g5unsqgt6.ml +97so1ubz7g5unsqgt6.tk +97sp4.com +9827aa.com +9827ag.com +9827app.com +9827bet.com +9827cc.com +9827d.com +9827dt.com +9827e.com +9827eee.com +9827fff.com +9827ggg.com +9827h.com +9827hh.com +9827k.com +9827kkk.com +9827l.com +9827ll.com +9827mm.com +9827n.com +9827nn.com +9827oo.com +9827ooo.com +9827p.com +9827pp.com +9827ppp.com +9827qqq.com +9827rrr.com +9827s.com +9827sq.com +9827ss.com +9827ttt.com +9827uu.com +9827uuu.com +9827v.com +9827vv.com +9827vvv.com +9827www.com +9827wz.com +9827x.com +9827xl.com +9827xs.com +9827xxx.com +9827y.com +9827yh.com +9827z.com +9827zz.com +9827zzz.com +9837aomenbaliren.com +9837dl.com +9837hao.com +9837wap.com +9837xl.com +983gan.com +983wz.com +9854445.com +985466.xyz +9859837.com +985box.com +986206.com +98757.app +9880388.com +9880588.com +9884.xyz +98862.monster +9888037.com +9889927.com +9898610.com +9899089.com +9899090.com +9899w.top +98bdii.site +98cfc72.club +98hg.app +98hg.bet +98hgv.app +98usd.com +99-brand.com +99.com +990.net +99029.monster +99061.xyz +9908nn.com +990amtheanswer.com +99102.xyz +99104.xyz +99112.xyz +991188211.com +99120.xyz +99129.xyz +99131.xyz +99133.xyz +99140.xyz +99142.xyz +99161.xyz +9916878.xyz +99173.xyz +99181.xyz +99183.xyz +991888h.com +99191.xyz +99194.xyz +99197.xyz +99204.xyz +99211.xyz +992288211.com +99229.xyz +99236.xyz +99238.xyz +99240.xyz +99253.xyz +99259.xyz +9927208.com +99278.xyz +9927bc.com +9927dh.com +9927win.com +99281.xyz +99284.xyz +992tv.fun +99308.xyz +99314.xyz +99324.xyz +99326.xyz +993344.xyz +99336208.club +993388211.com +99342.xyz +99345.xyz +99348.xyz +99360.xyz +99369.xyz +99375.xyz +99386.xyz +99390.xyz +99398.xyz +99399.xyz +99405.xyz +99417.xyz +99418.xyz +99446.xyz +994488211.com +99450.xyz +99452.xyz +99458.xyz +99467.xyz +99469.xyz +99470.xyz +99471.xyz +99472.xyz +99484.xyz +99490.xyz +99491.xyz +99498.xyz +995176.com +99534.monster +995588211.com +99569.monster +99587.monster +996688211.com +996902.com +997788211.com +9977x.space +99781.monster +997f.club +9985yx.com +998830.xyz +998boss.net +999132.com +9992588.com +99927dh.com +99927win.com +99927xl.com +99976.monster +99993339.com +99999.cd +99999cn.com +9999bbtt.com +9999lulu.com +9999mimi.com +9999pk.xyz +9999x.space +999bjw.com +999c9.com +999capital.com +999intheshade.net +999lucky-thai.net +999o.buzz +999rbrb.com +99ac2.xyz +99betbax.club +99br88.com +99celtabet.com +99cows.com +99daohang.xyz +99depressionlists.com +99email.xyz +99experts.com +99hacks.us +99hgv.app +99hhqp.com +99hy.xyz +99lb95.com +99lb96.com +99lb97.com +99mail.cf +99mimpi.com +99perkasa.com +99pg.group +99price.co +99pubblicita.com +99publicita.com +99rezuixin.com +99sanwen.com +99situs.online +99thstchiropracticclinic.com +99top.ru +99tt9.com +99ubcj.com +99uuv2.com +99vpn.best +99x99.com +99yh.app +9admor.us +9ale6.us +9ate.com +9avz.net +9awrr.site +9b5ca5af.club +9b678af.xyz +9b84ade.xyz +9beb1.club +9betslife.com +9c4s2z.info +9c5ba9.club +9c5y.com +9cdw6n.com +9cvlhwqrdivi04.cf +9cvlhwqrdivi04.ga +9cvlhwqrdivi04.gq +9cvlhwqrdivi04.ml +9cvlhwqrdivi04.tk +9d666.app +9daqunfzk4x0elwf5k.cf +9daqunfzk4x0elwf5k.ga +9daqunfzk4x0elwf5k.gq +9daqunfzk4x0elwf5k.ml +9daqunfzk4x0elwf5k.tk +9ded2.club +9dgxw.us +9dp1cl0xf6ewswz.xyz +9dra.us +9dzinw.info +9e2.xyz +9e3.site +9e9c6.xyz +9ebrcj.us +9ebrklpoy3h.cf +9ebrklpoy3h.ga +9ebrklpoy3h.gq +9ebrklpoy3h.ml +9ebrklpoy3h.tk +9ejz6q.us +9en6mail2.ga +9et1spj7br1ugxrlaa3.cf +9et1spj7br1ugxrlaa3.ga +9et1spj7br1ugxrlaa3.gq +9et1spj7br1ugxrlaa3.ml +9et1spj7br1ugxrlaa3.tk +9evxp6prl.fun +9eyf.us +9f04d.xyz +9f182.xyz +9f3d9ad9.club +9f52.club +9f6819cd.club +9fdy8vi.mil.pl +9gals.com +9gmovierulz.com +9gqiwe.com +9h2020.com +9h35j9031t0.online +9h35j9031t0.space +9h35j9031t01t0.online +9h35j9031t0924.online +9h35j9031t0924.space +9h35j90342i90j.online +9h35j90342i90j.space +9h35j903924.online +9h35j903924.space +9h35j9039241t0.online +9h35j9039241t0.space +9h35j903924924.online +9h35j903h33u19.online +9h35j903h33u19.space +9h35j903vhh13h.online +9h35j903vhh13h.space +9h3ucx.us +9hh03.com +9hh30.com +9hjrw90hj1t0.online +9hjrw90hj1t0.space +9hjrw90hj924.online +9hvtig.info +9hxjao.us +9hzfyd7i5sbc.com +9jaapp.com +9jo05w.site +9jw5zdja5nu.pl +9k27djbip0.cf +9k27djbip0.ga +9k27djbip0.gq +9k27djbip0.ml +9k27djbip0.tk +9kfifc2x.pl +9kfttq.best +9klsh2kz9.pl +9kowsr.us +9l58kybst0bepmy.xyz +9lbaqq.us +9ljunl.us +9lmqmg.com +9lvkur.host +9mail.cf +9mail9.cf +9me.site +9mhftl.com +9mmovies.com +9monsters.com +9mot.ru +9mvjk6.us +9n4msc.us +9nnvwy.online +9nobility.ltd +9nobility.network +9nols.us +9nteria.pl +9nung9.xyz +9o04xk8chf7iaspralb.cf +9o04xk8chf7iaspralb.ga +9o04xk8chf7iaspralb.gq +9o04xk8chf7iaspralb.ml +9o8ck.us +9oobs.xyz +9oul.com +9ox.net +9p0rmx.us +9papa.ooo +9phum.com +9pmiik.us +9pshkz.us +9ptiwu.site +9pyo.us +9q.ro +9q402.com +9q8eriqhxvep50vuh3.cf +9q8eriqhxvep50vuh3.ga +9q8eriqhxvep50vuh3.gq +9q8eriqhxvep50vuh3.ml +9q8eriqhxvep50vuh3.tk +9qq59.xyz +9qwkev.com +9rakipbet.com +9rok.info +9rtkerditoy.info +9rtn5qjmug.cf +9rtn5qjmug.ga +9rtn5qjmug.gq +9rtn5qjmug.ml +9rtn5qjmug.tk +9rwjfs.us +9skcqddzppe4.cf +9skcqddzppe4.ga +9skcqddzppe4.gq +9skcqddzppe4.ml +9skcqddzppe4.tk +9t7xuzoxmnwhw.cf +9t7xuzoxmnwhw.ga +9t7xuzoxmnwhw.gq +9t7xuzoxmnwhw.ml +9t7xuzoxmnwhw.tk +9th-market-shopp.online +9times.club +9to5athomeclub.net +9toplay.com +9ufqd6.us +9ufveewn5bc6kqzm.cf +9ufveewn5bc6kqzm.ga +9ufveewn5bc6kqzm.gq +9ufveewn5bc6kqzm.ml +9ufveewn5bc6kqzm.tk +9ve5dz.us +9vjurc.us +9vlb.us +9vvoccxt8t638iy.xyz +9w26ql.space +9w93z8ul4e.cf +9w93z8ul4e.ga +9w93z8ul4e.gq +9w93z8ul4e.ml +9w93z8ul4e.tk +9wanbetx.org +9wbetx.info +9wet34.accountant +9wrc2v.us +9x2t2amr.xyz +9xcnp.icu +9xmail.xyz +9y00.app +9y0000.app +9y1.app +9y10.app +9y11.app +9y111.app +9y1111.app +9y11111.app +9y111111.app +9y222.app +9y2222.app +9y22222.app +9y222222.app +9y3.app +9y33.app +9y33333.app +9y333333.app +9y4.app +9y555.app +9y5555.app +9y55555.app +9y66.app +9y666.app +9y6666.app +9y66666.app +9y666666.app +9y7.app +9y777.app +9y7777.app +9y77777.app +9y8.app +9y88.app +9y888888.app +9y9.app +9y99.app +9y99999.app +9ya.de +9yc4hw.us +9youtodasbech.club +9ziqmkpzz3aif.cf +9ziqmkpzz3aif.ga +9ziqmkpzz3aif.gq +9ziqmkpzz3aif.ml +9ziqmkpzz3aif.tk +9zjz7suyl.pl +a-1.site +a-action.ru +a-b.co.za +a-bc.net +a-cottage.ru +a-creator.ru +a-digital.monster +a-dnk.ru +a-fdfet.site +a-ge.ru +a-glittering-gem-is-not-enough.top +a-great-in-jobs-in-ca.zone +a-great-taxprep.fyi +a-great-uae-hemorrhoid-treatment.zone +a-great-uae-jobs.fyi +a-great-uae-online-therapy.zone +a-href.ru +a-invest.biz +a-kinofilm.ru +a-mule.cf +a-mule.ga +a-mule.gq +a-mule.ml +a-mule.tk +a-nd.info +a-party.com +a-prime-macular-degeneration.fyi +a-rodadmitssteroids.in +a-sen.ru +a-sound.ru +a-spy.xyz +a-takamnan.ru +a-tb.biz +a-vot-i-ya.net +a.a.fbmail.usa.cc +a.b.c.netmail.tk +a.betr.co +a.com +a.hido.tech +a.kerl.gq +a.mailcker.com +a.netmail.tk +a.polosburberry.com +a.sach.ir +a.safe-mail.gq +a.uditt.cf +a.vztc.com +a.wxnw.net +a.yertxenor.tk +a0.igg.biz +a01a3c.club +a01h3.com +a01kj.xyz +a02sjv3e4e8jk4liat.cf +a02sjv3e4e8jk4liat.ga +a02sjv3e4e8jk4liat.gq +a02sjv3e4e8jk4liat.ml +a02sjv3e4e8jk4liat.tk +a0f7ukc.com +a0fnjd.us +a0reklama.pl +a0txa.icu +a0ywhm.us +a1.usa.cc +a10mail.com +a15jh.site +a1678991.xyz +a1aemail.win +a1b2.cf +a1b2.gq +a1b2.ml +a1b31.xyz +a1bvcfdg.xyz +a1exch.com +a1ymj4ef705tmzm.xyz +a2.flu.cc +a23.buzz +a24hourpharmacy.com +a2hb36-mail.xyz +a2mail.com +a2mail.info +a2mail.website +a2miravanbrenk.xyz +a2msolutions.com +a2smartnutrition.hk +a2thfixer.com +a2zculinary.com +a2zphones.ca +a3.bigpurses.org +a333yuio.uni.cc +a389f2.club +a389lxio.buzz +a396yasg.buzz +a39tx.site +a3an.com +a3ho7tlmfjxxgy4.cf +a3ho7tlmfjxxgy4.ga +a3ho7tlmfjxxgy4.gq +a3ho7tlmfjxxgy4.ml +a3ho7tlmfjxxgy4.tk +a40.com +a41odgz7jh.com +a41odgz7jh.com.com +a45.in +a458a534na4.cf +a46yv.site +a482vuhb.buzz +a489acoz.buzz +a490ypfv.buzz +a4craft.ru +a4dine.online +a4h4wtikqcamsg.cf +a4h4wtikqcamsg.ga +a4h4wtikqcamsg.gq +a4hk3s5ntw1fisgam.cf +a4hk3s5ntw1fisgam.ga +a4hk3s5ntw1fisgam.gq +a4hk3s5ntw1fisgam.ml +a4hk3s5ntw1fisgam.tk +a4optovik.ru +a4otpg.us +a4papersize.net +a4rpeoila5ekgoux.cf +a4rpeoila5ekgoux.ga +a4rpeoila5ekgoux.gq +a4rpeoila5ekgoux.ml +a4rpeoila5ekgoux.tk +a4snab.ru +a4zerwak0d.cf +a4zerwak0d.ga +a4zerwak0d.gq +a4zerwak0d.ml +a4zerwak0d.tk +a50502.com +a506rdqx.buzz +a50kvw.info +a522yeec.buzz +a52ep.site +a530folz.buzz +a531xhow.buzz +a534vxdf.buzz +a53qgfpde.pl +a54pd15op.com +a55app.com +a575gdcw.buzz +a578xbxa.buzz +a57wb.com +a585guhw.buzz +a586xqkw.buzz +a5freighter.website +a5i7sp.us +a5m9aorfccfofd.cf +a5m9aorfccfofd.ga +a5m9aorfccfofd.gq +a5m9aorfccfofd.ml +a5solutions.biz +a5xi.us +a60609.com +a617irwe.buzz +a6185.xyz +a620ocgh.buzz +a66olkp.buzz +a67doki.buzz +a69hi.space +a6a.nl +a6e26.buzz +a6lrssupliskva8tbrm.cf +a6lrssupliskva8tbrm.ga +a6lrssupliskva8tbrm.gq +a6lrssupliskva8tbrm.ml +a6lrssupliskva8tbrm.tk +a6mail.net +a6treaty.website +a707nxid.buzz +a709pjby.buzz +a719hzzl.buzz +a722552.com +a738faeb.buzz +a740nrmc.buzz +a741ktzi.buzz +a742ygyz.buzz +a7665.com +a782.biz +a78qp.com +a78tuztfsh.cf +a78tuztfsh.ga +a78tuztfsh.gq +a78tuztfsh.ml +a78tuztfsh.tk +a795fgnc.buzz +a798uyoz.buzz +a7996.com +a7family.net +a7lashe.com +a7qoei.us +a80jx.space +a84doctor.com +a85555.com +a87777.com +a88.org +a882ebgl.buzz +a8cycle.website +a8i.cz +a90906.com +a90907.com +a90908.com +a94gl.site +a9523b38.club +a97ag.com +a99999.ce.ms +a9jcqnufsawccmtj.cf +a9jcqnufsawccmtj.ga +a9jcqnufsawccmtj.gq +a9jcqnufsawccmtj.ml +a9jcqnufsawccmtj.tk +a9miyu.us +aa-jlb.com +aa.da.mail-temp.com +aa0318.com +aa0765.com +aa1775.com +aa20.ru +aa2465.com +aa4773.com +aa57822.com +aa5j3uktdeb2gknqx99.ga +aa5j3uktdeb2gknqx99.ml +aa5j3uktdeb2gknqx99.tk +aa5zy64.com +aa6pmo.us +aa7252.com +aa89.xyz +aa9827.com +aa9vun.us +aaa117.com +aaa4.pl +aaa5.pl +aaa6.pl +aaaa22222.info +aaaa66666.info +aaaaa1.pl +aaaaa2.pl +aaaaa3.pl +aaaaa4.pl +aaaaa5.pl +aaaaa6.pl +aaaaa7.pl +aaaaa8.pl +aaaaa9.pl +aaaaaaa.de +aaaagency.net +aaaf.ru +aaagr.xyz +aaaip.org +aaamail.online +aaamc.net +aaathats3as.com +aaaw45e.com +aababes.com +aabagfdgks.net +aabamian.site +aabatriu.site +aabbt.com +aabiu.xyz +aabpm.xyz +aabvf.xyz +aac8.xyz +aacgr.xyz +aacnw.xyz +aacons.site +aacrc.xyz +aacxb.xyz +aad9qcuezeb2e0b.cf +aad9qcuezeb2e0b.ga +aad9qcuezeb2e0b.gq +aad9qcuezeb2e0b.ml +aad9qcuezeb2e0b.tk +aadcg.xyz +aadht.xyz +aadidassoccershoes.com +aadmm.xyz +aaewr.com +aafabet.com +aafddz.ltd +aag6.live +aagijim.site +aahs.co.pl +aaimbees.site +aaj-ekb.ru +aajj234.com +aajlayj.website +aakashbansal.info +aakashrelan.com +aakb.ru +aakk.de +aalaa4.xyz +aalimli4.site +aalishaan.ooo +aaliyah.sydnie.livemailbox.top +aalkut.space +aall.de +aallaa.org +aalna.org +aals.co.pl +aalsmeerrp.online +aalsmeerrp.shop +aalyaa.com +aamail.co +aamail.com +aamanah.cf +aaml-nj.org +aaoqzf.us +aap79.com +aaphace.ml +aaphace1.ga +aaphace2.cf +aaphace3.ml +aaphace4.ga +aaphace5.cf +aaphace6.ml +aaphace7.ga +aaphace8.cf +aaphace9.ml +aapiesnetwork.online +aaplgroup.info +aaravpathology.com +aardvarkcomputers.net +aarkolt.com +aaronboydarts.com +aaronbriggs.buzz +aaronlittles.com +aarons-cause.org +aaronson.cf +aaronson1.onedumb.com +aaronson2.qpoe.com +aaronson3.sendsmtp.com +aaronson6.authorizeddns.org +aaronwolford.com +aarpal.tokyo +aarrowdev.us +aasgashashashajh.cf +aasgashashashajh.ga +aasgashashashajh.gq +aastabettingsnupp.xyz +aatch.net +aateam.pl +aautostabilbetsnup.xyz +aavaceroo.site +aayulifesciences.com +aazdey.us +aazixwrzca.com +aazzn.com +ab-coaster.info +ab-demo.com +ab-ins.us +ab-institute.com +ab-volvo.cf +ab-volvo.ga +ab-volvo.gq +ab-volvo.ml +ab-volvo.tk +ab0.igg.biz +ab1.pl +ab789bet.com +abab11111.info +ababmail.ga +abac-compressoren.ru +abacuswe.us +abagael.best +abakiss.com +abalapmag.ml +abandonee.info +abanksat.us +abanpub.com +abarrotesfanny.com +abarth.ga +abarth.gq +abarth.tk +abasdes.com +abasem.gq +abasem.ml +abasem.tk +abaspolybank.com +abastecedoragrafica.com +abastonet.org +abaytiegypt.com +abb.dns-cloud.net +abb.dnsabr.com +abba.co.pl +abbassalameh.website +abbelt.com +abbeygate-portugal.com +abbeyrose.info +abbiebarrett.buzz +abbonamenti.click +abbonamenti.gratis +abbonamentigratis.online +abbonamentitv.click +abbonamentitv.gratis +abbonamentitv.net +abbstore.website +abbuzz.com +abc-payday-loans.co.uk +abc1.ch +abc1918.xyz +abc2018.ru +abcaga.cf +abcaga.ga +abcaga.gq +abcaga.ml +abcaga.tk +abcaptcha.com +abcda.tech +abcdef1234abc.ml +abcdiscoverycenter.com +abcfunding.xyz +abchospital.net +abciarum.info +abcinema.xyz +abcmail.email +abcmail.men +abcnetworkingu.pl +abcpaydayloans.co.uk +abcremonty.com.pl +abcsport.xyz +abcstore.icu +abctoto.biz +abctoto.live +abctq.com +abcv.info +abcz.info.tm +abdathletics.com +abdominoplastylongisland.com +abdomiylcu.space +abducent.site +abductttmz.site +abdulalnahasrealtor.com +abdullahcan123.tk +abdullahcan1234.ml +abdullahcan1234.tk +abdvawssas.icu +abednegocoffee.org +abedwvas.icu +abegegr0hl.cf +abegegr0hl.ga +abegegr0hl.gq +abegegr0hl.ml +abegegr0hl.tk +abejar-uy.com +abejn.site +abeloori.com +abem.info +abendkleidergunstig.net +abenzymes.us +abercrombieepascheresyffr.info +abercrombiefitch-shop.com +abercrombiefitch-store.com +abercrombiefpacherfr.com +abercrombiepascherefrance.fr +abercrombieppascher.com +abercrombiesalejp.com +abereceipes.xyz +aberfeldy.pl +abesanss.space +abeshop.space +abessdesign.xyz +abetterlifethroughchrist.com +abexag.cf +abexag.ga +abexag.ml +abexag.tk +abfbusiness.com +abg.nikeshoesoutletforsale.com +abg0i9jbyd.cf +abg0i9jbyd.ga +abg0i9jbyd.gq +abg0i9jbyd.ml +abg0i9jbyd.tk +abhacholidays.com +abhatil.cf +abhatil.ga +abhatil.gq +abhishek.site +abhretyfo.site +abiasa.online +abigail11halligan.ga +abigail69.sexy +abigailbatchelder.com +abigcruisesfab.live +abigcruisesfan.live +abigcruisesget.live +abikmail.com +abilify.site +abilityskillup.info +abilitywe.us +abillity.tech +abimillepattes.com +abirelwardmaternelle.com +abista.space +abkcnjiga.com +abkernglad.site +abky6k.com +ablacja-nie-zawsze.info +ablacja-nie-zawsze.info.pl +ableflourishsdgaloncreedtra.me +ablegkiy.site +ablerabailque.com +ablombards.info +abloomingscribe.com +ablpoker.online +ably.co.pl +abmoney.xyz +abmr.waw.pl +abmultitax.com +abnamro.usa.cc +abnasi.cf +abnasi.gq +abnasi.ml +abnasi.tk +abnemd.site +abnermontessori.org +abobrain.mobi +abodemaldives.com +abogadanotariapr.com +abogadodeaccidentehouston.net +abogadomall.com +abogadoporminuto.com +abogados-divorcio.info +aboh913i2.pl +abol.gq +abolizers.fun +abonc.com +abondance.info +abone.us +abook.buzz +abookb.site +aboral.xyz +aboriginalartaustralia.info +aborigine.info +abos.co.pl +abosgratis.com +abosnypizza.com +abot5fiilie.ru +abot5zagruz.ru +abot8fffile.ru +about.com-posted.org +aboutallah.net +aboutbothann.org +aboutfitness.net +aboutphones.club +aboutphones.xyz +aboutsleeping.com +abovde.cf +abovde.gq +above-ton.xyz +abovetheseaoffog.com +abovewe.us +abpaness.cf +abpaness.ga +abpaness.gq +abpaness.ml +abparkncharge.com +abqdubop.site +abqenvironmentalstory.org +abqkravku4x36unnhgu9.co.cc +abredoik.ga +abri.co.pl +abrighterfutureday.com +abriment.net +abrina.ru +abrminer.com +abrmining.com +abroad.pub +abroadedu.ru +abroadgrid.site +abrs.email +abrucht.site +abs-esp.ru +abs-shaper.info +abscessedtoothhomeremedy.com +absensidikjari.com +absetesen.tk +absity.live +absixpack.info +absolut-digital.dev +absolut-partner.ru +absolutebit.com +absolutecarefunerals.com +absoluteexcellence.com +absolutelyecigs.com +absolutepaintingcompany.com +absolutesuccess.win +absolutewe.us +absolutewounder.com +absorbe.cyou +absorbenty.pl +absorblovebed.com +absorbuj.pl +abstolbik.site +abstract.cafe +abstracter.site +abstraction-is-often-one-floor-above-you.top +abstractiontechnology.com +abstractmovieposters.com +abstruses.com +abstruses.net +absurdcam.com +abt-travel.mobi +abt90.design +abt90ap.info +abt90ap.org +abt90bet.net +abt90ll.org +abtextual.site +abtw.de +abudhabi-lottery.info +abudhabi-lottery.net +abudhabi-lottery.org +abudhabirealestate.biz +abudhabirentals.net +abundanceit.com +abundantwe.us +abunprodvors.xyz +abusedb.net +abuseknowledge.info +abuselist.com +abusemail.de +abuser.eu +abut.co.pl +abutcher.org +abuyatheem.com +abuzzcreative.host +abvbook.com +abwertofeg.site +abx90x.xyz +abycrm.ru +abyrnelaw.com +abyshop.space +abyssemail.com +abyssmail.com +abyssnet.org +abza.email +abzaretehran.com +abzerkalce.site +abzerno.site +abzokt.ru +ac-jk.com +ac-nation.club +ac20mail.in +ac3d64b9a4n07.cf +ac3d64b9a4n07.ga +ac3d64b9a4n07.gq +ac3d64b9a4n07.tk +ac4d.online +ac895.cf +ac895.ga +ac895.gq +ac895.ml +ac99dollars.com +ac9fqq0qh6ucct.cf +ac9fqq0qh6ucct.ga +ac9fqq0qh6ucct.gq +ac9fqq0qh6ucct.ml +ac9fqq0qh6ucct.tk +aca5.com +acaccoun.cf +acaccoun.ga +acaccoun.gq +acaccoun.ml +acaccoun.tk +academail.net +academiadelcancer.com +academiammnpro.online +academiccommunity.com +academmail.info +academyofleadership.global +academyofmissionrenewal.com +academywe.us +acadteh.ru +acai-berry.es +acaiadvisors.com +acaihelp.com +acaiycongelados.com +acanadianpharmacy.com +acaneed.ga +acaneed.gq +acaneed.ml +acapitolaffair.com +acara-nesa.ru +acasabianca.com +acb1918.xyz +acbiyfbur.store +acbuk.site +acc24h.shop +acc2t9qnrt.cf +acc2t9qnrt.ga +acc2t9qnrt.gq +acc2t9qnrt.ml +acc2t9qnrt.tk +accademiadiscanto.org +accanext.org +acccheaps.com +accebay.site +acceleratewe.us +accent.home.pl +accentri.com +accenture-rugby.com +accentwe.us +acceptbadcredit.ru +acceptionalminds.com +acceptmail.net +acceptwe.us +accesorii.info +access.com-posted.org +accesschicago.net +accesshigh.win +accessibletraveleurope.com +accesslivingllc.net +accessoire-piscine-accessoire.net +accessoriesjewelry.co.cc +accessrailsolutions.com +accez.site +accidentaladversary.com +accidentalbusiness.com +accidentalopiodaddiction.info +accidentalopiodaddiction.net +accidentalopiodaddiction.org +accidentattorneyct.net +accidentattorneysalaska.com +accidentes.art +accidentlawcolorado.com +accidentlawyerct.net +accidentlawyermckinney.com +acciobit.net +accion.ngo +accionambiente.org +acclaimwe.us +acclimatize495ok.online +accminscard.com +accmt-servicefundsprefer.com +accompany032.icu +accompany146.icu +accord.ong +accordcomm.com +accordmail.net +accordwe.us +accordwood.top +account3423usffe.site +accountabilitycalendar.com +accountanten.com +accountantruth.cf +accounting11-tw.org +accountingaudit.com +accountingintaylor.com +accountrainbow.store +accounts-datalyticsbase.online +accounts-leadsdatalytics.info +accounts-login.ga +accounts4sell.com +accountsadtracker.com +accpremium.ga +accprm.com +accreditedwe.us +accs.website +accsstripe.com +acctokensme.com +accu-chek.cd +acculturate.org +accumolecular.com +accur8.net +accuracyis.com +accuranker.tech +accuratecallabs.com +accuratecallabs.net +accurateforum.info +accuratehealthman.xyz +accurateto.com +accurbrinue.biz +accutaneonlinesure.com +acd0.xyz +acds-restaurant.biz +ace-11111.com +ace-mail.net +ace.ace.gy +ace180.com +ace333.info +aceaf.live +acebabe.com +aced.co.pl +acee9.live +aceh.coffee +aceiio.space +aceleradionsdaleitura.info +aceleradordaleitura.online +aceleradores-bronceado.com +acem2021.com +acemail.info +acemovingservices.com +acemr.live +acentri.com +aceohm.com +acequickloans.co.uk +acerest.xyz +acerosmetal.nl +acesandale.com +acesatmelb.com +aceslot888.net +acessandodescontosplus.com +acetesz.com +acetonic.info +aceuh.com +aceventscatering.com +acexchange.com +acfddy.ltd +acfunny.site +acg.news +acg11.com +acg8.com +acgapk.com +acgapp.com +acgapp.hk +acgbits.com +acgblog.net +acgcard.com +acgcdn.com +acgchan.com +acgcili.com +acgcms.com +acgdoge.com +acgdown.com +acgfile.com +acghj.com +acgjob.com +acgleaderboard.info +acglib.com +acglist.com +acgmark.com +acgmaster.com +acgmetals.com +acgn.best +acgn.info +acgnapp.com +acgnote.com +acgpad.com +acgpage.com +acgpic.com +acgplan.com +acgproxy.com +acgpt.com +acgpush.com +acgqun.com +acgsearch.com +acgsns.com +acgsong.com +acgstock.com +acgstory.com +acgsuki.com +acgtest.com +acgtorrent.com +acgtt.com +acgtube.com +acgtxt.com +acgui.com +acgup.com +acgvpn.com +acgwear.com +acgwiki.org +ach0u.info +ach90.xyz +ach90ach.xyz +achatairjordansfrance.com +achatairjordansfrshop.com +achatjordansfrshop.com +achatz.ga +ache.co.pl +acheterairmaxs.com +achetertshirt.com +achievementwe.us +achieversconsulting.org +achievewe.us +achievewithdenise.com +achievingbalancedliving.com +achillesinvestment.com +achillesinvestments.com +achoevacu.com +achterhoekrp.online +achy.co.pl +acidlsdpyshop.com +acidrefluxdiseasecure.com +acike.com +acipoker.net +aclothespeak.site +acm25.com +acmail.com +acmeco.tk +acmehpunk.ga +acmehpunk.gq +acmehpunk.tk +acmemessaging.com +acmenet.org +acmilanbangilan.cf +acmily.com +acmimail.com +acmta.com +acmuci.org +acn-philippines.com +acnatu.com +acne.co.pl +acne.com +acnebrufolirime43.eu +acnemethods.com +acnenomorereviewed.info +acneproduction.com +acneproductions.com +acnerd.com +acnonline.com +acofmail.com +acogab.cf +acogab.ga +acogab.gq +acogab.ml +acogab.tk +acontenle.eu +acoolday.com +acoporthope.org +acornsbristol.com +acornwe.us +acoukr.pw +acousticcafenh.com +acousticlive.net +acpodo.cf +acpodo.ga +acpodo.gq +acpodo.ml +acpodo.tk +acpokerguide.com +acq.cz +acqm38bmz5atkh3.cf +acqm38bmz5atkh3.ga +acqm38bmz5atkh3.gq +acqm38bmz5atkh3.ml +acqm38bmz5atkh3.tk +acqnl9.download +acquaintance70.cf +acquaintance70.ga +acquaintance70.gq +acquaintance70.ml +acquaintance70.tk +acreno.info +acreno.services +acres.asia +acrilicoemosasco.ml +acrilicosemosasco.ml +acrilworld.ml +acro.app +acro.video +acroexch.us +acrone.website +acrowizard.com +acroyoga.academy +acroyoga.agency +acroyoga.app +acroyoga.cam +acroyoga.fun +acroyoga.ltd +acroyogaballet.com +acroyogabook.com +acroyogadance.academy +acroyogadance.agency +acroyogadance.club +acroyogadance.coach +acroyogadance.fun +acroyogadanceacademy.com +acroyogadanceteachertraining.online +acroyogateachertraining.online +acroyogavinyasa.com +acrscostseg.com +acrylicchairs.org +acrylicnumberplate.com +acrylicwe.us +acs.net +acserveur.net +acsisa.net +acta.co.pl +actdiets.com +actemrainformation.net +actemrainfusion.com +actemrainfusion.net +actemrainsights.net +actemraiv.com +actemralawsuit.com +actemralawsuit.net +actemralawsuits.com +actemralies.com +actemralipids.com +actemralitigation.com +acticipate.com +actimask.info +acting-guide.info +actingblog.com +actingtruthfully.com +action12.ru +actionprize04.icu +actiplaster.com +actipotenssolution.online +activaihmj.xyz +activarmisiones.org +activate.insure +activatedcharcoalteeth.com +activatelinks.com +activatewe.us +activator.cf +active-future-vendor.space +active-marketing-official.ru +active-realty.com +active.au-burn.net +activeaginggame.com +activeaginggames.com +activecaptains.com +activecrypto.online +activelywell.com +activemonologues.com +activeonlineshoppers.info +activestore.xyz +activewellnessfitnessbootcamp.com +activilla.com +activites-cyclistes-ufolep.info +activity.market +activitysports.ru +activitywe.us +activmir24.online +actix.fun +actprepnyc.com +actrevenge.us +actrosday.site +actrucla.ga +actrucla.gq +actrucla.tk +acts.co.pl +acttruckstaffing.us +actual-stv.ru +actuallyhere.com +actyvate.org +acuarun.com +acucre.com +acuitywe.us +acuk.top +acumendart-forcepeace-darter.com +acumensavvyagility-flair.com +acumenwe.us +acunak.ga +acunak.gq +acunsleep.cf +acunsleep.ga +acunsleep.gq +acunsleep.tk +acupuncturecharlottenorthcarolina.com +acupunctureithaca.com +acupuncturenews.org +acurate.ru +acuslsqa.net +acusupply.com +acutechrealty.org +acuteiro.space +acuteswor.us +acv0up.com +acvihis.cf +acvihis.gq +acvihis.tk +acvllc.org +acwdgq.us +acwiki.com +acwritav.cf +acwritav.ga +acwritav.gq +acwritav.ml +acyclovir.website +acyl.co.pl +acys.de +acysw.info +aczbej.info +ad-schoonmaak-hygiene.site +ad-seo.com +ad0676d.xyz +ad165.com +ad1zpg.us +ad2linx.net +ad2linx.org +ad6.net +ada-duit.ga +ada-janda.ga +adacalabuig.com +adachiu.me +adadass.cf +adadass.ga +adadass.gq +adadass.ml +adadass.tk +adal.kg +adal33.net +adal34.net +adal36.com +adal38.com +adal39.net +adal40.net +adal41.com +adal41.net +adal43.com +adal45.net +adal46.net +adal47.com +adal48.com +adal49.net +adal50.com +adamand.info +adamastore.co +adamsandadamsfinancial.com +adamsiia.com +adamsportgear.com +adamtraffic.com +adamvelma.com +adamwood.us +adanacconstruction.com +adanacconstruction.xyz +adanademirsporkulubu.xyz +adapazarihost.xyz +adapazarirehber.com +adapazarirehber.xyz +adapdev.com +adapromo.com +adaptalk.com +adapticlass.org +adaptivewe.us +adaptivno.icu +adaptix.cloud +adaptwe.us +adaraluxury.com +adashev.ru +adastars333.com +adastralflying.com +adasupeyzaj.xyz +adawis-web.com +adax360.com +adazmail.com +adbet.co +adbheg.net +adblockerhyper.us +adblog.com +adc71.space +adcar.pro +adcat.network +adclaborataries.com +adcloud.us +adconcept.ru +adcpharmaceutical.com +adctreatment.com +add-intl-preowned-cars-ok.live +add3000.pp.ua +add6site.tk +addcharlotte.com +addevalue.com +addgabriella.com +addictedtocheap.com +addictedtogirls.com +addictingtrailers.com +addictioncontentwriters.com +addictioncontentwriters.info +addictioncontentwriters.net +addictioninterventionhelp.com +addictionmarketingethics.info +addictionmarketingethics.net +addictionnj.com +addictiontreatment.marketing +addictiontreatmentcenterwebdesign.com +addictiontreatmentethics.com +addictiontreatmentethics.info +addictiontreatmentmarketingethics.com +addictiontreatmentmarketingethics.info +addimagestore.com +addio-tossine.com +addiostanchezza.com +addique.com +addisinvestment.com +addisonchurchill.net +additiavux.fun +additionaledu.ru +additioncorp.net +additive.center +addixtions.com +addjen.com +addmobigoto.online +addonupdater.com +addressunlock.com +addsigns.com +addtocurrentlist.com +adduguesthouses.com +addyoubooks.com +addys-sox.com +adeata.com +adecad.gq +adecad.tk +adel.asia +adelaide.bike +adelaideoutsideblinds.com.au +adelakhunova.site +adelarthra.best +adelbets.biz +adelinabubulina.com +adelu.tk +adenose.info +adentaltechnician.com +adept.dev +adeptwe.us +aderispharm.com +adesaoapp.online +adesktop.com +adf4th.us +adfilter.org +adfits.com +adfly.comx.cf +adfuard.com +adgento.com +adgloselche.esmtp.biz +adgpro.com +adgrant.services +adguemin.cf +adguemin.ga +adguemin.ml +adguemin.tk +adhaute.com +adhibit.site +adhong.com +adidas-fitness.eu +adidas-porsche-design-shoes.com +adidasasoccershoes.com +adidasibuni.info +adidasisport.info +adidasshoesshop.com +adidasto.com +adilub.com +adins.website +adipex7z.com +adiq.eu +adirondackhearthandhome.com +adit.co.pl +aditavideo.icu +aditiwedsvinay.com +aditus.info +adiyamanevlilik.xyz +adjun.info +adjustmyfontsize.com +adjwsaws.icu +adk66.ru +adkchecking.com +adkcontracting.com +adkecochecking.com +adldentallab.com +adleep.org +adlinking2.com +adlinks.org +adlinx.org +adlioprof.cf +adlioprof.gq +adlioprof.ml +adlioprof.tk +adm2work.xyz +admail.com +admaiq.com +admf12.site +admimailer2.com +admin-jg.com +admin-panels.xyz +admin-pt.com +admin-ru.ru +admin4cloud.net +adminator.ru +adminiecqp.online +adminiecqp.ru +administratiemedewerkers.com +administrativo.world +adminlette.org +admins.page +admintong.win +admiral-casino.win +admiral1.best +admiral4.best +admiral5.best +admiralcazino777.com +admiralwe.us +admiralx-mobile.xyz +admiralx-vhod.com +admmo.com +admnt-k.net +admonishments.com +adnc7mcvmqj0qrb.cf +adnc7mcvmqj0qrb.ga +adnc7mcvmqj0qrb.gq +adnc7mcvmqj0qrb.ml +adnc7mcvmqj0qrb.tk +adnocogtechnologies.com +adnzxh.com +ado888.biz +ado888.xyz +adobe-masters.ru +adobeccepdm.com +adobesignaturemoments.com +adolescenteatingdisorderplan.com +adolescenteatingdisorderprogram.com +adolescenteatingdisorderprogramreviews.com +adolescenteatingdisorderprograms.com +adolescenteatingdisordertreatmentcenters.com +adolescentedtreatmentcenters.com +adolf-hitler.cf +adolf-hitler.ga +adolf-hitler.gq +adolf-hitler.ml +adolfhitlerspeeches.com +adonghotel.com +adonisgoldenratioreviews.info +adoniswe.us +adoptionfraudnetwork.com +adopzen.com +adorable.org +adorateur.com +adorncosmetics.us +adottouncane.net +adpings.com +adpmfxh0ta29xp8.cf +adpmfxh0ta29xp8.ga +adpmfxh0ta29xp8.gq +adpmfxh0ta29xp8.ml +adpmfxh0ta29xp8.tk +adpozium.ru +adproc.com +adproc.org +adprofjub.cf +adprofjub.ga +adprofjub.gq +adprofjub.tk +adprojnante.xyz +adpromot.net +adpugh.org +adpurl.com +adquieremasclientes.com +adrakhmanovart.online +adramail.com +adrautodesign.com +adrespocztowy.pl +adresseemailtemporaire.com +adriacardsy.info +adrianneblackvideo.com +adrianou.gq +adrianraharja.uk.to +adrinks.ru +adriveriep.com +adrmwn.me +adroit.asia +adry.cloud +adscert.net +adsd.org +adsensesite.shop +adshealth.xyz +adsondeal.icu +adsorboil.com +adspecials.us +adsphere.online +adstabym.cf +adstabym.ml +adstabym.tk +adstra.dev +adstreet.es +adtalarmsbuffalo.com +adtemps.org +adtika.online +adtraden.cf +adtraden.ga +adtraden.gq +adtraden.ml +adtraden.tk +adtrader.adult +adu368.net +adubacarat.org +adubandar.com +adubiz.info +adukmail.com +adulktrsvp.com +adult-biz-forum.com +adult-db.net +adult-free.info +adult-work.info +adultbabybottles.com +adultbadlist.com +adultcamzlive.com +adultchat67.uni.cc +adultdayhealth.info +adultesex.net +adultexile.com +adultfacebookinfo.info +adulthosting.club +adulthublink.org +adultlearner360.com +adultlivingcommunity.org +adultlivingcommunityinfo.com +adultmagsfinder.info +adultnobl.recipes +adultop.icu +adultop.xyz +adultoper.xyz +adultosmayores.org +adultpian.icu +adulttimestore.com +adulttoy20117.co.tv +adulttoybox.ca +adulttoys.com +adultuk.xxx +adultvidlite.com +aduqq.org +aduski.info +adv-ingames.club +adv-plus.ru +advair.website +advance-edit.com +advanceamk.online +advanced-chiro-center.com +advanced-medical-supplements.app +advanceddiversification.com +advancedinternetmedia.com +advancedmedicalnetwork.info +advancedsurvival.net +advancedwebstrategiesinc.com +advanceedit.com +advanceskinfitness.com +advanstarhealthcare.com +advantage-intentions.site +advantage-smart.site +advantage-study.site +advantagechoice.site +advantageintentions.site +advantagesmart.site +advantagesofsocialnetworking.com +advantagestudy.site +advantagewe.us +advantek1.ru +advantimal.com +advantimals.com +advantimo.com +advapp.ru +advd.site +advdent.net +advdesignss.info +advents.icu +adventureabroadawaits.com +adventurewe.us +adventwe.us +adventwelfare.global +adverstudio.com +advertforyou.info +advertiseall.com +advertising-digitalsignage.com +advertisingblog.com +advertisinggreatness.com +advertisingmarketingfuture.info +advertmix85.xyz +adverts.page +advextreme.com +advicehill.icu +advidsesrest.xyz +advious.net +advious.org +advisercensorshipmark.website +advisorframework.com +advisorwe.us +adviva-odsz.com +advocacyanthology.com +advocat-klimanov.ru +advocatewe.us +advogadoespecializado.com +advokat24-msk.online +advokats.info +advorta.com +advrocket.com +advrocket.ru +adwaterandstir.com +adwc.cd +adwnasw.icu +adwordsbuilders.com +adwordscampaigner.com +adwordscontacts.com +adwordsopus.com +adwukong.com +adx-telecom.com +ady12.design +adyladlp.shop +adze.co.pl +adzillastudio.com +ae-mail.pl +ae.pureskn.com +ae68790.xyz +ae69a50.club +ae9d1t.host +aeacides.info +aeai.com +aeasystabilitybetsnupp20.xyz +aebfish.com +aed-cbdoil.com +aed5lzkevb.cf +aed5lzkevb.ga +aed5lzkevb.gq +aed5lzkevb.ml +aed5lzkevb.tk +aededwed.club +aeepha.com +aegde.com +aegia.net +aegis-conference.eu +aegiscorp.net +aegiswe.us +aegmefquw.shop +aegoneinsurance.cf +aegonilfe.com +aegyptisches-museum-berlin.info +aehmusic.com +aekl.email +aelbp.info +aeliatinos.com +aelo.es +aenikaufa.com +aenmail.net +aenterprise.ru +aeo6px.us +aeon.tk +aeonpsi.com +aeorierewrewt.co.tv +aeorwbpox.shop +aeotec.xyz +aepc2022.org +aepifoundation.com +aepistore.net +aerectiledysfunction.com +aeriesroboticsai.com +aerion.mobi +aerionaerospace.com +aerioncorp.biz +aerioncorp.info +aerioncorp.net +aeriontechnology.com +aeripix.com +aeritoon.cf +aernuo.icu +aero-fashion.com +aero-files.net +aero.ilawa.pl +aero1.co.tv +aero2.co.tv +aerobia.com +aerobicaerobic.info +aerobicfresh.com +aeroblog.com +aerochart.co.uk +aerocityvaranasi.com +aerodictionary.com +aeroglossary.com +aeronauticaldictionary.com +aeroponics.edu +aeroport78.co.tv +aeroshack.com +aerospaceblog.com +aerospaceglossary.com +aerotec.org +aeroteez.com +aerteur73.co.tv +aertewurtiorie.co.cc +aertyeme.site +aesamedayloans.co.uk +aesbasns.space +aesirwatches.com +aesopsfables.net +aestabbetting.xyz +aesthetic.dev +aestheticclinic.org +aesthetiqveins.com +aestrony6.com +aestyria.com +aetnainsurancecoversrehab.com +aetorieutur.tk +aev333.cz.cc +aewh.info +aewituerit893.co.cc +aewn.info +aewutyrweot.co.tv +aewy.info +aexa.info +aexd.info +aexf.info +aexg.info +aexk.ru +aexw.info +aexy.info +aeyq.info +aeze0qhwergah70.cf +aeze0qhwergah70.ga +aeze0qhwergah70.gq +aeze0qhwergah70.ml +aeze0qhwergah70.tk +aezga.com +aezl.info +af2przusu74mjzlkzuk.cf +af2przusu74mjzlkzuk.ga +af2przusu74mjzlkzuk.gq +af2przusu74mjzlkzuk.ml +af2przusu74mjzlkzuk.tk +af353.com +af4lqr.com +afadob.cf +afadob.ga +afadob.gq +afadog.cf +afadog.ga +afadog.ml +afadog.tk +afaracuspurcatiidintara.com +afat1loaadz.ru +afat2fiilie.ru +afat3sagruz.ru +afat9faiili.ru +afatt3fiilie.ru +afatt7faiili.ru +afb.business +afb.global +afbarta.ga +afbarta.ml +afbowr.com +afcgroup40.com +afcxw.us +afdzj1.site +afelab.org +afelov.ml +afelov.tk +aff-marketing-company.info +affairsprofiles.com +affcats.com +affebe1.xyz +affel.network +affgrinder.com +affilialogy.com +affiliate-marketing2012.com +affiliate-nebenjob.info +affiliate-pari-match.com +affiliate-tora.com +affiliatebreakthrough.com +affiliatedwe.us +affiliatehustle.com +affiliatenova.com +affiliateseeking.biz +affiliatesmarkabet.com +affiliatesonline.info +affiliatez.net +affilikingz.de +affinityfci.com +affinitywe.us +affirmationassistant.com +affirmhealth.net +affirmhealthclinic.com +affitti24.com +afflated.site +afflictionmc.com +afflive.gq +affluentwe.us +affordable55apartments.com +affordableattic.net +affordablescrapbook.com +affordablevisitors.com +affordablevoiceguy.com +affordablewastewatersolutions.com +affordablewe.us +affricca.com +affstb.com +afftar.site +afganbaba.com +afgone.website +afhu3x.best +afifilm.net +afiliadoaprendiz.com +afiliasi-fbs.com +afilliyanlizlik.xyz +afilmizle.online +afirst.site +afiscreenation.com +afisha.biz.ua +afishaonline.info +afja4u.us +afjhjhyt16505.cf +afjhjhyt16505.ga +afjhjhyt16505.ml +afjhjhyt16505.tk +afjhjhyt36473.ml +afjhjhyt36473.tk +afjhjhyt53041.cf +afjhjhyt53041.ml +afjhjhyt58183.cf +afjhjhyt58183.ga +afjhjhyt58183.ml +afjhjhyt60105.cf +afjhjhyt60105.ml +afjhjhyt60105.tk +afjhjhyt62958.ml +afjhjhyt85545.cf +afjhjhyt85545.ga +afjhjhyt85545.ml +afjhjhyt85545.tk +afjhjhyt99856.ml +afjhjhyt99856.tk +afjrotc.org +afk.bet +aflam06.com +aflamyclub.com +afmail.com +afonsequinha.com +afopmail.com +aforyzmy.biz +afqkxvzw.xyz +afr564646emails.com +afrahost.net +afraidmc.club +afranceattraction.com +afre676007mails.com +afre67677mails.com +afremails.com +africa-council.com +africalibrary.org +african-mango-opinie-cena.xyz +african3000.com +africanamerican-hairstyles.org +africanmangoactives.com +africanprogressiveeconomist.com +africanthoughtpartners.com +africanwildlife.tours +afriel.info +afriend.fun +afriend.gmail.com.gmail.com.m.oazis.site +afriend.site +afriendship.ru +afrikakonseyi.org +afrikalive.com +afrikfoodcorner.net +afro.com-posted.org +afrobacon.com +afrodizyakdamlalar.xyz +afronorilsk.ru +afroprides.com +afscmelocal2181.org +afsf.de +afsp.net +aftabnetdaily.net +aftarebwie.tk +afteir.com +afterabc.biz +aftercurro.com +aftereight.pl +afterhourswe.us +aftermedical.xyz +afternoonchameleon.com +afternoonsinthegarden.org +afterpeg.com +afterschoolncac.com +aftership.biz +afterspace.net +afterthediagnosisthebook.com +aftertherain.icu +aftksrabv.shop +aftnfeyuwtzm.cf +aftnfeyuwtzm.ga +aftnfeyuwtzm.gq +aftnfeyuwtzm.ml +aftnfeyuwtzm.tk +aftttrwwza.com +afunthingtodo.com +afuture.date +afwira.cf +afwira.ml +afwira.tk +afyonalisveris.xyz +afyonbilgisayar.xyz +afyonlusanal.com +afyonlusanal.xyz +afyonyumurta.com +afyonyumurta.xyz +ag.us.to +ag02dnk.slask.pl +ag163.top +ag8.men +ag95.cf +ag95.ga +ag95.gq +ag95.ml +ag95.tk +agafera2015.cd +agagmail.com +agaigoizalo.com +againautoparts.info +againautoparts.net +againsughu.website +agamail.com +agamoney.icu +aganardineroporinternet.com +agapenutrition.net +agapetus.info +agaqra.cf +agaqra.ga +agaqra.gq +agaqra.ml +agar.co.pl +agariohub.org +agartstudio.com.pl +agartutorials.com +agasj.com +agasolicitors.org +agatho.info +agb7qj.site +agbiome.bio +agbiome.directory +agbiome.live +agbiome.works +agbots.com +agcnelco.com +agdrtv.com +age-cool.ru +age52-toriaezu-tubuyaitoko.site +ageathomehappy.com +agedlist.com +agedmail.com +ageing-in-europe.org +agen-casino.net +agen-domino.top +agen-poker.top +agen45.biz +agen45.com +agen45.org +agenbola.com +agenbola9.com +agencabo.com +agenciaemdigital.com +agenciasviajesrepublicadominicana.com +agencjaatrakcji.pl +agencjainteraktywna.com +agencjareklamowanestor.pl +agencyad.online +agencyadvert.online +agencygrowthhacking.com +agencynet.us +agendawe.us +agendeto.com +agendka.mielno.pl +agengaming.net +agengaming.org +agenimc6.com +agenjudieuro.com +agenpulsamabruk.club +agenresmipokeridn.com +agenstvo-komforta.ru +agent388a-casinoonline.org +agentblog.com +agentogelasia.com +agentoto4d.org +agentshipping.com +agentsosmed.com +agenziaditraduzione.com +agenzieinvestigativetorino.it +ageoftheworld.com +ageofvalor.com +ageokfc.com +ageousa.shop +agesong.com +agewellgame.com +agewellgames.com +agfdgks.com +agfw01.com +agger.ro +agget5fiilie.ru +agget6fiilie.ru +agget6loaadz.ru +aggrandized673jc.online +agh-rip.com +agha.co.pl +aghoriti.website +agibdd.ru +agilecoding.com +agilefl.xyz +agileflin.xyz +agilekz.com +agilewe.us +agilis.cloud +agilityforeigntrade.com +agimpact.org +aginskaya.online +agistore.co +agkut1.site +aglobetony.pl +aglugimp.cf +aglugimp.ga +aglugimp.gq +aglugimp.ml +aglugimp.tk +agma.co.pl +agmail.com +agmoney.xyz +agmueidq.shop +agn88.net +agnachleo.ga +agnachleo.gq +agnachleo.ml +agnachleo.tk +agnieszkaobara.com +agnxbhpzizxgt1vp.cf +agnxbhpzizxgt1vp.ga +agnxbhpzizxgt1vp.gq +agnxbhpzizxgt1vp.ml +agnxbhpzizxgt1vp.tk +agocj.us +agoda.lk +agogbag.website +agogogames.com +agogotogel.com +agonize535qq.online +agonizingly7gi.online +agorawe.us +agostabbet.xyz +agostinho.net +agovol.cf +agovol.gq +agpforum.com +agq6.com +agr-energy.com +agramas.cf +agramas.ml +agramerica.com +agrariant.com +agrariant.net +agrarnaja-politika.ru +agreeone.ga +agreetoshop.com +agri-bank.net +agri-profocus.com +agri.agriturismopavi.it +agri.com-posted.org +agribisnews.xyz +agricalc.org +agriculture-ball.xyz +agrif.org +agrifood-ric.org +agrilinkllc.com +agrilinkllc.xyz +agriokss.com +agriologybg.info +agristyleapparel.us +agriturismocollepaciocco.it +agriturismomontefieno.com +agrofoodstartups.com +agrofort.com +agrolaw.ru +agrostor.com +agrourense.info +agsf8x.us +agsgames.club +agsjr.com +agskincare.us +agsmechanicalinc.com +agsphysicaltherapy.com +agterms.com +agtx.net +aguablancasbr.com +aguamail.com +aguamexico.com.mx +aguardhome.com +aguarios1000.com.mx +aguastinacos.com +aguastrieastor1.business +ague.co.pl +aguepanela.co +aguide.site +agustaa.top +agustusmp3.xyz +agwbyfaaskcq.cf +agwbyfaaskcq.ga +agwbyfaaskcq.gq +agwbyfaaskcq.ml +agwbyfaaskcq.tk +agwestvalley.com +agxazvn.pl +agxngcxklmahntob.cf +agxngcxklmahntob.ga +agxngcxklmahntob.gq +agxngcxklmahntob.ml +agxngcxklmahntob.tk +ah3mto.us +ahaappy0faiili.ru +ahajusthere.com +ahamit.com +ahamoney.xyz +ahappycfffile.ru +ahardrestart.com +aharmovie2.info +ahasavannah.com +ahavastyle.com +ahbapbet26.com +ahbapbet27.com +ahbapbet28.com +ahbz.xyz +ahcsolicitors.co.uk +ahdxsjy.com +aheadwe.us +ahem.email +ahf.ong +ahffilms.com +ahgae-crews.us.to +ahgpharma.info +ahhmail.info +ahhos.com +ahhtee.com +ahk.jp +ahketevfn4zx4zwka.cf +ahketevfn4zx4zwka.ga +ahketevfn4zx4zwka.gq +ahketevfn4zx4zwka.ml +ahketevfn4zx4zwka.tk +ahliqq.info +ahmadidik.cf +ahmadidik.ga +ahmadidik.gq +ahmadidik.ml +ahmed-ould-daddah.org +ahmedgomaa.tech +ahmedmouici.xyz +ahmetamanvermez.com +ahmetcan.ml +ahmetcan.tk +ahmetcan123.ga +ahmetcan1234.ga +ahmetcan1234.ml +ahmetcan1234.tk +ahmetliarmut.ml +ahmetmahmut.ml +ahmetmehmet.cf +ahoj.co.uk +ahojmail.pl +ahomeforjames.org +ahomesolution.com +ahomework.ru +ahong142.site +ahoora-band.com +ahopmail.com +ahoxavccj.pl +ahrnsd.site +ahrr59qtdff98asg5k.cf +ahrr59qtdff98asg5k.ga +ahrr59qtdff98asg5k.gq +ahrr59qtdff98asg5k.ml +ahrr59qtdff98asg5k.tk +ahrt.email +ahsb.de +ahsozph.tm.pl +ahtigames.se +ahtnacontractors.com +ahtnafacilities.net +ahtnafacilityservices.com +ahtnaprofessionalservices.com +ahtnaprofessionalservices.net +ahtnasts.biz +ahtnasts.info +ahtnasts.net +ahtnasts.org +ahtongtailor.monster +ahtubabar.ru +ahwbo1.site +ahxhjggc.com +ahyars.site +ai-pct.com +ai-report.ru +ai.aax.cloudns.asia +ai.edu.aiot.ze.cx +ai.hsfz.info +ai.vcss.eu.org +ai2111.com +ai4000.com +ai4trade.info +ai6188.com +ai6554.com +aiadvertising.xyz +aiafrica.xyz +aiatlanta.xyz +aiauction.xyz +aiaustralia.xyz +aiba777.com +aibm.email +aibotflows.com +aicai8.biz +aicai88.biz +aicai88.org +aicanada.xyz +aicash.one +aicasino.xyz +aichao5.com +aichou.org +aichristmas.xyz +aiciphering.com +aiclbd.com +aicomplete.com +aicryptoctrading.com +aide.co.pl +aidjw.space +aidomain.xyz +aidotcomau.com +aidotcomru.com +aidoushi.net +aidownload.xyz +aidpaidf.shop +aidshops.ru +aidtouchair.website +aiduisoi3456ta.tk +aidweightloss.co.uk +aieen.com +aielders.com +aiemail.xyz +aiemoney.xyz +aienvr.com +aifares.info +aiflesh.com +aifmhymvug7n4.ga +aifmhymvug7n4.gq +aifmhymvug7n4.ml +aifmhymvug7n4.tk +aifootballpredictions.tips +aifree.xyz +aigame.xyz +aihent.com +aihnoa.com +aihongkong.xyz +aiidriver.icu +aiigs.live +aiij8.space +aiindia.xyz +aiindonesia.xyz +aiiots.net +aiislam.xyz +aiisrael.xyz +aiistanbul.xyz +aijiangyuan.com +aijitu.icu +aijuxuan.com +aikeng91.icu +ailainaz.com +ailasvegas.xyz +ailem.info +ailenien.com +ailideng.club +ailiking.com +ailluin.site +ailme.pw +ailmedia.press +ailtex.com +aim-v.ru +aimboss.ru +aimeenorman.buzz +aimer-agency.net +aimexico.xyz +aimhire.me +aimodel.xyz +aims.co.pl +aimupset.com +ainbz.com +ainebalara.com +ainixx.xyz +aink.gq +aink.ml +ainmedia.press +ainra.space +ains.co.pl +aioneclick.com +aionline.xyz +aiot.aiphone.eu.org +aiot.creo.site +aiot.creou.dev +aiot.dmtc.dev +aiot.ptcu.dev +aiot.vuforia.us +aiot.ze.cx +aipi8x.com +aipian.info +aipmail.ga +aipp.tech +aipp31.com +aipp35.com +aipp37.com +aipp43.com +aipp47.com +aipp52.com +aipp53.com +aipp54.com +aipp59.com +aipp62.com +aipp63.com +aipp67.com +aipp69.com +aipp74.com +aipp79.com +aipp84.com +aipp85.com +aipp88.com +aipp92.com +aipp94.com +aipp97.com +aipptech.tech +aiprogenitor.com +aips.store +aipuma.com +air-blog.com +air-bubble.bedzin.pl +air-games.icu +air-maxshoesonline.com +air-tips.com +air.stream +air2token.com +air3d.icu +airaegeans.info +airaf.site +airandheat.contractors +airballons.ru +airbbs.com +airbexdelivery.com +airblasttrampolinepark.com +airbnbexperts.net +airbrush-tattoo.ru +airbrushism.com +airbytes.se +aircapitol.net +aircareshop.live +aircargomax.us +aircln.ru +aircolehaan.com +aircomfortforhomes.biz +airconditionermaxsale.us +airconditioning99dollars.com +airconditioningninetyninedollars.com +airconditioningservicetampafl.com +aircourriel.com +aircraftdictionary.com +aircraftfinishing.net +airdrietruck.com +airealestate.xyz +aireashop.space +airebook.com +aires.travel +airfareswipe.com +airfiltersmax.us +airforceonebuy.net +airforceonesbuy.com +airframce.club +airfresco.net +airg.app +airhawk.ru +airhelp.dev +airhimalayas.net +airhorn.org +airhue.com +airideas.us +airj0ranpascher.com +airj0ranpascher2.com +airjodanpasfranceshoes.com +airjodansshoespascherefr.com +airjoranpasachere.com +airjordan-france-1.com +airjordanacheter.com +airjordanafrance.com +airjordanapascher.com +airjordanapascherfrance.com +airjordanaustraliasale.com +airjordancchaussure.com +airjordaneenlignefr.com +airjordanffemme.com +airjordanfranceeee.com +airjordannpascherr.com +airjordannsoldes.com +airjordanochaussure.com +airjordanoutletcenter.us +airjordanoutletclub.us +airjordanoutletdesign.us +airjordanoutletgroup.us +airjordanoutlethomes.us +airjordanoutletinc.us +airjordanoutletmall.us +airjordanoutletonline.us +airjordanoutletshop.us +airjordanoutletsite.us +airjordanoutletstore.us +airjordanoutletusa.us +airjordanoutletwork.us +airjordanpaschefr.com +airjordanpascher1.com +airjordanpaschereshoes.com +airjordanpascherjordana.com +airjordanpaschermagasinn.com +airjordanpascherrfr.com +airjordanpascherrr.com +airjordanpascherrssoldes.com +airjordanpaschersfr.com +airjordanpaschersoldesjordanfr.com +airjordanpasschemagasin.com +airjordanpasscher.com +airjordanretro2013.org +airjordanscollection.com +airjordanshoesfrfrancepascher.com +airjordansofficiellefrshop.com +airjordanspascher1.com +airjordansshoes2014.com +airjordansstocker.com +airjuniors.info +airknox.com +airlagu.me +airmail.cc +airmail.tech +airmailbox.website +airmailhub.com +airmart.ru +airmax-sale2013club.us +airmax1s.com +airmaxdesignusa.us +airmaxgroupusa.us +airmaxhomessale2013.us +airmaxnlinesaleinc.us +airmaxonlineoutlet.us +airmaxonlinesaleinc.us +airmaxpower.us +airmaxprooutlet2013.us +airmaxrealtythesale.us +airmaxsaleonlineblog.us +airmaxschuhev.com +airmaxsde.com +airmaxshoessite.com +airmaxshopnike.us +airmaxslocker.com +airmaxsmart.com +airmaxsneaker.us +airmaxspascherfrance.com +airmaxsproshop.com +airmaxsstocker.com +airmaxstoresale2013.us +airmaxstyles.com +airmaxtn1-90paschers.com +airmaxtnmagasin.com +airmaxukproshop.com +airn.co.pl +airnons.info +airold.net +airon116.su +aironheating.com +airparkmax.us +airplane2.com +airplanedesire.com +airplay.elk.pl +airpodscu.site +airpodshop.shop +airport-atirau.ru +airport-transfers-malaga.com +airportbusride.com +airportendoscopy.center +airportlimoneworleans.com +airportlimousinenyc.com +airportparkingcincinnati.net +airporttaxisinloughborough.org +airporttaxisinquorn.org +airporttransfershuttles.com +airporttransfersistanbul.net +airpriority.com +airpurifiermax.us +airriveroutlet.us +airshowmax.us +airsi.de +airsight.app +airsofa.icu +airsoftshooters.com +airspaskeb.space +airsport.top +airsuspension.com +airtravelmaxblog.us +airturbine.pl +airuc.com +airwaysaviationonline.com +airwayy.us +airxr.ru +airybreeze.com +airyofe.space +aisaelectronics.com +aiseattle.xyz +aiseeker.com +aishenma.xyz +aisingapore.xyz +aisitu.icu +aisiys.com +aisports.xyz +aist-lipetsk.ru +aistis.xyz +aistocks.xyz +aisushigranada.com +aiswitzerland.xyz +aitaiwan.xyz +aitraffic.xyz +aitravel.xyz +aitu.asia +aitu.help +aity.icu +aiv.pl +aivtxkvmzl29cm4gr.cf +aivtxkvmzl29cm4gr.ga +aivtxkvmzl29cm4gr.gq +aivtxkvmzl29cm4gr.ml +aivtxkvmzl29cm4gr.tk +aiwan-deals.com +aiwashington.xyz +aiwhois.xyz +aiwireless.xyz +aixjbv.space +aizennsasuke.cf +aizennsasuke.ga +aizennsasuke.gq +aizennsasuke.ml +aizennsasuke.tk +aj4jesus.com +aja-tech.com +ajabdshown.com +ajaibtogel.website +ajanlatok.online +ajansberna.site +ajansesperto.site +ajanslog.top +ajansmaster.xyz +ajansparis.xyz +ajanstinder.xyz +ajanstwo.xyz +ajarnow.com +ajaxapp.net +ajaxdesign.org +ajaxsys.com +ajbrosan.com +ajbsoftware.com +ajcreationsonline.com +ajeeb.email +ajeesh.email +ajeroportvakansii20126.co.tv +ajexen.ga +ajexen.gq +ajexen.ml +ajexen.tk +ajfasy.com +ajfzqs.us +ajgpyt.com +ajhfjhasjkr30977.cf +ajhfjhasjkr30977.ga +ajhfjhasjkr30977.tk +ajhfjhasjkr40538.ga +ajhfjhasjkr47858.cf +ajhfjhasjkr47858.ga +ajhfjhasjkr47858.ml +ajhfjhasjkr47858.tk +ajhfjhasjkr87650.cf +ajhfjhasjkr87650.ga +ajhfjhasjkr87650.ml +ajhfjhasjkr87650.tk +ajhfjhasjkr97564.cf +ajhfjhasjkr97564.tk +aji.kr +ajiagustian.com +ajjdf.com +ajmail.com +ajmandreampalacespa.info +ajnabar.com +ajobabroad.ru +ajobfind.ru +ajodirect.com +ajoivjortkobptr.info +ajoqq.org +ajoxmail.com +ajpapa.net +ajqff.us +ajqn2h.us +ajreviewnews.com +ajrf.in +ajruqjxdj.pl +ajsd.de +ajsdawks.icu +aju.onlysext.com +ajua.africa +ajua.tech +ajustementsain.club +ajy47.space +ajyuahsj.tech +ak-ex.ru +ak13.net +ak46.biz +ak751.site +aka2.pl +akabubbles.com +akademichesky.info +akademisaati.org +akademiyauspexa.xyz +akainventorysystem.com +akaliy.com +akamaized.cf +akamaized.ga +akamaized.gq +akamarkharris.com +akanpjoyp.shop +akanshabhatia.com +akapost.com +akara-ise.com +akash9.gq +akaunt.info +akaunt.org +akazq33.cn +akb-12.icu +akb-75.icu +akb007.com +akbobinajelektrik.xyz +akbqvkffqefksf.cf +akbqvkffqefksf.ga +akbqvkffqefksf.gq +akbqvkffqefksf.ml +akbqvkffqefksf.tk +akbxv.us +akcaoglutesisat.xyz +akcebet1.club +akcebetbonus1.club +akcebetgiris1.club +akcebetgirisadresi1.club +akcebetuyelik1.club +akcesoria-dolazienki.pl +akcesoria-telefoniczne.pl +akciivipusk.xyz +akcneletak.sk +akcritning.cf +akcritning.ga +akcritning.ml +akcritning.tk +akd-k.icu +akedits.com +akee.co.pl +akekee.com +akelshop.net +akemakep.shop +akerd.com +akerin.xyz +akerna.net +akeyt.host +akfioixtf.pl +akgq701.com +akhalfpricelisting.com +akhavi.org +akhbarak.org +akhisaranahtar.xyz +akhmadi.cf +akhost.trade +aki-miz.biz +akiavenue.com +akillietkinlik.xyz +akinesis.info +akinsoftsivas.com +akiol555.vv.cc +akiowrertutrrewa.co.tv +akira4d.info +akissaboe.us +akjewelery-kr.info +akk.ro +akkecuwa.ga +akkiproducts.com +akkivk.ru +aklqo.com +akma.email +akmail.com +akmaila.org +akmandken.tk +akoncasino1.com +akoncasino4.com +akorde.al +akqgs.live +akqkky.com +akragames.win +akramed.ru +akrolreklam.xyz +akronquote.com +akronrt.net +akrula.site +akryn4rbbm8v.cf +akryn4rbbm8v.ga +akryn4rbbm8v.gq +akryn4rbbm8v.tk +aksanticom.cd +aksarat.eu +aksarayhabertv.com +aksaraylisesi.xyz +aksarayorospulari.xyz +aksarayotoekspertiz.com +aksearches.com +akserviceonline.com +aksesorisa.com +aksioma.store +aksjtjkast12186.cf +aksjtjkast12186.ga +aksjtjkast12186.tk +aksjtjkast19012.cf +aksjtjkast19012.ga +aksjtjkast19012.ml +aksjtjkast33108.ga +aksjtjkast33108.ml +aksjtjkast34501.ml +aksjtjkast34501.tk +aksjtjkast49181.cf +aksjtjkast49181.ga +aksjtjkast49181.ml +aksjtjkast49181.tk +aksjtjkast49209.cf +aksjtjkast49209.ml +aksjtjkast49209.tk +aksjtjkast52344.ga +aksjtjkast52344.ml +aksjtjkast99932.ml +aksjtjkast99932.tk +akstel32.icu +aktiefmail.nl +aktifkartu.net +aktionsinfo.com +aktoyota.com +aktoyotaguam.com +akudik.bid +akula012.vv.cc +akumaofficiall.live +akumulatorysamochodowe.com +akumulatoryszczecin.top +akunamatata.site +akunprm.com +akusayyangkamusangat.ga +akusayyangkamusangat.ml +akusayyangkamusangat.tk +akustyka2012.pl +akutamvan.com +akuudahlelah.com +akvabionica.icu +akvaeha.icu +akvaltis.icu +akvapolivblg.ru +akvaristlerdunyasi.com +akvluzbeo.shop +akwyf.xyz +akxpert.com +akxtsm.icu +akxugua0hbednc.cf +akxugua0hbednc.ga +akxugua0hbednc.gq +akxugua0hbednc.ml +akxugua0hbednc.tk +akyildizeticaret.com +akyildizkahve.com +akyildizkahve.org +akzwayynl.pl +al-cinema.info +al-jazeera.comx.cf +al-qaeda.us +al26kt.info +al3a4t.info +al3ood.com +alabama-4k.com +alabama-get.loan +alabama-nedv.ru +alabamaaddictiontreatment.center +alabamacocainerehab.com +alabamadetox.center +alabamaopiaterehab.com +alabamaquote.com +alabamavape.com +alabana.net +alabapestenoi.com +aladdin-voyage.com +aladincash.org +alaeditions.com +alaeditions.net +alahahmohafard.online +alaimogroup.us +alainazaisvoyance.com +alaire.shop +alaisfornitura.com +alakart.info +alaki.ga +alalkamalalka.cf +alalkamalalka.ga +alalkamalalka.gq +alalkamalalka.ml +alalkamalalka.tk +alamalfrosiah.icu +alamedacountyprobate.com +alamedahomealarm.com +alameen.ong +alameinhotel.com +alaminews.online +alanadi.xyz +alanci.cf +alanci.ga +alanci.gq +alanci.ml +alanci.tk +alanischaritynetwork.com +alankxp.com +alannahtriggs.ga +alanwilliams2008.com +alanyadevekusu.xyz +alanyaligheyeti.xyz +alanyamado.xyz +alapage.ru +alappuzhanews.com +alarabi24.com +alaret.ru +alarm-nice.ru +alarmcentrale.shop +alarmclockhq.org +alarmpermits.com +alarmsfire.ru +alarmsysteem.online +alarmsysteem.shop +alarmydoowectv.com +alasin.site +alaska-nedv.ru +alaskacocainerehab.com +alaskagrab.com +alaskanartisan.com +alaskaquote.com +alaskavalentine.com +alatechsource.com +alatechsource.net +alazan.biz +albadefilippis.com +albamail.ga +alban-nedv.ru +albanychristianspirit.com +albasmahart.com +albaspecials.com +albasport.com +albayan-magazine.net +albaziinlebanon.com +albazzini.com +albendazole.website +albertacan.net +albertina.me +albertlotito.info +albertoparley.net +albertwang.me +albico.su +albinupp.xyz +albionwe.us +alblasserwaard.works +alblogic.com +alborzfilms.com +alboucher.host +albumlob.com +albumpri.icu +albumpri.xyz +albumpric.icu +albuquerqueaddictiontreatment.com +albuquerquealcoholrehab.com +alburov.com +alburyfloatroom.com +albvid.org +albyjacob.com +alcatraz.org +alcegi.ga +alcegi.gq +alcegi.ml +alcegi.tk +alcha.ru +alchemywe.us +alchevsk-car.ru +alco-city.site +alco-magazin2.info +alcobar.bar +alcobazar.site +alcobutik2.bar +alcobutik37.ru +alcobutik38.ru +alcobutik39.ru +alcobutik75.ru +alcodealer12.ru +alcodealer13.ru +alcohol-rehab-costs.com +alcoholbuddy.com +alcoholetn.com +alcoholicsanonymoushotline.com +alcoholtreatmentdetoxcenters.com +alconight17.site +alconights41.ru +alcopresentspb.ru +alcoprost-pomoch.ru +alcostar.site +alcosynth.reviews +alcotix.fun +alcsehar.ga +alcsehar.gq +alcsehar.ml +alcsehar.tk +alcsx.site +alcyonoid.info +aldawaeya.org +aldealdi.shop +aldeaminera.info +aldemimea.xyz +aldeyaa.ae +aldndcxh.host +aldooshoes.com +ale35anner.ga +aleagustina724.cf +aleaisyah710.ml +aleamanda606.cf +aleanna704.cf +aleanwisa439.cf +alebas.ru +alebutar-butar369.cf +alec.co.pl +alectronik.com +aledestrya671.tk +aledrioroots.youdontcare.com +alee.co.pl +aleelma686.ml +aleepapalae.gq +alefachria854.ml +alefika98.ga +alegrabrasil.com +alegracia623.cf +alegradijital.com +aleherlin351.tk +aleigo.com +aleja111.com +alejandroirizarry.com +alekfamili.ru +alekfamily.ru +alekikhmah967.tk +aleks-berlev.ru +alekseymalyamov.ru +alekseyzaharenko.ru +alemail.club +alemalakra.com +alemaureen164.ga +alembic.ltd +alemeutia520.cf +alenaberezina.ru +alenina729.tk +aleno.com +alenoor903.tk +alenovita373.tk +aleomailo.com +aleqodriyah730.ga +alerfv.info +alerioncharleston.com +alerionventures.info +alerionventures.org +alerionventures.us +alert-cellphone.club +alert-cleaner.club +alert-cleaner1.site +alert-fixer.club +alert-phone.club +alert.ong +alertbus.org +alertslit.top +alesam.info +alesandreo.net +alesapto153.ga +alesaq.info +aleshiami275.ml +alessandrasells.com +alessi9093.co.cc +alessia1818.site +alessth.shop +alesulalah854.tk +aletar.ga +aletasya616.ml +alex-owens.info +alexa-ranks.com +alexaclub.icu +alexacms.org +alexadomain.info +alexanas.ru +alexanderfedorov.com +alexandersvet.ru +alexandrabielanski.com +alexandrafulton.com +alexandravolkova.ru +alexandredossantos.com +alexandreleclercq.com +alexandria.chat +alexandria.codes +alexandria.fund +alexanozkz.website +alexayers.com +alexbeaudet.com +alexblogs.net +alexbox.online +alexbrola.com +alexbrowne.info +alexcampbell.xyz +alexcline.us +alexcowan.net +alexdarrell.info +alexdrivers00.ru +alexdrivers2013.ru +alexecristina.com +alexeymalyamov.ru +alexforseth.com +alexhero.com +alexhorton.ru +alexis4d.xyz +alexisfawx.best +alexpeattie.com +alexrengel.net +alexri.icu +alexsolutins.site +alextech-sweetbriar.com +alexwn.us +alfa-memes.shop +alfa-romeo.cf +alfa-romeo.ga +alfa-romeo.gq +alfa-romeo.ml +alfa.papa.wollomail.top +alfa.tricks.pw +alfadesignweb.com +alfaex.net +alfaex.org +alfaglobalholding.com +alfailaq.store +alfamailr.org +alfaomega24.ru +alfapaper.ru +alfaprim.ru +alfaromeo.igg.biz +alfaromeo147.cf +alfaromeo147.gq +alfaromeo147.ml +alfaromeo147.tk +alfasigma.spithamail.top +alfasolutions.ru +alfastras.info +alfbet.xyz +alfcare.com +alfonsodg.info +alfra.ltd +alfredosandor.com +alfredotv.club +alfredsungperfumes.com +alfurjandubai.net +alfurqan.ru +alga.co.pl +algaepanel.com +algaetec.asia +algarve-direkt.nl +algary.xyz +alge528.ga +algeco-rus.ru +algeria-nedv.ru +algerie-culture.com +algicidal.info +algobot.one +algobot.org +algranut.cf +algranut.ga +algranut.gq +algranut.tk +alhadattv.com +alhalfpricelistings.com +alhamadealmeria.com +alhashareslectronics.com +alhemyaria.news +alhzfw.us +ali-baba.info +aliagaberrakemlak.com +alianza-editores.com +aliases.tk +aliasnetworks.info +aliaswave.com +aliaswe.us +alibaba.cd +alibaba4india.online +alibabor.com +alibestdeal.com +alibirelax.ru +aliblue.top +alic.info +aliceenjoy.com +alicefern.com +alicemchard.com +aliciaflynn.buzz +aliciaspas.info +alidioa.tk +alidog.ru +aliebright.com +aliefeince.com +aliemli.site +alienadmiral.com +aliens.onl +alienware13.com +aliex.co +alif.co.pl +alifdz.com +alifestyle.ru +aligamel.com +alight.mobi +aligmli.site +alignyourtechchakras.com +aligreen.top +alihanlab.com +alihkan.com +aliiphone.com +aliito.icu +alijben.space +alike-position.xyz +alilafe.icu +alilo.toys +alilomalyshariki.ru +alilyaflix.site +alimail.bid +alimainemail.cf +alimainemail.gq +alimainemail.ml +alimentarydesign.com +alimentivzisk.xyz +alimli13.site +alimli14.site +alimli15.site +alimli2.site +alimli20.site +alimli3.site +alimunjaya.xyz +alinavits.icu +alindropromo.com +alinehouse.co +alinfotimes.com +alinmis.best +alioka759.vv.cc +aliorbaank.pl +aliquippatirepros.com +alired.top +alishafield.buzz +aliskebabandpizzahouse.com +alisoftued.com +alisonebright.com +alisongamel.com +alisonsheffieldinteriors.com +alissahouse.co +alistantravellinert.com +alisverisistan.net +alitaj.com +alitsecure.site +alittle.website +alivance.com +aliveinlosangeles.com +alivemail.cf +alivemail.ga +alivemail.gq +alivemail.ml +alivemail.tk +alivewe.us +alivi8.net +aliwegwpvd.ga +aliwegwpvd.gq +aliwegwpvd.ml +aliwegwpvd.tk +aliwhite.top +aliyandex.ru +aliyubillionsblog.com +aliyummail.cf +aliyunmm.cn +alizof.com +aljoyce.com +alk44.icu +alkalinewaterus.com +alkila-lo.com +alkila-lo.net +alkoholeupominki.pl +alkoprost-lucshy.ru +alky.co.pl +all-about-cars.co.tv +all-about-health-and-wellness.com +all-cats.ru +all-inclusive-holiday.com +all-knowledge.ru +all-mail.net +all-starninjas.info +all-starninjas.net +all-starninjas.org +all-store24.ru +all2day.info +all4engineering.com +all4mail.cn.pn +all4me.info +all4oneseo.com +all4piping.com +allaboutebay2012.com +allaboutemarketing.info +allaboutlabyrinths.com +allaccesstixx.net +allaccesswe.us +allacontractors.com +alladyn.unixstorm.org +allaelectric.com +allairjordanoutlet.us +allairmaxsaleoutlet.us +allamericanmiss.com +allamericanwe.us +allanimal.ru +allanjosephbatac.com +allapparel.biz +allardprize.com +allaroundwe.us +allartworld.com +allbags.biz +allbest-games.ru +allbest.site +allbest4u.ru +allbet3vip.com +allbet698.com +allbetauto.com +allbetvip.com +allbitcoinjobs.com +allblogs.com +allboutiques.com +allcalhomes.com +allcards.su +allchart.ru +allchristianlouboutinshoesusa.us +allclass.club +allclown.com +allcodecenter.com +allcures.info +alldao.org +alldavirdaresinithesjy.com +allday247.ru +alldc.website +alldelhiescort.com +alldirectbuy.com +alldiscount.icu +alldude.site +allegiancewe.us +allegr.ru +allegrowe.us +allemailyou.com +allemaling.com +allemojikeyboard.com +allen.nom.za +allengrangearms.com +allennannie.com +allenpeiffer.com +allenrichter.com +allenrothclosetorganizer.com +allergibruger.website +allerguxfpoq.com +allergybuddyapp.com +allergypeanut.com +allergytalk.net +allesgutezumgeburtstag.info +allesoprood.com +allesoverwebshops.shop +allesoverwebwinkels.shop +allev.net +alleviam.asia +alleviam.org +allevium.org +allfactory.com +allfamus.com +allfolk.ru +allfordfocus.biz +allforeign.boutique +allforeignboutique.com +allfreer.site +allfregwe.ga +allfrree.xyz +allg00d.com +allgaiermogensen.com +allgamemods.name +allgolfhats.com +allgoodwe.us +allgreatshop.xyz +allhomesincharlotte.net +allhostguide.com +allhoz.ru +alliance-writing.com +alliance-writings.club +alliancewe.us +alliedfullmovie.info +alliehenner.com +alliesassured.com +alliescoin.net +alliescoin.org +alliescoins.com +allincludedpuntacana.com +allinclusivesandiegowedding.com +allinonewe.us +allirelandcarrentals.com +alliscasual.org.ua +allisonrolish.com +allitevglu.site +allkemerovo.ru +allkitchenrecipe.com +allmails.site +allmarkshare.info +allminsk.info +allmmogames.com +allmp3stars.com +allmtr.com +allmyemployees.net +allnationsuniversity.org +allneedscomputers.com +allnet.org +allnewsblog.ru +allnewsblogs.ru +allnightnews.ru +allo-tv.ru +allofthem.net +allofthesepeople.com +alloggia.de +allogrkudc.space +allonthego.info +allopurinolonline.info +allortech.online +alloutwe.us +allowbuil.icu +allowdram.xyz +allowed.org +allowene.buzz +allowglov.site +allowhea.recipes +allowwidt.email +alloygirl.com +alloyquest.com +alloywe.us +allpaydayloans.info +allpdfmanuales.xyz +allpetsupply.biz +allpickuplines.info +allpk.ru +allpro.plumbing +allprohandyman618-0440.com +allprolert.tk +allpronetve.ml +allprosto.icu +allprowe.us +allquestionsolve.com +allresae.site +allretrojordans.com +allroundawesome.com +allroundnews.com +allseasonswe.us +allserch.net +allslickdeals.com +allsnap.app +allsoftreviews.com +allsoftwareservices.com +allsolenoids.com +allsportsinc.net +allstar-brisbane-orthodontist.com +allstardaytours.com +allstarload.monster +allstarshowstopperrs.com +allstartop.xyz +allstarwe.us +allsuperinfo.com +alltagstipps.site +alltempmail.com +allthatnow.com +allthegoodnamesaretaken.org +allthemuchiz.icu +allthetexts.com +allthetimeyoudisappear.com +alltheweights.top +allthewp.com +allthingsbloodpressure.com +allthingsprogress.com +allthingswoodworking.com +alltopmail.com +alltopmovies.biz +alltrozmail.club +allukschools.com +allurewe.us +allute.com +allviant.com +allviant.net +allvoipphoneok.com +allwatch-shop.icu +allwynrefunds.com +ally-fun.com +ally.co.pl +ally.icu +allyourcheats.com +allyournerd.us +allyours.xyz +alma3bet360.xyz +almada-group.net +almail.com +almail.xyz +almajedy.com +almanabo.icu +almanara.info +almasbet606.xyz +almascapitalparnters.com +almathemes.info +almazkeys.ru +almazkrest.ru +alme.co.pl +almikoorfih.xyz +almondcosmetic.com +almondwe.us +almoner.xyz +almostic.ru +almovie.info +almresort-nassfeld.info +almubaroktigaraksa.com +alneboklima.com +alnewcar.co.uk +alnieser.cf +alnyus.com +aloceplira.com +aloceplira.net +aloemie.com +aloeverachat.com +aloftventure.com +alogon.net +alohaball.org +alohagroup808.com +alohagroup808.net +alohaziom.pl +alohomora.biz +aloimail.com +alonbog.cf +alonbog.ga +alonbog.ml +alonbog.tk +alonetry.com +alonto.cf +alonto.ga +alonto.gq +alonto.ml +alonto.tk +alonzo1121.club +alonzos-end-of-career.online +aloofdress.email +alooffig.xyz +alooffigh.xyz +aloofivo.email +alooflem.xyz +aloofpo.xyz +aloofpou.xyz +aloofpoun.xyz +aloofweed.us +aloowi.com +alormbf88nd.cf +alormbf88nd.ga +alormbf88nd.gq +alormbf88nd.ml +alormbf88nd.tk +aloshahreketab.org +alosttexan.com +alouettethedragon.com +aloutas.cf +aloveplus.xyz +alovobasweer.co.tv +alovsur.cf +alovsur.ga +alovsur.gq +alovsur.tk +alpabuild.ru +alpacaburger.com +alpaltan.com +alpechino.com +alper2500vp.ga +alper2500vp.tk +alperkarayama.com +alperoc.ga +alperoc.tk +alperyayinde.ml +alperyayinde.tk +alpfabetart.icu +alph.wtf +alpha-jewelry.com +alpha-lamp.ru +alpha-p2.ru +alpha-pack.ru +alpha-web.net +alpha.uniform.livemailbox.top +alpha1property.com +alpha3solar.com +alphabooster.com +alphacare4you.site +alphacodeincubate.club +alphaconquista.com +alphadefensegear2.com +alphadelivered.online +alphadev.online +alphafrau.de +alphageekbrewing.com +alphaluxmusclenow.com +alphanaltan.com +alphaneutron.com +alphaomegawe.us +alphaphalpha74.com +alphaprint56.ru +alphard.works +alpharecipes.com +alphatech.llc +alphatechusainc.us +alphaupsilon.thefreemail.top +alphavid.net +alphaxboost.club +alphonsebathrick.com +alpicley.ga +alpicley.gq +alpicley.tk +alpinecave.com +alpinesg.info +alpinewe.us +alplann.shop +alpnames.xyz +alpoindexter.org +alptoker.com +alqeeat.org +alqiblah.net +alqy5wctzmjjzbeeb7s.cf +alqy5wctzmjjzbeeb7s.ga +alqy5wctzmjjzbeeb7s.gq +alqy5wctzmjjzbeeb7s.ml +alqy5wctzmjjzbeeb7s.tk +alr0.icu +alrabee3.org +alraej.net +alreadypurchase.com +alreadyselected1.com +alreemabudhabi.com +alreemisland.org +alrmail.com +alsadeqoun.com +alsaimli.site +alseginy.com +alsfw5.bee.pl +alsheim.no-ip.org +alsirajalmonir.org +alsisa.cf +alsisa.ga +alsisa.gq +alsisa.ml +alsisa.tk +alsjegeloofd.com +alsoget.com +alsosearch.network +alt.one +alt04i.us +alta-klinik.com +altadefinizione.download +altadefinizione01.buzz +altadviser.com +altairwe.us +altamontespringspools.com +altcoinadvantage.org +altdesign.info +altecused.com +altehandys.online +alter.capital +alteredrhythm.com +alterego.life +alterity.xyz +altern.biz +alternate-universe.online +alternatetomattermark.com +alternatetoprospectify.com +alternatetounomy.com +alternatifsbobet.link +alternativa-ug.ru +alternativedemocratfacts.com +alternativeforminoxidil.com +alternativepropertybuyers.net +alternativeto.online +alternativetoclearbit.com +alternativetodatanyze.com +alternativetominoxidil.com +alternativetoprospectify.com +alternativetounomy.com +alternatormc.com +alternavox.net +alterthemood.com +although-soft-sharp-nothing.xyz +althwho.shop +alti-gor.icu +alti2ude.com +altinbasaknesriyat.com +altincasino.club +altincasino.xyz +altincasino11.com +altincasino13.com +altincasino14.com +altincasino33.com +altinciayak.com +altinkumpropertysales.com +altis-uspeh.ru +altitudecdn.net +altitudewe.us +altmails.com +altnewshindi.com +altoonachampssportsgrill.com +altoris.pl +altostima.com +altred.site +altrmed.ru +altromaliv.gq +altrucommunity.com +alttc.ru +altuswe.us +altwebshop.com +altwow.ru +altxiv.com +altxxx.fun +altxxx.site +altynkazyna.kg +aluboats.com +alufelgenprs.de +aluloronse.icu +aluminiumboten.com +aluminiumjon.com +aluminumbrush.us +aluminumbrushes.org +aluminumbrushes.us +alumix.cf +alumni.com +alumnimp3.xyz +alumnioffer.com +alunord.com +alunord.pl +aluppriv.cf +aluppriv.gq +aluppriv.ml +aluumi.com +aluzzi.com +alvasegyetem.shop +alvechurchacousticroots.com +alvemi.cf +alvemi.ga +alvemi.gq +alvemi.ml +alvemi.tk +alvinje.cf +alvinje.ga +alvinje.ml +alvinneo.com +alvinsi.com +alvob5.info +alwaqtnews.com +always-dependable.com +always-open.app +alwernia.co.pl +alwise.site +alx69.space +alyamanal3raby.org +alykpa.biz.st +alyscha.online +alyssa.allie.wollomail.top +alytics.info +alzheimerslibrary.com +alzheimersmemoryloss.com +am-am.su +am-dv.ru +am-koleso.icu +am-static.net +am-static.org +am-usercontent.net +am263.space +am2g.com +am55d.com +am55e.com +am55f.com +am55j.com +am55n.com +am55o.com +am55p.com +am55s.com +am55v.com +am631.site +am66b.com +am66c.com +am66e.com +am66g.com +am66h.com +am66k.com +am66o.com +am66p.com +am66r.com +am66w.com +am66z.com +am990-theanswer.com +am99k.com +am99n.com +am99o.com +am99r.com +am99t.com +am99u.com +am99w.com +ama-trade.de +ama-trans.de +amadaferig.org +amadamus.com +amadeuswe.us +amail.club +amail.com +amail.gq +amail.men +amail1.com +amail3.com +amail4.me +amaill.ml +amailr.net +amajority.icu +amal55.link +amalur.icu +amandhibuclivid.com +amanj.krd +amantapkun.com +amanual.site +amapp01.com +amaracruises.com +amarandnikita.com +amarilloquote.com +amark-carpet-cleaning.com +amarkbo.com +amasyaeotegitimi.xyz +amasyamucerentacar.xyz +amatblog.eu +amateur.monster +amateur69.info +amateurbondagesex.com +amateurflixx.com +amateurolympia.ru +amateursonly.net +amateurspot.net +amatriceporno.eu +amav.ro +amayil.com +amazing-games-fire.com +amazingapplicationsshow.com +amazingbagsuk.info +amazingbenefitsofapplecidervinegar.com +amazingchristmasgiftideas.com +amazingclothingandgifts.com +amazingdomain.name +amazingdomaindeals.com +amazingemailsforyou.tk +amazinghandbagsoutlet.info +amazinghotelratescalifornia.com +amazinghotelratesmexico.com +amazinglifequotes.com +amazinglowprices.com +amazingpractice.net +amazingrem.uni.me +amazingself.net +amazon-aws.org +amazon-black-friday99.ru +amazon-blackfriday.host +amazon-travel.info +amazon.coms.hk +amazonbitcoin.net +amazonianseller.com +amazonomat.com +amazonsellers.legal +amazonshopbuy.com +amazonshopcash.com +amazonshopsite.com +amazonshopsource.com +amazonshopzen.com +amazonwilderness.com +ambalajciambalaj.com +ambalajciambalaj.xyz +ambaritaputra.info +ambassadedenhaag.com +ambassadorwe.us +ambaththoor.com +amberlogy.com +amberofoka.org +amberpetsupplies.com +amberwe.us +ambiancewe.us +ambilqq.com +ambimbo.xyz +ambitiouswe.us +ambwd.com +amconcept.xyz +amdxgybwyy.pl +ameba.us +amecve.cf +amecve.ga +amecve.gq +amecve.tk +amedia.life +amelabs.com +ameli-fr.club +ameliachoi.com +ameliariver.club +amelimoncompte.info +amellux.com +amentionq.com +ameraldmail.com +america-sp.com.br +americaaa316.xyz +americaatthemoviesafi.com +americacoverage.fun +americacoverage.live +americacoverage.site +americacoverage.world +americacoverage.xyz +americahomecare.net +americajin.com +americamoviesafi.com +american-closeouts.com +american-image.com +americanadvertisingawards.org +americanassociationofnaturalremedies.com +americanawe.us +americanbags.us +americancryptonetwork.com +americandistributionco.net +americanelectricsolutionsaz.com +americanevolution.online +americanheroescarlisle.com +americanhm.com +americanimportstore.com +americanlibrarieslive.com +americanlibrarieslive.net +americanroofer.xyz +americansolarquotes.com +americansummerluxuries.com +americansystemnetwork.com +americanwealthgap2019.com +americanwindowsglassrepair.com +americasbestwe.us +americasmorningnews.mobi +americaswe.us +amerikanbuyutucu.online +amerikanbuyutucu.xyz +amesamed.shop +amesbulletinboard.com +amex-online.ga +amex-online.gq +amex-online.ml +amex-online.tk +amexjewel.fun +amexyedekparca.com +ameyatravel.info +ameyprice.com +amfm.de +amfmachine.com +amg-private-lounge.org +amg-recycle.com +amgprivatelounge.org +amgprivateloungeromania.org +amguki.cf +amguki.ga +amguki.gq +amguki.tk +amhar.asia +amharem.katowice.pl +amharow.cieszyn.pl +amicuswe.us +amid.co.pl +amidevous.tk +amiga-life.ru +amigosdofuturo.website +amigoshosts.com +amigowe.us +amigurumilove.website +amigurumipatterns.website +amiksingh.com +amilegit.com +amililb.net +amimail.com +amimu.com +amin.co.pl +amin.consulting +amineoffice.com +aminois.ga +aminoprimereview.info +aminudin.me +amiramov.ru +amiri.net +amirig.info +amirig.net +amirig.tech +amiriindustries.com +amitraj.net +amitywe.us +amkursk.ru +aml5egjiu8af.xyz +amlodipin.website +amlopedia.com +amman.site +ammazzatempo.com +ammnbabdbeguw.online +ammolite.biz +ammosummit.com +amnicdvuu.space +amnioclepsis.best +amogan.ga +amogan.ml +amokqidwvb630.ga +amoksystems.com +amongusshirt.site +amor-clab.icu +amoran.icu +amornino.com +amourafrique-mali.org +amourafrique.org +amovies.in +amoxilonlineatonce.com +ampasinc.com +amphynode.com +ampicillin.website +ampicillinpills.net +ampivory.com +ample.run +ampleglov.xyz +ampleid.fun +amplewallet.com +amplewe.us +amplifiedwe.us +amplifywe.us +ampoules-economie-energie.fr +amprb.com +amproced.cf +amproced.gq +amproced.ml +amproced.tk +ampsylike.com +ampuleqbxr.space +amrous.ga +ams-australia.com +amsalebridesmaid.com +amsellemgourmet.com +amseller.ru +amsengineering.app +amsgkmzvhc6.cf +amsgkmzvhc6.ga +amsgkmzvhc6.gq +amsgkmzvhc6.tk +amsignsonline.com +amsoilblog.com +amsspecialist.com +amsterdamblog.com +amsterdamhotelsmotels.info +amsterdamsmut.com +amstratdata.com +amt3security.com +amteyss1.club +amthuc24.net +amthucvietnam.info +amthucvn.net +amtibiff.cf +amtibiff.gq +amtibiff.ml +amtibiff.tk +amtmsg.site +amttesting.com +amule.cf +amule.ga +amule.gq +amule.ml +amulet149.ru +amuletee.website +amuletph.icu +amunglas.ml +amunra4.com +amunra5.com +amunra6.com +amusedr.icu +amuseid.icu +amusestal.icu +amusewre.xyz +amwaybitva.ru +amxj1122.com +amxj5588.com +amyalysonfans.com +amyhref.com +amyhzr1314520.com +amyl112.app +amymary.us +amyotonic.info +amysdirect.com +amysink.com +amytcon.cf +amytcon.ga +amytcon.gq +amytcon.ml +amytcon.tk +amyxrolest.com +amz-aws.host +amz-psd2.info +amz30.ru +amz5913.com +amzclub.club +an-it-oxygenconcentrators-ok.live +an-it-tu-new-car-ok.live +an-it-tu-new-car-ok.livecvdsale.top +an-uong.net +an.id.au +an0n.host +an78xx.us +ana555.com +anabethonline.xyz +anabolicscreworiginal.com +anabordas.info +anacliri.tk +anacoms.com +anacronym.info +anaddo.ga +anaddo.ml +anaddo.tk +anadoluhirdavat.xyz +anadyr-airport.ru +anaelisacaetano.com +anafentos.com +anaglyph.xyz +anahad.ong +anahaton.icu +anaheimcocainerehab.com +anaheimhillsoptometrist.com +anaheimnursejobs.com +anaheimopiaterehab.com +anaheimquote.com +anakavi.net +anakayam99.live +anakharam.online +anakjalanan.ga +anakjembutad.cf +anakjembutad.ga +anakjembutad.gq +anakjembutad.ml +anakjembutad.tk +anal.accesscam.org +anal.com +analabeevers.site +analenfo111.eu +analitics2020.best +analogekameras.com +analogsky.com +analogwe.us +analteredreality.com +analysan.ru +analysisaot.email +analysiswe.us +analyst-omega.info +analyticahq.com +analyticalwe.us +analyticauto.com +analyticsemails.com +analyticsgurus.net +analyticsmasters.org +analyticsmonster.com +analyticsmonster.net +analyticswe.us +analyticswebcontacts.com +analyticwe.us +analyza.org +analyzable857ax.online +anamuremlakofisi.xyz +anamz-oubby-con.monster +ananam2.com +anandimshad.ga +ananno.cf +ananno.ga +ananno.ml +ananno.tk +anansou.com +anapim.cf +anapim.ga +anapim.gq +anapim.ml +anapim.tk +anaploxo.cf +anaploxo.ga +anaploxo.gq +anaploxo.ml +anaploxo.tk +anapoker.website +anappfor.com +anappthat.com +anaptanium.com +anarice.info +anasdet.site +anatjosephtherapy.com +anatolygroup.com +anayelizavalacitycouncil.com +anayikt.cf +anayikt.ga +anayikt.gq +anayikt.ml +anbe.ru +anbinhnet.com +ancesan.shop +ancestralfields.com +ancestryacademy.cloud +anchorageheroinrehab.com +anchoragequote.com +anchorhardik.com +anchorprice.com +anchorteamrealty.com +anchorvalelane.com +anchrisbaton.acmetoy.com +ancientalchemy.org +ancientart.co +ancientcivil.com +ancientwords.mobi +anconadue.it +and-dentalimplants-rad.live +and.celebrities-duels.com +andaluxia.monster +andbest.site +andbitcoins.com +andbwas.icu +ander.us +andersenconsultations.com +andersonfamilysteaks.com +andersonvalley4h.com +andetne.win +andfreekt.ga +andhani.ml +andia.services +andinamotors.co +andirinotel.xyz +andlume.com +andmeatballs.com +andorra-nedv.ru +andreaauerbach.com +andreagilardi.me +andreamatt.biz +andreams.ru +andreasparadise.com +andreatorreano.com +andreay.codes +andreihusanu.ro +andremanzoni.com +andresandina.com +andreshampel.com +andrew-cook.org +andrewbuelow.net +andrewhopkins.buzz +andrewjanus.com +andrewm.art +andrewmurphy.org +andrewongphotography.com +andrewsbridals.info +andrewschess.com +andrewssportconditioning.com +andrewssportsacademy.com +andrewwisor.com +andrey-simki.ru +andreych1.host +andreych2.host +andreych4.host +andreych5.host +andreych7.host +andreymaltsev.info +android-quartet.com +androidcredit.com +androidevolutions.com +androidex.ru +androidfun.website +androidinstagram.org +androidmobile.mobi +androidnulled.club +androidsapps.co +androidsloty.com +androidworld.tw +andromedacrush.com +andromedae.xyz +androotosy.icu +andros-greece.com +andruchef.ru +andry.de +andsee.org +andstoneall.website +andthen.us +andthentheresmaude.com +andwalkintubsok.live +andwandt.shop +andwe.site +andweightlosshelpsok.live +andwl.us +andy1mail.host +andyes.net +andynugraha.net +andysairsoft.com +andywestphotography.com +andyx.com +andyyxc45.biz +aneaproducciones.com +anearbooks.info +anekad42.asia +anekapoker.site +anekaqq.best +aneklok.com +anellomom.ru +anemiom.kobierzyce.pl +anemoku.net +anepear.cf +anepear.gq +anepear.ml +anepear.tk +anesmattress.site +anesthetic12bd.online +anetsai.ru +anette.website +aneuch.info +aneup.site +aneus.club +anew-news.ru +anewangleonlife.com +anewpath.us +anewstabilbettingsnapp.xyz +anfk35df.xyz +anforpost.ru +angeangh.shop +angee.icu +angel-bank.com +angel-cube.icu +angel4djp.com +angel4djp.net +angelabacks.com +angelacorrias.com +angelads.trade +angelamission.com +angelandcurve.com +angelaslatercomposer.com +angelasupport.com +angelawhite.site +angelbees.com +angeldollcompany.com +angeles.live +angeles.team +angeles.tours +angelescity.download +angeli-di-pietra.com +angelicablog.com +angelinthemist.com +angelinway.icu +angeliquecail.com +angelovgabriel.ru +angelpoker.bet +angelpoker.click +angelpoker.ltd +angelpoker88.best +angelpoker88.com +angelpoker99.com +angelsoflahore.com +angerha.xyz +angerhab.icu +angerstall.site +angesti.tech +anggraas.club +anggrasaza.xyz +angi.com +angiad.xyz +angiehomeservices.com +angielski.edu +angielskie.synonimy.com +angioblast.info +angkabursa.org +angkahoki.club +angkajitu.site +angkoair.com +angksoeas.club +angkueastras.club +angleda.icu +angleflin.icu +anglepoise-inc.com +angleprin.recipes +anglesblowers.top +angleseiz.com +angletea.xyz +anglican.xyz +angola-nedv.ru +angoplengop.cf +angriasan.club +angriasfa.xyz +angrityas.club +angry-online.icu +angryalena.com +angrybirdsbabyj.icu +angrybirdsforpc.info +angrypicnic.com +angularcheilitisguide.info +angushof.de +angyonline.online +anhala.com +anhkhung.tk +anhthu.org +anhuiczm.com +anhxyz.ml +ani24.de +anibym.gniezno.pl +anidub.site +anidub.xyz +anikamenon.com +anikasharpe.com +anilbhat.info +anilozturk.tech +animacuratio.ru +animadancegroup.com +animagefromsomewhere.com +animalads.co.uk +animalalliesnj.org +animalbuildingblocks.com +animalextract.com +animalize631xu.online +animalrescueprofessional.com +animalright21.com +animalsneakers.com +animalwallpaper.site +animata.info +animatecss.com +animation-studios.com +animatorzywarszawa.pl +anime365.com +animeappeal.com +animebt.com +animecn.com +animefreakz.xyz +animehasu.net +animeindo.website +animekiksazz.com +animepoc.site +animeru.tv +animes-streaming.xyz +animesos.com +animevector.org +aninameu2endijks.xyz +anindaskor.mobi +anindaskor.website +aningres.ru +aningrop.xyz +aningto.xyz +aniplay.xyz +anisimovcapital.ru +anit.ro +anitadarkvideos.net +anitdatingnew.live +anitoveractivebladderok.live +anitspanishautoinsurancebay.live +anitspanishautoinsurancebig.live +anitspanishautoinsurancebuy.live +anitspanishautoinsurancefed.live +anitspanishautoinsuranceget.live +anitspanishautoinsurancekey.live +anitspanishautoinsurancemax.live +anitspanishautoinsurancenew.live +anitspanishautoinsurancenow.live +anitspanishautoinsuranceone.live +anitspanishautoinsurancerad.live +anitspanishautoinsuranceray.live +anitspanishautoinsurancetab.live +anitspanishautoinsurancetop.live +aniub.com +aniy.site +anjaybgo.com +anjeysatori.com +anjing.cool +anjingkokditolak.cf +anjingkokditolak.ga +anjingkokditolak.gq +anjingkokditolak.ml +anjingkokditolak.tk +ankaclan.com +ankankan.com +ankaotel.info +ankarahaliyikamaciniz.xyz +ankarajen.com +ankarakaraagac.com +ankarakuzey.com +ankarapansiyonlari.com +ankarapazari.xyz +ankarasacsimilasyonu.com +anketka.de +anklefo.email +anklereb.xyz +ankoninc.pw +ankorbeton.icu +ankplacing.com +ankt.de +anliabc.com +anmail.com +anmaya110.com +anmiecon.ga +anmiecon.gq +anmiecon.ml +anmiecon.tk +anmlvapors.com +ann-estetyka.biz +ann-tiessweetthings.com +anna-tut.ru +annabless.co.cc +annaclingan.com +annafathir.cf +annalusi.cf +annamike.org +annanakal.ga +annanasliarmut.cf +annanasliarmut.ga +annanasliarmut.tk +annaninorekesi.ml +annapayday.net +annarahimah.ml +annasblog.info +annatravels.ru +annavarikova.ru +annavasina-teacher.ru +annawaschke.com +annazahra.cf +anneholdenlcsw.com +anneomeara.com +annesdiary.com +annetteturow.com +annhandelman.com +annidh.site +annie-apps.com +anniesdorsetkitchencomv.com +anniversaryblog.com +anniversarygiftideasnow.com +annmariewilke.com +anno90.nl +annoallestero.info +annoncegratuiteenligne.com +annoncegratuiteliens.com +annonspriser.se +annoor.us +annother-snowstorm.info +annraya.org +annuaire-ebook.xyz +annuaire-referencement.info +annuaire-seotons.com +annuaire.casa +annualcred8treport.com +annuale.best +annualgatheringint.org +annuityassistance.com +annwilde.com +ano-mail.net +anocinpackpainv1.site +anocinpackpainv2.site +anocor.ga +anocor.gq +anocor.ml +anocor.tk +anodizing781jd.xyz +anogarmoniya.ru +anogenics.info +anom.xyz +anomail.club +anomail.com +anomail.us +anon-mail.de +anon.leemail.me +anon.subdavis.com +anonbox.net +anonemailbox.com +anonib.su +anoniemgesprek.online +anonimous-email.bid +anonimousemail.bid +anonimousemail.trade +anonimousemail.win +anonmail.top +anonmail.xyz +anonmails.de +anonpop.com +anonsocks.xyz +anontee.com +anonymagic.icu +anonymail.dk +anonymbox.com +anonymize.com +anonymized.org +anonymous-email.net +anonymous-vfx.com +anonymousfeedback.net +anonymoushosting.org +anonymousmail.org +anonymousness.com +anonymousspeech.com +anonymstermail.com +anorexiasupport.net +anorling.com +another-1drivvers.ru +anotherblast2013.com +anotherdomaincyka.tk +anoukmatton.com +anpatoptan.xyz +anperbue.cf +anperbue.ga +anperbue.gq +anperbue.ml +anpolitics.ru +anpost.website +anpravoslavnoe.ru +anprostore.com +anquanyoujian.com +anquestory.com +anrdiasyuas.club +anrofas.cf +anrofas.ga +anrofas.gq +anrofas.ml +ansaldo.cf +ansaldo.ga +ansaldo.gq +ansaldo.ml +ansaldobreda.cf +ansaldobreda.ga +ansaldobreda.gq +ansaldobreda.ml +ansaldobreda.tk +ansatko.cf +ansatko.ga +ansatko.ml +ansatko.tk +ansbanks.ru +anschool.ru +anselme.edu +ansenlg.com +anseolio.cf +anseolio.ga +anseolio.ml +anseolio.tk +anserva.cf +anserva.ga +anserva.gq +anserva.ml +anserva.tk +ansforr.shop +ansgjypcd.pl +ansibleemail.com +ansmh.us +ansoaco.ml +ansoluc.com +anstravel.ru +answer-me.info +answer-question.info +answer-questions.info +answerauto.ru +answers.xyz +answersfortrivia.ml +answersworld.ru +ant-q.net +antabuse.website +antabuse247.video +antakyamadoevi.xyz +antalex7.ru +antalyaescortkizlar.com +antalyaescortlar.site +antalyamasajsalonutr.xyz +antalyamatbaacilari.xyz +antamo.com +antandiante.design +antares-logistic.ru +antarvasna.mobi +antebahis23.com +antegame.com +anteprimaisotta.xyz +anterin.online +antetude.xyz +anteyltd.icu +anthagine.cf +anthagine.ga +anthagine.gq +anthagine.ml +antherdihen.eu +anthologized430ut.online +anthony-junkmail.com +anthonyfrederick.com +anthonyhartley.buzz +anthonyrhodes.buzz +anthroarts.com +anthroarts.net +anthropologycommunity.com +anti-aav.com +anti-p62.com +anti-ronflement.info +anti-staticbrush.net +anti-staticbrush.us +anti-staticbrushes.biz +anti-staticbrushes.net +anti-staticbrushes.org +anti-staticbrushes.us +antiageingsecrets.net +antiaginggames.com +antiagingserumreview.net +antiangular.best +antibioticgeneric.com +anticavetreria.vacations +anticheat.network +antichef.com +antichef.net +antichef.org +antico19.online +antico19.ru +anticonsumer.org +anticrisis78.ru +antidrinker.com +antigua-nedv.ru +antiguabars.com +antiguaguatemala.org +antika-vintage-smycken.se +antikored.xyz +antilles.xyz +antilopa.pro +antimalware360.co.uk +antimbee.xyz +antiminer.website +antipolomka.site +antipremia-js.org +antiquebarberchairs.org +antiquerestorationwork.com +antiquestores.us +antiradar360.ru +antireg.com +antireg.ru +antisemitewatch.org +antisnoringdevicesupdate.com +antispam.de +antispam24.de +antispammail.de +antistaticbrush.biz +antistaticbrush.net +antistaticbrush.us +antistaticbrushes.biz +antistream.cf +antistream.ga +antistream.gq +antistream.ml +antistream.tk +antistress-raskraski.ru +antiterror-orel.ru +antivirus.casa +antiviruswiz.com +antiwrinklehandbook.com +antlerwild.com +antlogic.org +antmine.com +antocha.ru +anton.zone +antoniamail.club +antonietta1818.site +antonija.com +antoniojaydonmercado.com +antoniou-consulting.com +antonlinemarketing.com +antonme.dev +antonveneta.cf +antonveneta.ga +antonveneta.gq +antonveneta.ml +antonveneta.tk +antrustions.site +antsdo.com +antspick.site +anttohelp.pet +anttrafik.com +antuong.asia +antvids.com +antwerp.shopping +antykoncepcjabytom.pl +antylichwa.pl +antywirusyonline.pl +anuan.tk +anuicvqxbvnbuo-ghjj13fggf.buzz +anultrasoundtechnician.com +anunciacos.net +anunturigratis.info +anuong24h.info +anuong360.com +anuonghanoi.net +anurbir.cf +anurbir.ga +anurbir.gq +anurbir.tk +anut7gcs.atm.pl +anversahome.se +anvillondon.net +anvizbiometric.ru +anwintersport.ru +anxietydisorders.biz +anxietyeliminators.com +anxietymeter.com +anxincaifu.xyz +anxiousmonk.com +anxjpv.site +anxmalls.com +any-gsm-network.top +anyagrey.com +anyalias.com +anydata.best +anydtf.site +anyett.com +anyinstalldealtheclicks.icu +anymate.site +anyopoly.com +anyoptionerfahrungen.net +anypen.accountant +anyqx.com +anytimejob.ru +anytube.site +anyunda.us +anyvitaminant.website +anyweightlosshelpok.live +anywhere.pw +anywherebookmarks.com +anywherebusinessbook.com +anyxnxx.fun +anyxxx.fun +anzy.xyz +ao-quadradogaleria.com +ao3wuu.us +ao4ffqty.com +ao5.gallery +aoa852.com +aoahomes.com +aoalelgl64shf.ga +aocdoha.com +aodlewxww.ml +aoeiualk36g.ml +aoeuhtns.com +aogmoney.xyz +aojd-online.com +aokfeo.online +aol.edu +aolimail.com +aolinemail.cf +aolinemail.ga +aoll.com +aolmail.pw +aolo.com +aolopdep.org +aoltimewarner.cf +aoltimewarner.ga +aoltimewarner.gq +aoltimewarner.ml +aoltimewarner.tk +aomejl.pl +aomrock.com +aomvnab.pl +aonbola.biz +aonbola.club +aonbola.org +aonbola.store +aoneie.site +aonezippers.com +aonhom.org +aopconsultants.com +aophong.org +aorecd.online +aorl.com +aorry.live +aoshihczc.com +aosomi.org +aostats.com +aothun.site +aothunnhom.com +aotuchem.com +aotujx.xyz +aotusp.xyz +aouhxtdiq.shop +aow88.com +aowvihrm.shop +aoxlso.site +aoyou1588.com +aoyou1688.com +aoyou8899.com +ap0w.us +ap4ro8.info +ap7wio.us +apachejunctionapartments.com +apadrinalo.com +apagitu.biz.tm +apagitu.chickenkiller.com +apahalal.com +apakahandasiap.com +apalo.tk +apanrai.cf +apanrai.ml +apanrai.tk +aparades.com +aparelhosmedicos.net +apartcombo.ru +apartiko.ru +apartment.supplies +apartmentpropertyinvesting.com +apartments-lela.com +apartmentsdubai.biz +apartmentsforrentlittlerockarkansas.com +apartmentsseattlewashington.com +apartnessljh.site +apartotels.com +apasier.com +apaymail.com +apcd.online +apcleaningjservice.org +apcm29te8vgxwrcqq.cf +apcm29te8vgxwrcqq.ga +apcm29te8vgxwrcqq.gq +apcm29te8vgxwrcqq.ml +apcm29te8vgxwrcqq.tk +apebkxcqxbtk.cf +apebkxcqxbtk.ga +apebkxcqxbtk.gq +apebkxcqxbtk.ml +apel88.com +apelsin-shop.ru +apelsin64.icu +apemail.com +apenpet.ga +apenpet.gq +apenpet.ml +apepic.com +aperal.cf +aperal.ga +aperal.tk +apexhealthandwellness.com +apexize.app +apexwheelrepair.com +apfelkorps.de +apfzdogpi.shop +aphgcocc.shop +aphimonline.com +aphlog.com +aphpresyb.cf +aphpresyb.gq +aphpresyb.ml +aphpresyb.tk +aphroditehalfmarathon.com +aphthic.best +aphydroming.xyz +api-apps.icu +api32.com +apicker.online +apidewa.info +apidiligence.net +apidiligence.org +apidle.cf +apidle.ga +apidle.gq +apidle.tk +apiempat.xyz +apih2h.com +apiland.pl +apilasansor.com +apimail.com +apipulsa.com +apirealty.icu +apis101.us +apivcolon.com +apivin.ru +apk-download.site +apk-download.website +apk-download.xyz +apk1000.com +apk2download.net +apkfun.club +apklitestore.com +apkload.com +apkmd.com +apkmoe.com +apknew.ru +apkshake.com +apksilo.com +apktoel.website +apkujong.tk +aplando.com +aplay-official.website +apleo.com +aplikacje.com +apliquedecabelo.net +aplo.me +aplpy.com +apluskid.org +aplyurl.com +apmp.info +apnalan.site +apnastreet.com +apocztaz.com.pl +apoimail.com +apoimail.net +apokloj.site +apollo-led.ru +apollogpxrk.email +apollon-market.store +apollope.tk +apollosclouds.com +apollossuperstore.com +apophalypse.com +apophoret.xyz +apophtio.cf +apophtio.ga +apophtio.gq +apophtio.tk +apoplectically.best +apoplenyvb.space +apor.site +apostlelife.com +apotekerid.com +apotheke-ed.org +apown.com +apoyrwyr.gq +apozemail.com +app-b-br.online +app-expert.com +app-inc-vol.ml +app-lex-acc.com +app-mailer.com +app0vedi.club +app1e.xyz +app2020feb.site +app826.mobi +appaji.net +appalachianproject.org +appalachiantrailconservancy.org +appboolean.com +appbotbsxddf.com +appc.se +appcrossings.org +appdeliverynetworks.com +appdev.science +appdev47.best +appdollars.com +appealsassasins.com +appeartiu.tk +appendonly.network +appfellas.com +appflow.design +appfund.biz +appgallery.club +appinventor.nl +appitide.com +appixie.com +appjot.com +appl-syn.ru +appl3.cf +appl3.ga +appl3.gq +appl3.ml +appl3.tk +applaudthecause.com +applaudthecause.org +apple-account.app +apple.dnsabr.com +appleaccount.app +appleblog.com +applecraft.online +appledev.online +appledocks.com +appledress.net +applefaerie.com +applefordparts.com +applegift.xyz +applehotelalor.com +applehotelkl.com +applejftwn.club +applejftwn.host +applejftwn.site +applejftwn.website +applerewards.live +applerobot.info +apples4sale.com +appleservices.online +appleshps.website +applesmokedmeats.com +applet.live +appleton-lettings.com +appletreecabin.com +applewatchoutlet.com +applg.online +appliance-resource.info +applianceremoval.ca +appliancerepairburbank.com +appliancerepairdenver.biz +appliancerepairlancaster.com +appliancesdelivered.com +appliancesshop.futbol +applied-cax.com +appliedinclusion.com +applphone.ru +apply.health +apply4more.com +applyguy.com +applynow0.com +applyremote.online +applyremote.xyz +applyto.study +applytome.com +appmail.top +appmail24.com +appmaillist.com +appmanx1.com +appmarketspy.com +appmingle.com +appmobile-documentneedtoupload.com +appmonitors.com +appmovel.online +appmyboat.online +appnativeco.com +appnfo.com +appnode.xyz +appnowl.ml +appnox.com +appointmentfunnel.com +appointmentone.com +appolicestate.org +apppassionate.com +appreeciate.com +apprendrelepiano.com +apprisens.monster +apprit.live +approvaljmz.email +approve-thankgenerous.com +approvedbydrew-marketing.com +approvedfireextinguishers.com +apprubix.net +apps.dj +apps.eus +appsec.link +appseer.com +apptalker.com +apptelstabl.monster +apptied.com +apptip.net +apptova.com +apptraker.cd +appvention.com +appwatch.icu +apqueasmog.cf +apqueasmog.ga +apqueasmog.ml +apqueasmog.tk +apqw.info +apra.info +apranakikitoto.pw +aprazatos.club +aprender-ingles.app +apreprid.com +aprice.co +apriles.ru +aprilfoolspranks2014.com +aprilmovo.com +aprilyvette.biz +aprimail.com +aprinta.com +aprioridemo.com +aprm-africanunion.org +apro-don.biz +aproangler.com +aprosti.ru +aprutana.ru +apssdc.ml +apster.com +aptaseniorlivingrad.live +aptaseniorlivingray.live +aptaseniorlivingrun.live +aptaweightlosshelpok.live +aptcha.com +aptee.me +apteka-medyczna.waw.pl +aptel.org +aptnumber.com +aptoideforios.website +aptseniorlivingtab.live +aptweightlosshelpok.live +apuns.live +aputmail.com +apuymail.com +apzipo.cf +aq8kvw.us +aqatdl.com +aqazstnvw1v.cf +aqazstnvw1v.ga +aqazstnvw1v.gq +aqazstnvw1v.ml +aqazstnvw1v.tk +aqdmg1.us +aqdyed.com +aqdyei.com +aqdyet.com +aqdyez.com +aqgi0vyb98izymp.cf +aqgi0vyb98izymp.ga +aqgi0vyb98izymp.gq +aqgi0vyb98izymp.ml +aqgi0vyb98izymp.tk +aqjy.site +aqomail.com +aqqit.com +aqqq.icu +aqqty.live +aqrbdc.us +aqrium.ru +aqsiq.biz +aqst.ru +aqua-gold.shop +aqua-therm-stv.ru +aquabliss.info +aquacreek.ru +aquagrazz-ru.online +aquagrazz-ru.ru +aquaguide.ru +aquamarina.app +aquamarina.online +aquanautsdive.com +aquapro.biz +aquapult.ru +aquarians.co.uk +aquashieldroofingcorporate.com +aquastonecoasters.com +aquatherm-koenigsberg.ru +aquavante.com +aquazilla.ca +aquiesqueretaro.com +aquifoliaceae.best +aquilesfaillace.com +aqumail.com +aquog.space +aquoralspray.net +aquyo.xyz +aqw88.com +aqwuvy.site +aqxfzrdv.shop +aqyv0c.us +aqz.us +aqzbodr.com +ar-records.ru +ar.szcdn.pl +ar0dc0qrkla.cf +ar0dc0qrkla.ga +ar0dc0qrkla.gq +ar0dc0qrkla.ml +ar0dc0qrkla.tk +ar2tingyan.com +ar6j5llqj.pl +arab-internet.com +arab-torrents.org +arabdemocracy.info +arabgottalent.net +arabia.net +arabianranchesrent.com +arabiasecret.xyz +arabic-post.net +arabicliquidman.site +arabicpost.org +arabnannies.com +arabshop.biz +arabtabs.com +arabtorrent.org +aracteria.space +arael.tech +araelectrics.com +aragonbet3.com +aragonbet5.com +arahal.online +arahal.ru +arak.ml +arakcarpet.ir +aralor.cf +aralor.gq +aralor.ml +aralor.tk +aramamotor.net +aranelab.com +araniera.net +aranjis.com +arankavto.icu +arantxaalcubierre.com +arapski.website +ararten.ga +ararten.gq +ararten.ml +ararten.tk +arasempire.com +arashkarimzadeh.com +arasj.net +arazpardaz.site +arb4-company.site +arbat5.icu +arbitrajyurist.xyz +arbitrating.best +arblogal.cf +arblogal.ga +arblogal.gq +arblogal.ml +arblogal.tk +arbor-masters.com +arbordigital.com +arburyfoundation.com +arbvc.com +arc-mebel.ru +arcadesatx.com +arcadespecialist.com +arcadiadesigns.site +arcadiafairytales.com +arcanemachine.com +arcanite.com +arcarwea.cf +arcarwea.ga +arcarwea.gq +arcarwea.ml +arcarwea.tk +arcb.site +arcelikservisleri.org +arcelormittal-construction.pl +arch.cd +archaicindustries.buzz +archbotcher.best +archeage-gold.co.uk +archeage-gold.de +archeage-gold.us +archeagegoldshop.com +archerrygames.com +archetypes.cd +archevron.com +archex.pl +architectblog.com +architektwarszawaa.pl +archiveus.best +archivewest.com +arclinea-roma.com +arcmarts.com +arcompus.net +arconatech.com +arconplast.com +arcsig.com +arcticleaf.app +arcticside.com +arctocbhuh.info +arcu.site +ardagokalp.ga +ardagokalp.ml +ardahananadolulisesi.xyz +ardahanvitrin.xyz +ardakaan.tk +ardaninabbasiyim.tk +ardaq.ga +ardaq.ml +ardaq.tk +ardavin.ir +ardengiyim.xyz +ardentyoga.com +ardetoxcenter.com +ardianto.net +ardindental.com +ardona.co +ardor-delight.online +ardudi.cf +ardudi.ga +ardudi.gq +ardudi.ml +ardudi.tk +arduino.hk +are-we-nearly-there.com +area-thinking.de +area327.xyz +areacomms.com +aread.shop +arealzestforlife.com +areannuitiesforme.com +areasevenvision.com +areatoto.us +areatrend.hk +arecaref.shop +arefiev.photo +areltiyan.com +aremania.cf +aremanita.cf +aremop.cf +aremop.ga +aremop.gq +aremop.ml +aremyannuityadvisors.com +arena-sever.ru +arena212.org +arena2betting.org +arenahardware.xyz +arenanike.sk +arenapkr.com +arenda-avtobetononasosa.ru +arenda-s-vykupom.info +arenda-yamoburakrana.ru +arendabatumi24.ru +arendaspec24.ru +arengvillage.com +areole.ru +aresanob.cf +aresanob.ga +aresanob.gq +aresanob.ml +aresanob.tk +aresting.com +areswebstudio.com +areto.ml +arewealone.space +areweightlosshelpok.live +arewethere.fun +arewethere.host +areweupordown.com +arewhich.com +areyouavid.net +areyouhealthy.com +areyouthere.org +arfamed.com +argame.name +argand.nl +argentin-nedv.ru +argentina-foro.com +argentumcore.site +argilette.us +argnt.world +argo-pro.site +argocasino-official.online +argomax.site +argons098.me +argorouting4.com +argot.io +arhalfpricedlistings.com +arhalfpricelistings.com +arhidom39.ru +arhizine.ru +arhshtab.ru +arhx1qkhnsirq.cf +arhx1qkhnsirq.ga +arhx1qkhnsirq.gq +arhx1qkhnsirq.ml +arhx1qkhnsirq.tk +ari5p7.site +aria.engineer +aria7bet.org +ariaa8.live +ariacharge.xyz +ariametin2.site +ariana.keeley.wollomail.top +arianahouse.co +arianbet.info +arianbet.net +arianbet.org +arianbetcas.com +ariasexy.tk +ariaz.jetzt +aribeth.ru +aricen.cf +aricen.ga +aricen.ml +aricen.tk +aricompton.com +aridasarip.ru +ariderclothing.com +arielvalls.com +ariesqq.com +arietesale.site +arifcanv2.ga +arifcanv2.ml +arifcanv2.tk +arifvedassagi.ga +arifvedassagi.ml +arigpol.cf +arigpol.gq +arigpol.ml +arigpol.tk +arimidex.website +arimlog.co.uk +arina.app +arinakliye.xyz +ariproch.ga +ariproch.gq +ariproch.ml +ariproch.tk +arisecreation.com +arisgans.xyz +aristino.co.uk +aristockphoto.com +ariston.ml +aristovamuz.ru +arizona-golf-vacations.com +arizona-nedv.ru +arizona-rp.space +arizonaaddictiontreatment.center +arizonaalcoholdetox.center +arizonaapr.com +arizonabirthinjuryattorneys.com +arizonabirthinjurylawyer.com +arizonablogging.com +arizonadrivingschools.net +arizonamovo.com +arizonaquote.com +arizonaseniorcommunity.com +arizonaspots.com +arizonavalentine.com +arizonavip.com +arjuna-web.ru +ark-hunter.com +arkada-audit.ru +arkafort.app +arkafort.org +arkafortdatacentre.com +arkafortvc.com +arkafortvoiceconsole.com +arkansasbiomechanics.com +arkansasdetox.center +arkansasheroinrehab.com +arkansasloves.com +arkansasopiaterehab.com +arkansasquote.com +arkansasschw.com +arkansasvalentine.com +arkanzas-nedv.ru +arkas.site +arkehr.info +arkhamgame.com +arklfchxs.shop +arknet.tech +arkonnide.cf +arkotronic.pl +arkresponse.email +arkresponse.net +arkresponse.news +arkritepress.com +arktive.com +arlenstepanov35.online +arlinc.org +arlingtoncaraccidentlawyers.com +arlingtonelectricalcontractor.net +arlingtonnursejobs.com +arlingtonopiaterehab.com +arlingtonquote.com +arlingtonrescue.org +arlingtonvillagecourtyard.com +arlowest.net +armabet21.com +armabet22.com +armabet23.com +armabet25.com +armabet29.com +armabet30.com +armada-ekb.ru +armada4d.com +armada4d.net +armadatogel.com +armail.com +armail.in +armandwii.me +armanichasi.ru +armanik.ru +armanstrong.com +armatny.augustow.pl +armbarapparel.com +armcams.com +armedlong4.site +armenik.ru +armiasrodek.pl +armind.com +armirotto.com +armocompany.ru +armonitimes.com +armorbag.com +armorguatemala.com +armormail.net +armormodules.com +armsrueito.website +armss.site +armstrongbuildings.com +armstronglove.net +army-news.online +army.gov +armyan-nedv.ru +armyglossary.com +armylaw.ru +armyofthought.com +armyourself.online +armyspy.com +armystart.ru +arnalan.site +arndzg.site +arno.fi +arnode.com +arnoldohollingermail.org +arnoldwegman.com +arnonidev.com +arnottcapitalbank.com +arnoyengros.se +aro.stargard.pl +arockee.com +aromalovers.shop +aromalovers.store +aromaroomonion.xyz +aromat-best.ru +aromaterapi.club +aromatic31ru.ru +aromatics.store +aron.us +aronbet19.com +aronbet20.com +aronek.cf +aronek.ga +aronek.gq +aronek.ml +aronek.tk +arorle.cf +arorle.ga +arorle.gq +arorle.ml +arormail.com +arowmail.com +arpahosting.com +arpcog.info +arpqgg.us +arqos-co-uk.monster +arquisul.com +arrai.org +arrangeditems.website +arrayofbytes.net +arrels.info +arrendadorazoe.com +arrgenta.icu +arriage.best +arriankorko.com +arristm502g.com +arrivedercisigaretta.com +arriviture.net +arrogcargo.xyz +arroisijewellery.com +arroscience.org +arrowdentalsmile.com +arrowpointinspect.com +arschloch.com +arseente.site +arsena.tk +arsenagotu.cf +arsenal-smtp.net +arsenalsmtp.net +arsenalsmtp.us +arshawteselance.com +arsindo.cloud +arsinh.com +arslongaviajes.com +arss.me +arstudioart.com +art-books-monographs.online +art-coco.com +art-en-ligne.pro +art-hawk.net +art-oboy.ru +artaa316.xyz +artaak.com +artafericirii.net +artaho.net +artamebel.ru +artan.fr +artatrainslondon.com +artatrainstokyo.com +artbellrules.info +artblast.store +artbykiomi.com +artching.com +artdrip.com +arteizle10.com +arteizle3.com +arteizle5.com +arteizle7.com +artelleriet.se +artemisanet.com +artemmel.info +artemshypulya.dns.army +arteol.pl +artex-cream.tech +artexplumbing.com +artgmilos.de +artgostore.com +artheyw.shop +arthobbies.info +arthols.ru +artholst-store.ru +arthrorenov.com +arthurmurrayven.com +arthursbox.com +articlearistrocat.info +articlebase.net +articlebigshot.info +articlechief.info +articlejaw.com +articlemagnate.info +articlemogul.info +articlenag.com +articlenewsflasher.com +articlerose.com +articles4women.com +articlesearchenginemarketing.com +articleslive191.com +articlesmaximizer.com +articlespring.com +articleswebsite.net +articleswiki.com +articletarget.com +articlewicked.com +articlewritingguidelines.info +articula.us +articzone.online +artifact.bet +artificial-center.xyz +artificialbelligerence.com +artificialgrassrecycling.com +artificialintelligence.productions +artificialintelligenceseo.com +artigosusados.xyz +artiidex.space +artikulli.info +artinterpretation.org +artisanbooth.com +artisbokepasia.com +artistgap.com +artistrystrategic.com +artistsfortrauma.com +artlocate.com +artlok.space +artlover.shop +artman-conception.com +artmedinaeyecare.net +artmix.net.pl +artmweb.pl +artnames-contemporaryart.online +artnames-cubism.online +artnames-dadaart.online +artnames-folkart.online +artnames-oil.online +artnames-portraiture.online +artnames-sculpture.online +artnames-surrealism.online +artnet.design +artnetconsignor.com +artnetjobs.com +artnetportfolio.com +artntheory.com +artofboss.com +artofhypnosis.net +artofimagine.com +artofmuse.net +artofmuse.org +artofthehearts.com +artouki.net +artpdfmanuales.xyz +artproduct.org +artprophoto.ru +artquery.info +artresources.website +artrit.info +artroodex.site +artrovex-dealer.ru +artshandsa.info +artswear.store +arttica.com +arttte.com +arturremonty.pl +artvindendogal.com +artvinepress.com +artwerks.com +artwitra.pl +artwomen.club +artykuly-na-temat.pl +artymarket.ru +aruanimeporni20104.cz.cc +arudi.ru +aruguy20103.co.tv +arumail.com +arunachalnews.com +aruqmail.com +arur01.tk +arurgitu.gq +arurimport.ml +arvadalandsurveying.com +arvato-community.de +arvestloanbalanceeraser.com +arw88.com +arwana21.net +arwana21.org +arwanajp.org +arwanatop.com +arwanatop.net +arwashingtonpost.com +aryagate.net +aryangiftshop.com +aryavpn.site +arybebekganteng.cf +arybebekganteng.ga +arybebekganteng.gq +arybebekganteng.ml +arybebekganteng.tk +aryildizcutlery.com +aryirawangrop.online +arylabs.co +aryodjojohadikusumo.com +arypro.tk +arysc.ooo +aryston.xyz +arystonhub.xyz +arzeju.icu +arzplus2.com +arzuhane.net +as-soug.com +as.onlysext.com +as01.cf +as01.ga +as01.gq +as01.ml +as02.ga +as02.gq +as02.ml +as03.cf +as03.ga +as03.gq +as03.ml +as21.club +as48337.com +as8218.net +asa-dea.com +asahi.cf +asahi.ga +asahi.one +asamber.com +asana.biz +asanpay.shop +asanpay.site +asapbox.com +asapp-consultoria.com +asaroad.com +asart53.com +asas1.co.tv +asb-mail.info +asbakpinuh.club +asbdasds.space +asbdsadss.space +asbestosandmold.org +asbestoslawyersguide.com +asbet-game.club +asbetter20.xyz +asbomsk.ru +ascad-pp.ru +ascaz.net +ascendventures.cf +ascensionschool.org +aschenbrandt.net +asclckujx.shop +ascona-discount.com +ascotairporlinks.co.uk +ascotairporltinks.co.uk +ascotairportlinks.co.uk +ascotchauffeurs.co.uk +ascparishad.icu +asculpture.ru +asd323.com +asd3886uklll.com +asd654.uboxi.com +asdadw.com +asdas.xyz +asdascxz-sadasdcx.icu +asdascxz-sadxzcwaasdcx.icu +asdasd.co +asdasd.nl +asdasd.ru +asdasd1231.info +asdasdadshdasd2.ga +asdasdasd5.site +asdasdasd7.site +asdasdasd9.site +asdasdd.com +asdasdfds.com +asdasdweqee.com +asdawqa.com +asdbasnds.space +asdbwegweq.xyz +asdcartones.xyz +asddddmail.org +asdeqwqborex.com +asdewqrf.com +asdf.pl +asdfasd.co +asdfasdf.co +asdfasdfmail.com +asdfasdfmail.net +asdfdonate.com +asdfghmail.com +asdfhired.com +asdfmail.net +asdfmailk.com +asdfnews.org +asdfooff.org +asdfpost.com +asdfsdf.co +asdfsdfjrmail.com +asdfsdfjrmail.net +asdfsearch.com +asdhad12.top +asdhgsad.com +asdjioj31223.info +asdjjrmaikl.com +asdjmail.org +asdkwasasasaa.ce.ms +asdogksd.com +asdooeemail.com +asdooeemail.net +asdqwee213.info +asdqwevfsd.com +asdrxzaa.com +asdsd.co +asdversd.com +asdvewq.com +aseanhgh.com +aseas-asdk.ru +aseewr1tryhtu.co.cc +aseq.com +aserbo.ga +aserbo.gq +aserbo.tk +aserookadion.uni.cc +aserrpp.com +asertol1.co.tv +ases.info +asetbet.online +asewrggerrra.ce.ms +aseyreirtiruyewire.co.tv +aseztakwholesale.com +asf-stroy-71.ru +asfda.site +asfdasd.com +asfedass.uni.me +asfjdjny.cf +asfjdjny.ga +asfjdjny.ml +asfjdjny.tk +asfjhahjs13433.ml +asfjhahjs13433.tk +asfjhahjs23068.ga +asfjhahjs23068.ml +asfjhahjs23068.tk +asfjhahjs57619.ml +asfjhahjs57619.tk +asfjhahjs72541.ml +asfjhahjs72541.tk +asfjhahjs79218.cf +asfjhahjs79218.ga +asfjhahjs79218.ml +asfjhahjs79218.tk +asfjhahjs88928.ml +asfjhahjs88928.tk +asfjhahjs89097.ml +asfjhahjs89097.tk +asfn.cd +asfnnnyt.cf +asfnnnyt.ga +asfnnnyt.ml +asfnnnyt.tk +asfnyn.cf +asfnyn.ga +asfnyn.ml +asfnyn.tk +asgaccse-pt.cf +asgaccse-pt.ga +asgaccse-pt.gq +asgaccse-pt.ml +asgaccse-pt.tk +asgardia-space.tk +asgasgasgasggasg.ga +asgasgasgasggasg.ml +asgasghashashas.cf +asgasghashashas.ga +asgasghashashas.gq +asgasghashashas.ml +asgcxb.icu +asghashasdhasjhashag.ml +asha-dhsh.ru +ashamelejk.club +ashellgame.net +ashevillegivecamp.org +ashfoundation.com +ashiapjamet.com +ashik2in.com +ashina.men +ashiquichats.com +ashishsingla.com +ashleyandrew.com +ashleyfurniturehomestorenorth.com +ashleystoys.com +ashopping.site +ashotmail.com +ashtony.xyz +asi72.ru +asia-me.review +asia-pasifikacces.com +asia.dnsabr.com +asia303.space +asia303.xyz +asiabet66.xyz +asiablog.com +asiafetteratom.website +asiahot.jp +asiame.review +asiamegagroup.com +asian-handicap.org.uk +asian-wife-finder.com +asianbeauty.app +asianbusinesscatalog.com +asianeggdonor.info +asianextremecinema.com +asianflushtips.info +asiangangsta.site +asianmarket.best +asianmeditations.ru +asianpartsmarket.com +asianpkr88.info +asianrelease.website +asiansasians.com +asiantakeout.com +asianyouthchess.com +asiapacificexecutives.org +asiapmail.club +asiapoker303.space +asiaprofiles.com +asiaqq59.xyz +asiaqq7.com +asiaqq8.com +asiaqq9.com +asiarap.usa.cc +asiaunited.blog +asiaunited.cloud +asiaunited.directory +asiaunited.network +asiaunited.online +asiaunited.party +asiaunited.xyz +asiawin77.asia +asics.com +asicshoesmall.com +asicsonshop.org +asicsrunningsale.com +asicsshoes.com +asicsshoes005.com +asicsshoesforsale.com +asicsshoeskutu.com +asicsshoesonsale.com +asicsshoessale.com +asicsshoessite.net +asicsshoesworld.com +asifboot.com +asik2in.biz +asik2in.com +asiki2in.com +asikmainbola.com +asikmainbola.org +asikpoker99.com +asikqq168.net +asikqq168.org +asilgrupotomotiv.xyz +asimplemodule.com +asin2ean.com +asino-luck.net +asino7.fun +asino7.site +asinondemand.com +asinproplus.com +asinspector.org +asio.club +asioncriblomatic.com +asioncriblomatic.live +asisec.cf +asisec.ga +asisec.gq +asisec.ml +asisec.tk +asistx.info +asistx.net +asistx.org +asjfjhtr.cf +asjfjhtr.ga +asjtjkasx36523.ml +asjtjkasx36523.tk +asjtjkasx52382.cf +asjtjkasx52382.ga +asjtjkasx52382.ml +asjtjkasx52382.tk +asjtjkasx78198.ml +asjtjkasx78198.tk +ask-bo.co.uk +ask-mail.com +ask-zuraya.com.au +ask2me.online +askandhire700.info +askantiqueexpert.com +askarturejeki.online +askbam.com +askcasino.ru +askddoor.org +askdigitalgully.com +askfirsthand.net +askfirsthand.org +askhaymond.net +askhaymond.org +askhaymondlaw.info +askhaymondlawfirm.net +askimpromptu.com +askingprice.click +askjennytnow.com +askjob.asia +askjtjk15970.ml +askjtjk15970.tk +askjtjk26334.cf +askjtjk26334.ga +askjtjk26334.tk +askjtjk57172.ml +askjtjk57172.tk +askjtjk88328.cf +askjtjk88328.ga +askjtjk88328.ml +askjtjk88328.tk +askjtjk94934.cf +askjtjk94934.ga +askjtjk94934.ml +askjtjk94934.tk +asklala.com +asklexi.com +askman.tk +askmyfaith.org +askopindo.com +askoqopoiweiwe.online +askot.org +askozy.com +askpirate.com +asktheselfstorageexperts.com +askyouth.com +askyouth.org +asl13.cf +asl13.ga +asl13.gq +asl13.ml +asl13.tk +aslanstore.xyz +aslaugsig.com +aslibayar.com +aslibayar.org +aslldsa.site +asls.ml +asltizffe.ml +asm.snapwet.com +asmagermeyapi.com +asmail.com +asmailproject.info +asmailz1.pl +asmrlib.com +asmryy.xyz +asmwebsitesi.info +asn.services +asndasbds.space +asndassbs.space +asnieceila.xyz +asnpk88.org +asobin.ga +asobin.gq +asoes.tk +asofinder.com +asokevli.xyz +asokla.cf +asokla.ga +asokla.tk +asonbet.xyz +asoniashop.ru +asooemail.com +asooemail.net +asopenhrs.com +asorent.com +asors.org +asosfr.info +asouses.ru +aspasiamaldives.com +aspavabet.com +aspenclean.net +aspenleitersewandvac.com +aspenshipping.com +aspergeeks.com +asperorotutmail.com +aspfitting.com +asphalt-9-legends.ru +aspinallcars.com +aspiredoge.com +aspiringweb.net +aspiringweb.org +asportsa.ru +asportscoach.app +aspotgmail.org +asri.ie +ass-o-ass.com +ass.bike +ass.llc +ass.pp.ua +assadi.su +assadvi.ga +assadvi.ml +assadvi.tk +assalamualayka.net +assalamualayka.org +assamsales.com +assayplate.com +asseenontvllc.com +assembleareus.info +assertiongame.com +asset-val.com +assetcdn.online +assetcrypto.com +assetfinanceaggregator.com +assetscoin.com +assfire.online +assimiired.space +assimiliate.com +assist-nets-secure.net +assistance-bureautique.com +assistedlivingfacilitesnearme.org +assistedlivingfacilityfinder.org +assistedlivingfacilityinfo.org +assistedlivingfacilitynearme.org +assitance-entreprise.com +assitv.site +assmadness.com +associazionearia.org +assohass.com +assomail.com +assortiekb.ru +asspoo.com +asss.com +assuranceprops.fun +assurances-maladie-fr.com +assurancespourmoi.eu +assureplan.info +assurmail.net +astabbettsnupp2020.xyz +astabetingsnup.xyz +astabetsnup.xyz +astabilbettsnapp.xyz +astabilitybetsnapp.xyz +astaghfirulloh.cf +astaghfirulloh.ga +astaghfirulloh.gq +astaghfirulloh.ml +astalias.host +astalias.us +astanahotels.org +astanca.pl +astar2wishupon.net +astaza.net +asteimmobiliarialert.org +asteraavia.ru +asterhostingg.com +asterialop.site +astermebel.com.pl +asteron.info +astheatbu.cf +astheatbu.ga +astheatbu.gq +astheatbu.ml +astheiss.gr +astibo.com +asticce.gq +astiglass.org +astigmatnedir.net +astigmattedavisi.com +astonut.cf +astonut.ga +astonut.ml +astonut.tk +astonvpshostelx.com +astoredu.com +astoriago.com +astoryending.com +astos.online +astos.space +astraeusairlines.xyz +astral-polet.ru +astralcars.com +astralhotel.net +astramail.ml +astretsovskayaigrushka.ru +astrevoyance.com +astrial.su +astridmyshop.com +astrkkd.org.ua +astro4d.net +astroempires.info +astrofactions.club +astrolexikon.de +astrolix.site +astrolo.ga +astrologiepro.com +astrology.host +astropaynoktasi.com +astropharm.com +astropink.com +astroscardsapp.com +astrosmurfs.cf +astrotogel.net +astrototog.com +astrototoh.com +astrototoi.com +astrowave.ru +astrthelabel.xyz +astutedesignstudio.com +astxixi.com +asu.mx +asu.party +asu.su +asuaia.xyz +asub1.bace.wroclaw.pl +asuctp.info +asukanet.com +asurnamealwayspaystheirbills.com +asus-vivostick.online +aswaqinfodz.com +aswatna-eg.net +asweetuni.ooo +aswertyuifwe.cz.cc +asy1333.com +asyabahis10.com +asyabahis11.com +asyabahis13.com +asyabahis135.com +asyabahis15.com +asyabahis18.com +asyabahis2.com +asyabahis21.com +asyabahis25.com +asyabahis26.com +asyabahis27.com +asyabahis3.com +asyabahis315.com +asyabahis319.com +asyabahis333.com +asyabahis356.com +asyabahis365.com +asyabahis376.com +asyabahis425.com +asyabahis448.com +asyabahis459.com +asyabahis469.com +asyabahis488.com +asyabahis724.com +asyabahis777.com +asyabahis888.com +asyabahis9.com +asyabahisgiris.xyz +asylvan.com +asyncekspert.net +asyncexpert.net +asynchbwls.ru +asyncsoft.com +aszx77.xyz +at-desires-unanderra-i.blue +at-funeral.com +at-leads.ru +at-news3.net +at.hm +at0mik.org +ataaalkhayer.net +atadatat.shop +atakanarisoy.online +atakbahis.net +atakei.icu +atakkitap.net +atalai.tk +atanetorg.org +atansid.cf +atansid.ga +atansid.ml +atansid.tk +atar-dinami.com +atarax.website +atariazteca.com +atariblockchainpartners.com +atarif.ga +atarif.gq +atarif.ml +atarif.tk +atarigamepartners.com +atarinewvcs.com +atarivcs.net +atarivideocomputersystem.com +atasehirsuit.com +atatteve.website +ataudes.online +atbeoffroad.com +atbhatby.shop +atcuxffg.shop +atearl.com +atech5.com +ateculeal.info +atedateh.shop +atefswalgent.tk +ateh.su +ateliebar.com +atelier-generations.be +atelierprojeturbain.com +ateliersprojeturbain.com +atemail.com +ateng.ml +atengtom.cf +atenk99.ml +atenolol.website +atenolol247.video +atfoak.us +atfshminm.pl +atharroi.cf +atharroi.gq +atharroi.ml +atharroi.tk +athebettsnaps.xyz +athenafarm.com +athens-loft.com +athens5.com +athensmaritime.info +athensmaritime.org +athensmusician.org +athensmusician.us +atherea.info +atherea.org +atherogngm.space +athfacrebes.cf +athleticinterests.com +athleticmen.ru +athleticsupplement.xyz +athomeinjacksonhole.info +athomeinjacksonhole.net +athomeinjacksonhole.org +athomewealth.net +atihatim.shop +atiku.website +atimp.com +atimphar.cf +atinvestment.pl +ationalas.icu +atisecuritysystems.us +ativin.ru +atka.info +atkia.com +atkirson.press +atlanta-rv-rentals.com +atlanta4d.com +atlantacocainerehab.com +atlantadaybook.com +atlantafalconsproteamshop.com +atlantagaeldercare.com +atlantagahomes.com +atlantagaragefloor.com +atlantaquote.com +atlantaweb-design.com +atlanticcanada-japan.com +atlanticcanadacruise.com +atlanticmc.shop +atlanticyu.com +atlantisbahis37.com +atlantisbahis48.com +atlantisbahis5.com +atlantisbahis55.com +atlantisbahis6.com +atlantisbahis7.com +atlantisbahis9.com +atlantisbeds.com +atlasbet400.com +atlasbets.com +atlasjams.com +atlastresorts.com +atlaswatersolutions.net +atlcarpentry.com +atleha.africa +atlsportsep.com +atlteknet.com +atm-mi.cf +atm-mi.ga +atm-mi.gq +atm-mi.ml +atm-mi.tk +atmexweb.com +atmosfera-kazan.ru +atmospheremaxhomes.us +atms4z.site +atnalan.site +atneon.space +atnextmail.com +atnight.me +atolyezen.com +atomq.org +atomread.com +atomtoys.ru +atopticus.biz +atourfinest.com +atoverthetopshop.com +atoyot.cf +atoyot.ga +atoyot.gq +atoyot.ml +atoyot.tk +atoz.community +atoz.support +atozbangladesh.com +atozcashsystem.net +atozconference.com +atp-dz.com +atpfinals.ru +atpworldtour-2016.com +atqpq.live +atrais-kredits24.com +atrakcje-nestor.pl +atrakcjedladziecii.pl +atrakcjenaimprezki.pl +atrakcjenawesele.pl +atrakcyjneimprezki.pl +atrezje.radom.pl +atrium.cd +atriushealth.info +atscam.online +atsirtinda.ml +atstifin.cf +atstifin.ga +atstifin.gq +atstifin.tk +atsw.de +att-warner.cf +att-warner.ga +att-warner.gq +att-warner.ml +att-warner.tk +attaber.cf +attaber.ga +attaber.gq +attaber.ml +attaber.tk +attack.icu +attack11.com +attacking.live +attacking.network +attacking.site +attackonfreespeech.com +attackonkingslanding.net +attackonknightslanding.net +attacks.cloud +attacks.email +attacks.life +attacks.live +attacks.news +attacks.social +attake0fffile.ru +attakka.com +attax.site +attckdigital.com +attempt103.com +attemptify.com +attention-message.support +attention.support +attentv.com +atthecentre.com +atticforg.icu +atticst.icu +attnetwork.com +attobas.cf +attobas.gq +attobas.ml +attobas.tk +attop46.xyz +attorney-recruiter.com +attpaygopayment.com +attract-sensitive.xyz +attract-too.xyz +attractdreamlife.com +attractionmarketing.net.nz +attraktiv.nu +atulya.gq +atulyahelp.gq +atunendog.tk +atux.de +atuyutyruti.ce.ms +atvclub.msk.ru +atvdiscplow.com +atwankbe3wcnngp.ga +atwankbe3wcnngp.ml +atwankbe3wcnngp.tk +atwellpublishing.com +atwerpfj.shop +atyone.website +au-tts.ru +au3.support +au462.site +au651.site +au6msx.com +auauau.host +aub6jbkk.xyz +aubootfans.co.uk +aubootfans.com +aubootsoutlet.co.uk +aubreyequine.com +aucenter.info +auchandirekt.pl +auction315.xyz +auctionfrog.org +auctionzones.com +audfuht.ml +audfuht.tk +audi-r8.cf +audi-r8.ga +audi-r8.gq +audi-r8.ml +audi-r8.tk +audi-tt.cf +audi-tt.ga +audi-tt.gq +audi-tt.ml +audi-tt.tk +audi.igg.biz +audill.xyz +audimiramar.com +audio.delivery +audio.now.im +audioalarm.de +audiobookmonster.com +audiobrush.com +audioequipmentstores.info +audiofu.com +audiohi-fi.ru +audioorgasm.net +audios3d.club +audioslim.com +audiossl.stream +audioswitch.info +audipartshub.com +audise.xyz +audit-buhgalteria.ru +auditenvy.org +auditnv.com +audoscale.net +audrey11reveley.ga +audvik.ru +audytwfirmie.pl +auelite.ru +aueriq.icu +auey1wtgcnucwr.cf +auey1wtgcnucwr.ga +auey1wtgcnucwr.gq +auey1wtgcnucwr.ml +auey1wtgcnucwr.tk +augmentai.org +augmentationtechnology.com +augmentin.ru +augmentin875mg.info +augrabiesfallsnationalpark.com +augstusproductions.com +auguridibuonapasqua.info +auguryans.ru +augustmovo.com +augustone.ru +auiiqj.best +aukcionsaitov.ru +aukcionsajtov.ru +auktionsbutler.se +aulaline.com +aumentarpenis.net +aumento-de-mama.es +auntshop.xyz +auoi53la.ga +auoie.com +auolethtgsra.uni.cc +auon.org +aupforrez.shop +aupiurao.xyz +aur0vk.us +auralfix.com +auraliv.com +aurangabadlive.com +auraqq.com +aurawire.com +aurcasino.com +aureliajobs.com +aureliaprime.net +aurelstyle.ru +aures-autoparts.com +auresormi7m002.xyz +aurile.xyz +aurill.xyz +auroombet.fun +auroombet.online +aurora-flare.com +aurora-flares.com +aurora-ru.ru +auroraaddictiontreatment.com +auroraalcoholrehab.com +auroraheroinrehab.com +auroraooo.xyz +aurorapacking.ru +aus.schwarzmail.ga +ausdance.org +ausdocjobs.com +ausdoctors.info +ausgefallen.info +auslaenderberatunge-erfurt.press +auspaccornerstone.com +auspb.com +auspicy.best +aussie.finance +aussie.loan +aussieboat.loan +aussiebulkdiscounting.com +aussiecampertrailer.loan +aussiecampertrailer.loans +aussiecar.loans +aussiecaravan.loan +aussiegroups.com +aussieknives.club +aussielesiure.loans +aussiematureclub.com +aussiepersonal.loan +aussiepersonal.loans +aussiesmut.com +austbikemart.com +austimail.com +austinamazinggaragefloors.com +austinbell.name +austincar.club +austincocainerehab.com +austincohousing.org +austinheroinrehab.com +austinmedicaljobs.com +austinopiaterehab.com +austinquote.com +austinsherman.me +austintexashomebuyers.com +austinveterinarycenter.net +australiaasicsgel.com +australiadirect.xyz +australiamining.xyz +australiandoctorplus.com +australianfinefood.com +australianlegaljobs.com +australianmail.gdn +australianwinenews.com +australiapioneerlida.com +australiasunglassesonline.net +austriayoga.com +austrycastillo.com +auta.host +autaogloszenia.pl +auth.legal +auth.page +authensimilate.com +authentic-guccipurses.com +authenticautograph.net +authenticawakeningadvanced.com +authenticchanelsbags.com +authenticpayments.net +authenticsportsshop.com +authinfomobupdate.xyz +author24.su +authoritycelebrity.com +authorityleadership.com +authorityredirect.com +authorityvip.com +authorize97pn.online +authorizedoffr.com +authorship.com +authortheme.co +authupdate.biz +auti.st +autismbehavioraltherapists.com +autismcarecenternetwork.com +autismcarecentersnearme.com +autismcentermarketingagency.com +autismcenterwebdesign.com +autismcenterwebmarketing.com +autisminfo.com +autismtherapycentersforadults.com +autismtherapycentersnetwork.com +autismtreatmentcentersofamerica.com +autismtreatmentforadults.com +autismtreatmentpractices.com +autisticsociety.info +autlook.com +autlook.es +autluok.com +auto-complete.info +auto-consilidation-settlements.com +auto-correlator.biz +auto-gar.ru +auto-glass-houston.com +auto-lab.com.pl +auto-mobille.com +auto-pay.info +auto-tco.ru +auto-zapchast.info +auto327.xyz +auto37.ru +auto411jobs.xyz +auto417.xyz +autoaa317.xyz +autoadvisorscanada.com +autoairjordanoutlet.us +autobodyspecials.com +autobroker.tv +autobuzz.asia +autocadsymbols.com +autocar.cd +autocardesign.site +autocarinjury.com +autochistka18.ru +autocloud49.xyz +autocoverage.ru +autocpet.ru +autodienstleistungen.de +autodiler.net +autofiber.site +autofinity.pro +autofleetpay.com +autognz.com +autogradka.pl +autograph34.ru +autoguruja.com +autohotline.us +autoimmunedisorderblog.info +autoinsurance-help.zone +autoinsurancesanantonio.xyz +autoknowledge.ru +autolainat.com +autolicious.info +autoloan.org +autoloanhub.online +autoloans.org +autoloans.us +autoloansonline.us +automatedpersonnel.com +automatedsalesfunneltips.xyz +automaticforextrader.info +automationintensive.com +automatizes768jm.online +automechanics.net +automenosa.info +automisely.org +automiselymail.com +automiselymail.info +automiselymail.net +automisly.info +automisly.org +automizeapi.com +automizely.info +automizelymail.info +automizelymail.net +automizelymail.org +automizen.com +automizly.com +automizly.info +automizly.net +automizly.org +automobiledeals.net +automobilerugs.com +automotive-mediaventions.com +automotiveshop.life +automotivesort.com +autonoreste.com +autoodzaraz.com.pl +autoodzaraz.pl +autoonlineairmax.us +autoparts73.ru +autopartsinternational.com +autopdfmanuales.xyz +autopilotcfo.com +autopilotexecutive.com +autopilotintensive.com +autoplusinsurance.world +autopro24.de +autorace.pt +autorepairaustralia.xyz +autorepairtech.press +autorijschoolpoul.com +autorim.org +autorobotica.com +autosace.com +autoscan.info +autosdis.ru +autosearch411.xyz +autosendmail.com +autoshake.ru +autosoars.info +autosouvenir39.ru +autostabilbetsnup.xyz +autostupino.ru +autotalon.info +autotest.ml +autotrackeranalyzer.com +autotropic.site +autotwollow.com +autoums.info +autour-des-auteurs.info +autowb.com +autozestanow.pl +autozine.net +autozoomer.ru +auttt.xyz +autumnfalls.site +autway.agency +auw88.com +auweek.net +auwgo.live +auwinnewphone.site +auxi.auction +auxifyboosting.ga +auxometer.site +auxometer.xyz +auxoqq.com +auzakup979.ru +av-8.buzz +av-ap.pro +av-ap6.pro +av-ap7.pro +av-rent.ru +av.jp +av112.xyz +av113.xyz +av117.club +av117.news +av117.online +av117.video +av119.xyz +av1639.com +av1684.com +av1689.com +av1719.com +av1726.com +av1729.com +av1730.com +av200.xyz +av300.xyz +av303.xyz +av9090.top +av9090.xyz +av9707.com +ava-studio.ru +avaba.ru +avadickinson.buzz +avaiatorpower.com +availablemail.igg.biz +avalancheartisans.com +avalonglobal.in +avalonpregnancycoaching.com +avalop.org +avanafilprime.com +avanamotorsport.com +avanbom.xyz +avangard-kapital.ru +avantageexpress.ca +avantatravel.ru +avantbazaar.com +avantcreditoffer.com +avantgardescientificjournal.xyz +avapardaz9.info +avaphpnet.com +avaphpnet.net +avast.ml +avastinstitut.com +avasts.net +avastyble.com +avatastar.com +avathohouse.co +avatrade.trading +avava.site +avaya.team +avbeafun.ga +avbeafun.gq +avbeafun.ml +avcc.tk +avchina.live +avchina.us +avchoiju.cf +avchoiju.ga +avchoiju.gq +avchoiju.ml +avchoiju.tk +avciseti.xyz +avdspace.com +avelani.com +avelec.ru +avengersfanboygirlongirl.com +avenir-biz.com +avenirshoes.ru +avenpor.com +avenue.careers +avenuesilver.com +avenueway.com +aver.com +averdov.com +averona72.ru +aversale.com +avery.jocelyn.thefreemail.top +averyhart.com +avesorogold.com +avganrmkfd.pl +avglatga.cf +avglatga.ga +avglatga.gq +avglatga.ml +avglatga.tk +avgtm3.best +avhell.ml +avhmq.icu +avhuanle.com +avia-krepe.online +avia-krepo.online +avia-sex.com +avia-tonic.fr +aviabilety-kupit-bilety.ru +aviani.com +aviapartner.media +aviaperetuk.info +aviationlingo.com +aviatorrayban.com +avibrahimkoyuncu.xyz +avicc.website +avidblur.com +avidmanager.net +avidniro.com +avihefub.shop +avikd.tk +avilez.best +avinsurance2018.top +avio.cf +avio.ga +avio.gq +avio.ml +avioaero.cf +avioaero.ga +avioaero.gq +avioaero.ml +avioaero.tk +aviocreditpromocode.com +aviro.com +aviromassociates.com +avisa.blue +avisfarms.com +avishekgyawali.com +avissena.com +avitamedical.info +avito-boxberry.ru +avito-dilivery.ru +avito-office.ru +avito-package.ru +avito-payshops.ru +avito-repayment.online +avito-safe-order.online +avito-safe.online +avito-save.online +avitoguard.online +avitosafe.online +avitoxpress.online +avkdubai.com +avls.pt +avmali.club +avmynv.us +avn7t.us +avnews101.net +avnnews.review +avo-ap.pro +avocadorecipesforyou.com +avofcb.com +avoidyourforeclosuretexas.com +avokhel.ml +avondalefarm.com +avonforlady.ru +avonnychildcare.com +avoori-newsletters.com +avorybonds.com +avosbka.ru +avosdesign.art +avosdesign.org +avozo.us +avp1brunupzs8ipef.cf +avp1brunupzs8ipef.ga +avp1brunupzs8ipef.gq +avp1brunupzs8ipef.ml +avp1brunupzs8ipef.tk +avpai.biz +avpai.info +avpai.live +avpai.org +avpai.video +avr.ze.cx +avr1.org +avrbo.net +avrbo.org +avrora62.ru +avrupabet151.com +avrupabet153.com +avrupabet154.com +avrupabet163.com +avrupabet164.com +avrupabet168.com +avrupabet170.com +avrupalianne.com +avslenjlu.pl +avsofficeconcepts.com +avsow.com +avstria-nedv.ru +avtarhelp.com +avto-ap.pro +avto-details.ru +avto-fakt.ru +avto-klinika.online +avto-op.pro +avto-parts24.ru +avtobalans.ru +avtobym.ru +avtoklimatpro.ru +avtomani.com +avtomatika-stout.ru +avtomationline.net +avtopark.men +avtoproin16.ru +avtoservis-acura.ru +avtoservis-bmvv.ru +avtoservis-cadillac.ru +avtoservis-chrysler.ru +avtoservis-citroen.ru +avtoservis-dodge.ru +avtoservis-fiat.ru +avtoservis-ford.ru +avtoservis-geely.ru +avtoservis-honda.ru +avtoservis-isuzu.ru +avtoservis-jeep.ru +avtoservis-kla.ru +avtoservis-landrover.ru +avtoservis-lexus.ru +avtoservis-mazda.ru +avtoservis-mercedes.ru +avtoservis-opel.ru +avtoservis-peugeot.ru +avtoservis-porsche.ru +avtoservis-rangerover.ru +avtoservis-seat.ru +avtoservis-ssangyong.ru +avtoservis-subaru.ru +avtoservis-suzuki.ru +avtoservis-v-podolske.ru +avtoservisrus.ru +avtoshkolaexpert.ru +avtoshtorka.ru +avtospasatel39.ru +avtosputnik.ru +avtostiker.ru +avtotalon.com +avtovokzal-krasnodar.ru +avtovukup.ru +avtovyshkann.ru +avtt3599.com +avuimkgtbgccejft901.cf +avuimkgtbgccejft901.ga +avuimkgtbgccejft901.gq +avuimkgtbgccejft901.ml +avuimkgtbgccejft901.tk +avukatbul.org +avukatportali.com +avumail.com +avventurepersposati-confirmed.com +avventurepersposati-meet.com +avvmail.com +avvraedu.online +avwang.club +avxdic.us +avxpay.money +avxpay.org +avxrja.com +avya4.com +avyv.email +avz0.net +avz1.net +avz3.net +avzvuk.ru +aw.kikwet.com +aw135.com +aw5u.us +awahal0vk1o7gbyzf0.cf +awahal0vk1o7gbyzf0.ga +awahal0vk1o7gbyzf0.gq +awahal0vk1o7gbyzf0.ml +awahal0vk1o7gbyzf0.tk +awakeningwomenglobal.com +awakmedia.com +awarecro.xyz +awareiv.recipes +awarejune.com +awarenessu.com +awarenj.net +awaresout.xyz +awaretab.icu +awarewri.us +awartisan.com +awatum.de +awca.eu +awchronran.cf +awchronran.ga +awchronran.gq +awchronran.ml +awcon.online +awdrt.com +awdrt.net +awdrt.org +awea.icu +aweather.ru +awebo6688.com +aweh.icu +aweightlossguide.com +awel.icu +awemail.com +aweo.icu +awep.icu +awep.net +aweq.icu +awer.icu +awesome.no +awesome.reviews +awesome4you.ru +awesomebikejp.com +awesomeemail.com +awesomeofferings.com +awesomereviews.com +awesomewellbeing.com +awewallet.com +awex.icu +awez.icu +awiki.org +awionka.info +awkrm1.site +awkwardboxes.com +awloywro.co.cc +awmxcu.site +awngqe4qb3qvuohvuh.cf +awngqe4qb3qvuohvuh.ga +awngqe4qb3qvuohvuh.gq +awngqe4qb3qvuohvuh.ml +awngqe4qb3qvuohvuh.tk +awningdetailers.info +awnns.live +awoiyt.us +awol.best +awol.fun +aworldof17hats.com +aworldofeasier.com +awpernist.cf +awphj3.us +awprofta.cf +awprofta.ga +awprofta.gq +awprofta.ml +awprofta.tk +awrp3laot.cf +aws.creo.site +aws910.com +awsomesoft.com +awsoo.com +awsupplyk.com +awumail.com +awwm.icu +awwsnj.com +ax0c.tel +ax80mail.com +axa-hh.com +axactis.com +axaz.email +axbahis77.com +axbet.live +axbyur.info +axcenze.cloud +axefactoryrun.com +axelsoos.com +axeltigertears.com +axeprim.eu +axeroleplay.com +axerupi.ru +axevolution-sf.net +axexch.com +axgd5m2et5kmwdn.xyz +axham.org +axhamgames.net +axiomasmovie.com +axiomboatworks.com +axiongard.net +axischurchbend.com +axitrader.ph +axiz.digital +axiz.org +axjpvj.com +axkleinfa.com +axmail.com +axman.ru +axmluf8osv0h.cf +axmluf8osv0h.ga +axmluf8osv0h.gq +axmluf8osv0h.ml +axmluf8osv0h.tk +axmodine.tk +axnxx.site +axomcinema.com +axon7zte.com +axsup.net +axt5ub.us +axuwv6wnveqhwilbzer.cf +axuwv6wnveqhwilbzer.ga +axuwv6wnveqhwilbzer.gq +axuwv6wnveqhwilbzer.ml +axuwv6wnveqhwilbzer.tk +axwel.in +axz6ii.us +axzmgl.best +ay33rs.flu.cc +ayabozz.com +ayabt.com +ayakkaoutlet.xyz +ayalamail.men +ayalu.com +ayamaria.net +ayamrempahdosting.com +ayandon.xyz +ayanyalvarado.com +ayberkys.ga +ayberkys.ml +ayberkys.tk +ayblieufuav.cf +ayblieufuav.ga +ayblieufuav.gq +ayblieufuav.ml +ayblieufuav.tk +aycereview.com +aycnep.com +aydinhafriyat.xyz +aydinlila.com +aydinliq.xyz +aydinmoda.xyz +aydinsgold.xyz +ayearinmemes.com +ayecapta.in +aygg888.com +ayimail.com +ayitimizik.org +ayizkufailhjr.cf +ayizkufailhjr.ga +ayizkufailhjr.gq +ayizkufailhjr.ml +ayizkufailhjr.tk +aynacaphe.com +aynbpx.us +aynenknkajsfkn83278.cf +aynenknkajsfkn83278.ga +aynenknkajsfkn83278.ml +aynenknkajsfkn83278.tk +aynenknkasnfk14034.cf +aynginaboys.club +aynnaynnsfkm23829.cf +aynnaynnsfkm23829.tk +ayobsharafinia.ir +ayohave.fun +ayomail.com +ayonae.info +ayopoker.win +ayotech.com +ayrintiyayinlari.net +ayro-music.site +ayron-shirli.ru +aysendemir.com +aytos.ru +ayu.no +ayuawd.com +ayudafacebook.com +ayuh.myvnc.com +ayumail.com +ayurvedablog.com +ayurvedamassagen.de +ayurvedanepal.online +ayurvedayogashram.com +ayurvedicresorts.club +ayurvedmedicines.com +ayyjes.com +ayzah.com +ayzrx1.site +az-mob-go.site +az.com +az.usto.in +az3goods.space +az4wd.com +az8fja.us +azacavesuite.com +azacmail.com +azaddictiontreatmentcenter.com +azamat-farisovich.ru +azanisgroup.com +azart-player.ru +azartplay-casino-official.online +azartplay.space +azazazatashkent.tk +azbooka.fr +azbuka-manikura.ru +azcmpu.us +azcomputerworks.com +azcork.com +azehiaxeech.ru +azel.xyz +azemail.com +azemar.cf +azemar.tk +azentron.com +azer-nedv.ru +azerinannies.com +azerion-one.net +azerion.biz +azerion.info +azerion.net +azerion.org +azerionone.com +azerionone.org +azest.us +azfkbayci.shop +azfvbwa.pl +azh1tq.site +azhirock.com +azhour.fr +aziamail.com +azino-777.vin +azino-i.website +azino1.info +azino7.info +azino7.net +azino7.org +azino777-vip.club +azino7788.ru +azinoobyk777.icu +azipeas.cf +azipeas.ga +azipeas.gq +azipeas.ml +azipeas.tk +azizogludanismanlik.xyz +azjuggalos.com +azjyys.site +azmeil.tk +azmn.info +azmyspace.com +azmziarat.com +aznayra.co.tv +azocoin.com +azomain.xyz +azon-review.com +azooma.ru +azorescarsrental.com +azosmail.com +azote.cf +azote.ga +azote.gq +azpopparitvur.xyz +azpuma.com +azqtbv.info +azra.net +azrooh.ru +azrvdvazg.pl +azsh0j.us +azspartners.ru +azsportsnetwork.net +aztecspecialties.us +azterul.ru +aztrailsapp.org +aztraumacenter.com +azulaomarine.com +azulgold.com +azumail.com +azunyan.net +azure.cloudns.asia +azureexplained.com +azurelend.com +azurny.mazowsze.pl +azwb.site +azxddgvcy.pl +azxhzkohzjwvt6lcx.cf +azxhzkohzjwvt6lcx.ga +azxhzkohzjwvt6lcx.gq +azxhzkohzjwvt6lcx.ml +azxhzkohzjwvt6lcx.tk +azzurro.cf +azzurro.ga +azzurro.gq +azzurro.ml +b-clickp-company.site +b-clicks-company.site +b-conplxaza.online +b-expert.xyz +b-geamuritermopan-p.com +b-geamuritermopane-p.com +b-idp.com +b-preturitermopane-p.com +b-preturitermopane.com +b-response.com +b-sky-b.cf +b-sky-b.ga +b-sky-b.gq +b-sky-b.ml +b-sky-b.tk +b-termopanepreturi-p.com +b-time114.com +b-time117.com +b-ud-s.site +b.cr.cloudns.asia +b.kerl.gq +b.polosburberry.com +b.reed.to +b.royal-syrup.tk +b.smelly.cc +b.yertxenor.tk +b0.nut.cc +b002qxsr.online +b003adkl.online +b004cugm.online +b005nwbl.online +b006ewrb.buzz +b006jftg.club +b007jkkm.club +b008kfni.club +b009aloh.club +b00sting.com +b010keio.club +b010zsmg.buzz +b011wagq.cloud +b012fvao.cloud +b013qxvb.cloud +b014mafv.cloud +b014ohrh.buzz +b015hrda.cloud +b0231e60.xyz +b028rfvv.buzz +b031rapb.best +b032grbd.best +b033wwgw.best +b035oemn.best +b036npuo.monster +b037gmes.monster +b038jnkq.monster +b039syla.monster +b03pg.site +b040ncjr.monster +b042okoy.website +b043nrsq.website +b044lefb.website +b044qhwh.buzz +b045riie.website +b046fesb.uno +b047fchg.uno +b048jkns.uno +b049eppa.uno +b050yryr.uno +b051ykec.site +b052cqix.site +b053lbrq.site +b054pdzc.site +b055mujo.site +b056luvv.fun +b057bf.pl +b058xrhd.fun +b059xxsz.fun +b097hgj.club +b099kkrs.buzz +b0ts7k.us +b101studio.net +b10sk.site +b122vlah.buzz +b123cxai.buzz +b128jxzq.buzz +b12b4d5.club +b182omao.buzz +b183mmsj.buzz +b18dc.xyz +b199woyg.buzz +b1diet.com +b1gmail.epicgamer.org +b1mbt.cloud +b1of96u.com +b1p5xtrngklaukff.cf +b1p5xtrngklaukff.ga +b1p5xtrngklaukff.gq +b1p5xtrngklaukff.tk +b206jotu.buzz +b213zfog.buzz +b228rcek.buzz +b22b80e1.xyz +b24.fan +b247netq.buzz +b248fzdv.buzz +b24api.xyz +b24api03.xyz +b24api1.xyz +b25fh.space +b272nk.site +b29dc.site +b2b-tara.ru +b2b4business.com +b2bmail.bid +b2bmail.download +b2bmail.men +b2bmail.stream +b2bmail.trade +b2bstar.net +b2bx.net +b2chn.com +b2cmail.de +b2csmartshop.com +b2email.win +b2g6anmfxkt2t.cf +b2g6anmfxkt2t.ga +b2g6anmfxkt2t.gq +b2g6anmfxkt2t.ml +b2g6anmfxkt2t.tk +b2y78.us +b301lpdn.buzz +b33xs.space +b363nquh.buzz +b3650010.com +b3651111.com +b3654444.com +b373qbon.buzz +b374fkbz.buzz +b38oa.com +b397myqg.buzz +b3duvn.us +b3ed96a.club +b3nxdx6dhq.cf +b3nxdx6dhq.ga +b3nxdx6dhq.gq +b3nxdx6dhq.ml +b3stup1oad1.xyz +b400ytcc.buzz +b401njxz.buzz +b404rpek.buzz +b437pbws.buzz +b43gxf.online +b43ll6sd.info +b43qgo.best +b45win.biz +b45win.org +b45winlaw.biz +b460jlhp.buzz +b4dr2u.com +b4in.biz +b4je.icu +b4nv.us +b4top.tk +b4umxf.us +b4xfzg.us +b514qgly.buzz +b51wc.space +b536jxzf.buzz +b540zoes.buzz +b554wxyt.buzz +b556ejvu.buzz +b55b56.cf +b55b56.ga +b55b56.gq +b55b56.ml +b55b56.tk +b571qqnl.buzz +b572elzs.buzz +b59da.xyz +b59qph.us +b5gtfghtt.xyz +b5hjwqda.xyz +b5r5wsdr6.pl +b5raj.info +b5safaria.com +b602mq.pl +b619sbls.buzz +b676jojn.buzz +b6o7vt32yz.cf +b6o7vt32yz.ga +b6o7vt32yz.gq +b6o7vt32yz.ml +b6o7vt32yz.tk +b6q31.xyz +b6vscarmen.com +b6xh2n3p7ywli01.cf +b6xh2n3p7ywli01.ga +b6xh2n3p7ywli01.gq +b6xufbtfpqco.cf +b6xufbtfpqco.ga +b6xufbtfpqco.gq +b6xufbtfpqco.ml +b6xufbtfpqco.tk +b6yule.biz +b720skck.buzz +b724jiuu.buzz +b732gitu.buzz +b735jmny.buzz +b738ilrf.buzz +b764agxi.buzz +b7670c87.xyz +b769paka.buzz +b797ifqa.buzz +b799rpts.buzz +b79pv.com +b7ba4ef3a8f6.ga +b7t98zhdrtsckm.ga +b7t98zhdrtsckm.ml +b7t98zhdrtsckm.tk +b824sxal.buzz +b83gritty1eoavex.cf +b83gritty1eoavex.ga +b83gritty1eoavex.gq +b83gritty1eoavex.ml +b83gritty1eoavex.tk +b841wedc.buzz +b8799.com +b88sport.info +b88vc.space +b8acfgimyfbkutr.xyz +b8b5txpjne1uwxhnelk6136.com +b8b7w9mejuzoefz.xyz +b911d.xyz +b9199.com +b95md.com +b96620.xyz +b97ae.site +b98.live +b99sj.com +b9adiv5a1ecqabrpg.cf +b9adiv5a1ecqabrpg.ga +b9adiv5a1ecqabrpg.gq +b9adiv5a1ecqabrpg.ml +b9adiv5a1ecqabrpg.tk +b9cash.club +b9x45v1m.com +b9x45v1m.com.com +ba-ca.com +ba572.site +ba616o8hwee96yl.site +ba62.net +ba971a8.club +baacloud7.com +baaio.tk +baalism.info +baang.co.uk +baannaryu.com +baao8x.com +baartaxis.info +baasdomains.info +baasharj.com +baat.site +bab81.club +babaaruhaz.info +bababox.info +baban.ml +babassu.info +babaterligi.cf +babau.cf +babau.flu.cc +babau.ga +babau.gq +babau.igg.biz +babau.ml +babau.mywire.org +babau.nut.cc +babau.usa.cc +babayigithukuk.xyz +babe-idol.com +babe-store.com +babe-wars.com +babehealth.ru +babei-idol.com +babelsrevenge.com +babesstore.com +babevape.xyz +babezprivate.com +babiczka.az.pl +babimost.co.pl +babinski.info +babirousa.ml +babirusa.info +babiszoni.pl +babiwatch.ru +babknehtpoyas.space +bablo-hoshim.fun +bablukaprimer.space +babmarkapoyas.space +babooncooler.com +babooncoolers.com +babraja.kutno.pl +babroc.az.pl +babrushnikpal.space +babski.az.pl +babssaito.com +babssaito.net +babtisa.com +babwert.online +baby-loaf.name +baby-loaf.us +baby-mat.com +babyb1og.ru +babybaby.info +babybet16.xyz +babycounter.com +babyfriendly.app +babygatesshop.life +babygearshop.life +babyiowa.com +babyk.gq +babykefdsdsd84.online +babylissshoponline.org +babylissstore.com +babyloaf.name +babyloaf.us +babylonish.com +babylonize.com +babymails.com +babymattress.me +babymem.com +babymongoose.info +babymoose.info +babynamelabs.com +babyonlinedress.online +babyqiang.com +babyrezensionen.com +babyro.ru +babyroomdecorations.net +babyrousa.info +babysfavoritepictures.com +babysfavoritetoys.com +babysheets.com +babyshowerandmore.com +babysmartwatchgps.ru +babystaxxx.net +babystuff.icu +babytoysshop.life +babytrainers.info +babyvideoemail.com +babywalker.me +babywalzgutschein.com +babywatches-q360.ru +babyyy.live +bac24.de +baca-cod.com +baca-cof.com +bacaberitabola.com +bacahavalandirma.xyz +bacai70.net +bacapedia.web.id +bacapedia.website +bacarakor.com +bacarakorea.com +baccan.top +baccarates.com +bacchumfnr.space +bacf3e20.xyz +bacfonline.org +bacharg.com +bachelorblog.com +bachelorblogs.com +bachelorette.com +bacheloretteparty.com +bachelorpartyprank.info +bachkhoatoancau.com +bachus-dava.com +bacillsagc.space +back-replace-happy-speech.xyz +back2barack.info +back2bsback.com +backalleybowling.info +backalleydesigns.org +backbone.works +backcorrector.info +backdropcheck.xyz +backeroo.com +backfensu.cf +backfensu.ga +backfensu.ml +backfensu.tk +backflip.cf +backgroundcheck702.xyz +backhardcomp.ml +backhardcomp.tk +backity.com +backlesslady.com +backlesslady.net +backlink.mygbiz.com +backlinkaufbauservice.de +backlinkcity.info +backlinkhorsepower.com +backlinks.we.bs +backlinkscheduler.com +backlinkseo.monster +backlinkservice.me +backlinkskopen.net +backlinksparser.com +backmail.ml +backnopsi.ga +backnopsi.ml +backnopsi.tk +backpack-mam.ru +backpackadore.site +backpackcenter.site +backpackdeals.site +backpackestore.com +backpackserbia.com +backpackshops.site +backpacs.online +backpainadvice.info +backrank.com +backrespsa.cf +backrespsa.gq +backrespsa.ml +backrespsa.tk +backsaveagain.com +backspace.nyc +backtax.us +backthatsiteup.com +backtobasicsbluegrass.com +backtoliferecovery.org +backtoschoolpbc.com +backtownmic.cf +backtownmic.ga +backtownmic.gq +backtownmic.ml +backupbeaver.com +backupbeturway.com +backupblaze.com +backupbuffalo.com +backupcritic.com +backvictimbald.website +backyard-revolution.online +backyardbff.com +backyardduty.com +backyardfood.com +backyardgardenblog.com +bacninhmail.us +bacoem.icu +bacok.org +baconarro.icu +baconflu.site +baconporker.com +baconsoi.tk +baconstor.icu +bacooze.space +bacremedi.ga +bacsinhan.com +bact.site +bacti.org +bacu8x.com +bad4wyoming.com +badabingfor1.com +badaboommail.xyz +badamm.us +badatib.cf +badatib.gq +badatib.ml +badatib.tk +badatorreadorr.com +badboycompacttractor.com +badboygirlpowa.com +badboytractorpartsonline.com +badcreditloans.elang.org +badcreditloanss.co.uk +baddiefunz.com +badebal.com +badger.tel +badgerbrushes.biz +badgerbrushes.net +badgerbrushes.org +badgerbrushes.us +badgerland.eu +badgettingnurdsusa.com +badgo.ru +badgroomer.com +badhus.org +badixort.eu +badkubeh.org +badlion.co.uk +badmili.com +badmintonshop.life +badnewsol.com +badochka.ru +badonz.site +badoo.live +badoop.com +badpotato.tk +badrit.com +badroleplay.ml +badroleplay.tk +badromsrenoveringsodertalje.se +badrooms.online +badrumsrenoveringgavle.se +badsekdev.tk +badtear.buzz +badtransaction.com +badumtssboy.com +badumtxolo.com +badutqiu.website +badutquinza.com +bae-systems.tk +baebaebox.com +baelas.space +baer8x.com +baffin.dev +baffvercba.cf +baffvercba.ga +baffvercba.gq +baffvercba.tk +bafraerisun.xyz +bafrem3456ails.com +bafzci.com +bag-shopper.ru +bag-solo.ru +bag2.ga +bag2.gq +bagam-nedv.ru +bagbackca.cf +bagbackca.ga +bagbackca.gq +bagbot.com +bagcilarhastanesi.xyz +bagcilarinsesi.com +bagcilarinsesi.xyz +bagcloser.net +bagfdgks.com +bagfdgks.net +bagfillers.net +baggerpros.com +bagging.site +baghehonar.art +baghehonar.website +bagivideos.com +bagmommy.ru +bagonsalejp.com +bagoutletjp.com +bagpaclag.com +bagrgallery.ru +bagscheaplvvuitton.com +bagscheaps.org +bagscoachoutleonlinestore.com +bagscup.club +bagsguccisaleukonliness.co.uk +bagshare.com +bagshare.org +bagslouisvuitton2012.com +bagsofficer.info +bagsonline-store.com +bagsops.club +bagsowl.club +bagsray.club +bagsred.club +bagssee.club +bagsshop.futbol +bagsshopjp.com +bagssun.club +bagszap.club +bagto.earth +baguio-cns2.com +bagx.site +bagycyo.website +bahairants.org +bahcespor.info +bahgcondio.ga +bahgcondio.ml +bahgcondio.tk +bahisbaronu.com +bahiscarki.com +bahiscasinoparayatirma.xyz +bahisinkralicesi.com +bahislion1.com +bahislion14.com +bahislion2.com +bahislion22.com +bahislion34.com +bahislive.net +bahisno.bet +bahisno.info +bahisno.mobi +bahisno.site +bahisno.website +bahisno23.com +bahisno27.com +bahisnoadresi.com +bahispub.info +bahispub.org +bahissor.com +bahisstar208.com +bahisstar209.com +bahisstar211.com +bahisstar213.com +bahisstar221.com +bahisstar226.com +bahisstar228.com +bahisstar229.com +bahistek11.com +bahistek23.com +bahistek36.com +bahistek39.com +bahistek40.com +bahistek52.com +bahistek58.com +bahistek86.com +bahistek97.com +bahisturk14.com +bahisturk17.com +bahisturk23.com +bahisturk26.com +bahisturk4.com +bahisturk43.com +bahisturk44.com +bahisturk45.com +bahisturk6.com +bahisturk61.com +bahisturk65.com +bahisturk67.com +bahisturk72.com +bahisturk75.com +bahisturk76.com +bahisturk78.com +bahisturk79.com +bahisturk85.com +bahisturk86.com +bahisturk89.com +bahisturk91.com +bahisturk92.com +bahisturk95.com +bahisturk98.com +bahisturkpanel.com +bahisvegas52.com +bahisvegas55.com +bahisvegas73.com +bahiswin.net +bahisyap102.com +bahisyap107.com +bahisyap112.com +bahisyap119.com +bahisyap120.com +bahisyap123.com +bahisyap125.com +bahisyap127.com +bahisyap130.com +bahisyap138.com +bahisyap144.com +bahisyap150.com +bahisyap51.com +bahisyap54.com +bahisyap56.com +bahisyap58.com +bahisyap59.com +bahisyap60.com +bahisyap62.com +bahisyap67.com +bahisyap69.com +bahisyap71.com +bahisyap73.com +bahisyap75.com +bahisyap80.com +bahisyap84.com +bahisyap85.com +bahisyap92.com +bahisyap95.com +bahisyap98.com +bahrithe.cf +bahrithe.ga +bahrithe.gq +bahrithe.ml +bahrithe.tk +bahsinetv12.com +bahsinetv13.com +bahsinetv14.com +bahsinetv17.com +bai201.com +bai5010.com +baicaicai.com +baicaill.com +baichuan-yl.com +baicmotormyanmar.com +baiconference.com +baidadiy.com +baidarank.com +baidea.com +baidu888com.com +baidubaidu123123.info +baiducloudfile.com +baidulink.xyz +baidulove88.com +baih14.us +baijiacha.club +baikal-21.ru +baikal-autotravel.ru +baikalconsult.ru +bailbondsdirect.com +baileyb.best +baileyfamilydental.us +bailingwiredirect.com +baimena.ga +baimena.gq +baimena.ml +baimoe.com +baineeducation.com +bainesbathrooms.co.uk +baing123.club +bainspuzzle.com +baireselfie.net +baitify.com +baixarlegenda.com +bajabrewingcompany.org +bajardepesoahora.org +bajarpeso24.es +bajathough.cf +bajathough.ga +bajathough.gq +bajathough.tk +bajatyoutube.com +bajery-na-imprezy.pl +bajerydladzieci.pl +bajerynaimprezy.pl +bajyma.ru +bak.la +baka123.com +bakacloud.com +bakagame.com +bakamail.info +bakar.bid +bakaratkeliling.org +bakarina.aa.am +bakarmckennzie.com +bakatool.com +bakawiki.com +bakecakecake.com +bakerai.space +bakersfield.florist +bakersfieldoilandgas.com +bakhaus.ru +bakingandfoodconnections.net +bakingonstone.com +bakkenoil.org +baklsera.site +baknrotuslovi.xyz +bakrotizi.xyz +bala-safa.xyz +balabush.ru +balacar.club +balacavaloldoi.com +balagolfutbal.com +balalaikaguesthomes.com +balanc3r.com +balanceboard.shop +balanced.press +balancedbodypractice.org +balancedcannabis.com +balancehomespot.club +balancer.capital +balanest.com +balansfx.info +balanz.asia +balanz.care +balanz.chat +balanz.church +balanz.coffee +balanz.earth +balanz.energy +balanz.farm +balanz.fund +balanz.health +balanz.homes +balanz.llc +balanz.marketing +balanz.pet +balanz.plus +balanz.properties +balanz.rentals +balanz.social +balanz.support +balanz.team +balatmakine.xyz +balaton.com +balaway.com +balaways.com +balconat.com +balconestowers.com +balcovalisesi.xyz +balderdash.org +baldpuppy.info +baldwinparkapartments.com +baldyahea.cf +baldyahea.ga +balenciagabag.co.uk +balenko.site +balfortmyers.com +balibestresorts.com +balibrewcoffee.com +balijordytour.com +balikesirevdenevenakliyatci.xyz +balikesirgunesplastik.xyz +balikesirlilokman.xyz +balikesirotel.xyz +balimeloveyoulongtime.com +balipropertybuilder.com +balk783ke.online +balkan-club.ru +balkanrrjj.space +ball-religion.xyz +ballaratsteinerprep.in +ballardplumbingfox.com +ballavenue.xyz +ballballict.com +ballballsoft.com +balldiffuser.com +ballmails.xyz +ballman03.ml +ballman05.ml +balloonscappadocia.net +ballrosti.cf +ballrosti.ga +ballrosti.gq +ballrosti.ml +ballsod4u.com +ballsofsteel.net +ballstab.us +ballustra.net.pl +ballysale.com +balon.dev +baloondf.ga +baloqe.xyz +baloszyce-elektroluminescencja-nadpilicki.top +balparmakaricilikakademisi.com +balpha90.xyz +balsameoiw.ru +baltecosalon.ru +baltik-hollyday.ru +baltimore2.freeddns.com +baltimore4.ygto.com +baltimoreairporthotels.com +baltimorechildrensbusinessfair.com +baltimoreheroinrehab.com +baltimoreshowerglass.com +baltmetcom.ru +baltvegas.mobi +balujo.info +bam4x5.host +bamaci.com +bamastangguy.com +bambase.com +bambasmujer.com +bambee.tk +bambibutik.xyz +bambis.cat +bambkroped.cf +bambkroped.ga +bambkroped.gq +bambkroped.tk +bambtastics.online +bambtastics.space +bambuseros.com +bamcall3.com +bamcs2.com +bamcs3.com +bamdal10.com +bamdosi10.com +bamelectronic.store +bamfadmin.com +bamhub02.net +bamhunter.shop +bamminproductions.com +bamsin119.net +bamulatos.net +bamz02.com +bamz03.com +banana18.com +bananabreadrecipes.xyz +bananafarming.net +bananamails.info +bananashakem.com +bananatv.xyz +banatbatouta.com +banateknoloji.com +bancatran.net +banciaoqq59.xyz +banciomoer.com +bancobit.com +bancoopen.com +band-freier.de +bandafgr.tk +bandai.nom.co +bandamn.ru +bandar6.org +bandar66.website +bandarahoki88.com +bandarbolapialadunia.xyz +bandarcolok.info +bandarduniasbobet.com +bandarhk.site +bandarhk.website +bandarindo.casino +bandarisin4d.com +bandarjudiqq.rocks +bandarq.life +bandband1.com +bandcalledmill.com +bandeausyi.ru +bandirmagezgini.com +bandobast.xyz +bandon-cheese.name +bandon-cheese.us +bandon.name +bandoncheese.biz +bandoncheese.name +bandoncheese.us +bandoncoastfoods.biz +bandoncoastfoods.name +bandoncoastfoods.us +bandoneons.info +bandons-cheese.biz +bandons-cheese.us +bandons.name +bandons.us +bandonscheese.name +bandonscheese.us +bandraqq365.life +bandsoap.com +bandtpools.com +bandung4d.info +bandung4d.org +bandvegasy.info +bandwidthalliance.com +bandwidthalliance.net +banetc.com +bangalorearchitects.com +bangalorefoodfete.com +bangaloreinvestments.com +bangers.app +banggiaxecu.net +bangilan.ga +bangilan.ml +bangjudi.com +bangkok-mega.com +bangkok.cash +bangkok9sonoma.com +bangkokls.com +bangladesh-nedv.ru +banglamusic.co +banglanatok.co +bangsa365.xyz +bangsat.in +bangsforbuck.com +bangthagrely.xyz +bangumi.party +bangweuluwetlands.com +bangxxx.site +banhammer.network +banhbeovodich.vn +banhga.cf +banhga.ga +banhga.ml +banikata.ru +banistersdirect.com +banit.club +banit.me +banjarworo.ga +banjarworo.ml +banjarworocity.cf +bank-konstancin.pl +bank-opros1.ru +bank-tinkoff-cabinet.ru +bankaccountexpert.tk +bankcoinreserve.gives +bankcommon.com +bankcreditcardforcredit.xyz +bankermathews.com +bankinginasnap.com +bankingpartneronline.com +bankingresources.xyz +bankings.top +bankionline.info +bankloan-offer.xyz +bankofearth.earth +bankomatt.ru +bankonur.com +bankoutsider.com +bankovskaya-karta-tele2.ru +bankownedfairfieldcountyhomes.com +bankparibas.pl +bankpravo.ru +bankrobbersindicators.com +bankrotbankodin.xyz +bankrotbud.xyz +bankrotfinans.xyz +bankrotomstat.xyz +bankrotorg.xyz +bankrotsdelaem.xyz +bankrotsumma.xyz +bankrotvzim.xyz +bankrtbankkred.xyz +bankrupt1.com +bankruptcycopies.com +banks-review.ru +banks.africa +banksnearme.net +banktex.ml +banletructuyen.website +bannangem.online +bannedpls.online +banner-31.com +banner-41.com +banner-rehabhospitals.org +banner4traffic.com +bannerko.ru +bannerstandpros.com +banofamerican.best +banot.net +banqqood.ru +banquyen.xyz +banskocoliving.com +bantenpoker.website +bantin30s.online +bantisik.com +bantler.com +banubadaeraceva.com +banyakhadiah.xyz +banyanclearbrook.com +banyanclearbrook.info +banyanclearbrook.org +banyy.net +banz.site +bao160.com +baodaoxp.com +baodoisongphunu.com +baojianxue.com +baokecacchaulamviec.tk +baoloc.city +baomoi.site +baordroommedia.com +baos.site +baoslots.info +baothoitrang.org +baovephunu.site +baowengou.com +baoye365.com +baphled.com +bapter.design +baptistcreationcare.org +baptizes78lc.online +bapu.gq +bapu.ml +bapumoj.cf +bapumoj.ga +bapumoj.gq +bapumoj.ml +bapumoj.tk +bapumojo.ga +bapumojo.tk +bar24.top +baraccudacoach.ru +baracudapoolcleaner.com +barafa.gs +barajasmail.bid +barakademin.se +baramoda.com +barandesho.biz +barandesho.club +barangbekas.market +barangsuntuk221.com +barannoor.com +barasiakoa.mobi +barbabas.space +barbados-nedv.ru +barbarabottini.com +barbarianfestival.com +barbarianfestival.org +barbarious.best +barbarizes454th.online +barbaroferro.com +barbarra-com.pl +barbarrianking.com +barbeariapaulista.com +barbecueliquidators.com +barberinhills.info +barbieoyungamesoyna.com +barbodae.com +barcakana.tk +barcalovers.club +barcin.co.pl +barcinohomes.ru +barciq.com +barclays-plc.cf +barclays-plc.ga +barclays-plc.gq +barclays-plc.ml +barclays-plc.tk +barcntenef.cf +barcntenef.ga +barcntenef.gq +barcntenef.ml +barcntenef.tk +bardecor.ru +bardellins.com +bardetective.com +bardharti.cf +bardharti.ga +bardharti.gq +bardharti.ml +bards.net +bardsdadgas.space +barebackedtsc.website +bareburgers.com +barecases.com +bareck.net +bareed.ws +bareface.social +barefootcook.com +barefoottheory.com +baregyal.com +baren.org +barenshop.ru +barfanidada.com +barfdastbloc.cf +barfdastbloc.ga +barfdastbloc.tk +bargainbrowser.net +bargainho.com +bargainthc.com +bargesa.cf +bargesa.gq +bargesa.ml +bargesa.tk +baridasari.ru +baringgifts.com +bariritus.online +baris.shop +barislight.com +barking.design +barkito.se +barkmanfoods.biz +barkochicomail.com +barlas1.site +barna.bike +barna.futbol +barnebas.space +barnesandnoble-couponcodes.com +barny.space +barnyarthartakar.com +baroedaksaws.website +baronshop.com +barosuefoarteprost.com +barotir.xyz +barping.asia +barrabravaz.com +barretodrums.com +barrhq.com +barrieevans.co.uk +barrill.org +barrindia.com +barryogorman.com +barrypov.com +barrysbagel.com +barryspov.com +barrytaitz.com +barsan4818.com +barseeker.com +barsikvtumane.cf +barsikvtumane.ga +barsikvtumane.gq +barsikvtumane.ml +barsikvtumane.tk +barsmerco.cf +barsmerco.ga +barsmerco.gq +barsmerco.tk +bart-net.com +bartdevos.be +bartendersreference.com +barterboards.com +barterboards.net +bartholemy.space +bartholomeo.space +bartholomeus.space +bartizan819ch.online +bartolemo.space +bartoparcadecabinet.com +bartsch.cd +baruchcc.edu +barzan.mielno.pl +bas0scg0.xyz +basak.cf +basak.ml +basakgidapetrol.com +basakhaber.org +basalts.best +basarhamdionat.com +basatlas.xyz +basbackso.cf +basbackso.ga +basbackso.ml +basbackso.tk +bascope.icu +basculas.online +base-all.ru +base-weight.com +baseballboycott.com +basedafg.ml +baseddopl.tk +basefeeder.com +basehipovk.space +basenetradio.net +baseny-mat.com.pl +baserelief.ru +basetime.us +basgoo.com +basharg.com +basharj.com +basharje.com +bashke.info +bashke.org +bashmak.info +bashnya.info +basic-colo.com +basicbusinessinfo.com +basicgla.buzz +basicinstinct.com.us +basiclaw.ru +basicmov.xyz +basicseo.top +basicskillssheep.com +basicsofinternetmarketing.com +basingbase.com +basitcappuccino.com +basjoker.ga +basjoreb.site +basketandbath.com +basketball2in.com +basketballcite.com +basketballontv.com +basketballvoice.com +basketinfo.net +baskieninfo.se +baskinoco.ru +basnnmt.tk +basogi.xyz +basogu.xyz +basresscam.cf +basresscam.ga +basresscam.gq +bassam.xyz +basscisla.cf +basscisla.ga +basscisla.gq +basscisla.tk +basscode.org +bassot-genevieve.com +bassottipalermo.info +basssi.today +bastamail.cf +bastauop.info +bastiananke.xyz +bastianfiera.com +bastnone.site +bastore.co +bastsellstripe.com +bastwisp.ru +basurtest55ckr.tk +basvur.xyz +basy.cf +bat-990.com +bat-999.com +batanik-mir.ru +batches.info +batdongsanmiennam.xyz +batefy.info +baterias.xyz +batesmail.men +bath-slime.com +bathandbodyworksoutlettest.org +batherforearm.top +bathroomaustralia.xyz +bathrooms1.com +bathroomsbristol.com +bathshop.live +bathworks.info +batiktirnaktedavi.com +batiro.cf +batiro.ga +batiro.gq +batiro.ml +batiro.tk +batkyai.com +batlmamad.gq +batman303.biz +batmancocukterapisi.com +batmitzvahmagazine.com +batnacapitaledesaures.com +batonrougealcoholrehab.com +batonrougecocainerehab.com +batonrougeheroinrehab.com +batonrougequote.com +batpat.it +batpeer.site +batstorebuyshop.online +battelknight.pl +batteri.app +batterybargains.com +battey.me +battle-royale-games.ru +battledirector.com +battlefield1beta.com +battlegroundnc.org +battleinbmore.com +battlejuicedrink.com +battlengur.space +battleperks.com +battlepong.info +battpackblac.cf +battpackblac.ga +battpackblac.gq +battpackblac.ml +battpackblac.tk +battricks.com +batudeco.com +batugoncang.org +batumeskort.com +baturhsfm42716.cf +baturhsfm42716.ga +baturhsfm42716.ml +baturhsfm42716.tk +bau-peler.business +bau-peler.com +baubosgarden.com +bauchtanzkunst.info +bauimail.ga +baumhaus.me +baumhotels.de +bautista.club +bauwerke-online.com +bawangbodas.online +bax0599.com +baxomale.ht.cx +baxymfyz.pl +bayanarkadas.info +bayani.ru +bayareamobileeventservices.com +bayareatrim.com +bayareavegfest.org +bayburtbal.com +bayburtbal.xyz +bayburtkoyu.xyz +bayelsastatemot.icu +bayendurebeg.website +bayfibmo.cf +bayfibmo.ga +bayfibmo.ml +bayfibmo.tk +baykers.space +baykuskitabevi.xyz +baykuskitap.xyz +baylead.com +bayrakligazetesi.xyz +bayriatrap.cf +bayriatrap.ga +bayriatrap.gq +bayriatrap.ml +bayriatrap.tk +bayrjnf.pl +bayshore.edu +baysidepublishing.org +baysportfishing.net +baytrilfordogs.org +bazaaboom.com +bazaarcovers.com +bazaarfashionmagazines.com +bazakts.ru +bazaorg.ru +bazarop.com +bazavashdom.info +bazerulodge.com +bazhen.ru +bazi1399.site +bazmool.com +bazoocam.co +bazreno.com +bazybgumui.pl +bb-ins.us +bb-system.pl +bb1197.com +bb2.ru +bb24hr.com +bb24hr.net +bb265.com +bb42d8b5.xyz +bb4445.com +bb4f0c2.club +bb57822.com +bb7665.com +bb888.tk +bb9827.com +bba24.de +bba42t.us +bbabblebeanh.site +bbabblespherem.site +bbabyswing.com +bbadcreditloan.com +bbb.hexsite.pl +bbb991.com +bbbb00000.info +bbbb22222.info +bbbb44444.info +bbbbyyzz.info +bbbest.com +bbblanket.com +bbbonus.net +bbbooks.site +bbbsfoundation.com +bbc-dz.com +bbc-news-today.host +bbc-news-today.space +bbc-news24.site +bbcaijing.pro +bbcbbc.com +bbcok.com +bbcs.me +bbdd.info +bbdownz.com +bbestssafd.com +bbetweenj.com +bbfishing.ru +bbg123.com +bbhardingproducts.us +bbhatta.info +bbhost.us +bbibbaibbobbatyt.cf +bbibbaibbobbatyt.ga +bbibbaibbobbatyt.gq +bbibbaibbobbatyt.ml +bbibbaibbobbatyt.tk +bbintd.com +bbisvm.com +bbl4.net +bblogstormn.site +bblounge.co.za +bbmail.win +bbmoe.com +bbn.cloud +bborddd.live +bbov9y.us +bbox.com +bboygarage.com +bboysd.com +bbq-nation.net +bbq.monster +bbq59.xyz +bbqpeople.com +bbqstore.org +bbreghodogx83cuh.ml +bbrightclubd.site +bbrightflowe.site +bbrowsechato.site +bbruastripe.com +bbryk.live +bbs.edu +bbs8den8teudng.xyz +bbs96.us +bbsat.tk +bbse185.com +bbse191.com +bbse193.com +bbse195.com +bbse198.com +bbse199.com +bbser.org +bbsmoodle.com +bbswordiwc.com +bbtop.com +bbtotobet.online +bbtspage.com +bbubblecubed.site +bbugblanket.com +bburberryoutletufficialeit.com +bbuzzwares.site +bbw.monster +bbwin188.com +bbwin188.net +bbwin99.com +bbyth.com +bc3322.com +bc4mails.com +bc5569.com +bc590d0b.xyz +bc8037.com +bc9827.com +bc9c.com +bcamerapeak.info +bcaoo.com +bcast.store +bcast.vote +bcast.ws +bcb.ro +bcbet8989.com +bcbgblog.org +bccecac.club +bccplease.com +bccto.me +bcdick.best +bcdmail.date +bcdtrack.rocks +bcedetyam.ru +bcedetyam1.ru +bcedetyam2.ru +bcedetyam3.ru +bcfcfans.space +bcflinnovators.com +bcflplanners.com +bcg-adwokaci.pl +bchatz.ga +bchousingnews.com +bcjm4.icu +bcle.de +bcnsc.online +bcodes.site +bcompiled3.com +bconsbee.com +bcoreap.com +bcp16.site +bcpfm.com +bcqjwz.online +bcs-d.com +bcssupplies.info +bcst8.com +bctqa.host +bcvm.de +bcxaiws58b1sa03dz.cf +bcxaiws58b1sa03dz.ga +bcxaiws58b1sa03dz.gq +bcxaiws58b1sa03dz.ml +bcxaiws58b1sa03dz.tk +bcxpartners.com +bczwy6j7q.pl +bd-football.com +bd.dns-cloud.net +bd.if.ua +bd51tf.com +bd9b6555.club +bdbcba.com +bdbdqbdkdx.xyz +bdbdqbdkfb.xyz +bdbdqbdkxx.xyz +bdbdqbikbx.xyz +bdbdqbikfb.xyz +bdbdqbikqb.xyz +bdbdqbxkbx.xyz +bdbdqbxkdx.xyz +bdbdqbxkfb.xyz +bdbdqbxkqb.xyz +bdbdqbxkxx.xyz +bdbdqddkeb.xyz +bdbdqddkib.xyz +bdbdqddkxx.xyz +bdbdqdkbxb.xyz +bdbdqdkibb.xyz +bdbdqdksbb.xyz +bdbdqdxkdx.xyz +bdbdqdxknb.xyz +bdbdqdxkqb.xyz +bdbdqdxkxx.xyz +bdbdqedkbx.xyz +bdbdqedkfb.xyz +bdbdqedknb.xyz +bdbdqedksb.xyz +bdbdqekbxb.xyz +bdbdqekebb.xyz +bdbdqeknbb.xyz +bdbdqekxxb.xyz +bdbdqexkbx.xyz +bdbdqexkeb.xyz +bdbdqexkib.xyz +bdbdqexksb.xyz +bdbdqfdkdx.xyz +bdbdqfdkib.xyz +bdbdqfdknb.xyz +bdbdqfdkqb.xyz +bdbdqfkebb.xyz +bdbdqfkkbb.xyz +bdbdqfknbb.xyz +bdbdqfxkbx.xyz +bdbdqfxkdx.xyz +bdbdqfxkfb.xyz +bdbdqfxkib.xyz +bdbdqfxkkb.xyz +bdbdqfxkqb.xyz +bdbdqfxksb.xyz +bdbdqidkdx.xyz +bdbdqidkeb.xyz +bdbdqidkib.xyz +bdbdqidkkb.xyz +bdbdqidknb.xyz +bdbdqikebb.xyz +bdbdqikfbb.xyz +bdbdqikibb.xyz +bdbdqikxxb.xyz +bdbdqixkeb.xyz +bdbdqixknb.xyz +bdbdqixkqb.xyz +bdbdqixksb.xyz +bdbdqixkxx.xyz +bdbdqkdkeb.xyz +bdbdqkdkfb.xyz +bdbdqkdkib.xyz +bdbdqkdknb.xyz +bdbdqkkbxb.xyz +bdbdqkkdxb.xyz +bdbdqkknbb.xyz +bdbdqkkqbb.xyz +bdbdqkxkbx.xyz +bdbdqkxkib.xyz +bdbdqkxkkb.xyz +bdbdqkxknb.xyz +bdbdqndkeb.xyz +bdbdqndkfb.xyz +bdbdqnkebb.xyz +bdbdqnkqbb.xyz +bdbdqnksbb.xyz +bdbdqnxkeb.xyz +bdbdqnxkqb.xyz +bdbdqnxksb.xyz +bdbdqnxkxx.xyz +bdbdqqdkbx.xyz +bdbdqqdkkb.xyz +bdbdqqdknb.xyz +bdbdqqdksb.xyz +bdbdqqkfbb.xyz +bdbdqqknbb.xyz +bdbdqqkqbb.xyz +bdbdqqksbb.xyz +bdbdqqxkbx.xyz +bdbdqqxkdx.xyz +bdbdqqxkeb.xyz +bdbdqqxkfb.xyz +bdbdqqxkkb.xyz +bdbdqqxknb.xyz +bdbdqqxkqb.xyz +bdbdqqxksb.xyz +bdbdqsdkeb.xyz +bdbdqsdkfb.xyz +bdbdqsdkxx.xyz +bdbdqskdxb.xyz +bdbdqskebb.xyz +bdbdqskfbb.xyz +bdbdqskkbb.xyz +bdbdqskqbb.xyz +bdbdqsxksb.xyz +bdbdqxdkfb.xyz +bdbdqxdkxx.xyz +bdbdqxikkb.xyz +bdbdqxkbxb.xyz +bdbdqxkkbb.xyz +bdbdqxkqbb.xyz +bdbdqxksbb.xyz +bdbdqxxkib.xyz +bdbdqxxkkb.xyz +bdbdqxxknb.xyz +bdbdqxxksb.xyz +bdcl73.us +bdcw.us +bde.me +bdf.bz +bdf118.com +bdf343rhe.de +bdg56.site +bdigitalsignage.com +bdjb.xyz +bdmobiles.com +bdmuzic.pw +bdsmglossary.com +bdsvietnam24h.com +bdv3.icu +bdvsthpev.pl +be-a-dentalimplants-inone.live +be-a-savingsaccountwow.live +be-a-suvhub.live +be-a-trucksfab.live +be-a-trucksget.live +be-a-trucksjet.live +be-an-intl-new-york-hotelsnow.live +be-breathtaking.net +be-care-giver-medicaids-ok.live +be-creditcardnofeeca-ok.live +be-ergo.com +be-greatreverse-ok.mortgage +be-intl-new-york-hotels-one.live +be-intravelinsurances-ok.live +be-line.me +be-tax-prep-ok.live +be-trucks-hub.live +be0vsn.com +be321app.xyz +be401kinquiryok.com +bea32.ru +beabedbugremovalok.live +beacepu.cf +beacepu.gq +beacepu.ml +beacepu.tk +beach-homes.com +beachbodysucces.net +beachdormsy.info +beaches-in-costa-rica.com +beachfront-llc.us +beachhaven.company +beachhaven.fun +beachhouse.online +beachpeopleco.com +beacon-opt.com +beaconhillluxurylisting.com +beaconnewspaper.com +beaconstreetgroup.management +beaconstreetgroup.shop +beacordbloodbankhelpok.live +beadgolfper.cf +beadgolfper.ga +beadgolfper.gq +beadgolfper.ml +beadgolfper.tk +beadscarbons.top +beaivi.institute +bealeadershipcoach.com +bealector.com +bealsforcongress.com +beamcharger.com +bean.farm +beancooker.com +beand.org +beaniemania.net +beanimplantsjet.live +beanlignt.com +beanteamgroup.com +beanteamstaffing.com +beantein.com +beaplumbereducationok.rocks +beaplumbereducationok.sale +bear.cd +bear.supappl.me +bearcreekauto.com +beardfirst.com +bearegone.pro +bearer.net +bearer.org +bearingman.net +bearmarket2020.com +bears-rosessale.ru +bearsarefuzzy.com +bearwork.us +beastagram.com +beastmagic.com +beastmailer.com +beastrapleaks.blogspot.com +beatbase.se +beatboxer.com +beatboxyedonebashe.xyz +beatcruisesok.live +beatelse.com +beatmaker-drumkit.xyz +beatrizppe2enburg.xyz +beatrose.com +beats-discount.ru +beats-rock.com +beatsaheadphones.com +beatsbudredrkk.com +beatsbydre18.com +beatsbydredk.com +beatsdr-dreheadphones.com +beatsdre.info +beatsdydr.com +beatskicks.com +beatsportsbetting.com +beatz-shop.ru +beatztr.com +beaucomte.com +beauthey.website +beautifulhomes.us +beautifulifeurns.com +beautifulinhouses.com +beautifulinteriors.info +beautifullifestyleblog.com +beautifulmassage.ru +beautifulonez.com +beautifulrising.com +beautifulsa.space +beautifulsmile.info +beautifulvideo.ru +beautifybrides.com +beauty-gids.shop +beauty-israel.com +beauty-lamp.ru +beauty-mania.monster +beauty-pro.info +beauty-secret.info +beauty.guitars +beauty.kaufen +beauty1.website +beautybabby.xyz +beautyboo.ru +beautyboost.ru +beautycareklin.xyz +beautycentry.xyz +beautyfashionnews.com +beautyfungo.com +beautyincbd.com +beautyinthestreet.com +beautyiwona.pl +beautyjewelery.com +beautykz.store +beautylinks.info +beautylovesthebeast.com +beautynewsforyou.com +beautyothers.ru +beautypromdresses.net +beautypromdresses.org +beautysecrets.space +beautysecretss.xyz +beautyskincarefinder.com +beautytesterin.de +beautyvibesmag.com +beautywelldress.com +beautywelldress.org +beauxgadgets.com +beaverboob.info +beaverbreast.info +beaverhooters.info +beaverkit.com +beaverknokers.info +beavertits.info +beavoipphonerun.com +beaway.online +beba.icu +bebarefoot.com +bebasmovie.com +bebeautyco.com +bebedbugremovalsok.live +bebedemarcha.com +bebedemarka.com +bebegimizolsun.com +bebekbattaniyesi.xyz +bebekliyor.xyz +bebemeuescumpfoc.com +beben.xyz +bebet322.xyz +bebet327.xyz +beboldbebald.com +bebotoxok.live +bebulen.site +bebwe.com +bec-ing.com +becanada-mail.com +becas.digital +becausethenight.cf +becausethenight.ml +becausethenight.tk +becaxklo.info +becerromail.club +bechtac.pomorze.pl +beck-it.net +becksurbancanvas.com +becky.fitness +beckyandtets.com +beckygri.pw +becomestions.com +becometime.xyz +becomingelf.com +beconfidential.com +beconfidential.net +becongchongsok.live +becordbloodbankhelpok.live +becordbloodbankhelpsok.live +bedatsky.agencja-csk.pl +bedbathandbeyond-couponcodes.com +bedbgns.site +bedbooms.info +bedbugsize.club +beddingshop.futbol +beddingsshop.live +beddly.com +bedebertozino.xyz +bedeniniincelt.site +bedfadsfaidsok.live +bedore.com +bedpay.net +bedrokcommunity.org +bedroombugs.com +bedstyle2015.com +bedul.net +bedulsenpai.net +bedz.ml +bedz.tk +bee-wi.ru +beechatz.ga +beechatzz.ga +beechworthchildcare.com +beed.ml +beefback.com +beefbars.com +beefmilk.com +beefnomination.info +beefstock.buzz +beeftagflq.space +beeg69.site +beejjewels.net +beemabazar.com +beemanagementinc.org +beenfiles.com +beeonlineteens.site +beer911.app +beerchamberbeep.website +beerm.icu +beermarkit.com +beermash.com +beermonkey.org +beerolympics.se +beerpairing.org +beerpievader.com +beetlecan.com +beeveedigital.com +beeviee.cf +beeviee.ga +beeviee.gq +beeviee1.cf +beeviee1.ga +beeviee1.gq +beeviee1.ml +beeviee1.tk +beewooden.com +beforeveal.icu +begagnadebocker.se +begiehexa.com +beginagon.icu +beginchart.email +beginmeri.icu +beginnergeek.net +beginsma.xyz +beginsw.xyz +beginswi.xyz +beginswin.xyz +beginwro.recipes +beginwron.recipes +begisobaka.cf +begisobaka.ga +begisobaka.gq +begisobaka.ml +begisobaka.tk +begivverh.xyz +begnthp.tk +begoz.com +beguh.com +behandlingmarke.website +behavioral.co +behavioralhealthdata.info +behavioralhealthdata.org +behavioralhealthoutcomedata.info +behavioraloutcomesdata.info +behax.net +behindthebubbles.com +behindthescenesvideos.club +behsanacademy.com +bei.kr +beibilga.ga +beibilga.gq +beibilga.ml +beibilga.tk +beibis.com +beibleid.ru +beiclubna.ga +beiclubna.tk +beihai012.com +beihai013.com +beihai054.com +beihai068.com +beihai071.com +beihai072.com +beihai083.com +beihai086.com +beihai091.com +beihoffer.com +beijing-devops.com +beijinhuixin.com +beimplantsray.live +beincash.xyz +beiop.com +beitmak.ru +beiwody.info +bekadsjr.host +bekaselektrik.com +bekasiindihome.com +beke.site +bekirqua.cf +bekirqua.ml +bekirr.com +bel-airevisual.com +bel-seo.ru +bel.kr +belafonte.us +belairdentistry.com +belairshowerglass.com +belamail.org +belanjaonlineku.web.id +belanjaterus.shop +belapoker.biz +belarus-nedv.ru +belastingdienst-fod.email +belastingdienst.pw +belchertownfuneralhome.com +belediyeevleri2noluasm.com +belekbelediyesi.xyz +belence.cf +belence.ga +belence.gq +belence.ml +belence.tk +belengendwin.com +belfastdistilleryco.com +belgia-nedv.ru +beli4d.com +belibeli.shop +beliefnet.com +belieti.com +believeintn.org +believesex.com +belisatu.net +belisor.info +beliz-nedv.ru +belizeoasisalabang.com +belkacar.online +belkastconsulting.com +bell-bar.com +bellacheveuxhairstudio.com +bellaitaliavalencia.com +bellanotte.cf +bellaserababy.com +bellasio.net +bellavanireview.net +bellavistacosmetics.online +bellavistacosmetics.shop +bellavistagourmet.com +bellbet24.org +belleairjordanoutlet.us +belleairmaxingthe.us +belleantiques.com +bellefroghuis.com +bellenuits.com +bellevueboychoir.com +bellezaahora.xyz +bellingham-ma.us +belljonestax.com +bellmofac.ga +bellshoalsanimalhospitalofbrandon.com +bellshoalsvet.com +bellster.biz +bellster.name +bellwellcharters.com +bellyblasterkit.com +belnasil.digital +belorus-kosmetix.ru +belovedhavanese.com +belprepaid.space +belqa.com +belrochesdistribution.com +belspb.ru +belstilo.com +belt.io +beltlannio.ga +beltlannio.gq +beltlannio.ml +beltlannio.tk +beltpin.com +beltrik.ru +beluckygame.com +belujah.com +beluowu.xyz +bemacares.info +bembonitastudio.com +bembryn.xyz +bemestarfit.host +bemestarfit.space +bemony.com +bemounci.com +bemvip.online +bemvip.xyz +bemynode.com +ben-kinney-cracking.services +ben10benten.com +ben424.com +benandrose.com +benashley.net +benbircocugum.xyz +benchjacken.info +benchmarkmineralintelligence.com +benchsbeauty.info +bendingmc.online +bendini.cf +bendini.ga +bendini.gq +bendini.ml +bendini.tk +bendlinux.net +bendmerch.com +bendstays.com +benefacto.ru +benefit-badgal.ru +benefitsofchamomiletea.com +benefitsofflaxseeds.com +benefitsofglutenfree.com +benefitsofkombucha.com +benefitsquitsmoking.com +benevolo.us +benforhilldale.com +benfragladb.cf +benfragladb.ga +benfragladb.gq +benfragladb.tk +benfrey.com +bengbeng.me +bengkelseo.com +benh33mnb.buzz +benh34vcb.buzz +benhasdiscountedhomes.com +benhgaicotsong.info +benhoxie.com +benhvienmatsaigon.com +beni36kjh.buzz +beni37ggb.buzz +beni39ijh.buzz +benimatran.com +benipaula.org +benitomendezsanchez.com +benj40eii.buzz +benjamin-roesch.com +benjaminpflasterer.com +benjaminquinn.com +benjaminquinn.net +benjaminquinn.org +benjavip.com +benjis.life +benlotusmail.com +benningnavs.com +bennistdod.cf +bennistdod.gq +bennistdod.ml +bennistdod.tk +bennyrosen.com +benpict.xyz +bensebbs.org +bensinstantloans.co.uk +bental.xyz +bentblogging.com +bentleypaving.com +bentoboxmusic.com +bentolabs.com +bentonshome.cf +bentonshome.tk +bentonstesting.cf +bentonstesting.tk +bentonvillepropertylistings.com +bentwillys.info +benwola.pl +benwoodburn.news +benzi.app +beo.kr +beoemyxa.shop +beoff.me +beoilchangesbuy.live +beoilchangewow.live +beonweb.ru +beoutq.stream +bepackaging.com +bepc417.xyz +bepdfmanuales.xyz +bepdientugiare.net +beplumbereducationok.sale +beplumbereducationok.video +bepoibepa.com +beporitukl.ml +beppumaru.online +beqonay.site +beranabooks.info +berandi.com +beratokus.tk +berawa-beach.com +berbaban.cf +berbaban.gq +berbaban.tk +berbowsra.cf +berbowsra.ml +berbowsra.tk +bercstuferca.tk +berdeen.com +beremkredit.info +bereniki.com +bererece.com +beresleting.cf +beresleting.ga +beresleting.gq +beresleting.ml +beresleting.tk +beret-prolithium.online +berettachiro.net +berettachiropractic.net +berfamily.com +bergandridge.shop +bergandridge.store +bergandridge.us +bergmoneyclub.ru +bergpegkupt.gq +bergpegkupt.ml +bergpegkupt.tk +beri-delay.ru +beriarenda.ru +beriastuias.club +beriazadda.club +beribase.ru +beribaza.ru +beridelo.ru +beriglobal.ru +berigroup.ru +beriinfo.ru +berirabotay.ru +berischool.ru +beriseikeb.live +berishkola.ru +beristeam.ru +beritagila.com +beritaproperti.com +beritvorit.ru +beriudlugi.ru +beriuslugi.ru +berizals.world +berizter.club +berjaya777.live +berkah-herbal.com +berkahwkr.com +berkatrb.com +berkeleytree.com +berkem12.tk +berkmelek.tk +berkmj.info +berkshireheatingandac.com +berlincoding.com +berlios.online +berlusconi.cf +berlusconi.ga +berlusconi.gq +berlusconi.ml +bermang.com +bermr.org +bern4love.com +berna.kim +bernhardshipps.com +bernieruess.com +bernsja.com +bernsndrs4.us +beroazsd.xyz +berodomoko.be +beroigased.gq +beroinavik.tk +beroitum.gq +berouzresaan.com +berouzresan.com +berozresaan.com +berquist.org +berracom.ph +berry-race.com +berryang.icu +berryblitzreview.com +berryclo.xyz +berrycloc.xyz +berrymail.men +berrypi.xyz +berrypian.xyz +berrypl.xyz +berryslawn.com +berryswipe.buzz +berrywh.xyz +bersama365.club +bershka-terim.space +bertackbi.ga +bertackbi.gq +bertarikkofish.xyz +bertiaxza.site +bertisa-store.club +beruka.org +besasang.com +besguses.pro +beshc.us +beshox.fun +besirogullarilojistik.xyz +besltd.net +besmartheal.ru +besome401kinquiriesok.com +besomedfadsfaidok.live +besometopcrossoversonthemarketsok.live +besplatnie-conspecti.ru +besplatnoigraj.com +besplodie.info +besseller.com +best-2222.com +best-advert-for-your-site.info +best-airmaxusa.us +best-asianbrides.org +best-bet999.com +best-bonus-zone2.life +best-carpetcleanerreviews.com +best-casino.online +best-cruiselines.com +best-day.pw +best-deal.host +best-detroit-doctors.info +best-electric-cigarettes.co.uk +best-email.bid +best-firewall.com +best-fiverr-gigs.com +best-info-greate.ru +best-mail.net +best-market-search.com +best-money.ru +best-news.website +best-nj.com +best-of-british.net +best-paydayloan24h7.com +best-personal-loan-in-town.info +best-pneumatics.ru +best-pnevmatic.ru +best-promo-codes.us +best-scifi.com +best-seller.icu +best-store.me.uk +best-tanning-lotions.com +best-things.ru +best-ugg-canada.com +best-vavada48.ru +best-womennow2.com +best121adultdates.com +best1x.site +best46.xyz +best4you2021.space +best566.xyz +best8520rv.com +bestacupuncturecharlotte.com +bestad2020.host +bestadvertisingsolutions.info +bestantiwrinklesolutions.com +bestats.top +bestattach.gq +bestbagaffordable.online +bestbaltimoreattorney.com +bestbaltimorelawyer.com +bestbanyabochka.ru +bestbargaindealz.org +bestbdplayer.com +bestbestbest.club +bestbets123.net +bestbooksite.site +bestbrush.org +bestbrushcompany.net +bestbrushcompany.org +bestbrushcompany.us +bestbrushes.us +bestbugstudio.com +bestbuy-couponcodes.com +bestbuyssites.com +bestbuysswebbs.com +bestbuysswebs.com +bestbuysswebss.com +bestbuyswebs.com +bestbuyvips.com +bestbyuaty.ru +bestcanadagoosejacketsoutlet.com +bestcarpetcleanerreview.org +bestcarshost.com +bestcastlevillecheats.info +bestchannelstv.info +bestcharlottedecompression.com +bestcharm.net +bestcheapdeals.org +bestcheapshoesformenwomen.com +bestchecker.club +bestchertynore.club +bestchoiceofweb.club +bestchoiceroofingmacon.com +bestchoiceroofingnewportnews.com +bestchoiceusedcar.com +bestcigarettemarket.net +bestcityinformation.com +bestcloudhostingforasp.com +bestcoasthomes.app +bestcodingbooks.com +bestcoins.xyz +bestcommercialmortgagerates.com +bestcontractorumbrella.com +bestcouponindia.xyz +bestcpacompany.com +bestcraftsshop.com +bestcreditcart-v.com +bestcustomlogo.com +bestdamndadever.com +bestdarkspotcorrector.org +bestdates.xyz +bestdateshere23.com +bestdavenportchiropractor.com +bestday.pw +bestdealsdiscounts.co.in +bestdentistofficenearme.com +bestdento.site +bestdesign2020.website +bestdickpills.info +bestdiningarea.com +bestdizua.cf +bestdizua.ga +bestdizua.ml +bestdizua.tk +bestdmvevents.com +bestdogovornyematchi.ru +bestdownjackets.com +bestdvdblurayplayer.com +beste-slots-online.host +bestelectroscooters.com +bestemail.bid +bestemail.stream +bestemail.top +bestemail2014.info +bestemail24.info +bestenuhren.com +bestescort4u.com +besteurotrip.xyz +besteverseocompany.com +bestevidencebasedpractice.com +bestexerciseequipmentguide.com +bestfaithfilms.com +bestfakenews.xyz +bestfinancecenter.org +bestfitnessidia.host +bestfitnessidia.space +bestfitnesstips.site +bestforexbroker.ru +bestfork0di.com +bestfuelefficientsuvs.com +bestfun88.com +bestfunctionalrehab.com +bestfuture.pw +bestg1rls.ru +bestgames.ch +bestgames.icu +bestgames4fun.com +bestgamingmonitorden.com +bestgenericviagra.website +bestgifok.ru +bestglockner.com +bestglutenfreerecipes.org +bestgoodsz.com +bestguccibags.com +bestguidesapp.com +bestgunsafereviews.org +besthairbrushstraightener.com +besthdtelevisions.com +besthealthinsurance.ru +besthendge.ru +besthistorytour.com +besthomeamateurxxx.info +besthostever.xyz +besthunting.ru +bestindexes.com +bestinfonow.cf +bestinfonow.tk +bestinfurniture.com +bestinnature.ca +bestinstrumentiyq.ru +bestintershop.ru +bestinvertergeneratorinfo.com +bestitb.online +bestitem.icu +bestjerseysforu.com +bestjewelrycrafts.club +bestkeylogger.org +bestkitchenknifeset.today +bestkitchens.fun +bestlakertickets.com +bestlawyerinhouston.com +bestlistbase.com +bestlocalrating.net +bestloot.tk +bestlordsmobilehack.eu +bestlovesms.com +bestlovestatus.website +bestlucky.pw +bestmail-host.info +bestmail2016.club +bestmail365.eu +bestmailer.gq +bestmailer.tk +bestmailgen.com +bestmails.tk +bestmailtoday.com +bestmarksites.info +bestmedicinedaily.net +bestmedicinehat.net +bestmemory.net +bestmitel.tk +bestmlmleadsmarketing.com +bestmogensen.com +bestmonopoly.ru +bestn4box.ru +bestnecklacessale.info +bestnerfblaster.com +bestneuropathytreatment.com +bestnewnashville.com +bestnews365.info +bestnewvacuums.com +bestnycweb.com +bestofamor.com +bestofbarcelona.net +bestofbest.biz +bestofferforbigwin.site +bestofferguidez.com +bestoffersite.store +bestoffersonline.stream +bestoffworld.ru +bestofironcounty.com +bestofprice.co +bestoftodaynews.site +bestofyou.blog +bestofyou.news +bestofyours.com +bestoilchangeinmichigan.com +bestonlinecasinosworld.com +bestonlineusapharmacy.ru +bestoption25.club +bestowed.ru +bestparfum43.ru +bestpaycenter2.com +bestpdfmanuales.xyz +bestpestsydney.com +bestphilippinebrides.com +bestphonecasesshop.com +bestpieter.com +bestpochtampt.ga +bestpokerlinks.net +bestposta.cf +bestpozitiv.ru +bestpracticesneurologicrehab.com +bestpressgazette.info +bestprice.exchange +bestprice2020.store +bestpricehotwater.com +bestprizesinside.com +bestquizmaker.com +bestraros.cf +bestraros.ga +bestraros.gq +bestraros.ml +bestraros.tk +bestrecipes99.com +bestregardsmate.com +bestregisteredagentservices.org +bestrestaurantguides.com +bestreviewsonproducts.com +bestrhinopills.com +bestrhums.com +bestring.org +bestsaid.net +bestsellerbookfunnels.net +bestsellingbookfunnelsecrets.com +bestseniorlivinghomenearme.com +bestsentence2020.host +bestsentence2020.site +bestsentence2020.space +bestsentence2020.xyz +bestseojobs.com +bestseomail.cn +bestservice.me +bestserviceforwebtraffic.info +bestshopcoupon.net +bestshoppingmallonline.info +bestshopsoffer.com +bestshows.xyz +bestsidebiz.com +bestsleeping.com +bestsmesolutions.com +bestsnowgear.com +bestsoundeffects.com +bestspeakingcourses.com +bestspiral.info +bestspmall.com +bestsportsnutrition.shop +bestsquad.org +bestsunshine.org +besttalent.org +besttandberg.com +besttantvil.cf +besttantvil.ga +besttantvil.gq +besttantvil.ml +besttantvil.tk +besttaxlawfirms.net +bestteethwhiteningstripss.com +besttempmail.com +bestthailandbrides.com +besttoggery.com +besttonighttopdating.com +besttop.info +besttopadultdating.com +besttopbeat.com +besttopbeatssale.com +besttopdeals.net +besttrade24.ru +besttrialpacksmik.com +besttrommler.com +besttttparsigrrram.club +besttwoo1.info +bestudio327.xyz +bestudio41.xyz +bestudio48.xyz +bestudio49.xyz +bestuggbootsoutletshop.com +bestuniformscrubs.com +bestvalentinedayideas.com +bestvalue-properties.com +bestvaluehomeappliances.com +bestvashikaran.com +bestvideogamesevermade.com +bestvirtualrealitysystems.com +bestvpn.top +bestvpshostings.com +bestw.space +bestwatches.com +bestways.ga +bestwebsitebuilder.com +bestweightlossfitness.com +bestwesternpromotioncode.org +bestwindows7key.net +bestwish.biz +bestwishes.pw +bestworldcasino.com +bestworldsbiz.com +bestworldwidestore.com +bestwrinklecreamnow.com +bestyoumail.co.cc +bestyourchoiceofproducts.site +besun.cf +bet-boom202.com +bet-boom203.com +bet-boom206.com +bet-boom208.com +bet-boom209.com +bet-boom210.com +bet-boom212.com +bet-boom215.com +bet-boom216.com +bet-boom219.com +bet-boom223.com +bet-boom224.com +bet-boom225.com +bet-boom227.com +bet-boom228.com +bet-boom231.com +bet-boom232.com +bet-boom233.com +bet-boom236.com +bet-boom237.com +bet-boom242.com +bet-boom243.com +bet-boom246.com +bet-boom249.com +bet-boom252.com +bet-boom253.com +bet-boom255.com +bet-boom257.com +bet-boom258.com +bet-boom259.com +bet-boom260.com +bet-boom261.com +bet-boom262.com +bet-boom263.com +bet-boom264.com +bet-boom265.com +bet-boom266.com +bet-boom267.com +bet-boom269.com +bet-boom270.com +bet-boom271.com +bet-boom274.com +bet-boom275.com +bet-boom276.com +bet-boom281.com +bet-boom283.com +bet-boom284.com +bet-boom285.com +bet-boom286.com +bet-boom287.com +bet-boom289.com +bet-boom290.com +bet-boom291.com +bet-boom292.com +bet-boom294.com +bet-boot.net +bet-fi.info +bet-g365.com +bet-sliv.ru +bet2c.com +bet321online.xyz +bet321site.xyz +bet323apartments.xyz +bet323service.xyz +bet325group.xyz +bet365agent.com +bet43design.xyz +bet49day.xyz +bet49design.xyz +bet4shop.com +bet79.us +bet9.biz +bet9.mobi +bet90.design +beta-access.online +beta.inter.ac +beta.tyrex.cf +betabhp.pl +betaboks.com +betaboks.net +betaboks.org +betaforcemusclereview.com +betangeles150.com +betano7.com +betanywhere.com +betaprice.co +betarbeton.ru +betasoftechnologies.net +betasus125.com +betasusgiris1.com +betatomail.com +betauer.com +betayun.com +betbalnew.xyz +betbarg1.org +betbargone.com +betbargone.org +betbax.com +betbet.club +betbien5.com +betbigo100.com +betbigo102.com +betbigo78.com +betbigo99.com +betbing.com +betbola88.biz +betboom-partnerka.ru +betboss28.com +betboss29.com +betboss31.com +betboss32.com +betboss37.com +betboss38.com +betboyclub.com +betcashafrica.com +betchan22.com +betcity-app.ru +betcity-in.ru +betcity-ok.ru +betcity.app +betclubdf5.site +betclup.com +betcmc.xyz +betcoen.com +betcooks.com +betcups.info +betcups.net +betcups.org +betdepo.com +betdolar4.com +betdolar9.com +betdr7.com +beteajah.ga +beteajah.gq +beteajah.ml +beteajah.tk +betebartarr777.online +betemail.cf +betermalvps.com +betestream11.com +betestream23.com +betestream25.com +betestream27.com +betestream28.com +betestream29.com +betestream30.com +betestream31.com +betestream32.com +betestream35.com +betestream36.com +betestream37.com +betestream38.com +betestream39.com +betestream40.com +betestream41.com +betestream42.com +betestream44.com +betestream46.com +betestream48.com +betestream49.com +betexper23tv.com +betexpertv5.com +betezpro.com +betfafa.com +betfairinfo.ru +betfenomen.org +betfest10.com +betfest8.com +betfire24.com +betflix.ru +betforbet1.com +betforward.design +betforward.poker +betforward.review +betfred888.net +betfun.ru +betgen.space +betgen999.com +betgiris.space +betgit46.com +betgit48.com +betgo6.run +betgramtv29.com +betgrey.net +bethandethan.info +bethanynixon.buzz +bethbrombal.com +bethe401kinquiryok.com +bethere4mj4ever.com +bethesdashowerglass.com +bethesedfadsfaidsok.live +bethesetopcrossoversonthemarketsok.live +bethguimitchie.xyz +bethongkong.live +bethosedfadsfaidok.live +bethoughtfulfox.com +betico47.com +betidn.org +betindo88.com +betinebet105.com +betinebet106.com +betinebet107.com +betinmexico.com +betipster.app +betiran35.bet +betiran38.bet +betistyenigiris.xyz +betjek3.com +betkarat.com +betkarat20.com +betkava.com +betlae.com +betland.fun +betlenssu.cf +betlenssu.ga +betlenssu.gq +betlenssu.tk +betlevis.com +betliketv10.com +betliketv13.com +betliketv16.com +betliketv17.com +betliketv18.com +betliketv19.com +betliketv20.com +betliketv21.com +betliketv23.com +betliketv24.com +betliketv25.com +betliketv8.com +betliketv9.com +betmahaltv.com +betmanset103.com +betmanset104.com +betmanset111.com +betmarinotv.com +betmarj.com +betmarlo10.com +betmars.net +betmaru.com +betmasterss2.ru +betmax88.net +betmili.ga +betmili.ml +betmili.tk +betmoon.net +betmoon.org +betmoon25.com +betmoonaffiliates.net +betmoonaffiliates.org +betmoris126.com +betmove888.com +betnano102.direct +betnano103.direct +betnano104.direct +betnano105.direct +betnano37.direct +betnano38.direct +betnano44.com +betnano62.direct +betnano68.direct +betnano71.com +betnano72.com +betnano95.direct +betnano99.direct +betnaste.tk +betnesia.net +betnis40.com +betnis86.com +betnis87.com +betnis89.com +betodesa.com +betoffice206.com +betoffice224.com +betofis.net +betofis10.com +betofis101.com +betofis103.com +betofis105.com +betofis106.com +betofis107.com +betofis108.com +betofis109.com +betofis110.com +betofis111.com +betofis113.com +betofis114.com +betofis115.com +betofis118.com +betofis121.com +betofis123.com +betofis124.com +betofis126.com +betofis127.com +betofis128.com +betofis129.com +betofis130.com +betofis131.com +betofis133.com +betofis134.com +betofis135.com +betofis138.com +betofis14.com +betofis140.com +betofis141.com +betofis142.com +betofis143.com +betofis145.com +betofis146.com +betofis147.com +betofis148.com +betofis149.com +betofis150.com +betofis16.com +betofis18.com +betofis19.com +betofis2.com +betofis20.com +betofis21.com +betofis22.com +betofis23.com +betofis25.com +betofis26.com +betofis28.com +betofis29.com +betofis30.com +betofis31.com +betofis32.com +betofis34.com +betofis37.com +betofis4.com +betofis40.com +betofis41.com +betofis42.com +betofis43.com +betofis47.com +betofis49.com +betofis5.com +betofis50.com +betofis55.com +betofis57.com +betofis58.com +betofis6.com +betofis62.com +betofis63.com +betofis64.com +betofis65.com +betofis66.com +betofis68.com +betofis69.com +betofis7.com +betofis70.com +betofis71.com +betofis73.com +betofis74.com +betofis75.com +betofis76.com +betofis77.com +betofis78.com +betofis8.com +betofis81.com +betofis83.com +betofis85.com +betofis86.com +betofis88.com +betofis90.com +betofis91.com +betofis95.com +betofis96.com +betofis97.com +betofis98.com +betofis99.com +betographs.online +betohas.xyz +betoji38.com +betonchehov.ru +betonhim.ru +betonoweszambo.com.pl +betonpolitics.email +betonpolitics.global +betonpolitics.mobi +betonpolitics.news +betonpolitics.social +betonpolitics.support +betonsports.dev +betontv.com +betoob.online +betopcrossoversonthemarketok.live +betpab50.club +betpapel.info +betpara1000.com +betpara200.com +betpara300.com +betpara38.com +betpara400.com +betpara43.com +betpara44.com +betpara46.com +betpara500.com +betpara51.com +betpara52.com +betpara53.com +betpara54.com +betpara55.com +betpara56.com +betpara57.com +betpara59.com +betpara60.com +betpara600.com +betpara63.com +betpara67.com +betpara69.com +betpara71.com +betpara72.com +betpara74.com +betpara76.com +betpara78.com +betpara79.com +betpara80.com +betpara81.com +betpara82.com +betpara83.com +betpara85.com +betpara86.com +betpara88.com +betpara89.com +betpara90.com +betpara92.com +betpara93.com +betpara94.com +betpara95.com +betpara96.com +betpara97.com +betpara98.com +betpara99.com +betperform.fun +betplaypartner.com +betpluton.fun +betpoundsgunceladres.com +betpoundssikayet.com +betr.co +betrax.ml +betrekabet46.com +bets-spor.com +bets-ten.com +bets10uyeol.co +betsalon004.com +betsalon007.com +betsalon065.com +betsalon37.com +betsalon38.com +betsanal.com +betsat89.com +betsatgirisi.xyz +betsbest24.ru +betscsgo.pro +betscsgo2.org +betsdot22.com +betsdot24.com +betsdot29.com +betsdot34.com +betsend26.com +betsend29.com +betsend30.com +betsend33.xyz +betsendsikayet.com +betshoma.club +betsidney109.com +betsilin4.com +betsilin43.com +betsitem404.com +betsitem874.com +betsnap.xyz +betsntips.info +betsoo26.com +betsuing.com +betswiss.net +betsygeorge.com +better-built-homes-and-gardens.com +better-place.pl +better.in.net +better06.site +betterathome.live +betterbusinesswebs.com +bettercoffe.com +betterdiagnostics.online +betterlab.net +betterlink.info +betterlivingofrochester.com +bettermail24.eu +bettermail384.biz +bettermedicine.net +bettermfg.com +betterorganizedgarages.com +betterproperty.com +bettershop.biz +bettersmell.com +bettersmokefree.com +bettersmokefree.net +bettersmokefree.org +bettersunbath.co.uk +betterwaydelivery.info +betterwisconsin.com +betterwisconsin.net +betterwisconsin.org +bettilt70.com +betting777.net +betting786.net +bettingsnap.xyz +bettiret.tk +betto888.com +bettsnap2020.xyz +betttt.info +betturan.com +bettycropper.com +bettysnewyork.com +betvakti55.com +betvakti58.com +betvakti81.com +betvakti86.com +betvakti92.com +betvietbank.com +betvirtus.com +betwim.info +betxlarge14.com +betxtr88.com +betxtr90.com +betyap12.com +betyap13.com +betyap15.com +betyap17.com +betyap2.com +betyap23.com +betyap25.com +betyap27.com +betyap3.com +betyap49.com +betyap50.com +betyap6.com +betyap7.com +betyap8.com +betzakhar.xyz +betzan3.com +beuczbkq.shop +beumebu.cf +beupmore.win +beutyfz.com +bever2ymits.xyz +beveragedictionary.com +beverageglossary.com +beveragesshop.life +beverlyharing55places.com +beverlyhillstelecom.com +beverlytx.com +bevhattaway.com +bevsemail.com +bewakingscamera.shop +beweb.xyz +bewedfv.com +beweightlossinfoesok.live +bewleysnorthamerica.com +bewleysusa.com +bewumarkets.site +beyazceviz.xyz +beyazitnewporthotel.com +beyazmuzayede.istanbul +beymail.com +beyoglunet.xyz +beyogluprofiloservisi.com +beyoncenetworth.com +beyondecstasy.info +beyondsightfoundation.org +beyondthemall.com +beyondwallssquash.org +beyreklam1.xyz +beysehirlimited.xyz +beytavder.org +beyzaalemci.cf +beyzadeavukatlik.xyz +bez-kompleksov.site +bezblednik.pl +bezique.info +bezlimitu.waw.pl +bezosfamilyfoundation.ong +bezpartyjnikukiz.org +bezpartyjnisamorzadowcykukiz.org +bezsraciek.sk +bezvodki.ru +bezzppearar.cf +bezzppearar.ga +bezzppearar.tk +bezzsewheelw.cf +bezzsewheelw.ga +bezzsewheelw.gq +bezzsewheelw.ml +bezzsewheelw.tk +bf053.com +bf3hacker.com +bf8819.org +bf8878.com +bfat7fiilie.ru +bfax.email +bfbr6.us +bfdsfgrg8bnvce.monster +bfdwam.us +bfdyn.com +bffdwgrg.shop +bfg1yh.best +bfgasdsd.site +bfhbrisbane.com +bfhgh.com +bfig.xyz +bfile.site +bfitcpupt.pl +bflier.com +bfo.kr +bfory.ru +bfoyk.live +bfre675456mails.com +bfremails.com +bfsnan.com +bftoyforpiti.com +bfuli.xyz +bfull.site +bfuz8.pl +bfzutpeo.shop +bg-di.com +bg-report.com +bg4llrhznrom.cf +bg4llrhznrom.ga +bg4llrhznrom.gq +bg4llrhznrom.ml +bg4llrhznrom.tk +bg613.top +bgboad.ga +bgboad.ml +bgchan.net +bgd32.com +bget0loaadz.ru +bget3sagruz.ru +bgfibank.cd +bgget2zagruska.ru +bgget4fajli.ru +bgget8sagruz.ru +bgi-sfr-i.pw +bgisfri.pw +bgmilya.ru +bgmktgsolutions.net +bgolive.org +bgoy24.pl +bgpwall.org +bgsaddrmwn.me +bgsb.site +bgsimpson.com +bgtechnik.tk +bgtedbcd.com +bgth.site +bgtmail.com +bgtmirror.ru +bgtservices.com +bgx.ro +bgzbbs.com +bhaappy0faiili.ru +bhaappy1loadzzz.ru +bhadoomail.com +bhag.us +bhakti-tree.com +bhambriinternational.com +bhappy0sagruz.ru +bhappy1fajli.ru +bhappy2loaadz.ru +bhappy3zagruz.ru +bhapy1fffile.ru +bhapy2fiilie.ru +bhapy3fajli.ru +bharatpatel.org +bhay.org +bhbh.online +bhbh.shop +bhbh.space +bhbh.website +bhcfp.com +bhcompliance.net +bhcompliance.org +bhd3ch.com +bhddmwuabqtd.cf +bhddmwuabqtd.ga +bhddmwuabqtd.gq +bhddmwuabqtd.ml +bhddmwuabqtd.tk +bhebhemuiegigi.com +bheriyji.shop +bhfeed.com +bhgm7.club +bhhsblake.biz +bhk.casino +bhk9c1su3.xyz +bhk9yp6glh.men +bhkvzgkzx.shop +bhmhg.com +bhmhtaecer.pl +bhmobilemail.com +bho.hu +bho.kr +bhollander.com +bhpdariuszpanczak.pl +bhqxv.us +bhrenovarb.ru +bhringraj.net +bhrofficial.online +bhrpsck8oraayj.cf +bhrpsck8oraayj.ga +bhrpsck8oraayj.gq +bhrpsck8oraayj.ml +bhrpsck8oraayj.tk +bhs70s.com +bhslaughter.com +bhss.de +bhswlx.com +bhtcnpm.ga +bhu1b.info +bhuiyanadagency.com +bhumi.ong +bhuyarey.ga +bhuyarey.ml +bhwshop.com +bhx.money +bhzdqb.us +bi-meca.com +bi0qq.us +bi456.com +bia.digital +bia20446216.xyz +bia20645613.xyz +bia20866047.xyz +bia21168958.xyz +bia21995383.xyz +bia22010427.xyz +bia23207112.xyz +bia24485224.xyz +bia24751152.xyz +bia25249609.xyz +bia25424823.xyz +bia25829333.xyz +bia26272077.xyz +bia27414248.xyz +bia27461573.xyz +bia28413456.xyz +bia28952946.xyz +bia29541220.xyz +bia29547088.xyz +bia29548522.xyz +bia29556265.xyz +bia29564886.xyz +bia29568185.xyz +bia29571547.xyz +bia29582343.xyz +bia29595493.xyz +bia29598272.xyz +bia29612283.xyz +bia29621328.xyz +bia29622726.xyz +bia29626744.xyz +bia29667004.xyz +bia29701556.xyz +bia29716378.xyz +bia29726932.xyz +bia29734429.xyz +bia29742659.xyz +bia29743532.xyz +bia29753635.xyz +bia29753640.xyz +bia29782852.xyz +bia29785320.xyz +bia29821800.xyz +bia29862834.xyz +bia29882873.xyz +bia29890050.xyz +bia29894373.xyz +bia29902971.xyz +bia29905875.xyz +bia29924068.xyz +bia29926145.xyz +bia29939022.xyz +bia2baazi.com +bialy.agencja-csk.pl +bialystokkabury.pl +bian.capital +bianat.net +bianco.cf +bianco.ga +bianco.ml +biaplunsuc.cf +biaplunsuc.ga +biaplunsuc.gq +biaplunsuc.tk +biazz2.live +bibars.cloud +bibbiasary.info +bibersurubu.site +bibibet.network +bibicaba.cf +bibicaba.ga +bibicaba.gq +bibicaba.ml +bibizesor.com +bible-survey.com +bibleblog.com +bibleshark.com +biblesmuggler.com +bibliadoemagracimento.com +bibliapopular.org +bibliavulgata.com +biblica.dev +biblicallongevitymiracle.com +biblider.ru +biblio-globus.space +bibliobot.net +bibliobot.org +bibliographic.info +bibliomani.se +biblioostrov.ru +bibliotecadigital.site +bibliotecavirtualturner.com +bibliotekadomov.com +bibnchip.net +biboxcons.cf +biboxcons.ga +biboxcons.gq +biboxcons.ml +biboxcons.tk +bibucabi.cf +bibucabi.ga +bibucabi.gq +bibucabi.ml +bicbank.cd +bicence.com +biceoutlets.site +bicienvia.com +bickwanck.com +bico.site +bicyclddjg.space +bicyclemaze.com +bicyclesforum.com +bid4africa.com +bid4wheels.com +bidb8r.xyz +bidcoin.cash +bidcoin.money +bidcoin.site +bidcoin.space +bidcoins.network +bidcoins.online +bidcoins.space +bidelateptque.com +bidjapan.net +bidli.com +bidly.pw +bidolukampanya.online +bidolukampanya.xyz +bidoubidou.com +bidourlnks.com +bidplatform.click +bidplatform.org +bidplatform.space +bidslammer.org +bidstreamer.net +bidu.cf +bidu.gq +bidvmail.cf +bieberclub.net +biedaw.xyz +biedra.pl +biedron2020.com +biegamsobie.pl +bielizna.com +bieliznasklep.net +bienparisy.info +bier.cool +bierstadtlagerhaus.com +bieszczadyija.info.pl +bietthunghiduong.website +bievent.xyz +biewogofo.ml +bieyfcanp.ml +bieyfcanpaad.ml +bifaqp.com +bifaqp.net +bifayl.com +bifayl.net +bifayouxi.net +bifayule.net +bifrost.su +bifvlog.com +big-cactus.host +big-dig.ru +big-discounts.online +big-max24.info +big-mro.com +big-news.top +big-phone.ru +big-possible.net +big-post.com +big-prizes-place4.life +big-sales.ru +big-wife.xyz +big1.us +big2poker.online +big5time.com +big777a.org +big88bet.online +bigatel.info +bigbang-1.com +bigbangfairy.com +bigbash.ru +bigbayouyouth.com +bigbearshop.ru +bigbeastbucks.com +bigbet4d.com +bigbetco.info +bigbetco.org +bigbets90.org +bigbluqffr.space +bigbn.com +bigbobs.com +bigbohmmer252.com +bigboobyasians.com +bigboostmaxpro.com +bigbowltexas.info +bigboy.org +bigbreast-nl.eu +bigbro.website +bigbropoker.best +bigbropoker.biz +bigcactus.space +bigchance.com +bigcock.black +bigcock.monster +bigcocklive.com +bigcoin.best +bigcrazystore.com +bigcrop.pro +bigdat.fun +bigdeal.media +bigdealinc.co +bigdepo-onlinecasi2020.online +bigdogautoparts.com +bigdresses.pw +bigeasytobacco.com +bigeasytobacconist.com +bigel.com +bigfangroup.info +bigfangroup.name +bigfastmail.com +bigfatmail.info +bigfoottickets.com +bigg.pw +biggblamgen.cf +biggblamgen.ml +biggblamgen.tk +biggboss12.us +biggerbuttsecretsreview.com +biggestdeception.com +biggestgay.com +biggestresourcelink.info +biggestresourceplanning.info +biggestresourcereview.info +biggestresourcetrek.info +biggestyellowpages.info +bigguy.site +bighome.site +bighost.bid +bighost.download +bigideamastermindbyvick.com +bigify.com +bigimages.pl +biginfoarticles.info +bigjoes.co.cc +biglietta.online +biglinks.me +biglive.asia +bigload.fun +biglol.club +bigmail.info +bigmine.ru +bigmon.ru +bigmood.xyz +bigoofficial.com +bigorbust.net +bigotes.org +bigpicnic.ru +bigpicturecharts.com +bigplace.online +bigprizesishere10.life +bigprofessor.so +bigredtour.net +bigseopro.co.za +bigsizetrend.com +bigsocalfestival.info +bigspotpanel.com +bigstart.us +bigstring.com +bigtetek.cf +bigtetek.ga +bigtetek.gq +bigtetek.ml +bigtetek.tk +bigtoken.cryptolovers.id +bigtokenican2.hmail.us +bigtokenican3.hmail.us +bigtonehorsens.com +bigtuyul.me +bigtw.at +bigua.info +bigvalleybingo.com +bigvalleydesign.com +bigvietnam.online +bigwavedigital.com +bigwhoop.co.za +bigwiki.xyz +bigwin333.org +bigxxx.space +bigzmei.site +bih2dd.com +biiba.com +bij.pl +bijouterie-savinel.com +bijouxredo.com +bikebee.ru +bikebee.space +bikebee.website +bikebee.xyz +bikebees.bike +bikebees.biz +bikebees.guru +bikebees.info +bikebees.net +bikebees.online +bikeforthebuns.info +bikehikecanada.com +bikekhabri.com +bikelabel.com +bikerboof.com +bikerbrat.com +bikerglossary.com +bikerslawyer.com +bikesatnight.com +bikesculpture.com +bikesculptures.com +bikesshop.live +bikethebyways.com +biketrend.se +bikevideos.ro +bikeway.online +bikingwithevidence.info +bikiniclock.com +bikinihiitchallenge.com +bikissimo.com +bikser.ru +bikubiku.com +bilans-bydgoszcz.pl +bilbyihva.space +bilderbergmeetings.org +bilderservice.org +bildikyerim.com +bile.best +bilecikorganizasyon.com +bilestone.best +biletalsat.xyz +biletgrup.com +biletsavia.ru +biletteatr24.ru +bileuder.site +bilgetrade.com +biliberdovich.ru +bilingualbibles.org +bilisimyayincilik.com +bilistand.site +bill-consolidation.info +bill.pikapiq.com +bill.vote +billardhall.com +billcarpenterservicesinc.com +billcromie.net +billewingconstruction.com +billgatescoin.site +billgatescoins.site +billho.website +billiament.info +billig-vvs.se +billigerliefern.com +billiges-notebook.de +billigpillersverige.xyz +billionaire-project777.ru +billionaireblog.com +billiondollargoal.com +billionmakers.com +billionvj.com +billkros.net.pl +billmooz.com +billofiegb.space +billpayo.com +billpoisonbite.website +billseo.com +billspropertymaintenance.com +billsremndr.xyz +billwizardrewards.com +billybasin.online +billycarson.ga +billyjoellivetix.com +bilovor.ru +bilri-car.ru +bilytica.africa +bim-aloman.ru +bimarketdigital.com +bimehshoma.com +bimgir.net +bimishops.site +bimky.ru +bimmarket.com +bimmerdieselna.com +bimt.us +binancebbt.net +binarenoptionenhandeln.de +binary-bonus.net +binary7day.com +binaryoptions.ru +binarytrendprofits.com +binatangmall.com +binaural.design +binboss.ru +binbug.xyz +bindrup62954.co.pl +bindware.app +bineshsarmad.com +bingakilo.ga +bingakilo.ml +bingbaloney.com +binge.com +binghuodao.com +bingo-bets.com +bingo-game-set.com +bingobet83.com +bingobyen.com +bingoindonesia.com +bingolarackiralama.com +bingolife.biz +bingomama.com +bingotonight.co.uk +bingzone.net +bingzz.live +binka.me +binkgisjunc.cf +binkgisjunc.gq +binkmail.com +binnary.com +binnerbox.info +binnicmail.ga +bino-jobs.info +binoculars-rating.com +binojobs.info +binoma.biz +binumartep.cf +binwindvil.cf +binwindvil.ga +binwindvil.ml +binwindvil.tk +binxic.ru +bio-bolsas.com +bio-consultant.com +bio-gym.com +bio-muesli.info +bio-muesli.net +bio-tonus.site +bio.clothing +bio.tj +bio.toys +bio.trade +bio4skin.ru +bioauto.info +biobalance-dietstylenow.com +biobalancefitnow.com +biobalancemaletoday.com +biobemi.ga +biobemi.gq +biobemi.ml +bioberreld.cf +bioberreld.ga +bioberreld.gq +bioberreld.tk +bioblogfi.cf +bioblogfi.ga +bioblogfi.gq +bioblogfi.tk +biobreak.net +biocaf.dev +biocharculture.xyz +biocompute.africa +biodieselrevealed.com +biodomstroy.ru +biodynamicchildbirth.org +biodynamicman.com +biofitstudios.com +bioflokus.com +biofuelsmarketalert.info +biogard-bio.site +biogard24.space +biogardys.space +biogardys.website +biogeniq.net +biohackworldwide.com +bioinformatics.rocks +biolaqq.com +biolisri.cf +biolisri.ga +biolisri.gq +biolisri.ml +biolisri.tk +biologybookworld.com +biologyreverse.us +biomba.xyz +biometicsliquidvitamins.com +bionagneu.cf +bionagneu.gq +bionagneu.tk +bionamic.com +bioncore.com +bione.co +bionikgame.ru +bionome.com +bionomeskin.com +bionomtherapy.com +bionomtheraworks.com +bioperformancecenter.net +bioperformancecenter.org +bioperformancecenter.us +bioperformancelab.org +bioperformancelab.us +biopharma.website +biopharmax.org +bioplasticproduct.com +bioresonanthome.ru +biorezonans-warszawa.com.pl +biorocketblasttry.com +biorosen1981.ru +bioschwartz.ru +biosciptrx.com +bioshure.com +bioskop.design +bioskopxxi.online +biosmail.net +biosmetica.com +biosolarpanels.com +biosor.cf +biosoznanie.ru +biostatistique.com +biostatstudio.org +biosupre.net +biosupre.org +biosyniksx.space +biotasix.com +biotechhub.com +biotika.es +biowerk.com +biperca.cf +biperca.ga +biperca.gq +biperca.ml +biperca.tk +bips.best +birabet.xyz +biraci.gq +biraci.ml +biraci.tk +birangona.org +birbakmobilya.com +bird-gifts.net +bird.support +birdbro.club +birdcagephotobooth.com +birderstravel.net +birdlover.com +birdnacan.gq +birdnacan.tk +birdoneoxl.space +birdonn.com +birdseed.shop +birdsfly.press +birebirbahis.com +birecruit.com +birgind.com +birgtrk.website +birkenstockadmin.site +birkinbags.info +birkinhermese.com +birmana.cf +birmana.ml +birmandesign.com +birminghamaddictiontreatment.com +birminghamalcoholrehab.com +birminghamcocainerehab.com +birminghamfans.com +birminghamheroinrehab.com +birminghamquote.com +birngames.site +biro.gq +biro.ml +biro.tk +biroistvan.eu +birsanduskabin.com +birsanmimarlik.com +birtattantuni.com +birtbannister.com +birthassistant.com +birthcarestaffing.com +birthday-cards.com +birthday-gifts.info +birthday-party.info +birthmomsummit.com +birthmothermentors.com +birthmothersummit.com +birtmail.com +biruni.cc.marun.edu.tr +biruni.cc.mdfrun.edu.tr +biscutt.us +bisdak.xyz +biser.woa.org.ua +bishake.club +bishkechki.com +bishopdrkpyohannan.org +bishoptimon74.com +bisiklopedi.net +biskampus.ga +biskvitus.ru +bisnisbisnis.net +bisonte.best +bissabiss.com +bissellballantyne.net +bistonplin.com +bistroottawa.net +bistrosignatures.net +bisuteriazaiwill.com +bit-degree.com +bit-ion.net +bit-led.ru +bit-tehnika.in.ua +bit2tube.com +bit3716.com +bit4826.com +bitassetira.com +bitatilsec.com +bitbanger.systems +bitbaysafe.com +bitbeat.site +bitbees.com +bitbet.bet +bitbet.xyz +bitbet24.ru +bitbucks.org +bitbuymu.cf +bitbuymu.ga +bitbuymu.gq +bitbuymu.ml +bitchmail.ga +bitco-change.ru +bitcoin-miners.org +bitcoin-norge.org +bitcoin-payroll.com +bitcoin.ngo +bitcoin2014.pl +bitcoinandmetals.com +bitcoinarmory.org +bitcoinbattle.fun +bitcoinbattle.org +bitcoinbet.us +bitcoinbonus.org +bitcoincodesafe.space +bitcoindocumentation.com +bitcoinexchange.cash +bitcoinfabric.com +bitcoini-bestchange.ru +bitcoininvestmentforum.com +bitcoinisland.org +bitcoinplanning.com +bitcoinpoke.com +bitcoinrevolt.biz +bitcoins-circuit.com +bitcoinsandblockchainssc.com +bitcointradenow.site +bitcointrader24.site +bitconecct.ru +bitcooker.com +bitcorp.space +bitcryptofund.com +biteindustry.tech +bitesatlanta.com +bitevolution.website +bitex.market +biteye.one +bitfwd.net +bitini.club +bitkey.com +bitkihane.online +bitkiselcozumleri.xyz +bitkizenlosyon.xyz +bitkizenlosyonu.xyz +bitkrak.com +bitlessthegame.com +bitlinux.org +bitlisisrehberi.xyz +bitlislisesi.xyz +bitlisnemrut.com +bitlly.xyz +bitloan.one +bitlucky.com +bitly.space +bitly.website +bitmain-antminer-s17.com +bitmarketnow.com +bitmax-io.host +bitmax-website.host +bitmeads.com +bitmonkey.xyz +bitovik-rostov.ru +bitpk.trade +bitpost.site +bitrage.app +bitrix-market.ru +bitrohan.ml +bits-n-bytes2015.com +bitsbuilder.com +bitsbuilder.org +bitsharesbts.com +bitsio.net +bitsminir.com +bitso.design +bitsofshit.com +bitsslto.xyz +bitsybox.com +bitterpanther.info +bitterrootrestoration.com +bittfera.com +bittorrentsearchweb.rentals +bituronline.com +bitvg.live +bitwerke.com +bitwhites.top +bitx.nl +bitxu.online +bityakuza.com +bityemedia.com +bitymails.us +bitzonasy.info +biuro-naprawcze.pl +bived.com +bivehe.xyz +bixbet161.com +biyamitibushveldcamp.com +biyeshop.site +biyiklicafe.icu +biyo-recipe.com +biz-giant.com +biz-king.com +biz-monster.com +biz.st +bizalem.com +bizalon.com +bizax.org +bizbiz.tk +bizcast.com +bizcitizens.com +bizcomail.com +bizfests.com +bizfi.xyz +bizhacks.org +bizhardware.com +bizhig.com +bizimails.com +bizimalem-support.de +bizimbahis.net +bizimbahis133.net +bizimbahis14.net +bizimbahis52.net +bizimbahis76.net +bizimbahis87.net +bizimle.net +bizkvadr.ru +bizlaunchuniversity.info +biznagadecolores.com +biznes-pravo.ru +biznetpentest.com +bizoncovers.com +bizplace.info +bizsearch.info +bizsportsnews.com +bizsportsonlinenews.com +biztime.tk +biztoolkit.com +bizuteriazklasa.pl +bizybin.com +bizybot.com +bizzinfos.info +bj-tmg.com +bj027.site +bj1fx.host +bjaum.us +bjbekhmej.pl +bjdhrtri09mxn.ml +bjhaicheng.net +bjif.net +bjin000.com +bjin333.com +bjj.icu +bjjeex.rest +bjjj.ru +bjldwx.com +bjmd.cf +bjmsulawesi.xyz +bjog.blog +bjog.tech +bjornmeulendijks.online +bjq53.space +bjqjvtodz.shop +bjsnc.com +bjsy6p.com +bjtpg.us +bjwc.us +bjxinshili.com +bjxt.ml +bjxtech.com +bjzshw.com +bjzxb.com +bk19e6.us +bk2010.club +bkbgzsrxt.pl +bkbmfb.fun +bkckc.com +bkdmll.fun +bkegfwkh.agro.pl +bkfarm.fun +bkfturkiye.com +bkg4rk.com +bkhmmb.fun +bki1.ru +bki7rt6yufyiguio.ze.am +bkijhtphb.pl +bkikontrol.ru +bkiug1.site +bkjmnx.fun +bkjmsk.fun +bkjmtp.fun +bkk-tour.info +bkkk.ru +bkkmaps.com +bkkpkht.cf +bkkpkht.ga +bkkpkht.gq +bkkpkht.ml +bklmbs.fun +bklmyt.host +bklynofficial.com +bklynskyway.com +bkm43.com +bknugywge.shop +bko.kr +bkpmht.fun +bkpmny.fun +bkpmwr.fun +bkqmks.fun +bkrmln.fun +bkrointernational.site +bksho.club +bktmyf.fun +bkukevanittersum.xyz +bkwmpr.fun +bkwmtd.fun +bkxdwnpvje.site +bkxmby.fun +bkxmqm.fun +bky168.com +bl.ctu.edu.gr +bl0.info +bl3xo7.us +bl5ic2ywfn7bo.cf +bl5ic2ywfn7bo.ga +bl5ic2ywfn7bo.gq +bl5ic2ywfn7bo.ml +bl5ic2ywfn7bo.tk +bl60.com +bl70.com +blablaboiboi.com +blablaboyzs.com +blabladoizece.com +blablo2fosho.com +blablop.com +blaboyhahayo.com +blacbuschia.tk +blaciser.cf +blaciser.ga +blaciser.gq +blaciser.ml +blaciser.tk +black-latte24.ru +black-magi.ru +black-magick.ru +black-mountain.tech +black-privoroti.ru +black-sharks.ru +black-stones.ru +black.bianco.cf +black2x.com +blackbabysitters.net +blackbeshop.com +blackbird.ws +blackbookdate.info +blackbox-official.ru +blackbox.cd +blackcashledger.com +blackcumsplatters.com +blackdiamondcc.org +blackdns.site +blackdragonfireworks.com +blackdrebeats.info +blacked-com.ru +blackeyedpeasmusic.biz +blackfer.xyz +blackfishdiscos.com +blackfriday.cd +blackfridayadvice2011.cc +blackfridaypanama.com +blackgarlictea.site +blackgate.tk +blackgoldagency.ru +blackgranitetop.top +blackgreenotl.xyz +blackgreenwastetyre.xyz +blackgreenwt.xyz +blackhat-seo-blog.com +blackhatmafia.com +blackhawkcurlingclub.com +blackheadkiller.net +blackhole.djurby.se +blackhole.targeter.nl +blackholezero.com +blackinbox.com +blackinbox.org +blackjack-gambling4money.com +blackjackmeesters.com +blacklab.ru +blacklabhosting.com +blacklatte-natural.ru +blacklattekahve.site +blackmagi.ru +blackmagicblog.com +blackmagick.ru +blackmagicspells.co.cc +blackmail.ml +blackmarket.su +blackmarket.to +blackmobile-1.info +blackpetty.recipes +blackprivoroti.ru +blackriverfirearms.com +blackrock-plat.com +blackrockasfaew.com +blackrutor.site +blacksarecooleryo.com +blackseo.top +blackshipping.com +blackswanbooksandmusic.com +blacktiemagician.com +blacktopscream.com +blackturtle.xyz +blackunicornconsulting.com +blackvioletbaby.com +blackwelltechnical.com +blacteocrafworth.tk +blaczajrang.ga +blaczajrang.ml +blaczajrang.tk +bladdebbzw.space +bladeandsoul-gold.us +blademod.icu +bladeshoc.fun +bladesmail.net +blagremont.ru +blahg.net +blahxhou.shop +blainvillecjd.com +blairdaly.com +blairhair.com +blak.net +blakasuthaz52mom.tk +blakekrueger.com +blakemail.men +blakepowell.org +blakesregisteredagents.com +blalachwhi.gq +blalachwhi.tk +blan.tech +blancheblatter.co +blanchhouse.co +blandbrin.xyz +blandcoconstruction.com +blandiose.org +blangbling784yy.tk +blankalive.us +blankgre.xyz +blankhe.buzz +blankhotel.com +blankwidth.fun +blarakfight67dhr.ga +blarneytones.com +blashatuff.cf +blashatuff.ga +blashatuff.ml +blashatuff.tk +blastcloud.com +blastcolos.ru +blastgods.ru +blasthron.ru +blastmail.biz +blastol.com +blasttru.xyz +blasttrus.xyz +blastxlreview.com +blatchfordrenewableenergy.com +blatopgunfox.com +blavixm.ie +blawg.net +blawg.org +blazercast.com +blazestreamz.xyz +blazinrod.com +bldg77.org +bldrogy.ru +bleakhalls.info +bleblebless.pl +bleederas.ga +bleederas.gq +bleederas.ml +bleederas.tk +bleedmaroon.com +blendercompany.com +blendertv.com +blerg.com +blessedwillow.com +blessient.monster +blessingvegetarian.com +blessloop.com +bletchleycipher.com +bleubers.com +blexx.eu +blfranco.com +blghq.xyz +blgs.xyz +blgshq.xyz +blgsly.xyz +blibrary.site +bliear.pro +bliejeans.com +blightpro.org +blightybrewery.com +blindpanda.info +blindparrot.info +blindshouston.com +blindskunk.info +blinkmage.com +blinkmatrix.com +blinkster.info +blinkweb.bid +blinkweb.top +blinkweb.trade +blinkweb.win +blip.ch +blippet.com +blissmusic.online +blitzed.space +blitzprogripthatshizz.com +bljekdzhekkazino.org +blkbright.com +blkchainvrfy.net +blkday.com +blm7.net +blm9.net +blmgw0.com +blmgw6.com +blndrco.com +blnkt.net +blntm.site +bloatbox.com +bloc.quebec +block-account.ru +block-coinhub.info +block-node.com +block-node.net +block-node.org +block.bdea.cc +blockblocks.bid +blockblocks.party +blockbudg.xyz +blockbusterhits.info +blockbusterkiosk.com +blockchain-wallet.live +blockchainalternativeinvestment.com +blockchaindesktop.com +blockchainlegal.technology +blockchainworldawards.com +blockchainworldeurope.com +blockchainworldexhibition.com +blockchainworldfund.com +blockchainworldfundmanagement.com +blockchn-fza4i.com +blockdigichain.com +blockenstock.com +blockersspy.com +blockgemini.org +blockhousecalifornia.com +blockhouseco.com +blocklattice.xyz +blockmonent.com +blocknames.bid +blocknetdx-coinhub.info +blockopsteam.com +blockoviacoinpay.com +blockoviapay.com +blocksolved.com +blockthatmagefcjer.com +blocktrail.org +blockzer.com +bloconprescong.xyz +blocquebecois.quebec +blocurrem.cf +blocurrem.ga +blocurrem.gq +blocurrem.ml +blog-1.ru +blog-couteau.com +blog-galaxy.com +blog-perfect.club +blog-shopping.info +blog-stanislav.ru +blog.annayake.pl +blog.metal-med.pl +blog.net.gr +blog.quirkymeme.com +blog.sjinks.pro +blog.yourelection.net +blog101.com +blog34.xyz +blog365.com +blog4us.eu +blog5984.ru +blog68h.site +blogaddict.com +blogagent.com +blogalert.com +blogalog.com +blogamerica.com +blogarama.org +blogauction.com +blogauctions.com +blogav.ru +blogbaseball.com +blogbash.com +blogbuffet.com +blogbuildingu.com +blogbusiness.com +blogcash.com +blogcast.blog +blogcast.lgbt +blogcast.money +blogcast.us +blogcast.wtf +blogcensorship.com +blogchampionship.com +blogchannels.com +blogcollege.com +blogcomics.com +blogconcierge.com +blogcouture.com +blogdad.com +blogdiary.live +blogdobg.com +blogdollars.com +blogdomain.com +blogdr.com +blogdynamics.com +blogemail.com +blogertsd.net +blogerus.ru +blogeurope.com +blogexperts.com +blogfilm.com +blogfolsom.com +blogfortetreinosuplementos.com +bloggames.com +bloggear.com +blogger-dvd.ru +bloggermailinfo.info +bloggermania.info +bloggersxmi.com +bloggg.de +blogging.com +bloggingargentina.com.ar +bloggingblog.com +bloggingdoc.com +bloggingnow.club +bloggingnow.pw +bloggingpro.fun +bloggingpro.host +bloggingpro.info +bloggingpro.pw +bloggistamomma.info +blogglobal.com +bloggorextorex.com +bloggroups.com +bloghaiti.com +bloghandbook.com +bloghangbags.com +bloghawaii.com +bloghost.com +bloghosting.website +blogiddaa.xyz +bloginc.com +blogindustry.com +blogiraq.com +blogisit.cf +blogisit.ga +blogisit.gq +blogisit.tk +blogisrael.com +blogistanbul.xyz +blogjamatlantic.com +blogjustice.com +blogketer.com +blogking.com +blogla.com +bloglab.com +bloglabs.com +bloglbs.xyz +bloglocal.com +bloglurichardnet.info +blogmania.site +blogmaska.ru +blogmastercom.net +blogmasters.com +blogmastery.com +blogmate.com +blogmechanic.com +blogmen.com +blogmexico.com +blogmommy.com +blogmovies.com +blogmulher.online +blogmusic.com +blogmyway.org +blogneproseo.ru +blogneton.site +blogneton.xyz +blognetworks.com +blognewbies.com +blognews.com +blognow.com +blognutrition.com +blogoagdrtv.pl +blogodietax.ru +blogographies.com +blogomaiaidefacut.com +blogomob.ru +blogondemand.com +blogonews2015.ru +blogos.com +blogos.net +blogosfer.com +blogoworke.ru +blogox.net +blogpartner.com +blogpartners.com +blogpay.com +blogpentruprostisicurve.com +blogperks.com +blogpersonals.com +blogpetition.com +blogpinmag.xyz +blogplanet.com +blogplus.com +blogpoints.com +blogpolitics.com +blogpr.com +blogpress.info +blogpress.pro +blogpsychic.com +blogpsychics.com +blogpundit.com +blogpundits.com +blogradar.com +blogremote.com +blogroll.com +blogrtui.ru +blogs.com +blogsanjose.com +blogsapp.xyz +blogschool.edu +blogsecure.com +blogsgaia.com +blogshoponline.com +blogsingles.com +blogsiteonline.com +blogslabs.xyz +blogslbs.xyz +blogsly.xyz +blogsme.ru +blogsmundi.com +blogsoap.com +blogsoaps.com +blogsoccer.com +blogspam.ro +blogspangea.com +blogsports.com +blogspot.miami +blogspot.work +blogspot1325.ru +blogspp.xyz +blogster.host +blogster.info +blogstudent.com +blogtabloids.com +blogthis.com +blogtickets.com +blogtraining.com +blogtribe.com +blogtribes.com +blogtron.com +blogtycoon.com +blogues.org +blogwatchdog.com +blogwiki.com +blogwireless.com +blogwithbloggy.net +blogxxx.biz +blogyearbook.com +blogzone.com +blolohaibabydot.com +blolololbox.com +blomail.com +blomail.info +blonded.club +blonnik1.az.pl +blood-pressure.tipsinformationandsolutions.com +blood.house +blood.link +bloodbuckets.com +bloodchain.org +bloodofmybrother.com +bloodonyouboy.com +bloodpresssureformula1.online +bloodrunsdownamountain.net +bloodsugarprogram.com +bloodysally.xyz +bloog-24.com +bloog.me +bloom.coupons +bloomable.info +bloomable.store +bloombrief.com +bloomintg.tk +bloominvoice.com +bloommarket.com +bloomning.com +bloomning.net +bloompi.ru +bloomsbycelebrations.com +bloop.host +blop.bid +blop.cloud +bloq.ro +bloqmental.ru +bloqstock.com +bloszone.com +blow-job.nut.cc +blowersusa.com +blowtac.net +blowterlu.cf +blowterlu.ga +blowterlu.ml +blowterlu.tk +blowzip.com +blowzy715pj.online +blox.eu +bloxter.cu.cc +blqthexqfmmcsjc6hy.cf +blqthexqfmmcsjc6hy.ga +blqthexqfmmcsjc6hy.gq +blqthexqfmmcsjc6hy.ml +blqthexqfmmcsjc6hy.tk +blr5888.com +blr698.com +blr9837.com +blrt.email +blrt.guru +blrt.link +blrt.mobi +blrt.site +blrt.video +blrtapp.net +blrtplugin.com +bls-i.icu +bls-v.icu +blspiwvv.shop +blst.gov +blttorrent.site +bltzloto.ru +blucd.org +blue-magic.red +blue-mail.org +blue-rain.org +blueauramassage.com +bluebabyrecordings.com +bluebaylocation.com +bluebottle.com +bluecherry.xyz +bluechipinvestments.com +bluecitynews.com +bluecollarguitarpickupsonline.com +bluecoreshorties.com +bluecrossrehabcenters.com +bluedanubetours.com +bluedelivery.store +bluedeluge.com +bluedomebooks.com +bluedumpling.info +bluefishpond.com +blueforcemedia.net +bluefriday.info +bluefriday.top +bluegingerchinesetakeaway.com +bluegorillatradesman.info +bluegrassforum.com +bluehorizonsoftware.net +bluejansportbackpacks.com +bluejaysjerseysmart.com +bluejube.org +bluelagoonnationalpark.com +bluelawllp.com +blueleafhosting.com +bluelinebuy.com +bluemangocafewaterford.com +bluemountainrainharvestingsystems.com +bluemountainrainwaterharvesting.com +bluemountainrainwaterharvestingsystems.com +bluenebula.us +bluenwhiteatl.com +blueocean-worldwide.com +blueoceanrecruiting.com +blueorchidballinteer.com +blueowlhomepros.com +bluepacificcapital.com +bluepage.shop +bluepills.pp.ua +bluepowersite.com +blueprintbet.com +blueprintci.com +blueprintconnections.com +blueridgebeast.com +blueright.net +blueriverclub.com +blueriverknights.com +bluerootssparkle.com +blueseashotels.com +bluesestodo.com +blueskytutorials.com +bluesmail.pw +bluespiderart.com +bluestaremst.com +bluestonethreads.com +bluetoothbuys.com +bluetoothheadset4u.com +bluetoothmodulefactory.com +bluetree.family +bluetree.holiday +bluetreephuket.fun +bluetreephuket.holiday +bluewall.dev +bluewerks.com +blueyi.com +bluffersguidetoit.com +blulapis.com +blulapka.pl +blumfirmfrog.cf +blumfirmfrog.ga +blumfirmfrog.gq +blumfirmfrog.tk +blumpjam.com +blundstoneurbans.com +blunomval.cf +blunomval.ga +blupeardesign.com +blurbulletbody.website +blurmail.net +blurme.net +blurp.tk +blurpemailgun.bid +blutig.me +blutmapound.tk +bluwinks.com +bluwurmind234.cf +bluwurmind234.ga +bluwurmind234.gq +bluwurmind234.ml +bluwurmind234.tk +bluyondr.com +bluyondr.org +blz700.com +blzbd.us +bm-osipov.ru +bm-xy.com +bm0371.com +bm2grihwz.pl +bmaker.net +bmall.sk +bmca114.com +bmcmail.org +bmdwc.net +bmetfy.info +bmgm.info +bmi-facts.org +bmkc6k.com +bmllw.com +bmonlinebanking.com +bmonte.world +bmpk.org +bmpqx1.site +bmronsgr.pro +bmsdfw.biz +bmsojon4d.pl +bmswup.us +bmteach.info +bmtjokqa.shop +bmvcfp.us +bmw-ag.cf +bmw-ag.ga +bmw-ag.gq +bmw-ag.ml +bmw-ag.tk +bmw-i8.gq +bmw-keyauto.site +bmw-mini.cf +bmw-mini.ga +bmw-mini.gq +bmw-mini.ml +bmw-mini.tk +bmw-raspily.ru +bmw-rollsroyce.cf +bmw-rollsroyce.ga +bmw-rollsroyce.gq +bmw-rollsroyce.ml +bmw-rollsroyce.tk +bmw-service-mazpol.pl +bmw-x5.cf +bmw-x5.ga +bmw-x5.gq +bmw-x5.ml +bmw-x5.tk +bmw-x6.ga +bmw-x6.gq +bmw-x6.ml +bmw-x6.tk +bmw-z4.cf +bmw-z4.ga +bmw-z4.gq +bmw-z4.ml +bmw-z4.tk +bmw4life.com +bmw4life.edu +bmwgroup.cf +bmwgroup.ga +bmwgroup.gq +bmwgroup.ml +bmwinformation.com +bmwmail.pw +bmwqq.website +bmwqqq.info +bmwriders.com +bmyw.us +bn373.top +bnaishop.site +bnb.monster +bnb.nu +bnbmb.com +bnbwarnet.com +bnbx.email +bncedeolendkc54042.cf +bncedeolendkc54042.ga +bnckms.cf +bnckms.ga +bnckms.gq +bnckms.ml +bncoastal.com +bnd.app +bndapp.xyz +bndata.icu +bneorc.site +bneus.club +bnfgtyert.com +bnghdg545gdd.gq +bngui.live +bnimanchesternorth.com +bnintl.com +bnle844z.xyz +bnm612.com +bnmjhbkj.site +bnoko.com +bnote.com +bnsfilms.com +bntmvo.com +bnuis.com +bnv0qx4df0quwiuletg.cf +bnv0qx4df0quwiuletg.ga +bnv0qx4df0quwiuletg.gq +bnv0qx4df0quwiuletg.ml +bnv0qx4df0quwiuletg.tk +bnwbrg.com +bnxp5h.site +bnyzw.info +bo5e.icu +bo7uolokjt7fm4rq.cf +bo7uolokjt7fm4rq.ga +bo7uolokjt7fm4rq.gq +bo7uolokjt7fm4rq.ml +bo7uolokjt7fm4rq.tk +boabusinessfunding.com +boacoco.cf +boacoco.ga +boacoco.gq +boacoco.ml +boacoco.tk +boaconsswal.cf +boaconsswal.tk +boacreditcard.org +boamericaadvrs.space +boardbets90.net +boardroom.productions +boardroom.video +boardroommedia.asia +boardsandstuff.com +boardscriptz.xyz +boardshades.com +boardtime.ru +boarebec.cf +boarebec.ga +boarebec.gq +boarebec.ml +boastfullaces.top +boastfusion.com +boat59.website +boatchartersflores.com +boatcoersdirect.net +boater-x.com +boatgypsys.info +boating.page +boatloanz.com +boatmail.us +boatmoon.com +boatparty.today +boatrampapp.com +boatrentalsmarcoisland.com +bob.inkandtonercartridge.co.uk +bobablast.com +bobaetown.com +bobandvikki.club +bobashiping4.com +bobashiping5.com +bobasp123.com +bobastore.site +bobazy2.com +bobazy3.com +bobazy6.com +bobazy8.com +bobbakazoo.com +bobbal7.net +bobbal9.net +bobberubethevillages.com +bobbohotel.online +bobby-unique.ru +bobbydcrook.com +bobcasino20.com +bobfilm.xyz +bobfilmclub.ru +bobfournier.com +bobisback.com +bobmail.info +bobmensch.com +bobmurchison.com +bobocie4.site +bobocooler.com +bobohieu.tk +boborobocobo.com +bobq.com +bobs.dyndns.org +bobscellju.cf +bobscellju.ga +bobscellju.ml +bobsdetice.ml +bobtix.fun +bobzc.com +bocaneyobalac.com +bocasartist.net +bocav.com +bocba.com +boccelmicsipitic.com +boceuncacanar.com +bochkacraft.ru +bochkovski.ru +bocigesro.xyz +bocil.tk +bockerme.com +bocldp7le.pl +bocps.biz +bod7942.com +bod8282.com +bodachina.com +bodeproreview.com +bodhi.lawlita.com +bodlet.com +bodmod.ga +bodog-asia.net +bodog-poker.net +bodog180.net +bodog198.net +bodrumcozummilas.xyz +bodrummixs.info +bodrumsozluk.xyz +body55.info +bodybuildingdieta.co.uk +bodybuildings24.com +bodybyrob.org +bodycareshop.life +bodydiamond.com +bodyenhancexl.com +bodyhackt.com +bodyhealthyself.info +bodylangaugela.com +bodylasergranada.com +bodylinedesign.com +bodymb.online +bodyplanes.com +bodyscrubrecipes.com +bodyshop.life +bodystyle24.de +bodysurfingchallenge.com +bodywraps.us +boee-property.com +boeltehall.com +boementers.ru +boeogoxy.site +boero.info +boersy.com +boes.info +boeutyeriterasa.cz.cc +bofamily.ru +boffoi.tokyo +bofrateyolele.com +bofseme.ga +bofseme.ml +bofseme.tk +bofthew.com +bofywyi.space +bog3m9ars.edu.pl +bogalec.cf +bogalec.ga +bogalec.gq +bogalec.ml +bogalec.tk +bogdad.com +bogdanchikodyvanchik.ga +boggledosh.com +bogiez.org +bogir.club +bogneronline.ru +bogor-mitsubishi.com +bogotaconf.co +bogotadc.info +bogotaredetot.com +bogsmoutlet.com +bohani.cf +bohani.ga +bohani.gq +bohani.ml +bohani.tk +bohead.com +bohemiantoo.com +bohobuffet.com +bohoce.xyz +bohook.net +bohoupa.cf +bohoupa.ga +bohoupa.gq +bohoupa.ml +bohoupa.tk +bohrer-shop.ru +bohuilc.com +boian.ru +boijitogel.net +boikasedon.ga +boiler-stout.ru +boimail.com +boinkmas.top +boise-real-estate.com +boisebasketbrigade.com +boisecityquote.com +boisehill.com +boisehomerebate.com +boiserockssocks.com +boisevirtual.tours +bojagi.com +bojcheski.dev +bojiaman.com +bojio.online +bojiogame.net +bojogalax.ga +bojuke.club +bok-6400.info +boke055.com +boke17.com +boke177.com +boke34.com +boke388.com +boke399.com +boke41.com +boke44.com +boke53.com +boke577.com +boke700.com +boke74.com +boke755.com +boke955.com +bokel.dev +bokep.video +bokepmelayu.org +bokepmovie.online +bokikstore.com +bokilaspolit.tk +boklipased.tk +bokllhbehgw9.cf +bokllhbehgw9.ga +bokllhbehgw9.gq +bokllhbehgw9.ml +bokllhbehgw9.tk +bokongindah.com +boks.site +boks4u.gq +boksclubibelieve.online +bokstone.com +bol228.site +bola208.com +bola2289.online +bola228run.com +bola59.net +bola918.com +bola918.net +bola918.org +bolaaman.com +bolaeuro.com +bolagemar.online +bolahokiqq.club +bolahokiqq.online +bolaklikwin188.xyz +bolaku88.xyz +bolalogam.com +bolalogam.online +bolalogam.org +bolamas88.online +bolamivo.net +bolaparis.org +bolaqq11.com +bolaqq11.net +bolaqq11.xyz +bolasedot.com +bolatmakine.xyz +bolawd.org +bolawinner88.org +bold.ovh +boldie.media +boldlifemovement.com +boldporpa.ml +boldporpa.tk +boldtechusa.com +boleisinaqjskf42682.cf +boletaelectronicachile.com +bolg-nedv.ru +bolinq.shop +bolinylzc.com +bolisad.com +boliviya-nedv.ru +bollouisvuittont.info +bollyastro.com +bollywoodbabylon.com +bollywoodu.com +bolomycarsiscute.com +bolshakova-studio.ru +bolshakovastudio.ru +bolsherechye.ru +bolt-bolt.info +bolt-opt.info +bolt.net +bolususumerapi.com +boluxman.xyz +bombamail.icu +bombay-cuisine-carlow.com +bombay-cuisine-takeaway.com +bombay-tandoori-tralee.com +bombayornaments.com +bombayspeaks.com +bombaytandooritakeaway.com +bombermanba.com +bombgovernorbrow.website +bomboladielioperpalloncini.com +bombshellbrewers.com +bombsquad.com +bomcodigo.com +bommails.ml +bomontifiltresiz.com +bomprogram.com +bomtool.com +bon7.icu +bon99.com +bonagany.info +bonce.site +bonche-tobacco.ru +boncoin.icu +boncommunication.se +bondageglossary.com +bondageresources.com +bondagesimulator.com +bondatea.com +bondbahis28.com +bondbahis30.com +bondlayer.net +bondlayer.org +bondmail.men +bondmiamis.info +bondrewd.cf +boneng.us +bones.hk +bonfireofthevanities.net +bonfunrun15.site +bongacams.buzz +bongdafun.info +bongo.cf +bongo.gq +bongobank.net +bongobongo.cf +bongobongo.flu.cc +bongobongo.ga +bongobongo.gq +bongobongo.igg.biz +bongobongo.ml +bongobongo.nut.cc +bongobongo.tk +bongobongo.usa.cc +bongoperfectmatch.com +bongopiggybank.com +boniaqq.com +bonicious.xyz +boningly.com +bonkodi.com +bonleo.com +bonnellproject.org +bono-777.com +bonobo.email +bonproduction.se +bonus-fresh849.ru +bonus4betting.com +bonusal.club +bonusdominoonline.com +bonuses.su +bonusfreerub.ru +bonushunters.ru +bonuslier.ru +bonusoil.ru +bonussaati.site +bonussaati.xyz +bonva.site +bonvoyagetravelnetwork.com +bonw.icu +booaid.com +boobies.pro +boodschappenbezorgen.amsterdam +boogiejunction.com +boogiemunsters.com +booglecn.com +book-buzzes.com +book316.com +bookabachpasifika.com +bookabargecruise.com +bookabus.org +bookadir.site +bookafil.site +bookaholic.site +bookall.site +bookarest.site +bookat.us +bookb.site +bookc.site +bookclick.online +bookd.site +bookerdooker.site +bookf.site +bookfish.site +bookh.site +bookhotel.site +booking-event.de +booking-fr.pro +bookingdiving.com +bookingoasis.com +bookingpricewatch.com +bookings.onl +bookingtouch.net +bookingzagreb.com +bookj.site +bookjumpstart.com +bookkeepingitreal.com +bookkeepr.ca +bookking.club +bookl.site +bookliop.xyz +bookloader.site +bookmabe.cf +bookmabe.gq +bookmabe.ml +bookmabe.tk +bookmarklali.win +bookmarks.edu.pl +bookmastersdistribution.com +bookmyoffice.xyz +booko.site +bookofhannah.com +bookoneem.ga +bookov.com +bookp.site +bookpinyin.app +bookpinyin.com +bookq.site +bookquoter.com +bookreviewessay.com +books-bestsellers.info +books-for-kindle.info +books1.tk +booksahara.com +booksbooksbooks.site +booksdescr.xyz +booksdload.site +bookserv.site +booksforcontractors.com +booksfusion.com +booksloving.xyz +booksmillion.best +booksohu.com +bookspack.site +booksreloaded.site +booksthathelp.com +bookstorage.site +booksunlimited.site +booksurvival.com +booksworth.com +bookt.site +booktangier.com +bookthemmore.com +bookthis.biz +booktonlook.com +booktoplady.com +bookv.site +bookvirusz.com +bookwithgeorge.com +bookworm.site +bookwrt.com +bookx.site +bookyah.com +bookyourhealer.com +bookzone.site +bookzy.com +booleserver.mobi +boolify.org +booloo.xyz +boombeachgenerator.cf +boombeats.info +boomdate.xyz +boomerangcentral.com +boomerinternet.com +boomm.site +boomsaer.com +boomtango.com +boomykqhw.pl +boomzik.com +booneoutdoors.net +booooble.com +boopmail.com +boopmail.info +boostingecosystems.org +boostmoresmm.com +boostoid.com +bootax.com +bootcampmania.co.uk +bootdeal.com +boothbaycottages.org +bootiebeer.com +bootkp8fnp6t7dh.cf +bootkp8fnp6t7dh.ga +bootkp8fnp6t7dh.gq +bootkp8fnp6t7dh.ml +bootkp8fnp6t7dh.tk +bootlejtsh.space +boots-eshopping.com +bootsaletojp.com +bootscanadaonline.info +bootscootinmusic.com +bootsformail.com +bootsgos.com +bootshoes-shop.info +bootshoeshop.info +bootsmann.info +bootson-sale.info +bootsosale.com +bootsoutletsale.com +bootssale-uk.info +bootssheepshin.com +bootstrade.ru +bootstrapdigitallab.com +bootstringer.com +bootsukksaleofficial1.com +bootsvalue.com +bootybay.de +bootybug.com +bootynbud.com +boow.cf +boow.ga +boow.gq +boow.ml +boow.tk +booyabiachiyo.com +bopares.info +boper.xyz +bopra.xyz +bopunkten.se +boquetelifestyle.com +boquetening.net +boraa.xyz +borakvalley.com +boramotels.info +borancaliskan.com +boranmark.cf +boranmark.ga +boranmark.ml +boranmark.tk +boranora.com +borderflowerydivergentqueen.top +bordersequalzero.com +bordslopare.se +bored.dog +boredbin.com +boreequationcare.website +borefestoman.com +borexedetreaba.com +borged.com +borged.net +borged.org +borgish.com +borguccioutlet1.com +boringplace.ru +boris4x4.com +bornboring.com +bornovaboran.xyz +bornprettyjewels.xyz +borntufftrainer.com +boroda.tech +boromirismyherobro.com +borsa-gayrimenkul.xyz +borschoff.biz +borsebbysolds.com +borseburberryoutletitt.com +borseburbery1.com +borseburberyoutlet.com +borsebvrberry.com +borsechan1.com +borsechane11.com +borsechaneloutletonline.com +borsechaneloutletufficialeit.com +borsechanemodaitaly.com +borsechanlit.com +borsechanlit1.com +borsechanlit2.com +borsechanuomomini1.com +borsechanuomomini2.com +borsechelzou.com +borseeguccioutlet.com +borseelouisvuittonsitoufficiale.com +borsegucc1outletitaly.com +borsegucciitalia3.com +borseguccimoda.com +borsegucciufficialeitt.com +borseitaliavendere.com +borseitalychane.com +borseitguccioutletsito4.com +borselouisvuitton-italy.com +borselouisvuitton5y.com +borselouisvuittonitalyoutlet.com +borselouvutonit9u.com +borselvittonit3.com +borselvoutletufficiale.com +borsemiumiuoutlet.com +borsesvuitton-it.com +borsety.com +borsevuittonborse.com +borsevuittonit1.com +borthutin.cf +borthutin.ga +borthutin.gq +borthutin.ml +borthutin.tk +borwildchels.cf +borwildchels.ga +borwildchels.gq +borwildchels.tk +borza-takeaway.com +borzacastleknock.com +borzalaurellodge.com +borzaparnell.com +bos-ger-nedv.ru +bos21.club +bos228.org +bosahek.com +bosbeer.best +bosceme.fun +bosceme.site +bosceme.website +bosceme.xyz +bosch-ghg.online +bosch-gpl.online +bosch-pkp.online +boscheasyvac.online +boscialiquor.com +bosdal.com +bosgrit.tech +boshuizen.org +bosi.website +bosific.cf +bosific.ga +bosific.gq +bosific.tk +bositoy.ru +bosk1.live +bosletak.com +bosonology.com +bospokers.net +bosqq.mobi +bosquepatagonico.cl +bosquesdeprovidencia.com +bosrekan.com +boss.cf +boss901.com +bossbola.com +bosscapsa.xyz +bossceme.xyz +bosscycling.com +bossemail.info +bossesin30s.com +bossesin30seconds.com +bossmail.de +boston-towing-service.info +bostoncocainerehab.com +bostoncreampieco.com +bostonheroinrehab.com +bostonhydraulic.com +bostonopiaterehab.com +bostonplanet.com +bostonquote.com +bostontshirtclub.com +bostonwebmedia.com +bot.nu +botaksport.biz +botaksport.net +botal.live +botanizes244tg.online +botasuggm.com +botasuggsc.com +botay.asia +botcha.org +botellon.website +botenear.com +bothelpdesk.com +bothgames.com +botig.xyz +botinki-rus.site +botkaislove.ru +botkinalop.tk +botox-central.com +botrych.ru +botseats.info +botswana-finlife.com +bottesuggds.com +bottinifuels.com +bottinioil.com +bottlacfue.cf +bottlacfue.gq +bottlacfue.ml +bottlacfue.tk +bottledin.com +bottlewood.com +botville.org +botz.online +boudoirbible.com +boudreauxproperties.com +boulahia2.store +boulderproblems.com +boulonnerie-des-quatre-coins.com +boun.cr +bouncebackcloud.com +bounceesolutions.com +bouncingcow.com +bouncr.com +bouncygrape.com +boundles.dev +boundless.app +boundless.deals +boundlesscdn.com +boundlesslabs.dev +boundlesspoint.com +bountea.biz +bountifulgrace.org +bounyang1004.com +bouquetslule.shop +bourbonintheblind.com +bourdeniss.gr +bourkeexecutivecoaching.com +bournemouthitsolutions.com +boursiha.com +bouss.net +bouterkin.tk +bouterpla.cf +bouterpla.gq +bouterpla.ml +bouterpla.tk +boutinc.shop +boutique24.amsterdam +boutiqueaccom.com +boutiqueenlignefr.info +boutiquehotelhanoi.com +bovegas.casino +bovinaisd.net +bovinefu.com +bovitin.cf +bovitin.ga +bovitin.gq +bovitin.ml +bovitin.tk +bowamaranth.website +bowelbac.site +bowelkn.xyz +bowelto.xyz +boweltoot.xyz +boweroitik.tk +bowingkgcy.space +bowlinglawn.com +bowlofcats.com +bowrescom.org +bowtrolcolontreatment.com +box-email.ru +box-emaill.info +box-mail.ru +box.comx.cf +box.ra.pe +box.yadavnaresh.com.np +box4mls.com +boxa.host +boxaee.xyz +boxapi.dev +boxbeats.com +boxberru-pay.ru +boxcoin-cach.ru +boxerboks.ru +boxermail.info +boxerstore2019.ru +boxescrow.com +boxformail.in +boximail.com +boxing55.com +boxingcoalition.com +boxingsuperseries.ru +boxless.info +boxlogas.com +boxloges.com +boxlogos.com +boxmail.co +boxmailbox.club +boxmailers.com +boxmy-files.online +boxppy.ru +boxsmoke.com +boxsquat.com +boxtemp.com.br +boxtwos.com +boxxbery.online +boy-scout-slayer.com +boyalovemyniga.com +boybanger.com +boycey.space +boycie.space +boyfargeorgica.com +boygenius.com +boygenius.net +boyhanb.best +boykdp.club +boykov.net +boyoboygirl.com +boysblog.com +boysbook.shop +boythatescaldqckly.com +boytim.org +boyu201.com +boyu202.com +boyu207.com +boyztomenlove4eva.com +boz-baudienste.com +bozbu.xyz +bozenarodzenia.pl +bp3xxqejba.cf +bp3xxqejba.ga +bp3xxqejba.gq +bp3xxqejba.ml +bp3xxqejba.tk +bpapa.ooo +bpb7l.us +bpcenters.net +bpcenters.org +bpcwebdesign.com +bpda.cn +bpda.de +bpda1.com +bpdf.site +bper.cf +bper.ga +bper.gq +bper.tk +bpfgaypi.shop +bpghmag.com +bpham.info +bpl10.club +bplinlhunfagmasiv.com +bpmsound.com +bpoint99.live +bpornd.com +bpospe.info +bpqwnefou.com +bpusqfze.xyz +bpvi.cf +bpvi.ga +bpvi.gq +bpvi.ml +bpvi.tk +bqc4tpsla73fn.cf +bqc4tpsla73fn.ga +bqc4tpsla73fn.gq +bqc4tpsla73fn.ml +bqc4tpsla73fn.tk +bqcoffee.ru +bqhost.top +bqjew.com +bqm2dyl.com +bqmjotloa.pl +br-plat.com +br.mintemail.com +br53dd.com +br588.fun +br5ns1.site +br6qtmllquoxwa.cf +br6qtmllquoxwa.ga +br6qtmllquoxwa.gq +br6qtmllquoxwa.ml +br6qtmllquoxwa.tk +br7fdx.com +br88.fun +br88.mobi +br88.trade +br880.com +br88bet.app +br88helps.com +br88thailand.com +brackettmail.com +bracyenterprises.com +brad-haas.org +bradan.space +bradburntownhomes.com +bradleedental.info +bradypacha.com +bradyphasia.best +braedstrup.info +braginun.cf +braginun.ml +braginun.tk +bragpackers.com +bragstats.com +braide.app +brain-1-shoping.online +brain-2-shoping.online +brain-4-shoping.online +brain-5-shoping.online +brain-shop.online +brain-shops.online +brainboostingsupplements.org +braindollar.com +brainfoodmagazine.info +brainframes.com +brainfras.cf +brainglue.com +brainhacksonline.com +brainhard.net +brainpowernootropics.xyz +brains-market.online +brains-shop.online +brainsmix.com +brainsworld.com +braintsunami.com +brainwave.media +brainwire.co +brainworm.ru +brainydad.com +brainysoftware.net +brakecu.xyz +brakecups.info +brakepai.site +brakepl.xyz +brakestor.icu +brakeunc.xyz +brakhman.ru +bralbrol.com +braless.monster +bramaros.cf +bramaros.ga +bramaros.gq +bramaros.ml +bramaros.tk +brambletyehomes.com +bramblo.com +bramper.ru +brancadenevesx.monster +branch.dating +branchcoding.com +branchxijy.space +brand-horse.ru +brand-like.site +brand-love.ru +brand-sell.ru +brand8usa.com +brandallday.net +brandbaskit.com +brandbaskit.net +brandbaskit.org +brandbeuro.com +brandcrucial.com +brandcruz.com +brandear.online +brandednumber.com +branden1121.club +brandi.eden.aolmail.top +branding.goodluckwith.us +branding.ooo +brandjamshop.com +brandlandshop.com +brandlinza.ru +brandly.tech +brandministers.com +brandnameshirts.com +brandnamewallet.com +brando.games +brandonivey.info +brandonivey.org +brandonscody.live +brandonstore.com +brandonwhetsel.online +brandoshnaya.com +brandroot.info +brandroot.org +brandroot.us +brandroot.xyz +brandsdigitalmedia.com +brandshoelondon.com +brandshoeshunter.com +brandslogisticgroup.com +brandsvip.ru +brandupl.com +brandyouressence.com +brandyourselfwebsite.com +braninvi.cf +braninvi.tk +brank.io +branniganslaw.org +bransonchoice.com +bransonweddingchapels.com +bras-bramy.pl +brasbeeralcaladehenares.com +brasil-nedv.ru +brasillimousine.com +brassband2.com +brassbrush.biz +brassbrush.org +brassbrush.us +brassbrushes.biz +brassbrushes.org +brassbrushes.us +brasshardsgroup.com +brassites.com +brasx.org +bratfond.ru +bratsey.com +bratwurst.dnsabr.com +braun-llc.com +braun4email.com +braunturkiyesiparis.site +brave.chat +braveblossom2023.com +bravecoward.com +bravenewworkforce.us +bravenmjz.ru +braveofheart.org +braverish.com +bravesite-info.ru +braveworkforce.com +braveworkforce.org +bravit.nyc +bravod.ru +bravohotel.webmailious.top +brawlstars.tech +brazilbites.com +braziletech.com +brazza.ru +brborganikhayvancilik.com +brbqx.com +brdas.com +brdpkwcty.shop +breach.icu +breachofoath.com +breackingnews.site +bread-and-bones.com +breadboardpies.com +breadglossary.com +breadnbuttershorttermplantrental.com +breadqu.press +breadshape.us +breadtimes.press +breadysmasamagrell.com +break5.gq +breakabal.ga +breakabal.gq +breakabal.ml +breakaxpipilo.host +breakfastnearme.net +breakfastshop.life +breakloose.pl +breakteala.cf +breakteala.gq +breakteala.tk +breaktheall.org.ua +breakthru.com +breaktime.space +brealynnvideos.com +breanna.kennedi.livemailbox.top +brearas.info +breashe.website +breatheandlivegood.com +breathestime.org.ua +breathoflifefamilyservices.com +brecksneverstomac.com +bredimedia.xyz +bredlau.com +breedaboslos.xyz +breedersbis.com +breemillsfilms.com +breethase.cf +breetiwe.cf +breeze.eu.org +breezyflight.info +brefmail.com +bregerter.org +breitbandanbindung.de +breitlingsale.org +breizhmarechalerie.com +bremet.net +brendonweston.info +brennanlc.com +brennendesreich.de +brentchen.com +brentgardnernow.us +brentnunez.website +brentr53-orthn.website +brentstore.org +brentwoodofficial.com +bresanclin.cf +bresanclin.ga +bresanclin.gq +bresanclin.ml +bresanclin.tk +bresslertech.com +bretania.tk +breumd.icu +brevardgaragedoors.com +brevn.net +brevnopen.ru +brewbuddies.website +brewdin.com +brewkraft.org +brewplans.com +brewposturecart.website +brewskiboard.com +brewstudy.com +brexitbet.com +brexiten.com +brflix.com +brflk.com +brgo.ru +brhelwig.com +brianamento.com +brianandbarrybuchanan.com +brianbell.biz +brianclem.org +briandavideoff.org +briandbry.us +brianeoff.com +brianksims.com +brianmcdaniel.org +briarhillmontville.com +brickgrabber.com +brickoll.tk +brickrodeosteam.org +brickstreetbuyers.com +bricolagecheck.xyz +bricomedical.info +bricsales.info +bricsets.info +bridalku.com +bridavex.cf +bridavex.ga +bridavex.gq +bridavex.ml +brideofheaven.com +brides-dating.com +bridescatalog.com +brideselect.com +bridesmailorder.com +bridgecityseed.com +bridgeportchicagobook.com +bridgesacademysc.com +bridgetgonzalez.win +bridgetowneeast.com +bridyk.monster +briefcase4u.com +briefcaseoffice.info +briefkasten2go.de +brigachbreg.com +brigadeofhonor.org +briggsmarcus.com +bright365.org +brightadult.com +brightbay.online +brightdefense.net +brightdefense.tech +brightekled.cn +brighterbroome.org +brightlightfever.com +brightlighttouch.com +brightonchoy.com +brightonontheweb.com +brightscoe.com +brightscoppe.com +brigsgoevi.download +brigthstorm.icu +brilliantbutler.com +brilliantconceptsinmotion.com +brilliantdashboard.cloud +brillianthosting.cloud +brilliantignite.com +brilliantinventory.com +brilliantnews.live +brilliantstarsschool.com +brillionhistoricalsociety.com +brillmed.com +brillob.com +bring-luck.pw +bringluck.pw +bringmea.org.ua +bringthatnumberdown.info +bringthatnumberdown.org +bringtheclick.com +brinkbr.xyz +brinkstor.xyz +brinkvagu.buzz +brinkvideo.win +brisbanegastro.com +brisbanelivemusic.com +brisbanelogistics.com +brisbanephotobooth.com +bristlebrush.us +bristlebrushes.biz +bristlebrushes.us +bristol-drones.com +britainst.com +britbarnmi.ga +britbarnmi.gq +britbarnmi.ml +britbarnmi.tk +britemail.info +british-leyland.cf +british-leyland.ga +british-leyland.gq +british-leyland.ml +british-leyland.tk +britishboy.com +britishintelligence.co.uk +britishpropolis.xyz +britneybicz.pl +brittler.online +brittlily.xyz +brittneyamour.website +brittneyhollinger.com +brittneywerthcouseling.com +brixmail.info +brizzolari.com +brk4dv.us +brksqx.us +brliffebody.host +brliffebody.online +brlotus.com +brmailing.com +brncanta.xyz +brnhhqcya.shop +brniesndrs.us +brnm.me +brnmedya.xyz +brnsndrs4.us +brnsrs4.us +bro.fund +bro4xk.us +broadbandninja.com +broadbandwiring.com +broadbankv2.ga +broadbankv2.tk +broadcastsandiego.com +broadman17.com +broadnetalliance.org +broadway-new-york-eatery.com +broadway-west.com +broadwaynewyorkeatery.com +broadwaypackagingsolutions.com +brocase.org +broccoli.store +brocks.website +brocvintage.com +brodwaybuzz.com +brodzikowsosnowiec.pl +brofamilys.ru +brogrammers.com +broilone.com +brokaler.ga +brokaler.gq +brokaler.ml +brokaler.tk +brokenemailcheck.com +brokenemailchecker.com +brokenplanet.net +brokersdoor.com +brokersgroup.net +broknote.com +broknotes.com +bromailservice.xyz +bromleydotcom.com +bromtedlicyc.xyz +bronaotdyhe.site +broncomower.xyz +bronews.ru +bronhit.info +broniesqc.com +bronix.ru +bronxcountylawyerinfo.com +bronxdentistny.com +bronyfarm.com +bronzevalve.com +brookehorton.buzz +brookewilson.buzz +brookfieldplumbers.com +brooklyn-camera.com +brooklyn.cd +brooklynacura.com +brooklynbookfestival.mobi +brooklynparkapartments.com +brooklynweddingphotography.com +brookwalk.com +broomavenuebr53bs.com +broomwoodroadbr52jj.com +broomwoodroadbr52jp.com +brosan.net +brosbook.shop +broshkindom.ru +brosj.net +brosrockcrew.com +brossigscomp.cf +brossigscomp.ga +brossigscomp.gq +brostream.net +broszreforhoes.com +brothercs6000ireview.org +brotherprinterdrivershq.com +brothersontheblockincva.com +brotvwxyz.com +brouerg.fun +brouilly.org +brous.ru +browardfamp.com +browebstore.ru +brownal.net +brownbeaver.info +browndecorationlights.com +browndril.us +browne-trading.org +brownes.info +brownetrading.net +brownetrading.org +browniesgoreng.com +brownieslumer.com +brownindian.com +brownindians.com +brownlandscapingutah.com +brownpelican.info +brownricecooker.com +brownsl.xyz +brownslu.xyz +brownsvillequote.com +brownwoodtexasattorney.com +browriter.world +browse-movies.xyz +browsechat.eu +browseforinfo.com +browselounge.pl +browserflare.com +browserpot.com +browserscout.com +browsertab.xyz +browsesafesearch.com +browsing.page +brqh.us +brql.email +brrmail.gdn +brrmedia.asia +brrra-infragrant.com +brrvpuitu8hr.cf +brrvpuitu8hr.ga +brrvpuitu8hr.gq +brrvpuitu8hr.ml +brrvpuitu8hr.tk +brrwd.com +brtonthebridge.org +bru-himki.ru +bru.chat +brubank.club +bruceguetta.com +brudd.me +brunhilde.ml +brunico.best +brunomarsconcert2014.com +brunotakeaway.com +brunswick.apartments +brunto.ru +brushcros.icu +brushes.org +brushinabox.org +brushmaker.net +brushmaker.us +brushmanufacturer.biz +brushmanufacturer.us +brushvwhite.com +bruson.ru +brussellottery.net +brussellottery.org +brusselstylelogblog.com +brutaldate.com +brutaljack.com +bruzdownice-v.pl +brvbfj.shop +brxqoy.cf +bryanle.com +bryanlgx.com +bryanslist.com +brymstonne.org +brypeterson.com +bryskumde.cf +bryskumde.gq +bryskumde.ml +bryzwebcahw.cf +bryzwebcahw.ga +bryzwebcahw.ml +bryzwebcahw.tk +bs-internal.com +bs-shipsmanagement.net +bs5003.com +bs6006.com +bs6bjf8wwr6ry.cf +bs6bjf8wwr6ry.ga +bs6bjf8wwr6ry.gq +bs6bjf8wwr6ry.ml +bs8005.com +bs8007.com +bsaloving.com +bsbhz1zbbff6dccbia.cf +bsbhz1zbbff6dccbia.ga +bsbhz1zbbff6dccbia.ml +bsbhz1zbbff6dccbia.tk +bsc.anglik.org +bschhirdavatcilik.site +bschost.com +bsctoolkit.com +bsctv.cd +bsderqwe.com +bsecure.ir +bseomail.com +bsesu.us +bsezjuhsloctjq.cf +bsezjuhsloctjq.ga +bsezjuhsloctjq.gq +bsezjuhsloctjq.ml +bsezjuhsloctjq.tk +bsfadmin.org +bshasho.xyz +bshoespeak.site +bshyetrla.xyz +bsidesfl.org +bsjluitp.shop +bsjnz.com +bskbb.com +bskvzhgskrn6a9f1b.cf +bskvzhgskrn6a9f1b.ga +bskvzhgskrn6a9f1b.gq +bskvzhgskrn6a9f1b.ml +bskvzhgskrn6a9f1b.tk +bskyb.cf +bskyb.ga +bskyb.gq +bskyb.ml +bsmird.site +bsml.de +bsnders.us +bsnmed.com +bsnow.net +bsoundbest.info +bspamfree.org +bspex.com +bspin.club +bspooky.com +bsquochoai.ga +bss19.space +bsservice.info +bst-72.com +bsuakrqwbd.cf +bsuakrqwbd.ga +bsuakrqwbd.gq +bsuakrqwbd.ml +bsuakrqwbd.tk +bsylyp.shop +bt-bitcoin.ru +bt0zvsvcqqid8.cf +bt0zvsvcqqid8.ga +bt0zvsvcqqid8.gq +bt0zvsvcqqid8.ml +bt0zvsvcqqid8.tk +bt2022.xyz +bt2pt.com +bt3019k.com +bt369.live +bt522.com +bt757.site +btab.pw +btacg.com +btapi.com +btb-notes.com +btb109.online +btb11.xyz +btb46.club +btbazir.xyz +btbaziran.xyz +btbdf.com +btbt588.com +btc-mail.net +btc-payroll.com +btc-worldl.site +btc.email +btc.glass +btc24.org +btcanalizler.com +btcgenerators.com +btcgivers.com +btchange.xyz +btcinfinitypools.com +btcmail.pw +btcmail.pwguerrillamail.net +btcmanaged.com +btcmod.com +btcomic.com +btcontracts.com +btcoon.info +btcoon.org +btcplay777.com +btcposters.com +btcprestige.net +btcproductkey.com +btcprostorage.com +btcpurchases.site +btctele.com +btczw.com +btd4p9gt21a.cf +btd4p9gt21a.ga +btd4p9gt21a.gq +btd4p9gt21a.ml +btd4p9gt21a.tk +bteditor.com +btemp.com +btexch.com +btexchange1.live +btgal.com +btglkf.com +btgmka0hhwn1t6.cf +btgmka0hhwn1t6.ga +btgmka0hhwn1t6.ml +btgmka0hhwn1t6.tk +btgo90us.net +btgo90us.org +btgt.email +bticigd.xyz +btintenet.com +btiran.com +btiternet.com +btizet.pl +btj.pl +btj2uxrfv.pl +btlcalculator.com +btmoe.com +btmtoon4.com +btmtoon6.com +btob6.club +btqingwa.xyz +btrabbits.net +btracker.date +btrkwbtfclb89bd.xyz +btrmp6.com +btry56.us +bts-888.com +bts-monitoring.com +btsese.com +btsmerch.shop +btstr.lowbi.xyz +bttime44.xyz +bttime55.xyz +btuglp.us +btukskkzw8z.cf +btukskkzw8z.ga +btukskkzw8z.gq +btukskkzw8z.ml +btukskkzw8z.tk +btuyx.website +btv8uy.info +btw.onl +btx3338.com +btx62828.com +btxdtl.ga +btxfovhnqh.pl +btynodozx.shop +btyunsou8.net +btz3kqeo4bfpqrt.cf +btz3kqeo4bfpqrt.ga +btz3kqeo4bfpqrt.ml +btz3kqeo4bfpqrt.tk +bu-ali-takeaway.com +bu.mintemail.com +bu5lhm.info +buam.space +buatwini.tk +buayapoker.online +buayapoker.xyz +bub7yjt5p0uzewl.xyz +bubbasblue.com +bubbkirkpenma.tk +bubblesfloat.com +bubo1.net +bubuface.tv +bucausa.xyz +bucbdlbniz.cf +bucbdlbniz.ga +bucbdlbniz.gq +bucbdlbniz.ml +bucbdlbniz.tk +buccalmassage.ru +buchach.info +buchananinbox.com +buchhandlung24.com +bucketlistfilter.com +bucklafi.cf +bucklafi.ga +bucklafi.gq +bucklafi.tk +buckleysryewhiskey.com +buckrubs.us +bucksdogrescue.org +bucol.net +bucoscertificate.com +bucoscertificate.pro +bucrita.cf +bucrita.ga +bucrita.gq +bucrita.ml +bucrita.tk +bucsc.com +bud-zdorov-03.site +bud-zdorov-07.site +budapest2040.com +budapestdailydeal.com +buday.htsail.pl +budaya-tionghoa.com +budayationghoa.com +budbankrot.xyz +buddhismblog.com +buddhismglobal.com +buddhistblog.com +buddieswindsor.com +buddycarroll.com +buddystart.com +budgeequal.us +budgemars.icu +budgequot.press +budgetblankets.com +budgetdoc.com +budgetgoods.ru +budgethotel.cd +budgetinvestingsite.online +budgetmoscow.com +budgetocean.com +budgetted.com +budgetwoman.me +budgjhdh73ctr.gq +budin.men +budmedia.fund +budokainc.com +budowa-domu-rodzinnego.pl +budowadomuwpolsce.info +budowlaneusrem.com +budrem.com +budtek.info +budylz.xyz +budzdorov-03.site +budzdorov-07.site +budzdorov07.site +buefkp11.edu.pl +buenavidabeograd.com +buenosaires-argentina.com +buenosaireslottery.com +bueschlen.info +bufaloie.site +bufbootcamp.com +buffalo-poland.pl +buffaloaddictiontreatment.com +buffaloalcoholrehab.com +buffaloopiaterehab.com +buffaloquote.com +buffalorunwinery.com +buffalos-pizza-pie.com +buffbook.shop +buffemail.com +bufferliajy.email +buford.us.to +bufyrjkdhu.xyz +bug.cl +bugdomain9.com +bugeyedbugs.com +bugmenever.com +bugmenot.com +bugmenot.ml +bugs.su +buhkit.com +buhogume.site +buhomail.club +buhype.ru +bui-in-samara.ru +bui9cj.us +buicasino.ru +buidaru.cf +buidaru.ga +buidaru.tk +build-logix.com +build-your-business-stronger.com +buildabsnow.com +buildadefense.com +buildanonprofit.org +buildersglossary.com +builderua.online +building-bridges.com +buildingandtech.com +buildingfastmuscles.com +buildinghopekeystone.org +buildlogicsllc.com +buildly.store +buildmydream.kitchen +buildopia.com +buildsrepair.ru +buildsucceeded.org +buildthefutureon.tech +buildwithbubble.com +buildwithdrupal9.com +buildyourbizataafcu.com +builtindishwasher.org +buinasrad.ml +buissness.com +buitanan.me +bujatv7.fun +bujatv8.fun +buk2fw.host +bukalapakqq.club +bukanline.today +bukansarjana.com +buketeriya.ru +buketgurmana.ru +bukleti-vizitki.ru +bukmekerskajakontora.ru +bukopet.ru +bukq.in.ua +bukti99.com +bukuki.info +bukv.site +bukwos7fp2glo4i30.cf +bukwos7fp2glo4i30.ga +bukwos7fp2glo4i30.gq +bukwos7fp2glo4i30.ml +bukwos7fp2glo4i30.tk +bulahxnix.pl +bulaindianandorientalcuisine.com +bulantoto.com +bulantoto.net +bulbasures.com +bulbtiger.com +buldozer-rent92.ru +bulegoblog.com +bulemasukkarung.digital +bulent.ml +bulentfb.ml +bulentfb.tk +bulgarian.house +bulgogi.xyz +bulgsaltge.cf +bulgsaltge.gq +bulgsaltge.ml +bulgsaltge.tk +bulguru.com +bulkbacklinks.in +bulkcleancheap.com +bulkcoop.com +bulkemailregistry.com +bulkgeocode.com +bulksmsad.net +bullbeer.net +bullbeer.org +bullcourt.top +bullet1960.info +bulletblunt.com +bulletinadvice.com +bulletinarchive.com +bulleyedarts.com +bullhorn30.com +bullinthesport.com +bullionbeast.com +bullosafe.com +bullseyelink.com +bullseyewebsitedesigns.com +bullstore.net +bulltime.net +bullystakeaway.com +bulmisen.ga +bulmisen.gq +bulmisen.ml +bulmp3.net +buloo.com +bulrushpress.com +bulso-law.com +bulumonster.com +bulurhotels.site +bulutdns.com +bulvintorg.ru +bum.net +bum05.xyz +bum06.xyz +bum07.xyz +bum08.xyz +bum09.xyz +bum69.club +bumaga.host +bumbleevbx.space +bumblomti.cf +bumblomti.gq +bumblomti.ml +bumingjueli.com +bumppack.com +bumpymail.com +bun-cha.com +bunbearsligh.gq +buncar.ru +bunchcarsa.info +bunchofidiots.com +bund.us +bundes-li.ga +bundjoca.cf +bundjoca.ga +bundjoca.gq +bundjoca.ml +bunengbumingbai.com +bunfive.com +bungabunga.cf +bungatidur.com +bungatogel8.com +bunkbedsforsale.info +bunkmemorialcave.website +bunkstoremad.info +bunmoc.website +bunny88vip.com +bunnyhasofficiallypissedoffgreengay.tk +bunnysitesqa.com +bunnyze.info +bunsenhoneydew.com +bunteks.online +buntuty.cf +buntuty.ga +buntuty.ml +buodhied.online +buon.club +buonprod.site +buphisti.ga +buphisti.gq +buphisti.tk +buppel.com +buqre.online +buqre.site +buqre.xyz +burakarda.xyz +buratin7.ru +burberry-australia.info +burberry-blog.com +burberry4u.net +burberrybagsjapan.com +burberryoutlet-uk.info +burberryoutletmodauomoit.info +burberryoutletsalezt.co.uk +burberryoutletsscarf.net +burberryoutletsshop.net +burberryoutletstore-online.com +burberryoutletukzt.co.uk +burberryoutletzt.co.uk +burberryukzt.co.uk +burberrywebsite.com +burcaticatu.space +burcler.site +burcopsg.org +burdayimcanim.ml +burdet.xyz +burdurfm.xyz +burenie.space +bureslav.ru +burgas.vip +burgaznet.xyz +burgazrap.xyz +burger56.ru +burgercentral.us +burgerjointtakeaway.com +burgerking.icu +burglighhu.cf +burglighhu.ml +burgoscatchphrase.com +burguesinhas.com +burjanet.ru +burjkhalifarent.com +burjnet.ru +burkaukra1.site +burkaukra2.site +burklabs.com +burlingtonfancynails.com +burlingtonxku.com +burnacidgerd.com +burner-email.com +burner.fund +burnermail.io +burniawa.pl +burningasylum.net +burningthemanrvrentals.com +burningthemanrvrentals.us +burnmail.ca +burnthespam.info +burobedarfrezensionen.com +burobrandov.ru +burpeep.club +burritos.ninja +burroortega.online +burry.house +bursa303.wang +bursa303.win +bursadekorhaliyikama.online +bursadekorhaliyikama.xyz +bursaevlilikterapisi.com +bursahealth.com +bursakomoditi.xyz +bursaservis.site +bursayolu.xyz +burstmail.info +burtsevy.ru +burundipools.com +burundxkpt.space +burwide.cf +burwide.gq +burwide.ml +burwide.tk +buryticklerchap.website +burzoe.website +bus-motors.com +bus9alizaxuzupeq3rs.cf +bus9alizaxuzupeq3rs.ga +bus9alizaxuzupeq3rs.gq +bus9alizaxuzupeq3rs.ml +bus9alizaxuzupeq3rs.tk +busanb12.net +busanb19.net +buscarlibros.info +buscarltd.com +buscarnombre.com +buscarpr.com +buschgardenshotel.com +buscoempleoya.info +busemdisticaret.com +bushiresydney.company +bushnellofficial.ru +busidevelops.com +businesideas.ru +business-agent.info +business-bank-account.com +business-boosters.info +business-education-system.com +business-goods.ru +business-intelligence-vendor.com +business-life.club +business-loan-financing.com +business-sfsds-advice.com +business-tv.site +business-tv.website +business-websites-hosting.us +business1300numbers.com +businessaccelerationevents.com +businessagent.email +businessandnews.com +businessattorneysorangecounty.com +businessbackend.com +businessbayproperty.com +businessblog.com +businessblogs.com +businessbrokermassachusetts.com +businesscardcases.info +businesscny.com +businesscoachitalia.net +businessconstruction.ru +businesscredit.xyz +businesscreditcard.dev +businesselite.site +businessfinancetutorial.com +businessfindernearme.com +businessgig.org +businesshowtobooks.com +businesshowtomakemoney.com +businessideasformoms.com +businessinfo.com +businessinfoservicess.com +businessinfoservicess.info +businessloansingapore.sg +businessmakeoverexperience.com +businessmexicotoday.com +businessneo.com +businessowner.money +businessphonelookup.com +businessresourcefindernearme.com +businessscansite.club +businesssitenames.com +businesssource.net +businesssuccessislifesuccess.com +businessthankyougift.info +businesstutorialsonline.org +businessvendorsnearme.com +buskingbarangaroo.com +buskopan.ru +busmys.info +buspad.org +bussdisc.com +bussinessmail.info +bussinessmonkeynews.com +bussinesvortex.ru +bussitussi.com +bussitussi.net +bustamove.tv +bustaquiz.com +bustedondashcam.com +bustedyoke.com +busten.info +busten.site +busthere.cf +busthere.ml +bustsa.site +busty.monster +busy-do-holandii24.pl +busyginal.cf +busyresourcebroker.info +butbetterthanham.com +butchparks.com +buthec.xyz +butler411.com +butning.ru +butrew.ru +buttbreeder.com +butter9x.com +butterflycupsusa.com +butterflyeffectsounds.com +butterteddy.ru +buttliza.info +buttluvr.com +buttonfans.com +buttonrulesall.com +buumew-auto.ru +buurunleson.site +buvertu.cf +buvertu.ga +buvertu.gq +buvertu.ml +buvetti.com +buxap.com +buxl.com +buxod.com +buy-acomplia.info +buy-bags-online.com +buy-blog.com +buy-caliplus.com +buy-canadagoose-outlet.com +buy-car.net +buy-cement.ru +buy-cialis.net +buy-clarisonicmia.com +buy-clarisonicmia2.com +buy-instagram.com +buy-iphone-xs.ru +buy-lp.ru +buy-mail.eu +buy-new-like.ru +buy-nikefreerunonline.com +buy-ugly-homes.com +buy-viagracheap.info +buy.tj +buy003.com +buy024.com +buy4me.store +buy6more2.info +buyad.ru +buyairjordan.com +buyalli.site +buyallopurinol.website +buyamf.com +buyamoxilonline24h.com +buyandsmoke.net +buyanessaycheape.top +buyaninfographic.com +buyatenolol.website +buyaugmentin.site +buyback.best +buybacklinkshq.com +buybere.cf +buybere.ga +buybere.ml +buybere.tk +buybestheadphonesonline.com +buyblindsnow.com +buycanadagoose-ca.com +buycaverta12pills.com +buycbd2.com +buycheapbeatsbydre-outlet.com +buycheapcipro.com +buycheapfacebooklikes.net +buycheapfireworks.com +buycialis-usa.com +buycialisgennrx.xyz +buycialisusa.com +buycialisusa.org +buycialisz.xyz +buyclarisonicmiaoutlet.com +buyclarisonicmiasale.com +buycow.org +buycsgoitems.com +buycultureboxes.com +buycustompaper.review +buyday.site +buydeltasoneonlinenow.com +buydfcat9893lk.cf +buydiabloaccounts.com +buydiablogear.com +buydiabloitem.com +buydiamox.info +buydispensary.icu +buydubaimarinaproperty.com +buyemail.org +buyeqaslim.com +buyeriacta10pills.com +buyershop.info +buyessays-nice.org +buyfacebooklikeslive.com +buyfcbkfans.com +buyfifa19.com +buyfollowers247.com +buyfollowers365.co.uk +buyfrombull.com +buygapfashion.com +buygenericswithoutprescription.com +buygolfclubscanada.com +buygolfmall.com +buygoods.com +buygoodshoe.com +buygooes.com +buygsalist.com +buyhairstraighteners.org +buyhardwares.com +buyhegotgame13.net +buyhegotgame13.org +buyhegotgame13s.net +buyhenryhoover.co.uk +buyhermeshere.com +buyhouseorangecounty.com +buyhousesquickcash.com +buyhunts.com +buyhunts.net +buyingafter.com +buyingessays.com +buyintagra100mg.com +buyitforlife.app +buyjoker.com +buykamagraquick.com +buykarenmillendress-uk.com +buykdsc.info +buykyc.com +buylaptopsunder300.com +buylevitra-us.com +buylevitra.website +buylikes247.com +buylimu.biz +buylouisvuittonbagsjp.com +buymethotrexate.info +buymichaelkorsoutletca.ca +buymileycyrustickets.com +buymondo.com +buymoreplays.com +buymotocyclefairings.com +buymotors.online +buynewmakeshub.info +buynewtrends.com +buynexiumpills.com +buynolvadexonlineone.com +buynorcaltickets.com +buynow.host +buynowandgo.info +buyonlinestratterapills.com +buyordie.info +buyovz.com +buypill-rx.info +buyprice.co +buyprotopic.name +buyproxies.info +buyraybansuk.com +buyrehabrentrefinancerepeat.com +buyreliablezithromaxonline.com +buyrenovaonlinemeds.com +buyreplicastore.com +buyresourcelink.info +buyrocaltrol.name +buyrx-pill.info +buyrxclomid.com +buyselleos.com +buysellonline.in +buysellsignaturelinks.com +buyseo.services +buyserverpart.com +buysomething.me +buyspecs.biz +buysspecialsocks.info +buysteroids365.com +buystlouischeap.com +buyto.website +buytodayproperties.com +buytwitterfollowersreviews.org +buyu0003.com +buyu0004.com +buyu0009.com +buyu0111.com +buyu043.com +buyu046.com +buyu0590.com +buyu082.com +buyu085.com +buyu112.com +buyu117.com +buyu126.com +buyu135.com +buyu139.com +buyu148.com +buyu150.com +buyu153.com +buyu154.com +buyu167.com +buyu172.com +buyu174.com +buyu181.com +buyu182.com +buyu183.com +buyu184.com +buyu190.com +buyu191.com +buyu194.com +buyu199.com +buyu279.com +buyu282.com +buyu284.com +buyu286.com +buyu289.com +buyu299.com +buyu304.com +buyu306.com +buyu307.com +buyu308.com +buyu310.com +buyu316.com +buyu317.com +buyu319.com +buyu323.com +buyu325.com +buyu336.com +buyu341.com +buyu343.com +buyu345.com +buyu347.com +buyu348.com +buyu368.com +buyu373.com +buyu376.com +buyu377.com +buyu380.com +buyu383.com +buyu387.com +buyu389.com +buyu390.com +buyu391.com +buyu398.com +buyu403.com +buyu406.com +buyu407.com +buyu408.com +buyu415.com +buyu416.com +buyu420.com +buyu421.com +buyu422.com +buyu423.com +buyu424.com +buyu427.com +buyu428.com +buyu431.com +buyu434.com +buyu443.com +buyu446.com +buyu447.com +buyu450.com +buyu451.com +buyu454.com +buyu455.com +buyu457.com +buyu460.com +buyu465.com +buyu471.com +buyu473.com +buyu476.com +buyu477.com +buyu479.com +buyu481.com +buyu483.com +buyu486.com +buyu489.com +buyu490.com +buyu491.com +buyu492.com +buyu493.com +buyu494.com +buyu495.com +buyu496.com +buyu502.com +buyu508.com +buyu515.com +buyu523.com +buyu529.com +buyu532.com +buyu533.com +buyu538.com +buyu540.com +buyu543.com +buyu544.com +buyu548.com +buyu551.com +buyu552.com +buyu564.com +buyu567.com +buyu571.com +buyu573.com +buyu581.com +buyu583.com +buyu585.com +buyu586.com +buyu587.com +buyu592.com +buyu594.com +buyu596.com +buyu610.com +buyu612.com +buyu614.com +buyu616.com +buyu620.com +buyu621.com +buyu626.com +buyu627.com +buyu628.com +buyu629.com +buyu631.com +buyu632.com +buyu634.com +buyu639.com +buyu642.com +buyu645.com +buyu652.com +buyu653.com +buyu654.com +buyu657.com +buyu661.com +buyu662.com +buyu663.com +buyu665.com +buyu676.com +buyu680.com +buyu684.com +buyu687.com +buyu690.com +buyu697.com +buyu699.com +buyu730.com +buyu734.com +buyu739.com +buyu745.com +buyu746.com +buyu747.com +buyu751.com +buyu752.com +buyu755.com +buyu756.com +buyu757.com +buyu761.com +buyu772.com +buyu775.com +buyu779.com +buyu781.com +buyu784.com +buyu790.com +buyu794.com +buyu795.com +buyu802.com +buyu803.com +buyu807.com +buyu811.com +buyu814.com +buyu816.com +buyu826.com +buyu827.com +buyu828.com +buyu829.com +buyu830.com +buyu831.com +buyu836.com +buyu841.com +buyu843.com +buyu849.com +buyu852.com +buyu855.com +buyu857.com +buyu859.com +buyu883.com +buyu887.com +buyu893.com +buyu894.com +buyu896.com +buyu897.com +buyu901.com +buyu913.com +buyu920.com +buyu924.com +buyu925.com +buyu926.com +buyu930.com +buyu931.com +buyu932.com +buyu935.com +buyu939.com +buyu947.com +buyu950.com +buyu951.com +buyu952.com +buyu953.com +buyu954.com +buyu959.com +buyu960.com +buyu963.com +buyu967.com +buyukbetbayi5.com +buyukcekmeceesnaflari.xyz +buyukcekmecelisesi.xyz +buyurightnow.com +buyusabooks.com +buyusedlibrarybooks.org +buyvaltrexonline.store +buyviagracheapmailorder.us +buyviagraonline-us.com +buyvpn.xyz +buywinstrol.xyz +buywithoutrxpills.com +buywowgold2.com +buyxanaxonlinemedz.com +buyyourtoledohome.com +buyyoutubviews.com +buzlat.org +buzlin.club +buzzcluby.com +buzzcompact.com +buzzdating.info +buzzdeck.com +buzzdimo.com +buzzdomain.com +buzzedibles.org +buzzjoint.com +buzzuoso.com +buzzvirale.xyz +buzzzyaskz.site +bv2mpm.us +bv9dec.us +bvegtewrs.ml +bvictor3.org +bvigo.com +bvitamini.site +bvkjgnbg.xyz +bvkn04.us +bvmvbmg.co +bvndah.club +bvngf.com +bvqaaivso.shop +bvqjwzeugmk.pl +bvqk.email +bvs93v.us +bvtravelnews.com +bvuathletics.org +bvz8k1.us +bvzoonm.com +bwa33.net +bwcfn1.site +bwdny.com +bwgworldwide.com +bwhey.com +bwjdk1.site +bwltir.com +bwnkwx.site +bwpyt.live +bwtdmail.com +bwwsrvvff3wrmctx.cf +bwwsrvvff3wrmctx.ga +bwwsrvvff3wrmctx.gq +bwwsrvvff3wrmctx.ml +bwwsrvvff3wrmctx.tk +bwww.icu +bwyv.com +bx6r9q41bciv.cf +bx6r9q41bciv.ga +bx6r9q41bciv.gq +bx6r9q41bciv.ml +bx6r9q41bciv.tk +bx8.pl +bx800.site +bx8w34.us +bx9puvmxfp5vdjzmk.cf +bx9puvmxfp5vdjzmk.ga +bx9puvmxfp5vdjzmk.gq +bx9puvmxfp5vdjzmk.ml +bx9puvmxfp5vdjzmk.tk +bxbjq.site +bxbofvufe.pl +bxbsale.top +bxfmtktkpxfkobzssqw.cf +bxfmtktkpxfkobzssqw.ga +bxfmtktkpxfkobzssqw.gq +bxfmtktkpxfkobzssqw.ml +bxfmtktkpxfkobzssqw.tk +bxhktmllk11812.cf +bxhktmllk31874.tk +bxhktmllk84478.ga +bxhktmllk84478.tk +bxis.email +bxm2bg2zgtvw5e2eztl.cf +bxm2bg2zgtvw5e2eztl.ga +bxm2bg2zgtvw5e2eztl.gq +bxm2bg2zgtvw5e2eztl.ml +bxm2bg2zgtvw5e2eztl.tk +bxs1yqk9tggwokzfd.cf +bxs1yqk9tggwokzfd.ga +bxs1yqk9tggwokzfd.ml +bxs1yqk9tggwokzfd.tk +by-akg.online +by-simply7.tk +by-who.com +by7au1.us +by8006l.com +by8hw.us +by9827.com +bybe.site +bybike.com +bybklfn.info +bycollective.com +bycy.xyz +byd686.com +bydenyingh.icu +byebyemail.com +byedacetin.net +byel.email +byespm.com +byetextbooks.com +byeworker.best +byfstg.com +bygga-infrabastu.se +byggcheapabootscouk1.com +byhabeo.space +byhouse.icu +byj53bbd4.pl +bykefu.online +bykefu.site +bykefu.xyz +bykov-stroj.ru +bykuzen.xyz +bymahades.com +byng.de +byngo.com +bynyqs.com +byom.de +bypass-captcha.com +bypebbles.info +bypebbles.net +byplxu.com +byporax.live +byq85.com +byqv.ru +byredo-parfums.online +byribu.info +byrnefamilyfarm.com +byrnewear.com +byrostudios.com +bysky.ru +bytegift.com +byteleaders.amsterdam +bytesundbeats.de +bytheglass-usa.com +bythegrapes.com +bythewater.net +bytik-flower.ru +bytom-antyraddary.pl +byukgztw.shop +byustore.xyz +byviuz.site +byw2288.com +byw3388.com +byw4488.com +byw5588.com +bywuicsfn.pl +bz-365e.com +bz-555.com +bz-888.com +bz-cons.ru +bz-mytyshi.ru +bz8l.com +bzdkx.us +bzgnqx.icu +bzhso1.info +bzidohaoc3k.cf +bzidohaoc3k.ga +bzidohaoc3k.gq +bzidohaoc3k.ml +bzidohaoc3k.tk +bzip.site +bzmoe.com +bzmt6ujofxe3.cf +bzmt6ujofxe3.ga +bzmt6ujofxe3.gq +bzmt6ujofxe3.ml +bzmt6ujofxe3.tk +bzmxeu.us +bzof89lyd3lfy51.xyz +bzone-111.com +bzone-777.com +bzone234.com +bzone555.com +bztf1kqptryfudz.cf +bztf1kqptryfudz.ga +bztf1kqptryfudz.gq +bztf1kqptryfudz.ml +bztf1kqptryfudz.tk +bztravogd.shop +bzujd1.site +bzwikuis.com +bzymail.top +bzzi.net +c-14.cf +c-14.ga +c-14.gq +c-14.ml +c-c-p.de +c-doudoo.com +c-dreams.com +c-lvl.pro +c-mail.cf +c-mail.gq +c-mail.online +c-n-shop.com +c-newstv.ru +c-onetv.com +c-responses.org +c-resultsfitness.com +c-tg.com +c-wrench.com +c.alabamavape.com +c.andreihusanu.ro +c.hcac.net +c.kadag.ir +c.kerl.gq +c.nut.emailfake.nut.cc +c.polosburberry.com +c.theplug.org +c.wlist.ro +c002hwpf.buzz +c005qmdb.buzz +c006mpkz.buzz +c007dcea.buzz +c008ydwu.buzz +c009fkiu.buzz +c012tury.buzz +c013dikj.buzz +c014irpp.buzz +c015smno.buzz +c016bkmw.buzz +c017dkop.buzz +c018jplo.buzz +c020ftyu.buzz +c021gtyp.buzz +c022byui.buzz +c023gsrk.buzz +c024kius.buzz +c025gsik.buzz +c026dkrn.buzz +c028fsok.buzz +c029ekbb.buzz +c031bbjr.buzz +c032bjik.buzz +c033vusm.buzz +c034hkdv.buzz +c035nirf.buzz +c036hsrp.buzz +c037sjut.buzz +c038cder.buzz +c041jhre.buzz +c044vhju.buzz +c045bjwx.buzz +c047hkjo.buzz +c048bhos.buzz +c049lrdf.buzz +c0ach-outlet.com +c0ach-outlet1.com +c0achoutletonlinesaleus.com +c0achoutletusa.com +c0achoutletusa2.com +c0cka.info +c0d.club +c0lkp4.us +c0rp0r4te.com +c0rtana.cf +c0rtana.ga +c0rtana.gq +c0rtana.ml +c0rtana.tk +c0sau0gpflgqv0uw2sg.cf +c0sau0gpflgqv0uw2sg.ga +c0sau0gpflgqv0uw2sg.gq +c0sau0gpflgqv0uw2sg.ml +c0sau0gpflgqv0uw2sg.tk +c1101.club +c1775.com +c17d.club +c19coalition.net +c1b842.xyz +c1er4u.site +c1jlpo.us +c1obm.icu +c1oramn.com +c1yyad.us +c2.hu +c20vussj1j4glaxcat.cf +c20vussj1j4glaxcat.ga +c20vussj1j4glaxcat.gq +c20vussj1j4glaxcat.ml +c20vussj1j4glaxcat.tk +c21rd.site +c23media.com +c2ayq83dk.pl +c2ccams.com +c2clover.info +c2csoft.com +c2nu8i.us +c306bb.com +c306ccc.com +c306dd.com +c306e.com +c306f.com +c306ggg.com +c306h.com +c306hhh.com +c306i.com +c306ii.com +c306mmm.com +c306n.com +c306nnn.com +c306ooo.com +c306qqq.com +c306u.com +c306vv.com +c32tr.site +c3cyt.info +c3e3r7qeuu.cf +c3e3r7qeuu.ga +c3e3r7qeuu.gq +c3e3r7qeuu.ml +c3e3r7qeuu.tk +c3email.win +c3gn9t.us +c3jsw.com +c3rodc.info +c3zkn9.us +c40eh.site +c4anec0wemilckzp42.ga +c4anec0wemilckzp42.ml +c4anec0wemilckzp42.tk +c4e34ad.club +c4fe4d1.club +c4jie.us +c4ster.gq +c4u0tn.us +c4ugr9.us +c4utar.cf +c4utar.ga +c4utar.gq +c4utar.ml +c4utar.tk +c51vsgq.com +c520p.com +c52fp4.info +c52p.com +c58n67481.pl +c59io.site +c5a7342v.xyz +c5ccwcteb76fac.cf +c5ccwcteb76fac.ga +c5ccwcteb76fac.gq +c5ccwcteb76fac.ml +c5ccwcteb76fac.tk +c5kassociates1.com +c5qawa6iqcjs5czqw.cf +c5qawa6iqcjs5czqw.ga +c5qawa6iqcjs5czqw.gq +c5qawa6iqcjs5czqw.ml +c5qawa6iqcjs5czqw.tk +c60vy.top +c6384.com +c63e.com +c63f.com +c63g.com +c63i.com +c63j.com +c63n.com +c63o.com +c63q.com +c63r.com +c63t.com +c63u.com +c63v.com +c64c6d29.club +c6760db2.club +c686q2fx.pl +c68e210.xyz +c6bc07a3.xyz +c6ebii.us +c6h12o6.cf +c6h12o6.ga +c6h12o6.gq +c6h12o6.ml +c6h12o6.tk +c6loaadz.ru +c70321.com +c70456.com +c7048.com +c70567.com +c70654.com +c70jm.site +c72iv.space +c72zc.com +c73cd.space +c74pf8.us +c74pt.space +c7665.com +c7fk799.com +c7z3dxb81xns6bz.xyz +c81hofab1ay9ka.cf +c81hofab1ay9ka.ga +c81hofab1ay9ka.gq +c81hofab1ay9ka.ml +c81hofab1ay9ka.tk +c82323.com +c84ih.site +c88987.club +c89taj.info +c8hwap.com +c8pz34.download +c8tdau.us +c99.me +c999.biz +c9gbrnsxc.pl +c9ra1v.site +ca-canadagoose-jacets.com +ca-canadagoose-outlet.com +ca.verisign.cf +ca.verisign.ga +ca.verisign.gq +ca11.cf +ca203k.com +ca5934ec.club +caadroneregistration.com +caadroneregistry.com +caaspi.live +cab22.com +cab2f8.club +cabal72750.co.pl +caballo-blanco.com +caballosonline.net +cabalpeerage.space +caban8x.com +cabddisque.cf +cabddisque.ga +cabddisque.gq +cabddisque.ml +cabddisque.tk +cabekeriting99.com +cabela.ru +cabezonoro.cl +cabify.cl +cabildocongo.com +cabinet-74.ru +cabinet-benedikt.com +cabinet-valerie-alonso.com +cabinets-chicago.com +cabinmirosy.info +cablecour.xyz +cableetmaterieldelevage.com +cablefev.xyz +cablefeve.icu +cablestore.hk +cablesword.email +cabm114.com +cabm89.com +cabm98.com +cabob.best +caboexpat.org +cabonmania.ga +cabonmania.tk +cabonobaddays.com +cabotog.net +cabotwebworks.com +cabrogamer.com +cabromotor.com +cabry.website +cabuddti.cf +cabuddti.ga +cabuddti.ml +cabuddti.tk +cabwclhf.shop +caca69.com +cacanhbaoloc.com +cacao.organic +cachedot.net +cachehosting.com +cachlamdep247.com +cachon.netmail.tk +cacingnaga.net +cacingnaga123.com +cacodemon998od.online +cacoink.ru +cad.edu.creo.tips +cad.edu.gr +caddegroup.com +caddelll12819.info +caddie.co +caddoazga.space +caden.science +cadetjobs.com +cadewey.com +cadillac-ats.tk +cadillacupstate.com +cadliafor.cf +cadliafor.ga +cadliafor.gq +cadliafor.ml +cadliafor.tk +cadmiurphj.space +cado68.com +cadomoingay.info +cadrbranch.ru +cads.tel +cadsaf.us +caeblan.com +caeboyleg.cf +caeboyleg.ga +caeboyleg.ml +caeboyleg.tk +caefrj.icu +caerwyn.com +caewite.cf +caewite.ga +caewite.gq +caewite.ml +cafe46design.xyz +cafebacke.com +cafebacke.net +cafecar.xyz +cafejomo.com +cafemilano-toomevera.com +cafepure.com +cafeqrmenu.xyz +caferagout.ru +cafergot.website +cafergot247.video +caferomatakeaway.com +cafesayang.com +cafesecretary.buzz +cafesiete.es +caffedelpalladio.com +caffeineandpregnancy.org +cafrem3456ails.com +cafuno.com +cagare.cf +cagare.ga +cagare.gq +cagare.ml +cagare.tk +cagdasdemokrattoplumcumimarlar.xyz +cageymail.info +cagi.ru +cagoi.net +cagolfboo.cf +cagolfboo.gq +cagolfboo.tk +cahalfpricelisting.com +cahalfpricelistings.com +cahayasenja.online +cahir-takeaway-cahir.com +cahkerjo.tk +cahoye.net +cahsintru.cf +cahturbate.club +cahturbate.org +cai-nationalmuseum.org +cai813.com +caidadepeloyal26.eu +caidime.ga +caidime.gq +caidime.tk +caifayulezc.com +caifos.net +caih.asia +cailega.cf +cailega.ga +cailega.ml +cainongbang.xyz +caipiao9837.com +cairdominoqq.info +caishang123.xyz +caishangpai.xyz +caishen10.fun +caishen11.fun +caishen13.fun +caishen16.fun +caishen6.fun +caishen8.fun +caishen9.fun +caistore.com +caitlynfarrowphotography.com +caiwenhao.cn +cajacket.com +cajero.net +cajun-claws.com +cajunglossary.com +cajunricecookers.com +cajydo.info +cakabahis.com +cakenxibenv.email +cakeonline.ru +cakesrecipesbook.com +cakewalktech.org +cakk.us +cakokalrect.tk +cakottery.com +calagreens.info +calandarstudy.com +calav.site +calcimine.club +calciuvpht.space +calcm8m9b.pl +calculatedchaos.net +calculatord.com +calcy.org +caldeiragroup.org +calderonpublicidad.com +caldwellbanker.in +calffiercechic.website +calfocus.com +calgarymortgagebroker.info +caliberaccounting.com +caliberaccountinggroup.com +calibericvilafrancadelpenedes.com +calibex.com +calibra-travel.com +califityoga.com +califohdsj.space +california-nedv.ru +california-resident-agent.com +californiaaddictiontreatment.center +californiaaws.com +californiabloglog.com +californiacolleges.edu +californiadroneworks.com +californiafarmwedding.com +californiafitnessdeals.com +californiagambler.com +californiamovo.com +californianetizen.com +californiaoutdoorwedding.com +californiaquote.com +californiaranchwedding.com +californiaufc.com +californiavalentine.com +caligulux.co +calisfei.cf +calisfei.ga +calisfei.gq +calisfei.tk +calismak.xyz +call-aide.com +call-direct.net +call-rick.com +callankebabishandindian.com +callbikes.com +callbsa.website +callcenter-support-qapr9h24zdpxlg9x.best +callcenter.works +callcentersolo.online +callcenterthevirtual.online +callcenterthink.online +callcentreit.com +callejondelosmilagros.com +callemoda.com +caller.reviews +calliope2.org +callmsv.website +calloneessential.com +callout.app +callrick.properties +callthegymguy.top +callthemainguy.top +calltheweb.com +calltracks.ru +callwestgate.com +calmdown.site +calmkeepalma.ml +calnam.com +calnaser.cf +calnaser.ga +calnaser.gq +calnaser.ml +calninfculning.ga +caloriebuddyapp.com +caloriecloaks.com +caloriesandwghtlift.co.uk +calphemi.cf +calphemi.ga +calphemi.ml +calphemi.tk +calumeno.net +calvadaho.com +calvarwxnp.space +calvarycloud.com +calver.biz +calverleyparish.host +calvertscatering.com +calvinkleinbragas.com +calypsoservice.com +calyx.site +cam2d.com +cam4you.cc +camachohome.com +camalize.com +camaloon.mobi +camaloon.net +camaradamail.club +camaradeaguasdetenerife.com +camau24h.info +cambiadorparabebe.com +cambiardeseguro.com +cambodiaheritage.net +cambridge-satchel.com +cambridgeapartments.info +cambridgechina.org +cambridgepropertylisting.com +cambridgize.com +camcaribbean.com +camcei.dynamic-dns.net +camciety.com +camcordershop.life +camcum.ru +camcuypop.cf +camcuypop.gq +camcuypop.ml +camcuypop.tk +camdenchurchofchrist.com +camedicalcannabis.expert +camelisete.ru +camelotcostumes.com +camerabewaking.shop +camerabuy.info +camerabuy.ru +camerachoicetips.info +cameraregistration.com +cameratouch-849.ru +cameravinh.com +cameroncook.buzz +cameronpalmer.com +cameroon365.com +camgirlexposed.com +camgirls.de +camifix.xyz +camilhouse.co +camille.pw +camillosway.com +camilokolomi.com +caminoaholanda.com +camionesrd.com +camisetascomohongos.com +camisetashollisterbrasil.com +camisolandia.com +camlive.ooo +cammk.com +camnangdoisong.com +camo-covers.com +camobet365.com +camocovers.com +camoney.xyz +camorgasmo.com +campano.cl +campcuts.com +campeonbet24.com +camphillchiropractic.com +camping-grill.info +campingandoutdoorsgear.com +campinghackers.xyz +campingtribe.com +campmas.com +camposol-linea-etica.com +campouts.app +camprv.com +campsaver.ru +campusblog.com +campuscorruption.com +campuscoverage.org +campusofmediators.ong +camrecs.com +camren.club +camrynhaley.com +camsetif19.com +camspov.com +camsuki.com +camthaigirls.com +camworldfree.com +camxxx.ooo +camxxx.tech +camxxx.xyz +can5292.com +can5584.com +canabisonfire.com +canadacoachhandbags.ca +canadafamilypharm.com +canadafreedatingsite.info +canadagoosecashop.com +canadagoosedoudounepascher.com +canadagoosejakkerrno.com +canadagoosets.info +canadalivecasinos.com +canadan-pharmacy.info +canadaonline.biz +canadaonline.pw +canadapharm.email +canadapharmaciesonlinebsl.bid +canadapharmacyonlinebestcheap.com +canadaweb.info +canadawebmail.ca.vu +canadian-fury.com +canadian-onlinep-harmacy.com +canadian-pharmacy.xyz +canadian-pharmacys.com +canadiancourts.com +canadianhackers.com +canadianonline.email +canadianpharmaciesbnt.com +canadianpharmacymim.com +canadianpharmacyseo.us +canadians.biz +canadiantopcasinos.com +canadianvaping.com +canadlan-pharmacy.info +canadph.com +canaimaburger.com +canakkalekartallari.xyz +canakkalelilernakliyat.com +canakkalelilernakliyat.xyz +canakkalemotorsiklet.xyz +canakkaleotels.xyz +canakkalevillagarden.com +canakkaleyildiznakliyat.com +canalinfo.online +canallow.com +canalpilates.net +canalpointhomes.com +canarytool.com +canbay.cf +canbay.tk +canborrowhot.com +cancecharb.cf +cancecharb.ga +cancecharb.gq +cancecharb.ml +cancecharb.tk +cancerbattlewear.com +cancerbuddyapp.com +cancermoon.org +canchimi.cf +canchimi.ga +canchimi.gq +canchimi.ml +canchimi.tk +cancun-transfers.us +cancunhikes.online +cancunholidaytours.us +cancunhotelpackages.tech +cancunpackages.space +cancunresortspackages.online +cancunweddingpackages.us +candahouse.co +candcluton.com +candesign.systems +candida-remedy24.com +candidteenagers.com +candlesticks.org +candokyear.com +candsdenterprises.com +canduqq.best +candy-blog-adult.ru +candy-captcha.com +candy-private-blog.ru +candyjapane.ml +candylee.com +candyloans.com +candymail.de +candynet.shop +candyranch.online +candysweetday.com +candywrapperbag.com +candywrapperbag.info +candyyxc45.biz +cane.pw +canextend.net +canextenz.com +canextenz.net +canfima.cf +canfima.ml +canfima.tk +cangdazzdec.ga +cangdazzdec.gq +cangdazzdec.ml +cangdazzdec.tk +cangdet.club +canggih.net +cangrejopistoleroediciones.com +canguroos.ml +cangzm.us +canhac.vn +canhacaz.com +canhacvn.net +canhardco.cf +canhardco.ga +canhardco.ml +canhcvn.net +canhoehome4.info +canholaimianquan2.net +canibots.com +canie.assassins-creed.org +canilvonhauseferrer.com +caniracpuebla.com +canitta.icu +cankaushikshave.site +cankirilimited.xyz +canlialem.xyz +canlibahisoyunu.xyz +canlidizi.com +canlidoviz.site +canligorusme.com +canlimacizler9.club +canlitvizle.pro +canmorenews.com +cannabel.org +cannabidiol.organic +cannabis-investor.com +cannabis-registration.com +cannabis-registration.net +cannabis-registry.org +cannabis918.shop +cannabisa-net.su +cannabisaktiennews.com +cannabisispiritual.com +cannabislong.com +cannabisregulacionya.com +cannabisresoulution.net +cannabisscom.com +cannabpharmis.com +cannabulizers.com +cannacbdpharm.com +cannado.art +cannagize.com +cannagize.net +cannalytics.app +cannapharm2relax.com +cannapharmacom.com +cannapharmcybis.com +cannapleaz.com +cannapurefarms.com +cannarcrm.com +cannawild.com +cannawild.net +cannedsoft.com +cannedsoft.net +canneplex.com +canneplex.net +cannextend.com +cannextenz.net +cannextenze.com +cannextenze.net +cannn.com +cannonbet77.com +cannoncrew.com +canonlensmanual.com +canonwirelessprinters.com +canpha.com +canpu.website +canrelnud.com +cansome.online +cantadeniziniz.xyz +cantaesin.online +cantamagazam.xyz +cantate-gospel.de +canteenfineasiancuisine.com +canterburyaccountancy.com +canterburynewzealanddirect.info +canthhogem.cf +canthhogem.ml +canthhogem.tk +cantikmanja.online +canton-fair.ru +cantondoctors.com +cantonwaterford.com +canuster.xyz +canvasium.com +canvaslouisiana.com +canvasshoes.club +canvasshoeswholesalestoress.info +canvastailoring.com +canwest.net +canyonrimhoneybees.com +canyouhearmenow.cf +canytimes.com +canzones.best +cao2sd4.xyz +cao6sd.xyz +cao7yhf.xyz +caob5c2.xyz +caod4w4.xyz +caodang.cd +caoew75.xyz +caof1d2.xyz +caofd21.xyz +caogf1c.xyz +caolh36.xyz +caoliu33.app +caomedge.ga +caongo.com +caonima.gq +caoq12df.xyz +caoq5do.xyz +caoser.com +caouyt21.xyz +caow32s.xyz +caoxy.xyz +cap-ogx.com +capablily.xyz +capabraintu.monster +capacitando-me.com +capatal.com +capba.site +capeandislandshearing.com +capeaudiology.com +capebretonpost.com +capecodaudiology.com +capecodear.com +capecodtinnituscenter.com +capecodtinnitustreatment.com +capecoralnailsalons.com +capehearing.com +capehu.ga +capehu.ml +capehu.tk +capetownactiva.com +capetownexcursions.com +capeture.com +capisci.org +capitakfqe.site +capital-capital.ru +capital-city.info +capital-humano.cl +capital-turkish-kebab-house.com +capitalbasicnews.com +capitalcommunityathletics.info +capitaldesign.info +capitalequityreport.com +capitalis-europa.com +capitalistdilemma.com +capitalizable.one +capitalme.app +capitalme.sk +capitalregionusa.biz +capitalregionusa.info +capitalswarm.com +capitolartscomplex.org +capitolcrypto.com +capkakitiga.pw +capnography.info +capo-daca1.ru +cappadociadaytours.com +capper-azia.ru +cappriccio.ru +caprealty-grp.com +capri-crumlin.com +capriviews.info +capsamu.com +capsaoke.info +capsaoke.net +capsaoke.org +capsaoke.xyz +capsapoker.xyz +capsawinshoki88.net +capsawinspkr.com +capsjutab.cf +capsjutab.ga +capsjutab.ml +capsjutab.tk +capsulizing906vc.online +captain4bins.com +captainamericagifts.com +captaindocker.com +captaindocker.org +captainjack.casino +captainsandguides.com +captaintlr.com +captionmediaservices.com +capturedbychelle.com +capturehisheartreviews.info +caputareg.ga +caputoesp.llc +caqmmw.shop +caqsasxc.art +car-and-girls.co.cc +car-arom.ru +car-fur.ru +car-innovcamera.ru +car-insurances.us +car-wik.com +car-wik.tk +car.storage +car101.pro +car48plus.xyz +caraa317.xyz +caraalami.xyz +caraccidentlawyernetwork.net +carackkat.online +caraff.com +caramail.pro +carambla.com +caramelize931tp.online +caramelopurohabano.com +caramerica.site +caraparcal.com +caraper.tk +caraqua.ru +caratane.com +carati02.online +carati03.online +caratsjewelry.com +caraudiomarket.ru +carautoinjury.com +caravan-express.com +carazfi.cf +carazfi.ga +carazfi.ml +carazfi.tk +carbazaarchandigarh.com +carbbackloadingreviews.org +carbo-boks.pl +carbonationgame.com +carbonationsim.com +carbonbrush.us +carbonbrushes.biz +carbonbrushes.us +carbonequity.us +carbonfiberbrush.biz +carbonfiberbrush.com +carbonfiberbrush.net +carbonfiberbrush.us +carbonfiberbrushes.biz +carbonfiberbrushes.net +carbonfiberbrushes.org +carbonfiberbrushes.us +carbonhans.com +carbonia.de +carbonnotr.com +carbtc.net +carcaremag.com +carcdr.com +carcloud49.xyz +carcoverstoday.com +card.zp.ua +cardawe.com +cardetailerchicago.com +cardiae.info +cardiffartisan.com +cardivings.info +cardmellloshop.com +cardour.com +cardpayonline.site +cardpg90sbt.xyz +cardsagainsthrones.com +cardsexpert.ru +cardsjustice.com +cardsthornton.com +cardtested.com +cardthis.com +cardtribute.com +carearoverseas.com +careconnectbeta.com +caredeliveryu.com +caredeliveryuniversity.com +caredex.com +caree9.com +careerassessmentsystem.org +careerladder.org +careermans.ru +careersinentertainmenttour.org +careersschool.com +careerupper.ru +careerwill.com +carefreefloor.com +carefreesoccer.com +caregraf.net +carehabcenter.com +carehelping.buzz +careless-whisper.com +carenetdesign.com +carerunner.com +caresforfish.com +careuters.com +carfola.site +cargids.site +cargobalikpapan.com +cargoefren.cf +cargoships.net +carhireok.com +cariadrecords.com +caribbeancruisessale.com +carinamiranda.org +caringforourwatersheds.cd +carins.io +carinsurance2018.top +carinsurancebymonth.co.uk +carinsuranceflorida.fun +cariocawayoflife.com +carissahouse.co +caritashouse.org +caritto.ru +carlasampaio.com +carlavis.info +carleasingdeals.info +carloansbadcredit.ca +carlosandrade.co +carlosdejesustotalfitness.com +carlossanchez.ga +carlossanchez.ml +carlossanchez.tk +carloszbs.ru +carlow-kebabish.com +carmafunderburg.co +carmail.com +carmelrealestateagents.com +carminemarceno2020.com +carminemarcenoforsheriff.com +carmit.info +carnalo.info +carnavalbetting31.com +carnegieacademyrealestate.com +carnegieacademytaxlien.com +carney.website +carnocha.cf +carnocha.gq +carnocha.tk +carny.website +caroil-coupon.xyz +caroil-promo.xyz +carolelectronic.com +carolers754py.online +carolinamodel.com +carolinarecords.net +carolinashoe.ru +caroline-petit.com +carolineagreen.com +carolinecrane.net +carolinejeanbaptiste.net +caroliqsdi.space +carolserpa.com +carolstaxes.org +carolus.website +carolynlove.website +caronic.shop +carpaltunnelguide.info +carpet-cleaner-northampton.co.uk +carpet-oriental.org +carpetblue.shop +carpetcareseattle.com +carpetcareseattle.net +carpetcleaningventura.net +carpetmartrugs.com +carpetremoval.ca +carpetstore.se +carpin.org +carpoo.com +carpool.design +carpuppets.info +carras.ga +carrepair.press +carrereclock.ru +carribeanpremierleague.com +carrick-hut-takeaway.com +carrickfergusknights.com +carriedennis.us +carriwell.us +carrnelpartners.com +carrolltonaccidentlawyer.com +carrolltonaccidentlawyers.com +carrolltoninjuryattorney.com +carrolltonpersonalinjuryattorneys.com +carrosusadoscostarica.com +carrygian.xyz +carrygr.icu +carrygran.xyz +carrys.site +carrytough.com +cars.cd +cars2.club +carsaa318.xyz +carsabas.info +carsencyclopedia.com +carslon.info +carspost.ru +carsyakaz.xyz +cartaodetodos.site +carte3ds.org +cartelera.org +cartelparaeventos.com +cartelrevolution.co.uk +cartelrevolution.com +cartelrevolution.de +cartelrevolution.net +cartelrevolution.org +cartelrevolutions.com +carterasdesilicona.com +cartersvillewebdesign.com +cartflare.com +carthagen.edu +cartmails.com +cartone.fun +cartoonarabia.com +cartoonnet.shop +cartoonsors.com +cartoontextures.com +cartsoonalbumsales.info +cartuningshop.co.uk +cartwright-morris.com +carubull.com +carvaleters.com +carvecolo.site +carvehabi.xyz +carver.website +carverid.xyz +carveride.icu +carvideoshop.life +carwashautopay.com +cary.website +caryamen.com +caryl.website +cas-01.com +casa-versicherung.de +casa.myz.info +casa.systems +casa98.bet +casacaymanrealestate.com +casadecampo.online +casadepaellalasrozas.com +casadimilano.com +casampiters.com +casanova-up.pro +casar.website +casaresgolfandcountryclub.com +casaromatakeaway.com +casarosita.info +casaruralsolidariacaceres.com +casavincentia.org +casavoletv2.com +casavoletv3.com +casaytierrallc.net +cascadevps.com +cascaisnetradio.com +case4pads.com +casecab.com +caseedu.tk +caseincancer.com +casekoga.ru +caseritodelibery.com +casesurfer.com +casetine.icu +casetnibo.xyz +caseyfarina.net +caseylaris.com +cash.camera +cash.org +cash128.com +cash1loans.loans +cash2.xyz +cash4.xyz +cash4houses.us +cash4nothing.de +cash5.xyz +cash6.xyz +cash7.xyz +cash8.xyz +cash9.xyz +cashadvance.com +cashadvance.us +cashadvancer.net +cashadvances.us +cashbabmzp.ru +cashbacklisting.com +cashbackr.com +cashbazi.club +cashewnutfromvietnam.com +cashfeed.net +cashfeeding.com +cashforhouseskc.com +cashforjunkcarsmanhattan.info +cashhloanss.com +cashierdecinema.com +cashlater.com +cashlinesreview.info +cashloan.org +cashloan.us +cashloannetwork.org +cashloannetwork.us +cashloans.com +cashloans.org +cashloans.us +cashloansnetwork.com +cashmons.net +cashpal.app +cashplus.us +cashproposals.com +cashspincasino.com +cashstroked.com +cashtogoods.com +cashvpn.com +casiboom.com +casino-119.com +casino-admiral10.com +casino-bingo.nl +casino-bonus-kod.com +casino-champion-official-site.com +casino-joser.com +casino-online.rocks +casino-vulkan-24.win +casino-x.co.uk +casino4me.ru +casino892.com +casinoaa316.xyz +casinoaustralia-best.com +casinobandar.net +casinobest.ru +casinobingosportsbetting.info +casinobit.bet +casinobit.club +casinobonusual2.com +casinochan2.com +casinocuan.club +casinocyprus1.ru +casinoelit47.com +casinoeridanmark.com +casinofundaily.info +casinogreat.club +casinojack.xyz +casinokun.hu +casinoleaks.info +casinomarin13.com +casinomarin22.com +casinomegapot.com +casinomolnia.com +casinoohnedeutschelizenz.net +casinoonline.cd +casinoove5.com +casinopharaonbet9.ru +casinopharaononline9.ru +casinoplorer.com +casinoremix.com +casinoreviewscanada.com +casinos-online.ru +casinos.ninja +casinos4winners.com +casinosport88.pro +casinotopwinplay.best +casinoturk.net +casinovaz.com +casinovegas.com +casinovegas69.com +casinovip.ru +casinowin.us +casinowin88.org +casinoxzerkalo.ru +casinoz.fun +casinoz.site +casinoz777.space +casio-edu.cf +casio-edu.ga +casio-edu.gq +casio-edu.ml +casio-edu.tk +casiobet.live +casitsupartners.com +caslno-faraon.ru +casmud.tk +casoron.info +casp3ss.com +casperlouis.com +caspianfan.ir +caspianshop.com +caspiantejarat.com +caspit.site +casquebeatsdrefrance.com +cassaundra.club +cassidony.info +cassinoonlinebacana.com +cassinoonlinebacanaplay.com +cassio3e.club +cassiomurilo.com +cassius.website +casstream.online +castanheiraleilao.com +castellochinese.com +castillodepavones.com +castiron-jeans.com +castiron.clothing +castkidninf.cf +castkidninf.ga +castkidninf.ml +castkidninf.tk +castle-kebab-takeaway.com +castlebranchlogin.com +castlecamelot.net +castlecary.org +castlekebabhouse.com +castlelawoffice.com +castlerockdoctors.com +castles-carey.com +castlevania.online +castlock.us +castlpoir.ga +castmerkezi.net +castorsunglasses.online +castplayer.net +castri.com +castromail.bid +castudio.shop +castwinners.space +casualdx.com +casuallclub.ru +casualtreff-confirmed.com +casualtreff-meet-backup.com +casualtreff-meet.com +cat-breeders.biz +cat.pp.ua +catalinaloves.com +catalog8.ru +catalogimunity.com +cataloniaoffers.icu +catalystnetwork.info +catalystrealtygroup.com +catalystwallet.info +catalystwms.com +cataratafortuna.com +cataumetclubcamp.com +catcafe.online +catch.everton.com +catch12345.tk +catchadj.com +catchall.fr +catchemail1.xyz +catchemail5.xyz +catchletter.com +catchmamo.cf +catchmamo.ga +catchmamo.gq +catchmamo.tk +catchmeifyoucan.xyz +catchmino.xyz +catchonline.ooo +catchthr.xyz +catchtos.info +catchtricop.cf +catchtricop.ga +catchtricop.gq +catchtricop.ml +catchtricop.tk +catcrakzup.website +cate-sd.com +categon.cf +categon.ga +categon.gq +categorize587tb.com +catercla.icu +catercolorado.com +caterho.icu +catering.com +caterwatc.xyz +caterwire.com +catessa.com +catfish101.com +cath17.com +cathead.ru +catherina.club +catherinegreco55places.com +catholicsla.com +catholicsla.org +cathouseninja.com +catighpul.cf +catighpul.gq +catighpul.ml +catighpul.tk +catindiamonds.com +catliuxin.xyz +catnipcat.net +catorpnd.club +catretainerbug.website +catson.us +cattleclub.net +catturarelavita.com +catty.wtf +catypo.site +caucomda.cf +caucomda.gq +caucomda.ml +cauf.email +caufurjo.cf +caufurjo.ml +caufurjo.tk +caughtinthemiddle.org +caugiay.tech +cauri.ru +causamail.club +causedelta.org +causeforalife.com +causesofheadaches.net +causetoshare.com +causikir.cf +causikir.ga +causikir.gq +causikir.ml +cauthanggooccho.com +cautiocon.cf +cautiocon.ga +cautiocon.gq +cautiocon.tk +cav000.com +cav002.com +cav006.com +cav111.com +cavi.mx +caviarsmoke.store +caviaruruguay.com +cavilers639kx.online +cavisto.ru +cavlbx.us +cawo8x.com +cawxrsgbo.pl +cax-aksmmor.ru +caxa.site +caybrac.com +caycebalara.com +cayrdzhfo.pl +caywrisun.cf +caywrisun.gq +caywrisun.ml +caywrisun.tk +cazerumka.ru +cazino777.pro +cazinoid.ru +cazinomolniya.com +cazinovulkan777.ru +cazinoz.biz +cazir.live +cazis.fr +cazzie.website +cazzo.cf +cazzo.ga +cazzo.gq +cb365.space +cb367.space +cb381.space +cb44ay.com +cb4p1f.us +cb5.xyz +cb6ed.xyz +cb6it0.us +cb7ohx6dhgy1ikl.xyz +cbagian.buzz +cbair.com +cbajl.live +cbajlo.site +cbamboo.com +cbaplex.net +cbarato.plus +cbarato.pro +cbarato.vip +cbav12.xyz +cbav9.xyz +cbaweqz.com +cbbwabci.shop +cbc-2020.website +cbc-canada2020.site +cbca.xyz +cbcfpermanence.com +cbd-bites.net +cbd-direct.net +cbd-mart.net +cbd-pills.net +cbd-snack.net +cbd-snacks.net +cbd-treats.com +cbd-treats.net +cbd.clothing +cbd47.com +cbd4less.net +cbd911.life +cbdarthritisrelief.com +cbdbites.net +cbdbydrakc.com +cbdcake.com +cbdelivered.net +cbdeserts.net +cbdforbirds.com +cbdforcure.com +cbdforless.net +cbdforms.com +cbdgeeks.org +cbdgumcanada.online +cbdhealthnuts.com +cbdhealthpro.com +cbdhealthpro.net +cbdjungle.com +cbdlandia.pl +cbdnut.com +cbdnuts.net +cbdofthemonth.com +cbdol.ru +cbdpackage.net +cbdpicks.com +cbdreleafmedway.com +cbdshield.net +cbdslim.net +cbdstars.net +cbdtodaynow.com +cbdw.pl +cbe96.xyz +cbes.net +cbgame.club +cbgh.ddns.me +cbhj.email +cbjr.tk +cbjunkie.com +cbkariyer.com +cbmcalgary.com +cbmg.email +cbms.online +cboshuizen.com +cbot1fajli.ru +cbproofs.com +cbreviewproduct.com +cbrit.com +cbs0r3.us +cbspoker.net +cbsua.ga +cbuapv.club +cbxapp.com +cby95.com +cbyourself.com +cbzmail.tk +cc-cc.usa.cc +cc-lucky9.com +cc-s3x.cf +cc-s3x.ga +cc-s3x.gq +cc-s3x.ml +cc-s3x.tk +cc.mailboxxx.net +cc.netmail.tk +cc0d.com +cc272.net +cc2ilplyg77e.cf +cc2ilplyg77e.ga +cc2ilplyg77e.gq +cc2ilplyg77e.ml +cc2ilplyg77e.tk +cc33.online +cc3770.com +cc4av.info +cc57822.com +cc9356.com +cc9oif.com +ccacomunicacao.com +ccamerapeak.site +ccat.cf +ccat.ga +ccat.gq +ccavinun.cf +ccavinun.gq +ccavinun.ml +ccavinun.tk +ccbd.com +ccbilled.com +ccc-119.com +ccc526.xyz +ccc9827.com +cccc.com +ccccmontreal.com +ccclmail.com +ccdd.site +cce.coop +cceee.net +cceks.com +ccfcd46.xyz +ccgtoxu3wtyhgmgg6.cf +ccgtoxu3wtyhgmgg6.ga +ccgtoxu3wtyhgmgg6.gq +ccgtoxu3wtyhgmgg6.ml +ccgtoxu3wtyhgmgg6.tk +cchaddie.website +cchatpulsek.site +cchatwarer.site +cchatz.ga +cchetsbdc7.uno +cciatori.com +ccid.de +ccikarate.com +ccisnorth.org +cclend.website +ccmail.men +ccmgweb.com +ccmoe.com +ccmskillscamp.com +ccn35.com +ccoinxsm.site +ccon4.xyz +ccpad.ml +cctrl.org +cctvcamerasrus.xyz +cctyoo.com +ccustaffing.com +ccuttonics.com +ccwld.com +ccxdvo.icu +ccxpnthu2.pw +ccyansu.com +cd.mintemail.com +cd.usto.in +cd212f77.xyz +cd2in.com +cd921a07.club +cd9cki.us +cdaeastlands.com +cdbook.club +cdcbkidsdentist.com +cdclot.com +cdcmail.date +cdcovers.icu +cdekhouse.space +cdjcy.com +cdjiazhuang.com +cdkey.com +cdmoe.com +cdn.rent +cdnaas.com +cdnaas.net +cdnfree.gq +cdnplayvideos.xyz +cdnqa.com +cdntunnel.com +cdofutlook.com +cdoza.live +cdp6.com +cdpa.cc +cdpchurch.com +cdpluss.com +cdpokem.ru +cdressesea.com +cdrhealthcare.com +cdrmovies.com +cdsljk.com +cdsshv.info +cdtwb1.site +cdvig.com +ce.mintemail.com +cebaffshop.store +cebahis29.com +cebgcefd.ga +cebithannover.ru +cebolsarep.ga +cebong.cf +cebong.ga +cebong.gq +cebong.ml +cebong.tk +cecerbuyshouses.com +cecilihouse.co +ceco3kvloj5s3.cf +ceco3kvloj5s3.ga +ceco3kvloj5s3.gq +ceco3kvloj5s3.ml +ceco3kvloj5s3.tk +cecrlem.top +cedarcitybusinessbrokers.com +cedarcomputerssite.club +cedarfallsapartments.com +cedarloghomestn.biz +cedarrapidsrealestateagents.com +cedijournal.com +cedoiruty.cf +cedwa.us +ceed.se +ceefax.co +cefer.xyz +cefind.net +ceftvhxs7nln9.cf +ceftvhxs7nln9.ga +ceftvhxs7nln9.gq +ceftvhxs7nln9.ml +ceftvhxs7nln9.tk +cegisau.space +cehage.ga +cehage.gq +cehage.ml +cehage.tk +cehami.com +cehomeagencyinc.org +cehu.site +ceifiohous.ga +ceifiohous.gq +ceifiohous.ml +ceifiohous.tk +ceilysa.cf +ceilysa.ga +ceilysa.tk +ceinasu.ru +ceipanto.cf +ceipanto.ga +ceipanto.ml +ceipanto.tk +ceiraafrac.cf +ceiraafrac.gq +cek-resi.website +cek-tagihan.website +cek.pm +cekajahhs.tk +cekilisli.space +ceklaww.ml +cekmovie.com +cekygr.icu +celakafe.xyz +celdelest.cf +celdelest.ga +celdelest.gq +celdelest.tk +cele.ro +celebandtrend.com +celebans.ru +celebes.us +celebfap.net +celebleak.co +celebmarket.net +celebmetrics.com +celebratelifebc.info +celebrinudes.com +celebriporn.net +celebritiesblog.com +celebritron.app +celebrity-whiz.com +celebrityadz.com +celebritydiscounts.club +celebrityweighthack.com +celebrus.email +celebsbreakingnews.com +celebslive.net +celebwank.com +celerirouge.com +celerto.tk +celestineliving.com +celiacenzyme.com +celikhanlimited.xyz +celikogullaritraktor.xyz +celinea.info +celinebags2012.sg +celinecityitalia.com +celinehandbagjp.com +celinehandbagsjp.com +celinejp.com +celinesoldes.com +celinestores.com +celinevaska.com +celiro.ru +cellartravel.com +cellmotion.com +cellphoneaccessoriesdepo.com +cellphonegpstracking.info +cellphoneparts.tk +cellphonespysoftware2012.info +cellsata.cf +cellsata.ga +cellsata.gq +cellsata.ml +cellsata.tk +cellular-phone-accessories-center.com +cellularispia.info +cellularispiaeconomici.info +cellulite-clinics.com +celluliteremovalmethods.com +cellurl.com +celocopac.fun +celsiuscapitalinc.com +celtabet127.com +celtabet184.com +celtabet33.com +celtode.cf +celtode.ga +celtode.gq +celtode.ml +celtode.tk +celtric.org +celyi.live +cem.net +cemailes.com +cemalettinv1.ml +cemalettinv1.tk +cemdevelopers.com +cemdevelopers.info +cemdevelopers.org +cementkazan.ru +cemeqq.poker +cemouton.com +cempece.site +cenanatovar.ru +ceneio.pl +cenglandb.com +cenkdogu.cf +cenkdogu.tk +cenodrom.ru +cent.cd +cent23.com +centa93.icu +center-kredit.de +center-sicherheit-abteilung-update.xyz +center-zemli.ru +centercoupon.ru +centeredconversation.com +centerforresponsiveschools.com +centerforresponsiveschools.info +centerforresponsiveschools.org +centerhash.com +centerlasi.ml +centerlasi.tk +centermail.com +centermail.net +centerpointecontractors.info +centerpointecontractors.net +centerpointecontractors.org +centervilleapartments.com +centimeter.online +centleadetai.eu +centnerschools.net +centnetploggbu.eu +centol.us +centou45.icu +centoviki.cf +centoviki.gq +centoviki.ml +centr-doors.ru +centr-fejerverkov28.ru +centr-luch.ru +centr-med-orenburg.ru +centr-p-i.ru +central-asia.travel +central-cargo.co.uk +central-grill-takeaway.com +central-realestate.com +central-series.com +central-servers.xyz +central-teater.ru +centralatomics.com +centralcomprasanitaria.com +centraldasaude.xyz +centraldecomunicacion.es +centrale.waw.pl +centralgrillpizzaandpasta.com +centralheatingproblems.net +centralizes920zw.online +centraljoinerygroup.com +centrallosana.ga +centralmicro.net +centralniagaraminorhockey.com +centralplatforms.com +centralstaircases.com +centralstairisers.com +centralteam.org +centraltoto.biz +centralux.org +centralwisconsinfasteners.com +centrenola.com +centreofarmonia.com +centresanteglobaleles4chemins.com +centresanteles4chemins.com +centrodeolhoscampos.com +centrodesaude.website +centrodesaude.xyz +centroone.com +centrosprevencion.com +centrulvechi.info +centrvi.online +century-pool-advice-make.xyz +century21coloradoriverrealty.com +century21nz.com +centuryfinley.site +centuryminingsr.com +centvps.com +centy.cf +centy.ga +centy.gq +centy.tk +cenue8x.com +cenun8x.com +ceo-online.ru +ceocili.gq +ceocili.ml +ceocili.tk +ceoll.com +ceomk.live +ceos.us +ceos.xyz +cepatbet.com +cepdelira.xyz +cepechil.ml +cepechil.tk +cepetede.cd +cephalexin247.video +cephtech.com +cepie8x.com +cepin8x.com +cepwslow.works +ceramica-mk.ru +ceramicdinos.com +ceramicsbensu.com +ceramicsouvenirs.com +ceramictile-outlet.com +ceranode.net +ceranode.org +cerb2.com +cerb3.com +cerbapp.com +cerberushelpdesk.com +cerberuslabs.com +cerbidurch.cf +cerbidurch.ga +cerbidurch.gq +cerbidurch.tk +cerdikiawan.me +cereally.com +cerebal-palsey.com +cerebalpalseyattorney.com +cerebalpalsyattorneys.com +cerebral-palsey-attorneys.com +cerebral-palsy-attorneys.net +cerebral-palsy-law-firm.net +cerebral-palsy-law-firm.org +cerebralpalseyattorney.com +cerebralpalseylawyer.com +cerebralpalsyattorneys.com +cerebralpalsyattorneys.info +cerebralpalsyattorneysgroup.com +cerebralpalsyattorneysnetwork.com +cerebralpalsylaw.org +cerebralpalsylawfirm.net +cerebralpalsylawyer.info +cerebralpalsylawyers.org +ceremonydress.net +ceremonydress.org +ceremonydresses.com +ceremonydresses.net +ceremonyparty.com +cereponsu.website +cerf-science.org +cergon.com +cerinaong.com +ceritaku.me +ceritaseksdewasa.org +cerkesnumunemektebi.org +ceroa.com +ceroitemas.ga +certansia.net +certificatievisure.com +certifiedautismtherapists.com +certifiedautismtherapy.com +certifiedfinancialeducation.com +certifiedorganichairproducts.com +certifiedprobatehousesellers.com +certifiedtgp.com +certiflix.com +certifyd.email +certphysicaltherapist.com +certstatus.live +cerukal.ru +cervantesusa.com +cerve.site +cervejeiromestre.com.br +cervezaartesanal.pub +cerysmclean.buzz +cesbfledin.cf +cesbfledin.gq +cesbfledin.ml +ceshi02.xyz +ceshizhuanyong4.icu +cesindy2018.com +ceskarapublika.info +cesknurs69.de +cesmecigida.xyz +cesmemarin.xyz +cesmeogretmenevi.online +cesmeogretmenevi.xyz +cesmetatilcesme.xyz +cessmarwa.gq +cessmarwa.ml +cessmarwa.tk +cessmonre.cf +cessmonre.ga +cessmonre.gq +cessmonre.ml +cessmonre.tk +cestdudigital.info +cestocon.ga +cestocon.gq +cestocon.ml +cestocon.tk +cesur.pp.ua +cetamastelverse.com +cetinraf.com +cetpass.com +cetssc.org +cetta.com +cevdet.tk +ceviriciler.net +cevoboutique.site +cewaby.info +ceweknakal.cf +ceweknakal.ga +ceweknakal.ml +cewtrte555.cz.cc +cex1z9qo.cf +cexkg50j6e.cf +cexkg50j6e.ga +cexkg50j6e.gq +cexkg50j6e.ml +cexkg50j6e.tk +ceyfc.xyz +ceyhantesisat.xyz +ceyhuncan123.tk +ceylonleaf.com +ceylonmusic.com +ceylontravell.icu +cezujao7.online +cezujao7.site +cf393.site +cf99ba7f8a69c93729.xyz +cfa81.space +cfaffiliateap.com +cfaffiliateapp.com +cfat9fajli.ru +cfat9loadzzz.ru +cfatt6loadzzz.ru +cfcae.org +cfdripfunnel.com +cfe21.com +cfejd.us +cfifa.net +cfire-sale.ru +cfllx7ix9.pl +cflnja.us +cfmercantile.net +cfml.ninja +cfn.productions +cfo2go.ro +cfocentre.se +cfoto24.pl +cfremails.com +cfromero.com +cfsf.org +cfskrxfnsuqck.cf +cfskrxfnsuqck.ga +cfskrxfnsuqck.gq +cfskrxfnsuqck.ml +cfskrxfnsuqck.tk +cfspart-impots-gouv.site +cftest123.cam +cftrextriey-manage1.com +cfxsjw.shop +cfyawstoqo.pl +cfzfkypq.shop +cganlefunt.xyz +cgbjxt.tk +cgco.ru +cget0faiili.ru +cget3zaggruz.ru +cget4fiilie.ru +cget6zagruska.ru +cgfirst.dev +cgfrinfo.info +cgfrredi.info +cgget5zaggruz.ru +cgget5zagruz.ru +cghdgh4e56fg.ga +cghvj.site +cghyoh6u7b8hjnr.xyz +cgilogistics.com +cgjt0.us +cgls.shop +cgnz7xtjzllot9oc.cf +cgnz7xtjzllot9oc.ga +cgnz7xtjzllot9oc.gq +cgnz7xtjzllot9oc.ml +cgnz7xtjzllot9oc.tk +cgredi.info +cgrtstm0x4px.cf +cgrtstm0x4px.ga +cgrtstm0x4px.gq +cgrtstm0x4px.ml +cgrtstm0x4px.tk +cgrwmp.icu +cgtj45iht1.men +cgucpa.org +cgvxoom.com +cgwrgmha.shop +cgyeezyus.com +ch.tc +ch13sfv.com +ch13sv.com +ch82sz.us +cha-cha.org.pl +cha17.com +chaamtravel.org +chaappy9zagruska.ru +chabak.net +chabbirtoy.com +chabbirtoy.icu +chabujin.top +chacebao.com +chachajichashmewale.com +chachazz.com +chachia.net +chachupa.com +chachyn.site +chacuo.net +chadu8.com +chaeumacademy.com +chaffyboater.icu +chagacup.ru +chahojoon.com +chahuacun.com +chaibehu.cf +chaibehu.ga +chaibehu.gq +chaibehu.tk +chaiberia.us +chaichuang.com +chaiikz.pro +chaikz.pro +chain-4m.pro +chain-kz.pro +chain11kz.pro +chain13kz.pro +chain2kz.pro +chain2kzb.pro +chain6kz.pro +chain7kz.pro +chain8kz.pro +chain9kz.pro +chaincreator.tech +chaincreator.university +chaincreatorexchange.com +chaincurve.com +chainer.ru +chainius-solutions.biz +chainius-solutions.info +chainius-solutions.net +chainlinkthemovie.com +chainly.net +chainnhtqby.pro +chainrestaurantsolutions.biz +chainru.xyz +chairfly.net +chairmassagekc.com +chairple.us +chairpotatoe.com +chajnik-bokal.info +chalemarket.online +chaletmotel.net +chalkfiel.press +challengeoo.email +challenges.pub +chalti.com +chalupaurybnicku.cz +chamberofshipping.org +chammakchallo.com +chammy.info +champagneposters.com +champbennett.com +champcaps.com +champing.org +champion-ins.com +championcasino.su +championix.com +championscomputersspot.club +champmails.com +champqryq.space +champtheawa.ml +chamsocdavn.com +chamsocvungkin.vn +chanadabilli.shop +chancekey.com +chancemorris.co.uk +chanddonerkebabterrassa.com +chandlerhairsalons.com +chaneborseoutletmodaitaly.com +chanel-bag.co +chanel-outletbags.com +chanelbagguzu.com +chanelcheapbagsoutlett.com +chanelforsalejp.org +chanelhandbagjp.com +chanelkirov43.ru +chanellepace.com +chaneloutlettbagsuus.com +chanelstore-online.com +chaneoutletcheapbags.com +chaneoutletuomoitmini1.com +chaneoutletuomoitmini2.com +changansj.com +change-bitcoin.ru +change.charity +changebarn.com +changefuturenow.com +changemail.cf +changemindchangefuture.org +changenypd.com +changenypd.org +changeofname.net +changesmile.org.ua +changetheway.org.ua +changethewayyoubank.org +changetheworkclimate.com +changing.info +changingemail.com +changnguyen.com +changshutea-official.ru +chanhleoz.com +chanhxa3offer.xyz +chanic.ru +chanluuuk.com +chanmelon.com +channable.us +channel9.cf +channel9.ga +channel9.gq +channel9.ml +channelbrushes.org +channelbrushes.us +channelized437mh.online +channelmovies.net +chans360.xyz +chansdouglas.com +chantel.space +chantellegribbon.com +chantsencounters.com +chanura.website +chaochuiav.com +chaolang39.com +chaolang45.com +chaolang49.com +chaonamdinh.com +chaonhe.club +chaosawa.fun +chaosawful.com +chaosfen.com +chaoshea.us +chaosi0t.com +chaosmachine.net +chaostrut.icu +chaosvalue.us +chaovideo04.com +chaovideo06.com +chaovideo09.com +chaovideo11.com +chaoxs.xyz +chaozhuan.com +chap-chi.com +chapar.cf +chaparmail.tk +chapmanfuel.com +chappy1faiili.ru +chappy9sagruz.ru +chaptermultimediatumble.website +characterizing205yn.online +charcoalforteeth.com +charcoalpowder.net +charfoce.cf +charfoce.ga +charfoce.gq +charfoce.ml +charfoce.tk +chargecell.xyz +chargeco.xyz +chargedmuscles.com +chargeduprewards.com +chargekitty.com +chargerin.com +charitablehomesite.club +charity.pizza +charityfloor.com +charityforpoorregions.com +charityfullcircle.org +charitysmith.com +charitysmith.us +charitysmithfunds.org +charjmostaghim.com +charjmostagim.com +charleschadwick.com +charlescottrell.com +charlesheflin.com +charlesjordan.com +charlesmoesch.com +charleston-titleloans.com +charlestonpersonaltrainer.net +charlie.mike.spithamail.top +charlie.omega.webmailious.top +charlielainevideo.com +charlieonparole.com +charlotteaddictiontreatment.com +charlottechiropracticneurology.com +charlottecocainerehab.com +charlotteheroinrehab.com +charlottehomeautomation.com +charlotteixp.com +charlottemajorleaguesoccer.com +charlottenorthcarolinachiropracticneurologist.com +charlotteopiaterehab.com +charlottequote.com +charlottesullivan.buzz +charlotteverywell.com +charltons.biz +charmhive.com +charmingdesigngirl.com +charminggirl.net +charmlessons.com +charmrealestate.com +charms-shop.com +chartconcierge.com +chartercatamaranthailand.com +charterfouri.com +charteroflove.com +chartersecurities.com +chartersnyc.com +chartier.name +chartnov.xyz +chartsma.press +chartsocials.com +chartubate.club +chartubate.info +chartubate.org +chartubate.xyz +chartube.club +chartube.org +chartube.xyz +chasefreedomactivate.com +chaseharnack.com +chasingyards.com +chasseurimmobiliernantes.com +chassi-nc.cf +chat316.com +chatabate.club +chatbelgique.com +chatbotbucket.com +chatbotpack.net +chatbotpack.org +chatdays.com +chatdig.com +chateastern.com +chatfap.info +chatflh.net +chatfrenchguiana.com +chatgirl.tech +chatinho.net +chatjunky.com +chatkiste.net +chatlines.club +chatlines.wiki +chatpolynesie.com +chatsite.shop +chattanoogarealestateagents.com +chatterdrive.xyz +chatur21bate.com +chaturbatism.com +chaturbatist.com +chaturbatoid.com +chatwith.it +chauhanz.tk +chaussresbuys.com +chaussure-air-max.com +chaussure-air-maxs.com +chaussure-airmaxfr.com +chaussure-airmaxs.com +chaussureairmaxshop.com +chaussuresadaptees.com +chaussuresairjordansoldes.com +chaussuresllouboutinpascherfr.com +chaussureslouboutinmagasinffr.com +chaussureslouboutinpascherfrance.com +chaussureslouboutinpascherparis.com +chaussuresslouboutinpascherfrance.com +chaussuresslouboutinppascher.com +chaussurs1ouboutinffrance.com +chavhanga.com +chaweihsu.com +chay-market.com +chaz.live +chazakbracelets.com +chbrhr.icu +chbx7.com +chclzq.com +cheap-beatsbydre-online.com +cheap-carinsurancecanada.info +cheap-carinsuranceuk.info +cheap-carinsuranceusa.info +cheap-coachpurses.us +cheap-ghdaustraliastraightener.com +cheap-inflatables.com +cheap-led-grow-lights.com +cheap-monsterbeatsdre-headphones.com +cheap-mp3s.com +cheap-nikefreerunonline.com +cheap-tadacip.info +cheap.lighting +cheap.photography +cheap2trip.com +cheap3ddigitalcameras.com +cheap43.xyz +cheap46.xyz +cheap4u.ru +cheap5831bootsukonsale.co.uk +cheapabeatsheadphones.com +cheapabercrombieuk.com +cheapadidasashoes.com +cheapairjordan.org +cheapairmaxukv.com +cheapantivirussoftwaress.info +cheapbacklink.net +cheapbagsblog.org +cheapbagsmlberryuksale.co.uk +cheapbarbourok.com +cheapbeatsbuynow.com +cheapbedroomsets.info +cheapbootsonuksale1.co.uk +cheapcar.com +cheapcarinsurancecanada.com +cheapcarinsurancerus.co.uk +cheapcarrentalparis.info +cheapcellphonesplus.com +cheapchaneljp.com +cheapcheapppes.org +cheapchristianllouboutinshoes.info +cheapchristianlouboutindiscount.com +cheapchristinlouboutinshoesusa.com +cheapcoacbagsoutletusa.com +cheapcoachbagsonlineoutletusa.com +cheapcoachfactoryyonlineus.com +cheapcoachotletstore.com +cheapcoachoutletonlinestoreusa.com +cheapcoachstoreonlinesale.com +cheapcoahoutletstoreonline.com +cheapcoahusa.com +cheapcubatravel.net +cheapdiamond.net +cheapdji.online +cheapdsgames.org +cheapeffexoronline.net +cheapelectronicreviews.info +cheaperautorepair.com +cheapercarrepair.com +cheaperredbottoms.com +cheapershop.host +cheaperthandrit.com +cheapessaywriting.top +cheapest-offers.ml +cheapestmaldivespackages.com +cheapestnewdriverinsurance.co.uk +cheapestnikeairmaxtz.co.uk +cheapestnikeairmaxzt.co.uk +cheapfacebooklikes.net +cheapfashionbootsa.com +cheapfashionshoesbc.com +cheapfashionshoesbd.com +cheapfashionshoesbg.com +cheapfashionshoesbu.com +cheapfootwear-sale.info +cheapforexrobot.com +cheapgenericciprosure.com +cheapgenericdiflucansure.com +cheapgenericdostinexsure.com +cheapgenericlexaprosure.com +cheapgenericlipitorsure.com +cheapgenericnexiumsure.com +cheapgenericnorvascsure.com +cheapgenericpropeciasure.com +cheapgenericvaltrexsure.com +cheapgenericxenicalsure.com +cheapgenericzoviraxsure.com +cheapggbootsuksale1.com +cheapghdahairstraighteneraghduksale.co.uk +cheapghddssaleukonlinestraighteners.co.uk +cheapghdsaleaustralia.co.uk +cheapghdstraightenerghdsale.co.uk +cheapghdstraighteneruk.co.uk +cheapghduksalee.co.uk +cheapgildantees.com +cheapgraphicscards.info +cheapgreenteabags.com +cheapgucchandbags.com +cheapgucchandbas.com +cheapgucchandsbags.com +cheapguccoutlet.com +cheaph.com +cheaphandbagssite.net +cheaphanestees.com +cheaphatswholesaleus.com +cheaphealth.website +cheaphie.com +cheaphorde.com +cheaphub.net +cheapills.info +cheapisabelmarantsneakerss.info +cheapjerseysprostore.com +cheapjerseyssoccer.com +cheapjerseysstoreusa.com +cheapkidstoystore.com +cheapkitchens-direct.co.uk +cheaplinksoflondoncharms.net +cheapllvoutlet.com +cheaplouboutinshoesuksale.co.uk +cheaplouisvuitton-handbags.info +cheaplouisvuittonaubags.com +cheaplouisvuittonukzt.co.uk +cheaplouisvuittoonusoutletusa.com +cheaplvbags.net +cheaplvbagss.com +cheapmenssuitsus.com +cheapmichaelkorsonsaleuus.com +cheapminibootssonsaleuk.co.uk +cheapminibootssonsaleuk1.co.uk +cheapminibootssonsaleuk2.co.uk +cheapmlberryuksalebags.co.uk +cheapmonster098.com +cheapmulberrysalebagsuk.co.uk +cheapn1keshoes.com +cheapnamedeals.info +cheapncaajerseysforwholesale.com +cheapnetbooksunder200.net +cheapnfjacketsusvip.com +cheapnicedress.net +cheapnikeairmax1shoes.co.uk +cheapnikeairmax1ukvip.co.uk +cheapnikeairmax1vip.co.uk +cheapnikeairmax90shoes.co.uk +cheapnikeairmax90zu.co.uk +cheapnikeairmax95uk.co.uk +cheapnikeairmax95zt.co.uk +cheapnikeairmaxmvp.co.uk +cheapnikeairmaxshoesus.com +cheapnikeairmaxuktz.co.uk +cheapniketrainersuksale.co.uk +cheapnitros.com +cheapnorthfacejacketsoutlet.net +cheapoakley-storeus.com +cheapoakleyoutletvip.com +cheapoakleystoreus.com +cheapoakleysunglasseshotsale.com +cheapoakleysunglassesoutlet.org +cheapoakleysunglasseszt.co.uk +cheapoakleyvipa.com +cheapoakleyzt.co.uk +cheapoksunglassesstore.com +cheapooakleysunglassesussale.com +cheapoutlet10.com +cheapoutlet11.com +cheapoutlet12.com +cheapoutlet3.com +cheapoutlet6.com +cheapoutlet9.com +cheapoutletonlinecoachstore.com +cheapoutlettoms.com +cheappandoracharms.biz +cheappbootsuksale.com +cheappghdstraightenersoutlet1.co.uk +cheappradabagau.com +cheappradaoutlet.us +cheapprescriptionspectacles.in +cheappropeciaonlinepills.com +cheapraybanswayfarersunglassesoutlet.com +cheapraybanukoutlett.com +cheaprbsunglasses.website +cheaps5.com +cheapscript.net +cheapseahawksjerseys.us +cheapshoeslouboutinsale.co.uk +cheapsnowbootsus.com +cheapsphere.com +cheapsslcoupon.com +cheapstomshoesoutlet.com +cheapthelouboutinshoesusa1.com +cheapthenorthfacesalee.com +cheapthermalpaper.com +cheaptheuksaleface.com +cheaptiffanyandcoclub.co.uk +cheaptomshoesoutlet.com +cheaptomshoesoutlet.net +cheaptomsshoeoutletstore.com +cheaptoothpicks.com +cheaptraineruk.com +cheaptravelguide.net +cheapuggbootonsaleus.com +cheapuggbootsslippers.com +cheapuggbootsuk-store.info +cheapuggoutletmall.com +cheapuggoutletonsale.com +cheapukbootsbuy.com +cheapuknikeairmaxsale.co.uk +cheapukniketrainers.co.uk +cheapukniketrainerssale.co.uk +cheapuksalehandbagsoutletlv.co.uk +cheapukstraightenerssale.info +cheapusbspeakers.info +cheapviagra.org +cheapwatch.store +cheapwebtraffic.com +cheapweekendgetawaysforcouples.com +cheapxboxlive.com +cheatautomation.com +cheatbanned.ru +cheater.com +cheaterboy.com +cheatmail.de +cheatsgenerator.online +cheatsorigin.com +cheattuts.com +cheblin.ru +chechnya.conf.work +check-novo.net +check-prizes-now6.life +check-prizesonline.life +checkacc.org +checkalertfriends.info +checkaskfriends.info +checkbesthosting.com +checkbox.biz +checkcow.icu +checkemail.biz +checken.press +checkertesting.ml +checkforwreck.com +checkgirls.site +checklepoun.cf +checklepoun.ga +checklepoun.tk +checkmaster-fail-flsitebuilder.com +checkmaster-pass-flsitebuilder.com +checkmatebill.com +checkmatemail.info +checknew.pw +checknowmail.com +checksbibalance.info +checkthelobby.com +ched.online +chediak-higashi.org +cheekyart.net +cheepchix.com +cheerclass.com +cheeriocharters.com +cheerleading-perm.ru +cheerluiei.space +cheerprosper.com +cheerylynn.com +cheesepin.info +cheesethecakerecipes.com +cheetabet.club +cheetabet12.com +cheetahcyprus.com +cheezoo.com +chef.asana.biz +chefbowmeow.com +chefenmore.com +cheffyclub.ru +chefmeaningclay.website +chefs-office.com +chefsipa.cf +chefsipa.ga +chefsipa.ml +chefsipa.tk +chefskitchenfoodservice.com +chefstakeaways.com +chehov-beton-zavod.ru +cheikh-rouhou.com +cheinepi.cf +cheinepi.gq +cheinepi.tk +chejily.com +chekibenin.com +chekist.info +chelahi.tk +cheliped.info +chellup.info +chelny.press +chelseaartsgroup.com +chelseafranklin.buzz +chelseagardensmossvale.com +chelseaheath.buzz +chelyab-nedv.ru +chembidz.com +chemeng-masdar.com +chemiaakwariowabytom.pl +chemiahurt.eu +chemicalmass.com +chemo.space +chemodanymos.com +chemolysis.info +chemonite.info +chemosorb.info +chempacpharma.com +chengren.ru +chengshinv.com +chengshiso.com +chennaidiabetes.com +chennaigip.org +chens-chinese-restaurant.com +chens-oriental-kitchen.com +chenschineserathfarnham.com +chenshaohua.org +chensimiao.org +chenstakeaway.com +chenteraz.flu.cc +chenyue.org +chequeado.ml +cher.cd +cherbeli.cf +cherbeli.gq +cherbeli.ml +cherbeli.tk +cherchesalope.eu +chernogory-nedv.ru +chernokk.ru +chernukhin.ru +chernyshow.ru +cherriesdate.com +cherrycake01.ru +cherryorgems.com +cherrytidu.space +chery-australia.club +chery-clubs.ru +chesapeakecocainerehab.com +chesapeakehairsalons.com +chesapeakeopiaterehab.com +chesapeakequote.com +cheska-nedv.ru +chesles.com +chesscrunch.com +chessjs.org +chessliquidators.com +chesstr.com +chesterstyle.ru +chesteryachtsquadron.com +chestnuthillhomelistings.com +chesvlas.website +chetabet.info +chevachi.com +chevrolet-aveo.club +chevrolet-tahoe.club +chevybizs.info +chew-on-this.org +chewcow.com +chewiemail.com +chewnchat.com +chewydonut.com +chewytrain.com +chexsystemsaccount.com +chfound.best +chfp.de +chfromu.shop +chhkhmer.com +chhmail.cf +chhmail.ga +chhmail.gq +chhmail.ml +chhmail.tk +chi-news.ru +chiangmai4sale.com +chiangmaicellars.com +chiasehoctap.net +chiasemienphi.info +chibakenma.ml +chibifyme.com +chicago-central.com +chicago4d.com +chicagoanprints.com +chicagobears-jersey.us +chicagochurch.info +chicagoconsumerlawblog.com +chicagocuttingtools.com +chicagodress.ru +chicagoguesthouses.com +chicagohopes.org +chicagopetphotoandvideo.com +chicagoquote.com +chicagotribunesnewsa13.com +chicasdesnudas69.com +chicasticas.info +chicco.com.es +chicco.org.es +chicdressing.com +chicha.net +chichichichi.com +chickditen.cf +chickditen.ga +chickditen.gq +chickditen.ml +chickditen.tk +chicken-girl.com +chicken-hut-cavan.com +chickenadobo.org +chickenbreeds.net +chickenexpressonline.com +chickenkiller.com +chickenlickn.com +chickennetwork.online +chickenrecipe.net +chickieclickie.com +chickkingtakeaway.com +chicomaps.com +chicorealestateagents.com +chicpick.ru +chidelivery.com +chider.com +chiefab.icu +chiefcoder.com +chieferfoundten.tech +chiefir.icu +chiefpizzalimerick.com +chiefse.xyz +chiefshort.recipes +chiefsmana.com +chiefsustainabilityofficer.courses +chiefsustainabilityofficer.org +chiefyagan.com +chiehalan.cf +chiehalan.ga +chiehalan.gq +chiehalan.ml +chielo.com +chiet.ru +chieusangcaocap.com +chihairstraightenerv.com +chik.cash +chikazadwa.online +chikd73.com +chikendinner.com +chikkala.net +child-ready.xyz +childeatingdisordertreatment.com +childeatingdisordertreatmentcenters.com +childfree.rocks +childrendream.info +childrenofprivilege.com +childrenoftheelements.org +childrenofthesyrianwar.com +childrensclock.ru +childrenshealthcarecenter.net +childsavetrust.org +childsclaims.com +childswirlocean.xyz +chile-cloud.com +chilelinks.cl +chilepro.cc +chiletc.com +chili-nedv.ru +chiliclubd2.com +chilicooker.com +chilicookers.com +chilkat.com +chill81.live +chill89.live +chillhard.ru +chilli.biz +chillikebabish.com +chillleo.com +chilloutpro.me +chimeecom.cf +chimeecom.gq +chimeecom.ml +chimeecom.tk +chimera.pub +chimerasport.store +chimesearch.com +chimpytype.com +chimpytype.info +chimpytype.org +china-link-takeaway.com +china-manniu.com +china-mattress.org +china-nedv.ru +china-palace-finglas.com +china-promogoods.ru +china183.com +china188bet.com +china1mail.com +chinabaijiaji.com +chinabank.com +chinabristlebrush.biz +chinabristlebrushes.org +chinabristlebrushes.us +chinacourttakeaway.com +chinadynastygoatstown.com +chinagardenchinese.com +chinagold.com +chinakitchen-bray.com +chinalww.com +chinamanometer.com +chinamarkets.xyz +chinamoondublin.com +chinanew.com +chinaopendata.org +chinapetrochemicals.com +chinapetrochemicals.net +chinapowerti.com +chinashredders.com +chinastar-sallynoggin.com +chinatourcenter.com +chinatov.com +chinatowerletterkenny.com +chinatowertakeaway.com +chinauncombidding.com +chinaznews022.com +chinchai.ru +chinchilla.su +chinchillaspam.com +chineafrique.com +chinescars.ru +chinese-opportunity.com +chineseclothes12345678.net +chinesefoodorlando.com +chinesepoker.website +chinesetomatoes.com +chingachung.ru +chingbawork.cf +chingbawork.ga +chingbawork.gq +chingbawork.tk +chinglamad.ga +chinookeyecare.com +chiogofun.cf +chiogofun.ga +chiogofun.gq +chiogofun.ml +chiohonsau.cf +chiohonsau.ga +chiohonsau.gq +chiohonsau.ml +chiohonsau.tk +chipandbib.com +chipbankasi.com +chipekii.cf +chipekii.ga +chiphop.ru +chipkolik.com +chiplat.online +chiplat.xyz +chipmunkbox.com +chipscasinotips.com +chiptechtim.com +chipz2go.com +chique.xyz +chiquimail.club +chiragbus.com +chiragra.pl +chirashizushisushibaracoruna.com +chiroinroswell.com +chiromasterclass.com +chironglobaltechnologies.com +chiropracticaction.com +chiropractorsalbuquerque.com +chisel.design +chisilk.net +chistiisad.site +chistopole.ru +chithi.tk +chithi.xyz +chithinh.com +chitofficial.ru +chitrakutdhamtalgajarada.org +chitrarupacha.com +chitwanholidays.com +chivasso.cf +chivasso.ga +chivasso.gq +chivasso.ml +chivasso.tk +chivesilicone.com +chixindianzi.com +chmail.cf +chmembership.com +chmento.com +chnhh.com +chnikolov.com +chnwfsb.com +cho.com +choang.asia +chockandblock.com +chocklet.us +choco-late-portugal.club +choco-late.site +choco.la +chocolate-hungary.online +chocolate-netherlands.online +chocolate-portugal.live +chocolate-portugal.online +chocolate100.com +chocolateclub.online +chocolategiftschoice.info +chocolatelithuania.club +chocolatelithuania.online +chocolatepoland.club +chocolateportu.club +chocolates-portugal.online +chocolatesbybenoit.com +chocolatesgodiva.com +chocolathungary.club +chocolato39mail.biz +chocourl.com +chodal2.net +chodas.com +chodinh.com +chogmail.com +choi789.fun +choice-intentions.site +choice-network.site +choicecomputertechnologies.com +choicefoods.ru +choicemail1.com +choiceoneem.ga +choicepointprg.net +choiditermmi.tk +choigamezowin.com +choikingfun.com +choiyo88.xyz +chokehntld.space +chokiwnl.men +cholaban.cf +cholaban.gq +cholaban.ml +choladhisdoctor.com +cholesterolbuddy.com +cholesterolbuddyapp.com +cholestifinshop.info +chomagor.com +chomas.pw +chombefoods.net +chondropharyngeus.best +chondrumjq.ru +chong-mail.com +chong-mail.net +chong-mail.org +chong-soft.net +chongblog.com +chongseo.cn +chongsoft.cn +chongsoft.com +chongsoft.org +chonongnghiep.website +choocho-telegram.ru +chookie.com +chooky.site +choose-health.online +choose-health.store +choose-news.club +choose-news.online +choosebitcash.ru +choosedean.org +chooseyoulearningcenter.com +chooseyourownbizventure.com +chooseyourprizes8.life +chooseyourscent.com +choosietv.com +chop-saratov.ru +chopchopdublin.com +chopsticks-takeaway.com +chopstixchinesetakeaway.com +choqr6r4.com +choquangcao.website +chordguitar.us +chordmi.com +choronosaat.site +chorrera.com +chort.eu +chosen1realestate.com +chosinhviennongnghiep.com +chothuevinhomesquan9.com +chothuexeonline.com +chotibachi.club +chotm1.site +chowderco.net +choxetoanquoc.com +chr-transactions.com +chratechbeest.club +chris.burgercentral.us +chrisanhill.com +chriscd.best +chriscollinsart.com +chrisdavegreen.com +chrisgomabouna.eu +chrishartjes.com +chrishoffman.info +chrisitina.com +chrisjoyce.net +chrisllorca.com +chrislouie.com +chrislyons.net +chrismcharles.com +chrispaden.com +chrispettus.info +chrissycostanza.com +christ.show +christ.tools +christadonaldphotography.com +christian-louboutin.com +christian-louboutin4u.com +christian-louboutinsaleclearance.com +christian-topics.info +christian.cd +christianity.app +christianlouboutin-uk.info +christianlouboutinaustralia.info +christianlouboutincanada.info +christianlouboutinccmagasin.com +christianlouboutinmagasinffr.com +christianlouboutinmagasinffrance1.com +christianlouboutinmagasinfra.com +christianlouboutinnoutlet.com +christianlouboutinnreplica.com +christianlouboutinopascherfr.com +christianlouboutinoutletstores.info +christianlouboutinpascherenligne.com +christianlouboutinpascherffr.com +christianlouboutinpascherr.com +christianlouboutinportugal.com +christianlouboutinppascher.com +christianlouboutinppaschers.com +christianlouboutinrfrance.com +christianlouboutinsale-shoes.info +christianlouboutinsaleshoes.info +christianlouboutinshoe4sale.com +christianlouboutinsuk.net +christianlouboutinukshoes.info +christianlouboutsshoes.com +christianmarket.team +christianmason.com +christianmason.org +christiantube.team +christina365.cn +christinacarolmiller.com +christinaforney.org +christinyou-ministries.com +christmas-shindig.com +christmpkz.space +christophepythoud.com +christopherbainryan.com +christopherfretz.com +christopheriqbal.buzz +christopherlittle.buzz +christophersosa.com +christosia.website +chriswebconsulting.com +chrisycac.gq +chrisycac.tk +chroeppel.com +chrom.cf +chromail.info +chromatichealthcare.com +chromestreetcars.com +chronic-fatigue.us +chronichealing.net +chronicjunkie.com +chronicradar.com +chronisbo.ml +chronisbo.tk +chronocrusade.com +chronogolf.business +chronogolf.info +chronogolf.org +chronologee.com +chronosport.ru +chronostore.org +chrspkk.ru +chrysant.info +chrysler-india.club +chtrbt.com +chttgdd6.uno +chuaccounting.com +chuachezhei.com +chuangso888.com +chuangtouquan.app +chuangxueyuan.com +chubby.monster +chubbychihuahua-designs.com +chubbyteenmodels.com +chubbyvidz.com +chuckbennettcontracting.com +chuckbrockman.com +chuckbtelb.space +chucksfamilybuffet.com +chucwopi.cf +chucwopi.ga +chucwopi.gq +chucwopi.ml +chucwopi.tk +chudmailer2.com +chudosbor-yagodnica.ru +chue.today +chuj.de +chukenpro.tk +chulavistahairsalons.com +chulavistaheroinrehab.com +chumpstakingdumps.com +chunfengxixi.space +chungcumienbac24h.xyz +chungfundraiser.com +chunglede.net +chungnhanisocert.com +chungricto.cf +chungricto.ga +chungricto.gq +chungricto.ml +chungricto.tk +chungtatre.com +chunjanet.shop +chuntianwiremesh.com +chuongtrinhcanhac.com +chuongtrinhchaobuoisang.xyz +churchgrowth.info +churchmember.org +churchofo.com +churchtactue.cf +churchtactue.ga +churchtactue.gq +churchtactue.ml +churchtactue.tk +churning.app +churreriachocolateriaroncerosalamanca.com +chutichdisopam.space +chutneyskerries.com +chuyennha37.com +chuyenphatnghean.com +chuzx.com +chvbill247.com +chvtqkb.pl +chwilowkiibezbik.pl +chwilowkiionlinebezbik.pl +chwytyczestochowa.pl +chxxfm.com +chydesad.ru +ci26vmxukn.xyz +cia-spa.com +ciaburgca.cf +ciaburgca.gq +ciaburgca.tk +cialis-20.com +cialis20mgrxp.us +cialiscouponss.com +cialisgeneric-us.com +cialisgeneric-usa.com +cialisgenericx.us +cialisietwdffjj.com +cialiskjsh.us +cialisonline-20mg.com +cialisonlinenopresx.us +cialisonlinerxp.us +cialisorderbymail.website +cialispills-usa.com +cialisqw.com +cialissuperactivesure.com +cialiswithoutadoctorprescriptions.com +cialiswithoutadoctorsprescription.website +cialisy.info +ciameca.ga +ciameca.gq +ciameca.ml +ciameca.tk +cianehigh.cf +cianehigh.ga +cianehigh.gq +cianehigh.ml +cianehigh.tk +cianicu.cf +cianicu.ga +cianicu.gq +cianicu.ml +cianicu.tk +ciaodearborn.net +ciaoitaliano.info +ciaplugas.cf +ciaplugas.ga +ciaplugas.ml +ciaplugas.tk +ciaracrossan.com +ciastannews.cf +ciastannews.ga +ciastannews.gq +ciastannews.ml +ciastannews.tk +ciberbrain.ru +ciberdietas.com +cibernews.ru +cibidi.ru +cicek12.xyz +cicek13.xyz +cicek20.xyz +cicek46.com +cicek5.xyz +cicek8.xyz +cicekcibatman.xyz +ciceronegermany.org +ciceronespanish.org +ciceroneuk.com +ciceroneuk.org +cicie.club +cickoz.info +ciconia.tours +cicop.ru +cid.kr +cidagift.cf +cidagift.ga +cidagift.gq +cidagift.ml +cidagift.tk +cidecitalia.org +cideckkrik.cf +cideckkrik.ga +cideckkrik.gq +cideckkrik.ml +cideckkrik.tk +cidstudio.ru +ciecaperc.cf +ciecaperc.ga +ciecaperc.gq +ciecaperc.ml +ciecaperc.tk +ciefenslink.cf +ciefenslink.gq +ciefenslink.ml +ciefenslink.tk +ciekawa-strona-internetowa.pl +ciekawastronainternetowa.pl +ciekawostkii.eu +ciekawostkilol.eu +cieloglobalhealthmedia.com +ciensun.co.pl +cientifica.org +cieraheadphone.com +ciesforec.cf +ciesforec.ga +ciesforec.gq +ciesperu.com +cifa.info +cifamall.site +cifjxgapk.shop +cifra-pro.ru +cifro.tech +cifrotrain.ru +cigar-auctions.com +cigar-vape.com +cigarettepacks.ru +cigarshark.com +cigdemakin.com +cigdemoguzoglu.info +ciglionline.xyz +cignainsurancecoversrehab.info +cihancaglarcankaya.online +cihancaglarcankaya.xyz +cikamalls.site +cikhuh.us +cikmaotomotorlari.xyz +cikuh.com +cikveyika.com +cileepen.cf +cileepen.ga +cileepen.gq +cileepen.ml +cileepen.tk +cilemail.ga +cilikuaisou.com +cililianfuli.net +cililianfuli.org +cilimao8.net +cilo.us +cimaclub.app +cimaclub.fan +cimaclub.network +cimaclub.rocks +cimaclub.social +cimaclub.world +cimaclub.zone +cimas.info +cimkocar-lor.ru +cinchapi.org +cincihandyman.com +cincinnatiaddictiontreatment.com +cincinnatialcoholrehab.com +cincinnatialliance.com +cincinnatihairsalons.com +cincinnatihospitaljobs.com +cincinnatiopiaterehab.com +cincogotas.com +cincyhotdeals.com +cincyrealestatedeal.com +cincysuperdeal.com +cinderblast.top +cinderear.com +cindy64.com +cindybarrett.com +cindygarcie.com +cindylikes.com +cineastamovel.com +cineblog01.pub +cinema-online.net +cinemacollection.ru +cinemaestelar.com +cinemalive.info +cinemaplaces.ru +cinemasouth.org +cinematicgames.com +cinemay.icu +cinemmerse.site +cinerue.com +cinetaquillas.com +cinetrika.ru +cingcaroug.cf +cingcaroug.ga +cingcaroug.gq +cingcaroug.ml +cingcaroug.tk +cingcawow.guru +cingram.org +cingular.us +cinhog.us +cinj0q.info +cinnamondread.com +cinotuq.net +cinselseks.com +cintaipoker.net +cintaqq.net +ciobanu-art.com +cioin.pl +ciosopka.cf +ciosopka.ml +ciosopka.tk +ciosose.cf +ciosose.ga +ciosose.ml +ciosose.tk +cioudusrei.cf +cioudusrei.ga +cioudusrei.gq +cioudusrei.tk +cipadam.xyz +cipaeu.icu +cipaxa.cf +cipaxa.ga +cipaxa.gq +cipaxa.ml +cipaxa.tk +cipchotab.cf +cipchotab.ga +cipchotab.gq +cipchotab.tk +cipher.onl +ciprofloxacin500mg.store +ciproonlinesure.com +ciprorxpharma.com +ciputraceme.com +ciquren.com +ciqv53tgu.pl +ciragansarayi.com +circ-bitcoin.com +circchondbrac.cf +circchondbrac.ga +circchondbrac.gq +circchondbrac.tk +circiassian.cf +circiassian.ga +circiassian.ml +circinmbgl.ru +circle.gift +circlechat.org +circlenervesmooth.website +circlestarranch.info +circlingtables.com +circuitropolis.com +circular-source.shop +circularindustries.com +circularmonday.se +cirengisibom.guru +cireslie.cf +cireslie.gq +cireslie.ml +cireslie.tk +ciromarina.net +cirrushdsite.com +cirrusvillage.com +cirugiaestetica10.com +cishanghaimassage.com +cispikt.ru +cists.site +cit-progress.ru +citadel-nn.ru +citadelcorp.net +citadellaw.biz +citadellaw.info +citadellaw.net +citadellaw.org +citadellawcorp.com +citasyencuentros-confirmed.com +citasyencuentros-meet-backup.com +citationslist.com +cite.name +citeme.info +citibanquesi.space +cities-countries.ru +citiesdeskpc.com +citiinter.com.sg +citippgad.ga +citippgad.gq +citippgad.ml +citippgad.tk +citizencheck.com +citizenguide.earth +citizenkane.us +citizenlaw.ru +citizens.earth +citizensearth.org +citizensvegas.com +citoyensdefrance.ngo +citrines.store +citroen-argentina.club +citroen-mexico.club +citron-client.ru +citron-toque.tk +citrusheightsattorneys.com +city-drones.com +city-girls.org +cityanswer.ru +citybeautifulnews.com +citycenterclinic.com +citycentrehotelslondon.com +citydent96.ru +cityguide.store +cityhotelbergenopzoom.com +citylightsart.com +citylightsbham.org +cityliwgvq.online +citymdisp.ga +citymdisp.gq +citymdisp.ml +cityofbatesvillems.com +cityofnah.com +cityquote.com +cityroyal.org +cityscene.org +cityscram.com +citysdk.com +citytorate.ru +citytowercasino.com +citytrendspainting.com +cityverve.com +citywhitepages.com +citywinerytest.com +citywinetour.com +cityxguide.center +cityxp.app +ciudad-activa.com +ciudadano.net +ciutada.com +ciutada.net +ciutada.org +civbc.com +civic-link.org +civicinnovation.institute +civicviz.com +civilengineertop.com +civilium.com +civilizationdesign.xyz +civilizationtour.com +civilokant903.cf +civilokant903.ga +civilokant903.gq +civilokant903.ml +civilokant903.tk +civilroom.com +civilyze.com +civisp.site +civoo.com +civvic.ro +civx.org +ciweltrust33deep.tk +cix07.space +ciyeshops.site +ciyuan.moe +cizulaa.space +cizzv.live +cj2v45a.pl +cjakeuapr.gq +cjck.eu +cjfs8z.us +cjkvd.top +cjnep.us +cjpcoqha.shop +cjpeg.com +cjr99.com +cjsandwiches.com +cjuprf2tcgnhslvpe.cf +cjuprf2tcgnhslvpe.ga +cjuprf2tcgnhslvpe.gq +cjuprf2tcgnhslvpe.ml +cjuprf2tcgnhslvpe.tk +cjymanbetx.com +ck1024.rocks +ck12.cf +ck12.ga +ck12.gq +ck12.ml +ck12.tk +ck2ts.site +ckaazaza.tk +ckancheck.xyz +ckatalog.pl +ckc9du.xyz +ckcarpetcare.com +ckcltd.ru +ckcmzm.fun +ckdvjizln.pl +ckfibyvz1nzwqrmp.cf +ckfibyvz1nzwqrmp.ga +ckfibyvz1nzwqrmp.gq +ckfibyvz1nzwqrmp.ml +ckfibyvz1nzwqrmp.tk +ckfirmy.pl +ckfmqf.fun +ckfsunwwtlhwkclxjah.cf +ckfsunwwtlhwkclxjah.ga +ckfsunwwtlhwkclxjah.gq +ckfsunwwtlhwkclxjah.ml +ckfsunwwtlhwkclxjah.tk +ckhmfk.fun +ckhouse.hk +ckicp.ru +ckiso.com +ckjmpt.fun +ckjmyn.fun +ckjmyp.fun +ckk59.xyz +ckkmkm.fun +ckkmnh.fun +ckland.ru +cklmbx.fun +ckme1c0id1.cf +ckme1c0id1.ga +ckme1c0id1.gq +ckme1c0id1.ml +ckme1c0id1.tk +ckmmfg.fun +ckmmfm.fun +cknmsm.fun +cknoell.best +cko.kr +ckoie.com +ckpmlk.fun +ckw3vt.best +ckwmzm.fun +ckxen.info +ckxmct.fun +ckxoe.us +ckymgw.fun +ckymyx.fun +ckyxtcva19vejq.cf +ckyxtcva19vejq.ga +ckyxtcva19vejq.gq +ckyxtcva19vejq.ml +ckyxtcva19vejq.tk +ckz.us +ckzmyd.fun +cl-cl.org +cl-outletonline.info +cl-pumps.info +cl-pumpsonsale.info +cl.gl +cl0ne.net +cl2004.com +claimab.com +claimdai.xyz +claimdair.xyz +claimmea.xyz +claimmean.xyz +claimspree.club +claimspree.xyz +claimtaxrebate.com +claimtoday.win +claimyourprize.life +claimyourprize46.life +claire.moe +clairefernandes.com +clairelomas.com +clairvoir.com +clamiver.cf +clamiver.ga +clamiver.ml +clamiver.tk +clamor584kf.online +clamresdeu.ga +clamresdeu.gq +clamsight.com +clan-emi.com +clan.emailies.com +clanbase.club +clanbase.xyz +clancygreen55places.com +clandest.in +clanlenpa.cf +clanlenpa.ga +clanlenpa.gq +clanlenpa.ml +clanlenpa.tk +clanopia.com +clanrank.com +clanranks.com +clansconnect.com +clanstorm.com +clanvas.com +clapmers.cf +clapnaser.tk +clapryocon.ga +clapryocon.gq +clapryocon.ml +claracosmo.com +claresguide.com +clarestakeaway.com +claritance.xyz +clarkgriswald.net +clarkown.com +clarksvillecomputers.com +clarksvillequote.com +clarksvilleshowerglass.com +claro-digital.com +clashatclintonemail.com +clashcasts.com +clashgems2016.tk +clashkings.ru +clashlive.com +clashofclanshackdeutsch.xyz +clashroyale-br.com +clasicoloto.ru +clasponoti.gq +class1air.com +classactioner.com +classactshop.xyz +classerator.com +classesmail.com +classgess.com +classibooster.com +classic-buy-outlet.host +classic.cd +classicalconvert.com +classicaltantra.com +classicdom.com +classicdvdtv.com +classicebook.com +classicexch.com +classichandbagsforsale.info +classicjewelryboutiques.com +classicjewelrygroups.com +classiclouisvuittonsale.com +classicnfljersey.com +classicopizza.online +classictiffany.com +classicudderbalm.net +classicustyle.com +classicweightloss.org +classiestefanatosmail.net +classificadosdourados.com +classificadosdourados.org +classified.zone +classifiedonline.org +classitheme.com +classivmvm.ru +classivox.com +classydeveloper.com +classytrump.works +classywebsite.co +clathasul.cf +clathasul.ga +clathasul.gq +clathasul.ml +clathasul.tk +claud.info +claudiaamaya.com +claudiabest.com +claudialmeida.com +claudonsecurity.com +claus.tk +clavlisor.cf +clavlisor.ga +clavlisor.gq +clavlisor.tk +clawpaw.xyz +clay.xyz +clayandplay.ru +claymorepool.com +clayponds.net +claytonnashhomes.com +clayware.com +clckgumshoe.us +clcraftworks.com +cldqbt.icu +cldsale.top +clean-calc.de +clean-living-ventures.com +clean.adriaticmail.com +clean.pro +cleanad.icu +cleanandgreencar.com +cleanandgreencar.org +cleanauthz.com +cleaneatingmoms.com +cleaning-co.ru +cleaningcompanybristol.com +cleaningdirectllc.com +cleaningpluscompany.com +cleaningshop.futbol +cleaningtalk.com +cleanmoraled.us +cleanpat.xyz +cleanroombrush.net +cleanroombrush.org +cleanroombrush.us +cleanroombrushes.us +cleansafemail.com +cleansidingmd.com +cleansu.xyz +cleantalkorg2.ru +cleantranscorp.online +cleanyourmail.net +clear-code.ru +clear-project.ru +clear23.rest +clear2join.com +clear2pray.com +clear2school.com +clear2vote.com +clearancebooth.com +clearbri.xyz +clearbrookatbanyan.com +clearbrookbanyan.com +clearjaxfl.com +clearlyskinroutine.com +clearmail.online +clearnmsdfkl64733.ml +clearnmsdfkl64733.tk +clearnmsdfkl85753.tk +clearnmsdfkl86115.tk +clearpia.us +clearwaterarizona.com +clearwatermail.info +clearwaycommumitysolar.com +clearworry.com +cledbel-24k-gold-kupit.ru +clegesli.cf +clegesli.gq +clegesli.ml +clegesli.tk +clemons-law.com +clendere.asia +clene.xyz +cleonika.ru +clericisbc.site +clerk.legal +clesasiv.cf +clesasiv.ga +clesasiv.gq +clesasiv.ml +clesasiv.tk +clesrora.cf +clesrora.gq +clesrora.ml +clevahub.com +clevelandaddictiontreatment.com +clevelandalcoholrehab.com +clevelandheroinrehab.com +clevelandquote.com +clever-game.ru +clever-reporterflair-blogger-brilliance.com +clever4you.ru +clevinab.ga +clevinab.gq +clevinab.ml +clfkzc.icu +clfpt.com +clhscy.icu +clic8edgt.monster +clicbiober.cf +clicbiober.ga +clicbiober.gq +clicbiober.ml +clicbiober.tk +click-4m.pro +click-email.com +click-heyp.pro +click-kznew.pro +click-mail.net +click-mail.top +click-me2.com +click-me3.com +click-me4.com +click-me5.com +click-me6.com +click-p.pro +click-pru.pro +click-r.pro +click-rb.pro +click-rr.pro +click10kz.pro +click11kz.pro +click12kz.pro +click14kz.pro +click15kz.pro +click1cler.pro +click1clr.pro +click1euru.pro +click1lder.pro +click1ldr.pro +click24.site +click2designers.com +click2dns.com +click2e-mail.com +click2ed.pro +click2email.com +click2engineers.com +click2ern.pro +click2eu.pro +click2eur.pro +click2eurb.pro +click2euru.pro +click2k.pro +click2kz.pro +click2kzld.pro +click2m.pro +click2mail.net +click2new.pro +click2otag.pro +click2p.pro +click2p.world +click2reps.com +click2snow.pro +click2spec.com +click2technology.com +click2u.pro +click3eu.pro +click3hey.pro +click4fnow.pro +click4kz.pro +click4kzcl.pro +click4lnow.pro +click4m.pro +click4md.pro +click4rhey.pro +click4rnow.pro +click5kz.pro +click6kz.pro +click9kz.pro +clickandgo-do-go.space +clickanerd.net +clickas.ru +clickbank.life +clickbank.name +clickbank.today +clickbank.world +clickcws.online +clickdeal.co +clickercl.pro +clickerld.pro +clickernews.com +clickeu.pro +clickfgo.pro +clickfun.ru +clickik.pro +clickknow.pro +clicklead.app +clicklinksolutions.com +clicklo.site +clickmagnit.ru +clickmail.info +clickmenetwork.com +clickmil.pro +clickminew.pro +clickmp.pro +clickmpnew.pro +clicknett.com +clicknowk.pro +clickp.pro +clickpet.online +clickpm.pro +clickpnow.pro +clickpp.pro +clickpricing.com +clickr.pro +clickrebill.com +clickro1.pro +clickrr.pro +clicks2you.com +clicksearch.network +clicksp.pro +clicktrack.ru +clicktrack.xyz +clicku.pro +clickwowm.pro +client-side.ru +clientesftp55.info +clientologist.net +clientreviews.org +clientsconnector.com +clientstats.org +cliffcarrs.info +cliffsvillage.com +clikco.ru +clikhere.net +clil51isf.buzz +clil53drf.buzz +clil54ghf.buzz +clim59iyy.buzz +climate-changing.info +climatecontrolled.com +climattica.net +climbing-dancing.info +climchabjale.tk +climdo.app +clin60oio.buzz +clindamycin.website +clinerut.cf +clinerut.ga +clinerut.gq +clinerut.ml +clinerut.tk +clinicacarabanchel.com +clinicalcellculture.com +clinicane.com +clinicatbf.com +cliniquedarkspotcorrector.com +clinko.com +clintonemailhearing.com +clintonemerson.com +clintonsparks.com +clip-hot-philippin.tk +clipclip.email +clipmail.cf +clipmail.eu +clipmail.ga +clipmail.gq +clipmail.ml +clipmail.tk +clipmails.com +clippersystems.com +clips.pics +clipscreen.com +clipshaker.net +cliptik.net +cliqueone.com +clit.games +clit.loan +clitinrasphi.ml +clitlickers.com +clitor-tube.com +clixoft.com +clixser.com +clk-safe.com +clk2020.co +clk2020.com +clk2020.info +clk2020.net +clk2020.org +clk2021.com +clm-blog.pl +clmkoc.us +clnsandbox.com +cloacking.space +clock-sale24.ru +clock64.ru +clockat.xyz +clockatt.xyz +clockequi.us +clockkne.recipes +clockobes.xyz +clockrest.com +clockstr.xyz +clockups.recipes +clockus.ru +clockworkpropmgmt.com +clocupproj.cf +clocupproj.ga +clocupproj.gq +clocupproj.ml +clomid.info +clomidonlinesure.com +clonchectu.cf +clonchectu.ga +clonchectu.gq +clonchectu.ml +clonefbtmc1.club +cloneforsale.com +clonequick.com +cloneroad.com +cloneviptmc1.club +clonidine.website +cloningclass.com +clord.online +closdeal.net +close-room.ru +close.vote +closed-rooms.ru +closeforme.com +closerscrm.org +closesla.buzz +closetcreative.org +closeticv.space +closetonyc.info +closetraid.me +closevide.xyz +closewo.xyz +closium.com +closurist.com +closurize.com +clothingbrands2012.info +clothinglias.com +clothingshop.info +clotrack.online +cloud-casts.com +cloud-mail.net +cloud-mail.top +cloud-node.online +cloud-server.email +cloud22020.xyz +cloud41photography.xyz +cloud41productions.xyz +cloud41service.xyz +cloud41studios.xyz +cloud43er.xyz +cloud43films.xyz +cloud43music.xyz +cloud43productions.xyz +cloud47art.xyz +cloud47design.xyz +cloud47photo.xyz +cloud47photography.xyz +cloud47shop.xyz +cloud49plus.xyz +cloud49services.xyz +cloud99.pro +cloud99.top +cloud9suite.com +cloudcamber.com +cloudcarib.net +cloudcasts.xyz +cloudcohol.com +cloudcohol.net +cloudcohol.org +clouddisruptor.com +cloudeflare.com +cloudemail.xyz +cloudflare-london.com +cloudflaremedia.com +cloudflaremedia.net +cloudflaremedia.org +cloudgo5.com +cloudhorizon.org +cloudhosting.info +cloudido.com +cloudinfo.website +cloudlfront.com +cloudmail.gq +cloudmail.tk +cloudmarriage.com +cloudmchost.tk +cloudminer.center +cloudnativechicago.com +cloudns.asia +cloudns.cc +cloudns.cf +cloudns.cx +cloudns.gq +cloudonf.com +cloudoom.com +cloudosys.com +cloudpath.dev +cloudprivatbay.com +cloudprivatbay.name +cloudpush.com +cloudrepository.ru +cloudsaveapp.com +cloudserver.store +cloudservicesproviders.net +cloudstat.top +cloudstreaming.info +cloudsyou.com +cloudt12server01.com +cloudturnos.com +cloudyfood.com +clounatiks.ru +cloutlet-vips.com +clover-limerick.com +cloverdelldesign.com +clovisattorneys.com +clowncloudmusic.com +clownflair.com +clpers.us +clpuqprtxtxanx.cf +clpuqprtxtxanx.ga +clpuqprtxtxanx.gq +clpuqprtxtxanx.ml +clpuqprtxtxanx.tk +clqmgytk.club +clrjjsnsl.shop +clrmail.com +cls-audio.club +clsaimli.space +clsalisveris.club +clsn.top +clsn1.com +clt.dev +cltj5.us +club-pchelka.ru +club127.com +club4skin.ru +club55vs.host +cluba.site +clubam.ru +clubarabiata.com +clubatv.ru +clubbackpacker.com +clubbeast.com +clubbingfrance.com +clubcadete.biz +clubcarpcon.cf +clubcarpcon.ga +clubcarpcon.gq +clubcarpcon.ml +clubcarpcon.tk +clubcaterham.co.uk +clubdelgusto.info +clubdetirlefaucon.com +clubdiariodeyucatan.com +clubedouniversitario.com +clubeovelhas.com +clubexnis.ga +clubexnis.gq +clubexnis.ml +clubexnis.tk +clubfanshd.com +clubfier.com +clubforthefuture.org +clubhowse.com +clubhyatt.com +clubjeep.es +clublife.ga +clubmailonline.com +clubmercedes.net +clubnew.uni.me +clubnews.ru +cluboholic.com +clubonline.top +clubsanswers.ru +clubscountries.com +clubstt.com +clubtestsa.info +clubuggboots.com +clubvipstar.com +clubzmail.club +clucentmeri.site +clue-1.com +clue.bthow.com +cluevoid.com +cluevoid.org +clunker.org +clunkymembrane.com +cluster.click +clusterconference2016.eu +clutchbagsguide.info +clutteredweb.com +clutthob.com +clutunpodli.ddns.info +cluu.de +clwellsale.com +cly1au.us +cm01b5.us +cm2019.net +cm4s.com +cm69.club +cm6slv.us +cma4x3.com +cmail.club +cmail.com +cmail.host +cmail.net +cmail.org +cmailing.com +cmamso.site +cmarw.com +cmastertrk.com +cmawfxtdbt89snz9w.cf +cmawfxtdbt89snz9w.ga +cmawfxtdbt89snz9w.gq +cmawfxtdbt89snz9w.ml +cmawfxtdbt89snz9w.tk +cmbapp.net +cmbet365.com +cmbjsn.com +cmc88.tk +cmcbet88.xyz +cmcc.cd +cmccarbuyers.com +cmcgwinn.com +cmconv.com +cmcosmetics.ru +cmdgame.ru +cmdmadecheck.xyz +cmdshare.com +cmdsync.com +cmdvao.ru +cmea.cd +cmecsgocup.ru +cmepexpo.com +cmewin.pro +cminulfi.ga +cminulfi.gq +cminulfi.ml +cminulfi.tk +cmjinc.com +cmksquared.com +cmm-moving.com +cmmgtuicmbff.ga +cmmgtuicmbff.ml +cmmgtuicmbff.tk +cmoki.pl +cmoplay.us +cmqtt.com +cms-rt.com.com +cms8hz.us +cmsalpha.net +cmsk.cd +cmsp3.com +cmsp4.com +cmsp5.com +cmsp6.com +cmsq0.com +cmsq2.com +cmsq3.com +cmsq4.com +cmtcenter.org +cmtt3.com +cmtt5.com +cmuddshc.shop +cmxx.store +cmyk.se +cmykyazilim.xyz +cn-chipled.com +cn-chivalry.com +cn9n22nyt.pl +cnamed.com +cnaska.site +cnba.xyz +cnbishi.com +cncb.de +cncfabrication.us +cncmachiningservice.us +cncnfc.com +cncsystems.de +cnctape.com +cncy69.xyz +cnd.net.au +cnd8704.com +cndh.cd +cndps.com +cnetmail.net +cnew.ir +cnewsgroup.com +cnfrmtion.xyz +cnh.industrial.ga +cnh.industrial.gq +cnhdjf.com +cnhhs.net +cnhindustrial.cf +cnhindustrial.ga +cnhindustrial.gq +cnhindustrial.ml +cnhindustrial.tk +cni9jz.us +cninefails.us +cnj.agency +cnkacyoz.shop +cnlesson.com +cnlgaming.site +cnmk3t950vo5x2c.xyz +cnmsg.net +cnn.coms.hk +cnnenc.com +cnnglory.com +cnobb.website +cnojobs.com +cnovelhu.com +cnplace.com +cnsa.biz +cnsds.de +cnsg-host.com +cnshosti.in +cnshouyin.com +cnsmnt.com +cntinnuo.com +cntnyuan.com +cnwyxq.com +cnzhongtuo.net +co-aa214.stream +co-uk-online.xyz +co.cc +co.mailboxxx.net +co.uk.com +co1vgedispvpjbpugf.cf +co1vgedispvpjbpugf.ga +co1vgedispvpjbpugf.gq +co1vgedispvpjbpugf.ml +co1vgedispvpjbpugf.tk +co2-regulator.com +co3i.icu +coaatal24.com +coacecss.net +coach-outletonlinestores.info +coach-purses.info +coachartbagoutlet.com +coachbagoutletjp.org +coachbagsforsalejp.com +coachbagsonlinesale.com +coachbagsonsalesjp.com +coachbagssalesjp.com +coachbagsshopjp.com +coachcheapjp.com +coachchoooutlet.com +coachexile.us +coachfactorybagsjp.com +coachfactorystore-online.us +coachfactorystoreonline.us +coachfit.ru +coachhandbags-trends.us +coachhandbagsjp.net +coaching-supervision.at +coachingmarketingdereseau.com +coachlea.xyz +coachmaverick.com +coachmavericks.com +coachnetworkmarketing.com +coachnewoutlets.com +coachonlinejp.com +coachonlinepurse.com +coachoutletbagscaoutlet.ca +coachoutletlocations.com +coachoutletonline-stores.us +coachoutletonlinestores.info +coachoutletpop.org +coachoutletstore.biz +coachoutletstore9.com +coachoutletstoreonlinenyc.com +coachoutletvv.net +coachplea.icu +coachquest.net +coachsalejp.com +coachsalestore.net +coachseriesoutlet.com +coachstorejp.net +coachstoresjp.com +coachtransformationacademy.com +coachupoutlet.com +coagro.net +coahla.net +coahla.org +coalamails.com +coalhollow.org +coalitionfightmusic.com +coalitionofchiefs.com +coalizaopeloevangelho.com +coapp.net +coareli.cf +coareli.gq +coareli.tk +coastal-trails.com +coastalantennas.com +coastalwindspublishinghouse.com +coastertools.com +coastglas.us +coastlay.xyz +coastlinebaptistchurch.org +coastmagician.com +coaststoo.us +coatsnicejp.com +coaxregimentcopy.website +cobaltcrowproductions.com +cobaltcrowproductions.xyz +cobarekyo1.ml +cobete.cf +cobhammurphy.com +cobin2hood.com +cobin2hood.company +cobizfunding.com +cobratandooritakeaway.com +cobrei.app +cocabooka.site +cocacomi.com +cocaine.ninja +cocainerehab.center +coccx1ajbpsz.cf +coccx1ajbpsz.ga +coccx1ajbpsz.gq +coccx1ajbpsz.ml +coccx1ajbpsz.tk +cochatz.ga +cochecoveterinaryhospital.com +cochisi.cf +cochisi.gq +cochisi.tk +cochranmail.men +cocinacadadia.com +cock.email +cock.li +cock.lu +cocknass.com +cockpitdigital.com +coclaims.com +cocloseams.cf +cocloseams.gq +cocloseams.ml +cocloseams.tk +coco.be +cocoacars.info +cocoaplrqm.space +cocobahis40.com +cocobahis47.com +cocobahis48.com +cocobahis49.com +cocobahis50.com +cocobet77.com +cocochaneljapan.com +cocodani.cf +cocodivo.com +cocoidprzodu.be +cocoivy.site +cocomobay.com +coconberbere.com +coconnect.tech +coconuthotelguest.com +coconutrandom.org +cocosaiindia.com +cocosandcoffee.net +cocotakeaway.com +cocovpn.com +cocreators.tech +cocreatorsinstitute.com +cocreatorsinstitute.net +cocreatorsinstitute.org +cocreatorsnetwork.org +cocreatorstech.net +cocreatorstech.org +cocreatorsventures.com +cocreatorsventures.net +cocureate.org +cocyo.com +codaoutlets.site +codb.site +codc.site +code-mail.com +code4less.biz +codealam.com +codealam.org +codeandcontrol.me +codeandconvert.com +codeandscotch.com +codebandits.com +codebender.org +codecamerica.net +codefarm.dev +codeforgerycrab.website +codefree24.de +codegency.com +codehermit.net +codekia.com +codemystartup.com +codenative.info +codenexty.com +codeorbecoded.com +codepromo.cc +coderconfs.com +coderoutemaroc.com +coderpixel.com +codersandfounders.org +coderspeech.top +codetox.center +codetoxcenter.com +codeular.com +codeulous.com +codeuoso.com +codeworkswell.com +codewritinglessons.com +codingfury.tv +codingliteracy.com +codingschool.dev +codivide.com +codiviti.com +codupmyspace.com +codyfosterandco.com +codyting.com +coemecal.ga +coemecal.gq +coemecal.ml +coemecal.tk +coepoe.cf +coepoe.ga +coepoe.tk +coepoebete.ga +coepoekorea.ml +coercivity.best +coexistglobal.org +coexn.com +coezhojz.shop +cofactormarketing.com +coffee-26.ru +coffee-time.online +coffeecruelty.org +coffeelovers.life +coffeemakers101.info +coffeeok.net +coffeepancakewafflebacon.com +coffeepoint.tech +coffeeseur.com +coffeeshipping.com +cofied.online +cognalize.com +cognalizer.com +cognalsearch.com +cognata.com +cognitiveways.xyz +cogpal.com +cohalfpricedlisting.com +cohchecovet.com +coidrafho.cf +coidrafho.ga +coidrafho.ml +coieo.com +coilbrush.net +coilbrush.us +coilbrushes.us +coin-bearer.net +coin-games.com +coin-host.net +coin-hub.net +coin-link.com +coin-mail.com +coin-one.com +coin114.net +coin888.host +coinalgotrader.com +coinbearer.com +coinbearer.net +coinbet.games +coinbin.cafe +coinbroker.club +coincal.org +coincheckup.net +coincomposer.com +coincrowd.ventures +coindie.com +coinecon.com +coinero.com +coinexchange365.com +coinfinexx.exchange +coinhelp123.com +coinific.com +coininsight.com +coinlez.com +coinlife.net +coinlink.club +coinlocal.com +coinmasterhack.website +coinmati.net +coinnect.net +coinnews.ru +coino.eu +coinpappy.net +coinshop24.biz +coinshowsevents.com +coinsmail.net +coinspices.com +coinsteemit.com +coinstrade.biz +cointunnel.com +coinvers.com +coinyoutube.com +coinzone.pro +coinzs.us +coiosidkry57hg.gq +coiphim.online +cojita.com +cojqh5.com +cokbilmis.site +cokeley84406.co.pl +cokewinkel.online +cokils.com +coksikildim.ml +coksikildim.tk +cokxj.us +cola.cool +colabcolibri.site +colabital.com +colacoce.com +colafanta.cf +colaik.com +colchesterelderlawgroup.com +colchicine247.video +coldcoldstorage.xyz +colde-mail.com +coldemail.info +coldenent.com +coldirondesign.com +coldlander.us +coldmail.ga +coldmail.gq +coldmail.ml +coldmail.tk +coldstreamforge.com +colebrager.com +coledawson.com +colefamilydentistcom.com +colemantaylorreman.com +coleure.com +colevillecapital.com +colicinbabies.online +colicinbabies.xyz +colinabet.com +colinmounier.com +colinrofe.co.uk +colinzaug.net +colitasdeangel.com +colivingbansko.com +collabio.dev +collablayer.com +collagekeepsakes.com +collapse3b.com +collapsehtn.website +collecta.org +collectionboxoffice.com +collectionlive.com +collectionmvp.com +collectionsohio.com +collectivemtl.com +collectors.global +collectors.international +collectors.solutions +colledoo.com +collegedate.online +collegedate.store +collegee.net +collegeforcanon.org +collegefornurse.com +collegehockeyblogs.com +collegelakesdentistry.com +collegeofpublicspeaking.com +collegepolos.com +colleges.cd +collegestationbaseball.com +collegetester.com +colletteparks.com +collisiondatabase.com +collnaca.cf +collnaca.tk +colloidalsilversolutions.com +colloware.com +colmek.xyz +colmeks.com +colnoiball.cf +colnoiball.ga +colnoiball.tk +colobus.best +coloc.venez.fr +colocimmo.org +cologies.site +cologno.cf +cologuard.us +cologuard45plus.com +cologuardcrc.net +colokjeep.org +coloncleanse.club +coloncleansereview1.org +coloncleansingplan.com +colonialconsulting.net +coloniallifee.com +coloninsta.tk +colonized736my.xyz +colonyzone.online +coloplus.ru +colopnw.com +coloquintida.best +color4you.ru +colorado-nedv.ru +coloradoaddictiontreatment.center +coloradocattlefeeders.com +coloradococainerehab.com +coloradodetoxcenter.com +coloradofieldhockey.com +coloradofreshstart.com +coloradoheroinrehab.com +coloradomarijuanadispensaries.com +coloradomasterhomebuyers.com +coloradoquote.com +coloradospringscocainerehab.com +coloradospringsheroinrehab.com +colorants656em.online +colorflower.net +colorflowers.net +colorists889fc.online +colorweb.cf +colorworld.info +colosgods.ru +coloshild.ru +coloshron.ru +colosjoy.ru +colossuscloud.us +colourandcode.com +colournamer.com +colt45forsale.tk +coltonattorneys.com +columbiapopalock.com +columbuscasino.design +columbuseldercare.com +columbusinfo.xyz +columbusnm.net +columbusquote.com +columbustaps.com +com-04536875422364784521.top +com-101634586696.help +com-1024493459167.online +com-1028952384656065698650.top +com-14147678891143.top +com-19428504172.icu +com-21036823570248695140.top +com-358207258746541784.xyz +com-54547894563525454.top +com-access-wallet.info +com-bqdf8uzwyo.com +com-bv8e8b9ond.com +com-d804xgpj8j.com +com-daily.win +com-dailywin.cloud +com-dailywin.info +com-dailywin.live +com-dailywin.online +com-dailywin.site +com-g5rjsgg93w.com +com-gh.xyz +com-hr0s02qp09.com +com-item.today +com-log.xyz +com-ma.net +com-mobilealert.com +com-posted.org +com-surveywin.info +com-surveywin.online +com-surveywin.site +com-tca64rtel.xyz +com-ty.biz +com-xd5r29y97r.com +com-xvrv6yt51g.com +com.ninja +com3b.com +com40239049392.icu +com50239049392.icu +comactivate.site +comagrilsa.com +comam.ru +comantra.net +comarchiemountbattenwindsor.com +comarketpartners.com +comaro-compressoren.ru +comatoze.com +combicheria.com +combindjqy.space +combined.investments +combined.site +combinedinvestments.org +combo88.com +combofan.space +combofile.site +comboload.site +comboparlay.com +combrotech77rel.gq +combustore.co +combyo.com +comcapfactoring.org +comdotslashnet.com +come-on-day.pw +come-to-win.com +comebacktere.site +comececerto.com +comeclosertojesus.com +comectrix.com +comedimagrire24.it +comedy-battl.best +comelinola.space +comella54173.co.pl +comenothayarc.com +comenow.info +comeonday.pw +comeonfind.me +comeporon.ga +comer281food3.cf +comercialsindexa.com +comersant7.site +comesa.cd +comespiaresms.info +comespiareuncellulare.info +comespiareuncellularedalpc.info +cometloansonline.com +cometoclmall.com +comfort-tech.co +comfortableshoejp.com +comfortbodypillow.com +comfortmamia.ru +comfytrait.xyz +comicblog.com +comicogu271.ga +comicollection.com +comilzilla.org +cominghamm.com +comingsoon.support +comissioncrowd.com +comitatofesteteolo.com +comitatofesteteolo.xyz +comlive.ga +comlive.gq +comlive.ml +comlive.tk +comm.craigslist.org +commande-sp.com +comments2g.com +commentstache.com +commercant.online +commerce-magazine-undersell.ru +commerce-now.online +commercecrypto.com +commercemix.com +commerchand.com +commercialpropertiesphilippines.com +commercialtrashcompactors.com +commercialunits.com +commercialwindowcoverings.org +commercieel.works +commergot.cf +commicoastroly.us +commisioncrowd.com +committeddesigns.com +commoditymantra.com +commonentranceexam.net +commonentrancelaw.com +commonmangazette.com +commonred.net +commonsensei69.org +commonsensesystems.com +commonwalk.org +commpeak.cloud +communicate-with-women.com +communifin.com +communitize.net +community-currency.org +community-focus.com +communityans.ru +communitybuildingworks.xyz +communitycinemahouston.org +communityforumcourse.com +communitymarketleader.net +commutwqtw.space +comnorerk.cf +comnorerk.ga +comnorerk.gq +comnorerk.ml +comnorerk.tk +comnow.icu +comnya.com +comoestudarsozinho.com.br +comofazernegociosonline.com +comofazerumsitepassoapasso.com +comogin.com +comohacer.club +comohacerunmillon.com +comolohacenpr.com +comonred.com +comoplantartomates.com +comostevyal.tech +comostsicurezza.com +compactstudy.com +compali.com +compandlap.xyz +company-mails.com +company.legal +companycoder.com +companykeyword.com +companynews.com +companynotifier.com +companytitles.com +compaq.com +comparabet.es +comparatable.com +comparateurchaises.com +comparatore.xyz +compare-carinsurancecanada.info +compare-carinsuranceusa.info +comparecyan.com +comparedigitalcamerassidebyside.org +comparegoodshoes.com +compareimports.com +comparepetinsurance.biz +compareshippingrates.org +comparethemiaowcat.com +compartedata.com.ar +comparteinformacion.com.ar +compartirhosting.com +compass4x.asia +compasschat.ru +compasslodge.org +compbooksra.tk +compcoddmeg.ga +compcoddmeg.gq +compcoddmeg.ml +competenergy.com +competeshop.xyz +competirinternacional.website +competition-black.xyz +compgentcrev.cf +compgentcrev.ga +compgentcrev.gq +compgentcrev.ml +compgentcrev.tk +comphelpforu.ru +compilvuer.space +complaze.cf +complet.stream +complete-hometheater.com +completecleaningmaintenance.com +completedesign.info +completegolfswing.com +completehitter.com +completeiq.com +completelycruising.com +complexitygaming.net +complextender.ru +complicatedsound.com +complikqhg.space +complimentaryxae.website +compositional.best +compostrevolution.net +compoundtown.com +compradacasa.online +comprafacilpe.com +compraho.ga +compraho.ml +compraho.tk +compraresteroides.xyz +comprarfarmacia.site +comprarsoatenlinea.com +comprehensivesearchinitiatives.com +compressionrelief.com +compscorerric.eu +compsol.se +comptophone.net +comptravel.ru +compuhelper.org +compuofertas.net +compupedia.com +compusys2000.com +computationalfinance.com +computations.me +computatrum.online +computedsharing.com +computer-dokter.com +computer-remont21.ru +computer-service-in-heidelberg.de +computer-service-in-heilbronn.de +computer-service-sinsheim.de +computercrown.com +computerdrucke.de +computerengineering4u.com +computerexpress.us +computerhardware2012.info +computerinformation4u.com +computerlookup.com +computerrepairinfosite.com +computerrepairredlands.com +computers-wizards.ru +computers1st.com +computersciencecoursesusa.com +computerslistnews.site +computersoftware2012.info +computerspeakers22.com +computersshop.futbol +computingzone.org +computingzone.us +compvershy.cf +compvershy.ga +compvershy.gq +compvershy.ml +compvershy.tk +compwilbi.ga +compwilbi.gq +compwilbi.ml +compwilbi.tk +compxino.cf +comremas.cf +comremas.ga +comremas.gq +comremas.ml +comremas.tk +coms.hk +comsafe-mail.net +comspotsforsale.info +comtrialoffer.com +comunicapp.com +comunidadmujer.app +comunique.net +comvicheria.com +comwest.de +comwtf.com +comyci.website +conarcross.com +conbactgab.cf +conbactgab.gq +conbactgab.ml +conbactgab.tk +conboxtv.com +concavodka.com +concdysre.ga +concdysre.gq +concdysre.ml +concealed.company +concentriccreativity.com +concepac.ga +concepac.ml +concepac.tk +conceptdesigninc.com +conceptionmayday.com +conceptiontragedy.com +conceptprojectawards.com +conceptroom.com +conceptspringstudio.com +concertations-nationales.cd +concertized570lt.online +concetomou.eu +conchiform.xyz +conchonddis.cf +conchonddis.ga +conchonddis.tk +conciergenb.pl +conciertocostarica.com +concisestudy.com +concordpayments.net +concoursedb.org +concoursup.com +concretebi.com +concretebotherroad.website +concretecheck.xyz +concretegrinding.melbourne +concretepolishinghq.com +concreteremoval.ca +concursosoftwarelibremalaga.org +concussia.info +condaliv.com +condating.info +condico.cf +condico.ga +condico.ml +condico.tk +conditionalbreakpoint.com +condominiumcollection.com +condoombezorger.com +condoordet.com +condorsnestprophouse.com +condorviajes.com +condovallarta.info +condovestments.com +conducivedev.com +conducivedevelopment.com +conduct.vote +conductivebrush.biz +conduscient.org +condys.app +conf.work +confeccionesdelnorte.com +confeitariaelaine.online +conferenceahead.com +conferencecallfree.net +conferencenationale.org +conferencewallingford.com +confessionblog.com +confessium.com +confidencemakeover.net +confidential.life +confidential.tips +config.work +confighub.eu +confir-mail1.com +confirm.live +confirma.center +confirma.express +confirmist.com +conflict-theory.org +conflicttheory.net +conforkxum.space +confriti.ga +confriti.gq +confriti.ml +confriti.tk +confrontationfuel.buzz +confrontstars.net +confrontstars.org +confsisal.cf +confsisal.ga +confsisal.ml +confsisal.tk +congdong.mobi +congdong43.com +congdongmu.net +congdongviettrung.com +congdongxaydung.com +congketoan.com +congmart.live +congnghemoi.top +congnghesaigon.net +congoentreprise.cd +congotex.cd +congress.earth +congroli.gq +congroli.ml +congroli.tk +congthanhtoan.website +congthongtin247.net +congtymaydongphuc.org +congtythangmay.top +conicode.com +coniemporium.site +conkeafe.cf +conkeafe.ga +conkeafe.gq +conkeafe.ml +conmato.cf +conmato.ga +conmato.ml +conmato.tk +conmochila.app +connacle.com +connatser.com +connect-auto.info +connect1to1.com +connect365.us +connectdeshi.com +connected-project.online +connecticut-nedv.ru +connecticutdetox.center +connecticutquote.com +connectiontheory.org +connectmail.online +connectme.name +connectwithjournalists.com +connelly-llc.com +connexion.website +connorgoodwin.buzz +connr.com +connriver.net +conone.ru +conqfmnwo.shop +conquergods.net +conquest.shop +conquest.store +conquestchain.icu +conquestofcastles.ru +conradtubbs.com +conrafo.cf +conrafo.ga +conrafo.gq +conrafo.ml +conrafo.tk +conravi.cf +conravi.gq +conravi.ml +conreaquar.ga +conreaquar.gq +conreaquar.ml +conreaquar.tk +conreva.cf +conreva.tk +conroymultimedia.com +consciousagingconference.com +consciousbreathing.net +conseilaf-energie.com +conselhosaude.org +consemoret.site +consentientgroup.com +conservation.africa +conservativedaily.org +conservativegetaway.com +conservativerepublican.news +conservativesagainstbush.com +conservativeworlddaily.com +consfant.com +consignag.com +consimail.com +consliric.cf +console3.net +consolumb.cf +consolumb.ga +consolumb.gq +consolumb.ml +consolumb.tk +consphlegin.cf +consphlegin.ga +conspicuousmichaelkors.com +conspiracyfreak.com +conspiracygraph.com +consrapo.cf +consrapo.ga +consrapo.gq +consrapo.tk +constantandassociates.com +constantinsbakery.com +constelacaofamiliar.website +constelacaonerd.com +constellational.com +constright.ru +constructionandesign.xyz +constructiondojo.com +constructionsoftwareadvisor.com +construinforme.net +construtrabajo.com +construyendovidas.org +constuctech.com +consul.dev +consulhosting.site +consultant.com +consultantaseo.ro +consultantneuropsychiatrist.com +consultationfluctuationsulphur.website +consulte-online.com +consultingcorp.org +consultoriaempresarialgo.info +consultus-dz.com +consumablespointofsale.com +consumer-oriented.host +consumercreditcounseling4u.com +consumerdictionary.com +consumerreports.space +consumerriot.com +consumers-health.org +consumestl.com +consuna.cf +consuna.ga +consuna.gq +consuna.ml +consuna.tk +consutoriodaray.com +contabilitate.ws +contabilizandotalentos.com +contacman.com +contact-munchet.club +contact-munchet.ltd +contact.fifieldconsulting.com +contacterpro.com +contactmanagersuccess.com +contactos-casuales.us +contactout1000.ga +contadordesuscriptores.com +container.org +containergroup.com.au +contbay.com +contcalpa.cf +contcalpa.ga +contcalpa.gq +contcalpa.ml +contecksto.club +contemis.ga +contemis.gq +contemporarycomputerssite.club +content.rocks +contentcreatorshub.com +contentculturegroup.com +contentmarketing.community +contentmarketingconferences.com +contentpeacock.com +contentsmagazine.net +contentwanted.com +contestincentiveawardnational.club +contextconversation.com +contextconversation.org +contextmenu.org +contfiripre.tk +conthydterp.cf +conthydterp.gq +conthydterp.ml +conthydterp.tk +contigxite.ru +continental-europe.ru +contingency-power.com +continuationbushdifficulty.website +continumail.com +contiocho.cf +contiocho.ga +contiocho.gq +contiocho.ml +contiocho.tk +contmy.info +contopo.com +contrabanradio.com +contracommunications.com +contract.legal +contract431.xyz +contractnotify.com +contractor.net +contractor.tax +contractoraccountant.ltd +contractorssupplydepot.com +contractorsupport.org +contractortax.contractors +contrarygarden.com +contrasted.org +contrasto.cu.cc +contratistaspr.com +contravu.xyz +contrl.digital +control-bki.ru +controlinbox.com +controllerblog.com +controllernation.com +controlshiftn.com +conttirdia.cf +conttirdia.ga +conttirdia.gq +conttirdia.ml +conttirdia.tk +conttogon.cf +conttogon.gq +conttogon.tk +contumail.com +contywil.ga +contywil.gq +contywil.ml +conuos.net +convectair.net +conventionalizing691bj.online +conventionpreview.com +conventionstrategy.win +conventionwatch.com +convergico.com +conversadigitalbrasil.com +conversejapan.com +conversyo.org +convert-attachment.com +convert-five.ru +convert.africa +convert.blue +convertallvideo.org +convertonline.com +convertor.app +convery.store +convexmirrortop.com +conveyancersnsw.com +conveyorbrush.net +conveyorbrush.org +conveyorbrush.us +conveyorbrushes.us +convivemail.club +convostoppers.com +convoswithcosmo.info +convowall.com +conwayinterfaithclinic.org +conwex.cf +conwex.ml +conwex.tk +conyiz.us +coo621.com +coo68141.com +coo721.com +coo8171.com +coobz0gobeptmb7vewo.cf +coobz0gobeptmb7vewo.ga +coobz0gobeptmb7vewo.gq +coobz0gobeptmb7vewo.ml +coobz0gobeptmb7vewo.tk +coochie.pro +cooconti.cf +cooconti.ga +cooconti.ml +cooconti.tk +coofy.net +cooiblue.online +cook-islands-accommodation.com +cook-islands-holiday.com +cookadoo.com +cookeraccessories.company +cookiealwayscrumbles.co.uk +cookiecollector.com +cookiecooker.de +cookiepuss.info +cookingbooko.club +cookingclassesnapavalley.com +cookinghelpsite.com +cookingonthecar.com +cookingwithpeeps.com +cookiriebooks.com +cookjapan.com +cookmasterok.ru +cookskill.com +cookwareshop.live +cookwsyc.space +cool-pay-to-win.space +cool-your.pw +cool.fr.nf +coolandwacky.us +coolbaby.org +coolbikejp.com +coolbild.ru +coolbluemedia.com +coolbye2.fun +coolcarsnews.net +coolchinaconference.com +coolclimatesolutions.com +coolcombine.com +coolcompanychallenge.com +cooldestinationshq.com +coolemailer.info +coolemails.info +cooleswohnzimmer.me +coolex.site +coolgadge.com +coolgoodsmarket.info +coolgranny.net +coolhobbyideas.club +coolidgeproject.org +coolimpool.org +cooljordanshoesale.com +coolkeywestwatersports.com +coolledgifts.com +coollyjuti-ro.com +coolmail.com +coolmail.ooo +coolmailcool.com +coolmailer.info +coolmanuals.com +coolmecca.com +coolminigift.com +coolminnesota.com +coolmonaco.com +coolmoviez.icu +coolorganizertraining.com +coolplaceto.bike +coolplut.ru +coolpoland.com +coolprototyping.com +coolshopsing.ru +coolsouthbeach.com +coolstyleusa.com +coolurl.tk +coolvesti.ru +coolvirginislands.com +coolwisconsindells.com +coolyarddecorations.com +coolyour.pw +coolzurich.com +coomungie.com +coomungiechelseagardens.com +coonalleystudios.com +coonvo.care +cooola.info +coopals.com +coordinator.earth +cop5.net +copagratis.com +copasdechampagne.com +copasi.ga +copastore.co +copastw.xyz +copd.edu +copdfmanuales.xyz +copeasier.com +copenhagenstreet-art.com +copi.site +copingkit.com +copistaed.ga +copiv8.us +copjlix.de.vc +copland-os.com +copland-os.org +copomo.com +copones.cf +copones.ga +copones.gq +copones.ml +copones.tk +copot.info +coppellfamilydentist.com +copper.lighting +copperascoveapartments.com +copperbacksplash.us +coppercounter.us +copperemail.com +coppersmithfamily.com +coppertreeanalytics.mobi +coppicsjqv.space +coprolite.com +copticnn.net +copycashvalve.com +copycookbook.com +copymanprintshop.com +copyright-gratuit.net +copyrightdesk.com +copytrade.investments +coqmail.com +cora.marketdoors.info +coracleansehelp.com +coral-tour.space +coralgablesguide.com +coralgablesstraighttalk.com +coralsnake.studio +corau.com +coraxnetworks.com +corborno.info +cordcraft.com +cordcutting.news +cordellassetprotection.com +cordex.exchange +cordfreevacuum.com +cordialco.com +cordisphuket.com +cordisresortnvillas.com +cordisresortvillas.com +cordisvillas.com +cordivamedical.com +cordlessduoclean.com +cordlessshark.com +core-pack.at +core-rehab.org +core4.app +coreblockchain.academy +coreclip.com +coreletter.com +corelife.biz +corelife.org +corenels.xyz +corepliantcuff.website +coreral.cf +coreral.ga +coreral.gq +coreral.ml +coreral.tk +corewi.cf +corewi.ga +corewi.gq +corewi.ml +corewi.tk +coreysfishingcharters.com +corfid.ru +corfuspiritualhealthretreat.com +corhandpevol.ml +corianiofoundation.com +corleone.org +corlufotografkulubu.xyz +corluzubeydehanimao.xyz +cormg.net +corn-gratuito.top +cornavirus.attorney +cornerfraud.us +cornerstitchdesigns.com +cornerstonebapt.org +corngroupsupplies-au.com +cornmusihr.space +cornstowagecure.website +cornwallmotorfactors.com +corona-virus-live.ru +corona-virus.institute +corona.how +corona99.net +coronachurch.org +coronacijfers.shop +coronacoffee.com +coronaflix.xyz +coronaforums.com +coronagg.com +coronahulpdeliemers.online +coronanewsupdate.com +coronaotel.com +coronascan.ru +coronastats.shop +coronatest-ig.online +coronavirus-covid-19.today +coronavirus-mir.com +coronavirusguide.online +coronavirusrecoverycommission.com +coronaviruss.website +coronawrongfuldeath.com +corosocial.net +corouge.best +corovit.xyz +corp.ereality.org +corpoalnaturale.com +corporate.doctor +corporate.foundation +corporateembezzler.com +corporatelitigationlawyerboston.com +corporateplaydays.info +corporateplaydays.net +corporatesocialresponsibilityatlcbo.com +corporateturnaroundconsultation.com +corpuschristicocainerehab.com +corpuschristiopiaterehab.com +corpuscleve.com +corpuscqyd.space +correio.monster +correllohome.info +correllohome.org +correo.blogos.net +correofa.ga +correoparacarlos.ga +correos-es.site +corrientelatina.net +corrupt.life +corsairdre.com +corsanywhere.tech +corsarius.net +corsj.net +corsovenezia.com +cortex.kicks-ass.net +cortexconcept.com +cortexnode.online +cortneysplace.com +corumkardesleremlak.com +corvallisdoctors.com +corveelijst.online +corveelijsten.online +corveelijstje.online +corveelijstjes.online +corvid19.ru +corychase.site +corychase.xyz +cos9c.us +cosad.ca +cosad.info +cosanola.com +cosasuccede.info +coseh6.us +coslots.gdn +cosmela.ru +cosmeticddsnearme.com +cosmeticgid.ru +cosmeticprocedure.org +cosmeticsdermatology.com +cosmeticsurgery.com +cosmetika-krasnodar.ru +cosmetixs.ru +cosmetwzzi.space +cosmic-joy.com +cosmicart.ru +cosmogame.site +cosmogia.net +cosmogulf.xyz +cosmohealth.care +cosmolo.ga +cosmolot-slot.site +cosmopokers.net +cosmorph.com +cosmos.com +cosmoshost.com +cosmyc.network +cosmycnetwork.com +cosnx.com +cosplayblog.com +cosplays.name +cosplays.pro +cosplaystores.com +cosplaystrippers.com +cosplaywigs.org +cospolspen.cf +cospolspen.ga +cospolspen.gq +cospolspen.ml +cospolspen.tk +costaakkan.xyz +costablancaphoto.com +costablubodrumotel.com +costaricabestrips.com +costco.tel +costcompared.com +costhewca.cf +costhewca.gq +costhewca.tk +costinluis.com +costprogbou.ml +costprogbou.tk +cosynookoftheworld.com +cotastic.com +cotatiphil.org +cotefi.site +cotenets.info +cotlmk.us +cotmandenecrescentbr5.com +cotocheetothecat12.com +cotodaynews.site +cotro.fun +cottage-delight.com +cottagein.ru +cottageoakpropertie.com +cottongods.net +cottonnovdx.email +cottononloverz.com +cottonsleepingbags.com +cottonwoodcoveresort.net +cotynet.pl +couchhappens.org +couchtour.com +couchtv.biz +coudmango.com +coudmango.net +coudmango.org +cougargonzo.com +coughone.com +couhl.live +couldbe.shop +couleurelle.com +coullion.com +coulterberrytales.com +council.vote +councous.shop +coundjees.com +counntryfinancial.com +counsellingmenbrisbane.com +counter.cd +counterduster.biz +counterduster.net +counterduster.us +counterdusters.biz +counterdusters.us +counterempiricaldamage.website +countertracking.com +counterweigh.com +countkilo.cf +countmathula.com +countmoney.ru +countrryfinancial.com +countrycommon.com +countryfinaancial.com +countryfinabcial.com +countryfinanncial.com +countryhotel.org +countrymade.com +countryofearth.app +countryofearth.foundation +countryroadsbaseball.org +countrysong.ru +countryyfinancial.com +coupandev.shop +coupdefoudre.immo +couplesandtantra.com +coupon-reviewz.com +couponbaboon.com +couponcode.agency +couponcodey.com +couponhouse.info +couponm.net +couponmoz.org +couponsdisco.com +couponsgod.in +couponslauncher.info +couponsmountain.com +couponx.ru +couponyes.ru +coupor.com +courriel.fr.nf +courrieltemporaire.com +course-fitness.com +course.nl +courseair.com +courses.farm +coursesall.ru +court-records.org +courtatcrossroads.com +courtch.xyz +courtesans.international +courtfi.icu +courtfib.icu +courthousehotelcarlow.com +courtivo.space +courtrf.com +courtstreetofficesupplies.com +courtun.icu +courtyardcavaliers.com +cousinit.mooo.com +coutinho.news +covechurch.mobi +covelocoop.com +cover360.net +coverglar.icu +coverhove.us +coverification.org +covermebag.global +covermygodfromsummer.com +coveryo.xyz +coveryourpills.org +coveryout.xyz +coveted-clicks.site +covfefe-mail.gq +covfefe-mail.tk +covid19.how +covid19flix.com +covid19temphelp.com +covid2020.online +covidfinder.asia +covidfinder.best +covidfinder.club +covidfinder.digital +covidfinder.network +covidfinder.rocks +covidfinder.space +covidfinder.xyz +covteh37.ru +cowabungamail.com +cowaramupwines.com +cowavewifi.com +cowavewifi.net +cowaway.com +cowboyglossary.com +cowboywmk.com +cowcell.com +cowerkn.com +cowgirljules.com +cowisdom.com +cowokbete.ga +cowokbete.ml +cowork.click +coworking-bansko.com +coworkingabroad.com +coworkingabroad.org +coworkinghalifax.com +coworkrating.com +cowshipin.net +cowstore.net +cowstore.org +cowtube.club +cowtv.club +cowvideo.info +cowvtjui.xyz +coxbete.cf +coxbete99.cf +coxnet.cf +coxnet.ga +coxnet.gq +coxnet.ml +coyotebio-usa.com +coystigis.cf +coystigis.ga +coystigis.gq +coza.ro +cozmagicskincare.com +cozmingusa.info +cozre.site +cozyboomerangllc.com +cp0730.com +cp668y.com +cpa.digital +cpaawards.ru +cpabn.com +cpacartago.site +cpafhd.us +cpamail.net +cpanelhome.com +cpanellicense.shop +cpaoz.com +cpapa.ooo +cparm.cf +cpaycard.asia +cpb-online.com +cpc.cx +cpcjobfair.com +cpederal.com +cpelws.tokyo +cpffinanceiro.club +cpg39b-mail.xyz +cpgpanel.com +cph.su +cphfaucet.com +cphoneos.com +cpib.email +cpizgz.site +cpldevice.com +cplicensing.shop +cpluldsvd.shop +cplusfinanzen.com +cpmail.life +cpmm.ru +cpno.email +cpo-inc.net +cpolp.com +cpoo.pro +cppvwb6vjocx2zf.xyz +cpsboard.com +cpsboard.net +cpshomebuys.com +cpsipalmsprings.com +cpspainshop.com +cpsystems.ru +cpt-emilie.org +cpteach.com +cpuk3zsorllc.cf +cpuk3zsorllc.ga +cpuk3zsorllc.gq +cpuk3zsorllc.ml +cpuk3zsorllc.tk +cpuwindows.com +cpviy.com +cpz889.com +cq5j.icu +cq692.site +cqczth.com +cqdebryansk.ru +cqebhyy.com +cqj1ht.site +cqjda.com +cqn1.com +cqrax.live +cqrenben.com +cqtest.ru +cqtnbyy.com +cqutssntx9356oug.cf +cqutssntx9356oug.ga +cqutssntx9356oug.gq +cqutssntx9356oug.ml +cqutssntx9356oug.tk +cqweqe-naonc.icu +cqwmokhnv6.xyz +cqzktj.com +cr.cloudns.asia +cr01.xyz +cr219.com +cr3wmail.sytes.net +cr3wxmail.servequake.com +cr7cr8cr9.com +cr8.website +cr8robotics.online +cr97mt49.com +cra1g.com +crablove.in +crabsheadache.com +crabtreejewelers.com +crabvietnam.com +crackdra.icu +crackfreedown.com +crackherakati.me +crackingaccounts.ga +crackinglab.cd +crackmail.cc +crackmail.thekingstim.tk +crackofdawnale.com +cracksens.us +crackthematch.com +cracowtoday.com +cradle-me.com +craet.top +craftbanner.com +craftbrands.net +craftcannabisclass.com +craftcate.us +craftd.org +craftfiga.site +craftings.org +craftletter.com +craftpixel.online +craftproject.net +craftsfrommissouri.com +craftsology.net +craftsrussia.ru +crafttheweb.com +crafttigh.press +craftval.xyz +craftvalu.xyz +craftygardening.solutions +craftymall.com +cragavpivo.tk +craigjoseph.net +crainca.ru +crana.us +crankengine.net +crankhole.com +crankmails.com +cranpiwy.gq +cranpiwy.ml +crap.kakadua.net +crapcoin.com +crapiris.cf +crapiris.ga +crapiris.ml +crapmail.org +crappertracker.com +crappykickstarters.com +crapsonline.com +crapsseal.se +crapulo.us +crashkiller.ovh +crashlandstudio.com +crashproofcrypto.com +crashproofcryptocurrency.com +crashquota.com +crass.com +crastination.de +cratcrao.shop +crates.blog +cratfoutlet.com +crator.com +cratorster.cf +cratorster.ga +cratorster.gq +cratorster.ml +cratorster.tk +cratos724.com +cratosslot202.com +cratosslot205.com +cratosslot206.com +cratosslot209.com +cratosslot210.com +cratosslot211.com +cravenpublishing.com +craveyatq.space +cravinger.xyz +cravingery.online +cravingify.xyz +crawler.report +crayonseo.com +crazaholic.xyz +crazeoutlets.site +crazepage.com +crazespaces.pw +crazies.club +crazies.dev +crazies.love +crazies.photos +crazies.rocks +crazies.today +crazikim.club +crazy-xxx.ru +crazy18.xyz +crazyclothes.ru +crazydoll.us +crazydomains.com +crazyijustcantseelol.com +crazykids.info +crazykittens.xyz +crazylemonssafe.space +crazymail.info +crazymail.online +crazymailing.com +crazypizzaandpasta.online +crazypro.xyz +crazyshitxszxsa.com +crazyt.tk +crazyworldshop.ru +crazywot.net +crazzzyballs.ru +crc20.com +crdyzx.info +cre8to6blf2gtluuf.cf +cre8to6blf2gtluuf.ga +cre8to6blf2gtluuf.gq +cre8to6blf2gtluuf.ml +cre8to6blf2gtluuf.tk +creality3dturkiye.com +creality3dturkiye.xyz +cream.pink +creamail.info +creambrak.icu +creamcheesefruitdipps.com +creamcras.fun +creamgl.icu +creamglo.icu +creampiemoviez.com +creamwor.buzz +creamworr.buzz +crearartearacataca2019.com +crearenmexico.com +creasily.xyz +creasimkor.cf +creasimkor.ga +creasimkor.gq +creasimkor.ml +creasimkor.tk +creasite-auvergne.com +creaspere.cf +creaspere.ga +creaspere.gq +creaspere.ml +creaspere.tk +create-email.com +createabooking.com +createaliar.com +createaonlineincome.com +createavatar.org +createdrive.com +createdrive.net +createhut.ml +createkits.com +createlink.xyz +createphase.com +createyourcream.com +creatingafairworld.com +creatingcozy.com +creatingyournew.website +creatingyourstyles.com +creation-site-web-bordeaux.net +creationmeditation.org +creationsfestives.com +creationsgrecques.com +creationuq.com +creativainc.com +creativas.de +creative-mates.sk +creative365.ru +creativecommonsza.org +creativecomputerlabs.com +creativedynamics.pro +creativeenergyworks.com +creativeinfo.ru +creativejinx.com +creativelicenseshop.com +creativemates.sk +creativemix.info +creativepantry.online +creativeplus.info +creativeshocker.com +creativesols.com +creativesystemsconsulting.net +creativethemeday.com +creativetools.info +creativewebgarden.com +creativeweddingphotograph.org +creativezone.info +creatorwage.com +creazionisa.com +crebbo.org +credd.me +credenic.cf +credenic.ga +credenic.gq +credenic.ml +credenic.tk +credeqclev.cf +credeqclev.ga +credeqclev.ml +credeqclev.tk +credinti.cf +credinti.ml +credinti.tk +credit-007.com +credit-alaconsommation.com +credit-alter.online +credit-card-98.ru +credit-credit.ru +credit-finder.info +credit-line.pl +credit-online.mcdir.ru +creditaccesshub.com +creditcardconsolidation.cc +creditcardcounsel.com +creditcarddumpsites.ru +creditcardforums.org +creditcardg.com +creditcards.land +creditcards.ninja +creditcardsfinancial.com +credite.best +crediti-banki.ru +creditonegocios.com +creditorexchange.com +creditplaza.site +creditrepair4u.site +creditreportreviewblog.com +creditsafesverige.biz +creditsafesverige.info +creditsafesverige.net +creditscore-changes.com +creditspread.biz +crednomas.cf +crednomas.ga +crednomas.gq +crednomas.ml +crednomas.tk +credopizzaitalian.com +credtaters.cf +credtaters.ga +credtaters.gq +credtaters.ml +credtaters.tk +credup.ru +creekbottomfarm.com +creekwooddesoto.com +creepydol.com +creepydol.org +crefdw.com +cremasmediterraneas.com +cremationcon.com +cremcalsult.cf +cremcalsult.gq +cremcalsult.tk +creo.cloudns.cc +creo.ctu.edu.gr +creo.iotu.nctu.me +creo.nctu.me +creou.dev +crescendu.com +cresquiju.cf +cresquiju.ga +cresquiju.gq +cresquiju.ml +cresquiju.tk +cresset.site +cressom.cd +crestonstudents.org +crestwave.online +cretalscowad.xyz +cretinblog.com +cretovcae.cf +cretovcae.ga +cretovcae.gq +cretovcae.tk +crevus.org +crewinsurance.ru +crezjumevakansii20121.cz.cc +crfastbofk.online +criarblogue.com +cribafmasu.co.tv +cribcomfort.com +cricbett.icu +cricerev.cf +cricerev.gq +cricerev.ml +crickcrack.net +cricketcraft.net +cricketersfoodtruck.com +cricketnigeria.org +crillix.com +crim3-house.ml +crimea-kurort-online.ru +criminal-lawyer-attorney.biz +criminal-lawyer-texas.net +criminalattorneyhouston.info +criminalattorneyinhouston.info +criminalattorneyinhouston.org +criminalisticsdegree.com +criminality.biz +criminalize9pk.online +criminalizes233iy.online +criminallawyersinhoustontexas.com +criminalsearch1a.com +crimpastprep.cf +crimpastprep.ga +crimpastprep.ml +crimpastprep.tk +crimright.ru +criptoluxury.store +criptonic.co +criptonic.xyz +criqclscdl.space +crisis-media.ru +crisiscrisis.co.uk +crisislookout.com +crisp.monster +cristal365.ru +cristalin.ru +cristauxinc.com +cristianecarvalho.icu +cristicookeprograms.com +cristlocksapt.buzz +cristywhitman.com +crisuabil.cf +crisuabil.ga +crisuabil.ml +crisuabil.tk +critcijo.cf +critcijo.ga +critcijo.gq +critcijo.ml +critical-studies.info +criticalcaremonthly.com +criticallythink.com +criticalnerds.com +crjtvgaj.shop +crk.review +crm-mebel.ru +crm-souz.ru +crmapex.com +crmartinrealestate.com +crmlands.net +crmplant.ru +crmrc.us +crnr.store +croatia-nedv.ru +croatiaresidence.com +crobinkson.hu +croboldu.cf +croboldu.ga +croboldu.gq +croboldu.ml +crockegecy.space +crocobets.com +croftcare.group +cromelet.ga +cromelet.gq +cromelet.tk +cron.black +cron.network +cronexus.com +cronicasdepicnic.com +cronostv.site +cronx.com +crookedstovepipe.ca +croontites.cf +croontites.ga +croontites.gq +croontites.ml +croontites.tk +cropshots.org +cropuv.info +cropyloc.com +crosbygraphics.biz +crosmereta.eu +cross-group.ru +cross-law.ga +cross-law.gq +cross.cash +crossborderapps.net +crossbrand.ru +crosscree.icu +crosscwums.host +crosscwums.site +crossed.de +crossfirecheats.org +crossfitbaza.ru +crossfitcoastal.com +crossfra.email +crossingbridgeestates.com +crossmail.bid +crossroadsmail.com +crossroadsone.com +crossroadsone.org +crosstroo.email +crosswatershed.org +crosswordchecker.com +crosswordtracker.net +crossyroadhacks.com +crotslep.ml +crotslep.tk +croudmails.info +crow.gq +crow.ml +crowd-mail.com +crowd-mobile.com +crowd.works +crowdaffiliates.com +crowdali.icu +crowdaliv.xyz +crowdanimoji.com +crowdanimoji.net +crowdcate.us +crowdcoin.biz +crowdcoinnetwork.com +crowdcoins.info +crowdeos.com +crowdga.icu +crowdgeographer.com +crowdlegal.org +crowdlycoin.com +crowdmobile.biz +crowdmobile.org +crowdpiggybank.com +crowdpiggybank.org +crowdpl.xyz +crowdplea.xyz +crowdstoo.site +crowdwi.xyz +crowdwid.xyz +crowity.com +crowndata.com +crowned.global +crownestates20.com +crowneurope.com +crowsv2.ml +crowsv2.tk +crscreditapi.tech +crsea.ru +crsqdy.info +crstl.net +crstl.org +crstnvrn.website +crtrecycling.net +crturner.com +crub.cf +crub.ga +crub.gq +crub.ml +crub.tk +crublowjob20127.co.tv +crublowjob20127.com +crublowjob20129.co.tv +crudeillustratecontent.website +crudeoildemulsifier.com +crudewag.icu +crufreevideo20123.cz.cc +cruisecentraladviser.com +cruisefloppy.com +cruisessale.com +crulle.ru +crumlin-grill.com +crunchcompass.com +crunchsharing.com +crunchybiscuits.space +crushblog.com +crushdv.com +crushes.com +crushfilix.site +crushmyfood.org +crushnova.com +crusronhorn.cf +crusronhorn.ga +crusronhorn.ml +crusronhorn.tk +crusthost.com +crutenssi20125.co.tv +cruxmail.info +cruxsite.com +cruzenow.com +cry.pub +crydeck.com +crymail2.com +crymire.website +cryodrakon.com +cryodrakon.info +cryodrakon.pro +cryodrakon.space +cryojo.xyz +cryotik.com +cryozzy.xyz +cryp.email +crypecar.cf +crypecar.ml +crypecar.tk +crypemail.info +crypinchom.cf +crypinchom.ga +crypinchom.gq +crypinchom.tk +crypstats.top +cryptca.net +cryptfox.net +crypticelement.cloud +crypticelement.club +crypticelement.games +crypticinvestments.com +crypto-lock.net +crypto-net.club +crypto-nox.com +crypto-rates.info +crypto.tyrex.cf +crypto1x1.info +crypto1x1.org +crypto1x1.xyz +crypto3pl.net +cryptobazar.ru +cryptobitbyte.xyz +cryptoblaze.info +cryptocapitalism.pro +cryptocean.cards +cryptocean.info +cryptocean.online +cryptocitycenter.com +cryptocron.com +cryptocrowd.mobi +cryptodinbog.com +cryptodough.life +cryptofriends.network +cryptofuture.website +cryptogameshub.com +cryptogamming.net +cryptogrow.global +cryptogrow.store +cryptogrow.tech +cryptoinvestar.com +cryptoinvestmentsummit.com +cryptoiravault.com +cryptoligarch.com +cryptolist.cf +cryptoloot.life +cryptomelli.net +cryptomoments24.com +cryptone.market +cryptone.tel +cryptonet.top +cryptontrade.ga +cryptopatron.org +cryptopda.com +cryptope.xyz +cryptopiggybank.info +cryptopiggybank.mobi +cryptopiggybank.org +cryptoprobes.com +cryptoprocessingnow.com +cryptoreaper.com +cryptosimple.club +cryptoslant.com +cryptosmileys.com +cryptosoloira.com +cryptostack401k.com +cryptostackcapital.com +cryptostackfund.com +cryptostackfunds.com +cryptostackrothira.com +cryptostackventurefund.com +cryptoszone.ga +cryptotravis.com +cryptoupdates.live +cryptowalletstore.com +cryptowned.com +cryptstagram.com +crystal7.biz +crystalbahis4.com +crystalbahis5.com +crystalboattakeaway.com +crystalfallsfas.com +crystalflask.com +crystalgroupind.com +crystalkckq.email +crystalmoon.org +crystalplatter.com +crystalrp.ru +crystaltapes.com +crystle.club +crytpocurrency.biz +cryxus.net +cryxus.org +cs-24.ru +cs-go-club.ru +cs-murzyn.pl +cs.email +cs4h4nbou3xtbsn.cf +cs4h4nbou3xtbsn.ga +cs4h4nbou3xtbsn.gq +cs4h4nbou3xtbsn.ml +cs4h4nbou3xtbsn.tk +cs5xugkcirf07jk.cf +cs5xugkcirf07jk.ga +cs5xugkcirf07jk.gq +cs5xugkcirf07jk.ml +cs5xugkcirf07jk.tk +cs6688.com +cs715a3o1vfb73sdekp.cf +cs715a3o1vfb73sdekp.ga +cs715a3o1vfb73sdekp.gq +cs715a3o1vfb73sdekp.ml +cs715a3o1vfb73sdekp.tk +cs89.biz +csbfr8.site +csbnradio.com +cscasessteam.com +csccblida.com +csccsports.com +cschammel.com +cscrddata.com +csdinterpretingonline.com +csdm73.ru +csdoland.net +csek.net +csendek.icu +csepxf.com +csf24.de +csfait.com +csfav4mmkizt3n.cf +csfav4mmkizt3n.ga +csfav4mmkizt3n.gq +csfav4mmkizt3n.ml +csfav4mmkizt3n.tk +csgo-funknife.ru +csgo-market.ru +csgo-moon.org +csgo2.org +csgoaim.ru +csgoanalyzer.com +csgoauth.fun +csgobestbet.com +csgobomj.com +csgobus.com +csgodeal.net +csgodemos.win +csgodose.com +csgodumbaz.ru +csgoeasybets3.com +csgofan.club +csgofast2.com +csgofast3.com +csgofreem4.fun +csgofreeze.com +csgogamblingsites.com +csgokyril.fun +csgologin5.site +csgomaxbet.com +csgomoon.xyz +csgomsk.info +csgopositive.xyz +csgopowerplay.net +csgosave.ru +csgoterem.fun +csgotradehub.com +csh.ro +cshauthor.biz +cshauthor.com +cshauthor.net +cshauthor.org +cshauthor.us +cshoesfirst.info +csi-miami.cf +csi-miami.ga +csi-miami.gq +csi-miami.ml +csi-miami.tk +csi-newyork.cf +csi-newyork.ga +csi-newyork.gq +csi-newyork.ml +csi-newyork.tk +csiplanet.com +csk22.site +csnapbet.xyz +csneon.com +csoftmail.cn +csomerlotdesign.com +csontvary.org +cspeakingbr.com +cspfbyy.com +cspointblank.com +cspsid-rodnik.ru +csrbot.com +csrbots.com +csreports.space +csringreece.me +cssans.com +cssccw.com +cssisfun.com +csstestapp.xyz +cssu.edu +cssu.wiki +csupes.com +csuzetas.com +csvclubs.org +csvpubblicita.com +csweihua.com +csys.host +cszbl.com +ct345fgvaw.cf +ct345fgvaw.ga +ct345fgvaw.gq +ct345fgvaw.ml +ct345fgvaw.tk +ct3bowties.com +ct4lpj.us +ctasprem.pro +ctatal39200.tk +ctatal81439.ga +ctatal81439.tk +ctax-plan.com +ctdetoxcenter.com +ctdfms.us +ctexas.net +ctexpos.com +ctgbrdlpe.shop +cti-stopforeclosure.com +cticharts.com +ctkcec.org +ctmailing.us +ctmhwbc.site +cto-on.com +ctorssu.shop +ctos.ch +ctoyule.com +ctrehabcenters.com +ctri.website +ctrobo.com +ctrpgz.us +cts-lk-i.cf +cts-lk-i.ga +cts-lk-i.gq +cts-lk-i.ml +cts-lk-i.tk +ctshp.org +cttake1fiilie.ru +cttlju.us +ctvfacebook.site +ctycter.com +ctyctr.com +ctypark.com +ctznqsowm18ke50.cf +ctznqsowm18ke50.ga +ctznqsowm18ke50.gq +ctznqsowm18ke50.ml +ctznqsowm18ke50.tk +cu.cc +cu8wzkanv7.cf +cu8wzkanv7.gq +cu8wzkanv7.ml +cu8wzkanv7.tk +cuabs.us +cuadongplaza.com +cuantoesta.com +cuarl.com +cuasotrithuc.com +cubabrothers.com +cubadave.com +cuban-beaches.com +cubanculturalheritage.org +cubansandwichshow.com +cubanschool.info +cubavision.info +cubb6mmwtzbosij.cf +cubb6mmwtzbosij.ga +cubb6mmwtzbosij.gq +cubb6mmwtzbosij.ml +cubb6mmwtzbosij.tk +cubbycc.com +cubecart-demo.com +cubedwolf.tk +cubefox.com +cubehost.us +cubeschina.fun +cubeshack.com +cubicleremoval.ca +cubiclink.com +cubitoid.com +cubitoids.com +cuci4scr.info +cuckmere.org.uk +cucku.cf +cucku.ml +cuco.store +cucummail.com +cuddleflirt.com +cuddlybuddys.com +cuddlysingles.com +cudimex.com +cuedigy.com +cuedingsi.cf +cuedingsi.gq +cuedingsi.tk +cuelmail.info +cuendita.com +cuenmex.com +cuentamelotodo.com +cuentamemas.website +cuentanos.com +cuentemelo.com +cuentemelotodo.com +cuentenos.com +cuentosblanditos.com +cueslumpbuy.website +cuevanago.net +cueyoultd.com +cuffa.com +cufibr.com +cufibr.net +cufibrazil.com +cufibrazil.org +cufihn.org +cufihonduras.com +cufihonduras.net +cufihonduras.org +cufikids.net +cugod.com +cuidado-ancianos.com +cuidado-mayores.info +cuidatupropiedad.com +cuikezhijia.com +cuirushi.org +cuisi.xyz +cuisine-recette.biz +cuisinorama.org +cukurovailan.xyz +cul0.cf +cul0.ga +cul0.gq +cul0.ml +cul0.tk +culapotu.site +culdemamie.com +culinary-rus.ru +culletonstakeaway.com +culletonstraditional-kilkenny.com +culnetfcyc.ga +culnetfcyc.ml +culnetfcyc.tk +culoareacurcubeului.club +culsanab.cf +culsanab.ml +culsanab.tk +cult-labs.net +cult-reno.ru +cult2day.ru +cultcounselling.org +cultivatefoods.com +cultmovie.com +culturafr.com +culturallyconnectedcook.org +culturallyconnectedcooking.org +culture-nsk.ru +culturemachines.info +cultureofideas.org +culturesnacks.us +culturofil.net +culvercitydoctors.com +culvercityrealestateagents.com +cum.camera +cum.sborra.tk +cumallover.me +cumangeblog.net +cumanuallyo.com +cumbeeclan.com +cumedes.ga +cumedes.ml +cumedes.tk +cumidbins.cf +cumidbins.ga +cumidbins.tk +cumonfeet.org +cumonherface.org +cumucore.org +cungmua.vn +cungmuachung.net +cungmuachungnhom.com +cungsuyngam.com +cungtam.com +cunhamail.gq +cunngregco.com +cunnilingus.party +cunnntf.website +cunqiong.club +cuocquangtri.club +cuocsongmuonmau247.com +cuocsongmuonmau99.com +cuocsongsaigon.net +cuoilendi24h.com +cuoiz.com +cuoly.com +cuongvumarketingseo.com +cupaoutlet.site +cupatee.shop +cupcakemine.ru +cupeda.info +cupf6mdhtujxytdcoxh.cf +cupf6mdhtujxytdcoxh.ga +cupf6mdhtujxytdcoxh.gq +cupf6mdhtujxytdcoxh.ml +cupf6mdhtujxytdcoxh.tk +cupidblog.com +cupideyes.info +cupidscloud.com +cupom.mobi +cupomzeiro.com +cuponhostgator.org +cuppingtherapy.info +cupq.net +cupremplus.com +cupu.site +cupua.com +curajare.site +cure2children.com +cureartstudio.com +curechs.org +curediseases.info +curednow.com +curentjobs.info +curhalller.ga +curhalller.gq +curhalller.ml +curhalller.tk +curiaregis.net +curinglymedisease.com +curinpie.cf +curinpie.ga +curinpie.gq +curinpie.ml +curiouscats.net +curiousitivity.com +curity.shop +curitya.shop +curletter.com +curlhph.tk +curlycollection.com +curongwang.com +currencyandstocks.com +currencyassistant.com +currencyglossary.com +currencymeter.com +currencyy.xyz +current.best +currentmatch.tk +currentmortgageratescentral.com +curriculumsystems.com +curryandricedublin.com +currygardenindian.com +curryhouseoriental.com +currymail.bid +currymail.men +curryspeedformapollo.xyz +curryworld.de +cursasa.ga +cursasa.gq +cursasa.ml +cursasa.tk +cursedmoons.com +curseforgeminecraft.com +cursitor.best +curso-de-escrita-audiovisual.com +curso.tech +cursoconsertodecelular.top +cursocrocheonline.site +cursodeinglesgratis.us +cursodemicropigmentacao.us +cursosonlinechefcarlamaia.com +cursosprofissionalize.online +cursusbeffen.online +curtebebe.com +curtinicheme-sc.com +curtise.live +curtwphillips.com +curvehq.com +cuscuscuspen.life +cushingsdisease.in +cushions.ru +cuspy.ru +cust.in +custmon.net +custmon.org +custom-make.com +custom-wp.com +custom12.tk +customanu.ru +customaxima.com +custombrush.org +custombrush.us +custombrushes.biz +custombrushes.org +custombrushes.us +customcardmaker.com +customcoconut.com +customdeploy.com +customdesigner.site +customdesktop.xyz +customdevices.ru +customer-poll-zone.online +customer-surveys-panel.online +customercove.com +customerplaner.online +customersupportdepartment.ga +customerwant.com +customeyeslasik.com +customframingby2vets.com +customice.app +customiseyourpc.xyz +customizedfatlossreviews.info +customizedsolar.com +customizing225ll.online +customlogogolf-balls.com +custommaxima.com +custommediarooms.com +customrifles.info +customright.com +customrose.ru +customs.red +customs2g3.com +customshop4us.com +customsmf.net +customsnapbackcap.com +customusli.ru +customweightlossplan.com +customwriting.company +cut-the-cord.news +cuteblanketdolls.com +cuteboyo.com +cutecloud.fun +cutekinks.com +cutemailbox.com +cuteness.cloud +cutey.com +cutiemporium.site +cutivnpt.biz +cutivnpt.com +cutivnpt.info +cutivnpt.org +cutivnpt.us +cutjhw.ml +cutlerbayapartments.com +cutlersmartart.com +cutout.club +cuttherope2.space +cuttheropefullfree.com +cutthrrcpc.space +cutti.net +cuttingedgeprospects.com +cutwoeq.space +cuuhorobot.info +cuvkpd.icu +cuvox.de +cuvvgwo3j064hl8.xyz +cuwinmyu.shop +cuxade.xyz +cuxen4.us +cuzuryy.space +cv-tt.com +cv436.site +cv4s7.host +cvbqfl.info +cvbshopbuy.com +cvd8idprbewh1zr.cf +cvd8idprbewh1zr.ga +cvd8idprbewh1zr.gq +cvd8idprbewh1zr.ml +cvd8idprbewh1zr.tk +cvdkr.us +cvdsale.top +cveiguulymquns4m.cf +cveiguulymquns4m.ga +cveiguulymquns4m.gq +cveiguulymquns4m.ml +cveiguulymquns4m.tk +cvelbar.com +cveti-omsk.ru +cvetmet124.ru +cvetomuzyk-achinsk.ru +cvety-russia.ru +cvety-sankt-peterburg.ru +cvetynadom.site +cvijqth6if8txrdt.cf +cvijqth6if8txrdt.ga +cvijqth6if8txrdt.gq +cvijqth6if8txrdt.ml +cvijqth6if8txrdt.tk +cvlvp.site +cvndr.com +cvo55.ru +cvo9ym.us +cvpf.net +cvriverside.biz +cvs-couponcodes.com +cvscool.com +cvscout.com +cvse.icu +cvstr.us +cvu0at.online +cvurb5g2t8.cf +cvurb5g2t8.ga +cvurb5g2t8.gq +cvurb5g2t8.ml +cvurb5g2t8.tk +cvwvxewkyw.pl +cvxnoom.com +cvxooms.com +cvzzoom.com +cw8xkyw4wepqd3.cf +cw8xkyw4wepqd3.ga +cw8xkyw4wepqd3.gq +cw8xkyw4wepqd3.ml +cw8xkyw4wepqd3.tk +cw9bwf5wgh4hp.cf +cw9bwf5wgh4hp.ga +cw9bwf5wgh4hp.gq +cw9bwf5wgh4hp.ml +cw9bwf5wgh4hp.tk +cwdt5owssi.cf +cwdt5owssi.ga +cwdt5owssi.gq +cwdt5owssi.ml +cwdt5owssi.tk +cwduhb.online +cwembk.site +cwerwer.net +cwiprojects.icu +cwith.website +cwkdx3gi90zut3vkxg5.cf +cwkdx3gi90zut3vkxg5.ga +cwkdx3gi90zut3vkxg5.gq +cwkdx3gi90zut3vkxg5.ml +cwkdx3gi90zut3vkxg5.tk +cwmco.com +cwn1r.us +cwrlf.org +cwrn3b.us +cwuekt.us +cwyk.us +cx.de-a.org +cx4div2.pl +cxago.com +cxalj.club +cxalj.xyz +cxbhxb.site +cxboxcompone20121.cx.cc +cxcc.cf +cxcc.gq +cxcc.ml +cxcc.tk +cxcycn.com +cxdina1117.info +cxkpbaeb.shop +cxmyal.com +cxoc.us +cxosbv.us +cxpcgwodagut.cf +cxpcgwodagut.ga +cxpcgwodagut.gq +cxpcgwodagut.ml +cxpcgwodagut.tk +cxsqqk.com +cxsr.email +cxt66.com +cxv98.space +cxvixs.com +cxvnhbxhcjv13075.cf +cxvnhbxhcjv13075.ga +cxvnhbxhcjv13075.ml +cxvnhbxhcjv13075.tk +cxvooc.com +cxvxcv8098dv90si.ru +cxvxecobi.pl +cxxom.com +cxxqbj.com +cxznjvjkxz37512.tk +cxznjvjkxz44859.cf +cxznjvjkxz44859.ga +cxznjvjkxz44859.ml +cxznjvjkxz44859.tk +cxznjvjkxz73214.ml +cxznjvjkxz73214.tk +cxznjvjkxz77008.cf +cxznjvjkxz77008.tk +cxznjvjkxz95290.ml +cxznjvjkxz95290.tk +cxzpkbspi.shop +cxzvx.site +cyaffshop.store +cyano.website +cyantools.com +cyaovox.site +cybanlhyb.site +cyber-audit.com +cyber-host.net +cyber-innovation.club +cyber-phone.eu +cyber-security-career.com +cyber-team.us +cyber-tron.ru +cyber-video-poker-wagering.com +cybercommunist.com +cybercommunist.org +cybercommunistparty.org +cyberdive.net +cyberelites.com +cybergfl.com +cybergroup.shop +cyberguilds.org +cyberhardening.com +cyberhohol.tk +cyberian.net +cyberintel.onl +cyberiso.com +cyberkumbh.org +cyberoligarch.ru +cyberpay.shop +cyberper.net +cyberpointeservices.com +cyberresponse.link +cybersecurity.mba +cybersecurityforentrepreneurs.com +cybersex.com +cyberspatial.org +cybersporttour.ru +cyberstreamz.online +cyberstudio.company +cyberstudio.digital +cybertechinfosolution.com +cybervm.shop +cybervors.online +cybexc.com +cybrew.com +cybsec.shop +cyciha.cf +cyciha.ml +cyciha.tk +cycleaccess.com +cyclebrowser.com +cyclecrm.com +cycledynamicexert.site +cycleflo.xyz +cyclejudg.recipes +cycletrailsnelson.com +cyclingshop.live +cyclisme-roltiss-over.com +cyclo.co +cyclocart.icu +cyclonetree.net +cyconentertainment.com +cydco.org +cydotic.cf +cydotic.ga +cydotic.ml +cyfu.icu +cygcoquan.cf +cygcoquan.ga +cygcoquan.gq +cygcoquan.ml +cygcoquan.tk +cyjg66k85khvl1d.xyz +cylab.org +cylinderbrush.biz +cylinderbrushes.biz +cylinderbrushes.net +cylinderbrushes.us +cylindricalbrush.us +cylindricalbrushes.us +cylink.life +cylzcyned.shop +cyme.ru +cymuj1.site +cyng.com +cyoragex.xyz +cyormedia.com +cypher.onl +cyphername.net +cyphershop.net +cyprusbesthome.com +cypseline.site +cypsoyr.xyz +cyretta.com +cyrptocurrencyforecasts.com +cytm1p.club +cytotranscleaning.site +cytphebes.cf +cytphebes.gq +cytphebes.ml +cytphebes.tk +cyu404.com +cyyl-hyzc.com +cyyl95.com +cyzoone.xyz +cz076.com +cz3gknv9phg3a7j.xyz +cz4kdk.us +czaresy.info +czarinaallanigue.com +czarny.agencja-csk.pl +czbird.com +czblog.info +czc66.xyz +czeescibialystok.pl +czershiasa.icu +czeta.wegrow.pl +czguangyus.com +czip.site +czn-sait.ru +cznyaw.us +czpanda.cn +czpivquq.shop +czpvcshoe.com +czqjii8.com +czsabidbs.shop +czuj-czuj.pl +czwtky.us +czxc16a1-qwewqqw.icu +czyjtonumer.com +czystydywan.elk.pl +czzyeezyshoes.com +d-ax.site +d-cont.biz +d-gray-man.com +d-health.site +d-link.cf +d-link.ga +d-link.gq +d-link.ml +d-link.tk +d-prov.se +d-race5.com +d-sadokam.ru +d-skin.com +d-v-w.de +d.bgsaddrmwn.me +d.megafon.org.ua +d.polosburberry.com +d.seoestore.us +d00700.com +d029ksfd.buzz +d081xdyn.buzz +d086gyzb.buzz +d088iyij.buzz +d098xyzo.buzz +d0ipqg.info +d10.michaelkorssaleoutlet.com +d10ftkrnne56stforfu2545.com +d10fturbmk9eqxlorfe0244.com +d10ftvrrnu5qazjoamm9667.com +d123.com +d12kj.space +d1333.com +d154cehtp3po.cf +d154cehtp3po.ga +d154cehtp3po.gq +d154cehtp3po.ml +d154cehtp3po.tk +d15a6s1d6-sadxzcwaasdcx.icu +d1818.com +d18ux.space +d190c0a5.xyz +d1rt.net +d1xs.net +d1yun.com +d220.club +d2dtoolbox.com +d2hfdg.com +d2plives.com +d2pstar.com +d2pwqdcon5x5k.cf +d2pwqdcon5x5k.ga +d2pwqdcon5x5k.gq +d2pwqdcon5x5k.ml +d2pwqdcon5x5k.tk +d2v3yznophac3e2tta.cf +d2v3yznophac3e2tta.ga +d2v3yznophac3e2tta.gq +d2v3yznophac3e2tta.ml +d2v3yznophac3e2tta.tk +d301da66.xyz +d32ba9ffff4d.servebeer.com +d3439.com +d34b.club +d3888.com +d39oh.space +d3account.com +d3gears.com +d3mrz2.us +d3obcy.us +d3omilitary.com +d3p.dk +d4422.com +d46.gr +d47uz.site +d4923.club +d4eclvewyzylpg7ig.cf +d4eclvewyzylpg7ig.ga +d4eclvewyzylpg7ig.gq +d4eclvewyzylpg7ig.ml +d4eclvewyzylpg7ig.tk +d4ffwamjrua3ayp.xyz +d4jgpnug.xyz +d4networks.org +d50az.com +d52.online +d52tm.com +d54a169.club +d5721c98.xyz +d58pb91.com +d5ewoi.us +d5fffile.ru +d5ipveksro9oqo.cf +d5ipveksro9oqo.ga +d5ipveksro9oqo.gq +d5ipveksro9oqo.ml +d5ipveksro9oqo.tk +d5qlcz.us +d5wwjwry.com.pl +d5xb7.us +d62f78c.club +d64qb.site +d65faf2.club +d667.com +d66rc.site +d6gypc.site +d7474.com +d74qp.space +d75d8ntsa0crxshlih.cf +d75d8ntsa0crxshlih.ga +d75d8ntsa0crxshlih.gq +d75d8ntsa0crxshlih.ml +d75d8ntsa0crxshlih.tk +d7665.com +d77wt.site +d78.xyz +d7899.com +d78qp.com +d7bpgql2irobgx.cf +d7bpgql2irobgx.ga +d7bpgql2irobgx.gq +d7bpgql2irobgx.ml +d7crews.com +d7curtainwalls.com +d7design.com +d7electrical.com +d7floors.com +d7kj.net +d7lights.com +d7painting.com +d7paving.com +d7restoration.com +d7solar.com +d7storefronts.com +d8555.com +d892akcr.buzz +d8db.club +d8group.asia +d8tam.space +d8u.us +d8wjpw3kd.pl +d8yvf0.us +d8zzxvrpj4qqp.cf +d8zzxvrpj4qqp.ga +d8zzxvrpj4qqp.gq +d8zzxvrpj4qqp.ml +d8zzxvrpj4qqp.tk +d90b.xyz +d90bs8.us +d93xxp.us +d9faiili.ru +d9jdnvyk1m6audwkgm.cf +d9jdnvyk1m6audwkgm.ga +d9jdnvyk1m6audwkgm.gq +d9jdnvyk1m6audwkgm.ml +d9jdnvyk1m6audwkgm.tk +d9tl8drfwnffa.cf +d9tl8drfwnffa.ga +d9tl8drfwnffa.gq +d9tl8drfwnffa.ml +d9tl8drfwnffa.tk +d9wow.com +da-bro.ru +da-da-da.cf +da-da-da.ga +da-da-da.gq +da-da-da.ml +da-da-da.tk +da1413.com +da4it.buzz +da829.xyz +daabox.com +daahjy.tokyo +daaiyurongfu.com +daawah.info +dab.ro +dab.systems +dabbhouti.ga +dabbhouti.gq +dabbhouti.ml +dabbhouti.tk +dabest.ru +dabestizshirls.com +dabjam.com +dabrigs.review +dabstuff.com +dabstuff.net +dabtatinar.gq +dacarirato.com.my +dacasjahr.cf +dacasjahr.ga +dacasjahr.gq +dacasjahr.ml +dacasjahr.tk +dacentecrefugees.com +dacha-24.ru +dachahut.com +dacia-sandero.club +daciasandero.cf +daciasandero.ga +daciasandero.gq +daciasandero.ml +daciasandero.tk +daconfrontare.com +dacoolest.com +dacre.us +dacredit365.online +dacrib.monster +dacsancantho.net +dacsanxuthanh.com +dad.biprep.com +dadamoffice.shop +dadbgspxd.pl +dadc.space +dadc.website +dadc.xyz +dadd.kikwet.com +daddah.org +daddybegood.com +daddykeys.ru +dadeanfamily.com +dadensa.online +dadensa.shop +daditrade.com +dadsdefense.com +dadukiukiu.com +dae-bam.net +daedaulusvipinsider.com +daef.cn +daekano.com +daelogi.cf +daelogi.ga +daelogi.gq +daelogi.ml +daelogi.tk +daemoniac.info +daemsteam.com +daesungmicron.com +daewoo.gq +daewoo.ml +dafa107.com +dafa109.com +dafa215.com +dafa510.com +dafa572.com +dafa576.com +dafa580.com +dafa581.com +dafaapp55.com +dafabetfun.com +dafam88.com +dafardoi1.com +dafconsde.tk +daffettion.monster +daffodilssociety.ong +daffstyle.shop +dafgtddf.com +dafinally.com +dafrem3456ails.com +daftardetikcapsa.com +daftarjudimixparlay.com +daftarkoinqq.site +daftarkoinqq.website +daftarpokerhokibet88.net +daftarpokerhokibet88.org +daftm.ru +dag76.site +dag8gi7ryh893b4.xyz +dagagd.pl +dagao.live +dagodiscoentertainment.com +dagougou.org +dahaka696.co +dahaka696.com +dahelvets.cf +dahelvets.ga +dahelvets.gq +dahelvets.ml +dahelvets.tk +dahongying.net +dahypy.info +dai-one.online +daibond.info +daicliclong.cf +daicliclong.ga +daicliclong.ml +daicliclong.tk +daiettodorinku.com +daifopour.cf +daifopour.ga +daifopour.gq +daifopour.ml +daifopour.tk +daigleconstructioninc.com +daikin-centr.ru +daiklinh.com +daily-email.com +daily-today-flashemoteobserver-vitality.com +dailyautoapprovedlist.blogmyspot.com +dailyawesomedeal.com +dailybanhtrungthubrodard.com +dailybible.xyz +dailybitcoinlotto.com +dailycasino.ru +dailycryptomedia.com +dailydeliverykw.com +dailydichos.com +dailydodger.net +dailyflats.org +dailyhealthclinic.com +dailyideas.me +dailyjp4.club +dailyladylog.com +dailylaunchoffers.com +dailylonghorn.com +dailyloon.com +dailymicrosoft.com +dailymovies.biz +dailynewmedia.com +dailypublish.com +dailyquinoa.com +dailysocialpro.com +dailyteleserye.ru +dailywebnews.info +daimlerag.cf +daimlerag.ga +daimlerag.gq +daimlerag.ml +daimlerag.tk +daimlerchrysler.cf +daimlerchrysler.gq +daimlerchrysler.ml +dainaothiencung.vn +daintly.com +daiphim.com +dairyawf.icu +dairyawfu.xyz +dairyfarm-residences-sg.com +dairygreat.email +dairyque.icu +dairythank.site +dairythi.xyz +dairythig.xyz +dairywiselabs.us +daisapodatafrate.com +daisymacgardens.com +dait.cf +dait.ga +dait.gq +dait.ml +dait.tk +daitarli.cf +daitarli.ga +daitarli.gq +daitarli.ml +daitarli.tk +daithresdoor.cf +daithresdoor.gq +daithresdoor.ml +daithresdoor.tk +daivatal.ga +daivatal.ml +daivatal.tk +daiwa-kohga.online +daiyun300.com +dajin18.com +dajreamdigital.com +dajuju.com +dakgunaqsn.pl +daki6v.us +dakimakura.com +dakkapellen-tilburg.com +dakkapellenbreda.com +dakshub.org +dalailamahindi.org +dalamananadolulisesi.xyz +dalamanporttransfer.xyz +dalamanturkishvillas.xyz +dalanila.tk +dalatrk.site +dalatvirginia.com +dalbam7.net +daleadershipinstitute.org +dalebrooks.life +dalecagie.online +daleloan.com +dalevillevfw.com +dalexport.ru +dali-guard.online +dali-vdali.ru +daliamodels.pl +dalianseasun.com +dalianshunan.com +dalins.com +dalis-kursu.xyz +dallas-ix.org +dallas.gov +dallas4d.com +dallasbuzz.org +dallascheapdrinks.com +dallascolo.biz +dallascowboysjersey.us +dallascriminaljustice.com +dallasdaybook.com +dallasdebtsettlement.com +dallasftworthdaybook.com +dallaslandscapearchitecture.com +dallaslotto.com +dallaspentecostal.org +dallaspooltableinstallers.com +dallassalons.com +dalremi.cf +dalremi.ga +dalremi.tk +daltongullo.com +daltonmillican.com +daltv14.com +daltv15.com +daltv19.com +daltv20.com +daly.malbork.pl +dalyoko.com +dalyoko.ru +damachinegame.net +damaginghail.com +damai.webcam +damail.ga +damanik.ga +damanik.tk +damastand.site +damatiy.space +damde.space +damebreak.com +damian-ekb.ru +daminhptvn.com +daminnes.info +damirtursunovic.com +damistso.cf +damistso.ga +damistso.ml +damistso.tk +damliners.biz +dammexe.net +damnser.co.pl +damnthespam.com +damonacos.info +damonza.net +damoreavenue.icu +damoshka.ru +damptus.co.pl +damvl.site +damwolves.com +damwolves.shop +dan-it.site +dan.lol +dan72.com +dana-markovskaya.ru +danaabadisekolah.com +danaabadisekolah.org +danaia.ru +danamail.com +danamon66.net +danapointsmile.com +danaproses.com +danavibeauty.com +dance-king-man.com +dance-school.me +dance4z.info +dance4zz.info +dancealb.com +dancefibr.icu +danceguess.buzz +danceinwords.com +danceliketiffanyswatching.org +dancemanual.com +danceml.win +dancend.info +dancethis.org.ua +dandanmail.com +dandantwo.com +dandcbuilders.com +dandikmail.com +dandinoo.com +dandrewsify.com +danecarsa.info +danelliott.live +dangbatdongsan.com +dangemp.com +dangerbox.org +dangerouscriminal.com +dangerousdickdan.com +dangersdesmartphone.site +dangirt.xyz +dangkibum.org +dangkibum.xyz +dangkygame.win +dangwild.xyz +danhenry.watch +daniarturos.club +danica1121.club +danielabrousse.com +danielcisar.com +danielfinnigan.com +danielfrysinger.com +danielfrysinger.net +danielfrysinger.org +danielgemp.info +danielgemp.net +danieljweb.net +danielkennedyacademy.com +danielkrout.info +danielsagi.xyz +danielurena.com +daniilhram.info +danilkinanton.ru +danilwsus.online +danirafsanjani.com +danish4kids.com +daniya-nedv.ru +danjohnson.biz +danklitmemes.com +dankmedical.com +dankmeme.zone +dankq.com +dankrangan77jui.ga +danlathel.cf +danlathel.ga +danlathel.gq +danlathel.ml +danlathel.tk +danlingjewelry.com +danmark.cd +danmoulson.com +danncollier.com +danneocheck.xyz +danniel-karr.ru +danns.cf +danny-mickey.ru +dannyantle.com +dannycrichton.org +dannyhosting.com +dannystonecelebrant.com +danoiara.xyz +danollascastlebar.com +danora.cf +danora.gq +danora.ml +danring.org +danslesenvirons.cd +dansova.online +dantevirgil.com +danthomas.me +dantri.com +danycompay.com +danycomsms.com +danzeralla.com +danzlogo.com +dao7j4.us +daoduytu.net +daof.cn +daofengyun.com +daogarden.ru +daolemi.com +daotan.org +daotaolamseo.com +daotzimin.cf +daotzimin.ga +daotzimin.gq +daotzimin.ml +daotzimin.tk +daoxiangpalmademallorca.com +dap38.space +daphnee1818.site +daphnetann.com +dapk.site +dapopo.xyz +dapperraptor.com +dapplica.com +daqbank.net +daqbank.org +daqbit.org +daqexc.org +daqianbet.com +daqmart.one +daqmart.org +daqsec.org +daquytinnghia.tech +dar098.xyz +dar123.xyz +dar23.xyz +daraart.com +daracombe.com +darafsheh.com +darazdigital.com +darblaga.ru +darcagold.cf +darcagold.ga +darcagold.gq +darcagold.ml +darcagold.tk +darcheteb.cf +darcheteb.ga +darcheteb.gq +darcheteb.ml +darcypierlot.com +darcyzhang.com +dareblog.com +darenmclean.com +dareo.site +darga24.space +darga24.website +dargah120.club +dargah9090.xyz +dargahdomainxtra.best +dargahian2.xyz +dargahparsi.xyz +dargahvaset2.xyz +darguncu.com +daricadishastanesi.com +daridarkom.com +darienelderlawgroup.com +darina12.ru +dariosblanchardstown.com +dark-tempmail.zapto.org +dark.lc +dark.support +dark2.ru +darkabyss.studio +darkbluevandred.ru +darkcitychat.com +darkclubintheworld.ru +darkcolo.net +darkcoremu.online +darkest-dungeon.ru +darkestday.tk +darkharvestfilms.com +darklabpc.ru +darklenta.online +darkmarket.live +darknet.technology +darknode.org +darkstone.com +darkwulu79jkl.ga +darlene.club +darlenemerronemarie.us +darlibirneli.space +darlingaga.com +darlinggoodsjp.com +darlingtonradio.net +darloneaphyl.cf +darmowedzwonki.waw.pl +darnellmooremusic.com +darobertas.com +darporalgo.info +darrowsponds.com +darrylcharrison.com +darsbyscman.ga +darsbyscman.tk +darsonline.com +dartak.site +darter-empirehonest-monk-honest.com +dartmouthhearingaids.com +dartsgirls.com +dartsoftwareautomation.com +dartv2.ga +dartwader.club +darv.xyz +darwinantivirus.net +darwinav.com +darwinav.net +darwins.app +darwinsgame.app +daryun.ru +daryxfox.net +das-abitur-nachholen.net +das-polopom1.ru +das.market +dasarip.ru +dasayo.space +dasayo.website +dasayo.xyz +dasbeers.com +dasdasdas23123.xyz +dasdasdascyka.tk +dasefashion.com +dasegr.club +dash-pads.com +dash8pma.com +dashabase.com +dashalens.ru +dashanddot.club +dashangyi.com +dashaustralia.com +dashbpo.net +dashengpk.com +dashiav.xyz +dashifood.com +dashoffer.com +dashseat.com +dashskin.net +daskoievinoihs.xyz +dasmarc.net +dasmarc.org +dasoft-hosting.com +dasprinting.com +daspsinc.com +dasttanday.ga +dasttanday.gq +dasttanday.ml +dasttanday.tk +dasty-pe.fun +dasxe.online +dasymeter.info +daszyfrkfup.targi.pl +data-003.com +data1.nu +dataaas.com +dataarca.com +dataazurro.com +datab.info +databnk.com +databootcamp.org +datacenteritalia.cloud +datacion.icu +datacion.pw +datacion.top +datacion.xyz +datacoeur.com +datacogin.com +datafordinner.com +datafres.ru +datafundcapital.com +dataharga.org +dataleak01.site +datalysator.com +dataminors.com +datamodelingwiki.com +datapaneli.xyz +dataplicity.sk +datapurse.com +datarator.com +datarca.com +dataretrievalharddrive.net +datasoma.com +datastorage.icu +datasurvey.org +datauoso.com +dataworldclub.com +datawurld.com +datazo.ca +datcaexpres.xyz +datcamermaid.com +datchka.ru +datdiamh.shop +dateligenu-confirmed.com +dateligenu-meet-backup.com +dateligenu-meet.com +datendesf.cf +datendesf.ml +datendesf.tk +datenschutz.ru +dates.cd +datesofevents.com +datesweetcherrygirls.xyz +dathingspool.cf +dathingspool.gq +dathingspool.ml +dathingspool.tk +dati69.com +dating-right-now2.com +dating-sky.ru +dating2020.top +dating4you-cc.net +datinganalysis.com +datingapr.website +datingbio.info +datingbistro.com +datingbit.info +datingcloud.info +datingcomputer.info +datingcon.info +datingeco.info +datingfails.com +datingfood.info +datinggeo.info +datinggetdown.website +datinggreen.info +datinghacks.org +datinghyper.info +datinginternet.info +datingmm.uk +datingphotos.info +datingpix.info +datingplaces.ru +datingreal.info +datingshare.info +datingstores.info +datingsun.info +datingtruck.info +datingwebs.info +datingworld.com +datingworld.email +datlab.space +datotira.cf +datovej.ninja +datrainternusa.com +datrr.gq +datsun311parts.com +datthocu.xyz +datum2.com +datumdelugeexile.site +daufzq.us +daughertymail.bid +daughterplastic.xyz +daun4d.live +daunpkr2.org +daunplay.org +davecooke.eu +davedrapeau.com +davegoodine.com +davemartin.today +davening613.com +davenportiowachiropractic.com +davenportiowachiropractor.com +davesbillboard.biz +davesbillboard.com +davesdadismyhero.com +davetiyesokagi.xyz +davewomach.com +david279.us +davidandmarc.com +davidcasinghino.com +davidcrozier.com +daviddjroy.com +daviddrapeau.com +davidedeluca.com +davidhathawayconsulting.com +davidjrparker.com +davidjwinsor.com +davidkoh.net +davidlcreative.com +davidmiller.org +davidmorgenstein.org +davido.africa +davidodere.com +davidorlic.com +davidqq.net +davidqq.org +davidsaunders.buzz +davidsonschiller.com +davidtaylormp.com +davidtbernal.com +davidvogellandscaping.com +davies-club.com +davietblogger.com +daviiart.com +davikla.com +davilo-press.ru +davinci-dent.ru +davinci-institute.org +davincidiamonds.com +davis.exchange +davomo.com +davuboutique.site +davutkavranoglu.com +dawaa.xyz +dawang777.org +dawcraft.com +dawetgress72njx.cf +dawin.com +dawn-smit.com +dawnnews.live +dawoosoft.com +dawozopa.site +dawri.live +daxfi1.info +daxur.xyz +daxurymer.net +day-holiday.ru +day-one.pw +day1campaign.org +daycubanart.com +dayemall.site +daygrandprizes9.life +dayibiao.com +daykemmonhoa.icu +dayking.icu +daylive.ru +dayloo.com +daymail.cf +daymail.ga +daymail.gq +daymail.life +daymail.men +daymail.ml +daymail.tk +daymailonline.com +daynews.site +daynightstory.com +dayone.pw +dayrep.com +dayreth.site +dayrosre.cf +dayrosre.ga +dayrosre.gq +dayrosre.tk +daysgox.ru +dayshow100.cn +daysofourlivesrecap.com +daytau.com +daytimos.com +daytobeyou.com +daytondonations.com +daytrippers.org +dayuzxg.com +dazate.gq +dazate.tk +dazbet2.com +dazere.info +dazplay.com +dazzlemysmile.biz +dazzlingcountertops.com +dazzvijump.cf +dazzvijump.ga +db-vets.com +db214.com +db2sports.com +db2zudcqgacqt.cf +db2zudcqgacqt.ga +db2zudcqgacqt.gq +db2zudcqgacqt.ml +db4t534.cf +db4t534.ga +db4t534.gq +db4t534.ml +db4t534.tk +db4t5e4b.cf +db4t5e4b.ga +db4t5e4b.gq +db4t5e4b.ml +db4t5e4b.tk +db4t5tes4.cf +db4t5tes4.ga +db4t5tes4.gq +db4t5tes4.ml +db4t5tes4.tk +dba26.com +dbadhe.com +dbadhe.icu +dbanote.net +dbatalk.com +dbataturkioo.com +dbatlogistics.com +dbawgrvxewgn3.cf +dbawgrvxewgn3.ga +dbawgrvxewgn3.gq +dbawgrvxewgn3.ml +dbawgrvxewgn3.tk +dbb-valve.com +dbbd8.club +dbcvdo.com +dbenoitcosmetics.com +dbits.biz +dblets.com +dbmmedia.org +dbo.kr +dbook.pl +dbook.site +dboss3r.info +dbot2zaggruz.ru +dbpages.com +dbrflk.com +dbseo.ru +dbsocd.com +dbst.band +dbt841.xyz +dbt845.xyz +dbt848.xyz +dbt862.xyz +dbt863.xyz +dbt864.xyz +dbt868.xyz +dbt871.xyz +dbt873.xyz +dbt878.xyz +dbt880.xyz +dbt891.xyz +dbt895.xyz +dbt896.xyz +dbtt.org +dbunker.com +dbvirtualizer.com +dbxola.rest +dby910.com +dbycivil.com +dbyrfpnd.xyz +dbz25.com +dbz5mchild.com +dc-business.com +dc0hah.us +dc213.org +dc45a2.com +dc7f8.xyz +dc99.app +dc9a7694.xyz +dcabmyoi.shop +dcantextli.gq +dcantextli.ml +dcantey.ru +dcapsul.xyz +dcastello.ru +dcbarr.com +dccsvbtvs32vqytbpun.ga +dccsvbtvs32vqytbpun.ml +dccsvbtvs32vqytbpun.tk +dce0.xyz +dcemail.com +dcemail.men +dcfnw.us +dcgs.ru +dcibb.xyz +dckb.email +dcluxuryrental.com +dcmnbb.com +dcndiox5sxtegbevz.cf +dcndiox5sxtegbevz.ga +dcndiox5sxtegbevz.gq +dcndiox5sxtegbevz.ml +dcndiox5sxtegbevz.tk +dcnlive.com +dconpla.biz +dcrnkqdn.space +dcru.email +dcscgroup.com +dcstranded.ru +dct-art.com +dct-industries.com +dct-robotics.com +dct-web.com +dctbooksonline.com +dctgames.com +dctm.de +dcv583.com +dcverowjd.shop +dcyfsu.stream +dd-lucky9.com +dd1234.com +dd18269.com +dd57822.com +dd8833.com +dd9966.com +dd9nax.us +dda1fd.club +ddancestudio.ru +ddataliste.site +ddbb99.xyz +ddblanding.com +ddboxdexter.com +ddcrew.com +ddd062.com +ddd9827.com +dddddd.com +dddk.de +dddoudounee.com +ddemilrk.site +ddevbotm.site +ddevtabd.site +ddgame999.org +ddgay.com +ddgzdmsg.xyz +ddi-solutions.com +ddigiwirew.site +ddimsfjr.shop +ddinternational.net +ddividegs.com +ddkin.com +ddlg.info +ddllkg.info +ddload3.xyz +ddlre.com +ddmail.win +ddmp3.com +ddn.kz +ddnkinvestglobal.com +ddns.ml +ddns.net +ddns.plus +ddnsfree.com +ddorai.net +ddosed.us +ddoudounemonclerboutiquefr.com +ddrabes.best +ddrf00.com +ddrt66.com +ddsongyy.com +ddsports.live +ddukbam03.com +ddukcafe2.com +ddxsoftware.com +ddynaliay.site +ddyy531.com +ddyy537.com +ddyy538.com +ddyy539.com +ddyy555.com +ddyy557.com +ddyy565.com +ddyy567.com +ddyy571.com +ddyy579.com +ddyy597.com +ddyy599.com +ddyy611.com +ddz79.com +de-2019-datenschutz-aktualisierung.xyz +de-a.org +de-classified.com +de-fake.instafly.cf +de-farmacia.com +de-lyrics.ru +de.introverted.ninja +de.newhorizons.gq +de.sytes.net +de.vipqq.eu.org +de4ce.gq +de5.pl +de5m7y56n5.cf +de5m7y56n5.ga +de5m7y56n5.gq +de5m7y56n5.ml +de5m7y56n5.tk +de6a6f.club +de99.xyz +dea-love.net +dea.soon.it +deadaddress.com +deadangarsk.ru +deadboypro.com +deadchildren.org +deadfake.cf +deadfake.ga +deadfake.ml +deadfake.tk +deadliftexercises.com +deadlinehomesite.club +deadlyspace.com +deadmobsters.com +deadproject.ru +deadsmooth.info +deadspam.com +deafchi.com +deagot.com +deahs.com +deaimagazine.xyz +deal-mega-original.ru +deal-retail-prod.ru +deal-store-seasons.ru +dealble.com +dealbonkers.com +dealcombiner.com +dealcost.com +dealcungmua.info +dealer.name +dealeredit.adult +dealergroupsummit.com +dealerlms.com +dealersautoweb.com +dealgiare.info +dealgongmail.com +dealingwithabully.com +dealja.com +dealligg.com +dealmuachung.info +dealnlash.com +dealpop.us +dealrek.com +dealremod.com +deals-from-wheels.com +deals.legal +deals4pet.com +dealsbath.com +dealsealer.org +dealshare.info +dealshint.xyz +dealsoc.info +dealsontheweb.org +dealsopedia.com +dealsource.info +dealsplace.info +dealsshack.com +dealsway.org +dealsyoga.com +dealthrifty.com +dealtim.shop +dealvn.info +dealyoyo.com +dealzbrow.com +dealzing.info +deamless.com +deamuseum.online +dean8x.com +deanbarlow.com +deanoumik.tk +dearisi.cf +dearisi.ga +dearisi.gq +dearisi.ml +dearisi.tk +dearistanbul.xyz +dearlittlegirl.com +dearoid.xyz +dearputin.net +dearputin.org +deasod.com +death-ko.xyz +deathbycounciltax.com +deathfilm.com +deathliteracy.org +deathqsweepdy.site +deathward.info +deba8x.com +debahis.com +debak.host +debak.xyz +debaresporrota.com +debaresporsanlucar.com +debarneuresarofimendeavour.org +debate.vote +debatedeals.com +debatehistory.com +debatetayo.com +debb.me +debela.cf +debela.ga +debela.gq +debela.ml +debela.tk +debet.asia +debet.info +debetvn.xyz +debforgione55places.com +debierkelder.com +debizuqiu.com +debonair-designs.com +debonnehumeur.com +deborahosullivan.com +deborahpodolsky.org +deborahvess.org +debradelfino.com +debran-indian-swords.com +debrauwadvocaten.online +debsbluemoon.com +debsmail.com +debspetandhousesitting.com +debtdestroyers.com +debthelp.biz +debtloans.org +debtrelief.us +debuglab.net +debuilding.ru +debute.cyou +debutter.com +deby.site +decacerata.info +decantr.com +decao88.org +decasino.ru +decassisya.info +decavn.org +deccanix.net +deccore.ml +deccore.tk +decd.site +december1977.com +decembermovo.com +decentraland.website +decentralproject.net +decentrust.com +deceptionindustries.com +decginfo.info +decibalblue.com +decibelblue.net +decibelworship.org +decidaenriquecer.com +decidasermagra.com +decimalizes270zr.online +decirculated.com +decisijevo.space +deckerniles.com +deckfasli.cf +deckfasli.gq +deckfasli.tk +deckscrubbrush.biz +deckscrubbrush.us +deckscrubbrushes.org +declined-active.best +deco-rator.edu +decobar.ru +decode.ist +decode.istanbul +decodeexpo.xyz +decodefuar.com +decodist.biz +decodream.ro +decography.ru +decolabsinc.com +decolonized643vu.online +decolonizes941gc.xyz +decoplagerent.com +decor-idea.ru +decorandhouse.com +decoratefor.com +decoratingfromtheheart.com +decoratinglfe.info +decorationdiy.site +decorative-m.com +decorativeaccents.exposed +decoratupiel.com +decoratupiel.es +decorigin.com +decox.ru +decoymail.com +decoymail.mx +decoymail.net +decreas.ru +decriminalization90lw.online +decriminalizes610vv.online +dector.live +decupam.buzz +decuypere.com +ded-moroz-vesti.ru +dedd.email +dede10hrs.site +dedetox.center +dedicateddivorcelawyer.com +dedimath.com +dedmail.com +dedmoroz-vesti.ru +dedmorozkoz.ru +dedom.info +deeded.best +deedinvesting.info +deekayen.us +deekris.info +deemail.xyz +deemfit.com +deemzjewels.com +deenahouse.co +deepadnetwork.net +deepankar.info +deepavenue.com +deepbreedr.com +deepcleanac.com +deepdicker.com +deeper-sonar.online +deepexam.com +deepfsisob.cf +deepfsisob.ga +deepfsisob.ml +deepfsisob.tk +deepgameslab.org +deeplysimple.org +deepshop.space +deepshop.xyz +deepsouthclothingcompany.com +deepstaysm.org.ua +deepstore.online +deepstore.site +deepstore.space +deepthroat.monster +deepttoiy.cf +deepvpn.site +deepvpn.space +deerecord.org.ua +deerest.co +deermokosmetyki-a.pl +deerparkrealestateagents.com +deesje.nl +deezstore.website +defandit.com +defaultdomain.ml +defaulywzw.space +defdb.com +defeatmyticket.com +defebox.com +defeet.ru +defenceds.com +defend-pc-servlce3.info +defenderconvention.com +defenderyou.com +defendpay.com +defendrrg.info +defendthemaarket.com +defengyaoye07.com +defensemart.com +defenseofthegospel.com +defenseoutfitter.ru +deferrableassets.info +defi-printemps.org +defiant.poker +defibank.technology +defibank24.com +defimole.com +definesmain.com +definingjtl.com +defmyx.xyz +defomail.com +defqon.ru +defreader.com +defvit.com +defyournumber.com +degar.xyz +degradedfun.net +degreesofseperationtoday.com +degrowlight.com +degrowlight.net +degrowlights.com +degwl4e.xyz +degydi.info +dehalfpricelistings.com +dehoutfrezer.com +deiforce.com +deifreegup.cf +deifreegup.ga +deifreegup.gq +deifreegup.ml +deinbox.com +deintier.shop +deinwebradio.com +deionized129br.online +deipostoe.cf +deipostoe.ga +deipostoe.gq +deipostoe.tk +deisanvu.gov +deishmann.pl +deityproject.net +deityproject.org +deiwoodcons.cf +deiwoodcons.ga +deiwoodcons.tk +dejamart.site +dejamedia.com +dejavafurniture.com +dejavu.moe +dejtinggranska.com +dekabet56.com +dekao59.icu +dekartaboards.ru +dekatri.cf +dekatri.ga +dekatri.gq +dekatri.ml +dekaufen.com +dekmauricie.com +dekoracjeholajda.pl +dekorated.com +dekoratifkaplamalar.net +dekorationideen.me +dekuki.info +del58.com +delaemsami18.ru +delaladz.com +delanazwetsloot.info +delanoforeclosures.com +delaware-nedv.ru +delawarecocainerehab.com +delawaredropbox.com +delawareheroinrehab.com +delawareo.com +delawaresecure.com +delawareshowerglass.com +delaxoft.cf +delaxoft.ga +delaxoft.gq +delaxoft.tk +delayedflights.com +delayequa.xyz +delayload.com +delayload.net +delayover.com +delaysvoe.ru +delcan.me +delcomweb.com +deldoor.ru +delefonkia.info +deleomotosho.com +delepoted.email +deleriousdrip.tk +deletedmessages.net +deletme.xyz +delhipalacemallow.com +delhispicetakeaway.com +delicacybags.com +delicate-accent.ru +delicategames.com +delichev.su +delicieuxbakery.com +deliciousnutritious.com +deliciousthings.net +delieus.site +delightbox.com +delightfulpayroll.com +delightfulworkspace.org +delighthimalaya.com +delignate.xyz +delikkt.de +delimapoker.website +delimiter.cloud +delimiterrefugees.com +delinuts.app +deliomart.com +deliriumshop.de +deliverancetrucking.com +deliverfreak.com +deliverme.top +delivery377.monster +deliveryconcierge.com +deliveryquebec.com +deliveu.site +delivvr.com +deliy.ru +dell-couponcodes.com +dellfroi.ga +dellingr.com +delmang.com +deln.info +delo4n.pro +deloittesmartreports.com +delonguiseavolt.ca +delorehouse.co +delorieas.cf +delorieas.ml +delotti.com +delowd.com +delphinine.xyz +delphiniza.xyz +delrikid.cf +delrikid.gq +delrikid.ml +delrikid.tk +delta.xray.thefreemail.top +delta8cartridge.com +deltabeta.livefreemail.top +deltacplus.info +deltakilo.ezbunko.top +deltalumen.gr +deltaoscar.livefreemail.top +deltapearl.partners +deltashop-4g.ru +deltechasia.com +deluxedesy.info +deluxetakeaway-sandyford.com +deluxewrappingmail.com +demail3.com +demalasprontas.net +demand56.website +demanddawgs.info +demandfull.date +demandmagic.com +demandrelationship.com +demandsxz.com +demen.ml +demencia.page +dementiaforumx.se +demesmaeker.fr +demgau.com +demianopp.net +demiclen.sk +demienb.ru +demigod.space +demilleturfarm.com +deminyx.eu +demirelotomanisa.online +demirelotomanisa.xyz +demirprenses.com +demlik.org +demmail.com +demo-royamhotel.website +demo.neetrix.com +democratic.army +democratized730yw.online +demodaas.host +demodesk.dev +demodron.tech +demoforeks24.com +demokrasiveatilimpartisi.net +demonclerredi.info +demonetizes756hm.online +demonpo.ga +demonpo.gq +demonpo.ml +demopitora.space +demotea.com +demotivatorru.info +demotywator.com +demreturizm.xyz +dena.ga +dena.ml +denarcteel.com +denationalization534lc.online +denationalizing899ee.xyz +denattehond.online +denaturalizing603oc.online +denbaker.com +dencxvo.com +dendomrecptic.website +dendride.ru +dendrions.ga +deneeky.ru +denehznoe-derevo.ru +denemebonuslari.info +denemeincele.com +deneukboot.online +dengekibunko.cf +dengekibunko.ga +dengekibunko.gq +dengekibunko.ml +dengi-news.ru +dengi-pod-zalok-pts.ru +dengivbank.ru +dengizaotvet.ru +denhues.info +deniath.com +denisderzhavin.com +denisecase.com +denisespellberg.com +denispushkin.ru +denithor.gq +denizenation.info +denizlimedyaajansi.xyz +denizlipostasi.com +denizlisayfasi.com +denizyolulashing.com +denki.guru +denniehoopingarner.info +dennisburge.com +denniscoltpackaging.com +dennisgabor.com +dennisgpike.com +dennisss.top +dennmail.win +dennymail.host +denomla.com +denovocompany.com +denovocybersecurity.com +denpasoda.com +denracad.cf +denracad.ga +denracad.ml +denracad.tk +denseregencyexpel.site +denservise.ru +densify.org +density2v.com +denstudio.pl +dentafinder.com +dental-and-spa.pl +dentalassociationgloves.com +dentaldiscover.com +dentaldoctornearme.com +dentalemergencyroom.com +dentalexcellencephoenix.com +dentalfarma.net +dentalhealthline.info +dentaljazz.info +dentallabmanager.com +dentalmarketingcouncil.com +dentalmdnearme.com +dentalpracticedigitalmarketing.com +dentalpracticeseoagency.com +dentalpracticeweb.com +dentalpride.ru +dentalscript.com +dentcarepro.website +dentegi.cf +dentegi.ga +dentegi.gq +dentegi.ml +dentegi.tk +denthite.ga +denthite.gq +denthite.ml +denthite.tk +dentistmarketplace.com +dentistry32norma.ru +dentistrybuzz.com +dentistryoffer.com +dentistryu.org +dentists.digital +dentistwebsitepackages.com +dentoiwama.ru +dentonaccidentattorney.com +dentonaccidentattorneys.com +dentonaccidentlawyer.com +dentoninjuryattorneys.com +dentoninjurylawyer.com +dentonpersonalinjury.com +dentonpersonalinjurylawyers.com +dentz.net +denverareadirectory.com +denverbroncosproshoponline.com +denverbroncosproteamjerseys.com +denvercathospital.com +denvercocainerehab.com +denvercyberdefence.com +denvergeek.com +denverquote.com +denverwebhost.net +denwin.com +denyfromall.org +deo.edu +deoanthitcho.site +deoanthitdau.site +deocaaocaelvallenosetoca.cf +deocamno.cf +deocamno.ga +deocamno.gq +deocamno.tk +deocrystal.ru +deodorizing465uh.online +deonline.coach +deonlineklas.online +deorehigh.cf +deorehigh.ga +deorehigh.gq +deorehigh.ml +deos.email +deos.onl +deos.tech +deov5x.info +dep88.win +depadua.eu +depaduahootspad.eu +depdfmanuales.xyz +depend.best +dependenceinspiretelevision.website +depented.space +deplatform.live +deployeasy.com +deployments.pro +depogross.com +depoidn.poker +depoladang.com +depolitika.com +deponote.org +depopar.net +depormania.es +depors12.xyz +deposit.ml +depositbtc.ru +depositshub1.com +depositshub2.com +deposma.cf +deposma.ga +deposma.gq +deposma.ml +deposma.tk +depostventaindustrial.com +deposventa.com +depotviolet.com +depradoork.gq +depradoork.ml +depressurizes908qo.online +deps-way2.com +deptgadcha.cf +deptgadcha.gq +deptgadcha.ml +deput.site +der-kombi.de +der.madhuratri.com +derano.site +derblitithe.tk +derbmalo.cf +derbmalo.ga +derbmalo.gq +derbmalo.ml +derbydales.co.uk +derbydancefestival.com +derder.net +derdisoft.com +deredik.info +derefed.com +derektwilight.com +derevenka.biz +derg.pro +dergmirbio.cf +dergmirbio.ga +dergmirbio.gq +dergmirbio.ml +dergmirbio.tk +derhaai.com +deribitguide.org +derickventer.com +derinbet14.com +derisuherlan.info +derivative.studio +derkombi.de +derliforniast.com +derlusac.cf +derlusac.gq +derlusac.ml +derluxuswagen.de +dermacareguide.com +dermacareshop.life +dermacoat.com +dermalmedsblog.com +dermatendreview.net +dermatitistreatmentx.com +dermatologistaportoalegre.com +dermatologistasaopaulo.com +dermatologistcliniclondon.com +dermatologycenterofboston.com +dermoli.xyz +dermorab.xyz +dermote.xyz +dermozi.xyz +dermpurereview.com +dernie.best +deromise.tk +derpfactor.com +derpfactor.net +derphouse.com +derpingfordays.com +derpy.info +derraro.cf +derraro.ga +derraro.gq +derraro.ml +derraro.tk +derroce.cf +derroce.ga +derroce.gq +derroce.ml +derroce.tk +dersdern.shop +derssataff.cf +derssataff.ga +derssataff.gq +derssataff.tk +derstefo.cf +derstefo.ga +derstefo.gq +derstefo.ml +derstefo.tk +derthtsz.shop +dertul.xyz +des-law.com +des1gn.tech +desahucioporinternet.com +desaptoh07yey.gq +desarrollo.online +desarte.info +descarga.gratis +descargalo.org +descargar-mp3.name +descargar-mp3.one +descargar-mp3.uno +descargarhotmail.com +descargarjuegosswitch.com +descargarplaystore.app +descducguepargo.space +descher.ml +deschprochel.cf +deschprochel.ga +deschprochel.gq +deschprochel.ml +deschprochel.tk +desconecta.info +descrive.info +desecratedsorrow.com +deselcard.cf +deselcard.ga +deselcard.gq +deselcard.tk +deselling.com +desenedublate.xyz +desert49.website +desertcan.com +desertcart.org +desertdigest.com +desertfinancoal.com +deserthillsbiblechurch.com +desertinancial.com +desertspringscov.church +desertstardesign.com +deshevo.travel +deshevosuper.ru +deshivideos.com +deshiz.net +desi-tashan.su +design-42.ru +design-doma.site +design-generator.ru +design.tours +design199.com +designable.info +designagency.ooo +designalpha.site +designavenue.info +designbydelacruz.com +designbyparts.com +designcreativegroup.com +designdemo.website +designea.ru +designerbagsoutletstores.info +designerclothingwear.com +designereasy.ru +designergeneral.com +designerhandbagstrends.info +designersadda.com +designerwatches-tips.info +designerwatchestips.info +designforleadership.com +designfortwayne.com +designfox.org +designfreebies.ru +designfuture.info +designingenium.com +designingireland.com +designingknights.com +designland.info +designmint.site +designmybrick.com +designobserverconference.com +designog.com +designprint.co.nz +designsbydelacruz.com +designsolutionstl.com +designsource.info +designstudien.de +designstudioinc.net +designtemple.info +designthinkingcenter.com +designvk.ru +designwaretech.com +designwigs.info +designyourbrick.com +desiheroine.com +desinfestacao.com +desingerexperience.com +desinghw.ga +desinglab.fun +desioutlets.site +desiruleztv.site +desisdesis.com +desitashan.su +desitvforums.su +deskality.net +deskinsagriculture.com +deskinsmanure.com +deskinswatertreatment.com +deskofday.app +deskova.com +deskport.net +desksgaloreandmore.com +desksonline.com.au +desktimeaustin.com +desktimechicago.com +desktop.events +desktopbitcoin.com +deskwareapp.com +desloratadipris.website +desmo.cf +desmo.ga +desmo.gq +desmodfhye.space +desmoinesquote.com +desmondpvc.com +desmondrichardson.com +desocupa.org +desouth.net +desouth.org +desoutilspourapprendre.com +desoz.com +despairsquid.xyz +despalar.ml +despalar.tk +despam.it +despammed.com +despgilpers.cf +despgilpers.ga +despiporren.com +desplainesapartments.com +dessertideasnowa14.com +dessuitesy.info +destcon.cd +desteketut.com +destent.net +destinationbrazil.com +destinationsouthernafrica.xyz +destinour.tk +destjusbaff.ml +destjusbaff.tk +destkinggen.cf +destkinggen.gq +destkinggen.tk +destroyertactics.com +destructiveblog.com +destructocat.com +destypad.gq +destypad.ml +destypad.tk +desultorydrivel.com +desuze.info +deszn1d5wl8iv0q.cf +deszn1d5wl8iv0q.ga +deszn1d5wl8iv0q.gq +deszn1d5wl8iv0q.ml +deszn1d5wl8iv0q.tk +detabur.com +detailernews.com +detalii.ru +detalushka.ru +detash.kg +detayappliances.online +detayappliances.xyz +deteenergy.com +detektywenigma.pl +detentroom.ru +determined2.net +determing.website +detestais.xyz +detetive.online +detexx.com +dethedown.cf +dethedown.gq +dethongminh.com +dethzoo.xyz +detikcapsa.biz +detikcapsa.net +detikcapsa.org +detikcapsaonline.com +detikcash.com +detikpoker88.net +detipoisk.ru +detkisad.ru +detonic02.ru +detox.marketing +detoxcenterfinder.com +detoxcontentwriters.net +detoxprogram.center +detoxstartsnow.com +detoxstartsnow.org +detran.site +detribalizing644gz.online +detroitalcoholrehab.com +detroitberlin.org +detroitdaily.com +detroitelectric.biz +detroithairsalons.com +detroitheroinrehab.com +detroitlionsjerseysstore.us +detroitmipersonalinjurylawyer.com +detroitopiaterehab.com +detroitquote.com +detroitroadsters.com +detrude.info +detskiechasy72.ru +detskietime.ru +detsky-pokoj.net +dettol.cf +dettol.ga +dettol.gq +dettol.ml +dettol.tk +deubomac.ga +deubomac.gq +deubomac.ml +deubomac.tk +deucemail.com +deuplus.com +deutchto.ru +deutestax.xyz +deutsch-nedv.ru +deutsch-sprachschule.de +deutschland-sicherheit.top +deutschland-update-sicherheit-241236.top +deutschlandcasinos.host +dev-api.ru +dev-gaming.org +dev-mclub.com +dev-null.cf +dev-null.ga +dev-null.gq +dev-null.ml +dev-point.biz +dev-testing.website +dev-tips.com +dev01d.ml +dev286.com +devachek.org +devadeva.ru +devakaudicien.net +devapartisi.name +devax.pl +devbahis666.com +devbaris.info +devblock.com +devcard.com +devcourse.ru +devdating.info +devdeb.ru +develhelp.com +develop.coop +developan.ru +developedwithstyle.info +developer401k.com +developerblog.org +developers401k.com +developfuel.com +developing.org +developmentaldesigns.net +developmentaldesignsms.com +developmentstack.com +developmentwebsite.co.uk +devere-group-banking.com +devere-hungary.com +devere-malta.com +deverob.com +devexp.us +devfiltr.com +devge.com +devicefoods.ru +devicemaker.com +devicemods.ru +devicesshop.futbol +devildollar.com +devilrainstudio.com +devilsasians.com +devilsgrannies.com +devilsredheads.com +devinelittleleague.org +devinmariam.coayako.top +devist.com +devletgirisimcidestekleri.com +devmoe.com +devmongo.com +devnaught.com +devnullmail.com +devo.black +devo.blog +devo.dance +devo.dating +devo.deals +devo.direct +devo.events +devo.fitness +devo.gallery +devo.management +devo.photos +devo.productions +devo.reviews +devo.style +devo.tech +devo.tours +devo.training +devo.ventures +devo.vision +devoidgpoc.space +devonandamanda.com +devone.cf +devone.ga +devonki.mobi +devonxdavon.com +devops.cheap +devops.country +devopsjournal.net +devopsmeetup.live +devosair.site +devotedent.com +devotions316.com +devreg.org +devremulk.biz +devrient.gent +devrient.info +devs.chat +devself.com +devset.space +devskateboards.com +devuan.online +devushka-fo.com +devxtesting.info +devxtesting.net +devxtesting.org +devyun.com +dew.com +dew007.com +dewa-lotto.club +dewa-lotto.org +dewa-sgp.net +dewa-togel99.net +dewa189qq.net +dewa633.online +dewa855.com +dewabet99.net +dewabola303.com +dewacapsawins.net +dewadaun.xyz +dewadaunqq.com +dewadaunqq.net +dewadewipoker.com +dewahk.info +dewahk.live +dewahk.online +dewahkb.net +dewajudi368.live +dewajudi999.com +dewakartu.org +dewaklik388.com +dewanagatoto.net +dewaneon.net +dewanonton21.com +dewapkvdomino.com +dewapoker2020.biz +dewarsengines.com +dewascore.info +dewawiro.com +dewayim.site +dewchenkam.ru +deweyscoffee.com +dewi368.net +dewightanderson.com +dewightssalon.com +dewihk.xyz +dewly9.info +deworconssoft.xyz +dexhibition.com +dexibu.xyz +dextm.ro +dextzobur.cf +dextzobur.gq +dextzobur.ml +dextzobur.tk +deyom.com +deypo.com +dezcentr56.ru +dezedd.com +dezend.shop +dezenfekteurunlerim.xyz +dezitouch.com +dezzire.ru +df-re.com +df59e.com +df7d95.xyz +df8c.online +df9876.com +dfagsfdasfdga.com +dfat0fiilie.ru +dfat0zagruz.ru +dfat1zagruska.ru +dfatt6zagruz.ru +dfb55.com +dfcmdgame1.com +dfde7.club +dfdfdfd.site +dfdfdfdf.com +dfdgfsdfdgf.ga +dfeatherston.com +dfet356ads1.cf +dfet356ads1.ga +dfet356ads1.gq +dfet356ads1.ml +dfet356ads1.tk +dff.buzz +dff55.dynu.net +dffhfjfj.website +dffwer.com +dfg456ery.ga +dfg6.kozow.com +dfgds.in +dfgeqws.com +dfgggg.org +dfgh.net +dfghj.ml +dfgtbolotropo.com +dfigeea.com +dfiles.fun +dfiles.online +dfind.online +dfjunkmail.co.uk +dfmjvd.com +dfmstaging.com +dfnqxymfm.cf +dfoofmail.com +dfoofmail.net +dfooshjqt.pl +dfqpqwsawe5566.com +dfre.ga +dfremails.com +dfshndls.com +dfssbm.com +dfthna.us +dftrekp.com +dfwaccidentattorneys.com +dfwautoaccidentlawyer.com +dfwautodetailing.com +dfwcaraccidentattorneys.com +dfwdaybook.com +dfwin88.info +dfwk968gbin4o1z.xyz +dfwlqp.com +dfworld.net +dfwpauzbc.shop +dfwyard.com +dfy2413negmmzg1.ml +dfy2413negmmzg1.tk +dfyxmwmyda.pl +dg27jv.us +dg8899.com +dg88affgame.com +dg9.org +dgame.site +dgb-toon4.com +dgbhhdbocz.pl +dgbikejxw.shop +dgcustomerfirst.site +dgd.mail-temp.com +dgdbmhwyr76vz6q3.cf +dgdbmhwyr76vz6q3.ga +dgdbmhwyr76vz6q3.gq +dgdbmhwyr76vz6q3.ml +dgdbmhwyr76vz6q3.tk +dgedy.live +dget1fajli.ru +dget8fajli.ru +dgfghgj.com.us +dgget0zaggruz.ru +dgget1loaadz.ru +dggslwdn.shop +dghyxu.xyz +dgidpo.icu +dgiuqr.us +dgjhg.com +dgjhg.net +dgjsrajh.shop +dgjxh9.us +dgkcismd.shop +dgmarbie.com +dgnghjr5ghjr4h.cf +dgnxcc.com +dgpa.cd +dgpoker88.online +dgpqdpxzaw.cf +dgpqdpxzaw.ga +dgpqdpxzaw.gq +dgpqdpxzaw.ml +dgpqdpxzaw.tk +dgseoorg.org +dgstore24.ru +dgthailand.net +dgtotu-tada.ru +dgvjjcgf.xyz +dgyx.xyz +dh-musfbdic.online +dh-u.club +dh03.xyz +dh04.xyz +dh05.xyz +dh06.xyz +dh07.xyz +dh08.xyz +dh09.xyz +dh2cuj.us +dh545.site +dh8.xyz +dh98.xyz +dh9837.com +dhabfontdec.cf +dhabfontdec.ga +dhabfontdec.gq +dhabfontdec.tk +dhabjouanes.cf +dhabjouanes.ga +dhabjouanes.gq +dhabjouanes.ml +dhana.info +dhapy7loadzzz.ru +dharatal.org +dharmaspirituality.com +dharmatel.net +dharoharfarms.com +dharoharmilk.com +dhbeuxet.shop +dhbusinesstrade.info +dhc6parts.com +dhc6pma.com +dhc8pma.com +dhcustombaling.com +dhead3r.info +dhfyqn.shop +dhgbeauty.info +dhhmxmwo.shop +dhivutsicing.tk +dhl-uk.cf +dhl-uk.ga +dhl-uk.gq +dhl-uk.ml +dhl-uk.tk +dhlkurier.pl +dhlzpjppr.shop +dhm.ro +dhmu5ae2y7d11d.cf +dhmu5ae2y7d11d.ga +dhmu5ae2y7d11d.gq +dhmu5ae2y7d11d.ml +dhmu5ae2y7d11d.tk +dhooniraajje.xyz +dhr1wm.us +dhruvseth.com +dhsjyy.com +dhtdht.com +dhudinuaj.xyz +dhufjnaunstop.club +dhwilp.com +dhy.cc +di9yy.info +dia-gram.ru +dia-rus.ru +diaaline.ru +diabasil.com +diabet4k.top +diabetesbuddyapp.com +diabeteschennai.net +diabetesresearchchennai.com +diabetestelemedicine.com +diabeticcakerecipes.org +diabeticlotion.com +diablo3character.com +diablo3goldsite.com +diablo3goldsupplier.com +diabloaccounts.net +diablocharacter.com +diablodawg.com +diablogears.com +diablogold.net +diablowallpapers.com +diabolizing227ni.online +diacamelia.online +diacelte.ga +diacelte.ml +diachidulich.com +diacustin.com +diademail.com +diadeoclic.cf +diadeoclic.gq +diadeoclic.ml +diadiemquanan.com +diadiemquangngai.com +diadisolmi.xyz +diadoo.xyz +diafporidde.xyz +diagnosisdoublecheck.com +diagnosistreatmentprograms.com +diagnostic-kit.com +diagnostikaavtov.ru +diagrams.online +dialarabia.com +dialinee.ru +dialogmagazine.org +dialognt.ru +dialogus.com +dialsweetlydeny.website +dialtools.ru +dialtrust.ru +dialysis-attorney.com +dialysis-injury.com +dialysis-lawyer.com +dialysisattorney.info +dialysislawyer.info +diamants.cd +diamantservis.ru +diamo.website +diamond9casino.com +diamondbar.online +diamondbarestates.com +diamonddogrescue.org +diamondfacade.net +diamondglass.website +diamondlogistics.se +diamondt201.com +diamondvalleytri.com +dian.ge +dian96.com +dianadadmehr.com +dianamora.com +diandrade2den.xyz +diane35.pl +dianefenzl.com +dianeharrison.com +dianetiks.ru +dianhabis.ml +dianjing068.com +dianjing166.com +dianjing700.com +dianjing800.com +dianjing900.com +dianlanwangtao.com +diannsahouse.co +diantrk.site +dianyingzhongguo.cn +diapacham.cf +diapacham.ga +diapacham.ml +diapacham.tk +diaparji.ga +diaparji.gq +diaparji.ml +diaparji.tk +diapaulpainting.com +diaper.lk +diaperbagbackpacks.info +diaphragmtv.com +diapoberf.cf +diapoberf.ga +diapoberf.gq +diapoberf.tk +diaraizi.cf +diaraizi.ga +diaraizi.ml +diaraizi.tk +diariocolatino.net +diariodigital.info +diarioretail.com +diariototal.com +diarioturismo.com +diaryinza.com +diaryofahairtransplant.com +diaryofsthewholesales.info +diascan24.de +diasisindia.com +diasumpha.gq +diasumpha.ml +diazincenter.xyz +diazinsatisi.xyz +dibbler1.pl +dibbler2.pl +dibbler3.pl +dibbler4.pl +dibbler5.pl +dibbler6.pl +dibbler7.pl +dibisen.cf +dibisen.ga +dibisen.gq +dibisen.tk +dibon.site +diboride.info +dibtec.store +dicasdacasabaher.com +dicedica.shop +dicejobalertsa13.com +dicepic.com +dicepicks.com +dicerollplease.com +diceservices.com +diceservices.net +diceservices.org +dichalorli.xyz +dichthuattructuyen.com +dichvugroupc.com +dichvuseothue.com +dickdoc.net +dickdoc.org +dickmorrisservice.com +dickrx.net +dicksinhisan.us +dicksinmyan.us +dicksoncountyag.com +dickwangdong.net +dickwangdong.org +dicountsoccerjerseys.com +dicycfeo.cf +dicycfeo.ga +dicycfeo.gq +dicycfeo.tk +dicyemail.com +didacvidal.com +didarcrm.com +didawljy.com +didiermampasi.cd +didikselowcoffee.cf +didikselowcoffee.ga +didikselowcoffee.gq +didikselowcoffee.ml +didim-altinkum.xyz +didimaraja.xyz +didimkontor.com +didimreizen.xyz +didjinnal.com +didncego.ru +dido-peinture.com +diecastsuperstore.com +diegewerbeseiten.com +diegogamingmail.ml +diegovts.tk +diegoyoutuber.tk +diendanhocseo.com +diennuocnghiahue.com +diepesi.cf +diepesi.ga +diepesi.gq +diepesi.ml +diepesi.tk +dierachegottes666.tk +dieran.info +dierirovertcor.space +diesacan.ga +diesacan.gq +diesel-bullery-armani.ru +dieselcbd.com +dieseldriver.com +dieselexhaustfluid.biz +dieselmotorhomes4rent.com +diet-eating.site +diet105.xyz +dietamedia.ru +dietaryneeds.org +dietarysubstitutes.com +diethenorp.cf +diethenorp.gq +diethenorp.ml +diethenorp.tk +dietingadvise.club +dietinsight.org +dietmastery.org +dietology-quest.online +dietpill-onlineshop.com +dietrich-group.com +dietsecrets.edu +dietsolutions.com +dietstart.biz +dietsvegetarian.com +dietysuplementy.pl +dieukydieuophonggiamso7.com +dievemar.cf +dievemar.ga +dievemar.gq +dievemar.ml +dievemar.tk +diffamr.com +diffamr.net +differencefactory.com +diflucanrxmeds.com +difora.cf +difora.gq +difora.ml +diforcejobs.com +diforceworks.com +difwestnun.ga +difwestnun.gq +difwestnun.ml +difwestnun.tk +difz.de +digading.com +digdown.xyz +digestletter.com +diggcrypto.com +diggiesupport.com +diggmail.club +digh.net +digi-bay.com +digi-games.ru +digi-magsonline.com +digi-magsonline.org +digi-women.com +digibeat.pl +digibet.biz +digibet.net +digibet.org +digibetbox.com +digibetwetten.com +digicampus.dev +digicampus.info +digicash.org +digicontentnetwork.com +digicures.com +digier365.pl +digimating.com +digimexplus.com +digimktgworld.com +digimuse.org +digimusics.com +digintory.com +digiprice.co +digisam.repair +digisam.services +digisamservice.com +digisimpli.com +digisnaxxx.com +digital-bootcamp.com +digital-designs.ru +digital-doctrine.ru +digital-email.com +digital-everest.ru +digital-frame-review.com +digital-garage.app +digital-ground.info +digital-message.com +digital-resilience.info +digital-signage.ru +digital-work.net +digital10network.com +digitalagency.ooo +digitalbankingsummits.com +digitalbristol.org +digitalbull.net +digitalbutler.biz +digitalcameradevice.com +digitalcarpenters.com +digitalcasanet.com +digitalcashnews.com +digitalcoldwallet.com +digitalcustomeracquisition.info +digitalcustomeracquisition.org +digitaldefencesystems.com +digitaldron.com +digitalesbusiness.info +digitalestore.info +digitalfocuses.com +digitalgadget.info +digitalhaunting.com +digitaljobs.press +digitaljschool.com +digitalmail.info +digitalmariachis.com +digitalmarketingcoursesusa.com +digitalmarketingpositions.com +digitalmktgworld.com +digitalmobster.com +digitalneuron.biz +digitalnewspaper.de +digitalnomad.exchange +digitalobscure.info +digitaloutrage.com +digitalpdfmanuales.xyz +digitalryno.net +digitalsanctuary.com +digitalsc.edu +digitalscandinavia.net +digitalsearch.info +digitalseopackages.com +digitalsignage.ru +digitalsole.info +digitalsolutionsdaraz.com +digitalstoragepro.com +digitaltechnic.ru +digitaltechsf.com +digitaltransarchive.net +digitaltransformationsaas.com +digitaltrueindia.com +digitalvideoexperts.net +digitalwarriorblueprint.com +digitalwebring.com +digitalwebus.com +digitalxpozure.com +digitalyou.media +digitalzeroone.com +digitava.com +digitex.ga +digitex.gq +digiuoso.com +digiwood.design +digizoom.ru +digl-team.net +digmeha.cf +digmeha.ga +dignityhealthazcancer.biz +digsandcribs.com +digsignals.com +digstaug.org +digumo.com +dihistores.site +dihuantech.com +diialine.ru +diide.com +diifo.com +diigo.club +dijesupermart.site +dijibilisim.xyz +dijitalbulten.com +dikbzn.site +dikeyzebraperde.com +dikitin.com +dikixty.gr +dikop.ru +dikovics.com +dikriemangasu.cf +dikriemangasu.ga +dikriemangasu.gq +dikriemangasu.ml +dikriemangasu.tk +dikydik.com +dilapidation.org +dilaracelikyapi.com +dilayda.com +dildemi.xyz +dildosfromspace.com +dilekevsen.com +dilemmaggar.email +dilherute.pl +dililimail.com +dilipits.cf +dilipits.ga +dilipits.gq +dilipits.tk +dillarduniversity.com +dillonbrooks.com +dilofoud.ga +dilofoud.ml +dilofoud.tk +dilon-rp.ru +dilts.ru +dilusol.cf +dilusol.ga +dilusol.ml +dim-coin.com +dimadde.cf +dimadde.ga +dimadde.gq +dimadde.ml +dimadde.tk +dimasdomeni.press +dimasprofit.press +dimepe.xyz +dimex.su +dimia.xyz +dimimail.ga +diminbox.info +dimjkfsh.shop +dimlruzz.shop +dimpusburger.com +dimsumbuffet.com +dimy.site +dinaattar.com +dinamika96.ru +dinamikser44.ru +dinarsanjaya.com +dinartaabreu.com +dinasti4d.xyz +dinastitoto.club +dinbang.com +dinbogcoin.com +dinbogtoken.com +dincama.cf +dincama.ga +dincama.ml +dincama.tk +dincelemlak.xyz +dincoin.biz +dincon.ru +dindalutiflivid.com +dindon4u.gq +dineroparacasa.com +dineroua.xyz +dingbone.com +dingdong4d.com +dingeno.shop +dingi-rekoi.ru +dingniu00.com +dingtorbi.gq +dingtorbi.ml +dingtorbi.tk +dingyizixin.com +dinhatban.info +dinheiroextranaweb.com +dinheironet.life +dinhtamdan.com +dinic.xyz +dining-car.app +dinkmail.com +dinksai.ga +dinksai.ml +dinly.icu +dinnernorthconway.com +dinnersbydiane.com +dino56pey.com +dinoandnight.com +dinoautomation.com +dinocaira.com +dinogam.com +dinorc.com +dinoschristou.com +dinosloto7.ru +dinospacegame.com +dinospizza-kilkenny.com +dinotek.top +dinoza.pro +dinozorcocuk.com +dinozorcocuk.net +dinozy.net +dinsfirsgu.cf +dinsfirsgu.ga +dinsfirsgu.gq +dinsfirsgu.ml +dinsfirsgu.tk +dint.site +dinteria.pl +dintughreb.fun +dinubaforeclosures.com +dioemail.ml +diofeci.cf +diofeci.ml +diofeci.tk +diogenov.ru +diokgadwork.cf +diokgadwork.ga +diokgadwork.gq +diokgadwork.ml +diokgadwork.tk +diolid.ru +dioneijunior.com +diopipymestoa.space +diopire.ga +diopire.gq +diopire.ml +diopire.tk +dioplumar.cf +dioplumar.gq +dioplumar.ml +dioplumar.tk +diornz.com +diosasdelatierra.com +diotedpers.cf +diotedpers.ga +diotedpers.gq +diotedpers.ml +diotedpers.tk +diotelli.cf +diotelli.ga +diotelli.gq +diotelli.ml +diotelli.tk +diotimen.cf +diotimen.ml +diovaqe.cf +diovaqe.gq +diovaqe.ml +diovaqe.tk +dioxv.us +dipak-bhadra.com +dipalmadental.com +dipath.com +dipes.com +diphtherotoxin.info +diplo.cd +diplom-voronesh.ru +diploma-of-human-resource-management.com +diplomadviser.info +diplomnaya-jakutsk.ru +diplomnaya-rabota.com +diplomvirkutske.ru +diplyp.com +dipoelast.ru +dipontio.cf +dipontio.ga +dipontio.gq +dipontio.ml +dipontio.tk +dipremp.ru +dipsdhilwan.com +dipshitz.net +diputadobeltrones.com +dipworld.ru +diq0wq.info +diqalaciga.warszawa.pl +dir43.org +dira.fun +diral.ru +dirane.website +dircuti.ga +dircuti.gq +dircuti.ml +dircuti.tk +direct-mail.info +direct-mail.top +direct.ditchly.com +directdepositviaach.com +directhatch.com +directjacuzzi.space +directmail.top +directmail24.net +directmessenger.app +directmonitor.nl +directoryblog.info +directoryofbooks.site +directpaymentviaach.com +directphp.com +directpmail.info +directproductinvesting.com +directsea.icu +directtoguest.com +directworldusa.com +direktorysubcep.com +direness.com +diretrizecese.org +direugg.cc +dirgapoker.com +dirkandarrow.com +dirkdigler.online +dirlend.xyz +diromail29.biz +dirtbikebits.com +dirtdrooperver.ru +dirtmail.ga +dirtremoval.ca +dirtsportklop.ru +dirty.gr +dirtybeg.press +dirtycam.tech +dirtydicksrub.com +dirtyloos.fun +dirtymailer.cf +dirtymailer.ga +dirtymailer.gq +dirtymailer.ml +dirtymailer.tk +dirtymax.com +dirtyoffset.com +dirtypetrol.com +dirtyplai.email +dirtyplain.email +dirtysex.top +dirtysli.email +dirtyslice.email +dirtyvagu.icu +dis59cikygm5j3k.xyz +disabilitylawatlanta.com +disabilitylawyersatlanta.com +disabledgamer.com +disadapt.org +disapprover.best +disaq.com +disardan.xyz +disaricikmamlazim.tk +disario.info +disastermare.com +disasterserviceleads.com +disavow.social +disbox.net +disbox.org +discach90dfm.ru +discar.club +discard-email.cf +discard.cf +discard.email +discard.ga +discard.gq +discard.ml +discard.tk +discardemail.cf +discardemail.ga +discardmail.cf +discardmail.com +discardmail.de +discardmail.ml +discardmail.tk +discbrand.com +discdots.com +discfoo.com +dischannel.hk +discjumsa.tk +disckracuvna.cf +disclasuc.cf +disclasuc.ga +disclasuc.gq +disclasuc.ml +disclasuc.tk +discmarpe.cf +discmarpe.gq +discmarpe.ml +discmarpe.tk +discobolus.site +discofan.com +discolo.red +disconorma.pl +discopied.com +discoplus.ca +discord.ml +discordapp.app +discordbotlijst.space +discordbotlist.xyz +discordbots.ovh +discordguide.xyz +discordmail.com +discordreviews.org +discos4.com +discosubjectfixed.site +discount-medical-books.com +discount-stock-factory.ru +discount-undersell-wow.space +discountappledeals.com +discountblade.com +discountbuyreviews.org +discountcasino15.com +discountcasino23.com +discountcasino24.com +discountchargeback.com +discountcouponcodes2013.com +discountdealsohio.com +discounted-glasses.com +discounted-store.com +discountgaslantern.com +discountholidaysadvice.com +discountmall.site +discountmanager.ru +discountmilitarystore.com +discountnikejerseysonline.com +discountoakleysunglassesokvip.com +discounts5.com +discountscrubsuniforms.com +discountsmbtshoes.com +discountsplace.info +discounttoyotaparts.com +discountwinkscrubs.com +discountz.uno +discoveraviationcenter.net +discovercheats.com +discovermanuals.com +discovermystrengthsnow.com +discoverportugaltravel.site +discoverproblems.com +discoverwatch.com +discoverylanguages.com +discoveryparksofamerica.net +discovino.com +discreet-retreats.com +discreet-romance.com +discreetfuck.top +discreetvpn.com +discretevtd.com +discslot.com +discspace.com +disctase.cf +disctase.ga +disctase.gq +disctase.ml +disctase.tk +discus24.de +discusprog.com +discussads.com +discussion.website +discussmusic.ru +diseasetrackers.net +disenfects.com +diseni.info +disfkeenews.cf +disfkeenews.ga +disfkeenews.gq +disfkeenews.ml +disfrazables.net +disfrut.es +dish-tvsatellite.com +dishmiss.com +dishscience.com +dishtvpackage.com +dishwashers-list.space +disign-concept.eu +disign-revelation.com +disignblog.ru +disillo.cf +disillo.ga +disillo.ml +disillo.tk +disincniua.online +diskilandcruiser.ru +diskio.tech +diskobmizik.net +diskslot.com +dislike.cf +disneka.info +disnessta.ga +disnessta.gq +disnessta.ml +disnessta.tk +disney.cd +disneyfox.cf +disneykinderfietsen.online +disneyparkbench.site +disneystudioawards.com +dispatchers.top +dispatcherscourse.com +dispatchsolutions.club +displaying.page +displaylightbox.com +displays2go.com +displaystar.com +displayverse.com +dispmailproject.info +dispo.in +dispomail.eu +dispomail.win +dispomail.xyz +disporthcoc.cf +disporthcoc.ml +disporthcoc.tk +disposable-e.ml +disposable-email.ml +disposable-mail.com +disposable.al-sudani.com +disposable.cf +disposable.dhc-app.com +disposable.ga +disposable.ml +disposable.nogonad.nl +disposable.site +disposableaddress.com +disposableemail.org +disposableemailaddresses.com +disposableemailaddresses.emailmiser.com +disposableinbox.com +disposablemail.space +disposablemail.top +disposablemails.com +dispose.it +disposeamail.com +disposemail.com +disposicaosaudavel.com +dispostable.com +dispotomen.tk +disppropli.cf +disppropli.ga +disppropli.gq +disppropli.tk +disputespecialists.com +disquieted.best +disrawhen.cf +disrawhen.ga +disrawhen.gq +disrupting.tech +dissertatsija.ru +dissonance.app +dissonant-tech.com +distainess.cf +distainess.gq +distainess.ml +distainess.tk +distancerei.email +distant-info.ru +distant-mind.com +distanzechilometriche.org +distdurchbrumi.xyz +disterubebdfsd.xyz +distnewskhal.cf +distnewskhal.gq +distnewskhal.ml +distnewskhal.tk +distorylty.host +distplo.cc +distrackbos.com +distrelec-noroeste.com +distressed.club +distribuidorafloral.com +distributed.us +distributorphuceng.online +distrify.net +distrow.info +distrowstore.com +disusedtube.com +diswino.ga +diswino.gq +diswino.ml +ditac.site +ditchpa.press +ditchpr.icu +ditchtaste.recipes +ditigal-brand.com +ditills.ru +ditinggal.online +ditsantjob.com +dituiwang.club +diu.best +diujungsenja.online +diutiurnal.site +diuz.com +diva.live +divad.ga +divalith.ru +divamodelslive.com +divan-matras.info +divan-stroy.ru +divaphone.com +divaphone.net +divasantiques.com +divchata.ru +divcot.ru +diveaboardtheconception.com +diveandseek.com +diveexpeditions.com +divelogconception.com +divemasterconception.com +divermail.com +diversaoemcasa.site +diversaoemcasa.website +diverseness.ru +diversify.us +diversitycheckup.com +diversitygaming.online +diverslogconception.com +divertidoemcasa.site +divestfromthebanks.org +divestops.com +divfree.com +divfree.net +divfree.org +divideandconquerdesigns.com +dividendxk.com +dividerecords.com +divinecakestudio.com +divinecaketoppers.com +divinehealthcenter.info +divinekine.com +divinerecords.com +divingnippe.com +divinois.com +divisets.com +divisionzerocup.com +divismail.ru +diviwoolayouts.com +divorcelawyersguide.xyz +divorcenapa.com +divorsing.ru +divrsicon.com +divrush.com +divtz1.us +diwan.store +diwangkx.com +diwanieh.org +diwanx.com +diwaq.com +diwenyq.com +diwudao.com +dixect.org +dixonpilotshop.com +diy-seol.net +diyadeja.site +diyarbakir-nakliyat.xyz +diyarbakirengelliler.xyz +diyarbakirhaberler.xyz +diyarbakirisitmemerkezi.xyz +diyarbakirkiralikaraba.com +diyarbakirlilardernegi.xyz +diyarbakirtmgd.xyz +diybookmarks.com +diyfilms.com +diyfurnituremakeovers.net +diygardeningtips.shop +diyhomedecorz.me +diyixs.xyz +diymail.cf +diymarketing.academy +diymarketinguniversity.com +diyombrehair.com +diypostconpi.ml +diytaxes.com +diywithpaul.com +diz-store.online +dizain-gox.ru +dizibb.org +dizibox.mobi +dizifenomeny.xyz +diziizle.tube +dizinmarket.online +dizinmarket.xyz +dizz.website +dj5882.com +dj9887.com +djan.de +djazmis.best +djdfkwro182-privdfejt.host +djdnq.online +djdwzaty3tok.cf +djdwzaty3tok.ga +djdwzaty3tok.gq +djdwzaty3tok.ml +djdwzaty3tok.tk +djeada.live +djemail.net +djembassy.ru +djennam.xyz +djerseys.com +djhy888.com +djigurdagox.online +djj82.com +djmag.digital +djmftaggb.pl +djmiamisteve.com +djnkkout.tk +djondemand.com +djqueue.com +djrh.email +djrobbo.net +djrqta.com +djsfw.com +djsys.xyz +djubya.us +djuncan-shop.online +djuncan-shop.space +djuncan.space +djxky.com +djyoli.us +djzqswix.shop +dk-osaka.ru +dk-volgodon.ru +dk0aip.us +dk3vokzvucxolit.cf +dk3vokzvucxolit.ga +dk3vokzvucxolit.gq +dk3vokzvucxolit.ml +dk3vokzvucxolit.tk +dkbmpm.fun +dkbmsc.fun +dkcfineart.com +dkdmsq.fun +dkdmxy.fun +dkert2mdi7sainoz.cf +dkert2mdi7sainoz.ga +dkert2mdi7sainoz.gq +dkert2mdi7sainoz.ml +dkert2mdi7sainoz.tk +dkfgnjfd.xyz +dkfmrt.fun +dkgmkc.fun +dkgmkp.fun +dkgmzt.fun +dkgram.com +dkhhf.club +dkhmyd.fun +dkids.xyz +dkinodrom20133.cx.cc +dkjmkc.fun +dkjmks.fun +dkjmtc.fun +dkjmxh.fun +dkkffmail.com +dkkmjq.fun +dkkmjz.fun +dkljdf.eu +dkljfkbvdf4.club +dklmln.fun +dklmmd.fun +dkmont.dk +dknmhq.fun +dknmjw.fun +dknmpy.fun +dko.kr +dkpkepri.info +dkpnpmfo2ep4z6gl.cf +dkpnpmfo2ep4z6gl.ga +dkpnpmfo2ep4z6gl.gq +dkpnpmfo2ep4z6gl.ml +dkpnpmfo2ep4z6gl.tk +dkqhx.xyz +dkqqpccgp.pl +dks97.space +dksmnm.fun +dksureveggie.com +dkt1.com +dkt24.de +dkthervr.shop +dktmnb.fun +dkuinjlst.shop +dkymjf.fun +dkywquw.pl +dl-thegedsection.com +dl0hcr.com +dl163.com +dl5oc2.info +dl812pqedqw.cf +dl812pqedqw.ga +dl812pqedqw.gq +dl812pqedqw.ml +dl812pqedqw.tk +dl9227.com +dl9827.com +dldbpj.icu +dldmg.com +dle.funerate.xyz +dlemail.ru +dlesha.ru +dlexpert.com +dlfiles.ru +dlfree.net +dlhaiteng.com +dliiv71z1.mil.pl +dlink.cf +dlink.gq +dlinlyga.ga +dlinlyga.gq +dlinlyga.ml +dlinlyga.tk +dlipb2.com +dlj6pdw4fjvi.cf +dlj6pdw4fjvi.ga +dlj6pdw4fjvi.gq +dlj6pdw4fjvi.ml +dlj6pdw4fjvi.tk +dljzuqnx.com +dlkwbs.icu +dll-ne-nayden.ru +dll32.ru +dllonhquan.com +dllpiper.com +dllyjamalk.com +dlman.site +dlmkme.ga +dlmkme.ml +dload.fun +dload.site +dlovew.xyz +dlpfbyy.com +dlpt7ksggv.cf +dlpt7ksggv.ga +dlpt7ksggv.gq +dlpt7ksggv.ml +dlpt7ksggv.tk +dls-ecme.com +dlserial.site +dlservermods.xyz +dltjitu.net +dltz.net +dluxuriousvehicles.com +dlwatch.ru +dlwdudtwlt557.ga +dlxglamour.com +dlyasnoff.ru +dlyavasfrend.ru +dlyemail.com +dlyludeey.ru +dlympics.com +dlzltyfsg.pl +dm-project.ru +dm3zv0.online +dm7xse.us +dm9bqwkt9i2adyev.ga +dm9bqwkt9i2adyev.ml +dm9bqwkt9i2adyev.tk +dma.in-ulm.de +dma2x7s5w96nw5soo.cf +dma2x7s5w96nw5soo.ga +dma2x7s5w96nw5soo.gq +dma2x7s5w96nw5soo.ml +dma2x7s5w96nw5soo.tk +dmackag.com +dmail.kyty.net +dmail.unrivaledtechnologies.com +dmail1.net +dmaildd.com +dmailpro.net +dmailx.com +dmailz.tech +dmaji.ddns.net +dmaji.ml +dmarc.ro +dmarksagency.com +dmarshallmarketing.com +dmaster39.ru +dmc-12.cf +dmc-12.ga +dmc-12.gq +dmc-12.ml +dmc-12.tk +dmc4u.tk +dmcchampion.site +dmcd.ctu.edu.gr +dmcforex.com +dmcgames.store +dmcqcnzq.shop +dmdea.com +dmedicals.com +dmeproject.com +dmetzh.us +dmfjrgl.turystyka.pl +dmfm7b.site +dmftfc.com +dmg-consulting.org +dmg222333.com +dmg55555.com +dmg5566.com +dmg9.com +dmglj.com +dmhy.moe +dmihit1myc.cf +dmihitmyc.cf +dmirekt.ru +dmireswordeuropespitoldage.me +dmitemtikog.gq +dmitext.net +dmitrysushenkov.ru +dmkt.studio +dmkyb.live +dmm-corifp.online +dmmhosting.co.uk +dmnservtrcksrvr.xyz +dmnwnkanj.shop +dmo3.club +dmodels.site +dmoffers.co +dmosi.com +dmslovakiat.com +dmt-project.com +dmtc.edu.pl +dmtqrnqrb.shop +dmtu.ctu.edu.gr +dmuxgi.icu +dmv911.com +dmwiki.com +dmwr.email +dmxs8.com +dmzj.moe +dmzyhe.xyz +dn293633.xyz +dn5eoc.us +dn98n.buzz +dna.holiday +dnabdsns.icu +dnabgwev.pl +dnaglobalpartners.site +dnagoldcrypto.com +dnaindebouw.com +dnaradiuscap.website +dnatechgroup.com +dnatestingaidforyou.live +dnatestingaidsforyou.com +dnatestingaidsforyou.live +dnatestingforyou.live +dnatestingsforyou.live +dnawr.com +dncjdh665.com +dnd.simplus.com.br +dnd5echaractersheet.website +dndbs.net +dndcak.us +dndent.com +dndiprlondon.com +dndl.site +dndoqi.tokyo +dndpoker.xyz +dnek.com +dnestrauto.com +dnhddoszz.shop +dnkpc.com +dnld.fun +dnld.online +dnld.site +dnlds.site +dnocoin.com +dnplayer.com +dnqq6.us +dns-cloud.net +dns-privacy.com +dns123.org +dns4urpns.com +dns889.com +dns9227.com +dns9827.com +dns9837.com +dnsabr.com +dnsbridge.com +dnsdeer.com +dnses.ro +dnsguard.net +dnsxdns.com +dnsxdns.net +dnt-domain-test.com +dnw1wp.us +dnwplatform.asia +dnzhb.com +do-be-french-cars-ok.live +do-creditcardnofeecas-ok.live +do-in-dental-implant-ok.live +do-in-luxury-suvs-ok.live +do-intl-austin-real-estate-ok.live +do-intl-austin-real-estates-ok.live +do-steel.com +doa-game.com +doabedbugremovalok.live +doameyux.com +doanart.com +doanlp.com +doatre.com +doawildthing.com +dob.jp +dobaoholaodong.net +dobedbugremovalok.live +dobidding.net +dobitocudeponta.com +dobleveta.com +doblyat.site +dobor-pozyczek.info +dobord.land +dobrabet56.com +dobrabet58.com +dobrabet59.com +dobrainspiracja.pl +dobramama.pl +dobrapoczta.com +dobraya-italia.ru +dobrodeyarf.ru +dobrodomik.com +dobroholod.ru +dobroinatura.pl +dobry-procent-lokaty.com.pl +dobrychvirta.ru +dobryesovety.ru +dobrytata.pl +dobywe.info +doc-jukebox.info +doc-mail.net +doc1.xyz +doc2pdftool.com +doc5.xyz +doc6.xyz +doc8.xyz +docasnyemail.cz +docasnymail.cz +docb.site +docconnect.com +doceke.ru +docent.ml +docesgourmetlucrativo.com +docib.us +docinsider.com +dock.city +dock.direct +docker-news.com +docker-news.org +dockerpeer.com +dockhaus.com +dockwa.net +docmail.com +docmail.cz +docmana.ga +docmana.gq +docmana.tk +docordbloodbankhelpok.live +docordbloodbankhelpsok.live +docs.coms.hk +docsandtv.com +doctgifma.cf +doctgifma.ga +doctgifma.gq +doctgifma.tk +doctor-orvi.ru +doctor-slim.ru +doctor.holiday +doctoralaurasanchez.com +doctorbarron.com +doctorbgarlictea.site +doctorbranding.co +doctordiamondclub.com +doctordieu.xyz +doctorfitness.net +doctorgarter.ru +doctorlane.info +doctormcknight.com +doctormed-secret.site +doctornewsnetwork.com +doctornilangi.com +doctornilangi.net +doctorsimsoffice.com +doctorsmb.info +doctorspopper.com +doctorz.app +doctovc.com +doctruyemoi.com +doctxyle.cf +doctxyle.gq +doctxyle.ml +doctxyle.tk +docu.me +documentingyellowstone.com +documentlegalisation.net +documentstorage4.com +docv.site +docx-expert.online +docx.site +dodachachayo.com +doddleandco.ru +dodeltas.info +dodge-challenger.club +dodge-india.club +dodge-ram.club +dodgeit.com +dodgemail.de +dodgit.com +dodgit.org +dodgitti.com +dodnitues.gr +dodogame88.info +dodogame88.org +dodongdaibai.info +dodorito.ru +dodsi.com +dodugix.online +dodungjapan.com +doetsreizen.net +dofile.pl +dofree4k.com +dofuskamasgenerateurz.fr +dofutlook.com +dog-n-cats-shelter.ru +dog.coino.pl +dogalisec.com +dogberries.ru +dogcagesshop.life +dogcastmedia.com +dogcrate01.com +dogdaydevelopers.com +dogelux.ir +dogemoon.club +dogestake.site +dogfishmail.com +doggamenew.ru +doggy-lovers-email.bid +doggyloversemail.bid +doghairprotector.com +dogiloveniggababydoll.com +doglisteneroftheeast.com +dognewsshow.com +dogobet109.com +dogobet110.com +dogodesignandart.com +dogood.news +dogpoop.app +dogrkd.site +dogs-blog.ru +dogs-city.ru +dogsandus.guru +dogsdo.com +dogsines.ga +dogsines.ml +dogsines.tk +dogsportshop.de +dogstarclothing.com +dogsupplies4sale.com +dogtrainersnewjersey.com +dogtrainingobedienceschool.com +dogtravelreviews.net +dogwood.website +dogwoozxog.space +dogzoa.shop +dohalatharin.host +dohangdaquan.xyz +dohmail.info +dohodi.info +doibaietisiofatafoxy.com +doiea.com +doierk.club +doimain309842h1.com +doimatch.com +doimmn.com +doinformowani.online +doinformowani.site +doinicioaolucro.com +dointo.com +doipor.site +doiposle28.ru +doitagile.com +doitnao.com +dok4.ru +dokaker.xyz +dokast.xyz +dokifriends.info +dokisaweer.cz.cc +dokist.net +dokist.org +doknews.ru +dokterns.info +doktor-div.ru +doktordiv.ru +doktoremail.eu +dokumakonserbileklik.com +dokuzbilisim.com +dolcher.ru +dolequ.com +dolina2018.ru +dolinak.ru +dollar-plus.ru +dollargiftcards.com +dollargoback.com +dollars4homes.com +dollartreeseeds.com +dollarzone.ru +dolldrooperver.ru +dollingrel.gq +dollingrel.ml +dollpolemicdraw.website +dollpop.com +dollscountry.ru +dollsshop.live +dollxbetpinup.ru +dolmentor.com +dolnaa.asia +dolorehouse.co +doloresantander.org +dolorihouse.co +dolphiding.icu +dolphincityrecords.com +dolphinhost.space +dolphinmail.org +dolphinnet.net +doludunya.xyz +dolunitra.cf +dom-cleverland.ru +dom-drakona.club +dom-drakona.ru +dom-mo.ru +dom-okna.com +dom855.live +doma-sad.ru +domafisha.ru +domain-99k.com +domain1dolar.com +domainables.biz +domainabuser.com +domainaing.cf +domainaing.ga +domainaing.gq +domainaing.ml +domainaing.tk +domaincatisi.com +domaindan.com +domaindomain5.com +domaindoug.com +domainegorn.com +domainhacked.com +domainhacking.com +domainleak.com +domainlease.xyz +domainnamemobile.com +domainnameoffice.com +domainploxkty.com +domainresellerinindia.com +domainscan.ro +domainseoforum.com +domainwizard.win +domajabro.ga +domamulet.ru +domapress.ru +domast.ru +domavnegoroda.ru +dombio.ru +dombrugova.ru +domby.ru +domdomsanaltam.com +dome-camp.ru +domeek.ru +domeerer.com +domen-treker.space +domeninfo.info +domenkaa.com +domenvds135.ru +domerdi.cf +domerdi.ga +domerdi.gq +domerdi.ml +domerdi.tk +domforfb1.tk +domforfb18.tk +domforfb19.tk +domforfb2.tk +domforfb23.tk +domforfb27.tk +domforfb29.tk +domforfb3.tk +domforfb4.tk +domforfb5.tk +domforfb6.tk +domforfb7.tk +domforfb8.tk +domforfb9.tk +domi855.live +domiansoch.ru +domiclips.com +domien.ru +domil.xyz +dominatingg.top +dominationozuwari.club +dominatome.com +dominguesweb.net +dominicanreload.com +dominikan-nedv.ru +dominionbotarena.com +dominivohw.ru +domino777.pro +domino789.com +domino789.info +domino789.net +dominoasli.website +dominoemas.org +dominoitu.com +dominoqq855.com +dominoqq855.live +dominototo.com +dominuzxpe.space +domiokna.ru +domitai.net +domitai.org +domklimat.info +dommebeli-vyksa.ru +dommebeli.ru +domnster.site +domodedovo-beton-zavod.ru +domorewhlrv.com +domorewithheartlandrv.com +domostroy18.ru +domozmail.com +dompetpt.com +domremonta-nv.ru +domru.online +domshops.site +domsoffer.xyz +domstroitell.ru +domstroytv.ru +domtecnologi.ru +domusasset.net +domwahlwin.cf +domwahlwin.gq +domwahlwin.ml +domy-balik.pl +domy.me +domywokolicy.com.pl +domywokolicy.pl +domyz-drewna.pl +don-m.online +donadero.com +donagoyas.info +donaldduckmall.com +donaldmcgavran.org +donaldvandrewsscholarship.org +donat.club +donate-car-to-charity.net +donatedollar.com +donateforstudies.org +donatex.cafe +donateyourfavorite.com +donationkat.com +donations.com +donbas.in +donboz.ru +dondiegosrestaurant.com +dondom.ru +doneck24.ru +donemail.ru +donevest.ru +donew.fun +donew.host +donew.space +donew.website +donewithacne.com +dongen.info +dongeng.site +dongfangzx.com +donghogiare.org +dongisi.ga +dongisi.gq +dongisi.tk +dongphuc.site +dongphucaokhoac.net +dongphucaophong.org +dongphucbongda.net +dongphuchocsinh.org +dongphucnhahang.net +dongphucnhom.net +dongphucsomi.com +dongqing365.com +dongru.top +dongrup.com +dongyoubaohujh.xyz +doni42.com +donikolupr.cf +donkers.icu +donkey-out.xyz +donkey.com +donlg.top +donmail.mooo.com +donmaill.com +donn6.xyz +donnaappell.com +donnlasher.com +donnyandmarietour.com +donnyboypony.com +donnybrook-fair-d4.com +donnystiefel.com +donoboz.ru +donor-penza.ru +donorfr.xyz +donorfro.xyz +donorguid.site +donorthcoworking.org +donortigh.us +donorto.icu +donorwide.xyz +donot-reply.com +donotconvert.com +donotpetme.com +dons.com +donsalvatorepalmademallorca.com +donskayasoch.ru +dontblameyourears.com +dontcallmeanartist.com +dontgocuba.com +dontmesswithmypet.org +dontrackme.com +dontreg.com +dontrushhub.info +dontsendmespam.de +donutkidsclub.hk +dony24.shop +dooboop.com +doodlepop.ru +doodooexpress.com +dooel.info +dooglecn.com +doohee.email +dooi.email +doolanlawoffice.com +doom-metal.cd +doom.com.pl +doom898.xyz +doomein.com +doommail.com +doomsdayapocalypse.com +doomsdayprep.org +doonung2u.com +doonungonlinefree.com +doorandwindowrepairs.com +doorbloq.biz +doorbloq.com +doorgifted.com +doorlocker.shop +doorprice.icu +doorsteploansfast24h7.co.uk +doory.sk +doospage.host +doostanmobl.com +dopabiotics.com +dopepedalers.com +dopestkicks.ru +dophs.stream +dopisivanje.in.rs +dopp.me +doppelgengler.com +dopsy.ru +doquier.tk +dor4.ru +dorablabsoomatic.com +dorada.ga +doradztwo-pracy.com +doranscale.com +dorcasinofeet.ru +dorelliphotographie.com +doriane.website +dorivaimoveis.site +dorjq.buzz +dorkalicious.co.uk +dormokis.cf +dormokis.ga +dormokis.ml +dormokis.tk +dormontazh.ru +dorne.ml +dorneycourt.com +doroobo-bet.ru +dorotheastuart.com +dorrkupong.com +dorrkupongen.com +dorywalski.pl +dosait.ru +doscobal.com +dosirakm.com +dosmallishthings.com +dostatniapraca.pl +dostavim1.xyz +dostavimpokazani.ru +dostavka-24-7.ru +dostavka-avito.site +dostavkakazani.ru +dostavkapokazani.ru +dostavkapoz.ru +dostupnaya-ipoteka.ru +dosug-kolomna.ru +dosug-nevinnomyssk.ru +dosugryazan1.com +dosusra.cf +dosusra.ga +dosusra.gq +dosusra.ml +dosusra.tk +dot-coin.com +dot-mail.top +dot-ml.ml +dot-ml.tk +dota-leader.fun +dota2-bets1.com +dota2-bets2.com +dota2-tapedjtape.info +dota2bets.net +dota2bettingsites.com +dota2betz3.com +dotabet105.com +dotabet107.com +dotabet109.com +dotabet110.com +dotabet112.com +dotabet113.com +dotabet114.com +dotabet115.com +dotabet116.com +dotabet117.com +dotabet118.com +dotabet119.com +dotabet120.com +dotabet123.com +dotabet126.com +dotabet127.com +dotabet128.com +dotabet129.com +dotabet130.com +dotabet131.com +dotabet132.com +dotabet134.com +dotabet136.com +dotabet137.com +dotabet138.com +dotabet140.com +dotabet141.com +dotabet142.com +dotabet143.com +dotabet144.com +dotabet145.com +dotabet146.com +dotabet147.com +dotabet148.com +dotabet149.com +dotabet150.com +dotanews.ru +dotastat.ru +dotbit.one +dotcmscheck.xyz +dotcompliance.online +dotcrown.com +dotfixed.com +dothisforyourself.info +dotland.net +dotlethu.cf +dotlethu.gq +dotlethu.ml +dotlethu.tk +dotlvay3bkdlvlax2da.cf +dotlvay3bkdlvlax2da.ga +dotlvay3bkdlvlax2da.gq +dotlvay3bkdlvlax2da.ml +dotlvay3bkdlvlax2da.tk +dotmail.cf +dotman.de +dotmsg.com +dotnetnukeskins.net +dotph.website +dotproperty.asia +dots.market +dotslashrage.com +dotspe.info +dottyproducts.com +dottyprojects.com +doublebellybuster.com +doublecommas.com +doublemail.de +doublemoda.com +doublescanner.com +doubletale.com +doublewave.ru +doubleyourappointments.com +doubtfirethemusical.com +douchelounge.com +doudoune-ralphlauren.com +doudounecanadagoosesoldesfrance.com +doudouneemonclermagasinfr.com +doudounemoncledoudounefr.com +doudounemoncleenligne2012.com +doudounemoncler.com +doudounemonclerbouituque.com +doudounemonclerdoudounefemmepascher.com +doudounemonclerdoudounefrance.com +doudounemonclerdoudounespascher.com +doudounemonclerenlignepascherfra.com +doudounemonclerfemmefr.com +doudounemonclermagasinenfrance.com +doudounemonclerpascherfra.com +doudounemonclerrpaschera.com +doudounemonclerrpaschera1.com +doudounemonclersiteofficielfrance.com +doudounepaschermonclerpascher1.com +doudounesmonclerfemmepascherfrance.com +doudounesmonclerhommefr.com +doudounesmonclerrpascher.com +doudounmonclefrance.com +doudounmonclepascher1.com +doughblogger.com +doughmaine.xyz +doughnuts21.ru +doughty-australia.com +doughvestor.com +dougkrever.com +douglasnazareth.com +douithardt.xyz +doulabee.com +doulocracy.site +doumao993.com +dourdneis.gr +dourvhna.space +dousmakos.com +douyin888.xyz +dov86hacn9vxau.ga +dov86hacn9vxau.ml +dov86hacn9vxau.tk +dovequando.info +dovereducationlink.com +doverone.ru +dovizapi.xyz +dovqz6.host +dovusoyun.com +dowesync.com +dowlex.co.uk +dowloadplus.xyz +down888.club +downersgroveattorneys.com +downgentai.cf +downgentai.ga +downgentai.gq +downgentai.ml +downgentai.tk +downhillbillies.org +downlayer.com +download-master.net +download-software.biz +download-warez.com +downloadarea.net +downloadbaixarpdf.com +downloadbase.info +downloadclub.ru +downloadeguide.mywire.org +downloadfree.space +downloadmortgage.com +downloadmoviefilm.net +downloadplaystore.app +downloadplaystore.org +downloadsecurecloud.com +downloadthebook.site +downloadvideo.biz +downloadvideotiktok.net +downlowd.com +downportal.tk +downpoza.cf +downpoza.ga +downpoza.gq +downpoza.ml +downpoza.tk +downquibbledung.website +downsizingandestates.com +downsmail.bid +downtonabbeykitchen.com +downtownabilene.com +downtownairportlimo.com +downtownanchorage.com +downtownaurora.com +downtownbeaumont.com +downtowncalhoun.com +downtowncoldwater.com +downtownfremont.com +downtowngarland.com +downtownhomeboston.com +downtownisthe.place +downtownpoint.org +downtowntulsaoffice.com +dowohiho.ostrowiec.pl +dowsaajung.cf +dowsaajung.gq +dowsaajung.ml +dowsaajung.tk +doxamall.site +doxcity.net +doxeo.cloud +doxeo.global +doxeo.info +doxeo.live +doxeo.mobi +doxeo.net +doxeo.org +doxod-v-seti.ru +doxsale.top +doxy124.com +doxy77.com +doxycycline247.video +doy.kr +doyouneedrenovation.id +doyouneedrenovation.net +doyousonder.com +doyoutravel.net +doyuoutlets.site +dozarb.agency +dozarb.online +dozarb.org +dozarb.space +dozarb.store +dozarb.tech +dozen-spins1.ru +dozencommonaviationattrac.me +dozenspins-cas.ru +dozenspinsonline.ru +dozvon-spb.ru +dp76.com +dp84vl63fg.cf +dp84vl63fg.ga +dp84vl63fg.gq +dp84vl63fg.ml +dp84vl63fg.tk +dpanel.site +dpapa.ooo +dpasanhall.host +dpaydpal.shop +dpbbo5bdvmxnyznsnq.ga +dpbbo5bdvmxnyznsnq.ml +dpbbo5bdvmxnyznsnq.tk +dpcitz.com +dpcm.cf +dpcm.ga +dpcm.gq +dpcm.ml +dpdf.site +dpfbilling.com +dpgwzwy.site +dpics.fun +dplmek.ga +dpluse.net +dpm5g8.us +dpmchqfi.shop +dpmcinternational.com +dpmwybaff.shop +dpnf.us +dpnwoyov.shop +dpokesheat.cf +dpokesheat.ga +dpokesheat.gq +dpokesheat.ml +dpokesheat.tk +dport.fun +dport.site +dpp7q4941.pl +dpriders.com +dprinceton.edu +dprots.com +dps-sandpoint.com +dpsrs.org +dpttso8dag0.cf +dpttso8dag0.ga +dpttso8dag0.gq +dpttso8dag0.ml +dpttso8dag0.tk +dpwlvktkq.pl +dpworld.net +dpxqczknda.pl +dpzrzj.icu +dq4yvh.com +dqajb1.site +dqb9zj.info +dqchx.com +dqhs.site +dqkerui.com +dqkjt6.com +dqnwara.com +dqpw7gdmaux1u4t.cf +dqpw7gdmaux1u4t.ga +dqpw7gdmaux1u4t.gq +dqpw7gdmaux1u4t.ml +dqpw7gdmaux1u4t.tk +dqtpwv.us +dqw58.space +dr-hospitals.ru +dr-jieju.com +dr-mail.net +dr-nasir-alzahrani.org +dr-shopping.info +dr-sinan-goker.com +dr0m.ru +dr0pb0x.ga +dr5.xyz +dr69.site +dr7.xyz +dracaras.cf +dracaras.ga +dracaras.gq +dracaras.ml +dracaras.tk +dracc.me +draconites.xyz +draduationdresses.com +drafpalo.cf +drafpalo.ga +drafpalo.ml +drafpalo.tk +draftanimals.ru +draftfirs.icu +draftfosterfloat.site +drafthabi.xyz +draftsheetpro.com +drag1metal.ru +drag2upapp.com +dragaknee.com +dragao31.com +dragcok2.cf +dragcok2.gq +dragcok2.ml +dragcok2.tk +dragfalsbag.cf +dragfalsbag.ga +dragfalsbag.gq +dragfalsbag.ml +dragome.fun +dragon-palace-glanmire.com +dragon-pool.com +dragon-pool.net +dragonads.net +dragonballxenoversecrack.com +dragonboatchinese.com +dragoncapital.us +dragoncitydanang.com +dragonfly.africa +dragonflydanlier.com +dragonflyna.com +dragonflypure.com +dragonmanialegendshacks.website +dragonprana.com +dragons-spirit.org +dragonsborn.com +dragonslair.site +dragontigerseal-my.com +dragwave.us +drainage-birmingham.net +drainservices.com +drake.casino +drakeslansdowne.com +drakorfor.me +draktar.online +dralselahi.com +drama.tw +drama2tv.com +dramabt.com +dramashow.ru +dramatization758is.online +dramdesra.ga +dramdesra.gq +dramdesra.ml +dramdesra.tk +drameral.cf +drameral.gq +drameral.ml +drameral.tk +dramor.com +drangeladraughon.com +dranitajohnson.com +draperacupuncture.com +drar.de +draussenzuhause.me +draviero.info +drawify.art +drawing-new.ru +drawinginfo.ru +drawingmoose.com +drawingwithjeffrey.com +drawme.site +drawmeans.com +drawmedia.org +drawquest.net +drazen.dev +drbenson.net +drblog.com +drcanadasa.info +drcoppersmith.com +drcresseveurreed.com +drcuh.live +drcynthiah.com +drdeals.site +drdr.email +drdrb.com +drdrb.net +drdreheadphone.biz +drdreoutletstores.co.uk +dream417.xyz +dreamact.com +dreamaror.ga +dreamaror.gq +dreamaror.ml +dreambangla.com +dreambooker.ru +dreambuket.ru +dreamcapewebsites.com +dreamcatcher.email +dreamed776ll.online +dreamerbusinesssolutions.com +dreamersglobal.com +dreamfin.ru +dreamfishfoundation.org +dreamfortheworld.com +dreamfortuna.com +dreamgoods.biz +dreamhacker.xyz +dreamhomes4u.net +dreamhostcp.info +dreamingcleaning.com +dreamingoffoofighters.com +dreamingtrack.com +dreamleaguesoccer2016.gq +dreamlover.dating +dreamoz.info +dreampian.xyz +dreams-postely.ru +dreamsale.info +dreamsareforliving.com +dreamsat.ru +dreamscape.marketing +dreamscapemartech.com +dreamscapemobile.com +dreamscapeprogrammaticadvertising.com +dreamscapetraffic.com +dreamsindex.com +dreamsink.com +dreamsites.xyz +dreamstar1.com +dreamstosucceed.com +dreamswithhope.com +dreamvie.com +dreamvotes.com +dreamweddingplanning.com +dreamyfinance.ru +dreamyoursoulhome.com +drechsler.digital +dred.ru +dredwardgoldin.com +dreebies.com +dregvide.cf +dregvide.ga +dregvide.ml +dregvide.tk +drehstuhl.discount +dremixd.com +drempleo.com +drentfotografengroep.online +drepinym.cf +drepinym.ga +drepinym.ml +drepinym.tk +dreric-es.com +dress.cd +dress9x.com +dresscinderella.com +dresscomeon.online +dresselegant.net +dressesbubble.com +dressesbubble.net +dressescelebrity.net +dressesflower.com +dressesflower.net +dressesgrecian.com +dressesgrecian.net +dresseshappy.com +dresseshappy.net +dressesmodern.com +dressesmodern.net +dressesnoble.com +dressesnoble.net +dressesromantic.com +dressesromantic.net +dressesunusual.com +dressesunusual.net +dressfactories.com +dressfess.com +dressmail.com +dresspo.icu +dresssmall.com +dressswholesalestores.info +dressunawaretruth.website +dressupsummer.com +dressyouressence.com +dretety.ru +drevo.si +drevobrus.ru +drevorouz.ru +drewna24.pl +drewnianachata.com.pl +drewry.info +drexenterprises.com +dreylefilsdepute.cf +drf.email +drfarukerzengin.com +drfindia.com +drg.email +drgokhanakturk.com +drgpay.xyz +drgpayir.xyz +drgrinesdds.com +drharini.com +drharrymlohmeyer.info +drhassanidds.com +driade.website +driancorp.xyz +driankorp.com +dricca.com +drid1gs.com +driedflowertea.com +driems.org +driftcabo.com +driftcasino-in.ru +driftcasino.design +driftrig.xyz +driftsna.host +driftwr.icu +drigez.com +drill8ing.com +drillbitcrypto.info +drillbitcrypto.net +drillroad.ru +drimnaghtakeaway.com +drinala.com +drinkbride.com +drinkchaser.com +drinkcola.ga +drinkdrankdrunkdeck.com +drinkhealthywaters.biz +drinkingcoffee.info +drinkquot.xyz +drinktruvi.com +dripgit.app +dripovin.cf +dripovin.ga +dripovin.ml +dripovin.tk +drisc.org +drishvod.ru +dristypat.com +drive-v.com +drivecompanies.com +drivecruzenow.com +drivedisputeflood.site +driveguar.email +drivehublernissan.com +driveleave.email +drivelegalnowga.com +drivenbyjam.site +drivenyvss.space +drivepolitely.com +driverakademi.online +driverbooster-soft.ru +driverimprove.com +driversgood.ru +driverstorage-bokaxude.tk +drivesotp7.com +drivetagdev.com +drivewayrepairburbank.info +drivingcars.world +drivingjobsinindiana.com +drixmail.info +drizzers.life +drizzersturkiye.life +drjeffreygalvin.com +drjocept.com +drjoelangel.com +drjohnbodycombe.com +drkartinki.ru +drkenfreedmanblog.com +drkenfreedmanblog.xyz +drkenlaw.net +drkorpi.com +drlexus.com +drlucky.xyz +drmail.net +drmail.pw +drmaryannscaccia.com +drmohansdiabetes.net +drmohansdiabetes.org +drmonetas.info +drnatashafinlay.com +drobbase.xyz +drobosucks.info +drobosucks.net +drobosucks.org +drocun.net +drocun.org +drogistxxl.com +droid3.net +droidcloud.mobi +droide.ru +droidemail.projectmy.in +droider.name +droidmill.com +droits-de-revente.site +drolembu.cf +drolembu.gq +drolembu.ml +drolembu.tk +drolwestces.ga +drolwestces.gq +drolwestces.ml +drolzucby.cf +drolzucby.ga +drolzucby.gq +drolzucby.ml +drolzucby.tk +dromancehu.com +dron.mooo.com +drone-waiver.com +dronedeals.trade +dronehire.org +droneleaves.ru +dronemeuphigh.com +dronemini.rest +dronerealestatevideo.net +dronespot.net +dronesshop.futbol +dronesshop.live +dronolater.com +dronplace.info +dronstroi16.ru +dronuregemen.com +droolingfanboy.de +droomhuisje.com +drop-max.info +drop.ekholm.org +dropcake.de +dropclubamz.com +dropcode.ru +dropcramponpencil.ru +dropcramponpig.ru +dropd.ru +dropdetecter.com +drope.ml +dropfinerball.ru +dropfinercat.ru +dropfinerdirt.ru +dropfinerhat.ru +dropfinermeat.ru +dropfinermen.ru +dropfinerpig.ru +dropfinerriver.ru +dropfresh.net +dropjar.com +droplar.com +droplister.com +dropmail.cc +dropmail.cf +dropmail.ga +dropmail.gq +dropmail.me +dropmail.ml +dropmail.tk +dropmire.org +dropopttrends.site +droppingsize.com +dropshipbikinis.com +dropshipguitars.com +dropshipjackets.com +dropshiplego.com +dropshipping.bio +dropshipping.click +dropshipping.gratis +dropshippingrich.com +dropshipwallart.com +dropstart.site +droptechnologies.info +dropthespot.com +droptools.store +drorevsm.com +drottleworld.com +drovarouz.ru +droverpzq.com +drovharsubs.cf +drovharsubs.ga +drovharsubs.gq +drovharsubs.ml +drovharsubs.tk +drovi.cf +drovi.ga +drovi.gq +drovi.ml +drovi.tk +drovyanik.ru +drowcash.ru +drowdrow.ru +drowfast.ru +drowfox.ru +drowfraaaank.ru +drowizi.ru +drowlink.ru +drowlist.ru +droworne.cf +droworne.ga +droworne.ml +drowpin.ru +drowpups.ru +drowtitle.ru +drpangolin.com +drpphreviews.com +drrodos.info +drshope.website +drsiebelacademy.com +drsiriusa.info +drt8c.us +drtgaming.com +drthedf.org +drthst4wsw.tk +drublowjob20138.cx.cc +druckpatronenshop.de +druckwerk.info +drueckglueck.se +drugca.com +drugnorx.com +drugordr.com +drugsellr.com +drugvvokrug.ru +druhbeltsireland.com +drukair.ph +drukarniarecept.pl +drumimul.cf +drumimul.ga +drumimul.gq +drumimul.ml +drumimul.tk +druniskaa.ga +druniskaa.gq +druniskaa.ml +druniskaa.tk +drunix.site +drunkmunki.stream +drunolgret.cf +drunolgret.ga +drunolgret.gq +drunolgret.tk +drupaladdons.brainhard.net +drupalcamponline.net +drupalek.pl +drupaler.org +drupalmails.com +drupalnc.org +drushmake.org +drusigpren.cf +drusigpren.ga +drusigpren.gq +drusigpren.ml +drusigpren.tk +druz.cf +drvcognito.com +drvictorbellera.com.ve +drvideosreport.com +drvmohan.net +drwo.de +drwunderlich.com +drxdvdn.pl +drxepingcosmeticsurgery.com +dryfrosty.ru +drygulch.xyz +drylonganfruit.com +dryly962kt.online +drymop.us +drymops.biz +drymops.org +drymops.us +drymulov.cf +drymulov.ga +drymulov.ml +drynic.com +dryoneone.com +dryriverboys.com +drzibners.com +drzwi.edu +drzwi.turek.pl +ds-3.cf +ds-3.ga +ds-3.gq +ds-3.ml +ds-3.tk +ds24.media +ds8vmg-mail.xyz +dsad.de +dsaevents.com +dsafsa.ch +dsajdhjgbgf.info +dsapoponarfag.com +dsas.de +dsatpv.ru +dsatrack.ru +dscc.net +dsda.de +dsdadas.website +dsecurelyx.com +dsejfbh.com +dsepimis.ga +dsepimis.gq +dsepimis.ml +dserv.site +dsewas.online +dsfdeemail.com +dsfgasdewq.com +dsfgbb.com +dsfgdsgmail.com +dsfgdsgmail.net +dsfgerqwexx.com +dsfkasdmnre.space +dsgawerqw.com +dsgmsystems.com +dsgs.com +dsgvo.ru +dshidshe.shop +dshop.se +dshqughcoin9nazl.cf +dshqughcoin9nazl.ga +dshqughcoin9nazl.gq +dshqughcoin9nazl.ml +dshqughcoin9nazl.tk +dsiay.com +dsjoss.com +dskin.com +dskkolovrat.ru +dsleeping09.com +dslrclub.ru +dsng8742g85fwent83g485dsfn8245.com +dspmok.us +dspwebservices.com +dsresearchins.org +dsrkjj.us +dssvet.ru +dstchicago.com +dstefaniak.pl +dsvgfdsfss.tk +dsweetuni.info +dszg2aot8s3c.cf +dszg2aot8s3c.ga +dszg2aot8s3c.gq +dszg2aot8s3c.ml +dszg2aot8s3c.tk +dt2g5427.com +dt2p9.site +dt3456346734.ga +dt35428.com +dt8037.com +dtb.news +dtbgllc.com +dtbooks.site +dtby888.com +dtcleanertab.site +dtcuawg6h0fmilxbq.ml +dtcuawg6h0fmilxbq.tk +dtdh.xyz +dtdns.us +dte3fseuxm9bj4oz0n.cf +dte3fseuxm9bj4oz0n.ga +dte3fseuxm9bj4oz0n.gq +dte3fseuxm9bj4oz0n.ml +dte3fseuxm9bj4oz0n.tk +dteesud.com +dtfnow.fun +dtfx.buzz +dtfyes.site +dtgo.app +dthetepr.xyz +dthlxnt5qdshyikvly.cf +dthlxnt5qdshyikvly.ga +dthlxnt5qdshyikvly.gq +dthlxnt5qdshyikvly.ml +dthlxnt5qdshyikvly.tk +dtkrcs.us +dtkursk.ru +dtlabs.org +dtlx.us +dtmricambi.com +dtools.info +dtrendsolution.com +dtrspypkxaso.cf +dtrspypkxaso.ga +dtrspypkxaso.gq +dtrspypkxaso.ml +dtrspypkxaso.tk +dtspf8pbtlm4.cf +dtspf8pbtlm4.ga +dtspf8pbtlm4.gq +dtspf8pbtlm4.ml +dtspf8pbtlm4.tk +dttt9egmi7bveq58bi.cf +dttt9egmi7bveq58bi.ga +dttt9egmi7bveq58bi.gq +dttt9egmi7bveq58bi.ml +dttt9egmi7bveq58bi.tk +dtv42wlb76cgz.cf +dtv42wlb76cgz.ga +dtv42wlb76cgz.gq +dtv42wlb76cgz.ml +dtv42wlb76cgz.tk +dtv7600teyp.xyz +dtvcloud.net +dtwihk.us +dtyler.rocks +duacgel.info +dualajans.xyz +dualpouchunderwear.com +dualscreenplayer.com +duam.net +duanedegler.net +duanedegler.org +duanehar.pw +duanlaimiangalaxy.com +duanxian8.com +dubai22.com +dubai33.com +dubaicurrencyexchange.com +dubaiexperiment.com +dubaigifts.website +dubainaturalsoap.com +dubbunnies.com +dubee.xyz +dubidze.website +dubilowski.com +dubinbikepolo.com +dublin-kozharu.ru +dublinbirds.com +dubna.today +dubo.email +duboyangjiage.com +dubstepthis.com +dubzone.com +duck2.club +duckbao.com +duckcover.com +duckerfiveone.online +duckling.us +ducklingapp.com +ducklingapp.net +ducklingapp.us +ducklington.org +duckmail.cf +duckreliablecold.website +ducmaca.ga +ducmaca.tk +ducquan91.tk +ducquangialai.com +ducruet.it +ductdota.ga +ductdota.ml +ductdota.tk +ducttape.art +ducutuan.cn +ducvdante.pl +dudddede.cf +dudddede.ga +dudddede.gq +dudddede.tk +dudecloo.tk +dudetech.com +dudinkonstantin.ru +dudleymail.bid +dudmail.com +duffy.cd +dufu.site +duhocnhatban.org +dui-attorney-news.com +duivavlb.pl +duj25.space +dujgpddc.shop +dujuke.icu +duk33.com +dukatikas.tk +dukcasinosoda.ru +dukecitymedia.com +dukedish.com +dukesdeli.biz +dulapchiy.info +dulcefunfreakybabemia.com +dulei.ml +dullynwu.info +duluaqpunyateman.com +dulycoded.com +dumail.com +dumankayamodern.com +dumantv.com +dumbdroid.info +dumbledore.cf +dumbledore.ga +dumbledore.gq +dumbledore.ml +dumbrepublican.info +dumena.com +dumlipa.cf +dumlipa.ga +dumlipa.tk +dumlupinarteknokent.online +dumlupinarteknokent.xyz +dummie.com +dumoac.net +dump-email.info +dumpandjunk.com +dumpmail.de +dumprestaurantpressure.website +dumpsterfire.space +dumpsters-ks.com +dumpyemail.com +dun985.com +dunakeyandklattpc.com +duncancorp.usa.cc +duncanmassink.online +dundeerootcanals.com +dundeeusedcars.co.uk +dunderbookie.com +dundermifflin.site +dundersport.net +dundersportsbook.com +dundersportwetten.com +dundo.tk +dungeon-mini.com +dungzvip.best +duniacewek.net +duniawirosableng.com +duniyadeals.com +dunkathon.com +dunmauwel.ga +dunmauwel.gq +dunmauwel.ml +dunmauwel.tk +dunprx9u4gv1ji9.xyz +dunyacasino.bet +dunyacasino.net +duo-alta.com +duocaidou.xyz +duocpham.website +duocphamchinhhang.online +duodana.com +duodeka.academy +duodeo.xyz +duoduo.cafe +duogasm.club +duotravel.ru +dupaci.com +dupaemailk.com.uk +dupazsau2f.cf +dupazsau2f.ga +dupazsau2f.gq +dupazsau2f.ml +dupazsau2f.tk +duplipho.cf +duplipho.ga +duplipho.ml +duplipho.tk +dupontdevelopment.com +dupontmails.com +duqhkdg.site +duqofuo.ru +duracelliran.com +duran.life +durandinterstellar.com +durex-team.website +durexguy.com +durginelectricsolutions.com +durhamheroinrehab.com +durhamopiaterehab.com +duroroot.com +durosoft.net +durpdv.site +durttime.com +durukurdoglu.com +durwe.website +dusdegirmeni.com +duskmail.com +duskst.one +dusmvudq.tech +dusnedesigns.ml +dusterpickup.ru +dustfreetileremovalofflorida.org +dustinandsharon.com +dustinpitcher.com +dustinplains.buzz +dustreaming.host +dustreaming.info +dustreaming.live +dustreaming.pro +dustreaming.website +dustreaming.xyz +duta303.net +duta303.org +dutch-central.online +dutchcabinhouses.com +dutchconnie.com +dutchdevs.com +dutchfemales.info +dutchmail.com +dutchmeadows.com +dutchpoldering.org +dutchselected.online +dutchvinyl.com +dutco.org +duthuyenhoanglong.com +dutiesu0.com +dutybux.info +duukies-beachsocks.ru +duvaoutlet.site +duvazu.com +duvmont.com +duwy.site +duxberg.net +duximall.site +duybuy.com +duzceekran.xyz +duzcefenlisesi.xyz +duzcevitrin.xyz +duzybillboard.pl +dv24.store +dv6w2z28obi.pl +dvakansiisochi20139.cx.cc +dvd.dns-cloud.net +dvd.dnsabr.com +dvd315.xyz +dvdallnews.com +dvdcloset.net +dvdexperts.info +dvdjapanesehome.com +dvdkrnbooling.com +dvdnewshome.com +dvdnewsonline.com +dvdrezensionen.com +dvds.cd +dvdsetsale.biz +dvdxpress.biz +dvej3i.us +dveri-okna-vorota.ru +dveri5.ru +dverikupit96.ru +dverishpon.ru +dvery35.ru +dvfdsigni.com +dvi-hdmi.net +dvigatelsaita.ru +dvin4u.com +dviuvbmda.pl +dvlotterygreencard.com +dvmap.ru +dvojnayradost.ru +dvrupdates.com +dvs18.ru +dvsdg34t6ewt.ga +dvspitfuh434.cf +dvspitfuh434.ga +dvspitfuh434.gq +dvspitfuh434.ml +dvspitfuh434.tk +dvsplus18.ru +dvstolyarchuk.ru +dvsusa.ru +dvtr4i.us +dvvxwaub.shop +dvx.dnsabr.com +dvyqnf.us +dvzmd.zapto.org +dw.now.im +dw2fmp.us +dw8u7.buzz +dwa.wiadomosc.pisz.pl +dwang8.org +dwango.cf +dwango.ga +dwango.gq +dwango.ml +dwango.tk +dwboya.org +dwdpoisk.info +dweezlemail.crabdance.com +dweldimang.cf +dweldimang.ga +dweldimang.gq +dweldimang.ml +dweldimang.tk +dwfguqpsf.ga +dwikuyz.com +dwipalinggantengyanglainlewat.cf +dwipalinggantengyanglainlewat.ga +dwipalinggantengyanglainlewat.gq +dwipalinggantengyanglainlewat.ml +dwipalinggantengyanglainlewat.tk +dwj455.com +dwj773.com +dwj774.com +dwj775.com +dwj855.com +dwj883.com +dwj884.com +dwj886.com +dwj955.com +dwj990.com +dwj992.com +dwj993.com +dwj994.com +dwjbtr0403bzri7.xyz +dwn2ubltpov.cf +dwn2ubltpov.ga +dwn2ubltpov.gq +dwn2ubltpov.ml +dwn2ubltpov.tk +dwqmgi.rest +dwqsrp.info +dwse.edu.pl +dwsfhe.us +dwsongs.net +dwswd8ufd2tfscu.cf +dwswd8ufd2tfscu.ga +dwswd8ufd2tfscu.gq +dwswd8ufd2tfscu.ml +dwswd8ufd2tfscu.tk +dwsywm.us +dwt-damenwaeschetraeger.org +dwukwiat4.pl +dwukwiat5.pl +dwukwiat6.pl +dwutuemzudvcb.cf +dwutuemzudvcb.ga +dwutuemzudvcb.gq +dwutuemzudvcb.ml +dwutuemzudvcb.tk +dwwen.com +dwxfle.us +dwyj.com +dx.abuser.eu +dx.allowed.org +dx.awiki.org +dx.ez.lv +dx.sly.io +dx01.space +dx03.space +dx05.space +dx08.space +dx10.space +dx11.space +dx17.space +dx6600.com +dx8804.com +dx8805.com +dx8808.com +dx8809.com +dx8tkk.com +dxdblog.com +dxitv.com +dxk6tw.com +dxlenterprises.net +dxmk148pvn.cf +dxmk148pvn.ga +dxmk148pvn.gq +dxmk148pvn.ml +dxmk148pvn.tk +dxulg.live +dy138t.com +dy138t.net +dy187.info +dy190.info +dy191.info +dy3033.com +dy7fpcmwck.cf +dy7fpcmwck.ga +dy7fpcmwck.gq +dy7fpcmwck.ml +dy7fpcmwck.tk +dyajer-alaod.com +dyca4d.us +dyceroprojects.com +dyerif.com +dyfealu.cf +dyfealu.ga +dyfealu.gq +dyfealu.ml +dyfealu.tk +dyfxosaj.shop +dyggo.com +dygr9y.host +dyinglanguage.com +dyinglanguage.net +dyj333.app +dyjfp0.us +dykcj4.info +dylanharris.buzz +dylans.email +dylansummers.buzz +dylib.dev +dymnawynos.pl +dymuitmwq.shop +dynabird.com +dynafuze-malenow.com +dynafuzemaletoday.com +dynafuzeproductsnow.com +dynainbox.com +dynamic-semantics.com +dynamicdiet.com +dynamicdietplan.com +dynamicsmoneynews.com +dynamiteendurance.coach +dynamitetype.nyc +dynaro.online +dynastyalliancellc.com +dynastyantique.com +dynlitypy.monster +dynofusion-developments.com +dynqtu.site +dynu.net +dyre.site +dyru.site +dysadapt.org +dysjzp09.com +dyskretna-pomoc.pl +dyspdh.xyz +dyspharnprep.ga +dyspharnprep.gq +dyspharnprep.tk +dyspnea659fk.online +dystopianamerica.com +dyuvpl.us +dywg0e.us +dyx9th0o1t5f.cf +dyx9th0o1t5f.ga +dyx9th0o1t5f.gq +dyx9th0o1t5f.ml +dyx9th0o1t5f.tk +dyybartti.cf +dyybartti.gq +dyybartti.ml +dyybartti.tk +dyynamic.net +dz-bac.com +dz-geek.org +dz-madwana-tech.com +dz.usto.in +dz0371.com +dz17.net +dz4ahrt79.pl +dz57taerst4574.ga +dzaf.net +dzagi.site +dzalaev-advokat.ru +dzank.cn +dzavnvqr.shop +dzddouvgi.shop +dzeucq.com +dzewa6nnvt9fte.cf +dzewa6nnvt9fte.ga +dzewa6nnvt9fte.gq +dzewa6nnvt9fte.ml +dzewa6nnvt9fte.tk +dzfphcn47xg.ga +dzfphcn47xg.gq +dzfphcn47xg.ml +dzfphcn47xg.tk +dzgiftcards.com +dzhesopr.ru +dzhinsy-platja.info +dziecio-land.pl +dziekan1.pl +dziekan2.pl +dziekan3.pl +dziekan4.pl +dziekan5.pl +dziekan6.pl +dziekan7.pl +dziesiec.akika.pl +dzimbabwegq.com +dzinerchic.com +dzinesbylace.org +dzinoy58w12.ga +dzinoy58w12.gq +dzinoy58w12.ml +dzinoy58w12.tk +dzip.site +dzjrys.icu +dznf.net +dzprosat.com +dzsyr.com +dzubn.ru +dzw.fr +dzw6np36h84j05p.xyz +dzxsx.com +dzxtvl.com +e-aidatdestektech.org +e-apteka24.ru +e-b-s.pp.ua +e-besik.com +e-bhpkursy.pl +e-cig36.ru +e-cigarette-x.com +e-cigreviews.com +e-clicks.online +e-clip.info +e-commex.ru +e-comsupport.com +e-drapaki.eu +e-factorystyle.pl +e-filme.net +e-globe.xyz +e-hamilegiyim.com +e-horoskopdzienny.pl +e-hospitals.com +e-jaroslawiec.pl +e-kpd.ru +e-mail-amazon.cf +e-mail.cafe +e-mail.com +e-mail.comx.cf +e-mail.igg.biz +e-mail.net +e-mail.org +e-mail.webcity.ml +e-mail365.eu +e-mailbox.comx.cf +e-mailbox.ga +e-mali.ml +e-marketstore.ru +e-mbtshoes.com +e-medicum.com +e-monstro.ru +e-mule.cf +e-mule.ga +e-mule.gq +e-mule.ml +e-mule.tk +e-news.org +e-nom.nu +e-nrg.us +e-nsk.ru +e-numizmatyka.pl +e-pay.icu +e-pierdoly.pl +e-poradnikowo24.pl +e-postkasten.com +e-postkasten.de +e-postkasten.eu +e-postkasten.info +e-postman.host +e-prima.com.pl +e-radio.africa +e-radio.app +e-s-m.ru +e-shoponline.info +e-snab.ru +e-swieradow.pl +e-swojswiat.pl +e-taksa.com +e-tikhvin.ru +e-tomarigi.com +e-tongarashi.com +e-tongshop.com +e-torrent.ru +e-trader.live +e-trend.pl +e-vents2009.info +e-zlunchbox.com +e.amav.ro +e.arno.fi +e.benlotus.com +e.bgsaddrmwn.me +e.blogspam.ro +e.discard-email.cf +e.milavitsaromania.ro +e.nodie.cc +e.polosburberry.com +e.seoestore.us +e.shapoo.ch +e.socialcampaigns.org +e.wupics.com +e04ajj.site +e08yw.site +e0iulu.us +e0jak.us +e0yk-mail.ml +e10digital.com +e13100d7e234b6.noip.me +e164-deos.net +e164-deos.org +e168.online +e16cs.space +e1775.com +e17gx.com +e1dn7v.us +e1u.xyz +e1y4anp6d5kikv.cf +e1y4anp6d5kikv.ga +e1y4anp6d5kikv.gq +e1y4anp6d5kikv.ml +e1y4anp6d5kikv.tk +e27dxbe4.xyz +e27wo.site +e283c52d.club +e2e4d7d5.ru +e2ento.us +e2estudios.com +e2m.store +e2n11lm1.buzz +e2qoitlrzw6yqg.cf +e2qoitlrzw6yqg.ga +e2qoitlrzw6yqg.gq +e2qoitlrzw6yqg.ml +e2qoitlrzw6yqg.tk +e2trg8d4.priv.pl +e3011.club +e30d.xyz +e32b66b7.xyz +e33ta.com +e36talk.com +e3b.org +e3z.de +e423z5ffcc5o94t.xyz +e425lr.live +e44db.club +e46me.space +e4febx.us +e4i.ru +e4ivstampk.com +e4t5exw6aauecg.ga +e4t5exw6aauecg.ml +e4t5exw6aauecg.tk +e4ward.com +e4wfnv7ay0hawl3rz.cf +e4wfnv7ay0hawl3rz.ga +e4wfnv7ay0hawl3rz.gq +e4wfnv7ay0hawl3rz.ml +e4wfnv7ay0hawl3rz.tk +e501eyc1m4tktem067.cf +e501eyc1m4tktem067.ga +e501eyc1m4tktem067.ml +e501eyc1m4tktem067.tk +e56r5b6r56r5b.cf +e56r5b6r56r5b.ga +e56r5b6r56r5b.gq +e56r5b6r56r5b.ml +e57.pl +e58xn.site +e5by64r56y45.cf +e5by64r56y45.ga +e5by64r56y45.gq +e5by64r56y45.ml +e5by64r56y45.tk +e5ki3ssbvt.cf +e5ki3ssbvt.ga +e5ki3ssbvt.gq +e5ki3ssbvt.ml +e5ki3ssbvt.tk +e5r6ynr5.cf +e5r6ynr5.ga +e5r6ynr5.gq +e5r6ynr5.ml +e5r6ynr5.tk +e5txqn.us +e5v7tp.pl +e5z1lhl9k7dd2bo.xyz +e66.buzz +e67dz.com +e6hq33h9o.pl +e71e.ru +e72sh.com +e73ca.xyz +e7666.com +e7ghn0.com +e7n06wz.com +e7xcfk7etkjxjnb.xyz +e82323.com +e84ywua9hxr5q.cf +e84ywua9hxr5q.ga +e84ywua9hxr5q.gq +e84ywua9hxr5q.ml +e84ywua9hxr5q.tk +e85dh.site +e88zl.space +e8999.com +e89fi5kt8tuev6nl.cf +e89fi5kt8tuev6nl.ga +e89fi5kt8tuev6nl.gq +e89fi5kt8tuev6nl.ml +e89fi5kt8tuev6nl.tk +e8dymnn9k.pl +e8g93s9zfo.com +e8ref.com +e8tzp9.us +e90.biz +e9557.com +e9561.com +e9563.com +e9568.com +e9581.com +e9586.com +e9592.com +e96xlm.stream +e9886.com +e9f4e664.club +e9jfq.info +e9khcd.host +ea7qpw.info +ea9.org +eaa620.org +eaaeus.com +eabockers.com +eaclub.bet +eads0w.us +eadskj.rest +eadvertsyst.com +eaek.cc +eafabet.com +eafrem3456ails.com +eaganapartments.com +eagermiserlyflour.site +eagledigitizing.net +eaglegroup.us +eaglehandbags.com +eagleholsters.com +eagleinbox.com +eaglelondon.net +eaglemail.top +eaglepointe.biz +eagleracingengines.com +eaglerder.com +eaglesfootballpro.com +eaglespo.xyz +eagroup.me +eahmoney.icu +eahzla.site +eail.com +eajfciwvbohrdbhyi.cf +eajfciwvbohrdbhyi.ga +eajfciwvbohrdbhyi.gq +eajfciwvbohrdbhyi.ml +eajfciwvbohrdbhyi.tk +eakga.com +eamail.com +eamarian.com +eami85nt.atm.pl +eamon.online +ean2asin.com +eanb.email +eandeanr.shop +eanok.com +eanreand.shop +eapncs.com +eaqb4.us +eaqso209ak.cf +eaqso209ak.ga +eaqso209ak.gq +eaqso209ak.ml +ear.ong +earlemcontre.site +earlev2.ga +earlev2.ml +earlev2.tk +earlunchly.com +earlybirdandtheworm.com +earlychurchlessons.com +earlytobed.com +earlyvotingstats.org +earn-now.ru +earndaily.com +earnfrom.website +earning2x.online +earningsonline2you.ru +earningsph.com +earnlink.ooo +earnosethroatcareers.com +earnripplecoin.online +earntrontokens.xyz +earnwithbtc.com +earpitchtraining.info +earth.doesntexist.org +earthbonus.host +earthdrygoods.com +earthforhealth.club +earthisours.net +earthorbit.net +earthorbit.org +earthsbestessentialoils.com +earthtod.site +earthtrekkers.net +earthtrekkers.org +earthwindandsnow.com +earthworksyar.cf +earthworksyar.ml +earzx.us +ease.cd +easemail.com +easi-piesi.org +easiestcollegestogetinto.com +easilyremovewrinkles.com +easinoschrom.tk +easm.site +easporrts.com +east-west-conference.ru +eastagusall.email +eastboundtravels.com +easternhempco.com +easternstar.website +easteuropepa.com +easthavenelderlawgroup.com +eastlansingdentists.com +eastmanww.com +eastpolknews.net +eastrivergondola.com +eastrockchiro.net +eastsideag.com +eastsidecounselingcenters.com +eastwan.net +eastwestcargo.ru +easy-apps.info +easy-deploy.com +easy-link.org +easy-magazine-offer.host +easy-mail.top +easy-trash-mail.com +easy-vdi.com +easy-winner.net +easy2ride.com +easy2tra.online +easyacord.com +easyandhardwaysout.com +easyasphi.com +easybedb.site +easybirthingsolutions.com +easyblogs.biz +easybranches.ru +easybuygos.com +easybuyol.store +easycdn.pro +easydinnerrecipes.net +easydinnerrecipes.org +easydirectory.tk +easydrop.shop +easyemail.info +easyfbcommissions.com +easyflowers.site +easyfortuna.com +easyguitarlessonsworld.com +easyico.org +easyiphoneunlock.top +easyjimmy.cz.cc +easyjiujitsu.com +easylistbuildingsecrets.com +easymail.ga +easymail.igg.biz +easymail.top +easymailing.top +easymarry.com +easymbtshoes.com +easymedgo.com +easymoney.cd +easymylife.org +easynetwork.info +easyonlinecollege.com +easyopenpay.com +easyopros6-ml.website +easypaperplanes.com +easyrecipesguide.life +easyrecipetoday.com +easyrecipezone.com +easyricecooker.com +easys.site +easyshortcut.com +easysnapfilters.com +easystabilitybetsnupp20.xyz +easysystem.cash +easytechroraima.com +easytotrip.ru +easytrashmail.com +easyustaad.com +easyweathercheck.com +easyxsnews.club +eat-drink.live +eatarkansas.com +eatbeat.com +eatdrink518.com +eaterytools.com +eatgood.site +eatinginseason.com +eatlikeahuman.com +eatlogs.com +eatlove.com +eatme69.top +eatmea2z.club +eatmea2z.top +eatreplicashop.com +eatrnet.com +eatruvi.com +eatsleepwoof.com +eatstopeatdiscount.org +eatthegarden.co.uk +eauctiontrade.com +eautofsm.com +eautoskup.net +eawm.de +eay.jp +eazedeliverynow.com +eazeemail.info +eazishop.site +eb-dk.biz +eb1ey.site +eb2cda7c.xyz +eb3.biz +eb46r5r5e.cf +eb46r5r5e.ga +eb46r5r5e.gq +eb46r5r5e.ml +eb46r5r5e.tk +eb4hnc.com +eb4te5.cf +eb4te5.ga +eb4te5.gq +eb4te5.ml +eb4te5.tk +eb56b45.cf +eb56b45.ga +eb56b45.gq +eb56b45.ml +eb56b45.tk +eb609s25w.com +eb655b5.cf +eb655b5.ga +eb655b5.gq +eb655b5.ml +eb655b5.tk +eb655et4.cf +eb655et4.ga +eb655et4.gq +eb655et4.ml +eb7gxqtsoyj.cf +eb7gxqtsoyj.ga +eb7gxqtsoyj.gq +eb7gxqtsoyj.ml +eb7gxqtsoyj.tk +eb9b1d.club +ebacus.cf +ebacus.ga +ebacus.gq +ebacus.ml +ebacus.tk +ebahczno.shop +ebamen.cf +ebamen.ga +ebamen.gq +ebamen.tk +ebanglanewspaper.com +ebano.campano.cl +ebarg.net +ebay-sale-shop.ru +ebaymail.com +ebbie.ru +ebbob.com +ebctc.com +ebd68.com +ebdbuuxxy.pl +ebectren.cf +ebenebiz.online +ebeschlussbuch.de +ebestaudiobooks.com +ebhiq.us +ebignews.com +ebijouterie.com +ebilsad.net +ebimpactcompany.com +ebing.com +ebizblog.com +ebiztimes.net +ebjza.space +ebkrobots.com +ebloodbanking.org +ebm7.com +ebmail.com +ebmzh1.site +ebnaoqle657.cf +ebnaoqle657.ga +ebnaoqle657.gq +ebnaoqle657.ml +ebnaoqle657.tk +ebnevelde.org +ebnsya.com +ebocmail.com +ebogk4.host +eboise.com +ebolawho.com +ebonized995jc.online +ebony.monster +ebonyfemale.com +ebookbiz.info +ebookdesign.pro +ebookway.us +ebookwiki.org +ebozor.info +ebrightskinbatam.com +ebrker.pl +ebrolift.com +ebruaryand.net +ebruaryand.org +ebruaryh.com +ebruaryh.org +ebrumayfker.cf +ebrumayfker.ml +ebrumayfker.tk +ebs.com.ar +ebtekar-semnan.com +ebtukukxnn.cf +ebtukukxnn.ga +ebtukukxnn.gq +ebtukukxnn.ml +ebtukukxnn.tk +ebusiness-training.com +ebusvipreviews.info +ebuyfree.com +ebv9rtbhseeto0.cf +ebv9rtbhseeto0.ga +ebv9rtbhseeto0.gq +ebv9rtbhseeto0.ml +ebv9rtbhseeto0.tk +ebvaus.us +ebvvlrf.ru +ec-app-ios.com +ec-app-windows.com +ec8sli.us +ec97.cf +ec97.ga +ec97.gq +ec97.ml +ec97.tk +ecaihang.xyz +ecallen.com +ecallheandi.com +ecanc.com +ecaoffl.org +ecasp4tn.com +eccayk.icu +eccfilms.com +eccgulf.net +ecclighting.com +ecco-discount-shoes.ru +ecco-shoes.store +ecco-shoes24.ru +ecea.de +ecf730de.club +echathouse.com +echeaplawnmowers.com +echelon-company.com +echendia.ga +echendia.gq +echendia.ml +echendia.tk +echinology.best +echocbd.com +echodarlings.com +echoroukonline.org +echosgraphics.online +echosofspirit.com +echt-mail.de +echta.com +echtacard.com +echtheidskenmerken.com +echtzeit.website +ecidirecto.cat +ecig36.ru +ecigarette.ru +ecigarettereviewonline.net +ecigwizard.net +ecigwizardrmu.net +ecimail.com +eciresidential.com +eckendonkverwarming.online +eclaecll.shop +eclipsey.online +eclipseye.com +ecllecla.shop +ecmail.com +ecmcxm.tokyo +ecmij0.us +ecn37.ru +ecni1.us +eco-88brand.com +eco-brand.com +eco-crimea.ru +eco-lock.ru +eco-xmas.com +eco.ilmale.it +ecoamulet.ru +ecoarabia.space +ecoblogger.com +ecobution.com +ecocap.cf +ecocap.ga +ecocap.gq +ecocap.ml +ecocap.tk +ecochecking.com +ecocloud.com +ecodark.com +ecodecouverte.com +ecodiemlatam.com +ecodom75.ru +ecoe.de +ecoforfun.website +ecoforsea.website +ecoforsky.website +ecoglace.com +ecogribnica.ru +ecokrasota-kz.ru +ecolaundrysystems.com +ecole-post-bac.org +ecolith.xyz +ecolivingshake.xyz +ecollum.org +ecolo-online.fr +ecologyguys.xyz +ecolvita.com +ecomail.com +ecomclubadvisers.com +ecomclubcoach.com +ecomediahosting.net +ecomercado.shop +ecommbbq.dev +ecommerceaustria.com +ecommercebaltics.com +ecommercebbq.dev +ecommerceservice.cc +ecommerceslovakia.com +ecomoni.ga +ecomrevealed.com +ecomsecure.org +econaturella.store +econconferences.net +econconferences.org +econducts.icu +econeom.com +econofixauto.com +economic-articles.ru +economicrethink.com +economideslaw.com +econvention2007.info +ecooktops.com +ecoonly.com +ecoorno.com +ecopressmail.us +ecorepast.ru +ecoresort.club +ecoright.ru +ecosdelpamplonita.com +ecoshed.org +ecosmartfire.us +ecotrafik-spb.ru +ecotrekking.africa +ecour.se +ecovosearch.com +ecowhey.com +ecowisehome.com +ecpsscardshopping.com +ecqmuskw.shop +ecrin.tk +ecsite.info +ecsporra.ga +ecsporra.gq +ecsporra.ml +ecsporra.tk +ecsspay.com +ecstasyworld.ru +ectix.fun +ectncenter.com +ectseep.site +ecuadoranfood.com +ecudeju.olkusz.pl +ecumenopolis.online +ecumte.cf +ecumte.ga +ecumte.ml +ecumte.tk +ecunflec.cf +ecunflec.gq +ecunflec.ml +ecunflec.tk +ecuwmyp.pl +ecvashop.ru +ecybqsu.pl +eczadanstoklusatis.site +eczanedenurunler3.site +eczavm.net +eczema.red +eczemared.com +ed-hardybrand.com +ed-pillole.it +ed1crhaka8u4.cf +ed1crhaka8u4.ga +ed1crhaka8u4.gq +ed1crhaka8u4.ml +ed1crhaka8u4.tk +ed1de2f.xyz +ed235.com +edagolic.ru +edalist.ru +edaned.cf +edaned.ga +edaned.tk +edapovara.ru +edarwn.site +edaserkan.cf +edaserkan.ga +edaserkan.ml +edat.site +edavpohod.ru +edaysdeal.com +edcar-sacz.pl +edcs.de +edcstore.website +eddieawards.org +eddiecolumbia.com +eddxml.com +eddyhotels.info +ede47t2wgee4og4.xyz +edealclip.com +edealcode.com +edealdash.com +edealgolf.com +edealhome.com +edealmove.com +edealpets.com +edeals420.com +edealspet.com +edealtogo.com +edeedu.icu +edelion.site +edelweis.website +edenbrides.com +edenizli.net +edenprairieapartments.com +edenris.info +edf.ca.pn +edfast-medrx.com +edfinanciall.com +edfromcali.info +edgac.com +edgdcfwp.shop +edge-of-oblivion.com +edgecontrolclub.com +edgecontrolformen.com +edgehillcenter.org +edgenet.dev +edgenet.monster +edgenet.today +edgeseeker.com +edgeserviceworkers.net +edgewaterfrontcondos.com +edgex.ru +edhardy-onsale.com +edhardy886.com +edhardyfeel.com +edhardyown.com +edhardypurchase.com +edhardyuser.com +edi.legal +edialcamp.com +edialdentist.com +edialspas.com +edibles-cannabis.com +edifice.ga +edigitalwaves.com +edikmail.com +edilm.site +edimail.com +edinacabs.info +edinardiamond.com +edinburgh-airporthotels.com +edinburgh.cd +edirnearackiralama.com +edirnekizyurdu.com +edirneligheyeti.xyz +edirnetasarim.xyz +edirneulkuocaklari.com +edisar.cf +edisar.gq +edisar.ml +edisar.tk +edit-2ch.biz +editengine.org +edithis.info +editicon.info +editingmagzines.live +editorialize498ay.online +editorialluz.com +editory.design +edkfnget.shop +edkvq9wrizni8.cf +edkvq9wrizni8.ga +edkvq9wrizni8.gq +edkvq9wrizni8.ml +edkvq9wrizni8.tk +edlweise.com +edmail.com +edmiston.media +edmontonportablesigns.com +edoamb.site +edomail.com +edopegitim.com +edotzxdsfnjvluhtg.cf +edotzxdsfnjvluhtg.ga +edotzxdsfnjvluhtg.gq +edotzxdsfnjvluhtg.ml +edotzxdsfnjvluhtg.tk +edouardkouzougiandmd.com +edovqsnb.pl +edpillsrx.us +edproblem.com +edqpra.us +edqy3g.us +edras-hosting.com +edrashosting.net +edrashosting.ovh +edremitmehmetakif.xyz +edrishn.xyz +edsocia.shop +edsxwu.info +edsym.com +edu-archive.com +edu-paper.com +edu-track.net +edu.aiot.ze.cx +edu.auction +edu.creo.site +edu.dmtc.dev +edu.dmtc.press +edu.hstu.eu.org +eduahora.com +eduanswer.ru +educate316.com +education.eu +educationalretirementplanning.com +educationleaders-ksa.com +educationvn.cf +educationvn.ga +educationvn.gq +educationvn.ml +educationvn.tk +educatolica.org +eduenterprise.net +eduinfoline.com +edukacyjny.biz +edukat.com +edukid.online +edunk.com +eduostia.com +edupost.pl +edurealistic.ru +edusamail.net +eduverum.com +eduverum.org +edv.fund +edv.to +edwardbell.tk +edwardbell62.ml +edwardnmkpro.design +edwardsullivan.buzz +edwardsvillevisioncenter.info +edystne.com +edzjrd.rest +ee-lucky.com +ee-papieros.pl +ee.anglik.org +ee062.com +ee1.pl +ee18269.com +ee2.pl +ee8ty.com +eea888.com +eeanoodlem.site +eeaum.us +eecgot.site +eedgechatk.site +eedgewaree.site +eedgez.site +eee062.com +eeeeeeee.pl +eeemail.pl +eeemail.win +eeeverything.com +eegxvaanji.pl +eehfmail.org +eeifi.site +eeinduo.site +eeligib.shop +eellee.org +eelmail.com +eemeklilik.com +eeolk.us +eerees.com +eesresponseconsulting.org +eetcafedebrakkegrond.com +eexie.space +eexndi.us +eezojq3zq264gk.cf +eezojq3zq264gk.ga +eezojq3zq264gk.gq +eezojq3zq264gk.ml +eezojq3zq264gk.tk +ef0o2i.us +ef0ysjdwsd.com +ef2files.com +ef2qohn1l4ctqvh.cf +ef2qohn1l4ctqvh.ga +ef2qohn1l4ctqvh.gq +ef2qohn1l4ctqvh.ml +ef2qohn1l4ctqvh.tk +ef4l.us +ef87cg.accountant +ef88.xyz +ef8f.com +ef8udz.info +ef9ppjrzqcza.cf +ef9ppjrzqcza.ga +ef9ppjrzqcza.gq +ef9ppjrzqcza.ml +ef9ppjrzqcza.tk +efacs.net +efago.space +efamiliesfoundation.com +efasttrackwatches.com +efatt2fiilie.ru +efcdn3.info +efd.buzz +efd0x.us +efdal.info +efdjfw.com +efelermt2.com +efepala.kazimierz-dolny.pl +efesbahi60.com +efesbahi61.com +efesnahis47.com +efetusomgx.pl +effacers.best +effect-help.ru +effective-democracy.org +effective-neurosystem.ru +effective-thai.com +effectivebusinessgrowth.xyz +effectivelyweb.com +effectual.net +effff.site +effiemena.com +effrvjpn.shop +efhmerides.com +efhuxvwd.pl +efishdeal.com +efiterra.ru +efitgro.shop +eflstudyabroad.com +efmitoc.cf +efmitoc.ga +efmitoc.ml +efmitoc.tk +efmsts.xyz +efo.kr +efo8r.us +efoiefol.shop +efolefoi.shop +eforefor.shop +eformula.ru +efratsadeli.xyz +efreaknet.com +efremails.com +efsunumma58066.cf +efsunumma58066.ga +efsunyarraq.ga +efsunyarraq.ml +efsunyarraq.tk +eft.one +efta.cd +efteldream.online +eftura.cf +eftura.gq +eftura.ml +efu114.com +efxi.us +efxs.ca +eg0tm3.us +eg723.com +eg85qf.com +egafar.cf +egafar.ga +egafar.gq +egafar.ml +egafar.tk +egames20.com +egames4girl.com +egava.ru +egawc6234.tech +egberghs.online +egbest.net +egdrop.online +egear.store +egebahis.com +egeg-990.com +egemendalgicpompa.xyz +egenes.ga +egenes.gq +egenes.ml +eget1loadzzz.ru +eget9loaadz.ru +egg-fri.com +egg-fri.org +eggcelentecafe.com +egget4fffile.ru +egget8zagruz.ru +eggfri.org +eggharborfesthaus.com +eggnova.com +eggplantlove.com +eggplantplay.net +eggrade.com +eggscryptoinvest.xyz +egibet101.com +egipet-nedv.ru +egitimlekazan.net +eglenceliokul.net +eglenkazan.site +eglft.in +ego-in-bmw.ru +egobomb.com +egocp17.net +egocp18.net +egocp21.net +egocp27.net +egocp28.net +egocp32.net +egocp35.net +egocp41.net +egocp52.net +egocp54.net +egocp58.net +egocp59.net +egocp6.net +egocp61.net +egocp62.net +egocp68.net +egocp71.net +egocp74.net +egocp75.net +egocp80.net +egocp83.net +egocp84.net +egocp90.net +egocp92.net +egocp96.net +egocp97.net +egodmail.com +egofan.ru +egolottery.com +egoodbyes.com +egoplay.pro +egoqp.com +egorkanorka.space +egrn-ofical.ru +egs8zzgzsjo05090.buzz +egteam.ru +eguccibag-sales.com +egvxoqfhz.shop +egwuvbsdx.online +egypthacker.com +egzmail.top +eh2jvt.site +eh4rlw.info +ehawehav.shop +ehdigsi.cf +ehdigsi.ga +ehdigsi.ml +ehealthcareconsultants.com +eherbaly.com +ehgrg.live +ehhxbsbbdhxcsvzbdv.ml +ehhxbsbbdhxcsvzbdv.tk +ehleber.cf +ehleber.ga +ehleber.gq +ehleber.ml +ehleber.tk +ehlp.us +ehmail.com +ehmwi6oixa6mar7c.cf +ehmwi6oixa6mar7c.ga +ehmwi6oixa6mar7c.gq +ehmwi6oixa6mar7c.ml +ehmwi6oixa6mar7c.tk +eho.kr +ehoie03og3acq3us6.cf +ehoie03og3acq3us6.ga +ehoie03og3acq3us6.gq +ehoie03og3acq3us6.ml +ehoie03og3acq3us6.tk +ehomeconnect.net +ehousesdev.com +ehowtobuildafireplace.com +ehsanalrifai.com +ehvgfwayspsfwukntpi.cf +ehvgfwayspsfwukntpi.ga +ehvgfwayspsfwukntpi.gq +ehvgfwayspsfwukntpi.ml +ehvgfwayspsfwukntpi.tk +ehwj.com +ehyafest.com +ehyvaz.faith +eiakr.com +eiappleshoes.com +eib-systems.ru +eictik.site +eids.de +eidumail.com +eiendomme.info +eight.emailfake.ml +eight.fackme.gq +eighty-seven-chinese-takeaway.com +eightysevenchinese.com +eigoemail.com +eigthbron.cf +eigthbron.ml +eigthbron.tk +eik3jeha7dt1as.cf +eik3jeha7dt1as.ga +eik3jeha7dt1as.gq +eik3jeha7dt1as.ml +eik3jeha7dt1as.tk +eik8a.avr.ze.cx +eikadb.rest +eikfr.club +eimadness.com +eimail.com +einfach.to +einmalmail.de +einmeinr.shop +einrot.com +einrot.de +eins-zwei.cf +eins-zwei.ga +eins-zwei.gq +eins-zwei.ml +eins-zwei.tk +einsteino.com +einsteino.net +eintagsmail.de +eircjj.com +eiren.dev +eiriyqaab.shop +eirtsdfgs.co.cc +eisenbergpublishing.com +eisenfall.de +eisenhemds.info +eishinsha.ga +eislumpwejr57.ru +eitan-ofer.biz +eitan-ofer.com +eitan-ofer.info +eitanofer.biz +eitanofer.info +eitanofer.net +eitanofer.org +eithern.website +eitude.xyz +ejaculationbycommandreviewed.org +ejaculationprecoce911.com +ejaculationtrainerreviewed.com +ejajmail.com +ejapangirls.com +ejdy1hr9b.pl +ejerciciossalud.com +ejh3ztqvlw.cf +ejh3ztqvlw.ga +ejh3ztqvlw.gq +ejh3ztqvlw.ml +ejh3ztqvlw.tk +ejjsuspw.shop +ejkovev.org +ejmcuv7.com.pl +ejnzj.com +ejrt.co.cc +ejrtug.co.cc +ejucbb.us +ejuhv6.us +ejustinsimone.com +ek8wqatxer5.cf +ek8wqatxer5.ga +ek8wqatxer5.gq +ek8wqatxer5.ml +ek8wqatxer5.tk +ekaap.site +ekalbet.xyz +ekameal.ru +ekapoker.com +ekapoker.net +ekapoker.xyz +ekata.tech +ekatalogstron.ovh +ekb-nedv.ru +ekbep.live +ekc-2020-ruf.best +ekc-2020-ruk.best +ekc-2020-rur.best +ekc-2020-rus.best +ekc-2020-rut.best +ekc-2020-rux.best +ekcuzkux.shop +ekdcp1.site +ekforha.cf +ekforha.ga +ekforha.gq +ekforha.ml +ekforha.tk +ekholotdeeper.ru +ekibim.design +ekii.cf +ekiiajah.ga +ekiibete.ml +ekiibeteaja.cf +ekiibetekorea.tk +ekiikorea99.cf +ekiikorea99.ga +ekiilinkinpark.ga +ekkoboss.com.ua +eklement-v5.site +ekmektarifi.com +ekmekvepasta.online +ekmekvepasta.xyz +ekmqkw.com +eknowapp.com +eknqgq.info +eknvfw.icu +eko-europa.com +ekocosmetika.ru +ekodi.ga +ekohash.com +ekomaski.ru +ekomoyka.com +ekor.info +ekotuman54.ru +ekphm.site +ekpzsec3.xyz +ekredyt.org +ekselyapi.com +eksenler.site +eksf.cd +ekspresambalaj.xyz +ekspresforeks.com +eksprespedycja.pl +ekstra.pl +ektatrk.site +ekumail.com +ekupa.xyz +ekyku.site +ekzi.info +el-kassa.info +el-mahdy.com +el-mundo.website +el-toro-takeaway.com +el-tulipan.com +el.cash +el.efast.in +el4nyw.us +el6jkb.us +elaffshop.store +elainamroberts.com +elaineshoes.com +elalinosantafe.com +elancreditcards.net +elangqq.fun +elangquiqiu.net +elaparatico.net +elapou.info +elappi.site +elaseweightloss.com +elastichealth.com +elatscal.cf +elatscal.ga +elatscal.gq +elatscal.ml +elatscal.tk +elaven.cf +elaven.ga +elaven.gq +elaven.ml +elaveyargalari.ml +elaveyargalari.tk +elavilonlinenow.com +elavmail.com +elazigcozumguvenlik.com +elaziggaziosmanpasa.xyz +elazigmezaryapi.online +elazigmezaryapi.xyz +elazigturkocaklari.xyz +elazigugurluemlak.xyz +elbenyamins.com +elbomboncito.net +elbow4.tk +elcajonrentals.com +elcalless.cf +elcalless.ga +elcalless.gq +elcalless.ml +elcejas.org +elcentrodentists.com +elcid-dz.com +elclicbubb.cf +elclicbubb.ml +elcyberbrujo.com +eldermud.com +eldertraining.com +eldiam.ru +eleanorallen.me +elearningjournal.org +elearningtopia.net +eleccionesath.com +electcr.icu +electcra.xyz +electdesean.com +electionwatch.info +electpreoccupationhandy.website +electric-lion.com +electric-net.com +electricalchemy.org +electricalpowertransmissiononlineclasses.com +electricbikemotor.org +electriccarvehicle.com +electriccityrw.com +electrician-colchester.com +electricistas.cat +electricistasdepr.com +electricistaurgente.net +electrick.ru +electrickeychain.com +electriclongboard.online +electricskymedia.com +electricswitch.info +electro-roliki.ru +electro.mn +electrodrone.ru +electrofic.xyz +electrofunds.com +electroheatchina.com +electromax.us +electronexpress.ru +electrongem.buzz +electronic-smoke.com +electronic-stores.org +electronicdirectories.com +electronicearprotection.net +electronicenergycoins.com +electronicgate-annabi.net +electronicmail.us +electronicpostcards.net +electronicproductsusa.com +electronicsbrushes.com +electronicsbrushes.us +electronicsearch.solutions +electronicshotv.xyz +electronicshotx.info +electronicsvipa.xyz +electronicsvipc.info +electronicsvipf.xyz +electronicvonfrey.com +electronizer.com +electroprem.se +electroproluxex.eu +electrosamokat2.ru +electrostal-dveri.ru +electrostaticbrush.net +electrostaticbrush.us +electrostaticbrushes.us +electrumlove.com +electrumly.pro +electrumsecuredownload.com +electrumtravel.com +eleganaff.com +elegantcopywriting.net +elegantdir.com +elegantmessblog.com +elegantthemes.top +elektrik03.ru +elektrische-auto.info +elektro-grobgerate.com +elektro-roliki.ru +elektronikekspertiz.com +elektroniksigara.xyz +elektroninenurheilu.net +elektroninenurheilu.org +elelhal.xyz +eleman34.com +elemedialabs.com +elementalstorm.com +elementaltraderforex.com +elementalwellnesscare.com +elementify.com +elementosdejuicio.com +elementsofartny.com +elementsofjoy.org +elementwell.com +elenafuriase.com +elenagolunova.site +elenamiller-shop.ru +elenasport.com +elenberger.ru +eleniumania.site +elenon.com +elenotoneshop.com +elepam.ga +elepam.gq +elepam.ml +elepam.tk +elephantlae.email +elephantpizza-cabra.com +elephantvalleylodge.org +elerrisgroup.com +elesaganter.ru +elesb.net +elestella.blog +eletp6.info +eletrium.com +eletskyart.ru +elettrofaidate.com +elevareurhealth.com +elevatelosangelescf.cafe +elevationgroupvip.com +elevationplatform.net +elevationrecoverycenter.info +elevatn.net +elevatorshoes-wholesalestores.info +eleven-wet-rubbed-rise.xyz +elevens4d.net +elevmedia.net +elex-net.ru +elexbetgunceladres.com +elexbetguncelgiris.com +elexusbet159.com +elexusbet165.com +elfagrfan.com +elfagrsports.net +elfagrsports.org +elfbt.com +elfox.net +elftraff.com +elgin-dentist.com +elhammam.com +elhddbha.com +elhida.com +eliasandtheerror.com +eliconomy.site +elifestyle.tk +elijahgray.pro +elilind.info +elilogan.us +elimam.org +elimidebtconsultants.com +eliminategout.com +eliminatetrend.info +elinakamiren.ru +elinbox.com +elinore1818.site +elipsys.ru +eliselifewire.com +elisione.pl +elisioyuncak.net +elisioyuncak.xyz +elisium.org +elispector.com +elisspizzeria.com +elite-altay.ru +elite-seo-marketing.com +elite-trend.ru +elite12.mygbiz.com +eliteadultdating.com +eliteavangers.pl +elitebabeslondon.com +elitebusinessphone.com +elitecolor.us +elitecraft.online +eliteesig.org +eliteeventvenue.net +elitegunshop.com +elitehostmanagement.com +elitemotions.com +eliteppccourses.com +elitescortistanbul.net +eliteseniors.online +eliteseo.net +elitesinglejdhj.xyz +elitestoneimporters.net +elitethetrend.com +elitevipatlantamodels.com +elitewindowsanddoorsllc.com +elitewot.ru +elitewou.press +elitistarmory.com +elitokna.com +elixircycles.com +eliyes.icu +elizabeadan.com +elizabelder.com +elizabethjacques.com +elizabethlacio.com +elizabethporterdesigns.com +elizabethroberts.org +elizstudio.ru +eljadida24.org +eljkblwjys.icu +eljzcl.us +elkathy.cf +elkathy.ga +elkathy.ml +elkgroveses.com +elkhornautocare.com +elki-iskusstvennie.ru +elki-mkzn.ru +elki-v-chelyabinske.ru +elkwielp.site +ellendino.com +ellesecret.com +ellesoufi.com +ellight.ru +ellineswitzerland.com +ellingtonmarascio.com +ellingtonvets.com +ellinismosonline.com +elliotbuckley.buzz +elliotcavanaugh.com +elliotmccarthy.buzz +elliotrhodes.buzz +ellisontraffic.com +ellmh.us +elloboxlolongti.com +elloimmigration.com +ellstromstrafikskola.se +ellur.ru +elmarquesbanquetes.com +elmcoin.com +elmenormi.tk +elmexicanodebcn.com +elmhurstdentalcare.com +elmiracap.com +elmontaitocaceres.com +elmoscow.ru +elmoust.ru +elmundillodental.com +elograder.com +elokalna.pl +elon-spb.ru +eloom.live +elorift.com +elorios.info +eloud.info +elouhouse.co +elp0xn.us +elpacar.cf +elpacar.ga +elpacar.ml +elparquetelpuig.com +elpasoaddictiontreatment.com +elpasococainerehab.com +elpasoquote.com +elpatevskiy.com +elpatio.su +elpisfil.org +elqaelsc.shop +elraen.cf +elraen.ga +elraen.tk +elraenv2.ga +elraenv2.ml +elreverde.com +elreykebabbarcelona.com +elrincondelbarbudo.ovh +els396lgxa6krq1ijkl.cf +els396lgxa6krq1ijkl.ga +els396lgxa6krq1ijkl.gq +els396lgxa6krq1ijkl.ml +els396lgxa6krq1ijkl.tk +elsa.su +elsajean.mobi +elsayoung.world +elscootersverige.se +elsdrivingschool.net +else.best +else.watch +elsecity.cash +elsecity.email +elsecity.info +elsecity.life +elsecity.link +elsecity.org +elsecity.today +elsecity.xyz +elseme.com +elsethriftexam.website +elsevierheritagecollection.org +elsew0rld.org +elseworld.info +elseworld.net +elsexo.ru +elsiedrs.info +elsingular.com +elslotsredirect.com +elsoberano.net +elsotanoderadiobelgrado.com +elswabad.cf +elswabad.ga +elswabad.gq +elswabad.ml +elswabad.tk +eltasmu.cf +eltasmu.ml +eltasmu.tk +elteh.me +eltombis.pl +eltronx.org +elunenna.tk +elus-rsm.net +elusiveprime.net +eluxurycoat.com +elva.app +elvavgiyim.com +elversoft.space +elverturkiye.com +elvis-pizza.com +elvisor.org +elviszem.com +elwafidinetours.com +ely.kr +elyamnel3raby.org +elyamnelaraby.org +elykarina.com +elysium.ml +elysiumfund.com +elysiumfund.net +elysiumfund.org +elysiumfundation.net +elysiumfundation.org +elzyro.com +em-box.ru +em-meblekuchenne.pl +emab4i.us +emacs.info +emacsgifs.com +emagrecendocomasol.com +emagrecendocomrenata.com +emagrecendototal.com +emagrecer-rapido-urgente.com +emagrecerapidohoje.com +emagrecerdevezbr.com +emagrecimentoagil.com +emagrecimentodiadia.com +emaiden.com +email-24x7.com +email-4-everybody.bid +email-9.com +email-bomber.info +email-boxes.ru +email-fake.cf +email-fake.com +email-fake.ga +email-fake.gq +email-fake.ml +email-fake.tk +email-host.info +email-jetable.fr +email-lab.com +email-list.online +email-mail.pw +email-me.bid +email-reviews.com +email-server.info +email-sms.com +email-sms.net +email-splashbeachresort.com +email-t.cf +email-t.ga +email-t.gq +email-t.ml +email-t.tk +email-temp.com +email-vigrish.ru +email-wizard.com +email.cbes.net +email.comx.cf +email.cykldrzewa.pl +email.freecrypt.org +email.infokehilangan.com +email.net +email.org +email.viola.gq +email.wassusf.online +email.webcity.ml +email0.cf +email0.ga +email0.gq +email0.ml +email0.tk +email1.gq +email1.pro +email2.cf +email2.gq +email2.ml +email2.tk +email2020.mehrpoy.ir +email2an.ga +email2twitter.info +email3.cf +email3.ga +email3.gq +email3.ml +email3.tk +email4all.info +email4everybody.bid +email4everyone.co.uk +email4everyone.com +email4spam.org +email4work.xyz +email5.net +email60.com +emailage.cf +emailage.ga +emailage.gq +emailage.ml +emailage.tk +emailanto.com +emailappp.com +emailapps.in +emailapps.info +emailate.com +emailautomator.com +emailay.com +emailbaruku.com +emailber.com +emailboot.com +emailbot.org +emailbox.comx.cf +emailchepas.cf +emailchepas.ga +emailchepas.gq +emailchepas.ml +emailchepas.tk +emailcom.org +emailcoordinator.info +emailcu.icu +emaildfga.com +emaildienst.de +emaildrop.io +emaildublog.com +emailed.com +emaileen.com +emailertr.com +emailfake.cf +emailfake.com +emailfake.ga +emailfake.gq +emailfake.ml +emailfake.nut.cc +emailfake.usa.cc +emailfalsa.cf +emailfalsa.ga +emailfalsa.gq +emailfalsa.ml +emailfalsa.tk +emailforme.pl +emailforyounow.com +emailfowarding.com +emailfreedom.ml +emailgap.com +emailgenerator.de +emailgo.de +emailgratis.info +emailgsio.us +emailguy.info +emailhearing.com +emailhost99.com +emailhosts.org +emailhot.com +emailias.com +emailibre.com +emailigo.de +emailinbox.xyz +emailinfive.com +emailirani.ir +emailismy.com +emailist.tk +emailisvalid.com +emailjonny.net +emailket.online +emailkg.com +emailkjff.com +emailko.in +emailkoe.com +emailkoe.xyz +emaill.host +emaillalala.org +emaillime.com +emaillist.fun +emailll.org +emailmarket.fun +emailmarket.space +emailmc2.com +emailme.accountant +emailme.bid +emailme.men +emailme.racing +emailme.win +emailmenow.info +emailmiser.com +emailmktsolutions.com +emailmobile.net +emailmonkey.club +emailmynn.com +emailmysr.com +emailna.co +emailna.life +emailno.in +emailnode.net +emailnope.com +emailnube.com +emailo.pro +emailofnd.cf +emailondeck.com +emailonline.me +emailonlinefree.com +emailonn.in +emailoo.cf +emailpalbuddy.com +emailpops.cz.cc +emailportal.info +emailpro.cf +emailproxsy.com +emailr.win +emailrambler.co.tv +emailrecup.info +emailreg.org +emailresort.com +emailreviews.info +emailrii.com +emailrtg.org +emails-like-snails.bid +emails.ga +emails92x.pl +emailsalestoday.info +emailsecurer.com +emailsensei.com +emailsforall.com +emailsingularity.net +emailsky.info +emailslikesnails.bid +emailsolutions.xyz +emailspam.cf +emailspam.ga +emailspam.gq +emailspam.ml +emailspam.tk +emailspot.org +emailspro.com +emailspro.site +emailsteel.com +emailswhois.com +emailsy.info +emailsys.co.cc +emailtea.com +emailtech.info +emailtemporal.org +emailtemporanea.com +emailtemporanea.net +emailtemporar.ro +emailtemporario.com.br +emailtex.com +emailthe.net +emailtmp.com +emailto.de +emailtocard.com +emailtocard.site +emailtoo.ml +emailtown.club +emailure.net +emailvenue.com +emailwarden.com +emailworldwide.info +emailworth.com +emailx.at.hm +emailx.org +emailxfer.com +emailxpress.co.cc +emailz.cf +emailz.ga +emailz.gq +emailz.ml +emakina.digital +emakmintadomain.co +emall.ml +emanual.site +emanuele.dev +emanus.cd +emaomail.com +emapmail.com +emarketeng.com +emarktshop.com +emarkwebsolutions.com +emasqiuqiu.info +emasqiuqiu.org +emasqq.info +emaw.email +embalaje.us +embeddedconsulting.com +embeddedengineer.org +embeddedresearch.com +embedhelp.com +embergone.cf +embergone.ga +embergone.gq +embergone.ml +embergone.tk +embergonebro.cf +embergonebro.ga +embergonebro.gq +embergonebro.ml +embergonebro.tk +emberhookah.com +emblemail.com +embower.site +embraceqqef.email +embracetheminivan.com +embrapamail.pw +embudoshighticket.com +emcchicago.com +emcinfo.pl +emco-time.ru +emdwgsnxatla1.cf +emdwgsnxatla1.ga +emdwgsnxatla1.gq +emdwgsnxatla1.ml +emdwgsnxatla1.tk +emedia.nl +emegaplex.com +emeil.cf +emeil.in +emeil.ir +emember.site +emenage.com +emerald-court-takeaway.com +emerald-shop.ru +emeraldcluster.com +emeraldsocietynews.club +emeraldvalleyhouse.com +emeraldwebmail.com +emergen.biz +emergency-alert.org +emergency-alerts.org +emergencyredalerts.org +emergenie.net +emerial.su +emeshopbuy.store +emext.com +emeyle.com +emfucan.cf +emfucan.gq +emfucan.tk +emfunhigh.cf +emfunhigh.gq +emfunhigh.ml +emfunhigh.tk +emi360.net +emial.com +emicomfort.com +emigrantdfz.fun +emigration.blog +emihziyermaj.site +emil.com +emilee.best +emilybeckner.com +emilybeearts.com +emilydates.review +emilylawson.buzz +emilynall.com +emilywillis.site +emina7.com +emina7.net +eminempwu.com +eminent.property +eminilathe.info +eminitrading.net +emirati-nedv.ru +emirmail.ga +emiro.ru +emissarycsr.com +emisser.ru +emitirfacil.com +emjvbq.com +emka3.vv.cc +emkei.cf +emkei.ga +emkei.gq +emkei.ml +emkei.tk +emkesupermarket.com +eml.pp.ua +emlhub.com +emlivetech.com +emlpro.com +emltmp.com +emm.pet +emmail.com +emmail.info +emmailoon.com +emmamolly.net +emmasart.com +emmasmale.com +emmetttillmuseum.com +emmtjv.best +emmune.com +emmys.life +emnbp6.us +emobilidade.net +emohawk.xyz +emojiday.win +emojit.net +emojit.org +emojot.xyz +emolmot.cf +emolmot.gq +emolmot.ml +emolmot.tk +emoneysecrets.com +emonroy.site +emops.net +emops.us +emoreforworkx.com +emoreno.tk +emoser.ga +emoser.gq +emoser.ml +emoshin.com +emotetimingleft-bright-bright.com +emotionengineering.com +emotoc.tk +emozoro.de +emp3i.info +emp4lbr3wox.ga +empaltahu24best.gq +empayna.cf +empayna.ml +empayna.tk +empdesguace.com +empek.tk +emphasysav.com +empik-music.com +empik.photo +empikmuzyka.com +empire-report.com +empire-subtleagility.com +empire-unchained.com +empireanime.ga +empireapp.org +empireartsnews.club +empiremail.de +empiremonk-timeagilefitness.com +empireofbeauty.co.uk +empiresro.com +empiricalnerd.com +empistllc.com +emplathe.monster +emplawyernet.com +empleoentuciudad.com +empleoline.com +emplkbilety.com +emploi-france.com +employeedictionary.com +employeeglossary.com +employerdictionary.com +employerglossary.com +employmentagencyusa.com +employmentcontract.works +employzzfh.space +empowerbyte.com +empowerdcu.com +empoweredservices.org +empowerffcu.com +empowering.zapto.org +empoweringgirlz.com +empoweringgirlz.net +empowerlex.com +empowermentparent.com +empowerplasticsurgery.com +empowerrfcu.com +empowerrss.com +empowerslife.com +empreendasemfronteiras.com +empregoaqui.site +empregosdesucesso.com +empregosemgoias.com +empresagloriasamotderoman.com +empty.support +emptylousersstop.com +empurarefrigeration.com +emqe.email +emran.cf +emroligh.cf +emroligh.ga +emroligh.gq +emroligh.ml +emroligh.tk +emrullahakgun.xyz +emsapp.net +emscentr.ru +emscongo.cd +emstjzh.com +emtdevhouse.com +emtelrilan.xyz +emtepsi.cf +emtepsi.ga +emtepsi.gq +emtepsi.ml +emtrn9cyvg0a.cf +emtrn9cyvg0a.ga +emtrn9cyvg0a.gq +emtrn9cyvg0a.ml +emtrn9cyvg0a.tk +emucasino.app +emule.cf +emule.ga +emule.gq +emunmail.com +emuvig.us +emuwarez.com +emvil.com +emvnf.live +emvr.net +emwe.ru +emwuzoom.com +emy.kr +emydsu.us +emysg.icu +emz.net +en2dhm.us +en565n6yt4be5.cf +en565n6yt4be5.ga +en565n6yt4be5.gq +en565n6yt4be5.ml +en565n6yt4be5.tk +en5ew4r53c4.cf +en5ew4r53c4.ga +en5ew4r53c4.gq +en5ew4r53c4.ml +en5ew4r53c4.tk +enabi.best +enablediversity.com +enables.us +enagav.cf +enagav.ga +enagav.gq +enagav.ml +enagav.tk +enagicman.com +enaksekali.ga +enalapril.ru +enamproshed.tk +enarmed.com +enasyn.com +enayu.com +enbago.net +enbdmh.ml +encadreurcycliste.com +encandenados.com +encartes.online +encedrop.site +enchantedindiancoffee.com +enciar.xyz +encinodata.com +encinowire.com +encloudhd.com +encodium.com +encorebancshares.com +encorehighenddesigners.com +encouragepress.com +encoybet1.com +encrot.uk.ht +encryptedmail.xyz +encryptedonion.com +encrytech.com +encuentra24.app +encuestas-diarias.online +encyclopedia-annabi.com +endamoebic.best +endeffectgaming.com +endergraph.com +endermospa.cd +endgamez.live +endler.network +endodonticassociate.com +endohost.com +endoscopicweightlosssoluctions.com +endosferes.ru +endozogkqq.site +endpoint-hosting.online +endrix.org +enduranceblue-original.website +endzonebet.net +eneasun.cf +eneasun.ga +eneasun.gq +enedes.cf +enedes.gq +enedes.ml +enedes.tk +enelaw.cf +enelaw.ga +enelaw.gq +enelaw.ml +enelaw.tk +enemiesofman.com +enemydon.xyz +enemydono.icu +enemyxuyj.space +enercranyr.eu +energetic-news.ru +energeticcity.net +energetus.pl +energiedeals.online +energieloket.tools +energon-co.ru +energy-analyzer.com +energyce.cyou +energycomplianceinsight.com +energydonwell.com +energyfriendlyhome.com +energylord.best +energymail.co.cc +energymails.com +energymedicineglobal.com +energymonitor.pl +energysavvy.info +energysavvy.net +energysavvy.org +energysavvyoptix.com +energywatch.mobi +energywidetimes.com +enestmep.com +enevthom.gq +enevthom.ml +enevthom.tk +enewheretm.tk +enewscoralgables.com +enexgwen.ml +eneyatokar12.com +enf9m.live +enfejar90.xyz +enfgrs.site +enforkatoere.com +enformakhirdavat.site +enfsmq2wel.cf +enfsmq2wel.ga +enfsmq2wel.gq +enfsmq2wel.ml +enfsmq2wel.tk +enfusion.cam +enfusion.systems +enfusion.website +enfusion.xyz +eng-learning.ru +engadinstmoritz-booking.com +engagecoin.info +engagecoin.net +engagecoin.org +engagementfirm.com +engagextremely.com +engelwaldfarm.com +enggalman.ga +enggalman.ml +enginarmacunu.site +engine110.com +enginebasic.com +enginedirectory.info +engineemail.com +engineeredforsimplicity.com +engineeredforsimplicity.net +engineering-ai.com +enginemail.co.cc +enginetuwh.site +enginwork.com +engit.live +england4d.com +englandnews.info +englandvs.com +englearner.ru +englewoodedge.net +englishexp.com +englishlearn.org +englishmiaskype.ru +englishteachingfriends.com +englishviaskypes.ru +engsocial.com +engteach.com +enhancedsurgicalrecovery.com +enhancemalepotency.com +enhanceronly.com +enhancingworkforceleadership.com +enhancingworkforceleadership.org +enic.cd +eniddoctors.com +enidford.net +enigma-n.pro +enigma2n.pro +enigma4n.pro +enigmaff.pro +enigmagames.net +enigmaticowl.com +enikova.ru +eniyikahve.online +enj0yourfile.com +enjeolonmoda.xyz +enjobit.com +enjoy-lifestyle.us +enjoybag.website +enjoyingeachjourney.com +enjoyiqos.ru +enjoypixel.com +enkayasam.net +enkeldate-confirmed.com +enkeldate-meet-backup.com +enkeldate-meet.com +enlargement-xl.com +enlargementz.com +enlerama.eu +enlesho.ru +enligent.com +enmail.com +enmail1.com +enmenli.cf +enmenli.ga +enmenli.gq +enmenli.ml +enmenli.tk +enml.net +enmtuxjil7tjoh.cf +enmtuxjil7tjoh.ga +enmtuxjil7tjoh.gq +enmtuxjil7tjoh.ml +enmtuxjil7tjoh.tk +enneagramglobalschool.com +ennemail.ga +ennyslau.cf +ennyslau.ga +ennyslau.gq +ennyslau.ml +ennyslau.tk +enobu.live +enokgreen.cf +enokgreen.ga +enokgreen.gq +enokgreen.ml +enokgreen.tk +enometry.com +enonenerjiotomasyon.com +enpeare.ga +enpeare.tk +enput.com +enqd.com +enqd.net +enriched-health.site +enrollyourhealth.net +enron.cf +enron.ga +enron.gq +enron.ml +enroncorp.cf +enroncorp.ga +enroncorp.gq +enroncorp.ml +enroncorp.tk +enroute.africa +enseade.cf +enseade.ga +enseade.gq +enseade.ml +enseade.tk +ensembledynamics.com +ensight-usa.com +ensight-vn.com +ensonbahis.com +ensotv.net +enspara.energy +enspiral.mobi +enssycofa.com +ensudgesef.com +entekhab.group +entekhabeirani.com +enterbles.fun +enteremail.us +enterprise-secure-registration.com +enterprisebitcoin.com +enterpriseln.us +enterprisepackets.com +entertainerblog.com +entertainmebillings.com +entertainment-database.com +entertainment-pass.com +entertainmentblog.com +entertainmentphuket.fun +entertainmentstockmarket.com +enterto.com +enterxxx.net +entibeatz.online +entication.net +entirelynl.nl +entopios.net +entopios.org +entrastd.com +entrate.info +entreepreneurship.com +entrega-transportadora.ml +entregandobiblia.com.br +entrenuvols.net +entrenuvols.org +entreum.com +entropy.email +entrupy.info +entrupy.net +entrybl.xyz +entrylunc.us +entsm.com +entuziast-center.ru +enu.kr +enuygunbankalar.online +enuygunbankalar.xyz +enuygunfinansman.online +enuygunfinansman.xyz +env.tools +envatobundles.com +envelop2.tk +enviroconceptinternational.com +enviroconceptinternational.net +environmentastwork.com +envirophoenix.com +envisia.ru +envisica.cd +envolplus.com +envy17.com +envysa.com +envywork.ru +enwi7gpptiqee5slpxt.cf +enwi7gpptiqee5slpxt.ga +enwi7gpptiqee5slpxt.gq +enwi7gpptiqee5slpxt.ml +enwi7gpptiqee5slpxt.tk +eny.kr +enypoh.us +enythgehiqe.ru +enzomail.tk +enzooty.best +enzos-parnell-st-ennis.com +eo-z.com +eo5ser.us +eoapps.com +eob6sd.info +eocilspf.shop +eoctxd.icu +eodfku.info +eoffice.top +eoinbalara.com +eojiu1.site +eol.digital +eolif.com +eolot.site +eomail.com +eoncasino.com +eonmech.com +eoopy.com +eopleopp.shop +eoppeopl.shop +eorbs.com +eos-ram.info +eos24.media +eos2mail.com +eosonlinelearning.com +eotoplenie.ru +eovdfezpdto8ekb.cf +eovdfezpdto8ekb.ga +eovdfezpdto8ekb.gq +eovdfezpdto8ekb.ml +eovdfezpdto8ekb.tk +eovgyawwy.cf +eozxzcbqm.pl +epaj40wss.buzz +epam-hellas.org +eparis.pl +eparty.online +epayvip88.com +epb.ro +epcgpn.site +epchurchgh.org +epdsale.top +epenpoker.com +epewmail.com +ephemail.net +ephemeral.black +ephemeral.email +ephysiotherapist.com +epi-invest.ru +epiar.net +epic-forum.org +epic-tech.org +epic.swat.rip +epicallies.org +epicbait.site +epiccarry.ru +epicentrogt.com +epicfalls.com +epicgamers.mooo.com +epicmoney.gold +epicpresence.company +epicqq.info +epicreactblacksale.com +epicreactwomenssale.com +epics.cards +epicsap.site +epicsmagazine.com +epicsuccessteam.com +epictv.pl +epicwave.desi +epicwebdesigners.com +epicxel.com +epidamnus.com +epideme.xyz +epidifiak.info +epieye.com +epigeneticsconference.org +epigeneticstation.com +epigeneticstest.com +epiglotteres.com +epinzen.site +epionepavilion.com +episcope.site +episodul.online +epit.info +epitheaurq.space +epitin.cf +epitin.ga +epitin.ml +epitin.tk +epitom.com +epizmail.com +eplaytherapy.com +eplixs.com +epmail.com +epmnko.site +epnleqj.site +epomail.com +epoqjoie.shop +eporadnictwo.pl +eposredniak.pl +epostmail.comx.cf +epot.ga +epot.pro +epowerhousepc.com +epozn.net +eppicsi.site +eppik.ru +eppvcanks.shop +epr49y5b.bee.pl +epreng.net +eprimeinc.com +eprofitacademy.net +epropertytaxappeal.net +epropertytaxappeal.org +epscinc.com +epshop.online +epsilonzulu.webmailious.top +eptnxuffm.shop +epubb.site +epulat.com +epvmo.us +epvzs5.com +epw88.com +epwenner.de +epweqdlzy.shop +epwnhsss.xyz +epwwrestling.com +epxs.email +epyc.asia +epycn1.site +epyontech.net +epypqm.shop +eq-trainer.ru +eq2shs5rva7nkwibh6.cf +eq2shs5rva7nkwibh6.ga +eq2shs5rva7nkwibh6.gq +eq2shs5rva7nkwibh6.ml +eq2shs5rva7nkwibh6.tk +eqador-nedv.ru +eqasmail.com +eqbill.com +eqbo62qzu2r8i0vl.cf +eqbo62qzu2r8i0vl.ga +eqbo62qzu2r8i0vl.gq +eqbo62qzu2r8i0vl.ml +eqbo62qzu2r8i0vl.tk +eqeqeqeqe.tk +eqgigyhce.shop +eqiluxspam.ga +eqimail.com +eqlifecoaching.com +eqop.email +eqqsale.top +eqra.news +eqrsxitx.pl +eqstqbh7hotkm.cf +eqstqbh7hotkm.ga +eqstqbh7hotkm.gq +eqstqbh7hotkm.ml +eqstqbh7hotkm.tk +eqtlvr.us +equalitywalk.org +equalizer700je.online +equalla.icu +equallyblessed.com +equalpi.xyz +equalscra.fun +equalsn.icu +equateur.cd +equerrenjv.space +eques.jobs +equestrianjump.com +equfic.xyz +equiapp.men +equicapital.co.uk +equicapital.net +equicapital.org +equicrypto.com +equiemail.com +equilibriumfusion.com +equility.info +equinemania.com +equiparen.buzz +equipcare.ru +equipde.icu +equipdeb.xyz +equipgl.icu +equiphub.us +equipment.solutions +equipmentglossary.com +equipmentshop.futbol +equipoidexa.org +equiteo.net +equiteoavocats.com +equiteoavocats.org +equity-management.cd +equityen.com +equityglobal.cloud +equonecredite.com +equorum.nu +equorum.online +equorum.se +equpio.com +equuate.ru +eqzvvsyx.shop +er-50.com +er0ysu.us +er98.top +era-logic.com +era7mail.com +eradio.africa +eraghou.cf +eraghou.ga +eraghou.gq +eraghou.ml +eraghou.tk +erailcomms.net +erajuditogel.org +eramis.ga +eramupload.website +eranhome.com +erarkhol.ga +erarkhol.gq +erarkhol.ml +erarkhol.tk +erasedebt.gq +erasedpaining.xyz +eraseo.com +erasf.com +eratetlo.tech +eratorcancelcousineg.me +erauiltyn.com +erbendao.com +erbfdssdgdg.xyz +erbpalsey.com +erbreathox.cf +erbreathox.ga +erbreathox.gq +erbreathox.ml +erbs-palsy-attorney.com +erc.city +ercanzincir.com +erciyesbali.com +erconserva.icu +erdem.se +erdemkitap.com +erdemyayinlari.com +erdyufaelesa.space +ereaderreviewcentral.com +ereaper.best +erebos120.xyz +erec-dysf.com +erec.tel +erecete.org +erectiele-nl.info +erectiestoornisoplossing.com +erectil-es.info +erectiledysf.com +erectiledysfunctionpillsest.com +erectiledysfunctionpillsonx.com +erection-us.com +erektil-no.info +erelthy.cf +erelthy.ga +erelthy.gq +erelthy.ml +erelthy.tk +erematotupet.host +erempoweredlife.com +erencan.ga +erermail.com +ereroc.ga +ereroc.gq +ereroc.ml +ereroc.tk +erersaju.xyz +erertmail.com +eresistor.net +erethism.site +eretoth.cf +eretoth.ga +eretoth.gq +eretoth.ml +eretoth.tk +erevusolutions.com +erexcolbart.eu +erexcolbart.xyz +erexgxddbx.site +erfoer.com +erge-grev-efef.online +ergma.ru +ergo-design.com.pl +ergo-ryukzak.ru +ergobabyrussian.ru +ergopsycholog.pl +ergthh34gefg43g.xyz +erguvanhaber.xyz +erh375j.xyz +eriakis.biz +eriakis.info +eriakis.net +eriakis.org +eric-bml.info +ericasfinejewelry.com +ericdisque.com +ericdmcguire.com +ericfilson.com +ericfress.com +ericherrmann.net +ericjohnson.ml +ericjwallace.com +erickmadrigal.ml +ericrberg.com +ericreyess.com +ericsieker.com +ericsreviews.com +erictelford.com +eriell.info +eriell.life +eriell.live +eriell.xyz +erikharvey.com +eriksendesign.com +erikthorsen.com +erinaria.info +erindalton.net +erinfe.cf +erinfe.ga +erinfe.ml +erinfe.tk +erinfortney.com +eringking.com +erinmccoycoaching.com +erinnfrechette.com +erinparkstud.com +erisfika.online +erjit.in +erk7oorgaxejvu.cf +erk7oorgaxejvu.ga +erk7oorgaxejvu.gq +erk7oorgaxejvu.ml +erk7oorgaxejvu.tk +erkadekorasyon.xyz +erkeksentikla.com +erkeksoru.xyz +erlera.cf +erlera.ga +erlera.gq +erlera.tk +ermacgroup.cd +ermail.cf +ermail.ga +ermail.gq +ermail.ml +ermail.tk +ermailo.com +ermawork.cf +ermawork.ga +ermawork.gq +ermawork.ml +ermawork.tk +ermcousa.net +ermcousa.us +ermeson.tk +ermusyapiinsaat.xyz +ernplk.tech +ero-host.ru +ero-king.com +ero-tube.org +ero-vr-matome.xyz +ero123.com +erocewar.site +erodate.com +erodate.fr +eroererwa.vv.cc +erofan.org +erofree.pro +erogluteknik.com +eroioppai.xyz +erokawa.biz +eroker.pl +eromail.com +eropicgi.site +eroquiz.ru +eros.cd +erotaiwan.com +erothde.cf +erothde.ga +erothde.gq +erothde.ml +erothde.tk +eroticadultdvds.com +eroticplanet24.de +erotopathy.site +erotubes.pro +erotyczna.eu +erotyka.pl +erovideo.pro +erovidos.com +eroxs.info +eroyal.net +erpin.org +erpr21n.buzz +erpratgey.cf +erpratgey.ga +erpratgey.gq +erpratgey.ml +erpratgey.tk +err33.com +erreemail.com +error-10by25.stream +error-codexx159.xyz +errorsinlogic.com +errorstud.io +ersantravels.com +ersatzauto.ch +ersatzs.com +ersaym.com +ersbizz.com +erseolog.cf +erseolog.ga +erseolog.ml +erseolog.tk +erslni.net +erslni.org +erssuperbowlshop.com +erstelecom.com +ersxdmzzua.pl +ersyersy.shop +ertacperde.com +ertanrecep.ga +ertanrecep123.tk +ertemaik.com +ertewurtiorie.co.cc +erti.de +ertki.online +erttobacco.online +erttobacco.xyz +ertuet5.tk +ertyuio.pl +eruj33y5g1a8isg95.cf +eruj33y5g1a8isg95.ga +eruj33y5g1a8isg95.gq +eruj33y5g1a8isg95.ml +eruj33y5g1a8isg95.tk +erunko.cf +erunko.ga +erunko.gq +erunko.tk +eruopwfv.shop +eruslook.ru +ervackrdes.xyz +ervbz.live +ervgre-rfer.online +erw.com +erwinvanstrien.online +erwsh.live +erx.mobi +eryoritwd1.cf +eryoritwd1.ga +eryoritwd1.gq +eryoritwd1.ml +eryoritwd1.tk +erythromycin.website +erzashelby.com +erzincanalperen.xyz +erzincankurufasulye.com +erzincanyildizbakir.com +erzurumankaranakliyat.com +erzurumemlaklari.online +erzurumhabercisi.com +erzurumhaberi.xyz +erzurumkizyurdu.online +erzurumsesveisik.xyz +erzurumyildizevdenevenakliyat.com +es2kbi.us +es2wyvi7ysz1mst.com +esa-one.com +esa-today.com +esabwhiua.shop +esaccas.cf +esaccas.ga +esaccas.gq +esaccas.tk +esamario.com +esanimalhospital.net +esanmail.com +esarwes.cf +esarwes.ga +esarwes.gq +esarwes.tk +esawblin.ga +esawblin.gq +esawblin.tk +esbano-magazin.ru +esbano-online.ru +esbano-ru.ru +esboba.store +esbuah.nl +esc.la +escacd.com +escalaaotronivel.com +escanor99.com +escapadas.online +escape2cruise.com +escapecomponents.store +escapehatchapp.com +escapeling.com +escapeteams.ru +escher-feynman.art +escherfeynman.organic +escholcreations.com +escholgroup.com.au +eschooltopia.net +esckiz.xyz +escolesobertes.cat +escoltesiguies.net +escondidoflorists.net +esconlu.cf +esconlu.gq +esconlu.ml +esconlu.tk +escorpianas.com +escortankara06.com +escortbayanport.com +escortcumbria.co.uk +escorthatti.com +escorts-in-prague.com +escortsaati.com +escortsdudley.com +escortvitrinim.com +escortworcester.co.uk +escritoriolojacenter1.site +escritossad.net +escsft.com +escuelanegociodigital.com +escuelaspoderosainfancia.com +esdbrush.us +esdbrushes.biz +esdbrushes.net +ese.kr +esemail.club +esemay.com +esender18.com +esenlernak.xyz +esenyurt-travesti.online +esenyurt-travesti.xyz +esenyurttravesti.fun +esenyurttravesti.info +esenyurttravesti.website +eseoconsultant.org +esfahanfood.com +esforum.us +esgame.pl +esgecsesli.xyz +esgeneri.com +esginvestments.com +esglesiatrevol.com +esgpromos.com +esherguo.com +eshipped.com +eshkmassage.site +eshta-cdn.com +eshta-studio.com +eshta.com +eshtacapital.com +eshtacdn.com +eshtafinance.com +eshtaholdings.com +eshtajobs.com +eshtal.com +eshtamall.com +eshtanet.com +eshtapay.com +eshtr.online +esidin.cf +esidin.ga +esidin.gq +esidin.ml +esidin.tk +esiix.com +esika.cd +esipfed.online +esiresid.shop +esishyd.cf +esishyd.ga +esishyd.tk +esivkov-spb.ru +esj1r8odwoo7eui.xyz +eskctgah.xyz +eskile.com +eskisehirdizayn.com +eskisehirhgm.xyz +eskortbayanizmir.net +eskortlar.biz +eslattice.site +eslchartsgg.com +eslechealth.cf +eslechealth.ga +eslechealth.ml +eslechealth.tk +eslicepizzaboqueriabarcelona.com +esltmc.online +esm.com +esmaczki.pl +esmaeeli.us +esmagpe.cf +esmeraldamagina.com +esmqp.com +esmst.ru +esmuse.me +esmvke.com +esonesox.shop +esotericans.ru +esoumail.com +esoundbest.info +esoxeson.shop +esoxnews.com +esoxy.xyz +espaceclient.live +espacepersonnel.pro +espaintimestogo.info +espaintimestogo.us +espamted3kepu.cf +espamted3kepu.ga +espamted3kepu.gq +espamted3kepu.ml +espamted3kepu.tk +espana-official.com +espanafarmaciaonline.xyz +espanatabs.com +espavosolutions.ru +espcialidadedacasa.website +especially-beam.xyz +espera-supplements.app +espera-supplements.ru +espera-supplements.us +espheratus.com +espi-cdn.com +espil-place-zabaw.pl +espinozadev.com +espinozamail.men +espinozaop.org +espiritusanto.org +esportenanet.com +esportgaming.com +esportmeesters.com +esportscoaching.net +esprit-pixel.com +espritblog.org +esprity.com +espycameras.com +esr.foundation +esrialternative.com +essanorakglad.site +essaouira.xyz +essay-introduction-buy.xyz +essay-top.biz +essayhelp.top +essaypian.email +essayrigh.space +essaysandthesis.online +essaysofthelight.org +essayto.buzz +essburyametel.site +essecs.com +essenard.gq +essentiaionized.com +essentialbabyitems.com +essentialm2.com +essentialsecurity.com +esseriod.com +essgladsuhoy.site +essh.ca +essjayar.com +esskernkofta.site +essmetelvyuga.site +esspurgagrafa.site +esspurgaparka.site +esssuhoyshuba.site +esszvenonomer.site +est.une.victime.ninja +esta-system.com +estabbetting.xyz +estalya.us +estate-invest.fr +estateboss.com +estatenearby.com +estateplanninglawyerscalifornia.com +estaterussia.info +estchnakerster.com +esteembpo.com +estekepcekulak.com +estekiskele.online +estekiskele.xyz +estelefon.site +estelove.com +esteplastikcerrahi.com +esterogeneraldentist.com +estesacekim.com +esteticum.ru +estetik.pw +estevespartners.com +estilsom.xyz +estimacao.ngo +estimat.info +estimatd.com +estivates793kg.online +estkolonya.site +eston.best +estonia-nedv.ru +estoniacv.online +estoniacv.xyz +estopg.com +estrate.ga +estress.net +estudent.edu.pl +estudiarcurso.online +estudio-gato.com +esuitesneakpeak.com +esveneckern.site +eswobd.info +eswseswo.shop +esxgrntq.pl +esy.es +eszernohleba.site +eszksy.us +eszmflzd.shop +et4veh6lg86bq5atox.cf +et4veh6lg86bq5atox.ga +et4veh6lg86bq5atox.gq +et4veh6lg86bq5atox.tk +et9p6.site +etaajir.net +etaalpha.spithamail.top +etabox.info +etachkila.com +etaetae46gaf.ga +etagirf.best +etaksa.com +etalase1.com +etang.com +etarochester.org +etas-archery.com +etaxmail.com +etbclwlt.priv.pl +etbicodys.site +etbiym.rest +etc.xyz +etchedinsilicon.com +etcone.net +etdcr5arsu3.cf +etdcr5arsu3.ga +etdcr5arsu3.gq +etdcr5arsu3.ml +etdcr5arsu3.tk +etdkewlpzb.space +etelford.net +etermin.info +eternalfitonline.com +eternalist.ru +eternalnymphets.net +eternity-craft.ru +etfstudies.com +etgdev.de +etgm9v.us +eth2btc.info +ethanolmarketplace.com +ethanschutzman.net +ether123.net +etherbackup.com +ethereal.email +etherealplunderer.com +ethereum-bestchange.ru +ethereum-code.site +ethereum1.top +ethereum24.ru +ethereumcodes.net +ethereumru.ru +etherinlmanalper.ga +etherinlmanalper.ml +etherinlmanalper.tk +ethermes.com +ethermes.org +etherpress.com +ethersports.org +ethersportz.info +etherstorm.org +ethicalencounters.org.uk +ethicallystrapped.com +ethiccouch.xyz +ethicsdishmoving.website +ethicsiq.org +ethicsliteracy.org +ethicusassetmanagement.com +ethiopia-nedv.ru +ethiopianmanufacturing.com +ethnicfoodrestaurants.com +ethnicingredients.com +ethreach.org +ethweneam.info +ethworks.org +etican.ga +etican.gq +etican.ml +eticaret.cloud +eticof.cf +eticof.ga +eticof.gq +eticof.ml +eticof.tk +etinpsychel.tk +etio90.org +etio90day.biz +etiology167vz.online +etiquetteconfidencecredibility.com +etiquettelatex.com +etisbew.xyz +etisun.com +etj64.space +etkilihaber.com +etlbox.com +etlgr.com +etlmgr.shop +etmail.com +etmail.top +etmexplorer.com +etnipuzzle.com +etoaffo.shop +etobx.xyz +etochq.com +etoic.com +etonracingboats.co.uk +etopmail.com +etoreo.com +etorkar.top +etorrent.shop +etotaal.info +etotvibor.ru +etovar.net.ua +etoymail.com +etpgajol.shop +etr500.cf +etr500.ga +etr500.gq +etr500.ml +etr500.tk +etr610.cf +etr610.ga +etr610.gq +etr610.ml +etr610.tk +etrackarchitect.com +etranquil.com +etranquil.net +etranquil.org +etras.ru +etravelgo.info +etreband.ru +etruxiod.shop +etrytmbkcq.pl +ets-products.ru +ets2android.mobi +ets6y.com +etsiptv.xyz +etspirt.ru +etszys.com +ettke.com +ettsetth.shop +etunad.cf +etunad.ga +etunad.ml +etunad.tk +eturist.info +etutplanlama.xyz +etvdruqm.shop +etwienmf7hs.cf +etwienmf7hs.ga +etwienmf7hs.gq +etwienmf7hs.ml +etxm.gq +etzdnetx.com +eu-med4.site +eu-portals.info +eu.dlink.cf +eu.dlink.gq +eu.dns-cloud.net +eu.dnsabr.com +eu.igg.biz +eu42ti.site +eu6genetic.com +eu83t4nncmxv3g2.xyz +euabds.com +euaqa.com +eubicgjm.pl +euchante.com +euchlidlabs.com +eucryptoassociation.org +eudemon422po.xyz +eue51chyzfil0.cf +eue51chyzfil0.ga +eue51chyzfil0.gq +eue51chyzfil0.ml +eue51chyzfil0.tk +eugenecentral.com +eugeneexperiencedrealtors.com +eugenehairsalons.com +euieua.com +eujyrtrffvdtrts.xyz +eukip.site +euleadong.site +eulogized693df.online +eupandevae.icu +euparknow.com +eur-sec1.cf +eur-sec1.ga +eur-sec1.gq +eur-sec1.ml +eur-sec1.tk +eur0.cf +eur0.ga +eur0.gq +eur0.ml +eurasiaaesthetic.com +eurasiamedia.biz +eurasiandigitalventures.fund +euratom.cd +eurazx.com +eurntm.com +euro2021football.com +euro24.bet +euro24.casino +euro24bet11.com +euro24bet12.com +euroaromalab.org +eurobail.com +eurobenchmark.net +eurobet88.net +eurobrazilcorretora.com +eurocasinos.biz +eurochocolate.club +eurochocolates.online +eurocuisine2012.info +eurodmain.com +eurofurniturelondon.com +eurogenet.com +eurohoopsdome.com +eurointex.ru +euromail.tk +euromech.com +euromillionsresults.be +europa-takeaway.com +europakebabdos.com +europartsmarket.com +europe-daily-news.host +europeaa318.xyz +europeamericabanglanews.com +europeanestate.com +europeanopenseries.online +europeanservicegroup.com +europeanvoice.info +europecruisessale.com +europeforcreators.com +europeforcreators.org +europeproducts2020.website +europesmail.gdn +europesurgery-uk.com +eurostyle46.ru +eurotrip-now.xyz +eurotripdeal.xyz +eurouniversitybahrain.com +eurovag.com +euroweb.email +eurox.eu +eusale2020.website +eusouempreendedoronline.com +euwbvkhuqwdrcp8m.cf +euwbvkhuqwdrcp8m.ml +euwbvkhuqwdrcp8m.tk +euwettensy.info +eux6oep.space +ev-ee.com +ev-mc.ru +ev.camp +ev1.nl +eva.bigmail.info +eva.fyi +evacarstens.fr +evacuator-bronnitcy.ru +evaelfie.mobi +evaforum.info +evaherbals.info +evakuator-teh.ru +evalovia.best +evaluatorapp.com +evalusave.com +evamail.com +evanackmann.net +evandro.cd +evanfox.info +evanhamilton.buzz +evanlifesciences.com +evanodonnell.buzz +evansimmonsmft.net +evanstonrealestateblog.com +evansville.com +evaonspace.com +evasea.com +evashirts.net +evavbe.ga +evavbe.gq +evavbe.ml +evavbe.tk +evavoyance.com +evbank.ru +evbholdings.com +evbholdingsllc.com +evcmail.com +evcr8twoxifpaw.cf +evcr8twoxifpaw.ga +evcr8twoxifpaw.gq +evcr8twoxifpaw.ml +evcr8twoxifpaw.tk +evcsoft.com +evdemutfakta.com +evdenekonomi.xyz +evdenevenakliyat.link +evdnbppeodp.mil.pl +evdy5rwtsh.cf +evdy5rwtsh.ga +evdy5rwtsh.gq +evdy5rwtsh.ml +evdy5rwtsh.tk +eveadamsinteriors.com +eveav.com +eveaz.xyz +eveb5t5.cf +eveb5t5.ga +eveb5t5.gq +eveb5t5.ml +eveb5t5.tk +evelandtrading.com +evelinecharlespro.com +evelineshoes.com +evelynnichols.com +evendmjishj.email +evengtough.xyz +evengwassevent.xyz +evenmoralistface.website +evenor-tech.net +eventao.com +eventexchange.ru +eventmeile1.com +eventplanneradvisor.com +eventpronto.com +events24.space +eventsbylinya.com +eventslane.com +eventsmith.net +eventtrainingsingapore.com +ever-market.ru +everestcast.net +evergo.igg.biz +evergreenghana.net +evergreenideas.info +evergreensenior.site +everifies.com +everlest.ru +everleto.ru +eversonia.net +evertime-revolution.biz +everto.us +everwallapi.com +everwallwedding.com +every-day-living.com +everyamerican.pub +everybabes.com +everybes.tk +everybodyone.org.ua +everybodyweb.com +everyday1234.live +everydayclub.ru +everydoorhasastory.com +everydroid.com +everyhomeforchrist.live +everyhomeforchrist.net +everynewr.tk +everyoneapparel.com +everyoneisdisappointed.com +everyshop.us +everytg.ml +everything-it.us +everythingcqc.org +everythingideas.com +everythingisnothing.com +everythinglifehouse.com +everythingpages.com +everythingstyle.com +everythingtheory.club +everythingtheory.org +everythingtheory.science +everythingz.club +everyusb.org +everywear-store.online +everywhen.best +evesage.com +evesmobile.com +evetdogrudurnm33349.cf +evetdogrudurnm33349.ml +evgaumgfh.shop +evgmodern.ru +evhybrid.club +evictionlawyersflorida.com +evidencebasedhealthclinic.com +evidencebasedneurologyclinic.com +evidenceintoaction.org +evidu.org +eviemccarthy.buzz +evil.download +evilbruce.com +evilcomputer.com +evilcore.tk +evilempire.website +evilin-expo.ru +evilmachines.net +evimekargocanta.xyz +evimrenk.net +evinad.cf +evinad.gq +evinad.ml +evironmentalrefugee.com +evischool.hk +evisumloket.com +evitamini.site +eviteuk.live +evkiwi.de +evlenmiyorum.com +evliyaogluotel.com +evlon1.us +evmail.com +evo.financial +evo.gold +evo.industries +evo.institute +evo.legal +evo.loans +evoaled091h.cf +evoaled091h.ga +evoaled091h.gq +evoaled091h.ml +evoaled091h.tk +evoandroidevo.me +evobmail.com +evocurrencies.com +evodigital.global +evodinner.com +evogame88.com +evolueselon.site +evolution.cd +evolution.financial +evolution24.de +evolutiongene.com +evolutionofintelligence.com +evolve-fireworks.com +evolveconsulting.biz +evolvedprofits.org +evolvedrecreationnews.club +evolvedworld.net +evolvedworld.online +evomindset.org +evonb.com +evonne.space +evonse.com +evopad.cf +evopad.ga +evopad.gq +evopad.ml +evopad.tk +evopeak-malenow.com +evopo.com +evopurr.com +evoraclinic.com +evoresidentialstopforeclosure.com +evoro.eu +evortal.eu +evoseed.com +evosocceronline.com +evotimer.com +evoveo.com +evpatiy.ru +evpskp.site +evq2.com +evr1.net +evropost.top +evropost.trade +evsmpi.net +evt5et4.cf +evt5et4.ga +evt5et4.gq +evt5et4.ml +evt5et4.tk +evuwbapau3.cf +evuwbapau3.ga +evuwbapau3.gq +evuwbapau3.ml +evwig.com +evxmail.net +evyush.com +ew-purse.com +ewa.kr +ewarjkit.in +ewatchesnow.com +eweathervane.com +ewebpills.com +ewebzine.net +eweemail.com +ewer.ml +ewerewea.shop +ewfcfew.online +ewgzsi.us +ewhig.xyz +ewjklflets.com +ewjklfmy.com +ewjklfweb.com +ewjklfyour.com +ewofjweooqwiocifus.ru +eworldplaza.com +ewpropertymanagement.info +ewpropertymanagement.net +ewpropertymanagement.org +ewrfw17.xyz +ewroteed.com +ewt35ttwant35.tk +ewtrip.club +ewumail.com +ewuobxpz47ck7xaw.cf +ewuobxpz47ck7xaw.ga +ewuobxpz47ck7xaw.gq +ewuobxpz47ck7xaw.ml +ewuobxpz47ck7xaw.tk +ewuyry.icu +eww.ro +ewwq.eu +ewxvrbhl.shop +ex-you.com +ex21pars.com +exactfitrepaircoupling.com +exactmail.com +exadrental.com +exaltatio.com +exaltic.com +examanedemanejocr.com +examcheap.com +examentechnique-site.com +exammission.website +examplefirem.org.ua +exampleforall.org.ua +examsread.com +exas20.site +exathat.cf +exathat.gq +exathat.ml +exathat.tk +exatpay.gq +exatpay.ml +exatpay.tk +exbackonline.com +exbcgj.rest +exboag.us +exboxlivecodes.com +exbte.com +exbts.com +excavatea.com +excavateljb.email +excavationmoon.xyz +excavatorhydrostaticpumps.biz +excavatorpumpparts.info +excavatorpumps.biz +excavatorrepairparts.biz +exceedexpose.us +exceedlaw.buzz +exceedproducts.club +excel-biz.ru +excel-guru.ru +excel-master.ru +excel-seminar.ru +exceleste.online +excellencance.xyz +excellencery.online +excellent-chinese-takeaway.com +excellent-supporting.com +excellentpro.ru +excellx.com +excelta.us +excelwfinansach.pl +exceptionalgiftshop.online +exceptionance.xyz +excersisedaystas.xyz +exchange-wallet.info +exchangefinancebroker.org +exchangefundsrealtime.com +excho.ru +excipientadvisor.com +excipientbook.com +excipientnet.com +excipientnetwork.com +excipientregister.com +excipientsadvisor.com +excipientshome.com +excipientstrade.com +excipientswiki.com +excipientwiki.com +excisemanship.best +excitedchat.com +excitingsupreme.info +excitingz.club +exclusivetravels.ru +exclusivewebhosting.co.uk +excursionista.ru +excursionshop.ru +exdisplaykitchens1.co.uk +exdocor.cf +exdocor.ml +exdocor.tk +execnursetech.com +executive-protection.org +executive.name +executiveleadershipsummit.com +executivelounge.media +executivenomads.com +executjcjh.bar +execuzio.xyz +exemptchildprefer.website +exems.net +exent.global +exent.melbourne +exent.online +exent.sydney +exentv1.com +exercio.online +exercisechain.com +exercisetrainer.net +exerdi.cf +exerdi.ga +exerdi.ml +exerdi.tk +exergaming.academy +exertwheen.com +exf5iqst87.icu +exfactor.com +exfcui.rest +exgenere.com +exhesi.cf +exhesi.ga +exhesi.gq +exhesi.ml +exi.kr +exi8tlxuyrbyif5.cf +exi8tlxuyrbyif5.ga +exi8tlxuyrbyif5.gq +exi8tlxuyrbyif5.ml +exile-rp.xyz +exileslime.buzz +eximail.com +exiq0air0ndsqbx2.cf +exiq0air0ndsqbx2.ga +exiq0air0ndsqbx2.ml +existiert.net +exisys.com +exitlag.ru +exitstageleft.net +exkiyx.xyz +exmichaled.tk +exmoordistillery.com +exmooroajn.space +exmx.icu +exneta.cf +exneta.ga +exneta.gq +exneta.ml +exnhxagu.site +exo-eco-photo.net +exo6s.site +exocmet.cf +exocmet.ga +exocmet.gq +exocmet.ml +exocmet.tk +exohab.com +exolozinium.ru +exoly.com +exordize.best +exoticcloth.net +exoticcoupons.com +exovel.ga +exovel.gq +exovel.ml +expanda.net +expandcode.com +expandiro.info +expansioncharm.com +expansivehr.com +expanstbrn.space +expatinsurances.com +expatjourney.app +expatjourney.world +expatmama.net +expectationsmusic.com +expeditionunderdog.com +expensa.com +experianprotect.com +experienceamg.com +experiencenormandy.com +experiencesegment.com +experienciacarmelo.com +experimentaljetset.xyz +experis-technology-solutions.com +expert-a.ru +expert-monster.ru +expert-ufo.ru +expertadnt.com +expertadvisormt4ea.com +expertcad.com +experthoney.com +expertmanager.ru +expertmarketinginfo.com +expertpestcontrolcallusnow.com +expertroofingbrisbane.com +expertruby.com +expirebox.com +expirebox.email +expirebox.me +expirebox.net +expirebox.org +expl0rer.cf +expl0rer.ga +expl0rer.gq +expl0rer.ml +expl0rer.tk +explicitgamer.com +explicitnwg.email +explodemail.com +exploit-pack.net +explorandoorlando.com +explorationfunder.com +explorativeeng.com +exploraxb.com +exploredcmetro.com +explorehotel.xyz +exploreonlinecolleges.com +exploresplit.com +explosin.online +explosivecandy.com +expo2020.media +expo2021dubai.media +expobids.info +exporthailand.com +expos3d.com +exposifood.com +exposureweb.net +expotavrida.ru +expozy.ru +expresgrup.com +express-date-having-else.xyz +express-mail.info +express-mvr.com +express-souq.website +express.net.ua +express1040.space +expressambalaj.com +expressambalaj.online +expressambalaj.xyz +expressbahiscasino.xyz +expressbest.ru +expressbuy2011.info +expressbuynow.com +expresscafe.info +expresscashcanada.com +expressemail.org +expressgopher.com +expresslan24.eu +expressmedtransportation.com +expressnote.press +expressui.com +expressyourselfceramics.com +expreswin42.com +expreswin77.com +expreswin81.com +expreswin82.com +expreswin88.com +exprisoner.com +exprosliver.com +expwebdesign.com +exrelay.app +exrp.cf +exrp.tk +exrutor.site +exserver.top +exsyde.com +ext-where-is-the-panel.info +extafas.gq +extafas.ml +extanewsmi.zzux.com +extels.ru +extendmale.com +extendsdesign.com +extendswindows.com +extenzereview1.net +extgeo.com +extic.com +extinheck.ga +extinheck.gq +extinheck.ml +extinheck.tk +extra-breast.info +extra-penis-enlargement.info +extra.oscarr.nl +extraaaa.tk +extraaaa2.ga +extraaaa2.tk +extraale.com +extraam.loan +extrabooks.site +extracccolorrfull.com +extracoloorfull.com +extradingsystems.com +extradouchebag.tk +extraguide.site +extraguides.site +extralib.site +extramama.ru +extramanual.site +extramanuals.site +extraprofit.ru +extrarole.com +extrasize.biz +extrasize.info +extraterretstrial.store +extraterretstrial.website +extravagandideas.com +extravagant.pl +extravangantlyloved.life +extremail.ru +extremcase.com +extreme-trax.com +extremebacklinks.info +extremedown.ninja +extremeeasy.com +extremeideasnow.info +extry.org +exttract.email +extureme.com +exwta.us +exxale.shop +exxale.space +exxon-mobil.tk +exxoncars.com +exxx.club +exy.email +ey5kg8zm.mil.pl +ey943m8deswkmst.com +eyal-golan.com +eyandex.ru +eyaok1.us +eybnmgbd.shop +eybtjr.us +eyeballstore.com +eyecanyrdo.space +eyecaredoctors.net +eyecaremangement.net +eyeemail.com +eyefullproductions.com +eyejewlzz.net +eyelashextensionsinottawa.com +eyelashinottawa.com +eyelidsflorida.com +eyeonprisons.com +eyepain.org +eyepaste.com +eyepatchesforboys.com +eyesandfeet.com +eyesandfruitloops.com +eyespains.info +eyesshop.live +eyetique.info +eyimail.com +eykr7a.com +eylqny.xyz +eylulbasimevi.com +eym69.com +eym69.me +eymail.com +eymenege211.ml +eyndc.com +eyqkwn.info +eyso.de +eysoe.com +eytnpggb.xyz +eyusedf.shop +eywa-stroy.ru +eywheywi.shop +eyx4g9.com +eyyvuguo.shop +ez-shopping.info +ez.lv +ez2zc.com +ezadvantage.com +ezaklady.net.pl +ezanalytics.info +ezbatteryconditioning.com +ezbetlive.com +ezboost.tk +ezdato.com +ezeble.site +ezebora.com +ezeca.com +ezehe.com +ezekush.com +ezen43.pl +ezen74.pl +ezentreeslt.com +ezerplus.com +ezetpar.cf +ezetpar.ga +ezetpar.gq +ezetpar.ml +ezetpar.tk +ezfill.club +ezfill.com +ezfree.online +ezgaga.com +ezhandui.com +ezhulenev.fvds.ru +ezico.loan +eziegg.com +ezimail.com +ezinmj.us +ezip.site +ezisource.com +ezlearningcourses.com +ezlk0.info +ezlo.co +ezmaexprees.com +ezmail.top +ezmailbox.info +ezmails.info +ezmine.online +ezmspcloud.com +eznul.live +ezowerth.cf +ezowerth.ga +ezowerth.tk +ezoworld.info +ezpackandpost.com +ezprice.co +ezprvcxickyq.cf +ezprvcxickyq.ga +ezprvcxickyq.gq +ezprvcxickyq.ml +ezprvcxickyq.tk +ezpulse.com +ezralandry.com +ezriderairride.com +ezriderairshocks.com +ezsi.email +ezskoolz.com +ezstest.com +ezuneed.com +ezvsmk.tk +ezweeedonline.best +ezy2buy.info +ezybarber.com +ezyscholarships.com +ezz.bid +ezze.tech +ezzzi.com +f-aq.info +f-best.net +f-best.org +f-ckjack.com +f-clubtv.com +f-hanayoshi.com +f-itnes.com +f-look.ru +f-nacarisk.ru +f-neyrosystem.ru +f-oproz.ru +f-response.net +f-response.org +f-unicorn.com +f-wheel.com +f.bgsaddrmwn.me +f.moza.pl +f.polosburberry.com +f.seoestore.us +f00d-network.com +f0205.trustcombat.com +f0ae7.club +f0d1rdk5t.pl +f0k4vk.us +f0nbot.us +f1775.com +f18yqi.info +f1batt.com +f1batteries.com +f1betiran.net +f1betiran.org +f1bob.com +f1fan.xyz +f1kzc0d3.cf +f1kzc0d3.ga +f1kzc0d3.gq +f1kzc0d3.ml +f1kzc0d3.tk +f1mohsc5r17tuv8.xyz +f1pt.com +f1s4rr.us +f1ty6b.site +f1wr04.us +f2021.me +f2bcasino.info +f2bcasino.net +f2bcasino.org +f2dtransfer10.com +f2ht.us +f2i.ru +f2ksirhlrgdkvwa.cf +f2ksirhlrgdkvwa.ga +f2ksirhlrgdkvwa.gq +f2ksirhlrgdkvwa.ml +f2ksirhlrgdkvwa.tk +f2movies.club +f2movies.fun +f2movies.online +f2movies.xyz +f301.com +f31dc8.info +f342.club +f39mltl5qyhyfx.cf +f39mltl5qyhyfx.ga +f39mltl5qyhyfx.gq +f39mltl5qyhyfx.ml +f3a2kpufnyxgau2kd.cf +f3a2kpufnyxgau2kd.ga +f3a2kpufnyxgau2kd.gq +f3a2kpufnyxgau2kd.ml +f3a2kpufnyxgau2kd.tk +f3c1jl.online +f3osyumu.pl +f3r2x5.com +f3wv61.us +f4445.com +f44el.site +f499a.club +f49e4ad.xyz +f4af545634b4a6ae0c.xyz +f4i20j.casa +f4k.es +f5.si +f538.xyz +f53tuxm9btcr.cf +f53tuxm9btcr.ga +f53tuxm9btcr.gq +f53tuxm9btcr.ml +f53tuxm9btcr.tk +f5brmn.us +f5cb9.site +f5d0b.club +f5f6a.xyz +f5foster.com +f5tv.site +f5u3m.top +f5xzer.site +f64kn.site +f64uf.com +f691.club +f6g2w9.accountant +f6kbl.cloud +f6vexe.us +f6w0tu0skwdz.cf +f6w0tu0skwdz.ga +f6w0tu0skwdz.gq +f6w0tu0skwdz.ml +f6w0tu0skwdz.tk +f7e6.xyz +f7qmww.online +f7scene.com +f81tl.site +f843de1a.xyz +f88store.com +f8r1ux.site +f8x1eb.us +f9094.com +f9164.club +f921935.xyz +f97vfopz932slpak.cf +f97vfopz932slpak.ga +f97vfopz932slpak.gq +f97vfopz932slpak.ml +f97vfopz932slpak.tk +f9827.com +f9c3df.club +f9enterprises.icu +f9ut7.icu +fa23d12wsd.com +fa23dfvmlp.com +fa38.club +fa416.site +fa452.xyz +fa4pmz.us +faa-certification.com +faaakb000ktai.ga +faacertificateofwaiver.com +faadictionary.com +faadronewaiver.com +faaliyetim.xyz +faan.de +faatest.info +faatest.net +faawaiver.info +faawaiver.net +fabaporter.com +fabelk.monster +fabfabhome.com +fabhax.com +fabianschlaepfer.com +fabioscapella.com +fabnicalsa.tk +fabricrebublic.store +fabricsonmillst.com +fabricsukproperty.com +fabricsvelvet.com +fabricsxla.com +fabricszarin.com +fabrum.ru +fabrykakadru.pl +fabrykakoronek.pl +fabstract.org +fabu11.site +fabu14.site +fabu6.site +fabulouslifestyle.tips +face-club.website +face-tamtam.site +face2face-cafe.site +facebaby.life +facebak.online +facebook-adult.com +facebook-arenda.ru +facebook-egy.com +facebook-email.cf +facebook-email.ga +facebook-email.ml +facebook199.xyz +facebooklol.ga +facebookmail.gq +facebookmail.ml +facebooky.shop +facech.com +facedropship.com +faceepicentre.com +faceimagebook.com +facemaskbox.com +facenewsk.fun +faceplacefoto.com +facepook.ru +faceporn.me +facerodate.fun +faceshop.live +facestate.com +facetlabs.net +facewaka.site +facialboook.site +facilesend.com +facilitation.buzz +facilityservices24.de +fackme.gq +facpidif.ga +facpidif.gq +facpidif.ml +facpidif.tk +factnotfiction.org +factopedia.pl +factor-10.com +factorizalo.com +factorlibidox.icu +factorquemagrasacomprar.com +factory-action-hit.space +factoryburberryoutlet.com +factorydrugs.com +factoryfutsal.com +factoryhealth.website +factorypeople.com +factsabouteverything.org +factsandtops.ru +factsofturkey.net +factume.online +factume.shop +facturecolombia.info +factuur.org +factwalk.com +faculdade.global +faculdadejk.net +faculdadejk.org +facy-jp.com +fada6868.com +fades-sad.ru +fadingemail.com +fadingemails.com +fadluna.com +fadve.ru +fae412wdfjjklpp.com +fae42wsdf.com +fae45223wed23.com +fae4523edf.com +fae452we334fvbmaa.com +fae4dew2vb.com +faea2223dddfvb.com +faea22wsb.com +faea2wsxv.com +faeaswwdf.com +faecesmail.me +faekos.website +faer.oazis.site +faer2.oazis.site +faer3.oazis.site +faer5.oazis.site +faeress.ru +faerynicethings.info +faerynicethings.net +faerynicethings.org +faes-dev1.info +faesdev1.host +faesiher.cf +faesiher.ga +faesiher.tk +fafacheng.com +fafamai.com +fafrem3456ails.com +fag.wf +fagbemi.biz +fagbxy1iioa3ue.cf +fagbxy1iioa3ue.ga +fagbxy1iioa3ue.gq +fagbxy1iioa3ue.ml +fagbxy1iioa3ue.tk +fagkn.live +fagozi.store +fahad-tamimi.info +fahastores.site +fahmi-amirudin.tech +fahutanpraise.website +faicarde.cf +faicarde.ga +faicarde.gq +faicarde.ml +faicarde.tk +faiencaqkw.space +failbone.com +failgifs.com +failinga.nl +failmega.ru +failoftheweek.com +failoftheweek.net +failoftheyear.com +failure.zone +failureoftheday.com +failureoftheweek.com +faiphoge.cf +faiphoge.ga +faiphoge.gq +faiphoge.ml +faiphoge.tk +fair-paski.pl +fair-tour.ru +fairandcostly.com +fairchildsystems.com +fairdealing.org +fairesonmasque.com +fairfaxbracesdoctor.com +fairholmepartner.com +fairhousingmd.com +fairieslagoon.net +fairleigh15733.co.pl +fairmontzimbalilodge.com +fairocketsmail.com +fairprice.house +fairwammqi.space +fairylig.xyz +fairymails.net +fairynicethings.net +fairytaleworld.info +faisalnabulsi.com +faispechab.cf +faispechab.ml +faispechab.tk +faithbox.email +faithbox.us +faithecchurch.org +faithin.org +faithkills.com +faithkills.org +faithmail.org +faithmountainbaptist.net +faithq.org +faithrelegateframe.site +faizsizaraba.com +faizsizev.net +fajarqq.org +fajeras.design +fajillasparavasosdepapel.com +fajnadomena.pl +fajrsystem.com +fake-box.com +fake-email.pp.ua +fake-foakleys.org +fake-mail.cf +fake-mail.ga +fake-mail.gq +fake-mail.live +fake-mail.ml +fake-mail.tk +fake-raybans.org +fake-wegwerf.email +fake.goodge.ca +fake.toys +fake.zerofly.blog +fakecallapp.com +fakedemail.com +fakedoctorsnote.net +fakeemail.de +fakeemail.tk +fakeinbox.cf +fakeinbox.com +fakeinbox.ga +fakeinbox.info +fakeinbox.ml +fakeinbox.tk +fakeinformation.com +fakelouisvuittonrun.com +fakemail.com +fakemail.fr +fakemail.intimsex.de +fakemail.net +fakemail.win +fakemail93.info +fakemailgenerator.com +fakemailgenerator.net +fakemails.cf +fakemails.ga +fakemails.gq +fakemails.ml +fakemailz.com +fakemyinbox.cf +fakemyinbox.com +fakemyinbox.ga +fakemyinbox.gq +fakemyinbox.ml +fakeoakleys.net +fakeoakleysreal.us +fakesatiricfeud.website +faketagheuer.top +faketemp.email +fakewings.com +fakher.dev +fakima.com +fakiralio.ga +fakiralio.ml +faktionlabs.com +faktoper.ru +fakyah.ga +fakyah.ml +falazone.com +falcer.xyz +falconcapital.investments +falconheavylaunch.net +falconsportsshop.com +falconsproteamjerseys.com +falconsproteamsshop.com +falconssportshoponline.com +falffers.com +falguckpet.ml +falguckpet.tk +fall-sale-offers.shop +fallin1.ddns.me.uk +fallin2.dyndns.pro +fallinlove.info +fallloveinlv.com +fallmt2.com +fallog.com +fallschurchdentalwellnesscenter.com +fallschurchshowerglass.com +fallsforyou.com +fallsopc.com +fallstyleforu.com +falmeto.cf +falmeto.ga +falmeto.gq +falmeto.ml +falmeto.tk +falove.com +falrxnryfqio.cf +falrxnryfqio.ga +falrxnryfqio.gq +falrxnryfqio.ml +falrxnryfqio.tk +famail.win +famalsa.cf +famalsa.ga +famalsa.gq +famalsa.ml +famalsa.tk +famarecords.com +fameabstract.buzz +famemc.net +famemma.net +famenyc.org +familia-forum.ru +familiaresiliente.com +familiarizeyourself.com +familiashop.ru +familiekersten.tk +familienhomepage.de +famillet.com +family-class.ru +family-medical.website +familyandlife.ru +familycreeps.com +familyfallriver.org +familyfive.ru +familyhomesecurity.com +familyindependent.com +familylist.ru +familyoo.com +familyprqs.club +familyprqs.host +familyright.ru +familysavingsz.com +familyschoolbell.com +familytoday.us +fammix.com +famousfamigliauae.com +famoustwitter.com +fampec.com +famsend.com +famsunny.com +fanabulous.page +fanack.info +fanatxclub.com +fanbasic.org +fancinematoday.com +fanclub.pm +fanclubgiusepperossiny.com +fancoder.xyz +fancung.com +fancung.net +fancung.org +fancy-tapes.com +fancycarnavalmasks.com +fancycats.net +fancygee.xyz +fandamtastic.info +fandastico.com +fandaygames.com +fandemic.co +fanebet.com +fanemone.com +fanera365.ru +fanformed.com +fangchemao.com +fangdaige.com +fangdrooperver.ru +fangeradelman.com +fangfoundry.com +fanghuayuanyule.com +fangoh.com +fangsustri.cf +fangsustri.gq +fangsustri.ml +fangsustri.tk +fanhaodaquan.xyz +fanlogs.com +fanmonero.dns.navy +fannewshop.live +fannny.cf +fannny.ga +fannny.gq +fannny.ml +fanonne.ru +fanow1.site +fanpagenews.com +fanpix.com +fanpoosh.net +fanposh.net +fanpoush.com +fanpoush.net +fanqiegu.cn +fanrecognition.com +fans2fans.info +fansgrid.net +fansgrid.org +fanstrading.com +fansub.us +fansubgroup.com +fansworldwide.de +fanta24.com +fantalk.ru +fantaseri.ru +fantask.online +fantasque.best +fantastictask.info +fantastictask.org +fantastictasks.org +fantastictees.us +fantasy.cd +fantasyfinish.site +fantasyfootballhacks.com +fantasyhatch.com +fantasymail.de +fantasypodcast.com +fantasyri.ru +fantasysportsmanager.com +fantelu7.com +fanters.org +fanters.site +fantoma.best +fantomail.tk +fantorg96.ru +fanz.info +fanzer.com +fanzuku.com +fap.buzz +fapa.com +fapestore.site +fapeta.info +fapfiction.com +fapfiction.net +fapfiction.org +fapfl1.us +faphd.pro +fapinghd.com +fapjerk.com +fapufio0.site +fapvideo.pro +fapxxx.pro +fapzo.com +fapzy.com +faqewebvizional.website +far-king.com +far51.website +faraon-cazino.online +faraon.biz.pl +farbar.site +farchact.com +fardadl.site +farebooking.online +faremart.website +faremzon.com +farendear.com +farenga.fun +farewelltothee.com +farewqessz.com +farfrontier.net +farfurmail.tk +farfuturefate.com +fargus.eu +farijagiratikamiki10.ru +farimusicgroup.com +farinut.club +farkhi5oiy.com +farkos.website +farma-shop.tk +farma-shop24.com +farmacialoreto.shop +farmaciaporvera.com +farmakoop.org +farmamail.pw +farmandkettlefoods.com +farmasine.online +farmatsept.com +farmaz.space +farmbotics.com +farmbotics.net +farmdeu.com +farmer.are.nom.co +farmerlife.us +farmerrr.tk +farmersdictionary.com +farmersreference.com +farmerstrader.adult +farmingdictionary.com +farmingglossary.com +farmisa.info +farmmonitor.org +farmphuel.com +farmsteadwines.com +farmtoday.us +farn0n.us +farolillos.online +farr40.ru +farrahouse.co +farrse.co.uk +farsbet.net +farsightsnepal.com +farsihoroscope.net +farsionebet.info +farsionebet.org +fartbet.ru +fartcasino1.fun +fartcazino.fun +farteam.ru +fartovoe1.fun +fartsoundeffect.com +fartwallet.com +farujewelleryforacause.com +farukkurtulus.com +farwqevovox.com +fasciaklinikerna.se +fasciaspa.com +fascinery.com +fasf-wf-stsd01.xyz +fashion-hairistyle.org +fashion-handbagsoutlet.us +fashionactivist.com +fashionans.ru +fashionbeauty.website +fashionbets1.com +fashionbets10.com +fashionbets11.com +fashionbets13.com +fashionbets14.com +fashionbets18.com +fashionbets2.com +fashionbets20.com +fashionbets22.com +fashionbets24.com +fashionbets26.com +fashionbets29.com +fashionbets3.com +fashionbets30.com +fashionbets32.com +fashionbets34.com +fashionbets4.com +fashionbettv10.com +fashionbettv3.com +fashionbettv5.com +fashionbettv7.com +fashiondesignclothing.info +fashiondesignershoes.info +fashionelect.com +fashionfwd.net +fashionglobe.com +fashionhandbagsgirls.info +fashionhandbagsonsale.info +fashionical.com +fashionlibrary.online +fashionplugfans.ru +fashionplugnews.ru +fashionprime.xyz +fashionqq59.xyz +fashionsealhealthcareuniforms.net +fashionshoestrends.info +fashionsportsnews.com +fashionstresser.online +fashionstudios.ru +fashiontips.net +fashionturktv.com +fashionturktv.info +fashionturktv.org +fashionvogueoutlet.com +fashionwallets2012.info +fashionwatches2012.info +fashionwomenaccessories.com +fashionzone69.com +fasigula.name +fask1300.info +faskoss.website +faspoto.ga +faspoto.ml +faspoto.tk +fassagforpresident.ga +fast-breast-augmentation.info +fast-coin.com +fast-content-producer.com +fast-email.info +fast-isotretinoin.com +fast-like-hit.ru +fast-loans-uk.all.co.uk +fast-mail.fr +fast-mail.one +fast-mart-like.space +fast-max.ovh +fast-sildenafil.com +fast-slimming.info +fast-weightloss-methods.com +fast.cd +fast1688.com +fast2bet.asia +fast3std0wnload.com +fast4me.info +fastacura.com +fastair.info +fastandfreebooks.site +fastbigfiles.ru +fastboattolembongan.com +fastcash.net +fastcash.org +fastcash.us +fastcashloannetwork.us +fastcashloans.us +fastcashloansbadcredit.com +fastcashohhomes.com +fastcashorhomes.com +fastcashwahomes.com +fastcdn.cc +fastchevy.com +fastchrysler.com +fastdeal.com.br +fastdownloadcloud.ru +fasteacher.com +fastedates.ru +fastee.edu +fastemails.us +fasterino.ru +fastermail.com +fastermand.com +fasternet.biz +fastestpurchase.com +fastestsmtp.com +fastestwayto-losebellyfat.com +fastfilemover.com +fastfitnessroutine.com +fastfoodlife.com +fastfoodrecord.com +fastfude.com +fastfwd.dev +fastfx.net +fastgetsoft.tk +fastgotomail.com +fastgrowthpodcast.com +fastighetsmaklarenerja.com +fastinfra.net +fastkawasaki.com +fastleads.in +fastloans.org +fastloans.us +fastloans1080.co.uk +fastlottery.net +fastmailer.cf +fastmailforyou.net +fastmailnode.com +fastmailnow.com +fastmailplus.com +fastmailservice.info +fastmazda.com +fastmeetup.site +fastmessaging.com +fastmitsubishi.com +fastmobileemail.win +fastmoney.pro +fastmsg.us +fastnissan.com +fastnotify.press +fastology.net +fastoutlook.ga +fastpass.com +fastpayday-loanscanada.info +fastpaydayloan.us +fastpaydayloans.com +fastpaydayloans.org +fastpaydayloans.us +fastpochta.cf +fastpochta.ga +fastpochta.gq +fastpochta.ml +fastpochta.tk +fastpolin.cf +fastprinters.joburg +fastrazvod.xyz +fastseller.icu +fastsent.gq +fastserna.cf +fastserna.gq +fastserna.ml +fastservice.com +fastshipcialis.com +fastshipping.ru +fastshippingrus.com +fastshippingweed.com +fastslimming.info +fastspacea.ru +fastsubaru.com +fastsurf.com +fastsuzuki.com +fasttoyota.com +fastupgrade.website +fastweightlossplantips.com +fastxxx.site +fasty.site +fasty.xyz +fastyamaha.com +fat-buddha-tallaght-village.com +fat-extinguisher.org +fat-larrys-athlone.com +fata2b.site +fatalisto.tk +fatalorbit.com +fatbelly-cork.com +fatboyhappy.com +fatboyschippy.com +fatcatguide.com +fateh-kimouche.net +fatehkimouche.biz +fatehkimouche.org +fatetiz.ru +fatfinger.co +fatflap.com +fatguys.pl +fathir.cf +fathoni.info +fatjukebox.com +fatk2b.site +fatloss.help +fatloss9.com +fatlossdietreviews.com +fatlossfactorfacts.com +fatlossspecialist.com +fatmagulun-sucu-ne.com +fatmize.com +fatnbald.com +fattahkus.app +fatter.cat +fatty.run +fatum.info +fatwhs.us +faucetpay.ru +fauko.com +faultbaselinefrock.site +fauna1flora.ru +favalabs.site +favebets.com +favfav.com +favit.xyz +favo360.com +favochat.com +favochat.net +favorbag.site +favoribahis.org +favoribahis79.com +favoribahis99.com +favorite-number.com +favoriticket.com +favouritefriedchicken.com +favouritespb.ru +favsin.com +favspr11.com +fawem-ridnga.ru +fawiwasi.site +fawr-danas.ru +fawwaz.cf +fawwaz.ga +fawwaz.gq +fawwaz.ml +fax.dix.asia +faxapdf.com +faxarounddos.website +faxbet2.com +faxbet3.com +faxbet30.com +faxbet34.com +faxbet35.com +faxjet.com +fayd13b.site +fayd14b.site +fayesilag.com +fayiman.com +faynexfarma.site +faynexpharma.club +faze.biz +fazeclan.space +fazer-site.net +fazipic.site +faziti.info +fazmail.net +fazpaso.ru +fb2obd.com +fb53c2.club +fb8753.site +fbasuperhero.com +fbceminence.org +fbckyqxfn.pl +fbd37.space +fbdata.ru +fbeaveraqb.com +fbender.ml +fbf24.de +fbfbmarket.ru +fbfpxbhub.ga +fbfree.ml +fbfriendbb.site +fbfriendtq.site +fbft.com +fbi.coms.hk +fbjs15.com +fblike.app +fbma.tk +fbmail.usa.cc +fbmail1.ml +fbooktracking.info +fbooktracking.online +fboss3r.info +fbpintl.asia +fbpubi.com +fbq4diavo0xs.cf +fbq4diavo0xs.ga +fbq4diavo0xs.gq +fbq4diavo0xs.ml +fbq4diavo0xs.tk +fbr20.xyz +fbr24.xyz +fbr25.xyz +fbr26.xyz +fbr27.xyz +fbrfj.live +fbs-afiliasi.com +fbs-investing.com +fbsaffiliate.com +fbseu.finance +fbseu.financial +fbseu.link +fbsh.org +fbshirt.com +fbstigmes.gr +fbstradereu.finance +fbsturkiye.com +fbsukien2019.com +fbv89.us +fbviral.biz +fbvyb.us +fc01a.xyz +fc66998.com +fc69e.xyz +fca-nv.cf +fca-nv.ga +fca-nv.gq +fca-nv.ml +fca-nv.tk +fca3nh.us +fcamerapeak.info +fcankay.xyz +fcccanton.org +fcemarat.com +fcf6.xyz +fcfermana.com +fcgfdsts.ga +fchgvj.site +fchief3r.info +fchina.net +fchn2b.site +fchs.network +fcinter.info +fcit.de +fcka.email +fckgoogle.pl +fckingnomad.se +fckrylatskoe2000.ru +fckxmu.us +fcml.mx +fcmtdqcgh.tk +fcn08.space +fcna3b.site +fcna5b.site +fcpablogconferences.com +fcq82r.us +fcqddz.rest +fcrpg.org +fctemp.top +fcucfzg.site +fcwnfqdy.pc.pl +fcww25.icu +fd-sale.ru +fd21.com +fd99nhm5l4lsk.cf +fd99nhm5l4lsk.ga +fd99nhm5l4lsk.gq +fd99nhm5l4lsk.ml +fd99nhm5l4lsk.tk +fdaswmail.com +fdata004.live +fdata009.live +fdbm.site +fddeutschb.com +fddns.ml +fde1a9.us +fderf.com +fdev.info +fdfdsfds.com +fdffdffd.tk +fdgdfgdfgf.ml +fdgh5rb.online +fdkgf.com +fdmail.net +fdmuov.com +fdn1if5e.pl +fdniw.live +fdownload.net +fdrsdp.com +fdstlm.us +fdtle8.us +fdtn.email +fdtntbwjaf.pl +fdxglo.info +fdze1mdi.rocks +fdzs.info +fe-pj.com +fe26.club +fe325.com +fe9tor.com +fea2fa9.servebeer.com +feadutalca.tk +feaethplrsmel.cf +feaethplrsmel.ga +feaethplrsmel.gq +feaethplrsmel.ml +feaethplrsmel.tk +fealstream.com +feamail.com +feanfilms.ru +feardombook.com +feartoclear.app +featherliftusa.com +feathersinthehat.com +featsure.com +featuredyacht.club +feaubl.us +febbraio.cf +febbraio.gq +febeks.com +febmail.com +febrararas.net +febula.com +feccy.com +feceso.online +fechl.com +fecofardc.cd +fectsrelam.cf +fectsrelam.gq +feculent.xyz +fecupgwfd.pl +fedemployeeadvisor.com +federal-rewards.com +federal.us +federalcash.com +federalcash.us +federalcashagency.com +federalcashloannetwork.com +federalcashloans.com +federalemployeeconsultant.com +federalflaws.com +federalloans.com +federalloans.us +federalwayautorepair.com +fedev.ru +fedfaiz.com +fedfaizorani.com +fedfaizoranikarari.com +fedghwpa.shop +fedrw.org +fedupe.com +feeak.space +feeblily.xyz +feecoins.com +feedback60.website +feedbackads.com +feedbackadvantage.com +feedbackadvertising.com +feedbackadvertising.org +feedbackvase.com +feedblade.com +feeder-club.ru +feedinghungrykids.org +feedmecle.com +feedmob.org +feedmycloud.info +feedspot.com +feedspotmailer.com +feedthezombiechildren.org +feedxana.com +feeladult.com +feelgoodsite.tk +feelingjy.com +feelitall.org.ua +feelmyenergy.com +feeloaders.com +feelogfd.xyz +feeney-ltd.com +feesearac.cf +feesearac.ga +feesearac.gq +feesearac.ml +feesearac.tk +feestoverpass.buzz +feeteves.com +fegdemye.ru +fehuje.ru +feibet.com +feic.icu +feieda.com +feifan123.com +feifeijiasuqi.org +feignbloc.xyz +feignlarg.xyz +feignmedal.recipes +feikamjue.cf +feikamjue.ml +feilongyule.net +feirujlingnad.tk +feistyfemales.com +feizhailol.xyz +fejm.pl +fekcasinocrow.ru +fekemanko.rocks +fela.site +felcromatizma.com +feldroy.org +feleohe.com +felesteen.net +felhler.best +felhonetwork.space +felibag.ru +feliciapressdepot.com +felinibrand.com +felipealmeyda.ga +felipearon.com +felipecorp.com +felixapartments.com +felixbaby.net +felixkanar.ru +felixkanar1.ru +felixkanar2.ru +felixscent.com +felizpago.com +feljackpun.cf +feljackpun.ga +feljackpun.ml +feljackpun.tk +fellow-me.pw +fellowme.pw +fellowtravelers.com +felmoca.best +felmondas.info +felpega.cf +felpega.ga +felpega.tk +feltutorscan.gq +fema.email +femail.com +femalefemale.com +femalepayday.net +femaleprofiles.com +femaleviagra100.com +femalexl.site +feminatup.net +feminineembodimentcourse.com +femininestyle.ru +feminism.app +feminosent.net +feminyx.biz +femme-dresses.ru +femme-store.com +fenbin.icu +fenceessa.xyz +fencemeup.net +fenceshe.icu +fenceve.com +fenda.us +fenesitz.cf +fenesitz.gq +fenesitz.ml +fenesitz.tk +fenevbahce.ml +fengli4.com +fengli5.com +fengli8.com +fengli9.com +fengliao11.icu +fengting01.mygbiz.com +fengyun.net +fengyunzaqi.xyz +fenionline.com +fenix-band.online +fenixmail.pw +fenomen.net +fenshou.app +fenzuo29.icu +feoeha.rest +fepalh.com +feqiba.info +fer-gabon.org +ferastya.cf +ferastya.ga +ferastya.gq +ferastya.ml +ferastya.tk +ferdojenik30days.xyz +ferdosi.org +ferencikks.org +fereycorp.com +fergley.com +ferial.site +feridunyilmazlar.xyz +ferins.xyz +ferm-kinder.ru +ferma-lambertov.ru +fermathadaproof.com +fermaxxi.ru +fermaxxl.ru +fermeodelil.com +fermer1.ru +fern2b.site +fernandogrillo.net +fernblade.com +fernl.pw +feroxhosting.online +feroxhosting.shop +feroxhosting.space +feroxo.com +ferragamobagsjp.com +ferragamoshoesjp.com +ferragamoshopjp.com +ferraletrx.com +ferrdechi.cf +ferrdechi.gq +ferrdechi.ml +ferrdechi.tk +ferrexalostoc-online.com +ferringfamily.com +ferrydr.icu +ferryswor.com +ferstbankrottut.xyz +fertigschleifen.de +fertilityapp.com +fertilityplanit.net +fertilization488zh.online +fertilizing991jp.online +fervex-lek.pl +fervex-stosowanie.pl +fervip999.xyz +ferz-led.ru +ferzplaybar.ru +fesabok.ru +festetics.org +festgiganten.nu +festie.net +festivalofpensions.com +festivarugs.com +festivuswine.com +festoolrus.ru +festplattencrash.eu +festtycon.cf +festtycon.ga +festtycon.gq +festtycon.ml +festtycon.tk +fet8gh7.mil.pl +fetch-an-in-jobs-in-ca.fyi +fetch-in-jobs-in-ca.fyi +fetchbarry.com +fetchnet.co.uk +fetclips.se +fetedesmeresfrenchy.com +fethiyecruises.com +fethiyedeyim.xyz +fetih1453istanbul.xyz +fetishmodel.com +fetko.pl +feto.site +fettol.info +fettometern.com +fetzhosi.cf +fetzhosi.gq +feudalist.best +feuerlauf-deutschland.com +fever.camera +feverboard.com +fevercamera.shop +fevercameras.shop +feverche.xyz +feverdetection.camera +feverdetectioncamera.shop +feverout.xyz +feverscreening.camera +feverscreening.events +fevkuulb.shop +fevzi45.ml +fevzi78.ml +fevziuzun.com +fewdaysmoney.com +fewfwefwef.com +fewminor.men +fexa.site +fexbox.org +fexbox.ru +fexpost.com +feyerhermt.ws +ff-flow.com +ff-stickers.website +ff16222.com +ff18269.com +ff5036yl.com +ff852win.com +ff9ee.xyz +ffacommunity.shop +ffamilyaa.com +ffctfcts.xyz +ffdeee.co.cc +ffeast.com +ffeedzonea.site +fff062.com +fff813.com +ffffw.club +ffffw.site +ffgjz.club +ffgoodfoodeco.xyz +ffhwz.club +ffjweosyoljm001.com +fflipsharee.site +ffmovies.su +ffoffer.com +fforeffort.info +ffssddcc.com +fft-mail.com +fftjxfxn.shop +ffwebookun.com +ffwy.xyz +ffx.su +ffxw4i.site +fg2cj7.us +fgaqkx.rest +fgbocp.us +fgdg.de +fgfg999.com +fgfpnd.rest +fgfstore.info +fggfqoim.shop +fggjghkgjkgkgkghk.ml +fghmail.net +fgjnxcps.site +fglf.site +fglf.xyz +fgmx.de +fgohhn.host +fgonki.ru +fgopeat.com +fgpgso.icu +fgpplu.icu +fgr20u.stream +fgsd.de +fgsoas.top +fgsradffd.com +fguncxc.com +fgywvb.tokyo +fh16555555.com +fhaloancalifornia.net +fhapp55.com +fhccc30.com +fhccc32.com +fhccc34.com +fhccc37.com +fhccc39.com +fhccc41.com +fhccc44.com +fhccc45.com +fhccc47.com +fhccc49.com +fhccc56.com +fhccc59.com +fhccc64.com +fhccc66.com +fhccc68.com +fhccc70.com +fhccc71.com +fhccc74.com +fhccc77.com +fhccc79.com +fhccc80.com +fhccc81.com +fhccc83.com +fhccc86.com +fhccc87.com +fhccc89.com +fhccc90.com +fhccc94.com +fhccc95.com +fhccc97.com +fhczy5.us +fhead3r.info +fhfcmffub.shop +fhgjlhwxv.shop +fhgrus.icu +fhhbh.club +fhhbh.xyz +fhhy66.com +fhir.cloud +fhjkh.host +fhldj.live +fhlij.us +fhole.us +fhptcdn.net +fhqtmsk.pl +fhrvm9.online +fhsuh3.site +fhtsystem.com +fhuai.live +fhvnzk.us +fhvvbbvvbb.com +fhvxkg2t.xyz +fhylonline.com +fhyve5.us +fi-pdl.cf +fi-pdl.ga +fi-pdl.gq +fi-pdl.ml +fi-pdl.tk +fi-sale.online +fi3k.icu +fi5qy.us +fialh.xyz +fiam.club +fianance4all.com +fiannaoshea.com +fiastubof.cf +fiastubof.gq +fiastubof.ml +fiastubof.tk +fiat-brasil.club +fiat-chrysler.cf +fiat-chrysler.ga +fiat-chrysler.gq +fiat-chrysler.ml +fiat-chrysler.tk +fiat-india.club +fiat-rs.ru +fiat500.cf +fiat500.ga +fiat500.gq +fiat500.ml +fiat500.tk +fiatcare.com +fiatgroup.cf +fiatgroup.ga +fiatgroup.gq +fiatgroup.ml +fibered763aa.online +fiberglassshowerunits.biz +fiberlitbuildings.org +fibermother.top +fiberoptics4tn.com +fibimail.com +fibram.tech +fibredrama.com +fibrelayer.com +fibremarkupgland.site +fibresp.icu +fibreth.xyz +fibrethe.xyz +fibretr.xyz +fibretrac.xyz +fibringlue.net +fica.ga +fica.gq +fica.ml +fica.tk +fichet-lisboa.com +fichetlisboa.com +fichetservice.com +ficken.de +fickfotzen.mobi +fickremis.ga +fickremis.gq +fickremis.ml +fickremis.tk +fictional.group +fictionalize112co.online +fictionsite.com +fid-x.net +fidawines.com +fiddleblack.net +fidelio.best +fidelium10.com +fidellemusic.com +fidelverta.me +fidesrodzinna.pl +fidilitipro.com +fido.be +fidxrecruiting.com +fiechecklib.cf +fiechecklib.ga +fiechecklib.gq +fiechecklib.ml +fieldbredspaniel.com +fieldcasinoopi.ru +fieldfin.press +fieldguideadvv.icu +fieldleaf.com +fieldopolis.com +fieldriv.xyz +fieldtheory.club +fiemountaingems.com +fierceswimwear.com +fierromenu.store +fierymeets.xyz +fif55.company +fifa555.biz +fifa555x.com +fifa55cen.name +fifa55cen.tel +fifa55credit.site +fifa55credit.space +fifa55credit.top +fifa55credit.xyz +fifa55nut.com +fifa55pug.com +fifa55rs.com +fifa55w.net +fifacity.info +fifalottoasia.com +fifalottoking.com +fifalottou.com +fifamain.com +fifecars.co.uk +fifthdesign.com +fifthleisure.com +fifthminuteloan.com +fiftyfootmedia.com +figantiques.com +figastand.site +figgma.com +fighpromol.cf +fighpromol.ga +fighpromol.gq +fighpromol.ml +fighpromol.tk +fight-zorge.ru +fightallspam.com +fightbacknews.info +fightbreach.top +fightth.press +fightwrinkles.edu +figjs.com +figlmueller-lugeck.com +figly.net +figmail.me +figshot.com +figtrail.com +figueredo.info +figurescoin.com +fihcana.net +fiheartly.cf +fiheartly.ga +fiheartly.ml +fiheartly.tk +fiifke.de +fiiritsmini.tk +fiitjee.tk +fiix-lweracn.ru +fiji-nedv.ru +fika-lamfesa.ru +fika.website +fikachovlinks.ru +fikada.com +fiki1.site +fikrihidayah.cf +fikrihidayah.ga +fikrihidayah.gq +fikrihidayah.ml +fikrihidayah.tk +fikrinhdyh.cf +fikrinhdyh.ga +fikrinhdyh.gq +fikrinhdyh.ml +fikrinhdyh.tk +fikstore.com +fikumik97.ddns.info +filadelfiacom.com +filager.com +filakhbar.com +filbert4u.com +filberts4u.com +filcowanie.net +file-hipo.info +file-load-free.ru +file-rutor.org +file-up.fr +filea.site +fileboutiques.site +filebuffer.org +filebyter.com +filecakefree.com +fileconverterexpress.com +filedirectory.site +filedn.site +filee.site +filef.site +filefugu.com +fileg.site +filegrotto.com +fileh.site +filei.site +filel.site +fileli.site +fileloader.site +filemakerplugins.com +filemakertechniques.com +filemark.com +fileo.site +fileprotect.org +filerforma.site +filerpost.xyz +files-disk.org +files-host-box.info +files-usb-drive.info +files.vipgod.ru +filesclip.com +filesdir.site +fileslib.site +filespike.com +filet.site +fileu.site +filex.site +filezilla.info +filingsportal.com +filipinonannies.net +filipinoweather.info +filix.site +filix.xyz +fillari.net +fillersmedals.top +fillyflair.info +film-blog.biz +film-hit.xyz +film-online.xyz +film-tv-box.ru +filmabin.com +filmak.pl +filmaticsvr.com +filmbak.com +filmbr.net +filmemack.com +filmenstreaming.esy.es +filmesemcasa.site +filmexxx.site +filmflix.space +filmfrancais2019.com +filmharatis.xyz +filmhd720p.co +filmhuset.net +filmifullhdizlesene.com +filmifundey.xyz +filmindo89.com +filmlicious.club +filmlicious.host +filmlicious.online +filmlicious.site +filmlicious.xyz +filmmodu.online +filmottola.com +filmporno2013.com +filmprenser.gq +filmprenser.ml +filmprenser.tk +films-online-kino.ru +filmscool.xyz +filmsemi.mobi +filmsfrombeyond.info +filmsseller1.ru +filmstreaming-vf.club +filmstreaming.cash +filmsuggest.com +filmtop10.com +filmtupia.com +filmujaz.com +filmvf.stream +filmwedding.ru +filmxy.org +filmyerotyczne.pl +filmym.pl +filmyonli.ru +filmyou.org +filmyzilla.network +filomesh.ru +filomoplace.ru +filoppy.net +filoppy.org +filqmuu.site +filsgg.ru +filterr.com +filtidysuqqpg.site +filtracoms.info +filtresizefes.com +filu.site +filzmail.com +fimghkumv.shop +fimoulchoi.ga +fimoulchoi.gq +fimoulchoi.ml +fimoulchoi.tk +fin-ans.ru +fin-assistant.ru +fin-guru.ru +finalcredit.biz +finaldes.com +finaldraftmerchandise.com +finaldraftsstore.com +finalep.fun +finalevil.com +finalexpenseguru.com +finalfinalfinal.com +finalflu.xyz +finalflus.xyz +finalgre.xyz +finalize595jg.online +finaljewe.press +finaljudgedomain.com +finaljudgeplace.com +finaljudgesite.com +finaljudgewebsite.com +finalndcasinoonline.com +finalpan.us +finaltig.us +finaltoo.us +financas.online +finance-simply.ru +finance-times.info +finance.uni.me +financeand.coffee +financegoldbling.com +financehowtolearn.com +financehy.com +financeideas.org +financeland.com +financemagazinespot.com +financementor.ru +financemoneyblog.club +financeprosto.ru +financetimes.tech +financetutorial.org +financial-options.online +financialabundance.org +financialabundanceuniversity.com +financialadvicescheme.org +financialaid35.us +financialaid39.us +financialblog.club +financialchannel.ru +financialfreedomeducation.com +financialgerontology.com +financialmarketsadvisor.com +financialmomentum.com +financialplanner.services +financialpublishingsystems.com +financialsocietynews.club +financnimagazin.com +finans-disciplina.ru +finans-edenitsa.ru +finans-zapas.ru +finansblogs.ru +finansmobil.com +finantial-tech2.com +finasnbankrot.xyz +finbetkz.com +finchsoftware.com +find-brides.org +find-me-watch.com +find-new-cars-option.market +find-new-ride-online.market +find-person.com +find-suv-pricing-guides.rocks +find-your-men10.com +find.cy +findacriminalrecord.com +findafriendlynow.com +findahomeonline.info +findalawyerct.info +findanopportunity.org +findazey.space +findbankrates.com +findbesthgh.com +findbetterwhatever.com +findbrides.us +findcheap.uno +findcheapmichaelkorsbag.biz +findcoatswomen.com +findcurtio.ga +findcurtio.ml +findcurtio.tk +finddocter.com +findebooktoday.com +findemail.info +findep.xyz +findercos.com +findexpertcare.pro +findexperthub.pro +findflightstatus.com +findfreejamaica.com +findgeras.ga +findguides.site +findhealthcareproviders.org +findhotmilfstonight.com +findingcomputerrepairsanbernardino.com +findingremedy.xyz +findingyourfinancialpower.com +finditfoxvalley.com +findlayhomeshow.com +findleyfit.com +findlocalusjobs.com +findmanual.site +findmanualx.site +findme.land +findmolik.tk +findmovieonline.website +findmovingboxes.net +findmyappraisal.com +findoasis.com +findourstore.xyz +findpassage.com +findstablevideos.pro +findu.pl +findwater.ru +findwindowtinting.com +fineartadoption.net +fineartpetsketches.com +finefact.info +finek.net +fineoddity.com +finery.pl +fingalcafe-swords.com +fingermouse.org +fingersystemeurope.com +finikeakdeniz.xyz +finioios.gr +finishtimingtrailers.com +finkin.com +finland-nedv.ru +finlaygreen.buzz +finleywarner.buzz +finlitca.com +finnahappen.com +finnaz.website +finne.online +finney4.com +finnishknives.com +finnstromsentreprenad.se +fino-case.ru +finpar.ru +finprokachka.ru +finrigtht.finance +finrigthtfinance.com +finseti.ru +finsilan.gq +finsilan.tk +finspreads-spread-betting1.com +fintechistanbul.net +fintechturkiye.net +fintechturkiye.org +fintemax.com +finuprbal.ru +finxmail.com +finxmail.net +fiocharrest.cf +fiocharrest.ga +fiocharrest.tk +fiqueisemdividas.com +fir.hk +firamax.club +firasbizzari.com +firatsari.cf +firatsari.ga +firatsari.ml +firatsari.tk +fireads.best +fireads.shop +fireads.work +firearmsglossary.com +firebabyto.space +firebit.online +fireclones.com +fireconsole.com +firecookie.ml +firedemon.xyz +fireden.net +firedepartment.ru +firef0x.cf +firef0x.ga +firef0x.gq +firef0x.ml +firef0x.tk +fireflies.edu +fireiptv.net +firekassa.com +firekiwi.xyz +firema.cf +firema.ga +firema.ml +firema.tk +firemail.cc +firemail.org.ua +firemail.uz.ua +firemailbox.club +firemansbalm.com +firemanscream.com +firemapprints.com +firematchvn.cf +firematchvn.ga +firematchvn.gq +firematchvn.ml +firematchvn.tk +firemymail.co.cc +fireontheconception.com +fireplace72.ru +firesalemanager.com +firesigns.xyz +firesters.com +firestore.pl +firestryke.com +firestylemail.tk +firetekfiringsystems.com +firetopia.online +firevisa.com +firewallremoval.com +firewiredigital.com +firezomibies.com +firkintun.com +firlvdftp.shop +firma-frugtordning.dk +firma-remonty-warszawa.pl +firma1c.su +firmaa.pl +firmaogrodniczanestor.pl +firmfinancecompany.org +firmographix.com +firmspp.com +firmtoon.com +firmyuradres.xyz +firrior.ru +firsatmarketim.com +firsharlea.cf +firsharlea.ga +firsharlea.gq +firsharlea.ml +firsharlea.tk +first-class-oriental-takeaway.com +first-email.net +first-mail.info +first-mood.fun +first.baburn.com +firstaidglossary.com +firstaidsupplies.futbol +firstaidtrainingmelbournecbd.com.au +firstalaskansinstitute.net +firstalaskansinstitute.org +firstanaltube.com +firstandbest.site +firstaust.com +firstbet10.com +firstbitelife.com +firstbusinessgroup.cd +firstcalldecatur.org +firstcapitalfibers.com +firstclassarticle.com +firstclassemail.online +firstclasssocial.com +firstcoin.world +firstcount.com +firstcrownmedical.com +firstdeals.info +firste.ml +firstelit.icu +firstexpertise.com +firstflooring.biz +firsthingsu.net +firsthingsu.org +firsthome.shop +firsthyip.com +firstin.ca +firstineu.site +firstinforestry.com +firstk.co.cc +firstloannow.com +firstmeta.com +firstmovie.club +firstnamesmeanings.com +firstpagepressrelease.com +firstpaydayloanuk.co.uk +firstpressumter.info +firstpressumter.net +firstpuneproperties.com +firstresponderrehab.com +firstrest.com +firstrow.app +firstshoes.club +firststepdetoxcenter.com +firststepdetoxcenter.net +firststepfloridadetox.com +firststepschildrensnursery.com +firststopmusic.com +firstthingsu.net +firsttimes.in +firsttradelimited.info +firt.site +firul.ru +fischkun.de +fish-market.club +fish.skytale.net +fishandchips.website +fishandchipsinlondon.com +fishandgamemagazine.com +fishantibioticsdirect.org +fishchiro.com +fishchiropractic.com +fishdating.net +fishdoctor.vet +fisher19851231.xyz +fisherinvestments.site +fishfoodshop.life +fishfortomorrow.xyz +fishgame.net +fishing-break.ru +fishing.cam +fishingleisure.info +fishingmobile.org +fishingshop.live +fishingtackle.net +fishinnpost.com +fishlozktm.space +fishnets.xyz +fishslack.com +fishtropic.com +fishwater.ru +fishyes.info +fistclick-company.ru +fistikci.com +fit-7979.com +fitanu.info +fitanu.net +fitanu.org +fitbizbooster.com +fitbody2020.website +fitchyasociados.com +fitcommons.com +fitepito.me +fitflopsandals-us.com +fitflopsandalsonline.com +fitfoodieindia.com +fitfopsaleonline.com +fitforme.app +fitgy.com +fithikerchick.com +fitiguera.space +fitil-dmc.com +fitimail.eu +fitmotiv.ru +fitneeses.site +fitneesx.site +fitneezz.info +fitneezz.site +fitnesrezink.ru +fitness-exercise-machine.com +fitness-weight-loss.net +fitness-wolke.de +fitnessblogger.com +fitnesscaretips.com +fitnessdigest.ru +fitnessjockey.org +fitnessmojo.org +fitnessondemand.net +fitnessreviewsonline.com +fitnessuniverse.africa +fitnesszbyszko.pl +fitnestv.best +fitnr.net +fitnr.org +fito.de +fitofive.ru +fitscapital.top +fitschool.be +fitschool.space +fitshopp.space +fitsport.shop +fittinggeeks.pl +fitwell.org +fitzgeraldforjudge.com +fivatu.info +five-club.com +five-plus.net +five.emailfake.ml +five.fackme.gq +five27lic.com +five88.bet +fiveasidegame.com +fivedollardomains.com +fivefineshine.org +fivemail.de +fivemails.com +fivemhosting.online +fivemice.ru +fivemlog.com +fiveofus.info +fiveoutingfile.website +fiveqs.com +fiver5.ru +fiverme.cf +fiverme.ga +fiverme.ml +fiverrfan.com +fiverrfan.net +fivesmail.org.ua +fivestarclt.com +fivestars-market.com +fivgenetic.com +fivmsinglebplayer.ml +fivmsinglebplayer.tk +fivoca.com +fiwatani.com +fix-macosx.org +fix-phones.ru +fix-prise-bonus.ru +fix-up48.ru +fixblurryphotos.com +fixcabletvok.live +fixdinsurance.com +fixee.net +fixethernet.com +fixifu.info +fixiva.com +fixkauf24.de +fixl.ru +fixlab.tel +fixmail.tk +fixmydiesel.com +fixnums.best +fixthiserror.com +fixthisrecipe.com +fixturelibrary.com +fixwindowserror-doityourself.com +fixxashop.xyz +fixyourbrokenrelationships.com +fizjozel.pl +fizmail.com +fizmail.win +fizo.edu.com +fizzyroute66.xyz +fj-sale.online +fj1971.com +fjer.info +fjer.us +fjfj.de +fjiepz.us +fjindan.com +fjklm.xyz +fjkwerhfui.com +fjltcgcp.shop +fjm0k3.us +fjmjqd.us +fjpop.live +fjqbdg5g9fycb37tqtv.cf +fjqbdg5g9fycb37tqtv.ga +fjqbdg5g9fycb37tqtv.gq +fjqbdg5g9fycb37tqtv.ml +fjqbdg5g9fycb37tqtv.tk +fjradvisors.net +fjrcsc.icu +fjrhp5.us +fjs4xawnej1ky7l.xyz +fjsxco.site +fjtjh.com +fjtsale.top +fjumlcgpcad9qya.cf +fjumlcgpcad9qya.ga +fjumlcgpcad9qya.gq +fjumlcgpcad9qya.ml +fjumlcgpcad9qya.tk +fjxh-meirong.com +fjyumo.com +fjzxjscl.com +fk-sale.ru +fkbmhj.fun +fkdsloweqwemncasd.ru +fke1o.us +fkfgmailer.com +fkgmrn.fun +fkinyu.com +fkksol.com +fklbiy3ehlbu7j.cf +fklbiy3ehlbu7j.ga +fklbiy3ehlbu7j.gq +fklbiy3ehlbu7j.ml +fklbiy3ehlbu7j.tk +fknblqfoet475.cf +fknmwk.fun +fkoh1p.us +fkoljpuwhwm97.cf +fkoljpuwhwm97.ga +fkoljpuwhwm97.gq +fkoljpuwhwm97.ml +fkpmkb.fun +fkrcdwtuykc9sgwlut.cf +fkrcdwtuykc9sgwlut.ga +fkrcdwtuykc9sgwlut.gq +fkrcdwtuykc9sgwlut.ml +fkrcdwtuykc9sgwlut.tk +fkrmdr.fun +fksmpx.fun +fksmyx.fun +fktflex.com +fktmpn.fun +fkughosck.pl +fkuih.com +fkul2b.site +fkxf888.com +fkxmcw.fun +fkyg10b.site +fkyg11b.site +fkyg12b.site +fl.hatberkshire.com +fl158.site +fl1zr6.us +fl2nyhomes.com +flackrzjh.space +flagai.org +flagelcivr.space +flageob.info +flagstaffdoctors.com +flagtoflagvideo.com +flagxbetpinup.ru +flaian.site +flairvigor.com +flais.space +flame-asian-tapasbar.com +flamesindiantakeaway.com +flamingchicken.org +flamingogo.info +flamonis.tk +flaresand.top +flarmail.ga +flaselektronik.online +flash-mail.pro +flash-mail.xyz +flash-sale.icu +flashbjgsp.site +flashcongo.cd +flashdelivery.com +flashdis.email +flashearcelulares.com +flashgh.icu +flashgoto.com +flashhasabigforehead.xyz +flashingboards.net +flashmail.co +flashmail.pro +flashonlinematrix.com +flashpdf.com +flashpressa.ru +flashrews.site +flashsaletoday.com +flashservice.online +flashtatto.ru +flashu.nazwa.pl +flashuni.press +flashvoi.recipes +flashvoice.email +flat-whose.win +flat150.com +flatanssanov.tk +flatdisruptfind.website +flatfilecms.com +flatidfa.org.ua +flatoledtvs.com +flatothout.cf +flatothout.ga +flatothout.gq +flatothout.ml +flatratecallanswering.com +flatriverwrestling.com +flauntify.com +flavejmi.cf +flavejmi.gq +flavejmi.tk +flaviacadime.com +flavor.market +flavotcon.cf +flavotcon.ga +flavotcon.gq +flavotcon.ml +flavrpill.com +flavrwire.com +flawedcrashgrain.website +flawless-cream.ru +flawless-epilation.ru +flawlessbeing.com +flax.organic +flax.technology +flax3.com +flaxpeople.info +flaxpeople.org +flaxseedlemonoilfacewash.com +flaxx.ru +flb718.info +flbdhphtz.shop +flbrittanyrescue.com +flbrittanyrescue.org +flcarpetcleaningguide.org +flcp919.com +flcp921.com +flcp929.com +flcp934.com +fldatacenter.com +fldecnbvz.ga +fldetoxcenters.com +fleabitesinfo.com +fleckens.hu +fleekedges.com +fleekproducts.com +fleetcommercialfinance.org +fleggins-official.ru +flekto.shop +flemail.com +flemail.ru +flemieux.com +flesh-tattoo.ru +fleshcape.top +flester.igg.biz +fletesya.com +fleurdsign.online +fleurgoldthorpe.com +fleuristeshwmckenna.com +fleurs-fabrique.space +flexapplab.com +flexbeltcoupon.net +flexcellent.com +flexcodejam.org +flexeerous.cf +flexeerous.ga +flexeerous.gq +flexeerous.ml +flexeerous.tk +flexfactor.info +flexhosting.xyz +flexiblebrushes.org +flexiblebrushes.us +flexibleled.com +flexibleleds.com +flexibleleds.net +flexibleleds.org +flexionars.info +flexlimosy.info +flexmotivatie.info +flexninori.ga +flexracer.com +flexreicnam.cf +flexreicnam.ga +flexreicnam.gq +flexreicnam.tk +flexrosboti.xyz +flexyvibe.com +flg100.xyz +flhalfpricedlistings.com +flhalfpricelistings.com +flickershoppe.com +flickshot.id +flidel.xyz +flier345xr.online +flightcaster.com +flightdictionary.com +flightr.net +flightsap.com +flightsavebyme.site +flightsquest.com +flighttogoa.com +flimcirckill.cf +flimcirckill.ga +flimcirckill.tk +flin-rp.ru +flindevqaj.space +flingmark.com +flintcasino.online +fliperama.org +flipflopgal.com +flipflopsqueegee.net +flipinvestclub.com +flipob2b.com +flipob2b.net +flippers-forum.com +flipping.biz +flippingfinds.com +fliptags.xyz +fliqse.com +flirtey.pw +flismeif.com +flitafir.de +flitify.com +flixdot.com +flixen.net +flixluv.com +flld8d.us +flnm1bkkrfxah.cf +flnm1bkkrfxah.ga +flnm1bkkrfxah.gq +flnm1bkkrfxah.ml +flnm1bkkrfxah.tk +float247.com +floatation.tv +floatcart.com +floatjuice.com +floatplane.store +floatplane.tech +floatpodpersonal.com +floatpools.com +flockdete.xyz +flockresemblegravy.site +flok.us +floodbrother.com +floodcaus.icu +flooded.site +floodiwac.cf +floodiwac.ga +floodiwac.gq +floodiwac.ml +floodiwac.tk +floodpla.press +floodto.press +flooha.com +floorbroom.net +floorbroom.org +floorbroom.us +floorbrooms.biz +floorbrooms.net +floorbrooms.org +floorbrooms.us +floorcl.press +floorcra.xyz +floorcro.icu +floordri.fun +floorimot.cf +floorimot.gq +floorimot.ml +floorimot.tk +flooringbestoptions.com +flooringuj.com +floorlampinfo.com +floorma.xyz +floororde.icu +floorpayablegraze.site +floorsqueegee.org +floorsqueegee.us +floorsqueegees.biz +floorsqueegees.org +floorsqueegees.us +floorstr.icu +floorvelsia.cf +floorvelsia.ml +flop.cloud +florafauna.cf +floralparknyattorney.com +floranswer.ru +florapetit.com +floreall.ru +florean.org +floreatriversidelodge.com +floregtor.cf +floregtor.ga +floregtor.gq +floregtor.ml +floregtor.tk +florer.ru +floresans.com +floresansprint.com +floresta.ml +floricckgq.space +florida-nedv.ru +floridaaug.com +floridabankinglawblog.com +floridabookshop.com +floridacims.com +floridacnn.com +floridacruiseinjury.com +floridadanceco.net +floridadressage.com +floridafleeman.com +floridaharvard.com +floridahome.store +floridamovo.com +floridanettv.com +floridaopiatereliefcenter.com +floridaproductdesign.com +floridaquote.com +floridarains.com +floridarlt.com +floridastatevision.info +floridavacationsrentals.org +floridianprints.com +floriscope.site +florissantattorneys.com +florissantrentals.com +florium.ru +flormidabel.com +florokerama.ru +flort.site +flossed.org +flossic.com +flossuggboots.com +flotprom.ru +flourdlqvwr.email +flourpar.icu +flourwhit.buzz +flourworr.icu +flowathes.cf +flowathes.ga +flowathes.gq +flowathes.ml +flowathes.tk +flowbolt.com +flowcoachingpro.com +flowcontrolsystems.us +flower-03.com +flower-russia.ru +flowerbulbrussia.com +flowercorner.net +flowercouponsz.com +flowerdija.space +floweretta.ru +flowerkey.ru +flowermerry.com +flowermerry.net +flowermoundapartments.com +flowerpot.rest +flowers-dreams.ru +flowersetcfresno.com +flowerss.website +flowerwyz.com +flowexa.com +flowfthroughbrush.net +flowfthroughbrush.org +flowfthroughbrush.us +flowmeterfaq.com +flowthroughbrushes.com +flowthroughbrushes.us +flowthrubrush.biz +flowthrubrush.us +flowthrubrushes.com +flowthrubrushes.org +flowthrubrushes.us +flowu.com +floyd-mayweather.info +floyd-mayweather2011.info +floydmayweathermarcosmaidana.com +flpay.org +flpropinvest.com +flq912.info +fls4.gleeze.com +flsaid.com +flsb03.com +flsb04.com +flsb05.com +flsb06.com +flsb07.com +flsb08.com +flsb09.com +flsb10.com +flsb11.com +flsb13.com +flsb14.com +flsb15.com +flsb16.com +flsb17.com +flsb18.com +flsb19.com +flsb20.com +flshirts.xyz +flshows.com +flskdfrr.com +fltf16b.site +flu-cc.flu.cc +flu.cc +flucas.eu +flucassodergacxzren.eu +flucc.flu.cc +flucteausonc.cf +flucteausonc.ga +flucteausonc.gq +flucteausonc.ml +flucteausonc.tk +fluenthealthspot.com +flufarm.com +fluffsac.com +fluffysamoyedgarden.us +fluggez.xyz +fluidcampaign.com +fluidensity.com +fluidensity.info +fluidensity.org +fluidforce.net +fluidsoft.us +fluidvpn.com +fluidway.net +fluinsureebb.website +flukify.com +fluoksetin.ru +fluorescentcat.info +flurostation.com +flurre.com +flurred.com +flushawfu.icu +flushblast.buzz +flushsc.xyz +fluteranal.tk +fluthelpnac.cf +fluthelpnac.gq +fluthelpnac.tk +flutiner.cf +flutiner.ga +flutiner.gq +flutiner.tk +fluxfinancial.com +fluz-fluz.ru +flvtomp3.xyz +flwgenixfiber.site +flxam1.us +flxzkw.icu +fly-free.org +fly-ts.de +flyalmostfree.net +flyalmostfree.org +flyashbricksmanufacturers.com +flybild.ru +flycasual.org +flychooses.site +flycocoons.info +flycongo.cd +flyer24.shopping +flyeragency.com +flyernet.com +flyernyc.com +flyfrv.tk +flyhack.com +flyingbundle.com +flyingfakir.com +flyinggeek.net +flyingjersey.info +flyingmminiamericans.org +flyingmouse.info +flyjet.net +flymining.ru +flymir.ru +flynauru.com +flynauru.net +flyognivo.ru +flyoveraerials.com +flypdx.org +flypicks.com +flyplut.ru +flyrics.ru +flysafely.info +flyspam.com +flyte.design +flytvdigital.ltd +flyvid.ru +flyvivo.ru +flywheel-exchange.com +flywheel-labs.com +flyxnet.pw +fm1055.org +fm19.app +fm21.app +fm22.app +fm23.app +fm24.app +fm25.app +fm26.app +fm30.app +fm31.app +fm34.app +fm35.app +fm36.app +fm365.com +fm37.app +fm42.app +fm43.app +fm44.app +fm45.app +fm46.app +fm48.app +fm52.app +fm53.app +fm55.app +fm56.app +fm58.app +fm59.app +fm60.app +fm62.app +fm64.app +fm66.app +fm69.cf +fm69.ga +fm69.gq +fm69.ml +fm69.tk +fm7.app +fm72.app +fm73.app +fm74.app +fm76.app +fm77.app +fm79.app +fm8.app +fm80.app +fm81.app +fm82.app +fm83.app +fm86.app +fm88.app +fm88vn.net +fm89.app +fm90.app +fm94.app +fm96.app +fm97.app +fm98.app +fmail.online +fmail.ooo +fmail.party +fmail.pw +fmail10.de +fmailx.tk +fmailxc.com +fmailxc.com.com +fman.site +fmfmk.com +fmft.email +fmgroup-jacek.pl +fmicloud.tk +fmiv2r.com +fmmxnskw.site +fmovies-se.best +fmovies-to.best +fmpromagazine.com +fmproworld.com +fmrecipes.com +fmrecipes.org +fmserv.ru +fmv13ahtmbvklgvhsc.cf +fmv13ahtmbvklgvhsc.ga +fmv13ahtmbvklgvhsc.gq +fmv13ahtmbvklgvhsc.ml +fmv13ahtmbvklgvhsc.tk +fmv69.com +fmzhwa.info +fn-sale.online +fn5258.com +fn6yzx.us +fn7p2ay310.site +fnap1x.ru +fnhzl.live +fnisj892kosoks29293939.heliohost.org +fnkzwmhyv.shop +fnmedia.site +fnnus3bzo6eox0.cf +fnnus3bzo6eox0.ga +fnnus3bzo6eox0.gq +fnnus3bzo6eox0.ml +fnnus3bzo6eox0.tk +fnord.me +fnrehab.com +fnsese.xyz +fnujwkthy.shop +fnuxu6.us +fnwv73le26z90cz.xyz +fnx65ktx4b98it7.xyz +fnxm.xyz +fnyt.xyz +fnzm.net +fo-sale.online +fo588.com +fo788.com +fo9t34g3wlpb0.cf +fo9t34g3wlpb0.ga +fo9t34g3wlpb0.gq +fo9t34g3wlpb0.ml +fo9t34g3wlpb0.tk +foakibu.ga +foakibu.gq +foakibu.ml +foakibu.tk +foakleyscheap.net +foamform.com +foamiranclub.ru +fobjsr.us +fobsos.ml +fobunbindeel.website +focallhprj.space +focavas.info +foclient.com +focolare.org.pl +focus-proxy.com +focus-proxy.net +focusapp.com +focusdezign.com +focusdiscover.com +focusedenterprisesltd.com +focusial.com +focusingministries.com +focusingministry.com +focusingministry.net +focusingministry.org +focusproxy.com +focussedbrand.com +focussocialshop.com +fod-belastingdienst.online +fod-myminfin.email +fodl.net +fodmaster21pbjp.cf +foeencuu.shop +fogenoughera.website +fogeycnsd.space +fogkkmail.com +fogmart.com +fogostakeaway.com +fogris.ru +fogsportjop.ru +fogusa.ru +foikumou.biz +fojcyi.xyz +foktura.ru +fokusmrt.ga +fol.mx +folardeche.com +foldbagsy.info +folderiowa.com +foleyarmory.com +folhadesaopaulo.club +folhadesaopaulo.site +folhadesaopaulo.website +folhadesaopaulo.xyz +folhaonline.site +foliaapple.pl +folianokia.pl +folieshops.com +folietemperatur.website +folifirvi.net +folixx.website +folk-teatr.ru +folkfena.cf +folkfena.ga +folkfena.gq +folkfena.ml +folkfena.tk +folklofolie.com +follargratis-confirmed.com +follargratis-meet-backup.com +followbias.com +followbrand.net +followerfilter.com +follownews.press +followthetshirt.com +followthewhiterabbit.ru +folpjp.site +fomentify.com +fomohosting.com +fomorno.cf +fomorno.ga +fomorno.gq +fomorno.ml +fomorno.tk +fonatel.ru +fonbet-app.ru +fonbet-faq.ru +fonbetik.ru +fondationdusport.org +fondato.com +fondgoroddetstva.ru +fones.site +fongozg.com +foninanator.com +fonnection.org +fonsori.org +fonsview.ml +fontaccusefish.website +fontak.com +fontconf.com +fontspring.net +fontspring.org +fontzillion.net +foobarbot.net +food-discovery.net +food-drink-recipes.com +food-facts.ru +food-fusion-takeaway.com +food-journals.com +food-like-art.com +food-tribes.com +food315.xyz +food4kid.ru +foodbank150.com +foodbank150.net +foodblogs.blog +foodblogs.media +foodbooto.com +foodenset.com +foodgurutakeaway.com +foodhallimburg.com +foodhat.net +foodics.store +foodiesandiet.com +foodiesforum.com +foodinnballyfermot.com +foodlabelling.info +foodprint.net +foodreamer.com +foodrecipe1.website +foodrestores.com +foodsfever.com +foodslosebellyfat.com +foodtherapy.top +foodunitesus.com +foodwheel.net +foomboo.best +foootball.icu +foopets.pl +foorama.com +fooremost.com +foot-streaming.online +foot.stream +footangelsocks.com +footard.com +football-zone.ru +footballan.ru +footballsaintsstore.online +footballstats24.com +footbcharlea.cf +footbcharlea.ga +footbcharlea.tk +footcareshop.life +foothardnfes.cf +foothardnfes.ga +foothardnfes.gq +foothardnfes.ml +foothillsurology.com +footprinttrading.wtf +footstrat.com +footstreaming.biz +footytrends.com +fopamarkets.site +foquita.com +for-all.pl +for0.net +for1mail.tk +for4.com +for4mail.com +foradoexpediente.com +forafore.shop +foragentsonky.com +forasy.host +forbeginners.shop +forbesa.com +forbet321.xyz +forcauction.com +force-loving-brilliancedart-clever.com +ford-edge.club +ford-escape.club +ford-flex.club +ford-fusion.club +ford-trucks.us +fordanceusa.com +forddomsy.info +fordinettelc.monster +fordonofritid.nu +fordson.club +foreaccustom.best +forecastertests.com +foreclosurefest.com +foreco.cd +foreeyesa.info +foreksinfo.ru +foremostt.com +foreo-luna2.ru +foreranks.best +foreriver.org +foresightpropertyinspections.org +foreskin.cf +foreskin.ga +foreskin.gq +foreskin.ml +foreskin.tk +foresmo.com +forest-reach-agree-snow.xyz +forestar.edu +forestbeekeeping.com +forestbeekeeping.us +forestcrab.com +forestermail.info +forestguardspro.info +foresthope.com +forestwards.best +foreverall.org.ua +foreveriptv.host +foreveronlinegames.com +forewarn.us +forex-demo.net +forex-for-u.net +forex-gv.ru +forex-iphone.com +forexaccessfx.com +forexblogs.ru +forexbudni.ru +forexbum.ru +forexcoin.trade +forexduel.com +forexgost.ru +forexhub.online +forexjobing.ml +forexmany777.ru +forexpro.re +forexregulator.info +forexregulator.net +forexregulator.org +forexshop.website +forexsite.info +forextra.online +forextradingsystemsreviews.info +forextrendtrade.com +forfilmsone.com +forgedfactions.net +forgetmail.com +forgetmenot.love +forgetmenotbook.com +forgetmenotsgrove.com +forgevpn.com +forgottenrelicsbooks.com +forhousandlife.ru +fork.codes +fork.support +forkai.cloud +forkai.email +forkanddumbbell.com +forkbot.cloud +forkd.app +forklift.edu +forlite.se +formaa.ru +formail22.dlinkddns.com +formareperincludere.com +formatpoll.net +formauqua.ga +formauqua.gq +formauqua.ml +formauqua.tk +formdmail.com +formdmail.net +formleads123.com +formmazi.us +formnitrogenflex.website +formonsdy.cf +formonsdy.ga +formonsdy.gq +formonsdy.ml +formonsdy.tk +formserwis.pl +formswift-next.com +formula-online.ru +formulafridays.com +formulanegociodesucesso.com +formulaqq.com +formulath.ru +formule.dev +formulemos.com +fornattodental.com +fornece.energy +fornow.eu +foronebuy.com +foronenight.best +forore.ru +forotenis.com +forp.us +forponto.club +forprice.co +forrealnetworks.com +forremost.com +forreplace.com +forsasquatch.shop +forsearchbo.cf +forsearchbo.ga +forsearchbo.gq +forsearchbo.ml +forsearchbo.tk +forserumsif.nu +forsgame.ru +forskolin1supply.com +forskolinwalmart.xyz +forsofort.info +forsoni.cf +forsoni.ga +forsoni.tk +forspam.net +forstreamer.com +forsy546854.site +forsythie.com +fortalease.com +fortbendbuyersgroup.com +fortcollinshairsalons.com +fortescent.xyz +fortfalday.cf +fortfalday.ga +fortfalday.ml +fortfalday.tk +fortforum.org +forthebestsend.com +fortheloveofdog.info +fortheloveofourchildren.org +forthgoing.best +fortinopizzabarmadrid.com +fortitortoise.com +fortlangleybeercompany.com +fortlangleybrewery.org +fortnite-accs.ru +fortnitebuy.ru +fortnitehub.ru +fortniteskill.com +fortpeckmarinaandbar.com +forttorssand.ru +forttuity.com +fortuacc.com +fortunadream.com +fortunatelady.com +fortunatelady.net +fortune-free.com +fortune-star-waterford.com +fortunechinesetakeaway.com +fortunetees.shop +fortwaynealcoholrehab.com +fortwayneclearbraces.com +fortwaynehairsalons.com +fortwayneheroinrehab.com +fortworthheroinrehab.com +forty-four-score.com +forum-bank.ru +forum-consumo.org +forum-diazrp.ru +forum-edu.ru +forum-feringer.ru +forum-guns.ru +forum.defqon.ru +forum.minecraftplayers.pl +forum.multi.pl +forumbacklinks.net +forumbegi.xyz +forumbisnis.org +forumdoconsumo.org +forumfi.xyz +forumies.com +forumk.net +forumoxy.com +forumrou.com +forumtroo.site +forusine.net +forvetbahis.org +forvetbet777.com +forvetbet788.net +forvetbet80.net +forvetbet89.net +forvetbetgrup.net +forvitta.com +forvk.ru +forward.cat +forward50.us +forwardhome.app +forwardshop.pro +forwardshop.site +forwardshop.store +forwardto.email +foryoumyfriend.online +foryoumyfriend.ru +foryoumyfriend.space +foryourrecords.com +forzandoarts.us +forzaneftchi.info +forzataraji.com +foshata.com +fosil.pro +fosinon.cf +fosrenstit.cf +fosrenstit.ga +fosrenstit.gq +fosrenstit.tk +fossclub.in +fosse776nr.online +fossimaila.info +fossimailb.info +fossimailh.info +fosterpromise.org +fostervet.net +fostervet.org +fota.email +fotblista.cyou +fotmvpe26.host +foto-contest.com +foto-creativ.ru +foto-videotrak.pl +foto-znamenitostei31.ru +fotoespacio.net +fotoglamour.ru +fotografiaslubnawarszawa.pl +fotografium.tv +fotoksiazkafotoalbum.pl +fotoliegestuhl.net +fotomontagem.info +fotonmail.com +fotonmotors.ru +fotons.ru +fotooboi-deluxe.ru +fotooboi-russ.ru +fotooboy-art.ru +fotoplik.pl +fotopromo.ru +fotorezensionen.info +fotosta.ru +fouadps.cf +fouadsarkisksa.com +fouddas.gr +fouin.icu +found-riches.com +foundationbay.com +foundationmorgan.com +foundbugs.com +foundersthatfight.com +foundersworldsummit.com +foundklinop.gq +foundlowell.com +fountainsandgardens.com +four.emailfake.ml +four.fackme.gq +fourdesign.info +fourfavorites.com +fouristic.us +fourminutemorgages.com +fourprosku.cf +fourprosku.ga +fourprosku.ml +fourprosku.tk +foursomethings.com +foursubjects.com +fourth.bgchan.net +fourthminuteloan.com +fourx.store +fouter.xyz +fowlereabe.space +fowlerwainwright.com +fowre.com +fox-skin.fun +fox-wolf.ru +fox4news.info +foxbanjo.com +foxbltt.com +foxcrayon.com +foxedcraft.space +foxgroups.xyz +foxhaq.site +foxhawks.com +foxja.com +foxmaii.cn +foxmontes.info +foxmunitions.com +foxnetwork.com +foxopros.ru +foxschool.edu +foxspizzadiberville.com +foxspizzanorthhuntingdon.com +foxtailights.com +foxtalebookshoppe.net +foxtrotter.info +foxwoods.com +foy.kr +fozmail.info +fp-sale.online +fp321.org +fpapa.ooo +fpc54.ru +fpdf.site +fperson.shop +fpf.team +fpfnlgaw.shop +fpga.monster +fpgfz.us +fpgh0blaxh3cmst.com +fphiulmdt3utkkbs.cf +fphiulmdt3utkkbs.ga +fphiulmdt3utkkbs.gq +fphiulmdt3utkkbs.ml +fphiulmdt3utkkbs.tk +fpkdbn.shop +fpkfdyed.shop +fplt21b.site +fplt22b.site +fplyk.fun +fpmatrix.com +fpmiev.icu +fpmo.cn +fptnamdinh.site +fpuob0sn0awiei3.xyz +fputra.xyz +fpvweb.com +fq1my2c.com +fq248.site +fq8sfvpt0spc3kghlb.cf +fq8sfvpt0spc3kghlb.ga +fq8sfvpt0spc3kghlb.gq +fq8sfvpt0spc3kghlb.ml +fq8sfvpt0spc3kghlb.tk +fqdggy.icu +fqing7.us +fqjfslpb.xyz +fqtxjxmtsenq8.cf +fqtxjxmtsenq8.ga +fqtxjxmtsenq8.gq +fqtxjxmtsenq8.ml +fqtxjxmtsenq8.tk +fqyrnuzn.club +fr-air-max.org +fr-air-maxs.com +fr-airmaxs.com +fr-fr.live +fr-good.xyz +fr.nf +fr33mail.info +fr3546ruuyuy.cf +fr3546ruuyuy.ga +fr3546ruuyuy.gq +fr3546ruuyuy.ml +fr3546ruuyuy.tk +fr4nk3nst3inersenuke22.com +fr4nk3nst3inerweb20.com +fracrent.com +fractal.golf +fractal.international +fractalauto.com +fractalforge.cloud +fractalforge.online +fractalt.com +fractalvisual.com +fractionalapartmentsflorence.com +fraddyz.ru +fragiletime.org +fragolina2.tk +fragranceplanet.com +frainklygaming.me +framean.xyz +frameang.xyz +frameappllance.xyz +frameitwintonsalem.com +frameless-chairs.ru +framemail.cf +framemod.email +framepipe.com +framesconfigurator.com +framezcontrolz.com +framinger.online +frananorver.cf +francamoveis.com +francanet.com.br +france-goto.xyz +france-monclers.com +france-nedv.ru +france3-44lafranceliberee.com +francemeteo.club +francemonclerpascherdoudoune1.com +francepoloralphlaurenzsgpascher.com +francesca.solutions +francescaross.buzz +francescasolutions.com +franchioffice.com +franchisemeter.com +franchiseremark.xyz +francia2018.com +francioni.dev +francistan.com +francisxkelly.com +franco.com +franding.info +franjanegra.com +frank-cazino-official.online +frank-girls.com +frank-magazine.ru +frank1swv.site +frankandfed.poker +frankcasino7.com +frankcraf.icu +frankelquotes.com +franken2020senate.com +frankenforall.com +frankflin.icu +frankfurtchevalierpremiademar.com +franklinschooleagles.com +franklintemoleton.com +franklintransportservices.com +frankoceanalbum.com +frankplay.ru +franks-takeaway-prosperous.com +franksdisco.de +frankstakeaway.com +franksunter.ml +frapmail.com +frappina.tk +frappina99.tk +fraproducts.com +frasabeq.cf +frasabeq.ga +frasabeq.gq +frasabeq.tk +frason.eu +fraternityofsound.org +fraternization946vg.xyz +fraudattorneys.biz +fraudcaller.com +fraudsniper.net +frauenspezifische.com +frazerltd.com +frdibill.icu +frdylicaniax.host +freadingsq.com +freakanin.cf +freakanin.ga +freakanin.ml +freakanin.tk +freakfm.ru +freakmail.co.cc +freakosop.ga +freakosop.gq +freakosop.ml +freakosop.tk +freaksnap.xyz +freakzmia.com +freally.com +frecciarossa.tk +frecklecertain.buzz +freclockmail.co.cc +fredanthropist.com +freddymail.com +frederiks.icu +fredol.live +fredperrycoolsale.com +fredy.store +free-4-everybody.bid +free-advertising-sites.xyz +free-backlinks.ru +free-chat-emails.bid +free-classifiedads.info +free-dl.com +free-email-address.info +free-email.cf +free-email.ga +free-episode.com +free-flash-games.com +free-gay-chat.club +free-installs-application-mine.club +free-installs-software-mine.club +free-ipad-deals.com +free-lancelot.com +free-like.xyz +free-mail.bid +free-mails.bid +free-max-base.info +free-names.info +free-online-roulette.org +free-rutorg.site +free-server.bid +free-softer.cu.cc +free-store.ru +free-temp.net +free-web-mails.com +free-webmail1.info +free.yhstw.org +free123mail.com +free4everybody.bid +freeaa317.xyz +freeaccnt.ga +freeachievement.info +freeadverts.org +freeail.hu +freealtgen.com +freeandsingle.us +freebabysittercam.com +freebeautyofsweden.se +freebee.com +freebie4teachers.com +freebies-daily.com +freebiker.su +freebin.ru +freebitcoinlottery.xyz +freeblackbootytube.com +freeblogger.ru +freebnas.site +freeboarder.org +freebookplace.site +freeboost.su +freebullets.net +freebusinessdomains.info +freecamnetwork.com +freecams3.live +freecams4u.com +freecat.net +freechargevn.cf +freechargevn.ga +freechargevn.gq +freechargevn.ml +freechargevn.tk +freechatemails.bid +freechatemails.men +freechickenbiscuit.com +freechristianbookstore.com +freeclassifiedsonline.in +freecodebox.com +freecontests.xyz +freecontractorfinder.com +freecrocobet.com +freecrot.undo.it +freedamoneway.blue +freedealworld.com +freedfromdesirly.website +freedgiftcards.com +freedivorcelawyers.net +freednn.org +freedoghouses.com +freedom-mail.ga +freedom.casa +freedom4you.info +freedomains.site +freedomcinema.ru +freedomfrompsychopaths.org +freedompop.us +freedomringspartnership.com +freedomroad.info +freedomvideo.org +freedomweb.org +freedomworkingcapital.com +freedownloadmedicalbooks.com +freeebooksusa.best +freeeducationvn.cf +freeeducationvn.ga +freeeducationvn.gq +freeeducationvn.ml +freeeducationvn.tk +freeeerf.com +freeekrat.cf +freeemail.online +freeemail4u.org +freeemailnow.info +freeemailproviders.info +freeemails.ce.ms +freeemails.racing +freeemailservice.info +freefattymovies.com +freefollowerhack.com +freefoodforest.com +freefoodforest.org +freeforall.site +freefuelrvrentals.com +freegamenjoy.com +freegamercards.com +freegatlinburg.com +freegetvpn.com +freegift.sale +freegmail.ga +freehealthadvising.info +freehealthytips.xyz +freehold-lawyer.com +freehosting.men +freehosting2010.com +freehotmail.net +freehsm.com +freehsm.net +freeimeicheck.com +freeimtips.info +freeinbox.email +freeindexer.com +freeinstallssoftwaremine.club +freeinvestoradvice.com +freeipadnowz.com +freeir90.net +freejoy.club +freekashmir.info +freekashmir.live +freeksfood.com +freelail.com +freelance-france.eu +freelance-france.euposta.store +freelancejobreport.com +freelanceposition.com +freelancergate.shop +freelancergoal.shop +freelasvegasshowtickets.net +freeletter.me +freelibraries.info +freelifetimexxxdates.com +freelivesex1.info +freelocalbusiness.com +freelookofficial.com +freelymail.com +freemail-host.info +freemail.bid +freemail.co.pl +freemail.men +freemail.ms +freemail.nx.cninfo.net +freemail.online.tj.cn +freemail.trade +freemail.trankery.net +freemail.tweakly.net +freemail.waw.pl +freemail000.pl +freemail3949.info +freemail4.info +freemailboxy.com +freemaillink.com +freemailmail.com +freemailnow.net +freemails.bid +freemails.cf +freemails.download +freemails.ga +freemails.men +freemails.ml +freemails.stream +freemailservice.tk +freemailsrv.info +freemailto.cz.cc +freemanual.asia +freemanualonline.asia +freemarket.site +freemask.ru +freemedipedia.org +freemeil.ga +freemeil.gq +freemeil.ml +freemeil.tk +freemindstrongbody.com +freeml.net +freemommyvids.com +freemoney.pw +freemr.site +freemusicdownload.website +freemy.email +freemymail.org +freemyworld.cf +freemyworld.ga +freemyworld.gq +freemyworld.ml +freemyworld.tk +freeneurons.com +freenfulldownloads.net +freeo.pl +freeoffers123.com +freeolamail.com +freeonlineke.com +freeoptics-els.site +freeoptics.site +freeourstreets.com +freeparur.cf +freeparur.ga +freeparur.gq +freeparur.ml +freepatpost.com +freepdfmagazines.club +freepdfmanuales.xyz +freephonenumbers.us +freephotoretouch.com +freeplongmels.cf +freeplongmels.gq +freeplongmels.ml +freeplongmels.tk +freeplumpervideos.com +freepoincz.net +freepop3.co.cc +freeporttoenaillasertreatment.com +freeprice.co +freeqi.xyz +freerangehuman.online +freeread.co.uk +freereinreport.com +freeringers.in +freeroid.com +freerubli.ru +freerunproshop.com +freerunprostore.com +freesamplesuk2014.co.uk +freesatom.cf +freesatom.gq +freesatom.ml +freesatom.tk +freeschoolgirlvids.com +freesearchany.info +freeserver.bid +freesexchats24.com +freesexshows.us +freeshemaledvds.com +freesistercam.com +freesistervids.com +freeskier.us +freesmsvoip.com +freespin.ru +freespinsguiden.com +freespinssaga.com +freespinstoplist.com +freespotfiles.site +freestrategy.info +freestreamboxwizard.com +freestuffonline.info +freestyle-heliopark.ru +freesystemtech.info +freetds.net +freeteenbums.com +freethemusic.net +freethought.ml +freetimeandfunallaround.info +freetmail.in +freetmail.net +freetraffictracker.com +freetrialsample.com +freetubearchive.com +freeunlimitedebooks.com +freeusenet.rocks +freevid.site +freevipbonuses.com +freewalet.website +freewatpret.tk +freewayverhuur.net +freeweb.email +freewebmail.ga +freewebmaile.com +freewebpages.bid +freewebpages.stream +freewebpages.top +freexms.com +freexrumer.com +freezeast.co.uk +freezersshop.live +freezipcode.com +freezzzm.site +freis.ru +fremails.com +fremiumhosting.icu +fremontalcoholrehab.com +frenchbedsonline777.co.uk +frenchcuff.org +frenchdrawings.org +frenk.dev +frenteadventista.com +frenzybudgeter.com +frenzytiger.com +frequential.info +freresphone.com +fresclear.com +fresco-pizzeria-ballybrittas.com +fresent.com +fresh91.casino +freshappcasgreen.ru +freshattempt.com +freshautonews.ru +freshbreadcrumbs.com +freshestcoffeepossible.com +freshestcoffeeyoucanbuy.com +freshfiles.xyz +freshflowersindoorplantscheap.net +freshkeys.ru +freshkiwi.ru +freshly.cloud +freshmail.com +freshmania24.ru +freshpato.com +freshpondcinema.com +freshportal.ru +freshprinceoftheblog.com +freshsmokereview.com +freshspike.com +freshthinkinggroup.group +freshthisweek.com +freshviralnewz.club +freshwatercomputersspot.site +freshwear.space +freshyoutop.ru +fresnococainerehab.com +fresnoforeclosures.com +fresnoheroinrehab.com +fresnokitchenremodel.com +fresnoopiaterehab.com +fresnoquote.com +freson.info +freson.org +fressmind.us +fretcraft.com +fretwizard.com +freunde.ru +freundin.ru +frexmail.co.cc +freybet40.com +freybet5.com +freybet6.com +freybet60.com +frezerovka-nsk.ru +frgviana-nedv.ru +frictionla.com +fridastoreh.xyz +fridaylaura.com +fridaymovo.com +friedchitlins.com +friedfriedfrogs.info +friedmansfinder.com +friendlyanarchists.org +friendlymail.co.uk +friendlypanther.info +friendlypuppy.info +friends-facebook.com +friendship-u.com +friendshipcounseling.com +friendsofglendon.com +friendsofgypsycats.org +friendsoflakeviewnola.com +friendsofretiredgreyhounds.info +friendsofriviera.com +friendsofsophiasurf.com +friendsofstpatricks.org +friendstotravel.info +friendtracking.ru +frightnight.org +frinned.com +frinselva.cf +frinselva.gq +frinselva.tk +frinsj.com +friomp.stream +friscaa.cf +friscaa.ga +friscaa.gq +friscaa.ml +friscaa.tk +friscoescaperooms.com +frishastmigfors.tk +friskytaphouse.com +frisyrer.website +frite-haus-takeaway.com +friteuseelectrique.net +frith.site +fritzkunze.net +frizbi.fr +frizzart.ru +frkdp.net +frl-hotel.com +frl973.us +frmonclerinfo.info +frmturkiye.com +frnfre.shop +frogdesign.info +frogflux.website +froglie.website +froidgaming.host +froking.xyz +froknowsphoto.org +frolrecam.cf +frolrecam.gq +frolrecam.ml +frolrecam.tk +from.eurasia.cloudns.asia +from.onmypc.info +fromdos.best +fromlitic.gq +fromlitic.ml +fromlitic.tk +frommalaysiawithlove.com +frommywithlove.com +fromsgwithlove.com +fromyourphone.com +fronation.com +fronddi.tk +front-end-dev.ru +front14.org +frontierfactions.org +frontierpets.com +frontiers.com +frontlinemanagementinstitute.com +frontoid.xyz +frontpointreview.com +frontspor.press +frooogle.com +frosowegunschem.space +frost-online.de +frost2d.net +frostpaper.ru +frosttopia.online +frouse.ru +frownmarc.email +frownte.host +frozen.com +frozenfund.com +frpascherbottes.com +frpinventory.info +frpinventory.org +frpinventory.us +frpscheduler.com +frso.info +frst-node.shop +fructuary.site +fruertwe.com +frugalpens.com +fruhaufsteher.com +fruitandvegetable.xyz +fruitasingletrack.com +fruitclos.buzz +fruitroug.fun +fruitsforreal.org +fruitshps.website +fruittrus.email +frunche.com +frusellboa.monster +frusidoc.cf +frusidoc.ga +frusidoc.gq +frusidoc.ml +frusidoc.tk +frutaa.website +fruticool.com +frutlinaepekarina.site +frutti-tutti.name +frxx.site +frycowe.pl +fryzer.com +fryzury-krotkie.pl +fs-fitzgerald.cf +fs-fitzgerald.ga +fs-fitzgerald.gq +fs-fitzgerald.ml +fs-fitzgerald.tk +fs-rs.net +fs-u.club +fs-y.club +fs00h.xyz +fs16dubzzn0.cf +fs16dubzzn0.ga +fs16dubzzn0.gq +fs16dubzzn0.ml +fs16dubzzn0.tk +fsagc.xyz +fsbi.online +fsbo-nc-coastal.com +fsbtrj.com +fsdfsdf.icu +fsdtgfgbhhrtpro.club +fse1xs.us +fsfsdf.org +fsgnq.xyz +fshare.ootech.vn +fshncgoqn.shop +fshopping.site +fsht3b.site +fsist.org +fsjautohub.com +fskatt.se +fskk.pl +fslm.de +fsmilitary.com +fsociety-br.online +fsociety.org +fsreg.cf +fsrfwwsugeo.cf +fsrfwwsugeo.ga +fsrfwwsugeo.gq +fsrfwwsugeo.ml +fsrfwwsugeo.tk +fstoner.com +fstopinterviews.com +fstore.org +fsuvoh.com +fswalk.com +fsxflightsimulator.net +fsxtrade.com +ft-sale.ru +ft0wqci95.pl +ft1004.com +ft1dox.us +ft7942.com +ftazl.buzz +ftcgroup.xyz +ftcrafdwp.shop +ftea.site +ftechlife.online +ftg8aep4l4r5u.cf +ftg8aep4l4r5u.ga +ftg8aep4l4r5u.gq +ftg8aep4l4r5u.ml +ftg8aep4l4r5u.tk +ftgb2pko2h1eyql8xbu.cf +ftgb2pko2h1eyql8xbu.ga +ftgb2pko2h1eyql8xbu.gq +ftgb2pko2h1eyql8xbu.ml +ftgb2pko2h1eyql8xbu.tk +ftgxn.site +fti3ht.club +ftkgnb.tokyo +ftnupdatecatalog.ru +ftoflqad9urqp0zth3.cf +ftoflqad9urqp0zth3.ga +ftoflqad9urqp0zth3.gq +ftoflqad9urqp0zth3.ml +ftoflqad9urqp0zth3.tk +ftp.sh +ftpbd.com +ftpinc.ca +ftqv8g.com +ftr4transcribers.com +ftr4transcript.com +ftrader.net +ftredo.site +ftrltd.org +ftrserver.info +ftrtranscript.com +ftsalons.com +ftsxthiw.site +ftuns.live +ftworld.ru +ftwzg1.site +ftyjyq.rest +ftyrki.com +ftzvsn.us +fu014.site +fu6znogwntq.cf +fu6znogwntq.ga +fu6znogwntq.gq +fu6znogwntq.ml +fu6znogwntq.tk +fuadd.me +fubkdjkyv.pl +fubsale.top +fuchsbau.rocks +fuchsringqg.icu +fuchuchc.online +fuckedupload.com +fuckingduh.com +fuckinhome.com +fuckme69.club +fucknloveme.top +fuckoramor.ru +fuckrosoft.com +fucktuber.info +fuckxxme.top +fuckzy.com +fucsovics.com +fucsovics.net +fucsovics.org +fudanwang.com +fudbuc.com +fudgerub.com +fuefreehzon.cf +fuefreehzon.ga +fuefreehzon.gq +fuefreehzon.ml +fuefreehzon.tk +fuelesssapi.xyz +fuelyourtypography.com +fuesculling.cf +fuesculling.ga +fuesculling.gq +fuesculling.tk +fufrh4xatmh1hazl.cf +fufrh4xatmh1hazl.ga +fufrh4xatmh1hazl.gq +fufrh4xatmh1hazl.ml +fufrh4xatmh1hazl.tk +fufuf.bee.pl +fuheqy.info +fuherudo.online +fuhil.xyz +fuhoy.com +fuirio.com +fujefa.info +fujifilmkaizen.com +fujifilmlifescienceusa.com +fujitv.cf +fujitv.ga +fujitv.gq +fukaru.com +fuke0551.com +fukkgod.org +fukolpza.com.pl +fuktard.co.in +fulahx.ru +fuli1024.biz +fuliansan.com +fullalts.cf +fullbellek.online +fullbet88.org +fullcaff.com +fulledu.ru +fullen.in +fullepisodesnow.com +fullermail.men +fullfilmizle2.com +fullframedesign.com +fullhomepacks.info +fulll.stream +fullmovie.shop +fullmoviesonline.space +fulloirai.cf +fulloirai.ga +fulloirai.ml +fulloirai.tk +fullphaubr.space +fullsemntg.ru +fullsignal.net +fullsoftdownload.info +fullsohbetler.xyz +fullssa-naver.xyz +fullstackscrum.com +fullsupport.cd +fultonsheen.net +fulvie.com +fuming.net +fumosity.site +fumw7idckt3bo2xt.ga +fumw7idckt3bo2xt.ml +fumw7idckt3bo2xt.tk +fun-cook.info +fun-dot.ru +fun-images.com +fun-kk.com +fun2.biz +fun2night.club +fun417.xyz +fun64.com +fun64.net +funandrun.waw.pl +funaro.org +funb201.com +funb301.com +funb401.com +funbabessnapz.com +funbangsan.ga +funbangsan.gq +funbangsan.ml +funbangsan.tk +funbet360.xyz +funbeti.com +funcat.best +functionalfullstackenterprise.com +functionalgeekery.net +functionalneurocenters.com +functionalneurologicrehab.com +functionalneurologycentercharlotte.com +functionalresults.com +functionaryyyu.fun +funda-foundation.com +fundacionfasta.org +fundacionhambrecerointernacional.org +fundacionretoaguasabiertas.org +fundadream.online +fundament.site +fundamentallifescore.com +fundamenty-pod-klyuch.ru +funddreamer.us +fundewa.com +fundgrowplus.com +fundgrowth.club +fundingsources.info +fundoomails.com +fundraisingak.com +fundraisingtactics.com +fundry.xyz +funeemail.info +funeralservicesgoldcoast.com +funexpert.info +funfar.pl +funfoodmachines.co.uk +funfriends.org +fungiftsforher.com +funhie.com +funinn.biz +funiyipe.site +funkleswhiru.tk +funktales.com +funktionsstrumpor.se +funkyboxer.com +funkyjerseysof.com +funlete.cf +funlete.ga +funlete.gq +funlete.ml +funlocen.ga +funlocen.tk +funminecraftservers.us +funnel.events +funnelcouponbook.com +funnelfarmmarketing.com +funnelhacker.best +funnelpipe.net +funnelpipe.org +funnelpipes.org +funnelprofitswebinar.com +funnelvswebsite.com +funnet.shop +funneuro.com +funnfests.com +funnieday.online +funniestonlinevideos.org +funny-ecards.com +funny-mom.ru +funny-moments.site +funny9flix.site +funnycodesnippets.com +funnyfev.xyz +funnyfrog.com.pl +funnyinde.buzz +funnylawyer.com +funnymail.de +funnypetpictures.com +funnyrabbit.icu +funnysmell.info +funnyve.icu +funpelican.ga +funprogoods.ru +funqweas.com +funriataty.com +funriataty.icu +funsportsgames.com +funsv.shop +funthingsoutdoor.com +funtriviagame.com +funxl.tk +funxmail.ga +funxs.tk +funxxxx.xyz +funyou.info +fupdate.site +fupunomxori.online +fuqi.info +fuqq.org +fuqtees.com +fuqus.com +fureverafteradopt.org +furieus.com +furigo.ru +furiousangel.com +furmol.website +furnicular.site +furnitt.com +furnitureinfoguide.com +furnitureliquidationconsultants.com +furnituresanddecor.com +furnitureshop.futbol +furnitureshop.life +furniturm.com +furosemide.website +furosemide247.video +furrycreations.com +furrydesires.info +furryprofiles.com +fursuit.info +fursuitcircus.com +further-details.com +furthermail.com +furthernewsun.best +furusato.tokyo +furycraft.ru +furzauflunge.de +fus-ro-dah.ru +fuse-vision.com +fusioninvoice.net +fusixgasvv1gbjrbc.cf +fusixgasvv1gbjrbc.ga +fusixgasvv1gbjrbc.gq +fusixgasvv1gbjrbc.ml +fusixgasvv1gbjrbc.tk +fussi.ru +fussilblld.site +fusskitzler.de +fussycataractgrove.site +futoboutique.site +futocasigames.com +futocasitop.com +futod.xyz +futuramarketing.we.bs +futuraseoservices.com +future-buy-mega.ru +future-planet.ru +future-sale-buy.ru +futureallstars.net +futurebuckets.com +futurecritical.xyz +futuredvd.info +futurefestival.ru +futureforkid.org +futuregenesplicing.in +futuregood.pw +futuremail.info +futureneutral.online +futureof2019.info +futureofscholarship.org +futureon.tech +futureplan4u.com +futuresoundcloud.info +futuresports.ru +futuresustainable.org +futureteam.club +futuretribeoffice.net +futurevoicesofnewmexico.blog +futuristicplanemodels.com +futzal.org +fuuken.com +fuuyoh.com +fuvesupermart.site +fuvptgcriva78tmnyn.cf +fuvptgcriva78tmnyn.ga +fuvptgcriva78tmnyn.gq +fuvptgcriva78tmnyn.ml +fuw65d.cf +fuw65d.ga +fuw65d.gq +fuw65d.ml +fuw65d.tk +fuwa.be +fuwa.li +fuwamofu.com +fuwwoi.info +fuwy.site +fux0ringduh.com +fuxuedai.club +fuxufilter.online +fuxufilter.xyz +fuxufiltration.xyz +fuxufiltre.xyz +fuyapiinsaat.com +fuzemt.online +fuzimill.site +fuzmail.info +fuzzpopstudio.com +fuzzytoad.com +fv-sale.ru +fveiowmi.space +fvg5fvrv4.win +fvhnqf7zbixgtgdimpn.cf +fvhnqf7zbixgtgdimpn.ga +fvhnqf7zbixgtgdimpn.gq +fvhnqf7zbixgtgdimpn.ml +fvhnqf7zbixgtgdimpn.tk +fvmpt7.club +fvqpejsutbhtm0ldssl.ga +fvqpejsutbhtm0ldssl.ml +fvqpejsutbhtm0ldssl.tk +fvsxedx6emkg5eq.gq +fvsxedx6emkg5eq.ml +fvsxedx6emkg5eq.tk +fvuch7vvuluqowup.cf +fvuch7vvuluqowup.ga +fvuch7vvuluqowup.gq +fvuch7vvuluqowup.ml +fvuch7vvuluqowup.tk +fvurtzuz9s.cf +fvurtzuz9s.ga +fvurtzuz9s.gq +fvurtzuz9s.ml +fvurtzuz9s.tk +fvusale.top +fvwozi.us +fw-nietzsche.cf +fw-nietzsche.ga +fw-nietzsche.gq +fw-nietzsche.ml +fw-nietzsche.tk +fw-sale.online +fw.moza.pl +fw025.com +fw2.me +fw4px9.com +fw6m0bd.com +fw90a4awyh.com +fw9tkv.us +fwca.xyz +fwd2m.eszett.es +fweurccje.shop +fwgybr.us +fwiqvv.site +fwmuqvfkr.pl +fws.fr +fwt855.com +fwxzvubxmo.pl +fx-banking.com +fx-brokers.review +fx-rac.site +fx-st.net +fx15.website +fx3666.com +fx3777.com +fx3888.com +fx4666.com +fx5666.com +fx5999.com +fx6111.com +fx6333.com +fx7444.com +fx8333.com +fx8999.com +fx9111.com +fx9555.com +fxcash.asia +fxfmail.com +fxgirl.net +fxkuva.us +fxmail.ws +fxmarkets1000.com +fxmender.com +fxnxs.com +fxokpp.rest +fxoso.com +fxprix.com +fxredefined.com +fxrental-kr.site +fxsanfrancisco.com +fxsuppose.com +fxunity.biz +fxvks.site +fxxx.site +fy-sale.ru +fy4rro.us +fy6.app +fy9.app +fyad7b.site +fybdc1.site +fybglz.tokyo +fycu.site +fydffh1-priviut.fun +fydffh1-priviut.info +fydffh1-priviut.site +fydffh1-priviut.space +fydffh1-priviut.xyz +fyii.de +fyimm.com +fyjiwa.com +fynuas6a64z2mvwv.cf +fynuas6a64z2mvwv.ga +fynuas6a64z2mvwv.gq +fynuas6a64z2mvwv.ml +fynuas6a64z2mvwv.tk +fyov.email +fyromtre.tk +fys2zdn1o.pl +fytbkx.icu +fyvdetayq.cf +fyvznloeal8.cf +fyvznloeal8.ga +fyvznloeal8.gq +fyvznloeal8.ml +fyvznloeal8.tk +fyys.life +fyytea.icu +fyziotrening.sk +fyzjgt.site +fz-gamvar1.ru +fzahafriyat.xyz +fzbdfyy.com +fziex.com +fzlol.us +fztvgltjbddlnj3nph6.cf +fztvgltjbddlnj3nph6.ga +fztvgltjbddlnj3nph6.gq +fztvgltjbddlnj3nph6.ml +fzyutqwy3aqmxnd.cf +fzyutqwy3aqmxnd.ga +fzyutqwy3aqmxnd.gq +fzyutqwy3aqmxnd.ml +fzyutqwy3aqmxnd.tk +g-2018.ru +g-asdjafwer.online +g-case.org +g-chance.ru +g-ffd.ru +g-fiore.ru +g-mailer.site +g-mailer.website +g-mailer.xyz +g-mailix.com +g-meil.com +g-neurosystem.ru +g-o-o-g-l-e.cf +g-o-o-g-l-e.ga +g-o-o-g-l-e.gq +g-o-o-g-l-e.ml +g-oproz.ru +g-radical.com +g-secretclass.website +g-share.biz +g-shoponline.info +g-starblog.org +g-timyoot.ga +g.hmail.us +g.polosburberry.com +g.seoestore.us +g.ycn.ro +g00g.cf +g00g.ga +g00g.gq +g00g.ml +g00g13.tk +g00gl3.gq +g00gl3.ml +g00glechr0me.cf +g00glechr0me.ga +g00glechr0me.gq +g00glechr0me.ml +g00glechr0me.tk +g00gledrive.ga +g00ib.com +g00qle.ru +g04p3.us +g05uo.site +g05zeg9i.com +g0mail.com +g0qva.us +g0zr2ynshlth0lu4.cf +g0zr2ynshlth0lu4.ga +g0zr2ynshlth0lu4.gq +g0zr2ynshlth0lu4.ml +g0zr2ynshlth0lu4.tk +g1118.com +g1119.com +g14l71lb.com +g1bet.com +g1ca82.us +g1hgun.us +g1kolvex1.pl +g1xmail.top +g2.brassneckbrewing.com +g20-publications.org +g2020.ru +g212dnk5.com +g22444.com +g22666.com +g2a.sk +g2am0.xyz +g2dcli.us +g2tpv9tpk8de2dl.cf +g2tpv9tpk8de2dl.ga +g2tpv9tpk8de2dl.gq +g2tpv9tpk8de2dl.ml +g2tpv9tpk8de2dl.tk +g2xmail.top +g368.online +g3conference.org +g3managemententerprises.com +g3nk2m41ls.ga +g3nkz-m4ils.ga +g3nkzmailone.ga +g3xmail.top +g4hdrop.us +g4mksw.com +g4o.ru +g4qmkw.us +g4re71kk.xyz +g4rm1nsu.com +g4zk7mis.mil.pl +g50hlortigd2.ga +g50hlortigd2.ml +g50hlortigd2.tk +g50pb.site +g56ce.com +g57sn.site +g59xg.space +g5tony.ru +g66ez.space +g6cjd4.site +g6ijuf.site +g7665.com +g77og.site +g78qp.com +g7kgmjr3.pl +g7kvam.us +g7lkrfzl7t0rb9oq.cf +g7lkrfzl7t0rb9oq.ga +g7lkrfzl7t0rb9oq.gq +g7lkrfzl7t0rb9oq.ml +g7lkrfzl7t0rb9oq.tk +g7n.xyz +g7news.website +g7rnu96pk4zv5mu.xyz +g7sz9n.online +g7tsiv.us +g9dxbu.us +g9pneh.info +ga-shop.online +ga46kd.xyz +ga7yhd.host +ga9dho.info +gaaffshop.store +gaairlines.com +gaanerbhubon.net +gababiotics.com +gabalot.com +gabbf.com +gabbygiffords.com +gabbymanagementsystem.com +gabbysgoodstuff.info +gabbysgoodstuff.net +gabbysgoodstuff.org +gabekey.ru +gabescott.co +gabesdownloadsite.com +gabice.info +gabineteeconomico.com +gableavlf.space +gabon-nedv.ru +gabooster.com +gabox.store +gabrieladiaz.net +gabrielamusic.org +gabrieldunn.buzz +gabrieljarvis.buzz +gabrielroesch.com +gabrielshmidt.com +gaby.social +gabydino.com +gac.deals +gacas-1dax.ru +gacaterpillar.com +gaccula.ga +gaccula.gq +gaccula.ml +gaccula.tk +gachngay.com +gachupa.com +gacifa.info +gacoky.info +gacus5.us +gadenmonastery.org +gadget-mania.com +gadget-space.com +gadgethitsshop.com +gadgetliv.club +gadgetreviews.net +gadgetsfair.com +gadgetsparadijs.online +gadingbola.info +gads-88.com +gadsnela.ga +gadsnela.gq +gadsnela.ml +gadsnela.tk +gaf.oseanografi.id +gaf4uv.us +gafemarket.site +gafrem3456ails.com +gafslr.icu +gafy.net +gag16dotw7t.cf +gag16dotw7t.ga +gag16dotw7t.gq +gag16dotw7t.ml +gag16dotw7t.tk +gagainter.com +gagalive.shop +gagged.xyz +gaggle.net +gaha.site +gaiaplanet.org +gaiasgarden.online +gaiasgarden.shop +gaibrubfor.cf +gaierdun.com +gailang.com +gailymealtimegrown.site +gainready.com +gainstronghealthymuscles.com +gainyournewsmarttech.review +gaish.space +gaiti-nedv.ru +gaivolgsi.cf +gaivolgsi.ga +gaivolgsi.ml +gaivolgsi.tk +gajahtoto.org +gajesajflk.cf +gajesajflk.gq +gajjmorit.ru +gakbec.us +gaki-osaka-si.xyz +gakkurang.com +gal5.com +gal8.com +galabettv22.com +galabettv25.com +galabettv28.com +galablogaza.com +galactofa.ga +galaevtekstil.xyz +galainfos.com +galamagonline.com +galamat.ru +galangmovie.com +galangshop.ga +galangstore.live +galasewrq.online +galaxy-s9.cf +galaxy-s9.ga +galaxy-s9.gq +galaxy-s9.ml +galaxy-s9.tk +galaxy-tip.com +galaxy.tv +galaxy20.xyz +galaxy996.com +galaxyarmy.tech +galaxybetting48.com +galaxybetting50.com +galaxybuds.fun +galaxypokerbet.org +galaxyrc.online +galaxyrc.store +galaxys8giveaway.us +galbuluueg.space +galco.dev +galdb.com +galenwalter.com +galerielarochelle.com +galeswordfoul.website +galgame.us +gali-village.ru +galice.info +galinastadnik.ru +galismarda.com +galleriafourty.com +gallerwdcm.space +gallery-annabi.com +gallery-annabi.org +gallery-des-artistes.com +gallerypruva.xyz +galleryroyal.com +gallfly.online +gallowayandfern.com +gallowaybell.com +gallowspointgg.com +gally.jp +galmarino.com +galotrf.site +galshotel.ru +galsns.com +galtool.com +galurl.com +galuzino.ru +galvanmail.men +galvestontexasrentals.com +galwaybirds.com +gamail.com +gamail.top +gamamail.tk +gamar.fun +gamarraonline.com +gambling-land.ru +gambling4me.ru +gambrush.shop +gamdspot.com +game-drop.ru +game-plus.online +game-rus.com +game-stock.ru +game-with.com +game-world.pro +game-zakup.ru +game.com +game1922.com +game2.de +game2533.com +game5262.com +gameaddiction.rehab +gameazart.ru +gamebaikingfun.net +gamebean.ru +gamebucks.online +gamechangingsalesperformance.com +gamecheatfree.xyz +gamecheats.best +gamecity888.com +gamecodebox.com +gamecodesfree.com +gamecofffer.cf +gamecofffer.ga +gamecofffer.ml +gamecredits.shop +gamecrook.net +gamecrook.org +gamedaytshirt.com +gamedeal.ru +gamedevshop.ru +gamedistri.com +gamedistribution.app +gamedoithuongking.com +gamedowlandepic.ga +gamedowlandepic.ml +gamefa.online +gameforlove.org +gamefreak.org +gamegild.ru +gamegoldies.org +gamegowin.net +gamegregious.com +gamekingparlour.com +gameloli.com +gamemacao.site +gamemanoidstore.com +gameme.men +gamemoney.app +gamenewclam.ru +gamenewkite.ru +gamenewpen.ru +gamenewrat.ru +gameon1ine.ru +gameonsports.live +gameonsportscenter.com +gameonsportslive.com +gamepi.ru +gamepromotion.ru +gameps5.ga +gameps5.ml +gamequocte.com +gamer-market.net +gamer.watch +gameran.ru +gamercosplay.pl +gamerentalreview.co.uk +gamerfu.com +gamergag.net +gamernews.com +gamers-like-us.com +gamersbrand.com +gamersland.club +gamerslive-shop.ru +games-box.info +games-germany.xyz +games-hosts.com +games-online24.co.uk +games-zubehor.com +games0.co.uk +games4free.flu.cc +games4free.info +gamesblog.com +gamesbrands.space +gameschool.online +gamescouncilsite.com +gamesemperiom.net +gameslabs.org +gamesliga.biz +gamesliga.net +gamesofthefarm.com +gamesonlinefree.ru +gamesonlinez.co.uk +gamesoonline.com +gamespoool.org +gamesportal.me +gamesredsite.club +gamesstreetnews.com +gamestips.ru +gametalks.ru +gameterrain.info +gamethegames.com +gametv.biz +gametv.pro +gamevillage.org +gamewedota.co.cc +gamexshop.online +gamgling.com +gamil.com +gaminators.org +gaming90.org +gamingant.com +gamingday.com +gamingpromo.com +gaminoageny.com +gamisfolia.com +gamma.org.pl +gammafoxtrot.ezbunko.top +gammageandburnham.com +gammageburnham.com +gammicism.site +gamno.config.work +gamora274ey.cf +gamora274ey.ga +gamora274ey.gq +gamora274ey.ml +gamora274ey.tk +gamosbaptish.com +gamosbaptisi.com +gamosvaptish.com +gamosvaptisi.net +gamr15.org +gamuci.com +gamutimaging.com +gamvip-com.app +gan.lubin.pl +gancio.online +gandepiaoliang.com +ganeshajitu.net +ganeshajitu.org +ganeshatogel.com +gangbazip2.club +gangcheng-guoji.com +gangchengguoji.com +gangeryslx.space +gangkindter.ga +gangkindter.gq +gangkindter.tk +gangli163.com +gangstersofharlem.com +gangtrk.site +gangu.cf +gangu.gq +gangu.ml +gangy.world +ganhardinheironainternethj.com +ganihomes.com +ganjipakhsh.shop +ganninarnold.com +gannoyingl.com +ganobet42.com +ganoderme.ru +ganohoy.com +ganol.online +ganool.bid +ganslodot.top +gansupwdjs.ru +gantellikz.info +gantellir.info +gantellmiri.info +gantraca.ga +gantraca.gq +gantraca.ml +gantraca.tk +ganyanhesaplama.xyz +ganymexujl.space +ganzhe4.app +ganzhe6.app +ganzhe7.app +ganzhe8.app +ganzhe9.app +gaojie.live +gaolcostingfuse.website +gaolrer.com +gaoqingtaotu.com +gaoqingwuma.com +gaoxiao2.biz +gaoxiao7.biz +gap0.net +gap0.social +gapdns.com +gapemail.ga +gapforceschoolgroups.com +gapl.ru +gapo.club +gapo.info +gapo.pro +gapo.vip +gappk89.pl +gapsapp.com +gapu23n23swc08f.xyz +gaqa.com +garage-saint-chamond.xyz +garage46.com +garageamazon.com +garagecfcaron.com +garageclubtarpon.com +garagedoor.marketing +garagedoormaricopas.com +garagedoormonkey.com +garagedoors-pa.com +garagedoorschina.com +garagedoorselmirage.com +garantibuyutucu.xyz +garantipazar.com +garantweb.com +garapraisal.com +garasikita.pw +garatoi.com +garaze-wiaty.pl +garbagecollector.org +garbagemail.org +garbagepossessionensure.website +garcia-y-vega.biz +garciniacambogiaextracts.net +gardconma.cf +gardel.org +gardemaks-official.space +gardemaks-official.website +garden-of-vegan.com +garden-plant.ru +gardenans.ru +gardencourt.online +gardengift.info +gardeningtips.shop +gardeniom.com +gardenpavingonline.net +gardenscape.ca +gardensgrow.com +gardenshop.futbol +gardentamcoc.com +gardercrm.ru +gardgispa.cf +gardgispa.ga +gardgispa.gq +gardgispa.tk +gardn.net +garenasukien.com +garfield-game.ru +garfieldsurvival.info +garibomail2893.biz +garillias22.net +garingsin.cf +garingsin.ga +garingsin.gq +garingsin.ml +garizo.com +garlandaccidentlawyers.com +garlanddusekmail.net +garlandnailsalons.com +garliclife.com +garlicmedia.site +garlicteaorjinal.site +garlictearesmi.site +garlictearesmisatis.info +garlictearesmisatis.site +garlictesatis.site +garmall.com +garmineshop.com +garmingpsmap64st.xyz +garnavia.xyz +garnett.us +garnettinvestmentstrategies.com +garnettmailer.com +garnous.com +garoth.com +garqelo.com +garrifulio.mailexpire.com +garriganlymaninside.com +garruko.ga +garrulous.me +garry-potter.net +garrymccooey.com +garrynacov.cf +garsasd.club +garsvisi.cf +garsvisi.gq +garsvisi.ml +gartenarbeiten-muenchen.ovh +garu.site +garudaesports.com +garyburge.net +garykruegerdds.com +garyschollmeier.com +garyshaw.net +gas-avto.com +gas-spark-plugs.pp.ua +gasdjklwe.online +gasech.xyz +gaselectricrange.com +gashik.site +gasly.info +gasocin.pl +gasofmass.com +gasp.live +gaspariniadv.com +gasprem.ru +gaspworkoutwear.com +gassfey.com +gasspecsa.info +gasssboss.club +gastchalga.ga +gastchalga.gq +gastchalga.ml +gastchalga.tk +gastivist.org +gasto.com +gastroioyb.space +gastrolekars.ru +gastructuralengineering.com +gastsandang.cf +gastsandang.ga +gastsandang.gq +gastsandang.ml +gastsandang.tk +gastterpie.gq +gastterpie.ml +gastterpie.tk +gaswirth.me +gasztrofalu.com +gatamala.com +gatariweb.com +gatdau.com +gate-repair-thousandoaks.info +gaterremeds1975.eu +gateway3ds.eu +gatewaytube.com +gathelabuc.almostmy.com +gatherenmedia.com +gatlisheco.icu +gatmoka.com +gato.com +gato.gq +gatosdebotella.icu +gatosk.net +gatou.store +gaubonghn.com +gaudianosporthorses.com +gaumontleblanc.com +gauzemolv.space +gav0.com +gavasol-url1.ru +gavelhost.com +gavinmeetings.com +gavyedekparca.com +gawab.com +gawai-nedv.ru +gawc6234.xyz +gawhatsapp.com +gawmail.com +gawuxu.xyz +gay-cams.club +gay-kontakte.online +gay.theworkpc.com +gayana-nedv.ru +gayatriaura.info +gayboysi.com +gaycock.ru +gaydaddy.ga +gaydatingheaven.com +gaydayexpo.com +gayflorida.net +gayken.org +gayluspjex.ru +gaymail2020.com +gaymoskva.net +gaymoviedome.in +gaynewworkforce.com +gayoranges.com +gayrimenkuluniversitesi.com +gaytag.club +gayvirtualworld.com +gaz-inv1st.space +gaz-invesst.space +gaz-promihlinost.space +gaz-prominest.website +gaz-prominvest.ru +gaz-proms.website +gazam.ru +gazebostoday.com +gazetajavore.net +gazetapracapl.pl +gazetawww.pl +gazetecizgi.com +gazettenews.info +gaziantepara.xyz +gaziantepbaca.online +gaziantepbaca.xyz +gazianteplitatlici.xyz +gaziemirfm.xyz +gaziemirlisesi.xyz +gazipasaklimaservisi.com +gazoproekct.space +gazpro2vesti.ru +gb-1004.com +gb186.site +gb6.ru +gbamiconstruction.com +gbamld.best +gbcmail.win +gberos-makos.com +gbf48123.com +gbgb1234.com +gbh1h.us +gbkfho.us +gbkutf8.com +gbmail.top +gbmouldings.com +gbnbancorp.com +gbois-stav.ru +gbouquete.com +gbpartners.net +gbqetv.info +gbqtfm.com +gbs7yitcj.pl +gbtxtloan.co.uk +gbuyeasy.com +gbvm.email +gbxuums.com +gbz01nn6.xyz +gcacweb.com +gcamhmgt.shop +gcantikored.pw +gcaoa.org +gcasino.fun +gcbcdiet.com +gcc-ibt.us +gcc138.com +gcciw.org +gcdj168.com +gcdn.hk +gcei3r.com +gcf84z.us +gcfleh.com +gchatz.ga +gckgw.info +gclubscr888.com +gcmail.top +gcordobaguerrero.com +gcosmic.ru +gcp.ong +gcscarshipping.com +gcsoftware.ru +gctqlypk.shop +gcvqin.us +gcwjw.info +gcyacademy.com +gczbpbe.site +gcznu5lyiuzbudokn.ml +gcznu5lyiuzbudokn.tk +gd5ose.online +gd6ubc0xilchpozgpg.cf +gd6ubc0xilchpozgpg.ga +gd6ubc0xilchpozgpg.gq +gd6ubc0xilchpozgpg.ml +gd6ubc0xilchpozgpg.tk +gdacg.com +gdb.armageddon.org +gdbpag.site +gdcmedia.info +gdcp84.com +gdcp868.com +gddao.com +gde-vzyat-ipoteku.ru +gde-zaim.online +gdekupit5.ru +gdemuzon.ru +gdf.it +gdfretertwer.com +gdfsafdhbag.website +gdgoodjob.com +gdgreat.online +gdgreat.ru +gdhkftp.com +gdian38.com +gdian39.com +gdian43.com +gdian44.com +gdian48.com +gdian49.com +gdian53.com +gdian54.com +gdian56.com +gdian57.com +gdian58.com +gdian59.com +gdian62.com +gdian63.com +gdian76.com +gdian78.com +gdian82.com +gdian83.com +gdian84.com +gdian85.com +gdian86.com +gdian87.com +gdian93.com +gdian95.com +gdian99.com +gdjdjqok.shop +gdkhox.us +gdl1rr.site +gdmail.top +gdmalls.com +gdmushifu.com +gdprcompliance.expert +gdprcompliance.solutions +gdqdaintb.ml +gdqdp2.us +gdqzhv.com +gdradr.com +gdstudyworkshop.net +gdsutzghr.pl +gdtjh.com +gdyiyh.us +gdynia.ru +gdzhya.com +gdziearchitektura.biz +ge1hsn.online +ge788.com +ge991.buzz +geadventure.com +geail.com +geanic.icu +geararticles.com +geardos.net +geargum.com +gearhead.app +gearheads.us +gears4camping.com +geartower.com +gearyourfuture.com +geauxday.com +geaviation.cf +geaviation.ga +geaviation.gq +geaviation.ml +geaviation.tk +gebaeudereinigungsfirma.com +gebicy.info +geburtstags.info +geburtstagsgruesse.club +geburtstagsspruche24.info +gebyarbet.info +gebyarpoker.com +gebzetuning.xyz +gecici.ml +gecotspeed04flash.ml +ged34.com +gedagang.co +gedagang.com +geddesandjill.com +gedhemu.ru +gedmail.win +gedore-rus.ru +gedotvtan.shop +gedsmail.com +gedungqq.site +geedeehewstone.me +geedt.icu +geek-poster.ru +geekcheatsheets.com +geekchiccouture.com +geekemailfreak.bid +geekforex.com +geekhack.network +geekhack.report +geekipedia.ru +geekology.com +geekpursuits.com +geekyogurt.tech +geekzhosting.com +geeqs.ru +geew.ru +geezmail.ga +gef.global +gefestglass.ru +gefpmjsfq.shop +gefriergerate.info +gegealabama.com +gegealaska.com +gegearizona.com +gegearkansas.com +gegedanbasi.tk +geggos673.com +gehensiemirnichtaufdensack.de +gehmitmiraus.xyz +gehu.site +geidragdio.ga +geidragdio.gq +geilmacher.com +geimager.com +gejaagd.online +gekhom.cd +gekk.edu +gekkogames.org +gekokerpde.tk +gekury4221mk.cf +gekury4221mk.ga +gekury4221mk.gq +gekury4221mk.ml +gekury4221mk.tk +gelarqq.com +gelatinize510jw.xyz +gelatoprizes.com +geld-verdienen-leicht-gemacht.online +gelddestges.cf +gelddestges.ga +geldverdienenalstiener.online +geldwaschmaschine.de +gelegenheidsdatingsites.online +gelendgiklove.ru +gelenekselgulsuyu.com +gelenium.ru +geleti.cf +geleti.gq +geleti.ml +geleti.tk +gelitik.in +gelnhausen.net +gelomart.site +geltopmarl.site +geludkita.cf +geludkita.ga +geludkita.gq +geludkita.ml +geludkita.tk +gemail.com +gemar-qq.live +gemarbola.icu +gemarbola.life +gemarbola.link +gemarbola.news +gemardepo.online +gemeentebanen.works +gemient.com +geminicg.com +gemmation.site +gemo-pro-svechi.ru +gemsgallerythailand.ru +gemsro.xyz +gen.uu.gl +gen16.me +genallinutritionals.com +genazvales.world +genclikvemedeniyet.online +genclikvemedeniyet.xyz +gencurebiomanufacturing.com +genderfuck.net +genderuzsk.com +gendutpoker.net +gendutpoker.org +genelmuteahhitlik.com +genelmuteahhitlik.net +genelteknikdestekhatti.com +generador.app +general-casino.info +general-electric.cf +general-electric.ga +general-electric.gq +general-electric.ml +general-motors.tk +generalbatt.com +generalhost.online +generalinguistics.com +generaltranz.top +generationcrypto.ru +generationscommunity.com +generationym.org +generatoa.com +generator.email +genericaccutanesure.com +genericcialis-usa.net +genericcialissure.com +genericcialisusa.net +genericclomidsure.com +genericcrestor.website +genericdiflucansure.com +genericflagylonline24h.com +genericlasixsure.com +genericlevitra-usa.com +genericmedrol.info +genericprednisonesure.com +genericpropeciaonlinepills.com +genericpropeciasure.com +genericretinaonlinesure.com +genericretinasure.com +genericsautralia.com +genericsingulairsure.com +genericventolin.info +genericviagra-onlineusa.com +genericviagra-usa.com +genericviagra69.bid +genericviagraonline-usa.com +genericwithoutaprescription.com +genericzithromaxonline.com +genericzoviraxsure.com +genericzyprexasure.com +generoushomebuyersllc.net +generousoptions4all.net +geneseeit.com +genesisvaluation.com +geneticdisease.org +genetics.farm +genetics.shop +genetiklab.com +genetoken.community +genevoid.com +genf20plus.com +genf20review1.com +gengencharities.net +gengencharties.net +gengxinji.com +gengzei.club +genicraft.ru +genioushacker.cf +geniusf.actor +geniusfactor.dev +genk5mail2.ga +genkibit.com +genkpoker2.xyz +genmobile.net +gennowhosting.com +gennox.com +genoa-cafe-rush.com +genoa-takeaway-athlone.com +genoacaferush.com +genoacafesallins.com +genonema.com +genotropin.in +genoutdo.eu +genrephotos.ru +genserv.xyz +gensetgas.com +genshure.com +gentakusumo.xyz +genteymac.net +gentlemancasino.com +gentlemen.ml +gentlemensbarbershop.club +genturi.it +genuinemicrosoftkeyclub.com +genuinestaunton.com +genuosofa.com +genusixhre.space +genusneyee.ru +genuspbeay.space +genusvnabf.space +genvia01.com +genx-training.com +genys.best +geo-crypto.com +geo.gallery +geobroodun.cf +geobroodun.ga +geobroodun.ml +geobroodun.tk +geoclaven.ml +geoclaven.tk +geoclsbjevtxkdant92.cf +geoclsbjevtxkdant92.ga +geoclsbjevtxkdant92.gq +geoclsbjevtxkdant92.ml +geoclsbjevtxkdant92.tk +geodeticdirections.info +geodezjab.com +geodoo.xyz +geofinance.org +geoglobe.com +geoinbox.info +geojson.app +geokomponent.ru +geolocalroadmap.com +geologgdpo.space +geologicpublications.net +geologik.biz +geomail.win +geometricescape.com +georaster.info +georedact.com +georestti.gq +georestti.tk +george-pooley.com +georgebox.net +georgeharvey.buzz +georgehood.com +georgeslaan.buzz +georgethefoods.com +georgevye.com +georgeztxc.host +georgia-tut.ru +georgiamcdonald.buzz +georgiamedicarenews.com +georgiamorley.buzz +georgiamountainlakehouses.com +georgiapearson.buzz +georgiaprobateservices.info +georide2.app +georights.net +geospirit.de +geostall.com +geotage.ga +geotage.gq +geotage.tk +geotamar.cf +geotamar.ga +geotamar.gq +geotamar.ml +geotamar.tk +geotemp.de +gepatitu-c.net +geposel.ga +geposel.gq +geposel.ml +geposel.tk +geraldbull.org +geraldinemoo.com +geraldlover.org +gerandos.ru +gerdese.online +gerdimenta.ru +gere.oazis.site +geremail.info +gerenc.host +gerenciacaixa.online +gerenciagran.com +gergilimembran.com +gerhanajitu.net +gerher3-privberh.fun +gerher3-privberh.host +gerher3-privberh.press +gerher3-privberh.site +gerher3-privberh.space +gerher3-privberh.website +geriatricos.page +geristore.xyz +gerkava.website +germainarena.com +germanmail.de.pn +germanmails.biz +germanytoday.club +germanyxon.com +germemembran.com +germemembranlar.com +germinahah.space +germred.site +germsurfacegain.website +gerncompmas.ga +gerncompmas.tk +gero.us +geroev.net +geronra.com +gerovarnlo.com +gers-phyto.com +gertenisembul.xyz +gerties.com.au +gertyisacas.club +gertyni.xyz +ges-online.ru +geschcahers.cf +geschcahers.gq +geschcahers.ml +geschcahers.tk +geschenk-aa.club +geschenk-ac.club +geschenk-ak.club +geschenk-am.club +geschenk-an.club +geschenk-v.club +geschenk-z.club +geschent.biz +gesotyb.tech +gestiondefortune.info +get-best-datings1.com +get-best-prize11.life +get-best-prize13.life +get-best-prize4.life +get-best-prize6.life +get-best-proxy.xyz +get-bestprize14.life +get-bestprize2.life +get-bestprize5.life +get-biobalancelashes.com +get-bitcoins.club +get-bitcoins.online +get-data-id-2.space +get-dental-implants-key.live +get-dental-implants-new.live +get-dental-implants.com +get-dynafuzelash.com +get-house-security-offer.market +get-insurance.com +get-interfxglassluxury.com +get-interfxproductsofluxury.com +get-liposuction-weightloss.live +get-mail.cf +get-mail.ga +get-mail.ml +get-mail.tk +get-my-offer.club +get-optmunblaze.com +get-papistop.site +get-psoriasis-solutions.market +get-psoriasis-treatment.market +get-thebonus-now6.life +get-thebonus-now9.life +get-truck-auto-spot.sale +get-ultrazeel-luxury.com +get.griyakuliner.com +get.pp.ua +get.tokyo +get1mail.com +get2mail.fr +get30daychange.com +get365.pw +get365.tk +get3bs.com +get417.xyz +get42.info +getadeals.biz +getahairstyle.com +getairmail.cf +getairmail.com +getairmail.ga +getairmail.gq +getairmail.ml +getairmail.tk +getalldental.net +getaloanfast.biz +getamailbox.org +getamalia.com +getandklj.gq +getapet.info +getapet.net +getapp.company +getappraisers.com +getaqu.info +getasolarpanel.co.uk +getautoloan.website +getautomata.org +getaviciitickets.com +getbackinthe.kitchen +getbearded.com +getbet.host +getblg.xyz +getblgs.xyz +getblogs.xyz +getbonce.com +getbreathegreencharcoal.com +getbreathtaking.com +getbriefr.com +getbusinessontop.com +getcashstash.com +getceen.com +getcelloskinbylittlemonkey.com +getchina.ru +getchopchop.com +getcleanskin.info +getcloudmango.net +getcmoji.com +getcoolmail.info +getcoolstufffree.com +getcorkgenius.com +getcustomdesigns.site +getdarkfast.com +getdocumentsdone.info +getdocumentsdone.org +getdoll.ru +getebookclick.com +geteit.com +getemail.tech +getemail9.com +getevange.com +getevangelised.com +getf.site +getfollowers24.biz +getfreecoupons.org +getfreefollowers.org +getfreshcut.com +getfrntrw.online +getfun.men +getgymbags.com +gethappysound.com +gethimbackforeverreviews.com +getimpromptu.com +getinboxes.com +getinharvard.com +getinshap.com +getinstafollowers.website +getinsuranceforyou.com +getintopci.com +getippt.com +getishop.xyz +getisrael.com +getit-beauty.com +getitfast.com +getivtreatment.org +getjar.pl +getjulia.com +getkitchen.club +getkl.site +getknot.app +getladiescoats.com +getlesshot.cf +getlesshot.ga +getlesshot.gq +getlesshot.ml +getlesshot.tk +getlink.website +getlinkyoutube.net +getllcservices.com +getlostin.com +getmaidanapinola.com +getmail.fun +getmails.eu +getmails.pw +getmails.tk +getmailsonline.com +getmaptab.com +getmba.ru +getmemyname.com +getmethefouttahere.com +getmoziki.com +getmy417.xyz +getmygoods.cloud +getmygooods.store +getmylivecam.online +getnada.cf +getnada.com +getnada.ga +getnada.gq +getnada.ml +getnada.tk +getnetfx.website +getnewnecklaces.com +getnflxnw.website +getnites.com +getnowdirect.com +getnowtoday.cf +getobeslim.host +getocity.com +getofferoline.space +getoffmylawn.org +getoffrentohio.com +getonemail.com +getonemail.net +getpaperz.com +getpaulsmithget.com +getpdfmanuales.xyz +getpier.com +getprogramstart.com +getqueenbedsheets.com +getridofacnecure.com +getridofherpesreview.org +getridofsteve.com +getrocketbox.com +getruvi.com +getsamar.com +getscripts.org +getsewingfit.website +getsimpleemail.com +getsnooperapp.com +getsplitpea.com +getspringsfast.com +getstructuredsettlement.com +getstuffedgoogle.com +getsuz.com +gett.icu +gettangent.com +gettempmail.com +getthemp3.com +gettinga.buzz +gettinhas.ml +gettoknowphilanthropy.org +gettopubg.com +gettruck-autospot.sale +gettruvi.com +getty-home.com +getty-lab.com +getty-labs.com +gettyam.com +gettycap.com +gettycm.com +gettyeng.com +gettyfamilyoffice.com +gettyfo.com +gettyfour.com +gettygolf.com +gettygrowth.com +gettyhq.com +gettyinvest.com +gettyoffice.com +gettyprojects.com +gettysburgfoundation.info +gettysburgleadership.org +gettyscienceengineering.com +gettysecretariat.com +gettysf.com +gettysp.com +getupagain.org +getvid.me +getvmail.net +getvpn.net +getwaterpulse.com +getwebsiter.com +getwetinc.net +getwomenfor.me +getwoothemes.com +getworlddirect.com +getyougadgets.com +getyourbook.site +getyourstudy.ru +getyourtantraon.com +getzradonpros.net +getzradonpros.org +geuur.live +gevemarket.site +gewinner-pose.com +gewqsza.com +geykurword.cf +geykurword.ga +geykurword.gq +geykurword.tk +gezaweisz.com +gezikolik.com +gf-roofing-contractors.co.uk +gf.wlot.in +gf15f1g.live +gf7w.com +gfades.site +gfan.gvoice.men +gfbjnu.com +gfcgp.club +gfcnet.com +gfcom.com +gfdbnmy21.info +gfdbnmy21.website +gfdc-bfdvd-dvs.online +gfdrwqwex.com +gfdyhrtyre.site +gfe83.space +gffcqpqrvlps.cf +gffcqpqrvlps.ga +gffcqpqrvlps.gq +gffcqpqrvlps.tk +gffgf.club +gffgf.site +gffjf.club +gfftxn.com +gfgfgf.org +gfgnw.icu +gfh522xz.com +gfhjk.com +gfhly.club +gfivj.icu +gflwpmvasautt.cf +gflwpmvasautt.ga +gflwpmvasautt.gq +gflwpmvasautt.ml +gflwpmvasautt.tk +gfmail.cf +gfmail.ga +gfmail.gq +gfmail.tk +gfmbh.xyz +gfmewrsf.com +gfounder.org +gfpiz1.site +gfpqlk.info +gfqmpn.tokyo +gfremail4u3.org +gfsbilling.com +gfsc.global +gfsoftwareapp.com +gfsw.de +gftodtyl.shop +gftpf.live +gful.fun +gful.store +gful.us +gfvgr2.pl +gfwjrmpa.shop +gfwlist.com +gfwsbs.us +gfxtool.buzz +gfyule8.com +gfzju.site +gg-byron.cf +gg-byron.ga +gg-byron.gq +gg-byron.ml +gg-byron.tk +gg-maramont.ru +gg-squad.ml +gg-zma1lz.ga +gg018.space +gg019.space +gg022.space +gg023.space +gg024.space +gg025.space +gg18269.com +gg2srxzj.com +gg57822.com +gg7665.com +gg9094.com +ggame3.site +ggame3.xyz +ggamerandomly.buzz +ggbags.info +ggbb45452.com +ggbc.email +ggbrop.net +ggdr0p.ru +ggdropx.ru +ggdropxl.ru +ggedell.site +ggergerherhhrehrgfd.club +ggfbp.xyz +ggfd.de +ggffh.club +ggffh.site +ggfgf.site +ggfutsal.cf +ggg.pp.ua +ggg062.com +ggg813.com +ggg9827.com +gggmail.pl +gggmarketingmail.com +gggt.de +gggvl.club +gggzh.com +gghfjjgt.com +ggigasetk.site +ggigasharee.site +ggijhd.com +ggiq.cn +ggmail.com +ggmail.guru +ggmob-us.fun +ggobu.net +ggooglecn.com +ggp58.com +ggpb.us +ggqfuc.rest +ggr-supportservices.com +ggroop.info +ggrreds.com +ggstandoff.ru +ggtoll.com +ggwest.ru +ggworxrld.shop +ggxx.com +gh-stroy.ru +gh.wlot.in +gh2xuwenobsz.cf +gh2xuwenobsz.ga +gh2xuwenobsz.gq +gh2xuwenobsz.ml +gh2xuwenobsz.tk +gh5sdq.us +gh5tdr.com +gh8bk.us +ghabzak.com +ghainod.ru +ghanalandbank.com +ghanun.info +ghatefar.com +ghcptmvqa.pl +ghcrublowjob20127.com +ghdfinestore.com +ghdhairstraighteneraq.com +ghdhairstraightenersuk.info +ghdpascheresfrfrance.com +ghdsaleukstore.com +ghdshophot.com +ghdshopnow.com +ghdshopuk.com +ghdstraightenersukshop.com +ghdstraightenersz.com +ghdvw.icu +ghea.ml +gheadfisa.ga +gheadfisa.gq +gheadfisa.ml +ghehop.com +ghet.ru +ghettochip.com +ghettoize768xv.online +ghffl.club +ghfh.de +ghgluiis.tk +ghid-afaceri.com +ghiglianocinzia.com +ghiscarbices.tk +ghjeb.live +ghkoyee.com.uk +ghkyukjb7-privytfg.host +ghkyukjb7-privytfg.press +ghkyukjb7-privytfg.space +ghkyukjb7-privytfg.xyz +ghodrancomplex.com +gholbifym.host +ghomonnirtel.site +ghor.us +ghork.live +ghost-squad.eu +ghost4snapchat.com +ghostadduser.info +ghostbustersgeneration.com +ghostcheck.xyz +ghostdiversnz.org +ghostgoop.icu +ghostncrypt.biz +ghosttexter.de +ghosttownmall.net +ghosttownmall.org +ghostyforinstagram.com +ghpb.org +ghqqmdqtgtqustunutqg.ru +ghrebuyhouses.com +ghrmw.info +ghservers.online +ghtr1q.us +ghtreihfgh.xyz +ghulamid.me +ghxdw.info +ghymail.com +ghymau.us +ghynvm.com +gi-pro.org +gi816.space +gi9z54.us +giabbse.com +giacht.com +giacmosuaviet.info +giadoni.com +giaimathanhcong.net +giaiphapmuasam.com +giallo.cf +giallo.gq +giallo.ml +giallo.tk +gianmendez.com +gianna1121.club +giantessfan.org +giantmail.de +giantnetwerk.online +giantsuperstores.com +giantwebs2010.info +giaoisgla35ta.cf +giaphacuatui.com +giapham.com +giapham.org +giapratescon.tk +giaveum.info +gibejo.cf +gibejo.ga +gibejo.gq +gibejo.ml +gibejo.tk +gibit.us +gibligens.ga +gibligens.gq +gibligens.ml +gibligens.tk +giblpyqhb.pl +gibran88.com +gibsonbigiron.net +gibsonmail.men +gicarep.cf +gicarep.ga +gicarep.gq +gicarep.tk +giccasv1.tk +gicua.com +gidabankaciligizirvesi.com +gidabankaciligizirvesi.info +gidabankaciligizirvesi.net +gidchardogu.cf +gidchardogu.ga +gidchardogu.ml +gidra-onion.club +gidstomm.website +gidtraveler.ru +gidzdorov.ru +giedewly.cf +giedewly.gq +giedewly.ml +giedewly.tk +gieldatfi.pl +gies.email +giessdorf.eu.org +gifanu.ga +gifanu.gq +gifanu.ml +gifanu.tk +gifchat.info +gifenix.com.mx +gifexpress.com +gifjlc.tokyo +gifletter.com +gifmehard.ru +gifmoe.com +gifora.com +gift-2020.site +gift-link.com +gift-listed.online +gift-listed.space +gift-of-love-solidarity.org +giftasdjafwer.online +giftbasketinformation.com +giftcardsgen.me +gifted.photo +giftedandcyber.com +giftelope.com +giftloss.us +giftmobile.space +giftnotruf.org +gifto12.com +giftopo.com +giftpackmail.com +giftproject.org +gifts4homes.com +giftsales.store +giftscrafts2012.info +giftsfromwalmart18.us +giftsshopuss.com +giftsspaces.com +giftwatches.info +giftyello.ga +giftyello.gq +giftyoulove.com +gigabitstreaming.com +gigaclick.tech +gigacylydm.space +gigaload.site +gigantix.co.uk +gigantmass.ru +gigapesen.ru +gigauoso.com +giggit.com +gigilyn.com +gigisalumificio.biz +gigism.com +gign-40.com +gigolocam.biz +gigpurchase.com +gigs.craigslist.org +gihoon.com +gihybe.us +gikemart.site +gikmail.com +gilaayam.com +gilababi1.ml +gilberthairsalons.com +gilby.limited +gilertelogg.xyz +giles020.top +giles037.top +giles117.top +giles129.top +giles157.top +giles164.top +giles197.top +giles198.top +giles220.top +giles232.top +giles263.top +giles291.top +giles449.top +gilfun.com +gilireyke.com +gillann.site +gillovhjol.space +gilmor1.com +gilmoreforpresident.com +gilo.ml +gilray.net +gimail.com +gimal.com +gimbalsstabilizer.futbol +gimei.live +gimel.net +gimesson.pe.hu +gimmedat.info +gimmehits.com +gimnasiolleno.com +gimp.us +gimpu.ru +gimsa-renamun.ru +gimshl.us +gimuepic.site +gina18.online +gina18.site +gina18.space +gina18.website +ginbottlelamps.com +gindatng.ga +gine.com +ginel.com +gingerbruce55places.com +gingertail.in +gingervietnamese.com +gingmeten.cf +gingmeten.ga +gingmeten.gq +gingmeten.ml +gingmeten.tk +gingreree.cf +gingreree.gq +gingreree.ml +gingreree.tk +ginkkvetbor.cf +ginkkvetbor.ga +ginkkvetbor.gq +ginkkvetbor.ml +ginkkvetbor.tk +ginn.cf +ginn.gq +ginn.ml +ginn.tk +ginnio.com +ginnygorgeousleaf.com +gino-takeaway.com +ginos-takeaway-navan.com +ginsarin.ga +ginsarin.gq +ginsarin.ml +ginxmail.com +ginzi.be +ginzi.co.uk +ginzi.es +ginzi.eu +ginzi.net +ginzy.co.uk +ginzy.eu +ginzy.org +giochi0.it +giochiz.com +giocorsio.tk +giofiodl.gr +giogio.cf +giogio.gq +giogio.ml +giohyrown.cf +giohyrown.ga +giohyrown.tk +giooig.cf +giooig.ga +giooig.gq +giooig.ml +giooig.tk +giordanofoundation.com +giorgio.ga +giotisi.cf +giotisi.ga +giotisi.gq +giotisi.ml +giotisi.tk +giourabca.ga +giourabca.gq +giourabca.ml +giourabca.tk +giovana.org +giozs.us +gipasco.cf +gipasco.ga +gipasco.gq +gipasco.ml +giplwsaoozgmmp.ga +giplwsaoozgmmp.gq +giplwsaoozgmmp.ml +giplwsaoozgmmp.tk +gipsowe.waw.pl +gipsrecycling.biz +gipwkv.com +giqsru.com +giraffe-school.online +giran.club +girbot.com +giresunajanssecim.xyz +giresunanaokulu.xyz +giresunfoto.xyz +giresunsuturunleri.com +giresuntasari.com +girisx.club +girl-beautiful.com +girl-cute.com +girl-nice.com +girlbo.shop +girlcosmetic.info +girldiary.ru +girleasy.com +girlemail.org +girlfriendflicks.com +girlgear.us +girlkiss.site +girlmail.win +girlmanss.info +girlmogulmagazine.com +girlncool.com +girlorgy.site +girlpower2022.com +girls-stars.ru +girls-xs.ru +girls54.pro +girlsdate.online +girlsforfun.tk +girlsindetention.com +girlsu.com +girlsundertheinfluence.com +girlsx.online +girlt.site +girlygirlshopping.com +giromail.club +giromail.info +girosgriegozaragoza.com +girth.xyz +girtipo.com +gishpuppy.com +gismoshopping.com +gisont.site +gispgeph6qefd.cf +gispgeph6qefd.ga +gispgeph6qefd.gq +gispgeph6qefd.ml +gispgeph6qefd.tk +gisthafea.cf +gisthafea.ga +gisthafea.gq +gisthafea.tk +gistnewgkal.cf +gistnewgkal.gq +gistnewgkal.ml +gistreel.net +gisttimens.cf +gisttimens.gq +gisttimens.ml +gisttimens.tk +git--help.com +git-help.com +gitarrenschule24.de +github.best +gitog.biz +gitovery.online +gitpost.icu +gitstage.net +gittigidiyorxym.xyz +gitumau.ga +gitumau.ml +gitumau.tk +gityun.com +giuras.club +giutrtf6-privtuyfy.fun +giutrtf6-privtuyfy.host +giutrtf6-privtuyfy.press +giutrtf6-privtuyfy.site +giutrtf6-privtuyfy.space +giutrtf6-privtuyfy.xyz +giuypaiw8.com +givdgive.shop +giveaspyt.com +giveaway-national-gift-weekly.club +givecoast.com +givedrop.xyz +givegivd.shop +giveh2o.info +givememail.club +givemeyourhand.info +givemoney2018.ru +giverank.us +giverprosperhotel.site +givespin6k.xyz +givethefalconslight.com +givinglottery.org +givity.ru +givluip.ml +givmail.com +givmy.com +givorlnjc.shop +giwwoljvhj.pl +giyam.com +giysigiydirmeoyunlari24.com +gizlicennetkibris.com +gizmobd.com +gizzmo.se +gj96m.info +gjbmyn.com +gjbnyb.com +gjcwao.com +gjgjg.pw +gjgklp.us +gjhdizhi.com +gjjgg.com +gjkk.de +gjknbb.com +gjnqv.us +gjrpegj15.host +gjscw.info +gjsrestoration.com +gjysaw.info +gjyuqd.us +gk-konsult.ru +gkcgrp.com +gkcmds.fun +gkcmfk.fun +gkcmkk.fun +gkcrhl.us +gkd06.space +gkdcsi.ru +gkhmpj.fun +gkjeee.com +gkjgsxupc.shop +gklohe.rest +gkmmcg.fun +gkmmhq.fun +gknmgd.fun +gknmwk.fun +gkolimp.ru +gkorii.com +gkplogistics.com +gkqmfl.fun +gkrmck.fun +gkrmfz.fun +gkrmnx.fun +gkuaisyrsib8fru.cf +gkuaisyrsib8fru.ga +gkuaisyrsib8fru.gq +gkuaisyrsib8fru.ml +gkuaisyrsib8fru.tk +gkvse.live +gkwerto4wndl3ls.cf +gkwerto4wndl3ls.ga +gkwerto4wndl3ls.gq +gkwerto4wndl3ls.ml +gkwerto4wndl3ls.tk +gkworkoutq.com +gkx87f-mail.xyz +gkxmmk.fun +gkxuem.site +gkyyepqno.pl +gkzbwv.com +gkzmwf.fun +gkznls.us +gl-do.com +gl-wk.com +glabinas.ga +glabinas.gq +glabinas.ml +glacialbottle.nu +glacialbottle.org +glaciercx.com +glacierfx.com +glad-lottery.com +gladchenko-coach.ru +gladiator.org +gladishouse.co +glados.life +gladwithbooks.site +gladysh.com +glakon.ru +glamino.ee +glamourbeauty.org +glamourcow.com +glamtagonist.com +glamurr-club.ru +glareinstalmosquito.website +glasgowmotors.co.uk +glashatay.info +glasrose.de +glass-cleaner.ru +glass-etching.com +glassaas.site +glasscanisterheaven.com +glassdisplaydoorgaskets.com +glasses88.com +glassesoutletsaleuk.co.uk +glassesoutletuksale.co.uk +glasshorseventures.com +glassided.space +glassok-cheff.ru +glasstowerwindows.com +glasswareexchange.com +glassworks.cf +glastore.uno +glaszakelijk.com +glatjobs.com +glavlead.com +glavsg.ru +glavsliv.club +glawsaibrak.cf +glawsaibrak.ga +glawsaibrak.gq +glawsaibrak.tk +glaxion.ga +glaxion.ml +glaxion44.ml +glaxion93.cf +glaxion93.ga +glaxukali.tk +gle.best +gleamlaau.space +gleeze.com +glendalequote.com +glendalerealestateagents.com +glendenningflowerdesign.com +glendepe.cf +glendepe.gq +glendepe.ml +glendepe.tk +glenmontshoppingcenter.com +glennvhalado.tech +glenresearch.net +glenresearch.org +glenwoodave.com +glessyturismo.com +glfjvfqzo.shop +glick.tk +glidefea.xyz +glidefun.xyz +glidescal.us +glidesh.icu +glidesh.xyz +gligsfall.ru +glimermann.com +glissecompany.ru +glissinternational.com +glitch.sx +glitchwar.com +glitchwave.it +gliuk.ru +gliwicemetkownice.pl +gllwgnlzv.shop +glmail.ga +glmail.top +glmknm.com +glmux.com +global-4d.com +global-4d.online +global-loto.ru +global.coach +global1markets.com +global1trader.com +global2.xyz +global365.site +global4d.online +globalcarinsurance.top +globalccashcard.com +globalcitizenhub.com +globalcube.site +globaldesignassociation.com +globaldisciple.com +globaldisciple.org +globaldomainnetwork.com +globalelectrum.com +globaleuro.net +globalfinanceblog.club +globalgossip.me +globalhealthfailures.com +globalii.xyz +globalimiz.xyz +globalinvestblog.club +globalitcert.com +globaliting.net +globaljetconcept.media +globaljetstore.com +globalkino.ru +globallowdown.net +globallowdown.org +globalmarijuanashop.com +globalmarketingcourse.com +globalmeshlabs.dev +globalmillionaire.com +globalmotorsalgeria.com +globalpoker99.club +globalpokerqq.net +globalpolicynetwork.org +globalpuff.org +globalsilverhawk.com +globaltechnologyinnovation.info +globaltechnologyinnovation.online +globaltechnologyinnovation.org +globaltouron.com +globaltravelnewsinformation.com +globalvietmedia.net +globalwarmingproblemsolvers.org +globegro.com +globepaymentway2.com +globistackcampaign.com +globlenews.xyz +globlh.com +globobet.com +globocg.com +glocality.com +glocalrecognition.com +glocalrecognition.info +glocalrecognition.org +glockneronline.com +glocknershop.com +glodaldate.fun +gloflycbd.com +glome.world +glomtiotu.cf +glomtiotu.ga +glomtiotu.gq +glomtiotu.ml +glomtiotu.tk +gloom.org +gloomage.buzz +gloomju.email +gloomspeed.fun +gloopyrobot.icu +glorfindell.com +gloria-tours.com +gloria.cd +gloriajeens.ru +gloriousfuturedays.com +gloryamuse.email +glorych.xyz +gloryfra.xyz +glorylottory.com +glorysteak.email +glorytr.xyz +glorytru.xyz +gloryws.com +gloservma.com +glosspremierideal.site +glossybee.com +gloucehuhy.space +glovesprotection.info +glovlly.com +glowciola.com +glowglories.com +glowhce.com +glowinbox.info +glowrecip.com +glpbalcashcard.com +glppncife.shop +glqbsobn8adzzh.cf +glqbsobn8adzzh.ga +glqbsobn8adzzh.gq +glqbsobn8adzzh.ml +glqbsobn8adzzh.tk +glrbio.com +glsaimli.space +glservice.online +glspring.com +gltrgundx.shop +glu64.space +glubex.com +glucconsmi.ga +glucconsmi.gq +glucconsmi.ml +glucconsmi.tk +glucogen.store +glucophage.website +glucosegrin.com +glues1.com +glutenfreeallpurposebread.com +glutenfreestaples.com +glutesyourunlock.xyz +glvihqen.xyz +glxy14x.site +glxynews.site +glycb.com +glycnoma.cf +glyctistre.cf +glyctistre.ga +glyctistre.gq +glyctistre.ml +glyctistre.tk +glynda.space +glynns-kitchen-pizzeria.com +glyphosaurus.com +gm-slots-casino.win +gm-slots24.online +gm5om.info +gma2il.com +gmabrands.com +gmaeil.com +gmai.com +gmaieredd.com +gmaiil.com +gmaiil.ml +gmaiil.us +gmaiilll.cf +gmaiilll.gq +gmaiils.club +gmaik.com +gmail-anjim.tk +gmail-box.com +gmail-fiji.gq +gmail.ax +gmail.com.bellwellcharters.com +gmail.com.cad.creou.dev +gmail.com.co +gmail.com.commercecrypto.com +gmail.com.creditcardforums.org +gmail.com.creou.dev +gmail.com.deadlyspace.com +gmail.com.derdisoft.com +gmail.com.devist.com +gmail.com.digitalmarketingcoursesusa.com +gmail.com.dirtypetrol.com +gmail.com.disusedtube.com +gmail.com.diybookmarks.com +gmail.com.elitegunshop.com +gmail.com.filemakertechniques.com +gmail.com.firstrest.com +gmail.com.gabrielshmidt.com +gmail.com.gmail.cad.creou.dev +gmail.com.gmail.com.m.oazis.site +gmail.com.gmail.gmail.cad.creou.dev +gmail.com.hassle-me.com +gmail.com.healthyheartforall.com +gmail.com.herbalsoftware.com +gmail.com.hitechinfo.com +gmail.com.mahoteki.com +gmail.com.matt-salesforce.com +gmail.com.nicolhampel.com +gmail.com.pesquisaplaca.com +gmail.com.pl +gmail.com.researchdetectors.com +gmail.com.skvorets.com +gmail.com.standeight.com +gmail.com.thetybeetimes.net +gmail.com.tokencoach.com +gmail.com.urbanban.com +gmail.com.waterbedblog.com +gmail.cu.uk +gmail.gr.com +gmail.keitin.site +gmail.meleni.xyz +gmail.net +gmail.pp.ua +gmail.xzsl.rr.nu +gmail.yopmail.fr +gmail4u.eu +gmailas.com +gmailasdf.com +gmailasdf.net +gmailasdfas.com +gmailasdfas.net +gmailbete.cf +gmailcomcom.com +gmaildd.com +gmaildd.net +gmaildfklf.com +gmaildfklf.net +gmaildll.com +gmaildort.com +gmaildottrick.com +gmaile.design +gmailer.top +gmailere.com +gmailere.net +gmaileria.com +gmailerttl.com +gmailerttl.net +gmailertyq.com +gmailfe.com +gmailgirl.net +gmailhost.net +gmailhre.com +gmailhre.net +gmailjj.com +gmailkeeper.org +gmaill.com +gmailldfdefk.com +gmailldfdefk.net +gmailll.cf +gmailll.ga +gmailll.gq +gmaillll.ga +gmaillll.ml +gmailllll.ga +gmaills.eu +gmailmail.ga +gmailmarina.com +gmailnator.com +gmailner.com +gmailnet.xyz +gmailnew.com +gmailom.co +gmailpop.ml +gmailpopnew.com +gmailppwld.com +gmailppwld.net +gmailr.com +gmails.com +gmailsdfd.com +gmailsdfd.net +gmailsdfsd.com +gmailsdfsd.net +gmailsdfskdf.com +gmailsdfskdf.net +gmailserver.org +gmailskm.com +gmailssdf.com +gmailu.ru +gmailup.com +gmailvn.net +gmailwe.com +gmailweerr.com +gmailweerr.net +gmailx.xyz +gmaily.tk +gmailzdfsdfds.com +gmailzdfsdfds.net +gmajs.net +gmal.com +gmall.com +gmasil.com +gmatch.org +gmaul.com +gmawfurbabies.com +gmblmania.club +gmc-sierra.club +gmcd.de +gmcsklep.pl +gmdabuwp64oprljs3f.ga +gmdabuwp64oprljs3f.ml +gmdabuwp64oprljs3f.tk +gmeail.com +gmeeail.com +gmeil.me +gmelk.com +gmg116hz.com +gmgmne.site +gmgmu.live +gmial.com +gmil.com +gmiosaummi.host +gmixi.com +gmjszulw.shop +gmkuwsnb.shop +gmleeuruki.com +gmm59.live +gmmails.com +gmmaojin.com +gmmx.com +gmodradio.com +gmoinside.net +gmojl.com +gmok.com +gmovierulz6.com +gmp-network.com +gmp3.info +gmpartsdiscount.net +gmpartssale.com +gmpartstogo.com +gms-deluxe-casino.win +gmsb-media.com +gmscourier.com +gmsdfhail.com +gmsdluxx.com +gmsgaminators.ru +gmsinvest.ru +gmssail.com +gmtv8.com +gmx.dns-cloud.net +gmx.dnsabr.com +gmx.fr.nf +gmx1mail.top +gmxip8vet5glx2n9ld.cf +gmxip8vet5glx2n9ld.ga +gmxip8vet5glx2n9ld.gq +gmxip8vet5glx2n9ld.ml +gmxip8vet5glx2n9ld.tk +gmxk.net +gmxmail.cf +gmxmail.gq +gmxmail.tk +gmxmail.top +gmxmail.win +gn1999.com +gn655.top +gn7567dh.com +gn8.cc +gnail.com +gnajuk.me +gnbhjm.com +gnctr-calgary.com +gnd198.com +gnd200.com +gndtul.info +gndxdl.com +gnetnagiwd.xyz +gnew.site +gnews.media +gnipgykdv94fu1hol.cf +gnipgykdv94fu1hol.ga +gnipgykdv94fu1hol.gq +gnipgykdv94fu1hol.ml +gnipgykdv94fu1hol.tk +gniwal.us +gnlk3sxza3.net +gnocesunglass.com +gnocewatch.com +gnom.com +gnomebots.com +gnomecollective.com +gnomi.ru +gnomni.com +gnon.org +gnorimies.xyz +gnplls.info +gnqp26.com +gnqp29.com +gnqp32.com +gnqp33.com +gnqp37.com +gnqp38.com +gnqp39.com +gnqp40.com +gns22.com +gns44.com +gns5.com +gns55.com +gns77.com +gns99.com +gnseagle.com +gnsk6gdzatu8cu8hmvu.cf +gnsk6gdzatu8cu8hmvu.ga +gnsk6gdzatu8cu8hmvu.gq +gnsk6gdzatu8cu8hmvu.ml +gnsk6gdzatu8cu8hmvu.tk +gntgear.com +gnumail.com +gnwpwkha.pl +go-a-creditcardnofeecaok.live +go-a-tu-new-carok.live +go-blogger.ru +go-centric.com +go-creditcardnofeeca-ok.live +go-creditcardnofeecas-ok.live +go-intl-online-ok.degree +go-moscow.ru +go-online-psychic-ok.live +go-parkinsons-ok.live +go-pp.com +go-trade.dev +go-trade.org +go-tu-new-cars-ok.live +go-vegas.ru +go.irc.so +go1.site +go2019.site +go220.icu +go222.site +go288.com +go2arizona.info +go2myportals.com +go2sights.online +go2site.info +go2usa.info +go2vpn.net +go2xal.us +go333.site +go345.icu +go4mail.net +go4organic.coffee +go4v.info +go555.site +goabaltihouse.com +goacardonationok.haus +goacc.ru +goaction.club +goadjunipergive.website +goafterdark.com +goal-city.ru +goalhere.cd +goalofgtr.tk +goalraitdvq.email +goalstats.net +goandget.site +goandrate.com +goasfer.com +goashmail.com +goat.coach +goat.si +goaustralianow.com +gob0u9.site +gobaby.online +gobahis98.com +gobar.app +gobedbugremovalok.live +gobet889.online +gobet889bola.com +gobet889skor.com +gobimission.org +gobizpros.com +goblinhammer.com +goblognow.com +gobo-projectors.ru +gobodoc.xyz +gobola.com +gobuffy.ru +gobumall.site +goc0knoi.tk +gocappadociatours.com +gocardless.app +gocardless.dev +gocardonationok.haus +gocardonationsok.haus +gocase.ru +gocekyatdoseme.xyz +gocengqq.us +gocfunny.info +gochicagoroofing.com +goci.email +gociboutique.site +gocrash.net +god-from-the-machine.com +god-mail.com +godaddyrenewalcoupon.net +godataflow.xyz +godcomplexuk.com +goddysey.com +godev083.site +godfrieddevries.online +godiox.com +godlike.us +godmail.gq +godman.club +godoityourself.club +godrej-forest-grove.info +godrej-forestgrove.com +godrej-park-greens.info +godrej-serenity.net +godrej-the-river-retreat.com +godrej-the-river-retreat.net +godrejnurturebangalore.com +godrejnurturebangalore.info +godrejnurtureecity.com +godrejpark-springs.net +godrejparkgreens.info +godrejproperties-forestgrove.com +godrejproperties-forestgrove.info +godrejproperties-parkgreens.org +godrejpropertiesforestgrove.com +godrejpropertiesforestgrove.info +godrejpropertiesnurture.com +godrejpropertiesparkgreens.net +godrejtheriverretreat.net +godrejtheriverretreat.org +godsale.ru +godsayluxsit.xyz +godslot.one +godsofguns.com +godude.site +godut.com +godwinpartners.com +goear.name +goear.net +goeasyhost.net +goedkoop-fietsen.online +goedkope-batterijen.online +goedkopeminecraftserver.online +goegypt.com +goemailgo.com +goencrypt.net +goerieblog.com +gofindbrides.com +gofrantic.com +gofuckporn.com +gog4dww762tc4l.cf +gog4dww762tc4l.ga +gog4dww762tc4l.gq +gog4dww762tc4l.ml +gog4dww762tc4l.tk +gogamba.com +gogigsgo.com +goglemail.cf +goglemail.ga +goglemail.ml +gogoanimes.xyz +gogoeyesa.info +gogogays.com +gogogmail.com +gogogohome.club +gogogorils.com +gogojav.com +gogolfalberta.com +gogomail.org.ua +gogomp3.ru +gogoogleitnow.com +gogreekfishbar.com +gogreeninc.ga +gogreenon.com +gohalalvietnam.com +gohappybuy.com +gohappytobuy.net +gohomeinspections.com +gohoslya.ga +gohoslya.gq +gohoslya.tk +goimlive.space +goinggrape.com +gojek303.info +gojinkatakeaway.com +gok.kr +gokey.info +gokhankag.xyz +gokmeesters.info +gokmen.kim +gokturkist.com +gokturkokullariobs.online +gokturkokullariobs.xyz +gol60f.site +golbasiveteriner.xyz +golbengi.shop +golc.de +gold-bowling.ru +gold-cup.org +gold-mania.com +gold-now.icu +gold-recepts.ru +goldbarcube.com +goldclassicstylerau.info +goldcoastplumbingcompany.com +goldcoastswimstars.com +golddietplus.com +golddurwyh.space +golden-cup.info +golden-cup.net +golden-mine.site +golden-skate.com +goldenalley.ru +goldenbahistv1.com +goldenbola.com +goldenbrow.com +goldencbddrops.com +goldendietpro.com +goldendragontakeaway.com +goldeneggbrand.com +goldeneggbrands.com +goldenegginvesting.net +goldenelephantdunlaoghaire.com +goldenepsilon.info +goldengo.com +goldengoosesneakers13.com +goldenguy.gq +goldenhorsestravel.com +goldenjeux.com +goldenkeyresorts.com +goldenkingdoms.shop +goldenlay.cd +goldenlifewire.com +goldenlilyglanmire.com +goldenllama.us +goldenmountainchinesetakeaway.com +goldenonyx.biz +goldenplaycasino.ru +goldenpowerball2.com +goldensandbeachclub.com +goldensea-carrick.com +goldenseatakeaway.com +goldenseniors.club +goldenslots2018.ru +goldensochi-remont.ru +goldenspark.ru +goldenstarchinesetakeaway.com +goldensunsetresort.com +goldenswamp.com +goldenteebanger.com +goldenwokchinesetakeaway.com +goldenwords.club +golder.cd +goldfishka97.com +goldfishka98.com +goldfishkadownload10.com +goldfishkadownload7.com +goldfox.ru +goldfruittrust.com +goldilacts.org +goldinbox.net +goldiphone.site +goldipro.com +goldlabletech.com +goldline.money +goldmanhomeblog.site +goldmtoken.com +goldnewsbc.site +goldridgedevco.com +goldringsstore.net +goldspores.net +goldstar365avm.com +goldswitzerland.org +goldtamil.info +goldtimecasino6.com +goldtopia.online +goldtube.site +goldvid.site +goldvote.org +goldwarez.org +golead.pro +golegol58.com +golegol64.com +golegol65.com +golegol72.com +golegol73.com +golegol74.com +golegol75.com +golegol76.com +golegol78.com +golegol80.com +golegol85.com +golegol86.com +golegol87.com +golegol90.com +golegol91.com +golegol92.com +golegol93.com +golegol97.com +golemico.com +golems.tk +golenia-base.pl +goler.org +golf417homes.xyz +golf4blog.com +golfblogjapan.com +golfcam.info +golfcloud.app +golfilla.info +golfjapanesehome.com +golfnewshome.com +golfnewsonlinejp.com +golfonblog.com +golfonthesquare.net +golfshop.live +golfsports.info +golftravelreview.com +goliathhost.com +golidi.net +golighcars.cf +golighcars.gq +golighcars.ml +golimar.com +goliokao.cf +goliokao.ga +goliokao.gq +goliokao.ml +goliszek.net +golivejasmin.com +gollanp.top +golld.us +golneypread.cf +golneypread.ga +golneypread.gq +golneypread.ml +golneypread.tk +golobster.com +golottowinner.com +golovolomka-money.ru +golpeavisa.com +gomail.in +gomail.pgojual.com +gomail4.com +gomail5.com +gomailbox.info +gomaild.com +gomaile.com +gomailstar.xyz +gomaxsecurity.com +gomedal4.xyz +gomedal5.xyz +gomedal6.xyz +gomedal7.xyz +gomedal8.xyz +gomelkosmos.site +gomessage.ml +gometrodesign.com +gomiso.com +gomogoor.com +gomovies-free.site +gomsubinhduong.com +gonah.ru +gonationmedia.com +goncangan.com +gondiel.space +gondskumis69.me +gonduras-nedv.ru +gone-fishing.xyz +gonetrippin.us +gonfalon.com +gongchinese.com +gongdelin.org +gongj5.com +gongj6.com +gongog.store +gongsagaming.com +goninja.com +gonomaddhom.com +gonotebook.info +gonpup.monster +gontek.pl +gonzaloerize.org +gonzosoccer.com +goo-gl2012.info +gooajmaid.com +goocalt-car.ru +good-autoskup.pl +good-college.ru +good-digitalcamera.info +good-electronicals.edu +good-ladies.com +good-little.space +good-luck-inchicore.com +good-method.club +good-names.info +good-product.website +good-recept.ru +good-sells.ru +good-teens.com +good-things-only.site +good007.net +good2culawn.com +good2cuwindows.com +gooday.pw +goodbakes.com +goodbead.biz +goodbussines.ru +goodchange.org.ua +gooddaystakeaway.com +gooddd.ru +gooddebird.ru +gooddllc.ru +goode.agency +goode.services +goode.solutions +goodelivery.ru +goodemail.top +goodessays.website +goodfitness.us +goodfood-perm.ru +goodfood-store-dublin.com +goodhealthbenefits.info +goodhealthwater.com +goodinternetmoney.com +goodjab.club +goodlifeenergysaver.com +goodlifeoutpost.com +goodluckforu.cn.com +goodmatik.ru +goodmovies.club +goodmusicfan.ml +goodnessdetox.com +goodnewsbadnewsmusic.com +goodnewslife.fun +goodnewsworld.space +goodpay-out.press +goodportal.info +goodprice.icu +goodqualityjerseysshop.com +goodresultsduke.com +goodreviews.tk +goods.com +goods4home.ru +goodseller.co +goodsforyours.com +goodsforyours.site +goodshepherdclinic.com +goodshepheredchurchseeta.com +goodshowsco.com +goodsmart.pw +goodspitanie.ru +goodstartup.biz +goodtee.online +goodthanks.media +goodtmail.com +goodturntable.com +goodvibes.ga +goodwin.games +goodwinazart.com +goodwincasino.asia +goodwincasino.live +goodwinpoker.com +goodwinsweep.com +goodwritingservices.website +goodx.online +goodyearchiropractic.club +goodymail.men +goofybee.info +goofycats.info +goofycopilot.com +goofyhippos.info +goofyostrich.info +googalise.com +googdad.tk +googl.win +googladsystems.website +googlays.com +google-clicker.com +google-email.ml +google-mail.me +google-mail.ooo +google-plays.com +google-visit-me.com +google2u.com +googleappmail.com +googleappsmail.com +googlebox.com +googlecn.com +googledottrick.com +googlefind.com +googlegarbage.com +googlelogin.online +googlelogin.site +googlemail.press +googlemarket.com +googlesite.org +googlet.com +googli.com +googmail.gdn +googole.com.pl +googoolshop.xyz +googulliver.site +goohle.co.ua +goomagnet.com +goons.us +goood-mail.com +goood-mail.net +goood-mail.org +gooolge.site +goooogle.flu.cc +goooogle.igg.biz +goooogle.nut.cc +goooogle.usa.cc +goooomail.com +goopianazwa.com +gooresctars.cf +gooresctars.ga +gooresctars.gq +gooresctars.ml +goosebox.net +gooseneckwines.com +goosenetwork.org +gooses.design +goosfactor.life +gooxd.com +gopdfmanuales.xyz +gophermail.info +gopherzaly.life +goplaygame.ru +goplaytech.com.au +gopldropbox1.tk +goplf1.cf +goplf1.ga +goplmega.tk +goplmega1.tk +gopo.email +gopoker303.org +gopowerlevel.com +goproaccessories.us +goprovs.com +gopty.xyz +gopu.site +gor-bilet.ru +goranko.ga +gorario.com +gorbapa.com +gorbapa4u.com +gordanbrush.com +gordanbrush.net +gordanbrush.us +gorden-spb.ru +gordenbrush.biz +gordenbrush.net +gordenbrush.us +gordon.prometheusx.pl +gordon1121.club +gordonbrush.net +gordonbrushes.com +gordonbrushes.org +gordonbrushwisconsin.com +gordonbrushwisconsin.org +gordoncastlehighlandgames.com +gordpizza.ru +goreadit.site +goremekelebek.com +gorgeousfirst.com +gorgi.ru +gorilanetwork.us +gorilla-bett.ru +gorilla-zoe.net +gorillainventory.com +gorillasharware.com +gorillaswithdirtyarmpits.com +gorillawild.life +gorizontiznaniy.ru +gorkacabinet.com +gormandizing232vg.online +gormandizing699en.xyz +gormezamani.com +gornostroyalt.ru +gorod-pobratim.ru +gorodrabotka.ru +goromail.ga +gorommasala.com +gorosc.ru +goroscop2019.ru +goround.info +gorpy.net +gorskie-noclegi.pl +gorukledeyasam.xyz +gorxje.com +goryachie-tury.ru +gos-money-programm.site +gos-money-programm.website +gos-money-programm.xyz +gos-pay-programm.space +gos-pay-programm.website +gos-pay-programm.xyz +gosait.icu +goscompxka.club +gosearchcity.us +goseeding.website +goseep.com +gosfinances.ru +goshisolo.ru +goshoppingpants.com +goshoppingt.xyz +goslippy.com +goslot88.com +gosne.com +gospaper.ru +gospel-deals.info +gospiderweb.net +gossippolitics.com +gossiprap.com +gosstroyrb.ru +gostabbet.xyz +gostayknow.com +gostdokcs.biz +gosteitoy.cf +gosteitoy.ga +gosteitoy.gq +gosteitoy.ml +gosteitoy.tk +gostina.com +gosumarket.ru +gosumarkt.ru +gosuslugg.ru +gosuslugi-info.ru +gosuslugi-spravka.ru +gosyslugi.host +gotartowice.pl +gotc.de +gotcertify.com +gotelefons.info +goth-friends.com +gothentai.com +gothere.biz +gothetalent.com +gothicdarkness.pl +gothill.com +gotimes.xyz +gotkmail.com +gotmail.com +gotmail.net +gotmail.org +gotmail.waw.pl +goto1xbet.ru +gotobag.info +gotobefijq.space +gotoinbox.bid +gotoluxurycountry.monster +gotomynvr.com +gotopbests.com +gotopgo.ru +gotosite.ru +gotovimzaim.club +gotovte-doma.ru +gotowebshop.site +gotowim-doma.ru +gotowkowy.eu +gotpayments.net +gotradecoin.net +gotruvi.com +gotspoiler.com +gotthebooks.site +gotti.otherinbox.com +gotunhien.info +goty-alocalemail.com +gotyalocal-email.com +gotyalocale-mail.com +gouanomarba.tk +gouapatpoa.cf +gouapatpoa.gq +gouapatpoa.ml +gouapatpoa.tk +gouguolu.com +gouhehe.com +goujinke.club +goumang.top +goupgouo.shop +gourmetburgercork.com +gourmetkitchen-cabra.com +gourmetoliveoilclub.com +gouruu.xyz +gouuadays.ru +gouwu116.com +gouwu98.com +gouxing.top +gov-mail.com +gov.en.com +govalvee.com +govcities.com +govdep5012.com +goverloe.com +governmentcomplianceservices.com +governmentgis.com +governmentpromises.com +governo.ml +govkor.com +govno.online +govnomail.xyz +govoxy.com +gowactivator.com +goweightlossinfoesok.live +gowhere.site +gowhere.tech +gowikibooks.com +gowikicampus.com +gowikicars.com +gowikifilms.com +gowikigames.com +gowikimusic.com +gowikimusic.great-host.in +gowikinetwork.com +gowikitravel.com +gowikitv.com +gowingo.xyz +gowion.com +gowj.com +gowngraphicsgolf.website +gox2lfyi3z9.ga +gox2lfyi3z9.gq +gox2lfyi3z9.ml +gox2lfyi3z9.tk +goxa.site +goxsoday.ru +goyardgoats.com +goyingagashop.com +gozicimercek.com +gozipui4.site +gp2277.com +gp2858.com +gp2cache.info +gp5155.com +gp5611.com +gp66gvwi.xyz +gp6786.com +gp7777.com +gp9ghb.us +gpapa.ooo +gpcharlie.com +gpfedh.us +gphsw.info +gpi10.xyz +gpi8eipc5cntckx2s8.cf +gpi8eipc5cntckx2s8.ga +gpi8eipc5cntckx2s8.gq +gpi8eipc5cntckx2s8.ml +gpi8eipc5cntckx2s8.tk +gpic4g.us +gpisbcmd.com +gpk99.live +gpkhb.com +gplvuka4fcw9ggegje.cf +gplvuka4fcw9ggegje.ga +gplvuka4fcw9ggegje.gq +gplvuka4fcw9ggegje.ml +gplvuka4fcw9ggegje.tk +gpmvsvpj.pl +gpoczt.net.pl +gpoker.online +gpouwumwp.shop +gppoww.info +gppozm.icu +gppreferral.com +gpride.xyz +gps.pics +gpscellphonetracking.info +gpsmobilephonetracking.info +gpsprosahop.xyz +gpssport.com +gpstrackerandroid.com +gpstrackingreviews.net +gptennislyon.com +gpui.ru +gpuj.us +gpwdrbqak.pl +gpwgw.info +gpxohp.club +gpy4f.us +gpy6f.us +gqioxnibvgxou.cf +gqioxnibvgxou.ga +gqioxnibvgxou.gq +gqioxnibvgxou.ml +gqioxnibvgxou.tk +gqlsryi.xyz +gqpujjnsf.shop +gqrqfimll.ml +gqtyojzzqhlpd5ri5s.cf +gqtyojzzqhlpd5ri5s.ga +gqtyojzzqhlpd5ri5s.gq +gqtyojzzqhlpd5ri5s.ml +gqtyojzzqhlpd5ri5s.tk +gqubjbngp.shop +gr5edu.info +gr5kfhihqa3y.cf +gr5kfhihqa3y.ga +gr5kfhihqa3y.gq +gr5kfhihqa3y.ml +gr5kfhihqa3y.tk +graal.codes +grabbyone.com +grabdealstoday.info +grabit.xyz +grabitfast.co +grabonyourway.com +gracefilledblog.com +gracehaven.info +graceitsystems.com +gracesingles.com +gracia.bheckintocash-here.com +graciovfvh.space +grade-quick-cell-actually.xyz +gradeweb.com +gradeweb.org +gradilium.xyz +gradozashita46.ru +graduationgiftsgalore.com +graeinc.info +graeinc.net +graeinc.org +graffitiresin.com +graffitt.ru +grafikerburada.online +grafisch.works +grafixmaven.com +grafluent.site +graftonbaptistchurchsbc.com +gragonissx.com +grahabet.info +graham-clan.net +grahamcentre.nyc +grails-comment.website +grainfr.xyz +grainglossary.com +graingue.fun +grainprinter.com +grainprinters.com +grainscooker.com +grainsh.xyz +grainsha.icu +grainsha.xyz +gralaborek.info +gramail.ga +gramail.net +gramail.org +gramlisjudg.ga +gramlisjudg.ml +gramlisjudg.tk +grammarbeats.com +grammasystems.com +gramy24.waw.pl +gramyonlinee.pl +grand-registration.ru +grand-slots.net +grandambar.ru +grandayy.net +grandbetting186.com +grandbonuzz.ru +grandcheap.site +grandclone.com +grandconnaughtrooms-media.com +grandemutuelle.live +grandherbalistoils.com +grandintim.ru +grandlaketheband.com +grandmamail.com +grandmasmail.com +grandmine.su +grandoodlez.com +grandopros.ru +grandpaswine.com +grandplug.com +grandprairieinjurylawyers.com +grandrapidskids.info +grandrapidsnailsalons.com +grandrapidspropertyfinders.com +grandspecs.info +grandstore.pro +grandstrandband.com +grandtheftdeath.com +grandviewcreek.com +grandw88.info +grandw88.net +grandw88.org +grandxxi.video +grangmi.cf +grangmi.ga +grangmi.gq +grangmi.ml +granhotelreymar.cat +granigranita.ru +graninclas.cf +graninclas.ga +graninclas.ml +graninclas.tk +graninul.cf +graninul.ml +graninul.tk +granitebaydesign.net +granitegravestone.xyz +granitememorial.xyz +granitklg.ru +grannytube.tk +granosma.ga +granosma.gq +granosma.tk +granoutan.gq +granoutan.ml +granoutan.tk +granpors.info +grantdon.xyz +grantdono.icu +grantfamilyonline.com +grantfwilkinson.com +grantha.org +grantor-shadow.com +grantor-shadow.org +grantorshadow.org +grantparkchildcare.com +grantpetrowsky.com +grantur.ru +grantutter.buzz +granufloclassaction.info +granuflolawsuits.info +granuflolawyer.info +granurim.cf +granurim.ga +granurim.gq +granurim.ml +granurim.tk +grape-com.com +grapebase.com +grapefznws.space +graphic-arts-international.com +graphic14.catchydrift.com +graphiccommunicationsinternational.com +graphictee.store +graphinasdx.com +graphriro.cf +graphriro.ml +graphriro.tk +graphtech.ru +graphtiobull.cf +graphtiobull.ga +graphtiobull.gq +graphtiobull.ml +graphtiobull.tk +graphway.com +grapplingvault.com +grase-shop.site +grasslandtechnology.com +grassless.best +grateful.adult +grateful.associates +grateful.black +grateful.blue +grateful.boutique +grateful.careers +grateful.coach +grateful.engineer +grateful.engineering +grateful.family +grateful.fitness +grateful.fun +grateful.gallery +grateful.health +grateful.host +grateful.jewelry +grateful.llc +grateful.ltd +grateful.partners +grateful.red +grateful.services +grateful.site +grateful.store +grateful.toys +gratefulvnf.email +grateshop24.xyz +gratis-gratis.com +gratisbumsen-confirmed.com +gratisbumsen-meet-backup.com +gratislink.net +gratislose.de +gratisneuke.be +gratitip.com +gratosmail.fr.nf +graur.ru +grauzone.pro +gravatavip.com +gravedag.cf +gravedag.ga +gravedag.ml +gravedag.tk +gravit-e.dev +gravitcraft.ru +gravitio.info +gravitio.net +gravitio.us +gravitytextile.com +gravsefor.cf +gravsefor.ga +gravsefor.gq +gravsefor.ml +gravsefor.tk +grayfortune.tech +grayfox.org +graygardens.info +grayhatcash.tech +grayistxxr.space +graylineportland.com +graymail.ga +grbei6.com +grcanyon.com +grdy.news +grdy.sale +greasymedia.com +great-host.in +great-names.info +great-pump.com +great2matchmaker3.com +greatbearcanoes.com +greatbeargroove.com +greatble.xyz +greatcellphonedeals.info +greatdas.site +greatditc.xyz +greate-easy-product.ru +greate-inform-mall.host +greatedhardy.com +greatemail.net +greatemailfree.com +greater-munich-immobilienfonds.com +greateraustin.homes +greatergoodpoker.com +greatergoodpoker.org +greaterhouse.org +greaterhoustonlivingteam.com +greatersalez.com +greatestfish.com +greatfait.recipes +greatfallsdentureclinic.com +greatferg.gq +greatfish.com +greatgrainsbrewery.com +greathimalayangrowers.com +greathotelgroup.info +greathousekeeping.xyz +greatigtota.tk +greatindiaportarlington.com +greatlastminutegifts.com +greatloanscompany.co.uk +greatloansonline.co.uk +greatmedicineman.net +greatmiin.gq +greatoutdoorpaintingchallenge.com +greatpl.xyz +greatpla.xyz +greatshoply.xyz +greatstuff.website +greattimes.ga +greattomeetyou.com +greatuncl.icu +greatwall-dublin1.com +greatwebcontent.info +greatweddingvenues.com +grecbibte.ga +grecbibte.gq +grecbibte.ml +grecc.me +grecourtbookshop.com +grederter.org +gree.gq +greecealive.com +greeceinvestorguide.online +greedy.fund +greedy.link +greekbag.website +greekcampus.org +greekforks.com +greekkindlejudge.site +greekrestaurants.net +greekstatues.net +green-coffe-extra.info +green-septik.ru +green-stone.info +green.jino.ru +greenapi1.club +greenassetdisposal.com +greenbandhu.com +greenbarley.net +greenbaypackersjerseysshop.us +greenbaypackerssale.com +greenbellfinance.com +greenbookdigital.com +greenbot.site +greencardsco.com +greencityhome.store +greencoepoe.cf +greencoffeebeanextractfaq.com +greencoffeebeanfaq.com +greencozy.icu +greencreektownship.org +greendike.com +greendipbench.cf +greendipbench.ga +greendipbench.gq +greendipbench.ml +greendipbench.tk +greendom67.ru +greenekiikoreabete.cf +greenerykingdom.com +greenestaes.com +greenflavoredtopic.com +greenforce.cf +greenforce.tk +greenfree.ru +greengenahead.com +greengridnewmexico.org +greenholidayresorts.com +greenhomelove.com +greenhousemail.com +greenicspir.cf +greenicspir.gq +greenicspir.ml +greenicspir.tk +greeninbox.org +greenlabs.ltd +greenleafmail.com +greenlifedergi.com +greenlifepages.com +greenlivingutopia.com +greenmilehigh.info +greenmilehigh.online +greenmilehigh.store +greenpdfmanuales.xyz +greenplanetfruit.com +greenpowerexplorer.com +greenreliefcream.com +greenrocketemail.com +greensboronailsalons.com +greensboroopiaterehab.com +greensboroquote.com +greenscreen.agency +greensforsydney.org +greenslim.site +greensloth.com +greenslots2017.co +greenspin1.bet +greenst.info +greensticky.info +greenstreev.xyz +greentear.com +greenteareviewer.com +greentech5.com +greenthumbdrives.info +greenthumbdrives.net +greentouwn.ru +greentravelblog.org +greentreeheavyequipment.com +greenvillebankruptcyattorneys.com +greenvillegraphics.com +greenwarez.org +greenwavefilters.net +greenwooddoctors.com +greenwoodrealestateagents.com +greenzclvea.email +greeriptv.live +greetingily.email +greetingsbot.com +greetsealedknife.site +gregallenartists.com +gregbritton.com +gregburnette.com +gregcompany.ru +greggamel.com +greggamel.net +gregoria1818.site +gregorsky.zone +gregorygamel.com +gregorygamel.net +gregroita.cf +gregroita.gq +gregroita.ml +gregroita.tk +grek-nedv.ru +grek1.ru +gremlinsfancocoon.com +grenada-nedv.ru +grenaddfqb.space +grencex.cf +grenn24.com +grenoble-avocats.com +grenso.com +grepekhyo65hfr.tk +gresyuip.com.uk +gretl.info +grew-sheridan.com +greyhouseatthewallacelodge.com +greyjack.com +greypebbles.cd +greystonessc.com +greywool.ru +grgc.org +grib04.ru +grib58.ru +grid.sale +gridmauk.com +grietjie.org +griffeyjrshoesstore.com +griffeyshoesoutletsale.com +griffinbone.com +griffininnovation.com +grigio.cf +grill-tandoori-dunshaughlin.com +grillertakeaway.com +grillishtakeaway.com +grilltown-dublin.com +grimjjowjager.cf +grimjjowjager.ga +grimjjowjager.gq +grimjjowjager.ml +grimjjowjager.tk +grimoiresandmore.com +grimper-a-vue.com +grimsbybd.online +grimsi.ml +grimsi.tk +grina.biz +grinagclev.cf +grinagclev.ga +grinagclev.ml +grinagclev.tk +grinbatolect.cf +grindandseal.melbourne +grindevald.ru +grindingly.best +grindli.icu +grindwea.xyz +grinn.in +gripbarchess.cf +gripbarchess.ga +gripbarchess.ml +gripbarchess.tk +gripspolice.top +grish.de +grisha.net +gritbasketheir.website +gritchart.com +gritscooker.com +griuc.schule +griusa.com +grizzlyfruit.gq +grizzlysealkits.com +grmvn.cf +grn.cc +grnermail.info +grnpublication.org +gro2soil.com +gro2turf.com +grobmail.com +groceriesshop.futbol +grocerysavings.online +grocerystars.site +grodins.ml +groei-vandaag.online +grokosan.website +grom-muzi.ru +grommail.fr +gronn.pl +groobler.com +groobox.info +groots.ong +grooveforcoaching.com +groovefortrainers.com +groovehype.com +groovetrove.com +groovetrove.org +groovypandas.info +groovypanthers.info +groovysquid.info +groovywolf.info +grosjoumouff.cf +grosjoumouff.ga +grosjoumouff.gq +grosjoumouff.ml +grosouk.com +grossiste-ambre.net +grotehamer.com +groundedradio.com +grounduktg.space +grounduowpx.email +groundworkusa.net +grounurur.cf +grounurur.ga +grounurur.gq +grounurur.tk +group-llc.cf +group-llc.ga +group-llc.gq +group-llc.ml +group-llc.tk +group-stock-store.ru +group-trade-offer.ru +group2motorsports.com +groupbuff.com +groupd-mail.net +groupe-acorus.com +groupe-psa.cf +groupe-psa.gq +groupe-psa.ml +groupe-psa.tk +groupe.cd +grouper.store +groupermail.com +groupersoftware.info +groupertechnologies.org +groupfunds.club +groupinvest.club +groupkami.com +groupmaidat.com +groupoches.cf +groupoches.ga +groupoches.gq +groupoches.ml +grouponeparts.com +groupous.com +groupteleserye.ru +grouserealty.com +grouvity.com +grovebra.cf +grovebra.gq +grovebra.tk +groveled59ee.xyz +groverstudio.com +grow-mail.com +grow-russia.ru +growaparts.info +growfitaccelerator.com +growhpostmi.cf +growhpostmi.ga +growhpostmi.gq +growhpostmi.tk +growintelligence.com +growlcombine.com +growlightkits.net +growmatter.com +growmybizonline.com +growndiamonds.com +grownwomen.biz +growseedsnow.com +growshop-moskva.ru +growsites.us +growsocial.net +growth-tools.fr +growth-tools.tk +growthenhancerplus.com +growthers.com +growthhike.us +growthlaboraties.com +growtopia.store +growxlreview.com +growyou.info +grpbbq.us +grqhly.site +grr.la +grruprkfj.pl +grtgertr.xyz +gru.company +grubsnapper.com +grubybenekrayskiego.pl +grubymail.com +grud-devushki.ru +grue.de +grufefse.cf +grugrug.ru +grumlylesite.com +grumpy-phpunit.com +grumpy-testing.com +grumpyglobetroter.com +grumpyrobot.icu +grumpyspaint.com +gruntimaps.org +grupatworczapik.pl +gruperio.net +grupik.ru +grupocapoeirabrasilraleigh.com +grupodinamax.com +grupos-telegram.com +gruposantander.cd +gruppa.club +gruppatelika.ru +gruppsakerhetssystem.se +gruz-m.ru +gruz-man.ru +gruzovyezapchasti.ru +gry-logiczne-i-liczbowe.pl +grycjanosmail.com +grydladziewczynek.com.pl +grylogiczneiliczbowe.pl +gryonlinew.pl +gryplaystation3-fr.pl +gs-arc.org +gs-lab.ru +gs-tube-x.ru +gs516.ru +gsa.yesweadvice.com +gsaemail.com +gsasearchengineranker.top +gsasearchengineranker.xyz +gsaseoemail.com +gsaverifiedlist.download +gsbalumni.com +gscfw.info +gsdcoalition.org +gsdwertos.com +gseevqvve.shop +gsfuu6.art +gsfwz.icu +gsg-exchange.com +gshopping.site +gsibiliaali1.xsl.pt +gslask.net +gsmmodem.org +gsmseti.ru +gsmwndcir.pl +gsnuyq.us +gspam.mooo.com +gspousea.com +gsredcross.org +gsrscs.xyz +gsrv.co.uk +gssa9fa5.fun +gstatic-cache-fra1.xyz +gstore96.ru +gstx1.xyz +gsweetuni.space +gsxjwd.us +gsxstring.ga +gsyqbkyng.shop +gszddl.icu +gt-baja.com +gt1111.com +gt446443ads.cf +gt446443ads.ga +gt446443ads.gq +gt446443ads.ml +gt446443ads.tk +gta-5.space +gta-offline.ru +gta4etw4twtan53.gq +gta5darkrp.ru +gta5deadstar.ru +gta5mp.com +gta5mp.net +gta5russia.ru +gtaa6.ru +gtafzq.tokyo +gtagolfers.com +gtamp.app +gtarp.app +gtavstreams.com +gtbanger.com +gtbooks.site +gtc2.club +gtcdqpctc.shop +gtcmnt.pl +gterebaled.com +gtfaway.net +gtfaway.org +gthgvt.site +gthosing.net +gthpprhtql.pl +gti8xq.us +gtime.com +gtk9.com +gtkesh.com +gtmail.com +gtmseal.com +gtntqeryp.ga +gtnv.email +gtoalumni.com +gtq59.xyz +gtrcinmdgzhzei.cf +gtrcinmdgzhzei.ga +gtrcinmdgzhzei.gq +gtrcinmdgzhzei.ml +gtrcinmdgzhzei.tk +gtrrrn.com +gtsmov.info +gtthnp.com +gtuae.us +gtxorv.us +gtymj2pd5yazcbffg.cf +gtymj2pd5yazcbffg.ga +gtymj2pd5yazcbffg.gq +gtymj2pd5yazcbffg.ml +gtymj2pd5yazcbffg.tk +gu0x9z.us +gu3x7o717ca5wg3ili.cf +gu3x7o717ca5wg3ili.ga +gu3x7o717ca5wg3ili.gq +gu3x7o717ca5wg3ili.ml +gu3x7o717ca5wg3ili.tk +gu4wecv3.bij.pl +gu5t.com +gu788.com +gualpeling.cf +gualpeling.ga +gualpeling.tk +guangxibxyl.com +guanyabo.com +guanyacn.com +guanyuky.com +guarali.cf +guarali.ga +guarali.gq +guarali.ml +guarali.tk +guaranteed-position.com +guaranteedinsuranceoptions.com +guarchibao-fest.ru +guarddimnlg.email +guarden.icu +guardprotection.website +guardvisor.ru +guatemala.org +guayturwork.cf +gubkiss.com +gucc1-magasin.com +gucci-ebagoutlet.com +gucci-eoutlet.net +guccibagshere.com +guccibagsuksale.info +gucciborseitalyoutletbags.com +guccicheapjp.com +guccihandbagjp.com +guccihandbags-australia.info +guccihandbags-onsale.us +guccihandbags-shop.info +guccihandbagsonsale.info +guccihandbagsonsaleoo.com +gucciinstockshop.com +gucciocchiali.net +gucciofficialwebsitebags.com +gucciofficialwebsitebags.com.com +guccionsalejp.com +guccioutlet-online.info +guccioutlet-onlinestore.info +guccioutlet-store.info +guccioutletmallsjp.com +guccioutletonline.info +guccioutletonlinestores.info +guccisacochepaschere.com +guccishoessale.com +guccitripwell.com +gucejanu.club +gud-game.ru +gud-magaz.ru +gudang0.net +gudang1.net +gudang2.net +gudang3.com +gudang3.net +gudang5.net +gudanglowongan.com +gudilika.fun +gudluck.ru +gudodaj-sie.pl +gudyejcia.xyz +gueecd.xyz +guefontmo.cf +guefontmo.ga +guefontmo.gq +guefontmo.ml +guegeldfor.cf +guegeldfor.ml +guegeldfor.tk +guehomo.top +guelmorper.icu +guelphdowntown.com +guepoker.org +guerillamail.biz +guerillamail.com +guerillamail.de +guerillamail.info +guerillamail.net +guerillamail.org +guerillamailblock.com +guernseynaturereserve.com +guerrillamail.biz +guerrillamail.com +guerrillamail.de +guerrillamail.info +guerrillamail.net +guerrillamail.org +guerrillamailblock.com +guesschaussurespascher.com +guessju.buzz +guessswin.site +guesstimatr.com +guesstri.xyz +guest-lock.com +guestblogify.com +guestify.com +guestlock.net +gueto2009.com +guewkw.us +gug.la +guge.de +guge.website +guglator.com +gugoumail.com +gugudadashop.com +gugulelelel.com +guhan.ru +guhandmade.com +guhtr.org +guhu.site +guia59.com +guiadelcusco.com +guiadomilionario.com +guiavip.net +guide2host.net +guide3.net +guide4fit.ru +guidebate.fun +guidebate.online +guidebate.site +guidebated.site +guidebates.site +guideborn.site +guidebut.site +guidebuted.site +guideflyfishing.com +guideformy.site +guideformyx.site +guidejpshop.com +guidelbe.site +guidelberg.site +guidelbert.site +guidelepwu.space +guidelia.site +guidelian.site +guideliber.site +guidelible.site +guidelic.site +guidelican.site +guidelicoe.site +guidelicon.site +guidelics.site +guidelineprice.com +guidelings.site +guideliot.site +guidelis.site +guideliter.site +guideliver.fun +guideliver.online +guideliver.site +guidelous.site +guidelphia.site +guidelyu.site +guidemails.gdn +guidemic.site +guidemical.site +guidemics.site +guidences.site +guidency.site +guidential.site +guidention.site +guideral.site +guidered.fun +guidered.online +guidered.site +guides4my.site +guidesandmanual.site +guidesforkids.com +guidespire.site +guidespita.site +guidespite.fun +guidespite.online +guidespite.site +guidet.site +guidetomentone.com +guidewal.site +guidewalls.site +guidewan.fun +guidewan.online +guidewan.site +guidewey.site +guidings.info +guidx.site +guidz.site +guildwars-2-gold.co.uk +guildwars-2-gold.de +guilotle.ml +guilotle.tk +guineafood.com +guineavgzo.space +guineegames.net +guiolpht.xyz +guitar.asia +guitardaddy.org +guitarjustforyou.com +guitarsxltd.com +guitoco.cf +guitoco.ga +guitoco.gq +guitoco.ml +guiwoallam.cf +guiwoallam.ga +guiwoallam.ml +guiwoallam.tk +guizefacefx.net +gujarat-bazaar.com +gujaratpetro.com +gujckksusww.com +gujika.org +gujpocel.ga +gujpocel.gq +gujpocel.ml +gujpocel.tk +gukibur.cf +gukibur.ga +gukibur.gq +gukibur.ml +gukibur.tk +gulcu.biz +gulfcoastcooking.com +gulfcoastcuisine.com +gulfcoastfoods.com +gulfcoastifr.com +gulfcoastseasonings.com +gulfgurl.com +gulfmedic.org +gulfofmexico.com +gulfshisha.com +gulfshoreshotels.org +gulftechology.com +gulipine.site +guliverenergija-igraonica.com +gulkokulukoy.com +gullaneplaygroup.com +gulletdopeyledore.com +gumhome.ru +gummosity.xyz +gummymail.info +gumrukkayip.com +gun1k.ru +gunalizy.mazury.pl +gunapedia.org +guncelco.com +guncelhesap.com +gundam-plamodel.info +gundogsclub.com +gundogtrainerarkansas.com +gunessaatoptik.com +gunscutlo.cf +gunscutlo.ml +gunscutlo.tk +gunsngames.com +gunsportklop.ru +gunyao.com +gunzuki.info +gunzuki.site +guojihui3.com +guojihui888.com +guojihuidizhi.net +guonancai.shop +guotongholdings.com +guowaishipin.xyz +gupiaozhenduanpt.com +guqage.ru +guqoo.com +gurgpola.cf +gurgpola.ga +gurgpola.gq +gurgpola.ml +gurgpola.tk +gurgtapar.ga +gurgtapar.gq +gurgtapar.ml +gurgtapar.tk +gurman1.space +gurmanabuket.ru +gurmeneczadepo1.club +gurneytintblog.com +gurpz.com +gurrifa.cf +gurrifa.ga +gurrifa.gq +gurrifa.ml +gurrifa.tk +gurubooks.ru +gurulegal.ru +gurumail.xyz +gurumediation.com +gurungkhabar.com +gurutransfer.com +gusarkazino777.com +guscares.com +gusevandy.ru +gush.wtf +gusronk.com +gussocu.cf +gussocu.gq +gussocu.ml +gussocu.tk +gustavocata.org +gustavosandoval.com +gustidharya.com +gustlabs.com +gustore.co +gustpay.com +gustr.com +gutenmorgen.site +gutezinsen.biz +gutierrezmail.bid +gutmensch.foundation +gutmenschen.center +gutmenschen.com +gutmenschen.company +gutmenschen.email +gutmenschen.expert +gutmenschen.guru +gutmenschen.money +gutmenschen.photos +gutmenschen.realty +gutmenschen.space +gutmenschen.systems +gutmenschen.tickets +gutmenschen.tools +gutmenschen.watch +gutmenschen.website +gutmenschen.works +gutmenschen.zone +gutmorgen.moscow +gutterguard.xyz +gutterscleanedmd.com +guuao.info +guudbzgeg.shop +guus02.guccisacsite.com +guvenliklietiket.xyz +guvewfmn7j1dmp.cf +guvewfmn7j1dmp.ga +guvewfmn7j1dmp.gq +guvewfmn7j1dmp.ml +guvewfmn7j1dmp.tk +guwjetsxm.shop +guwvje.us +guybox.info +guycuco.cf +guycuco.ga +guycuco.gq +guycuco.ml +guycuco.tk +guyfawkesfireworks.biz +guyfawkesfireworks.net +guykoshop.xyz +guyrkkyy.shop +guyromaniafor.website +guysdobi.com +guysdoguys.com +guystelchim.cf +guystelchim.ga +guystelchim.gq +guystelchim.ml +guystelchim.tk +guzelborc.online +guzelim.net +guzik-bux.ru +guzik-game.ru +guzik-loto.ru +guzmanbabe.com +guzqrwroil.pl +guzzthickfull.cf +guzzthickfull.ga +guzzthickfull.ml +guzzthickfull.tk +gvano.com +gvatemala-nedv.ru +gvdjb.xyz +gveihw.com +gvn4fg.info +gvnuclear.com +gvquij.rest +gvwconsulting.com +gvztim.gq +gw5jy.us +gwahtb.pl +gwaqiz.us +gwarpi.com +gwenbd94.com +gwfezmxd.shop +gwfh.cf +gwfh.ga +gwfh.gq +gwfh.ml +gwfh.tk +gwfmuaqt.xyz +gwhnhz.shop +gwindorseobacklink.com +gwix.net +gwkjw.club +gwkmw.info +gwllw.info +gwm1ws.site +gwm5a.us +gwmogi.gq +gwn0zh.com +gwok.info +gwp2.com +gwsdev4.info +gwspt71.com +gwt0402.online +gwt2201.buzz +gwtvmeqy.shop +gwynetharcher.com +gwyww.info +gwzjoaquinito01.cf +gx0n5n.best +gx161.site +gx2d.com +gx2k24xs49672.cf +gx2k24xs49672.ga +gx2k24xs49672.gq +gx2k24xs49672.ml +gx2k24xs49672.tk +gx7v4s7oa5e.cf +gx7v4s7oa5e.ga +gx7v4s7oa5e.gq +gx7v4s7oa5e.ml +gx7v4s7oa5e.tk +gxbaw.com +gxbnaloxcn.ga +gxbnaloxcn.ml +gxbnaloxcn.tk +gxchaincapital.cn +gxcpaydayloans.org +gxdbfe.us +gxdmw.info +gxemail.men +gxg07.com +gxglixaxlzc9lqfp.cf +gxglixaxlzc9lqfp.ga +gxglixaxlzc9lqfp.gq +gxglixaxlzc9lqfp.ml +gxglixaxlzc9lqfp.tk +gxglsy.com +gxgxg.xyz +gxhy1ywutbst.cf +gxhy1ywutbst.ga +gxhy1ywutbst.gq +gxhy1ywutbst.ml +gxhy1ywutbst.tk +gxklbl.us +gxlmw.info +gxlrgo.shop +gxm90b.us +gxmail.ga +gxmer.com +gxtx.com +gxtyfetry-manage5.com +gxvps.com +gxwww.com +gxxjld.com +gxyl666.net +gxyl666.org +gxzsrr.info +gy273.site +gyagwgwgwgsusiej70029292228.cloudns.cl +gybatu.info +gyberstore.top +gyblerefy.host +gybr88.com +gyddd.com +gydhru.us +gyhasdfytas13582.cf +gyhasdfytas13582.ga +gyhasdfytas13582.ml +gyhasdfytas13582.tk +gyhasdfytas61010.ml +gyhasdfytas61010.tk +gyhasdfytas79407.ml +gyhasdfytas79407.tk +gyheqi.info +gyhunter.org +gyigfoisnp560.ml +gyikgmm.pl +gymdep.site +gymgay.com +gymkampen.se +gymlesstrainingsystem.com +gymnasium-alsfeld.de +gymnasty.life +gymnasty.tech +gynn.org +gynzi.co.uk +gynzi.com +gynzi.es +gynzi.nl +gynzi.org +gynzy.at +gynzy.es +gynzy.eu +gynzy.gr +gynzy.info +gynzy.lt +gynzy.mobi +gynzy.pl +gynzy.ro +gynzy.ru +gynzy.sk +gyp1.site +gyp4.site +gyp5.site +gyp7.site +gypsypearltx.space +gyqa.com +gyro-net.ru +gyroproject.com +gyrosmalta.com +gyrosramzes.pl +gytiyu.com +gyu3on.us +gyul.ru +gyxohy.info +gyxq2d.us +gyzb.email +gz-tmg.com +gz168.net +gza5op.us +gzb.ro +gzc868.com +gzdkjxlw.shop +gzdqg.us +gzdwe6.com +gzesiek84bb.pl +gzhenghua112.com +gzip-proxy.ru +gzjdph.com +gzjz.email +gzk2sjhj9.pl +gzlsw.info +gznf.cc +gzns.cc +gzpl.cc +gzpljm.us +gzpq.cc +gzqg.cc +gzqyjtgs.com +gzrf.cc +gzrwx.com +gzvmwiqwycv8topg6zx.cf +gzvmwiqwycv8topg6zx.ga +gzvmwiqwycv8topg6zx.gq +gzvmwiqwycv8topg6zx.ml +gzvmwiqwycv8topg6zx.tk +gzxb120.com +gzxingbian.com +gzykw.info +gzyp21.net +gzziojhta.shop +h-b-p.com +h-response.com +h.mintemail.com +h.polosburberry.com +h.thc.lv +h0116.top +h02vat.host +h05fypawbzlg017.xyz +h09yb.space +h0i.ru +h0nwrgppwk8ryyt.xyz +h0t46e9.best +h0tmail.top +h1769.com +h1775.com +h1hecsjvlh1m0ajq7qm.cf +h1hecsjvlh1m0ajq7qm.ga +h1hecsjvlh1m0ajq7qm.gq +h1hecsjvlh1m0ajq7qm.ml +h1hecsjvlh1m0ajq7qm.tk +h1tler.cf +h1tler.ga +h1tler.gq +h1tler.ml +h1tler.tk +h1tw.buzz +h1z8ckvz.com +h2-yy.nut.cc +h2.delivery +h2.supplies +h20powerinc.com +h20solucaca.com +h219.com +h2o-gallery.ru +h2o-web.cf +h2o-web.ga +h2o-web.gq +h2o-web.ml +h2o-web.tk +h2ocn8f78h0d0p.cf +h2ocn8f78h0d0p.ga +h2ocn8f78h0d0p.gq +h2ocn8f78h0d0p.ml +h2ocn8f78h0d0p.tk +h2ocoffe.ru +h2otony.com +h2sprey.ru +h2wefrnqrststqtip.cf +h2wefrnqrststqtip.ga +h2wefrnqrststqtip.gq +h2wefrnqrststqtip.ml +h2wefrnqrststqtip.tk +h323.ru +h333.cf +h333.ga +h333.gq +h333.ml +h333.tk +h37jbl.us +h39wxs.com +h3fyu.us +h3o2.us +h3ssk4p86gh4r4.cf +h3ssk4p86gh4r4.ga +h3ssk4p86gh4r4.gq +h3ssk4p86gh4r4.ml +h3ssk4p86gh4r4.tk +h3xf.buzz +h3yv.us +h42fu.space +h467etrsf.cf +h467etrsf.gq +h467etrsf.ml +h467etrsf.tk +h4l69i.com +h546ns6jaii.cf +h546ns6jaii.ga +h546ns6jaii.gq +h546ns6jaii.ml +h546ns6jaii.tk +h5dslznisdric3dle0.cf +h5dslznisdric3dle0.ga +h5dslznisdric3dle0.gq +h5dslznisdric3dle0.ml +h5dslznisdric3dle0.tk +h5jiin8z.pl +h5k8.com +h5pstore.com +h5qaz.cn +h5srocpjtrfovj.cf +h5srocpjtrfovj.ga +h5srocpjtrfovj.gq +h5srocpjtrfovj.ml +h5srocpjtrfovj.tk +h5svo0.us +h5xepuv8eor7sd9.xyz +h635.com +h65syz4lqztfrg1.cf +h65syz4lqztfrg1.ga +h65syz4lqztfrg1.gq +h65syz4lqztfrg1.ml +h65syz4lqztfrg1.tk +h6gyj.us +h6kepf-mail.xyz +h6xoap.us +h7018.com +h7665.com +h78qp.com +h79ig.site +h7hfeo.xyz +h7ke6lb7rmqlhga0.buzz +h7l3jvlv40oot8y.xyz +h7qns.buzz +h7vpvodrtkfifq35z.cf +h7vpvodrtkfifq35z.ga +h7vpvodrtkfifq35z.gq +h7vpvodrtkfifq35z.ml +h7vpvodrtkfifq35z.tk +h7xbkl9glkh.cf +h7xbkl9glkh.ga +h7xbkl9glkh.gq +h7xbkl9glkh.ml +h7xbkl9glkh.tk +h80nm.site +h82323.com +h84tmp.us +h88fun.com +h8cp3.com +h8cp9.com +h8cpb.com +h8cpbb.com +h8cpcc.com +h8cpd.com +h8cpf.com +h8cpff.com +h8cpgg.com +h8cph.com +h8cpii.com +h8cpkk.com +h8cpl.com +h8cpll.com +h8cpmm.com +h8cpn.com +h8cpnn.com +h8cpo.com +h8cppp.com +h8cpq.com +h8cpt.com +h8cpv.com +h8cpvv.com +h8cpxx.com +h8cpz.com +h8s.org +h8usp9cxtftf.cf +h8usp9cxtftf.ga +h8usp9cxtftf.gq +h8usp9cxtftf.ml +h8usp9cxtftf.tk +h8vk9uk6g0o3f2c3vi7v.com +h8y8n.site +h91.info +h9js8y6.com +h9lxd2.info +h9uqwr.info +h9x3bz.online +ha1dq.us +ha4xwq.info +ha7d2.stream +haanybano.net +haar52.com +haatma.com +habacityi.com +habad.win +habb.futbol +habboftpcheat.com +haberarena.com +haberci.com +habere-maximus.info +haberfa.com +haberoku24.com +habitosderico.com +habitualferocity.com +habitue.net +hablemosdeorgasmos.com +habnbane.com +habnetfm.online +habrack.ru +habrew.de +hac1.com +hacccc.com +hack-seo.com +hackart.ru +hackathonfaq.com +hackathonresources.com +hackcheat.co +hackdenver.com +hacked.jp +hackedflashgame.com +hacken.company +hackepic.org +hacker.onl +hackerious.com +hackerndgiveaway.ml +hackers.onl +hackersquad.tk +hackertrap.info +hackervietnam.mobi +hackhack.org +hacking.onl +hackinglatinoamerica.net +hackingtruths.net +hackingyourfunnel.com +hacklet.com +hacknophobia.net +hackrz.xyz +hacksleague.ru +hacksly.com +hackspace.org +hackspire.com +hackthatbit.ch +hacktherazr.com +hacktherules.com +hacktoy.com +hackuser.net +hackwifi.org +hackwish.com +hackwish.net +hackzone.club +hactzayvgqfhpd.cf +hactzayvgqfhpd.ga +hactzayvgqfhpd.gq +hactzayvgqfhpd.ml +hactzayvgqfhpd.tk +had.twoja-pozycja.biz +hadal.net +haddego.cf +haddego.ga +haddego.gq +haddego.ml +haddo.eu +hade.com +hadenfletcher.design +hadesa.info +hadesegilmez.ml +hadesegilmez.tk +hadge.xyz +hadigel.net +hadimkoytv.xyz +hadits.app +hadits9imam.com +haditspilihan.com +hadmins.com +hadthetalk.org +haecvx.tokyo +haerdmoc.shop +hafan.sk +hafbak-reg.online +hafhvt.com +hafifyapi.com +hafin2.pl +hafluzzter.cf +hafluzzter.gq +hafluzzter.tk +hafnia.biz +hafrem3456ails.com +haft-time.com +hafutv.com +hafzo.net +hagglebeddle.com +haggreroren.gq +hagiasophiagroup.com +hagiasophiaonline.com +hagomedia.com +hagvo.live +hahabox.com +hahabu.net +hahalla.com +hahaslot.xyz +hahawrong.com +hahqzhnfc.ml +haiapoteker.com +haicao45.com +haicao47.com +haicao48.com +haicao54.com +haicao55.com +haicao65.com +haicao69.com +haicao77.com +haicao78.com +haicao80.com +haicao83.com +haicao99.com +haicaotv2.com +haicaotv3.com +haida-edu.cn +haidang.co +haide.com +haier-mail.com +haierair.biz +haierair.com +haieramerica.us +haieramerica.xyz +haieramericas.com +haieramericashop.com +haierplast.net +haifashaikh.com +haihan.vn +haihantnc.xyz +haikuforlovers.com +haikuinthemiddle.info +hailchat.com +hailonggame.com +hailuwuliu.com +haimai.pro +hainescitynews.net +hainopalm.cf +hainopalm.ga +hainopalm.ml +hainopalm.tk +haiok.cf +hair-shoponline.info +hair-stylestrends.com +hairagainreviews.org +hairbeautysave.com +hairbrushescombs.futbol +haircaresalonstips.info +haircareshop.life +hairgrowth.cf +hairgrowth.ml +hairgrwetp.site +hairjournal.com +hairjuiceformula.shop +hairlossshop.info +hairoo.com +hairpenaltyhigh.website +hairplunk.com +hairremovalplus.org +hairrenvennen.com +hairs-shoponline.info +hairs24.ru +hairsideas.ru +hairsite.website +hairstraighteneraustralia.info +hairstraightenercheapaustralia.info +hairstraightenernv.com +hairstyles360.com +hairstylesbase.com +hairstylesforshorthair.website +hairstyleszon.xyz +hairtcs.com +hairwizard.in +hairyvideos.pro +haitaous.com +haitiassurances.com +haitibateau.com +haitibox.com +haitibrasil.com +haiticadeau.com +haiticell.com +haiticonsult.com +haiticonsultants.com +haitiexchange.com +haitiholdings.com +haitilearning.com +haitiloan.com +haitimoto.com +haitipret.com +haitiproducts.com +haitirelief.org +haitirhum.com +haitisecurit.com +haitisell.com +haitisound.com +haititicket.com +haititraining.com +haititransfers.com +haitmail.ga +haitt-54.com +haitu.info +haiyundata.com +haizap.com +haizi360.com +hajckiey2.pl +hakandurmaz.live +hakimisoap.com +hakinsiyatifi.org +hakkarifotokopiservisi.com +hakwefs.online +hakwefs.xyz +hala-tv.net +halafun.com +halaltech.net +halamed724.com +halapenz.com +halarestaurant.com +haldihouse.net +hale-namiotowe.net.pl +halebale.com +haledamn.us +haleyhouse.co +half-blue.com +halfpricedlistingak.com +halfpricedlistingal.com +halfpricedlistingaz.com +halfpricedlistingct.com +halfpricedlistingin.com +halfpricedlistingky.com +halfpricedlistingla.com +halfpricedlistingmd.com +halfpricedlistingmi.com +halfpricedlistingmt.com +halfpricedlistingnc.com +halfpricedlistingoh.com +halfpricedlistingpa.com +halfpricedlistingsak.com +halfpricedlistingsca.com +halfpricedlistingsco.com +halfpricedlistingsde.com +halfpricedlistingsin.com +halfpricedlistingsks.com +halfpricedlistingsma.com +halfpricedlistingsmd.com +halfpricedlistingsnh.com +halfpricedlistingsnj.com +halfpricedlistingsny.com +halfpricedlistingsor.com +halfpricedlistingspa.com +halfpricedlistingssc.com +halfpricedlistingstn.com +halfpricedlistingsvt.com +halfpricedlistingswa.com +halfpricedlistingvt.com +halfpricedlistingwy.com +halfpricelistingal.com +halfpricelistingca.com +halfpricelistingco.com +halfpricelistingde.com +halfpricelistingin.com +halfpricelistingks.com +halfpricelistingky.com +halfpricelistingla.com +halfpricelistingma.com +halfpricelistingme.com +halfpricelistingnc.com +halfpricelistingne.com +halfpricelistingnj.com +halfpricelistingnm.com +halfpricelistingok.com +halfpricelistingor.com +halfpricelistingpa.com +halfpricelistingri.com +halfpricelistingsal.com +halfpricelistingsaz.com +halfpricelistingsc.com +halfpricelistingsco.com +halfpricelistingsde.com +halfpricelistingsia.com +halfpricelistingsin.com +halfpricelistingsks.com +halfpricelistingsmd.com +halfpricelistingsmn.com +halfpricelistingsmo.com +halfpricelistingssd.com +halfpricelistingstx.com +halfpricelistingswv.com +halfpricelistingswy.com +halfpricelistingut.com +halfpricelistingva.com +halfpricelistingwa.com +halfpricelistingwv.com +halfsale.info +halftisca.cf +halftisca.ga +halftisca.gq +halftisca.tk +halfwayhomepets.com +halgum.ru +halhani.site +halhuel.info +halibiotic.xyz +halidepo.com +halil.ml +halkasor.com +halkmedia.xyz +hallacamail.xyz +hallawallah.com +hallbarhetschefen.se +hallmark-trinidad.com +hallo.schule +hallo.singles +halloffame.page +hallovisa.site +hallsportklop.ru +hallsulrics.cf +hallsulrics.ga +hallsulrics.gq +hallsulrics.tk +halltail.info +halltail.org +halltail.us +halltale.info +halltale.org +halltale.us +hallvulcan.ru +halmstadstad.com +halofarmasi.com +halogeterer.monster +halongmedia.com +halopets.net +haloqq.info +halqaran.org +halsbrandburp.website +halsey3.com +haltospam.com +halumail.com +halvfet.com +hamakdupajasia.com +hamanian.site +hamarikahani.gq +hambhedehomang.space +hamburguesas.net +hamcagers.cf +hamcagers.gq +hamcagers.ml +hamcagers.tk +hamcollege.com +hamformrum.cf +hamformrum.ga +hamformrum.gq +hamiltondesign.ca +hamiltongiftbaskets.com +hamishdurkin.com +hamitk.info +hammbur.com +hammel-shredder-repair.com +hammer53.website +hammerdin.com +hammerthor.solutions +hamonclub.ru +hampanel.com +hampel.co +hamptonsmvp.com +hampusidan.com +hamroagro.com +hamrobeema.com +hamsagiftshop.com +hamsing.com +hamsterx.club +hamtapay24.com +hamtharo001.cf +hamtharo001.gq +hamtharo006.cf +hamtharo006.ga +hamtharo006.gq +hamtharo006.tk +hamtharo008.gq +hamtharoo005.gq +hamtwer.biz +hamusoku.cf +hamusoku.ga +hamusoku.gq +hamusoku.ml +hamusoku.tk +hamzayousfi.tk +hana-toge.online +hanaichizen.online +hanatravel.ru +handans.ru +handavesa.info +handavesy.info +handaxisy.info +handbagscanadastores.com +handbagscharming.info +handbagsfox.com +handbagslovers.info +handbagsluis.net +handbagsonlinebuy.com +handbagsoutlet-trends.info +handbagsshowing.com +handbagsshowingk.com +handbagsstoreslove.com +handbagstips2012.info +handbagwee.com +handcareshop.life +handcleanser.net +handcrafted.market +handcrafters.shop +handdecting.cf +handelo.com.pl +handev.ru +handgling.website +handikap35.com +handionline.org +handjobfantasy.com +handler.hk +handleride.com +handlingus.com +handlmassager.com +handmadecrochet.website +handmadegreekgifts.com +handphonecostume.com +handpickedhotels.media +handprep.vision +handrfabrics.com +hands2f.tk +handsanitizer.health +handsetcloud.com +handskinat.ga +handskinat.ml +handskinat.tk +handsntzr.com +handsojcwd.ru +handspowertool.online +handstand.cam +handsupot.net +handydou.host +handysca.xyz +handysnif.email +handystag.xyz +handywa.icu +handywast.xyz +handywi.press +handzonhealth.store +hanesamazon.com +hanfordlawyers.com +hangar18.org +hangcha.org +hangersshop.live +hanggiagoc.website +hanghot.club +hangifinansman.xyz +hanging-drop-plates.com +hangisiyi.online +hangisiyi.xyz +hangoutqueen.biz +hangover-over.tk +hangtimeimageclub.com +hangxomcuatoilatotoro.cf +hangxomcuatoilatotoro.ga +hangxomcuatoilatotoro.gq +hangxomcuatoilatotoro.ml +hangxomcuatoilatotoro.tk +hangzhoubarcelona.com +hangzhousongtang.com +hanhhuyen.ml +haningtonbrothers.xyz +haniuil.com +haniv.ignorelist.com +hankbed.site +hankbike.site +hankboy.site +hankbun.site +hankcan.site +hankclover.site +hankcrowd.site +hankday.site +hankfan.site +hankflag.site +hankjar.site +hankwards.info +hanleft.com +hanlinpalace.com +hanmama.zz.am +hannahbarclay.net +hannahouse.co +hannahphillipsreal.net +hannahsphotos.com +hanoi.video +hanoi24h.site +hanoigeckohotel.com +hanoimail.us +hanoimoi.site +hanoinews.org +hanoisapphirehotel.com +hanoitohalongbay.com +hanoitraveladvisor.com +hanoiyeuvn.website +hanovermarinetime.com +hanquanlalala.xyz +hansactic.online +hansahost.net +hansblbno.ustka.pl +hanse-trade.com +hansenfamily.info +hanson4.dynamicdns.me.uk +hanson7.dns-dns.com +hansonqualityplumbing.com +hanswurst.gmbh +hantem.bid +hanul.com +hanuman.fun +hanxue.com +hanyang.college +haoacg.com +haodd173.com +haodd178.com +haodd181.com +haodd182.com +haodd191.com +haodd193.com +haodd196.com +haodd197.com +haodewang.com +haodi123.com +haofangbi.com +haofangpo.com +haofangri.com +haofangsa.com +haofangsi.com +haogltoqdifqq.cf +haogltoqdifqq.ga +haogltoqdifqq.gq +haogltoqdifqq.ml +haogltoqdifqq.tk +haohuihh.com +haom7.com +haomei456.com +haoshouhu.com +haostuni.com +haosuhong.com +haotuk.site +haoy678.com +haoyaogeccx.com +haoyouo.com +haoyunde.com +haozanding.com +hapancy.ru +happelyhealthy.com +happenhotel.com +happiness-and-success.ru +happinesseveryday.ru +happinessplus.us +happinessz.club +happiray.com +happiseektest.com +happityhill.com +happy-ate.com +happy-garden-waterford.com +happy-house-tramore.com +happy-kz.club +happy-new-year.top +happy-relat.ru +happy-times-sallynoggin.com +happy-training.ru +happy4child.info +happyallsizes.com +happyalmostfriday.com +happybaby-store.ru +happybirthdayrishanth.live +happybirthdaywishes1.info +happycar24.space +happycash.app +happycashbox.com +happycat.space +happychance13.icu +happychance15.icu +happychangelog.com +happycore.shop +happydatingyou.site +happydoggies.xyz +happydomik.ru +happyedhardy.com +happyelephant.shop +happyellygoes.com +happyfamilysavings.site +happyfamilysavings.space +happyfreshdrink.com +happygolovely.xyz +happygoluckyclub.com +happyhealthtoday.com +happyhealthypeacefullife.com +happyhealthyvegan.life +happyhealthyveggie.com +happykorea.club +happykoreas.xyz +happymail.guru +happymoments.com.pl +happymovies.ru +happynsimple.com +happypath.land +happyplanettours.com +happyselling.com +happysilktravel.com +happysinner.co.uk +happytools72.ru +happyum.com +happywifree.com +happyyou.pw +hapremx.com +hapsomail.info +haqed.com +haqoci.com +harakirimail.com +haramod.com +harassduejockey.website +harbibet11.com +harbibet13.com +harborgoos.xyz +harbourtradecredit.com +hard-life.online +hard-life.org +hard-mark.ru +hardanswer.ru +hardassetalliance.com +hardbrewcoffee.club +hardclossio.ga +hardclossio.gq +hardclossio.tk +harddep.website +hardenend.com +hardergames.eu +hardily.site +hardingpost.com +hardleanbodies.com +hardmail.info +hardmughven.ga +hardmughven.gq +hardmughven.ml +hardmughven.tk +hardnews.us +hardpersonalblog.club +hardstylex.com +hardvard.edu +hardvecgeme.tk +hardwaretech.info +hardwarewalletira.com +hardwarewalletrothira.com +hardwoodflooringinla.com +hardyhouse.online +hareshop.site +harfordpi.com +hargadiskon.xyz +hargaku.org +hargaspek.com +harib0z31.xyz +haribu.com +haribu.net +harite.space +harkerheightsapartments.com +harkincap.com +harleymoj.pl +harleyspencer.com +harlingenapartments.com +harlowe-galway.com +harlowgirls.org +harlowhemp.com +harmampirs.com +harmani.info +harmonicanavigation.com +harmoniclizard.com +harmonikka.space +harmonized511uj.online +harmonyfiberart.com +harmonyradio.org +harmonyst.xyz +harmonystarkennelfrenchbulldogs.com +harmonystime.net +harmsreach.com +harmsreach.org +harmwepa.ga +harmwepa.gq +harmwepa.ml +harmwepa.tk +harnessmedia.dev +harnosubs.cf +harnosubs.ga +harnosubs.gq +harnosubs.ml +harnosubs.tk +haroldrappiii.com +harpbenefitsurvey.com +harpeligibilityquiz.com +harperforarizona.com +harperwoodworking.com +harpix.info +harrietrobertson.buzz +harrinbox.info +harrisburgbankrupctylawyers.com +harriscountycriminallawfirm.com +harrisonartanddesign.com +harrisonburgbaptist.com +harrisonms.com +harrisonms.org +harrowllc.com +harryhome.net +harrykneifel.com +harrymorrison.buzz +harrys-casino.com +harsh.best +harshmanchiroclinic.com +harshmeet.com +harshrajput.website +harshrastogi.com +harshreadinglevel.site +harsoftpunis.gq +hart-macher.com +hartandhuntingtonnashville.com +hartapkr.online +hartapoker88.site +hartbot.de +hartfordlibrary.info +hartini.ga +hartini.gq +hartini.ml +hartini.tk +hartlengles.ga +hartlengles.ml +hartlengles.tk +hartmann-powermix.ru +hartogbaer.com +hartstonge-bar-restaurant.com +hartyfarm.com +harukana.press +harukanaru.ru +harvard-ac-uk.tk +harvard.ac.uk +harvesinvestmentgroup.com +harvestacademydz.com +harvestcentre.org +harvesteco.com +harvestingharlow.com +harvestmendoza.icu +harvesttmaster.com +harveynaylor.buzz +harysetiabudi.site +has.ninja +hasanatilan.xyz +hasanmail.ml +hasansahin.info +hasanz.kiwi +hasegawa.cf +hasegawa.gq +hasehow.com +haselperus.info +haseo.ru +hasgama.cf +hasgama.ga +hasgama.gq +hasgama.ml +hasgama.tk +hash.moe +hash.pp.ua +hashback.com +hashban.org +hashes.hk +hashfeedback.com +hashg.com +hashicorp.asia +hashicorp.best +hashicorp.blog +hashicorp.buzz +hashicorp.careers +hashicorp.chat +hashicorp.club +hashicorp.consulting +hashicorp.contractors +hashicorp.dev +hashicorp.domains +hashicorp.education +hashicorp.engineer +hashicorp.exposed +hashicorp.fans +hashicorp.finance +hashicorp.financial +hashicorp.foundation +hashicorp.global +hashicorp.info +hashicorp.legal +hashicorp.life +hashicorp.link +hashicorp.ltd +hashicorp.media +hashicorp.page +hashicorp.plus +hashicorp.pub +hashicorp.report +hashicorp.reviews +hashicorp.rip +hashicorp.sale +hashicorp.shop +hashicorp.sk +hashicorp.social +hashicorp.solutions +hashicorp.store +hashicorp.tech +hashicorp.technology +hashicorp.today +hashicorp.training +hashicorp.us +hashicorp.website +hashicorp.world +hashicorp.xyz +hashratehunters.com +hashratetest.com +hashtag-travel.net +hashtagblock.com +hashtagbyte.com +hashtagcandy.com +hashtagdiamond.com +hashtagmarijuana.com +hashtagpain.com +hashtagtesla.com +hashtagtours.com +hashtagvacationrentals.com +hashtagweed.com +hashtrain.com +hashwiki.com +hasilon.com +hassle-me.com +hasslemail.top +hasslex.com +hassyaku.tk +hastarlat.site +hastingsrealestateagents.com +hastisub.xyz +hastisub2.xyz +hastnyi-dom.ru +hat-geld.de +hat-muzika.ru +hatayantakyamobilya.xyz +hatayboru.xyz +hataygencradyo.xyz +hataygercegi.com +hataylifedergi.com +hataystratton.xyz +hataysusofrasi.com +hatberkshire.com +hatchinglab.com +hatchroads.info +hatchspaceship.com +hate.cf +hate.cloud +hatechoice.com +hatemature.xyz +hatespam.org +hatitton.com.pl +hatiyangpatah.online +hatmail.com +hatmail.ir +hatonly.shop +hats-wholesaler.com +hats4sale.net +hatueyramosfermin.com +haugenvet.com +hauharcugi.tk +haultale.info +haultale.org +haultale.us +hauntedurl.com +hauptmanfamilyhealthcenter.com +hausbauen.me +hausdekoration.me +hausdesign.me +hausnerenterprises.com +hausnummer.me +hauswirtschaft.wiki +haute.red +hauteaholic.com +hauvuong.com.vn +hauvuong.net +havadari.online +havadari.world +havadari.xyz +havaliyedekparca.com +havdhave.shop +haveacreditcardmall.com +haveanotion.com +havehavd.shop +havelock4.pl +havelock5.pl +havelock6.pl +haventop.tk +haveplant.site +haverp.online +haverti.cf +haverti.ga +haverti.gq +haverti.ml +haverti.tk +havevi.info +havilahdefilippis.com +havitaring.xyz +havocranasia.site +havuc.tk +havwatch.com +haw88.com +hawahome.info +hawaiihomesurfer.com +hawaiivacationdirectory.com +hawdam.com +hawdammusic.com +hawkblack.xyz +hawkcreek.info +hawkhomeservices.com +hawkosmosishour.website +hawkwoodpreschool.com +hawrong.com +hawrteq.online +hax0r.id +haxo.club +hayait.com +hayalhost.com +hayamisanhamegamienai.xyz +hayastana.com +hayatadairhyk.xyz +hayatdesign.com +hayattankopma.org +haycoudo.cf +haycoudo.ga +haycoudo.gq +haycoudo.ml +haycoudo.tk +haydegidelim.com +haydenjennings.buzz +haydidi.com +haydoo.com +hayirlieller.ong +haymala.best +haymond.legal +haymondgirls.net +haymondlaw.info +haymondlaw.net +haymondlaw.org +haymondrides.info +haymondrides.net +hays.ml +haysantiago.com +haystack.exchange +hayuk.pw +hayycj.icu +hazal.site +hazar.website +hazarat.design +hazarat90.com +hazayuno.com +hazellhouse.co +hazelmczwu.space +hazelmoonschool.com +hazelnut4u.com +hazelnuts4u.com +hazelwoodgrove.net +hazirmesaj.info +hazirsite.site +hazmatdictionary.com +hazmatshipping.org +hazziz.ze.cx +hb-120.com +hb-1tvm.com +hb-3tvm.com +hb-765.com +hb-chiromed.com +hb5.ru +hb6008.com +hba4nr0lh16mg4y.xyz +hbabb.live +hbapp01.com +hbastien.com +hbauers.best +hbbbtttt.club +hbbig.us +hbccreditcard.net +hbdya.info +hbent.site +hbfrank.win +hbgrkzqx.shop +hbhgdq.com +hbikpo.rest +hbjfhc.com +hbkm.de +hble6r6s.xyz +hbo.dns-cloud.net +hbo.dnsabr.com +hbontqv90dsmvko9ss.cf +hbontqv90dsmvko9ss.ga +hbontqv90dsmvko9ss.gq +hbontqv90dsmvko9ss.ml +hbontqv90dsmvko9ss.tk +hboqce.info +hbpqw.info +hbqjw.info +hbrjn.space +hbrlz.com +hbs-group.ru +hbsc.de +hbskrc.site +hbsl10.com +hbt02y.host +hbtfty.com +hburl.xyz +hbwgw.info +hbwr166.com +hbxrlg4sae.cf +hbxrlg4sae.ga +hbxrlg4sae.gq +hbxrlg4sae.ml +hbxrlg4sae.tk +hc02.net +hc1118.com +hc26.net +hc2gw.com +hc308.space +hc44.net +hc49.net +hc59.net +hc70.net +hc72.net +hc73.net +hc74.net +hc76.net +hc94.net +hc96.net +hcac.net +hcathcar.shop +hccg.net +hccmail.win +hccmmis.com +hccnis.com +hceap.info +hcf.wtf +hciiyl.com +hckefu.online +hckefu.site +hckefu.xyz +hclrizav2a.cf +hclrizav2a.ga +hclrizav2a.gq +hclrizav2a.ml +hclrizav2a.tk +hcmvbg.site +hcnxmvdo.shop +hcoupledp.com +hcuglasgow.com +hcvoid.us +hcxnw.info +hcyb.email +hcysw.info +hcyxrnhrl.shop +hczx.email +hczx8888.com +hd-boot.info +hd-camera-rentals.com +hd-mail.com +hd-stream.net +hd3vmbtcputteig.cf +hd3vmbtcputteig.ga +hd3vmbtcputteig.gq +hd3vmbtcputteig.ml +hd3vmbtcputteig.tk +hd731.com +hd88156.com +hd9837.com +hdapps.com +hdbaset.pl +hdc9.us +hdcanlimacizle.org +hdcp345.com +hdcp456.com +hdctjaso.pl +hdczu7uhu0gbx.cf +hdczu7uhu0gbx.ga +hdczu7uhu0gbx.gq +hdczu7uhu0gbx.ml +hdczu7uhu0gbx.tk +hddiziizle.mobi +hddoip.us +hddotcom.com +hddvdguide.info +hdexch.com +hdf6ibwmredx.cf +hdf6ibwmredx.ga +hdf6ibwmredx.gq +hdf6ibwmredx.ml +hdf6ibwmredx.tk +hdfgh45gfjdgf.tk +hdfshsh.stream +hdgana.website +hdhkmbu.ga +hdhkmbu.ml +hdiganaz.cf +hdiganaz.ga +hdiganaz.gq +hdiganaz.ml +hdiganaz.tk +hditalia.space +hdkinofan.ru +hdkinosh.online +hdko1.online +hdlipocenters.com +hdlords.online +hdmail.com +hdmovie.info +hdmovieshouse.biz +hdmoviestore.us +hdo.net +hdonroerendgoed.com +hdorg.ru +hdorg1.ru +hdparts.de +hdplayer.shop +hdprice.co +hdqlxtlmm.shop +hdqputlockers.com +hdrecording-al.info +hdrezka.press +hdrlf.us +hdsdentistportal.org +hdserialonline.ru +hdserialy.ru +hdseriionline.ru +hdsfysd.ml +hdsfysd.tk +hdspot.de +hdsq13.com +hdstream247.com +hdszw.info +hdtube.site +hdtvsounds.com +hdvideo-kontent.ru +hdvideo-smotry.ru +hdvidio.art +hdvxxx.space +hdylzcym.com +he-creditcardnofeeca-ok.live +he-tu-new-car-ok.live +he-tu-new-cars-ok.live +he1079.com +he2duk.net +he3mdb.us +he445.com +he8801.com +he8he.com +heaa.info +headachetreatment.net +headlineglobally.xyz +headpack.org.ua +headphones4you.info +headphonesifans1.ru +headphonestest.com +headset5pl.com +headsetwholesalestores.info +headstrong.de +heajsdh298.xyz +healbutty.info +healcross.com +healingthemhealingus.org +healratur.cf +healratur.ga +healratur.gq +healratur.ml +healsmybdy.online +healsy.life +healt-diet.ru +health-1-beauty.ru +health-2-beauty.ru +health-blog1.xyz +health-blog2.xyz +health-club.pro +health-forums.com +health-insurance-for-minnesota.com +health-insurance-for-texas.com +health-leina24.site +health-niche-blogs.com +health-nutrition.xyz +health-puzzle.com +health.edu +health112.ru +healthaccessories.exposed +healthandbeautyimage.com +healthandfitnessnewsletter.info +healthandrehabsolution.com +healthandrehabsolutions.com +healtharise.com +healthbeam.site +healthbeautynatural.site +healthbiotrim.com +healthblog.com +healthbreezy.com +healthcarealliancegroups.com +healthcarecomm.com +healthcarepractitionersnearme.com +healthcareprovidersnearme.com +healthcareprovidersnearme.org +healthcareseoagency.com +healthcheckmate.co.nz +healthchoicemaryland.info +healthcoachali.press +healthcoachpractitioner.com +healthcorp.edu +healthcureview.com +healthdata.ru +healthdelivery.info +healthfalkten.cf +healthfalkten.gq +healthfalkten.ml +healthfalkten.tk +healthfitnesschannel.club +healthfitnews.club +healthforhelp.org +healthgransal.cf +healthgransal.gq +healthgransal.ml +healthgransal.tk +healthhappinessandhulahoops.com +healthinsuranceforindividual.co.uk +healthinsurancespecialtis.org +healthinsurancestats.com +healthlifes.ru +healthlium.com +healthlivingcoach.com +healthlycbd.com +healthmeals.com +healthmensstyle.info +healthmeup.club +healthmuseum.org +healthnews.biz +healthnewsapps.com +healthnewsfortoday.com +healthnutexpress.com +healthoutlet.ru +healthpositive.site +healthpoweredkids.net +healthpull.com +healthrahis.ga +healthrahis.gq +healthranli.cf +healthranli.ga +healthranli.gq +healthranli.ml +healthranli.tk +healthroutecard.com +healthscatter.net +healthsciencetrust.com +healthshop.futbol +healthsoulger.com +healthtutorials.info +healthy-happy-life8.xyz +healthy-line.online +healthyalkalinewater.us +healthybirthwork.com +healthybirthworker.com +healthybody.store +healthycatclub.com +healthychoicescounselingservices.net +healthydiets.ru +healthyfoodandlife.club +healthyheartforall.com +healthyheartforall.org +healthyhikers.net +healthyhydrofarm.net +healthyhydrofarms.net +healthyliving.tk +healthymanreviews.website +healthynutritionoptions.com +healthypetscbd.com +healthypetscbd.net +healthyphalkalinewater.us +healthysnackfood.info +healthysocialnews.com +healthyteethandgums.net +healthywelk.com +healthyyouinc.com +healvalg.host +healyourself.xyz +heangdilly.icu +heari.net +hearing-balance.com +hearingaiddoctor.net +hearpower.us +hears.site +heart1.ga +heartandhopefund.com +heartburnnomorereview.info +heartfair.xyz +heartgrantsimple.com +hearthandhomechimneys.co.uk +hearthealthy.co.uk +heartland-arnone.xyz +heartland-trauma-institute.org +heartlandrv4life.com +heartmcanof.ga +heartmcanof.gq +heartmcanof.ml +heartmcanof.tk +heartno.xyz +heartnob.xyz +heartofrecycling.net +heartofrecycling.org +heartowhatisay.club +heartpou.press +heartrate.com +heartratemonitorstoday.com +heartstargreetings.com +heartter.tk +hearttoheart.edu +heartuae.com +hearyousay.club +heat-scape.co.uk +heatabzxup.space +heathcotebarr.eu +heathealthv.xyz +heathenhammer.com +heathenhero.com +heathenhq.com +heatherabe.org +heatherandrandy.com +heatherviccaro.net +heatingandplumbingnearme.com +heatingcoldinc.info +heatroosterinfo.website +heatssova.cf +heatssova.ga +heavenarticles.com +heavenpizzatakeaway.com +heavycloth.com +heavymetalparkinglot.net +heavyst.xyz +heb-it.com +hebagfu.cf +hebagfu.ga +hebagfu.gq +hebagfu.tk +hebatmart.xyz +hebedbugremovalok.live +hebeos.online +hebgsw.com +hebohdomino88.com +hebohpkv.design +hebohpkv2.com +hebohpkv88.com +hebohpkv88.net +hebpfyy.com +hebron.academy +hecat.es +hecktiga.xyz +hecou.com +hectoliter216ug.online +hedcet.com +hedefajans.site +hedera-corsages.online +hedgefundnews.info +hedgehog.us +hediyemial.com +hedsatemi.tk +heduian.space +hedy.gq +heebqn.info +heeco.me +heeeet.site +heeneman.group +heerlijkbezorgen.com +heerman.best +heett.best +heffernanonline.com +hefrent.tk +heftrack.com +hegeblacker.com +hegfqn.us +heheai.info +hehesou.com +hehmail.pl +heidengardens.com +heiditates.info +heidithorsen.com +heightsafetyproducts.com +heightsheaters.top +heihamail.com +heikouzi.com +heinribenj.space +heinrich-group.com +heirret.shop +heisei.be +heisserreifen.com +heistnukes.com +hejumarket.site +hekimsaglik.xyz +hekisha.com +hekvxdcww.info +helados.online +helakp.pw +helamakbeszesc.com +helbest.site +helbsa.us +hele12300.online +hele8game.org +helenastripsearch.com +helenmackreath.com +helenmariefoundation.com +heli-ski.su +helichinanz.net +helicolsafety.com +helicopter-game.biz +helicopter-tours.us +heliner.fun +helinlashes.space +heliozivor.space +heliqq.online +heliumend.com +hell.plus +hell3.ru +hellenic-minerals.com +hellenicfeta.com +hellenion.com +hellheater.ru +hellinger.ru +hellmode.com +hello-volgograd.ru +hello.nl +hello123.com +helloairfares.com +hellobali.online +hellobuurman.com +hellobuurvrouw.com +hellocab.biz +hellocab.city +hellocab.club +hellocab.online +hellocab.rentals +hellocab.shop +hellocab.site +hellocab.store +hellocab.taxi +hellocab.tips +hellocab.today +hellocab.us +hellocab.world +hellocab.xyz +hellocheese.online +hellococonono.site +hellococonono.website +hellococonono.xyz +hellodream.mobi +helloedo.com +hellohitech.com +hellohuman.dev +hellokittyjewelrystore.com +hellolinked.net +hellolive.xyz +hellomail.fun +hellomakana.com +hellomore.com +hellopizza-sligo.com +helloricky.com +helloteststore.com +hellow-man.pw +hellowhoopsie.com +hellowman.pw +hellowperson.pw +helloyii.com +helloyyh.com +hells-heater.ru +hellsheater.ru +hellsmoney.com +helm.ml +helmade.xyz +heloca.cf +heloca.ml +heloca.tk +help-desk-manager.com +help-find-number.com +help-medical.fun +help-medical.host +help-medical.icu +help-medical.info +help-medical.press +help-medical.pro +help-medical.site +help-medical.space +help-medical.website +help24assist.site +help33.cu.cc +help4entrepreneurs.co.uk +help4hedgehogs.org +helpcryptocurrency.com +helpcustomerdepartment.ga +helpemails.com +helpforblood.com +helpfored.club +helpformyreactivedog.com +helpforstudents.ru +helpfulriddles.com +helphosting.online +helpi.club +helpinghandtaxcenter.org +helpjobs.ru +helpline174.ru +helpmail.cf +helpman.ga +helpman.ml +helpman.tk +helpmebuysomething.com +helpmedigit.com +helpmegrowmysales.com +helpotdeitit-confirmed.com +helpotdeitit-meet-backup.com +helpotdeitit-meet.com +helpwesearch.com +helrey.cf +helrey.ga +helrey.gq +helrey.ml +helthcare.store +helthyandfitnesslife.com +helvert.ru +helvetika.org +hemanthkumar.biz +hematological290ta.online +hemenal5.space +hemenbahis101.com +hemenbahis102.com +hemenbahis104.com +hemenbahis105.com +hemenbahis107.com +hemenbahis109.com +hemenbahis111.com +hemenbahis112.com +hemenbahis113.com +hemenbahis115.com +hemenbahis64.com +hemenbahis65.com +hemenbahis67.com +hemenbahis68.com +hemenbahis71.com +hemenbahis72.com +hemenbahis79.com +hemenbahis88.com +hemenbahis92.com +hemenbahis96.com +hemenbahis97.com +hemenfinansman.online +hemetapartments.com +hemetshopping.com +hemic493iq.online +hemin539kw.online +hemisphereozuwari.club +hemohim-atomy.ru +hemonjs.site +hemoroidy-leczenie-domowe.xyz +hemorrhoidmiraclereviews.info +hemostatic249tx.online +hemotoploloboy.com +hemp.organic +hempcrete.us +hempdeho.cf +hempdeho.gq +hempdeho.ml +hempdeho.tk +hempendant.com +hempendants.com +hempexy.com +hempgroups.com +hempjewelery.com +hempjh.com +hempnoticblends.com +hemppendant.com +hemprootextract.com +hemproots.org +hempseed.pl +hempshop.life +hempshop.organic +hemptodayshop.com +hempwell.green +hempworkz.org +hempworld.net +henamail.com +henandstagworld.com +henarik.ml +hendersonnailsalons.com +hendersonvilleantiquecarclub.org +hendigrepair.com +hendlexseramiksatisi.site +hendoc.pro +hendrickhvac.com +hendrickplumbing.com +hendrikarifqiariza.cf +hendrikarifqiariza.ga +hendrikarifqiariza.gq +hendrikarifqiariza.ml +hendrikarifqiariza.tk +hendrixapp.com +hendrixheatandair.com +hengcaiii.com +hengshinv.com +hengy2zc.com +hengyutrade2000.com +henhed.ru +henho24h.info +henhousetakeaway.com +henistore.pw +hennetdphar.cf +hennetdphar.ga +hennetdphar.tk +henrikoffice.us +henry-mail.ml +henrydady1122.cc +henrylin.xyz +henrymfpfx.website +henryripplingergallery.com +hensao59.icu +hensleyshop.space +hentaref.cf +hentaref.gq +hentaref.ml +hentaref.tk +hentodr.shop +heovang68.net +hepcatstudio.com +hepria.pro +hepsicasinogiris.net +hepsimaras.com +hepta.games +her-102.com +heraldnznew.site +heramicher.com +heramof.icu +herb-e.net +herb2med.com +herbadvisor.org +herbalanda.com +herbalcorner.org +herbalifemedico.com +herbalsoftware.com +herbalsolutions.llc +herbalsumbersehat.com +herbamart.xyz +herbaworks2u.com +herbert1818.site +herbertgrnemeyer.in +herbkab.icu +herbsvigour.com +hercn.com +herculestoto.com +herdtrack.com +herdtrak.com +hereabkhel.ru +herediumabogados.net +herediumabogados.org +hereishistory.com +heremart.com +heresh.info +herestoreonsale.org +herforklo.site +hergrteyye8877.cf +hergrteyye8877.ga +hergrteyye8877.gq +hergrteyye8877.ml +hergrteyye8877.tk +herh2-privntur.fun +herh2-privntur.site +herh2-privntur.xyz +herien.design +heritagedentalgroupusa.com +herkesicinad.tk +herlesi.cf +herlesi.ga +herlesi.gq +herlesi.tk +herlitthis.press +hermes-uk.info +hermesbirkin-outlet.info +hermesbirkin0.com +hermesdesigner.store +hermeshandbags-hq.com +hermesjs.dev +hermesonlinejp.com +hermessalebagjp.com +hermestashenshop.org +hermesvm.dev +hermeswebsite.com +hermitcraft.cf +hernanipro.com +hernote.com +herocalce.com +herochecklist.com +herocopters.com +heroeshappen.org +heroesintl.com +heroeskaring.org +heroesmag.online +heroesofblood.com +heroicepics.com +heroindetoxcenterguide.com +heroine-cruhser.cf +heroinrehabcenterprograms.com +heros3.com +herosamericancafe.com +heroshirts.net +herostartup.com +herozt.com +herp.in +herpderp.nl +herpes9.com +herplan.com +herrek.online +herrin.cam +herriring.cf +herriring.ga +herriring.ml +herrtian.site +herschl.com +herseyburadaa.online +herseynettevar.com +hersfund.org +hertader.site +hertheshisdires.info +hertogscholars.org +hertzsybilliver.site +herunterladen-1.xyz +herwaylifestyle.com +heryerokulum.xyz +heryogasecretsexposed.com +hesaplikontor.online +hesaplikontor.xyz +hesaplitasi.com +heshengcai.xyz +hessrohmercpa.com +hestermail.men +hestra.build +het-familiehuis.site +hetbudgets.info +hetedater.com +hetekontakter.com +heterokyuq.space +heterozuvi.space +heterto.ru +hetgames.shop +hethox.com +hetkanmijnietschelen.space +heure.shop +heuschrecken.kaufen +hevury.xyz +hewke.xyz +hewthewa.shop +hewuko.site +hewushops.site +hex2.com +hexa.click +hexa.photo +hexagonmail.com +hexapi.ga +hexasploit.xyz +hexatown.ru +hexc.net +hexeby.info +hexiecom.com +heximail.com +hexkf.live +hexqr84x7ppietd.cf +hexqr84x7ppietd.ga +hexqr84x7ppietd.gq +hexqr84x7ppietd.ml +hexqr84x7ppietd.tk +heyday.events +heyitsvanessa.com +heyjuegos.com +heyveg.com +heywebuyhousesfast.com +heywhatsnews.com +hezarpay.com +hezemail.ga +hezll.com +hezupe.info +hf-chh.com +hf-playing.ru +hf2sko.us +hf355.com +hf83tx-mail.xyz +hfbean.xyz +hfcee.com +hfctd1.site +hfd-house.site +hfdh7y458ohgsdf.tk +hfdhtmrds.site +hfdwf.xyz +hfengshui.com +hffff.xyz +hffgyn.us +hffinrsmud.fun +hfgbb.club +hfggw.info +hfgponshops.com +hfhy.site +hfhy.xyz +hfhyg.xyz +hflk.us +hfls.buzz +hfmf.cf +hfmf.ga +hfmf.gq +hfmf.ml +hfmf.tk +hfnibp.club +hfpd.net +hfq09.space +hfrump.monster +hfsym.com +hg0cp.monster +hg14.app +hg15.app +hg16.app +hg17.app +hg188198.com +hg19.app +hg20.app +hg2007.com +hg21.app +hg23.app +hg25.app +hg29.app +hg32.app +hg34.app +hg37.app +hg39.app +hg40.app +hg520666.com +hg7akt.us +hg8n415.com +hg98667.com +hgame.org +hgcash2.com +hgcash678.com +hgdideyd.shop +hgdvwzdno.shop +hgdwy.xyz +hgebestweb.com +hgfh.de +hgggypz.pl +hggpxzvxg.ml +hgh.net +hghenergizersale.com +hghnaturals.com +hgomw4.site +hgpoker9.com +hgqcol.com +hgrmnh.cf +hgrmnh.ga +hgrmnh.gq +hgrmnh.ml +hgrouse.icu +hgsygsgdtre57kl.tk +hgtabeq4i.pl +hgtt674s.pl +hguopd.info +hgwdjx.com +hgxin44.com +hgxw9k.us +hgxxsycdj.shop +hh-ee.com +hh5608.com +hh8058.com +hh8061.com +hh8690.com +hhasdgyyyiii.xyz +hhbj.host +hhbj.website +hhbwikdcq.shop +hhcqldn00euyfpqugpn.cf +hhcqldn00euyfpqugpn.ga +hhcqldn00euyfpqugpn.gq +hhcqldn00euyfpqugpn.ml +hhcqldn00euyfpqugpn.tk +hhd1212.com +hhdyw.info +hhdzy3.us +hhgg33.com +hhh.sytes.net +hhhh9927.com +hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh.info +hhhhyl.com +hhioscar.com +hhitbridgee.site +hhitlytick.site +hhjdw.info +hhjqahmf3.pl +hhjqnces.com.pl +hhkai.com +hhkmp.us +hhmmds2t.net +hhn2n.us +hhnet.net +hhomesite.com +hhopy.com +hhpiffho.shop +hhtattooorlando.com +hhthyw.com +hhttyg.cf +hhu911.com +hhudra2web.com +hhutdden.shop +hhxo.com +hhylgjgw.com +hhyrnvpbmbw.atm.pl +hi07zggwdwdhnzugz.cf +hi07zggwdwdhnzugz.ga +hi07zggwdwdhnzugz.gq +hi07zggwdwdhnzugz.ml +hi07zggwdwdhnzugz.tk +hi1dcthgby5.cf +hi1dcthgby5.ga +hi1dcthgby5.gq +hi1dcthgby5.ml +hi1dcthgby5.tk +hi2.in +hi3rt6.us +hi427.site +hi5.si +hi645.com +hi6547mue.com +hiae.email +hialeah-towing-miami.info +hiapig.ru +hiatrante.ml +hibareview.com +hibernates.best +hibiskureczanemiz.site +hibiskurileinceldim.site +hibiskurlahuzurdolu.site +hibiskurlakurtulun.site +hibiskurlarahatla.site +hibiskurlason.site +hibiskurorijinal.site +hibiskursiparisver.site +hibiskurttu.site +hibiskurttulabs.site +hibiskurvesaglik.site +hibiskurwhitehq.site +hibiskuseczanemiz.site +hibiskushaberleri.site +hibiskusilever.site +hibiskuskurutarifimiz.site +hibiskuslaben.site +hibiskusladaral.site +hibiskuslakurtulun.site +hibiskuslasevgidolu.site +hibiskuslayasa.site +hibisledoyum.site +hibisleulas.site +hibisleyasa.site +hiboowe.xyz +hibya.xyz +hiccupconvince.net +hicgxwwum.shop +hichinavpn.com +hichristianlouboutinukdiscount.co.uk +hichristianlouboutinuksale.co.uk +hickeyteam.net +hicloud.life +hicmd.net +hicnsoft.com +hicostand.site +hicuspee.ga +hicuspee.gq +hidayahcentre.com +hidden-code.org +hiddencorner.xyz +hiddencovepark.com +hiddentombstone.info +hiddentragedy.com +hide-mail.net +hidebox.org +hidebro.com +hidebusiness.xyz +hideemail.net +hidemail.de +hidemail.pro +hidemail.us +hideme.be +hidemyass.com +hideweb.xyz +hidheadlightconversion.com +hidjuhxanx9ga6afdia.cf +hidjuhxanx9ga6afdia.ga +hidjuhxanx9ga6afdia.gq +hidjuhxanx9ga6afdia.ml +hidjuhxanx9ga6afdia.tk +hidkey.ru +hidra2web.site +hidraaa.cf +hidraaa22.cf +hidraaa22.ml +hidraaa22.tk +hidt87egs.buzz +hidzz.com +hieai.com +hielilis.cf +hielilis.ga +hielilis.gq +hielilis.ml +hielilis.tk +hieu.in +hieunhu.com +hifa-oil.com +hifaoil.com +higcentral.cf +higcentral.ga +higcentral.gq +higcentral.ml +higcentral.tk +high-tech.su +high.tips +highbeam.io +highbros.org +highcafe-athlone.com +highdefseo.com +highdesertturf.net +higheducation.ru +higherac.com +higherwxum.space +highestinfluence.com +highfidelityplaylists.com +highfive.red +highganic.com +highground.store +highgroundjiujitsu.com +highheelcl.com +highiqsearch.info +highlanddoctors.com +highlandge.buzz +highlandparkrealestateagents.com +highlevel.store +highlevelcoder.cf +highlevelcoder.ga +highlevelcoder.gq +highlevelcoder.ml +highlevelcoder.tk +highlevelgamer.cf +highlevelgamer.ga +highlevelgamer.gq +highlevelgamer.ml +highlevelgamer.tk +highlightertr.tk +highme.store +highonline.store +highperformancechevy.com +highperformanceevent.com +highpoint-holistic-cleansing.com +highpointspineandjoint.com +highprice.store +highregardmerchantprocessing.com +highroller.ninja +highsite.store +highsouvro.tk +highspace.store +highstatusleader.com +highsulln.us +hightechmailer.com +hightechnology.info +highteher.tk +highticketaudit.com +hightri.net +highvideo.ru +highwayeqe.com +highweb.store +highwranim.cf +highwranim.ga +highwranim.gq +highwranim.tk +higiena-pracy.pl +higogoya.com +higuuyys11316.ga +higuuyys13759.ml +higuuyys92071.cf +higuuyys92071.ga +higy.site +hihalfpricedlistings.com +hihalfpricelisting.com +hihalfpricelistings.com +hiholerd.ru +hii5pdqcebe.cf +hii5pdqcebe.ga +hii5pdqcebe.gq +hii5pdqcebe.ml +hii5pdqcebe.tk +hiirimatot.com +hijayt.shop +hijijy.info +hijrahusahawan.com +hijyenambalaj.xyz +hijyendelisi.xyz +hikali90.bid +hikeeastcoasttrail.com +hikeforcam.com +hikelists.info +hikingshoejp.com +hikingwithdogs.xyz +hikitas-rnim.ru +hilandtoyota.net +hilarymacmillan.ru +hilbetgirisyap.com +hilbetmobil.com +hilbetonline.com +hilbettr.com +hildredcomputers.com +hilfe-24.info +hili.site +hill63.org +hillary-email.com +hillatimels.tk +hillcountryone.com +hillmail.men +hillopy.ru +hillpturser.cf +hillpturser.ga +hillpturser.gq +hillpturser.tk +hillsidekennels.net +hillsong.events +hilltop-pizzeria.com +hilltoptreefarms.com +hilocals.net +hiltonbet38.com +hiltonbet40.com +hiltonbet45.com +hiltonbet71.com +hiltonbet73.com +hiltonbet75.com +hiltonbet76.com +hiltonbet87.com +hiltonbet92.com +hiltonbet93.com +hiltonbettv20.com +hiltonbettv21.com +hiltonbettv22.com +hiltonbettv23.com +hiltonbettv27.com +hiltonbettv30.com +hiltonvr.com +hilvarenbeek.info +hilwellchev.cf +hilwellchev.ga +hilwellchev.gq +hilwellchev.ml +himachal.org +himail.online +himaksiunmul.site +himalaya1.com +himdhima.shop +himkinet.ru +himomsports.com +himovies.club +himovies.fun +himovies.host +himovies.online +himovies.website +himpxn.us +himte.xyz +himtee.com +hincisy.cf +hincisy.ga +hincisy.gq +hincisy.ml +hincisy.tk +hindam.net +hindbuzz.info +hindimeinhelp.com +hindimusic.info +hindiroman.com +hindugoddessempowerment.com +hinfalitt.ru +hinhanhdep.pro +hinhnen.asia +hinkrigi.cf +hinktacell.gq +hinktacell.tk +hinmatof.xyz +hinokio-movie.com +hinolist.com +hinsonchannel.com +hintergrund.me +hioscat.com +hiotwb.us +hipay.dev +hiperbet.info +hiperbet.net +hiperbet.org +hiperbetbahis.net +hiperbetbonus.com +hiperbetgiris.bet +hipermail.co.pl +hipermetropameliyati.com +hipflexs.com +hiphop-fotografiach.com +hiphopintheville.com +hiphopmoviez.com +hipmi.net +hipmisfitgui.website +hippobox.info +hippolyt.help +hipponut.net +hippymulch.com +hiprootjwr.space +hips-trainer.ru +hiq90.space +hiqbiz.com +hiqkr7.info +hiqny3.us +hiraethgroup.com +hire4less.net +hireashley.com +hirebi.cf +hirebi.ml +hirebi.tk +hireelectricbike.com +hirehalls.com +hirekuq.tk +hiremystyle.com +hirikajagani.com +hiringup.net +hirodesu.club +hirschsaeure.info +hiru-dea.com +hirunger.space +hisalotk.cf +hisalotk.ga +hisalotk.gq +hisalotk.ml +hisarlondon.xyz +hischist.shop +hisense.org +hishark.best +hishatak.com +hishescape.space +hishyau.cf +hishyau.ga +hishyau.gq +hishyau.ml +hismetons.xyz +hispanodentalcare.net +hisrelentlesslove.com +hisserjfjg.space +hissfuse.com +histhisc.shop +historicallybent.com +historiceffinghamsociety.com +historicoldhomes.com +historicstalphonsus.org +historictheology.com +historidie.ru +historyalone.com +historyofsoca.com +historyship.ru +hit-best-buy.ru +hit-magazine-buy.ru +hit4sale.icu +hitabid.com +hitachirail.cf +hitachirail.ga +hitachirail.gq +hitachirail.ml +hitachirail.tk +hitachirailsts.cf +hitale.ru +hitandpun.com +hitbase.net +hitbet58.com +hitbet59.com +hitbts.com +hitchhikingthe7seas.com +hitechbank.org +hitechinfo.com +hitechmechanical.com +hitechnew.ru +hitetogogoda.ru +hitl.net +hitler-adolf.cf +hitler-adolf.ga +hitler-adolf.gq +hitler-adolf.ml +hitler-adolf.tk +hitler.rocks +hitlerbehna.com +hitlive.ru +hitokoto.org +hitons.ru +hitprice.co +hitradiopatrick.online +hitseller.host +hitsfit.com +hitsmag.ru +hitsproduct.top +hitthatne.org.ua +hitysi.info +hiusas.co.cc +hiva.best +hiva.website +hiva.world +hive306.com +hivebyte.cloud +hivemetrics.com +hivemusic.org +hiveos.org +hiwager.games +hiwager.plus +hiwave.org +hiweb.org +hiwot.market +hiwxfn.com +hix.kr +hixtory.com +hiyaa.site +hiyofr.us +hiyrey.cf +hiyrey.ga +hiyrey.gq +hiyrey.ml +hiytdlokz.pl +hiz.kr +hiz76er.priv.pl +hizbd8.us +hizemail.com +hizirisg.xyz +hizlieticaret.com +hizliodegec.com +hizliodevegec.com +hj9ll8spk3co.cf +hj9ll8spk3co.ga +hj9ll8spk3co.gq +hj9ll8spk3co.ml +hj9ll8spk3co.tk +hjdosage.com +hjdzrqdwz.pl +hjfgyjhfyjfytujty.ml +hjfsupport.com +hjfzn1.site +hjgh545rghf5thfg.gq +hjhs777.com +hjios.us +hjirnbt56g.xyz +hjkcfa3o.com +hjkgkgkk.com +hjkhgh6ghkjfg.ga +hjkkb.host +hjnmyp.com +hjprw.info +hjtopoker.net +hjvnjv.com +hk-50.com +hk18.space +hk188188.com +hk20.space +hk23pools.info +hk23pools.net +hk23pools.org +hk25.space +hk29.space +hk44238.com +hk7727.com +hk7767.com +hk8858.com +hkbplw.icu +hkbpoker.com +hkbxclub.com +hkbxgwpuq.shop +hkcmgx.fun +hkcmxr.fun +hkcp87.com +hkd6ewtremdf88.cf +hkdewa.org +hkdnmove.com +hkee1.xyz +hkfmkp.fun +hkfs.ru +hkft7pttuc7hdbnu.cf +hkft7pttuc7hdbnu.ga +hkft7pttuc7hdbnu.ml +hkfy2424.com +hkglotto.com +hkhangsen.ru +hkhk.de +hkhkjhjh.com +hkhmyn.fun +hkjinhuarun.com +hkjmnp.fun +hkjmtw.fun +hklittlestores.com +hkllooekh.pl +hklove.ml +hkmbqmubyx5kbk9t6.cf +hkmbqmubyx5kbk9t6.ga +hkmbqmubyx5kbk9t6.gq +hkmbqmubyx5kbk9t6.ml +hkmbqmubyx5kbk9t6.tk +hkmedical.center +hkpmst.fun +hkrmpx.fun +hkrmxr.fun +hksmnm.fun +hkstorey.com +hksuning.store +hktmrd.fun +hku.us.to +hkww1.xyz +hkxmck.fun +hkxmld.fun +hkxmqp.fun +hky6f9.us +hkypw.info +hkzg.email +hl-blocker.site +hl11277.com +hl353.online +hl51.com +hl7.cloud +hlawfirm.net +hlclxr.icu +hlcrw.info +hldgeraldton.website +hldn.de +hldv.info +hlf333.com +hlfbgv.site +hlgame9.com +hlgjsy.com +hlikprytlabs.net +hlinsd.us +hliwa.cf +hljxtjs.com +hlljb.club +hllosaxd27192.cf +hllosaxd39371.tk +hllosaxd41394.ml +hllosaxd68693.cf +hllosaxd68693.ga +hllosaxd68693.tk +hlmvf9.us +hlooy.com +hlopshueh.xyz +hlqp11277.com +hlw12.life +hlw13.life +hlw14.life +hlw17.life +hlw20.life +hlw21.life +hlw22.life +hlw24.life +hlw25.life +hlw26.life +hlw27.life +hlw28.life +hlw29.life +hlw30.life +hlw31.life +hlw32.life +hlw34.life +hlw35.life +hlw38.life +hlw44.life +hlw45.life +hlw48.life +hlw49.life +hlw5.life +hlw6.life +hlw8.life +hlw9.life +hlwmbl.net +hlwsp9.com +hlwxoq.best +hlx02x0in.pl +hlxmhclyx.ml +hlxpiiyk8.pl +hm02.app +hm03.app +hm07.app +hm08.app +hm09.app +hm10.app +hm13.app +hm16.app +hm18.app +hm19.app +hm20.app +hm21.app +hm25.app +hm3o8w.host +hmail.top +hmail.us +hmamail.com +hmchat.ru +hmcl1.xyz +hmcq4e.site +hmcu.edu.vn +hmeetup.com +hmfgw.info +hmh.ro +hmhrvmtgmwi.cf +hmhrvmtgmwi.ga +hmhrvmtgmwi.gq +hmhrvmtgmwi.ml +hmhrvmtgmwi.tk +hmhshops.com +hmhu.com +hmhwords.com +hmjjne.rest +hmjm.de +hmkmedical.com +hmmarketru.ru +hmmbswlt5ts.cf +hmmbswlt5ts.ga +hmmbswlt5ts.gq +hmmbswlt5ts.ml +hmmbswlt5ts.tk +hmnmw.com +hmos.systems +hmotomotiv.xyz +hmsale.org +hmx.at +hmxmizjcs.pl +hmyisitme.xyz +hn-lb01.xyz +hn-skincare.com +hn1548.us +hn5nfo.us +hnataee.fun +hnbjs.us +hndard.com +hndifeng.com +hndj365.com +hnfk5o.us +hngwrb7ztl.ga +hngwrb7ztl.gq +hngwrb7ztl.ml +hngwrb7ztl.tk +hnhkubyshka.site +hnhlenchtumba.site +hnhobedlekalo.space +hnhtipzavtrak.space +hniiywf.site +hnkyho.us +hnlmtoxaxgu.cf +hnlmtoxaxgu.ga +hnlmtoxaxgu.gq +hnlmtoxaxgu.tk +hnndw.info +hnpnw.info +hnpod.com +hnqdw.info +hnrsc.icu +hntr93vhdv.uy.to +hntth.com +hnyl67.com +hnyl69.com +hnyl96.com +ho-365.com +ho-555.com +ho-707.com +ho-mvp.com +ho2.com +ho2zgi.host +ho3twwn.com +ho500.com +ho770.site +hoa-collect.com +hoa-collect.net +hoa-collect.org +hoa-southbend.com +hoabinhmail.us +hoacollect.com +hoail.co.uk +hoangduc.best +hoangdz11.tk +hoanggiaanh.com +hoanglong.tech +hoangmanhtuong.ml +hoangmyhanh.ga +hoangnghiale.ml +hoangngocviet.ga +hoangthanhtam.ga +hoangthaonguyen.ml +hoangthihoa.ga +hoangthikimlien.ml +hoangthimyhanh.ga +hoangvannam.ga +hoangvuson.ga +hoarderhousebuyers.com +hobartrealestateagents.com +hobbi-dlj-myzchin.ru +hobbitthedesolationofsmaug.com +hobbsye.com +hobby-society.com +hobbybreak.site +hobbydiscuss.ru +hobbyhand.ru +hobbyhure.online +hobbyspo.xyz +hobbyspor.icu +hobbysuit.site +hobbywe.recipes +hobicapsa.org +hobitogelapps.com +hoboc.com +hobocolo.info +hobosale.com +hocaninyeri.xyz +hocantonese.com +hocgaming.com +hochiminhflorist.net +hochsitze.com +hocibbo.cf +hocibbo.ga +hocibbo.gq +hocibbo.ml +hocibbo.tk +hockeyan.ru +hockeydrills.info +hockeyshop.live +hockeyskates.info +hockeytrek.com +hockinhdoanh.info +hocl.hospital +hocl.tech +hoclaiotocaptoc.com +hocseo.top +hocseohieuqua.com +hocseonangcao.com +hocseotructuyen.com +hocseowebsite.com +hocsinh.asia +hocsinh.mobi +hoctiengquangdong.com +hocud.net +hodady.club +hodady.online +hodady.site +hodler.land +hodmachines.com +hodovmail.com +hodu24.net +hodu30.net +hodu52.net +hodutv.fun +hodutv7.fun +hodutv8.fun +hodutv9.fun +hody.site +hoekiesikstudie.online +hoer.pw +hoerhelfer.com +hoesmistreatgut.website +hoesshoponline.info +hofap.com +hofato.info +hofffe.site +hoffren.nu +hofitol.ru +hofmannfilms.com +hofo0i.us +hofu.site +hoga.site +hoganmachine.com +hoganoutletsiteuomomini.com +hoganpwst.space +hoganrebelitalian.com +hogansitaly.com +hogansitaly1.com +hogansitoufficialeshopiit.com +hogee.com +hoggr.com +hoggtheroad.com +hogzilla.biz +hohiny.info +hohows.club +hoi-poi.com +hoianancienttownhotel.com +hoichoonline.website +hoinnchinese.com +hoistsec.com +hoiucvltk.net +hojfccubvv.ml +hojuhometour.com +hokicmcbet.xyz +hokijeep.club +hokipuma.com +hokiterus.site +hokpoker.org +hokyaa.site +holabook.site +holaveso.website +holcombefinancial.net +holdandgrow.com +holdenscramble.com +holdfit.info +holdup.me +holeio1.net +holeio2.net +holeyj.monster +holidayaftercare.com +holidaygates.com +holidayinc.com +holidayloans.com +holidayloans.uk +holidayloans.us +holidayrelief.online +holidaystousa.com +holidaytraveling.site +holiganbetkayit.com +holl.ga +holladayutah.com +holland-nedv.ru +hollandmail.men +holliefindlaymusic.com +hollister-australia.biz +hollisterclothingzt.co.uk +hollisteroutletuk4u.co.uk +hollisteroutletukvip.co.uk +hollisteroutletukzt.co.uk +hollisteroutletzt.co.uk +hollistersalezt.co.uk +hollisteruk4s.co.uk +hollisteruk4u.co.uk +hollisterukoutlet4u.co.uk +holly-randall.com +hollylisleonlinewritingschool.com +hollymccravy.com +hollyweirdtours.com +hollywood-spb.ru +hollywoodbeach-hotels.com +hollywooddreamcorset.com +hollywooddress.net +holo.hosting +holocart.com +holod93.ru +holodol.ru +holodos18.ru +holodosov.ru +hologramskies.com +holoholopu.club +holr.us +holstenwall.top +holstory.ru +holy-lands-tours.com +holy-nevis.ru +holyevents.net +holypet.ru +holywaiveknee.website +holzwohnbau.de +holzzwerge.de +homa14.live +homa19.live +homa3.com +homail.com +homal.com +homaring.xyz +hombre.fun +hombrequecamina.com +hombressimbolicos.com +home-1shop.website +home-businessreviews.com +home-care-assistance-leger-agency.com +home-gym-direct.com +home-sales-by-owner.com +home-tech.fun +home.glasstopdiningtable.org +home.tennis +home2busova.ru +home411insurance.xyz +home411now.xyz +home411online.xyz +home411services.xyz +home4ideas.com +home5858.com +homeaa318.xyz +homealfa.com +homeandawayhotels.com +homeandbackyard.com +homeandhouse.website +homearragement.site +homebasednetworks.com +homebusinesshosting.us +homecareandhospital.com +homecareoptical.com +homecleaningreviews.com +homedalian.se +homedecoideas.info +homedecorcafe.com +homedecoretips.com +homedecorsaleoffus.com +homedecorunique.com +homedepinst.com +homedesignideas.website +homedesignsidea.info +homedonation.org +homeequityloanlive.com +homeesite.com +homeextensionsperth.com +homefauna.ru +homefinderwinnipeg.com +homeforsale225.com +homegadgeteer.com +homehunterdallas.com +homeinsuranceagentsnearme.com +homeinsureguide.com +homeinteriorcorner.com +homekittools.com +homeko-world.xyz +homelab.reviews +homelanddiamondvillage.com +homelavka.ru +homelifeperks.com +homelistingsbackbay.com +homelivingusa.store +homelu.com +homeluxuryvillas.com +homemadecoloncleanse.in +homemail.gr.vu +homemailpro.com +homemaraiz.online +homemarkethome.com +homemarketing.ru +homemediaworld.com +homemortgagedirectlender.com +homemortgageloan-refinance.com +homemortgagenation.com +homenmoderno.life +homenspect.com +homeofficetelecom.com +homeopathicinjectiontherapy.com +homeopcost.com +homepels.ru +homeprofessional.org +homeprotectionagent.com +homepwner.com +homered.best +homeremediesforacne.com +homeremediesfortoenailfungus.net +homeremodelingmadeeasy.com +homeremodelingportal.com +homerentall.com +homerepairguy.org +homerezioktaya.com +homeroomtechnologies.com +homesaleswoodbury.com +homesandvillas.marriott +homesbynubiasanchez.com +homescreen.store +homesecuritytime.com +homesecuritytv.org +homesforsalegrandjunciton.com +homesforsaleinwausau.com +homeshop.futbol +homesiite.com +homesinalamedacouty.com +homesrockwallgroup.com +homessearcher.com +homestay.ink +homesteadingchat.com +homesteadprivacy.com +homesweethomeinventory.com +homesweetporchswing.com +homeswipe.com +homeswizz.com +hometheate.com +hometownjourney.net +hometownliving.net +hometrendsdecor.xyz +homevia3.club +homevia4.club +homeworkonline24.ru +homeworkserver.com +homeyou.org +homeyrealestate.com +homgrouprealty.com +homienotes.com +hominghen.com +hominidviews.com +homk.zone +homlee.com +homlee.mygbiz.com +hommim.ru +homorcu.com +homosaosjy.online +homosaosjy.ru +homstel.website +homude.info +homusix.site +homycons.com +homyfootprint.com +homymail.ml +honater.ga +honater.gq +honda-brasil.club +honda-fit.club +hondaafushimaldives.com +hondaautomotivepart.com +hondahrv.club +hondamotors.best +hondamotors.email +hondamotors.fun +hondamotors.loan +hondamotors.rocks +hondamotors.xyz +hondapartsinc.com +hondasukha3.com +hondaunderground.com +hondenstore.com +honduraskkt51802.cf +honduraskkt51802.ga +honduraskkt51802.ml +honduraskkt51802.tk +honestcto.com +honestwealthblog.com +honeybet90.org +honeydresses.com +honeydresses.net +honeyedoakforge.com +honeyfragilelodge.site +honeygain.house +honeygain.shop +honeygain.tech +honeymoonpackagesmauritius.com +honeynet.us +honeys.be +honeysareforever.com +hong-kee-glasnevin.com +hong-kong.guide +hongbao.app +hongfany.com +hongkee-glasnevin.com +hongkongpools.one +hongkongpools.uno +honglove.ml +hongpress.com +hongrishengmy.com +hongyun-yule.com +honid.live +honk.network +honkimailc.info +honkimailh.info +honkimailj.info +honl2isilcdyckg8.cf +honl2isilcdyckg8.ga +honl2isilcdyckg8.gq +honl2isilcdyckg8.ml +honl2isilcdyckg8.tk +honmme.com +honoluluhairsalons.com +honoluluquote.com +honor-8.com +honorably909ya.online +honoraryufa.email +honorcl.xyz +honorcli.xyz +honorquiet.com +honorskat.icu +honorsolidlucid.site +honorvenu.icu +honot1.co +honourbasedviolence.com +honourfcnj.space +honourslist.org +honst.best +hooahartspace.org +hoodet.ru +hoodlehub.com +hoodsshop.live +hooglygoogly.com +hook-up1.com +hook-up2.com +hook2up2.com +hookah-love.ru +hookerbooker.site +hookerkillernels.com +hooli.me +hoomdesign.xyz +hoonle.com +hooork.com +hoopaholicscamps.com +hoopaholicsclothing.com +hoopwell.com +hoosiereliteheat.com +hoosuu.com +hooters.org +hootspad.eu +hootspaddepadua.eu +hootttbbbtt.club +hooverexpress.net +hoovering.com +hop-on-hop-off-agianapa.com +hop-on-hop-off-nicosia.com +hop2.xyz +hopbrook.net +hopeajans.com +hopeeyesa.info +hopefulservices.com +hopelcqcxmj.email +hopemail.biz +hopesweets.org +hopikoglu.club +hopo.email +hoponhopofflarnaca.com +hoponhopoffpafos.com +hopoverview.com +hoppinessdelivered.org +hoppumyu.website +hopqey.info +hopswitch.com +hopto.org +horacipolanco.biz +horanferguson.com +horas24news.host +horbahotel.online +horecalt.com +horecaplekreserveren.online +horitomo.xyz +horizonautocare.com +horizonremovalists.com +horizonx.host +hormannequine.com +hormuziki.ru +hornedmelon.com +hornet.ie +hornetsbestofthenest.com +hornsipe.ga +hornsipe.tk +horny-datings2.com +hornyalwary.top +hornybackpackers.com +hornyblog.com +horol.info +horopuna.com +horosho-spat.ru +horoshomne24.ru +horoskopde.com +horrible.best +horrorplaybook.com +horrorstars.net +horrxxzombi.online +horse.cd +horsebarninfo.com +horsebrai.press +horsebrow.email +horsefucker.org +horsepoops.info +horseracing-betting.net +horserashnesslumen.site +horserecords.net +horserecords.org +horsesportnetwork.com +horsesteengirls.com +horsestor.press +horstenegger.site +horswerifdig.xyz +horusmediahouse.com +horvathurtablahoz.ml +hos24.de +hosmebow.cf +hosmebow.ga +hosmebow.gq +hosmebow.ml +hosmebow.tk +hospels.top +hospitalingles.com +hospitalmedicareclaims.xyz +hospitalregistry.com +hospkerhy.cf +hospkerhy.ga +hospkerhy.ml +hospkerhy.tk +hospowho.cf +hospowho.ga +hospowho.ml +hospowho.tk +host-info.com +host-listings-online.website +host-play.ru +host15.ru +hostb.xyz +hostballball.com +hostbymax.com +hostcalls.com +hostchief.net +hostclick.website +hostcloudservers.com +hostconflict.online +hostdesign.com +hostedemail.org +hostedplayout.com +hostelam.ru +hostelland.ru +hostelschool.edu +hostely.biz +hostgatorgenie.com +hostguard.co.fi +hostguru.info +hostguru.top +hosthansa.com +hostilucve.site +hosting-romania.biz +hosting.cd +hosting.ipiurl.net +hosting4608537.az.pl +hostingandserver.com +hostingarif.me +hostingballball.com +hostingcape.com +hostingdating.info +hostingdomain.blog +hostingersfix.ru +hostingextrem.com +hostingitgreen.com +hostinglinuxperu.com +hostingninja.bid +hostingninja.men +hostingninja.top +hostingoptim.com +hostingpagessmallworld.info +hostingromania.biz +hostkisx.space +hostlaba.com +hostlabs.ru +hostload.com.br +hostmagento.com +hostmail.cc +hostmail.cyou +hostmailmonster.com +hostman.org +hostmaster.bid +hostmebro.com +hostmein.top +hostmijnwebshop.com +hostmonitor.net +hostnow.bid +hostnow.men +hostpapa.photo +hostpapa.pics +hostpapa.reviews +hostpapa.shop +hostpector.com +hosts-flx.website +hostseo1.hekko.pl +hostsign.com +hosttitan.net +hosttractor.com +hosur.info +hot-acc.ru +hot-blog2.site +hot-blog3.site +hot-corner-pizza-kebabs.com +hot-de-offers.info +hot-jc.com +hot-leads.pro +hot-mail.cf +hot-mail.ga +hot-mail.gq +hot-mail.ml +hot-mail.tk +hot14.info +hot4ksale.online +hotaasgrcil.com +hotail.com +hotakama.tk +hotamil.com +hotandcoldwaterworks.com +hotbet.website +hotbet.world +hotbio.asia +hotblogers.com +hotbox.com +hotbrandsonsales1.com +hotbsdsqda.club +hotcakeaudio.com +hotchomisk.icu +hotchristianlouboutinsalefr.com +hotcoffeeclub.com +hotcoldwaterworks.com +hotdogsbar.ru +hotel-opdensteinen.com +hotel-orbita.pl +hotel-salyut.ru +hotel-venue.com +hotel-zk.lviv.ua +hotel.upsilon.webmailious.top +hotel411today.xyz +hotel47design.xyz +hotelaster.fr +hotelblanchard.com +hotelbochum.de-info.eu +hotelbookingthailand.biz +hotelcinematic.com +hoteldajti.com +hotelduval.org +hotelenaviles.com +hotelescusco.com +hotelfinderz.com +hotelfocus.com.pl +hotellasource.cd +hotelmirandadodouro.com +hotelmotelmanagement.com +hotelnextmail.com +hoteloferty.pl +hoteloutdoor.com +hotelposadadelyaqui.com +hotelqq59.xyz +hotelrenaissance-bg.com +hotels-close-to-me.com +hotels-near-my-location.com +hotels365.ru +hotelsatparis.com +hotelsatudaipur.com +hotelsbest.com +hotelsdot.co +hotelstek.com +hotelurraoantioquia.com +hotelvet.com +hotelvozdvizhenskoe.ru +hotenergynews.info +hotenergynews.mobi +hotermail.org +hoters.org +hotesell.com +hotfaka.com +hotfiddleshop.com +hotfile24h.net +hotfooter.com +hotforexnews.biz +hotfoto.org +hotfsd.club +hothammergames.com +hotibex.cam +hotizledim.club +hotkarmenkarma.com +hotkornernewport.com +hotlinemail.tk +hotlook.com +hotlowcost.com +hotlunches.ga +hotma.com +hotmai.com +hotmaiils.xyz +hotmail-s.com +hotmail.biz +hotmail.co.com +hotmail.com.friskytaphouse.com +hotmail.com.hitechinfo.com +hotmail.com.plentyapps.com +hotmail.com.standeight.com +hotmail.commsn.com +hotmail.red +hotmail.work +hotmail4.com +hotmailboxlive.com +hotmailer.info +hotmailer3000.org +hotmailforever.com +hotmaill.com +hotmailpro.info +hotmailproduct.com +hotmails.com +hotmails.eu +hotmailse.com +hotmailspot.co.cc +hotmaisl.com +hotmal.com +hotmali.cn +hotmali.com +hotmanpariz.com +hotmao.live +hotmcail.com +hotmeal.com +hotmediamail.com +hotmessage.info +hotmial.com +hotmichaelkorsoutletca.ca +hotmil.com +hotmobilephoneoffers.com +hotmodel.nl +hotmulberrybags2uk.com +hotmzcil.com +hotnewthailand.online +hotofficemaxstoresale.net +hotoffmypress.info +hotonlinesalejerseys.com +hotpcompnet.ga +hotpcompnet.ml +hotpcompnet.tk +hotpennystockstowatchfor.com +hotpop.com +hotpradabagsoutlet.us +hotprice.co +hotproduct.icu +hotpush998.com +hotroactive.tk +hotrodglossary.com +hotrodsbydean.com +hotsale.com +hotsalesbracelets.info +hotsdwswgrcil.com +hotsdwwgrcil.com +hotsell.icu +hotselling.online +hotshoptoday.com +hotshotstockalerts.com +hotshotvr.com +hotsitews.icu +hotsnapbackcap.com +hotspotmails.com +hotspotmichigan.com +hotspots300.info +hotspotwi.com +hotspotzone.net +hotssarrafiipaaarsii.live +hotstorecoupononline.net +hotstyleus.com +hotsweetdeals.store +hottarrts.com +hottbbbttt.club +hottbett.xyz +hottienikki.com +hottkerio4.xyz +hottosale.com +hottrend.site +hotttbettt.xyz +hottyfling.com +hotun.xyz +hotwaterwatch.net +hotwhitecum.com +hotwwgrcil.com +houdeaa3.com +houjate.cf +houjate.ga +houjate.gq +houjate.ml +houlad.site +houndhq.com +houndscatterlurch.site +hour-biz.ru +hourflash.biz +hourglassinitiative.org +hourlymail.pw +hourmade.com +hous.craigslist.org +housat.com +house-clean.pro +house-farm.site +house-sauna.online +housebeautiful.se +housebuyerbureau.co.uk +housecampanion.com +housecentral.info +housechyzx.space +housecleaningguides.com +housedecorationideas.website +housefea.xyz +housefeas.xyz +housefordog.ru +household-go.ru +householdshop.futbol +householdshopping.org +houselfamily.info +houseline.com +housemail.ga +housenord99.de +houseofcamelot.us +houseofgreekyogurt.us +houseofgrizzly.pl +houseofqueued.com +houseofsynergysalon.com +houseofwi.com +houseremonts.ru +housesforcashuk.co.uk +housesh.press +housetas.email +housetechics.ru +housetrai.xyz +housewashingmaryland.xyz +housewifeporn.info +housewr.xyz +housewris.icu +housing.are.nom.co +houston-criminal-defense-lawyer.info +houston.marketing +houston.storage +houstonamazinggaragefloors.com +houstoncomputer.net +houstonembroideryservice.online +houstonethnicfoods.com +houstoninsurancems.com +houstonlawyerscriminallaw.com +houstonlocksmithpro.com +houstonocdprogram.com +houstonquote.com +houstonvideoandphoto.com +houtil.com +houyiyy.com +hovcu3.info +hoversullenmabel.site +hovr.link +how-much-is-car-insurance.com +how-to-offshore.com +how2dl.xyz +howardcountyshowerglass.com +howardqvzv.ru +howb.site +howbetnow.ru +howbigdata.com +howbird.com +howc.site +howdididothatagain.com +howdoyoumountain.com +howellcomputerrepair.com +howey.tech +howf.site +howg.site +howgetpokecoins.com +howi.site +howicandoit.com +howiknewhewastheone.com +howiknewshewastheone.com +howlpaw.top +howm.site +howmakeall.tk +howmuchall.org.ua +howmuchdowemake.com +howoldis1.club +howquery.com +howrppaysclosingcost.com +howt.site +howtall-is.com +howtd.xyz +howtinzr189muat0ad.cf +howtinzr189muat0ad.ga +howtinzr189muat0ad.gq +howtinzr189muat0ad.ml +howtinzr189muat0ad.tk +howtoalgebra.com +howtobook.site +howtobt.com +howtobuild.shop +howtobuyfollowers.co +howtocharmlady.ru +howtodesign.info +howtodraw2.com +howtoelope.com +howtofood.ru +howtogetmyboyfriendback.net +howtogetridof-acnescarsfast.org +howtogodown.com +howtokissvideos.com +howtoknow.us +howtolastlongerinbedinstantly.com +howtolearnplaygitar.info +howtolosefatfast.org +howtolosefatonthighs.tk +howtomake-jello-shots.com +howtomusicvideo.com +howtoranknumberone.com +howtoremovestretchmarksafterpregnancy.com +howtoruay.com +howtosellrivercruises.com +howtosmokeacigar.com +howtowoodcrafts.xyz +howzthatworkingforyou.com +hoxderpy.shop +hozi.site +hozuniversal24.ru +hp.laohost.net +hparsipay.com +hpc-edge.com +hpc.tw +hpfem.com +hpiinspectionservices.com +hpkgrimbsytakeaway.com +hpmembership.com +hpnknivesg.com +hpotter7.com +hprehf28r8dtn1i.cf +hprehf28r8dtn1i.ga +hprehf28r8dtn1i.gq +hprehf28r8dtn1i.ml +hprehf28r8dtn1i.tk +hps-grow-lights.net +hpsyw.info +hptxw.info +hpxn.net +hpxwhjzik.pl +hq-porner.net +hq22.net +hq565.com +hq569.com +hq676.com +hq7979.com +hqautoinsurance.com +hqcatbgr356z.ga +hqjzb9shnuk3k0u48.cf +hqjzb9shnuk3k0u48.ga +hqjzb9shnuk3k0u48.gq +hqjzb9shnuk3k0u48.ml +hqjzb9shnuk3k0u48.tk +hqlbdenz.site +hqltui.us +hqmu.net +hqnlpqal.shop +hqnmhr.com +hqnnmq.icu +hqsecmail.com +hqstone.xyz +hqur.email +hqv8grv8dxdkt1b.cf +hqv8grv8dxdkt1b.ga +hqv8grv8dxdkt1b.gq +hqv8grv8dxdkt1b.ml +hqv8grv8dxdkt1b.tk +hqypdokcv.pl +hqzx6.com +hr-bsg.ru +hr3xkssvn8ek1ex.xyz +hr7gsn.site +hraff.org +hrb67.cf +hrb67.ga +hrb67.gq +hrb67.ml +hrb67.tk +hrbfmd.us +hrbsg.ru +hrbuck.site +hrcpw.info +hrcub.ru +hrdc16.xyz +hreduaward.ru +href.re +hrexamcenter.com +hrgmgka.cf +hrgmgka.ga +hrgmgka.gq +hrgmgka.ml +hrgy12.com +hrjxf.com +hrkdw.info +hrl0bn.us +hrlamp.com +hrma4a4hhs5.gq +hrmicrowave.us +hrn3bt.us +hro30.com +hrof.net +hrommail.net +hroncolos.ru +hrongods.ru +hronhild.ru +hronjoy.ru +hronopoulos.com +hrose.com +hroundb.com +hrpfd.us +hrprw.info +hrrdka.us +hrsco.info +hrske8.us +hrsroute.com +hrtgr.cf +hrtgr.ga +hrtgr.gq +hrtgr.ml +hrtgr.tk +hrtgre4.cf +hrtgre4.ga +hrtgre4.gq +hrtgre4.ml +hrtgre4.tk +hrustalnye-shtory.ru +hruwcwooq.pl +hrvatski.cloud +hrwns.live +hrwrbi.info +hs.vc +hs11.info +hs12.info +hs123.ml +hs13.info +hs130.com +hsa-asle1.ru +hsafhky.cf +hsafhky.ga +hsafhky.tk +hsbc-us-com.xyz +hsbc.coms.hk +hsbr.net +hsc7uc.com +hscluw.com +hsdjyaw.ga +hsehfr.us +hserey.com +hsgszkqem.cf +hshed.org +hsjhjsjhbags.com +hsjjttr.cf +hsjjttr.ga +hsjjttr.tk +hskdae.com +hsls5guu0cv.cf +hsls5guu0cv.ga +hsls5guu0cv.gq +hsls5guu0cv.ml +hsls5guu0cv.tk +hsmty.com +hsnbz.site +hsnsw.info +hsoshow.com +hspcomplete.ru +hsseeds.com +hstermail.com +hsts-preload-test.xyz +hstutunsue7dd.ml +hstvq.us +hsudhjashku.xyz +hsvn.us +hsweetuni.website +hsykgv.shop +hsyl188.net +ht.cx +ht264.site +ht8wx03.com +htaae8jvikgd3imrphl.ga +htaae8jvikgd3imrphl.gq +htaae8jvikgd3imrphl.ml +htaae8jvikgd3imrphl.tk +htc-mozart.pl +htcsemail.com +htcvive.online +htdig.org +htenparlans.cf +htenparlans.gq +htenparlans.tk +htery.com +hteysy5yys66.cf +htfmw.info +htgamin.com +htglobalhealthcare.xyz +htmail.com +htmajv.info +html5recipes.com +html5repair.com +htndeglwdlm.pl +htngroup.com +htnhw.info +htnsu.com +htp8qq.com +hts4ci.us +htsfv.live +htsghtsd.shop +htstar.tk +http.e-abrakadabra.pl +httpboks.gq +httpdindon.ml +httpglobesbestgrill.com +httpimbox.gq +httplove.live +httpoutmail.cf +httpqwik.ga +httpsouq-dot.com +httpswigsgoldtouchstore.net +httpswwwjasongaophotography.com +httpta.com +httpvkporn.ru +httsmvk.com +httsmvkcom.ga +httsmvkcom.pw +httsmvkcom.tk +htttbt.online +httttmdtqusqututqp.ru +htwergbrvysqs.cf +htwergbrvysqs.ga +htwergbrvysqs.gq +htwergbrvysqs.ml +htwergbrvysqs.tk +htwern.com +htzmqucnm.info +hu388.com +hu4ht.com +hua-hin.directory +hua85.com +huachichi.info +huahin.directory +huajiachem.cn +huallo.site +huamicme.cf +huamicme.ga +huamicme.gq +huamicme.tk +huangboyu.com +huanggg.fun +huangniu8.com +huangniu8.online +huangouquan.com +huangpuxueyuan.net +huangyus.cn +huangzefan.xyz +huanhuayulept.com +huationgjk888.info +huaweimaik.ml +huaweimali.cn +huawsyi.ml +huawsyi.tk +huaxiayun.top +huaxintui.biz +hub-cafe-the-coombe.com +hub-pizzeria-takeaway.com +hub-spot.us +hubab.online +hubbu.online +hubeducacional.app +huberheightsapartments.com +hubgrubs.net +hubii-network.com +hubiopharm.ru +hubmail.info +hubopss.com +hubsoftly.com +hubspotmails.com +hubticks.com +hubtixs.com +hubwebsite.tk +huck.ml +huckbrry.com +huckepackel.com +hucknalltownfc.net +huclberry.com +hudakov.ru +hudatedi.xyz +huddiez.net +huddiez.org +huddmarme.cf +huddmarme.ga +huddmarme.gq +huddmarme.tk +hudra2webs.online +hudraruzxpnew4af.com +hudren.com +hudsonncdentists.com +hudsonvalleygreenlife.com +hudspethinn.com +huecar.com +huedbird.com +huerto.online +huetreasure.com +hugah.dev +hugbenefits.ga +hugemotorbikes.com +hugesale.in +huggybotforum.cf +hugmaew.com +hugmovo.com +hugoandborg.us +hugofairbanks.com +hugohost.pl +hugoscircuscitymuseum.org +hugowhiteleaf.com +hugs-linen.com +huihuangbeiye.com +huikao.online +huiledargane.com +huitrebjjh.space +huizely.com +huj.pl +hujert.tk +hujike.org +hukd.info +hukkmu.tk +hukmdy92apdht2f.cf +hukmdy92apdht2f.ga +hukmdy92apdht2f.gq +hukmdy92apdht2f.ml +hukmdy92apdht2f.tk +hulaboola.com +hulafa.info +hulalgea.online +hulapla.de +hulasen10.xyz +hulasen14.xyz +hulasen16.xyz +hulasen17.xyz +hulasen18.xyz +hulasen29.xyz +hulasen30.xyz +hulasen33.xyz +hulasen35.xyz +hulasen36.xyz +hulasen37.xyz +hulasen41.xyz +hulasen45.xyz +hulasen47.xyz +hulasen48.xyz +hulasen50.xyz +hulasen8.xyz +hulewn.com +hulibet80.com +hulksales.com +hull-escorts.com +hulpuitdebuurt.site +hulrtt.us +hulujams.org +huluwa.life +huluwa10.life +huluwa12.life +huluwa13.life +huluwa14.life +huluwa21.life +huluwa22.life +huluwa25.life +huluwa26.life +huluwa27.life +huluwa31.life +huluwa34.life +huluwa35.life +huluwa37.life +huluwa38.life +huluwa44.life +huluwa49.life +huluwa5.life +huluwa7.life +huluwa8.life +hum9n4a.org.pl +humac5.ru +humaility.com +humanadventure.com +humanandculture.com +humandaddy.com +humanecosmetics.net +humanessense.com +humanflashcards.com +humanimpacted.com +humanitycalls.org +humanityenterprise.asia +humanityenterprise.com +humanityenterprise.org +humanityenterprises.asia +humanityenterprises.com +humanlight.org +humanloop.xyz +humanone.org +humans-souls.ru +humanstudy.ru +humble.digital +humbleciviccenter.net +humgruffin.site +humidorai.com +humidorai.net +humidorai.org +humika.com +humkarega.com +hummarus24.biz +hummer-h3.ml +hummingbirdhealingoils.com +humn.ws.gy +humoram.xyz +humordaddy.ru +humordecolor.info +humorkne.com +humormoldingmangy.site +humorous-conclusion.com +humphfecsa.cf +humphfecsa.ga +humphfecsa.gq +humphfecsa.ml +humphfecsa.tk +humsc.org +hunchbuzz.net +hunchbuzz.org +hunchmilig.cf +hunchmilig.ga +hunchmilig.gq +hunchmilig.tk +hunck.live +hundemassage.de +hundredhills.net +hundredkit.com +hundsige.cf +hundsige.ga +hundsige.gq +hungarbuty.xyz +hungary-choco-late.club +hungaryhotels.info +hungly.xyz +hungnewemail276.cf +hungpackage.com +hungrybosstakeaway.com +hungryinportland.com +hungrymexicandublin.com +hungwandublin.com +hunnur.com +hunny1.com +hunnyberry.com +hunrap.usa.cc +hunredy.site +hunrtiace.club +huntarapp.com +huntclubindoors.com +huntdistantlamb.website +hunter-games.ru +hunterhouse.pl +huntersfishers.ru +huntersgreenhotel.com +huntervalleyconcretepumping.com +hunterwatts.com +huntfisheasy.com +huntfootandankleclinics.com +huntfootclinics.com +huntforyou.ru +huntingmastery.com +huntingtonbeachquote.com +huntpodiatricmedicine.com +huntpx.com +huntsvillerealestateagents.com +huo.media +huong-dan-blog.com +hup.xyz +hupdns.online +huracan95.ru +hurdaci.cf +hurdaci.ga +hureimbettmutteraufderstrasse.vision +hureimbettmutteraufderstrasse.works +hurify1.com +hurleys.com +hurom.life +hurooutlets.site +hurr.ru +hurramm.us +hurricanetooi.com +hurrijian.us +hurriyetseriilanmerkezi.xyz +hurstdevelopment.com +hurtigt.website +huseynovf.ru +hush.ai +hush.com +hushclouds.com +hushedhome.com +hushline.com +hushmail.cf +huskergaragedoorrepair.com +huskion.net +huskysteals.com +husseinight.com +hustlefitnessireland.com +hustler.africa +hustletussle.com +huston.edu +hustq7tbd6v2xov.cf +hustq7tbd6v2xov.ga +hustq7tbd6v2xov.gq +hustq7tbd6v2xov.ml +hustq7tbd6v2xov.tk +hutchankhonghcm.com +hutchings.org +hututoo.com +huuthi.website +huweimail.cn +huydeptrai.co.uk +huydgdyehj.xyz +huydjfihbds.xyz +huyendaitu.com +huytdgte.xyz +huyuhnsj36948.ml +huyuhnsj46849.tk +huyuhnsj77254.ml +huyuhnsj77254.tk +huyzmod.asia +huyzpro.uk +huyzvip.best +hv112.com +hv1slb.site +hv654.site +hv712.com +hvac5starclub.com +hvastudiesucces.nl +hvb-pay.com +hvba.us +hvgmgh.icu +hvh.pl +hvhcksxb.mil.pl +hvhgw.xyz +hvld.net +hvndrljdm.shop +hvnphp.com +hvosamolet.xyz +hvrn.email +hvs4hdtric4s6p3.xyz +hvtechnical.com +hvyji.us +hvzoi.com +hw-sec.com +hw-sec.net +hw01.xyz +hw85ys.us +hwa-rt.com +hwa.best +hwa7niu2il.com +hwa7niuil.com +hwapp9.com +hwbhw.info +hwdiscount.online +hwhabm.us +hwhealthsystem.com +hwiseroa.com +hwjt8.com +hwkaaa.besaba.com +hwkp.email +hwkvsvfwddeti.cf +hwkvsvfwddeti.ga +hwkvsvfwddeti.gq +hwkvsvfwddeti.ml +hwkvsvfwddeti.tk +hwmrs.us +hwomg.us +hwpawvgea.shop +hwrresidential.com +hwsdkrj4bviwzya.xyz +hwsec.com +hwsnw.info +hwsye.net +hwuifkidy.shop +hwwxry.site +hwxist3vgzky14fw2.cf +hwxist3vgzky14fw2.ga +hwxist3vgzky14fw2.gq +hwxist3vgzky14fw2.ml +hwxist3vgzky14fw2.tk +hwysobin.cf +hwysobin.ga +hwysobin.gq +hwysobin.tk +hx-emco.com +hx2.us +hx39i08gxvtxt6.cf +hx39i08gxvtxt6.ga +hx39i08gxvtxt6.gq +hx39i08gxvtxt6.ml +hx39i08gxvtxt6.tk +hx9kth.host +hxav1.com +hxav2.com +hxc7gj.us +hxck8inljlr.cf +hxck8inljlr.ga +hxck8inljlr.gq +hxck8inljlr.tk +hxcp990.com +hxd104.com +hxdfa5.info +hxdjswzzy.pl +hxhbnqhlwtbr.ga +hxhbnqhlwtbr.ml +hxhbnqhlwtbr.tk +hxisewksjskwkkww89101929.unaux.com +hxqmail.com +hxrt9w.us +hxsq.bet +hxsq.us +hxuvo2.online +hxvxxo1v8mfbt.cf +hxvxxo1v8mfbt.ga +hxvxxo1v8mfbt.gq +hxvxxo1v8mfbt.ml +hxvxxo1v8mfbt.tk +hxwlw.info +hxxww.info +hxzf.biz +hy1o87ww.xyz +hy2bc0a279f6esc.xyz +hy888.info +hyab.de +hyacinhmcw.space +hybrid.trade +hybride.nu +hybridhazards.info +hybridization963of.online +hybridmc.net +hycraft.ru +hycrafting.ru +hydcalo.cf +hydcalo.gq +hydibuva.site +hydra-hydra.online +hydra-meta.com +hydra-meta.net +hydra-onion-shop.xyz +hydra-unblock.com +hydra2.website +hydra2vvab.ru +hydra2w3b.biz +hydra2weed.com +hydra4dark.com +hydragrip.ru +hydramarketsnjmd.com +hydramarketsnjmd.online +hydramarketsnjmd.shop +hydrameta.com +hydrantsteel.club +hydrapro.ru +hydraruzxpnev4af.xyz +hydraruzxpnew4af-onion.ru +hydraruzxpnew4afxn--nion-k3acom.com +hydrasport.com +hydrasport.xyz +hydraulics360.ru +hydraza.com +hydrazwzll.ru +hydro-algerie.com +hydrochlorothiazide247.video +hydrogenic.site +hydrogenrichwaterstick.org +hydrolinepro.ru +hydrolinerus.ru +hydrolyzed220bk.online +hydronoodle.xyz +hydroslght.com +hydrostarghana.com +hydrostore.net +hydroxide-studio.com +hyds24cs.com +hydsw.info +hyecourtdot.cf +hyecourtdot.ga +hyfw.club +hyfw.xyz +hygenicbrushes.org +hygenicbrushes.us +hygge.camp +hyggerus.ru +hygienicbrush.us +hygvxr.us +hygxw.info +hyh07.space +hyhid.com +hyhisla.cf +hyhisla.ga +hyhisla.gq +hyhisla.ml +hyhisla.tk +hyhsale.top +hyip-monitor.xyz +hyip.market +hyipbook.com +hyipiran.ir +hyjumes.ru +hylja.net +hylja.tech +hyloceiypt.ru +hylwdlapp1.com +hyly.online +hymnologyhg.info +hymonitor.ru +hynds57.com +hynlw.info +hypbtt.xyz +hypearound.com +hypefreehealth.com +hypehound.com +hypeinteractive.org +hypeinteractive.us +hyper-tec.store +hyperactivist.info +hypercomplete.net +hyperemail.top +hyperfastnet.info +hypergram.pro +hyperile.xyz +hyperland.tools +hypermail.top +hypermailbox.com +hyperoleplay.tk +hyperpigmentationtreatment.eu +hyperportalvr.org +hyperreactive.best +hyperstealth.ru +hypertext.exchange +hypertranscend.org +hypertrend.ru +hyperx-cloud.online +hypha.fund +hypha.group +hyphemail.com +hypnoforsuccess.com +hypnosischangelife.com +hypnotic-storytelling.com +hypnotic-storytelling.net +hypnotizes894yn.online +hypo-kalkulacka.online +hypoadvisor.com +hypori.us +hypotekyonline.cz +hypowhal.ga +hypowhal.ml +hypowhal.tk +hypoxiuqch.space +hypoyo.xyz +hyqzvprb.site +hyra-buss-stockholm.se +hysaryop8.pl +hyservers.ru +hyt45763ff.cf +hyt45763ff.ga +hyt45763ff.gq +hyt45763ff.ml +hyt45763ff.tk +hytaleforums.net +hytalemonitor.ru +hytalemonitoring.ru +hytaleservers.net +hytaleservers.ru +hyteqwqs.com +hyticy.site +hytura.cf +hytura.ga +hytura.gq +hytura.ml +hytura.tk +hytwatches.fun +hyuhuv.info +hyukpi.com +hyundai-promo.site +hyundaiaritmakusadasi.xyz +hyv9nc.us +hyveephoto.com +hyvuokmhrtkucn5.cf +hyvuokmhrtkucn5.ga +hyvuokmhrtkucn5.gq +hyvuokmhrtkucn5.ml +hyxhw.info +hyxnw.info +hyyhh.com +hyyysde.com +hyze.site +hyzhsx.com +hz-business.net +hz2046.com +hz408.site +hz6m.com +hz7rfc.us +hz8816.com +hz8819.com +hzbdfyy.com +hzbp120.com +hzbtw.info +hzcn.cc +hzdpw.com +hzerm1.site +hzeyeis.com +hzflsz.us +hzjww.info +hzmjfy.com +hznth.com +hzqhjc.com +hzrxw.info +hztnbyy.com +hzue.email +hzx3mqob77fpeibxomc.cf +hzx3mqob77fpeibxomc.ga +hzx3mqob77fpeibxomc.ml +hzx3mqob77fpeibxomc.tk +hzxsy1.com +hzz90.xyz +hzz92.com +hzzcw.info +hzzg4a.best +i-3gk.cf +i-3gk.ga +i-3gk.gq +i-3gk.ml +i-alive.com +i-am-tiredofallthehype.com +i-booking.us +i-carpets.ru +i-class.org +i-ebookaz.com +i-emailbox.info +i-flipkart.com +i-gakamted.ru +i-grest.ru +i-heart.org +i-konkursy.pl +i-love-credit.ru +i-love-you-3000.net +i-lucky.xyz +i-m-qq.com +i-mirpodnogami.ru +i-phone.nut.cc +i-phones.shop +i-r-p.ru +i-robots.org +i-settlemydebt.com +i-shop-go.ru +i-slotv.site +i-sp.cf +i-sp.ga +i-sp.gq +i-sp.ml +i-sp.tk +i-speak-spoke-spoken.com +i-speak-spoke-spoken.info +i-speak-spoke-spoken.net +i-speak-spoke-spoken.org +i-taiwan.tv +i-tell-net2.ru +i-tell-net4.ru +i-trust.ru +i.bgsaddrmwn.me +i.e-tpc.online +i.iskba.com +i.istii.ro +i.klipp.su +i.polosburberry.com +i.ryanb.com +i.wawi.es +i.xcode.ro +i03hoaobufu3nzs.cf +i03hoaobufu3nzs.ga +i03hoaobufu3nzs.gq +i03hoaobufu3nzs.ml +i03hoaobufu3nzs.tk +i04mo.site +i054egtx083f8mb.xyz +i0fkmr.us +i11e5k1h6ch.cf +i11e5k1h6ch.ga +i11e5k1h6ch.gq +i11e5k1h6ch.ml +i11e5k1h6ch.tk +i128.xyz +i16my.site +i1775.com +i18nwiki.com +i1blr.us +i1dqp6.us +i1nlem.host +i1oaus.pl +i1uc44vhqhqpgqx.cf +i1uc44vhqhqpgqx.ga +i1uc44vhqhqpgqx.gq +i1uc44vhqhqpgqx.ml +i1uc44vhqhqpgqx.tk +i1xslq9jgp9b.ga +i1xslq9jgp9b.ml +i1xslq9jgp9b.tk +i201zzf8x.com +i22.site +i29rj.space +i2a9ni.site +i2pmail.org +i301.info +i35t0a5.com +i3pv1hrpnytow.cf +i3pv1hrpnytow.ga +i3pv1hrpnytow.gq +i3pv1hrpnytow.ml +i3pv1hrpnytow.tk +i3success.online +i47iq.com +i4cfuq.site +i4eoww.com +i4j0j3iz0.com +i4racpzge8.cf +i4racpzge8.ga +i4racpzge8.gq +i4racpzge8.ml +i4racpzge8.tk +i4unlock.com +i537244.cf +i537244.ga +i537244.ml +i54o8oiqdr.cf +i54o8oiqdr.ga +i54o8oiqdr.gq +i54o8oiqdr.ml +i54o8oiqdr.tk +i55du.com +i5n7p4.site +i5ocfa.online +i5pronay.top +i6.cloudns.cc +i6.cloudns.cx +i61qoiaet.pl +i66g2i2w.com +i6appears.com +i6t0n.icu +i73lp.com +i75rwe24vcdc.cf +i75rwe24vcdc.ga +i75rwe24vcdc.gq +i75rwe24vcdc.ml +i75rwe24vcdc.tk +i774uhrksolqvthjbr.cf +i774uhrksolqvthjbr.ga +i774uhrksolqvthjbr.gq +i774uhrksolqvthjbr.ml +i774uhrksolqvthjbr.tk +i7e2cf.us +i7fvgq.us +i7nv.com +i82323.com +i85uct.us +i88fj.space +i8e2lnq34xjg.cf +i8e2lnq34xjg.ga +i8e2lnq34xjg.gq +i8e2lnq34xjg.ml +i8e2lnq34xjg.tk +i8jvo.icu +i8tvebwrpgz.cf +i8tvebwrpgz.ga +i8tvebwrpgz.gq +i8tvebwrpgz.ml +i8tvebwrpgz.tk +i8xe.us +i9094.com +i91.info +i95pp.com +i9827.com +i9rkgm.us +i9startup.com +ia04fx.us +ia4stypglismiks.cf +ia4stypglismiks.ga +ia4stypglismiks.gq +ia4stypglismiks.ml +ia4stypglismiks.tk +iaca-aligner.com +iacapitalgroup.net +iacjpeoqdy.pl +iag1gu.us +iainsinclair.ru +iamail.com +iamamaker.shop +iamaproductmanager.com +iamasterfx.com +iamcholo.com +iamcoder.ru +iamconsciouis.com +iamdustmite.com +iamguide.ru +iamipl.icu +iamnicolas.com +iampalau.com +iamsasha.info +iamsyafiqah.com +iamusic.online +iamusic.ru +iamyoga.website +iancasinorat.ru +iandcannabis.com +iandi.ru +ianhydeassociates.com +ianisthe.best +ianjenkins.net +ianqm.live +iansdonatellos.com +ianstacubey.site +ianstapadu.site +ianwookim.org +ianz.pro +iaoss.com +iapermisul.ro +iapneocon2019bengaluru.com +iaptkapkl53.tk +iassafety.com +iastabettingsnupp.xyz +iat6.icu +iatarget.com +iatcoaching.com +iattach.gq +iauhscqw.site +iautostabilbetsnup.xyz +iawgendchilddetention.org +iaynqjcrz.pl +iazhy.com +ib0ixy.site +ib48.xyz +ib49.xyz +ib4f.com +ib50.xyz +ib55.xyz +ib57.xyz +ib58.xyz +ib5dy8b0tip3dd4qb.cf +ib5dy8b0tip3dd4qb.ga +ib5dy8b0tip3dd4qb.gq +ib5dy8b0tip3dd4qb.ml +ib5dy8b0tip3dd4qb.tk +ib60.xyz +ib62.xyz +ib865.com +ibabni.gq +ibabni.ml +ibabni.tk +ibadan.site +ibanque.net +ibantool.com +ibaoju.com +ibaxdiqyauevzf9.cf +ibaxdiqyauevzf9.ga +ibaxdiqyauevzf9.gq +ibaxdiqyauevzf9.ml +ibaxdiqyauevzf9.tk +ibazpixrxhjjeae.xyz +ibeeking.com +ibel-resource.com +ibenat.cf +ibenat.ga +ibenat.gq +ibenat.ml +ibenat.tk +ibericadesentupimentos.com +ibericaesgotos.com +ibet01.club +ibetatest.com +ibetkiukiu.com +ibexiran.net +ibibo.com +ibiic.com +ibitcoini.ru +ibiz-info.ru +ibiza-villas-spain.com +ibizaholidays.com +ibizapics.info +iblbildbyra.se +iblisqq.biz +iblplay.info +iblplay.org +ibm.coms.hk +ibmail.com +ibmmails.com +ibmpc.cf +ibmpc.ga +ibmpc.gq +ibmpc.ml +ibnisina.club +ibnuh.bz +ibondeplan.com +ibook.moe +ibookstore.co +ibqmanufz.shop +ibrahimuzun.xyz +ibreeding.ru +ibrilo.com +ibrnj.us +ibsats.com +ibstreatmentcenters.com +ibsura.cf +ibsura.ga +ibsura.gq +ibsura.ml +ibsura.tk +ibsvxa.info +ibsyahoo.com +ibt7tv8tv7.cf +ibt7tv8tv7.ga +ibt7tv8tv7.gq +ibt7tv8tv7.ml +ibt7tv8tv7.tk +ibuydayton.net +ibuydaytonhomes.com +ibuydaytonhouses.com +ibuydaytonproperties.com +ibuydaytonrealestate.com +ibuyjp.org +ibuyprinters.com +ibuytnproperty4cash.com +ibvoh.live +ibyhrlc08fokf5f.xyz +ibypebbles.com +ic-interiors.com +ic-u.club +ic046.site +icaarntuj.ml +icafs.org +icaimiao.xyz +icaisen.xyz +icaisui.xyz +icaiying.xyz +icakurien.se +icanav.net +icanfatbike.com +icantab.com +icantbelieveineedtoexplainthisshit.com +icantbelieveitsnotflash.com +icao.cd +icao6.us +icaoglossary.com +icar-air.com +icardatabase.com +icaruslegend.com +icashsurveys.com +icasinogroup.net +icasinogroup.org +icasinos.ru +icbcc.org +icbls.org +icc-alliance.org +icccd.org +iccima.biz +iccmail.men +iccmail.ml +icdn.ooo +icdoggud.xyz +ice-rulet.ru +ice444.com +iceburgsf.com +icecapsoftserve.com +icecold.shop +icecreamyjt.email +icedmilk.com +icefilmz.org +icefishingnetwork.com +icefuitltd.online +icegbrow.cf +icegbrow.ga +icegbrow.gq +icegbrow.ml +icegbrow.tk +icehousesupply.com +iceland-is-ace.com +icelandic-horses.online +icemail.club +icemovie.link +icenakrub.club +icerink.tech +icerion.site +iceseries.com +icetmail.ga +icetyznetwork.xyz +icfbe.org +icfgwn.site +icfriend.com +icfu.mooo.com +icgrlb.info +icgs.de +ichatz.ga +ichbinvollcool.de +ichecksdqd.com +ichehol.ru +ichet.ru +ichibata.online +ichichich.faith +ichigo.me +ichoochoochooseyou.com +ichwilldichhaltmalsorichtig.vision +iciarcosmeticos.com +icinki.cf +icinki.ga +icinki.ml +icinki.tk +icj3e.us +icjmc.org +ick0h.site +ickx.de +icleantrans.site +iclim52.ru +icloud.cd +icloud.do +icloudbusiness.net +icloudsendfirefox.online +icmo.org +icmocozsm.pl +icmp.best +icnbet.website +icnopuvdi.shop +icntogel.net +icntoto.net +ico-decenturion.ru +icoachbranding.com +icoconf.ru +icode.best +icodeltd.com +icodepromo.com +icogneato.co +icon.foundation +icon256.info +icon256.tk +iconda.site +iconedit.info +iconfile.info +iconflooring.net +iconicgoal.com +iconscoins.ru +iconsultant.me +icontactreviews.com +iconze.com +icopoc.cf +icopoc.ga +icopoc.gq +icopoc.tk +icotir.cf +icotir.ga +icotir.gq +icotir.ml +icotir.tk +icotoken.bid +icotype.info +icpst.org +icraftx.net +icralti.cf +icralti.ga +icralti.gq +icralti.ml +icralti.tk +icrr2011symp.pl +icrrr.org +icslecture.com +icsmcoop.com +icsofcolorado.com +ict-4u.com +ict0crp6ocptyrplcr.cf +ict0crp6ocptyrplcr.ga +ict0crp6ocptyrplcr.gq +ict0crp6ocptyrplcr.ml +ict0crp6ocptyrplcr.tk +ictaintict.date +ictenlider.org +ictnew2024.com +ictnew2027.com +ictuber.info +icunet.icu +icx.in +icx.ro +icys2011.ru +id-ins.com +id-nn.ru +id-pubgm.shop +id.pl +id10tproof.com +id4sqj.us +id7ak.com +idaccept.com +idaccept.net +idaccept.org +idacsplus.com +idaho.tours +idaholands.info +idahoquote.com +idahovirtual.tours +idahowine.tours +idat.buzz +idat.site +idawsitute.icu +idcbill.com +idcclub88.com +iddaairan.website +iddaalabayi.com +iddoescul.cf +iddoescul.ga +idea-mail.com +idea-mail.net +idea.bothtook.com +ideacentre.info +ideadesignlab.net +ideageneration.info +ideagmjzs.pl +ideal-art.ru +ideal-gk.ru +idealencounters.com +idealhomeautomation.com +idealinversion.com +idealizes254vc.online +idealmedev.com +idealniy.site +idealweightsystemsct.com +ideamarts.net +ideareality.com +idearia.org +ideaservers.com +ideasplace.ru +ideati.site +idecanta.xyz +idecyt.org +ideeinrete.info +ideenbuero.de +ideenx.site +ideepmind.pw +ideer.msk.ru +ideer.pro +ideiadenegocio.com +iden65.space +idenced.xyz +identifyandclassify.com +identifyandclassify.org +identity-confermation.com +identityinnovation.com +ideondo.xyz +ideozz.xyz +idepoker88.net +idesigncg.com +idevy.site +idfrvg.icu +idgreat.online +idgreat.ru +idhalfpricedlistings.com +idhie.com +idi-k-mechte.ru +idid11.com +idid36.com +idid42.com +idid55.com +ididv.com +idigo.org +idihgabo.cf +idihgabo.gq +idiochron.com +idiolx.stream +idiomm.xyz +idiondo.xyz +idjbet.net +idjplay.site +idkartu.org +idkcoin.com +idktoken.com +idkytoxz.shop +idl99.net +idlefriends.com +idlestormlaze.website +idmail.com +idmail.me +idn.vn +idnaco.cf +idnaco.ga +idnaco.gq +idnaco.ml +idnaco.tk +idnbet.net +idnbet118.net +idnkil.cf +idnkil.ga +idnkil.gq +idnkil.ml +idnolive.info +idnolive.net +idnolive.org +idnplay.live +idnpoker.link +idnpoker33.club +idnpoker33.info +idobrestrony.pl +idocuments.website +idointucson.com +idolsystems.info +idomail.com +idomain24.pl +idonea.ru +idotem.cf +idotem.ga +idotem.gq +idotem.ml +idpoker888.com +idpoker888.org +idpoker99.org +idpro.life +idpzynat.shop +idqzfl.site +idrcapsa.com +idreams.club +idrehabcenters.com +idricco.club +idrifla.com +idroid.site +idroidsoft.com +idrotherapyreview.net +idrplay.info +idsearth.com +idsee.app +idsee.org +idsitusjudi.com +idsly.xyz +idspin.net +idstc.org +idt8wwaohfiru7.cf +idt8wwaohfiru7.ga +idt8wwaohfiru7.gq +idt8wwaohfiru7.ml +idt8wwaohfiru7.tk +idtv.site +iduitype.info +idush.ru +idustres.online +idustres.site +idvdclubs.com +idvisitor.online +idx4.com +idxfinity.com +idxue.com +idxxi.video +idy1314.com +idyllwild.vacations +idyro.com +ie6isolder.com +ie6isolderthan.com +ie6isolderthanyourgrandpa.com +ie9myl.us +ieaaql.net +ieasymail.net +ieasystabilitybetsnupp20.xyz +ieatspam.eu +ieatspam.info +ieatsugar.com +ieattach.ml +iecrater.com +iecusa.net +iedindon.ml +ieeeves.org +iefbcieuf.cf +iefbcieuf.ml +iefbcieuf.tk +ieh-mail.de +ieit9sgwshbuvq9a.cf +ieit9sgwshbuvq9a.ga +ieit9sgwshbuvq9a.gq +ieit9sgwshbuvq9a.ml +ieit9sgwshbuvq9a.tk +iekzzu.com +iel.pw +iemitel.gq +iemm.ru +iencm.com +ienergize.com +iennfdd.com +iens7a.us +ieo.group +ieorace.com +iephonam.cf +ieremiasfounttas.gr +iersetaal.com +ieryweuyeqio.tk +ierywoeiwura.tk +ies76uhwpfly.cf +ies76uhwpfly.ga +ies76uhwpfly.gq +ies76uhwpfly.ml +ies76uhwpfly.tk +iesande.shop +iesco.info +iestabbetting.xyz +iestiest.shop +iestynwilliams.net +ietaietr.shop +iethiopian.com +iew88.com +iexchange.hk +iexh1ybpbly8ky.cf +iexh1ybpbly8ky.ga +iexh1ybpbly8ky.gq +iexh1ybpbly8ky.ml +iexh1ybpbly8ky.tk +if-store.ru +if.money +if58.cf +if58.ga +if58.gq +if58.ml +if58.tk +if914.site +ifa2s5.info +ifaiqis.com +ifans-electronics.ru +ifans-headphone.ru +ifans-i9s-tws.ru +ifans-mad.ru +ifansforyou.ru +ifansim.ru +ifastmail.pl +ifastme.com +ifavorsprt.com +ifcelite.com +ifchuck.com +ifd8tclgtg.cf +ifd8tclgtg.ga +ifd8tclgtg.gq +ifd8tclgtg.ml +ifd8tclgtg.tk +ifdacm4g.com +ifdef.net +ifdvd.com +ifewalter.com +iffuci.com +iffymedia.com +ificifin.shop +ifightexpress.com +ifinific.shop +ifixticket.com +iflix4kmovie.us +ifly.cf +ifmail.com +ifneick22qpbft.cf +ifneick22qpbft.ga +ifneick22qpbft.gq +ifneick22qpbft.ml +ifneick22qpbft.tk +ifoam.ru +ifobu.science +ifomail.com +ifoodpe19.ml +ifozgz.us +ifpodef.cf +ifpodef.ga +ifpodef.tk +ifrance.site +ifs-eventum.com +iftmmbd.org +iftzjlhlb.shop +ifunnelhack.com +ifuphere.com +ifusehosting.com +ifwda.co.cc +ifwzhzyr.shop +ifxif.com +ig.kiwi +ig.support +ig200.xyz +ig22bet.online +ig230g.online +ig44bet.online +ig7bet.online +ig9kxv6omkmxsnw6rd.cf +ig9kxv6omkmxsnw6rd.ga +ig9kxv6omkmxsnw6rd.gq +ig9kxv6omkmxsnw6rd.ml +ig9kxv6omkmxsnw6rd.tk +igalax.com +igalery.com +igallopfree.org +igame22.com +igamerandomly.buzz +igbet69.online +igbet80.site +igbobook.com +igcl5axr9t7eduxkwm.cf +igcl5axr9t7eduxkwm.gq +igcl5axr9t7eduxkwm.ml +igcl5axr9t7eduxkwm.tk +igcwellness.us +igdirfm.xyz +igdirinkucukmucitleri.com +igdirrezidans.com +ige.es +igeco.ru +igeeksoccer.org +igelonline.de +igendigits.com +igenservices.com +igg.biz +iggqnporwjz9k33o.ga +iggqnporwjz9k33o.ml +ighestpro.com +ighjbhdf890fg.cf +igimail.com +igintang.ga +iginting.cf +igiveu.win +igluanalytics.com +igmail.com +igmoo.org +ignametag.ru +ignite5.consulting +igniter.education +igniter200.com +igniteweb.net +igniteyourourney.com +ignoremail.com +ignutvie.tk +igogog.ru +igogok.ru +igoodmail.pl +igostabbet.xyz +igpicnic.site +igqtrustee.com +igra-na-stavke.site +igrai999.ru +igrat-v-igrovie-avtomati.com +igraysega.com +igros.fun +igrovieavtomati.org +igrovoi-avtomat.ru +igrovoiavtomatonline.ru +igrovoyvulcan.ru +igryn.ru +igui.buzz +igullo.site +iguofeng.com +igvaku.cf +igvaku.ga +igvaku.gq +igvaku.ml +igvaku.tk +igvault.club +igvevo.com +igwnsiojm.pl +igxppre7xeqgp3.cf +igxppre7xeqgp3.ga +igxppre7xeqgp3.gq +igxppre7xeqgp3.ml +igxppre7xeqgp3.tk +ih0hl1.us +ih2vvamet4sqoph.cf +ih2vvamet4sqoph.ga +ih2vvamet4sqoph.gq +ih2vvamet4sqoph.ml +ih2vvamet4sqoph.tk +ihae.ru +ihairbeauty.us +ihalematik.net +ihamail.com +ihankbaby.com +ihappytime.com +ihateyoualot.info +ihaveapersonalproblem.com +ihavedildo.tk +ihavenomouthandimustspeak.com +ihawk360.com +ihaxyour.info +ihazspam.ca +ihbkvw.us +ihckz1.site +ihdbt.com +iheartspam.org +ihehmail.com +ihelpubet.com +ihhjomblo.online +ihi.today +ihiministries.info +ihlopbrfm.shop +ihm6rq.com +ihmi-iiml.com +ihocmail.com +ihomail.com +ihonregre.online +ihowto.site +ihquex.com +ihsspa.com +ihtkr1.site +ihuqgr.icu +ihwyum.icu +ii062.com +ii47.com +ii57822.com +ii7665.com +iibat.site +iicdn.com +iidiscounts.com +iidiscounts.org +iidzlfals.pl +iifinder.com +iigmail.com +iigo.de +iigtzic3kesgq8c8.cf +iigtzic3kesgq8c8.ga +iigtzic3kesgq8c8.gq +iigtzic3kesgq8c8.ml +iigtzic3kesgq8c8.tk +iihonfqwg.pl +iii062.com +iii813.com +iiifans.ru +iiko-rf.ru +iikr.net +iill.cf +iillii.org +iillusionist.com +iimagesquotes.icu +iimbox.cf +iimepn.com +iimlmanfest.com +iindoxx1.info +iinlp.com +iipl.de +iiq7kv.us +iiron.us +iis.buzz +iitdmefoq9z6vswzzua.cf +iitdmefoq9z6vswzzua.ga +iitdmefoq9z6vswzzua.gq +iitdmefoq9z6vswzzua.ml +iitdmefoq9z6vswzzua.tk +iiunited.pl +iiv55.com +iivro.com +iivs8l.com +iiwumail.com +ij1iat.us +ij3j.com +ij3zvea4ctirtmr2.cf +ij3zvea4ctirtmr2.ga +ij3zvea4ctirtmr2.gq +ij3zvea4ctirtmr2.ml +ij3zvea4ctirtmr2.tk +ijdigital.com +ijerj.co.cc +ijgk9e.us +ijgur.com +ijmafjas.com +ijmail.com +ijmxty3.atm.pl +ijptm.com +ijsdiofjsaqweq.ru +ijustshared.com +ik7gzqu2gved2g5wr.cf +ik7gzqu2gved2g5wr.ga +ik7gzqu2gved2g5wr.gq +ik7gzqu2gved2g5wr.ml +ik7gzqu2gved2g5wr.tk +ik7i6iai1z8u7ok.xyz +ika4l.site +ikandewa.club +ikapia.com +ikaren-suma.ru +ikaza.info +ikbenspamvrij.nl +ikbrip.tokyo +ike3a.com +ikebal.com +ikelsik.cf +ikelsik.ga +ikelsik.gq +ikelsik.ml +ikgfrr.site +ikhyebajv.pl +iki.kr +ikilemmusic.xyz +ikimaru.com +ikimuslimngaji.com +ikingbin.com +ikke.win +ikkjacket.com +ikkookvoormijnhond.com +iklankeren.pw +iklf0.info +ikmail.com +ikmov.com +ikoplak.cf +ikoplak.ga +ikoplak.gq +ikoplak.ml +ikproekt-nn.ru +ikpz6l.pl +ikra-ufa.ru +ikreep.com +ikrijplanner.online +ikrinka-msk.ru +iktxn.com +iku.us +ikuaifang.com +ikursovik.ru +ikuvdvkp.shop +ikuzus.cf +ikuzus.ga +ikuzus.gq +ikuzus.ml +ikuzus.tk +ikvy.email +il.edu.pl +ila.ong +ilamseo.com +ilandingvw.com +ilank6.xyz +ilank7.xyz +ilank8.xyz +ilario.me +ilashed.com +ilavana.com +ilayda.cf +ilayda.ga +ilayda.tk +ilazero.com +ilbe2.cf +ilbien-paul.com +ilboard.r-e.kr +ilbombardone.com +ilcapriccio-erding.de +ilcommunication.com +ilderthers.ml +ilderthers.tk +ildivo-restaurant.com +ildz.com +ilebaz.ga +ilebaz.ml +ilebaz.tk +iledyxuu.shop +ilele.site +ilencorporationsap.com +ileqmail.com +ilh0c2.us +ilhalfpricelisting.com +ilhamhomedecorations.com +ilhandemirok.com +ilico.info +iligansocial.info +ilikespam.com +iliketndnl.com +ilikeyoustore.org +ilinkelink.com +ilinkelink.org +iliterallywrotethebook.com +iliterallywrotethebookon.com +iliterallywrotethebookonit.com +iliterallywrotethebookonitseries.com +ilivemusic.ru +iljkd.xyz +iljmail.com +iljmmz.us +ilkecza.site +ilkecza.website +ilkeczahub.club +illbeit.com +illegalize262mp.online +illinoiscentralcollege.us +illinoisfamilylawyers.xyz +illinoisuncontesteddivorce.com +illioni.shop +illistnoise.com +illnessans.ru +illumbolighus.com +illuminatedmotion.com +illuminatist.best +ilmadia.site +ilmale.it +ilmiogenerico.it +ilmiogottino.com +ilmuanmuda.com +ilnostrogrossograssomatrimoniomolisano.com +ilobi.info +iloplr.com +ilopopolp.com +ilove-apnastyle.com +ilove-vegout.com +ilove.com +ilove39.ru +ilovecorgistoo.com +iloveearthtunes.com +ilovefood-dublin.com +iloveiandex.ru +ilovemail.fr +ilovemyniggers.club +ilovemywaterbed.com +ilovepeachcobbler.com +ilovespam.com +ilpersonalepa.org +ilqlaq.download +ilrem.com +ils.net +ilsalento.info +ilschool-wiesbaden.com +ilselyhouse.co +ilsongzung.com +ilt.ctu.edu.gr +ilthomar.cf +ilthomar.ga +ilthomar.gq +ilthomar.tk +iltmail.com +iluck68.com +ilucki.net +ilumail.com +ilusila.com +ilvain.com +ilvplay.com +ilxm21.info +ilyasozkurt.online +ilyseiris.xyz +ilzida-ismagilovna.ru +im-irsyad.tech +im148.site +im4ever.com +imaanpharmacy.com +imabandgeek.com +imacpro.ml +imadgraphics.com +image0226.online +image24.de +image360windowfilm.com +imagebed.com +imageboard4free.com +imagedew.com +imagehostfile.eu +imagehouse.online +images-spectrumbrands.com +images.novodigs.com +imagesincornwall.com +imageskinston.com +imageslow.buzz +imagictech.com +imaginegiants.com +imagineinvestments.com +imaginethelearning.com +imagiscape.photography +imagiscape.photos +imagiscape.pictures +imagiscape.us +imail.seomail.eu +imail1.net +imail5.net +imail8.net +imailbox.org +imailcloud.net +imaild.com +imaillink.com +imailpro.net +imails.info +imailt.com +imailto.net +imailweb.top +imailzone.ml +imajl.pl +imakeitrain.com +imallas.com +imamail1928.cf +imamsrabbis.org +imankul.com +imanual.site +imasoft.com +imasser.info +imatrixglassdoor-reviews.com +imatrixglassdoor-reviews.net +imatrixglassdoor-reviews.org +imatrixglassdoor.info +imatrixglassdoor.org +imatrixglassdoorreviews.com +imatrixglassdoorreviews.info +imatrixglassdoorreviews.org +imavex.ru +imaxinterior.com +imbc.xyz +imbizu.com +imboondelivery.com +imbrave.site +imbricate.xyz +imbrogmptq.space +imbuyba.cf +imbuyba.ga +imbuyba.gq +imbuyba.ml +imbuyba.tk +imcyork.net +imd044u68tcc4.cf +imd044u68tcc4.ga +imd044u68tcc4.gq +imd044u68tcc4.ml +imd044u68tcc4.tk +imdbplus.com +imdesigns.me +imdisappointed.com +imdo.ru +imecjunior.org +imedgers.com +imeil.tk +imelhouse.co +imerchantinternational.com +imeretinskiyhotel.ru +imerys-indonesia.com +imesturantistic.com +imetocl.shop +imexcointernational.com +imfilons.ru +imfriendly.org +imfsiteamenities.com +imgcdn.us +imgjar.com +imgof.com +imgrpost.xyz +imgsources.com +imgupload.biz +imgv.de +imh.life +imhtcut.xyz +imhungry.xyz +imillions.se +iminform.ru +iminimalm.com +imismarketplace.info +imismarketplace.net +imitationchicken.com +imitationmilk.com +imitrex.info +imjetpack.xyz +imknurbel.cf +imknurbel.ga +imknurbel.gq +imknurbel.ml +imknurbel.tk +imlearners.net +imlivecgo.site +imlpipchat.com +immacrealty.org +immaculateused.com +immaginando.info +immail.com +immail.ml +immatetmnn.space +immediategoodness.org +immense.org +immensematurity.club +immenso-studios.com +immigratic.icu +immigrationcompliance.online +immigrationfriendmail.com +imminni.cf +imminni.gq +imminni.tk +immo-gerance.info +immobili.lease +immobiliareligure.com +immobilizes279ls.online +immortalcraft.ru +immortalizes459px.online +immortalizes61hr.online +immry.ru +immuneformulation.com +immunityone.com +immutable.chat +imnarbi.cf +imnarbi.gq +imnarbi.tk +imobiliare.blog +imoforpc.us +imolop.website +imontalika.icu +imos.site +imosowka.pl +imoutel.cf +imoutel.ga +imoutel.gq +imoutel.tk +imouto-h.xyz +imouto.pro +imovie.link +imozmail.com +impactamericanow.org +impactcommunications.us +impactonhumanity.com +impactquiz.com +impactsib.ru +impactspeaks.com +impactstat.com +impactstats.com +impactwriter.com +impairmentevaluator.com +impastore.co +impeccable.mobi +imperfectron.com +imperia-school.ru +imperia-vega.ru +imperialdynastytakeaway.com +imperialwesternbeercompany.com +imperiumoffice.com +imperiya1.ru +imperrone.com +impetus-limitless.net +impi.com.mx +impian4d2.online +implantway.ru +implausibility.info +implosblog.ru +imponfigh.cf +imponfigh.ga +imponfigh.gq +imponfigh.ml +imponfigh.tk +imported.livefyre.com +importfirst.ru +impos.melbourne +impos.mobi +imposition.online +imposter52.website +impostore.co +impotens.pp.ua +impotscoursparticuliers.com +impotsgouv.pro +impotsgouvfr.pro +impotsgouvliens.com +impregn.best +impregnator.com +impresapuliziesea.com +impressedhub.com +impressiontours.asia +impressiveelectricalandsolar.com +impressivepennystocks.com +imprezowy-dj.pl +imprimart-dz.com +imprintsoftware.com +imprisonedwithisis.com +imprisonedwithisis.org +imprisonedwithisisbook.net +imprisonedwithisisbook.org +impromptuanalytics.com +improvedtt.com +improvementshop.futbol +improveweb.store +improvolympic.com +impulse-dance.ru +impulse2019.com +impulse2019.online +impulse2019.ru +impulster.pw +imrekoglukoleksiyon.online +imrekoglukoleksiyon.xyz +imrekoglutesbih.online +imrekoglutesbih.xyz +imrew.com +ims-institute-turkey.org +ims-turkey.org +ims-turkiye.com +imsave.com +imsbet.net +imsend.ru +imsoboring.com +imsoeasy.com +imsoportland.com +imstations.com +imsuhyang.com +imswadesi.org +imtinc.us +imtolkvx.shop +imtoz.ru +imtravin.tk +imul.info +imunlocked.com +imunofan.online +imvalg.us +imw88.com +imy69.space +imysa.org +imzabet58.com +in-a-multiplesclerosistreatmentsok.live +in-a-tu-new-carok.live +in-dating.org +in-fund.ru +in-iraq.com +in-ntech.com +in-poker.net +in-poker.org +in-spinalmuscularatrophies-ok.live +in-their-words.com +in-tu-new-car-ok.live +in-tu-new-cars-ok.live +in.mailsac.com +in.vipmail.in +in2nation.online +in4mail.net +in5minutes.net +in888b.org +in888b.site +inaby.com +inacup.cf +inacup.ga +inacup.gq +inacup.ml +inacup.tk +inakmain.info +inalamd.com +inalgeria.net +inamail.com +inandout-christchurch.com +inaodongphuc.org +inapplicable.org +inappmail.com +inaptcertainmarry.site +inarbicloud.ru +inarbicrm.ru +inarbisoft.ru +inaremar.eu +inasoc.ga +inasoc.gq +inasoc.ml +inasoc.tk +inasvab.cf +inasvab.ga +inasvab.tk +inautopilot.com +inaytedodet.tk +inbaca.com +inbax.ga +inbax.ml +inbax.tk +inbet.online +inbet.pro +inbet24.net +inbet24.pro +inbet4.com +inbetz.cafe +inbidato.ddns.net +inbilling.be +inboedelverzekeringkiezen.online +inbound.plus +inbov03.com +inbox-me.top +inbox-my-articles.com +inbox.comx.cf +inbox.loseyourip.com +inbox.si +inbox2.info +inbox888.com +inboxalias.com +inboxbear.com +inboxclean.com +inboxclean.org +inboxdesign.me +inboxed.im +inboxed.pw +inboxhub.net +inboxkitten.com +inboxmail.world +inboxmails.co +inboxmails.net +inboxproxy.com +inboxstore.me +inbrisbane.org +incaltaminteoriginala.info +incaltamintesport.info +incandescent.nyc +incapacitacion.info +incapcont.cf +incapcont.ga +incapcont.gq +incarnal.pl +incasecontact.com +incastavto.ru +incbridge.net +incentibuy.net +incestry.co.uk +incirpasta.com +inclusionchecklist.com +inclusioncheckup.com +inclusiveprogress.com +incnve.com +incognitomail.com +incognitomail.net +incognitomail.org +incolnsbolton.com +incomecountry.com +incomego.ru +incomei.shop +incompletenike.org +incomservice.com +inconsopka.icu +incorian.ru +incowy.cf +incowy.gq +incowy.ml +incowy.tk +incq.com +increase5f.com +increaseed.top +increasefollower.com +increater.ru +incredibility.info +incredibleproduct.ru +incrediemail.com +incubatank.asia +incubator-hostel.com +incubatorhostel.com +incup.com +ind.st +indal23.com +indbc.com +indcomm.net +indebted.uk +indeecsam.ru +indeedasessment.com +indeedasessments.com +indeedassesment.com +indeedlebeans.com +indeedtime.us +indefathe.xyz +indelc.pw +independentclaims.info +independentimmigration.ru +independentmusiclovers.gq +independentsucks.twilightparadox.com +independentvpn.com +indepthadventures.com +indepthfishing.com +indepthicefishing.com +index-x.net +indexbuffalomaths.site +indexzero.dev +indhann.com +indi-nedv.ru +india.whiskey.thefreemail.top +india2in.com +indiacentral.in +indiadiabetesresearch.com +indiagatenutgrove.com +indiagatetakeaway.com +indiamoney.club +indian-moon-takeaway.com +indianaadoption.org +indianafootgolf.com +indianaibm.com +indianapolishairsalons.com +indianapolismortgagerates.website +indianapolisnailsalons.com +indianapolisprobateservices.com +indianarchitect.com +indianartifactbooks.com +indiancurrymonasterevin.com +indianecommerce.com +indianengineer.com +indianfracsand.com +indiannannies.net +indianoceantakeawayclonmel.com +indianpalacetakeaway.com +indianrestauranttakeaway.com +indianroyaletakeaway.com +indiansignature.com +indianxxxbabes.mobi +indianxxxbhabhi.mobi +indiaunrestmauve.site +indicting.com +indidn.xyz +indieartists.org +indieclad.com +indiego.pw +indiforce.com +indigitous.app +indigo-makiyaz.ru +indigomail.info +indir.pet +indir.red +indiratakeaway.com +indirect.ws +indirim-haberi.club +indirim-haberi.live +indirim-haberi.site +indirimfirsatlar.xyz +indirimhaberi.club +indirimmvakti.site +indirimsepetin.xyz +indirindir.net +indisgi.cf +indisgi.gq +indisgi.ml +indiszu.ga +indiszu.ml +individualbased.com +individuative.best +indmarsa.com +indo228.ninja +indo32.net +indo365.biz +indo365.ninja +indo7poker.info +indobet.com +indobet365-link.com +indobetklik.club +indobetklik.xyz +indobetting.net +indobola.us +indobola.win +indobola118.com +indobola118.info +indobola228.net +indobookies99.com +indocarib.com +indochinadestination.com +indochinadream.com +indochinahighlights.com +indofamily.tk +indofilm.store +indoforum.biz +indogame.site +indokitchen-rush.com +indokomshop.com +indoliga7.org +indoliqueur.com +indomacau88.com +indomaed.pw +indomina.cf +indomovie21.me +indonesianherbalmedicine.com +indongphuc.org +indopaito.com +indoplay303.com +indopvp.info +indosearch.shop +indoserver.stream +indosingo2.com +indosukses.press +indotagram.com +indototo.club +indototo.space +indotrader.net +indowps.com +indoxx1.live +indoxxitv.org +indozoom.net +indrawcrxa.space +indtredust.com +indulgewindow.buzz +indumento.club +indus.tech +industrialbrush.us +industrialbrushmanufacturer.us +industrialelectronica.com +industrialhome.club +industrialshapeandform.com +industryix0.com +industryleaks.com +indx-it-ggl-2.site +indx-it-ggl-3.site +indxsgpm.com +ineec.net +ineeddoshfast.co.uk +ineedmoney.com +inegollu.xyz +inegolmodef.xyz +inelav.gq +inelav.ml +inemaling.com +inend.xyz +inertiafm.ru +inet4.info +inetworkcards.com +inewx.com +inexpensivejerseyofferd.com +inf39.ru +infalco.com +infalled.com +infamisslife.com +infaqu.com +inferno.cd +inferno4.pl +infession.xyz +infest.org +inficti.ga +inficti.gq +inficti.ml +inficti.tk +infideles.nu +infilddrilemail.com +infiltraitor.com +infimedia.net +infinite-rpg.com +infinitearcher.com +infinitecoin.org +infiniteleaks.xyz +infinitevistaspress.org +infiniti-africa.club +infinitiypoker.com +infinitomail.com +infinitum.icu +infinityangelhealingpathways.com +infinitybooksjapan.org +infinityclasses.info +infinityclippingpath.com +infitter.ru +inflammationpills.info +inflatableslife.com +inflatob.cf +inflatob.ga +inflatob.gq +inflatob.ml +inflatob.tk +inflavma.cf +inflavma.ga +inflavma.gq +inflavma.ml +inflavma.tk +inflechgyc.space +inflight.media +infloo.biz +infloo.global +infloo.info +influ.network +influencersconf.com +influenceya.com +influencialladies.com +influenciapositiva.org +influenza.video +info-24tv.site +info-action-sale.space +info-b1ogs.fun +info-b1ogs.space +info-bl0gs.fun +info-blogs.fun +info-blogs.space +info-csam.site +info-easy-med.ru +info-fast-group.ru +info-klub.ru +info-radio.ml +info-tamtam.xyz +info-vendor-buy.ru +info.tm +info6.ru +info7.eus +infoaa316.xyz +infoaa317.xyz +infoaa318.xyz +infoaccount-team.news +infoads.pro +infoalgers.info +infob10gs.fun +infob10gs.space +infob1ogs.space +infobiz9.ru +infobl0gs.space +infoblanco.com +infoblogs.space +infobolamania.com +infobooks.site +infobsae.com +infobumer.ru +infochange.icu +infochartsdeal.info +infochinesenyc.info +infoclew.com +infocom.zp.ua +infocoronavirus.net +infodatas.online +infodaunemas.online +infoembaixada.com +infoembassy.com +infoentertogel.com +infofinacancas.com +infogeneral.com +infogerbangemas.xyz +infografiek.com +infografisdikbudbkt.tech +infoislamweb.com +infokehilangan.com +infolaju.com +infomail.club +infomal.ru +infomarketer.ru +infomaster.website +infomedia.ga +infomedic.icu +infomotocyclefairings.com +infomum.xyz +infomusicshop.net +infoneatwork.xyz +infonegocios.mobi +infonewmobupdate.com +infonewusermob.xyz +infopaas.com +infoportalchik.ru +infoprediksi4d.com +infoprice.tech +infoqq24jam.xyz +inform-factory-new.info +inform-mart-deal.ru +inform-new-like.ru +inform-store-active.ru +inform-union-undersell.ru +inform6-ru.xyz +informacion-residencias.com +informacion-residencias.info +informaldatingsites.com +informasikuyuk.com +informaticacaserta.com +information-account.net +information-blog.xyz +information1.biz +informatus.org +informatykbiurowy.pl +informecomomanejo.com +informed.online +informedexistence.com +informeeldaten.online +informeeldaten.space +informeledating.online +informeledatingsites.online +informeledatingsites.space +informoteur.com +inforuinfo.ru +infosdating.info +infosnet24.info +infospeak.com +infossbusiness.com +infostructor.net +infosubs.cf +infosubs.gq +infosubs.ml +infosubs.tk +infosuppository.com +infotech.info +infotoursnyc.info +infotriage.com +infouoso.com +infowaka.site +infowars.tel +infowars.video +infowellsauthmob.com +infowellsnewmob.com +infowordpress.info +infoworldcenter.info +infralium.xyz +infrastructuredevelopglobal.website +infrazoom.com +inftail.com +infusit.com +ingabhagwandin.xyz +ingamesport.store +ingcoachepursesoutletusaaonline.com +ingcoce.com +ingday.com +ingenieriasinfronteras.com +ingenieriasinfronteras.net +ingenierojorgerico.com +ingeniousturnaround.info +ingersollfootclinic.com +inggo.org +ingilterevize.eu +ingles90dias.space +ingleswinner.net +ingltech.com +ingradmap.ru +ingreso-no-voluntario.com +ingridyrodrigo.com +ingrok.win +ingrup.site +ingrup.xyz +ingyour.shop +inhalfpricedlisting.com +inhalfpricelisting.com +inhello.com +inhen.live +inhomeideas.com +inhomelife.ru +inibuatkhoirul.cf +inibuatsgb.cf +inibuatsgb.ga +inibuatsgb.gq +inibuatsgb.ml +inibuatsgb.tk +inidewa.org +iniheat.cf +iniheat.ga +iniheat.ml +iniheat.tk +inikehere.com +inikita.online +inillab.cf +inillab.gq +inillab.ml +inimprot.cf +inimprot.ga +inimprot.tk +ininghai.com +iniprm.com +inipunyakitasemua.cf +inipunyakitasemua.ga +inipunyakitasemua.gq +inipunyakitasemua.ml +inipunyakitasemua.tk +inisin.gq +inisin.tk +initialcommit.net +initium.click +initium.money +injecties.info +injhcohjq.shop +inji4voqbbmr.cf +inji4voqbbmr.ga +inji4voqbbmr.gq +inji4voqbbmr.ml +inji4voqbbmr.tk +injir.top +injuredbabydefense.com +injuryattorneyct.net +injuryattorneymckinney.com +injuryhelpnewyork.net +injurylawyersfortworth.com +inkbete90.net +inkbete90.org +inkgraphicspublicidad.com +inklend.com +inkmapper.com +inknowation.org +inkonre.cf +inkonre.ga +inkonre.gq +inkonre.ml +inkonre.tk +inlacourt.cf +inlacourt.ga +inlacourt.gq +inlacourt.ml +inlacourt.tk +inlandharmonychorus.org +inlaunceston.org +inlek.icu +inlepe.cf +inlepe.ga +inlepe.gq +inlepe.ml +inlepe.tk +inletentreatmaven.site +inlhw.us +inliafa.cf +inliafa.gq +inliafa.tk +inlightwellness.org +inlove69.com +inlovevk.net +inmail.com +inmail.site +inmail.xyz +inmail3.com +inmail92.com +inmailing.com +inmailwetrust.com +inmarsat.cd +inmebi.cf +inmebi.ga +inmebi.ml +inmebi.tk +inmisli.cf +inmisli.ga +inmisli.gq +inmisli.ml +inmisli.tk +inmobis.ru +inmoldtech.ru +inmolilla.biz +inmonorsk.com +inmotively.com +inmouncela.xyz +inmugood.cf +inmugood.ga +inmugood.gq +inmugood.ml +inmugood.tk +inmyd.ru +inmynetwork.cf +inmynetwork.ga +inmynetwork.gq +inmynetwork.ml +inmynetwork.tk +innatepm.com +innatepractice.net +innatesoft.com +innatesoft.net +inndalens.info +innercharmyogaretreats.com +innercirclemasterminds.com +innersystem.com +inni-com.pl +inno.bet +inno.tel +innoberg.com +innobet.online +innorack.net +innovap.ru +innovateccc.org +innovationbay.info +innovationira.com +innovativebacksolutions.com +innove.solutions +innoventonline.com +innstakit.site +innsystems.net +innway.biz +innya.com +inoakley.com +inoctei.cf +inoctei.ga +inoctei.tk +inoculukdb.site +inoflis.cf +inoflis.ga +inoflis.gq +inoflis.ml +inoflis.tk +inonezia-nedv.ru +inosat-turkey.com +inosatglobal.com +inoton-shop.ru +inoue3.com +inousdi.cf +inousdi.gq +inousdi.ml +inousdi.tk +inoutfiga.xyz +inoutmail.de +inoutmail.eu +inoutmail.info +inoutmail.net +inovecomvc.com +inovha.com +inower.cf +inower.ml +inower.tk +inowex.cf +inowex.gq +inowex.ml +inox.org.pl +inpa-parket.com +inpdfmanuales.xyz +inpirar.com +inplay.online +inplay.red +inplay888.org +inpoker3.net +inpoker3.org +inpos.ru +inpowiki.xyz +inppares.org.pe +inprisonwithisis.com +inprisonwithisis.net +inprisonwithisis.org +inprisonwithisisbook.org +inpursuitofyourcure.org +inpwa.com +inqmuseum.org +inquiringmind.net +inr681.us +inrahimmd.ga +inrahimmd.ml +inrahimmd.tk +inrak.site +inregistrare-domeniu.biz +inrelations.ru +inretail.ru +inrim.cf +inrim.ga +inrim.gq +inrim.ml +inrim.tk +inriverretreats.com +ins.ooo +insajderi.info +insane.nq.pl +insaneservers.com +insanity-workoutdvds.info +insanitydvdonline.info +insanityworkout13dvd.us +insanityworkout65.us +insanityworkoutcheap.us +insanityworkoutdvds.us +insanityworkoutinstores.us +insanlarunutur.com +insanumingeniumhomebrew.com +inscriptio.in +insectsupreme.icu +insellage.de +insender.info +insertswork.com +insertwhat.space +insgit.com +inshapeactive.ru +insidebizness.ru +insidecondoclub.com +insidegpus.com +insidejobboard.org +insidepcgames.com +insiderbundles.com +insidershq.info +insiemeperilpane.it +insigno.com +insipe.store +insipitnal.ru +insischildpank.xyz +insitedesignlab.com +insmathi.ml +insmathi.tk +insomniade.org.ua +insorg-mail.info +inspace-media.ru +inspira.space +inspiracjatwoja.pl +inspiraretirement.com +inspiraseniorliving.com +inspirationzuhause.me +inspiredbyspire.com +inspiredking.com +inspiremelabs.agency +inspirepulse.com +inspiringfreedom.health +insta-ground.ru +insta-info.xyz +insta-local-datings5.com +insta.monster +instabackdrop.com +instabf.ru +instaboothsnj.com +instacfg.ru +instaclever.ru +instaconfigurator.ru +instacrush.online +instad4you.info +instadp.site +instaflowers.shop +instaforex-info.ru +instafuel.space +instafun.men +instagopedia.com +instagramfood.com +instagrammableproperties.com +instagrampoker.info +instagrampoker.org +instaindofree.com +instakipcihilesi.com +instaku-media.com +instalacioneswifigj.tk +instalked.xyz +installerflas54321.xyz +installerflas65786.xyz +installing.page +instamaniya.ru +instamarks.ru +instambox.com +instamed.live +instamotornepal.com +instance-email.com +instant-job.com +instant-mail.de +instantblingmail.info +instantbummer.com +instantcriminalrecordsearch.com +instantdirectionsfinder.com +instantemailaddress.com +instantgiveaway.xyz +instantinsurancequote.co.uk +instantloans960.co.uk +instantlove.pl +instantlyemail.com +instantmail.de +instantmail.fr +instantmailaddress.com +instantnewsnow.icu +instantonlinepayday.co.uk +instantwebsites.online +instaopros.xyz +instapay.one +instapay.store +instapedia.online +instapixel.com +instaprice.co +instatienda.com +instator.ru +instatransact.org +instatrendz.xyz +instaview.org +instdownload.com +instealthmode.com +insti.shop +instinctive.marketing +instincts.online +instituciodualxarxes.org +instituteforadvancedlearning.club +institutionalizing492be.online +instmyapp.ru +instpic.club +instrutex.ru +instyle.buzz +instylerreviews.info +insulationforattics.com +insulium.com +insulize.xyz +insumixturkiye.xyz +insurance-co-op.com +insurance-company-service.com +insurance-network.us +insurance-networks.us +insuranceair.com +insurancealign.com +insurancecoverageguaranteed.com +insuranceforvendors.com +insurancenew.org +insuranceone.xyz +insuranceonlinequotes.info +insuranceopportunitymail.net +insurancereport.today +insuranceschoolofflorida.com +insurancing.ru +insurelocker.com +insureloveones.com +insurgency.stream +insurgood.com +insursystem.ru +insydney.org +insyghtssecurity.com +int-cash.ru +intadvert.com +intainfo.com +intamo.cf +intamo.gq +intamo.ml +intamo.tk +intandtel.com +intaso.cf +intaso.ga +intaso.gq +intaso.ml +intaso.tk +intblrnet.ru +intdesign.edu +intecorn.cf +intecorn.gq +intecorn.tk +integratedtelehealthsolutions.info +integrateinc.com +integrately.info +integrately.net +integrately.org +integrationiseasy.com +integreen.com +integris.dev +integritygaragedoors.info +integritypay4u.com +integrityseminar.com +integritysupport.net +intel.coms.hk +intelea.shop +intellectualhouse.ru +intellectualization195pv.online +intellectualization225oc.online +intelli.solutions +intelligence.zone +intelligencehome.ru +intelligentp.com +intellisport.net +intelliwebconcepts.com +intempmail.com +intentions-advantage.site +intentions-network.site +intentionsadvantage.site +intentsalumina.icu +intenttodestroy.org +inter-dohod.ru +interacialsimulator.com +interactio.ch +interactionpolls.com +interactiveeconomicsleak.com +interans.ru +interaxfxl.space +interbahisguncel.xyz +interbumbifi.monster +interceptor.waw.pl +interceptorfordogs.info +interceramicvpsx.com +intercom1000.ru +interent.xyz +interesno-prosto.ru +interesnoe-v-seti.ru +interesting-rus.ru +interex.money +interexchange.ong +interfxmalenow.com +interieur.cd +interiordesignideas.website +interiorimages.in +interiorin.ru +interkross.biz +interkross.org +interlockhose.com +intermax.com +intermedia-ag-limited.com +internal-resources.org +internalized343wm.online +internat-sosnovka.ru +internati.cd +international.mba +internationalconsulting.space +internationalcosplayday.com +internationale.su +internationallanguageschool.com +internationalseo-org.numisdaddy.com +internationalstudents.xyz +internationalyellow.com +internet-basvuru.site +internet-kampanyalar.online +internet-kampanyalari.online +internet-marketing-companies.com +internet-rabota-088.ru +internet-search-machine.com +internet-v-astrakhani.ru +internet-v-belgorode.ru +internet-v-kaluge.ru +internet-v-krasnodare.ru +internet-v-kurske.ru +internet-v-moskve.ru +internet-v-orle.ru +internet-v-rostove.ru +internet-v-ryazani.ru +internet-v-samare.ru +internet-v-saratove.ru +internet-v-shakhti.ru +internet-v-stavropole.ru +internet-v-tule.ru +internet-v-volgograde.ru +internet-w-domu.tk +internet.krd +internet2.dev +internetaa317.xyz +internetaboneligi.online +internetallure.com +internetbiz63.ru +internetchoice.blog +internetedirne.xyz +internetelearning.com +internetenthusiast.me +interneterzincan.xyz +internetidentityworkshop.org +internetineczanesi.xyz +internetionalbusiness.host +internetionalbusiness.site +internetmail.cf +internetmail.ga +internetmail.gq +internetmail.ml +internetmail.tk +internetmarketingcasts.com +internetmarketingperth.com +internetnetzwerk.de +internetnovine.info +internetoftags.com +internetqq59.xyz +internetreputationconsultant.com +internetsatinal.xyz +internetscanningproject.net +internetsuperpac.com +internetthings.partners +internettrends.us +internetwplusie.pl +interocoffee.com +interosis.club +interpath.com +interpreterai.com +interruption-exact.xyz +intersectinglives.net +interserver.ga +intersquared.com +interstatestashexpress.com +interstats.org +intersteller.com +interstock24.com +intertur-live.ru +interval-bistro-tallaght.com +intervesp-wood.ru +interviewingthecrisis.org +interviewproductprofits.com +intervuse.me +interwin1.net +interwin99.info +interwin99.org +intexcamp.ru +intheatrepops.xyz +inthebox.pw +inthelocalfortwortharea.com +inthenhuahanoi.com +intigame.net +intim-dreams.ru +intim-moskva.org +intim-plays.ru +intim-ryazan.ru +intimacly.com +intimeontime.info +intimiadyj.space +intimm-shop.ru +intimpremium.ru +intimred.com +intimstories.com +intiona.com +intisari.news +intoa.bar +intocommunity.org +intomail.bid +intomail.info +intort.best +intothenight1243.com +intowncm.com +intowncm.net +intrees.org +intrepidhome.tech +intrepidwarriorehab.net +intrepidwarriorrehab.net +intrested12.uk +intrinor.cf +intrinor.ga +intrinor.gq +intrinor.ml +intrinor.tk +introgeoda.com +intrusted.net +intrxi6ti6f0w1fm3.cf +intrxi6ti6f0w1fm3.ga +intrxi6ti6f0w1fm3.gq +intrxi6ti6f0w1fm3.ml +intrxi6ti6f0w1fm3.tk +intsv.net +intuicaofeminino.com +intuitivemachine.com +intuthewoo.com.my +intutivemachine.com +intutivemachines.com +intyre.ru +inuitartsurvey.com +inulpkr.info +inunglove.cf +inunmomento.com +inupab.cf +inupab.tk +inuvu.com +inv.moe +invadarecords.com +invalidmarket.ru +invelmex.com +inventiondevfund.com +inventory2web.com +invergroveheightsapartments.com +invert.us +invertrax.com +invesdaba.com +investart.hk +investering-solenergi.dk +investfxlearning.com +investhaiti.org +investigator.cloud +investinemsworkers.com +investingtur.com +investinhaiti.org +investirparagarantir.com +investithub.com +investmentbeaver.com +investoday.info +investor.xyz +investore.co +investovanie.plus +investpartners.win +investpress.ru +investrus.top +investsan.com +investsmartusa.net +investtips.club +investxxtrade.ru +inveteracies.best +invict.ml +invictawatch.net +invictus.games +invictuswebportalservices.com +inviersu.com +invincible-wear.com +invisiblevalid.buzz +invistechitsupport.com +inviteevbzw.email +invitepal.com +invizair.com +invoicing.page +involvementpractice.com +invopeo.org +invql.com +invsetpo.cf +invsetpo.tk +invtribe01.xyz +invtribe02.xyz +invtribe03.xyz +invtribe05.xyz +inw88.com +inwebmail.com +inwebtm.com +inweightlossinfoesok.live +inwmail.net +inxto.net +inzh-s.ru +inzicht-uden.online +inzni.com +io-scan.info +io-wallet-lite.info +ioa-s.icu +iob.capital +iobar.club +iobcasino.com +iocb.info +iocloud.su +iodic.agency +iodizc3krahzsn.cf +iodizc3krahzsn.ga +iodizc3krahzsn.gq +iodizc3krahzsn.ml +iodizc3krahzsn.tk +iodog.com +ioemail.win +ioetr.us +iof09.space +ioio.eu +iolkjk.cf +iolkjk.ga +iolkjk.gq +iolkjk.ml +iolokdi.ga +iolokdi.ml +iomail.com +ion-craft.ru +ionando.shop +ionazara.co.cc +ionb1ect2iark1ae1.cf +ionb1ect2iark1ae1.ga +ionb1ect2iark1ae1.gq +ionb1ect2iark1ae1.ml +ionb1ect2iark1ae1.tk +ionbet.com +ionemail.net +ionianpharm.com +ionionweb.com +ionot.xyz +ionqq.org +ionutadriansegarceanu.com +ionwiont.shop +iopgox.ru +ioplo.com +iopmail.com +iopmail.net +iorbita.ru +iordan-nedv.ru +iordanii.ru +iosglyphs.com +iosil.info +iostwatch.com +iosvzq.site +iot.aiphone.eu.org +iot.dmtc.dev +iot.ptcu.dev +iot.vuforia.us +iotaph.ink +iotatheta.wollomail.top +iothome.dev +iothomesmart.com +iothx.club +iotjf.club +iotrh5667.cf +iotrh5667.ga +iotrh5667.gq +iotrh5667.ml +iotu.creo.site +iotu.de.vipqq.eu.org +iotu.hstu.eu.org +iotu.nctu.me +iotuitive.org +ioubuy.com +ioucai.xyz +iouiwoerw32.info +iouy67cgfss.cf +iouy67cgfss.ga +iouy67cgfss.gq +iouy67cgfss.ml +iouy67cgfss.tk +iov.fund +iowachevron.com +iowacityrealestateagents.com +iowaexxon.com +iowagstatic.com +iowametaldesigns.net +iowanvidia.com +iowd.info +ioxmail.net +iozak.com +iozduc.site +ip.webkrasotka.com +ip23xr.ru +ip3qc6qs2.pl +ip4.pp.ua +ip4k.me +ip6.li +ip6.pp.ua +ip7.win +ip91vpn.com +ipad2preis.de +ipad3.co +ipad3.net +ipad3release.com +ipaddlez.info +ipadhd3.co +ipadrecovery.net +ipadzzz.com +ipan.info +ipapa.ooo +iparkandcharge.com +iparladmin.com +iparts96.ru +ipasvnzm.shop +ipay-i.club +ipay-m.club +ipb789.xyz +ipdeer.com +ipdf.site +ipekecza.com +ipeksnfktx31617.ml +ipelectronics.com +ipemail.win +ipervo.site +ipffans.xyz +ipfs.ru +ipgenerals.com +ipharchenko.ru +iphd.online +iphone-ipad-mac.xyz +iphone.best +iphone.gb.net +iphoneaccount.com +iphoneandroids.com +iphonebestapp.com +iphonees.info +iphonemail.cf +iphonemail.ga +iphonemail.gq +iphonemail.tk +iphonemsk.com +iphoneonandroid.com +iphonerestor.ru +iphonex-shop.ru +ipictures.xyz +ipimail.com +ipindetail.com +ipinfo.pub +ipingfan.com +ipiranga.dynu.com +ipiurl.net +ipizza24.ru +ipjckpsv.pl +ipl-schedule.com +iplaytv.org +ipledger.ru +ipledges.info +iplusplusmail.com +iplusworld.com +ipmaximus.ru +ipmonline.online +ipnfo.com +ipo-network.com +ipochta.gq +ipoczta.waw.pl +ipod-app-reviews.com +ipofnmicrocap.com +ipofnnewissues.com +ipofnvideo.com +ipolopol.com +ipoo.org +ipoodle.ru +iposmobi.xyz +iposta.ml +ipostpix.com +ipoteka-samara.info +ippandansei.tk +ippexmail.pw +ipractice.ch +iprayercenter.net +ipriva.com +ipriva.info +ipriva.net +iprocom.ru +iproject.tech +iprzbgsl.shop +ipsur.org +ipsuztqg.shop +ipswell.com +iptv.ski +iptvcccam.club +iptvmaximum.online +iptvpro.host +iptvservice.info +ipuccidresses.com +ipukta.site +ipuyallup.com +ipv4xchange.net +ipv6-addr.com +ipv6-addr.info +ipv6-addr.org +ipv6-addr.pro +ipv6-addr.us +ipv6-addr.zone +ipveez.us +ipvideo63.ru +ipw88.com +ipyzqshop.com +iq1.live +iq2kq5bfdw2a6.cf +iq2kq5bfdw2a6.ga +iq2kq5bfdw2a6.gq +iq2kq5bfdw2a6.ml +iq888.life +iq8apc.us +iq8xt.info +iqamail.com +iqazmail.com +iqbaby-toys.ru +iqcfpcrdahtqrx7d.cf +iqcfpcrdahtqrx7d.ga +iqcfpcrdahtqrx7d.gq +iqcfpcrdahtqrx7d.ml +iqcfpcrdahtqrx7d.tk +iqclubs.com +iqemail.win +iqhlenvz.site +iqjiuo.us +iqjty8.us +iqmail.com +iqos33.com +iqpay-kr.site +iqprofx.biz +iqsfu65qbbkrioew.cf +iqsfu65qbbkrioew.ga +iqsfu65qbbkrioew.gq +iqsfu65qbbkrioew.ml +iqsfu65qbbkrioew.tk +iqumail.com +iqvydg.us +iqxyziua.shop +iqzzfdids.pl +ir-pow.com +ir101.net +ir35contractorguide.com +ir4.tech +irabops.com +iraess.pw +irahardwarewallet.com +irainvestmentadviser.com +irainvestmentadvisers.com +irainvestmentadvisors.com +irajaan.dev +iral.de +irallc.net +iran-nedv.ru +iran1music.com +iranartan.com +iranbounce.com +iranbourse.co +iranecar.org +iranfilms.email +iranforums.shop +iranfsc.org +iranian-export.com +iraniom.club +iranluxury.tours +iranmarket.info +iranpb2.com +iranpb9.com +iranromabet.net +iransdjkk47627.ml +iransdjkk47627.tk +iranvolvos.info +iraq-nedv.ru +iraqbazar.com +iraqbazzar.com +iraqi-iod.net +iraqoilreport.net +iraud.info +iravag.com +irc.so +ircbox.xyz +ircdrive.com +ircdrive.net +irdnd.live +ireccomend.ru +irecired.shop +iredirect.info +irefurbishlcd.com +iremail.com +iremel.cf +iremel.gq +iren24.ru +irfnd1.site +irhfa.com +iridesgame.com +iridium-mlm.org +irimfi.cf +irimfi.gq +irimfi.ml +irimfi.tk +irina-kusik.ru +irinaeunbebescump.com +irish2me.com +irishcert.com +irishharppub.com +irishspringrealty.com +iriver-grant.ru +irknim.ru +irland-nedv.ru +irlandia4d.info +irlmail.com +irmail.com +irmoycos.cf +irmoycos.ga +irmoycos.gq +irmoycos.ml +irmoycos.tk +irnipich.site +irobotlab.ru +iroid.com +iroirorussia.ru +irolli.se +irolpccc.com +irolpo.com +iron-dd.ru +iron-pet.com +iron-pets.com +ironcompany.net +ironfire.net +ironflagcompany.org +irongalaxy.com +ironhorsegamessite.club +ironiebehindert.de +ironmall.org +ironmantriathlons.net +ironside.systems +ironsodiumlazy.website +ironsshop.live +ironwoodresearch.biz +irovonopo.com +irpanenjin.com +irper.com +irpishbini2.com +irpjg1.site +irqgbs.site +irr.kr +irreproductive.best +irsanalysis.com +irsguidelines.net +irssi.tv +irti.info +irtrade.org +irtranslate.net +irum6v.info +irussoturisto.ru +irvegasbet.com +irvineeldercare.com +irvinewebconsulting.com +irvingaccidentlawyers.com +irvingnailsalons.com +irvingpersonalinjuryattorney.com +irvingpersonalinjuryattorneys.com +irvingpersonalinjurylawyers.com +irwvsm.com +irxxz.live +irydoidy.pl +is-the-bestway.ru +is-zero.info +is.af +is35.com +isabe2017.com +isabellahunt.buzz +isabellasfund.com +isabelmarant-sneaker.us +isabelmarants-neakers.us +isabelmarantshoes.us +isabelmarantsneakerssonline.info +isabgolhusk.com +isac-hermes.com +isachermeskelly.com +isaclongchamp.com +isacmar.ga +isacmar.gq +isacmar.ml +isacmar.tk +isadiva.com +isaffshop.store +isaidmaybe.online +isaimini.app +isaiminida.org +isaiminii.buzz +isaiminii.host +isaiminiya.org +isamy.wodzislaw.pl +isaps.ru +isbetter20.xyz +isbgpsafe.com +isbjct4e.com +isblip.com +iscacorp.com +isccall.com +iscfrc.com +iscidayanismasi.org +iscover.press +isdaq.com +isdp.ong +ise4mqle13.o-r.kr +isecsystems.com +iseeprojects.com +isekaiplay.com +isellnow.com +isemail.com +isemmm.org +isen.pl +isensy.ru +iservis.ist +isf4e2tshuveu8vahhz.cf +isf4e2tshuveu8vahhz.ga +isf4e2tshuveu8vahhz.gq +isf4e2tshuveu8vahhz.ml +isf4e2tshuveu8vahhz.tk +isfahantourism.info +ishchi-tut.online +isherz.net +ishetalgedaan.site +ishi-tut.online +ishis.site +ishkinn.ru +ishockey.se +ishootlandscapes.com +ishootraw.net +ishop-go.ru +ishoppress.com +ishuhome.com +isi-group.ru +isi-tube.com +isilrecber.com +isimnumara.com +isistakeaway.com +isitrainingatmyhouse.com +isitright4you.com +isittheworldcup.info +isitts.club +isjer.icu +iskcondc.org +iskus-elki.ru +islam.igg.biz +islamicwisdomsummit.com +islamm.cf +islamm.gq +islandbreeze-holidays.com +islanderapp.com +islandholidays-maldives.com +islandhost.club +islandi-nedv.ru +islandkeysproperty.com +islandmc.net +islandpaycards.com +islandproperties.info +islandrisers.com +islesfoundation.com +isletmeoyunlari24.com +isletmeyorum.com +ismailgul.net +ismcentral.online +ismem.ru +ismyannuityadvisor.com +ismyconsultant.com +ismyfinancialadvisor.com +ismykek.xyz +ismyspecialist.com +isnapbet2020.xyz +isncwoqga.pl +isnipeit.net +isobelcarter.buzz +isocar.ru +isochor.site +isocials.online +isolationideas.info +isomnio.com +isophadal.xyz +isosq.com +isostamp.org +isot.se +isotac.site +isotretinoinacnenomore.net +isp.fun +ispartaligheyeti.xyz +ispartamutluapartlari.com +ispartaonuryurtlari.xyz +ispbd.xyz +ispeak-spoke-spoken.info +ispeak-spoke-spoken.net +ispeak-spoke-spoken.org +ispeshel.com +ispuntheweb.com +ispyco.ru +israel-international.de +israel-nedv.ru +israelibandages.ru +israelserver2.com +israelserver3.com +israelserver4.com +isrindustrialsafetyandrescue.com +issamartinez.com +issanda.com +issizkalmayalim.ga +issizkalmayalim.ml +issizkalmayalim.tk +isslab.ru +issthnu7p9rqzaew.cf +issthnu7p9rqzaew.ga +issthnu7p9rqzaew.gq +issthnu7p9rqzaew.ml +issthnu7p9rqzaew.tk +isstitap.cf +isstitap.gq +issuebless.us +issueca.icu +issuechas.xyz +issueenf.xyz +issuerat.xyz +issuerati.xyz +ist-genial.at +ist-genial.info +ist-genial.net +istabbettingsnapp.xyz +istabbettsnupp2020.xyz +istabetingsnup.xyz +istabetsnup.xyz +istabetting.xyz +istabilbettingsnap.xyz +istabilbettsnapp.xyz +istabilitybetsnapp.xyz +istabilitybettingsnapp.xyz +istahkapayici.site +istakalisa.club +istanbularbitrationcentre.org +istanbulbga.com +istanbulcasino10.com +istanbulcasino11.com +istanbulcasino12.com +istanbulcasino14.com +istanbulcasino15.com +istanbulcasino16.com +istanbulcasino17.com +istanbulcasino18.com +istanbulcasino19.com +istanbulcasino20.com +istanbulcasino21.com +istanbulcasino22.com +istanbulcasino23.com +istanbulcasino25.com +istanbulcasino26.com +istanbulcasino27.com +istanbulcasino28.com +istanbulcasino29.com +istanbulcasino30.com +istanbulcasino31.com +istanbulcasino32.com +istanbulcasino33.com +istanbulcasino34.com +istanbulcasino4.com +istanbulcasino43.com +istanbulcasino45.com +istanbulcasino47.com +istanbulcasino5.com +istanbulcasino53.com +istanbulcasino54.com +istanbulcasino6.com +istanbulcasino60.com +istanbulcasino8.com +istanbulcasino87.com +istanbulcasino98.com +istanbulcdmbg.org +istanbuldabayan.xyz +istanbulemlakuskudar.com +istanbulescorthatti.com +istanbulnights.eu +istanbulrehberleri.com +istanbulservisicagrimerkezi.xyz +istanbulsiiri.com +istatth.shop +istearabul.site +istii.ro +istinaf.net +istirdad.website +istlecker.de +istmail.tk +istnistr.shop +istoktepla.ru +istore-x.ru +istreamingtoday.com +istroimvse.ru +isukrainestillacountry.com +isupportheroes.com +isutdnov.shop +isuzu-argentina.club +isuzuserviskirsehir.xyz +isvegan.com +isvsrr.icu +isweetuni.best +isxuldi8gazx1.ga +isxuldi8gazx1.ml +isxuldi8gazx1.tk +isyouco.space +isyourspecialist.com +isyszh.icu +iszkft.hu +it-a-maculardegenerationok.live +it-an-oxygenconcentratorsok.live +it-awt.ru +it-everyday.com +it-expert-service.ru +it-italy.cf +it-italy.ga +it-italy.gq +it-italy.ml +it-italy.tk +it-miracles.net +it-nativesuvs-wish.live +it-obuv.ru +it-service-in-heidelberg.de +it-service-sinsheim.de +it-shoponline.info +it-simple.net +it-smart.org +it-support-shanghai.com +it-ua.ru +it-vopros.ru +it2-mail.tk +it2sale.com +it7.ovh +it996.fun +itailorphuket.com +itajaivip.com +italia.flu.cc +italia.igg.biz +italiaaffitta.click +italianpads.com +italianspirit.pl +italiavendecommerciale.com +italiavendecommerciali.com +italiavendecommerciali.online +italienbuchen.com +itallmatters.us +italpostall.com +italsalz.shop +italy-mail.com +italy-nedv.ru +italyborselvoutlet.com +italysource.com +itangkas88.biz +itangkas88.net +itaropicve.space +itascahealthandchiropractic.com +itaspanishautoinsurancebay.live +itaspanishautoinsurancebig.live +itaspanishautoinsurancebuy.live +itaspanishautoinsurancefab.live +itaspanishautoinsurancefed.live +itaspanishautoinsurancehub.live +itaspanishautoinsurancemax.live +itaspanishautoinsurancenow.live +itaspanishautoinsuranceone.live +itaspanishautoinsurancerun.live +itaspanishautoinsurancetop.live +itboa.org +itcat.zone +itcelf.com +itchapchap.com +itchsoberlyleap.website +itchyeye.xyz +itchytoes.net +itclub-smanera.tech +itcompu.com +itdeinter.cf +itdeinter.ga +itdeinter.gq +itdeinter.ml +itdeinter.tk +itdesi.com +iteachnet.com +itech-versicherung.de +itechtrands.xyz +itechweb.com +itecsgroup.org +itefus.cf +itefus.ga +itefus.gq +itefus.tk +itekc.com +itele.com +itemailing.com +itemef.bid +itemp.email +itempmail.tk +itestdomain.com +itfast.net +itfeed.net +itfenxi.com +itfilmes.ru +itfinity.space +itfornonit.com +itgire.ga +itgire.gq +itgire.ml +itgire.tk +itgmusic.net +itgracevvx.com +itgunity.com +ithacavineyard.com +ithallamineparke.xyz +ithconbi.ml +ithconbi.tk +ithebettsnaps.xyz +itibmail.com +itid.info +itidata.asia +itidata.global +itidata.nyc +itilchange.com +itinmar.cf +itinmar.ga +itinmar.gq +itinmar.ml +itinmar.tk +itiomail.com +itis0k.com +itiseurope.com +itj.cloud +itjustmail.tk +itks-it.ru +itks6xvn.gq +itksit.ru +itlawer.ru +itleadersfestival.com +itlek.ru +itm311.com +itmailbox.info +itmailing.com +itmailr.com +itmepher.ga +itmepher.gq +itmepher.tk +itmiracles.net +itmiracles.org +itmlekethaber.online +itmlogistics.ru +itmtx.com +itnews-group.ru +itnewsport.ru +itnfo.com +itntk.ru +itntucson.com +itoasatinal.com +itogether.club +itoh.de +itoldtech.org +itomo.ru +itopif.online +itoup.com +itoxwehnbpwgr.cf +itoxwehnbpwgr.ga +itoxwehnbpwgr.gq +itoxwehnbpwgr.ml +itoxwehnbpwgr.tk +itpasszone.net +itpbppjhj.shop +itportalnews.ru +itqabkastz.fun +itraconazolbivir.website +itregi.com +itrends.site +itrental.com +itreplace.com +itri.de +itromail.hu +its-systems.com +its0k.com +its6am.com +itsamainething.com +itsappt.com +itsbox.site +itscaptain.com +itsdata.org +itsdoton.org +itsecpackets.com +itserveis.com +itsgood2berich.com +itshopwom.site +itsiconsulting.com +itsjiff.com +itsme.edu.pl +itsmenotyou.com +itspanishautoinsurancebuy.live +itspanishautoinsurancefab.live +itspanishautoinsurancefed.live +itspanishautoinsuranceget.live +itspanishautoinsurancejet.live +itspanishautoinsurancekey.live +itspanishautoinsurancemax.live +itspanishautoinsurancenew.live +itspanishautoinsuranceray.live +itspanishautoinsurancesbig.live +itspanishautoinsurancesbuy.live +itspanishautoinsurancesfan.live +itspanishautoinsurancesget.live +itspanishautoinsuranceshub.live +itspanishautoinsurancesjet.live +itspanishautoinsuranceskey.live +itspanishautoinsurancesnew.live +itspanishautoinsurancesnow.live +itspanishautoinsurancesrad.live +itspanishautoinsurancesray.live +itspanishautoinsurancesrun.live +itspanishautoinsurancestop.live +itspanishautoinsurancesway.live +itspanishautoinsurancetab.live +itspanishautoinsurancetop.live +itsrecess.com +itsshelbystyles.com +itst.icu +itsworldcongress2019.com +itsx.icu +itsyogacincinnati.com +ittina.cf +ittina.ga +ittina.gq +ittina.ml +ittina.tk +ittool.host +ittybittybayou.com +itue33ubht.ga +itue33ubht.gq +itue33ubht.tk +itunes-soft.ru +itunesgiftcodegenerator.com +itutiod.ru +itvends.com +itw88.com +itxiaom.online +itxsector.ru +itymail.com +ityys.xyz +iu54edgfh.cf +iu54edgfh.ga +iu54edgfh.gq +iu54edgfh.ml +iu54edgfh.tk +iu66sqrqprm.cf +iu66sqrqprm.ga +iu66sqrqprm.gq +iu66sqrqprm.ml +iu66sqrqprm.tk +iuavc.info +iubuf.live +iuemail.men +iufs.xyz +iuil87l.live +iulconsultant.com +iumail.com +iuporno.info +iuroveruk.com +iuruena.buzz +iusecoins.com +iut78.com +iuvmpixel.net +iuxguy.tokyo +iuzyqp.us +iv-fr.net +iv3xdy.us +iv4vp.site +iv51g4f4.info +ivalli.com +ivan-topor.ru +ivans.me +ivant-eml.ru +ivant-sr.ru +ivant-srn.ru +ivant-srv.ru +ivant-srw.ru +ivantineurons.org +ivantiselfheal.com +ivb2aa.us +iveai.com +ivecotrucks.cf +ivecotrucks.ga +ivecotrucks.gq +ivecotrucks.ml +ivecotrucks.tk +ivedisease.com +ivehiv.com +iveszics.com +ivfufc.cf +ivgxsljxu.shop +ivideo1.com +ivii.ml +ivipo.com +iviruseries3.ru +ivizx.com +ivmail.com +ivoiviv.com +ivonline.live +ivory-coast.com +ivosimilieraucute.com +ivprazdnik.ru +ivprictia.cf +ivprictia.ga +ivprictia.ml +ivprictia.tk +ivprm.live +ivrm.email +ivs3pb.com +ivsusi.cf +ivsusi.ga +ivsusi.gq +ivsusi.ml +ivsusi.tk +ivuhma.tokyo +ivuhmail.com +ivyandmarj.com +ivybotreviews.net +ivycompete.com +ivyevans.org +ivylim.com +ivysheirlooms.net +ivystocks.com +iw0cef.us +iw409uttadn.cf +iw409uttadn.ga +iw409uttadn.gq +iw409uttadn.ml +iw409uttadn.tk +iwanaga-morito.online +iwanbanjarworo.cf +iwancorp.cf +iwankopi.cf +iwannagoto.space +iwantto.be +iwanttointerviewyou.com +iwanttoms.com +iwantumake.us +iwapr.net +iwasbornready.net +iwebtm.com +iwerxdesign.com +iwi.net +iwin.ga +iwishiwereyoubabygirl.com +iwkb7o.com +iwkfa.com +iwmfuldckw5rdew.cf +iwmfuldckw5rdew.ga +iwmfuldckw5rdew.gq +iwmfuldckw5rdew.ml +iwmfuldckw5rdew.tk +iwoc.de +iworld-travel.ru +iwrk.ru +iwrservices.com +iwrservices.net +iwsi.ru +iwuhan.net +iwv06uutxic3r.cf +iwv06uutxic3r.ga +iwv06uutxic3r.gq +iwv06uutxic3r.ml +iwv06uutxic3r.tk +iwykop.pl +ix.pxwsi.com +ix9bal.us +ixaks.com +ixfwfabka.shop +ixisagency.com +ixkrofnxk.pl +ixkxirzvu10sybu.cf +ixkxirzvu10sybu.ga +ixkxirzvu10sybu.gq +ixkxirzvu10sybu.ml +ixkxirzvu10sybu.tk +ixtwhjqz4a992xj.cf +ixtwhjqz4a992xj.ga +ixtwhjqz4a992xj.gq +ixtwhjqz4a992xj.ml +ixtwhjqz4a992xj.tk +ixvfhtq1f3uuadlas.cf +ixvfhtq1f3uuadlas.ga +ixvfhtq1f3uuadlas.gq +ixvfhtq1f3uuadlas.ml +ixvfhtq1f3uuadlas.tk +ixx.io +ixxnqyl.pl +ixxycatmpklhnf6eo.cf +ixxycatmpklhnf6eo.ga +ixxycatmpklhnf6eo.gq +ixyncm.us +ixyrgr.us +ixzcgeaad.pl +ixzuln.info +iy47wwmfi6rl5bargd.cf +iy47wwmfi6rl5bargd.ga +iy47wwmfi6rl5bargd.gq +iy47wwmfi6rl5bargd.ml +iy47wwmfi6rl5bargd.tk +iy54ac.us +iyadqadi.com +iyaomail.com +iyapk.poker +iyeni.com +iyerb.com +iyikidevarim.com +iying65.com +iying67.com +iying69.com +iymail.com +iyomail.com +iyongcaplong.com +iyouwe.com +iytyicvta.pl +iyumail.com +iyyimlnsnnbr77867.ga +iyyimlnsnnbr77867.tk +iyyimlnsnnbr90946.ml +iyyimlnsnnbr90946.tk +iz0tvkxu43buk04rx.cf +iz0tvkxu43buk04rx.ga +iz0tvkxu43buk04rx.gq +iz0tvkxu43buk04rx.ml +iz0tvkxu43buk04rx.tk +iz3oht8hagzdp.cf +iz3oht8hagzdp.ga +iz3oht8hagzdp.gq +iz3oht8hagzdp.ml +iz3oht8hagzdp.tk +iz4acijhcxq9i30r.cf +iz4acijhcxq9i30r.ga +iz4acijhcxq9i30r.gq +iz4acijhcxq9i30r.ml +iz4acijhcxq9i30r.tk +iz5kf.us +izbahis.com +izbashop.ru +izbe.info +izbud1.site +izbunet.ru +izbzm.com +izcmqm.com +izemail.com +izendustriyel.org +izeqmail.com +izhevsk24.ru +izhsmi.site +izibankrot.xyz +izicmil.cf +izicmil.ga +izicmil.gq +izicmil.ml +izicmil.tk +izip.site +izkyqr.xyz +izlvsmyl.shop +izmail.net +izmenamuzha.ru +izmir35gayrimenkul.xyz +izmirasmolen.com +izmiringilizcedilkursu.com +izmirotomobil.xyz +izmirseyirtepe.net +izmitvestelservis.com +izmoscowpo.ru +iznai.ru +izobretateli59.ru +izolacja-budynku.info.pl +izoli9afsktfu4mmf1.cf +izoli9afsktfu4mmf1.ga +izoli9afsktfu4mmf1.gq +izoli9afsktfu4mmf1.ml +izoli9afsktfu4mmf1.tk +izquierdadiario.org +iztaki.xyz +izuba.cd +izvif.us +izwuhkxra.shop +izzum.com +j-b.us +j-jacobs-cugrad.info +j-keats.cf +j-keats.ga +j-keats.gq +j-keats.ml +j-keats.tk +j-labo.com +j-land.ru +j-p.us +j-response.com +j.aq.si +j.fairuse.org +j.polosburberry.com +j.rvb.ro +j0axz.online +j0hoi.us +j0mail.com +j0mail.net +j15ug1ltxd7iugr.xyz +j1zr8d.us +j24blog.com +j25bk.com +j275xaw4h.pl +j29yg.com +j2anellschild.ga +j2chnu.space +j2ltgr.us +j2ukcy.us +j2voip.com +j2websolutions.com +j30nz.space +j3j.org +j3nn.net +j3olp.icu +j3rik.info +j3rqt89ez.com +j3xbes.us +j4ckpd.us +j4hyc.us +j4rang0y4nk.ga +j54wn.site +j59nx.site +j5kic.us +j5thwu.us +j5vhmmbdfl.cf +j5vhmmbdfl.ga +j5vhmmbdfl.gq +j5vhmmbdfl.ml +j5vhmmbdfl.tk +j6ax1l.us +j6ev3l.space +j6gpvz.us +j6qr1q.us +j6qwq4.host +j7.cloudns.cx +j7665.com +j7cnw81.net.pl +j7exus.com +j8-freemail.cf +j80zn.site +j83tb.site +j85xm.com +j876.biz +j8ivlsb169o2w4t.xyz +j8k2.usa.cc +j8pxy.us +j8rigs.us +j90jj.com +j90yb.com +j9356.com +j94gq.space +j9dtuy.site +j9gekl.us +j9gzp3.us +j9k.org +j9rxmxma.pl +j9ysy.com +jaaj.cf +jaalaa4.xyz +jaanv.com +jaarvandemolens.online +jaat.live +jabatankopi.com +jabberflash.info +jabbyhotel.online +jabiruowners.org +jabkagames.ru +jabpid.com +jabqjgxo.shop +jacalyhouse.co +jaccede.net +jacckpot.site +jacity.site +jack762.info +jackaoutlet.com +jackdouglas.online +jackets-monclers-sale.com +jacketwarm.com +jackhansen.net +jackiespetsupply.com +jackjackjack.net +jackkyvn.space +jackleg.info +jackmailer.com +jacknini.cf +jacknini.ml +jacknini.tk +jackopmail.tk +jackpire.com +jackpot-info.ru +jackpotjoy.biz +jackpotred.nu +jackqueline.com +jackreviews.com +jackro.online +jackrosi.ml +jacksonbarton.com +jacksonhole.homes +jacksonhole.house +jacksonsshop.com +jacksonvillequote.com +jackstale.com +jackychan3.website +jackymail.top +jacmelinter.xyz +jacobmorgancapital.com +jacobsewell.com +jacops.art +jacquaknga.online +jacquardcurtain.com +jacquelhouse.co +jacquelx.com +jacques-thomann.com +jad32.cf +jad32.ga +jad32.gq +jade-as9.com +jadecourtmeal.com +jades-garden.com +jadeschoice.com +jadikedi.club +jadku.icu +jadopado.com +jadotech.com +jadwalbola.link +jaelyn.amina.wollomail.top +jaewoong.net +jaewoonglee.com +jafethuis.shop +jaffao.pw +jafhd.com +jafps.com +jafrem3456ails.com +jafufq.us +jagadgurubhanpura.info +jagdglas.de +jaggernaut-email.bid +jaggernautemail.bid +jaggernautemail.trade +jaggernautemail.win +jaggov.com +jaggtrk.site +jagongan.ml +jagr88.net +jagritiinnohealth.net +jaguar-landrover.cf +jaguar-landrover.ga +jaguar-landrover.gq +jaguar-landrover.ml +jaguar-landrover.tk +jaguar-xj.ml +jaguar-xj.tk +jaguartoto.online +jaguarxtype.info +jah8.com +jaheen.info +jahgsthvgas12458.cf +jahgsthvgas12458.ga +jahgsthvgas12458.ml +jahgsthvgas12458.tk +jahgsthvgas20470.cf +jahgsthvgas20470.ga +jahgsthvgas20470.ml +jahgsthvgas20470.tk +jahgsthvgas21231.ml +jahgsthvgas21231.tk +jahgsthvgas21936.cf +jahgsthvgas21936.ga +jahgsthvgas21936.ml +jahgsthvgas21936.tk +jahgsthvgas72260.ml +jahgsthvgas72260.tk +jahgsthvgas74241.ml +jahgsthvgas74241.tk +jahgsthvgas75373.cf +jahgsthvgas75373.ga +jahgsthvgas75373.ml +jahgsthvgas75373.tk +jahgsthvgas99860.cf +jahgsthvgas99860.ga +jahgsthvgas99860.ml +jahgsthvgas99860.tk +jaijaifincham.ml +jailscoop.com +jaimenwo.cf +jaimenwo.ga +jaimenwo.gq +jaimenwo.tk +jaimihouse.co +jaiwork-google.ml +jajomail.com +jajsus.com +jajxz.com +jak-szybko-schudnac.com +jakefaulkner.buzz +jakepearse.com +jakesfamous.us +jakesfamousfoods.info +jakesfamousfoods.org +jakf.email +jakiyo.site +jakjtavvtva8ob2.cf +jakjtavvtva8ob2.ga +jakjtavvtva8ob2.gq +jakjtavvtva8ob2.ml +jakjtavvtva8ob2.tk +jakschudnac.org +jakubos.yourtrap.com +jalcemail.com +jalcemail.net +jalhaja.net +jalicodojo.com +jalushi.best +jalynntaliyah.coayako.top +jam4d.asia +jam4d.biz +jam4d.store +jama.trenet.eu +jamabos.buzz +jamaicaawareness.net +jamaicarealestateclassifieds.com +jamaicatirediscountergroup.com +jamalfishbars.com +jamalwilburg.com +jamaw-ewad.ru +jambcbtsoftware.com +jambuseh.info +jambuti.com +jamcatering.ru +jamcup.xyz +jamel.com +jamere.site +jamesbild.com +jamesbond.flu.cc +jamesbond.igg.biz +jamesbond.nut.cc +jamesbond.usa.cc +jamesbradystewart.com +jamesejoneslovevader.com +jamesfabiebailbonds.com +jamesharris.net +jameskutter.com +jamesmaylovescabbage.xyz +jamesorjamie.com +jameszol.net +jameszol.org +jametjay.com +jamiecantsingbroo.com +jamiecooper.buzz +jamieisprouknowit.com +jamielayne.com +jamiesnewsite.com +jamieziggers.nl +jamikait.cf +jamikait.ga +jamikait.gq +jamikait.ml +jamisonadvertising.com +jamit.com.au +jammytoastfrog.com +jampamovel.tk +jamstats.com +jamusic.online +jan-sramek.com +jan64b.space +janatatelevision.com +jancloud.net +jancok.in +jancokancene.cf +jancokancene.ga +jancokancene.gq +jancokancene.ml +jancokcp.com +jancoklah.com +jancuk.tech +jancukqq.com +jandaulet.ru +jandetin.cf +jandetin.ga +jandetin.gq +jandetin.ml +jandetin.tk +jandjfloorcovering.com +janekimmy.com +janet-online.com +janeweb.ru +janewsonline.com +janganjadiabu1.tk +janganjadiabu10.gq +janganjadiabu2.ml +janganjadiabu3.ga +janganjadiabu4.cf +janganjadiabu5.gq +janganjadiabu6.tk +janganjadiabu7.ml +janganjadiabu8.ga +janganjadiabu9.cf +jangkrikbosku.com +jangtec.com +janicegriffith.xyz +janicemichellefoundation.net +janicemichellefoundation.org +janikeyoga.com +janine.cd +janitorservices.com +janivahenry.com +jankusmirek.com +janlanser.shop +janmail.org +jannahouse.co +jannonces.cd +janproz.com +jans-koschek.info +janshirts.club +jansmithcannon.com +jansutita.com +jantyworld.pl +janusoffical.com +janvan.gent +janverschuuren.com +janym.ru +janza.ru +janza.site +japan-exitwidget.com +japan-link.biz +japan-monclerdown.com +japanaa318.xyz +japanakiba.com +japanawesome.com +japanerpjr.space +japanesenewshome.com +japanesetoryburch.com +japanjoayo.com +japanonly.com +japanresearch.com +japanyn7ys.com +japaventura.net +japaventura.org +japjap.com +japjytgzw.shop +jaqis.com +jaqs.site +jaqueline1121.club +jaqueslucont.icu +jar-opener.info +jarcasinoalf.ru +jarconsultoresfiscalycontable.com +jardinroyaltakeaway.com +jarena.net +jarestores.site +jargonize97qj.online +jarilusua.com +jarlhwa.com +jarraci.gq +jarraci.tk +jartiyericgiyim.online +jarxs-vpn.ml +jasa4d.online +jasa855.com +jasa855.net +jasa855.org +jasabacklinkmurah.com +jasabandar66.com +jasabyte.shop +jasajudi.com +jasaseo.info +jasaseomurahin.com +jasbell-carda.de +jasegot.store +jasinski-doradztwo.pl +jasmierodgers.ga +jasmin-masaj.xyz +jasolen.cf +jasolen.gq +jasolen.ml +jasongalvin.com +jasonlaughlin.org +jasonmadama.com +jasonprycememorial.org +jateamssign.cf +jateamssign.ga +jateamssign.ml +jateamssign.tk +jatfvn.xyz +jathqy.xyz +jatillivet.xyz +jatmikav.top +jatpai.xyz +jauhari.cf +jauhari.ga +jauhari.gq +jaujqt.site +jaumin.best +jav.bike +jav.cash +jav.codes +jav.support +jav12.xyz +jav333.net +jav8.cc +jav99-0.com +jav99-7.com +javadoq.com +javajust.com +javamail.org +javaprogrammingpoursesusa.com +javedic.cf +javedic.gq +javedic.ml +javhd.buzz +javierllaca.com +javkojima.club +javmail.tech +javmaniac.co +javmnvg.com +javo.email +javoei.com +javopgan.ru +javqc.com +javrdv.com +javrkf.com +javsbk.com +javsin.best +javzog.com +jawaramantul.info +jaxmortageteam.com +jaxoxx.se +jaxphotography.net +jaxwholesalehouses.com +jaxworks.eu +jaya125.com +jaya5758.com +jayabet188.net +jayapoker99.net +jayaprakashmenon.com +jayavilas.org +jaychatmusic.com +jaycrouch.org +jaydeninc.com +jayhotz.com +jayjessup.com +jaymoviedownload.xyz +jaypetfood.com +jayphimar.cf +jayphimar.ga +jayphimar.ml +jayphimar.tk +jaysachdev.com +jaysclay.org +jayyidumroh.com +jayz-tickets.com +jayzbook.com +jayzeh.com +jazibgroup.com +jazpa.com +jazzbo.site +jazzcom.net +jazzcommons.com +jazztrumpet.ru +jazzzespo.cf +jazzzespo.ga +jazzzespo.gq +jazzzespo.ml +jb73bq0savfcp7kl8q0.ga +jb73bq0savfcp7kl8q0.ml +jb73bq0savfcp7kl8q0.tk +jbasm.us +jbb777.com +jbbqny.com +jbbtest.com +jbegn.info +jbfqc8.us +jbhhgbuz.shop +jbl-4.site +jbl-russia.ru +jblacust.ru +jblpoker.net +jblpoker.org +jblrus.online +jblshop.ru +jbmbet.info +jbmbet.online +jbmnoi.com +jbnasfjhas12388.cf +jbnasfjhas12388.ml +jbnasfjhas12388.tk +jbnasfjhas12752.ml +jbnasfjhas12752.tk +jbnasfjhas19704.cf +jbnasfjhas19704.ga +jbnasfjhas19704.ml +jbnasfjhas19704.tk +jbnasfjhas28580.cf +jbnasfjhas28580.ga +jbnasfjhas28580.ml +jbnasfjhas28580.tk +jbnasfjhas96637.cf +jbnasfjhas96637.ga +jbnasfjhas96637.ml +jbnasfjhas96637.tk +jbniklaus.com +jbnote.com +jbnyfd.com +jbopoker.org +jbp22.space +jbso8.us +jbydress.online +jc-decaux.tk +jc254.com +jc2vnr.us +jc56owsby.pl +jc7m.tel +jcaf.icu +jcalvert.net +jcamerahot.info +jcbwy.com +jcdmail.men +jcdz.email +jceffi8f.pl +jcenergyworks.info +jcenergyworks.net +jcfug.us +jchez.com +jciphilippines.org +jcjnet.com +jcll.buzz +jcnai1.site +jcp3rq.info +jcpclothing.ga +jcredding.com +jcs-studio.ru +jcv2yv.com +jd9wdp.com +jdas-mail.net +jdasdhj.cf +jdasdhj.ga +jdasdhj.gq +jdasdhj.ml +jdasdhj.tk +jdb81.space +jdbzcblg.pl +jdd06.com +jdd2.club +jddapi.app +jde53sfxxbbd.cf +jde53sfxxbbd.ga +jde53sfxxbbd.gq +jde53sfxxbbd.ml +jde53sfxxbbd.tk +jdecorz.com +jdeeedwards.com +jdfqxtap.shop +jdgang.com +jdhutchinson.com +jdkmusic.us +jdkpcl.us +jdl5wt6kptrwgqga.cf +jdl5wt6kptrwgqga.ga +jdl5wt6kptrwgqga.gq +jdl5wt6kptrwgqga.ml +jdl5wt6kptrwgqga.tk +jdmadventures.com +jdmbenefits.info +jdmhero.com +jdmzci.us +jdnirm.site +jdnjraaxg.pl +jdsrealtygrouppr.com +jdtfdf55ghd.ml +jdub.de +jdvm.email +jdvmail.com +jdxsqz.tokyo +jdy01.xyz +jdz.ro +je-recycle.info +je2tjeraafmans.xyz +je7f7muegqi.ga +je7f7muegqi.gq +je7f7muegqi.ml +je7f7muegqi.tk +jealousmedia.com +jeanhamiltonvoice.com +jeannelepellee.com +jeannerussellchiropractic.com +jeansname.com +jeansoutlet2013.com +jeasysux.agency +jebabu.com +jebacdisaskurwysyna.xyz +jebratikfersokilo.xyz +jecyfihuhol.space +jeddahtravels.com +jeden.akika.pl +jedrnybiust.pl +jeeb.trade +jeeet9.live +jeemboo.ru +jeenza.com +jeep-australia.club +jeep-cherokee.club +jeep-chile.club +jeep-official.cf +jeep-official.ga +jeep-official.gq +jeep-official.ml +jeep-official.tk +jeepconversions.com +jeepday.com +jeepsafarialbania.com +jeerabazar.com +jeet16.live +jeet20.live +jeetmr.live +jeettrk.site +jeff.ml +jeffbeasleyguitar.com +jeffdenzra.cf +jeffdenzra.ga +jeffdenzra.ml +jeffersonandassociates.com +jeffersonbox.com +jeffersonms.org +jeffexotica.com +jeffjeeps.info +jeffkennedyassociates.com +jeffmerkeley.org +jeffmerkly.com +jeffnelson.org +jeffpeterson.info +jeffreyhunt.org +jeffreypeterson.info +jefricrak12.ml +jeg5ym.us +jehenuo.ru +jeie.igg.biz +jejinger.info +jejofo.info +jekadok.xyz +jekeshkumaroad.icu +jelascasino.host +jelenajensentube.com +jelldiving.com +jellow.ml +jelly-life.com +jellybeanplop.org +jellycabi.icu +jellyeyelidmeant.site +jellyrollpan.net +jellyrolls.com +jellytast.buzz +jelm.de +jembotbrodol.com +jembott.com +jembud.icu +jembulan.bounceme.net +jembut142.cf +jembut142.ga +jembut142.gq +jembut142.ml +jembut142.tk +jemchujinka.info +jemmasplayground.com +jemmctldpk.pl +jenachouse.co +jendralbola.com +jennarhodes.com +jennie.club +jenniebelieves.com +jennifer-alden.biz +jennifergallagher.buzz +jenniferjeromedds.com +jennylowemiller.com +jensden.co.uk +jensenbeachfishingcharters.com +jenskiymir.ru +jensonchiropracticdecatur.com +jentrix.com +jentro.com +jeomychort.cf +jeomychort.ga +jeomychort.gq +jeomychort.ml +jeomychort.tk +jepijopiijo.cf +jepijopiijo.ga +jepijopiijo.gq +jepijopiijo.ml +jepijopiijo.tk +jeralo.de +jeramywebb.com +jerapah993r.gq +jere.biz +jeremycarvermartin.com +jeremyfocus.com +jeremymonroe.net +jeremyprine.com +jeremyteale.com +jeremytunnell.net +jeremywood.xyz +jerf.de +jerilyhouse.co +jeriofad.site +jerk.com +jeromesam.cat +jerrycham.com +jerseen.world +jerseycityhairsalons.com +jerseycityquote.com +jerseycityrealestateagents.com +jerseymallusa.com +jerseyonsalestorehere.com +jerseyovo.com +jerseysonlinenews.com +jerseysonlinesshop.com +jerseysshopps.com +jerseysyoulikestore.com +jerseyzone4u.com +jertistore.xyz +jertroskinscsgo.fun +jerusalem-dublin2.com +jerusalem-takeaway.com +jerusalem.fyxo.ml +jerusalemcall.org +jerusatyhn.space +jes96x.us +jescanned.com +jesflk.com +jesien-zima.com.pl +jesisale.site +jessarhodes.site +jessejames.net +jessicahernanez.xyz +jessicalife.com +jessicawatsonrowland.com +jessie.tokyo +jessietv.tokyo +jestbet65.com +jestemkoniem.com.pl +jestyayin27.com +jesus-shop.ru +jesuschrist.fund +jesuschrist.icu +jesuschrist.productions +jesusmail.com.br +jesusnotjunk.org +jesusstatue.net +jesusygema.online +jet-renovation.fr +jet.fyi +jet10bet14.com +jetable.com +jetable.fr.nf +jetable.net +jetable.org +jetable.pp.ua +jetableemail.com +jetableemails.com +jetagram.com +jetairlineticket.com +jetanime.xyz +jetcasbahis.com +jetconvo.com +jeternet.com +jetex.media +jetfly.media +jetflzz.ru +jetiamb.icu +jetlogcomex.com +jetmembranehit.website +jetonkartsatinal.com +jetpush.com +jetqunrb.pl +jetrelocation.us +jetsearches.com +jetsmails.com +jetspeak.ru +jetstardutyfreepreorder.com +jetstash.site +jettcohen.com +jettisonsaga.com +jetub.xyz +jeu3ds.com +jeunessevn.com +jeupronostic.com +jeux-gratuits.us +jeux-online0.com +jeux3ds.org +jeuxds.fr +jevans.eu +jevtw6.host +jewel.ie +jewelfishcreations.com +jewelhaven.net +jewelinthecrowntakeaway.com +jewelleryshop.futbol +jewellrydo.com +jewelry497tq.online +jewelryandloanpro.com +jewelrycellar.com +jewelrycrafts.world +jewelrymakingideas.site +jewelryunder5.com +jewish-tutors.com +jewishamericansongbook.org +jewishfraternities.org +jewishfraternity.org +jewishnewsdaily.com +jewishrewj.space +jewishwisdomsummit.com +jewqlfqo.xyz +jewsagainsttrump.org +jewsoncampus.org +jex-mail.pl +jexopozam.shop +jeyuvido.site +jezera.info +jezwg.live +jezykoweradio.pl +jfaccupuncture.com +jfaiz5gz.xyz +jfdfg5ck.com +jfdv.email +jffabrics85038.com +jfgfgfgdfdder545yy.ml +jfhd.us +jfhf9954.com +jfhhm.com +jfiee.tk +jfmjw.com +jftruyrfghd8867.cf +jftruyrfghd8867.ga +jftruyrfghd8867.gq +jftruyrfghd8867.ml +jftruyrfghd8867.tk +jfwkttkh.shop +jfwrt.com +jfxklwyj.shop +jgandos.com +jgaweou32tg.com +jgerbn4576aq.cf +jgerbn4576aq.ga +jgerbn4576aq.gq +jgerbn4576aq.ml +jgerbn4576aq.tk +jgfrpy.us +jgi21rz.nom.pl +jgj11277.com +jglobal.org +jglopez.net +jgmkgxr83.pl +jgmoa17.com +jgmoa18.com +jgro1c.us +jgy7as.us +jgyjt.live +jh24promo.ru +jhalakibs21.gq +jhasjhtast86168.cf +jhasjhtast86168.ga +jhasjhtast86168.ml +jhasjhtast86168.tk +jhasjhtast86736.ml +jhasjhtast86736.tk +jhatasr28887.cf +jhatasr28887.ga +jhatasr28887.ml +jhatasr43558.cf +jhatasr43558.ga +jhatasr43558.ml +jhatasr43558.tk +jhatasr53816.cf +jhatasr53816.ga +jhatasr53816.ml +jhatasr53816.tk +jhatasr60556.ga +jhatasr60556.ml +jhatasr60556.tk +jhdashjg14606.cf +jhdashjg14606.ga +jhdashjg14606.ml +jhdashjg14606.tk +jhdashjg34401.cf +jhdashjg34401.ml +jhdashjg34401.tk +jhdashjg46064.cf +jhdashjg46064.ga +jhdashjg46064.ml +jhdashjg55864.cf +jhdashjg55864.ga +jhdashjg55864.ml +jhdashjg55864.tk +jhdashjg59120.cf +jhdashjg59120.ga +jhdashjg59120.ml +jhdashjg59120.tk +jhdashjg73600.ml +jhdashjg73600.tk +jhdashjg99173.cf +jhdashjg99173.ga +jhdashjg99173.tk +jhehfweo.site +jhfg.us +jhgnnb.com +jhhgcv54367.cf +jhhgcv54367.ga +jhhgcv54367.ml +jhhgcv54367.tk +jhib.de +jhjo6m.us +jhjty56rrdd.cf +jhjty56rrdd.ga +jhjty56rrdd.gq +jhjty56rrdd.ml +jhjty56rrdd.tk +jhkggv4-privzsra.press +jhkggv4-privzsra.space +jhkggv4-privzsra.xyz +jhmkai.site +jhow.cf +jhow.ga +jhow.gq +jhow.ml +jhqqmczmu.shop +jhrseykjerl20604.ml +jhrseykjerl20604.tk +jhrseykjerl24773.cf +jhrseykjerl24773.ga +jhrseykjerl24773.ml +jhrseykjerl24773.tk +jhrseykjerl31756.ml +jhrseykjerl31756.tk +jhrseykjerl38436.ml +jhrseykjerl38436.tk +jhrseykjerl42917.cf +jhrseykjerl42917.ga +jhrseykjerl42917.ml +jhrseykjerl42917.tk +jhrseykjerl59229.cf +jhrseykjerl59229.ga +jhrseykjerl59229.ml +jhrseykjerl59229.tk +jhrseykjerl64041.ml +jhrseykjerl66366.cf +jhrseykjerl66366.ga +jhrseykjerl66366.ml +jhrseykjerl66366.tk +jhrseykjerl70694.cf +jhrseykjerl70694.ga +jhrseykjerl70694.ml +jhrseykjerl70694.tk +jhrseykjerl71731.ml +jhrseykjerl71731.tk +jhsss.biz +jhtzu.live +jhxl.org +ji4zwf.site +jiahezaixian.biz +jiahyl.com +jiahylzc.com +jiaiwan.club +jialefujialed.info +jiancok.cf +jiancok.ga +jiancok.gq +jiancokowe.cf +jiancokowe.ga +jiancokowe.gq +jiancokowe.ml +jiangpeng.xyz +jianguo1111.com +jianguo1112.com +jianguo1115.com +jianguo234.com +jianguo345.com +jianguo432.com +jianguo543.com +jianguo678.com +jiankangzaji.com +jianyuyuanzheng.com +jiaotongyinhang.net +jiaoya.net +jiapai.org +jiatou123jiua.info +jiaxin8736.com +jibaiwan.xyz +jibitpay.com +jibjabprocode.com +jic4pn.us +jidanshoppu.com +jieber.net +jiemoyan.com +jietuku.com +jiez00veud9z.cf +jiez00veud9z.ga +jiez00veud9z.gq +jiez00veud9z.ml +jiez00veud9z.tk +jiga.site +jiggermast.site +jigglypuff.com +jigjournal.org +jigoloajanslari.org +jigsawdigitalmarketing.com +jihadadventures.com +jihlmnvkp.shop +jijedcei.cf +jijedcei.ga +jijedcei.gq +jijedcei.tk +jijianhufu.com +jijixiaozhen.cn +jikadeco.com +jikex.org +jikilifina11.ru +jil.kr +jiljadid.com +jiljadid.info +jillgormley.com +jilliangiardullomemorialfund.com +jillshaver.com +jilossesq.com +jilyva.info +jimandalisandra.com +jimans.pro +jimboba.ru +jimbombey.ru +jimdahl.com +jimeiss.xyz +jimfaddismusic.com +jimfournier.com +jimgrieve.net +jimhansonhomes.com +jimhoyd.com +jimjaagua.com +jimmienwarner.com +jimmoorephoto.com +jimmyasaro.com +jimmychooshoesuksale.info +jimmychoowedges.us +jimmyhqdjj.space +jimmynewdomain123345.biz +jimmys-takeaway-kilkenny.com +jimmysweblog.net +jimoruxue.com +jimskillington.com +jimster.site +jin638.com +jinbeibeibagonline.com +jinchuan.xyz +jindingguojiyule.com +jindunssc.com +jinefur.press +jinfu10.com +jingcaizaixian.net +jinggakop.ga +jinggakop.gq +jinggakq.ml +jinghe-ep.com +jingpai321.com +jinguanghu.com +jingvesouff.cf +jingvesouff.ga +jingvesouff.gq +jingvesouff.ml +jingwuyabojm.com +jinhaobj.com +jining2321.info +jinnmail.net +jinrongpaizhao2006.com +jinschinese.com +jinsguaranteedpaydayloans.co.uk +jinsha3421.com +jintogel.net +jinzhiyuanfood.org +jiojiogrejoigre.info +jiovaj.best +jiplant.xyz +jiprbr.rest +jiqe.info +jir.su +jiraf.site +jirafikcraft.ru +jiromail.com +jiskhdgbgsytre43vh.ga +jistao.com +jitenei6.site +jitimarkets.site +jitsi.space +jitsuni.net +jitterx.com +jitulive.xyz +jituloh.com +jiu8cp.com +jiuba222.com +jiuba777.com +jiucaojj.com +jiucaoll.com +jiuere.com +jiuhe-auto.com +jiujitsuappreviews.com +jiujitsushop.biz +jiujitsushop.com +jiuling-yule.com +jiulingyule.com +jiuseyy.club +jiuseyy.site +jiuseyy.xyz +jiusp6.com +jiveline.com +jivotik.info +jiwatoto.org +jixa.site +jixe.site +jixyvu.info +jiyankotluk.xyz +jiyoshops.site +jiyue.org +jiyun123.com +jizdjq.info +jj18269.com +jj3385.com +jj3i.com +jj456.com +jj57822.com +jj7665.com +jj8848.com +jj9827.com +jjabberifye.site +jjabbervine.site +jjchoosetp.com +jjdjshoes.com +jjdong15.com +jjdong16.com +jjdong17.com +jjdong18.com +jjdong23.com +jjdong24.com +jjdong25.com +jjdong28.com +jjdong29.com +jjdong30.com +jjdong32.com +jjdong35.com +jjdong37.com +jjdong38.com +jjdong39.com +jjdong40.com +jjdong41.com +jjdong44.com +jjdong45.com +jjdong46.com +jjdong47.com +jjdong48.com +jjdong49.com +jjdong7.com +jjdong8.com +jjdong9.com +jjeqfu.site +jjetbot.site +jjetfoxw.site +jjetworksk.site +jjgg.de +jjj813.com +jjjf.ru +jjjiii.ml +jjkgrtteee098.cf +jjkgrtteee098.ga +jjkgrtteee098.gq +jjkgrtteee098.ml +jjkgrtteee098.tk +jjlhm.live +jjlink.cn +jjmsb.eu.org +jjo77.space +jjohbqppg.shop +jjosale.top +jjumples.com +jjvv.biz +jk141.site +jk3k.com +jk7ir.us +jkbmdp.fun +jkcbpp.host +jkcmzd.fun +jkcntadia.cf +jkcntadia.ga +jkcntadia.gq +jkcntadia.ml +jkcntadia.tk +jkdfgsrtyert.website +jke79o.site +jkeyes.com +jkgbvc.com +jkgihjk.website +jkgmkp.fun +jkhk.de +jkhmmx.fun +jkio-90.xyz +jkiohiuhi32.info +jkjsrdtr35r67.cf +jkjsrdtr35r67.ga +jkjsrdtr35r67.gq +jkjsrdtr35r67.ml +jkjsrdtr35r67.tk +jkk9d98grwo2cwz.xyz +jkkmdm.fun +jklasdf.com +jkljkl.cf +jkljkl.ga +jklmxl.fun +jklsssf.com +jklthg.co.uk +jkmechanical.com +jkmmks.fun +jkpinturas.com +jkpmqh.fun +jkqmxw.fun +jkqssvmf.shop +jkr.ovh +jkrebsphotos.com +jkrmrw.fun +jkrowlg.cf +jkrowlg.ga +jkrowlg.gq +jkrowlg.ml +jkt48.biz +jktif.live +jktmjx.fun +jktmmz.fun +jkwesjthsd19350.ml +jkwesjthsd24217.ga +jkwesjthsd24217.ml +jkwesjthsd28337.ml +jkwesjthsd28337.tk +jkwesjthsd89366.ga +jkwesjthsd89366.ml +jkwesjthsd89366.tk +jkwesjthsd96863.cf +jkwesjthsd96863.ga +jkwesjthsd96863.ml +jkwesjthsd96863.tk +jkwmxk.fun +jkwmzd.fun +jkymbw.fun +jkymnw.fun +jkyvznnqlrc.gq +jkyvznnqlrc.ml +jkyvznnqlrc.tk +jl.biz +jlajah.com +jlauryn.com +jlctvmlxq.shop +jljc.site +jlle.tk +jllxup.us +jlmq3b.us +jlqiqd.tokyo +jls4.com +jluedke.com +jlylc66.com +jlynchfamily.com +jlzxjeuhe.pl +jm-ac.com +jm24i0.site +jm3456.com +jm60.xyz +jm7000.com +jm8000.com +jm9797.com +jmail.fr.nf +jmail.ovh +jmail.ro +jmail7.com +jmartin.dev +jmcei.us +jmetg8.us +jmffu.live +jmhprinting.com +jmkbwfyo.tech +jmqtop.pl +jmsbbs.com +jmutang.com +jmvdesignerstudio.com +jmwbac.com +jmwv6z.us +jmxapp.com +jmy829.com +jmymy.com +jmzhufu.com +jmzlzl.com +jnbzcl.com +jnckteam.eu +jnckteam.tech +jncylp.com +jndu8934a.pl +jnfengli.com +jnggachoc.cf +jnggachoc.gq +jnglkdom.com +jnhbsdjhty18771.cf +jnhbsdjhty18771.ga +jnhbsdjhty18771.ml +jnhbsdjhty18771.tk +jnhtjhrt.tk +jnifyqit.shop +jnpayy.com +jnrhhg.com +jnru.email +jnsgt66.com +jnswritesy.com +jntaobao.com +jnthn39vr4zlohuac.cf +jnthn39vr4zlohuac.ga +jnthn39vr4zlohuac.gq +jnthn39vr4zlohuac.ml +jnthn39vr4zlohuac.tk +jnxjn.com +jnyfyxdhrx85f0rrf.cf +jnyfyxdhrx85f0rrf.ga +jnyfyxdhrx85f0rrf.gq +jnyfyxdhrx85f0rrf.ml +jnyfyxdhrx85f0rrf.tk +jnyhph.com +jnyveoha.shop +jo-mail.com +jo3b14.info +jo8otki4rtnaf.cf +jo8otki4rtnaf.ga +jo8otki4rtnaf.gq +jo8otki4rtnaf.ml +jo8otki4rtnaf.tk +joajecjb.tech +joajoa.xyz +joakarond.tk +joannfabricsad.com +joao.ga +joaquinito01.servehttp.com +joasantos.ga +job-monger.com +job-sbu.net +job.craigslist.org +job11.fun +jobappza.com +jobba.nu +jobbersmartcredit.us +jobbersonline.com +jobbikszimpatizans.hu +jobbsnackisar.com +jobchart.online +jobchart.shop +jobcheetah.com +jobd.dev +jobdesk.org +jobeksuche.com +jobhm1.site +jobinja.org +jobkim.com +jobku.id +joblessness.best +joblike.com +jobo.me +joboak.com +jobplusuk.com +jobposts.net +jobreadyedge.com +jobrpq.us +jobs-to-be-done.net +jobs.photography +jobsaa317.xyz +jobsappmatch.com +jobsblog.africa +jobsblog.ru +jobsenbloc.com +jobsfind.ru +jobsforsmartpeople.com +jobslao.com +jobssearch.online +jobstoknow.com +jobsunleashed.net +jobsunleashed.vet +jobtoto6.net +jobzzz.ru +jocerset.ru +jocksturges.in +jocreb.com +jodhpurbazar.icu +joe2116.com +joeclipart.com +joef.de +joeinc.tk +joelpet.com +joelstahre.com +joeltine.com +joeneo.com +joengentod.com +joeofarc.com +joeong.com +joepredin.cf +joepredin.gq +joepredin.ml +joepredin.tk +joerotts.info +joetestalot.com +joey.com +joeycampus.com +joeyfortman.biz +joeymarx.com +joeypatino.com +joeystays.info +jofap.com +joforce.us +jogdogshop.online +joggtorra.cf +joggtorra.ga +joggtorra.ml +joggtorra.tk +jogjakarir.org +jogos.cd +jogosdemaquiar.info +johanaeden.spithamail.top +johanmena.com +johhgapa.ga +johhgapa.gq +johhgapa.tk +johl.dev +john-doe.cf +john-doe.ga +john-doe.gq +john-doe.ml +john.express +johnalvbage.se +johnathanwelsh.com +johnderasia.com +johndoe.tech +johndollin.info +johnfabio.online +johnfriedrich.com +johnftocci.net +johngallant.com +johnhaymond.net +johnhaymondlawfirm.net +johnkokenzie.com +johnkokishpc.com +johnmagnifico.name +johnmasters.hk +johnmoriarity.com +johnmy.com +johnnybenton2.com +johnnycarsons.info +johnnycondon.com +johnnyduel.com +johnnyimpossible.com +johnnymlive.biz +johnpo.cf +johnpo.ga +johnpo.gq +johnpo.ml +johnpo.tk +johnrisky.cf +johnrisky.ga +johnrisky.gq +johnrisky.tk +johnrisky4u.cf +johnrisky4u.ga +johnrisky4u.gq +johnrisky4u.ml +johnrisky4u.tk +johnsfinefoods.com +johnsisland.net +johnslocalhandyman.com +johnsonmotors.com +johnstownbikerally.com +johnstownpa.org +johnstownthunder.org +johntalbotdev.com +johnwickfullmovie.online +johonkemana.com +johonmasalalu.com +joiephotography.com +join-4-free.bid +join-taxi.ru +join-the-lo-down.net +joinaics.com +joinbadminton.ru +joinemonend.com +joinfunnelprofits.com +joiningup.site +joinmanialiga.net +joinmaniaqq.com +joinmaniaqq.global +joinoorddal.gq +joinoorddal.ml +joinoorddal.tk +joint-fix.site +joint.website +jointcradle.xyz +jointeleport.xyz +jointolouisvuitton.com +jointreniuym.com +jointruvi.com +jointtime.xyz +joinville.tk +joji.site +jojolouisvuittonshops.com +joke24x.ru +jokeengine.com +jokenaka.press +joker-dostavka.ru +joker87.net +jokerbet93.com +jokerbetcasino.xyz +jokerbetgiris.info +jokerdd.com +jokerkard.ru +jokerpoker.best +jokes.cd +jokespedia.com +jokos-nokos.site +joli-bikini.com +jollydisclosemedal.site +jollymonmarketing.store +jollymove.xyz +jombase.com +jomcs.com +jomie.club +jomiemporium.site +jomo.online +jomusic.live +jonahstreehouse.com +jonasferreira.com +jonathanbailey.buzz +jonathanbennett.net +jonathanbruner.com +jonathanfrazierphotography.com +jonathanjavierperalta.com +jonathanstephenson.buzz +jonathanyeosg.com +jonerumpf.co.cc +jonlippincott.com +jonnyanna.com +jonnyjonny.com +jonnyoid.com +jonotaegi.net +jonotaegi.org +jonrepoza.ml +jonslabaugh.com +jonsmailbox.tk +joojm.com +joolato.com +joomla-support.com +joomla.co.pl +joomlaccano.com +joomladome.org +joomlaemails.com +joomlaprofi.ru +joomna.online +joopal.app +joopeerr.com +jopezka.buzz +jopho.com +joplay.com +joplin.xyz +joplindoctors.com +joq7slph8uqu.cf +joq7slph8uqu.ga +joq7slph8uqu.gq +joq7slph8uqu.ml +joq7slph8uqu.tk +joqalbania.net +jordan23city.com +jordanambrosia.com +jordanfitzgerald.buzz +jordanflight45.com +jordanfr5.com +jordanfrancepascher.com +jordangillundphysicaltherapist.com +jordanknight.info +jordanmass.com +jordanmyth.com +jordanretronikesjordans.com +jordanretrooutlet.com +jordanshoesusonline.com +jordansneaker.ru +jordansneakers.ru +jordanstore.xyz +jorgegomezremodeling.com +jorickjuhproductions.shop +jorja344cc.tk +jormout.ml +jormungandr.ru +jornalcarioca.site +jornalcarioca.website +jornalcarioca2019.site +jornalcarioca2019.xyz +jornalcidade.com +jornismail.net +jorosc.cf +jorosc.ga +jorosc.gq +jorosc.ml +jorosc.tk +jorysma.xyz +josadelia100.tk +josafeth.com +josalita95.ml +josalyani102.ml +josamadea480.ga +josamanda777.tk +josangel381.ml +josanng.ru +josasjari494.ml +josbet88.cash +josbet88.fun +josdita632.ml +josealamos.info +josefadventures.org +joseihorumon.info +josekacowicz.com +josephdesaram.com +josephdicarlo.me +josephineloftapartments.com +josephjasinski.com +josephmillerdesign.com +josephsu.com +josephswingle.com +josethouse.co +josfitrawati410.ga +josfrisca409.tk +josgishella681.cf +josh4jersey.com +joshandval.com +joshdanielsphotography.com +joshendriyawati219.tk +joshforjersey.com +joshjoffen.com +joshlapham.org +joshmanders.dev +joshtucker.net +joshturner.org +joshuadweston.com +josicmo.site +josivangkia341.tk +josjihaan541.cf +josjismail.com +josnarendra746.tk +josnurul491.ga +josontim2011.com +jososkkssippsos8910292992.epizy.com +josprayugo291.tk +josresa306.tk +josrustam128.cf +josse.ltd +josuajfr.shop +josyahya751.tk +jotmail.ml +jotqo.xyz +jotyaduolchaeol2fu.cf +jotyaduolchaeol2fu.ga +jotyaduolchaeol2fu.gq +jotyaduolchaeol2fu.ml +jotyaduolchaeol2fu.tk +jouasicni.ga +jouasicni.gq +jouasicni.ml +jouasicni.tk +journalismcoursesusa.com +journalistiek.works +journalistuk.com +journalmy.ru +journeyliquids.com +journeylocal.com +journeys.group +jourrapide.com +jouwbhv.com +jouwplatform.shop +jovianorbit.com +jovo.app +jowabols.com +joy-sharks.ru +joybc.net +joyberryjam.com +joycasino-m.net +joycedu.xyz +joyceeaglestone.com +joydeal.hk +joyexporthub.info +joyfulczzp.space +joyfullife.style +joyfullwing.com +joygoods.space +joyispain.com +joyledhe.cf +joyledhe.ga +joyledhe.gq +joyledhe.ml +joyledhe.tk +joynet.info +joyoriginalhub.website +joysclick.ru +joytakip.xyz +joytoliveproducts.net +jozusai3.online +jp-morgan.cf +jp-morgan.ga +jp-morgan.gq +jp-morgan.ml +jp-news10.net +jp-news12.net +jp-news13.net +jp-skincare.info +jp.com +jp.ftp.sh +jp.hopto.org +jp1w.buzz +jp4420.com +jp4999.com +jp6188.com +jp727.com +jp888.com +jpacg.com +jpanel.xyz +jpapa.ooo +jparaspire.com +jpbum.com +jpchannels.info +jpco.org +jpcoachoutletvip.com +jpcservicesinc.com +jpdf.site +jpemail.club +jpemail.xyz +jpggh76ygh0v5don1f.cf +jpggh76ygh0v5don1f.ga +jpggh76ygh0v5don1f.gq +jpggh76ygh0v5don1f.ml +jpggh76ygh0v5don1f.tk +jphousecleaningsvcs.com +jpinvest.ml +jpjgroupplc.com +jpjtdv.site +jpkparishandbags.info +jpleadershipcourse.com +jpmoe.com +jpnar8q.pl +jpo48jb.pl +jppradatoyou.com +jppsqc.site +jprealestate.info +jprine.com +jprnu.live +jpsong.com +jpsqcaub.tech +jptb2motzaoa30nsxjb.cf +jptb2motzaoa30nsxjb.ga +jptb2motzaoa30nsxjb.gq +jptb2motzaoa30nsxjb.ml +jptb2motzaoa30nsxjb.tk +jptogel.online +jptunyhmy.pl +jpuggoutlet.com +jpuser.com +jpwoxm.info +jpzgjh.org +jq310.site +jq4zdy.com +jq59.xyz +jq882.site +jqblog.com +jqgarden.com +jqgnxcnr.pl +jqj03.com +jqjlb.com +jqkaemail.tk +jqkpoker.info +jqkpoker.net +jqkpoker.org +jqlyu.us +jqool.com +jqqwv.site +jqrolmvkq.shop +jqt0wg.info +jquerys.net +jquyji.icu +jqvwjo.us +jqweblogs.com +jqwgmzw73tnjjm.cf +jqwgmzw73tnjjm.ga +jqwgmzw73tnjjm.gq +jqwgmzw73tnjjm.ml +jqwgmzw73tnjjm.tk +jqwns2.us +jqx9zy.us +jqyy6.us +jr0emu.host +jr46wqsdqdq.cf +jr46wqsdqdq.ga +jr46wqsdqdq.gq +jr46wqsdqdq.ml +jr46wqsdqdq.tk +jralalk263.tk +jrcs61ho6xiiktrfztl.cf +jrcs61ho6xiiktrfztl.ga +jrcs61ho6xiiktrfztl.gq +jrcs61ho6xiiktrfztl.ml +jrcs61ho6xiiktrfztl.tk +jredm.com +jrejfrrfgkew10.host +jrgkew1.host +jri863g.rel.pl +jrinkkang97oye.cf +jriversm.com +jrjrj4551wqe.cf +jrjrj4551wqe.ga +jrjrj4551wqe.gq +jrjrj4551wqe.ml +jrjrj4551wqe.tk +jrntmenoh.shop +jroxmv.site +jrqtgq.icu +jrrich.info +jrtcwabd.shop +jrudgsqq.shop +jruvz.icu +jryt7555ou9m.cf +jryt7555ou9m.ga +jryt7555ou9m.gq +jryt7555ou9m.ml +jryt7555ou9m.tk +js-fks.com +js0871.com +js10012.com +js10013.com +js10015.com +js33a.com +js99922.com +jscrip.com +jsctaynguyen.net +jsdbxd.com +jsdginfo.com +jsdwqz.site +jsellsvfx.com +jsfc88.com +jsftitle.icu +jsgtdsf12.com +jshrtwg.com +json-check.best +json24.com +jsonp.ro +jspvm.com +jsqcz.com +jsquaredigital.com +jsrqa.us +jsrsolutions.com +jssd.email +jssdikpd.ga +jssghengheng.com +jstarmarketing.com +jstart.com +jstatic.org +jstln.com +jstongge.com +jstzamo.com +jsvcw.live +jsvojfgs.pl +jsw119.com +jsweetuni.icu +jswfdb48z.com +jsyant.tokyo +jszmail.com +jszuofang.com +jt-369.com +jt2ezza.com +jt5ntn.us +jt90.live +jtabusschedule.info +jtansa.com +jtcote.net +jtdesantis.org +jtelwb.ml +jtfashionss.com +jtfdirect.com +jtfdiscountclubonline.com +jtfdiscountonline.com +jtfdiscountstore.com +jtfhomeandgarden.com +jtfonline.com +jtfoutlet.com +jtfpromo.com +jtfretailclubonline.com +jtfrgo.site +jtfshopping.com +jtgwpv.site +jtheband.com +jtjmtcolk.pl +jtkgatwunk.cf +jtkgatwunk.ga +jtkgatwunk.gq +jtkgatwunk.ml +jtkgatwunk.tk +jtm-2030.com +jtmalwkpcvpvo55.cf +jtmalwkpcvpvo55.ga +jtmalwkpcvpvo55.gq +jtmalwkpcvpvo55.ml +jtmalwkpcvpvo55.tk +jto.kr +jtovjcat.shop +jtownbikeweek.org +jtpa.net +jtpcgg.us +jtrcc.us +jtst.dev +jtvtad.tokyo +jtw-re.com +jtwnfc.icu +jtzjsc.com +ju566.net +jualherbal.top +juarabola.org +juarabola.site +juarakiukiu.com +jubilate.site +jucky.net +judabla.cf +judabla.ga +judabla.gq +judabla.tk +juddcomm.com +judethomas.info +judgedoug.us +judgeweav.xyz +judglarsting.cf +judglarsting.ml +judglarsting.tk +judgteso.cf +judgteso.ga +judgteso.tk +judibola07.com +judibola118.com +judicialnetwork.org +judiking4d.net +judimag.com +judipasar.online +judipasar.site +judipasar.xyz +judiremi.com +judybernard.com +jue.lu +jue12s.pl +jueg.app +juegabet.net +juegos.ninja +juegos13.es +jug1.com +jugglepile.com +jugqsguozevoiuhzvgdd.com +juhuagu.net +juice-garden.cash +juicephoenixmedia.site +juicermachinesreview.com +juicervital.com +juicerx.co +juiceyvapemods.com +juicy-couturedaily.com +juicynewsdaily.club +juicyvogue.com +juikonaser.tk +juiupsnmgb4t09zy.cf +juiupsnmgb4t09zy.ga +juiupsnmgb4t09zy.gq +juiupsnmgb4t09zy.ml +juiupsnmgb4t09zy.tk +jujinbox.info +jujitsushop.biz +jujitsushop.com +jujj6.com +jujucheng.com +jujuinbox.info +jujuso.com +jujusou.com +jujuspot.com +jujutata.com +julaha.xyz +julc4a.us +juliafinnegan.com +julian.buzz +juliaotilia.cloud +juliawang.online +julie74.com +juliekitchen.com +juliethouse.co +juliett.november.webmailious.top +julihouse.co +juliman.me +juliustothecoinventor.com +jullieta.info +jullieta.net +julnic.ru +julymovo.com +julysart.ru +julz-a.com +juma.store +jumaelda4846.ml +jumanindya8240.cf +jumaprilia4191.cf +jumba.shop +jumbo-casino.com +jumbo-chinese.com +jumbo4d.club +jumbogumbo.in +jumbotime.xyz +jumbunga3502.cf +jumeiliangpin.com +jumgita6884.tk +jumlamail.ml +jumlatifani8910.tk +jummario7296.ml +jummayang1472.ml +jumnia4726.ga +jumnoor4036.ga +jumnugroho6243.cf +jumonji.tk +jumossi51.ml +jumpborder.com +jumpdada.com +jumperhighs.ru +jumperocio.com +jumpingsemaphore.space +jumpman23-shop.com +jumpmicro.com +jumponopgq.space +jumps.online +jumpvillagelest.website +jumpy5678.cf +jumpy5678.ga +jumpy5678.gq +jumpy5678.ml +jumpy5678.tk +jumrestia9994.ga +jumreynard5211.ml +jumreza258.tk +jumveronica8959.tk +jun8yt.cf +jun8yt.ga +jun8yt.gq +jun8yt.ml +jun8yt.tk +junan2018.com +junasboyx1.com +junaudio.site +junclutabud.xyz +juncoarte.com +junctiondx.com +junemovo.com +junetwo.ru +jungkamushukum.com +jungle-experience-kp.com +junglegymclimbing.com +junglehomewares.shop +jungleparts.net +junior-rowing.com +juniorcarrillo.tech +junioriot.net +juniorlinken.com +junk.beats.org +junk.googlepedia.me +junk.ihmehl.com +junk.noplay.org +junk.to +junk.vanillasystem.com +junk1e.com +junkgrid.com +junkland.net +junklessmaildaemon.info +junklovehome.com +junkmail.com +junkmail.ga +junkmail.gq +junkmassarie.com +junkouture.com +junkyardpalmdale.com +junnuok.com +junostore.site +junrecetas.com +junrongonline.com +juntaupwardmercy.site +juo.com +juoksutek.com +jupimail.com +jupiterblock.com +jupiterlab.ml +jupiterm.com +jupitertd.ru +jur-likbez.ru +jurabet101.com +jurabet102.com +jurabet103.com +jurcasinorock.ru +jurgisdidziulis.com +jurisfisca.cd +jurnaliki.com +jurrevhvn.shop +jurts.online +jurvansuu.org +jusdawho.tk +jusefuli.club +jusefuli.info +jusefuli.life +jusefuli.xyz +jusemao.xyz +juski.site +jusomoa05.com +jusomoa06.com +just-email.com +just-games.ru +just-newsit.site +just.partners +just4fun.me +just4spam.com +just9ja.com +justademo.cf +justafou.com +justanothergrace.kim +justbaavideos.com +justbegood.pw +justbestmail.co.cc +justbet.world +justbigbox.com +justblueclubappnew.ru +justbrewit.org +justclean.co.uk +justcook.su +justdeals.net +justdoiit.com +justdoit132.cf +justdoit132.ga +justdoit132.gq +justdoit132.ml +justdoit132.tk +justdomain84.ru +justdrink.shop +justemail.ml +justen.rocks +justenmartin.dev +justfcfr.online +justforclicks.com +justfreemails.com +justfun88.com +justgetitdone.vision +justhotleads.com +justiceacrossborders.org +justiceneverquits.com +justicewoodworks.com +justifans.ru +justin.reviews +justinachang.com +justinandlaura.com +justinandlauren.com +justinbet.fun +justinbiebershoesforsale.com +justinet237.com +justinlovemastiffs.com +justintrend.com +justintv.us +justinwelch.dev +justiphonewallpapers.com +justitnews.site +justjuss.shop +justlibre.com +justlynhfks.email +justmagicalevents.org +justmailorderbrides.com +justmailservice.info +justmet.world +justmiret.site +justmysocks5.net +justmysocks6.net +justmysocks7.net +justnope.com +justnowmail.com +justoldschool.com +juston-latinbeat.com +justonemail.net +justonetworks.site +justpcix.online +justpoleznoe.ru +justpositiveweblog.club +justrbonlinea.co.uk +justre.codes +justreadit.ru +justruninabox.com +justsend.online +justshoes.gq +justsport.tech +justsporttoday.online +justtick.it +justtoy.ru +justweddingband.com +justweddingplans.com +justxxx.site +justyland.ru +juts.us +juusbaa.com +juusecamenerdarbun.com +juveajon.cf +juveajon.ga +juveajon.gq +juveajon.ml +juveajon.tk +juvenileeatingdisordertreatment.com +juventudecuatoriana.com +juxingcai.org +juxtaposejs.com +juyouxi.com +juyttzaaq.tk +juyuanfen.com +juyuncai.com +juzab.com +juzfc.us +juzhong56.com +jv6hgh1.com +jv7ykxi7t5383ntrhf.cf +jv7ykxi7t5383ntrhf.ga +jv7ykxi7t5383ntrhf.gq +jv7ykxi7t5383ntrhf.ml +jv7ykxi7t5383ntrhf.tk +jv9wdq.us +jvdailypick.com +jvhclpv42gvfjyup.cf +jvhclpv42gvfjyup.ml +jvhclpv42gvfjyup.tk +jvimail.com +jvk84x-mail.xyz +jvlbigband.ru +jvlicenses.com +jvo5iw.us +jvoqotvi.tech +jvsdailypick.com +jvswoznq.shop +jvvr.email +jvx21.com +jvyomi.icu +jvz18.com +jw-hot.com +jwbeh.live +jwcdi.com +jwf.email +jwguanacastegolf.com +jwheim.com +jwk4227ufn.com +jwl3uabanm0ypzpxsq.cf +jwl3uabanm0ypzpxsq.ga +jwl3uabanm0ypzpxsq.gq +jwlying.com +jwom.ru +jwork.ru +jwoug2rht98plm3ce.cf +jwoug2rht98plm3ce.ga +jwoug2rht98plm3ce.ml +jwoug2rht98plm3ce.tk +jwoxy.com +jwptesiiv.shop +jwpwnzobs.shop +jwrtfm.net +jwsei.club +jwtukew1xb1q.cf +jwtukew1xb1q.ga +jwtukew1xb1q.gq +jwtukew1xb1q.ml +jwtukew1xb1q.tk +jx-club.ru +jx2team.online +jx575.com +jx576.com +jx71582.com +jxcp365.com +jxcyzw.com +jxfpbv.icu +jxgj777.com +jxgqkw.site +jxgrc.com +jxji.top +jxjyi.com +jxjyzz.com +jxoo.us +jxq14.site +jxsbby.com +jxtmsicsc.ml +jxyh168.com +jxyzu.com +jy.biz +jycaqi.info +jydocnqz.shop +jyecuh.cf +jyfc88.com +jyh2888.com +jyliananderik.com +jymfit.info +jymu.site +jyn4.us +jynmxdj4.biz.pl +jype.ru +jypm5.us +jyrbayli9jezk4i.xyz +jyrki.me +jytewwzz.com +jytwf.icu +jyy66.space +jyzaustin.com +jyzhuji.com +jz118899.com +jz50180.com +jzcfto.us +jzfqcckqk.tk +jzfswn.com +jzhkby.us +jziad5qrcege9.cf +jziad5qrcege9.ga +jziad5qrcege9.gq +jziad5qrcege9.ml +jziad5qrcege9.tk +jzib.biz +jzkn1.us +jzsp8r.com +jzxlink.xyz +jzxsportgw.xyz +jzxsportipom.xyz +jzzxbcidt.pl +k-12stem.org +k-d-m.de +k-l-k.ru +k-mail.top +k-net.online +k-response.com +k.fido.be +k.polosburberry.com +k.schimu.com +k02sx.com +k0g8aww.best +k0mzao.us +k0ujhl.us +k101.hosteko.ru +k105.club +k1069.com +k111.club +k115.club +k11wf.com +k12hw.net +k15ri.space +k17tcth11b.me +k1bob.com +k1etvm.us +k1ftcgr8.xyz +k1h6cy.info +k1q4fqra2kf.pl +k2-zero.com +k2dfcgbld4.cf +k2dfcgbld4.ga +k2dfcgbld4.gq +k2dfcgbld4.ml +k2dfcgbld4.tk +k2eztto1yij4c.cf +k2eztto1yij4c.ga +k2eztto1yij4c.gq +k2eztto1yij4c.ml +k2eztto1yij4c.tk +k2idacuhgo3vzskgss.cf +k2idacuhgo3vzskgss.ga +k2idacuhgo3vzskgss.gq +k2idacuhgo3vzskgss.ml +k2idacuhgo3vzskgss.tk +k2kgab2uxxpoiwg.xyz +k31wsx.us +k33s.club +k34k.com +k3663a40w.com +k377.me +k3bbgnk72oake6e.xyz +k3opticsf.com +k3rx8f.us +k3tfb8.us +k3wa8y-mail.xyz +k3zaraxg9t7e1f.cf +k3zaraxg9t7e1f.ga +k3zaraxg9t7e1f.gq +k3zaraxg9t7e1f.ml +k3zaraxg9t7e1f.tk +k4afcp-mail.xyz +k4ds.org +k4exffd51yzwu77.xyz +k4fl2v.us +k4oshn.us +k4tbtqa7ag5m.cf +k4tbtqa7ag5m.ga +k4tbtqa7ag5m.gq +k4tbtqa7ag5m.ml +k4tbtqa7ag5m.tk +k59ula.info +k60.info +k6556.com +k6g4mvd5.xyz +k6l0gy.us +k78qp.com +k7k5tuccmaptnsc.xyz +k80fv.space +k82323.com +k84r5e.us +k8bnfweqq.xyz +k8dwsb.us +k8r0ml.us +k8w329-mail.xyz +k95iqh.com +k98.fun +k99.fun +k9ifse3ueyx5zcvmqmw.cf +k9ifse3ueyx5zcvmqmw.ga +k9ifse3ueyx5zcvmqmw.ml +k9ifse3ueyx5zcvmqmw.tk +k9teens.com +k9wc559.pl +ka-naslednik.ru +ka1ovm.com +ka1ovm.net +ka9kckl07g0erfh.xyz +kaafein.com +kaakaao.com +kaaleej.com +kaapiroyalecoffee.com +kaaw39hiawtiv1.ga +kaaw39hiawtiv1.gq +kaaw39hiawtiv1.ml +kaaw39hiawtiv1.tk +kabab.ga +kabare.cd +kabareciak.pl +kabarunik.xyz +kabbala.com +kabelnsk.ru +kabiny-prysznicowe-in.pl +kabiny-prysznicowe.ovh +kabirsigh.ga +kablee.net +kabo-verde-nedv.ru +kabonusmania.com +kabukio.com +kabumarkets.site +kabuumcraft.online +kaceyahouse.co +kachargina.ru +kaciekenya.webmailious.top +kaconri.cf +kaconri.gq +kaconri.ml +kaconri.tk +kacose.xyz +kad00.cf +kad00.ga +kad00.gq +kad00.ml +kad01.cf +kad01.ga +kad01.gq +kad01.ml +kad02.cf +kad02.ga +kad02.gq +kad02.ml +kad03.cf +kad03.ga +kad03.gq +kad03.ml +kad04.cf +kad04.ga +kad04.gq +kad04.ml +kad11.cf +kad11.ga +kad11.gq +kad11.ml +kad14.cf +kad14.ga +kad14.ml +kad15.cf +kad15.ga +kad15.ml +kadachigov.ru +kadag.ir +kademen.com +kadeshop.site +kadett-e.info +kadingir.org +kadinsibakis.online +kadinsibakis.xyz +kadokawa.cf +kadokawa.ga +kadokawa.gq +kadokawa.ml +kadokawa.tk +kadokawa.top +kadrajmagazin.xyz +kadw.xyz +kaefv.us +kaengu.ru +kaewvscnb.shop +kafai.net +kaffe.nu +kafrem3456ails.com +kagi.be +kagta0.us +kaguya.tk +kah.pw +kahndefense.com +kahootninja.com +kahramanmarashaberler.xyz +kahramanmarasprefabrikyapi.xyz +kahveperest.com +kaialiikahele.com +kaidh.xyz +kaigojdob.online +kaijenwan.com +kaiju.live +kailaitakeaway.com +kaiqumb.com +kairo-lottery.info +kairo-lottery.net +kaisa365.org +kaishinkaidojoseattle.com +kaishinkaiseattle.com +kaiwh.us +kaixinpet.com +kaizenga.com +kaj3goluy2q.cf +kaj3goluy2q.ga +kaj3goluy2q.gq +kaj3goluy2q.ml +kaj3goluy2q.tk +kajgnpuan.shop +kajsdtjksr14826.ga +kajsdtjksr14826.ml +kajsdtjksr14826.tk +kajsdtjksr35350.ga +kajsdtjksr35350.ml +kajsdtjksr35350.tk +kajsdtjksr54026.ml +kajsdtjksr54026.tk +kajsdtjksr60638.ml +kajsdtjksr60638.tk +kajsdtjksr82538.ml +kajsdtjksr87901.cf +kajsdtjksr87901.ga +kajsdtjksr87901.ml +kajsdtjksr87901.tk +kajsdtjksr88142.cf +kajsdtjksr91608.cf +kajsdtjksr91608.ml +kajsdtjksr91608.tk +kajsdtjksr94922.cf +kajsdtjksr94922.ga +kajsdtjksr94922.ml +kajsdtjksr94922.tk +kak-gotovit-prosto.ru +kak-gotovit-vkusno.ru +kakadua.net +kakao.world +kakaofrucht.de +kakasgp.info +kakashi1223e.cf +kakashi1223e.ga +kakashi1223e.ml +kakashi1223e.tk +kakbankrot.xyz +kakekbet.com +kakismotors.net +kaksmail.com +kaku92.com +kaku97.com +kalaf.tech +kalagar.net +kalamani.website +kalapi.org +kalebet157.com +kalebet519.com +kalebet530.com +kalebet541.com +kalebet544.com +kalebet546.com +kalebet550.com +kalebet638.com +kalebet643.com +kalebor.com +kalemler.cf +kalemler.ga +kalemler.tk +kalemproje.com +kalemsiz.ml +kalemsiz.tk +kalerno.club +kalford.best +kalifragilistic.us +kalitebet4.com +kalitebet6.com +kalitebet9.com +kalixfinans.se +kaljakartta.com +kallaicaseyrealtor.com +kalmhain.net +kaloolas.shop +kalpazangfb.cf +kalsesli.xyz +kaltimpoker.com +kalvertgroup.com +kalyanhut.ru +kamagra-lovegra.com.pl +kamagra.com +kamagra.org +kamagra100mgoraljelly.today +kamagraonlinesure.com +kamagraoraljelly.website +kamagrasklep.com.pl +kamax57564.co.tv +kamchajeyf.space +kamclip.ru +kamen-market.ru +kamenrider.ru +kamgorstroy.ru +kamhl.com +kamibakier.com +kamien-naturalny.eu +kamillight.cf +kamillight.ml +kamillight.tk +kamillightgs.ml +kamillightgs.tk +kamin-hous.ru +kamin-online.ru +kamin-portal.ru +kamismail.com +kamizellki-info.pl +kammerer-allen.com +kammmo.com +kammmo12.com +kamostand.site +kampoeng3d.club +kampouts.com +kampspor.com +kampuspedia.tech +kampwa.com +kamryn.ayana.thefreemail.top +kamsg.com +kamu-sudahh.top +kamucerdas.com +kamuihale.org +kamvoda.site +kamx0-nacal.ru +kan2222.com +kana-entertainment.com +kana420.site +kanada-nedv.ru +kanansoldit.com +kanarian-nedv.ru +kanbantasks.com +kanbin.info +kanciang.faith +kandersa.online +kandidoz.info +kandrai.tips +kandymail.com +kanganstx.net +kangcaiwang.xyz +kangeasy.com +kangenlifetime.com +kangenshui.com +kangentruewealth.com +kangenwaterpilipinas.com +kangirl.com +kangkunk44lur.cf +kangmipon.cf +kangmipon.ga +kangmipon.gq +kangmipon.ml +kangmipon.tk +kangsmo.ru +kanhaoni.com +kanhaoni.org +kanjiukan.com +kankabal.com +kankankankan.com +kanker.website +kanmathi.shop +kannada.com +kannapolisdentists.com +kanoodle-navan.com +kansasadoption.org +kansasboas.com +kansascitypigrescue.org +kansascityquote.com +kansascitystreetmaps.com +kansasquote.com +kanum-thai-park-west.com +kanzanishop.com +kanzhubo.xyz +kanzlider64.ru +kaodesar.tk +kaoqwr.us +kaovo.com +kaoyoo.group +kaoyoo.net +kaphoe.site +kapidanjskt82215.cf +kapidanjskt82215.ga +kapidanjskt82215.ml +kapidanjskt82215.tk +kapieli-szczecin.pl +kapikapi.info +kapital.netmail.tk +kapitalbuks.ru +kapitulin.ru +kaplazanv2.tk +kapnik.ru +kapody.info +kappala.info +kappka.site +kapprof.com +kapptiger.com +kapstroyservice.ru +kaptina.ru +kaptsittia.cf +kaptsittia.gq +kaptsittia.ml +kaptsittia.tk +kapumamatata.cf +kapumamatata.ga +kapumamatata.gq +kapumamatata.ml +kapumamatata.tk +kapustanet.ru +karabas777.ru +karabukburada.xyz +karabukciceksiparisi.xyz +karabukluyuz.xyz +karadiners.site +karam.host +karamanbasari.com +karamanbasari.xyz +karamanrehber.xyz +karamansoneremlak.com +karamanvitrin.xyz +karamelbilisim.com +karangtelurvusuk-store21.com +karaoke-spider.ru +karaokemike.ru +karapuz.ru +karataylisesi.xyz +karatebeltsanduniforms.com +karateslawno.pl +karateuniformsandbelts.com +karatraman.ml +karbonbet.com +karcherparts.info +karcherpremium.online +kareemshammout.com +kareicon.org +karel-bani.ru +karelklosse.com +karement.com +karenbarnaby.com +karengostudy.com +karenmillendress-au.com +karenmillenoutletea.co.uk +karenmillenoutleter.co.uk +karenmillenuk4s.co.uk +karenmillenuker.co.uk +karennews.com +kareto.xyz +karfashion.store +kargokazan.ru +karibbalakata.cf +karibbalakata.ga +karibbalakata.gq +karibbalakata.ml +karibbalakata.tk +karibu-piratai.ru +karichisholm.com +karier-holding.ru +karina-strim.ru +karinmk-wolf.eu +kariotor.online +kariplan.com +karitas.com.br +karizmakala.com +karkaspen.ru +karldeleon.com +karma.show +karnali.best +karnatakaedu.info +karofur.online +karou.best +karovale3.com +karpathos.sk +karpsr.site +karridea.com +karsers.ru +karsiyakadenizsurucukursu.com +karsiyakaeml.xyz +karsiyayukle.ml +karsiyayukle.tk +karso.info +karster.site +karta-kykyruza.ru +karta-tahografa.ru +kartal-store.com +kartalodge.xyz +kartaskiipim.com +kartel46.ru +kartinari65.club +kartinohigh.ru +kartk5.com +kartpardakht.xyz +kartsitze.de +kartu8m.com +kartu8m.org +kartugaple.org +kartuhoki.biz +kartujituceme.com +kartuliga.poker +kartupoker.us +karturoyalking.com +kartustraightflush.com +kartvelo.com +kartvelo.me +kartykredytowepl.info +kartyusb.pl +karuniapoker.net +karusel-kard.ru +karuselsp.ru +karya4d.org +karyatogel.net +karyatoto.com +karyatoto.net +karzpay.xyz +kas-cenas.com +kasak.cf +kasandra.ga +kasandra.ml +kasandraava.livefreemail.top +kasandrav2.tk +kasankanationalpark.org +kasdelta.ru +kasdewhtewhrfasaea.vv.cc +kaserdase.cf +kaseroutr.cf +kasevdeneve.online +kasevdeneve.xyz +kaseyshop.com +kashel.info +kashenko.site +kashi-sale.com +kashimeihin.xyz +kashmirindian.com +kasian.ru +kasiatee.com +kasikk41676.ml +kasikk41676.tk +kasikk56345.ml +kasikk70545.ml +kasikk71324.cf +kasikk88988.ml +kasikk88988.tk +kasikk96402.ml +kasilohiter.website +kasino-spin-city.online +kasking33.com +kasking88sport.com +kasko-agent.ru +kasko-group.ru +kaskus.fun +kaskuslive.com +kasmabirader.com +kasmail.com +kasmirkebabhouse.com +kasper.uni.me +kaspop.com +kassenbon.cloud +kastamonugezi.xyz +kastamonuyogder.xyz +kastapolikas.ga +kastavillam.xyz +kasthouse.com +kastnomiu.gq +kastsono.cf +kastsono.ga +kastsono.gq +kasucako.site +kat-777.com +kat-net.com +katakidz.com +katalogstronstron.pl +katamo1.com +katanyoobattery.com +katarinakp.se +katava.ru +katcang.tk +katco.cd +katergizmo.de +katespade-factory.com +katesport.club +katherinemurphy55places.com +katherineyan.dev +kathleenkellet.com +kathmandumart.net +kathymackechney.com +kathyraysellshomes.online +kathyschneiders.com +kathysthings.com +katie11muramats.ga +katieclemens.com +katieclemmons.com +katieclemons.net +katieclemons.org +katiina.com +katipa.pl +katipo.ru +katipunankrafts.com +katlas.best +katomcoupon.com +katonoma.com +katra.ovh +katsfastpaydayloans.co.uk +katsuri-lucan.com +kattenstore.com +kattmanmusicexpo.com +katwassenaar.com +katyeymann.com +katyperrytourblog.com +katztube.com +katzwyfy.shop +kaufshop.ru +kauinginpergi.cf +kauinginpergi.ga +kauinginpergi.gq +kauinginpergi.ml +kaukab.store +kavabox.com +kavbc6fzisxzh.cf +kavbc6fzisxzh.ga +kavbc6fzisxzh.gq +kavbc6fzisxzh.ml +kavbc6fzisxzh.tk +kavbet70.com +kavbet71.com +kavbet72.com +kavisto.ru +kavory.site +kavxx.xyz +kavxxx.xyz +kavysy.info +kawacyi3.online +kawaiiproject.com +kawaiishojo.com +kawaipokemalaga.com +kawasakihavaliyedekparca.com +kaws4u.com +kawu.site +kawy-4.pl +kaxks55ofhkzt5245n.cf +kaxks55ofhkzt5245n.ga +kaxks55ofhkzt5245n.gq +kaxks55ofhkzt5245n.ml +kaxks55ofhkzt5245n.tk +kayaemlaksusanoglu.com +kayaqq.com +kaye.ooo +kaygob.info +kayipesyadepolari.com +kaykaykay.net +kaymima.ga +kaymima.gq +kaymima.ml +kaysartycles.com +kayserigirls.com +kayserisucuklari.xyz +kayvsj.us +kayyra.tk +kazaf.ru +kazan-elki.ru +kazan-hotel.com +kazan-nedv.ru +kazansana47.com +kazansana57.com +kazelink.ml +kazi.cd +kazimirovo.ru +kazinoblackjack.com +kazinocorona.com +kazper.net +kb-222.com +kb7.app +kb7h1.us +kbaf2v.us +kbakvkwvsu857.cf +kbbxowpdcpvkxmalz.cf +kbbxowpdcpvkxmalz.ga +kbbxowpdcpvkxmalz.gq +kbbxowpdcpvkxmalz.ml +kbbxowpdcpvkxmalz.tk +kbcfikhyh.shop +kbclu.us +kbdevelop.net +kbdjvgznhslz.ga +kbdjvgznhslz.ml +kbdjvgznhslz.tk +kbellebeauty.com +kbhufd.site +kbiac.com +kbjnx1.site +kblaoshi.com +kblim.us +kbmei.com +kbox.li +kbscnp.tokyo +kbt-234.com +kbt-33.com +kbt-345.com +kbt-365.com +kbt-55.com +kbtblh.com +kbvqfr.com +kbwventures.com +kbzdl1.site +kc-kenes.kz +kc-leasemanagement.com +kc-ufa.ru +kc123app.com +kc1590.com +kc2888.com +kc3fsx.net +kc59.xyz +kc6888.com +kc8pnm1p9.pl +kc9888.com +kc9983.com +kc9985.com +kcba.xyz +kcdrivewaysealing.com +kcf7lv.us +kchkch.com +kcldps.tokyo +kclkuiah.xyz +kcorcm.site +kcrw.de +kcs-th.com +kctoto.site +kcuxfb.us +kcxdi2.com +kcyjfp.rest +kczgjx.com +kd-attractive-bg.site +kdc.support +kdeos.ru +kdfgedrdf57mmj.ga +kdgpht.site +kdgreat.ru +kdh.kiwi +kdjfvkdf8.club +kdjhemail.com +kdjngsdgsd.tk +kdk-opt.ru +kdl8zp0zdh33ltp.ga +kdl8zp0zdh33ltp.gq +kdl8zp0zdh33ltp.ml +kdl8zp0zdh33ltp.tk +kdpgzzh.com +kdpxae.com +kdrplast.com +kdswdg.host +kdtuo.live +kdublinstj.com +kdwaxdzt.shop +kdweed.com +kdzrgroup.com +ke3981.com +ke3996.com +ke3998.com +ke3999.com +ke4004.com +ke4005.com +ke4006.com +ke4008.com +keatonbeachproperties.com +keauhoubaybeachresort.com +keauhoubayresort.com +keauhouresortandspa.com +kebab-house-takeaway.com +kebabamirsafriedchickenmadrid.com +kebabestambulvalenzabarbadas.com +kebabgironacoloma.com +kebabhouse-kilkenny.com +kebabhouse-laois.com +kebabishcosladacoslada.com +kebl0bogzma.ga +kebmail.com +kec59.xyz +kecaleki.site +kecambahijo89klp.ml +kecasinos.com +kecgii.tokyo +ked6f9.us +kedikumu.net +kedipansiyonu.net +kedrovskiy.ru +kedwo.top +kedy6.us +keeble.biz +keecalculator.com +keeleproperties.com +keeleranderson.net +keelungqq59.xyz +keepactivated.com +keeperhouse.ru +keeperr.ru +keepillinoisbeautiful.org +keeplon.app +keeplucky.pw +keepmymail.com +keepmyshitprivate.com +keepntg.tk +keepoor.com +keepsave.club +keepthebest.com +keeptoolkit.com +keepyourshitprivate.com +kefyci.info +kegangraves.club +kegangraves.online +kegangraves.org +kegangraves.site +kegangraves.us +kegangraves.xyz +kehangatan.ga +kehonkoostumusmittaus.com +kein.hk +keinhirn.de +keinmail.com +keinpardon.de +keio-mebios.com +keipino.de +keiqpm.site +keiraicumb.cf +keiraicumb.ga +keirron31.are.nom.co +keistopdow.cf +keistopdow.ga +keistopdow.gq +keistopdow.ml +keistopdow.tk +keite-ro1.info +keithbukoski.com +keithurbanmates.net +keivosnen.online +keizercentral.com +kejenx.com +kejw1t.us +kek.institute +kekecog.com +kekita.com +kekote.xyz +keks.page +kelantanfresh.com +kelasio.website +kelaskonversi.com +kelebekcorap.xyz +kelev.store +kelime.space +kellencole.com +kellerslableakcompanies.site +kelleyships.com +kelloggchurch.org +kellybagonline.com +kellyodwyer.ca +kellyodwyer.net +kellyrandin.com +keloahdsk12.xyz +kelor.ga +kelosolor.com +kelseyball.com +kelseyball.xyz +keluargabesarpeduli.club +keluruk.fun +kemail.com +kemailuo.com +kemampuan.me +kematary.ru +kembangpasir.website +kemeneur.org +kemerhanotel.xyz +kemexet.ru +kemfra.com +kemonkoreeitaholoto.tk +kemptvillebaseball.com +kemska.pw +kenal-saya.ga +kenaripoker.info +kenbaby.com +kenberry.com +kendallmarshallfans.info +kendalraven.webmailious.top +kendgeterla.website +kendineyemebn.tk +kendralust.club +kendrickzhu.xyz +kengriffeyoutlet.com +kenh13news.com +kenhdeals.com +kenhgiamgia.website +kenhqpvn.net +keniq.com +kenmaar.com +kenmorestoveparts.com +kennebunkportems.org +kennedy808.com +kennedywesternuniversity.com +kennethpaskett.name +kenney.codes +kennie.club +kennysmusicbox.com +kenshuwo.com +kenspeckle.site +kenstrong.info +kent1.rebatesrule.net +kent5.qpoe.com +kentbtt.com +kentg.co.cc +kenticocheck.xyz +kentspurid.cf +kentspurid.ga +kentspurid.gq +kentspurid.ml +kentspurid.tk +kenttenhaber.xyz +kentucky-inc.com +kentucky-indianalumber.com +kentuckyadoption.org +kentuckygamerss.com +kentuckyopiaterehab.com +kentuckyquote.com +kenvanharen.com +kenwestlund.com +kenyamedicine.com +kenyanfoodtx.us +kenyangsekali.com +kenyawild.life +kenyayouth.org +kenzo-official.ru +kenzoget.club +kenzototo.site +keobzmvii.pl +keort.in +keortge.org +keosdevelopment.com +kepeznakliyat.com +kepeztesisat.xyz +kepezun.xyz +kepler.uni.me +kepqs.ovh +keqptg.com +keralaairport.net +keraladinam.com +keralamserials.com +keralapoliticians.com +keralaproperty123.com +keramzit-komi.ru +keraorganica.ru +kerasine.xyz +keratinhairtherapy.com +keratontoto.info +keratosispilarisguide.info +kerchboxing.ru +kerclivhuck.cf +kerclivhuck.ga +kerclivhuck.ml +kerclivhuck.tk +kercosmetics.com +keremcan.tk +keremcan123.ml +kerfuffle.me +kerimhan.ga +kerimhanfb.ml +kerithbrookretreat.org +kerjqv.us +kermancerafair.com +kerneksurucukursu.com +kernersvilleapartments.com +kerrfamilyfarms.com +kerrilid.win +kerrmail.men +kerrytonys.info +kershostter.cf +kershostter.ga +kershostter.tk +kersp.lat +kerstinmai.com +kertasqq.com +kerupukmlempem.ml +kerupukmlempem.tk +kerupukmlempem1.cf +kerupukmlempem1.ga +kerupukmlempem2.cf +kerupukmlempem3.cf +kerupukmlempem3.ml +kerupukmlempem4.cf +kerupukmlempem4.ml +kerupukmlempem5.cf +kerupukmlempem6.cf +kerupukmlempem6.ml +kerupukmlempem7.cf +kerupukmlempem7.ga +kerupukmlempem8.ga +kerupukmlempem9.cf +kesehatantubuh.com +kesepara.com +kesetpremium.store +kesfiru.cf +kesfiru.ga +kesfiru.gq +kesfiru.ml +kesfiru.tk +kesiqadi.club +kespear.com +kesports.net +ketababan.com +ketabsar.com +ketcauviet.website +kethough51.tk +ketiksms.club +ketmirror.ru +ketnoicongnghe.net +keto-fr3.info +keto4life.media +ketoblazepro.com +ketocorner.net +ketodiet.info +ketodietbasics.org +ketodrinks.org +ketoflashfitclub.com +ketogenicrecipe.club +ketoke.info +ketonedealer.com +ketonewstrends.com +ketoproteinrecipes.com +ketorezepte24.com +ketoultramax.com +ketoxprodiet.net +ketpgede.cf +ketpgede.ga +ketpgede.ml +ketpgede.tk +ketsode.cf +ketsode.gq +ketsode.ml +ketsode.tk +kettcopla.cf +kettcopla.ga +kettcopla.gq +kettcopla.ml +kettcopla.tk +kettlebellfatburning.info +kettles.info +ketule.info +keuad.us +keupartlond.cf +keupartlond.ga +keupartlond.gq +keupartlond.ml +keupartlond.tk +kev.com +kev7.com +keverb-vreivn-wneff.online +kevertio.cf +kevertio.ml +kevertio.tk +kevin7.com +kevincramp.com +kevinekaputra.com +kevinhanes.net +kevinkrout.com +kevinschneller.com +kevintrankt.com +kevm.org +kevu.site +kewkece.com +kewl-offers.com +kewlmail.info +kewrg.com +kewupy.info +kexi.info +kexukexu.xyz +key--biscayne.com +key-mail.net +key-windows-7.us +key2funnels.com +keyboardsshop.life +keycaps.win +keydcatvi.cf +keydcatvi.ga +keydcatvi.ml +keydcatvi.tk +keyesrealtors.tk +keyfood-lb.net +keygenninjas.com +keyifiptv.com +keykazan.ru +keykeykelyns.cf +keykeykelyns.ga +keykeykelyns.gq +keykeykelyns.ml +keykeykelyns.tk +keykeykelynss.cf +keykeykelynss.ga +keykeykelynss.gq +keykeykelynss.ml +keykeykelynss.tk +keykeykelynsss.cf +keykeykelynsss.ga +keykeykelynsss.gq +keykeykelynsss.ml +keykeykelynsss.tk +keykeykelynz.cf +keykeykelynz.ga +keykeykelynz.gq +keykeykelynz.ml +keykeykelynz.tk +keynoteplanner.com +keypreview.com +keyprocal.cf +keyprocal.gq +keyprocal.ml +keyprocal.tk +keyritur.ga +keyritur.gq +keyritur.ml +keyritur.tk +keysbb.com +keysinspectorinc.com +keysmedia.org +keystonemoldings.com +keystoneonebuyshomes.com +keytarbear.net +keytostay.com +keywestmuseum.com +keywestrealestateagents.com +keyword.design +keywordhub.com +keywordstudy.pl +keyzerbuilding.com +kf2ddmce7w.cf +kf2ddmce7w.ga +kf2ddmce7w.gq +kf2ddmce7w.ml +kf2ddmce7w.tk +kf8037.com +kfamilii2011.co.cc +kfark.net +kfcbet.asia +kffjf.live +kfgretgf.site +kfhgrftcvd.cf +kfhgrftcvd.ga +kfhgrftcvd.gq +kfhgrftcvd.ml +kfhgrftcvd.tk +kfs92.space +kfscr.ru +kfsp.email +kftcrveyr.pl +kftdcmmn.shop +kg-happy-pt.site +kg1cz7xyfmps.cf +kg1cz7xyfmps.gq +kg1cz7xyfmps.tk +kg4dtgl.info +kgalagaditransfrontier.com +kgb-rsfsr.su +kgb-sssr.su +kgcglobal.com +kgcp11.com +kgcp55.com +kgcp88.com +kgduw2umqafqw.ga +kgduw2umqafqw.ml +kgduw2umqafqw.tk +kgdxwx.site +kgelkdhm.website +kghf.de +kghfmqzke.pl +kghjpp.us +kgjuww.best +kgjwn.live +kgmail.us +kgmndh.xyz +kgohjniyrrgjp.cf +kgohjniyrrgjp.ga +kgohjniyrrgjp.gq +kgohjniyrrgjp.ml +kgohjniyrrgjp.tk +kgoodfamily.com +kgpnk.icu +kgqkay.site +kgt2in.us +kgxz6o3bs09c.cf +kgxz6o3bs09c.ga +kgxz6o3bs09c.gq +kgxz6o3bs09c.ml +kgxz6o3bs09c.tk +kgyzbm.us +kh0hskve1sstn2lzqvm.ga +kh0hskve1sstn2lzqvm.gq +kh0hskve1sstn2lzqvm.ml +kh0hskve1sstn2lzqvm.tk +kh1uz.xyz +kh1xv.xyz +kh75g.xyz +khabarkhan724.com +khachsandailac.com +khachsankimngan.com +khachsanthanhhoa.com +khadem.com +khafaga.com +khait.ru +khaitulov.com +khajatakeaway.com +khakiskinnypants.info +khalifahallah.com +khalinin.cf +khalinin.gq +khalinin.ml +khalinin.tk +khalpacor.cf +khalpacor.ga +khalpacor.gq +khalpacor.tk +khaltoor.com +khaltor.com +khaltor.net +khaltour.net +khamati.com +khan-tandoori.com +khan007.cf +khaneh.online +khanh688k.ga +khaosanholiday.biz +kharchy-zaim.ru +kharidenet.xyz +kharidetalaei.shop +khateb-alsunnah.com +khauhieu.website +khaze.xyz +khb23.space +khbfzlhayttg.cf +khbfzlhayttg.ga +khbfzlhayttg.gq +khbfzlhayttg.ml +khbfzlhayttg.tk +khbikemart.com +khea.info +khedgeydesigns.com +kheex.xyz +kheig.ru +khel.de +khezzelsiaflaskbuster.com +khfi.net +khgkrsxc.shop +khjadv.site +khlbws.online +khmer.loan +khnews.cf +khoabung.com +khoahochot.com +khoahocseopro.com +khoahocseoweb.com +khoastore.net +khoatoo.net +khocongnghe.net +khoi-fm.org +khoiho.com +khoinghiephalong.com +khongsocho.xyz +khorinis.org +khorshidi.xyz +khotuisieucap.com +khpci.xyz +khpkufk.pl +khpl.email +khruyu.us +khtyler.com +khujenao.net +khuong899.ml +khuyenmai.asia +khuyenmaiviet.website +khwtf.xyz +khyuz.ru +ki5co.com +ki7hrs5qsl.cf +ki7hrs5qsl.ga +ki7hrs5qsl.gq +ki7hrs5qsl.ml +ki7hrs5qsl.tk +kiabws.com +kiabws.online +kiancontracts.com +kiani.com +kiansat47.biz +kiaunioncounty.com +kiawah-island-hotels.com +kiayaschnaubelt.com +kibarasi2h.xyz +kibeho.xyz +kiber-magazin.ru +kiberkubik.ru +kiberlit.ru +kiboplatform.biz +kibriscikbeled.xyz +kibrisclubhizmeti.xyz +kibriscontinentalbank.com +kibriscontinentalbank.xyz +kibrisevtemizliksirketleri.com +kibrishabertv.xyz +kibrisilan.org +kibrisliavci.com +kibrisligazete.xyz +kibristasirketkur.com +kibristime.com +kibristurkhavayollari.xyz +kicaubet.online +kichco.com +kickasscamera.com +kickboxing4fitness.com +kickers-world.be +kickers.online +kickex.su +kickit.ga +kicklie.com +kickmark.com +kickmarx.net +kickmature.xyz +kickref.ru +kickskshoes.com +kickstartbradford.com +kickvictoria.com +kid-car.ru +kidalylose.pl +kidbemus.cf +kidbemus.gq +kidbemus.ml +kidbemus.tk +kiddiepublishing.com +kidesign.co.uk +kidfuture.org +kidlist.buzz +kids316.com +kidsarella.ru +kidsbirmingham.com +kidscy.com +kidsdiyideas.club +kidsenabled.org +kidsfitness.website +kidsgreatminds.net +kidsphuket.com +kidsphuket.net +kidspocketmoney.org +kidstory35.ru +kidswebmo.cf +kidswebmo.ga +kidswebmo.gq +kidswebmo.tk +kidtoy.net +kidworksacademy.com +kiejls.com +kiel-foto.com +kiepy.fun +kierafranklin.buzz +kieranasaro.com +kieranharte.dev +kiev-lottery.net +kiev-lottery.org +kiflin.ml +kigonet.xyz +kigwa.com +kiham.club +kijmjb.com +kik-store.ru +kiki.clothing +kiki.shopping +kikie.club +kikihu.com +kikivip.shop +kikoxltd.com +kiksorganicbeauty.com +kikuchifamily.com +kikuimo.biz +kil58225o.pl +kila.app +kilauqq.xyz +kildi.store +kilicerotomatikkapi.xyz +kilimino.site +kiliosios.gr +kiliskasifgenclik.com +kilkenny-curry-grill-house.com +kill-me.tk +killa.pro +killarbyte.ru +killarguitar.icu +killdred99.uk.com +killer-directory.com +killerelephants.com +killerwords.com +killgmail.com +killinglyelderlawgroup.com +killmail.com +killmail.net +killmasterino.site +killtheinfidels.com +kilo.kappa.livefreemail.top +kilo.sigma.aolmail.top +kilomando.site +kiloyard.com +kilton2001.ml +kilvi.biz +kim-rikil.ru +kim-tape.com +kimavet.website +kimberlyggfans.com +kimberlyxxfans.com +kimbral.umiesc.pl +kimchichi.com +kimfetme.com +kimfetsnj.com +kimfetsnx.com +kimfetspa.com +kimfetstx.com +kimhui.online +kimia.xyz +kimirsen.ru +kimmckoy.com +kimmygranger.xyz +kimouche-fateh.net +kimpro-77.com +kimpro-78.com +kimsalterationsmaine.com +kimsdisk.com +kimsesiz.cf +kimsesiz.ga +kimsesiz.ml +kimsesiz.tk +kimtex.tech +kimxxe.gq +kimyapti.com +kin-dan.info +kin1s.us +kinafex.icu +kinbam10.com +kinbam5.com +kinbam8.com +kinderaid.ong +kinderbook-inc.com +kinderspanish4k.com +kinderworkshops.de +kindleebs.xyz +kindlib.com +kindpostcot.cf +kindpostcot.gq +kindpostcot.ml +kindpostcot.tk +kindvenge.cf +kindvenge.ga +kindvenge.gq +kindvenge.ml +kindvenge.tk +kindvideo.ru +kinescop.ru +kinetic.lighting +kineticleadershipinstitute.net +king-bricks.com +king-csgo.ru +king-sniper.com +king-yaseen.cf +king.buzz +king2003.ml +king2r123.com +king33.asia +king368aff.com +king4dstar.com +kingairpma.com +kingbaltihouse.com +kingbetting.org +kingbillycasino3.com +kingblocks.com +kingchance.org +kingchances.info +kingclickcompany.ru +kingcontroller.cf +kingdentalhuntsville.com +kingding.net +kingdom-mag.com +kingdomaos.online +kingdomchecklist.com +kingdomhearts.cf +kingdomthemes.net +kingfun.info +kingfun79.com +kingfunonline.com +kingfunsg.com +kingfunvn.com +kingfuvirus.com +kinggame247.club +kinggame247.site +kingleo.us +kingly.store +kingmain.ru +kingnews1.online +kingnonlei.ga +kingnonlei.gq +kingnonlei.ml +kingnonlei.tk +kingofmails.com +kingofmarket.ru +kingofminisplit.com +kingofnopants.com +kingofpowergreen.net +kingortak.com +kingpixelbuilder.com +kingpizzatakeaway.com +kingplus88.site +kingpol.eu +kingpolloasadoelcasar.com +kingreadse.cf +kingreadse.gq +kingreadse.ml +kingreadse.tk +kings-chance.com +kings-game.ru +kings-garden-dublin.com +kings33.com +kingsbbq.biz +kingsbeachclub.com +kingsbythebay.com +kingschancecampaign.net +kingschancefree.org +kingschancemail.info +kingschances.info +kingschances.org +kingsizesirect.com +kingsleyofthehighlands.com +kingsleyrussell.com +kingsooperd.com +kingsq.ga +kingssupportservice.com +kingssupportservices.com +kingssupportservices.net +kingstar4d.com +kingstoncs.com +kingstonjugglers.org +kingswaymortgage.com +kingtigerparkrides.com +kingtornado.net +kingtornado.org +kingwely.com +kingwin222.com +kingwin365.com +kingyslmail.com +kingyslmail.top +kingzippers.com +kinhdoanhtructuyen.website +kinhphongto.shop +kiniem.asia +kinikgunebakan.com +kinitawowis.xyz +kink4sale.com +kinkbuzz.net +kinkyalice.com +kinkz.com +kino-100.ru +kino-go.su +kino-kingdom.net +kino-maniya.ru +kino24.ru +kinobrod.online +kinofan-online.ru +kinoget.ru +kinoggo.ru +kinogo-20.club +kinogo-2020.club +kinogo-club.fun +kinogo-x.space +kinogo-xo.club +kinogo.one +kinogokinogo.ru +kinogomegogo.ru +kinogomyhit.ru +kinohook.ru +kinoiks.ru +kinojoy.club +kinojoy.net +kinokatushka.ru +kinokradkinokrad.ru +kinolife.club +kinolublin.pl +kinomaxsimus.ru +kinoplask.tk +kinopoisckhd.ru +kinopovtor2.online +kinotes.net +kinovideohit.ru +kinox.life +kinox.website +kinoxa.one +kinoz.pl +kinozor4.ru +kinrose.care +kinsil.co.uk +kintils.com +kintimes.cd +kintravel.com +kinx.cf +kinx.gq +kinx.ml +kinx.tk +kio-mail.com +kiohi.com +kiois.com +kiolisios.gr +kioralsolution.net +kioscapsa88.life +kipavlo.ru +kiperzona.ru +kipeyine.site +kipina.space +kipmail.xyz +kipomail.com +kipr-nedv.ru +kiprhotels.info +kipv.ru +kir.ch.tc +kirael.ru +kirain.me +kiranaankan.com +kiranaankan.net +kirchdicka.cf +kirchdicka.ga +kirchdicka.gq +kirchdicka.ml +kirchdicka.tk +kirifurian.com +kirikkaleanadolulisesi.xyz +kirklandcounselingcenter.com +kirklandcounselor.com +kirklareliprefabrik.xyz +kirkorov2019.ru +kirnite.xyz +kiro22.com +kironpoint.com +kirpikcafe.com +kirrus.com +kirurgkliniken.nu +kiryubox.cu.cc +kisan.org +kiscords.biz +kiscover.com +kishen.dev +kishopbags.club +kishu.online +kisiihft2hka.cf +kisiihft2hka.ga +kisiihft2hka.gq +kisiihft2hka.ml +kisiihft2hka.tk +kismail.com +kismail.ru +kiss-klub.com +kiss1688.com +kiss918.info +kiss918bet.info +kiss918vip.com +kissadulttoys.com +kisshq.com +kissmoncler.com +kissmum.store +kissmyapps.store +kisstwink.com +kitanroipl.tk +kitc9.com +kitchen-beautybar.ru +kitchen-tvs.ru +kitchenanddining.company +kitchencraft39.ru +kitchendesign1.co.uk +kitchenettereviews.com +kitchenjudo.com +kitchenlean.fun +kitchenplatforms.com +kitchenshop.futbol +kitchentvs.ru +kite008.xyz +kitedrooperver.ru +kitefly.pl +kitela.work +kiteshot.ru +kitesportklop.ru +kitesurfinguonline.pl +kitezh-grad.ru +kithjiut.cf +kithjiut.ga +kithjiut.gq +kithjiut.ml +kitiva.com +kitmifit.ru +kitnastar.com +kitooes.com +kitoz.net +kitten-mittons.com +kittencoding.com +kittenemail.com +kittenemail.xyz +kitteninspace.com +kittiza.com +kittyallure.net +kittyamaral.com +kittycatfurballs.com +kittydress.online +kittymoney.info +kittymoney.net +kiuc.asia +kiustdz.com +kiuyex.us +kiuyutre.ga +kiuyutre.ml +kivoid.blog +kiwami-group.ru +kiwamitea.ru +kiwi10.xyz +kiwi8.xyz +kiwi9.xyz +kiwitimber.kiwi +kiwlo.com +kiwsz.com +kix-tioman.ru +kixnewyork.com +kiyastand.site +kiyonna.ru +kiyua.com +kiz10.games +kiz10.online +kizvm.net +kj243.site +kj5255.com +kj5258.com +kj8qtb.host +kjastdkjas85175.ml +kjastdkjas85175.tk +kjche.com +kjdeals.com +kjdghdj.co.cc +kjdo9rcqnfhiryi.cf +kjdo9rcqnfhiryi.ga +kjdo9rcqnfhiryi.ml +kjdo9rcqnfhiryi.tk +kjdtgp.us +kjg.website +kjghbn.com +kjgmwhwh.xyz +kjhjb.site +kjhjgyht6ghghngh.ml +kjjeggoxrm820.gq +kjjit.eu +kjkj99.net +kjmnui.com +kjncascoiaf.ru +kjnhsdtkj18875.ga +kjnhsdtkj18875.ml +kjnhsdtkj19959.ml +kjnhsdtkj19959.tk +kjnhsdtkj29168.ga +kjnhsdtkj29168.ml +kjnhsdtkj29168.tk +kjnhsdtkj33302.ml +kjnhsdtkj33302.tk +kjnhsdtkj44897.ml +kjnhsdtkj44897.tk +kjoiewrt.in +kjqwvg.site +kjsderyhjt13976.cf +kjsderyhjt13976.ga +kjsderyhjt13976.ml +kjsderyhjt13976.tk +kjsderyhjt39631.ml +kjsderyhjt39631.tk +kjsderyhjt54474.tk +kjsderyhjt58311.cf +kjsderyhjt58311.ga +kjsderyhjt58311.ml +kjwyfs.com +kjx9ba.site +kjyhh.com +kk18269.com +kk3l.com +kk8ty.com +kk903.site +kk9827.com +kkahbb.site +kkaycero.site +kkb2323.com +kkbmkz.fun +kkcmmf.fun +kkffw.com +kkfmyb.fun +kkgame168.com +kkgmxd.fun +kkiblerk.site +kkinderh.site +kkiva.site +kkjef655grg.cf +kkjef655grg.ga +kkjef655grg.gq +kkjef655grg.ml +kkjef655grg.tk +kkjmdg.fun +kkjx.com +kkk385.com +kkkmail.tk +kkkmjg.fun +kkkmzz.fun +kkkzzz.cz.cc +kklmsh.fun +kkm35.ru +kkmail.be +kkmmtl.fun +kknmmn.fun +kkpmjf.fun +kkpmnl.fun +kkr47748fgfbef.cf +kkr47748fgfbef.ga +kkr47748fgfbef.gq +kkr47748fgfbef.ml +kkr47748fgfbef.tk +kkrb.com +kkreatorzyimprez.pl +kkredyt.pl +kkredyttonline.pl +kkrmcj.fun +kksahsap.com +kksm.be +kkss33.com +kktmfx.fun +kktmpk.fun +kktmqk.fun +kktt32s.net.pl +kkvlwj.ga +kkvmdfjnvfd.dx.am +kkwbeauty54.ru +kkwiyor.site +kkwmcj.fun +kky20.club +kkyf1.site +kkymgx.fun +kkzntk868mail.gq +kl99.xyz +klaass.ru +klabuk.pl +klaky.net +klammlose.org +klapinetti.biz +klarasaty25rest.cf +klarasfree09net.ml +klasbrative.com +klasdoseme.online +klasepin.xyz +klassmaster.com +klassmaster.net +klassotvetgdz.ru +klastakipci.shop +klasyczne.info +klausuren.download +klayshannon.com +kldfjs.com +kleanr.org +klebaqdtob.cf +klebaqdtob.ga +klebaqdtob.gq +klebaqdtob.tk +klee-brig.info +kleebrig.org +kleekai.rocks +kleekaibreed.com +klefv.com +klefv6.com +kleiderboutique.de +kleiderhaken.shop +klembaxh23oy.gq +klemeo.icu +klemon.ru +kleodb.com +kleogb.com +klepa.info +klepf.com +klerom.in +kles.info +klexch.com +klglawnyc.com +klgn8f.info +klhaeeseee.pl +klichapdi.cf +klichapdi.gq +klichapdi.ml +klichapdi.tk +klick-tipp.us +klik-survey.com +klik.host +klik188poker.com +klik338a.com +klikfifa.online +klikjackpot.net +klikk.pro +kliknflip.com +klikovskiy.ru +klimatyzacjaa.pl +klin-ff.ru +klindom.com +klinika-zdrowotna.pl +klinikvidya.com +kliningovq.site +klinskin.press +kliposad.space +klipp.su +klipschx12.com +kljonline.net +kljvjulr.shop +klmcivil.com +klnjlb.host +klo.com +kloap.com +klodrter.pl +kloiman.space +klondajk.cd +klondike34.ru +klone0rz.be +klonteskacondos.com +kloplj.com +klopsjot.ch +klosnecni.cf +klosnecni.ga +klrrfjnk.shop +kltrgroup.com +klttec.com +klub21n.se +klubap.ru +klubnikatv.com +kluceka.com +kludgemush.com +klun.info +klun.us +kluofficer.com +klvm.gq +klwrea.site +klytreuk.com.uk +klzlk.com +klzmedia.com +km1iq.xyz +km239.site +km4fsd6.pl +km69ax.site +km6uj.xyz +km7p7.xyz +km7st.xyz +kmail.li +kmail.mooo.com +kmail.wnetz.pl +kmbr.de +kmco-uae.com +kmd4t8.site +kmdt.cm +kme6g.xyz +kmeaq.xyz +kmebk.xyz +kmeuktpmh.pl +kmhow.com +kmk86.site +kmkl.de +kmlueh.shop +kmonger.co +kmonkeyd.com +kmonlinestore.co.uk +kmqqu.live +kmqtqs.rest +kmr14.xyz +kmrx1hloufghqcx0c3.cf +kmrx1hloufghqcx0c3.ga +kmrx1hloufghqcx0c3.gq +kmrx1hloufghqcx0c3.ml +kmrx1hloufghqcx0c3.tk +kmsm.ca +kmu3m.xyz +kmud.email +kmuydm.xyz +kmuye.xyz +kmvdizyz.shop +kmvwz.xyz +kmw34.xyz +kmwtevepdp178.gq +kmydrb.us +kmyolw.host +kmzems.tokyo +kmzi6.xyz +kmzxsp.life +kn7il8fp1.pl +kne2.club +kneeguardkids.ru +kneelos.com +kngiuh.us +kngwhp.us +knhqzovn.shop +knifepick.fun +knifeple.press +knifero.buzz +kniffel-online.info +knightpro.org +knightsworth.com +knightwar.xyz +knike.site +knime.app +knime.online +knime.tech +knime.us +knirell.com +knitonepearltwo.com +knitrearresource.website +knitting-bordado.website +knittingcrochet.website +knittingcrochetideas.website +knlfmk.site +knnl.ru +knoja.live +knokermer.com +knol-power.nl +knolselder.cf +knolselder.ga +knolselder.gq +knolselder.ml +knolselder.tk +knotdictionary.com +knotencyclopedia.com +knotglossary.com +knothandbook.com +knotindex.com +knotsillustrated.com +knottyyoga.com +know-mag.com +know-magazine.com +knowatef.cf +knowatef.ga +knowatef.gq +knowatef.ml +knowatef.tk +knowbius.com +knowhowitaly.com +knowincar.cf +knowincar.ga +knowincar.gq +knowincar.ml +knowincar.tk +knowinggames.com +knowitallbrand.com +knowledge-from-0.com +knownsecretblog.club +knowsutic.cf +knowsutic.ga +knowsutic.tk +knowsysgroup.com +knowwar.org +knowyourfaqs.com +knoxtrade.com +knoxvillequote.com +knpo.email +knptest.com +kntelectric.org +kntilo.org +kntl.me +knurl.xyz +knuttih.top +knuw.us +knw4maauci3njqa.cf +knw4maauci3njqa.gq +knw4maauci3njqa.ml +knw4maauci3njqa.tk +ko-pk.xyz +ko76nh.com +koahtabronkoskopiktedavi.com +koalabot.xyz +koaladir.com +koalaltd.net +koalaswap.com +kobava.site +kobessa.com +kobzitroma.website +kocaeliesnafrehberi.xyz +kocaelihapkido.com +kocavalikan.tk +koch.ml +kocheme.com +kochen24.de +kochkurse-online.info +kocokkartu.xyz +kocoks.com +kocsandingil.xyz +kod-emailing.com +kod-maling.com +kodaka.cf +kodaka.ga +kodaka.gq +kodaka.ml +kodaka.tk +koddruay.one +kodealam.center +kodemail.ga +kodemailing.com +kodesitus.xyz +kodex-pirate.ru +kodifinder.com +kodifyqa.com +kodmailing.com +kodorsex.cf +kodtime.com +kodyandchris.com +kodylloyd.com +koekenbakker.shop +koeternity.com +koewrt.in +kofe-black-latte.ru +kofustand.site +kogal.info +koged1.site +kogojet.net +kogu.site +kohlerwasser.net +kohlsprintablecouponshub.com +kohlwes.com +kohohpharma.org +kohtaoweighlossretreat.com +kohz5gxm.pl +koibasicstore.com +koicige.ga +koicige.gq +koicige.tk +koin-qq.top +koin24.com +koineraset.tk +koioslaboratories.com +koipoker.club +koipoker.com +koiqe.com +koismwnndnbfcswte.cf +koismwnndnbfcswte.ga +koismwnndnbfcswte.gq +koismwnndnbfcswte.ml +koismwnndnbfcswte.tk +koitedis.cf +koitedis.ga +koitedis.gq +koitedis.ml +koitedis.tk +kojaza.site +kojon6ki.cy +kojonki.cy +kojsaef.ga +kokencocinas.com +kokinus.ro +kokkamugak.online +kokma.site +kokohawke.com +kokorot.cf +kokorot.ga +kokorot.gq +kokorot.ml +kokorot.tk +kokosik.site +koksi.ru +kokteyl365.site +kolagenanaturalny.eu +kolasin.net +kolaybet99.com +kolayfinansman.xyz +kolayhemenara.com +kolbasasekas.ru +kolbforcouncil.com +kolczynka.pl +kolekcjazegarkow.com +koliman.me +koliter.xyz +kolkadrov.ru +kolkmendbobc.gq +kolkmendbobc.tk +kollabkonceps.com +kollective.agency +kollektor-stout.ru +kollibry.ru +kolndaik.site +kolodec-legko.ru +koloekmail.com +koloekmail.net +koloidno.com +kolonkop.space +kolonyaci.site +kolonyajel.com +kolotoparaka.icu +kolovbo.icu +kolovers.com +kolpm.icu +kolpoiy12.xyz +kolumb-nedv.ru +kolvok2.xyz +kolxo3nik.ru +kolxo3pro.ru +kolyasski.com +komaxann.com +kombimonster.com +kombinebet113.com +kombinebet62.xyz +kombiservisler.com +kombuchadad.com +komfu.com +komkomp.ru +kommunity.biz +kommv.cc.be +komninoiny.org +kompakteruss.cf +komparte.org +kompbez.ru +kompens-viplati-rf.site +kompenszaotpusk.xyz +komper.info +kompetisipoker.world +kompressorkupi.ru +komunitastogelindonesia.info +komuvi.info +komys.com +kon42.com +konacode.com +konaklayan.com +konaksgb.xyz +konaoutriggerresort.com +konbat.ru +kondadra.ru +kondicionery-kursk.ru +kondomeri.se +konect.site +koneshtech.org +konetzke.net +konev.online +konferansnasyonal.org +konferencja-partnerstwo-publiczno-prywatne.pl +kongdombli.cf +kongdombli.ga +kongdombli.gq +kongdombli.ml +kongdombli.tk +kongfunkitchen.com +kongs-chinese-takeaway.com +kongzted.net +konicy.pro +konikode.org +koning.icu +konkenist.com +konkursoteka.com +konno.tk +konsalt-proekt.ru +konstmusik.se +kontagion.pl +kontak-whats.app +kontakt.imagehostfile.eu +kontaktbloxx.com +kontaktniy-centr.ru +kontcasino.net +kontmomo.ga +kontmomo.ml +konto-w-banku.net +kontol.city +kontol.co.uk +kontormatik.org +kontorpaneli.net +kontrabet13.com +kontrabet14.com +kontraksgoskin.info +kontraktsfinansiering.se +kontrolreestr.xyz +konultant-jurist.ru +konumin.cf +konure.com +konveksigue.com +konyad.org +konyakarataylisesi.com +konyalimsesli.xyz +konyaliservis.xyz +konyawa.xyz +kooaxwlal.shop +koochmail.info +koodidojo.com +koofy.net +koogis-cream.ru +kook.ml +kookabungaro.com +kookaburrawindows.com +koolgosto.com +koomaps.com +koopret.ga +koopvkladtut.xyz +koorabia.net +koorabia.org +koorstvrij.events +koortscamera.shop +koortscameras.shop +koortsdetectie.camera +koortsdetectie.events +koortsvrije.events +kopagas.com +kopaka.net +kopakorkortonline.com +koparatnewtoncondo-cel.site +kopdarec.cf +kopdarec.gq +kopdarec.ml +kopdarec.tk +kopecun.ru +kopergaons.info +kopf.pro +kopg0y.site +kopher.com +kopiacehgayo15701806.cf +kopiacehgayo15701806.ga +kopiacehgayo15701806.ml +kopiacehgayo15701806.tk +kopibajawapunya15711640.cf +kopibajawapunya15711640.ga +kopibajawapunya15711640.ml +kopibajawapunya15711640.tk +kopikapalapi11821901.cf +kopikapalapi11821901.ga +kopikapalapi11821901.ml +kopikapalapi11821901.tk +kopiko.ml +kopipahit.ga +kopipapua.biz +kopir-ka.ru +kopitiam.cd +koplexcat.ru +koporton.club +kopqi.com +koprkr.shop +korabora.ong +koralldesign.se +koran3000.com +korankiu.info +korcan.org +korcznerwowy.com +kore-tv.com +korea-beaytu.ru +korea315.xyz +koreaaa316.xyz +koreaaa317.xyz +koreaautonet.com +koreamail.cf +koreamail.ml +koreamedis.ru +korean-brides.com +korean-fx.site +koreannannies.com +koreantranslators.org +koreautara.cf +koreautara.ga +korelmail.com +korika.com +korinthiakos.net +korjk.com +korkorts-foto.se +korma-at-home-dunboyne.com +kormail.xyz +korneliavidovic.com +korona-nedvizhimosti.ru +koronaviruss.com +korozy.de +korrichttur.cf +korrichttur.ga +korrichttur.ml +korrichttur.tk +korsakm.com +korsakov-crb.ru +kort.cd +kortom.site +korutbete.cf +kosack.se +kosciuszkofoundation.com +kosgcg0y5cd9.cf +kosgcg0y5cd9.ga +kosgcg0y5cd9.gq +kosgcg0y5cd9.ml +kosgcg0y5cd9.tk +kosherlunch.com +koshkin.love +kosholoka.space +koshu.ru +koshua.com +kosiarszkont.com +koskiandsyvari.com +kosla.pl +kosma33.ru +kosmetik-obatkuat.com +kosmetika-korei.ru +kosmetika-kr.info +kosmetika-pro.in.ua +kosmoart.world +kosmolotvip.com +kosmoworld.ru +kosoffertest.ru +kosolar.pl +kosova24.info +kosrze.site +kost.party +kosta-rika-nedv.ru +kostenlos-web.com +kostenlose-browsergames.info +kostenlosemailadresse.de +kostestas.co.pl +kosze-na-smieciok.pl +koszm.us +koszmail.pl +koszulki-swiat.pl +kotao.xyz +kotastone.org +kotbuy.space +kotidian.com +kotiki.pw +kotlinmagic.com +kotlintemplates.com +koto.agency +kotolampa.ru +kotoled.mobi +kotruyerwrwyrtyuio.co.tv +kotsu01.info +kottochblod.se +kotymac.pro +kouattre38t.cf +kouattre38t.ga +kouattre38t.gq +kouattre38t.ml +kouattre38t.tk +kouch.ml +koulussa.ml +kounes.com +kounnes.com +kousao95.icu +koutburgvil.ga +koutburgvil.gq +koutburgvil.ml +kovaba.xyz +koval68.ru +kovezero.com +kovfzt1m.info +kovi.bike +kovi.cab +kovi.care +kovi.center +kovi.media +kovi.site +kovi.store +kovi.ventures +kovi.website +kovi.world +kovi.zone +kow-game.xyz +koweancenjancok.cf +koweancenjancok.ga +koweancenjancok.gq +koweancenjancok.ml +kowert.in +kowgame.online +kowsderun.cf +kowsderun.ga +kowsderun.ml +koyocah.ml +koypeyniri.online +koyunum.com +koyunum.net +kozacki.pl +kozaki2.fun +kozelkrug.xyz +kozing.net +kozow.com +kp033.club +kp2008.com +kp54ujf6z173r2i.xyz +kp77777.com +kp996.com +kpapa.ooo +kpar30b.club +kpay.be +kpgfjrje.shop +kpgindia.com +kphabbo.online +kpmnw1.site +kpoker88.biz +kpolikaret.ga +kpooa.com +kpoppeiro.com +kpops.info +kpost.be +kpostmagazin.xyz +kppfib.com +kppseulh.shop +kpvubc.com +kpxnxpkst.pl +kq094.site +kqeogb.us +kqeutmuv.shop +kqhs4jbhptlt0.cf +kqhs4jbhptlt0.ga +kqhs4jbhptlt0.gq +kqhs4jbhptlt0.ml +kqhs4jbhptlt0.tk +kqhwojmb.shop +kqimvj.info +kqis.de +kqo0p9vzzrj.ga +kqo0p9vzzrj.gq +kqo0p9vzzrj.ml +kqo0p9vzzrj.tk +kqqe.email +kqtsg.com +kqwyqzjvrvdewth81.cf +kqwyqzjvrvdewth81.ga +kqwyqzjvrvdewth81.gq +kqwyqzjvrvdewth81.ml +kqwyqzjvrvdewth81.tk +kqxs168.org +kqxskt.net +kr207.site +kracih.ru +kradrider.com +kradrider.info +kradrider.net +kradrider.org +kraftbeer.org +kraftdairymail.info +kraftimir.ru +kraftmann-compressoren.ru +kraftur.se +krakov.net +krakowpost.pl +krakowskiadresvps.com +kraldostfm.online +kramatjegu.com +krampuslegend.com +kran-ua.ru +kranewaresolutions.com +krankenversicherungvergleich24.com +krapaonarak.com +kras-ses.ru +krasaeva.ru +krasavtsev-ua.pp.ua +krascos.ru +krasfasad24.ru +krasim-nogti.ru +krasivie-parki.ru +kraskaekb.ru +kraskimedia.ru +kraslotenoverzicht.com +krasnikovalexandr.ru +krasper.ru +krassnodar.ru +kratebike.net +kratom.ist +kratomseeds.us +kratoso.com +kratzmassage.biz +kraunch.com +krausewebservices.com +krazymail.com +krb.asia +krd.ag +kre8ivelance.com +kreacja.info +kreacjainfo.net +kreativsad.ru +kreatoracademy.asia +kreatorzyiimprez.pl +kreatorzyimprez.pl +kredim.website +kredinn.xyz +kredit-beamten.de +kredit-maps.ru +kreditbankbankrt.xyz +krediti-dlya-biznesa.ru +kreditkartenvergleich.jetzt +kreditmindi.org +kreditminus.xyz +kreditnalonline.com +kreditnyefakty76.ru +kredytsamochodowy9.pl +kreeist.space +kreig.ru +kreigkent.us +kreines71790.co.pl +kreldon.co +kreldon.me +kreldon.us +krem-maslo.info +kremlin-russia.ru +kremlin2018ru.ru +krentery.tk +krepekraftonline.com +kresla-stulia.info +kreuiema.com +kreusgravois.net +krffnw.club +krgyui7svgomjhso.cf +krgyui7svgomjhso.ga +krgyui7svgomjhso.gq +krgyui7svgomjhso.ml +krgyui7svgomjhso.tk +krhgkreb.shop +krhr.co.cc +kri1d12p1dgpc62.xyz +krillio.com +krilokakletat.info +kriminal.online +kriminal.website +krioo.club +kriptocucesi.com +kriptokartel.ru +kriptozin.com +kriqziol.shop +kriseos.com +krish.sydney +krishnajariwala.com +krishnamurthyt2smenu.com +krishnarandi.tk +krissfamily.online +kristall2.ru +kristeven.tk +kristiannoya.com +kristinejane.com +kristophersage.com +kriunoper.tk +krixis.site +kriyakinesis.com +krjjqt.us +krle.us +krmgp1.site +krnf.de +krnuqysd.pl +kro.kr +kro65.space +krodnd2a.pl +krollresponders.org +kromechains.com +kromeem.com +krompakan.xyz +krondon.com +krone-24.ru +kronedigits.ru +kronen-zeitung.site +kronoparkenspizzeria.se +kross-outlets.ru +kross-style.ru +kross-torg.ru +krossberry.ru +krosstorg.ru +kroswalt.com +krovanaliz.ru +krovatka.su +krowdserf.com +kroyalebeautysalon.com +krsw.sonshi.cf +krsw.tk +krtdvuyj.shop +krte3562nfds.cf +krte3562nfds.ga +krte3562nfds.gq +krte3562nfds.ml +krte3562nfds.tk +krtjrzdt1cg2br.cf +krtjrzdt1cg2br.ga +krtjrzdt1cg2br.gq +krtjrzdt1cg2br.ml +krtjrzdt1cg2br.tk +krugerreserve.com +krunkosaurus.com +krupp.cf +krupp.ga +krupp.ml +krupukhslide86bze.gq +krushinem.net +krvjna.ml +krvps.com +krwzgt.us +krxr.ru +kry1m.space +krypcall.com +kryptex.cf +kryptex.gq +krypton.tk +kryptone.market +kryptonqq.com +kryptonqq.net +kryptonqq.org +krystabledsoe.com +krystallettings.co.uk +krystalresidential.co.uk +kryukvoron.ru +krzysztofpiotrowski.com +ks-sports.net +ks7h.com +ks87.igg.biz +ks87.usa.cc +ksa-i.icu +ksa-u.icu +ksadrc.com +ksaleshow.site +ksanax.site +ksao.club +ksao.store +ksao.us +ksdcdecusklh1sk.xyz +kserokopiarki-gliwice.com.pl +kserokopiarki.pl +ksframem.com +ksgfu.live +ksgofrag.info +ksidemdi.ga +ksidemdi.gq +ksidemdi.tk +ksiegapozycjonera.priv.pl +ksignnews.com +ksintez.com +ksisil.us +ksiskdiwey.cf +ksjdhlka.xyz +ksjivxt.com +kskbd.com +kslokogm-fm.com +kslweddings.com +ksmtrck.cf +ksmtrck.ga +ksmtrck.rf.gd +ksmtrck.tk +ksoftgames10.com +ksoftgames18.com +ksoftgames19.com +ksoftgames3.com +kspa.xyz +ksportscoin.com +ksportscoin.net +ksqpmcw8ucm.cf +ksqpmcw8ucm.ga +ksqpmcw8ucm.gq +ksqpmcw8ucm.ml +ksqpmcw8ucm.tk +kstater.press +kstnu4.info +kstrong.info +kstyleworld.com +ksustine.com +ksylonmartin.com +kszsae.us +kt-static.com +kt1k.com +kt1k.net +kt3qiv.info +ktajnnwkzhp9fh.cf +ktajnnwkzhp9fh.ga +ktajnnwkzhp9fh.gq +ktajnnwkzhp9fh.ml +ktajnnwkzhp9fh.tk +ktbk.ru +ktds.co.uk +kterer.com +ktexaf.icu +ktgre.website +kth.kiwi +ktm303.org +ktopomozeseniorom.sk +ktotey6.mil.pl +kttc.space +ktumail.com +ktvblog.com +ktwoan.com +ku-rong.com +ku1hgckmasms6884.cf +ku1hgckmasms6884.ga +ku1hgckmasms6884.gq +ku1hgckmasms6884.ml +ku1hgckmasms6884.tk +ku4b1.us +kuai909.com +kuaifuli.club +kuaijenwan.com +kuaixueapp01.mygbiz.com +kuaizhufang.com +kualapuucharterschool.com +kualitasqq.com +kualitasqq.net +kuantumdusunce.tk +kuarmenu.com +kuatcak.cf +kuatcak.tk +kuating88.icu +kuatkanakun.com +kuatmail.gq +kuatmail.tk +kuatocokjaran.cf +kuatocokjaran.ga +kuatocokjaran.gq +kuatocokjaran.ml +kuatocokjaran.tk +kuba-nedv.ru +kuba.rzemien.xon.pl +kubeflow.info +kubqs.live +kubzone.ru +kuchenmobel-berlin.ovh +kuchniee.eu +kuciangxtify-store1.com +kucing99.com +kucingarong.cf +kucingarong.ga +kucingarong.gq +kucingarong.ml +kucinge.site +kucoba.ml +kucoin.one +kud0ng.com +kudanilshop.com +kudaponiea.cf +kudaponiea.ga +kudaponiea.ml +kudaponiea.tk +kudaterbang.gq +kudefu.info +kudeha.info +kudlatamewa.se +kudzu.info.pl +kue747rfvg.cf +kue747rfvg.ga +kue747rfvg.gq +kue747rfvg.ml +kue747rfvg.tk +kueh.shop +kuehmueh.shop +kuehraya.shop +kuemail.men +kuewne.site +kuf.us +kuffrucrei.cf +kuffrucrei.ga +kuffrucrei.gq +kuffrucrei.ml +kuffrucrei.tk +kufrrygq.info +kufyguy.space +kugfb4.info +kugorze.com.pl +kugua1-99.xyz +kuheco.xyz +kuhioshore.com +kuhlgefrierkombinationen.info +kuhmebelmos.ru +kuhni-kuk.ru +kuhninazakaz.info +kuhnya-msk.ru +kuhnyamarket.ru +kuhrap.com +kuhybe.info +kuickulture.asia +kuihmuih.shop +kuihraya.shop +kuikytut.review +kuiljunyu69lio.cf +kuingin.ml +kuiqa.com +kujishops.site +kujztpbtb.pl +kukeboutique.site +kukizbezpartyjnisamorzadowcy.org +kukowski.eu +kukowskikukowski.eu +kukuite.ch +kukuka.org +kukuljanovo.info +kukuljanovo.net +kula.uno +kulepszejprzyszlosci.pl +kulichiki.com +kulinarry.ru +kulitlumpia.ml +kulitlumpia1.ga +kulitlumpia2.cf +kulitlumpia3.ml +kulitlumpia4.ga +kulitlumpia5.cf +kulitlumpia6.ml +kulitlumpia7.ga +kulitlumpia8.cf +kuljdeals.site +kulksttt.com +kulmeo.com +kulmio.dev +kulogu.cf +kulogu.ml +kulpik.club +kulpvalinafizkayali.net +kulturalneokazje.pl +kulturapitaniya.ru +kulturbetrieb.info +kultureco.space +kum38p0dfgxz.cf +kum38p0dfgxz.ga +kum38p0dfgxz.gq +kum38p0dfgxz.ml +kum38p0dfgxz.tk +kumail8.info +kumisgonds69.me +kumiteregistration.com +kumlucahalkegitim.xyz +kumpulbola.com +kun98.com +kuncibengkel.com +kunden-verify-298374-check-sicherung.ru +kundenserver.website +kune.app +kune.online +kuneblog.com +kunespace.net +kunfou.com +kungfuseo.info +kungfuseo.net +kungfuseo.org +kunghourpa.cf +kunghourpa.ga +kunghourpa.tk +kuni-liz.ru +kunimedesu.com +kunitzsch-kfz-service.de +kunrong.info +kunststofdeureneindhoven.com +kunwardanishali.com +kunwojituan.com +kuonicreative.com +kuoogle.com +kupa.website +kupakupa.waw.pl +kupeyka.com +kupi.dev +kupiarmaturu.ru +kupiprodaiauto.ru +kupiprodaimetal.ru +kupiru.net +kupit-aviabilety-na-samolet.ru +kupit-aviabilety-ofitsialnyy-sayt.ru +kupit-kurt.ru +kupit-spravka-lipetsk.ru +kupit-spravka-v-sochax.ru +kupitdiplom.info +kupoklub.ru +kupon.cash +kupon4d.xyz +kuponjitu.info +kupsstubirfag.xyz +kupuj-pneu.sk +kuram.host +kurawapoker.club +kurawapoker.fun +kurawapoker.info +kurd.link +kurdbeen.net +kurdit.se +kurdsatnews.net +kurdsatnews.org +kurior.com +kurkumazin.shn-host.ru +kuroate.info +kurogaze.site +kurort-rf.ru +kurpar.ru +kurs-excel.ru +kurs-uspex.online +kursekle.xyz +kursmagazine.space +kursovaya-rabota.com +kurszarrqx.club +kurtbayt.icu +kurtizanka.net +kurtsax.org +kurtsax.us +kurtzrealty.com +kurubands.info +kurumama.org +kurupee.com +kuryshkina.ru +kurz-abendkleider.com +kurzepost.de +kusadasiemlakofis.com +kusadasipalmresort.com +kusam.ga +kuskonmazciftligi.com +kusma.org +kusrc.com +kustermail.com +kusyuvalari.com +kut-mail1.com +kutahyaalyans.xyz +kutahyaggk.com +kutahyapostasi.xyz +kutahyasairseyhiioo.com +kutahyasairseyhiioo.xyz +kutahyasiirsevenlerdernegi.com +kutahyasiirsevenlerdernegi.xyz +kutakbisadekatdekat.cf +kutakbisadekatdekat.ml +kutakbisadekatdekat.tk +kutakbisajauhjauh.cf +kutakbisajauhjauh.ga +kutakbisajauhjauh.gq +kutakbisajauhjauh.ml +kutakbisajauhjauh.tk +kutcuibui.ml +kutcuibui.tk +kuteotieu111.cz.cc +kuucrechf.pl +kuugyomgol.pl +kuwaiyedekparca.com +kuy.bet +kuyberuntung.com +kuyhaa-android19.bid +kuymubows.cf +kuymubows.ml +kuymubows.tk +kuyzstore.com +kuzady.info +kuzeygeribas.cf +kuzeyguney.cf +kuzeyguney.ga +kuzumo.com +kv272.site +kv8v0bhfrepkozn4.cf +kv8v0bhfrepkozn4.ga +kv8v0bhfrepkozn4.gq +kv8v0bhfrepkozn4.ml +kv8v0bhfrepkozn4.tk +kvacdoor.xyz +kvadrokopter-s-kameroj.ru +kvaes.site +kvail.se +kvajy.live +kvartagroup.ru +kvartira-volgograd.ru +kvc67.space +kvcoredemo.us +kvcoredemo.xyz +kvfg.com +kvfyn.us +kvkailashahar.in +kvl.ink +kvnforall.ru +kvouthmnu.shop +kvr8.dns-stuff.com +kvs24.de +kvsheopur.org +kvvaiu.ru +kw890.site +kw9gnq7zvnoos620.cf +kw9gnq7zvnoos620.ga +kw9gnq7zvnoos620.gq +kw9gnq7zvnoos620.ml +kw9gnq7zvnoos620.tk +kwa-law.com +kwacollections.com +kwadratowamaskar.pl +kwalidd.cf +kwangjinmold.com +kwdd.buzz +kweci.com +kweekendci.com +kwertueitrweo.co.tv +kwestlund.com +kwestor4.pl +kwestor5.pl +kwestor6.pl +kwestor7.pl +kwestor8.pl +kwiatownik.pl +kwiatyikrzewy.pl +kwickcom.com +kwickcovers.com +kwift.net +kwii.org +kwikturnhosting.com +kwilco.net +kwind47.xyz +kwishop.com +kwj0sq.us +kwlbz.live +kwmarketplace.com +kwondang.com +kwrffm.ml +kwsnqggvd.shop +kwvnr.com +kwzi0a.com +kx561.site +kxdxd.com +kxhb66.com +kxliooiycl.pl +kxlkze.site +kxmnbhm.gsm.pl +kxmvdvop.shop +kxo7.us +kxtshe.us +kxvps.com +kxzaten9tboaumyvh.cf +kxzaten9tboaumyvh.ga +kxzaten9tboaumyvh.gq +kxzaten9tboaumyvh.ml +kxzaten9tboaumyvh.tk +ky-ky-ky.ru +ky019.com +kyaffshop.store +kyal.pl +kyberkafe.com +kydigo.com +kydirect.cd +kydovekame.ru +kydro.com +kyebosh.pro +kyfaomzer.gq +kyfeapd.pl +kyfsh.com +kyhalfpricelistings.com +kyhealthcoverage.bid +kyhuifu.site +kyilasninsky.com +kyj27.com +kyjewa.info +kykarachy.site +kykareku.ru +kylegrenell.club +kylemaguire.com +kylemorin.co +kyliekkwbeauty.ru +kylinarnierecepti.ru +kymogen.com +kymun.site +kynoeajq.xyz +kyobars.icu +kyocara-sg.com +kyois.com +kyoketsu.com +kyokushinkarate.co +kypi74.ru +kyq3pa.com +kyrgyzoymoloru.kg +kyrsvalut.ru +kys3pw.us +kystj.us +kytozu.info +kyuc.asia +kyvoxio.space +kywiyoy.site +kyzisu.xyz +kyzo.site +kz-delivery.agency +kz0mjs.info +kz64vewn44jl79zbb.cf +kz64vewn44jl79zbb.ga +kz64vewn44jl79zbb.gq +kz64vewn44jl79zbb.ml +kz64vewn44jl79zbb.tk +kz9tev-mail.xyz +kzbvyq.host +kzcontractors.com +kzctsgdo.shop +kzdylr.com +kzednftik.shop +kzfnl.site +kzfzwc.site +kzk2o.club +kzn.us +kzone88.com +kzq6zi1o09d.cf +kzq6zi1o09d.ga +kzq6zi1o09d.gq +kzq6zi1o09d.ml +kzq6zi1o09d.tk +kzw1miaisea8.cf +kzw1miaisea8.ga +kzw1miaisea8.gq +kzw1miaisea8.ml +kzw1miaisea8.tk +l-100-super-lotos.site +l-baget.ru +l-c-a.us +l-egenda.com +l-okna.ru +l-response.com +l-shoponline.info +l.bgsaddrmwn.me +l.polosburberry.com +l.safdv.com +l00s9ukoyitq.cf +l00s9ukoyitq.ga +l00s9ukoyitq.gq +l00s9ukoyitq.ml +l00s9ukoyitq.tk +l017.club +l08ps2.us +l0eea8.us +l0ktji.us +l0llbtp8yr.cf +l0llbtp8yr.ga +l0llbtp8yr.gq +l0llbtp8yr.ml +l0llbtp8yr.tk +l0real.net +l0vw.club +l107h9.info +l111.tk +l12l7u.com +l1775.com +l1a2ds.online +l1rwscpeq6.cf +l1rwscpeq6.ga +l1rwscpeq6.gq +l1rwscpeq6.ml +l1rwscpeq6.tk +l1viwy.us +l2creed.ru +l2n5h8c7rh.com +l2tmsp.site +l337.store +l33r.eu +l33t.support +l36i2hbk.fun +l3nckt.com +l3ywy6aarag6nri.xyz +l48zzrj7j.pl +l4dz6h.us +l4fom5.us +l4usikhtuueveiybp.cf +l4usikhtuueveiybp.gq +l4usikhtuueveiybp.ml +l4usikhtuueveiybp.tk +l5.ca +l529u.live +l5c7zu.us +l5prefixm.com +l64pk.com +l6emr0.us +l6factors.com +l6hmt.us +l73x2sf.mil.pl +l745pejqus6b8ww.cf +l745pejqus6b8ww.ga +l745pejqus6b8ww.gq +l745pejqus6b8ww.ml +l745pejqus6b8ww.tk +l78qp.com +l79od.com +l7b2l47k.com +l7k8jy.site +l7sol.com +l7wnrm.us +l7zbsj.us +l80v.us +l81ref.us +l82323.com +l8g9so.us +l8oaypr.com +l90pm.us +l9gmbx.us +l9qwduemkpqffiw8q.cf +l9qwduemkpqffiw8q.ga +l9qwduemkpqffiw8q.gq +l9qwduemkpqffiw8q.ml +l9qwduemkpqffiw8q.tk +l9tmlcrz2nmdnppabik.cf +l9tmlcrz2nmdnppabik.ga +l9tmlcrz2nmdnppabik.gq +l9tmlcrz2nmdnppabik.ml +l9tmlcrz2nmdnppabik.tk +la-boutique.shop +la-creme-de-la-creme.com +la-p2.com +la0u56qawzrvu.cf +la0u56qawzrvu.ga +la25l.buzz +la2imperial.vrozetke.com +la2walker.ru +la9kqq.us +laagsteprijsvakantie.com +laatorneys.com +lab-getty.com +laba.group +labarbatella.net +labas.com +label-m.ru +labetteraverouge.at +labfortyone.tk +labgrowndiamond.online +labhyto.cf +labhyto.ga +labhyto.gq +labhyto.ml +labhyto.tk +labiblia.digital +labiblia.live +labibliotheque.site +labios9281divi21.ml +labo.ch +labodina.ru +labogili.ga +labontemty.com +laboralistascoruna.com +laboratortehnicadentara.ro +laboratoryreport.win +labored673vl.online +laboriously.com +laborstart.org +labratrace.com +labreportaid.com +labrums.us +labs-getty.com +labtau.com +labtoad.com +labum.com +labzherok.site +lacabina.info +lacafenligne.com +lacageadomicile.com +lacantinadelariaaviles.com +lacaraota.com +lacedmail.com +lacer-pokacar.ru +lacercadecandi.ml +laceylist.com +lachorrera.com +lachzentrum-wiesbaden.de +lackmail.net +lackmail.ru +lacky-shop.ru +laclapalace.design +laconicoco.net +laconte.ga +laconte.gq +laconte.tk +lacosteshoesfree.com +lacosye.com +lacrosselocator.com +lactigo.ru +lacto.info +lacviet.org +lada-granta-fanclub.ru +ladah.info +ladang.site +ladapickup.ru +ladaran.cf +ladaran.ga +ladaran.gq +ladaran.ml +ladaran.tk +ladder-simplicity.xyz +laddoublinghut.website +laddsmarina.com +laddyhammercasino.com +ladege.cf +ladege.gq +ladege.ml +ladege.tk +ladellecorp.com +laden3.com +laderranchaccidentlawyer.com +ladespensachicago.org +ladeweile.com +ladiabetessitienecura.com +ladiesbeachresort.com +ladieshightea.info +ladiesjournal.xyz +ladiesshaved.us +ladivinacomedia.art +ladohucu.site +ladrop.ru +ladsad.ru +laduree-dublin.com +lady-jisel.pl +lady-journal.ru +ladyanndesigns.com +ladybossesgreens.com +ladycosmetics.ru +ladydressnow.com +ladyfleece.com +ladylounge.de +ladylovable.com +ladymacbeth.tk +ladymjsantos.net +ladymjsantos.org +ladymom.xyz +ladyonline.com +ladyrelax28.ru +ladyshelly.com +ladystores.ru +ladyturnerlime.website +ladyvictory-vlg.ru +laendle.dev +laerrtytmx.ga +laerwrtmx.ga +lafarmaciachina.com +lafayetteweb.com +lafelisas.info +lafibretubeo.net +lafrem3456ails.com +lafta.cd +lafz1.us +lag.tv +laga525252.com +laga99.biz +lagane.info +lagardochicho.ovh +lagchouco.cf +lagchouco.ga +lagchouco.tk +lagerarbetare.se +lageris.cf +lageris.ga +lageris.tk +laggybit.com +lagiapa.online +lagicantiik.com +lagify.com +lagochapos.info +lagoness.com +lagooorka.ru +lagoriver.com +lagotos.net +lagrandemutuelle.info +lags.us +lagsixtome.com +lagubagus.shop +lagugratis.net +laguia.legal +lagunabay.ru +lagunacottages.vacations +lagunaproducts.com +lagushare.me +lagzi.xyz +lahaciendacoronado.com +lahainataxi.com +lahamnakam.me +laheny.site +lahi.me +lahorerecord.com +lahta9qru6rgd.cf +lahta9qru6rgd.ga +lahta9qru6rgd.gq +lahta9qru6rgd.ml +lahta9qru6rgd.tk +laibasxiou.cf +laibasxiou.ga +laibasxiou.gq +laibf1.site +laicasinoroad.ru +laicizing986jn.online +laika999.ml +laikacyber.cf +laikacyber.ga +laikacyber.gq +laikacyber.ml +laikacyber.tk +laimian-quan2.com +laimianquan2.com +laimianquan2.net +laimibe.cf +laimibe.tk +lain.ch +lainitu.cf +lainitu.ga +lainitu.gq +lainitu.ml +lainitu.tk +laithaljunaidy.store +lajauria-agility.com +lajoska.pe.hu +lak.pp.ua +lakaraka.website +lakarstwo.info +lakarunyha65jjh.ga +lake411today.xyz +lakecharleslandsurveying.com +lakecitycatt.buzz +lakeelsinorerentals.com +lakefishingadvet.net +lakeid.com +lakeland-laboratories.com +lakeland-laboratory.com +lakelandhyundaiparts.com +lakelbjlakelife.com +lakelivingstonrealestate.com +lakeplacid2009.info +lakesham.xyz +lakesidde.com +lakesofthenorthwinterfest.com +laketahoe-realestate.info +lakevilleapartments.com +lakewater.org +lakexbetpinup.ru +laklica.com +lakngin.ga +lakngin.ml +lakocloud.store +lakomoda.com +lakqs.com +lakssan.com +lal.kr +lala-mailbox.club +lala-mailbox.online +lalaboutique.com +lalala-family.com +lalala.fun +lalala.site +lalalaanna.com +lalalamail.net +lalalapayday.net +lalamailbox.com +lalarguesa.biz +lalashop.asia +lalasin.club +lalasin.xyz +laldo.com +lalearda.ga +lalearda.tk +laledogu.ml +lalegionseguridad.com +lalemavisi.cf +laletaha.ga +laletaha.ml +laleyendadelvino.com +lalimat.cf +lalimat.gq +lalimat.ml +lallaalia.com +lalunelab.com +lam0k.com +lamahometextile.com +lamaisonducachemire.com +lamarengineering.com +lamasbonitadetodasmix.com +lambadarew90bb.gq +lambandstine.com +lambanh.info +lambda.uniform.thefreemail.top +lambdaecho.webmailious.top +lambdasu.com +lambinganteleserye.ru +lamdep.net +lamdepviet.com +lamdx.com +lamgme.xyz +lami4you.info +laminaatdirect.com +lamiradaautorepair.com +lamiradarentals.com +lamongan.cf +lamongan.gq +lamongan.ml +lamore.com +lamosqe.com +lamp-crime.xyz +lampa23.online +lampadaire.cf +lampadlyagellaka.ru +lampsbeautiful.mobi +lampsbeautiful.net +lampsbeautiful.org +lampshynesslimp.website +lamseochuan.com +lamudi.cd +lamutuelle.net +lamutuelle.online +lamzakcool.ru +lan-tania-thai-restaurant.com +lan-utan-uc-se.com +lanaburl.com +lanatease.com +lancasterandstlouislaw.com +lancastercoc.com +lancasterdining.net +lancasterpainfo.com +lancasterplumbing.co.uk +lancego.space +lancelsacspascherefr.com +lancia.ga +lancia.gq +lancourt.com +lancrowd.com +lancsvt.co.uk +land-ck.com +landans.ru +landasanqq.com +landaugo.com +landesjugendfest.de +landexnetwork.online +landforhaiti.org +landfoster.com +landhq.rest +landingcenter.ru +landingcraftsforsale.com +landlooto.cf +landlooto.ga +landlooto.ml +landmail.co +landmanreportcard.com +landmark.io +landmilmumb.cf +landmilmumb.ga +landmilmumb.gq +landnsky.info +landnsky.org +landofhopeorlando.org +landofsunandsky.com +landonbrafford.com +landravphillips.com +landrop.me +landroverrepair.com +landscapeandplanning.com +landscgvqe.space +landstopdrop.space +landsurfigh.cf +landsurfigh.ga +landsurfigh.gq +landsurfigh.ml +landsurfigh.tk +landtire.ga +landtire.gq +landtire.ml +lanelofte.com +lanepoll.com +langabendkleider.com +langanswers.ru +langclubs.ru +langitbiru.info +langitpoker.org +langitserver.biz +langk.club +langleyadvocate.net +langleycitizen.com +langleycourier.net +langleyfirst.com +langleyfirst.net +langleyfirst.org +langleyherald.net +langleyherald.org +langleyjournal.net +langleyrecord.com +langleyrecord.net +langleyrecord.org +langleyreview.com +languagera.online +lanha-tours.com +laniferous.site +lanimaresorts.com +lanimasaudi.com +laninna.online +laninternational.com +lanjuecg.com +lankezhou.com +lanless.net +lanorthface.com +lanquiplod.gq +lanquiplod.ml +lanquiplod.tk +lanscieze.club +lantai6.org +lantderdi.cf +lantderdi.ga +lantderdi.gq +lantderdi.ml +lantofe.cf +lantofe.ga +lantofe.gq +lantofe.ml +lantv.ru +lanuze.xyz +lanyard.plus +lanydar.site +laoeq.com +laoheritage.net +laoho.com +laokzmaqz.tech +laonanrenj.com +laoshandicraft.com +laostours.info +laotmail.com +lapak21.video +lapakbanyumas.com +lapakpokers.net +laparbgt.cf +laparbgt.ga +laparbgt.gq +laparbgt.ml +lapdfmanuales.xyz +lapeksp.ru +lapetcent.cf +lapetcent.gq +lapetcent.ml +lapetcent.tk +lapetiteetincellecoaching.com +lapita.cf +lapita.gq +lapita.ml +lapita.tk +lapizzolettasoria.com +lapkholanh.com +laplusgrandemutuelle.info +laporinaja.com +laposhe.net +lapptoposse99.com +lapsha.tk +laptopamerica.net +laptopbeddesk.net +laptopcooler.me +laptopss.xyz +laptopsshop.live +laptoptechie.com +laptrinhapp.top +laptrinhwp.com +laputs.co.pl +lapwas.xyz +larachristie.site +laraes.pl +laraladies.com +laramail.io +laras.ru +laravelbuilder.com +laredonailsalons.com +laredophysiciansgroup.info +laredophysiciansgroup.net +larepublica.host +larepublica.website +large-cock.com +largech.icu +largechai.icu +largeco.xyz +largedebu.email +largedebut.email +largeformatprintonline.com +largelift.com +largelyavailable.net +largelyavailable.org +largeshop.futbol +largeteach.email +largo.laohost.net +larisa-firdusovna.ru +larisia.com +larjem.com +larkdev.com +larkfieldkebabandpizza.com +laroadsigns.info +larosetantrique.com +larping.dev +larrry.host +larryblair.me +larrynichols.news +larrywinn.com +larsonfamilytree.com +lasagnerecept.nu +lasaliberator.org +lasaliberator.us +lasapiniere.cd +lasde.xyz +lasdke.site +lasdunsti.cf +lasdunsti.ga +lasdunsti.ml +lasdunsti.tk +laser-dental.com +laser88.com +laserenatatakeaway.com +laserevent.com +laserfratetatuaj.com +laserkraft.biz +laserowe-ciecie.pl +laserremovalreviews.com +lasersaber.com +lasertypes.net +lasfobiasa.info +lasg.info +lasgidicuisine.com +lash.email +lasikcharleston.com +lasip.org +lasirenatakeaway.com +lasischa.cf +lasischa.ga +lasischa.gq +lasischa.ml +lasischa.tk +lasixonlineatonce.com +lasixonlinesure.com +lasixonlinetablets.com +lasixprime.com +laskar4d.website +laskarbola88.site +laskarxebe.space +lasnoticias.net +lasojcyjrcwi8gv.cf +lasojcyjrcwi8gv.ga +lasojcyjrcwi8gv.gq +lasojcyjrcwi8gv.ml +lasojcyjrcwi8gv.tk +lasselong.ru +lassunshaltkurzmalso.vision +last-chance.pro +lastbilsmodeller.se +lastchaosraiz.com +lastconn.site +laste.ml +lastenergycall.com +lastestberry.xyz +lastking.co +lastlone.com +lastmail.co +lastmail.com +lastmail.ga +lastminute.dev +lastminute365.ru +lastminutemarket.org +lastmx.com +lastogor.xyz +lastpostapp.com +lastructuralengineering.com +lastrwasy.co.cc +lastskiveline.website +laststand.xyz +lastxxx.com +lasupsi.ga +lasupsi.gq +lasupsi.ml +lasupsi.tk +lasvegasaroundtheclock.com +lasvegasdictionary.com +lasvegastries.com +lasvegasvirusremoval.com +laszki.info +lat-nedv.ru +latamdate.review +latechnologie.site +latelierduchef.biz +latemail.tech +latest.cd +latestandhot.com +latestgadgets.com +latestprojectors.com +latestshayari.org +lateststylenews.xyz +latexbimbo.com +latheflauntmoral.site +latinchat.com +latinmail.com +latinobabysitters.com +latinonthebeach.com +latitant.xyz +latives.info +latlong.us +latriciagreene.com +latte-ro.com +lattestdaysaints.com +latvene.site +latviansmn.com +latwebmedia.com +latypografille.com +lauderdalebeachsidehotel.com +laufman.biz +laughingninja.com +lauher.org +launcestonpools.com +launch.vote +launchfunnelsecrets.com +launchjackings.com +launchpadapp.com +launchwithrica.com +laurafan.com +laurapliss.com +lauratrapp.org +laurelgrey.org +laurelmountainmustang.com +laurenanduri.com +laurenbt.com +laurenglobell.com +laurenmyers.buzz +laurennolan.buzz +laurenperugini.info +laurentsmadja.com +laurieyoungphotography.com +lautaroramirez.com +lauthreadce.cf +lauthreadce.ga +lauthreadce.gq +lauthreadce.ml +lauthreadce.tk +lauwd.org +lauxanh.live +lavabit.com +lavaiis.info +lavalleeheureuse.club +lavanamakeup.com +lavastockrom.info +lavazzaturkiye.net +lavendel24.de +lavenderresorts.com +lavendettastadriadebesos.com +laverneste.com +lavevojsnmt71366.ml +lavinacasno.club +lavinity.ru +lavish-cork.com +lavkaidey.ru +lavp.de +law-plus.ru +law2lawyer.com +lawaa317.xyz +lawaifu.pro +lawbmydi.cf +lawbmydi.gq +lawbmydi.ml +lawbmydi.tk +lawbrsoli.ru +lawcenter-1.ru +laweemx.ga +lawenforcementcanada.ca +lawfia.com +lawfinancial.ru +lawhead79840.co.pl +lawioutlets.site +lawlita.com +lawlz.net +lawncorwoo.cf +lawncorwoo.ga +lawncorwoo.gq +lawncorwoo.tk +lawndaleapartments.com +lawpages.site +lawpress.ru +lawrence1121.club +lawsentinel.com +lawsocial.ru +lawsocietyfindasolicitor.net +lawsocietyfindasolicitor.org +lawson.cf +lawson.ga +lawson.gq +lawsone.best +lawsubsqua.ga +lawsubsqua.gq +lawsubsqua.ml +lawsubsqua.tk +lawsuh.com +lawtelegraph.com +lawtoffee.com +lawvii.com +lawyerinfo.ru +lawyernear-me.com +lawyers2016.info +laxyeu.us +layananemail.com +layarkaca21.uno +layarqq.life +layarqq.loan +layarqq.online +layarsemi.club +laychuatrenxa.ga +laycounre.cf +laycounre.ga +laycounre.gq +laycounre.ml +laycounre.tk +layonchambers.com +layout-webdesign.de +layquili.cf +layquili.ga +layquili.gq +layquili.ml +layquili.tk +layuhnjshkr57618.ml +layuhnjshkr57618.tk +layupixwn.space +lazarskipl.com +lazdmzmgke.mil.pl +lazghem.cf +lazghem.ga +lazghem.gq +lazghem.ml +lazghem.tk +lazghem19.ga +lazghem1990.ga +lazizakebab.com +lazyarticle.com +lazyfire.com +lazyinbox.com +lazyinbox.us +lazymail.me +lazymail.ooo +lazymansmarketingfunnel.com +lazymanssalesfunnel.com +lazymanssalesleads.com +lazyrabbit.org +lazzarincafesaudia.com +lb1333.com +lbamilitarysorority.org +lbbxyhyf.shop +lbe.kr +lbedhm.us +lbhuxcywcxjnh.cf +lbhuxcywcxjnh.ga +lbhuxcywcxjnh.gq +lbhuxcywcxjnh.ml +lbhuxcywcxjnh.tk +lbicamera.com +lbicameras.com +lbicams.com +lbitly.com +lbjmail.com +lbn10.com +lbn11.com +lbn12.com +lbn13.com +lbn14.com +lboinhomment.info +lbox.de +lbpmg9.ru +lbpoa.com +lbpoa.net +lbse.net +lbusapac.cf +lbusapac.ga +lbusapac.ml +lbusapac.tk +lbuvfg.us +lbx0qp.pl +lbyledindia.icu +lc-ryu.com +lc0eb2.com +lc2jt0.info +lc360.site +lca-p.icu +lcahzw.info +lcamerapeak.site +lcamywkvs.pl +lcb63i1bgwe7sxy.xyz +lcbogoodneighbours.com +lcboreadytodrink.com +lccweb.org +lcdweixiu.com +lce0ak.com +lcebull.com +lceland.net +lceland.org +lcelander.com +lcelandic.com +lcgjbz.com +lcgqvd.best +lchapl.us +lchecperki.cf +lchecperki.ga +lchecperki.gq +lchecperki.ml +lcicontainment.com +lcirailgroup.com +lck66c4.com +lckiq1.site +lcleanersad.com +lcnicdn.net +lcnn.site +lcshjgg.com +lcumof.ga +lcyxfg.com +ld-zz.com +ld748.site +ld7z1y.us +ldabconnins.cf +ldabconnins.gq +ldabconnins.ml +ldabconnins.tk +ldaho.biz +ldaho.net +ldaho0ak.com +ldaholce.com +ldbet.net +ldbwebdev.com +ldebaat9jp8x3xd6.cf +ldebaat9jp8x3xd6.ga +ldebaat9jp8x3xd6.gq +ldebaat9jp8x3xd6.ml +ldebaat9jp8x3xd6.tk +ldefsyc936cux7p3.cf +ldefsyc936cux7p3.ga +ldefsyc936cux7p3.gq +ldefsyc936cux7p3.ml +ldefsyc936cux7p3.tk +ldentertainment.net +ldgufvctc.shop +ldh80hrnfauehks.xyz +ldidjk.icu +ldimh.live +ldlvqf.shop +ldnblockchainweek.com +ldnplaces.com +ldokfgfmail.com +ldokfgfmail.net +ldop.com +ldovehxbuehf.cf +ldovehxbuehf.ga +ldovehxbuehf.gq +ldovehxbuehf.ml +ldovehxbuehf.tk +ldssharingtable.com +ldtp.com +ldwdkj.com +ldzg.email +le-asi-yyyo-ooiue.com +le-book.info +le-diamonds.com +le-speak-show.com +le-tim.ru +le-vignoble.info +le.monchu.fr +le50le5i.shop +le5ile50.shop +lea-0-09ssiue.org +lea-ca-ales-ia.online +lea-ss-ws-33.org +leabelvei.cf +leabelvei.ga +leabelvei.gq +leabelvei.ml +leachim.org +lead-contact.ru +lead-maximum.ru +lead-tour.ru +leadarab.xyz +leadcoat.website +leaddogstats.com +leader-traffic.ru +leaderlawabogados.com +leadermedalsink.website +leaderportes-dz.com +leadersinevents.com +leadgeneration.doctor +leadgeneration.systems +leadingageco.org +leadingagegeorgia.org +leadingbulls.com +leadingemail.com +leadingeu.site +leadlovers.site +leadmagnetgenerator.com +leadnurseafrica.com +leadsafestlouis.org +leadscan.website +leadscanwr.online +leadscentre.online +leadscopy.com +leadsflow.info +leadsintoloans.com +leadssimple.com +leadsystemthatworks.com +leadtothebest.com +leadwojzer.space +leafmanager.com +league0.com +leaguecms.com +leaguedump.com +leagueofdefenders.gq +leagueoflegendscodesgratuit.fr +leakazanclari.com +leakazancplani.com +leakcloaker.online +leakcloaker.xyz +leaked.directory +leakems.org +leakybottle.com +leakydisc.com +leakygutawarness.com +lealifen.cf +lealifen.ga +lealifen.gq +lealifen.ml +lealifen.tk +leanedir.com +leanlad.com +leanxtractor.com +leapercliff.top +leapradius.com +leapshoot.com +learn.cd +learnaffiliatemarketingbusiness.org +learnalot.xyz +learncore.co +learncore.org +learncourseonline.online +learnearntoday.com +learnhome.org +learnhowtobehappy.info +learnhowtomakemoneyformhome.com +learning-a1.ru +learning-b2.ru +learning-blog.ru +learning-counts.net +learning-ser.ru +learning-sr.ru +learningbunny.com +learningmakingmoney.com +learningnets.net +learningstylesurvey.org +learnislaminbangla.com +learnmaths.net +learnmyanmar.online +learnphotoshop.info +learnqolapp.com +learnskillsforlife.us +learnsystem.online +learntofly.me +learntoparty.com +learnwithvideo.org +lease4less.com +leasecarsuk.info +leasecha.icu +leasefling.us +leaseranc.icu +leasero.cf +leasero.ga +leasero.gq +leasero.ml +leasero.tk +leasesoun.email +leasespine.email +leashoes.com +leasnet.net +leasswsiue.org +leather-dozen-warn-third.xyz +leatherseatcovers.net +leave-notes.com +leaveover.xyz +leaver.ru +leavr.com +lebang.site +lebanonrealestateagents.com +lebeike.club +leben-in-thailand.info +leben-statt-wohnen.org +lebenkapinda.com +lebenskunst.vision +lebilli.cf +lebilli.ga +lebilli.ml +lebilli.tk +lebo1314.com +lebo134.com +lebo137.com +lebo246.com +lebo7474.com +lebo7733.com +lebonbiz.cd +lebronjamessale.com +lecadeaucurtumecasa.com +lecgrowlight.net +lechenie-boleznej.ru +lechenie-raka.su +lechimao.club +lechimgipertoniyu.ru +leclairknives.com +leclimat.cd +leclubconcept.com +lecode.biz +lecsaljuk.club +lecturebmls.email +lecturn.digital +lecturn.online +lecturn.site +lectverli.cf +lectverli.ga +lectverli.ml +lectverli.tk +lecz6s2swj1kio.cf +lecz6s2swj1kio.ga +lecz6s2swj1kio.gq +lecz6s2swj1kio.ml +lecz6s2swj1kio.tk +leczycanie.pl +led-best.ru +led-gadgets.com +led-mask.com +led-spb.ru +led-trainers.com +ledaroy.site +ledarskolan.se +ledcaps.de +leddispsor.cf +leddispsor.ga +leddispsor.ml +leddispsor.tk +lederbehang.com +ledgardenlighting.info +ledgercrpyto.net +lediponto.com +ledlight.shop +ledmask.com +ledmedia92.ru +lednlux.com +ledoktre.com +ledoutdoorfloodlights.com +leds-4you.de +ledskor.com +ledticker.ru +lee.mx +leeching.net +leedel.me +leefirm.net +leejihua.com +leelighting-stage.com +leemail.me +leerling.ml +leernoca.monster +leesairandplumbing.com +leespring.biz +leessummitapartments.com +leet.support +leeviate.com +leeyoder.com +lefaqr5.com +leferitis.com +lefli.ru +lefmail.com +left-mail.com +leftfieldsports.com +leftimouse.com +leftsydethoughts.com +leftymouse.com +legacyangusranch.com +legacyfinanceblog.club +legacyhomedgbuyshomes.com +legacymode2011.info +legacysummit.com +legacytractorsales.com +legal-highs.org +legal.fail +legalalien.net +legalclub.net +legalil.com +legalizamei.com +legalizer.website +legalrc.cash +legalrc.loan +legalresourcenow.com +legalrobot.dev +legalsentences.com +legalslot.ru +legalslots.ru +legalsteroidsstore.info +legalwire.news +legaly.us +legatine.xyz +legato.agency +legato.dev +legato.media +legcramps.in +lege4h.com +legend-rpg.ru +legendary2019.ru +legendaryrealtyal.info +legendauthorisetone.website +legendsofnorrath.ru +legendsvegas.com +legiastore.com +legion.live +legiondesign.ru +legioninvestingleak.com +legionzoocentr.ru +legitimateonline.info +legitimationsprozess.info +legitimationsservice.info +legitimatizes716hb.online +legitimized162ei.online +legkobaknrot.xyz +legkospet.ru +legocp66.com +legooolise.ru +legozolder.online +legumennvj.online +legwars.online +lehanhphuc.ml +lehelti.ga +lehelti.gq +lehelti.tk +lehman.cf +lehman.ga +lehman.gq +lehman.ml +lehman.tk +lehner576.com +lehoang.online +lehrxira.cf +lehrxira.ga +lehrxira.gq +lehrxira.ml +lei.kr +leibian9.com +leica-camear.com +leiday.xyz +leifitne.cf +leifitne.gq +leifitne.ml +leifitne.tk +leiladismalmufti.site +leilasells.com +leinkblabk.site +leisu.link +leisu.ltd +leisu.site +leiteophi.cf +leiteophi.ga +leiteophi.gq +leiteophi.ml +leiteophi.tk +leitestudio.com +leituraacelerada.website +leituraagil.website +lejdw.com +lekarstva-bezrezeptof.site +lekarstva.info +lekarstvopodnogami.ru +lekeda.ru +lekhanhphi.com +lekhauy.com +leknawypadaniewlosow.pl +leks.me +lelastar.site +lella.co +lellno.gq +lelove.ru +lelucoon.net +lemajesticglobal.org +lemanager.cd +lemano.se +lemantcom.ga +lemantcom.gq +lemantcom.ml +lembarancerita.ga +lembarancerita.ml +lembeh-shootout.com +lememcon.com +leminbenp.cf +leminbenp.ga +leminbenp.gq +leminbenp.ml +lemonadeka.org.ua +lemonde-fr.space +lemonde24fr.host +lemonde24fr.site +lemondedeladouche.com +lemondedufairepart.com +lemondresses.com +lemondresses.net +lemonebet.com +lemongeek.best +lemooreforeclosures.com +lemoshop.com +lemouvement.ngo +lemper.cf +lemurhost.net +lemycam.ml +lenalimas.info +lenamanh.ga +lenbobit.cf +lenbobit.gq +lenbobit.ml +lenbobit.tk +lenderfacts.com +lendfox.com +lendingshop.site +lendlesssn.com +lendoapp.co +lenestate.ru +lengworcomp.gq +lenhisun.ga +lenhisun.gq +lenhisun.ml +leniences.com +leningrad.space +lenkino.name +lenlinza.ru +lenlusiana5967.ga +lenmawarni5581.ml +lennonthemusical.com +lennurfitria2852.ml +lennysirivong.com +lenovo120s.cf +lenovo120s.gq +lenovo120s.ml +lenovo120s.tk +lenovog4.com +lenpitchna.ml +lenpitchna.tk +lenprayoga2653.ml +lenputrima5494.cf +lensbuffs.info +lenscleaningbrush.us +lenscleaningbrushes.biz +lenscleaningbrushes.us +lensdunyasi.com +lensmarket.com +lensservoptical.com +lenta-bukv.ru +lenta-receptov.ru +lentoarea.com +lenujksnt14394.ga +lenujksnt56026.ml +lenujksnt96368.ml +leo-gaming.tk +leo-perevod.xyz +leoandassoc.com +leoforbaby.ru +leohlch.com +leomnascx.xyz +leon-app.ru +leon13.ru +leonardolobo.top +leonebets.com +leonelahmad.cf +leonfamily.ru +leonghupgroup.com +leonmail.men +leonorcastro.com +leopardstyle.com +leopardstyles.com +leoplethbi.cf +leoplethbi.gq +leoplethbi.ml +leoplethbi.tk +leopon.site +leopuden.ru +leos.org.uk +leosibiot.online +leosoftnet.org +lepadoid.site +leparfait.net +lepdf.site +lepetitcabanon.com +lepetitensemble.com +lepetitprince.life +lepezh.ru +lepgrowlight.com +lepoxo.xyz +lepretaplanter.com +lepsiobec.sk +lepti-health.com +lepti-science.org +leptin-solution.org +leptisolution.com +leptisolution.org +leptitox-news.org +leptitox-research.com +leptitox-research.org +leptitox-science.org +lequitywk.com +lequydononline.net +lerbhe.com +lerch.ovh +lercjy.com +lerepo.cf +lerepo.ga +lerepo.gq +lerepo.ml +lerepo.tk +leribigb.cf +leribigb.ga +leribigb.gq +leribigb.tk +lernerfahrung.de +leroidurelax.com +leroymyers.org +lerwfv.com +les-bons-tomes.com +les-bouquetins.com +lesabahis18.com +lesabahis20.com +lesabahis23.com +lesabahis28.com +lesabahis30.com +lesabahis34.com +lesabahis40.com +lesabahis48.com +lesabahis49.com +lesabahis55.com +lesabahis90.com +lesastroi.ru +lesatirique.com +lesbrowncertified.com +lesbugs.com +lesfineslamesdechicoutimi.com +lesgermaines.site +leshang-yl.com +leshiz.website +leshommes.ru +lesleyhampton.ru +lesleypappalardoproperties.com +lesmail.top +lesmarchesdeparisconnectes.com +lesnistsup.cf +lesnistsup.ga +lesnistsup.gq +lesnistsup.ml +lesnistsup.tk +lesoir-24-be.space +lesoir-24-be.website +lesoir-24be.space +lesoir24.host +lesoir24.space +lesoleildefontanieu.com +lesotho-nedv.ru +lespassant.com +lespitonsy.info +lespooche.org +lesproekt.info +lesprosdela.photo +lesrecettesdebomma.com +lesscrm.com +lessdinal.cf +lesseriestreaming.live +lesseriestreaming.site +lesseriestreaming.xyz +lesserkcqn.space +lessermndz.site +lessgime.cf +lessgime.ga +lessgime.gq +lessgime.tk +lessjoule.com +lesslenett.cf +lesslenett.gq +lesslenett.tk +lessnentdar.cf +lessnentdar.ga +lessnentdar.gq +lessnentdar.ml +lessnentdar.tk +lessonlogs.com +lessquagga.com +lestnicy.in.ua +lestoutes.com +lestoutes.store +leswebmasters.info +lesy.pl +letaemvisokovse.xyz +letairbag.com +letaodh.com +letempledelavie.paris +letfreedomring.site +letgo99.com +letgostory.fun +letgostory.website +lethbridgepropertymanagement.com +lethedtling.xyz +lethitham.ml +letian1999.com +leticiapinheirorenova.com +letihsrret.ga +letipue.ru +letmebefrankproduction.com +letmecheck.adult +letmeinonthis.com +letmeknow.us +letmissy.com +letmymail.com +letmypeopleshop.com +letnanqq.com +leto-dance.ru +letonus.ru +letras.xyz +letrungtruc.ml +lets-open.com +letschat365.info +letsgo.co.pl +letsgoalep.net +letsgotech.org +letsgoystoas.site +letslearnarduino.com +letsmail9.com +letsspeakindia.com +letstalkaboutsex.org +letstestsa.info +letstoeasyearn.xyz +lettelet.cf +lettelet.ga +lettelet.gq +letterfew.online +lettermania.site +lettersnew5fact.space +letthemeatspam.com +lettresfree.com +letuchkaavia.xyz +letumeatcake.com +letup.com +letw1xabmtbuf34.xyz +letweetducapitole.com +leufhozu.com +leukorrhea811cd.online +leurre.xyz +leutromcoo.ga +leutromcoo.ml +leutromcoo.tk +levcentr.ru +level-3.cf +level-3.ga +level-3.gq +level-3.ml +level-3.tk +level.ninja +level3.flu.cc +level3.igg.biz +level3.nut.cc +level3.usa.cc +leveldesign.site +levelmebel.ru +levelrat.xyz +levelscal.us +levelupworker.com +levelwre.email +levelwrec.recipes +levendislaw.com +leverbox.online +leverboxpay.com +levfy.com +leviatereview.com +levis-jeans.us +levis-shoes.com +levisdaily.com +levitic.us +levitron-shop.ru +levitycraft.ru +levothyroxinedosage.com +levtbox.com +levtov.net +levy.ml +levyshka.cyou +lew2sv9bgq4a.cf +lew2sv9bgq4a.ga +lew2sv9bgq4a.gq +lew2sv9bgq4a.ml +lew2sv9bgq4a.tk +lewat.ga +lewineryguide.com +lewisbarnes.buzz +lewiseffectfoundation.com +lewiseffectfoundation.org +lewisivbhn.space +lewistweedtastic.com +lewisvilleaccidentlawyers.com +lewisvilleinjurylawyer.com +lewisvillepersonalinjurylawyer.com +lewkaki.ru +lexabet.net +lexaha.info +lexdrive.com +lexi.rocks +lexidot.com +lexingtnlaw.com +lexingtonnailsalons.com +lexingtonquote.com +lexisense.com +lexishoki.net +lexisparkles.fun +lexisparkles.online +lexisparkles.space +lexispoker.online +lexoxasnj.pl +lexpowerperks.info +lexu4g.com +lexus138.net +leycryppink.cf +leycryppink.gq +leycryppink.ml +leycryppink.tk +leyesmessenger.shop +leyfamug.gq +leyfamug.ml +leyfamug.tk +leyleori.cf +leyleori.gq +leyleori.ml +leyleori.tk +leysatuhell.sendsmtp.com +lez.se +lezamedia.net +lezhongda.club +lf-jy.com +lf271.site +lfapku.tokyo +lfbeichuang.com +lfc.best +lfcaafazw.shop +lfcdaco.us +lffja.xyz +lffjg.site +lfgaea.us +lfgn.us +lfgtsoft.com +lfhc.email +lfifet19ax5lzawu.ga +lfifet19ax5lzawu.gq +lfifet19ax5lzawu.ml +lfifet19ax5lzawu.tk +lfjjjp.shop +lflll.club +lfruits.com +lfsvddwij.pl +lftjaguar.com +lfwiki.com +lfyyh.club +lfyyh.xyz +lg-g7.cf +lg-g7.ga +lg-g7.gq +lg-g7.ml +lg-g7.tk +lg88.site +lgclub.org +lgdol.club +lgeacademy.com +lgfvh9hdvqwx8.cf +lgfvh9hdvqwx8.ga +lgfvh9hdvqwx8.gq +lgfvh9hdvqwx8.ml +lgfvh9hdvqwx8.tk +lghjgbh89xcfg.cf +lgicustombrokers.com +lgifytgbl.cf +lgjiw1iaif.gq +lgjiw1iaif.ml +lgjiw1iaif.tk +lgloo.net +lgloos.com +lgmail.com +lgmyholsg.shop +lgpsoptout.net +lgsweb.org +lgt8pq4p4x.cf +lgt8pq4p4x.ga +lgt8pq4p4x.gq +lgt8pq4p4x.ml +lgt8pq4p4x.tk +lgtix.fun +lgubas.space +lgx2t3iq.pl +lgxscreen.com +lgyimi5g4wm.cf +lgyimi5g4wm.ga +lgyimi5g4wm.gq +lgyimi5g4wm.ml +lgyimi5g4wm.tk +lh-properties.co.uk +lh0hd.us +lh2ulobnit5ixjmzmc.cf +lh2ulobnit5ixjmzmc.ga +lh2ulobnit5ixjmzmc.gq +lh2ulobnit5ixjmzmc.ml +lh2ulobnit5ixjmzmc.tk +lh451.cf +lh451.ga +lh451.gq +lh451.ml +lh451.tk +lh4phi.us +lhckj3.com +lhda.email +lhfoh.club +lhfoh.xyz +lhgfl.xyz +lhgjw.site +lhkjfg45bnvg.gq +lhl1.club +lhmulk.com +lhnbsy.host +lhqc9s.us +lhrnferne.mil.pl +lhsdv.com +lhsg4p.us +lhslhw.com +lhtcdh.com +lhtcdh.xyz +lhtn.email +lhxj.email +li-al.ru +li8vejasmin.com +liabravin.cf +liabravin.ga +liabravin.ml +liabravin.tk +liacos.tech +liacredfun.cf +liacredfun.ga +liacredfun.gq +liacredfun.tk +liadisma.cf +liadisma.ga +liadisma.gq +liadisma.ml +liadisma.tk +liadreamva.cf +liadreamva.ga +liadreamva.gq +liadreamva.ml +liadreamva.tk +lialaise.tk +liamases.cf +liamases.ga +liamases.gq +liamases.ml +liamases.tk +liamcyrus.com +liamekaens.com +liamgoodact.ru +liamhosford.com +liamrandall.com +lianerosebunce.com +lianewsnews.cf +lianewsnews.ga +lianewsnews.gq +lianewsnews.ml +lianewsnews.tk +liang.zone +lianhe.in +lianlifang.com +lianmengku.com +liaohigh.com +liaonue.club +liaphoto.com +liarath.info +liargroup.com +liargroup.org +liaryo.pro +liaryo.site +liatranat.ga +liatranat.gq +liatranat.ml +liatranat.tk +liaz.fun +libbywrites.com +libeling328ei.online +libenoun.cf +libenoun.ga +libenoun.ml +libenoun.tk +libeoweb.info +liber.press +liberalize557we.online +liberalizing483lb.online +liberiaom.com +libertabet4.com +libertarian.network +libertyaccounting.biz +libertychristianchurch.org +libertyconservativedaily.com +libertycontent.dev +libertydental.info +libertyinworld.com +libertylawnetwork.com +libertylibrary.site +libertymail.info +libertymu5ual.com +libertyskillcenter.com +libertyvf.xyz +libertyvillesaddleshop.com +libidipvde.space +libido.events +libido.wiki +libidopluses.ru +libinailstyle.ru +liboor.com +liboove.com +libox.fr +libpotassium.com +librainvesting.com +libraloan.xyz +librans.co.uk +libraprofit.info +librarium.org +library-annabi.org +librarybooks.xyz +libraryofbussiness.com +libridivertenti.shop +librielibri.info +libriumprices.com +libroncos.com +librosepub.info +libuna.info +licaipa.xyz +licence.legal +license.legal +licenserights.com +licensestore.ru +licensingsalestool.com +lichten-nedv.ru +lichthidauworldcup.net +lichtstark.media +licinusrance.com +licitando.com +liclifeinusrance.com +licof.us +licontu.cf +licontu.ga +licontu.gq +licorne.ml +licycnint.cf +licycnint.ga +licycnint.gq +licycnint.ml +licycnint.tk +licytuj.net.pl +liddr.com +lidepre.cf +lidepre.ga +lidepre.gq +lidepre.ml +lidepre.tk +lideravtoshkola.ru +liderbahis124.com +liderbahis131.com +liderbahis139.com +liderbahis2.com +liderbahis52.com +liderbahis78.com +liderbahis82.com +liderbahis97.com +liderbahis98.com +lidercert.com +lidertele.com +lideud.com +lido.site +lidprep.vision +lidwa.net +liebenswerter.de +liebesbeweis-reise.com +liebesbeweisreise.com +liebesparade.party +lieblingsmann.love +liedjesaanvragen.online +liedjesaanvragen.site +liedjesaanvragen.space +lieeliev.shop +liefanaticjar.website +lieflorul.cf +lieflorul.ga +lieflorul.gq +lieflorul.tk +liefracbo.cf +liefracbo.ga +liefracbo.tk +liegarbu.cf +liegarbu.ga +liegarbu.ml +liegarbu.tk +lienminhnuthan.vn +lienutile.com +lienv.xyz +liepaven.cf +liepaven.ga +liepu3vjxfuov06.xyz +liesesscont.cf +liesesscont.ga +liesesscont.ml +liesesscont.tk +lifanapp.com +lifanblog.com +life-bets.ru +life-coder.com +life-online1.ru +life-recipes.cf +life-recipes.ga +life-recipes.gq +life-recipes.ml +life-recipes.net +life-recipes.tk +life-smile.ru +life1111.info +life17.icu +life22.icu +lifeafterlabels.org +lifeairhitradio.com +lifebloominvest.ru +lifebyfood.com +lifebythegrapes.com +lifecoach4elite.net +lifecore.net +lifedens.online +lifefamilly.com +lifefinanceblog.club +lifeforceschool.com +lifeforchanges.com +lifeguru.online +lifeinsurancecoverageguaranteed.com +lifeinsuranceforcancerpatient.com +lifeinsurancewithnoquestions.com +lifeinsurancewithnoquestionsasked.com +lifeirrigationgardens.com +lifeisapingpong.com +lifeisgood.uno +lifejaszzzv.email +lifekazino.ru +lifeleadership.sk +lifeluxure.com +lifemail.tech +lifeofacowboy.com +lifeperformers.com +lifeprotips.org +lifes-days.club +lifesaglitch.tv +lifestyle-trends-today.com +lifestyle24x7.com +lifestyle4u.ru +lifestylemagazine.co +lifestyleretail.website +lifestylerunsbig.com +lifestyletraders.live +lifesupportband.com +lifetalkrc.org +lifetime-income.org +lifetimeappdeal.com +lifetimeappdeals.com +lifetimecms.com +lifetimefriends.info +lifetimeincomejournal.com +lifetotech.com +lifetransition.info +lifetribes.net +lifeuh.com +lifeundersail.com +lifevantageqc.com +lifewaypregnancy.net +lifewirekeys.com +lifeyogaelements.net +liffebody.host +liffebody.site +liffebody.store +liffoberi.com +lift-renew.com +liftandglow.net +lifted.cc +liftforwardstore.com +liftharmfulloll.website +liftingbridges.org +liftitcargo.com +liftticketsystem.com +liftvblh.space +liga-kamcartit.ru +liga.my +liga108.club +liga228.fun +liga365poker.com +liga88.website +ligadc.club +ligadepo.com +ligagame.net +ligagnb.pl +ligahoki168.com +ligai.ru +ligaindo.com +ligaku.com +ligaolmecaoficial.net +ligaolmecaoficial.org +ligapalapa.org +ligasbo.club +ligastavki.ru +ligastavok-app.ru +ligaz888.com +ligazth888.com +ligbet25.com +ligerautos.info +lighcolve.cf +lighcolve.ga +lighcolve.gq +lighcolve.ml +lighcolve.tk +ligheveng.ru +lighhecktof.world +lighnucta.cf +lighnucta.ga +lighnucta.ml +lighnucta.tk +light-android.space +light-beauty.ru +light-marketing.ru +lightbcrny.space +lightbild.ru +lightboxelectric.com +lightboxsigns.com +lightca.icu +lightcenter.top +lightcool.ru +lightcrop.ru +lightdog.ru +lightengroups.com +lighthouseinvestments.org +lighting-us.info +lightinggalleryoc.net +lightingnewswire.com +lightivor.icu +lightlabel.com +lightningcomputers.com +lightofasia.ml +lightognivo.ru +lightplut.ru +lightpower.pw +lightrumo.xyz +lightsdownstarsup.com +lightseekers.chat +lightseekers.games +lightseekers.stream +lightserv.net +lightshar.xyz +lightspeed.golf +lightspeed.store +lightspeedgolf.app +lightswea.icu +lightvid.ru +lightvids.com +lightvivo.ru +lighvanrau.ga +ligirls.ru +ligobet56.com +ligobet59.com +ligsb.com +ligtip.ru +ligtvkafe.website +lihaoxiaoxi.com +lihdaf.com +lihjmb.icu +lihuafeng.com +liitokala.cf +liitokala.ga +liitokala.gq +liitokala.ml +liitokala.tk +lijeuki.co +lijwlwkd.shop +likability992hc.online +like-official-sale.space +likeable.social +likeatfirstsight.com +likedz.world +likelongan.com +likelucky.ru +likelystory.net +likemauscub.ru +likemausfield.ru +likemausfog.ru +likemausrose.ru +likemilkingacow.com +likenews24.ru +likeonline.xyz +likeorunlike.info +likepoe.space +likeproekt.ru +likesv.com +likesyouback.com +liketobuy.ru +likevipfb.cf +likvidooo.xyz +lilactrustnoble.site +lilianmagdalen.com +lilidirectory.com +lilifer.ga +lilifer.gq +lilifer.ml +lilifer.tk +lilin.pl +lilith.pw +lilittka.cf +lilittka.gq +lilittka.tk +liliyakunitskaya.ru +lillemap.net +lilliejeter.com +lillymeadows.com +lilnx.net +lilo.me +lilspam.com +lilyclears.com +lilyjeter.com +lilylee.com +lilyverywell.com +limacitasa.info +limacology.xyz +limahfjdhn89nb.tk +limamail.ml +limang.ru +limaquebec.webmailious.top +limatyr.ru +limberzbmn.space +limboflow.com +limboo.ga +limcorp.net +lime-cb8.com +limee.ru +limehdtv.online +limeleaftakeaway.com +limeline.in +limerickbirds.com +limetreetraining.com +limetv.site +limez.ninja +limez.wtf +limilime.shop +liminality.info +liming.de +limitless-request.net +limnhaisbag.website +limon.biz.tm +limon1.bet +limon3.bet +limonadainc.com +limonapi.com +limonfill.com +limousines-montreal.com +limpa-chamine.com +limpeza-de-chamine.com +limpoponationalpark.org +limsoohyang.com +limumuee.club +limumuee.site +limuzyny-hummer.pl +lin.lingeriemaid.com +lin889.com +linap1.site +lincahqq.info +lincahqq.net +lincahqq.org +lincolnnailsalons.com +lindabigness.com +lindaclothing.com +lindaknujon.info +lindaxa.site +lindbarsand.cf +lindbarsand.ga +lindbarsand.gq +lindbarsand.ml +lindbarsand.tk +linden.com +lindenbaumjapan.com +lindendaleridge.com +lindendentists.com +linders.icu +lindo-dublin.com +lindsayjanestore.com +lindsaylangford.com +lindseyallen.net +lindwards.info +linea-stile.ru +linead.biz +lineadesoporte.com +lineahr.website +linearapp.com +linejust.info +linenelbo.fun +linenhe.buzz +linenlim.xyz +linenstudy.buzz +lineode.com +lineode.net +lineofequitycredit.net +linerneitheronset.site +lines12.com +linforthwith.cf +linforthwith.ga +linforthwith.gq +linforthwith.ml +linforthwith.tk +lingang.city +lingdlinjewva.xyz +lingmarbi.cf +lingmarbi.ga +lingmarbi.tk +lingmulbe.cf +lingmulbe.ml +lingmulbe.tk +lingpicsu.cf +lingpicsu.ga +lingpicsu.gq +lingpicsu.ml +lingpicsu.tk +linguistic.ml +linguisticlast.com +linguistique-sejour.com +lingyuncq.com +lingzha.club +linhtinh.ml +lininas-auvim.ru +linind.ru +liningnoses.top +linjianhui.me +link-assistant.com +link-protector.biz +link-short.xyz +link.cloudns.asia +link2dolar.xyz +link2go.online +link2mail.net +link3mail.com +link98.site +linkadulttoys.com +linkalternatif-angelpoker.info +linkalternatif.site +linkandluggage.com +linkauthorityreview.info +linkbet88.club +linkbet88.info +linkbet88.online +linkbet88.org +linkbet88.xyz +linkbuilding.pro +linkcibaba.site +linkedinemails.online +linkedintuts2016.pw +linkedmails.com +linkedupdesign.com +linkgoitr.ml +linkhound.net +linki321.pl +linkibcbet.club +linkibcbet.xyz +linkingcablebest.faith +linkjewellery.com +linkloadingloom.website +linkmadang.com +linkmadang1.com +linkmam2.com +linkmanialiga.website +linkmaniaqq.live +linkmaniaqq.online +linkmaniaqq.website +linkmaxbet.xyz +linkmehrcrom.cf +linkod.press +linkpaneli.online +linkredirekt.ru +linkrun.xyz +links-age.com +linksbobet.mobi +linkscy.com +linksdown.net +linkserver.es +linksgold.ru +linksmaximiser.com +linkstinad.cf +linkstinad.ga +linkstinad.gq +linkstinad.ml +linkstinad.tk +linksysrouterlogin.net +linktown02.com +linktown1.net +linktown2.com +linktown2.net +linku-2.icu +linku-3.icu +linku.in +linkusupng.com +linkwithstyle.store +linkyard.net +linkzimra.cf +linkzimra.ga +linkzimra.gq +linkzimra.ml +linkzimra.tk +linlowebp.cf +linlowebp.ga +linlowebp.gq +linlowebp.ml +linlowebp.tk +linodecdn.org +linodevps.com +linop.online +linostakeaway.com +linozemtseva.com +linpie.com +linsabe.cf +linsabe.ga +linsabe.gq +linsabe.ml +linsabe.tk +linsang.site +linshiyou.com +linshiyouxiang.net +linshuhang.com +linsila.com +linska.com +linsoutorf.com +linsoutorf.icu +linspalace-ringsend.com +linuser.org +linuxbbs.com +linuxguru.network +linuxmade.ru +linuxmail.com +linuxmail.so +linuxmail.tk +linuxpl.eu +linwoodsmilk.com +linx.email +linyukaifa.com +linzacolor.ru +lioasdero.tk +liodernlen.cf +liodernlen.ga +liodernlen.gq +liodernlen.ml +liodernlen.tk +liomplus.ru +lion-and-rose.ru +lionbet777.info +lionbullion.org +lioncoin.info +lionelxyz.online +lionheartux.com +lionize.dev +lionize.page +lionnitrousloth.website +lionplas.ga +lionqq.com +lions-army.tk +lions.gold +lionsmoh.com +lionsmoh.net +lioplpac.com +liopolo.com +liopolop.com +lipasda.cf +lipasda.gq +lipasda.tk +liphesa.cf +liphesa.ga +liphesa.gq +liphesa.ml +liphesa.tk +lipitorprime.com +lipmanbetx.com +lipo13blogs.com +lipoqiuqiu.org +liporecovery.com +liposhop.site +liposuction-procedure-now.rocks +liposuction-procedure-site.live +liposuction-procedure-spot.live +liposuctionofmiami.com +lipozinweightloss.com +lippystick.info +lipskydeen.ga +liptor.ru +liputen.cf +liputen.ga +liputen.gq +lipweiness.cf +lipweiness.gq +lipweiness.ml +lipweiness.tk +liqorice.com +liquad.com +liquidation-specialists.com +liquidfastrelief.com +liquidherbalincense.com +liquidinformation.net +liquidmail.de +liquidvmoi.ru +lirabet83.com +lirabetpartners.com +liraclinical.net +lirats.com +lirikkuy.cf +lirili.info +lirratobacco.online +lirratobacco.xyz +lisabecclothing.com +lisabosborn.com +lisacorino55places.com +lisafoxy.website +lisagenkigibson.com +lisahazletonclothing.com +lisakbez.buzz +lisakiss.website +lisamadison.cf +lisansmerkezi.xyz +lisaqchinesecuisine.com +lisaslensphoto.com +lisasolventlove.website +lisastyle.se +lisboagamesworld.com +lisbon-guesthouse.com +lisciotto.com +lisemene.com +lishi321.xyz +lispblog.com +lisseurghdpascherefr.com +lisseurghdstylers.com +lissseurghdstylers.com +list-here.com +list.elk.pl +list.moe +listallmystuff.info +listdating.info +listen-to-her.info +listentogoodsay.club +listentowhatisaynow.club +listentowhatisaystar.club +listentowhatisaystudio.club +listentowhatisaytech.club +listentowhatistate.club +listentowhatsaid.club +listentowhensay.club +listenulled.xyz +listimi.ga +listimi.gq +listimi.tk +listingleadsforyou.biz +listingsnob.com +listme.best +listmoe.com +listofmovies.website +listopay.net +listspider.com +listtagshopshop.com +listthehyt.ga +listtoolseo.info +lit-plast.ru +litahui.com +litardo192013.club +litb.site +litbnno874tak6nc2oh.cf +litbnno874tak6nc2oh.ga +litbnno874tak6nc2oh.ml +litbnno874tak6nc2oh.tk +litchi-cranic.website +litchivietnam.com +litd.site +lite-bit.com +lite.com +liteal.com +litearyfaeriepublishing.com +litebit.sk +litecos.com +litedrop.com +liteify.xyz +liteikin.ru +litemineservers.ru +litenero.info +liteorigins.com +litepay.space +literallywrotethebook.com +literallywrotethebookon.com +literallywrotethebookseries.com +literarum.website +literaryweddings.com +literatecamel.com +literatecamel.net +litermssb.com +litetolife.com +lithoist.com +lithuangpu.world +litici.cf +litici.ga +litici.gq +litici.ml +litici.tk +litisponispurr.com +lititua.cf +lititua.ga +lititua.gq +lititua.ml +lititua.tk +litom.icu +litrenativo.com +litrgol.ru +litrovq.fun +littitte.online +little-backpacks.com +littleamphibian.com +littlebamboo.org +littlebewdy.com +littlebiggift.com +littleblackleaf.com +littlebox.site +littlebuddha.info +littlecaprice.site +littlechip-inn-rush.com +littlecppa.space +littlefarmhouserecipes.com +littlegembox.net +littleheartpie.com +littleindiaphibsboro.com +littlejerusalemrathmines.com +littlekasino.com +littleltoj.ru +littlemail.org.ua +littlemedic.org +littleneroni.com +littlepc.ru +littlepetesphilly.com +littlepotato.org +littlepreview.com +littleroach.net +littlescouts.com +littlestpeopletoysfans.com +litva-nedv.ru +litvinovarchitects.com +litwickimedia.com +liucher.host +liuhebagua.net +liul11.app +liul14.app +liul19.app +liul2.app +liul21.app +liul22.app +liul23.app +liul24.app +liul25.app +liul27.app +liul28.app +liul3.app +liul31.app +liul32.app +liul36.app +liul37.app +liul38.app +liul39.app +liul43.app +liul45.app +liul48.app +liul5.app +liul66.app +liul7.app +lius.info +liuvplus.su +liuyijun.me +liuyiyis.xyz +liv3jasmin.com +liva-der.com +livakum-autolar.ru +livall-bling.online +livan-nedv.ru +livcam.online +live-casinos-online.com +live-ep.com +live-gaming.net +live-perisa.com +live-pop.com +live-shop24.ru +live-woman.ru +live.encyclopedia.tw +live1994.com +live2.icu +live24dns.com +live2d.moe +live4life.online +liveaboardtheconception.com +liveadultcams.org +liveamericans.com +livebet75.com +livebraverish.com +livecam.edu +livecam24.cc +livecare.info +livecric.info +livecur.info +livedebtfree.co.uk +livedecors.com +livederbygirls.com +livedosug.com +liveemail.xyz +livefo.works +livefo.xyz +liveforeverphotos.com +livegolftv.com +livehempextract.com +livehk.online +livejasminhd.com +livejournali.com +livekid.net +livekurs.ru +livelaunchformula.com +liveles.cf +liveles.ga +liveles.gq +liveles.tk +liveliberty.site +livelinessinstitute.com +livellyme.com +liveloveability.com +livelylawyer.com +livemail.bid +livemail.download +livemail.men +livemail.pro +livemail.stream +livemail.top +livemail.trade +livemaill.com +livemails.info +livemarketquotes.com +livemoviehd.site +livenewstab.com +livenode.info +livenode.org +liveoctober2012.info +liveonkeybiscayne.com +livepharma.org +liveproxies.info +liveradio.tk +livercirrhosishelp.info +liveresinoil.com +liveresinoils.com +liverfcshop.com +livern.eu +liverpoollaser.com +livesamet.com +liveset100.info +liveset200.info +liveset300.info +liveset404.info +liveset505.info +liveset600.info +liveset700.info +liveset880.info +livesex-camgirls.info +livesgp.best +livesgp.kim +livesgp.monster +livesilk.info +liveskiff.us +livestreamingnfl.com +livetimlifestyle.com +liviahotel.net +livingbeyondbethesdaministries.org +livingclone.com +livinggivingmore.com +livinginsurance.eu +livingmarried.com +livingmetaphor.org +livingprojectcontainer.com +livingsalty.us +livingshoot.com +livingsimplybeautiful.info +livingsimplybeautiful.net +livingsmart.press +livingwater.net +livingwealthyhealthy.com +livinwuater.com +livn.de +livrare-rapida.info +livrepas.club +livriy.com +livs.online +livzadsz.com +liwa.site +liwa1-afekis.ru +liwondenationalpark.com +lixian8.com +lixin1688.net +lixo.loxot.eu +liyaxiu.com +liybt.live +lizagourds.com +lizardrich.com +lizclothig.com +lizelizabeth.org +lizenzzentrale.com +lizjacket.com +lizom.academy +lizpafe.cf +lizpafe.gq +lizpafe.ml +lizpafe.tk +lizziegraceallen.com +lj8c7u.info +ljeh.com +ljewelrymost.site +ljgcdxozj.pl +ljhjhkrt.cf +ljhjhkrt.ga +ljhjhkrt.ml +ljkjouinujhi.info +ljnapp.best +ljogfbqga.pl +ljpremiums.club +ljpremiums.xyz +ljsafkdua.shop +ljsingh.com +ljungsbro-sportfiskare.se +ljunrockcheck.tk +ljwtestingdomain.com +ljye2f.info +lk21.cf +lk21.website +lkajao.site +lkbmjm.fun +lkcmmw.fun +lkcranch.com +lkdmpx.fun +lkerito.mobi +lkfblewfefew2eew.club +lkfeybv43ws2.cf +lkfeybv43ws2.ga +lkfeybv43ws2.gq +lkfeybv43ws2.ml +lkfeybv43ws2.tk +lkfmby.fun +lkgn.se +lkhcdiug.pl +lkhmzn.fun +lkim1wlvpl.com +lkiopooo.com +lkjghn.com +lkjhjkuio.info +lkjhljkink.info +lkjjikl2.info +lkkmqy.fun +lklmgy.fun +lkmlksilkma.design +lknmcg.fun +lko.co.kr +lko.kr +lkooksmart.com +lkoqmcvtjbq.cf +lkoqmcvtjbq.ga +lkoqmcvtjbq.gq +lkoqmcvtjbq.ml +lkoqmcvtjbq.tk +lkpress.ru +lkqmcj.fun +lkqmqz.fun +lkscedrowice.pl +lksuej.info +lktix.fun +lkwmhl.fun +lkxloans.com +lkxxi.website +lkymng.fun +lkzmtj.fun +ll0206.xyz +ll47.net +ll4cki.us +ll6l4le.xyz +llaen.net +llamame.online +llat.site +llccheckbook.com +llcs.xyz +llegitnon.cf +llegitnon.ga +llegitnon.gq +llegitnon.ml +llegitnon.tk +llerchaougin.cf +llerchaougin.ga +llerchaougin.gq +llerchaougin.ml +llerchaougin.tk +llfilmshere.tk +llil.icu +llil.info +llj59i.kr.ua +llkp.xyz +llllll.tech +lllllll.site +lllooch.ru +llmuxetaw.gq +llogin.ru +llotfourco.ga +llotfourco.gq +llotfourco.tk +llsaa.com +llsszh.xyz +lltibtuis7.uno +llubed.com +llventures.co +llzali3sdj6.cf +llzali3sdj6.ga +llzali3sdj6.gq +llzali3sdj6.ml +llzali3sdj6.tk +lm-wadakan.com +lm0k.com +lm1.de +lm4dk6.com +lmaosed.co +lmav17n.xyz +lmav387d.xyz +lmav3a11.xyz +lmav3y8.xyz +lmav4216.xyz +lmav59c1.xyz +lmav5ba4.xyz +lmav5ek.xyz +lmav609f.xyz +lmav6ua.xyz +lmav70e4.xyz +lmav7758.xyz +lmav8490.xyz +lmav87d2.xyz +lmav9072.xyz +lmavb547.xyz +lmavbfad.xyz +lmavcfy.xyz +lmave2a9.xyz +lmavec51.xyz +lmavegm.xyz +lmavf2d5.xyz +lmavfov.xyz +lmavksy.xyz +lmavqlg.xyz +lmavyb9.xyz +lmcudh4h.com +lmialovo.com +lmitxg.us +lmkspz.us +lmomentsf.com +lmoprmbs.xyz +lmqx.email +lmypasla.cf +lmypasla.ga +lmypasla.gq +lmypasla.ml +lmypasla.tk +ln0hio.com +ln0rder.com +ln0ut.com +ln0ut.net +ln4.net +ln9uih.us +lnank.live +lnbtc.ru +lncjh.com +lncoin.ru +lncredibleadventures.com +lndex.net +lndex.org +lneta4gw.cf +lneta4gw.ga +lneta4gw.gq +lneta4gw.ml +lneta4gw.tk +lneus.club +lngscreen.com +lngwhjtk.shop +lnjgco.com +lnkbsr.host +lnko.site +lnlptx.com +lnmbeauty.com +lnmbeauty.net +lnmdje.us +lnnic.com +lnongqmafdr7vbrhk.cf +lnongqmafdr7vbrhk.ga +lnongqmafdr7vbrhk.gq +lnongqmafdr7vbrhk.ml +lnongqmafdr7vbrhk.tk +lnqnmx.com +lnr9ry.us +lns-411.net +lnsilver.com +lnternatlonal-bittrex.com +lnvd.email +lnvoke.net +lnvoke.org +lnwhosting.com +lnwiptv.com +lnxwalt.org +lo.guapo.ro +lo9ege.xyz +loa-kanaloa.org +loa22ttdnx.cf +loa22ttdnx.ga +loa22ttdnx.gq +loa22ttdnx.ml +loa22ttdnx.tk +loachrisfal.cf +loachrisfal.gq +loachrisfal.ml +loachrisfal.tk +load1000static.site +loadby.us +loadfree.site +loadingsite.info +loadingsite.online +loadingya.com +loan10.xyz +loan101.pro +loan2.xyz +loan4.xyz +loan5.xyz +loan6.xyz +loan7.xyz +loan9.xyz +loancash.us +loaneotal.cf +loaneotal.ga +loaneotal.ml +loaneotal.tk +loanfast.com +loanins.org +loans.com +loans4u5.us +loaoa.com +loaphatthanh.com +loapq.com +loaprofin.ga +loaprofin.gq +loaprofin.ml +loaprofin.tk +lobahgla.xyz +lobictubly.xyz +loblaw.twilightparadox.com +lobotomize516vk.online +loc123.com +locabet67.com +locabet68.com +locabet69.com +locabet70.com +locabet71.com +locabet72.com +locabet74.com +locabet75.com +locabet76.com +locabet77.com +locabet78.com +locabet79.com +locabet82.com +locabet83.com +locabet84.com +locabet85.com +locabet88.com +locabet90.com +locabet92.com +locabet93.com +locabet95.com +locabet96.com +locabet98.com +locablu.com +local-classifiedads.info +local-onlinedating3.com +local.training +local.tv +local120.com +local120.net +local2164.com +local411jobs.xyz +local77777.com +localbitcoin.tech +localbreweryhouse.info +localbuilder.xyz +localbuyme.com +localcarrentals.ru +localcbg.com +localchiangmai.com +localddsnearme.com +localempleo.com +localheroes.ru +localhomepro.com +localini.com +localinternetbrandingsecrets.com +localintucson.com +localiqemail.com +localityhq.com +localivfgy.online +localizing.best +localnewstime.site +localorthodontistnearme.com +localpassport.org +localppc.us +localsape.com +localsem.us +localserv.no-ip.org +localshredding.com +localslots.co +localss.com +localtank.com +localtenniscourt.com +localtopography.com +localvideoclips.com +localwomen-meet.cf +localwomen-meet.ga +localwomen-meet.gq +localwomen-meet.ml +locamoja.com +locanto1.club +locantofuck.top +locantospot.top +locantowsite.club +locarlsts.com +located6j.com +locateme10.com +locating.page +locationans.ru +locationvibe.com +locbbs.com +loccomail.host +locellus.xyz +lockacct.com +lockdown.africa +lockedintheconception.com +lockedsyz.com +lockersinthecity.com +locklisa.cf +locklisa.ga +locklisa.gq +locklisa.ml +locklisa.tk +lockmyaccount.com +lockportnydentist.com +locksis.site +locksmangaragedoors.info +locksmithcourses.us +locksync.com +locoblogs.com +locoloco.ovh +locoloco.shop +locomobile.xyz +locomodev.net +loconetinvestments.org +locoonoo.xyz +locose.xyz +locpecom.cf +locpecom.gq +locpecom.tk +locra.com +locwiki.com +lodefidel.com +loders.ru +lodevil.cf +lodevil.ga +lodevil.gq +lodevil.ml +lodevil.tk +lodewijk.coach +lodgecolibrionline.com +lodgemerc.fun +lodgeparktc.com +lodgetouch.buzz +lodgetrend.fun +lodgewast.space +lodiapartments.com +lodistri.com +lodkataxi.ru +lodon.cc +lodur.best +loehkgjftuu.aid.pl +lofi-untd.info +lofi.host +lofi.systems +loft-stile.ru +lofteone.ru +log-manga.ru +log.school +logaelda603.ml +logalogo.online +logambola88.com +logamqq.online +loganairportbostonlimo.com +loganisha253.ga +loganrussacklaw.com +logansnider.com +loganstewartrealty.net +logardha605.ml +logartika465.ml +logatarita892.cf +logatarita947.tk +logavrilla544.ml +logdewi370.ga +logdufay341.ml +logefrinda237.ml +logertasari851.cf +logesra202.cf +logeva564.ga +logfauziyah838.tk +logfika450.cf +logfitriani914.ml +logfrisaha808.ml +loghermawaty297.ga +loghermawaty297.ml +loghermawaty297.tk +loghning469.cf +loghusnah2.cf +logicaljoy.com +logicielsvinity.com +logiclaser.com +logicpowerbooster.com +logike708.cf +login-email.cf +login-email.ga +login-email.ml +login-email.tk +login-moon.xyz +login-online-co-uk.buzz +login-to.online +loginadulttoys.com +logindominoonline.com +loginflow.com +logingar.cf +logingar.ga +logingar.gq +logingar.ml +loginioeu1.com +loginioru1.com +loginiousa1.com +loginlapp.com +loginoff.su +loginpage-documentneedtoupload.com +logins.page +logintoemail.online +loginz.net +logismi227.ml +logisti-k.global +logistica40.com +logistica40.net +logisticscorp.us +logitechg.online +logiteech.com +logmardhiyah828.ml +logmatoys.ru +logmaureen141.tk +logmoerdiati40.tk +lognadiya556.ml +lognc.com +lognoor487.cf +logo.cd +logoblogs.com +logoday.ru +logodesignshark.com +logoktafiyanti477.cf +logopitop.com +logos.team +logos.vlaanderen +logosbet.com +logosooo.ru +logpabrela551.ml +logrialdhie62.ga +logrialdhie707.cf +logrozi350.tk +logs.xyz +logsharifa965.ml +logsinuka803.ga +logstefanny934.cf +logsutanti589.tk +logsyarifah77.tk +logtanuwijaya670.tk +logtheresia637.cf +logtiara884.ml +logular.com +logutomo880.ml +logvirgina229.tk +logw735.ml +logwan245.ml +logwibisono870.ml +logwulan9.ml +logyanti412.ga +loh.pp.ua +lohipod.site +lohsrestaurant.com +lohzz.com +loife5l.xyz +loikoi.store +loil.site +loin.in +loischilds.com +lojacane.com +lojacentrobenessere.shop +lojaibizas.info +lojajled.com +lojasmax.ml +lojistiklashing.com +lojkjcwj.shop +lojy.site +lok3.site +lokalmkt.com +lokaperuss.com +lokasitempatwisata.com +lokata-w-banku.com.pl +lokcl.us +lokd.com +loker4d.pro +lokersolo.net +lokerupdate.me +loketa.com +lokingmi.cf +lokingmi.gq +lokingmi.ml +lokitwcx.space +lokka.net +lokmynghf.com +loksopha.com +lokum.nu +lokzhguof.shop +lol.it +lol.ovpn.to +lol2020.online +lol2020.site +lolahouse.design +lolco.xyz +lole.link +lolemails.pl +lolfhxvoiw8qfk.cf +lolfhxvoiw8qfk.ga +lolfhxvoiw8qfk.gq +lolfhxvoiw8qfk.ml +lolfhxvoiw8qfk.tk +lolfreak.net +loli123.com +loli3.com +loli8.space +loli88.space +loliacg.com +lolianime.com +loliapp.com +lolibox.ml +lolibuy.com +lolidze.top +lolimail.cf +lolimail.com +lolimail.ga +lolimail.gq +lolimail.ml +lolimail.tk +lolimailer.cf +lolimailer.ga +lolimailer.gq +lolimailer.ml +lolimailer.tk +lolio.com +lolioa.com +lolior.com +lolipan.com +lolitka.cf +lolitka.ga +lolitka.gq +lolito.tk +lolivip.com +lolka.space +lollard.best +lolllipop.stream +lolmail.biz +lolnow.store +lolnow.xyz +lolo1.dk +lolokakedoiy.com +lolposters.com +lolpro.club +lolpro.space +lols.store +lolshirts.net +lolshirts.org +lolspace.xyz +lolstore.xyz +lolusa.ru +lolwegotbumedlol.com +lom-vid8.site +lom.kr +lomahskdbag.website +lomanget.ru +lombard-zvonok.ru +lombardcredit.com +lombok-spas.com +lombokbeachresort.com +lombokbeachvillas.com +lombokboutiquevilla.com +lomboksparesort.com +lombokspas.com +lomistores.site +lomnbaz.fun +lompocplumbers.com +lompsz.icu +lomwnomwns.club +lon7e.buzz +loncoca.org +lonct.icu +londh.site +london-bitcoin.com +london-home.net +london-live.info +london2.space +londonbridgefestival.com +londondesign.ru +londondigerati.com +londondotcom.com +londonescortsbabes.co +londonfootspecialists.com +londonlocalbiz.com +londonorg.net +londonpoker77.org +londontheatrereview.com +lonelyshe.com +lonestarlakeviews.com +lonezoos.info +long-blog.site +long-blog.space +long-blog24.host +long-differ.xyz +long-eveningdresses.com +long-sin-takeaway.com +long.idn.vn +longanltd.info +longanltd.net +longanltd.org +longanvietnamese.com +longbeachislandcam.com +longbeachquote.com +longbl0g.space +longblog24.host +longboatkey.store +longboatwines.com +longbrain.com +longchaflong.cf +longchaflong.gq +longchaflong.ml +longchamponlinesale.com +longer-aboard-hungry-wheat.xyz +longerb.website +longhutv.com +longidaza-rf.ru +longio.org +longislandishere.com +longislandvero.com +longlongcheng.com +longlovetabs.biz +longmonkey.info +longmontpooltablerepair.com +longrin1.com +longtime.us +longueur.site +longviewchristmas.com +lonker.net +lonrahtritrammail.com +lonthe.ml +look4chocolate.ru +look4gps.com +lookad.online +looketop.site +lookfeelflowbetter.com +lookingthe.com +lookinsideimaging.com +looklemsun.uni.me +looklikecheap.site +lookmail.ml +lookminor.tk +lookmymoney.ru +looknikes.ru +lookthesun.tk +lookugly.com +lookupworks.com +loongrtk.tk +loonlite.com +loonycoupon.com +loooms.icu +loopcrashs.info +loopemail.online +loopsnow.com +loopstack.com +loopy-deals.com +loot-fern.site +lootx.cf +looup.com +lopeure.com +lopezfood.com +lopgesi.cf +lopgesi.ga +lopgesi.gq +lopgesi.ml +lopgesi.tk +lopit.icu +lopivolop.com +lopl.co.cc +loqueseve.net +loqueseve.org +loranet.pro +loranund.world +lord2film.online +lordbet105.com +lordcheez.com +lordfilmmovie.xyz +lordfilms.press +lordfilmu.org +lordfkas.tk +lordjohnsbootery.com +lordmobilehackonline.eu +lordsofts.com +lordspalacebet4.com +lordssfilm.online +lordummaraba.tk +lordvold.cf +lordvold.ga +lordvold.gq +lordvold.ml +lordzeeblog.com +lorehouse.co +lorel.best +lorencic.ro +lorenwoka.com +lorenzidecks.com +lorimer.co +lorinhouse.co +lorotzeliothavershcha.info +lorslufmea.cf +lorslufmea.ga +lorslufmea.gq +lorsque.us +lortemail.dk +losa.tr +losangeles-realestate.info +losangeles.storage +losangelescountypretrialservices.com +losangelesquote.com +losbanosforeclosures.com +loscota.com +lose20pounds.info +losebellyfatau.com +loselta.cf +losemymail.com +losethed.com +loseweight-advice.info +loseweightnow.tk +loskmail.com +loskutnat.ru +losowynet.com +lossless.capital +lostandalone.com +lostbooks.net +lostfilm-hd-1086.online +lostfilm-hd-1158.online +lostfilm-hd-1165.online +lostfilm-hd-1191.online +lostfilm-hd-1207.online +lostfilm-hd-1365.online +lostfilm-hd-1369.online +lostfilm-hd-1379.online +lostfilm-hd-1500.online +lostfilm-hd-1519.online +lostfilm-hd-1586.online +lostfilm-hd-1653.online +lostfilm-hd-1720.online +lostfilm-hd-2007.online +lostfilm-hd-219.online +lostfilm-hd-2403.online +lostfilm-hd-2470.online +lostfilm-hd-2570.online +lostfilm-hd-2828.online +lostfilm-hd-3061.online +lostfilm-hd-3203.online +lostfilm-hd-3429.online +lostfilm-hd-3489.online +lostfilm-hd-3618.online +lostfilm-hd-3665.online +lostfilm-hd-401.online +lostfilm-hd-434.online +lostfilm-hd-658.online +lostfilm-hd-882.online +lostfilm-hd-927.online +lostfilmhd1080.ru +lostgikom.tk +lostingaf.ga +lostinpr.com +lostnzttu.win +lostoddies.com +lostpositive.xyz +loststork.com +losvolosy.info +lotclubs.com +loteamentos.club +lotesan.cf +lotesan.ga +lotesan.gq +lotesan.ml +lotesan.tk +lotls.com +loto-1.com +loto-sto-cool.host +loto-sto-cool.press +loto-sto-cool.space +lotobuytop.com +lotogoldclub.online +lotogoldclub.site +lotomoneymaker.com +lotos-holding.ru +lotsavaslari1.com +lotsofcrazykittens.site +lottery-weekly.com +lottery365.info +lotteryfordream.com +lotteryforwin.com +lotto-golden.com +lotto-mn.com +lotto-thanks.xyz +lotto-vip.click +lotto-vip.shop +lotto-wizard.net +lotto191.com +lotto2555.com +lotto4winner.com +lottoaddict.online +lottobag.live +lottobeat.online +lottobenefit.com +lottobestprize.com +lottobestwinner.com +lottoboard.online +lottobudget.live +lottobuild.live +lottocashwin.com +lottocave.online +lottochangelife.com +lottochild.live +lottocounter.live +lottocove.online +lottocreed.live +lottocritic.live +lottodrawer.live +lottoeasymoney.com +lottoegg.live +lottoeo.online +lottofever.online +lottofinish.live +lottoflow.online +lottofunandwin.com +lottogamelife.com +lottogate.live +lottogirlwinner.com +lottogo.link +lottogossip.live +lottogudman.com +lottohousing.live +lottoinc.online +lottoisland.live +lottojet.live +lottolink.live +lottoluckforyou.com +lottomargin.live +lottoo.online +lottoorgan.live +lottooutlet.live +lottoowl.live +lottopaint.live +lottopromotionbiz.com +lottopwinner.com +lottorealwinner.com +lottoresults.ph +lottoryshow.com +lottosend.ro +lottosight.online +lottosport.live +lottotalent.com +lottothai888.com +lottovalley.online +lottovip900.online +lottoviptv.com +lottovvip.com +lottowinall.com +lottowingot.com +lottowinmy.com +lottowinnboy.com +lottowinnerbis.com +lottowinnerboy.com +lottowinnerboy.xyz +lottowinnerbuy.com +lottowinnerdaily.com +lottowinnerfolk.com +lottowinnersuperman.com +lottowinnertime.com +lottowinplus.com +lotuses.xyz +lotusflowertea.com +lotusperceptions.com +lotusph.com +lotusphysicaltherapy.com +lotusrobot.com +lotusteavietnam.com +lotyh.xyz +louboinhomment.info +louboutinadmin.site +louboutinemart.com +louboutinit.com +louboutinkutsutenpojp.com +louboutinpascher1.com +louboutinpascher2.com +louboutinpascher3.com +louboutinpascher4.com +louboutinpascheshoes.com +louboutinshoesfr.com +louboutinshoessalejp.com +louboutinshoesstoresjp.com +louboutinshoesus.com +loudcannabisapp.com +louder1.bid +loudlesses.xyz +loudouncolo.com +louedepot.com +loufad.com +louhansonpottery.com +louieliu.com +louiescajunkitchen.com +louipomi.cf +louipomi.ga +louipomi.gq +louipomi.ml +louis-vittons.biz +louis-vuitton-onlinestore.com +louis-vuitton-outlet.com +louis-vuitton-outletenter.com +louis-vuitton-outletsell.com +louis-vuittonbags.info +louis-vuittonbagsoutlet.info +louis-vuittonoutlet.info +louis-vuittonoutletonline.info +louis-vuittonsac.com +louis918.com +louiscasinos.com +louisct.com +louisemccarthy.buzz +louisloock.com +louisphilippeconstantin.com +louistanis.ga +louistanis.gq +louistanis.ml +louistanis.tk +louisvienna.com +louisvillehsfootball.com +louisvillequote.com +louisvilleskatingacademy.org +louisvillestudio.com +louisvuitton-handbagsonsale.info +louisvuitton-handbagsuk.info +louisvuitton-outletstore.info +louisvuitton-replica.info +louisvuitton-uk.info +louisvuittonallstore.com +louisvuittonbagsforcheap.info +louisvuittonbagsjp.org +louisvuittonbagsuk-cheap.info +louisvuittonbagsukzt.co.uk +louisvuittonbeltstore.com +louisvuittoncanadaonline.info +louisvuittonchoooutlet.com +louisvuittondesignerbags.info +louisvuittonfactory-outlet.us +louisvuittonffr1.com +louisvuittonforsalejp.com +louisvuittonhandbags-ca.info +louisvuittonhandbagsboutique.us +louisvuittonhandbagsoutlet.us +louisvuittonhandbagsprices.info +louisvuittonjpbag.com +louisvuittonjpbags.org +louisvuittonjpsale.com +louisvuittonmenwallet.info +louisvuittonmonogramgm.com +louisvuittonnfr.com +louisvuittonnicebag.com +louisvuittonofficielstore.com +louisvuittononlinejp.com +louisvuittonoutlet-store.info +louisvuittonoutlet-storeonline.info +louisvuittonoutlet-storesonline.info +louisvuittonoutlet-usa.us +louisvuittonoutletborseitaly.com +louisvuittonoutletborseiy.com +louisvuittonoutletjan.net +louisvuittonoutletonlinestore.info +louisvuittonoutletrich.net +louisvuittonoutletrt.com +louisvuittonoutletstoregifts.us +louisvuittonoutletstores-online.info +louisvuittonoutletstores-us.info +louisvuittonoutletstoresonline.us +louisvuittonoutletsworld.net +louisvuittonoutletwe.com +louisvuittonoutletzt.co.uk +louisvuittonpursesstore.info +louisvuittonreplica-outlet.info +louisvuittonreplica.us +louisvuittonreplica2u.com +louisvuittonreplicapurse.info +louisvuittonreplicapurses.us +louisvuittonretailstore.com +louisvuittonrreplicahandbagsus.com +louisvuittonsac-fr.info +louisvuittonsavestore.com +louisvuittonsbags8.com +louisvuittonshopjapan.com +louisvuittonshopjp.com +louisvuittonshopjp.org +louisvuittonshopoutletjp.com +louisvuittonsjapan.com +louisvuittonsjp.org +louisvuittonsmodaitaly1.com +louisvuittonspascherfrance1.com +louisvuittonstoresonline.com +louisvuittontoteshops.com +louisvuittonukbags.info +louisvuittonukofficially.com +louisvuittonukzt.co.uk +louisvuittonused.info +louisvuittonwholesale.info +louisvuittonworldtour.com +louisvunttonworldtour.com +louive.com +louivuittoutletuksalehandbags.co.uk +loujtj.rest +louli08.com +loumoen.info +lous-photos.com +lous.photos +loutosmedia.com +loux5.universallightkeys.com +lova-madeinglass.com +lovabloazf.ru +lovane.info +love-amigurumi.website +love-brand.ru +love-for-free.online +love-fuck.ru +love-handmade.site +love-history.ru +love-hookinguplater.com +love-matchs2.club +love-to-cook.ru +love-yarn.site +love-youboy.ru +love.info +love079.com +love2.tennis +love2212.com +love365.ru +love388.com +love388.net +love399.net +love488.net +love4writing.info +love669.net +love676.net +love686.com +love686.net +love866.net +love877.com +love888test.xyz +love889.com +love889.net +love8baidu.com +love97.ga +loveabledress.com +loveabledress.net +loveablelady.com +loveablelady.net +loveandotherstuff.co +lovebet44.net +lovebitco.in +lovecuirinamea.com +loveday1.info +lovediscuss.ru +lovee21c.com +loveenit.com +loveesq.com +lovefall.ml +lovefans.com +lovegirls.club +loveknitting.website +lovelacelabs.net +lovelakeview.com +lovelandshoes.com +lovelemk.tk +lovely-photo.ru +lovelybabygirl.com +lovelybabygirl.net +lovelybabylady.com +lovelybabylady.net +lovelyfont.com +lovelyhotmail.com +lovelyladygirl.com +lovelynhatrang.ru +lovelyprice.com +lovelyshoes.net +lovelyshowcase.com +lovelytype.com +lovemak.online +lovemak.site +lovematters.africa +loveme.com +lovemeet.faith +lovemeleaveme.com +lovemue.com +lovemydoggy.shop +lovemytrail.org +lovepdfmanuales.xyz +loveplanetx.com +loversalvagepains.site +loves.dicksinhisan.us +loves.dicksinmyan.us +lovesea.gq +lovesfire.club +lovesoftware.net +lovestream.live +lovesunglasses.info +lovesystemsdates.com +lovetests99.com +lovethe90smalaga.com +lovethetuentisfestival.com +lovetuan.com +loveunitesus.live +loveus.info +lovewelcomesall.org +lovewisher.com +lovework.jp +lovingmydentist.com +lovingnessday.com +lovingnessday.net +lovingr3co.ga +lovingyoujewelry.com +lovisvuittonsjapan.com +lovitolp.com +lovlyn.com +lovomon.com +lovrent.com +lovxwyzpfzb2i4m8w9n.cf +lovxwyzpfzb2i4m8w9n.ga +lovxwyzpfzb2i4m8w9n.gq +lovxwyzpfzb2i4m8w9n.tk +low-buy.site +low.pixymix.com +lowassfi.xyz +lowatt.ru +lowcanceljaw.website +lowco.com +lowcost.cd +lowcost.solutions +lowcypromocji.com.pl +lowdh.com +lowendjunk.com +lowenergybook.com +lowermortgagerates.org +lowermybloodpressure.info +lowerrightabdominalpain.org +lowestpricesonthenet.com +lowlifeairride.com +lowpricefireworks.com +lowrance-elite.online +lowttfinin.cf +lowttfinin.ga +lowttfinin.gq +lowttfinin.ml +lowttfinin.tk +loy.kr +loyalherceghalom.ml +loyalnfljerseys.com +loycal.shop +loz0se.us +lp-rimarkets.com +lp.express +lp1hoanews.com +lpalgcisp.shop +lpaoaoao80101919.ibaloch.com +lpapa.ooo +lpdf.site +lpe88-singapore.com +lpfmgmtltd.com +lpgrnerator.ru +lphqvz.host +lphrx.us +lpi1iyi7m3zfb0i.cf +lpi1iyi7m3zfb0i.ga +lpi1iyi7m3zfb0i.gq +lpi1iyi7m3zfb0i.ml +lpi1iyi7m3zfb0i.tk +lpiloanscash.com +lpjx3n.site +lpmwebconsult.com +lpnnurseprograms.net +lpo.ddnsfree.com +lpolijkas.ga +lpoty3.us +lppde.com +lprssvflg.pl +lptbjh.site +lpurm5.orge.pl +lpva5vjmrzqaa.cf +lpva5vjmrzqaa.ga +lpva5vjmrzqaa.gq +lpva5vjmrzqaa.ml +lpva5vjmrzqaa.tk +lpwteu.icu +lq59.xyz +lqaqgbrw.shop +lqdaal.us +lqghzkal4gr.cf +lqghzkal4gr.ga +lqghzkal4gr.gq +lqghzkal4gr.ml +lqis2k.us +lqlz8snkse08zypf.cf +lqlz8snkse08zypf.ga +lqlz8snkse08zypf.gq +lqlz8snkse08zypf.ml +lqlz8snkse08zypf.tk +lqonrq7extetu.cf +lqonrq7extetu.ga +lqonrq7extetu.gq +lqonrq7extetu.ml +lqonrq7extetu.tk +lqplz.live +lqvip0.com +lqvip2.com +lqvip4.com +lr425b.live +lr526.site +lr7.us +lr78.com +lr888.com +lrdbet.com +lrebzs.us +lrelsqkgga4.cf +lrelsqkgga4.ml +lrelsqkgga4.tk +lrenjg.us +lresultss.icu +lrfjubbpdp.pl +lrfnygeef.shop +lrglobal.com +lrjvsu.us +lrland.net +lroid.com +lroiub.online +lroiub.ru +lron0re.com +lrsxk.live +lrtax.online +lrtndrdqk.shop +lrtptf0s50vpf.cf +lrtptf0s50vpf.ga +lrtptf0s50vpf.gq +lrtptf0s50vpf.ml +lrtptf0s50vpf.tk +lru.me +lrwz.site +lrymxmci.site +ls-server.ru +lsalemost.site +lsamennbx.shop +lsbet1011.com +lsdjcz.com +lsdpv2.ga +lsdpv2.tk +lsecuri.shop +lsepakbola.net +lsgj.email +lsh.my.id +lshoespeak.site +lshunter.site +lsinghconsulting.com +lsjapp.com +lsjbt.com +lskqds.site +lsktdr.us +lslconstruction.com +lslwcqvro.shop +lsmcae.com +lsmpic.com +lsone.site +lsos.xyz +lspforev.ru +lsrtsgjsygjs34.gq +lss176.com +lsthoist.com +lstore.moscow +lstuqc.com +lsv3.com +lsvtaffiliate.com +lsweetuni.pro +lsxprelk6ixr.cf +lsxprelk6ixr.ga +lsxprelk6ixr.gq +lsxprelk6ixr.ml +lsxprelk6ixr.tk +lsylgw.com +lsylzcym.com +lsyx0.rr.nu +lt7n4p.us +ltaffshop.store +ltblu3.com +ltc5ro.com +ltcorp.org +ltdtab9ejhei18ze6ui.cf +ltdtab9ejhei18ze6ui.ga +ltdtab9ejhei18ze6ui.gq +ltdtab9ejhei18ze6ui.ml +ltdtab9ejhei18ze6ui.tk +ltdwa.com +ltesbn.us +lteselnoc.cf +lteselnoc.ml +lteselnoc.tk +ltfg92mrmi.cf +ltfg92mrmi.ga +ltfg92mrmi.gq +ltfg92mrmi.ml +ltfg92mrmi.tk +ltfpc.com +lthaltha.shop +lthz1v.us +ltiosmjo.shop +ltkuib.us +ltt.us +ltt0zgz9wtu.cf +ltt0zgz9wtu.gq +ltt0zgz9wtu.ml +ltt0zgz9wtu.tk +lttcloud.com +lttiibtusu8.uno +lttl.org +lttmail.com +lttmobile.com +lttsd.com +lttusers.com +lttusers.net +ltuc.edu.eu.org +ltuiwz.us +luadao.club +luagram.com +luangprabangbackpackershostel.com +luantai43.icu +luarleare.cf +luarleare.ga +luarleare.ml +luarleare.tk +luaroleplay.com +luarte.info +lubata23.com +lubbockhairsalons.com +lubbockquote.com +lubie-placki.com.pl +lubisbukalapak.tk +luboydomain.ru +lubtec.ru +lubuqa.xyz +lucaclubvip23456.com +lucah.video +lucastech.org +lucaz.com +luce-lp.biz +luce-lp.net +luceudeq.ga +lucha.shoes +luchocharovanii.xyz +luchthaven.org +lucian.dev +lucianoop.com +lucianoslodo.com +lucidmation.com +lucidmode.com +lucidseats.com +luciferous.site +luciferparfume.xyz +lucifunzgl.club +lucifunzgl.host +lucigenic.com +luck-bet.online +luck-outside.tech +luck-win.com +luck8.com +luckalott.com +luckboy.pw +luckeyinvest.com +luckgift.ru +luckindustry.ru +luckjob.pw +luckmail.us +luckuclick.ru +lucky-gambler.com +lucky.wiki +lucky238.org +lucky4u.site +lucky66jlty.com +luckydesign.info +luckydragon-cabra.com +luckygambling.net +luckygay.xyz +luckyhour.xyz +luckyladydress.com +luckyladydress.net +luckylion.su +luckylolly.com +luckylooking.com +luckymail.org +luckyman-sy.com +luckymine.ru +luckypick.net +luckyquest.net +luckyskill.club +luckyspin-s12.com +luckyspin.ru +luckysportwin88.club +luckyvictims.com +luckywinner.vegas +luclyvitamin.com +lucrandoonline.tech +lucrasystems.com +lucrumbet.ru +lucubunga.org +lucyd.xyz +lucyintmhk.space +lucypoker.net +lucys.mobi +lucysummers.biz +lucyu.com +luddo.me +luderi.cf +luderi.ga +luderi.gq +ludovicomedia.com +ludovodka.com +ludxc.com +ludziepalikota.pl +ludzieswiatowi.site +luengosweb.se +luepotho.cf +luepotho.ga +luepotho.gq +luepotho.ml +lufaf.com +lufcfans.website +luffem.com +lufrand.ru +luftcinbull.ga +luftcinbull.ml +luftcinbull.tk +lufyalp.best +luggageandbag.com +luggagetravelling.info +luhorla.cf +luhorla.gq +luhorla.ml +luicesdass.cf +luicesdass.ga +luicesdass.gq +luicesdass.tk +luigisfinglas.com +luigiskimmage.com +luigitakeaway.com +luilkkgtq43q1a6mtl.cf +luilkkgtq43q1a6mtl.ga +luilkkgtq43q1a6mtl.gq +luilkkgtq43q1a6mtl.ml +luilkkgtq43q1a6mtl.tk +luisdelavegarealestate.us +luisgiisjsk.tk +luisparisy.info +luispedro.xyz +luk2.com +lukasfloor.com.pl +lukasgrant.com +lukaszmitula.pl +lukearentz.com +lukecarriere.com +lukemail.info +lukeskybroker.com +lukespencer.buzz +lukesrcplanes.com +lukewhiteplays.com +lukeyoquinto.com +lukhovi.com +lukop.dk +luksarcenter.ru +luky88.info +luleburgazrehber.xyz +lulexia.com +lulluna.com +lulluna.org +lululemonsale-outlet.com +lululu19.info +lulumelulu.org +lumb.net +lumetric-testing.space +lumi-ceuticals.com +lumihub.com +luminaireinstitute.com +luminaireinstitute.org +luminario.com +luminnabeauty.com +luminous-cabal.site +luminoustracts.club +luminu.com +lumity.life +lumivisions.net +lump.pa +lumpylump.com +lunabit1.com +lunar4d.org +lunarmail.info +lunaticfest.store +lunatikcase.ru +lunatos.eu +lunchbuild.recipes +lunchdinnerrestaurantmuncieindiana.com +lunchdoze.fun +lunchiscalling.com +lundinchut.co +lunent.xyz +lunettesoakleypascher.biz +lungallowedmace.website +lungmater.ga +lungmater.ml +lungmater.tk +lunive.xyz +luno-finance.com +lunsbt.xyz +lunserc.buzz +lunvli.icu +lunyingge.com +luo.kr +luocentce.gq +luocentce.ml +luocentce.tk +luohunzu.com +luomeng.info +luonchia.online +luotishow.xyz +lupabapak.org +lupetalk.com +luq1fe.us +lurelight.com +lurepam.com +lurralife.org +lurtewwx.ga +lusernews.com +lusesupermart.site +lusianna.ml +lussierdesign.com +lustelo.com +lustlonelygirls.com +lustrapay.org +lutcha.africa +luteous.site +lutherhild.ga +luucartones.xyz +luutrudulieu.net +luutrudulieu.online +luv2.us +luvmsg.com +luwdutjza.shop +luwysi.info +lux-building.ru +luxaviation.media +luxehuren.info +luxembug-nedv.ru +luxemine.ru +luxemine.su +luxentic.com +luxetrader.net +luxline.com +luxmet.ru +luxor-sklep-online.pl +luxurating.com +luxuriousdress.net +luxury-handbagsonsale.info +luxury-master.xyz +luxury-travel.xyz +luxuryalcoholrehabprograms.com +luxuryasiaresorts.com +luxurybet138.com +luxurybrandednotebooks.com +luxurychanel.com +luxurycruiselines.org +luxurydate.online +luxuryflights.xyz +luxuryoutletonline.us +luxurypenswatches.com +luxuryrehabprogram.com +luxuryscentboxes.com +luxuryshomemn.com +luxuryshopforpants.com +luxurytogel.com +luxurytourscroatia.com +luxusmail.cf +luxusmail.ga +luxusmail.gq +luxusmail.ml +luxusmail.my.id +luxusmail.tk +luxusmail.uk +luxusroleplay.us +luxvil.ru +luyilu8.com +luzhilu3.com +luzoom.net +lv-bags-outlet.com +lv-magasin.com +lv-outlet-online.org +lv1-love.ru +lv2buy.net +lvbag.info +lvbag11.com +lvbags001.com +lvbagsjapan.com +lvbagsshopjp.com +lvbq5bc1f3eydgfasn.cf +lvbq5bc1f3eydgfasn.ga +lvbq5bc1f3eydgfasn.gq +lvbq5bc1f3eydgfasn.ml +lvbq5bc1f3eydgfasn.tk +lvc2txcxuota.cf +lvc2txcxuota.ga +lvc2txcxuota.gq +lvc2txcxuota.ml +lvc2txcxuota.tk +lvcheapsua.com +lvcheapusa.com +lvfityou.com +lvfiyou.com +lvforyouonlynow.com +lvhan.net +lvhandbags.info +lvheremeetyou.com +lvheye.com +lvhotstyle.com +lvlxd.ru +lvmao1.xyz +lvnsjobs.com +lvory.net +lvoulet.com +lvoutlet.com +lvoutletonlineour.com +lvpascher1.com +lvpux8.us +lvrwvc.ga +lvs788.club +lvsaleforyou.com +lvtimeshow.com +lvvif.live +lvword.com +lvxutizc6sh8egn9.cf +lvxutizc6sh8egn9.ga +lvxutizc6sh8egn9.gq +lvxutizc6sh8egn9.ml +lvxutizc6sh8egn9.tk +lvy4.us +lwapv.us +lwbmarkerting.info +lwcplror.shop +lweohkvh.shop +lwhzgl.us +lwjsmj.shop +lwmarketing.club +lwmaxkyo3a.cf +lwmaxkyo3a.ga +lwmaxkyo3a.gq +lwmaxkyo3a.ml +lwmaxkyo3a.tk +lwmhcka58cbwi.cf +lwmhcka58cbwi.ga +lwmhcka58cbwi.gq +lwmhcka58cbwi.ml +lwmhcka58cbwi.tk +lwu9l.us +lwwz3zzp4pvfle5vz9q.cf +lwwz3zzp4pvfle5vz9q.ga +lwwz3zzp4pvfle5vz9q.gq +lwwz3zzp4pvfle5vz9q.ml +lwwz3zzp4pvfle5vz9q.tk +lx-97.com +lxidd.com +lxlxdtskm.pl +lxnshavo.shop +lxream-player.com +lxtx-yl.com +lxtxdl.com +lxty8.com +lxupukiw4dr277kay.cf +lxupukiw4dr277kay.ga +lxupukiw4dr277kay.gq +lxupukiw4dr277kay.ml +lxupukiw4dr277kay.tk +lxwwp.icu +ly631c.com +lyahatbercse.site +lyaliume.site +lyamda.ru +lybaba.xyz +lybe.info +lycos.comx.cf +lydia-uniform.com +lydias-scrubs.com +lydiascrubs.com +lydiasprofessionaluniforms.com +lydiasscrubs.com +lydiasuniform.com +lydiasuniform.info +lydiasuniform.net +lydiauniform.com +lyepictver.cf +lyepictver.ga +lyepictver.ml +lyepictver.tk +lyesikon.cf +lyfestylecreditsolutions.com +lyfrabom.cf +lyfrabom.ga +lyfrabom.ml +lyfrabom.tk +lygardendublin16.com +lygjzx.xyz +lyhert.com +lyhirame.website +lyjnhkmpe1no.cf +lyjnhkmpe1no.ga +lyjnhkmpe1no.gq +lyjnhkmpe1no.ml +lyjnhkmpe1no.tk +lyjtjgjy.xyz +lykaon.com +lylilupuzy.pl +lymaza.info +lymdownmer.cf +lymdownmer.gq +lymdownmer.tk +lynchtopkslop.cf +lynchtopkslop.ga +lynchtopkslop.gq +lyolersi.cf +lyolersi.ga +lyolersi.gq +lyolersi.ml +lyolersi.tk +lyq8i1.xyz +lyqayi.xyz +lyqe.site +lyqenz.xyz +lyqmeu.xyz +lyqo9g.xyz +lyqqp1.xyz +lyqqqv.xyz +lyqxe8.xyz +lyqxh2.xyz +lyrical.icu +lyricauthority.com +lyrics-lagu.me +lyrics-translation.com +lysszy.com +lyttres.ru +lyuke.ru +lyustra-bra.info +lyv1at.us +lyvqj.us +lywenw.com +lyzj.org +lyzzgc.com +lzcai168.net +lzcai888.net +lzcxssxirzj.cf +lzcxssxirzj.ga +lzcxssxirzj.gq +lzcxssxirzj.ml +lzcxssxirzj.tk +lzfkvktj5arne.cf +lzfkvktj5arne.ga +lzfkvktj5arne.gq +lzfkvktj5arne.tk +lzgyigfwf2.cf +lzgyigfwf2.ga +lzgyigfwf2.gq +lzgyigfwf2.ml +lzgyigfwf2.tk +lzmjgc.com +lzoaq.com +lzpooigjgwp.pl +lzqm.us +lzqt.us +lzs1.us +lzs94f5.pl +lztoek.us +lzw1o5.us +m-baraxolka.ru +m-c-e.de +m-chem.org +m-cms.net +m-dot.com +m-drugs.com +m-icsiba.online +m-lidov.ru +m-m.live +m-mail.cf +m-mail.ga +m-mail.gq +m-mail.ml +m-myth.com +m-p-s.cf +m-p-s.ga +m-p-s.gq +m-passport.ru +m-response.com +m-rinok.ru +m-xxx.ru +m.arkf.xyz +m.bccto.me +m.beedham.org +m.c-n-shop.com +m.cloudns.cl +m.codng.com +m.convulse.net +m.ddcrew.com +m.girl-viet.com +m.nik.me +m.nosuchdoma.in +m.polosburberry.com +m.svlp.net +m.u-torrent.cf +m.u-torrent.ga +m.u-torrent.gq +m0.guardmail.cf +m00b2sryh2dt8.cf +m00b2sryh2dt8.ga +m00b2sryh2dt8.gq +m00b2sryh2dt8.ml +m00b2sryh2dt8.tk +m015j4ohwxtb7t.cf +m015j4ohwxtb7t.ga +m015j4ohwxtb7t.gq +m015j4ohwxtb7t.ml +m015j4ohwxtb7t.tk +m0411.com +m0451.com +m07.ovh +m09n80ac9rp31rt.xyz +m0lot0k.ru +m0rrisdickson.com +m0ve.club +m0y1mqvqegwfvnth.cf +m0y1mqvqegwfvnth.ga +m0y1mqvqegwfvnth.gq +m0y1mqvqegwfvnth.ml +m0y1mqvqegwfvnth.tk +m0z3qi.com +m1.blogrtui.ru +m1.guardmail.cf +m11pk.net +m189ushr.buzz +m190msxw.buzz +m191pobi.buzz +m194mmlt.buzz +m197vfur.buzz +m199edcv.buzz +m1t95z.us +m1ufp7.com +m1zzu5pjtj6qmst.com +m2.guardmail.cf +m2.trekr.tk +m21.cc +m234666.com +m236rgjg.buzz +m25lettings.com +m2hotel.com +m2project.xyz +m2r60ff.com +m2zznc.us +m3-academy.net +m3.guardmail.cf +m301111.com +m332twfe.buzz +m345ohaw.buzz +m349auvq.buzz +m3enterprise.us +m3u5dkjyz.pl +m3vksa.us +m4-e.club +m4dw79.site +m4ice.ga +m4il5.pl +m4ilweb.info +m4oczo7ni4awcrw.xyz +m56123.com +m56345.com +m56456.com +m5gcz.info +m5r4q.buzz +m5s.flu.cc +m5s.igg.biz +m5s.nut.cc +m5wgcm.us +m64le.com +m68al2oevblfr3m.xyz +m6c718i7i.pl +m6n7008.com +m7665.com +m77b9emzt2xr2bf.xyz +m78012.com +m78123.com +m78345.com +m78567.com +m78678.com +m78qp.com +m7apqm.site +m7lotto.com +m88888.com +m88laos.com +m88lucky.com +m88pk.com +m89345.com +m89456.com +m8cu8xgnu92kj.site +m8g8.com +m8gj8lsd0i0jwdno7l.cf +m8gj8lsd0i0jwdno7l.ga +m8gj8lsd0i0jwdno7l.gq +m8gj8lsd0i0jwdno7l.ml +m8gj8lsd0i0jwdno7l.tk +m8h63kgpngwo.cf +m8h63kgpngwo.ga +m8h63kgpngwo.gq +m8h63kgpngwo.ml +m8h63kgpngwo.tk +m8r.davidfuhr.de +m8r.mcasal.com +m8r8ltmoluqtxjvzbev.cf +m8r8ltmoluqtxjvzbev.ga +m8r8ltmoluqtxjvzbev.gq +m8r8ltmoluqtxjvzbev.ml +m8r8ltmoluqtxjvzbev.tk +m8tro.net +m9262.com +m9282.com +m9827.com +m9enrvdxuhc.cf +m9enrvdxuhc.ga +m9enrvdxuhc.gq +m9enrvdxuhc.ml +m9enrvdxuhc.tk +m9evcp.com +m9so.ru +ma-boite-aux-lettres.infos.st +ma-didoma.website +ma-perceuse.net +ma1l.bij.pl +ma1lgen622.ga +ma2limited.com +ma8cfo.us +maaill.com +maal.com +maart.ml +maasaicricketwarriors.org +maatpeasant.com +mabarpubg.zapto.org +mabermail.com +mabh65.ga +maboard.com +mabterssur.ga +mabterssur.ml +mabterssur.tk +mabuklagi.ga +mabulareserve.com +mabv.club +mac.hush.com +macaniuo235.cf +macankumbang.com +macaoguojihui.com +macaototo.com +macarparke.xyz +macasoul.com +macau-8882.net +macau-8884.net +macau-8885.net +macau22.com +macau333.com +macau444.com +macau66.com +macaudrs.com +macbasics101.com +macbookpro13.com +macbookrepairvancouver.com +maccholnee.cf +maccholnee.ga +maccholnee.tk +macdell.com +macdermidperformancesolutions.info +macfittest.com +macgamedeveloper.com +macgames.site +macgcanhau.cf +macgcanhau.gq +macgcanhau.ml +macgcanhau.tk +machadobarcelona.com +machinalix.biz +machinalix.net +machineearning.com +machinelearningpositions.com +machineproseo.net +machineproseo.org +machineshop.de +machinetest.com +machlovi.com +machmeschrzec.cf +machmeschrzec.ga +machmeschrzec.ml +machmeschrzec.tk +machutka-n.ru +macintoshfiles.com +macmillanlarning.com +macnausa.com +macnotification.com +maconchesp.ga +maconchesp.ml +maconchesp.tk +macosa.cf +macosa.ml +macosa.tk +macpconline.com +macphersonford.com +macplus-vrn.ru +macr2.com +macredit.site +macrigrp.com +macroaligned.com +macrobabyparcela.com +macromaid.com +macromancy.com +macromice.info +macslim.com +macsoftware.de +macspeedtest.com +macts.org +macwish.com +macys-secure-login.com +madaboutpawsuk.com +madagaskar-nedv.ru +madam37.ru +madameemploi.cd +madarinorientalcondos.com +madberry.org +madcambodia.org +madconcrete.com +madcowcheesesteaks.com +madcowtgp.com +maddash.org +maddftp.online +maddftp.xyz +maddimilewskiofficial.com +maddison.allison.spithamail.top +maddisonrobson.buzz +maddy36523.ru +made.boutique +made.ninja +made7.ru +madebid.com +madebygrace.se +madecassol78.ru +madeinak.com +madeinbrazill.tech +madeinguelph.com +madeinmatter.com +madeinrdc.cd +madeinsrq.com +madeinthiscity.com +madeirapakistan.com +madejstudio.com +madelainetarasenko.com +madelhocin.xyz +madepas.ru +madeto.gq +madeto.ml +madeto.tk +madewall.me +madhobitakeaway.com +madhorse.us +madhosi.com +madiba-shirt.com +madibashirts.com +madikwetours.com +madisonliddic.com +madisonyouth.com +madmax.best +madmerchantjew.website +madnatextiles.com +madnesse.site +madnter.com +mado34.com +madobetooko.net +madobetooko.org +madrasati.club +madreporacean.best +madridbet.social +madridmuseumsmap.info +madrivertennis.com +madspraest.com +madstack.com +madtoppings.com +madurahoki.com +maduras.blog +madurasentuciudad.com +maechic.com +maedamis.ga +maedamis.gq +maedamis.ml +maedys.ru +maelcerkciks.com +maep-ua.org +maep-unionafricaine.org +maerdaifuyule0.com +maerdevol.com +maerds.ru +maestroqq.com +maf-bet.info +mafbet.biz +mafbet.info +mafiaa.cf +mafiaa.ga +mafiaa.gq +mafiaa.ml +mafiacapsaidn.com +mafiken.cf +mafiken.ga +mafiken.gq +mafiken.ml +mafiken.tk +mafmkkjxi.shop +mafoosh.com +mafproffitcasino.ru +mafrem3456ails.com +mag-industriegenerali.com +mag.su +magamail.com +magareports.cloud +magaspice.com +magaspices.com +magazenonl-man.site +magaziles.com +magazin-biciclete.info +magazin-elok69.ru +magazin-finalsales.site +magazin-kupi.space +magazin-op.online +magazin-topkost.space +magazin-toptovar.site +magazin20000.ru +magazin24-7.ru +magazine-action-marketing.ru +magazine-shop.site +magazinebemestar.com +magazinefoodie.com +magazineforu-ptrs.site +magazinkachelis.ru +magazinpukupos.fun +magazins-bestshop.site +magazinsupertrendov.fun +magazintovarov.space +magazkost-sale.site +magazsuper-st.fun +magbo.info +mage-tr.xyz +magecamera.com +magegraf.com +magekid.com +magentaguide.com +magentatax.com +magentiamoday.com +magento-sa.online +magento-sa.xyz +magentomancer.com +magetrust.com +maggotymeat.ga +maghassistance.com +magi666.ru +magia-malarska.pl +magia-sna.com +magiamgia.site +magic-world.su +magicalsys.site +magicandtheatre.com +magicbeep.com +magicblock.ru +magicblocks.ru +magicbox.ro +magicbroadcast.com +magiccashmachine.com +magicclick.ru +magicdrop.info +magicedhardy.com +magicemporium.shop +magicismight.com +magicletters.site +magicmail.com +magicmail01.ml +magicmarkerbea.xyz +magicmidgets.com +magiconly.ru +magicoscotch.best +magicpaper.site +magicsubmitter.biz +magicvapp.com +magikalworld.com +magilaclight.ru +magiushosting.site +maglienflpocoprezzo.com +maglo.sk +magmamine.ru +magn01ia.com +magn0lia.com +magnar.ru +magnestabil.com +magnetgoos.xyz +magneticmessagingbobby.com +magnetik.com.ua +magnetiner.com +magnetoes.com +magnetsandbox.com +magnificentvideo.ru +magnifyaid.com +magniglobal.org +magnoliacheck.xyz +magnoliya-52.site +magnomsolutions.com +magnum-digital.online +magnum.plus +magnumbet.online +magnumbet.xyz +magnumsv388.com +magnumx.site +magonline24.ru +magpietravel.com +magspam.net +magtrate.com +maguoxin1.com +magur.shop +magura.shop +magusae.space +maguttha.cf +mahabhart.tk +mahadewapoker.site +mahailadesigns.com +mahalimountains.com +mahan95.ir +mahantejarat.com +maharadg.ru +maharajahtakeaway.com +mahasherpa.com +mahatqeo.online +mahdevip.com +mahiidev.site +mahjonggplayzone.com +mahjongseal.se +mahkota33.org +mahmutahmet.ga +mahmutahmet.tk +mahoteki.com +mahsen.tk +mahutv.com +mahycu.site +mai1bx.ovh +mai1campzero.net.com +mai84.com +maia.aniyah.coayako.top +maiche.cd +maicheckfal.cf +maicheckfal.gq +maicheckfal.tk +maicox.com +maid-service.info +maiddropcrampon.ru +maidensportal.com +maidlow.info +maidstoneinventoryservices.com +maigrirdes40ans.com +maigw.us +maiiamfoodsolutions.com +maikai.me +mail-2-you.com +mail-4-you.bid +mail-4server.com +mail-9g.pl +mail-address.live +mail-app.net +mail-apps.com +mail-apps.net +mail-box.ml +mail-boxes.ru +mail-c.cf +mail-c.ga +mail-c.gq +mail-c.ml +mail-c.tk +mail-card.com +mail-card.net +mail-cart.com +mail-click.net +mail-cryz.ru +mail-demon.bid +mail-desk.net +mail-dj.com +mail-easy.fr +mail-fake.com +mail-file.net +mail-filter.com +mail-finder.net +mail-fix.com +mail-fix.net +mail-gen.xyz +mail-group.net +mail-guru.net +mail-help.net +mail-hub.info +mail-hub.online +mail-hub.top +mail-j.cf +mail-j.ga +mail-j.gq +mail-j.ml +mail-j.tk +mail-jim.gq +mail-jim.ml +mail-lab.net +mail-line.net +mail-list.top +mail-maker.net +mail-miu.ml +mail-neo.gq +mail-now.top +mail-owl.com +mail-podarki.ru +mail-point.net +mail-pro.info +mail-register.com +mail-reply.net +mail-s01.pl +mail-search.com +mail-searches.com +mail-security.xyz +mail-send.ru +mail-server.bid +mail-share.com +mail-share.net +mail-space.net +mail-temp.com +mail-temporaire.com +mail-temporaire.fr +mail-tester.com +mail-v.net +mail-vix.ml +mail-w.cf +mail-w.ga +mail-w.gq +mail-w.ml +mail-w.tk +mail-x91.pl +mail-z.gq +mail-z.ml +mail-z.tk +mail-zone.pp.ua +mail.anhthu.org +mail.ankokufs.us +mail.atomeca.com +mail.backflip.cf +mail.bccto.com +mail.bccto.me +mail.bentrask.com +mail.by +mail.c-n-shop.com +mail.chatfunny.com +mail.comx.cf +mail.crowdpress.it +mail.defaultdomain.ml +mail.effektiveerganzungen.de +mail.fettometern.com +mail.fgoyq.com +mail.free-emailz.com +mail.fsmash.org +mail.gokir.eu +mail.grupogdm.com +mail.guokse.net +mail.hanungofficial.club +mail.health-ua.com +mail.hlhtool.com +mail.hotxx.in +mail.illistnoise.com +mail.info +mail.inforoca.ovh +mail.it-byen.dk +mail.johnscaffee.com +mail.jopasfo.net +mail.jpgames.net +mail.junwei.co +mail.koalaltd.net +mail.libivan.com +mail.lindstromenterprises.com +mail.lowestpricesonthenet.com +mail.mailinator.com +mail.mayboy.xyz +mail.me +mail.mezimages.net +mail.minecraftfuns.tk +mail.mixhd.xyz +mail.mnisjk.com +mail.myde.ml +mail.myserv.info +mail.mzr.me +mail.neynt.ca +mail.omahsimbah.com +mail.partskyline.com +mail.piaa.me +mail.przyklad-domeny.pl +mail.ptcu.dev +mail.qmeta.net +mail.rthyde.com +mail.tggmall.com +mail.thesolidfirm.com +mail.ticket-please.ga +mail.to +mail.tomsoutletw.com +mail.toprevenue.net +mail.twfaka.com +mail.txsb.ml +mail.unionpay.pl +mail.vuforia.us +mail.webcity.ml +mail.wnetz.pl +mail.wtf +mail.wvwvw.tech +mail.yauuuss.net +mail.zinn.gq +mail.zp.ua +mail0.cf +mail0.ga +mail0.gq +mail0.ml +mail1.cf +mail1.drama.tw +mail1.hacked.jp +mail1.i-taiwan.tv +mail1.ismoke.hk +mail1.kaohsiung.tv +mail1.kein.hk +mail1.mungmung.o-r.kr +mail1.top +mail10.cf +mail10.ga +mail10.gq +mail10.ml +mail11.cf +mail11.gq +mail11.ml +mail114.net +mail123.netmail.tk +mail14.pl +mail15.com +mail166.cn +mail1999.cf +mail1999.ga +mail1999.gq +mail1999.ml +mail1999.tk +mail1a.de +mail1web.org +mail2.cf +mail2.drama.tw +mail2.info.tm +mail2.ntuz.me +mail2.space +mail2.vot.pl +mail2.waw.pl +mail2.worksmobile.ml +mail2000.cf +mail2000.ga +mail2000.gq +mail2000.ml +mail2000.ru +mail2000.tk +mail2001.cf +mail2001.ga +mail2001.gq +mail2001.ml +mail2001.tk +mail21.cc +mail22.club +mail22.space +mail24.club +mail24.gdn +mail24h.top +mail2k.bid +mail2k.trade +mail2k.win +mail2mail.site +mail2nowhere.cf +mail2nowhere.ga +mail2nowhere.gq +mail2nowhere.ml +mail2nowhere.tk +mail2paste.com +mail2rss.org +mail2tor.com +mail2world.com +mail3.activelyblogging.com +mail3.drama.tw +mail3.top +mail333.com +mail35.net +mail3plus.net +mail3s.pl +mail3tech.com +mail3x.net +mail4-us.org +mail4.com +mail4.drama.tw +mail4.online +mail48.top +mail4all.jp.pn +mail4biz.pl +mail4biz.sejny.pl +mail4free.waw.pl +mail4gmail.com +mail4trash.com +mail4used.com +mail4you.bid +mail4you.men +mail4you.racing +mail4you.stream +mail4you.trade +mail4you.usa.cc +mail4you.win +mail4you24.net +mail5.drama.tw +mail52.cf +mail52.ga +mail52.gq +mail52.ml +mail52.tk +mail56.me +mail6.jpimebbs.tk +mail62.net +mail666.ru +mail7.cf +mail7.ga +mail7.gq +mail7.vot.pl +mail707.com +mail72.com +mail77.top +mail777.cf +mail7d.com +mail8.ga +mail8.gq +mail8.vot.pl +mail8app.com +mail998.com +mailabconline.com +mailaccount.de.pn +mailadadad.org +mailadda.cf +mailadda.ga +mailadda.gq +mailadda.ml +mailadresim.site +mailairport.com +mailapi.ru +mailapp.top +mailapps.online +mailapso.com +mailara.ml +mailarissa.ml +mailart.top +mailart.ws +mailasdkr.com +mailasdkr.net +mailautomated01.com +mailavi.ga +mailb.tk +mailback.com +mailbehance.info +mailbidon.com +mailbiz.biz +mailblocks.com +mailblog.biz +mailbonus.fr +mailbookstore.com +mailbosi.com +mailbox.blognet.in +mailbox.com.cn +mailbox.comx.cf +mailbox.in.ua +mailbox1.gdn +mailbox2go.de +mailbox52.ga +mailbox72.biz +mailbox80.biz +mailbox82.biz +mailbox87.de +mailbox92.biz +mailboxheaven.info +mailboxint.info +mailboxlife.net +mailboxok.club +mailboxonline.org +mailboxrental.org +mailboxt.com +mailboxt.net +mailboxvip.com +mailboxxx.net +mailboxy.fun +mailbrazilnet.space +mailbros1.info +mailbros2.info +mailbros3.info +mailbros4.info +mailbros5.info +mailbucket.org +mailbus.ml +mailbusstop.com +mailbyemail.com +mailbyus.com +mailc.cf +mailc.gq +mailc.tk +mailcard.net +mailcat.biz +mailcatch.com +mailcatch.xyz +mailcc.cf +mailcc.ga +mailcc.gq +mailcc.ml +mailcc.tk +mailcdn.ml +mailchimpreview.com +mailchop.com +mailcker.com +mailclient.com +mailclubonline.com +mailclubs.info +mailcom.cf +mailcom.ga +mailcom.gq +mailcom.ml +mailconect.info +mailconn.com +mailcool45.us +mailcupp.com +mailcx.cf +mailcx.ga +mailcx.gq +mailcx.ml +mailcx.tk +mailde.de +mailde.info +maildeluxehost.com +maildemon.bid +maildfga.com +maildgsp.com +maildomain.com +maildonna.space +maildot.xyz +maildrop.cc +maildrop.cf +maildrop.ga +maildrop.gq +maildrop.ml +maildu.de +maildump.tk +maildx.com +maile.com +maile2email.com +mailea.ml +maileater.com +mailed.in +mailed.ro +maileder.com +maileere.com +maileimer.de +mailelectronic.com +mailelix.space +maileme101.com +maileon.ml +maileonie.ml +mailer.makodon.com +mailer.net +mailer.onmypc.info +mailer2.cf +mailer2.ga +mailer2.net +mailer9.net +mailerforus.com +mailermails.info +mailernam.com +mailerowavc.com +mailerraas.com +mailerrtts.com +mailersend.ru +mailert.ru +mailerv.net +mailese.ga +mailetk.com +maileto.com +mailex.pw +mailexpire.com +maileze.net +mailezee.com +mailf5.com +mailfa.cf +mailfa.tk +mailfake.ga +mailfall.com +mailfasfe.com +mailfavorite.com +mailfile.net +mailfile.org +mailfirst.icu +mailfish.de +mailflix1.it.o-r.kr +mailfnmng.org +mailfob.com +mailforall.pl +mailformail.com +mailforspam.com +mailfort-a.com +mailforthemeak.info +mailforwarding.amsterdam +mailfree.ga +mailfree.gq +mailfree.ml +mailfreehosters.com +mailfreeonline.com +mailfromnitin.tk +mailfs.com +mailfs.tk +mailg.ml +mailgate.shop +mailgc.com +mailgen.biz +mailgen.club +mailgen.fun +mailgen.info +mailgen.pro +mailgen.pw +mailgen.xyz +mailginza.com +mailglobalnet.space +mailglobe.club +mailglobe.org +mailgokurort.ru +mailgoogle.com +mailgov.info +mailgrupobancolombia.online +mailguard.me +mailgui.pw +mailgutter.com +mailhaven.com +mailhazard.com +mailhazard.us +mailherber.com +mailhero.io +mailhex.com +mailhost.com +mailhost.top +mailhound.com +mailhub.online +mailhub.pro +mailhub.pw +mailhub.top +mailhub24.com +mailhubpros.com +mailhulk.info +mailhz.me +mailicon.info +mailimail.com +mailimails.patzleiner.net +mailimate.com +mailin8r.com +mailinatar.com +mailinater.com +mailinator.cf +mailinator.cl +mailinator.co +mailinator.co.uk +mailinator.com +mailinator.ga +mailinator.gq +mailinator.info +mailinator.linkpc.net +mailinator.ml +mailinator.net +mailinator.org +mailinator.pl +mailinator.site +mailinator.us +mailinator.usa.cc +mailinator0.com +mailinator1.com +mailinator2.com +mailinator2.net +mailinator3.com +mailinator4.com +mailinator5.com +mailinator6.com +mailinator7.com +mailinator8.com +mailinator9.com +mailinatorzz.mooo.com +mailinbox.cf +mailinbox.co +mailinbox.ga +mailinbox.gq +mailinbox.guru +mailinbox.ml +mailincubator.com +mailindexer.com +mailinfo8.pro +mailing.o-r.kr +mailing.one +mailing.serveblog.net +mailingclip.com +mailingforever.biz +mailinit.com +mailisa.ml +mailismagic.com +mailita.tk +mailivw.com +mailj.tk +mailjonny.org +mailjunk.cf +mailjunk.ga +mailjunk.gq +mailjunk.ml +mailjunk.tk +mailjuose.ga +mailkept.com +mailking.ru +mailkor.xyz +mailksders.com +mailkuatjku2.ga +mailkutusu.site +maillak.com +maillei.com +maillei.net +mailline.net +mailling.ru +maillink.in +maillink.info +maillink.live +maillink.top +maillist.in +mailllc.download +mailllc.top +mailloading.com +maillotdefoot.com +mailly.xyz +mailmail.biz +mailman.com +mailmassa.info +mailmate.com +mailme.gq +mailme.ir +mailme.judis.me +mailme.lv +mailme24.com +mailmeanyti.me +mailmedo.com +mailmefast.info +mailmeking.com +mailmerk.info +mailmetal.com +mailmetrash.com +mailmetrash.comilzilla.org +mailmink.com +mailmix.pl +mailmoat.com +mailmonster.bid +mailmonster.download +mailmonster.stream +mailmonster.top +mailmonster.trade +mailmoth.com +mailms.com +mailmu.ml +mailmuffta.info +mailmy.co.cc +mailmyrss.com +mailn.pl +mailn.tk +mailna.biz +mailna.co +mailna.in +mailna.me +mailna.us +mailnails.com +mailnator.com +mailnd7.com +mailnesia.com +mailnet.top +mailnetter.co.uk +mailnow2.com +mailnowapp.com +mailnull.com +mailo.cf +mailo.tk +mailon.ws +mailonaut.com +mailondandan.com +mailone.es.vu +mailontherail.net +mailonxh.pl +mailop7.com +mailor.com +mailorc.com +mailorderbrides4u.net +mailorderbridesreviews.com +mailorg.org +mailotta.ml +mailou.de +mailowanovaroc.com +mailowowo.com +mailox.biz +mailox.fun +mailpay.co.uk +mailperfetch.com +mailphar.com +mailpick.biz +mailpkc.com +mailplus.pl +mailpluss.com +mailpm.live +mailpooch.com +mailpoof.com +mailpost.comx.cf +mailpost.ga +mailpost.gq +mailpoubelle.yenoussa.fr +mailpremium.net +mailpress.gq +mailprm.com +mailprm.xyz +mailpro5.club +mailprohub.com +mailprotech.com +mailproxsy.com +mailpti.ga +mailpts.com +mailpuppet.tk +mailquack.com +mailr24.com +mailraccoon.com +mailrard01.ga +mailrazer.com +mailrc.biz +mailreds.com +mailref.net +mailrerrs.com +mailres.net +mailretor.com +mailretrer.com +mailrnl.com +mailrock.biz +mailrrpost.com +mailrunner.net +mails-24.net +mails-4-mails.bid +mails.com +mails4mails.bid +mailsac.cf +mailsac.com +mailsac.ga +mailsac.gq +mailsac.ml +mailsac.tk +mailsadf.com +mailsadf.net +mailsall.com +mailscdn.com +mailschain.com +mailscheap.us +mailscrap.com +mailsdfd.com +mailsdfd.net +mailsdfeer.com +mailsdfeer.net +mailsdfsdf.com +mailsdfsdf.net +mailsdrop.fun +mailseal.de +mailsearch.net +mailsecv.com +mailseo.net +mailserv95.com +mailserver.bid +mailserver.men +mailserver2.cf +mailserver2.ga +mailserver2.ml +mailserver2.tk +mailserver89.com +mailserviceforfree.info +mailseverywhere.net +mailshell.com +mailshiv.com +mailshiv.me +mailsinabox.bid +mailsinabox.info +mailsinthebox.co +mailsiphon.com +mailsister1.info +mailsister2.info +mailsister3.info +mailsister4.info +mailsister5.info +mailslapping.com +mailslite.com +mailsmart.info +mailsnails.com +mailsnike.xyz +mailsor.com +mailsoul.com +mailsource.info +mailspam.me +mailspam.xyz +mailspeed.ru +mailspirit.info +mailspro.net +mailspru.cz.cc +mailsrv.ru +mailssa5.com +mailssa6.com +mailssents.com +mailstudio.tech +mailsuckbro.cf +mailsuckbro.ga +mailsuckbro.gq +mailsuckbro.ml +mailsuckbro.tk +mailsuckbrother.cf +mailsuckbrother.ga +mailsuckbrother.gq +mailsuckbrother.ml +mailsuckbrother.tk +mailsucker.net +mailsucker1.cf +mailsucker1.ga +mailsucker1.gq +mailsucker1.ml +mailsucker1.tk +mailsucker11.cf +mailsucker11.ga +mailsucker11.gq +mailsucker11.ml +mailsucker11.tk +mailsucker14.cf +mailsucker14.ga +mailsucker14.gq +mailsucker14.ml +mailsucker14.tk +mailsucker2.cf +mailsucker2.ga +mailsucker2.gq +mailsucker2.ml +mailsucker2.tk +mailsucker34.cf +mailsucker34.ga +mailsucker34.gq +mailsucker34.ml +mailsucker34.tk +mailsup.net +mailsuppress.com +mailsy.top +mailsys.site +mailt.net +mailt.top +mailtanpakaudisini.com +mailtechx.com +mailtemp.info +mailtemp.net +mailtemp.org +mailtemp1123.ml +mailtempmha.tk +mailtemporaire.com +mailtemporaire.fr +mailthunder.ml +mailtimail.co.tv +mailtime.com +mailtmk.com +mailto.plus +mailtod.com +mailtome.de +mailtomeinfo.info +mailtop.ga +mailtothis.com +mailtoyou.top +mailtraps.com +mailtrash.net +mailtrix.net +mailtv.net +mailtv.tv +mailu.cf +mailu.gq +mailu.ml +mailucy.ml +mailuisa.ml +mailur.com +mailusa.tech +mailusivip.xyz +mailverificationupdate.xyz +mailviwav.tk +mailvk.net +mailvxin.com +mailvxin.net +mailw.cf +mailw.ga +mailw.gq +mailw.info +mailw.ml +mailw.tk +mailwebsite.info +mailwithyou.com +mailwriting.com +mailxtr.eu +mailxx.cf +mailxx.gq +mailyes.co.cc +mailymail.co.cc +mailyouspacce.net +mailz.info +mailz.info.tm +mailzen.win +mailzi.ru +mailzilla.com +mailzilla.org +mailzilla.orgmbx.cc +mailzinoit.com +mailzxc.pl +maimare.site +maimobis.com +main-release.com +main-tube.com +maindomino88.com +mainegotrain.com +mainely-dogs.com +mainequote.com +mainerfolg.info +maineyoutube.com +mainkartuonline.live +mainketoportal.com +mainlandortho.com +mainlinehosting.net +mainmacio.com +mainmait.shop +mainpasaran88.net +mainphenom.com +mainphp.cf +mainphp.ga +mainphp.gq +mainphp.ml +mainpkv.com +mainpokemon.com +mainpokerv.net +mainprise.site +mainsportss.com +mainstreethost.company +mainstreetprivacy.us +mainsydney.com +maintainintegrity.com +maiqing-yule.com +mairecipes.com +maisdeliveryapp.com +maisieaustin.buzz +maisinternet.com +maisldka.site +maisondesjeux.com +maisonoud.com +maissmartwatch.com +maisvolume.space +maiu.tk +majdsyria.com +majiango.com +majiidxchangee.com +majminhouse.com +majnmail.pl +majolicas.best +major-jobs.com +major-print.com +major.clarized.com +major1688.com +majoralbu.recipes +majorbleeding.online +majorcaholidayhouse.com +majorexil.xyz +majorfans.zone +majorleaguemail.com +majorleaguestore.com +majorminormedia.us +majorspukvw.email +majorstea.buzz +majorsww.com +majortv.best +majortv.club +majostores.site +makaet.site +makapay.online +makasarpost.cf +make-bootable-disks.com +makeacase.com +makeaim.ru +makebigmoneybro.ru +makebootabledisk.com +makedates.ru +makedon-nedv.ru +makefriends.ru +makeitdiy.ru +makeiteasy.ml +makelifebetter.blog +makemebettr.site +makemenaughty.club +makemer.ru +makemetheking.com +makemind.ru +makemoney.com +makemoneyscams.org +makemycourier.com +makemydisk.com +makepleasure.club +makeplugin.com +makerains.tk +makerinist.com +makersxq.com +makeshopping.pp.ua +maket-saita.ru +makethebadmanstop.com +makethebadmanstop.org +makethosememories.com +makeunrao.com +makeupaccessories.company +makeupbali.com +makeupduel.com +makeupkiller.website +makeupreviews.info +makeupshop.live +makeuseofoffers.com +makiartist.com +makimeore.com +makinadigital.com +makingamericabetterthanever.com +makingamericabetterthanever.org +makingbharat.com +makingfreebasecocaine.in +makingmichigan.org +makinlabels.online +makita-max.com +makita-profi.store +makkahimages.com +makkan-auto.ru +makmadness.info +makomalls.site +makotamarketing.com +makov-ml.ru +makresta.ru +makrobet84.club +maks.com +maksap.com +maksatbahis3.com +maksimumprodazh.ru +maksymkrippa.com +maktabatna.com +maktwb.net +makumba.justdied.com +makvik.ru +makyn.ml +mal-mal.ru +mal3ab.online +malagaapparel.com +malahov.de +malaizy-nedv.ru +malakies.tk +malamutepuppies.org +malapo.ovh +malarenorrkoping.se +malaria.asia +malaria.desi +malarkaikani.com +malarz-mieszkaniowy.pl +malarz-remonciarz.pl +malarz-remonty-warszawa.pl +malarz-remonty.pl +malarzmieszkaniowy.pl +malatyagenclikmeclisi.com +malatyaprefabrikyapi.xyz +malatyaticaretrehberi.xyz +malawiorphancare.org +malayalamdtp.com +malayaleaf.com +malaysianrealty.com +malaysiatour.info +malboxe.com +malchikzer.cf +malchikzer.gq +malcolmdriling.com +maldimix.com +maldives-holiday-package.com +maldiveshotelguide.com +maldivesimage.com +maldonado-clientes.online +maldonadomail.men +maldonadopro.com +maldonfilmclub.info +male-pillsrx.info +malecigarettestore.net +maleckigastro.com +maleenhancement.club +maleenhancement24.net +malegirl.com +malelanesatellitecamp.com +malemjumat.fun +malemjumat.live +malenalife.com +maletraveller.com +mali-nedv.ru +maliberty.com +malibubright.org +malibucoding.com +malicious.today +maliesed.com +maliesedau.com +maliesedauaq.com +malinagames.ru +malinator.com +malinger.org +malishlandiya.ru +maliya520.xyz +maliya522.xyz +maliyetineambalaj.online +maliyetineambalaj.xyz +mall.tko.co.kr +mallardpay.com +mallbaricadeprotection.tech +mallfamily.ru +mallinator.com +mallinco.com +malloryecunningham.com +malloryecunninghamlaw.com +mallpassim.com +mallyeah.com +malomies.com +malomiesed.com +malovay.site +malove.site +malpracticeboard.com +malrekel.ga +malrekel.gq +malrekel.tk +malta-nedv.ru +maltacentralbank.org +maltacp.com +maltepeingilizcekurslari.com +maltepelisesi.xyz +maltiy.space +maltsev2018.ru +malurl.com +malvolion.com +malware.icu +malwarehub.org +mam-pap.ru +mama-bag-sochi.ru +mama.com +mama11mart.com +mamadoma.net +mamail.cf +mamail.com +mamajitu.net +mamajitu.org +mamak-cork.com +mamalenta.ru +mamamintaemail.com +mamaumki.ru +mamba.ru +mambanalibre.xyz +mambaru.in +mamber.net +mami000.com +mami999.net +mamin-shop.ru +mamisa.shop +mamkinarbuzer.cf +mamkinarbuzer.ga +mamkinarbuzer.gq +mamkinarbuzer.ml +mamkinarbuzer.tk +mamkinrazboinik.cf +mamkinrazboinik.ga +mamkinrazboinik.gq +mamkinrazboinik.ml +mammothexploration.com +mammybagmoscow.ru +mamsoil.com +mamsy-bags.ru +mamu786.xyz +mamulenok.ru +mamulyam.ru +mamway.ru +man-day-for-you.website +man-or-machine.com +man580.com +man675.com +man683.com +man752.com +man909.com +mana-jp.com +manabisagan.com +manadotogel.net +manage-11.com +manage-page.com +managedu.ru +managelaw.ru +managementinstruction.buzz +managements.best +managerpayservice.club +manam.ru +mananal.com +manantial20.mx +manantialwatermx2.com.mx +manaritiplumbing.com +manatelugupaatalu.com +manatialagua.com.mx +manatialxm.com.mx +manavgatkaymakamligi.xyz +manavgatx.xyz +manbetx.ltd +manbetxsff.com +manbetxyzn.com +manbk.site +manblog.com +manbox.site +manchesterboy.com +mandalabet.net +mandalajp.net +mandalapoker.net +mandalatogel.xyz +mandalorian.info +mandarin-house-rathcoole.com +mandarincastle.com +mandarinhouserathcoole.com +manderich.com +mandibuliform.best +mandirihoki188.net +mandirimutupratama.com +mandorqq.com +mandownle.cf +mandownle.ga +mandownle.gq +mandownle.tk +mandraghen.cf +mandua.best +manduxx.info +mandyfairy.com +mandygranger.com +mandynmore.com +mandysayer.com +manekicasino2.com +manekicasino3.com +manekicasino5.com +manekicasino7.com +manekicasino8.com +manekicasino9.com +manepa.xyz +manetormonet.com +manf.site +manfgo.com +manga8.com +mangablog.com +mangago.ru +mangagoku.com +mangakun.net +mangbongda.biz +mangbongda.site +mangbongda.tech +mangbongda.xyz +mangbongda.zone +mangiamediterraneo.club +mangohik.xyz +mangokurdu.xyz +mangonet.shop +mangopro.site +mangovision.com +mangtinnhanh.com +mangulaas.eu +mania-qq.website +mania99.org +maniabola.info +maniabola.org +maniabola.website +maniabola365.com +manialiga.global +maniaqq.global +maniashrinepatch.site +manic-adas.ru +manic20.site +manifestgenerator.com +manifestqld.com +manigraavertu.ru +manikot.info +maninblacktequila.com +manipurbjp.org +manisabelediyesi.xyz +manisagunlukkiralikdaire.xyz +manisalilardernegi.com +manisalilardernegi.xyz +manisancikyon.com +maniskata.online +manivsem.ru +mankyrecords.com +manly.app +manlysurftv.com +manm.site +manmancao3.com +manna-haus.org +mannbdinfo.org +mannerladies.com +manningaffordability.com +manningvalleyrifleclub.online +mannitol.net +mannnwii.site +mannogem.com +mannogem.net +manocong.cf +manocong.ga +manocong.gq +manocong.ml +manocong.tk +manogat.news +manogat.online +manogifts.com +manolis.co +manor-motel.net +manp.site +manq.site +manqoba.com +manr.site +mansetbet.com +mansilverinsdier.com +mansion4d.net +mansion4d.org +mansiondev.com +mansione.site +mansmarts.com +mansonusa.com +mansosolascos.com +mansouracity.com +mantap.com +mantestosterone.com +mantra.ventures +mantragro.com +mantrasindian.com +manualace.online +manualace.site +manualame.site +manualand.site +manualandguides.site +manualans.online +manualans.site +manualant.online +manualant.site +manualany.online +manualany.site +manualar.online +manualar.site +manualard.online +manualard.site +manualare.online +manualare.site +manualars.site +manualart.site +manualary.site +manualast.site +manualate.site +manualave.site +manualber.site +manualbet.site +manualcal.site +manualcan.site +manualced.site +manualces.site +manualded.site +manualder.site +manualdes.site +manualead.site +manualean.site +manualear.site +manualeas.site +manualeat.site +manualect.site +manualed.online +manualed.site +manualeir.site +manualely.site +manualend.site +manualent.site +manualere.site +manualern.site +manualers.site +manualery.site +manuales.site +manualese.site +manualess.site +manualest.site +manualformy.fun +manualformy.online +manualformy.site +manualformy.space +manualformy.website +manualged.site +manualges.site +manualgon.site +manualhan.site +manualhat.site +manualhed.site +manualhen.site +manualher.site +manualhey.site +manualhin.site +manualhis.site +manualial.site +manualian.site +manualic.online +manualic.site +manualid.online +manualid.site +manually.online +manually.site +manualso.online +manualso.site +manubrium.site +manueljager.online +manufcaturamc.com +manuka.com +manumail.club +manun.site +manv.site +manw.site +manwithwheels.icu +manxapp2.com +manxapp3.com +many-slots.ru +manybat.ru +manybrain.com +manycrow.ru +manyhaywire.com +manyhod.space +manyirka.ru +manyme.com +manymenofthewild.com +manymilk.ru +manymom.ru +manypics.site +manyriver.ru +manystorybooks.com +manytan364.cf +manytan364.ga +manytan364.gq +manytan364.ml +manytan364.tk +manyvids.app +manywave.com +manzmail.online +manzoox.com +mao.igg.biz +mao.services +maoaed.site +maobohe.com +maocloud.world +maokai-lin.com +maokeba.com +maomaocheng.com +map-academy.net +map-academy.org +map-us.info +mapa-polskii.pl +mapadeavellaneda.com +mapadebuenosaires.com +mapadeconocimiento.info +mapadels.info +mapadeonce.com +mapamayas.info +mapark.website +mapaspromocionales.com +mapfnetpa.gq +mapfnetpa.ml +mapfnetpa.tk +maphic.site +mapigraavertu.ru +mapleemail.com +mapname.com +mapnamrc.org +mapol.ru +mapolace.xyz +mappys.club +mapq.us +mapquesttab.com +maprealty.capital +maprealty.net +mapsable.com +mapsjos.net +mapsjos1.net +mapsjos2.net +mapsjos3.net +mapsmarketing.com +mapspagesy.info +mapyatirim.com +mapycyfrowe-bydgoszcz.pl +maqus-opl.best +mara.jessica.webmailious.top +marabalan.cf +marabalan.ga +marafonbetru110.ru +marafonhudeiki.ru +marallgel.website +maraphonebet.com +marasanov.ru +marasciofamily.com +marastesbih.com +marataba.org +maratabagamereserve.com +marathifacebook.icu +marathon-des-erables.com +marathon-in.ru +marathon-official.ru +marathon.cash +marathonbet-inn.ru +marathonbet.tj +marathonguru.win +marathonkit.com +marawa.africa +marbau-hydro.pl +marbleorbmail.bid +marcachis.info +marcbymarcjacobsjapan.com +marcela26.com +marcela99.com +marceneiro.website +marchmarditc.cf +marchmarditc.gq +marchmarditc.tk +marchmovo.com +marchodler.com +marcinleskiewicz.com +marciszewski.pl +marcjacobshandbags.info +marcospecpinball.com +marcostens.info +marcoy.website +marcpfitzer.com +marcsplaza.com +marcusamps.ru +marcuswarner.com +mardanataqat.com +mardihard.com +mardincafem.xyz +mardinface.online +mardinvitrini.com +mareczkowy.pl +marektplace.site +mareno.net +maret-genkzmail.ga +marezindex.com +marfa-lago.com +marfito.gq +marfito.ml +margaretanna.com +margaretesterdijk.xyz +margaretmerrifield.com +margarette1818.site +margaritaraces.com +margeguzellik.net +marginalmom.com +marginsy.com +margocopy.ru +margolotta4.pl +margolotta5.pl +margolotta6.pl +margust.ru +marhakxjaytyx8.site +marhendte.cf +marhendte.ml +marhendte.tk +mariagestore.com +mariahtoto.biz +marialarssonsevigaogonblick.se +marianhouse.co +marianmc.com +mariannehallberg.se +marianpissaridi.com +mariasbox.com +marib5ethmay.ga +maribli.com +maricher.xyz +maricrisgarciaonline.com +maridoexpress.com +mariebyrdland.us +marieke-mulder.online +mariela1121.club +marielhouse.co +marihow.ga +marihow.gq +marihow.ml +marihow.tk +mariinskiytheater.ru +marijuana-delight.com +marijuana-delight.info +marijuana-delight.net +marijuanafertilizer.organic +marijuananews.xyz +marikacarlsson.se +marikkwigmans.xyz +marimalina.website +marimari.website +marimastu98huye.cf +marimastu98huye.gq +marimbagun.com +marimbahq.com +marimbamassage.com +marimbamassagegun.com +marimbamassager.com +marimbashop.com +marinad.org +marinajohn.org +marinamilitareshop.com +marinanhatrangbay.net +marinapirozhkova.ru +marinaprecision.com +marinarlism.com +marinax.net +marinebrush.com +marinebrush.net +marinebrush.org +marinebrush.us +marinebrushes.net +marinebrushes.us +marinepaintbrush.biz +marinepaintbrush.org +marinepaintbrush.us +marinepaintbrushes.biz +marinepaintbrushes.com +marinepaintbrushes.net +marinerscc.com +marinhood.com +marioads.xyz +marioandsons-monkstown.com +mariomaker.tech +maripottery.com +marisolsellshouses.com +marissasbunny.com +maritimeglossary.com +mariusblack.net +marizing.com +mark-compressoren.ru +mark-sanchez2011.info +mark234.info +markabettv1.com +market-beatz.ru +market-csgotm.fun +market-map.ru +market-open-trade.site +market177.ru +market2018-77.ru +market4play.ru +marketabot.com +marketbard.com +marketconow.com +marketfinances.xyz +markethealthreviews.info +marketing-commerce-retail.site +marketing-formula-inform.ru +marketing-new-info.ru +marketing4karting.com +marketingagency.net +marketingagency.tips +marketingcoursesusa.com +marketingeffekt.de +marketingforpastors.com +marketingi.org +marketingondigital.info +marketingperformma.com +marketingsecretsapp.com +marketingsolutions.info +marketingsummit.online +marketingtheory.club +marketintelligencesystems.live +marketlance.com +marketlink.info +marketpad.net +marketplace-lab.com +marketplaceloans.xyz +marketplacemuzza.com +marketplaceselector.com +marketpro.site +marketprofilescanner.net +marketsinitiative.org +marketspacepro.com +markettechno.ru +markherringshaw.com +markhoag.net +markhornsby.org +markhutchins.info +markinternet.co.uk +markinv.ru +markissundsvall.se +markmail.site +markmurfin.com +markonedesign.info +markopinball.info +markopinball.org +markperryrealtor.com +markreturn.top +marksave.com +marksearcher.com +markthemann.net +markuscerenak.net +markuschkamei.xyz +markvangossum.space +marlboro-ez-cigarettes.com +marlboroughdentists.com +marlisapunzalanofficial.com +marloni.com.pl +marmail.club +marmaladis.ru +marmaratasev.xyz +marmaryta.com +marmaryta.email +marmaryta.life +marmaryta.space +marmitasfitlucrativas.com +marmotmedia.com +marnari.ga +marocpro.email +maroneymedia.com +maroonecho.com +maroonsea.com +marquesos.com +marquissevenhillshenderson.com +marrakech-airport.com +marresa.cf +marresa.ml +marresa.tk +marriageapplaud.buzz +marriagecounseling.tech +marriagedate.net +marriageguide.org +marriageisamarathon.org +marriedchat.co.uk +marrkt.sale +marrocomail.gdn +marromeunationalreserve.com +marrone.cf +marryznakomstv.ru +mars-bet.com +mars-bet.net +marsbahisuyelik.com +marsbahisyeniadres.com +marsbet.biz +marsbet.info +marsbet.net +marsbet.org +marsbetting.com +marschinesetakeaway.com +marseillemetropoleaudacieuse.biz +marseillemetropoleaudacieuse.info +marseillemetropoleaudacieuse.net +marseillesoap.net +marseillesoap.us +marsellas-takeaway.com +marsellasrathcoole.com +marsellastakeaway.com +marsellastraditionaltakeaway.com +marshahickeydds.com +marshalheadphones.com +marshallheadphone.com +marshch.icu +marshche.xyz +marshl.ru +marshord.icu +marshpr.xyz +marshpri.xyz +marshwatc.buzz +marsmecar.cf +marsmecar.ga +marsmecar.gq +marsmecar.ml +marsmecar.tk +marsoasis.org +marstore.site +marstur.com +marsuniversity.com +mart-hit-real.site +mart-nsk.ru +mart-trade-zero.ru +mart.monster +martamccue.biz +martasarimat.club +martech-a2z.xyz +martelli.shoes +marthaloans.co.uk +martiallist.com +martin.securehost.com.es +martin1minley2.com +martincondosvegas.com +martinesg.com +martinmarch.shop +martinocreative.com +martinopodcasts.com +martinoscabinteely.com +martinospodcast.com +martlet.site +martynakubiak.com +martystahl.com +martyvole.ml +marukushino.co.jp +marumaru.live +marumaru2.com +marun.shop +maruti365.bet +marutv.fun +marutv7.fun +marutv8.fun +marutv9.fun +marvelpress.com +marvinlee.com +marvinlee.net +marvinoka.com +marwelax.com +marwellhard.cf +marwellhard.ga +marwellhard.gq +marwellhard.tk +marxistlibrary.com +mary.organic +maryandmikebiz.com +maryanncassidy.com +marybethouse.co +maryjanehq.com +maryjanehq.info +maryjanehq.net +marylacmzh.club +marylacmzh.site +marylacmzh.space +marylacmzh.website +marylandadoption.org +marylandbbc.com +marylandbookkeeping.com +marylandpropertyfinders.com +marylandquote.com +marylandwind.org +maryscaccia.com +maryscake.ru +maryvallely55places.com +mas-omkia.ru +mas1red.pro +mas90help.com +masafatmarathon.com +masafiagrofood.com +masafigroupbd.com +masaindah.online +masala-twist-trim.com +masasih.loan +mascarenha.com +mascarenhaspro.com +maschinodance.com +mascpottho.ga +mascpottho.gq +mascpottho.ml +mascpottho.tk +masd.pro +masdihoo.cf +masdihoo.ga +masdihoo.gq +masdihoo.tk +masdo88.top +masdtgv2.cf +masdtgv2.ml +masdtgv2.tk +maserathe.ml +maserderas.ga +mashasemenenko.art +mashhosting.shop +mashkrush.info +mashy.com +masihingat.xyz +masikmama.ru +masivepic.com +mask-cledbel.ru +mask03.ru +maskads.xyz +maskbistsmar.cf +maskbistsmar.ga +maskbistsmar.gq +maskbistsmar.ml +maskbistsmar.tk +maskedmails.com +maskedsingerbingo.com +maskedsingercasino.com +maskedsingergames.com +maskedsingerslot.com +maskeliarmut.ml +maskelimaymun.ga +maskelimaymun.ml +maskercorona.online +maskercorona.space +maskgamenew.ru +maski-russia-shop.ru +maski-shop-russia.ru +maskitop.cf +maskmail.net +masks-muzik.ru +maskstore.world +maslicov.biz +maslokkd.gq +masmavis.cf +masmavis.ga +masmavis.tk +masok.lflinkup.com +masoncity-iowa.com +masoneriavalencia.org +masongazard.com +masonhussain.buzz +masonic.tech +masonicslot.com +masonline.info +masonryky.com +masonryservicesatokatn.com +maspay.ru +masrku.online +massachusettsadobe.com +massachusettsroofingrepair.com +massage-cleopatra.ru +massage-top.site +massage2.ru +massageinsurancequote.com +massagenerdshow.com +massageplanner.com +massagepraktijkmiranda.com +massager-tpgun.ru +massagetherapyonline.biz +massagetissue.com +massazh73.ru +massazhistki-40.com +massazhistki-50.com +massazhistki-na-dom.com +masseffect1weightloss.world +masseymail.men +masshook.us +massiftours.com +massiftrails.com +massiveemotions.com +massivemalee.best +massmedios.ru +masspoller.ru +massrewardgiveaway.gq +masssky.com +masstoly.ru +massyacquaintpecan.site +mastahype.net +mastds.ru +mastella.com +master-crm.ru +master-mail.net +master-mind.site +master-start61.ru +master.cd +master495.ru +masteravto777.ru +masterbuiltoutlet.com +masterbuiltoutlet.info +masterbuiltoutlet.net +masterbuiltoutlet.org +masterbyrne.com +mastercard-3d.cf +masterclassediting.com +masterclassretreat.com +mastercodeteam.tech +masterdominoqq.win +masterfori.com +masterfriend.online +masterfrioequipamentos.com +mastergardens.org +masterjudionline.com +masterkudrovo.ru +masterlightingcourse.com +mastermail24.gq +mastermine.website +mastermoneygame.com +mastermoolah.com +masternv.ru +masterofwarcraft.net +masterqiu9.com +masterscollectionvegas.com +mastersduel.com +masterslime.ru +mastersoka.ru +mastersuniversitaris.com +masterur.xyz +masterwallact.com +masterwallnsw.com +masterwallnt.com +masterwallsa.com +masterwish.com +masteryjsut.com +mastihy.party +masto.link +masturbates-to.men +masuk.shop +masukbosku88.com +maswae.world +maszynkiwaw.pl +maszyny-rolnicze.net.pl +mataharipoker.info +mataikan.club +matamuasu.cf +matamuasu.ga +matamuasu.gq +matamuasu.ml +matanyashope.com +match365.soccer +match365.us +matchcomputersspot.club +matchdir.xyz +matchdoug.space +matchen.direct +matchendirect.cloud +matchgloo.xyz +matchlessrecordings.org +matchlitha.cf +matchlitha.gq +matchlitha.ml +matchlitha.tk +matchpol.net +matchsingles2.us +matchsingles7.us +matchsingles8.us +matchsingles9.us +matchstickball.info +matchsticktown.com +matchthe.icu +matchtvonline.ru +matchup.site +matcjesfashion.com +matenow.site +matepay.space +mateplays.xyz +materi.website +materiali.ml +materialos.com +materialshop.net +maternidadenaintegra.com +maters968ba.xyz +mateustech.com +math135-tutors.biz +mathews.com +mathiepottery.com +mathleaf.com +mathslowsso.cf +mathslowsso.ga +mathslowsso.gq +mathslowsso.ml +matildadahlquist.se +matildaj.se +matinvp.xyz +matmee.net +matobonationalpark.com +matogeinou.biz +matoji.info +matra.site +matra.top +matriv.hu +matrix-istanbul.xyz +matrix-project.ru +matrix.gallery +matrixtechlab.com +matrixyourreality.com +matseborg.cf +matseborg.ga +matseborg.ml +matseborg.tk +matsuo.institute +matt-salesforce.com +mattbob.info +mattbrock.com +mattersjf8.com +mattersofaging.com +matthenry.name +matthewguy.info +matthewmagellan.com +matthewservices.com +matthewsheets.com +matthewsnow.org +matthorner.com +matti.life +mattmason.xyz +mattmcguire.org +mattpiercey.com +mattress-mattress-usa.com +mattschifrin.com +mattwoodrealty.com +matuisi.ru +maturejob.xyz +maturejoy.xyz +maturemovie.info +matureprofiles.com +maturevirgin.club +matydezynfekcyjne.com.pl +matzan-fried.com +matzxcv.org +mauiland.net +maumeehomesforsale.net +mauo.xyz +mauricegleiser.com +mauriciobento.top +mauriss.xyz +mauritzujn.space +maurya.ml +maverickcreativegroup.org +maverickprocessing.net +mavi-serum.online +mavibebegim.com +mavicmini.shop +maviorjinal.xyz +mavisacsuyu.xyz +mavoyancegratuite.org +mavriki-nedv.ru +mavsbball.com +mavx.us +mawaidha.info +mawpinkow.konin.pl +mawrkn.us +max-adv.pl +max-clr.pro +max-direct.com +max-gta.ru +max-loto.ru +max-mail.com +max-mail.info +max-mail.org +max-mirnyi.com +max2ern.pro +max2hey.pro +max2new.pro +max300fps.ru +max3eu.pro +max3kz.pro +max3new.pro +max4kz.pro +max4p.pro +max66.live +max7.site +max88.club +max99.xyz +maxbeautyhair.com +maxbet-cazino.website +maxbetslots-zerkalo.ru +maxbetspinz.co +maxcasi.xyz +maxcelebration.com +maxclo4r.pro +maxcloer.pro +maxclr.pro +maxcreditratings.com +maxcro.com +maxdatamail.com +maxedoutgamers.com +maxflo.com +maxgate.org +maxheym.pro +maxho.ru +maxi-shop1.ru +maxi.capital +maxi2erld.pro +maxi2eurb.pro +maxi2kz.pro +maxi2ro.pro +maxi3kz.pro +maxi3ro.pro +maxi4erld.pro +maxi5kz.pro +maxi6kz.pro +maxicapital.ru +maximalbonus.de +maximilo.com +maximisereservices.com +maximiserindia.com +maximiserservices.com +maximiz4r.pro +maximizat-mp.pro +maximizat2k.pro +maximizat4n.pro +maximizator4k.pro +maximizatormp.pro +maximizelinks.com +maximizer-mega.pro +maximizer-ru.world +maximizer-top.pro +maximizer988vp.online +maximizk.pro +maximizzat4n.pro +maximloginov.net +maximum10review.com +maximumbahis70.com +maximumoutdoors.net +maximus-maynooth.com +maximyz4r.pro +maxinim.ru +maxiro1.pro +maxivern.com +maxiyoyo.com +maxkk.pro +maxlder.pro +maxmail.in +maxmail.info +maxmara.cd +maxmindeducation.com +maxmyprivacy.org +maxnetflix.host +maxnfl.com +maxon2.ga +maxp.pro +maxpanel.id +maxpedia.ro +maxprice.co +maxprof4ru.pro +maxrevues.info +maxrollspins.co +maxsize.online +maxstylehome.com +maxtommy-ra.ru +maxtoy3d.club +maxwowm.pro +maxxdeals.info +maxxdrv.ru +maxxeu.world +maxzhong.com +may-bk.org +may17kural.net +mayaaaa.cf +mayaaaa.ga +mayaaaa.gq +mayaaaa.ml +mayaaaa.tk +mayantrainmap.com +mayatv.org +mayba.live +maybaoholaodong.net +maybe.eu +maybe.host +maybeauty.be +maybeitworks.com +maybelike.com +maybeuploads.info +maycatherenhat.com +maycumbtib.cf +maycumbtib.ga +maycumbtib.ml +maycumbtib.tk +maydayconception.com +maydaytheconception.com +maydongphucdep.org +mayerman.ru +mayersmith.info +mayeshomeinvestors.com +mayflowerchristianschool.org +maygiuxecamtay.com +mayhannahs.info +mayhutbuiquangngai.com +mayimed.com +maykhumui-markel.xyz +maymetalfest.info +maymovo.com +mayoralo.press +mayorfl.xyz +mayorho.icu +mayorpoker.net +mayorvaughnspencer.com +mayorwago.xyz +mayposre.cf +mayposre.ga +mayposre.gq +mayposre.ml +mayposre.tk +maysipo.gq +maysunsaluki.com +maytree.ru +maz-gaminas.ru +maz-ot-psoriaza.ru +mazadaa.com +mazaeff.ru +mazaevka.ru +mazda-6.club +mazdasa.site +mb3boxers.com +mb69.cf +mb69.ga +mb69.gq +mb69.ml +mb69.tk +mb7y5hkrof.cf +mb7y5hkrof.ga +mb7y5hkrof.gq +mb7y5hkrof.ml +mb7y5hkrof.tk +mba-virgin.com +mbacolleges.info +mbadicole.info +mbahtekno.net +mbangilan.ga +mbap.ml +mbavu.live +mbccn.org +mbclub.org +mbconsult.online +mbdnsmail.mooo.com +mbe.kr +mbeki.ru +mbets.ru +mbetxapp1.com +mbetxapp3.com +mbetxapp4.com +mbf8ny.online +mbfc6ynhc0a.cf +mbfc6ynhc0a.ga +mbfc6ynhc0a.gq +mbfc6ynhc0a.ml +mbfc6ynhc0a.tk +mbitcasino1.com +mbknz.com +mblkml.monster +mblkml.xyz +mblo.us +mblsglobal.com +mbmraq.com +mboarhndhalfd1o.xyz +mboled.ml +mbox.re +mbpro2.xyz +mbroundhouseaquarium.org +mbstoto.biz +mbt-shoeshq.com +mbt01.cf +mbt01.ga +mbt01.gq +mbt01.ml +mbtech.id +mbtjpjp.com +mbtsalesnow.com +mbtshoeclearancesale.com +mbtshoes-buy.com +mbtshoes-z.com +mbtshoes32.com +mbtshoesbetter.com +mbtshoesclear.com +mbtshoesclearancehq.com +mbtshoesdepot.co.uk +mbtshoesfinder.com +mbtshoeslive.com +mbtshoesmallhq.com +mbtshoeson-deal.com +mbtshoesondeal.co.uk +mbtshoesonline-clearance.net +mbtshoespod.com +mbtshoessellbest.com +mbtshoeswarehouse.com +mbu42c.com +mbuhragagas.com +mbuluzigamereserve.com +mbutm4xjem.ga +mbuy-cheap.ru +mbvgook.com +mbvn.us +mbwedong.ru +mbx.cc +mbx80.com +mbzl.xyz +mc-17.com +mc-flowers.ru +mc-freedom.net +mc-ij2frasww-ettg.com +mc-s789-nuyyug.com +mc-sale.ru +mc28.club +mc32.club +mc33.club +mc36.club +mc43.club +mc45.club +mc8xbx5m65trpt3gs.ga +mc8xbx5m65trpt3gs.ml +mc8xbx5m65trpt3gs.tk +mcache.net +mcapsa.com +mcarnandgift.cf +mcarnandgift.ga +mcarnandgift.gq +mcarnandgift.ml +mcb1w.be +mcb64dfwtw.cf +mcb64dfwtw.ga +mcb64dfwtw.gq +mcb64dfwtw.ml +mcb64dfwtw.tk +mcbafrho.shop +mcbslqxtf.pl +mcc-gsd.org +mccarrol.best +mccee.org +mccklebox.com +mccluremail.bid +mccz.us +mcde.com +mcde1.com +mcdonald.cf +mcdonald.gq +mcdoudounefemmefr.com +mcelderry.eu +mcelderryrodiquez.eu +mcfashion.online +mcfire.online +mcginnissolutions.com +mcgratte.com +mcgvau.shop +mchurchapp.com +mchyper.com +mciek.com +mcjassenonlinenl.com +mcjazz.pl +mckaymail.bid +mckenze.com +mckenzieworldwide.net +mckinleymail.net +mckinneycaraccidentattorney.com +mckinneypersonalinjurylawyers.com +mckinseygovernmentandtheopposite.vision +mckjotaelectronics.com +mcklinkyblog.com +mclegends.ru +mclipha.com +mclub-test.com +mcm.dev +mcmbulgaria.info +mcmillansmith.com +mcmmobile.co.uk +mcmullenhomes.app +mcoff.pro +mcoi.us +mcoin-ex.net +mcoin-ex.org +mcoin-mmm.net +mcoinex.net +mcoll-original.com +mcout.online +mcpego.ru +mcplay.shop +mcpt.online +mcsa-examprep.com +mcsafedata.com +mcsoh.org +mctanalytics.net +mctcoding.com +mcthomaslaw.com +mctware.com +mcudj.us +mcvip.es +mcwanerd.com +mcya.info +mcyq.us +mcytaooo0099-0.com +mcyvkf6y7.pl +md-thinking.com +md0009.com +md2ngb.info +md5hashing.net +md7eh7bao.pl +mdaiac.org +mdaix.us +mdbr6a.host +mdd100.com +mddatabank.com +mddwgs.mil.pl +mdfoj0.info +mdfwg.site +mdfwg.space +mdfworldgroup.com +mdfworldgroup.fun +mdfworldgroup.net +mdfworldgroup.online +mdfworldgroup.site +mdfworldgroup.space +mdgmk.com +mdhalfpricedlisting.com +mdhalfpricedlistings.com +mdhalfpricelistings.com +mdhc.tk +mdissue.com +mdjwuw.com +mdk5yi.us +mdl90.xyz +mdoe.de +mdozdqrto.shop +mdpc.de +mdr188togel.net +mdregistry.com +mdriver.site +mdstakeaway.com +mdt.creo.site +mdtk.us +mdtqqtuszuqutqu.ru +mdu.edu.rs +mdut.us +mdwo.com +mdz39f-mail.xyz +mdzcl1.site +me-angel.net +me2.cuteboyo.com +me22anysnkeij.xyz +me2ikakkrn.xyz +me2view.com +meachi.site +meachlekorskicks.com +meadiamonds.com +meadowbrookwaunakee.net +meadowlarkonline.com +meadowsdelmarsd.com +meadowutilities.com +meadowviewchurch.org +meagainapp.com +meaistunac.cf +meaistunac.ga +meaistunac.ml +meaistunac.tk +mealaroc.cf +mealaroc.gq +mealaroc.ml +mealaroc.tk +mealcash.com +mealigraavertu.ru +mealprepware.com +mealswithmilton.ru +mealthys.com +meandoofn.ml +meangel.net +meaningmagazine.com +meanjames.com +meansfan.info +meansfor.xyz +meansforu.xyz +meansoute.email +meanspl.icu +meanstem.com +meanstreets405.com +meantein.com +meantinc.com +measurecolor.team +measuringthedream.com +measurmzjs.site +meat3000.com +meatpack.org +mebbo.net +mebel-atlas.com +mebel-online-vyksa.ru +mebel-v-rostove-na-donu.ru +mebel-v-serpuhove.ru +mebel-v-vykse.ru +mebelapex.ru +mebeldomoi.com +mebelenok63.ru +mebeleven.ru +mebelgrafika.ru +mebellstore.ru +mebelnovation.ru +mebelnu.info +mebelwest.ru +mebgrans.ru +meble-biurowe.com +meble-biurowe.eu +mebleikea.com.pl +meblevps24x.com +meboxmedia.us +mec755.com +mecamping.com +mecbuc.cf +mecbuc.ga +mecbuc.gq +mecbuc.ml +mecbuc.tk +meccafriends.com +mecg.us +mechanicalresumes.com +mechanization139xh.online +mechb2b.com +mechpromo.com +mechteda.ru +mecip.net +meckakorp.site +meconomic.ru +mecs.de +med-expertlife.ru +med-factory-classic.ru +med-knijka-ryazan.ru +med-note.ru +med.gd +medaccess.space +medaggregator.ru +medagregator.ru +medaille-precieuse.com +medal365.biz +medalists493ua.online +medan4d.live +medan4d.online +medan4d.top +medbat.ru +medbiding.online +medbiding.xyz +medcelitel.ru +medclick.org +medcyber.com +meddiabet.ru +mededy.xyz +medevacquote.com +medevacratings.com +medfaid.org +medfederation.ru +medflavor.com +medfordcentral.com +medfornorm.ru +medhelperssustav.icu +medhelperssustav.site +medhelperssustav.space +medhelperssustav.website +medhelperssustav.xyz +media-library.app +media-maghreb.com +media-one.group +media.motornation.buzz +media4ad.com +mediabox-iptv.com +mediacine.com +mediaho.net +mediahydra.ru +mediakavkaz.ru +mediakomp.ru +mediamaid.net +mediapad.online +mediapad.support +mediapulsetech.com +mediareserve.com +mediaroll.com +medias24.org +mediascene.com +mediaseo.de +mediaset.cf +mediaset.gq +mediasocializer.xyz +mediastudio-dz.com +mediastyaa.tk +mediatrack.ga +mediatui.com +mediavission.tk +mediawagon.net +mediawebhost.de +mediazone-ru.com +medib.site +medica2.com +medical-malpractice.us +medical-missions.org +medical315.xyz +medicalalert.app +medicalanchor.com +medicalbenefitexchange.com +medicalbillingprogramzone.xyz +medicalbrush.us +medicalbrushes.biz +medicalbrushes.us +medicalclinicnearme.org +medicalcontent.ru +medicaldetoxprograms.com +medicalmalpracticelawyersct.net +medicalmarketingcouncil.com +medicalschooly.com +medicalservice.su +medicalsoftwarehub.com +medicaltravel24.com +medicamentpharmacie.com +medicationforyou.info +medications-shop.com +medicc.app +mediciine.site +medicinepea.com +medicinewaters.org +medicineworldportal.net +medicinfo.icu +mediciquestresearchgroup.net +medicoach.link +medid.site +medif.site +medig.site +mediko.site +medil.site +medimedr.shop +medimom.com +medin-tec.biz +mediosbase.com +medirectwealth.net +medit.site +meditandocombah.com +meditation-techniques-for-happiness.com +meditationmuseumtci.com +meditsinskie-uslugi.online +meditsinskiekliniki.ru +medixbox.com +medjugorje-nel-cuore.com +medkabinet-uzi.ru +medknow.asia +medleafcbd.com +medlowmusic.com +medmaska.xyz +mednickagency.com +medod6m.pl +medotikmas.gq +medoviyspas.ru +medpravomi.xyz +medpsychfinderonline.com +medpsychfinderplus.com +medremservis.ru +medrol.website +meds-spravki.ru +medsestra-msk.ru +medsheet.com +medspauniversity.com +medstudent.ga +medtechweek.com +medtextile.ru +medtryck.nu +medvii.com +medw.site +medyagog.com +medyayayincilik.com +medyczne-odchudzanie.com +medyumhanimaga.com +medzdrav-online.ru +meekhost.com +meelbet.mobi +meellcm.ga +meelot55.com +meenakshisilks.com +meensdert.ga +meepsheep.eu +meesterlijkmoederschap.nl +meet-and-seed.com +meet-me.live +meet-now-here4.com +meet45us.com +meet908now.com +meetandf.com +meetandseed.com +meetfellini.com +meethornygirls.top +meetingsbyevent.com +meetlocalhorny.top +meetupmonkey.com +meetyourlove.com +meey.tech +meeyraro.cf +meeyraro.gq +meeyraro.ml +mefemen.cf +mefemen.ga +mefemen.gq +meg-ardis.xyz +meg0ch0pik.site +mega-answer.ru +mega-baby.ru +mega-base.xyz +mega-buy.vn +mega-classic-offer.site +mega-cleanvoice.ru +mega-date.ru +mega-dating-directory.com +mega-ekspo.ru +mega-kb.ru +mega-movies.ru +mega-pravila.ru +mega-proshop.ru +mega-rp.ru +mega-sell8.ru +mega-souvenir.ru +mega-tests.ru +mega-vopros.ru +mega-water.ru +mega-wiki.ru +mega-wow-retail.info +mega-zabota.ru +mega.zik.dj +mega303.bid +mega303.website +mega77.xyz +megaa.host +megabitcard.net +megabook.site +megacorp.work +megadiscountonline.com +megagrill.online +megagss.xyz +megaklassniki.net +megalearn.ru +megalovers.ru +megamacas.info +megamagz-super.site +megamail.cx +megamail.pl +megamailhost.com +meganmanzi.com +meganscott.xyz +megaoproc.site +megapara.online +megape.in +megapuppies.com +megarifa.xyz +megashop-funtop.space +megashop-trends.site +megashops-sales.fun +megaslots2016.ru +megastar.com +megatel.pw +megatir.ru +megatraffictoyourwebsite.info +megatraherhd.ru +megavigor.info +megawhat.group +megaxxi.com +megbaystore.ru +meghna-tandoori-takeaway.com +meglioquesto.info +megogonett.ru +megoism.net +megooplay.com +megrampedia.com +meha.site +mehalfpricedlisting.com +mehalfpricelistings.com +meharibache.fr +mehditech.info +mehmatali.tk +mehmetbilir.xyz +mehmetdassak.cf +mehmetdassak.tk +mehome.best +mehrad.site +mehrpoy.ir +mehusupermart.site +mehweb.com +meiatx.tokyo +meibaishu.com +meibokele.com +meibreathpa.cf +meibreathpa.ga +meibreathpa.gq +meibreathpa.ml +meieark.online +meieark.xyz +meiguosaver.com +meihuajun76.com +meil4me.pl +meiler.co.pl +meilleureexcuse.com +meimanbet.com +meimeimail.cf +meimeimail.gq +meimeimail.ml +meimeimail.tk +mein-panel-post.life +meineinkaufsladen.de +meingrosserkredit.club +meinspamschutz.de +meintick.com +meirapy.cf +meirapy.ga +meirapy.gq +meirapy.ml +meirapy.tk +meirhyther.ga +meirhyther.gq +meirhyther.ml +meirhyther.tk +meirmoses.com +meirodu.cf +meirodu.ga +meirodu.gq +meirodu.ml +meirodu.tk +meisteralltrades.com +meisterwerk-leben.com +meitianlu04.xyz +meitianlu06.xyz +meitianlu07.xyz +meitu.us +meituxiezhen.xyz +meja855.live +meji.site +mejjang.xyz +mejlnastopro.pl +mejlowy1.pl +mejlowy2.pl +mejlowy3.pl +mejlowy4.pl +mejlowy5.pl +mejlowy6.pl +mejlowy7.pl +mejlowy8.pl +mejores.best +mejoresabogadosenvalencia.com +mejoresgestorias.com +mejorestenis.com +mekacsmemy.sk +mekazar.com +mekellfood.net +meken.ru +mekongchurchtown.com +mekongheritage.net +mekongtransfer.com +mekongtravellinks.com +meksika-nedv.ru +melancholly.info +melanosityproducts.com +melapatas.space +melastdpwv.space +melatoninsideeffects.org +melbet-ok.ru +melbetts2.ru +melbournepte.com +melcow.com +melhor.ws +melhoramentos.net +melhoresuavidahoje.com +melhorvisao.online +meliece.com +melifestyle.ru +meliinse.ru +melindanash.com +meliput.com +melisarrs.xyz +melisingapore.com +melissamontalvo.com +melissasolema.com +melissastark.net +melite.shop +melitta-remont.ru +melliap.com +mellieswelding.com +melloskin.ru +melneyprep.cf +meloc.ru +melodicrock.net +melodized655aq.online +melodyservice.ru +melodysouvenir.com +meloengamesnetwork.online +meloman.in +melon-beyond.com +melresa.cf +melresa.ga +melresa.gq +melresa.ml +melroseparkapartments.com +melsyrup.com +meltedbrownies.com +meltmail.com +meltwaterdrive.cd +melzmail.co.uk +memailme.co.uk +membed.xyz +memberblog.com +memberdadu.com +memberdds.org +memberheality.ga +memberskp.icu +membransistemler.com +meme-ultrasonu.com +memecituenakganasli.cf +memecituenakganasli.ga +memecituenakganasli.gq +memecituenakganasli.ml +memecituenakganasli.tk +memeil.top +memem.uni.me +mememug.club +memequeen.club +memequeen.dev +memequeen.fun +memes.watch +memescribe.com +memeware.net +memgrid.net +memgrid.org +memkottawaprofilebacks.com +memleket-haber.club +memleket-haber.fun +memleket-haber.live +memleket-haber.website +memlekethaber.club +memlekethaber.fun +memlekethaber.live +memlekethaber.online +memlekethaber.site +memlekethaberonline.club +memlekettenevime.xyz +memo-news.com +memonetwork.net +memoney.site +memoovie.site +memoovo.com +memories.photography +memorizer76lw.online +memoryclub.hk +memorygalore.com +memotivas.com +memotyr.xyz +memp.net +memphisnailsalons.com +memphistaxgroup.com +memphistechnologyfoundation.net +memprof.com +memsg.site +memtv.ru +memunsettder.site +memuremeklilik.com +men-at-wok-takeaway.com +men-find-now.com +men-finder2.com +menacehvud.site +menacehvud.website +menanginstan.com +menanid.buzz +menara99.club +menara99.net +menbagsshop.life +menbehavinghandy.com +mendax-diamond.space +mendelxnbz.space +mendingme.net +mendoan.uu.gl +mendoanmail.club +mendycady.com +menealacola.com +menece.com +menflo.com +mengatur.com +mengchong.info +mengdanai.com +menggu720.com +menglalin.la +mengxiang-edu.com +mengzmz.com +menherbalenhancement.com +menhitects.com +menidsx.com +menjual.xyz +menkououtlet-france.com +menmosi.cf +menmosi.gq +meno4.xyz +menopozbelirtileri.com +menph.info +menqin.site +mensbreakfast.app +menscareshop.life +mensdivorcearizona.com +mensdivorcearkansas.com +mensdivorcecalifornia.com +mensdivorcedelaware.com +mensdivorceflorida.com +mensdivorceindiana.com +mensdivorceiowa.com +mensdivorcelaw.com +mensdivorcemaine.com +mensdivorcemichigan.com +mensdivorcemississippi.com +mensdivorcenebraska.com +mensdivorcesouthcarolina.com +mensdivorcesouthdakota.com +mensdivorcewyoming.com +menseage.cf +menseage.ga +menseage.gq +menseage.tk +mensesthe.site +mensglossary.com +mensguide.com +menshealth-canada.com +menshealth.science +menshealthjournal.online +menshoeswholesalestores.info +menskartel.ru +mensmoney.com +mensmusclefit.com +mensshop.futbol +menssubstanceabusetreatment.com +menstshirt.xyz +mentalevolution.club +mentalhealthdepressiondoctor.com +mentalhealthdepressiontherapist.com +mentalhealththerapyprograms.com +mentalhealthtreatmentscenter.com +mentalism.site +mentdama.gq +mentdama.ml +mentdama.tk +mentechtma.website +menteripoker.club +mentesquevendem.com +mentnetla.cf +mentnetla.ga +mentnetla.gq +mentnetla.ml +mentnetla.tk +mentoggrup.tk +mentoredbymillionaires.org +mentorphrase.com +mentorsbureau.org +menu-go.com +menurehberi.com +menuyul.online +meokhuyenmai.com +meooovspjv.pl +meow-server.space +mepf1zygtuxz7t4.cf +mepf1zygtuxz7t4.ga +mepf1zygtuxz7t4.gq +mepf1zygtuxz7t4.ml +mepf1zygtuxz7t4.tk +mephilosophy.ru +mephistore.co +mepost.pw +meprice.co +meprorlai.com +mepubnai.cf +mepubnai.ga +mepubnai.gq +mepubnai.ml +mepw6u.site +meqa1f.xyz +mera.money +meraciousmotyxskin.com +merakigrown.com +merameri.shop +merantikk.cf +merantikk.ga +merantikk.gq +merantikk.ml +merantikk.tk +mercadiaprojects.com +mercadodeactivos.com +mercadoofertas.ml +mercedes.co.id +mercerbrokerage.net +mercevpn.xyz +merchantpalace.store +merched.dev +merchize.wiki +merchpay3ds.ru +merchstore.store +mercurecasino10.com +mercurecasino3.com +mercurecasino5.com +mercurecasino9.com +mercurials2013.com +mercurialshoesus.com +mercury-global-pro.ru +mercury-globalmir.ru +mercurybetsuper6.com +mercuryhub.com +mercuryinsutance.com +mercy.cf +mercyea.icu +mercygirl.com +merd6i.xyz +merda.cf +merda.ga +merda.gq +merda.ml +meredithmanor.info +merexaga.xyz +merfwotoer.com +merfwotoertest.com +mergaab.me +mergame.info +merge.fail +merhabalarsx32409.tk +merhabalarsx39968.ml +merhabalarsx55996.ga +merhabalarsx55996.ml +merhabalarsx55996.tk +merhabalarsx65295.ga +merhabalarsx94707.ga +meriam.edu +meridensoccerclub.com +meridianessentials.com +meridiaonlinesale.net +meridyendernegi.com +merijn.app +merimera.shop +merintasa.best +merisaloer.club +merisaza.club +meritbet57.com +meritbl.xyz +meritbonus.info +meritcasinos.biz +meritcasinos.ist +meritcasinos.kim +meritcasinos.net +meritjackpods.com +meritp10.best +meritpummelpence.site +meritroyal.online +meritroyalbet.info +meritroyalbet.online +meritroyalchocolatepalace.net +meritroyalgiris.online +meritslot60.com +meritsport.com +meritum.dev +merituminteractive.net +meritwast.recipes +meritwaste.recipes +merizadcw.club +merizateax.club +merkez34.com +merkezefendisinav.xyz +merlemckinnellmail.com +merliaz.xyz +merlincase.com +merlismt2.org +mermaid-construction.com +mermail.info +mermisstclair.com +meroba.cf +meroba.ga +meroba.gq +meroba.ml +merpare.ml +merpare.tk +merrellshoesale.com +merrilgentle.com +merrittnils.ga +merry.pink +merrydresses.com +merrydresses.net +merryflower.net +merrygoround.com +merrylanguidperch.site +merseyvend.biz +mersinaft.ga +mersincast.com +mersincilekroom.xyz +mersinli.info +mersinlicigercimucahid.com +mersinorganize.com +mersinrentals.online +mersinrentals.xyz +mertiansaacco21-met.com +mertolinaperoti.xyz +merveokcuoglu.com +merveokcuoglu.net +merylmahouse.co +merysee.space +mesaamado.com +mesama.cf +mesama.ga +mesama.gq +mesama.ml +mesama.tk +mesavegas.com +mesbagall.ru +mesbeci.cf +mesbeci.ga +mesbeci.ml +mesbeci.tk +mesberlins.info +mescevo.cf +mescevo.ga +mescevo.gq +mescevo.tk +mesdemarchesadministratives.com +mesedidu.site +mesef.fun +mesili.ga +mesili.gq +mesinkoin.org +mesmerized883ib.online +mesmi.site +mesoindonesia.com +mesoskin.ru +mesotheliomaasbestoshub.xyz +mesotheliomaattorneyvirginia.com +mesotheliomalawyervirginia.com +mesotheliomasrates.ml +mesotheliomatrustfund.net +mesotherapyclinicturkey.com +mesquiteaccidentattorney.com +mesquiteinjurylawyers.com +mesquitetexaschiropractor.com +mesradsfi.cf +mesradsfi.ml +mesrt.online +messaeg.gq +messagdo.com +message-station.com +messagea.gq +messagebeamer.de +messagecenter.com +messageconnect.com +messageden.com +messageden.net +messageme.ga +messageovations.com +messageproof.gq +messageproof.ml +messager.cf +messagesafe.co +messagesafe.io +messagesafe.ninja +messagesenff.com +messagetop.site +messaging.page +messagugi.com +messengermarketingstrategist.com +messengers.email +messiahmbc.com +messihalocal.com +messing.life +messsalons.info +messwiththebestdielikethe.rest +messymeek.com +mestbet.net +mestechnik.de +mestgersta.cf +mestgersta.ga +mestgersta.gq +mestgersta.ml +mestgersta.tk +met-coin.com +met-sex.com +met5fercj18.cf +met5fercj18.ga +met5fercj18.gq +met5fercj18.ml +met5fercj18.tk +meta-bet.ru +meta-gas-in.ru +metabolicbalance.sk +metaboliccookingpdf.com +metabox.info +metacrunch.com +metahero.net +metalbet.ru +metalfestivalseurope.com +metalhalidegrowlights.com +metall-tradenn.ru +metalliccut.com +metallqlez.space +metallymc.shop +metalmania.cd +metalrika.club +metalstroj.sk +metameto.shop +metamodel.dev +metamorphosisproducts.com +metamusic.blog +metaprice.co +metareview.ru +metashooting.com +metastudio.net +metatader4.com +metatrader5.blog +metavivor.net +meteormine.com +meteothailande.com +metesandbounds.co +metgw.live +methemoglobin790kx.online +metheuspoet.com +metin1.pl +metkan-akmola.ru +metkomsplav.ru +metlif3.com +metocape.email +metodoacta.com +metodoremoto.site +metometa.shop +metoosummit.com +metrika-hd.ru +metro-grill-carlow.com +metroautoexchange.com +metrobtc.com +metroclone.com +metroeu.host +metroflexwf.com +metrofoodtours.com +metropoligon.club +metroset.net +metroweekly.net +metshirt.xyz +mettamarketingsolutions.com +metuinsaat.com +metuwar.tk +metvauproph.cf +metvauproph.ga +metvauproph.gq +metvauproph.ml +metvauproph.tk +metzdorfgroup.net +meu.plus +meubelocorpo.com +meubusinessconexao.com +meucoach.page +meulilis.cf +meulilis.ga +meulilis.gq +meulilis.ml +meulilis.tk +meumapa.com +meumestredigital.store +mevall.com +meve8fekkes.xyz +meveatan.cf +meveatan.ga +meveatan.gq +meveatan.ml +mevityny.tk +mevj.de +mevoti.xyz +mevoto.xyz +mevoty.xyz +mew88.com +mewinsni.cf +mewinsni.ga +mewinsni.ml +mewinsni.tk +mewprulu.shop +mex.broker +mexaqy.info +mexcool.com +mexh.us +mexicanalia.com +mexicanonlinepharmacyhq.com +mexico500.com +mexicolindo.com.mx +mexicomail.com +mexicons.com +mexylocu.website +meybet52.com +meybet57.com +meyernajem.com +meyfugo.cf +meyfugo.ga +meyfugo.gq +meyfugo.ml +meyfugo.tk +meymey.website +meyvaagacim.com +meyveli.site +meyveyetistirme.com +mezartemizligi.xyz +mezattesbih2.com +mezcalmalacara.com +mezimages.net +mezime.xyz +mezzaninevloeren.com +mf8a5b.us +mfano.cf +mfano.ga +mfano.gq +mfano.tk +mfautxy57ntizy9.xyz +mfayp.site +mfbb8.com +mfbh.cf +mfbog1.site +mfbunkoj.online +mfbx.org +mfdn.ru +mfghrtdf5bgfhj7hh.tk +mfhelicopters.com +mfil4v88vc1e.cf +mfil4v88vc1e.ga +mfil4v88vc1e.gq +mfil4v88vc1e.ml +mfil4v88vc1e.tk +mflfdgsa.shop +mflinks.com +mfsa.info +mfsa.ru +mft1199240.xyz +mft3019470.xyz +mft5593946.xyz +mft7412888.com +mft9534720.xyz +mft9542713.xyz +mft9545932.xyz +mft9552245.xyz +mft9574808.xyz +mft9576391.xyz +mft9603894.xyz +mft9630791.xyz +mft9641640.xyz +mft9648484.xyz +mft9714057.xyz +mft9714425.xyz +mft9714650.xyz +mft9721847.xyz +mft9725798.xyz +mft9736417.xyz +mft9755259.xyz +mft9757810.xyz +mft9759510.xyz +mft9785411.xyz +mft9797712.xyz +mft9820886.xyz +mft9820926.xyz +mft9850605.xyz +mft9857521.xyz +mft9864784.xyz +mft9867978.xyz +mft9876343.xyz +mft9883173.xyz +mft9909394.xyz +mft9911897.xyz +mft9920868.xyz +mfuil.us +mfvn.us +mfxs.us +mfzwhd.us +mg-rover.cf +mg-rover.ga +mg-rover.gq +mg-rover.ml +mg-rover.tk +mg2222.com +mg520520.com +mgabratzboys.info +mgangabet.com +mgapoker88.org +mgazenonli-man.space +mgb-iris-blue.online +mgclimat.ru +mgdchina.com +mgeladze.ru +mgfstripe.com +mgm005.com +mgm920.com +mgm940.com +mgm999lao.net +mgmawa.org +mgmblog.com +mgmdomino.org +mgme.xyz +mgnt.link +mgoiv.site +mgt.miansheng.men +mgt4rwssl.com +mgtu-volley.ru +mgtwzp.site +mgve.us +mgwear.ru +mgwned.com +mgzineforu-ptrs.space +mgzvqe.icu +mgzzy.com +mh-pt09.com +mh-sale.online +mh3fypksyifllpfdo.cf +mh3fypksyifllpfdo.ga +mh3fypksyifllpfdo.gq +mh3fypksyifllpfdo.ml +mh3fypksyifllpfdo.tk +mhahk.site +mhairitaylor.com +mhcnt.icu +mhcolimpia.ru +mhdbilling.com +mhdpower.me +mhdsl.cf +mhdsl.ddns.net +mhdsl.dynamic-dns.net +mhdsl.ga +mhdsl.gq +mhdsl.ml +mhdsl.tk +mhere.info +mhimail.com +mhirhdon.shop +mhkttmknx4fxts8.xyz +mhmht.com +mhmmmkumen.cf +mhmmmkumen.ga +mhmmmkumen.gq +mhmmmkumen.ml +mhmotoren.nl +mhnb27.com +mhnb4.com +mhnb81.com +mhnb84.com +mhog.shop +mhorhet.ru +mhotel.us +mhov.us +mhqdk9.us +mhqxl.us +mhs78.space +mhschool.info +mhtqq.icu +mhwolf.net +mhxcpxbna.shop +mhzayt.com +mhzayt.online +mi-fucker-ss.ru +mi-mails.com +mi-turisto.ru +mi.meon.be +mi.orgz.in +mi1-gazil.ru +mia6ben90uriobp.cf +mia6ben90uriobp.ga +mia6ben90uriobp.gq +mia6ben90uriobp.ml +mia6ben90uriobp.tk +miaferrari.com +miaflorido.com +miakhalifa.mobi +mial.cf +mial.com.creou.dev +mial.tk +mialbox.info +miami-invest.ru +miamicannaboys.com +miamicolo.com +miamifalls.info +miamifldoubledeckertours.com +miamihotel.space +miamihousewife.org +miamimotorcycleaccidentattorneys.com +miamiquote.com +miamislime.com +miamitourssightseeing.com +miamiwrongfuldeathattorneys.com +miamizonafranca.com +miamovies.com +miamovies.net +mianfeidaima.com +miao-youxi.xyz +miaobidu.com +miaohaha.com +miaomiewang.com +miaowang976.com +miasionfed.com +miauj.com +miaw.guru +mibaopay.com +mibet.net +mibetvn.com +mibm.email +mibomart.site +mibrkipr.xyz +mic3eggekteqil8.cf +mic3eggekteqil8.ga +mic3eggekteqil8.gq +mic3eggekteqil8.ml +mic3eggekteqil8.tk +micalmo.com +micalmo.net +micalmo.org +micasapropia.com +micetigri.com +michaelalamillo.com +michaelbanksdds.com +michaelbberger.com +michaelbea.com +michaelbollhoefer.com +michaeldurante.com +michaelgballard.com +michaelgoneill.com +michaeljeffreyjones.com +michaelkimball.info +michaelkors4ssalestore.com +michaelkorsborsa.it +michaelkorshandbags-uk.info +michaelkorshandbagswhole-sale.biz +michaelkorsoutletclearances.us +michaelkorsoutletstoresinc.com +michaelkorss.com +michaelkorstote.org +michaellees.net +michaelr.org +michaelrader.biz +michaelstenta.net +michaelstenta.org +michaelvelardelaw.net +michaelvelardelaw.org +michaelwheaton.us +michaelwilliamtwitty.com +michaelwinters.info +michaleway.buzz +michalique.com +michegen.xyz +michelangelomedia.com +michelinmape.info +michelinpilotsupersport.com +michellejondall.com +michellelagasse.com +michellemjondall.com +michianahotairballoonrides.com +michie-sushi-sandyford.com +michigan-nedv.ru +michigan-rv-sales.com +michigan-web-design.com +michiganadvocates.org +michigandiscdogclub.com +michiganmobilemedia.com +michiganmontecarloclub.com +michiganpepsi.com +michiganprospect.org +michigansmartgrowth.org +michigansmok.com +michiganswingdance.com +michingmalicho.com +michingmalicho.org +micicubereptvoi.com +mickey-discount.info +micksbignightout.info +micleber.cf +micleber.ga +micleber.gq +micleber.ml +micleber.tk +micll.com +micll.net +miclonegroup.com +micmeore.cf +micmeore.gq +micmeore.ml +microcenter.io +microfibers.info +microhealthworld.com +microlium.xyz +micromentors.org +micromobix.com +micronti.xyz +micropaleontologies453wm.online +micropaleontology867pf.online +micropanier.com +micros-solutions.live +microsaledirect.com +microsofl.website +microsoftarticles.info +microsoftopedia.com +microsoftt.biz +microsotft.org +microspeed.life +microwavetechnology.xyz +microzaempromo.ru +micsocks.net +mid6mwm.pc.pl +midaimupfhj.email +midas-panel.site +midascmail.com +midcoastcustoms.com +midcoastcustoms.net +midcoastmowerandsaw.com +midcoastsolutions.com +midcoastsolutions.net +midcontflyway.com +middaybublo.email +middleeasthealthcareportal.com +middlegacna.com +middletownpolice.org +mideastpower.com +midebalonu.org +midekelepcesi.org +midemidd.shop +midesafio.com +mideuda.com +midfield.media +midfloridaa.com +midfloridda.com +midhy.me +midlandquote.com +midlarh.space +midlertidig.com +midlertidig.net +midlertidig.org +midnightsketches.org +midoggshop.com +midtoco.cf +midtoco.ga +midtoco.gq +midtoco.tk +midtownatlanta.us +midtownmadness.org +midtzatfo.ga +midtzatfo.gq +midtzatfo.tk +midway-travel.xyz +miegrg.ga +miegrg.ml +miehejus.ga +miehejus.gq +miehejus.ml +miehejus.tk +miend.live +mienphi.asia +mienphiphanmem.com +mieqas.com +mierdamail.com +miesedap.pw +mietpreisbremse.works +miewest.com +miexpediente.com +miexperienciaeasy.com +mig-filltide.rest +mig-zaym.ru +might.sale +mightcubed.com +mightcubed.org +mightuvi.cf +mightuvi.ga +mightuvi.ml +mighty.technivant.net +migliorisitidiincontri.com +migloveusa.com +migmail.net +migmail.pl +migracpravo.xyz +migraene-forum.info +migranthealthworkers.org.uk +migrate.cash +migrate.codes +migro.co.uk +migserver2.gq +migserver2.ml +miguecunet.xyz +migumail.com +mihalfpricedlisting.com +mihang.org +mihanmail.ir +mihealthpx.com +mihep.com +mihhaboe.us +mihogarsaludable.net +miim.org +miissionfed.com +miisxw.com +mijacknews.cf +mijacknews.gq +mijacknews.tk +mijnbestanden.shop +mijnfileserver.online +mijnhva.nl +mijnroosters.online +mijnzoekmaatje.online +mijumail.com +mikaela.kaylin.webmailious.top +mikaelcosmeceuticals.com +mikaelskin.com +mikanda.cd +mikazi.club +mikcasinoboy.ru +mike.designterrarium.de +mikebehar2020.com +mikebehar2020.org +mikeblogmanager.info +mikecampbellracing.com +mikeformat.org +mikefranken.org +mikegilliamtv.com +mikejacobson.org +mikekalombo.com +mikelaming.biz +mikes.cd +mikescomputersga.net +mikessupermarket.com +mikesweb6.com +mikidolenz.com +mikolastro.ml +mikos1.site +mikrotik.website +miksa.store +mikuwiki.com +mila-levchyk.info +miladamalich.ru +miladexchange.com +milaghouse.co +milaizhan.club +milandwi.cf +milankashop.ru +milanotransex.com +milasoftware.xyz +milaspc.com +milavitsaromania.ro +milbox.info +milcepoun.cf +milcepoun.ga +milcepoun.gq +milcepoun.ml +milcepoun.tk +milcvp.shop +milde.software +mildin.org.ua +mildunity.us +milesroger.com +miletance.com +mileyandpat.com +milfaces.com +miliancis.net +milimetrikproje.xyz +milionariosdobitcoin.com +milionkart.pl +militarizes572bb.online +militarybrush.net +militarybrushes.us +militaryencyclopedia.com +militaryinfo.com +milittis.com +miljaye.ga +milk.gage.ga +milkdrooperver.ru +milke.ru +milkteam.ru +milkyplasticperky.site +millband.com +millelacsanglers.com +milleniatakeaway.com +millennialistbook.com +millennialswedding.club +millennium-marines.ru +millertavernbay.com +millertavernyonge.com +millervet.info +milliebarry.buzz +milliemaidcleaning.com +millimailer2.com +millimentor.com +million-match.com +millionahair.com +millionairesocietyfree.com +millionairesweetheart.com +milliondollarchica.com +millionertut.ru +millionstars1.com +millironfarm.online +millkvoyage.host +millnevi.cf +millnevi.gq +millnevi.ml +millnevi.tk +millstonepenyffordd.com +millstreetbarandtable.com +millvalleyflowerdelivery.com +millwoodbuildingsupply.com +millz.ru +miloandpi.com +milohe.info +milosbet100.com +milosbet1000.com +milosbet68.com +milouikn2.site +milpitas.net +milsaborespuertollano.com +miltonfava.com +miluscasno.best +milwaukeedustless.net +milwaukeedustless.org +milwaukeedustless.us +milwaukeedustlessbrush.us +milwaukeepolo.com +milwaukeequote.com +milwaukeetools.tj +milwaukeewieldercare.com +mimail.info +mimarifuarlar.com +mimarinos.info +mimcasinocrowd.ru +mimedpravo.xyz +mimemoi.online +mimemorre.site +mimi-go.com +mimicooo.com +mimijkng.xyz +miminko.net +miminpolontong.bar +mimispantry.org +mimiuuu.com +mimko.com +mimmospizzacubellescubelles.com +mimo.agency +mimo.click +mimo.digital +mimomail.info +mimpaharpur.cf +mimpaharpur.ga +mimpaharpur.gq +mimpaharpur.ml +mimpaharpur.tk +mimpi99.com +min-group.club +min.burningfish.net +min.edu.gov +minadentist.com +minamail.info +minamitoyama.info +minatuhitpr.cd +minbise.cf +minbise.ga +minbise.gq +minbise.ml +minbise.tk +mindandbodydaily.com +mindbodylab.org +mindbodytraining.org +mindcloud.app +mindfase.tk +mindfery.tk +mindforce.me +mindfulhealingcourse.com +mindfulnessinlaw.org +mindfulpainreliefcourse.com +mindgeekopenhouse.com +mindihouse.co +mindmail.ga +mindmatho.ga +mindmatho.gq +mindmatho.ml +mindmatho.tk +mindmercs.com +mindmyonlinebiz.com +mindpowerup.com +mindrise.info +minds.exchange +mindsetup.us +mindthe.biz +mindyobusiness.com +mindyrose.online +mine-epic.ru +mine-web-application-dev.club +mineadsaiinstalls.club +mineblue.ru +minecraft-dungeons.ru +minecraft-keys.com +minecraft-survival-servers.com +minecraftaccountfree.com +minecraftcolorcodes.com +minecraftinfo.ru +minecraftproject.ru +minecraftrabbithole.com +minecraftul.ru +minedon.online +minegiftcode.pl +minelk-gazik.ru +minephysics.com +mineprinter.us +mineralize.best +mineralka1.cf +mineralka1.ga +mineralka1.gq +mineralka1.ml +mineralka1.tk +mineralnie.com.pl +mineralshealth.com +mineralwnx.com +minercontrolpanel.com +minergate.download +minerhouse.ru +minerpanel.com +minerscamp.org +minershe.us +minerspl.press +minerworth.email +minesox.info +minetopiaworld.online +minex-coin.com +minfullcash.com +mingbocor.cf +mingbocor.ga +mingbocor.ml +mingbocor.tk +minggardentakeaway.com +mingnickta.cf +mingnickta.gq +mingnickta.tk +mingshengylc.com +minhazfb.cf +minhazfb.ga +minhazfb.ml +minhazfb.tk +mini-kraanhuren.com +mini-mail.net +mini-quadcopter.ru +mini-traktor56.ru +mini.pixymix.com +miniaturebrush.net +miniaturebrush.us +miniaturebrushes.com +minibilgi.net +minibubo.com +minicamera-dv.info +minicasiers.com +minicooperspeed.com +minifieur.com +minikokul.net +minikuchen.info +minimail.club +minimal.homes +minime.xyz +minimiseapp.com +minimized409gz.online +minimized606ok.online +minimized705mz.online +minimizer343rl.online +minimoifactory.info +minimoifactory.org +minimotorsscooter.com +miningcrushing.com +miniofficeoutlets.com +minionsofgygax.com +minioteli-spb.ru +miniotls.gr +minipaydayloansuk.co.uk +minishop.site +minisitesprofit.club +miniskirtswholesalestores.info +ministeredestransportsvc-gouv.cd +ministry-of-silly-walks.de +ministrychurch.org +ministryofclarity.com +ministryofcyber.net +ministryofcyber.space +ministryofcyber.study +ministryofcybertech.com +ministryofcybertechnology.com +ministryofinnovation.ru +ministrysites.host +ministrysupport.app +minitrailersusa.com +miniwowo.com +minkh.ru +minkuai38.icu +minkyway.online +minletoy.com +minnacarter.com +minneapolis-stucco.com +minnesota-fishing.com +minnesotahomeonthelake.com +minnesotahomesonthelake.com +minnesotaopera.org +minnesotapheasants.com +minnesotaquote.com +minnesotavikings-jerseys.us +minnesotawalleyeguide.com +minnesotawaterfowlers.com +mino855.com +mino855.social +minoplast.cd +minoreatingdisordertreatment.com +minrdergo.com +minscamep.cf +minscamep.ga +minscamep.gq +minscamep.ml +minscamep.tk +minskimedia.com +minskysoft.ru +minsmail.com +mint-space.info +mintadomaindong.cf +mintadomaindong.ga +mintadomaindong.gq +mintadomaindong.ml +mintadomaindong.tk +mintcbg.com +mintconditionin.ga +mintemail.cf +mintemail.com +mintemail.ga +mintemail.gq +mintemail.ml +mintemail.tk +mintsbolts.top +mintsportjop.ru +mintstresms.xyz +minumeroweb.com +minuskredit.xyz +minustaliya.ru +minutasim.ml +minutemusic.monster +minutesolar.com +minutious.site +minxstar.fun +minyakbuasir.com +minyon.info +minyoracle.ru +minzdravros.ru +miochas.info +miodonski.ch +miodowadolina.com +miodymanuka.com +miolayfran.cf +miolayfran.gq +miolayfran.ml +miolayfran.tk +mionavi2012.info +mionetwork.email +mioofsq.buzz +miopaaswod.jino.ru +mior.in +miototo.com +miototo.net +miowiki.com +mip89.com +miplan.info +miplawyers.com +mipodon.ga +miptvdz.com +mir-ori.ru +mir-sveta52.ru +mir-venka.ru +mirabellebra.com +mirabelleslim.com +mirablu.shop +miraciousmoty.com +miraclediet1.com +miraclegarciniareview.com +miraclepc.ru +miradorveleia.xyz +mirai.re +miraigames.net +miraintelligence.com +miramulet.ru +miranda1121.club +mirautoportal.ru +mirbaikala03.ru +mirbeauty.ru +mirchi-malahide.com +mirchifun.tech +mirelt.su +mirenaclaimevaluation.com +miresweb.com +miretig.cf +miretig.ga +miretig.gq +miretig.ml +miretig.tk +mirhatrama.site +miriarab.ru +mirider.cf +mirider.ga +mirider.gq +mirider.ml +mirider.tk +mirimbaklava.com +mirimus.org +mirinfomed.ru +mirkarkas.ru +mirker-mag64.host +mirkvadro.ru +mirmirchi.site +mirnes.store +mirnichtsdirnichts.love +miromario.ru +mironovskaya.ru +mirori.ru +mirpiknika.ru +mirproektorov.ru +mirror364.ru +mirror37.ru +mirror49.ru +mirror53.ru +mirror86.ru +mirror89.ru +mirrorrr.asia +mirrorsstorms.top +mirrror.asia +mirskazki.info +mirsoglashenie.xyz +mirstyle.ru +mirtazapine.life +mirteka.ru +mirtopseo.ru +mirturistic.ru +mirzaindian.com +mirzamail.app +misakablog.xyz +misbondis.com +miscbrunei.net +miscil.best +miscritscheats.info +misdemeanors337dr.online +misdivisas.app +miselgulsuyu.com +miseoutlet.site +miseryloves.co +misgotten.best +misha-rosestoy.ru +misha-roza.ru +mishawakadentists.com +mishel-hotel.ru +mishka-dacha.ru +mishka-iz-roz-official.ru +mishka-iz-roz-v-moscow.ru +mishki-mimi.ru +mishkirose.ru +mishooklaw.com +mishov.org +mishovforex.net +mishreid.net +mishti.shop +misiakmasonry.com +misiry.info +misitionline.com +misjudgments473zr.online +misol.dev +misonet.shop +misotorrent2.com +misous.xyz +miss-cosmo.ru +missalkaram.com +misseat.ru +missfacts.com +missfitenergy.com +missglobaleurasia.com +misshausa.com +missi.fun +missing-e.com +missingbeacon.com +missiobfed.com +missionarytoolkit.com +missionfedd.com +missionforge.org +missions1040.net +missionvisi.xyz +missionwildbird.net +mississaugafiberglasspools.com +mississaugaseo.com +missjones.info +misslana.ru +misslawyers.com +missniuniu.com +missoulajewelrybuyer.com +missouricityapartments.com +missouriquote.com +misspentsonicyouth.com +misspomps.info +missride.info +missright.co.uk +misssiliconvalley.org +misstennesseeus.com +missthegame.com +missyhg.com +mistatera.email +mistatera.international +mistaterra.com +misteacher.com +misteioslybanand.fun +mister-puzzle.ru +mister-stak.ru +misterbeads.ru +misterbearsky.com +mistercash.cd +mistercursos.org +misterhoki.online +misteriojuvenil.info +mistermelodyshopchik.host +mistermelodyshopchik.online +mistermelodyshopchik.site +mistermelodyshopchik.space +mistermelodyshopchik.website +mistermosquitos.com +misterpinball.de +misterstiff.com +mistimail.com +mistindu.xyz +mistlink.us +mistressnatasha.net +mistridai.com +mistyle.ru +misvetun.cf +misvetun.ga +misvetun.gq +misvetun.ml +misvetun.tk +misworkbar.cf +misworkbar.ga +misworkbar.gq +misworkbar.ml +misworkbar.tk +mitchbroderick.com +mitcoat.com +mitd.org +mite.tk +miterwnrsh.ru +mithilamart.net +mithiten.com +mithrabvtd.space +mitid.site +mitie.site +mitir.site +mitix.fun +mitiz.site +mitmona.com +mitobet.com +mitom.online +mitori.org +mitracore.net +mitrasbo.com +mitretek.info +mitssupppsych.cf +mitssupppsych.ga +mitssupppsych.gq +mitssupppsych.ml +mitssupppsych.tk +mitsubishi-asx.cf +mitsubishi-asx.ga +mitsubishi-asx.gq +mitsubishi-asx.ml +mitsubishi-asx.tk +mitsubishi-pajero.cf +mitsubishi-pajero.ga +mitsubishi-pajero.gq +mitsubishi-pajero.ml +mitsubishi-pajero.tk +mitsubishi2.cf +mitsubishi2.ga +mitsubishi2.gq +mitsubishi2.ml +mitsubishi2.tk +mittidikhushboo.com +mittrykte.se +mituvn.com +miucce.com +miucce.online +miucline.com +miumiubagjp.com +miumiubags.site +miumiubagsjp.com +miumiuhandbagsjp.com +miumiushopjp.com +miur.cf +miur.ga +miur.gq +miur.ml +miur.tk +miurin.online +mivfilme.online +mivyky.info +miwhibi.ga +miwhibi.ml +miwhibi.tk +miwtechnology.com +mix-90.com +mix-good.com +mix-mail.org +mix-spice-takeaway.com +mix90.black +mix90.blue +mixalo.com +mixbeads.ru +mixbiki.cf +mixbiki.ga +mixbiki.ml +mixbiki.tk +mixbox.pl +mixchains.win +mixcloud-downloader.club +mixcomps.com +mixcoupons.com +mixely.com +mixetf.com +mixflosay.org.ua +mixgame110.online +mixi.gq +mixmailer.info +mixoxo.com +mixspicetakeaway.com +mixstarbet.com +mixtrewards.com +mixtureqg.com +mizapol.net +mizgold.net +mizohillsa.info +mizugiq2efhd.cf +mizugiq2efhd.ga +mizugiq2efhd.gq +mizugiq2efhd.ml +mizugiq2efhd.tk +mjasodel.ru +mjbach.com +mjelearningcenter.com +mjelthvv.shop +mjfitness.com +mjgl62.us +mjhqz.com +mjhtr43.xyz +mji.ro +mjifmd.site +mjjbbs.com +mjjdns.com +mjjhub.com +mjjpy.com +mjjqgbfgzqup.info +mjlf.space +mjolkdailies.com +mjpxvm.com +mjsantos.org +mjsuxsm.xyz +mjtsupport.com +mjuifg5878xcbvg.ga +mjukglass.nu +mjusq5.us +mjut.ml +mjxfghdfe54bnf.cf +mk.netmail.tk +mk24.at +mk2u.eu +mk9fad.us +mkathleen.com +mkb-phone.com +mkbmax.biz +mkbtelefoonservice.com +mkbw3iv5vqreks2r.ga +mkbw3iv5vqreks2r.ml +mkbw3iv5vqreks2r.tk +mkcmqs.fun +mkcxbx2f1te6nta.xyz +mkdigehg.shop +mkdshhdtry546bn.ga +mkfactoryshops.com +mkfmqp.fun +mkfmrq.fun +mkgmss.fun +mkh-agri.com +mkiauz.site +mkin.mobi +mkinmotion.com +mkiyz.com +mkjmhy.fun +mkjmls.fun +mkjmwx.fun +mkk-finsoyuznik.ru +mkk-inkubator.ru +mkk83.top +mkk84.top +mkljyurffdg987.cf +mkljyurffdg987.ga +mkljyurffdg987.gq +mkljyurffdg987.ml +mkljyurffdg987.tk +mklmbx.fun +mklmqf.fun +mklyy.live +mkm24.de +mkmmdm.fun +mkmove.tk +mknk.tk +mknmwc.fun +mko.kr +mkosa.com +mkpfilm.com +mkpmbj.fun +mkpmqx.fun +mkpodoloji.online +mkrecondition.ru +mkshake.tk +mksmhz.fun +mkstodboende.nu +mktorrent.com +mkwmjj.fun +mkwojj.us +mkymnm.fun +mkypbb.us +mkzmkt.fun +mkzmtm.fun +mkzmzg.fun +ml244.site +ml8.ca +ml98q.buzz +mla14.site +mlbjerseys-shop.us +mldl3rt.pl +mlessa.com +mlhelp247.com +mlhweb.com +mlidov.ru +mlinck.com +mlj101.com +mlkancelaria.com.pl +mlkchamber.org +mlldh.site +mlleczkaweb.pl +mllimousine.com +mllpru.us +mlmonlineformula.com +mlmtechnology.com +mlmtips.org +mlnd8834.cf +mlnd8834.ga +mlnd8834.gq +mlnd8834.ml +mlnd8834.tk +mlny.icu +mlo.kr +mlo60n.online +mlodyziemniak.katowice.pl +mlogicali.com +mlojjb.us +mlolmuyor.cf +mlolmuyor.ga +mlolmuyor.ml +mlolmuyor.tk +mlpxlb.us +mlq6wylqe3.cf +mlq6wylqe3.ga +mlq6wylqe3.gq +mlq6wylqe3.ml +mlq6wylqe3.tk +mlqsz.xyz +mlsix.ovh +mlsix.xyz +mlsmodels.com +mltkfqoee.shop +mlvtecalumni.com +mlx.ooo +mm.my +mm0805.xyz +mm18269.com +mm378.com +mm5.se +mm88bar.com +mm88link.org +mm88sport.net +mm88steam.com +mm904.xyz +mm9827.com +mmach.ru +mmaignite.com +mmail.com +mmail.igg.biz +mmail.men +mmail.org +mmail.trade +mmailinater.com +mmaprognoz.ru +mmastavka.ru +mmatica.ru +mmbet168.com +mmbola.online +mmccproductions.com +mmcdoutpwg.pl +mmclobau.top +mmcounceling.com +mmdshe.com +mmdz7li.xyz +mmdzkxn.xyz +mmdzllu.xyz +mmdzlmx.xyz +mmdzohp.com +mmdzous.com +mmdzre6.xyz +mmdzsfs.xyz +mmdzsxl.xyz +mmdzuii.xyz +mmdzv7m.com +mmeefid.site +mmeefyh.site +mmg-re.com +mmgaklan.com +mmgsupport.com +mmigroup.xyz +mmikal-auvn.ru +mminsurancemarketplace.com +mmint99.com +mmk323.com +mmkozmetik.com +mmlaaxhsczxizscj.cf +mmlaaxhsczxizscj.ga +mmlaaxhsczxizscj.gq +mmlaaxhsczxizscj.tk +mmlaipoowo.xyz +mmm-coinex.info +mmm-invest.biz +mmmail.pl +mmmcoin-ex.com +mmmmail.com +mmmoe.com +mmo365.co.uk +mmobackyard.com +mmoexchange.org +mmogames.in +mmohdjsgdhgjs.xyz +mmomismqs.biz +mmoonz.faith +mmoshop.live +mmoyka5.ru +mmpan.com +mmq8r0.site +mmri.club +mmshe.com +mmsilrlo.com +mmsp12.xyz +mmsp14.xyz +mmsp15.xyz +mmsp16.xyz +mmsp17.xyz +mmsp18.xyz +mmsp19.xyz +mmsp21.xyz +mmsp22.xyz +mmsp23.xyz +mmsp24.xyz +mmsp25.xyz +mmsp26.xyz +mmsp27.xyz +mmsp28.xyz +mmsp29.xyz +mmsp30.xyz +mmsp31.xyz +mmsp33.xyz +mmsp34.xyz +mmsp35.xyz +mmsp36.xyz +mmsp37.xyz +mmsp38.xyz +mmsp40.xyz +mmsp41.xyz +mmsp42.xyz +mmsp43.xyz +mmsp44.xyz +mmsp45.xyz +mmsp46.xyz +mmsp47.xyz +mmsp48.xyz +mmspa.cf +mmtscotw.shop +mmtt1.com +mmtt16.com +mmtt4.com +mmtt56.com +mmtt67.com +mmtt69.com +mmtt7.com +mmtt9.com +mmublera.site +mmvcplc.com +mmyl9.com +mn.curppa.com +mn.riaki.com +mn51.ru +mn8dmmens.xyz +mnage-ctrl-aplex.com +mnasjntgfa16713.cf +mnasjntgfa16713.ga +mnasjntgfa16713.ml +mnasjntgfa16713.tk +mnasjntgfa30036.cf +mnasjntgfa30036.ga +mnasjntgfa30036.tk +mnasjntgfa34309.ga +mnasjntgfa54908.ml +mnasjntgfa54908.tk +mnasjntgfa81336.cf +mnasjntgfa81336.ga +mnasjntgfa81336.ml +mnasjntgfa81336.tk +mnbasdthjsdt51967.cf +mnbasdthjsdt51967.ga +mnbasdthjsdt51967.tk +mnbasdthjsdt55817.cf +mnbasdthjsdt55817.ml +mnbasdthjsdt55817.tk +mnbasdthjsdt69551.ga +mnbasdthjsdt69551.ml +mnbasdthjsdt98416.cf +mnbasdthjsdt98416.ga +mnbasdthjsdt98416.tk +mnbj.xyz +mnbvcxz10.info +mnbvcxz2.info +mnbvcxz5.info +mnbvcxz6.info +mnbvcxz8.info +mncrafting.com +mnemonicedu.com +mnen8.com +mnexq7nf.rocks +mng2gq.pl +mng333.live +mngmining.com +mnhalfpricedlistings.com +mnhomeonthelake.com +mnhomesonthelake.com +mnhxted.ga +mnibank.ru +mniloasderf.tk +mnjp.us +mnjvma.org +mnmarriott.com +mnme.email +mnmodels.ru +mnocash.com +mnocoins.org +mnode.me +mnofqq.icu +mnogikanpolit.ga +mnogobux.ru +mnotoken.com +mnotoken.org +mnriver.com +mnst.de +mnstoryworks.com +mntechcare.com +mntwincitieshomeloans.com +mnv4u8zitnxlhpo.xyz +mnzs.xyz +mo-sale.online +mo2assty.com +mo4p.com +mo5xnj.us +moabjeeprental.com +moagloves.com +moakt.cc +moakt.co +moakt.com +moakt.ws +moanalyst.com +moathrababah.com +moaz5orm.ml +mobamouse.com +mobanche.xyz +mobanswer.ru +mobaratopcinq.life +mobasher24.net +mobcom.cd +mobeconco.store +mobegifts.com +mobelej3nm4.ga +mobi-az.site +mobi.web.id +mobiepic.site +mobigame.org +mobilbagus.club +mobilbahis2l9.com +mobile-gto.ru +mobile-orange.com +mobile-phone-forex.com +mobileapplicationbuilder.com +mobileapps.monster +mobilebankapp.org +mobilebuysellgold.com +mobilefirstcms.org +mobilehypnosisandcoaching.com +mobilejudi.net +mobilelacky.info +mobilemeworld.com +mobileninja.co.uk +mobilephonecarholder.net +mobilephonelocationtracking.info +mobilephonespysoftware.info +mobilephonetrackingsoftware.info +mobilerealty.net +mobiles-premium.com +mobileshopdeals.info +mobilespielbewertung2019.online +mobilesportsapp.site +mobilespyphone.info +mobilesshop.futbol +mobilesshop.live +mobilevoipdialer.com +mobilevpn.top +mobilevpn.xyz +mobilewashenvironmental.com +mobilewhmcs.com +mobilhondasidoarjo.com +mobiliddaa21.com +mobiliddaakayit.com +mobility.camp +mobility.energy +mobility.fitness +mobilmatrak.xyz +mobilnaja-versiya.ru +mobiloyna29.com +mobinovations.xyz +mobiphone.xyz +mobitrans.kg +mobleies.shop +mobler.org +moblibrary.com +moboinfo.xyz +mobotap.net +mobrom.store +mobtuts.net +moburl.com +mobx.pub +mobxxx.site +mocanh.info +mocb.us +mocbddelivery.com +mocg.co.cc +mochibooks.com +mochkamieniarz.pl +mochonai.com +mochris.com +mockbee-energy.com +mockfamilyreunion.com +mockhub.xyz +mockmyid.co +mockmyid.com +mockup.express +mockups.express +mocnyy-katalog-wp.pl +mocw.ru +modabet365.com +modabetdestek.org +modaborsechane2.com +modaborseguccioutletonline.com +modaborseprezzi.com +modabuolsun.xyz +modachane1borsee.com +modaequipate.com +modaiptv.com +modalova.biz +modalova.online +modalova.se +modalova.shop +modalova.xyz +modalsubstance.com +modanaobuv.ru +modaoguan.com +modapeuterey2012.com +modapeutereyuomo.com +modastroy.site +modasupport.org +moddema.ga +modejudnct4432x.cf +modelegitimobs.xyz +modelfe.space +modelfindme.ru +modelhomemaker.com +modelingblog.com +modelix.ru +modelkarma.cd +modellase.site +modelly.site +models-of-germany.com +modelstalentfinder.com +modemanioutlet.se +modeng-yule.biz +modeperfect3.fr +moderassmb.space +moderatex.com +moderatex.net +modern-prints.com +modernangleiron.us +modernasalonstudios.com +modernbiznes.pl +moderndaysurvivalgearshop.com +moderne-raumgestaltung.de +modernenglish.ru +moderneyes.life +modernfs.pl +modernindependent.com +modernoffer01.mobi +modernsailorclothes.com +modernsocialuse.co.uk +moderntanks.us +moderntransfers.info +modernx.site +modetoxcenter.com +modety.online +modhack.net +modicadacademy.com +modikulp.com +modila.asia +modipedia.com +modish.net +modjunkies.com +modkjaj.site +modul-rf.ru +modularix.monster +modularla.com +modulecraft.org +modulercephe.com +modum-trans.xyz +modz.store +moe.app +moe.codes +moe365.com +moe83.space +moeapi.com +moeapp.com +moebelhersteller.top +moebits.com +moeblogs.com +moebot.com +moebt.com +moecoin.com +moeday.com +moedh.com +moeimage.com +moeju.com +moekino.club +moekoe.com +moemark.com +moemh.com +moepay.com +moeri.org +moerss.com +moesao.com +moesian.com +moesite.com +moesns.com +moetube.com +moeup.com +moewave.com +moewiki.com +moewp.com +moewww.com +mofiduljamal.com +mofkac.tk +mofox.store +mofsdemo.ru +mofu.be +mogcheats.com +mogcosing.cf +mogcosing.ga +mogcosing.gq +mogcosing.ml +moge.site +mogensenonline.com +mogilev-news.info +mogiwap.icu +mogotech.com +mogpipin.ga +mogpipin.gq +mogpipin.ml +mogs.live +moguapp.org +mogulemperor.com +mogur.us +moh-nitor-api.xyz +mohalfpricelisting.com +mohamadkarimian.com +mohammedleach.buzz +mohammedstokes.buzz +mohanatakeaway.com +moharramgroup.com +mohcine.ml +mohisi.cf +mohisi.ga +mohisi.ml +mohmal.com +mohmal.im +mohmal.in +mohmal.tech +mohsenfb.com +moi-bank.com +moi-diabet.ru +moidolgi.org +moienge.space +moigadjet.ru +moigauhyd.cf +moigauhyd.ga +moigauhyd.tk +moijkh.com.uk +moimails.ru +moimalap.cf +moimalap.tk +moimoi.re +moiprint.ru +moisait-spb.ru +moishop-online.ru +moisoveti.ru +moissonlongueuil.org +moist.gq +moitari.ga +moitari.ml +moja-ipoteka.ru +mojaemigracja.online +mojarranna.net +mojastr.pl +mojblogg.com +mojehonar.com +mojemoj.tk +mojewiki.com +mojezarobki.com.pl +mojilodayro.ga +mojiphone.pl +mojito.org +mojitos.online +mojodefender.com +mojok34.xyz +mojok88.net +mojoski.net +mojzur.com +mokcasinomorning.ru +mokimasopl.cf +moko.cloud +moksakf.site +mokxmp.us +mol-vidi.net +mol-vidi.org +molallaorsa.info +molasedoitr.ga +molded660xq.online +moldered494dn.online +moldova-nedv.ru +moldova.uno +moldujgkcqb.email +moldura888.com +molecadamail.pw +molkq.site +moll.express +mollieconway.buzz +mollmax.ru +molluskit.gq +mollypeters.buzz +mollyposts.com +mollyteeny1.com +mollywheeler.buzz +molms.com +molo.sale +molojo.com +molsbet.icu +molten-wow.com +molvidi.org +momalls.com +momenrt.ga +momentics.ru +momento-conmovedor.info +momentofjoy.net +mommsssrl.com +mommylongue.com +mommystoopphial.site +momo-cx.com +momo365.net +momobet-8.com +momobet-888.com +momobet-vip.com +momodewa.com +momomarket.ru +momonono.info +momopoker88.xyz +momopokeridn.net +momostreaming.com +momotrack.ru +momoweekly.com +mompreneur.today +momrell.ru +momsbackpack.ru +momsportjop.ru +momswithfm.com +momtest.club +momtips.info +momtour.ru +mon-compte-nickel.cc +mon-entrepreneur.com +mon-espace.club +mon-tigo.cd +mona.farm +monachat.tk +monaco-nedv.ru +monadi.ml +monadium.net +monadress.online +monagame.club +monalisa-galway.com +monalisadublin12.com +monalisatouchmarketing.com +monarch.wtf +monarchdaddy.us +monarkdesigns.com +monasticts.xyz +monawerka.pl +monban.site +moncel.se +moncker.com +monclerboutiquesenligne.com +monclercoupon.org +monclerdeinfo.info +monclerderedi.info +monclerdoudounemagasinfra.com +monclerdoudouneparis.com +monclerdoudounepascherfrance1.com +monclerfrredi.info +monclermagasinfrances.com +moncleroutwearstore.com +monclerpascherboutiquefr.com +monclerpascherrsodles.com +monclerppascherenlignefra.com +monclerredi.info +monclersakstop.com +monclersoldespascherfra.com +monclersonlinesale.com +moncomodz.com +moncompteclient.cc +moncomptes.club +moncourrier.fr.nf +moncourrier.ml +moncstonar.cf +moncstonar.ga +moncstonar.gq +moncstonar.ml +moncstonar.tk +monctl.com +monctonlife.com +mondayarr.host +mondayfirst.site +mondaylaura.com +mondaymariska.com +mondaymovo.com +mondconglesm.gq +mondconglesm.ml +mondconglesm.tk +mondkap-drukkerij.online +mondrian.wiki +mondykyr.com +mone15.ru +monedix.com +monedocard.com +monedonow.com +monemail.fr.nf +monepy.com +moneroexpert.com +monespace.cc +monespace.info +monetaros.com +monetizes686vr.online +monettka.ru +money-drives.com +money-pay.ru +money-trade.info +money-vopros.ru +moneyalphaspot.com +moneyandcents.com +moneyboxtvc.com +moneyconnexion.net +moneygive.xyz +moneyhere.ru +moneyhome.com +moneyhungry.info +moneyinpolitics.org +moneylac.ru +moneymailersms.com +moneypipe.net +moneypoll01.top +moneyprofit.online +moneyqube.info +moneyslon.ru +moneytree-letterkenny.com +moneyup.club +moneyway.shop +mongabrothersfilms.com +mongrelize881tf.online +mongrelized473kd.online +mongsteep.xyz +monica.org +monicagrace.site +moniclick.ru +monihaerd.tk +monikas.work +monikolas.cf +monikure.ga +monipozeo8igox.cf +monipozeo8igox.ga +monipozeo8igox.gq +monipozeo8igox.ml +monipozeo8igox.tk +moniqueaimone.com +moniqueknowsmusic.us +monir.eu +monisee.com +monitecnique.net +monitoragenzie.click +monitoragenzie.com +monitoramentofera.com +monitorbbb.xyz +monitorsshop.life +monitoruleconomic.com +monjunec.com +monkandbard.org +monkeemail.info +monkey-up.com +monkey-win.com +monkey4u.org +monkeyforex.com +monkeypoker.net +monkeysatmidnight.com +monkeysend.com +monkeystore.online +monkkey-win.com +monkoiba.site +monlapin.ru +monmail.fr.nf +monngongiadinh.info +monnoyra.gq +monnoyra.tk +monobud.com +monobuds.com +monoearphone.com +monoktr.ru +monologism.site +monomorphic.best +monopici.ml +monopoliya2.ru +monorailnigeria.com +monot.xyz +monotheism.net +monotv.store +monporn.net +monroeelderlawgroup.com +monsetof.ru +monsheribridal.net +monsieurbiz.wtf +monsieurcoin.com +monsoon-indian.com +monsoontakeaway.com +monstage-dz.com +monster.org +monsterabeatsbydre.com +monsterandme.net +monsterbeatsbydre-x.com +monsterblender.ru +monsterbubu.degree +monsterjcy.com +monsterspain.site +monta-ellis.info +monta-ellis2011.info +montagebridalsalon.com +montana-nedv.ru +montanachoicerealestate.com +montanaquote.com +montanaweddingdjs.com +montclairpodiatry.com +montefino.cf +montepaschi.cf +montepaschi.ga +montepaschi.gq +montepaschi.ml +montepaschi.tk +monterra.tk +montesofia.com +montevigorpiety.site +montgomeryquote.com +monthesour.cf +monthesour.ga +monthesour.ml +monthesour.tk +monthlyjerky.com +monthlyoportynity.com +monthlypill.com +monthlyseopackage.com +monthsleading.com +montiardxd.space +montigo.cd +montokop.pw +montre-geek.fr +montrealdio.com +montrealists.com +montrealjetboating.com +montrealrafting.com +montrowa.cf +montrowa.ga +montrowa.gq +montrowa.ml +montsettsa.cf +montsettsa.ga +montsettsa.gq +montsettsa.ml +montsettsa.tk +montway.biz +montwayautotransportonline.com +monumentalize178lr.online +monumentalized432wf.online +monumentmail.com +monvoyantperso.com +mooandpierre.com +mooblan.ml +moodarttekstil.xyz +moodleclub.org +moodleforworkplace.info +moodleforworkplace.net +moodleforworkplace.org +moodleinspire.info +moodletest-vps.website +moodleworkplace.info +moodmatter.buzz +mooecofficail.club +moogtones.com +moogtrailerparts.shop +mooiamsterdamevents.online +mookkaz.ga +moola4books.com +moolooku.com +moon-piano.online +mooneventdn.com +moonfaire.com +moongleam.com +mooniac.com +moonjumppress.com +moonkased.ga +moonki.shop +moonkupla.ga +moonleap.email +moonlightbed.com +moonm.review +moonrakefile.com +moonwake.com +mooo.com +mooo.ml +mooonity.com +moopzoopfeve1r.com +mooresrowland-hk.com +moose-mail.com +moosehollowtradingco.com +mooshimity.com +moot.es +moovengers.com +mooviflix.online +moozique.musicbooksreviews.com +moparayes.site +moparmediagroup.se +mopemi.cf +mopemi.ga +mopemi.gq +mopemi.ml +mopemi.tk +mopeyj.us +mopilka.ru +mopustores.site +mopyrkv.pl +mor19.uu.gl +moragfels.cf +moragfels.ga +moragfels.gq +moragfels.tk +morahdsl.cf +moralitywars.net +moralizer906bg.online +morallystrapped.com +morana.icu +morarabam.com +moravekinternational.info +moraveli.live +morbolatino.com +morcagumd.cf +morcagumd.ga +morcagumd.gq +morcagumd.tk +morcasinohat.ru +morcego.org +more-reasons.net +more2explore4you.site +more4chat.com +more4you.org +moreawesomethanyou.com +morecallsforlawyers.com +morecoolstuff.net +moreflavourz.com +morefunmart.com +morefunsports.com +moregrafftsfrou.com +moremarijuanamarketplace.com +moremobileprivacy.com +moreno1999.xyz +moreorcs.com +moreorlessinc.com +morerake.com +morestonn.tk +morethanametal.com +morethanjustavoice.info +morethanvacs.com +morethanweknow.com +morethanword.site +moretrend.xyz +morex.ga +morfelpde.cf +morfelpde.ga +morfelpde.gq +morfelpde.ml +morfelpde.tk +morganbrookewright.com +morganfranklinconsulting.com +morganlowis.com +morguefile.us +morielasd.ovh +morina.me +moringathee.com +mormal.site +mormoncoffee.com +mormortmarkece.space +mornayoovm.space +mornhfas.org.ua +morningstarkafe.xyz +morningstiffnesspodcast.org +morningtw.com +mornsoft.com +morogamers.com +moroz-it.ru +morriesworld.ml +morrisoncreek.net +morrlibsu.cf +morrlibsu.ga +morrlibsu.gq +morrlibsu.ml +morrsferin.cf +morrsferin.gq +morrsferin.ml +morrsferin.tk +morselsdxsv.email +morsin.com +mortcountgi.cf +mortcountgi.gq +mortcountgi.ml +mortcountgi.tk +morteinateb.xyz +mortgagealign.com +mortgagebrief.com +mortgagecalculators.online +mortgagecalculatorwithtaxess.com +mortgagefinancialvermont.com +mortgagelendinginvestors.com +mortgagelends.com +mortgagemotors.com +mortgebi.cf +mortgebi.ga +mortgebi.tk +mortire.ga +mortire.tk +mortjusqui.cf +mortjusqui.ga +mortjusqui.gq +mortjusqui.ml +mortjusqui.tk +mortmesttesre.wikaba.com +mortystore.cf +moruzza.com +morygina.ru +mos-kwa.ru +mosaferbaar.com +mosaferkade.org +mosamulet.ru +moscow-nedv.ru +moscow-pinup488.ru +moscowmail.ru +moscowrealestateagents.com +mosertelor.ga +mosheperetz.bet +mosheperetz.net +moskow-lottery.info +moskow-lottery.net +moskow-lottery.org +moslic.ru +mosmebelcentr.ru +mosq.info +mosrafaacademy.com +mosspointhotelsdirect.com +most-wanted-stuff.com +mostafapour.com +mostbet-official.ru +mostbet.casino +mostbet7.ru +mostbetzerkalo.site +mostofit.com +mosttrends.info +mosvv.us +mot1zb3cxdul.cf +mot1zb3cxdul.ga +mot1zb3cxdul.gq +mot1zb3cxdul.ml +mot1zb3cxdul.tk +moteko.biz +motel5music.com +motelfive.com +mother-india-athlone.com +mother-russia.ru +mother-russia.space +motherindiatakeaway.com +motherreviews.futbol +motiexis.ru +motifdou.xyz +motifliv.buzz +motifpet.xyz +motionframed.com +motique.de +motivationalasmr.com +motivationalsites.com +motivationasmr.com +moto-gosz.pl +moto4you.pl +motomarkets.site +motorcityreplacementparts.com +motorcritics.com +motorcycle-rental.info +motorcycleaccidentlawyertampa.com +motorcycleserivce.info +motorisation-plus.com +motorisation.ga +motorize540ab.online +motorsshop.futbol +motorvationist.com +motosneta.online +motrkadust.ru +mottel.fr +mottenarten.ga +mottobuttonpizza.site +motybas.xyz +mouadim.tk +mouadslider.site +moud.us +moueur.website +mouken.com +moukhjconmeab.cf +moukhjconmeab.ga +moukhjconmeab.tk +moukrest.ru +moulinsdebordeaux.com +moulybrien.cf +moulybrien.tk +moundcityhistory.org +mountaingoatcycles.com +mountainhighminiatures.com +mountainhouseairbnb.com +mountainhousebandb.com +mountainregionallibrary.net +mountainviewbandb.net +mountainviewfudge.com +mountainviewgarden.com +mountainviewgarden.org +mountainviewwiki.info +mountathoss.gr +mountdasw.ga +mountjulietapartments.com +mountpleasantrealestateagents.com +mourntailedplaza.site +mourouzis.com +mousearis.icu +mouseexi.us +mousefe.icu +mousefl.icu +mouselesstails.com +mousergup.space +moustache-media.com +mouthmi.icu +mouthube0t.com +movanfj.ml +movavi.tech +move-meal.site +move2.ru +move2inbox.net +move2loveland.info +movedto.info +moveer.ru +moveleg.com +movements.best +movemovemove.ca +movepre.com +moversferndalemi.com +moveworks.co +movie-ru-film.ru +movie-ru-girls.ru +movie-streams-online.best +movie.finance +movie4k-free.site +movie4k.app +movie4khd.net +movieblocking.com +movieblogs.com +moviedaynight.com +moviefreedo.com +movieindoxxi.online +movienox.com +movies-box.ru +movies1.online +movies123-star-movie.xyz +movies123.news +movies123free.best +movies4youfree.com +movies69.xyz +moviesclab.net +moviesdirectoryplus.com +moviesjoy.online +moviesjoy.site +moviesjoy.space +moviesjoy.website +moviesmarket.place +moviesonlinehere.com +moviespur.xyz +movietavern.us +movietaverngc.net +movietaverntickets.net +movietheaterapp.com +movietour.ru +moviezt.us +moviflix.tk +movima.info +moving2.com +movingex.com +movingforwardsj.com +movingmatterkc.com +movply.site +movstoreoffc.com +movx.us +mowgli.jungleheart.com +mowoo.net +mowspace.co.za +mowtpk.us +mox.pp.ua +moxcasonaixe.xyz +moxianmusic.com +moxinbox.info +moxremodel.com +moy-elektrik.ru +moya-ze.com +moydoctor.online +moydom12.tk +moyjivot.ru +moyokoy8.website +moypmoub.shop +moysat.ru +moyuzi.com +moyy.net +moz-clinic.info +moza.pl +mozartfwkg.website +mozej.com +mozej.online +mozhua.xyz +moziahssecretplan.com +mozillafirefox.cf +mozillafirefox.ga +mozillafirefox.gq +mozillafirefox.ml +mozillafirefox.tk +mozmail.com +mozmail.info +mozzasiatopizzavalencia.com +mozzinovo.club +mp-j.cf +mp-j.ga +mp-j.gq +mp-j.igg.biz +mp-j.ml +mp-j.tk +mp.igg.biz +mp3-cube.com +mp3-line.ru +mp3-pleeri.ru +mp3-tut.org +mp3-world.us +mp3afrique.com +mp3cc-top.biz +mp3charm.com +mp3diamond.com +mp3dn.net +mp3freed.net +mp3genteflow.biz +mp3geulis.net +mp3granie.pl +mp3hd.online +mp3hungama.xyz +mp3indirbey.info +mp3isl.ru +mp3lemoon.ru +mp3nt.net +mp3sa.my.to +mp3skull.com +mp3toys.online +mp3tubidy.one +mp3zvukoff.ru +mp4-base.ru +mpaaf.cf +mpaaf.ga +mpaaf.gq +mpaaf.ml +mpaaf.tk +mpayshop.info +mpbtodayofficialsite.com +mpdacrylics.com +mpdf.site +mpegsuite.com +mpfqxeoo.fun +mpfsy.icu +mpg0e.us +mpgmarine.com +mpictureb.com +mpihomecare.net +mpjgqu8owv2.pl +mpkjr.org +mplusmail.com +mpm-motors.cf +mpmmaketmarka.space +mpmps160.tk +mpmshleyatip.site +mpmtipluka.site +mpmzagibshema.space +mpmzagibtyazh.space +mpo303.xyz +mpo365idn.net +mpo39.com +mpo39c.xyz +mpo818.com +mpocash.club +mpocketbank.com +mpop.app +mpoplaytech.net +mpos247.com +mprtb.live +mps3andvideoconverter.com +mpsupport247.com +mptalegacymedia.com +mptgqustuputqp.ru +mptncvtx0zd.cf +mptncvtx0zd.ga +mptncvtx0zd.gq +mptncvtx0zd.ml +mptncvtx0zd.tk +mptrance.com +mpvnvwvflt.cf +mpvnvwvflt.ga +mpvnvwvflt.gq +mpvnvwvflt.ml +mpvnvwvflt.tk +mpvpropertiesllc.com +mpwindows.icu +mpxfcm.us +mpystsgituckx4g.cf +mpystsgituckx4g.gq +mpzjno.us +mpzoom.com +mq.orgz.in +mq4rzy.site +mqcs.us +mqfep.online +mqg77378.cf +mqg77378.ga +mqg77378.ml +mqg77378.tk +mqhtukftvzcvhl2ri.cf +mqhtukftvzcvhl2ri.ga +mqhtukftvzcvhl2ri.gq +mqhtukftvzcvhl2ri.ml +mqhtukftvzcvhl2ri.tk +mqipm.com +mqkivwkhyfz9v4.cf +mqkivwkhyfz9v4.ga +mqkivwkhyfz9v4.gq +mqkivwkhyfz9v4.ml +mqkivwkhyfz9v4.tk +mqmize.shop +mqnpuu.site +mqqzkj.us +mqrjwargb.cf +mqtpe8.us +mquote.tk +mr-82.com +mr-manandvanlondon.co.uk +mr-meshkat.com +mr-noodle-takeaway.com +mr138bet.org +mr1web.ru +mr24.co +mr907tazaxe436h.cf +mr907tazaxe436h.ga +mr907tazaxe436h.gq +mr907tazaxe436h.tk +mracc.it +mragon.xyz +mrain.ru +mrakosin.site +mrbeads.ru +mrbillsworld.com +mrblacklist.gq +mrcasino25.com +mrchinh.com +mrclipper.com +mrcraftyconsultant.com +mrctacoma.com +mrdeeps.ml +mrdevilstore.com +mrdjg.live +mrdomino99.org +mrdv7w.info +mreazi.africa +mrecphoogh.pl +mrentauto.ru +mrepair.com +mrf9t.us +mrfix.us +mrflibble.icu +mrgamin.cf +mrgamin.gq +mrhbyuxh11599.ga +mrhbyuxh31310.cf +mrhbyuxh31310.tk +mrhbyuxh49348.ga +mrhbyuxh51920.ga +mrhunting.com +mrichacrown39dust.tk +mrisemail.com +mrisemail.net +mrj08.space +mrjgyxffpa.pl +mrlagu.best +mrmagicshow.net +mrmail.info +mrmail.mrbasic.com +mrmal.ru +mrmanager.ru +mrmanie.com +mrmerritt.com +mrmikea.com +mrmrise.com +mroe-kino.ru +mroneeye.com +mrossi.cf +mrossi.ga +mrossi.gq +mrossi.ml +mrpdfmanuales.xyz +mrplay.store +mrprojects.info +mrqqwo.us +mrramtruck.com +mrresourcepacks.tk +mrrob.net +mrrobot.life +mrs24.de +mrsands.org +mrscript.ru +mrshok.xyz +mrsikitjoefxsqo8qi.cf +mrsikitjoefxsqo8qi.ga +mrsikitjoefxsqo8qi.gq +mrsikitjoefxsqo8qi.ml +mrsikitjoefxsqo8qi.tk +mrsnotarios.com +mrsnwk.us +mrsortie.xyz +mrtsport.com +mrugesh.tk +mrunlock.run +mrvevoyu.shop +mrvinh.com +mryup.com +mrzero.tk +ms-office365.com +ms.email +ms.land +ms.rentals +ms.vcss.eu.org +ms0o.club +ms1.email +ms248.com +ms365.ml +ms788.site +ms9.mailslite.com +msa-uk.org +msa.minsmail.com +msaffshop.store +msb.minsmail.com +msbestlotto.com +msbl.buzz +mscbestforever.com +mscdex.com.au.pn +msd-tech.com +msdc.co +msdosarena.com +msendback.com +mseo.ehost.pl +mservices.life +msf0p9.com +msft.cloudns.asia +msg2phone.com +msgden.com +msgden.net +msghideaway.net +msgos.com +msgsafe.io +msgsafe.ninja +msgwire.com +msha3er.com +mshalfpricedlistings.com +mshri.com +msiarts.com +msidhuy.net +msinternationalfederation.com +msiofke.com +msiwkzihkqifdsp3mzz.cf +msiwkzihkqifdsp3mzz.ga +msiwkzihkqifdsp3mzz.gq +msiwkzihkqifdsp3mzz.ml +msiwkzihkqifdsp3mzz.tk +msjyd.com +msk-cool.ru +msk-farm.ru +msk-intim-dosug.ru +msk-pharm.ru +msk-prokat.ru +msk.ru +mskey.co +mskglobaltraining.com +mskhousehunters.com +msladyloki.live +mslinkin.ru +msm.com +msmail.bid +msmail.trade +msmail.win +msmwxc.site +msn.edu +msnai.com +msnblogs.info +msndubai.net +msnmrhhzr.shop +msnt007.com +msnumsno.shop +msnw.ru +msoexbr.ru +msoft.com +msoftkeyupdateerror4004.xyz +msoi.us +mson.com +msoonlinsite.shop +msovh.com +mspeciosa.com +mspforum.com +mspruillart.com +msqd7.us +msqtbill247.com +msquarebudapest.com +msquarehotelbudapest.com +msrc.ml +msrisg.site +msromaballinagh.com +mssfpboly.pl +mssn.com +mstar69.club +mstenta.com +mstream.host +mstyfdrydz57h6.cf +mstyfv.info +mstylee.com +msu69gm2qwk.pl +msugcf.org +msvh.us +msvvscs6lkkrlftt.cf +msvvscs6lkkrlftt.ga +msvvscs6lkkrlftt.gq +mswebapp.com +mswork.ru +mswx.email +msxd.com +msyl6.com +mt-overheid.shop +mt-tele.club +mt-tele.today +mt2009.com +mt2014.com +mt2015.com +mt2016.com +mt2017.com +mt210.com +mt25.org +mt4o.us +mt66ippw8f3tc.gq +mtaby.com +mtajer.online +mtalhv.icu +mtasa.ga +mtawnecno.cf +mtawnecno.gq +mtbitreatmentclinic.com +mtbtrailreview.com +mtd.ong +mte5.net +mtgbvfxn.com +mtgmogwysw.pl +mthalfpricelistings.com +mtjoy.org +mtmdev.com +mto2.ru +mtqjsd.com +mtrainierphoto.com +mtrucqthtco.cf +mtrucqthtco.ga +mtrucqthtco.gq +mtrucqthtco.ml +mtrucqthtco.tk +mtservers.online +mtsg.me +mtsmy2.com +mtsmy4.com +mtstreet.online +mttdfen.xyz +mtyju.com +mtzx4.xyz +mu3dtzsmcvw.cf +mu3dtzsmcvw.ga +mu3dtzsmcvw.gq +mu3dtzsmcvw.ml +mu3dtzsmcvw.tk +mu956.com +mua0gn.us +muaban12fun.com +muaban12fun.net +muabanchothue.website +muabanhang.website +muabanhangviet.website +muabansanpham.website +muagiasi.website +muamuawrtcxv7.cf +muamuawrtcxv7.ga +muamuawrtcxv7.gq +muamuawrtcxv7.ml +muamuawrtcxv7.tk +muasamtructuyen.info +muathegame.com +mubamen.tk +mubby.ml +mucbvhxt.shop +much-hyped.club +muchina.website +muchmal.com +muchomail.com +muchoporcompartir.com +muchovale.com +muciboutiques.site +mucillo.com +mucincanon.com +mucizedoktor.cf +mucizejel.xyz +mucizekur.site +mucwegsns.shop +mudanya118.xyz +mudbox.ml +mudhighmar.cf +mudhighmar.ga +mudhighmar.gq +mudhighmar.tk +mudjigbsd.shop +muehlacker.tk +muell.email +muell.icu +muell.monster +muell.ru +muell.xyz +muellemail.com +muellmail.com +muellpost.de +muezafgse3lhny3.xyz +muffin-rezept.org +muffinbasketap.com +muffkisses.com +mufmg2.us +muftappu.online +mufux.com +mugamesandsoft.info +mugestores.site +mugglenet.org +muggycloc.us +muggyfunny.com +mughbecur.cf +mughbecur.gq +mughbecur.tk +mughftg5rtgfx.gq +mugladatemizlik.com +muglaelitmedya.com +muglaelitmermer.com +muglakaptanoperatorluk.com +muglakonut.xyz +muglamarket.online +muglavo.cf +muglavo.ga +muglavo.gq +muglavo.ml +muglavo.tk +mugshots.fun +mugsnbuds.com +mugua1.com +muguafu.com +muhabbetkusufiyatlari.com +muhamadnurdin.us +muhammad-ali-trophy.ru +muhammadafandi.com +muhammetsayar.xyz +muhasebe.app +muhdioso8abts2yy.cf +muhdioso8abts2yy.ga +muhdioso8abts2yy.gq +muhdioso8abts2yy.ml +muhdioso8abts2yy.tk +muhendisi.com +muhis3.us +muhoy.com +muimail.com +muirlea.com +muj10.space +mujaz.net +mujiuazhai.com +mujizatqq.com +mujizatqq.info +muju.site +mukemmelhibiskus.site +mukund.info +mulberry.de +mulberry.eu +mulberrybags-outlet.info +mulberrybagsgroup.us +mulberrybagsoutletonlineuk.com +mulberrymarts.com +mulberrysmall.co.uk +mule.cd +muleaks.com +muledeerjack.com +muleno.info +mulfide.cf +mulfide.ga +mulfide.tk +mulitcloud.ninja +mulix.info +mulix.online +mulix.tech +mull.email +mullemail.com +mullerd.gq +mullervzcn.space +mulligan.leportage.club +mullmail.com +mulrogar.cf +mulrogar.ga +mulrogar.gq +mulrogar.ml +mulrogar.tk +mulseehal.cf +mulseehal.ga +mulseehal.tk +multaneohe.icu +multech-pbc.com +multerchanez.com +multfilmmoney.ru +multi-car-insurance.net +multibus.info +multicard.club +multicherna.monster +multicultural.center +multidesign.info +multidisplay.net +multidresses.com +multidrone.ru +multielektonik.com +multifamilyinvestment.com +multifocal.haus +multihosted.online +multihosted.site +multilingual-health-education.net +multimediag.online +multinetwork.online +multiplanet.de +multiplayerwiigames.com +multipleorgasmman.com +multiplexer.us +multiprim.com +multireha.pl +multisourceproductsandservicesportals.com +multispecialtyaestheticacademy.org +multitip.email +multitul-lath.ru +multy-2019.ru +mumajun.com +mumba.website +mumbaibjp.org +mummodesign.biz +mummybags.ru +mumoda.info +mumpangmeumpeung.space +mumspousallot.website +mumulacy.com +munchiejanefoods.com +munchnburritobarkildare.com +munchtalk.net +muncloud.online +mundobatala.com +mundocripto.com +mundodalele.com +mundodeamor.org +mundodigital.me +mundoflix.net +mundohispanico.mobi +mundohobby.net +mundonegociosdigitais.com +mundopregunta.com +mundoregistral.com +mundosmart.life +mundri.tk +muni-kuni-tube.ru +muniado.waw.pl +munichmail.online +municiamailbox.com +munired.org +munis.site +munoubengoshi.gq +munster-pizza-limerick.com +munx4i.space +muonline.monster +muora.com +mupload.nl +mupre.xyz +muq.orangotango.tk +muqaise.com +muqoel.shop +muqwftsjuonmc2s.cf +muqwftsjuonmc2s.ga +muqwftsjuonmc2s.gq +muqwftsjuonmc2s.ml +muqwftsjuonmc2s.tk +muran.best +muratcaliskan.online +muratkerem.ml +muratkerem123.cf +muratpasagenclik.xyz +murattomruk.com +muratveyaraglai.tk +murcasinotoe.ru +murghantakeaway.com +murletat.xyz +murlioter.cf +murlioter.ga +murlioter.gq +murlioter.ml +murlioter.tk +murniberita.com +murphyfg.com +murptrk.site +murraysromania.com +murticans.com +mus-max.info +mus.email +musashiazeem.com +musashisakai.life +musashisakai.site +musclebuilding.club +musclecarcorvettenationals.com +musclefactorxreviewfacts.com +musclemailbox.com +musclemaximizerreviews.info +musclesbet21.com +musclesbet22.com +musclesorenesstop.com +musealike.com +musealike.net +musealike.org +museboost.com +museodelalibertad.info +museumblog.com +museumplanet.com +musey-uglich.ru +mushroomadventure.net +mushroomadventures.info +mushroomadventures.us +mushtaqclothstore.com +musialowski.pl +music-feels-great.com +music2or.com +music4buck.pl +music4me.xyz +music896.are.nom.co +musica-clasica.com +musical-images.com +musicalinstruments2012.info +musicalmax.com +musicalnr.com +musicandmotivationmj.com +musicandsunshine.com +musicarekids.com +musicasgospel.org +musicaz.net +musicbaran54.com +musicbox.su +musiccityusa.com +musicdrom.com +musicety.com +musicfictionpoint.site +musicforallpro.info +musicfun.shop +musicha93.com +musichq.online +musichq.site +musichq.xyz +musiciantelevision.com +musick.store +musicmakes.us +musicmattersmobiledj.com +musicosapp.com +musicproducersi.com +musicresearch.edu +musicsdating.info +musicsoap.com +musict.net +musictracker.ru +musicu.ru +musicvideo.africa +musicwiki.com +musicyou.tube +musiiday.com +musikayok.ru +musikprojektet.se +musikqqpoker.com +musimliga.net +musiqfile.xyz +musiqstream.com +muskgrow.com +muskify.com +muskizyurdu.com +muskokacomputerservices.com +muslim3000.com +muslimahcollection.online +muslimjewishadvisorycouncil.org +muslumbabaninyeri.online +muslumbabaninyeri.xyz +musony.site +mustache888rp.online +mustafakiranatli.xyz +mustafayvaz.com +mustakilart.com +mustang-ford.club +mustbe.ignorelist.com +mustbedestroyed.org +mustekautomation.com +mustgread.gq +musthave.properties +musthavesharpener.ooo +mustmails.cf +mustopmarket.ru +musttufa.site +mutant.me +mutantz.xyz +mutationstormjournal.website +mutechcs.com +muthinc.net +muti.site +mutiglax.ga +mutik.ru +mutirokas.gq +mutlucarsi.com +mutter-zeitung24.website +muttonvindaloobeast.xyz +muttvomit.com +muttwalker.net +mutualbags.com +mutualhomebuyers.com +mutualmed.net +mutualmedinsuranceservices.com +mutualmedsd.com +mutualmetarial.org +mutualwork.com +muutrk.com +muuyharold.com +muvilo.net +muvita.store +muwawa.ru +muwgnresz.shop +muwiki.net +muxcheng.xyz +muyoc.com +muyopon.xyz +muyrte4dfjk.cf +muyrte4dfjk.ga +muyrte4dfjk.gq +muyrte4dfjk.ml +muyrte4dfjk.tk +muz-tracker.site +muzaffersanli.cf +muzaffersanli.ml +muzaffersanli.tk +muzamarket.com +muzhkontrol.ru +muzhpay.xyz +muzhskaiatema.com +muzhskoye.ru +muzida.icu +muziekreleasen.com +muzik-fermer.ru +muzikaper.ru +muzikcim.xyz +muziklofe.tk +muzlishko.com +muzmes.ru +muzolabs.net +muzoo.online +muzotop.online +muzzamarket.com +muzzmo.online +mv1951.cf +mv1951.ga +mv1951.gq +mv1951.ml +mv1951.tk +mv6uylrxk46yv1h.xyz +mvat.de +mvb2x.us +mvd-trading.com +mvdlnl.shop +mvhjmc.com +mvkuznecov.ru +mvlaw.us +mvlnjnh.pl +mvmbetting.com +mvmusic.top +mvo.pl +mvoa.site +mvom.us +mvoudzz34rn.cf +mvoudzz34rn.ga +mvoudzz34rn.gq +mvoudzz34rn.ml +mvoudzz34rn.tk +mvpdream.com +mvrh.com +mvrht.com +mvrht.net +mvsbesbuy.com +mvssv.com +mvswydnps.pl +mvtoe.xyz +mvtqea.us +mw.orgz.in +mw763w3f640hasc.xyz +mwabviwildlifereserve.com +mwarner.org +mwbfhv.icu +mwbos.com +mwddbdqy.shop +mwdsgtsth1q24nnzaa3.cf +mwdsgtsth1q24nnzaa3.ga +mwdsgtsth1q24nnzaa3.gq +mwdsgtsth1q24nnzaa3.ml +mwdsgtsth1q24nnzaa3.tk +mwe-b.icu +mwe-c.icu +mwe-j.icu +mweaglewood.com +mwforum.org +mwfptb.gq +mwgwqe.us +mwh.group +mwinda.cd +mwkancelaria.com.pl +mwoi.us +mwoodman.com +mworks.tk +mwp4wcqnqh7t.cf +mwp4wcqnqh7t.ga +mwp4wcqnqh7t.gq +mwp4wcqnqh7t.ml +mwp4wcqnqh7t.tk +mwwcaq.com +mx.dysaniac.net +mx0.wwwnew.eu +mx1.site +mx18.mailr.eu +mx19.mailr.eu +mx40bu.com +mx8168.net +mxapp.info +mxbin.net +mxbing.com +mxcn.tk +mxfuel.com +mxg.mayloy.org +mxheesfgh38tlk.cf +mxheesfgh38tlk.ga +mxheesfgh38tlk.gq +mxheesfgh38tlk.ml +mxheesfgh38tlk.tk +mxinspect.org +mxivs.com +mxl4ix.us +mxmigration.com +mxnfashion.info +mxoi.us +mxollc.com +mxp.dns-cloud.net +mxp.dnsabr.com +mxrmedia.com +mxrsale.top +mxsxyfcyyclvip1668.com +mxv1bv.us +mxzvbzdrjz5orbw6eg.cf +mxzvbzdrjz5orbw6eg.ga +mxzvbzdrjz5orbw6eg.gq +mxzvbzdrjz5orbw6eg.ml +mxzvbzdrjz5orbw6eg.tk +my-aunt.com +my-bestnews.ru +my-big-market-online.net +my-birds.club +my-birds.fun +my-birds.space +my-blog.ovh +my-email.gq +my-eslbookclub.com +my-fashion.online +my-films.xyz +my-free-tickets.com +my-google-mail.de +my-grapes.ru +my-group223.ru +my-health.site +my-home-beautiful.com +my-insurance-resource.com +my-kapriz.ru +my-lead-tracker.ru +my-link.cf +my-maculardegenerations-ok.live +my-markey-shop-of-goods.us +my-miracle-bust.com +my-movement.online +my-newsgroups.com +my-oxygenconcentrators-ok.live +my-paylife-id197916.xyz +my-paylife-id197925.xyz +my-points.info +my-pomsies.ru +my-savings-tips.com +my-sell-shini.space +my-server-online.gq +my-standoff.ru +my-stats.info +my-teddyy.ru +my-top-shop.com +my-top5.ru +my-turisto.ru +my-webmail.cf +my-webmail.ga +my-webmail.gq +my-webmail.ml +my-webmail.tk +my-world24.de +my-yda.com +my.efxs.ca +my.longaid.net +my.safe-mail.gq +my.viola.gq +my.vondata.com.ar +my10minutemail.com +my123.live +my1bet.biz +my1bet.info +my1travel.ru +my1x2.com +my301.info +my301.pl +my365.tw +my365office.pro +my3mail.cf +my3mail.ga +my3mail.gq +my3mail.ml +my3mail.tk +my48day.xyz +my66plus.com +my6mail.com +my7km.com +myaa316.xyz +myaa318.xyz +myabbruzzo.com +myabccompany.info +myafricanherbaloils.xyz +myaibos.com +myakapulko.cf +myakapulko.ga +myakapulko.gq +myakapulko.ml +myakapulko.tk +myalahqui.cf +myalahqui.ga +myalahqui.ml +myalahqui.tk +myalias.pw +myallergiesstory.com +myallgaiermogensen.com +myallsmiledentals.com +myalphax.tech +myamberpharmacy.net +myandroidforum.ru +myanmar11.com +myanmar22.com +myanmar222.com +myanmar33.com +myanmar77.com +myanmar88889.com +myanmarems.info +myanmartourismguide.com +myannuityadvisors.com +myanny.ru +myanytimedr.com +myapexevent.net +myareasales.com +myasshole.online +myatlantatiredealer.com +myaudio24.ru +myausithelp.net +myautoinfo.ru +myautomationmarketing.com +myautomizely.net +myautomizely.org +myazg.ru +myb-o.com +myb267.com +mybaby-store.ru +myback1.xyz +myback2.xyz +mybackend.com +mybackup.com +mybackup.xyz +mybada.net +mybaegsa.xyz +mybaggage.ru +mybalancebracelets.com +mybandwallet.com +mybanglaspace.net +mybankcards.ru +mybaseballcareer.com +mybathtubs.co.cc +mybeautidress.site +mybelka.ru +mybestbook.site +mybestbooks.site +mybestcasino2018.ru +mybestmailbox.biz +mybestmailbox.com +mybestpoker77.com +mybestrecipes.ru +mybicyclepost.com +mybiginbox.info +mybikinibellyplan.com +mybirthday.com +mybisnis.online +mybitti.de +mybizarreclips.com +mybizloans.xyz +myblogos.ru +myblogpage.com +myboatsibiza.com +mybook.vegas +mybookguide.site +mybovip.com +mybpay.shop +mybreathegreenpure.com +mybridesguide.com +mybrokerportal.com +mybuilderva.com +myburseblogus.top +mybuycosmetics.com +mybx.site +mycamworld.online +mycard.net.ua +mycarepack.online +mycarfranchise.ru +mycarfranshiza.ru +mycasecompetition.com +mycashbt.club +mycasino.space +mycasinopartner.com +mycasualclothing.com +mycasualclothing.net +mycasualtshirt.com +myccav.tk +myccscollection.com +mycellphonespysoft.info +mycfee.com +mychatscloud.com +mycherry.org +mychicagoheatingandairconditioning.com +mychung.com +mycityvillecheat.com +mycleaninbox.net +myclicknflipplan.com +myclo.pro +mycloudmail.tech +mycobal.com +mycobotanica.org +mycompanigonj.com +mycontentbuilder.com +mycoolemail.xyz +mycopperridgefarm.com +mycorneroftheinter.net +mycorsly.com +mycourtcall.com +mycrazyemail.com +mycrazynotes.com +mycreatures.org +mycreatures.shop +mycreditukraine.com +mycrowdcoins.com +mycryptocare.com +mycsbin.site +mycsgo.online +mydata.mobi +mydatescheck.com +mydaughtersarmy.net +mydb.com +myde.ml +mydealgenie.com +mydeliciousrecipe.com +mydemo.equipment +mydentalpracticemarketing.com +mydesign-studio.com +mydesoho.info +mydexter.info +mydietinfo.ru +mydigitallogic.com +mydn2-yl.com +mydn2yl.com +mydoaesad.com +mydocpro.info +mydogspotsa.com +mydomainc.cf +mydomainc.ga +mydomainc.gq +mydomainc.ml +mydomainc.tk +mydomingues.com +mydreambeachisreal.com +mydreamspots.net +myeacf.com +myecho.es +myecomclubreview.com +myedhardyonline.com +myeheterrwallet.com +myeheterwallet.com +myelementzodiac.com +myelousro.ga +myelousro.gq +myelousro.ml +myelousro.tk +myemail.gic.edu.vn +myemail1.cf +myemail1.ga +myemail1.ml +myemailaddress.co.uk +myemailboxmail.com +myemailboxy.com +myemaildotcom.com +myemaill.com +myemailmail.com +myemailonline.info +myemployeragreement.com +myengineeroncall.com +myeslbookclub.com +myestuftomb.cf +myestuftomb.tk +myethioshop.com +myeyesurgeons.org +myezymaps.com +myfabiana.com +myfaceb00k.cf +myfaceb00k.ga +myfaceb00k.gq +myfaceb00k.ml +myfaceb00k.tk +myfake.cf +myfake.ga +myfake.gq +myfake.ml +myfake.tk +myfakemail.cf +myfakemail.ga +myfakemail.gq +myfakemail.tk +myfamilytable.space +myfap.online +myfavelatinas.com +myfavmailbox.info +myfavorite.info +myfavouriterecipes.org +myfbprofiles.info +myfinanceblog.club +myfirst100recipes.com +myfirstdomainname.cf +myfirstdomainname.ga +myfirstdomainname.gq +myfirstdomainname.ml +myfirstdomainname.tk +myfirstdomains1x.ml +myfirstgoldbear.ru +myfirstphp.com +myfitness24.de +myfixafone.com +myfloridadancecompany.com +myfmmmso.shop +myfoldingshoppingcart.com +myfortune.com +myfreemail.bid +myfreemail.download +myfreemail.space +myfreemanual.asia +myfreeola.uk +myfreeserver.bid +myfreeserver.download +myfullstore.fun +myfunnymoney.ru +mygames24.ru +mygamethread.com +mygenechain.net +mygeoweb.info +mygermancar.com +myggemail.com +mygid.online +myglockner.com +myglocknergroup.com +myglockneronline.com +mygoldenmail.co +mygoldenmail.com +mygoldenmail.online +mygoodapps.ru +mygooyoo.com +mygourmetcoffee.net +mygrammarly.co +mygreatarticles.info +mygreatworld.info +mygreenstyle.ru +mygrmail.com +mygsalife.xyz +mygsalove.xyz +myguides.site +myguidesx.site +mygwinin.com +myhagiasophia.com +myhairbest.ru +myhandbagsuk.com +myhashpower.com +myhdmx.com +myhealthanswers.com +myhealthbusiness.info +myhealthwisechiro.net +myhelp.top +myhf.de +myhistoryok.online +myhiteswebsite.website +myhitorg.ru +myholidaymaldives.com +myhomedecor101.xyz +myhomedesigns.info +myhomesbeautiful.com +myhoneymy.site +myhopeishere.com +myhoroscope.com +myhorripilation.com +myhost.bid +myhosteldom.ru +myhostingbg.xyz +myhotbotts.com +myhotelpratunam.com +myhtml5game.com +myidealica.site +myilitka.site +myimail.bid +myimail.men +myimmunitydrink.com +myimpressedsite.com +myinbox.icu +myinboxmail.co.uk +myindohome.services +myinternetcoupon.com +myinterserver.ml +myiulagent.com +myjhccvdp.pl +myjordanshoes.us +myjourneymychoices.com +myjourneymychoices.info +myjubaopen.com +myjuicycouturesoutletonline.com +myjunkmail.ovh +myjustmail.co.cc +myk-pyk.eu +mykafei.com +mykanpurs.info +mykas-cenas.com +mykem.ru +mykickassideas.com +mykidsfuture.com +mykiss.fr +mykonosbet17.com +mykqsp.shop +mylaguna.ru +mylameexcuses.com +mylapak.info +mylaserlevelguide.com +mylastdomainname.cf +mylastdomainname.ga +mylastdomainname.gq +mylastdomainname.ml +mylastdomainname.tk +mylcdscreens.com +myled68456.cf +myled68456.ga +myled68456.gq +myled68456.ml +myled68456.tk +mylenecholy.com +mylenobl.ru +myletter.online +mylgbt.social +mylgbtdirectory.com +mylicas.site +mylicense.ga +mylilan.site +mylinkedinsolution.com +myliroy.site +mylisot.site +mylittleali.cf +mylittleali.ga +mylittleali.gq +mylittleali.ml +mylittleali.tk +mylittlebigbook.com +mylittleprofessor.com +mylittlepwny.com +myloans.space +myloanusanetwork.com +mylollitoys.ru +mylomagazin.ru +mylondonaccountants.com +mylongemail.info +mylongemail2015.info +mylove55.com +mylovelyfeed.info +mylovetrack.ru +myltqa.com +myluxurybeijing.com +mymacaulay.org +mymadhwa.com +mymail-in.net +mymail.hopto.org +mymail13.com +mymail90.com +mymailbest.com +mymailbox.pw +mymailbox.top +mymailboxpro.org +mymailcr.com +mymailid.tk +mymailjos.cf +mymailjos.ga +mymailjos.tk +mymaill.sirket.ltd +mymailoasis.com +mymailsrv.info +mymailsystem.co.cc +mymailto.cf +mymailto.ga +mymanual.fun +mymanual.online +mymanual.site +mymanual.space +mymanual.website +mymarketinguniversity.com +mymarkpro.com +mymicme.com +mymicroleap.com +mymindfulvoice.com +mymintinbox.com +mymitel.ml +mymobilehut.icu +mymodernhome.ca +mymogensen.com +mymogensenonline.com +mymonies.info +mymood.today +mymovement.online +mymovement.space +mymovietv.site +mymp3dl.com +mymrocrib.com +mymss.com +mymulberrybags.com +mymulberrybags.us +mymy.cf +mymymymail.com +mymymymail.net +myn4s.ddns.net +mynatim.ga +mynatim.gq +mynatim.ml +mynatim.tk +mynaxodki.ru +myneocards.cz +mynes.com +mynetsolutions.bid +mynetsolutions.men +mynetstore.de +mynetwork.cf +mynetwork.com +mynewemail.info +mynewmail.info +mynewplayers.com +mynewsqa.xyz +mynewsqd.xyz +mynewsqe.xyz +mynewsqg.xyz +mynewsqi.xyz +mynewsqp.xyz +mynewsqr.xyz +mynewsqs.xyz +mynewsqt.xyz +mynewsqu.xyz +mynewsqw.xyz +mynewsqy.xyz +myngstyh.shop +myninhhatay.ga +mynning-proxy.ga +myntra.live +myntu5.pw +myofarm.org +myology.site +myomax.com +myonepercentclub.com +myonline-services.net +myonlinemobilesubapplication.site +myonlinetarots.com +myonlinetoday.info +myopang.com +myotpp.xyz +myoverlandtandberg.com +myp2p.cd +mypacks.net +mypadestates.com +mypandoramails.com +myparisevents.com +myparkersav.com +mypartyclip.de +mypat.gq +mypat.tk +mypatioshield.com +mypdfbook.ru +mypdfmanuales.xyz +mypensionchain.cf +mypeopleent.com +myperfume.website +myperfumeshop.net +mypetsrecipes.com +myphantomemail.com +myphonam.gq +myphototimeline.com +myphpbbhost.com +mypieter.com +mypietergroup.com +mypieteronline.com +mypilotsupply.com +mypiratebay.site +mypiratebay.space +myplanmypackage.com +mypmoc.com +mypool.live +mypop3.bid +mypop3.trade +mypop3.win +mypopcircle.com +mypopproject.com +myprecede.net +myprecisebilling.com +mypremiumvault.com +mypressreleasetoday.com +mypricelessheritage.com +myprofilejob.info +mypropmaster.com +myproximity.us +mypsgr579.com +mypurchasingtoday.com +mypvc.org +myqera.info +myqrops.net +myqwik.cf +myr2d.com +myr49v.us +myramires.com +myrandomthoughts.info +myrates.ru +myraybansunglasses-sale.com +myredirect.info +myreferralconnection.com +myrelationshipgoal.com +myrepository.ru +myriadcreative.net +myriadseries.com +myrice.com +myrichglobal.club +myrileyreid.com +myriotrichiaceous.best +myriviera.ru +myriwell-msk.ru +myriwellsale.ru +myrockywave.com +myroobee.ru +myroutly.xyz +myrtc.org +myrtlebeachpro.com +mysafe.ml +mysafemail.cf +mysafemail.ga +mysafemail.gq +mysafemail.ml +mysafemail.tk +mysaitenew.ru +mysamp.de +mysanity.space +mysans.tk +mysavedmoney.com +myscretarea.site +mysecretnsa.net +mysecurebox.online +mysecuredoctor.com +myself.com +mysend-mailer.ru +mysent.ml +myseocompanyfinder.com +myseotraining.org +mysermail1.xyz +mysermail2.xyz +mysermail3.xyz +myserver.monster +mysex4me.com +mysexgames.org +myshaping3.info +myshoport.com +myshopos.ru +myshoptrennd.ru +mysignaturecleaners.us +mysipa.net +mysistersvids.com +myskaterti.ru +myskin.club +myslipsgo.ga +myslipsgo.gq +myslipsgo.ml +myslipsgo.tk +myslotttings.online +mysmartadmirror.com +mysmartfinance.online +mysms.website +mysneaker.ru +mysoftbase.com +mysoicialbrothers.com +mysooti.com +mysophiaonline.com +myspaceave.info +myspacedown.info +myspaceinc.com +myspaceinc.net +myspaceinc.org +myspacepimpedup.com +myspamless.com +mysqlbox.com +mystartupweekendpitch.info +mystery-samurai.com +mystiknetworks.com +mystufffb.fun +mystvpn.com +mystyleuae.xyz +mysudo.biz +mysudo.net +mysudomail.com +mysugartime.ru +mysunrise.tech +mysuperipfs3434.com +mysupersonic.xyz +mysuperwebhost.com +mysweetpete.com +myswisswallet.com +mytabor.ru +mytalentpantry.com +mytamilyogi.site +mytandberg.com +mytandbergonline.com +mytanks.online +mytanks.ru +mytaxes.com +mytdss.ru +mytech-surprise.com +mytechhelper.info +mytechsquare.com +mytemp.email +mytempdomain.tk +mytempemail.com +mytempmail.com +mytestshop.online +mythereesa.com +mythnick.club +mythoughtsexactly.info +mythpunkart.com +mytime.cd +mytizer111.ru +mytmail.in +mytmail.net +mytools-ipkzone.gq +mytop48.xyz +mytopface.ru +mytopwebhosting.com +mytownusa.info +mytrafficsecretsbook.com +mytrashmail.com +mytrashmail.net +mytrashmailer.com +mytrashmailr.com +mytravelstips.com +mytrommler.com +mytrommlergroup.com +mytrommleronline.com +mytrumail.com +myturisto.ru +myturkeydoctor.xyz +mytuscsanaria.com +mytuttifruitygsa.xyz +mytvc.ru +mytvisonfire.com +mytvs.online +mytyrizm.ru +myugg-trade.com +myukrainebrides.com +myumail.bid +myumail.stream +myupdates.me +myurbanwork.com +myvacation.mobi +myvapepages.com +myvaultsophia.com +myvensys.com +myversebook.net +myversebook.org +myvien88suongnguyetanh.net +myvineyard.ru +myviol12ation.site +myvip11.com +myvisionpractice.com +myvtools.com +mywallets.ru +mywarnernet.net +mywdn2.us +mywebsitesecure.com +mywegolo.com +mywend.online +mywheelchairspace.info +mywholeworld.site +mywhtx.icu +mywiemyto.online +mywikitree.com +mywildcoast.com +mywondersbook.com +mywoolie.ru +myworkhelper.com +myworkturk.online +myworld.edu +myworldfame.com +myworldfame.digital +myworldfame.online +myworldfame.site +myworldfame.store +mywow2020.xyz +mywrld.site +mywrld.top +myxl.xyz +myxnode.online +myxxx-video.ru +myybloogs.com +myylytica.site +myyogurtkingdom.com +myzat.com +myzhkt.ru +myzmail.email +myzone.press +myzx.com +myzx9.com +myzxseo.net +myzygadoc.online +myzygadoc.tech +mzagency.pl +mzbysdi.pl +mzdhfv.info +mzfactoryy.com +mzfranchising.com +mzhhqo.ga +mzhttm.com +mzhzau.com +mzigg6wjms3prrbe.cf +mzigg6wjms3prrbe.ga +mzigg6wjms3prrbe.gq +mzigg6wjms3prrbe.ml +mzigg6wjms3prrbe.tk +mziqo.com +mzlcd.us +mzlmptvf.shop +mznoe.xyz +mzoneoo1.com +mzqppqpolet.info +mzrb.email +mztiqdmrw.pl +mztravels.com +mzwallacepurses.info +mzxwvrrhh.shop +mzzlmmuv.shop +n-4ever-0nce.space +n-gtld-servers.com +n-gtld-servers.net +n-luck9.com +n-mikamc.ru +n-response.com +n-root-servers.com +n-system.com +n-trend.ru +n-videostudio.ru +n-y-a.com +n.polosburberry.com +n.spamtrap.co +n.zavio.nl +n00btajima.ga +n0100.fun +n0100.online +n0100.site +n0100.space +n0100.store +n0100.tech +n0pwdvault.com +n0qyrwqgmm.cf +n0qyrwqgmm.ga +n0qyrwqgmm.gq +n0qyrwqgmm.ml +n0qyrwqgmm.tk +n0te.tk +n120.fun +n1775.com +n19wcnom5j2d8vjr.ga +n1buy.com +n1c.info +n1nja.org +n1s1.com +n21jl.com +n2fnvtx7vgc.cf +n2fnvtx7vgc.ga +n2fnvtx7vgc.gq +n2fnvtx7vgc.ml +n2fnvtx7vgc.tk +n2gsq.us +n2ikcp.us +n2x.xyz +n3dzpn.host +n3n1cq.com +n3tflx.club +n43bwg.us +n4445.com +n4e7etw.mil.pl +n4fd.com +n4hvqy.us +n4paml3ifvoi.cf +n4paml3ifvoi.ga +n4paml3ifvoi.gq +n4paml3ifvoi.ml +n4paml3ifvoi.tk +n4qjue.us +n4rgix.info +n4v.shop +n58n.com +n59fock.pl +n5fo2.us +n5iny.us +n5q6jh.us +n5r0au.us +n659xnjpo.pl +n74fzg-mail.xyz +n78qp.com +n7i8yjto1nkf7do.xyz +n7o3hg.com +n7program.nut.cc +n7s5udd.pl +n8.gs +n89p.press +n8he49dnzyg.cf +n8he49dnzyg.ga +n8he49dnzyg.ml +n8he49dnzyg.tk +n8tini3imx15qc6mt.cf +n8tini3imx15qc6mt.ga +n8tini3imx15qc6mt.gq +n8tini3imx15qc6mt.ml +n8tini3imx15qc6mt.tk +n9fjzj8t.xyz +na-cheky.ru +na-dengy-admiralx.link +na-start.com +na201.site +na288.com +na505.site +na872.site +na988.com +naaag6ex6jnnbmt.ga +naaag6ex6jnnbmt.ml +naaag6ex6jnnbmt.tk +naaats.icu +naabiztehas.xyz +naacim-car.ru +naadqm.xyz +naagle.com +naandroid.club +naaughty.club +nabatan.cf +nabatan.gq +nabatan.ml +nabatan.tk +nabclient.com +naberswealthadvisor.com +nableali.ga +nableali.ml +naboostso.cf +naboostso.ga +naboostso.gq +naboostso.ml +naboostso.tk +nabsic.shop +nabufan.com +nabuma.com +nabumage.com +nabv.icu +nabz-iran.org +naceenelah.icu +nacer.com +nacho.pw +nacion.com.mx +nacnews.cd +nacreforachan.com +nacritical.space +nada.email +nada.ltd +nadalaktywne.pl +nadbeqx.site +nadbwnas.icu +nadcpexexw.pl +nadmorzem.com +nadolpu.cf +nadolpu.gq +nadolpu.ml +nadolpu.tk +nadrektor4.pl +nadrektor5.pl +nadrektor6.pl +nadrektor7.pl +nadrektor8.pl +nadzorsb.ru +naeglesbagels.com +nafihet.xyz +nafilllo.cf +nafilllo.ga +nafilllo.gq +nafilllo.ml +nafilllo.tk +nafko.cf +nafrem3456ails.com +naga.email +naga303.us +nagabagus.com +nagabos.com +nagaikan.asia +nagambett.net +nagambtt.com +nagambtt.net +nagamems.com +nagapkqq.biz +nagapkqq.info +nagemen.shop +naghini.cf +naghini.ga +naghini.gq +naghini.ml +nagi.be +nagljadnye-posobija.ru +naguarmora.icu +naha.tk +nahanbooks.com +naheno.gq +naheno.tk +nahibe.xyz +nahidcavadov.com +nahlxyvr.shop +nahrm.org +nahsdfiardfi.cf +nahsdfiardfi.ga +nahsdfiardfi.ml +nahsdfiardfi.tk +naicomle.gq +naicomle.tk +naiditceo.cf +naiditceo.ga +naiditceo.gq +naiditceo.ml +naiditceo.tk +naierhua.com +nailartpro.ru +nailba.info +naildiscount24.de +nailfie.cd +nailsalonbook.com +nailsmasters.ru +naim.mk +nainiutv.info +naipode.ga +naipode.gq +naipode.ml +naipode.tk +naitimp3.org +naiv.guru +najiumai.com +najlepszehotelepl.net.pl +najlepszeprzeprowadzki.pl +najpierw-masa.pl +najstyl.com +najthjihj.shop +najverea.cf +najverea.ga +najverea.gq +najverea.ml +najverea.tk +naka-popa.icu +nakaan.com +nakachat.com +nakam.xyz +nakammoleb.xyz +nakapitel.ru +nake.cam +nakedmixtapes.com +nakedtruth.biz +nakil-rannes.ru +nakorder.online +nakshamakerz.com +nakugames.ru +nakzvpn.xyz +nala-besxav.ru +nalafx.com +nalchikbroiler.ru +nalds.live +nalejlabs.org +nalevo.xyz +nalichnik78.ru +naligi.ga +naligi.gq +naligi.ml +naligi.tk +nalim.shn-host.ru +nalkte.us +naloglo.ru +naloguklonen.xyz +nalogy.xyz +nalquitwen.cf +nalquitwen.ga +nalquitwen.gq +nalquitwen.ml +nalquitwen.tk +nalrini.ga +nalrini.gq +nalrini.ml +nalrini.tk +nalukers.life +nam.su +nam10.org +nam4.org +nam6.org +namail.com +namakuirfan.com +namaquanationalpark.com +namasteyogasupply.com +namatrasnik.xyz +nambi-nedv.ru +namche.org +namde.net +nameaaa.myddns.rocks +nameart.me +namebacki.com +namebrandent.com +namefake.com +namemail.xyz +namemerfo.co.pl +namemerfo.com +nameofname.pw +nameofpic.org.ua +namepicker.com +nameprediction.com +nameq.io +namesearcher4america.com +namesever.website +nameshirt.xyz +namesperplexpower.site +namesportklop.ru +nametrans.net +nametron.net +namibiansafari.org +namify.services +namilu.com +naminady.ru +namkr.com +namloongjewellery.com +namm-cakaut.ru +namnerbca.com +namste99.com +namtinh.top +namtovarovedam.ru +namtruong318.com +namunathapa.com.np +namuoutlets.site +namushops.site +namuwikiusercontent.com +namyn.com +nan.us.to +nan02.com +nanadee.com +nanafit.host +nanafit.press +nanafit.site +nanafit.store +nanaimo.tech +nanaimoopenhouses.net +nanaimotech.com +nanbianshan.com +nancykennedyforjudge.com +nancyorlandobooks.com +nancypen.com +nandini.com +nando1.com +nangnv.club +nanniesofengland.net +nano-baby.ru +nano-scaffolding.com +nanobeerandfood.site +nanobrewbakery.com +nanobumper.com +nanocentcard.com +nanodegrees.mobi +nanofielznan3s5bsvp.cf +nanofielznan3s5bsvp.ga +nanofielznan3s5bsvp.gq +nanofielznan3s5bsvp.ml +nanofielznan3s5bsvp.tk +nanokeycard.com +nanokoruyucumaske.xyz +nanonym.ch +nanopc.ru +nanostripes.com +nanotechranch.com +nanoxbio.ru +nanrosub.ga +nanrosub.gq +nanrosub.ml +nansanyule.com +nanshan-yule.com +nanshanys.info +nansyiiah.xyz +nanyang.news +nanyangpost.net +naogaon.gq +naonoan.space +naoug.com +nap2boost.com +napaeyes.com +napalm51.cf +napalm51.flu.cc +napalm51.ga +napalm51.gq +napalm51.igg.biz +napalm51.ml +napalm51.nut.cc +napalm51.tk +napalm51.usa.cc +nape.net +naphavonghotel.com +napkinfolding.club +naplesmanatees.com +napnhanhspin.work +napolix.it +nappamurra.com +nappassportmrs.website +nappillows.info +naprawa-wroclaw.xaa.pl +napston.org +napwa.org +naquke.info +narad.pro +naradi.online +naramatapress.com +narcardsearch.cf +narcardsearch.gq +narcardsearch.ml +narcardsearch.tk +narcologist.ru +narcomexica.online +narcotizes67sd.online +nares.de +nargileal.xyz +narjwoosyn.pl +narliderecooperative.info +narnia-chronik.com +narodnydoctor.ru +narrec10.club +narsan.ru +narthehpnk.space +narublevku.ru +narushiteli.info +narutogamesforum.xyz +narutotupoy.space +narutrk.site +narvetsfebv.ga +narvetsfebv.gq +narvetsfebv.ml +narvetsfebv.tk +narwhalsecurity.com +narwhalsecurity.net +nasa.iotu.nctu.me +nasadki-konditer.ru +nasaert2.website +nasamdele.ru +nascimento.com +nasedra.site +nasepismos.info +nash.ml +nasha-rasha-sezon.ru +nashaobuvka.ru +nashipodarky.ru +nashitufelki.ru +nashnettest.com +nashproekt2019.ru +nashvilledaybook.com +nashvillenailsalons.com +nashvillequote.com +nasimpourya.com +nasinyang.cf +nasinyang.ga +nasinyang.gq +nasinyang.ml +nasios.xyz +nasise.cf +nasise.ga +nasise.gq +nasise.ml +naskotk.cf +naskotk.ga +naskotk.ml +naslazhdai.ru +nasledpoluchit.xyz +nasobef.xyz +nasolalxnd.space +nasosdozator.ru +nasrinmoh45.ir +nasscopund.icu +nassecams.online +nastroikalinuksa.ru +nastroykaastralinux.ru +nastroykalinuxa.ru +nastroykamagento.ru +naszelato.pl +naszewspomnienia.site +nat4.us +nata4d.site +natachasteven.com +natacion.online +natafaka.online +natal.store +nataliacioffi.com +natalies.info +natalnaiakarta.ru +natalurbano.com +natashaparkinson.buzz +natchaler.store +nate.co.kr +nateshops.site +nathanexplosion.com +nathangould.com +natillas-shop-4u.ru +national-alert.org +national-escorts.co.uk +national.shitposting.agency +nationalartsstandard.org +nationalassociationoftinyhouses.com +nationalbiztravelerday.com +nationalcbdcorporation.com +nationalchalkassociation.com +nationalchampionshiplivestream.com +nationaldictionary.xyz +nationaleatyourveggiesday.com +nationalgardeningclub.com +nationalgerometrics.com +nationalhealthsystem.site +nationalizing203nb.online +nationallists.com +nationalsalesmultiplier.com +nationalspeedwaystadium.co +nationalwholeblood.org +nationchange.com +nationwidedebtconsultants.co.uk +nationz.poker +natitre.ru +native-spirit.cat +nativelmqt.space +nativenationsgc.com +nativityans.ru +natomar.cf +natomar.ga +natomar.ml +natomar.tk +natomasnorthlake.com +natsy.ru +natter.dev +natterstefan.dev +natuche.ru +naturadomy.com +natural-helpfored.site +naturalapiary.us +naturalbodybuildingevents.net +naturalious.com +naturalizes488ls.online +naturalnoemylo.ru +naturalproplant.com +naturalstonetables.com +naturalstudy.ru +naturaltai.ru +naturalvetcollection.com +naturalwebmedicine.net +nature-me.site +natureetscience.com +naturegift.ru +natureglobe.pw +naturesfood.shop +naturesmysteries.net +naturewild.ru +naturgate.ru +naturopathequipment.com +natxt.com +naubuti.ga +naubuti.gq +naubuti.ml +naubuti.tk +nauchi-online.ru +naucrary.site +naucrary.xyz +naudalenku.online +naudau.com +naudlenku.ru +naufra.ga +naughty-blog.com +naughtyrevenue.com +nauka999.pl +naupegical.xyz +naupoge.cf +naupoge.ga +naupoge.gq +naupoge.ml +naupoge.tk +naureico.cf +naureico.ga +naureico.gq +nauticalconsultingservices.com +nauticsteel.com +nautoriuses.website +nauyr.site +navadb90b.net +navadbet90.online +navan-palace.com +navarroinsurancesolutions.com +navelgazingmidwife.com +navelnaivetyprice.site +navendazanist.net +naveon.ru +navientlogin.net +navigandopisa.com +navigationre.com +naviosun-ca.info +navistarcumminskenworthdetroit.com +navivere.net +navlys.xyz +navmail.org +navmanwirelessoem.com +navoff.com +navyfederaill.org +navyhodnye.ru +nawe-videohd.ru +nawforum.ru +nawideti.ru +nawmin.info +nawny.com +naxamll.com +naxsw5.us +nayaritluxuryproperty.com +nayatelier.com +naybackmig.cf +naybackmig.ga +naybackmig.ml +naydrakem.ga +naydrakem.tk +nayiye.xyz +nayobok.net +nayshki.ru +nazaco.xyz +nazdem.info +nazillilisesi.xyz +nazimail.cf +nazimail.ga +nazimail.gq +nazimail.ml +nazimail.tk +nazuboutique.site +nb-me.com +nb-om.com +nb-sg.com +nb1008.com +nb3gw8-mail.xyz +nb4tx2.us +nb55.org +nb8qadcdnsqxel.cf +nb8qadcdnsqxel.ga +nb8qadcdnsqxel.gq +nb8qadcdnsqxel.ml +nb8qadcdnsqxel.tk +nbabasketball.info +nbacheap.com +nbaclubuniversity.com +nbahdtv.us +nbajerseyshop.xyz +nbaknicksx.xyz +nbalakerskidstshirt.info +nbantw.us +nbapredictor.com +nbchurch.pro +nbcstech.com +nbd.biz +nbdhny.com +nbenealto.cf +nbenealto.ga +nbenealto.ml +nbenealto.tk +nbhsssib.fun +nbjnmj.com +nbnb168.com +nbnb88.com +nbnce00.com +nbobd.com +nbox.notif.me +nboxwebli.eu +nbpwvtkjke.pl +nbrdaudi.com +nbrdw.info +nbrlnmrhbass25330.tk +nbrlnmrhbass52441.cf +nbrlnmrhbass55479.cf +nbrlnmrhbass64152.ml +nbrsndnbniyi60143.ml +nbrsndnbniyi60143.tk +nbrst7e.top +nbrzsrri.shop +nbseomail.com +nbvojcesai5vtzkontf.cf +nbvwtibt.shop +nbxtou.info +nbzmr.com +nbzqpv.site +nbzzy.com +nc.webkrasotka.com +nc0817.net +nc6lhu.us +nc6mayruth.com +ncaaomg.com +ncaccenture.com +ncatdamge.ga +ncatdamge.gq +ncatdamge.ml +ncatdamge.tk +ncbdfyy.com +nccdxn.icu +ncced.org +nccmontreal.org +ncco.de +nccts.org +ncdc-laborers.net +ncdentalimplants.com +ncdrw.info +nce2x8j4cg5klgpupt.cf +nce2x8j4cg5klgpupt.ga +nce2x8j4cg5klgpupt.gq +nce2x8j4cg5klgpupt.ml +nce2x8j4cg5klgpupt.tk +ncedetrfr8989.cf +ncedetrfr8989.ga +ncedetrfr8989.gq +ncedetrfr8989.ml +ncedetrfr8989.tk +nceng.dev +ncenucra.cf +ncenucra.gq +ncenucra.ml +ncenucra.tk +ncewy646eyqq1.cf +ncewy646eyqq1.ga +ncewy646eyqq1.gq +ncewy646eyqq1.ml +ncewy646eyqq1.tk +ncfastdeals.com +nchalfpricedlisting.com +nchalfpricelistings.com +ncid.xyz +ncinema3d.ru +ncixp.com +nclean.us +nclouddns.com +ncmaracing.com +ncmarket.site +ncmlw.info +ncncinc.com +ncov.office.gy +ncpine.com +ncreseachsociety.org +ncs-3.com +ncs-5.com +ncs-777.com +ncseculogin.info +ncsoft.top +ncstore.email +ncstore.me +nctlab.ru +nctm.de +nctuiem.xyz +ncxunaxu.shop +ncyoungliving.com +nd-re.com +nd0qm6.com +ndavis.com +ndayav.com +ndcpmarketplace.net +ndcpmarketplace.org +ndd000.tk +nddgxslntg3ogv.cf +nddgxslntg3ogv.ga +nddgxslntg3ogv.gq +nddgxslntg3ogv.ml +nddgxslntg3ogv.tk +ndek4g0h62b.cf +ndek4g0h62b.ga +ndek4g0h62b.gq +ndek4g0h62b.ml +ndek4g0h62b.tk +ndemail.ga +ndeooo.club +ndeooo.com +ndeooo.xyz +nderndeu.shop +ndesign-studio.ru +ndeunder.shop +ndfakemail.ga +ndfbmail.ga +ndgamer.online +ndgsw.info +ndhalfpricelistings.com +ndif8wuumk26gv5.cf +ndif8wuumk26gv5.ga +ndif8wuumk26gv5.gq +ndif8wuumk26gv5.ml +ndif8wuumk26gv5.tk +ndihisucy.shop +ndinstamail.ga +ndiqj1.site +ndmail.cf +ndn02.space +ndnaction.com +ndnaction.net +ndprndpa.shop +ndrb.us +nds-abilities.host +nds-assurance.website +nds-re.com +nds-was.space +nds8ufik2kfxku.cf +nds8ufik2kfxku.ga +nds8ufik2kfxku.gq +nds8ufik2kfxku.ml +nds8ufik2kfxku.tk +ndscalc.site +ndscalc.store +ndtglossary.com +ndtx74.online +ndvigenie-ru.site +ndxgokuye98hh.ga +ndyj.xyz +ndzalo.africa +ne-neon.info +ne4382.com +neajazzmasters.com +nealyauto.com +neam3b.info +neanta.ru +nearbyharvest.net +nearbyharvest.org +nearcomet.net +neard.hk +nearify.com +nearsightedness.info +neatbetting.com +neatgrosshandel.com +neathandvi.cf +neathandvi.gq +neathandvi.tk +neatlypolished.com +neatopod.store +neatslots.com +neatstats.com +neayel.icu +nebbishes.best +nebbo.online +nebltiten0p.cf +nebltiten0p.gq +nebltiten0p.ml +nebltiten0p.tk +neboleim.site +nebooblakem.xyz +nebraskaadoption.org +nebraskaquote.com +nebraskawomensbar.org +nebulaserve.com +neccomputers.com +necesce.info +necessaryengagements.info +necessure.site +nechasa.cf +nechasa.ga +nechasa.gq +nechasa.ml +nechasa.tk +necklacebeautiful.com +necklacenug.com +necklacenugs.com +necklacesbracelets.com +necknugs.com +neclipspui.com +necsilan.cf +necsilan.gq +necsilan.tk +nedbittinger.com +nedcxim-likimam.ru +nederchan.org +nedevit1.icu +nedf.de +nediyor.net +nediyor.org +nedmin.com +nedoz.com +nedrk.com +neds.cards +neds.cash +neds.coupons +neds.fail +neds.fund +neds.gold +neds.live +neds.ph +neds.promo +nedt.com +nedt.net +nedv-stupino.ru +need-mail.com +needaprint.co.uk +needcore.ru +needdentistnearme.com +needfogr.cf +needfulhost.com +needhamspine.com +needidoo.org.ua +needkasoi.tk +needlevyjs.site +needlilog.xyz +neednow.org +needrabit.cf +needrabit.ga +needrabit.gq +needrabit.tk +neenahdqgrillchill.com +neet123.com +neetbt.com +neetwiki.com +neewho.pl +nefariousunion.com +neffsnapback.com +neft.club +negated.com +negociodigitalinteligente.com +negociosyempresas.info +negrocavallo.pl +negrofilio.com +negruz.ru +nehalfpricedlisting.com +nehartcan.cf +nehartcan.ga +nehartcan.ml +nehi.info +nehzlyqjmgv.auto.pl +neibu306.com +neibu963.com +neic.com +neicastpos.cf +neicastpos.ga +neicastpos.gq +neicastpos.ml +neicastpos.tk +neighborhood765jh.online +neighbour.expert +neilanderson.net +neiro777-official.ru +neiroseven-official.ru +neiroseven.ru +neirosonic.ru +neirosystem7-store.ru +neit.email +neiti53.icu +nejamaiscesser.com +nejatngo.info +nekiga.cf +nekiga.ga +nekiga.gq +nekiga.ml +nekiga.tk +neko2.net +nekochan.fr +nekojita.blog +nekomi.net +nekopoker.com +nekopoker.net +nekopoker.org +nekursam.com +nel21.cc +nel21.me +nela.site +nelasat.com +nelasoft.com +nellolitoday.com +nellyhouse.co +nelriona.cf +nelriona.ga +nelriona.gq +nelsontvip.site +nemeczek.biz +nemesis-host.net +nemhgjujdj76kj.tk +nemisupermart.site +nempo.net +nemtxjjblt.icu +nenekbet.com +nenengsaja.cf +nenproso.tech +nenrile.ga +nenrile.gq +nenrile.ml +nentorit.cf +nentorit.ga +nentorit.gq +nentorit.ml +neo10.xyz +neo11.xyz +neo17.xyz +neo18.xyz +neo19.xyz +neo20.xyz +neo4.xyz +neo6.xyz +neobkhodimoe.ru +neoblog.icu +neocede.cf +neocede.gq +neocede.ml +neocivil.com +neoclarob.gq +neoconstruction.net +neocorp2000.com +neocri.me +neoditho.cf +neodito.cf +neodito.ga +neodito.gq +neodito.ml +neodito.tk +neoghost.com +neohkj.info +neololyc.ga +neololyc.gq +neololyc.ml +neomailbox.com +neon.waw.pl +neonaerospace.net +neonbees.info +neonclub.com +neonexchange.company +neonigratonline.ru +neonmask-official.ru +neontogel.com +neontogel.org +neontology.xyz +neonwolf.info +neopetcheats.org +neore.xyz +neosaumal.com +neoscmscheck.xyz +neosilico.com +neoss.ru +neoterism.site +neoterize359cm.online +neotlozhniy-zaim.ru +neotrade.ru +neovalorinvestimento.com +nepal-nedv.ru +nepalecolodges.com +nepbt.com +nepgame.com +nepheme.live +nephisandeanpanflute.com +nepnut.com +neppi.site +neptun-pro.ru +nepwk.com +neq.us +neracapoker.net +nerasto.gq +nerasto.ml +nerasto.tk +nercatu.ga +nercatu.ml +nercatu.tk +nerd.click +nerdmail.co +nerdonamission.com +nerds.dating +nerds4u.com.au +nerdtechgroup.com +nerdtees.space +neremail.com +nerfgunstore.com +nerimosaja.cf +nerjasolar.com +nerjavei.ru +nermin.ru +nerocommerce.shop +nerroiuty.tk +nerrys.com +nerud-domodedovo.ru +nerud-noginsk.ru +nerveequa.press +nervegl.xyz +nervmich.net +nervtmich.net +nesbee.pw +nescafelatte.com +nesda.space +neseltekstil.xyz +neshyoga.site +nesine-iddaa.org +nesine.fun +nesita.ga +nesita.gq +nesita.ml +nesita.tk +neslihanozmert.com +neslon1.site +neslon6.site +neslon8.site +nespaneed.cf +nespaneed.ga +nespaneed.ml +nespaneed.tk +nespello.com +nessmolo.cf +nessmolo.ga +nessmolo.gq +nessmolo.ml +nessmolo.tk +nessnirap.cf +nessnirap.ga +nessnirap.ml +nessnirap.tk +nesssiggawiremp.space +nessterba.cf +nessterba.ga +nessterba.gq +nessterba.ml +nessterba.tk +nestjs.pro +nestkenyas.info +nestle-usa.cf +nestle-usa.ga +nestle-usa.gq +nestle-usa.ml +nestle-usa.tk +nestor99.co.uk +nestspace.co +nesuppe.site +nesy.pl +nesy.site +net-led.com.pl +net-link.biz +net-list.com +net-order.biz +net-piyango.biz +net-privichkam.ru +net-solution.info +net191.com +net1mail.com +net2222.com +net2mail.top +net3mail.com +net5555.com +net6host.com +net8mail.com +neta123.com +netaa318.xyz +netaccessman.com +netandmarket.com +netatv.com +netawiki.com +netbonking.com +netbookera.com +netcol.club +netcom.ws +netctrcon.live +netdisk.life +netexchangeclient.com +netfacc.com +netfercloud.com +netflixaddons.xyz +netflixcostarica.com +netflixmexico.net +netflixweb.com +netgainmedia.com +netgameslots.ru +netgas.info +netgdpr.com +netgo.chat +nethermon4ik.ru +nethost5.com +nethotmail.com +nethubcommunity.com +nethurra.com +netiptv.site +netipun.cf +netipun.ga +netipun.gq +netipun.ml +netipun.tk +netiva.biz +netjex.xyz +netkao.xyz +netkiff.info +netlawlifevault.com +netmail-pro.com +netmail.tk +netmail3.net +netmail8.com +netmail9.com +netmails.com +netmails.info +netmails.net +netmarketingforum.com +netmeesters.com +netmidiadesign.com +netnotcinema.com +netolsteem.ru +netomon.com +netouyo.net +netozyr.xyz +netp22.xyz +netpaper.eu +netpaper.ml +netpdfmanuales.xyz +netpiyango.biz +netpiyango.info +netpiyango.org +netplikaye.com +netplix.site +netplixprem.xyz +netpoker303.net +netprfit.com +netprofitfunnels.com +netpromove.ml +netricity.nl +netris.net +netsec.onl +netsense.us +netsoftcreative.com +netsolutions.top +netsputnik.ru +nettefinansman.xyz +nettetasarruf.xyz +nettikasinot24.org +nettmail.com +nettogar.ml +nettrosrest.cf +nettrosrest.ga +nettrosrest.gq +nettrosrest.ml +nettrosrest.tk +netupskiy.ru +netuygun.online +netvaiclus.cf +netvaiclus.ga +netvaiclus.gq +netvaiclus.ml +netvaiclus.tk +netven.site +netveplay.com +netviewer-france.com +network-advantage.site +network-loans.co.uk +network-smart.site +network-source.com +network-streaming.com +networkafter.org +networkafter.us +networkapps.info +networkbio.com +networkcabletracker.com +networkchoice.site +networker.pro +networkersjunction.com +networkintentions.site +networkofemail.com +networkrank.com +networksfs.com +networksmail.gdn +networksmart.site +networktv.online +networthdetail.club +networthtop.club +netxservices.net +netxservices.org +netzeroexpo.com +netzerofestivallondon.com +netzerofestivaluk.com +netzidiot.de +netzwerk-industrie.de +neucasinoslots.com +neuemode85.site +neufunria.gq +neufunria.ml +neujahrsgruesse.info +neujajunc.cf +neujajunc.ga +neujajunc.gq +neujajunc.tk +neulanso.cf +neulanso.gq +neulanso.tk +neundetav.cf +neundetav.ga +neundetav.gq +neundetav.ml +neundetav.tk +neuquen-labs.com +neural.host +neuro-safety.net +neuro-safety.org +neuro7-shop.ru +neuro7system.ru +neurobraincenter.com +neuroect.com +neuroleadershipsolutions.org +neurologicrehabcenter.com +neuronsfordiscovery.com +neuronsforremoteintelligence.net +neuronsworkspace.info +neuronx.trade +neurosize.com +neurosystem-cool.ru +neurosystem7-coolshop.ru +neurosystem7-org.ru +neurosystemseven-store.ru +neurosystemseven.ru +neusp.loan +neutibu.cf +neutibu.tk +neutroncloudtesting.com +neutronmail.gdn +nevada-nedv.ru +nevadafastoffers.com +nevadaibm.com +nevadamar.com +nevadaquote.com +nevadarenewables.org +nevadarp.ru +nevadasnow.com +nevadasunshine.info +nevears.info +neverbox.com +neverbox.net +neverbox.org +nevereatingagain.com +neverenuff.com +neverit.tk +nevermail.de +nevermorsss1.ru +nevermorsss3.ru +nevermorsss5.ru +nevermosss7.ru +nevernameless.com +neverneverland.ru +nevernverfsa.org.ua +neverthisqq.org.ua +nevertmail.cf +nevertoolate.org.ua +neverttasd.org.ua +neverwype.com +nevfam.ru +nevsehiralemdar.xyz +new-action-clear.host +new-beats-by-dr-dre.com +new-belstaff-jackets.com +new-berrystats.com +new-canton-house-mullingar.com +new-card.website +new-dragon-takeaway.com +new-eckwu.club +new-games.space +new-girls.club +new-health-nutrition.com +new-health.space +new-marketing-official.ru +new-money.xyz +new-moon-tullow.com +new-outlet-mart.ru +new-papa.club +new-paulsmithjp.com +new-purse.com +new-sunrise-takeaway.com +new-tisar.ru +new-victoria-dublin.com +new-world-oriental-takeaway.com +new-wow-info.ru +new-yea-action.ru +new-year-gadgets.monster +new-year-lucky-gift.icu +new-year-lucky-gifts.monster +new-year-special-gift.icu +new-year-special-gift.monster +new-york-wedding.com +new-york.host +new.viola.gq +new688e.ga +newa.wtf +newage.press +newagebotanicalsllc.com +newageprovision.net +newageprovisions.net +newairmail.com +newakie.space +newappsusa.com +newarktribune.com +newatarivcs.com +newattacks.com +newaybag.com +newayshome.ru +newbal.xyz +newbalanceretail.com +newbeatslive.club +newbeekeepers.us +newbelstaff-jackets.com +newberlindentists.com +newberry-stats.com +newberrystat-s.com +newberrytully.com +newborn24.com +newbornart.uk +newbpotato.tk +newbridesguide.com +newbrunswickdentists.com +newbrunswickdoctors.com +newburghapartments.com +newburlingtoncoatfactorycoupons.com +newc.site +newcanada-goose-outlet.com +newcartones.xyz +newceilingsbrevard.com +newcentermc.ru +newcentglos.cf +newcentglos.ga +newcentglos.ml +newcentglos.tk +newchristianlouboutinoutletfr.com +newchristianlouboutinshoesusa.us +newclarkcity.guide +newcoloringpage.club +newcolumbiainc.com +newcomerprograms.org +newdawnnm.xyz +newdaydevelopment.org +newdaykg.tk +newdesigner-watches.info +newdesignmedia.info +newdewata88.com +newdigitalmediainc.com +newdragonchinese.com +newdrw.com +newe-mail.com +neweasy2.net +neweducations.ru +neweducationtools.ru +neweffe.shop +newemperorcity-galway.com +newempreendorismoemcao.com +newenglandmotorvehicleaccident.com +neweranews1.com +neweranews15.com +neweranews16.com +neweranews19.com +neweranews20.com +neweranews3.com +neweranews4.com +neweranews5.com +neweranews8.com +newerasolutions.co +newestnike.com +newestpumpshoes.info +newesttestament.us +newfilm24.ru +newfinances.ru +newfishingaccessories.com +newfloridavisionpac.live +newforestdrift.com +newformcontent.com +newfoundlandchocolatecompany.ca +newgameexpert.ru +newgeneration.cyou +newgmaill.com +newgmailruner.com +newgrandx.com +newhalik.club +newhampshirecareers.com +newhampshirequote.com +newhdblog.com +newhempcbd.com +newhomemaintenanceinfo.com +newhomepizza.com +newhopebaptistaurora.com +newhorizons.gq +newhorrizon.ru +newia.site +newideasfornewpeople.info +newik.site +newim.site +newimagedentistryoc.com +newinfogroup.website +newio.site +newiq.site +newiz.site +newj.site +newjersey-debtconsolidation.com +newjerseyaddictionrehab.com +newjerseyadoption.org +newjerseybrasil.com +newjerseyjewishmonuments.com +newjetsadabet.com +newjordanshoes.us +newjp-100.xyz +newjp-101.xyz +newjp-102.xyz +newjp-103.xyz +newkarmalooppromocodes.com +newkebabpalace.com +newland-dublin8.com +newleaf-tallaght.com +newleafwriters.com +newlifelogs.com +newlifepathways.com +newljeti.cf +newljeti.ga +newljeti.gq +newljeti.ml +newlove.com +newmail.top +newmailsc.com +newmailss.co.cc +newmandarinmalahide.com +newmangroupstore.com +newmarketingcomapny.info +newmarlborough.icu +newmedicforum.com +newmesotheliomalaywers.com +newmexicoelevatorsolutions.com +newmexicoquote.com +newmobiledevtop.club +newmoneymemo.com +newmonsteroutlet2014.co.uk +newmotionrp.ru +newmovietrailers.biz +newmrkebabmalaga.com +newmuzon.ru +newness.info +newnetfx.website +newneurosystem7.ru +newnewsforex.ru +newnodepositcasinobonuses.com +newnxnsupport.ru +newo.site +newoa.site +newob.site +newones.com +newop.site +neworderofthenorthandsouthmrcinc.com +neworleansopiaterehab.com +newpathsinmusic.org +newpdfmanuales.xyz +newpekingtakeaway.com +newpk.com +newportcosmeceuticalsinc.com +newportrelo.com +newportunderthestars.com +newpotolok24.ru +newproduct2.xyz +newproduct2020.site +newproxy.site +newpupclub.com +newreal-dating1.com +newrezadarg.xyz +newrezagozel.xyz +newrezka.online +newroc.info +news-2in1.ru +news-education.ru +news-online24.info +news-perviy.ru +news-trends.online +news-videohd.ru +news-whiz.com +news-year.ru +news3.edu +newsaa318.xyz +newsairjordansales.com +newsbook.se +newsbrut.club +newscenterdecatur.com +newscoin.club +newscorp.cf +newscorp.gq +newscorp.ml +newscorpcentral.com +newsdubi.cf +newsdubi.ga +newsdubi.ml +newsdubi.tk +newsdvdjapan.com +newserver.website +newsfeeder.org +newsforhouse.com +newsforus24.info +newsgolfjapan.com +newsgru.com +newshoneybhealthyliving.com +newshourly.net +newshubz.tk +newsinhouse.com +newsitems.com +newskit.net +newslent.space +newsletterbroadcaster.info +newsletterbroadcaster.net +newsm.info +newsmag.us +newsmaramax.ru +newsmatix.com +newsmonger.ru +newsmonster.info +newsms.pl +newsnodewire.com +newsongjapan.com +newsonlinejapan.com +newsonlinejp.com +newsouting.com +newspacetime.com +newspdf.online +newspro.fun +newsromania.xyz +newss-8.online +newssites.com +newsslimming.info +newssportsjapan.com +newstabilbettingsnapp.xyz +newstantre.cf +newstantre.ga +newstantre.gq +newstantre.ml +newstantre.tk +newstarescorts.com +newstarss.ru +newstartgo.ru +newstekno.review +newstheday.net +newstudio48.xyz +newstyle-handbags.info +newstylecamera.info +newstylehandbags.info +newstylescarves.info +newsunrisedublin7.com +newsusfun.com +newswimwear2012.info +newtakemail.ml +newtempmail.com +newtestik.co.cc +newtimespop.com +newtmail.com +newtogel.com +newtogel.xyz +newton.money +newtopian.org +newtrendmag.xyz +newtrends-shop.fun +newtrierliving.info +newtrucker.com +newtuber.info +newuggoutlet-shop.com +newulife.global +newunionnyc.com +newuserdev.org +newviral.fun +newvol.info +newway-sy.com +newwinterrss.com +newworimjq.space +newx6.info +newyearfreepas.ws +newyearnewchance.faith +newyearsevela.com +newyork-divorce.org +newyorkfamilyhistoryschool.com +newyorkfamilyhistoryschool.org +newyorkinjurynews.com +newyorkjan.com +newyorkmonthlyherald.com +newyorkoaks.com +newyorkoliveoilcompany.com +newyorkpaas.com +newyorkpersonalinjurylawyers.com +newyorkskyride.net +newzbate.com +newzbling.com +newzealand-impressions.info +newzeroemail.com +newzgraph.net +newzherald.com +nexbet40.online +nexgen-buysrentals.com +nexhibit.com +nexio.us +nexitele.com +nexofinance.us +nexostartups.com +nexral.com +nexriseinfo.tech +nexscience.tk +nexsman.com +nexswiss.org +next-mail.info +next-mail.online +next.net +next.ovh +next.umy.kr +next2cloud.info +next88home.com +next88tech.asia +nextag.com +nextbasic.store +nextbranchstrategies.com +nextcase.foundation +nextcloud.design +nextderm.com +nextdont.com +nextdoorfamilypov.com +nextemail.in +nextemail.net +nextfash.com +nextgenadmin.com +nextgencoaching.org +nextgenmail.cf +nextinnovation.network +nextlevelesport.com +nextlify.site +nextmail.in +nextmail.info +nextmarketer.com +nextmin.com +nextmola.com +nextoc.com +nextracom.info +nextshop.host +nextstopvalhalla.com +nextthingsecrets.com +nexttonorm.com +nexus188.org +nexus388.org +nexussupplys.com +nexxtconnect2020.com +nexyfo.info +neyann.site +neystipan.cf +neystipan.ga +neystipan.gq +neystipan.ml +neystipan.tk +nezamiyi.site +nezdiro.org +nezoinc.cf +nezzart.com +nf151.top +nf2m6z-mail.xyz +nf2v9tc4iqazwkl9sg.cf +nf2v9tc4iqazwkl9sg.ga +nf2v9tc4iqazwkl9sg.ml +nf2v9tc4iqazwkl9sg.tk +nf38.pl +nf5pxgobv3zfsmo.cf +nf5pxgobv3zfsmo.ga +nf5pxgobv3zfsmo.gq +nf5pxgobv3zfsmo.ml +nf5pxgobv3zfsmo.tk +nf607.site +nfaca.org +nfamilii2011.co.cc +nfast.net +nfcbilekliksistem.com +nfcq.email +nfdhelp.com +nffwrc.com +nfhtbcwuc.pl +nfirmemail.com +nfl.name +nfl49erssuperbowlshop.com +nfl5.com +nflbettings.info +nflfootballonlineforyou.com +nflixnow.pl +nfljerseyscool.com +nfljerseysussupplier.com +nflnewsforfun.com +nflravenssuperbowl.com +nflravenssuperbowlshop.com +nflshop112.com +nflxnw.website +nfmfharates.us +nfmqh.us +nfnorthfaceoutlet.co.uk +nfnov28y9r7pxox.ga +nfnov28y9r7pxox.gq +nfnov28y9r7pxox.ml +nfnov28y9r7pxox.tk +nfnyvbxt.shop +nforinpo.cf +nforinpo.ga +nforinpo.gq +nforinpo.ml +nforinpo.tk +nforunen.ga +nforunen.gq +nforunen.ml +nforunen.tk +nfovhqwrto1hwktbup.cf +nfovhqwrto1hwktbup.ga +nfovhqwrto1hwktbup.gq +nfovhqwrto1hwktbup.ml +nfovhqwrto1hwktbup.tk +nfptest.org +nfrk.us +nfs-xgame.ru +nft0hi.us +nftaac.com +nftuij.us +nfudo0.com +nfxr.ga +nfxr.tk +nfzead.us +nfzqga.com +ng9rcmxkhbpnvn4jis.cf +ng9rcmxkhbpnvn4jis.ga +ng9rcmxkhbpnvn4jis.gq +ng9rcmxkhbpnvn4jis.ml +ng9rcmxkhbpnvn4jis.tk +ngaydi.xyz +ngayngo.asia +ngc.team +ngeme.me +ngentodgan-awewe.club +ngentot.info +ngf1.com +ngg1bxl0xby16ze.cf +ngg1bxl0xby16ze.ga +ngg1bxl0xby16ze.gq +ngg1bxl0xby16ze.ml +ngg1bxl0xby16ze.tk +nghacks.com +nghiduonghoian.com +nghiencuuquocte.com +nginbox.tk +nginxphp.com +ngipsq.com +ngit9.us +ngjcyu.icu +ngo1.com +ngobakha.ga +ngoctravel.net +ngolearning.info +ngowscf.pl +ngplayer.com +ngqn.icu +ngreasr.ru +ngroove.com +ngscloud.space +ngspi.ru +ngstudio.org +ngt-taxi.ru +ngt7nm4pii0qezwpm.cf +ngt7nm4pii0qezwpm.ml +ngt7nm4pii0qezwpm.tk +ngtheir.shop +ngtierlkexzmibhv.ga +ngtierlkexzmibhv.ml +ngtierlkexzmibhv.tk +ngtix.com +ngtlcz.us +ngtleads.com +ngtohl.us +ngtrw.info +ngucoclinhan.com +nguhoc.xyz +nguhocxyz.xyz +nguoigocviet.info +nguonnhanluc.com +nguyenduyphong.tk +nguyentamvinh.ga +nguyentuanvu.asia +nguyenusedcars.com +ngwsw.info +nh3.ro +nha.best +nhacai88.online +nhadatdai.com +nhadatgiaviet.com +nhadephm.com +nhadepnhat.com +nhahangmuoiot.com +nhakhoa.xyz +nhakhokygui.com +nhanhdinhbongda.net +nhanpro.net +nhaphovinhomesquan9.com +nhatdinhmuaduocxe.info +nhatvip.us +nhaucungtui.com +nhaxinh.xyz +nhazmp.us +nhbrqigc.shop +nhcareerinstitute.org +nhdental.co +nhfg5b.online +nhghotels.net +nhgrettora.site +nhhalfpricelisting.com +nhhalfpricelistings.com +nhhburyazveno.site +nhhjgses.xyz +nhhkernpurga.site +nhhkernshtorm.site +nhhkjt.icu +nhhparkapurga.site +nhhstolbvenec.site +nhhzvenokern.site +nhi9ti90tq5lowtih.cf +nhi9ti90tq5lowtih.ga +nhi9ti90tq5lowtih.gq +nhi9ti90tq5lowtih.tk +nhifswkaidn4hr0dwf4.cf +nhifswkaidn4hr0dwf4.ga +nhifswkaidn4hr0dwf4.gq +nhifswkaidn4hr0dwf4.ml +nhifswkaidn4hr0dwf4.tk +nhisystem1.org +nhjobanerm.site +nhjxwhpyg.pl +nhkt5f.com +nhlwqdyqxp.best +nhmicrosoft.com +nhryw.info +nhs0armheivn.cf +nhs0armheivn.ga +nhs0armheivn.gq +nhs0armheivn.ml +nhs0armheivn.tk +nhserr.com +nhspatientconnector.com +nhtelyatina.site +nhuconcack.top +nhuconcack.xyz +nhuthi.design +nhvdwl.com +nhvlrc.space +nhysb.icu +nhzbw.info +nhzjbi.info +nhzlakihleba.site +ni-so.com +ni24.club +ni29.club +ni2tca.com +ni35.club +ni36.club +ni37.club +ni520wo.com +ni64ru.host +ni6tdw.us +niach.ga +niachecomp.cf +niachecomp.ga +niachecomp.gq +niacinamok.space +niagarafallsrealestateagents.com +niamhstorey.buzz +niaopie.club +niassanationalreserve.org +niatob.us +nibinsurance.com +niboptions.com +nibphina.ml +nibphina.tk +nic.aupet.it +nic58.com +nicalfajor.buzz +nice-4u.com +nice-postel.ru +nice-tits.info +nicea.online +nicebeads.biz +nicecardstores.com +nicechas.info +nicecorset.com +nicedropshop.ru +nicegarden.us +nicegashs.info +nicehao.com +nicehash-alternative.com +nicehash.review +nicehotels.live +niceintro.com +nicejoke.ru +nicelodsy.ru +nicely.info +nicemail.pro +nicemebel.pl +nicemotorcyclepart.com +nicerack.icu +nicerams.info +niceroom2.eu +nicewoodenbaskets.com +niceyou06.site +niceyou07.site +niceyou13.site +niceyou14.site +niceyou16.site +niceyou17.site +nichenetwork.net +nicheowl.net +nichess.cf +nichess.ga +nichess.gq +nichess.ml +nichestack.wiki +nicholaiburton.com +nicholascalice.com +nichole.essence.webmailious.top +nicico.net +nick-s.info +nickbizimisimiz.ml +nickelkbau.space +nickholmesfineart.net +nicklimon.com +nickloswebdesign.com +nicknassar.com +nickrizos.com +nickrosario.com +nickshankland.com +nicktac.xyz +nickyheat.net +nicldy.site +nicolabs.info +nicolaseo.fr +nicoleaniston.site +nicoleberkers55places.com +nicolhampel.com +nicomeyers.site +nicoobook.net +nicooprost.space +nicos-kebabs-takeaway.com +nicton.ru +nidama.cf +nidama.ga +nidama.gq +nidama.tk +nideno.cf +nideno.ga +nideno.gq +nideshops.site +nidomeed.ga +nidomeed.gq +nidomeed.ml +nidomeed.tk +nidvijpravo.xyz +nie-podam.pl +niechlorpe.cf +niechlorpe.ga +niechlorpe.gq +niechlorpe.ml +niechlorpe.tk +nieciaco.cf +nieciaco.ga +nieciaco.gq +nieciaco.ml +nieciaco.tk +niemozesz.pl +niepodam.pl +niesumpspyg.ga +niesumpspyg.ml +niesumpspyg.tk +nieuwdijkroleplay.online +nieuwe.shop +niewoiem.space +nieworld.website +nifewe.info +nifhht.icu +nificio.ru +nifone.ru +nigdynieodpuszczaj.pl +nigeria-nedv.ru +nigeria1.website +nigeriaforexbroker.com +nigerialog.org +nigge.rs +niggercrack.com +night.cd +night.monster +nightalone.com +nightaw.xyz +nightclubpointofsale.com +nighton.net +nightstiffprize.site +nihilista.ru +nihondirect.net +nihongames.pl +niibb.com +niicaz.club +niickel.us +niid-fino-official.ru +niid-unofficial.ru +niiduno-official.ru +nijakvpsx.com +nijefu.best +nijmail.com +nika-market24.ru +nikami.net +nikanewspro.ru +nike-air-rift-shoes.com +nike-airmax-chaussures.com +nike-airmaxformen.com +nike-nfljerseys.org +nike-shop-msk.ru +nike.coms.hk +nike270scontate.com +nikeairjordansfrance.com +nikeairjp.com +nikeairmax1zt.co.uk +nikeairmax90sales.co.uk +nikeairmax90ukzt.co.uk +nikeairmax90usa.com +nikeairmax90zr.co.uk +nikeairmax90zt.co.uk +nikeairmax90zu.co.uk +nikeairmaxonline.net +nikeairmaxskyline.co.uk +nikeairmaxvipus.com +nikeairmaxzt.co.uk +nikeblazershop.com +nikefreerunshoesuk.com +nikehhhh.com +nikehigh-heels.info +nikejashoes.com +nikejordansppascher.com +nikepopjp.com +nikerosherunshoes.xyz +nikerunningjp.com +nikesalejp.com +nikesalejpjapan.com +nikeshoejapan.com +nikeshoejp.org +nikeshoesoutletforsale.com +nikeshoesphilippines.com +nikeshox4sale.com +nikeskosalg.com +niketexanshome.com +niketrainersukzt.co.uk +nikezoomkobevenomenon5.website +niki-car.ru +niki-surf.site +niki-van1.ru +niki2019.com +nikihiklios.gr +nikiliosiufe.de +nikinihouse.co +nikitsvetkov.com +nikkibabe.com +nikkibars.icu +nikoa.best +nikofanovs.site +nikoiios.gr +nikojii.com +nikola-tver.ru +nikolausgraf.com +nikolib.ru +nikoliba.ru +nikolibik.ru +nikolibs.ru +nikolibx.ru +nikolice.ru +nikolize.ru +nikon-coolpixl810.info +nikoncamerabag.info +nikoniko.ga +nikosiasio.gr +nikossf.gr +nikostorelive.com +nikvlad.ru +nilazan.space +nilechic.store +niliis90.org +nilmen.com +nilocaserool.tk +nilufer.org +niluferevleri.xyz +nilyazilim.com +nilynaje.com +nimajalali.info +nimble.icu +nimbponmi.cf +nimbponmi.ga +nimbponmi.gq +nimbponmi.ml +nimbponmi.tk +nimcasa-carsiam.ru +nimfa.info +nimiety.xyz +nimir.org +nimonti.cf +nimonti.ga +nimonti.gq +nimonti.ml +nimonti.tk +ninagarbiras.info +ninagarbiras.net +ninayorks.info +nincsmail.com +nincsmail.hu +nine.emailfake.ml +nine.fackme.gq +ninelyn.ru +ninesclothiers.com +ninewestbootsca.com +ninezro.com +ningconra.cf +ningconra.gq +ningconra.ml +ningconra.tk +ningso.club +ninhbinhbackpackershostel.com +ninhoverde.club +ninhoverde2.club +ninhxuangiang.ml +ninin.host +ninja-mail.com +ninja-sale.com +ninja-u.com +ninja0p0v3spa.ga +ninjabinger.com +ninjacat.dev +ninjadoll.international +ninjadoll.org +ninjaenterprises.com +ninjafav.net +ninjaget.net +ninjagg.com +ninjasystem.info +ninnym.com +nins.email +nintendowii.cd +ninunne.gq +ninunne.ml +niofreeprob.cf +niofreeprob.ga +niofreeprob.gq +niofreeprob.ml +niofreeprob.tk +nipponian.com +niqr.com +nirapatta24.com +niro-sistema-7.site +niro-sistema7.site +nirojan.shop +nisankiralamacim.com +nisantasiclinic.com +nisasya.com +nisc.me +nisekoownersclub.com +nishansahib.us +nishima.live +nishtyakshop.ru +niskaratka.eu +niskopodwozia.pl +nisl.com +nisoskos.com +nissan370zparts.com +nissanleaf.club +nissanofcolumbus.online +nisvibet.cf +nisvibet.ga +nisvibet.gq +nitaaidhyan.org +nitebitestakeaway.com +nitecorestore.online +niter.xyz +niti-sudby.club +nitish.page +nitricolin.com +nitricoxidesupplementshq.com +nitricpowerreview.org +nitro-service.xyz +nitrohjbba.space +nitroshine.xyz +nittraproject.com +nitza.ga +niujkasdi.tk +niumasoitr.gq +niuyitupob.xyz +nivelirgll3.site +nivsale.top +niwalireview.net +niwghx.com +niwghx.online +niwl.net +niwpd4.info +nixemail.net +nixer3.com +nixonbox.com +niydomen897.cf +niydomen897.ga +niydomen897.gq +niydomen897.ml +niydomen897.tk +niyplunostragma.space +nizabelt.xyz +nizhegorodskiy-dommebeli.ru +nj0ut9.info +nj3dprinting.com +njamf.org +njartdump.com +njc65c15z.com +njcasinogames.com +njcomicanimecon.com +njd2o3.us +njelarubangilan.cf +njelarucity.cf +njetzisz.ga +njgqw.com +njhalfpricedlisting.com +njhalfpricelisting.com +njhempinc.com +njhjtn.ga +njhyvz.host +njiax.live +njjhjz.com +njjxwanglian.com +njlsrp.org +njmsm.com +njneuropathyhealing.com +njordcybersecurity.com +njordsecurity.com +njpsepynnv.pl +njswnh.site +njt2mb-mail.xyz +njtec.com +njwgw.info +nk52.biz +nkasaruparanationalpark.com +nkbmrd.fun +nkc2w.us +nkcompany.ru +nkcs.ru +nkdmly.fun +nkdmtc.fun +nkeepracga.cf +nkeepracga.gq +nkhfmnt.xyz +nkiehjhct76hfa.ga +nkjdgidtri89oye.gq +nkjmdj.fun +nkjmrh.fun +nkjun2ocvybkiae.xyz +nkk86.com +nkm2ab.xyz +nkm449.xyz +nkm69q.xyz +nkm7qw.xyz +nkm839.xyz +nkm8tg.xyz +nkm9gj.xyz +nkmije.xyz +nkml5j.xyz +nkmmbj.fun +nkmmpg.work +nkmms1.xyz +nkmq32.xyz +nkmq7i.xyz +nkmqel.xyz +nkmuiu.xyz +nkmvgg.xyz +nkmx8h.xyz +nknk29.com +nknq65.pl +nko.kr +nkpmhg.fun +nkpmxh.fun +nkqgpngvzg.pl +nkqmwg.fun +nkqmyl.fun +nkrozy9wr2snrcj.xyz +nkshdkjshtri24pp.ml +nktltpoeroe.cf +nktwhg.com +nkvtkioz.pl +nkwmfz.fun +nkxmjw.fun +nkyebkix.shop +nkyelectric.com +nkymmc.fun +nkymxg.fun +nl-200.xyz +nl-201.xyz +nl-205.xyz +nl.edu.pl +nl.szucsati.net +nlbassociates.com +nldroblox.online +nlfjsx.us +nlikey.com +nljke.com +nljrkz.us +nlqfw.info +nlquery.com +nlspam.cf +nlspamm.cf +nlxgwi.us +nlzl6f.info +nm-mendyka.online +nm.beardedcollie.pl +nm5905.com +nm7.cc +nmagazinec.com +nmail.cf +nmailtop.ga +nmailv.com +nmarticles.com +nmav.xyz +nmbbmnm2.info +nmbxw.info +nmfefq.us +nmfrvry.cf +nmfrvry.ga +nmfrvry.gq +nmfrvry.ml +nmfxyx.us +nmgszsm.com +nmhalfpricelisting.com +nmhalfpricelistings.com +nmkwgo.com +nmmt6yh.online +nmn2xki8vgt6ln2.xyz +nmotion.net +nmpkkr.cf +nmpkkr.ga +nmpkkr.gq +nmpkkr.ml +nmptev.xyz +nmqyasvra.pl +nmsy83s5b.pl +nmtheguardian.com +nmupnwph.shop +nmxjvsbhnli6dyllex.cf +nmxjvsbhnli6dyllex.ga +nmxjvsbhnli6dyllex.gq +nmxjvsbhnli6dyllex.ml +nmxjvsbhnli6dyllex.tk +nn2.pl +nn2d.com +nn358.com +nn46gvcnc84m8f646fdy544.tk +nn57822.com +nn5ty85.cf +nn5ty85.ga +nn5ty85.gq +nn5ty85.tk +nn7665.com +nn8802.com +nn8ty.com +nnaannah.shop +nnacg.com +nnambuzzdimp.cf +nnambuzzdimp.gq +nnambuzzdimp.ml +nnambuzzdimp.tk +nnb513.com +nnb525.com +nnb532.com +nnb536.com +nnb539.com +nnb545.com +nnb548.com +nnb553.com +nnb555.com +nnb558.com +nnbgzy.com +nneczwcql.shop +nnejakrtd.pl +nneqqj.rest +nnewshoeus.com +nneynfpif.shop +nnggffxdd.com +nnh.com +nnhyysbcr.shop +nnidea.com +nnj123.com +nnjie.com +nnkgjc.rest +nnlyf.com +nnmoe.com +nnmqustumutqp.ru +nnn062.com +nnn88.net +nnn9827.com +nnnnnn.com +nnot.net +nnoway.ru +nnpmnclgj.shop +nnpqyl.us +nnpsz.com +nnshe.com +nntv.club +nnyes.com +nnyytt.ml +nnzeg6.us +nnztu.live +nnzvh2axk4ncejm.xyz +nnzzy.com +no-365.com +no-dysfonction.com +no-more-hangover.tk +no-spam.ws +no-spammers.com +no-sugar-recipes.com +no-ux.com +no-vax.cf +no-vax.ga +no-vax.gq +no-vax.ml +no-vax.tk +no.tap.tru.io +no07.biz +no1-ayo.com +no11.xyz +no19rentalhaus.xyz +no1bahis52.com +no1bahis77.com +no2maximusreview.org +noa98.space +noaado-shop.ru +noaddedpulp.com +noahsachsgolf.com +noalatrata.org +noattr.com +noattrib.com +noattribution.com +noav9h.us +nob.sh +nobaproject.org +nobarid.com +nobiga.ga +nobiga.gq +nobiga.ml +nobiga.tk +nobihu.tokyo +nobilionrestaurant.com +nobla.org +noblechevy.com +noblelord.com +noblemail.bid +nobleperfume.info +noblepioneer.com +noblequotes.com +nobluelives.com +nobstyther.cf +nobstyther.ga +nobstyther.gq +nobstyther.tk +nobugmail.com +nobulk.com +nobuma.com +noc0szetvvrdmed.cf +noc0szetvvrdmed.ga +noc0szetvvrdmed.gq +noc0szetvvrdmed.ml +noc0szetvvrdmed.tk +noc1tb4bfw.cf +noc1tb4bfw.ga +noc1tb4bfw.gq +noc1tb4bfw.ml +noc1tb4bfw.tk +noclegi0.pl +noclegiwsieci.com.pl +noclickemail.com +nocodewp.dev +nocontestcommunication.com +nocontexto.com +nocthenet.com +nocujunas.com.pl +nod03.ru +nod9d7ri.aid.pl +nodebalancer.net +nodeclinecoverage.com +nodeclineinsurance.com +nodehaus.com +nodehaus.net +nodehouse.net +nodehouse.org +nodemix.com +nodemon.peacled.xyz +nodenycoverage.com +nodenyinsurance.com +nodeoppmatte.com +nodepositecasinous.com +nodepositslotcasino.com +nodepozits.info +nodered.com +nodesauce.com +nodezine.com +nodie.cc +nodnor.club +noe.prometheusx.pl +noedgetest.space +noelflowers.com +noelgray.store +noelia.meghan.ezbunko.top +noemail.com +noemfasten.com +noexamcoverage.com +noexisting.site +nofakeipods.info +nofaxpaydayloansin24hrs.com +nofbi.com +nofearinstitute.org +nofocodobrasil.tk +nofok.club +nogblor.online +nogbon.com +nogf.biz +nogluty.com +nogmailspam.info +nogoku.org +nogueira2016.com +nohallta.cf +nohallta.ga +nohallta.gq +nohasslecoverage.com +noicd.com +noifeelings.com +noip.today +noisefag.tk +noisemails.com +noit14.com +noithatvinh.net +noiuihg2erjkzxhf.cf +noiuihg2erjkzxhf.ga +noiuihg2erjkzxhf.gq +noiuihg2erjkzxhf.ml +noiuihg2erjkzxhf.tk +nojkishop.top +nokatmaroc.com +nokiahere.cf +nokiahere.ga +nokiahere.gq +nokiahere.ml +nokiahere.tk +nokiamail.cf +nokiamail.com +nokiamail.ga +nokiamail.gq +nokiamail.ml +nokilaser.cf +nokiratenkpol.tk +noklike.info +nokorweb.com +noktabet.info +noktabet111.com +nola.church +nolabelunlimited.info +nolazada.com +nolemail.ga +nolic.ru +nolikasdop.tk +nolimemail.com.ua +nolimitbooks.site +nolimitfiles.site +nolimithostredmail1.tk +nolions.ml +nolions.tk +nolkbacteria.host +nolofilms.info +nologyt.shop +nolpokh.site +nolted.ru +nolvadex.website +nomadproject.dev +nomadsretire.com +nomadtraderoute.com +nomail.cf +nomail.ch +nomail.fr +nomail.ga +nomail.kerenon.com +nomail.net +nomail.nodns.xyz +nomail.pw +nomail.top +nomail.xl.cx +nomail2me.com +nomailthanks.com +nomailthankyou.com +nomame.site +nomanae.site +nomeoutlet.site +nomeucu.ga +nomik.space +nominex.space +nomogeny.xyz +nomor7up.com +nomore-hairloss.info +nomoremail.net +nomoremeat.online +nomorespam.kz +nomorespamemails.com +nomorewaiters.biz +nomorkeluar.xyz +nomotor247.info +nomqllnb.shop +nomsaudiology.com +nomusnik.tk +non-shop-sale.ru +nona5758.com +nonamecyber.org +nonameex.com +nonamuda1.com +nonamuda3.com +nonano.site +nonapkr.com +nonasouq.com +nonbuss.site +noncfl.com +nonciclopedia.cf +nonciclopedia.ga +nonciclopedia.gq +nonconductors.com +noncsc.com +noncteam.com +noncyclical.best +nondtenon.cf +nondtenon.ga +nondtenon.gq +nondtenon.ml +nondtenon.tk +nonegray.info +nonescent.xyz +nonewanimallab.com +nongame.best +nonglex.tech +nongmak.net +nongzaa.cf +nongzaa.gq +nongzaa.ml +nongzaa.tk +nonicamy.com +nonlowor.cf +nonlowor.ga +nonlowor.gq +nonlowor.ml +nonohairremovalonline.com +nonom.live +nonprofccr.ru +nonprofit-al.org +nonprofit.deals +nonspam.eu +nonspammer.de +nonstop-traffic-formula.com +nontmita.cf +nontmita.ga +nontmita.tk +nontona.com +nontonbareng.org +nontransient.best +nonudle.net +nonuserans.rest +nonze.ro +noobermm.tk +noobjs.org +noobswhatelse.com +noodle-club-takeaway.com +noodlesnwraps.com +nooklan.org +noonecandoit.xyz +noopept.store +nooshop.ru +nootopics.tulane.edu +nootrolovers.shop +nootrolovers.site +nootrolovers.space +nootropicstackblog.xyz +nootropicstudy.xyz +nopecon.org +nopethsijezy.ru +noquestionsaskedinsurance.com +noquestionsaskedlifeinsurance.com +noquierobasura.ga +norabeachclub.com +norbal.org +norbukingdom.online +norcalenergy.edu +norcalsecurityca.com +norcalweather.com +norcurtainmud.website +nordaxon.se +nordlockerbusiness.com +nordpozitronik.ru +nordsecmedia.com +noref.in +noreferrer.net +norefusals.info +noreply.fr +norfolkquote.com +norguedeu.cf +norguedeu.gq +norguedeu.ml +norguedeu.tk +norih.com +norishops.site +norkinaart.net +normal.co.uk +normalteste.xyz +normandys.com +normasdeinformacionfinanciera.com +normiiotoonusfit.space +normpage.us +norseforce.com +norstil.com +nortedecorrientes.com +north-atlanta-rv-rentals.com +north-user.monster +northadamschamber.com +northandsouth.pl +northbrookcpa.net +northcarolinaultimate.com +northchicagoapartments.com +northcmu.com +northcoastbconline.com +northdallas-plasticsurgeons.com +northdallashomebuyers.com +northeastern-electric.com +northemquest.com +northentr.buzz +northernbets.co +northernrescue.kiwi +northface-down.us +northfaceeccheap.co.uk +northfaceonlineclearance.com +northfacesalejacketscouk.com +northfacesky.com +northfaceuka.com +northfaceusonline.com +northfr.xyz +northfro.xyz +northfrow.xyz +northibm.com +northlakenatomas.com +northlibertyblog.com +northmiamibeachapartments.com +northof9equine.com +northofbostonsports.net +northolmstedapartments.com +northroyaltonapartments.com +northscituate.buzz +northshorelaserclinic.com +northshoresecondmortgage.com +northsidejohnny.com +northtaranaki.com +northtips.com +northwaybaptistchurch.org +northwesthair.net +northwoodsmmj.com +northwoodtraining.com +norules.zone +norvasconlineatonce.com +norveg-nedv.ru +norwaydata.com +norwoodlumbermate.com +nos-adasr.ru +noscabies.org +nose-blackheads.com +nosemail.com +noseycrazysumrfs5.com +nosh.ml +noshrwjg.space +nosinga.cf +nosinga.gq +nosinga.ml +nosinga.tk +nosings.com +nosmasderroches.com +nosorgulamaservisi.com +nospace.info +nospam.allensw.com +nospam.barbees.net +nospam.sparticus.com +nospam.thurstons.us +nospam.today +nospam.wins.com.br +nospam.ze.tc +nospam2me.com +nospam4.us +nospamdb.com +nospamfor.us +nospammail.bz.cm +nospammail.net +nospamme.com +nospammer.ovh +nospamthanks.info +nostockui.com +nostrabirra.com +nostradamus.best +nostrajewellery.xyz +nosuger.coffee +not-a-cop.club +not0k.com +notabackdoor.xyz +notable.de +notapokemon.info +notapokemon.live +notaryaccounting.com +notarymarketing.com +notasitseems.com +notatempmail.info +notbooknotbuk.com +notchbox.info +notcutts-design.com +notcuttsgifts.com +notcuttshampers.com +notdus.xyz +notebookercenter.info +notebooks.cd +notebookware.de +noteexpress.press +noteg.xyz +notelayer.com +notemaws.site +noteregales.com +notes.ovh +notesell.ru +noteswithwings.com +notflys.info +notherone.ca +nothingbutspecial.com +nothingtoseehere.ca +nothinnutty.com +notice-booster1.site +notice-cellphone.club +notice-cleaner1.site +notice-iphone.club +notice-microsoft.com +notice-phone.club +notice-phone1.site +noticias-brasileiras-hoje.xyz +noticiasgospel.net +noticiaswordpress.com +noticiero.press +notif.cf +notif.me +notification-booster.club +notification-cellphone.club +notification-cleaner.club +notification-iphone.club +notification-phone.club +notification.agency +notification.promo +notifier.app +notion-corp.com +notion.work +notionametf.email +notionignitenegotiation.website +notivsjt0uknexw6lcl.ga +notivsjt0uknexw6lcl.gq +notivsjt0uknexw6lcl.ml +notivsjt0uknexw6lcl.tk +notmail.com +notmail.ga +notmail.gq +notmail.ml +notmailinator.com +notmyemail.tech +notreallybutseriously.com +notregmail.com +notrema.ru +notrnailinator.com +notsharingmy.info +notua.com +notvn.com +notysbook.ru +nou.best +noultya.icu +nountafor.ga +nountafor.ml +nountree.com +nourashop.com +nousavons.online +nousavons.store +nousonderwijs.online +nousurf.space +nouvellakay.com +nouvelles.pro +nov-today.ru +nov-vek.ru +nova-entre.ga +novabrana.sk +novaemail.com +novagift.ru +novagun.com +novainfosecportal.com +novaivyi.com +novalauncher.pro +novamcleanpsych.com +novartismails.com +novasagres.com +novastark.ru +novastreams661.xyz +novataim.com +novazil.com +novelbowl.xyz +novellwall.org +noveltycamera.com +noveltycars.com +novemberdelta.myverizonmail.top +novembermovo.com +novembervictor.webmailious.top +novencolor.otsoft.pl +novensys.pl +noveoninternational.com +noveonlaser.com +novgorod-nedv.ru +novidadenobrasil.com +novinki.club +novinkikino2019.ru +novipsao.club +novisad360.info +novmed1.ru +novo2019.website +novofun.com +novosib-nedv.ru +novosti-pro-turizm.ru +novosti-rus.club +novostinfo.ru +novostionline.info +novostretch.ru +novostroika76.ru +novostroiki-moscow.ru +novostroiufa.ru +novostroyka76.ru +novus.mobi +novusvision.net +novusvision.org +novzve.ru +now-fleet.com +now.im +now.mefound.com +now4you.biz +nowaittrend.com +noway.pw +noways.ddns.net +nowbuzzoff.com +nowdigit.com +nowdrafo.site +nowemail.ga +nowemailbox.com +nowgoals.xyz +nowhere.org +nowheybebe.com +nowheycafe.com +nowheymay.com +nowifizone.com +nowmount.com +nowmymail.com +nowmymail.net +nownaw.ml +nowoczesne-samochody.pl +nowoczesnesamochody.pl +nowstates.tk +nowstore19.space +nowtec.ru +nowwin100.com +nowwin13.com +nowwin3.com +nowwin33.com +nowwin37.com +nowwin40.com +nowwin42.com +nowwin49.com +nowwin57.com +nowwin72.com +nowwin74.com +nowwin77.com +nowwin8.com +nowwin84.com +nowwin92.com +nowwin94.com +nowyessir.com +nox.llc +nox88th.com +noyabrsk.me +noyon.poker +noyten.info +noyycolympics.org +nozala-company.ru +npajjgsp.pl +npas.de +npbulletin.com +npcisthere.monster +npenergyfoundation.org +npf-energetik.ru +npfbw.info +npfd.de +npgzd1.site +nphcsfz.pl +npjcby.vip +npjyal.com +npltsy.host +npnks.live +npraty.la +nproxi.com +npsyw.info +nptzw.info +npug4.us +npv.kr +npv6r1.info +npvea.us +npwfnvfdqogrug9oanq.cf +npwfnvfdqogrug9oanq.ga +npwfnvfdqogrug9oanq.gq +npwfnvfdqogrug9oanq.ml +npwfnvfdqogrug9oanq.tk +npwyh.fun +npxm.xyz +npyjpo.online +npzs.info +nqav95zj0p.kro.kr +nqeq3ibwys0t2egfr.cf +nqeq3ibwys0t2egfr.ga +nqeq3ibwys0t2egfr.gq +nqeq3ibwys0t2egfr.ml +nqeq3ibwys0t2egfr.tk +nqetqos.site +nqftsd.us +nqjht1.site +nqlzfrn.com +nqrdq1.us +nqvyo4.info +nqwfw.info +nr89.xyz +nrfd9h.us +nrhskhmb6nwmpu5hii.cf +nrhskhmb6nwmpu5hii.ga +nrhskhmb6nwmpu5hii.gq +nrhskhmb6nwmpu5hii.ml +nrhskhmb6nwmpu5hii.tk +nrihometownservices.com +nrmlresearch.ru +nrnvac.site +nroc2mdfziukz3acnf.cf +nroc2mdfziukz3acnf.ga +nroc2mdfziukz3acnf.gq +nroc2mdfziukz3acnf.ml +nroc2mdfziukz3acnf.tk +nroevi.rest +nrucel1.tk +nrwxw.info +nrzjw.info +nrzrw.info +ns12qg.us +ns2.vipmail.in +ns21.xyz +ns2dxp.us +ns4.website +ns4veh.us +nsabdev.com +nsacademy.info +nsadvr.site +nsaking.de +nsaleaks.org +nsalevip.info +nsami.com +nsandu.com +nsawsvedq.shop +nsbwsgctktocba.cf +nsbwsgctktocba.ga +nsbwsgctktocba.gq +nsbwsgctktocba.ml +nsbwsgctktocba.tk +nscoy.com +nscream.com +nsddourdneis.gr +nshgxx.com +nshoesfirst.info +nshqw.info +nsjcxs.tokyo +nsk-set.ru +nsk1vbz.cf +nsk1vbz.ga +nsk1vbz.gq +nsk1vbz.ml +nsk1vbz.tk +nslpck.us +nslrw.info +nsn22.com +nsnvrpuxx.cf +nsoreds.shop +nsqcw.info +nsr009.com +nsserver.org +nsufllibguides.best +nsvcb.us +nsw-flag.info +nswmartialarts.com +nt6868.org +ntalecom.net +ntb9oco3otj3lzskfbm.cf +ntb9oco3otj3lzskfbm.ga +ntb9oco3otj3lzskfbm.gq +ntb9oco3otj3lzskfbm.ml +ntb9oco3otj3lzskfbm.tk +ntdx.pw +ntdx.xyz +ntdxx.com +ntdy.icu +ntdz.club +ntdz.icu +ntegelan.cf +ntegelan.ga +ntegelan.gq +nteltec.com +nterdawebs.cf +nterdawebs.ga +nterdawebs.gq +nterdawebs.tk +nternetx.com +ntfifhzgy.shop +ntflx.store +ntfqw.info +ntgyeyme.shop +nthanthe.shop +nthbb.live +nthentha.shop +nthings.best +nthmail.com +nthmessage.com +ntilboimbyt.ga +ntilboimbyt.gq +ntilboimbyt.ml +ntilboimbyt.tk +ntilsibi.cf +ntilsibi.ga +ntilsibi.gq +ntilsibi.tk +ntirrirbgf.pl +ntkah7.com +ntlhelp.net +ntllma3vn6qz.cf +ntllma3vn6qz.ga +ntllma3vn6qz.gq +ntllma3vn6qz.ml +ntllma3vn6qz.tk +ntlshopus.com +ntnrw.info +ntrefz.icu +ntsj8vn8ssedt.xyz +ntt.gotdns.ch +ntub.cf +ntudofutluxmeoa.cf +ntudofutluxmeoa.ga +ntudofutluxmeoa.gq +ntudofutluxmeoa.ml +ntudofutluxmeoa.tk +ntutnvootgse.cf +ntutnvootgse.ga +ntutnvootgse.gq +ntutnvootgse.ml +ntutnvootgse.tk +ntuv4sit2ai.cf +ntuv4sit2ai.ga +ntuv4sit2ai.gq +ntuv4sit2ai.ml +ntuv4sit2ai.tk +ntvsportbet.com +ntxp.email +nty5upcqq52u3lk.cf +nty5upcqq52u3lk.ga +nty5upcqq52u3lk.gq +nty5upcqq52u3lk.ml +nty5upcqq52u3lk.tk +ntzdvaon.shop +nu-costs.com +nu588.com +nu788.com +nuacasinonest.ru +nualloydpactive.com +nuamulet.ru +nub3zoorzrhomclef.cf +nub3zoorzrhomclef.ga +nub3zoorzrhomclef.gq +nub3zoorzrhomclef.ml +nub3zoorzrhomclef.tk +nubescontrol.com +nucleoescuela.com +nucor.ru +nuctrans.org +nudayhuq.space +nude-vista.ru +nudgegame.net +nudinar.net +nuevaagroindustriasdelnorte.com +nuevomail.com +nufc.xyz +nugnecklace.com +nugnecklaces.com +nujsixm.xyz +nukahome.com +nuke.africa +nukemc.biz +nuliferecords.com +nuligepe.site +nullbox.info +nulledsec.club +nullftp.com +nullmachine.org +nullscriptz.online +nullsrushwars.ru +nullwasp.net +nultxb.us +numanavale.com +numandfio.gq +number1mail.ir +numberclimbing.xyz +numbers2design.com +numbersstationmovie.com +numbic.com +numbobulator.com +numenism.xyz +numerology.zone +numikrest.cf +numitas.cf +numitas.ga +numitas.gq +numitas.tk +nummbereins.xyz +nummerplaatcheck.site +nummumcanada.com +numoika.ml +numunemektebi.org +numutore63.bid +numweb.ru +numwert.tk +nunagom.shop +nunscore.com +nunung.cf +nunungcantik.ga +nunungnakal.ga +nunungsaja.cf +nuny.ru +nunyc.com +nuo.co.kr +nuo.kr +nuovi-incontri.com +nupagadi.ru +nuprice.co +nupurer.ru +nuqhvb1lltlznw.cf +nuqhvb1lltlznw.ga +nuqhvb1lltlznw.gq +nuqhvb1lltlznw.ml +nuqhvb1lltlznw.tk +nuqypepalopy.rawa-maz.pl +nuras.site +nurbahar.com +nurdea.biz +nurdea.com +nurdea.net +nurdead.biz +nurdeal.biz +nurdeal.com +nurdeas.biz +nurdeas.com +nurdintv.com +nurdsgetbad2015.com +nurefy.info +nurfuerspam.de +nurkowania-base.pl +nurothcuddstal.site +nurotohaliyikama.xyz +nurpharmacy.com +nursaigidi.ml +nursaigidi.tk +nursalive.com +nursejobsinflorida.com +nurseryschool.ru +nurseryshop.live +nursinghomecareinformation.com +nursinghomecarenearme.com +nursingjobsin.com +nursinkfky.space +nurslist.com +nursultancity.info +nurturemeal.site +nurturingrecipes.com +nuruvi.com +nus.edu.sg +nusaas.com +nusamart.site +nussc.com +nustudiekiezen.online +nut-cc.nut.cc +nut.cc +nutaart.ru +nutcc.nut.cc +nutimaintegrative.com +nutimaintegrativehealth.com +nutimamed.com +nutimamedicine.com +nutimanaturalhealth.com +nutimanaturopathicmedicine.com +nutimand.com +nutodaynews.site +nutpa.net +nutravie.org +nutremom.com +nutrice.xyz +nutriciademo.com +nutrifood.us +nutrilovers.online +nutrilovers.shop +nutrinesweets.com +nutrition-chi.online +nutritionalpsychiatry.org +nutritiondrill.com +nutritionreporter.com +nutrizin.com +nutroastingmachine.net +nutropin.in +nuts2trade.com +nutsmine.com +nutssocrazy.com +nutzer-sicherung-1231213453-de-nutzer-system-check.ru +nuuo3n.us +nuuvocovers.com +nuvast.com +nuvexcloud.com +nuvi.site +nuvohu.info +nuxok.site +nuxuzi.info +nuzee.com +nuzhnaeda18.ru +nuznqqjzt.tk +nuzuoutlet.site +nvana.xyz +nvapplelab.com +nvb467sgs.cf +nvb467sgs.ga +nvb467sgs.gq +nvb467sgs.ml +nvb467sgs.tk +nvbxenro.shop +nvc-e.com +nvcc.org +nvce.net +nvenuntgeg.cf +nvenuntgeg.ga +nvenuntgeg.gq +nvenuntgeg.ml +nvenuntgeg.tk +nvfpp47.pl +nvgf3r56raaa.cf +nvgf3r56raaa.ga +nvgf3r56raaa.gq +nvgf3r56raaa.ml +nvgf3r56raaa.tk +nvhalfpricelistings.com +nvinsxnv.shop +nvision2011.co.cc +nvjohndeere.com +nvmetal.pl +nvn1024.us +nvnav.com +nvnav.net +nvnav.us +nvnestle.com +nvntv.top +nvntv.us +nvnvideo.net +nvnvideo.us +nvpdq3.site +nvr.services +nvr7uy.info +nvsmithteam.com +nvtelecom.info +nvtmail.bid +nvunitedfc.com +nvuti.studio +nvuti.wine +nvutty.online +nvv1vcfigpobobmxl.cf +nvv1vcfigpobobmxl.gq +nvv1vcfigpobobmxl.ml +nvw10v.us +nvwang58.com +nw-i.club +nw7cxrref2hjukvwcl.cf +nw7cxrref2hjukvwcl.ga +nw7cxrref2hjukvwcl.gq +nw7cxrref2hjukvwcl.ml +nw7cxrref2hjukvwcl.tk +nw7tnm.us +nwautoleather.com +nwcqw.info +nwcvzkhf.shop +nwd6f3d.net.pl +nwds-support.com +nweenweh.shop +nwehnwee.shop +nwesmail.com +nwklw.info +nwldx.com +nwldx.net +nwlnpy.online +nwmhsc.us +nwmob.site +nwpi.email +nwqmiw.us +nwrailnews.org +nwrealestateroots.com +nwser.us +nwsgrps.com +nwtsk5.com +nwtvqc.us +nwufewum9kpj.gq +nwumkcte.shop +nwutl.vip +nwyorkpass.com +nwytg.com +nwytg.net +nwyzoctpa.pl +nwz6q5.us +nx-mail.com +nx1.de +nx365.net +nxaipannationalpark.com +nxbclg.us +nxbrasil.net +nxbxni.us +nxdata.site +nxdgrll3wtohaxqncsm.cf +nxdgrll3wtohaxqncsm.gq +nxdgrll3wtohaxqncsm.ml +nxdgrll3wtohaxqncsm.tk +nxeswavyk6zk.cf +nxeswavyk6zk.ga +nxeswavyk6zk.gq +nxeswavyk6zk.ml +nxeswavyk6zk.tk +nxewh1.stream +nxfikjjbg.shop +nxgnsoftwaresolutions.com +nxgwr24fdqwe2.cf +nxgwr24fdqwe2.ga +nxgwr24fdqwe2.gq +nxgwr24fdqwe2.ml +nxgwr24fdqwe2.tk +nxhji1.site +nxhlgt.com +nxllw.info +nxm3zar0d.xyz +nxmwzlvux.pl +nxpeakfzp5qud6aslxg.cf +nxpeakfzp5qud6aslxg.ga +nxpeakfzp5qud6aslxg.gq +nxpeakfzp5qud6aslxg.ml +nxpeakfzp5qud6aslxg.tk +nxraarbso.pl +nxtickets.com +nxtjh.com +nxxx.club +nxy73j.us +ny-auto-sterilization.com +ny-zp.com +ny1dx7j.buzz +ny3mlv.us +ny7.me +nya365.com +nya5.com +nyaatv.com +nyabook.com +nyagan-airport.ru +nyahome.com +nyahub.com +nyahvkge2zang.xyz +nyalist.com +nyamail.com +nyanime.gq +nyanote.com +nyapic.com +nyatempto.cf +nyatempto.ga +nyatempto.gq +nyatracker.com +nyattorneys.org +nyaweb.com +nyawiki.com +nyayou.com +nybbl12.com +nybestweddingsites.com +nyc-bioidenticalhormones.com +nyc-md.com +nyc-pets.info +nycbitcoinpro.com +nyccaner.cf +nyccaner.ga +nyccaner.gq +nyccaner.ml +nyccaner.tk +nyccommunity.info +nycconstructionaccidentreports.com +nyccoronavirusbankruptcy.com +nycdatascienceacademy.com +nychealthtech.com +nyconsale.com +nycthing.com +nyctoursdiscounted.com +nyctoursonsale.com +nycvpn.com +nycwebsite.design +nydfw.info +nyeoa.live +nyepi.us +nyfashionphotographers.com +nyflcigarettes.net +nyfodtpiller.website +nygiants.org +nygmkv.icu +nyhalfpricedlistings.com +nyhalfpricelisting.com +nyhetsbrev.xyz +nyhjsydr.shop +nyic.nyc +nyikanationalpark.org +nyiwreakun.ga +nyiwreakun.gq +nyiwreakun.ml +nyjd.xyz +nyjobsnow.com +nylonbrush.biz +nylonbrush.us +nylonbrushes.biz +nylonbrushes.org +nylonbrushes.us +nymopyda.kalisz.pl +nyne.site +nyobase.com +nyoliveoil.org +nyoregan09brex.ml +nyovur.us +nypato.com +nypdchange.net +nypdchange.org +nypinterest.com +nypost.best +nyrmusic.com +nyrrc.net +nyscengage.com +nysmail.com +nyter44.website +nyumail.com +nyusul.com +nyvhuzbi.site +nywcmiftn8hwhj.cf +nywcmiftn8hwhj.ga +nywcmiftn8hwhj.gq +nywcmiftn8hwhj.ml +nywcmiftn8hwhj.tk +nyxc1.us +nz-post.press +nzach4.info +nzb.fish +nzb.land +nzbeez.com +nzdigitalmarketingpodcast.com +nzdkw.info +nzfadz.us +nzhkmnxlv.pl +nzids.com +nziyce.com +nzkfgb.site +nzmotorbikes.com +nzmymg9aazw2.cf +nzmymg9aazw2.ga +nzmymg9aazw2.gq +nzmymg9aazw2.ml +nzmymg9aazw2.tk +nzntdc4dkdp.cf +nzntdc4dkdp.ga +nzntdc4dkdp.gq +nzntdc4dkdp.ml +nzntdc4dkdp.tk +nztiea.site +nzttrial.xyz +nzufsg.icu +nzv0rz.us +nzvjv.live +o-128.asia +o-amz.xyz +o-e-z.ru +o-kee-dundrum.com +o-nalogah.ru +o-pizda.info +o-pribaltike.ru +o-response.com +o-salex.ru +o-taka.ga +o-taxi31.ru +o-tonarum.ru +o.cat +o.idigo.org +o.muti.ro +o.oai.asia +o.opendns.ro +o.polosburberry.com +o.spamtrap.ro +o000.ml +o029o.ru +o060bgr3qg.com +o0em7j.us +o0i.es +o128.asia +o128.us +o13mbldrwqwhcjik.cf +o13mbldrwqwhcjik.ga +o13mbldrwqwhcjik.gq +o13mbldrwqwhcjik.ml +o13mbldrwqwhcjik.tk +o1775.com +o1z.ru +o2.co.com +o2020-au.best +o2020-ay.best +o2020-ef.best +o2020-eg.best +o2020-ek.best +o2020-hr.icu +o2020-kv.icu +o2020-le.icu +o2020-lw.icu +o2020-ow.best +o22.com +o22.info +o2applications.com +o2gr8p.us +o2hkcb.us +o2m.org +o2stk.org +o32c.com +o3czl5.us +o3dkxw.best +o3enzyme.com +o3j5hv.us +o3vd6blm73xkgtd.xyz +o3vgl9prgkptldqoua.cf +o3vgl9prgkptldqoua.ga +o3vgl9prgkptldqoua.gq +o3vgl9prgkptldqoua.ml +o3vgl9prgkptldqoua.tk +o473ufpdtd.ml +o473ufpdtd.tk +o48ok.com +o4pmme4o0r6jk48.xyz +o4tnggdn.mil.pl +o4zkthf48e46bly.cf +o4zkthf48e46bly.ga +o4zkthf48e46bly.gq +o4zkthf48e46bly.ml +o4zkthf48e46bly.tk +o5b0hg64wmgepnj.xyz +o6.com.pl +o6hcvq.online +o6kzlcvx75b4ztk.xyz +o6liak.us +o6r2yv.us +o72n71g.best +o7665.com +o78qp.com +o7edqb.pl +o7gvve8.best +o7i.net +o7mbr0.us +o7t2auk8msryc.cf +o7t2auk8msryc.ga +o7t2auk8msryc.gq +o7t2auk8msryc.ml +o7t2auk8msryc.tk +o7vvj8.us +o87fn.com +o88s9d.site +o8ih.us +o8oedrrev40d5rg.xyz +o8t30wd3pin6.cf +o8t30wd3pin6.ga +o8t30wd3pin6.gq +o8t30wd3pin6.ml +o8t30wd3pin6.tk +o90.org +o9i.space +oa5lqy.com +oaccoin.com +oafrem3456ails.com +oahudoctorse.info +oai.asia +oaipofgs.shop +oakbrookofficecleaning.com +oakenfreach.info +oakfirepizzeria.com +oakhdu.info +oakjestfood.website +oakland4d.com +oakland4d.info +oakland4d.net +oakland4d.org +oaklandhairsalons.com +oaklandlotto.org +oakleglausseskic.com +oakley-solbriller.com +oakleyfancyflea.com +oakleyoutlet.com +oakleysaleonline.net +oakleysaleonline.org +oakleysalezt.co.uk +oakleysonlinestore.net +oakleysonlinestore.org +oakleysoutletonline.com +oakleysoutletstore.net +oakleysoutletstore.org +oakleystorevip.com +oakleysunglasses-online.co.uk +oakleysunglassescheapest.org +oakleysunglassescheapsale.us +oakleysunglassesdiscountusw.com +oakleysunglassesoutletok.com +oakleysunglassesoutletstore.org +oakleysunglassesoutletstore.us +oakleysunglassesoutletzt.co.uk +oakleysunglassessoldes.com +oakleysunglasseszt.co.uk +oakleyusvip.com +oakmannersnew.website +oakmountainholdings.com +oakmountaintech.com +oakparkattorneys.com +oakpatch.org +oaksw.com +oakwoodtrading.com +oala11.host +oalc.ru +oalegro.pl +oallenlj.com +oalsp.com +oamail.com +oao-aso.ru +oapdrp.icu +oasansor.com +oasessystem.com +oathact.us +oathijs.info +oatmealcooker.com +oatmealsshop.life +oaudienceij.com +oauth-vk.ru +oaxmail.com +oayjx.live +oazis.site +ob145.top +ob1pxgu.space +ob5d31gf3whzcoo.cf +ob5d31gf3whzcoo.ga +ob5d31gf3whzcoo.gq +ob5d31gf3whzcoo.ml +ob5d31gf3whzcoo.tk +ob5ml80wd1v83sx.xyz +ob7eskwerzh.cf +ob7eskwerzh.ga +ob7eskwerzh.gq +ob7eskwerzh.ml +ob7eskwerzh.tk +obamaiscool.com +obane.org +obateksim.info +obatmata.co +obatwasir.site +obczqk.site +obdeni.cf +obdeni.gq +obdeni.ml +obdeni.tk +obedrulit.ru +obelisk4000.cf +obelisk4000.ga +obelisk4000.gq +obenilac.com +oberegzamok.ru +obermail.com +obesesto.icu +obeseunio.xyz +obesitysurgeryhospitals.com +obet889.online +obfuscumlc.space +obfusko.com +obibike.net +obibok.de +obitoto.com +obitoto2.com +obitoto88.com +obizh.com +object.space +objectmail.com +objectuoso.com +objk.site +oblakanebo.xyz +oblate.site +obleceni-kenvelo.info +obmail.com +obmaiqiu.com +obmen-realty.ru +obmw.ru +obo.kr +obobbo.com +oboigroup.ru +obol.space +oboostdz.com +oboriza.space +oborudovanieizturcii.ru +obovseminfo.ru +obox.zone +oboxpublishing.com +oboymail.ga +oboz-digital.ru +oboz.team +obr60.space +obraslivres.com +obraz-i-krasota.ru +obrezinim.ru +obrimlesescoles.cat +obriuescoles.cat +obriulesescoles.cat +obrodak.club +observer-timesubtle-flairvitality-press.com +obserwatorbankowy.pl +obsoft.ru +obstruction.info +obtainips.com +obtqadqunonkk1kgh.cf +obtqadqunonkk1kgh.ga +obtqadqunonkk1kgh.gq +obtqadqunonkk1kgh.ml +obtqadqunonkk1kgh.tk +obtruncate.xyz +obuchenie-zarabotku.online +obufwzem.xyz +obuv-poisk.info +obuv-stoks.ru +obuvy-stok.ru +obvapos.cf +obvapos.ga +obvapos.gq +obvapos.ml +obvapos.tk +obverse.com +obviousdistraction.com +obvy.us +obwgga.icu +obxpestcontrol.com +obychnaya-zhenshchina.ru +obymbszpul.pl +obzor-it.ru +obzor-vulkan-club.com +obzornakurs.ru +oc810.site +ocam.cd +ocamerapeak.shop +ocarma.com +ocasionarium.net +occand.ru +occasionaltrip.com +occo-paris.com +ocdisplay.com +ocdogu.cf +ocdogu.ga +ocdogu.ml +ocdogu.tk +ocdvenpe.cf +ocdvenpe.ga +ocdvenpe.tk +oceanbluevanuatu.com +oceancares.xyz +oceanchinesefood.com +oceanevineyard.com +oceangardenvillashoa.com +oceanicmail.gdn +oceanpalacechinese.com +oceanparknresort.com +oceanplanetchannel.com +oceanrescueusa.org +oceanscienceanalytics.org +oceanshoreslodging.com +oceansidenailsalons.com +oceansofwaves.com +oceansummerlinagreenblog.site +oceantly.info +oceantly.us +oceanviewtobago.com +ocebet.mobi +ocebet.org +ocenka-krym.ru +ocenkalipeck.ru +oceqq.biz +ochkimoscow.ru +ochlocracy.site +ochupella.ru +ocigaht4.pc.pl +ocinjuryattorneys.com +ocitdoctors.com +ocksweet.online +ocktogram.com +ocl-ltd.com +ocn.gold +ocna.info +ocnegib.cf +ocnegib.ga +ocnegib.tk +ocotbukanmain.club +ocouponcode.com +ocqduuqha.shop +ocqxnxnoox.icu +octa-sex.com +octagon-projects.info +octagon-projects.org +octagonn.club +octalmoltenquasi.site +octetresearch.info +octobermovo.com +octolive.xyz +octomba.info +octopoda.ru +octopoos.news +octopoos.social +octopushome.ru +octowall.com +octoyo.xyz +ocuffel.top +oculist.space +ocwrqnsbv.shop +oczyszczalnie-sciekow24.pl +od-sale.online +od21gwnkte.cf +od21gwnkte.ga +od21gwnkte.gq +od21gwnkte.ml +od21gwnkte.tk +od6tdo.us +od8m2v.us +od9b0vegxj.cf +od9b0vegxj.ga +od9b0vegxj.gq +od9b0vegxj.ml +od9b0vegxj.tk +odaafariste.org +odadingmangoleh.fun +odaringrasanyaanjjingbanget.com +odatv19.com +odatv24.com +odatv26.com +odatv34.com +odatv36.com +odatv37.com +odatv40.com +odauco.website +odavissza.hu +odaymail.com +odbiormieszkania.waw.pl +odchudzanienit.mil.pl +odchudzedsfanie.pl +oddcriticalnod.website +oddfactor.net +oddhat.com +oddiyanadharmasanctuary.org +oddsbucket.com +oddsends.se +oddsmma.se +oddtheory.com +oddwoodpens.com +odegda-optom.biz +odegda-store.ru +odem.com +odemail.com +odemodiv.com +odesentupidor.com +odessabet.org +odessabetgirisadresi.com +odessabetsikayet.com +odessabetyenigiris.com +odevegec.com +odezhdu-zhenshinam.ru +odin.city +odinaklassnepi.net +odishakenduleaves.com +odixer.rzeszow.pl +odkn.com +odkrywcy.com +odlrzxunh.tk +odnazhdy-v-rossii.best +odnkonxt.shop +odnolube.ru +odnorazkacatalog.ru +odnorazovoe.ru +odnxkkxi.shop +odqykmt.pl +odseo.ru +odsniezanienieruchomosci.pl +odszkodowanie-w-anglii.eu +odtcabling.org +odu-tube.ru +oduea.store +oduemy.tokyo +odulmail.com +oduyzrp.com +odw88.com +odyssey.gold +odysseyaerocell.com +odysseyholdingsinc.com +odzyskiwaniedanych.com +oe1f42q.com +oeai.com +oeb-1368.info +oechzm.site +oecs-systems-international.com +oekakies.com +oelmjo.com +oeltzl.site +oem5w6.us +oembrush.us +oembrushes.biz +oembrushes.org +oembrushes.us +oemkoreabrand.com +oemkoreafactory.com +oemlibidoxis.icu +oempleo.com +oemsale.org +oemsoftware.eu +oemzpa.cf +oenophuagi.space +oeoqzf.pl +oepia.com +oeppeo.com +oerfa.org +oerpub.org +oertefae.tk +oeshare.biz +oeu4sdyoe7llqew0bnr.cf +oeu4sdyoe7llqew0bnr.ga +oeu4sdyoe7llqew0bnr.gq +oeu4sdyoe7llqew0bnr.ml +oeu4sdyoe7llqew0bnr.tk +oeze.com +of-maculardegeneration-ok.live +of-maculardegenerations-ok.live +of16v.us +of934.site +ofacchecking.com +ofansifbet2.com +ofauseniorlivingsok.live +ofboxcursos.com +ofc-migrate3.com +ofc-migrate4.com +ofc-migrate5.com +ofcstripe.com +ofdow.com +ofdyn.com +ofe0vj.us +ofer-eitan.biz +ofer-eitan.net +ofer-eitan.org +ofereitan.xyz +oferta.pl +ofertebune.info +oferteo.org +oferty-domiporta.pl +oferty-kredytowe.com.pl +oferty-warszawa.pl +off-keys.ru +offclktrak.com +offense.red +offensive.red +offer-like-seasons.ru +offer-stock-retail.info +offerall.biz +offerdne.com +offerinvestteam.ru +offerpagewin.xyz +offersale.info +offersmartlinks.xyz +offertemobiliari.net +offgrid-house.com +office-licentie.site +office24design.com +officebotics.com +officebuhgaltera.pp.ua +officeglossary.com +officeinhome.online +officeking.pl +officemalaga.com +officemanagementinfo.com +officepoland.com.pl +officespacemohanestate.com +officesupport.fun +officeteamorangecounty.com +officetechno.ru +officeworks.store +offichoss.site +official-bears-of-roses.ru +official-colehaan.com +official-drift-casino.com +official-iconed.website +official-louisvuitton.com +official-n.site +official-pomsies.ru +official-saints.com +official-site-admiralx.xyz +official-sunveno.ru +official-tomsshoes.net +official-trailer.ru +official.republican +official.site +official.vote +official49erssportshop.com +officialairmaxprostore.com +officialairmaxsproshop.com +officialairmaxuksshop.com +officialairpods.ru +officialbidencoin.com +officialbigo.com +officialbrands.shop +officialdiesel10bar.ru +officialdistributor.shop +officialfentybeauty.ru +officialfreerun.com +officialh.tech +officialjeep.ru +officiallifans.ru +officialltoms-shoes.com +officialltoms-shoes.org +officialmailsites.com +officialmovieclub.com +officialmulberry.com +officialmulberryonline.com +officialnflbears.com +officialnflbearsshop.com +officialnflcoltsstore.com +officialnfldenverbroncoshop.com +officialnflfalconshoponline.com +officialnflgiantspromart.com +officialnflpackerspromart.com +officialnflsf49ershop.com +officialnflsteelersprostore.com +officialngentot.cf +officialngentot.ga +officialngentot.gq +officialngentot.ml +officialngentot.tk +officialnhlstar.com +officialouisvuittonsmart.com +officialpatriotssportshop.com +officialphotoshop.com +officialravenssportshop.com +officialravensuperbowlshop.com +officialredbottomsshop.com +officialreversephonelookupsites.com +officialrolex.ru +officialsf49erssuperbowlshop.com +officialsf49ersteamshop.com +officialsnapfish.com +officialstore-ifans.ru +officialstoremonica.com +officialtiffanycoproshop.com +officialtolol.ga +officialwatchv8.ru +officieel-airmaxs.com +officieelairmaxshop.com +officiel-jordans.com +officiel-tnrequin.com +officielairmaxfr.com +officielairmaxfrance.com +officielairmaxpascher.com +officielairmaxsshop.com +officielchaussurestore.com +officiellairmaxsshop.com +officielle-jordans.com +officielleairmax.com +officiellejordan.com +officielmaxshop.com +officielnikeairmas.org +officieltnrequinfr.com +officieltnrequinfrshop.com +offisgossip.com +offline2online.asia +offreendirect.xyz +offroadcars.club +offsavi.shop +offsetmail.com +offsetprint.cloud +offshore-company.tk +offshore-proxies.net +offshorebookies.com +offshorepa.com +offsidegaming.info +offsidegaming.net +offthechainfishing.com +offthehooknola.org +offtherecordmail.com +offthewalt.com +offwhitesale.xyz +ofgmail.com +ofhyh.live +oficcial-server-v.ru +oficialnii-sait-zerkalo.ru +oficinadobitcoin.com +oficinasjorgevelasquez.com +ofinar.tk +ofmail.com +ofmailer.net +ofme.us +ofmf.co.cc +ofmuse.net +ofojwzmyg.pl +oformlenzabor.xyz +oformlenzemli.xyz +ofosp.xyz +ofrnj.us +ofservicekomp.xyz +ofsmi.org +ofstanimmi.site +ofth3crumrhuw.cf +ofth3crumrhuw.ga +ofth3crumrhuw.gq +ofth3crumrhuw.ml +ofth3crumrhuw.tk +ofvn.com +ofwchannels.su +ofwlvh.tokyo +ofzsy5.us +og-sale.online +og107lso1tgkd3h.xyz +og7nz.us +oga.bet +ogabet.casino +oganijuana.com +ogbrandy.com +ogcdhkvdw.shop +ogclone.com +ogdencondos.com +ogemail.com +oghilj.com +oginski.ru +oginskiy.ru +oginskji.ru +oginskyi.ru +ogirisim.xyz +ogirock.website +ogktbh.site +ogladajonlinezadarmo.pl +ogloszeniadladzieci.pl +ogmail.com +ogmdqv.accountant +ogmwk.us +ogonma-kaima.ru +ogorodah-rossii.ru +ogorodnikpro.ru +ograjdenoform.xyz +ogremail.net +ogretio.com +ogrlaw.net +ogrn2.ru +ogrodzenia.pl +ogronompro.ru +ogu188.com +ogu7777.net +oguzhansusam.xyz +oguzkaanbekci.xyz +ogvictory.com +ogxservices.com +ohaaa.de +ohamail.com +ohauszho.shop +ohcan.space +ohdiker.news +ohdomain.xyz +ohfurs.com +ohhalfpricedlisting.com +ohhmyohhmy.com +ohhqq.club +ohhqq.life +ohi-design.pl +ohi.tw +ohins.info +ohinspection.com +ohio-riverland.info +ohiogems.com +ohioonational.com +ohioticketpayments.xyz +ohk.life +ohkogtsh.ga +ohkogtsh.ml +ohkrn.us +ohmail.com +ohmb6j.us +ohmbet.biz +ohmbet.org +ohmbet.poker +ohmbet.soccer +ohmbet.us +ohmbetcommunity.com +ohmbetmma.com +ohmbetodds.se +ohmyaffiliates.com +ohmygolly.net +ohmyholyeco.xyz +ohmytalents.co +ohmytechnologies.com +ohneworte.love +ohnjecg.club +oho3hx.com +ohpmao.com +ohrana-biysk.ru +ohrzi.us +ohsdirect.net +ohsjgkqur.shop +ohsnap.us +ohtheprice.com +ohuyln.us +ohw88.com +ohwonder.fun +ohwonders.fun +ohxmail.com +ohyesjysuis.fr +oib6bs.com +oibo.xyz +oida.icu +oidzc1zgxrktxdwdkxm.cf +oidzc1zgxrktxdwdkxm.ga +oidzc1zgxrktxdwdkxm.gq +oidzc1zgxrktxdwdkxm.ml +oidzc1zgxrktxdwdkxm.tk +oigmail.com +oiibp.site +oiio.ltd +oiio.tech +oiiux.live +oiizz.com +oil-and-cheese.ru +oil-barrel.fun +oil360.ru +oilfastershop.com +oilgazinvest.ru +oiljje.com +oilkem.ru +oilofolay.in +oilpaintingsale.net +oilpaintingvalue.info +oilpatchasia.com +oilpatchasiajobs.com +oilrepairs.com +oils4g.info +oilvtc.com +oimail.com +oiml0m.us +oing.cf +oink8jwx7sgra5dz.cf +oink8jwx7sgra5dz.ga +oink8jwx7sgra5dz.gq +oink8jwx7sgra5dz.ml +oink8jwx7sgra5dz.tk +oinkboinku.com +oinknetworks.com +ointeractive.net +oinvest.capetown +oinvest.durban +oinvest.joburg +oioinb.com +oioio.club +oiplikai.ml +oipmail.com +oipo.com +oippg.ru +oipplo.com +oiqas.com +oisg.org +oiunpt.shop +oiwiqe.info +oiwke.com +oiwkxms.xyz +oizxwhddxji.cf +oizxwhddxji.ga +oizxwhddxji.gq +oizxwhddxji.ml +oizxwhddxji.tk +oj-sale.online +oj2dfa.us +ojaivalleytaxidermy.com +ojamail.com +ojarvtbwe.cf +ojdad.us +ojdh71ltl0hsbid2.cf +ojdh71ltl0hsbid2.ga +ojdh71ltl0hsbid2.gq +ojdh71ltl0hsbid2.ml +ojdh71ltl0hsbid2.tk +ojekqq.com +ojemail.com +ojg2.icu +ojikfw.com +ojimail.com +ojl16bxv.fun +ojnbqjtc.shop +ojobmail.com +ojolbet.com +ojosambat.cf +ojosambat.ml +ojpvym3oarf3njddpz2.cf +ojpvym3oarf3njddpz2.ga +ojpvym3oarf3njddpz2.gq +ojpvym3oarf3njddpz2.ml +ojpvym3oarf3njddpz2.tk +ojrcdzkbf.shop +ojsflnbu.shop +ojudge.com +ojypfszj.shop +ok-body.pw +ok-play.ru +ok.sy +ok1756.com +ok420dr.com +ok4ov3.us +ok52.com +ok8037.com +ok888.site +ok8883.com +ok9227.com +okabashidonerkebabmadrid.com +okakambe.com +okalexandria.com +okanchorage.com +okane-college.com +okarlington.com +okathens.com +okatlanta.com +okauseniorlivingsok.live +okaybet11.com +okaybet169.com +okaybet22.com +okaybet248.com +okaybet369.com +okaybet44.com +okaybet456.com +okaybet55.com +okaybet777.com +okaybet888.com +okays378su.online +okbackpainreliefok.live +okbatonrogue.com +okbayarea.com +okbeatsdrdre1.com +okbiloxi.com +okbimini.com +okbismarck.com +okbody.pw +okbradenton.com +okbrookhaven.com +okcancun.com +okcanton.com +okcarmel.com +okcasper.com +okcatskills.com +okcharleston.com +okchattanooga.com +okcincinnati.com +okclearwater.com +okclouds.club +okclprojects.com +okcoloradosprings.com +okcommunity.fun +okcomputer.ru +okcoronado.com +okcorralcabins.com +okcostarica.com +okcovington.com +okcozumel.com +okculvercity.com +okdallas.com +okdayton.com +okdelmar.com +okdelray.com +okdenver.com +okdiane35.pl +okdominican.com +okean-doors.ru +okece.xyz +okedison.com +okeek.live +okelpaso.com +okeoceapasajaoke.com +okeyeglassesok.live +okeyif.xyz +okezone.bid +okfargo.com +okfonow.site +okfortlauderdale.com +okfoxborough.com +okfreeport.com +okgmail.com +okgreensboro.com +okgtd.com +okhalfpricedlistings.com +okhalfpricelistings.com +okharrisburg.com +okhempstead.com +okhonolulu.com +okhykxeew.shop +okinawa.li +okinawamealprep.club +okinotv.ru +okkansascity.com +okkendall.com +okkokshop.com +okla.ltd +oklahomaadoption.org +oklahomacityeldercare.com +oklahomacityquote.com +oklahomaroofingclaims.com +oklakeland.com +oklaredo.com +oklavastore.com +okledslights.com +oklho.com +oklittleton.com +oklkfu.com +oklogu.cf +oklogu.gq +oklogu.tk +oklosalamos.com +oklosangeles.com +oklubbock.com +okmacon.com +okmail.com +okmarthasvineyard.com +okmiamilakes.com +okmilton.com +okmodesto.com +okmontevideo.com +okmoseslake.com +okna2005.ru +oknaest.ru +oknantucket.com +oknapa.com +oknapai.ru +oknaprima.ru +okndrt2ebpshx5tw.cf +okndrt2ebpshx5tw.ga +okndrt2ebpshx5tw.gq +okndrt2ebpshx5tw.ml +okndrt2ebpshx5tw.tk +okneworleans.com +oknokurierskie.pl +oknorthlasvegas.com +okocala.com +okoceancity.com +okofeps.xyz +okokay.xyz +okolkad.buzz +okorody.best +okoxnard.com +okoysterbay.com +okpanama.com +okparkcity.com +okpawtucket.com +okpickshops.store +okpickshops.tech +okplatya.ru +okpoconos.com +okportland.com +okprinceton.com +okpuntacana.com +okqm.com +okredondobeach.com +okredwoodcity.com +okrent.us +okriodejaneiro.com +okriyadh.com +okrochester.com +okrockford.com +okryszardkowalski.pl +oksalisbury.com +oksaltlakecity.com +oksanantonio.com +oksanclemente.com +oksanjose.com +oksantaana.com +oksantamonica.com +oksantodomingo.com +okseattle.com +oksihum.com +okspringfield.com +okstamford.com +okstatenisland.com +okstlouis.com +okstorytye.com +oksttropez.com +oksunglassecool.com +oksuvsjet.live +oksuvsone.live +oksuvstop.live +oktai.ru +oktempe.com +oktoberfest2012singapore.com +oktoscrape.com +oktrips.com +okujoyun.pro +okuldanismanlik.xyz +okuldokuman.online +okuldokuman.xyz +okulistykakaszubska.pl +okulsfhjntc77889.ga +okulsfhjntc77889.ml +okuneva-llc.com +okuokukitapkalmadi.cf +okuokukitapkalmadi.ml +okuokukitapkalmadi.tk +okuruguay.com +okventura.com +okwashingtondc.com +okworld.ru +okwprzemysl.org +okyanusreklamsinop.com +okzk.com +okzmvp.site +ol.telz.in +ol7se6.us +olabahis.tv +olahoo.com +olanagolar.icu +olaq.store +olaytacx.top +olb855.com +olbosi.cf +olbosi.ga +olbosi.gq +olbpoker.online +olc.one +olcanoclub.one +olchromlei.ga +olchromlei.gq +olchromlei.ml +old-recipes.com +old-street.info +oldacg.com +oldbt.com +oldcelebrities.net +oldcity56.ru +oldcitycenter.net +oldcitycenter.org +olden.com.pl +oldfaithful.org +oldgreenlawlochy.com +oldgwt.space +oldhatseo.co +oldhistory2.net +oldlaptop.ru +oldmadein.com +oldmine.ru +oldmmogamers.net +oldmummail.online +oldnavycouponsbox.com +oldreliables.org +oldroons.com +oldscheme.org +oldschoolarcade.net +oldschoolgoeshightech.com +oldschoolnewbodynow.com +oldschoolnewbodyreviews.org +oldshoolrunescape.com +oldtownehandley.org +olechnowicz.com.pl +oledemades.ru +olegfemale.org +olegfineev.site +oleginshop.ru +olegmike.org +olesres.cf +olesres.ml +olesres.tk +oleybet243.com +oleybet244.com +oleybet245.com +oleybet246.com +oleybet249.com +oleybet258.com +oleytuttu.com +olga9.ru +olgamag.ru +olgis.ru +olgsale.top +olgt6etnrcxh3.cf +olgt6etnrcxh3.ga +olgt6etnrcxh3.gq +olgt6etnrcxh3.ml +olgt6etnrcxh3.tk +olia.website +olibro.page +olimagsimple.com +olimbec.com +olimp-case.ru +olimp-in.ru +olimpix-bet.com +olinbzt.ga +olinel.cf +olinel.ga +olinel.gq +olinel.ml +olinel.tk +olinetus.com +olinhyde.com +oliosales.info +olisadebe.org +oliva-patronage.ru +olivebranchapartments.com +olivegardencouponshub.com +oliveli.com +oliveoilanalysis.com +oliveoilbank.org +oliveoilbook.com +oliveoilbuyer.com +oliveoilclass.com +oliveoilconnoisseur.com +oliveoilfarm.com +oliveoilforlife.org +oliveoilhandbook.org +oliveoillab.com +oliveoillawsuit.com +oliveoilmagic.com +oliveoilmonthclub.com +oliveoilquality.org +oliveoilscore.com +oliveoilscore.org +oliveoilscores.com +oliveoilshop.net +oliveoilsnob.com +oliveoiltest.org +oliveoiltimes.net +oliveoiltimes.org +oliveoilweek.org +olivepizza.net +olivers.kiwi +oliveruniq.com +olivesmen.xyz +olivesoap.com +olivestextures.com +olivierredon.net +oliwonders.com +olixao.ml +oljdsjncat80kld.gq +ollisterpascheremagasinfrance.com +ollowsea.com +olmail.com +olmalaimi.cf +olmalaimi.ga +olmalaimi.ml +olmalaimi.tk +oln8.us +olnzd.us +olo4lol.uni.me +olobmai.cf +olobmai.ga +olobmai.gq +olobmai.ml +ololenses.com +ololomail.in +ololzi.ga +ololzi.ml +ololzi.tk +olplq6kzeeksozx59m.cf +olplq6kzeeksozx59m.ga +olplq6kzeeksozx59m.gq +olplq6kzeeksozx59m.ml +olplq6kzeeksozx59m.tk +olqe.info +olqenotes.com +olqenotes.net +olsenmail.men +olsnornec.ml +olsnornec.tk +olsonassociates.com +olvqnr7h1ssrm55q.cf +olvqnr7h1ssrm55q.ga +olvqnr7h1ssrm55q.gq +olvqnr7h1ssrm55q.ml +olvqnr7h1ssrm55q.tk +olxtoto.net +olymbecusa.com +olymcart.com +olymcms.com +olympiaeconomicsspot.com +olympiaha.net +olympus4kids.se +olypmall.ru +olyztnoblq.pl +olzopoopume.ru +omahachurchofchrist.net +omahsimbah.com +omail.pro +omailer.xyz +omamh.info +omanizdjm.ru +omarquesantiguidades.com +ombreshorthair.com +omca.info +omdo.xyz +omeaaa124.ddns.net +omega-3-foods.com +omega.omicron.spithamail.top +omega3nutrition.com +omegacoin.org +omegafive.net +omegasale.org +omegaxray.thefreemail.top +omego.ru +omenwi.ga +omenwi.gq +omenwi.ml +omenwi.tk +omerefake.tk +omerfaruksahin.com +omerindassagi.cf +omerindassagi.ga +omerindassagi.ml +omesped7.net +omessage.gq +ometofu.shop +omfcanada.ong +omfh.net +omgameshop.com +omgdelights.com +omheightsy.com +omi4.net +omicron.omega.myverizonmail.top +omicrongamma.coayako.top +omicronlambda.ezbunko.top +omicronwhiskey.coayako.top +omidbet.name +omiptras.cf +omiptras.gq +omiptras.tk +omitof.icu +omk24.de +omkostningertil.website +oml72.space +ommail.com +omni-sports.com +omni.nu +omnicro.com +omnievents.org +omnimart.store +omnimug.com +omnius-solutions.com +omnivative.com +omnyo.com +omoomn.host +ompokerasia.com +omsk-nedv.ru +omsk-viagra.ru +omskinport.cf +omskinport.gq +omskinport.ml +omskinport.tk +omsshoesonline4.com +omsvet.ru +omtamvan.com +omtnrye.site +omumail.com +omwe.ru +omxeepez.shop +omxvfuaeg.pl +omypoker.com +omypokers.com +omzae.com +omzg5sbnulo1lro.cf +omzg5sbnulo1lro.ga +omzg5sbnulo1lro.gq +omzg5sbnulo1lro.ml +omzg5sbnulo1lro.tk +on-review.com +on888b.life +onacin.gq +onamulet.ru +onani777.com +onarleyeman.xyz +onayost.info +onbachin.cf +onbachin.ga +onbachin.gq +onbachin.ml +onbachin.tk +onbehalfof.online +onbehalfof.store +onbet.org +onbf.org +onc12.space +onca03.com +onca04.com +oncapol2.com +once-repeat.xyz +onceinawhile.asia +oncemusic.ru +oncesex.com +onchainwallet.com +onclimate.com +oncloud.ws +oncloudsaves.email +oncult.ru +ondarrowpond.com +ondeler.site +ondemandemail.top +ondemandmap.com +ondemandroadsidehelp.com +ondeondp.shop +onderwijsinzicht.net +ondesign.info +ondponde.shop +ondrejsika.sk +one-college.ru +one-exposure.com +one-mail.top +one-n-only.ru +one-shoes.ru +one-shop.online +one-time.email +one.emailfake.ml +one.fackme.gq +one.pl +one.sch.lv +one2mail.info +one55.app +oneamericca.com +oneamerixa.com +onebiginbox.com +onebillionwait.org +onebucktwobuckthree.com +onebyoneboyzooole.com +onebyzero.net +onecalltrack.com +onecasinos.net +onecitymail.com +onecj.com +oneclickauth.com +onecoin.hk +onedayconnecticut.com +onedaymail.cf +onedaymail.ga +onedie.club +onedie.xyz +onedollarbooking.com +onedonation.com +oneeuro.club +oneexch.live +onefilteronefamily.com +onefivepro.se +onegoodchair.com +onehandtyper.com +onehomework.com +onehourmarketingbook.com +onehundredmice.com +oneid.club +oneindex.in.net +oneinfra.net +oneinfra.online +oneivorycoast.com +onekindwordproject.org +onelastebyte.com +onelastebyte.net +onelegalplan.com +onelivefestival.com +onemail.host +onemail1.com +onemediail.com +onemillionlightbulbs.com +onemoremail.net +onemoretimes.info +onenewiraq.com +onenime.ga +oneoc.com +oneoffemail.com +oneoffmail.com +oneonfka.org.ua +oneooneproperty.com +onepageaway.live +onepageaway.org +onepay.cyou +onepays.club +onepiece-vostfr.stream +onepiecetalkblog.com +oneplan.pics +oneplus.events +oneraviniadrive.com +onerealbox.com +oneredirecwins.icu +onergeinsaat.xyz +onesecond365.cn +oneshot-fluxe.xyz +oneshot07.com +oneshot119.com +oneshot63.com +onesiewereld.online +onesixdevelopments.com +onesjoy.com +onespeles.ru +onestarlight.xyz +onestepaboveclean.org +onestepmail.com +onestop21.com +onestopcodeshop.com +onestopcy.com +onestopiguanashop.com +onestopinfo.ga +onestopinfo.ml +onet-pol.xyz +onet.com +onetag.org +onetaipeis.info +onetap.marketing +onetap.site +onetonco2.com +onetouchedu.com +onetouchllc.com +onetouchtv.com +oneultimatehealth.com +onewalldecorblog.website +onewaylinkcep.com +onewaymail.com +oneworldhull.com +oneworldtales.com +onfave.info +onforth.shop +onfractalforge.com +ongc.ga +ongdia.com +ongoingwall.com +ongpkr.org +ongridhost.com +ongtroi.com +onhealth.tech +onhfcridg.shop +onhide.com +onhoonhe.shop +onhrrzqsubu.pl +oni49.space +oniaj.com +oninmail.com +onit.com +onitaps.com +onitfitness.com +oniun.ru +oniwyvdxe.cf +onjckuoj.shop +onjeslent.ml +onjeslent.tk +onkolojidoktoru.org +onkolojiokulu.info +onkyo.cd +onkyo1.com +onlatedotcom.info +onleenmag-ruspe.space +onlimail.com +onlime-24.website +online-1-shop1.info +online-2-shop1.info +online-3-shop1.info +online-4-shop1.info +online-5-shop1.info +online-6-shop1.info +online-7-shop1.info +online-8-shop1.info +online-9-shop1.info +online-business-advertising.com +online-business-directory.xyz +online-casino24.us +online-dartt.pl +online-dating-bible.com +online-dating-service-sg.com +online-discount-shopping.online +online-fly.com +online-geld-verdienen.gq +online-lvs788.com +online-marketing-university.org +online-mipowerbank.ru +online-pills.xyz +online-secure-uk.xyz +online-secure.monster +online-sokolov.ru +online-std.com +online-stream.biz +online-support.tech +online-web.site +online-webtools.com +online.ms +online315.xyz +online5.ru +onlineaccutaneworldpills.com +onlineautoloanrates.com +onlineautomatenspiele.host +onlineavtomati.net +onlinebakarat.org +onlinebankingcibc.com +onlinebankingpartner.com +onlinebooking.deals +onlinecanada.biz +onlinecarinsuranceexpert.com +onlinecasino-x.ru +onlinecasinobonus6167.net +onlinecasinostop.ru +onlinecasinosunion.com +onlinechristianlouboutinshoesusa.us +onlineclub.website +onlinecollegemail.com +onlinecomputerhelp.net +onlinecoursesidehustle.com +onlinedars.com +onlinedating-site-guide.rocks +onlinedatingsiteshub.com +onlinedeals.pro +onlinedeals.trade +onlinedoctor.link +onlinedutyfreeeshop.com +onlinedutyfreeshop.com +onlineee.com +onlineempireguide.com +onlinefunnynews.com +onlinegoods.store +onlineguccibags.com +onlinegun.com +onlinehackland.com +onlinehealthreports.com +onlinehoping58.ru +onlinehunter.ml +onlineidea.info +onlineinsurancequotescar.net +onlinejazz.poker +onlinejerseysnews.com +onlinejordanretro2013.org +onlinekampanyalar.site +onlinekindergartencourse.com +onlinekurz.sk +onlinelender.xyz +onlinelenders.xyz +onlinelending.xyz +onlinemail.press +onlinemail.pw +onlinemail.xyz +onlinemailfree.com +onlinemarket100.ru +onlinemarket360.ru +onlinemarket365.ru +onlinemarketingclass.org +onlinemaster.xyz +onlinemasterytrainingacademy.com +onlinemaximizer.net +onlinemaximizers.com +onlinemedic.biz +onlinemoneyfan.com +onlinemoneymaking.org +onlinemutualfund.xyz +onlinenet.info +onlinenewsfootball.com +onlinenewyorksingles.com +onlinepaydayloansvip.com +onlinepharmacy-order.com +onlinepharmacy.name +onlineplayers.ru +onlinepoker.cd +onlinepokerdom.online +onlinepokiesau.com.au +onlineprintspain.com +onlineprivacywatch.com +onlineprofessionalorganizer.com +onlineproffitslots.ru +onlineresellerdvd.com +onlinesafedating.com +onlinescore-iq.com +onlinescore-jo.com +onlineservice.asia +onlineshoesboots.com +onlineshop24h.pl +onlineshoppingcoupons24.com +onlineshopsinformation.com +onlineslostsdeposits.ru +onlinestodays.info +onlinestoress.ru +onlinetantraclasses.com +onlinetantracourses.com +onlinete-bfirsati.org +onlinetelehealthdoctor.com +onlinetoernooien.shop +onlinetomshoeoutletsale.com +onlinetoothdoctor.com +onlinetrafficmachine.com +onlinetravel.discount +onlinetravelagency.xyz +onlinevideochat.net +onlinevideomusic.xyz +onlineviewwx35.com +onlinevoucher.biz +onlinevulkandengi.tech +onlinewcm.com +onlinewebmail.top +onlinework-project.ru +onlinexploits.com +only-bag.com +only-marrakech.online +only2weeks.com +onlyapps.info +onlybarkplaza.com +onlyformen.club +onlyme.pl +onlymyshop.ru +onlyoffice.asia +onlyrefo.ru +onlys.site +onlysext.com +onlysingleparentsdating.co.uk +onlysolars.com +onlytoserve.com +onlyways.ru +onlywedding.ru +onmagic.ru +onmail.top +onmail.win +onmail3.com +onmailserver.me +onmailzone.com +onmenbr1.xyz +onmsfjgv.shop +onmuscletissue.uk +onmytee.info +onnormal.com +onofmail.com +ononymous.com +onousmykonos.com +onp9ue.us +onpersu.ga +onpersu.gq +onpersu.ml +onpersu.tk +onphlegeal.cf +onphlegeal.ga +onphlegeal.gq +onphlegeal.ml +onphlegeal.tk +onpilj.art +onplayagain.net +onpointjobs.org +onpotencialex.ru +onprice.co +onqin.com +onqus.com +onr.cloud +onsailbooking.net +onsailbooking.org +onsailcharter.info +onsailcharter.org +onsailcharter.us +onsaleadult.com +onsalemall.top +onsetingamed.rest +onshop5.com +onsitetrainingcourses.com +onskulls.com +onstochin.cf +onstochin.ga +onstochin.gq +onstochin.ml +onstochin.tk +onsunpantry.com +onsuvhub.live +onsuvsget.live +ontalk.biz +ontarioedu.com +ontariofishingreports.com +ontechnews.xyz +ontelist.cf +ontelist.ga +ontelist.gq +ontelist.ml +ontelist.tk +onterakt.com +ontheroxmag.com +onthestreet.shop +ontheweblearning.com +onthwmarket.com +ontostack.com +ontracademy.com +ontrvx.xyz +ontyne.biz +ontyve.xyz +onuadon.cf +onuadon.ga +onuadon.gq +onuadon.ml +onuadon.tk +onumail.com +onuncalkapisini.ga +onvaou.club +onviselki.ru +onw88.com +onwmail.com +onyeabor.info +onyxek.us +onyxhairballarat.com +onyxo.website +onyxprotectedsystems.com +onzberam.ga +onzberam.gq +onzberam.ml +onzberam.tk +oo-mail.net +oo.pl +oo18269.com +oo408.site +oo57822.com +oo8037.com +oo813.com +ooacsf.com +ooani.net +ooapmail.com +oob8q2rnk.pl +oobuying.com +oochiecoochie.com +oodlesnormantonroad.com +ooeawtppmznovo.cf +ooeawtppmznovo.ga +ooeawtppmznovo.gq +ooeawtppmznovo.ml +ooeawtppmznovo.tk +oofmail.tk +oogmail.com +oogxi.us +oohioo.com +oohlaleche.com +oohotmail.club +oohotmail.com +oohotmail.online +oohshiny.us +oohwin.com +oojy.com +ookfmail.com +oolhoazul.com +oolloo.cf +oolloo.org +oolmail.com +oolong.ro +oolus.com +oomble.com +oonabrangamsnell.com +oonies-balls.ru +oonies-game.ru +oonies-shoprus.ru +oonieser.ru +ooniesoriginal.ru +ooniez.ru +ooo-pocta.ru +ooo813.com +ooodesi.club +ooogrinvich.ru +ooolikvid.xyz +ooomail.ga +oooregitsr.xyz +oooreorganiz.xyz +ooorosso.ru +oooxx00.xyz +oopi.org +oopsify.com +oopsmotorinsurance.com +oorcmskl.shop +oormi.com +ooroos.com +oot-m.ru +ootriy.site +oou.us +ooutlook.com +oovy.org +ooxka.site +ooxx520.com +ooxx69.xyz +ooyoho.com +op82new.shop +opakenak.com +opalroom.com +opasnak.club +opay.money +opayq.com +opaywallet.info +opaywallet.org +opbergrekken.com +opc-888.com +opdota.ru +opdrsinangoker.com +ope037.com +opeasdeeacredla.space +opelmail.com +open-active-future.ru +open-domains.info +open-economy.org +open-info-outlet.ru +open-market-easy.ru +open-position.info +open-sites.info +open.brainonfire.net +openafortune.com +openamator.club +openandread.site +openavz.com +openbasecode.com +opencall.online +opencandidates.org +opencartmarket.com +opencmscheck.xyz +openconstruction.org +openculture.best +opendbs.com +opendbs.net +opendbs.org +opende.de +opendecoder.com +opendns.ro +openeats.org +openedtechfestival.info +openedtechfestival.org +openfront.com +opengafas.tk +openhippel.org +openhousesonmaui.com +openinboxexperiment.com +openingforex.com +openinvoice.us +openkaser.cf +openkc.com +openmail.ga +openmail.ml +openmail.tk +openmail330.sale +openmailbox.tk +openmailservice.com +openmindedzone.club +openmoneyclick.ru +openmotolv.site +opennames.info +opennetgame.org +openneural.host +openneural.net +openpabexample.site +openpoland.org +opensans.ru +openskj.com +opensourceed.app +openspacenn.ru +openssource.site +openstark.org +openstate.info +openstaxtutor.com +opentimetracker.com +opentrash.com +openuni.org +openves.org +openvitality.com +openvpc.com +openvpc.net +operabrow.com +operacjezeza.pl +operainsider.info +operatingtechnology.com +operationcrossroadsafrica.com +operationhopeshelter.com +operationsuperdad.com +operatowermanagment.com +operazhi.space +operenetow.com +opertali.info +opetron.com +opettajatmuljankoulu.tk +opew.pro +opex.cd +opgram19.com +opgram22.com +opgram24.com +opgram25.com +opgram27.com +opgram30.com +ophaltde.com +ophdoghau.ga +ophdoghau.ml +ophdoghau.tk +opilon.com +opinion-bank.ru +opinionbank.biz +opinionbank.global +opinionbank.online +opiratinha.info +opjhjhy.xyz +opka.org +opkhronvj.shop +oplaskit.ml +oplat-tele.com +oplata-kartoi-a.xyz +ople5c.info +opline2.net +opljggr.org +oplk71fvf.buzz +oplk72vmj.buzz +oplk73prn.buzz +oplk74rju.buzz +oplo77afu.buzz +oplo78xry.buzz +oploci.me +opmadot.cf +opmadot.ga +opmadot.gq +opmadot.tk +opmail.com +opmania2.net +opmania3.net +opmania5.net +opmania6.net +opmmail.com +opmmax.com +opmmedia.ga +opmtr.online +opmtr.xyz +opna.me +opno.life +opoezdke.com +opojare.org +opole-bhp.pl +opop00002.com +opop00003.com +opoprclea.website +opowlitowe53.tk +opp24.com +oppamail.com +oppax.com +oppein.pl +oppenheim.cd +oppobitty-myphen375.com +opportunityarabic.xyz +oppostreamingonline.com +oppubg.ru +oprety.site +opros-giveaway.ru +opros.money +opros2020eb.site +opros2020em.site +opros2020en.site +opros2020ra.site +opros2020re.site +opros2020ri.site +opros2020rp.site +opros2020rq.site +opros2020rt.site +opros2020rw.site +opros2020ry.site +opros2020td.xyz +opros2020tf.xyz +opros2020th.xyz +opros2020tj.xyz +opros2020tk.xyz +opros2020tl.xyz +opros2020ts.xyz +opros2020tz.xyz +opros2020ua.xyz +opros2020ub.xyz +opros2020uc.xyz +opros2020ud.xyz +opros2020ue.xyz +opros2020uf.xyz +opros2020ug.xyz +opros2020uh.xyz +opros2020uj.xyz +opros2020uk.xyz +opros2020ul.xyz +opros2020un.xyz +opros2020uo.xyz +opros2020up.xyz +opros2020uq.xyz +opros2020ur.xyz +opros2020us.xyz +opros2020ut.xyz +opros2020uu.xyz +opros2020uv.xyz +opros2020uw.xyz +opros2020ux.xyz +opros2020uy.xyz +opros2020uz.xyz +opros2020wf.site +opros2020ya.xyz +opros2020yb.xyz +opros2020yc.xyz +opros2020yf.xyz +opros2020yg.xyz +opros2020yh.xyz +opros2020yj.xyz +opros2020yk.xyz +opros2020yl.xyz +opros2020yn.xyz +opros2020yo.xyz +opros2020yp.xyz +opros2020ys.xyz +opros2020yv.xyz +opros2020yx.xyz +opros2020yz.xyz +oproseasyfunny3-ml.fun +oprosonline.xyz +oprosworld2-ml.info +opsdojo.net +opsdojo.org +opsmkyfoa.pl +opss40.net +opss60.com +opssfriend4.com +opt-pricesru.ru +opt-prodaja.online +opt3ornot.com +optchina-trade.ru +optelcom.ru +opten.email +opthila.cf +opthila.ga +opthila.gq +opthila.ml +opticagauss.com +opticalplaces.com +optician.com +optik-turkey.org +optikabiz.ru +optikavid.ru +optiksgaming.com +optimabusinessconsulting.com +optimalhealthchoices.com +optimalstackreview.net +optimalstackreviews.net +optimaweb.me +optimisticheart.com +optimisticheart.org +optimizationcomputersspot.com +optimumnutritionseriousmass.net +optimuslinks.com +optinseo.com +optiplex.com +optireg.net +optitum.com +optju.ru +optobiotics.com +optom-sumki.ru +optometrist-jacksonville-fl.com +optoseo.com +optph.ru +optpz.ru +optsales.site +optycon.biz +optykslepvps.com +optymalizacja.com.pl +opulent-fx.com +opusbanes.gq +opusmusicaltheatreworks.com +opussasy.info +oputin.cf +oputin.ga +oputin.gq +oputin.ml +oputin.tk +opvcfhue.shop +opwaty.cf +opwaty.gq +opwaty.ml +opwebw.com +opya1.shop +opya3.shop +opzeo.com +oqcal1.site +oqeib.us +oqiwq.com +oqlhy.live +oqshae.us +oqta.net +oqvftzzj.shop +oqzpv.us +or.orgz.in +or988.site +oracruicat.xyz +oralatlasa.info +oralreply.com +oramail.net +oranek.com +orang.ml +orangdalem.org +orange-bonplan.com +orangecamel.info +orangecountycotillion.com +orangecountycouplescounseling.org +orangecountyrefinishing.com +orangeinbox.org +orangemail.bet +orangerealestateagents.com +orangesticky.info +orangotango.cf +orangotango.ga +orangotango.gq +orangotango.ml +orangotango.tk +oranje-fans-limburg.com +orantcharities.com +orante.xyz +oras-market.ru +oratalk.com +orbitforce.com +orbitnew.net +orchang.shop +orchardmgr.com +orchesoldw.online +orchideous.best +orchidgrows.com +ordenadores.online +order84.gmailmirror.com +orderbagsonline.handbagsluis.net +ordercelloskinbylittlemonkey.com +orderchaosonline.com +orderevdln.ru +orderexecution.trade +orderoftheassassins.com +orderru.website +ordershoes.com +orderwindows.com +ordimo.app +ordinaryamerican.net +ordinaryyz1.com +orduavcilardernegi.com +orducadirfestivali.com +orducadirkamp.com +orduludjler.xyz +ordulugencler.xyz +ordyspost.cf +ordyspost.ga +ordyspost.gq +ordyspost.ml +ordyspost.tk +orecrusherplant.com +oregon-nedv.ru +oregon-skanner.com +oregonnewspress59.site +oreidresume.com +orelregion.ru +oremdoctors.com +orendagan.com +orescom.cf +orescom.ml +orescom.tk +oreshkis.site +orewscircle.site +orexrep.ga +orexrep.gq +orexrep.tk +orfea.pl +orfeaskios.com +orfensea.cf +orfensea.ga +orfensea.gq +orfensea.ml +orfensea.tk +orfulle.cf +orfulle.ga +orfulle.gq +orfulle.ml +orfulle.tk +org-archive.com +organic-best.ru +organic.in +organiccoffeeplace.com +organicera-cyprus.com +organicfarming101.com +organicgardenchannel.com +organicgardensupply.net +organicgreencoffeereview.com +organicmediasolution.com +organicmedinc.com +organicstyleshop.com +organikgoldfue.com +organikprpsacekimi.com +organiksacekim.net +organisologue.com +organizationid.com +organizechallengeclick.com +organjuana.com +organophilic.best +orgasm.cheap +orgasm.university +orgasmostelefonicos.com +orgbakrot.xyz +orgcity.info +orgiesimulator.com +orgiiusisk.gr +orgiosdos.gr +orglamixbox.com +orgmbx.cc +orgogiogiris.gr +orgonum.ru +orgpoint.org +orgtracks.com +orgzxncin.shop +orhalfpricedlisting.com +orhalfpricelisting.com +oriental.digital +oriental.network +oriental.wiki +orientalgrocery.com +orientaltakeaway.com +orientalwokwaterford.com +orientchinesetakeaway.com +orientcode.com +orientomg.com +oriete.cf +origamilinux.com +origin.pink +original-bayernsound.de +original-formula-product.info +original-hit-like.ru +original-mall-clear.ru +original-oonies.ru +original-product.ru +original-trilogy.com +originalempathytest.com +originalmacgames.com +orijinalfaynexfarma.club +orijinalkafur.fun +orikamset.de +oringame.com +orinmail.com +orinsport.com +orinsport.org +orinsports.org +oriogiosi.gr +orion.tr +oriondertest.it +orioni.org +orions-code.site +orionsbelt.download +oririnablueappclubnew.ru +oriverahomes.com +oriwijn.com +orjinalkafur.club +orjinalvirfort.space +orjm.ru +orkida.com +orlandofleldercare.com +orlandoforeclosurelistings.com +orlandopianoservice.com +orlandoroofreplacement.com +orlandotimeshareforrent.com +orleanssightseeing.com +orleasi.com +orlighme.club +orluxwellness.com +ormanlarda.space +ormtalk.com +orngwjrncx352.xyz +ornova.org +oro153.online +oroki.de +orotab.com +orpenrestcamp.com +orpxp547tsuy6g.cf +orpxp547tsuy6g.ga +orpxp547tsuy6g.gq +orpxp547tsuy6g.ml +orpxp547tsuy6g.tk +orq1ip6tlq.cf +orq1ip6tlq.ga +orq1ip6tlq.gq +orq1ip6tlq.ml +orq1ip6tlq.tk +orrara.cf +orrara.ga +orrara.ml +orrara.tk +orresponsibleserving.com +orrgzn.tokyo +ors.ong +orsa-studio.com +orsg.xyz +ortadogupanelim.xyz +ortaklartl.com +orteganow.com +orthodontistseoagency.com +orthomed.org +orthopedist620tz.online +orthowall.com +ortigasbylyndon.icu +ortutay.best +ortuteks.xyz +orumail.com +orumcekstand.com +oruse.xyz +orviaarabia.space +orviaksarabia.site +orvit.net +orvnr2ed.pl +orwf.icu +orxy.tech +oryjcqzx.shop +oryol-dosug.ru +oryx.hr +os-sale.online +os131.com +os2eagle.net +os3m.icu +osa.pl +osaimiword.com +osakaasiaticogranollers.com +osakapoker.com +osakawiduerr.cf +osakawiduerr.gq +osakawiduerr.ml +osaki-itokon.com +osakis.us +osamail.com +osatna.cf +osatna.ga +osatna.tk +oscar-dz.com +oscar.delta.livefreemail.top +oscarpeacock.buzz +oscarpostlethwaite.com +oscillaterecordings.com +oscubdea.cf +oscubdea.ga +oscubdea.gq +oscubdea.ml +oscubdea.tk +osdf.space +osdfsew.tk +osendingwr.com +oseuvitortv.site +osfujhtwrblkigbsqeo.cf +osfujhtwrblkigbsqeo.ga +osfujhtwrblkigbsqeo.gq +osfujhtwrblkigbsqeo.ml +osfujhtwrblkigbsqeo.tk +osg168live.asia +osg168live.us +osg777.link +osgame.live +osgame.online +osgpoker.us +oshietechan.link +osiyocomm.com +osk-d.com +oskadonpancenoye.com +osl8s9.us +oslobet34.com +oslobet36.com +oslobet38.com +oslogsearch.cf +oslogsearch.gq +oslogsearch.tk +oslowatches.com +osmangaziuniversitesi.xyz +osmaniyem.xyz +osmaniyeprefabrikyapi.xyz +osmanlawoffice.com +osmanlinetwork.com +osmom.justdied.com +osmonit.com +osmosworld.ru +osmqgmam5ez8iz.cf +osmqgmam5ez8iz.ga +osmqgmam5ez8iz.gq +osmqgmam5ez8iz.ml +osmqgmam5ez8iz.tk +osned.ru +osnovnoy-kapital.ru +osnspo.com +osoboekb.ru +osocogroup.com +osodthia.cf +osodthia.ga +osodthia.gq +osodthia.ml +osodthia.tk +osormail.com +ososos.ml +osporno-x.info +osrypdxpv.pl +ossb.xyz +ossetia.wiki +ostah.ru +ostarsqooq.ru +ostartt.shop +osteoaneurysm.best +osteofluidica.net +osteopath-enfield.co.uk +ostepterp.cf +ostepterp.ga +ostepterp.gq +ostepterp.ml +ostepterp.tk +ostio.com +ostracizing937lm.online +osuedc.org +osuvpto.com +osveber.cf +osveber.ga +osveber.gq +osveber.ml +osveber.tk +osvjk.us +osvvenice.com +oswegotimes.com +oswietlenieogrodow.pl +oswo.net +osxos.net +osxos.org +osyokoruku02.xyz +ot-pryschei.tk +otacon.ca +otakusoftware.net +otakusoftware.org +otbeachholidays.com +otdel-proklyatij.ru +otdel-proklyatiy.ru +otdukkan.com +otdyh18.club +otekikonular.xyz +otekyc.xyz +otel-rehberi.com +otelkaraca.biz +otelsi.info +oteuecra.site +othedsordeddy.info +otheranimals.ru +otherbla.icu +otherdog.net +otherene.icu +othergoods.ru +otherinbox.codupmyspace.com +otherinbox.com +othersmodesto.com +otip.lawyer +otitrluh.shop +otkat.info +otkrit-ooo.ru +otkrivator.ru +otktimqc.shop +otlook.es +otm6171ekv.com +otmail.com +otnasus.xyz +otobakim.live +otoborsam.com +otobusistanbul.xyz +otocharj.com +otoeqis66avqtj.cf +otoeqis66avqtj.ga +otoeqis66avqtj.gq +otoeqis66avqtj.ml +otoeqis66avqtj.tk +otogazmontaji.online +otogazmontaji.xyz +otomasyontr.org +otomax-pro.com +otonmail.ga +otoplenie-stout.ru +otostiker.com +ototarz.com +otrabajo.com +otsevers.com +otsonointi.org +otsos96.link +otsrochki.su +ott-mvp16.com +ott-mvp17.com +ott-mvp21.com +ott-mvp23.com +ott-mvp24.com +ott-mvp25.com +ottappmail.com +ottawa-lottery.info +ottawaprofilebacks.com +ottencoffee.net +otterrep.stream +ottertailpower.com +ottocalling.com +ottoform.net +ottopetra.com +ottotech.net +otu1txngoitczl7fo.cf +otu1txngoitczl7fo.ga +otu1txngoitczl7fo.gq +otu1txngoitczl7fo.ml +otu1txngoitczl7fo.tk +otucri.cf +otucri.ga +otucri.gq +otucri.ml +otucri.tk +otvetinavoprosi.com +otwetka.com +otye.us +otymutre.site +otzavoda.kg +otziv63pokupki.ru +ou-sale.online +ou-se-baigner.com +ou127.space +ou129.space +ou131.space +ou136.space +ou140.space +ou141.space +ou143.space +ou144.space +ou6tcm.site +ou7g32rye.com +oualmdxit.shop +oubgusax.site +oucaiwang.xyz +oucvvwsb.shop +oudelandsrundvlees.com +oudmane.com +oudtrees.com +oudturnhout.com +ouenkwxrm.shop +oughtdetailrabbi.site +ouhihu.cf +ouhihu.ga +ouhihu.gq +ouhihu.ml +ouhvjg.com +oulaiqi.com +oulook.com +oulqic.ga +oumayla.com +ouncil.info +ount.ru +oup3kcpiyuhjbxn.cf +oup3kcpiyuhjbxn.ga +oup3kcpiyuhjbxn.gq +oup3kcpiyuhjbxn.ml +oup3kcpiyuhjbxn.tk +oupt02.com +oupt03.com +ouqrp.us +our-products.ru +ourang29.icu +ourawesome.life +ourawesome.online +ourbox.info +ourbukkit.com +ourchurch.app +ourcocktaildress.com +ourcocktaildress.net +ourconnectedhistory.com +ourcritters.net +ourday.info +ourdietpills.org +ourensetv.gal +ourfgv.us +ourgraduationdress.com +ourgraduationdress.net +ourhosting.xyz +ourklips.com +ourladyoftheelms.org +ourlouisvuittonfr.com +ourloveones.com +ourmonclerdoudounefr.com +ourmonclerpaschere.com +ourmudce.cf +ourmudce.ga +ourmudce.gq +ourmudce.ml +ourmudce.tk +ournewcoin.com +ouroboros.icu +ourobouros.net +ourpreviewdomain.com +oursblog.com +oursecure.com +ourstorereviews.org +ourstoryislove.org +oursuperhealth.ru +ourtrailer.com +ourupad.cf +ourupad.ga +ourupad.gq +ourupad.ml +ourupad.tk +ousbyrpe.cf +ousbyrpe.gq +ousbyrpe.ml +ousbyrpe.tk +ousxvo.icu +out-email.com +out-mail.com +out-mail.net +out-of-the-box-it.com +out-sourcing.com.pl +out2.us +outbacksteakhousecouponshub.com +outclass.best +outcomes-insite.org +outcross.site +outdonews.com +outdoopaintingchallenge.com +outdoor-experience.info +outdoorlightingreviewshq.com +outdoornd.com +outdoorproductsupplies.com +outdoorproseries.com +outdoorsd.com +outdoorslifestyle.com +outdoorsonwheels.com +outdoorsshop.futbol +outdoorwaterprooffloor.com +outdoorwoodsheds.com +outercab.buzz +outercabin.buzz +outernet.nu +outernet.shop +outerpic.site +outershout.space +outfoxes.com +outfring.info +outfu.com +outfurra.cf +outfurra.ga +outfurra.gq +outfurra.ml +outgie.com +outhouse.best +outikoumail.com +outime.ru +outlandlabs.com +outlawfrontier.com +outlawmma.co.uk +outlawspam.com +outlddook.com +outlet-adidas.info +outlet-michaelkorshandbags.com +outletadidasi.info +outletbrasileiro.com +outletcheap.net +outletcoachfactorystoreus.com +outletcoachonlinen.com +outletcoachonliner.com +outletgucciitaly.com +outletika.com +outletimg.com +outletinformatica.net +outletjacketsstore.com +outletkarenmillener.co.uk +outletlouisvuittonborseiitaly.com +outletlouisvuittonborseitaly.com +outletlouisvuittonborseoutletitaly.com +outletlouisvuittonsbag.co.uk +outletmichaelkorssales.com +outletmonclerpiuminiit.com +outletomszt.com +outletpages.com +outletpiuminimoncleritaly.com +outletpiuminimoncleritaly1.com +outletraybans.com +outlets5.com +outletsport.org +outletstores.info +outlettcoachstore.com +outlettomsonlinevip.com +outlettomsonlinezt.com +outlettomsshoescheap.com +outlettomsshoesstore.com +outlettomszt.com +outlettoryburchjpzt.com +outlok.com +outlok.net +outlok.site +outloo.com +outlook.twitpost.info +outlook2.gq +outlookkk.online +outlookpro.net +outloomail.gdn +outlouk.com +outluk.com +outluo.com +outluok.com +outlyca.cf +outlyca.gq +outlyca.ml +outlyca.tk +outmail.win +outmail4u.ml +outoffice.online +outoffice.ru +outomcam.cf +outomcam.gq +outomcam.ml +outomcam.tk +outpaas.com +outpatientaddictionrehabs.com +outputtin.com +outrageousbus.com +outragesia.online +outree.org +outriggeradvisors.com +outriggerasia.com +outriggeratkoloalanding.com +outriggerbusinessadvantage.com +outriggerhospitalitygroup.com +outriggerinternational.com +outriggerkamaaina.com +outriggerkeauhoubay.com +outriggerkeauhoubeachresortandspa.com +outriggerkonabeachclub.com +outriggerkonabeachresort.com +outriggerkonabeachresortandspa.com +outriggerkonabeachsparesort.com +outriggerkonacoastsparesort.com +outriggerkonagolf.com +outriggerkonaoceanresort.com +outriggerkonaresort.com +outriggerkonaresortandspa.com +outriggerkonaspa.com +outriggerreefwaikikibeachresort.com +outriggersports.com +outriggersydney.com +outriggervietnam.com +outriggerwaikikibeachresort.com +outriggerwaikikiconnection.com +outriggerwaipoulibeach.com +outroteste.xyz +outsidestructures.com +outsourcevan.biz +outsourcing-centre.com +outstandingtrendy.info +outtradesa.info +outuok.com +ouwoanmz.shop +ouwrmail.com +ouynwj.com +ov3u841.com +ovaclockas24.net +ovaf8g.site +ovalsbybeth.icu +ovaqmail.com +ovathebridge.com +ove.casino +ovefagofceaw.com +ovejes.gq +ovejes.ml +ovenprices.com +ovensshop.live +oveo-plasmapen.com +oveodewa.org +over-craft.ru +over-you-24.com +overagent.com +overclockage.com +overcomebf.com +overcomeoj.com +overdaxilket.ru +overflowclothing.com +overgoal.net +overgol.net +overhaulrefit.site +overheadstorageforgarage.com +overheid.works +overkidlde.space +overkill4.pl +overkill5.pl +overkill6.pl +overmetre.com +overpubg.com +overreader.com +overseas.vote +overseasdentist.com +overtechs.com +overtijdpil.com +overwholesale.com +overy.ru +ovhns.net +ovi.usa.cc +ovi9bc.us +ovicellular.best +oviedoeczy.site +ovik-servis.ru +ovimail.cf +ovimail.ga +ovimail.gq +ovimail.ml +ovimail.tk +ovinh.com +ovipmail.com +ovismuapyr.space +ovlov.cf +ovlov.ga +ovlov.gq +ovlov.ml +ovlov.tk +ovmail.com +ovmau.us +ovo188s.com +ovo365.xyz +ovoh.com +ovorowo.com +ovoskv.shop +ovotogel.org +ovowin.biz +ovpn.site +ovpn.to +ovtracker.org +ovukfi.us +ovulometr.ru +ovv20p.site +ovvamaviyesil.com +ovvd20.site +ovvdq.site +ovvdt.site +ovvee.com +ovvpq.site +ovvpt.site +ovwfzpwz.pc.pl +ovz99.space +owa.kr +owawkrmnpx876.tk +owbot.com +owee.org +oweiidfjjif.cf +oweiidfjjif.ga +oweiidfjjif.gq +oweiidfjjif.ml +oweiidfjjif.tk +owemolexi.swiebodzin.pl +owensborolimos.com +oweshapeoil.website +owfcbxqhv.pl +owga67admhbf5p0.xyz +owh.ooo +owibi.site +owingsmillsshowerglass.com +owl-dr.com +owlies.com +owljh1.site +owllense.com +owlowl.fish +owlpic.com +owlymail.com +own-tube.com +ownchatserver.com +owncloud.design +ownerba.xyz +ownerbanking.org +ownerbasi.xyz +ownerfinancezone.com +ownerflus.us +ownerpre.xyz +ownerpres.xyz +ownersimho.info +ownerupse.press +ownhome.xyz +ownrd.us +ownrespects.host +ownsyou.de +ownyourapps.com +ownyourown.today +owqcrj.icu +owrdonjk6quftraqj.cf +owrdonjk6quftraqj.ga +owrdonjk6quftraqj.gq +owrdonjk6quftraqj.ml +owrdonjk6quftraqj.tk +owstracker.com +owsz.edu.pl +owwapp.com +owz83.space +ox5bk.us +oxalamid.best +oxbridgeeight.com +oxddadul.cf +oxddadul.ga +oxddadul.gq +oxddadul.ml +oxddadul.tk +oxfarm1.com +oxford.gov +oxg9a.us +oxiburn.com +oxid2828.com +oxid2828.net +oxid2828.org +oxinchannel.net +oxjfqcgff.shop +oxjl.com +oxjsa9.us +oxkvj25a11ymcmbj.cf +oxkvj25a11ymcmbj.ga +oxkvj25a11ymcmbj.gq +oxkvj25a11ymcmbj.tk +oxmail.com +oxopin.com +oxopoha.com +oxplay.ru +oxudvqstjaxc.info +oxul.us +oxx3ta.us +oxxbcnqi.shop +oxxx.bid +oxyelitepro.ru +oyalmail.com +oyama-h.online +oyekgaring.ml +oyelucky.xyz +oyetalove.com +oyj32.us +oyjob.com +oykw.us +oylstze9ow7vwpq8vt.cf +oylstze9ow7vwpq8vt.ga +oylstze9ow7vwpq8vt.gq +oylstze9ow7vwpq8vt.ml +oylstze9ow7vwpq8vt.tk +oyly.com +oyma9q.com +oymail.com +oynabingo.com +oyncki.us +oyoble.site +oyogscanada.com +oyu.kr +oyuhfer.cf +oyuhfer.ga +oyuhfer.gq +oyuhfer.ml +oyujia.icu +oyukikoy.site +oyuncaak.net +oyuncakantika.online +oyuncakantika.xyz +oyuncountry.xyz +oyunport.com +oyw9wj.online +oywjgkpc.icu +ozabor.xyz +ozanilan8.xyz +ozark.store +ozaudio.ru +ozbzt.live +ozeflowers.com +ozelevrenbey.com +ozelguvenlikbul.net +ozgunvjbi.shop +ozijmail.com +ozjwuo.site +ozlaq.com +ozleh.info +ozmail.com +oznmtwkng.pl +ozo88.host +ozo88.xyz +ozogaming.com +ozon-sale.promo +ozonehumourrainy.site +ozoopoker.net +ozoozon.ru +ozost.com +ozozwd2p.com +ozqn1it6h5hzzxfht0.cf +ozqn1it6h5hzzxfht0.ga +ozqn1it6h5hzzxfht0.gq +ozqn1it6h5hzzxfht0.ml +ozqn1it6h5hzzxfht0.tk +ozsanlojistik.com +ozsanlojistik.online +ozsanlojistik.xyz +ozsoymesrubat.online +ozsoymesrubat.xyz +oztasmermer.com +oztemizlikmalzemeleri.xyz +ozumz.com +ozuturkisg.com +ozuygunemlak.com +ozweddings.com +ozxxta.us +ozxzd.live +ozyl.de +ozyumail.com +ozzopoker.net +ozzstream.com +ozzytoto.info +ozzytoto.net +ozzytoto.shop +p-31.ru +p-a-y.biz +p-banlis.ru +p-bonus.ru +p-fishing.ru +p-g-7.com +p-gdl.cf +p-gdl.ga +p-gdl.gq +p-gdl.ml +p-gdl.tk +p-i-x.fun +p-oops.com +p-response.com +p-value.ga +p-value.tk +p-winning.com +p.mrrobotemail.com +p.new-mgmt.ga +p.polosburberry.com +p0r2h.us +p0yxlf.us +p0z.xyz +p100rxls.buzz +p106riif.buzz +p1316.xyz +p1775.com +p180.cf +p180.ga +p180.gq +p180.ml +p180.tk +p1c.us +p1g5.icu +p1g5online.com +p1nhompdgwn.cf +p1nhompdgwn.ga +p1nhompdgwn.gq +p1nhompdgwn.ml +p1nhompdgwn.tk +p1psolutions.biz +p1vdbe.com +p2m3i.us +p2pget.com +p2pnote.com +p2puniversity.com +p2purl.com +p2uqyf.site +p2wnow.com +p2x.site +p2zyvhmrf3eyfparxgt.cf +p2zyvhmrf3eyfparxgt.ga +p2zyvhmrf3eyfparxgt.gq +p2zyvhmrf3eyfparxgt.ml +p2zyvhmrf3eyfparxgt.tk +p33.org +p3334.xyz +p3531.xyz +p3gvm.us +p3sync.com +p4320.site +p4720.site +p4820.site +p4920.site +p4mpgr.com +p4tnv5u.pl +p5220.site +p5420.site +p5720.site +p58fgvjeidsg12.cf +p58fgvjeidsg12.ga +p58fgvjeidsg12.gq +p58fgvjeidsg12.ml +p58fgvjeidsg12.tk +p5gby.cloud +p5m7n6.us +p5mail.com +p5raoy.site +p5wbd.art +p6120.site +p62qcn.us +p684.com +p68p68.com +p6c5fi.us +p6halnnpk.pl +p6udt9.us +p71ce1m.com +p7665.com +p7998.com +p7n39rellip7.best +p8oan2gwrpbpvbh.cf +p8oan2gwrpbpvbh.ga +p8oan2gwrpbpvbh.gq +p8oan2gwrpbpvbh.ml +p8oan2gwrpbpvbh.tk +p8y51.us +p8y56fvvbk.cf +p8y56fvvbk.ga +p8y56fvvbk.gq +p8y56fvvbk.ml +p8y56fvvbk.tk +p90x-dvd.us +p90xdvds60days.us +p90xdvdsale.info +p90xlifeshow.com +p90xstrong.com +p92qe4-mail.xyz +p99520.com +p9fnveiol8f5r.cf +p9fnveiol8f5r.ga +p9fnveiol8f5r.gq +p9fnveiol8f5r.ml +p9fnveiol8f5r.tk +p9u6crt8xk4lgh1.xyz +pa912.com +pa913.com +pa916.com +pa921.com +pa927.com +pa928.com +pa972.com +pa975.com +pa9e.com +pa9tcs.com +paaarssiiggraaaam.club +paabbbblloo.club +paabbbiillo.club +paabbbiilloo.club +paabbbiiloo.club +paabbiboooo.club +paabbiiloo.club +paabbillo.club +paaffshop.store +paaland.com +pabbbiiilloo.club +pabbloobbbt.club +pabiyy.club +pablitos.pizza +pablo20.xyz +pabloalcalde.com +pablobar.ru +pabloobbt.live +pabooli.club +paboyewe.site +pabuksat.ml +pabulum.xyz +pabypay4.club +pabyy3.club +pacdoitreiunu.com +paceforwarders.com +paceincorp.com +pacemls.com +paceshops.site +pachilly.com +pachinkostudio.com +pacific-ocean.com +pacificcoastphysicaltherapy.com +pacificndc.com +pacificpropertysolutions.com +pacificsportboats.com +pacifiersshop.life +packageholidaystohawaii.com +packagetrackingplus.com +packandexplore.com +packengine.club +packer.dev +packersandmovers-pune.in +packersproteamsshop.com +packerssportstore.com +packetpan.com +packiu.com +packsec.com +pacnoisivoi.com +padanghijau.online +padcasesaling.com +paddgapho.cf +paddgapho.ga +paddgapho.ml +paddgapho.tk +paddle-board-yoga.com +paddlepanel.com +paddockpools.net +paddybetting.com +padfoundationnwi.org +padili.com +padisabilitylawfirm.com +padkwhzff.shop +padlet-alternate.link +padonkit.online +padonko.online +paeharmpa.cf +paeharmpa.ga +paeharmpa.gq +paeharmpa.ml +paeharmpa.tk +paemangmarnewslop.space +paennsthaidelivery.se +pafnuty.com +pafoshalfmarathon.com +pafrem3456ails.com +paftelous.website +pafuribordercamp.com +pagaconvinti.com +pagalworldg.info +pagamenti.tk +pagamentos.tk +pagatucolegio.com +pagatufactura.net +pagatuimpuesto.com +page-aca.com +page2podcast.org +pagedesignnet.com +pagefault.xyz +pagesblanchesannuaire.com +pagesblanchesannuaires.net +pagesblanchesjaunes.com +pagesjaunesblanches.com +pagesroad.xyz +paginadelmillondeeuros.com +paglask.ru +paglife.online +pagodagardentakeaway.com +pagodatoto.net +pagossnr.com +pagr.dev +paguesufactura.net +paguesuimpuesto.com +pahalfpricedlisting.com +pahalfpricedlistings.com +pahalfpricelisting.com +pahalfpricelistings.com +paharpurmim.cf +paharpurmim.ga +paharpurmim.gq +paharpurmim.ml +paharpurmim.tk +paharpurtitas.cf +paharpurtitas.ga +paharpurtitas.gq +paharpurtitas.ml +paharpurtitas.tk +pahazife.space +pahazp.info +pahe21.club +paherowalk.org +paherpur.ga +paherpur.gq +paherpur.ml +pahilldob.ga +pahilldob.gq +pahilldob.ml +pahilldob.tk +pahiref.ru +pahrumptourism.com +paidattorney.com +paideia.foundation +paideia.university +paidpocket.com +paigecourtneyphotography.com +paigegordon.biz +paiindustries.com +paikhuuok.com +pailerback.gq +paimadoc.cf +paimadoc.gq +paimadoc.tk +paimu.space +painmitt.com +painperformancesolutions.com +painsocks.com +paintapplicator.biz +paintapplicator.net +paintapplicator.us +paintapplicators.net +paintapplicators.org +paintapplicators.us +paintballpoints.com +paintcl.buzz +paintebkhz.space +paintedblackhorseranch.com +painter-pete.com +painting-commission.com +painting-stamps.info +paintingeasy.club +paintingideas.online +painttr.icu +paintyourarboxers.com +paipesro.cf +paipesro.tk +pairatehunters.tokyo +pairefan.cf +pairefan.ga +pairefan.gq +pairefan.ml +pairefan.tk +pairiewa.gq +pairiewa.ml +pairiewa.tk +pairing.info +paisaazaar.com +paito.news +paito.ninja +paito4d.org +pajamaprofits.com +pajarillamail.club +pajazzos.online +pajjys.com +pak-ab.company +pak-ab.net +pak-ab.shop +pakadebu.ga +pakcleaners.com +pakde21.xyz +paketliburantourwisata.com +pakistaninews.xyz +pakistantodubai.com +pakolokoemail.com.uk +pakvsindia.live +pakwork.com +palace-properties.com +palacebowlinglanes.com +palaciosvinodefinca.com +paladin.rocks +palaeocreations.com +palatenstation.xyz +palatinefootandankle.com +palau-nedv.ru +palauaquarium.org +palauisy.info +palaulifes.info +palaveer.com +palazzostorico.net +palbibooo.club +paleofix.xyz +paleorecipebookreviews.org +paleregression.space +palermo-pizza.ru +paletteswap.com +palgan.biz +palgong80.com +palingbaru.tech +paliny.com +palkarouz.ru +pallacemax.store +paller.cf +palm-bay.info +palma4d.org +palmantdo.gq +palmantdo.ml +palmantdo.tk +palmdalechildrendental.com +palmdelgolf.com +palmdirun.ga +palmdirun.gq +palmdirun.ml +palmdirun.tk +palmerhoward.net +palmettospecialtytransfer.com +palmoilmill.com +palmone.cd +palmviewdentist.com +paloaltoaudi.com +paloaltoeyeworks.net +palosdonar.com +palpialula.gq +pals-pay54.cf +palsengineering.com +paltalkurl.com +pamanollo.com +pamanpk.net +pamapamo.com +pame888.com +pamelachance.com +pamidor714.info +pamilyn.com +pamm-expert.ru +pamorqq.net +pampanga.news +pampe.ru +pamplomail.club +pamposhtrophy.com +pamptingprec.ga +pamptingprec.gq +pamptingprec.ml +pamptingprec.tk +pamukkaletraverten.xyz +pan6974.com +panagra.site +panama-nedv.ru +panama-real-estate.cf +panamacityairport.net +panamacitysegway.com +panamaverdad.com +panamawmlx.ru +panamiapizza.com +panasonicgf1.net +pancakemail.com +panchasefm.com +panchen.info +panchitocastellodelaplana.com +panchoalts.com +pancosj.cf +pancosj.ga +pancosj.gq +pancosj.ml +pancreaticprofessionals.com +pancrelcgq.space +panda-money1.ru +pandaarkit.com +pandacn8app.com +pandacoin.shop +pandafan.one +pandafan.run +pandafan.website +pandafan.xyz +pandafans.xyz +pandafit.ru +pandamail.tk +pandarastore.top +pandemic.cloud +pandemic.holdings +pandemic.llc +pandemic8.com +pandora-watch1.ru +pandorabet95.com +pandoradeals.com +pandoramaps.com +pandoraonsalestore.com +pandostore.co +pandtrk.site +panduanliga88.com +pandushka.info +panel.contractors +panelfinance.com +panelistan.site +panelpros.gq +panelps.ru +panels.contractors +panels.top +panelssd.com +panelyikqsl.email +panelyou.xyz +panen228.net +panen228.org +panen365.net +panenpoker.email +panentogel.com +panicchaos.us +paniclim.xyz +panicsug.xyz +panicsweeptech.info +panimalar.org +pankasyno23.com +pankasyno30.com +pankujvats.com +pankx.cf +pankx.ga +pankx.ml +pankx.tk +panlvzhong.com +panmoe.com +pannangua.xyz +pannellifasedue.com +panolams.org +panonyyhwd.space +panopticsites.com +panoptive-inc.com +panoramafriesland.online +panoramafryslan.online +panoramapenza.ru +panoramicdentalclinic.com +panoround-app.com +panquecamail.xyz +pansamantala.poistaa.com +panskillet.ru +pantagor-gel.ru +pantalftwt.ru +pantazislawfirm.com +panteon7.ru +panterrra.com +pantheonclub.info +pantheonstructures.com +panthere.store +pantherscharlotte.com +pantofisport.info +pantogor-dealer.ru +pantophilus.com +pants24.ru +pantspro.ru +pantsuit.online +panu.cd +panwithsse.cf +panwithsse.ga +panwithsse.ml +panzer-corps.com +paofen6.com +paoh9a36.xyz +paohetao.com +paolavazquez.com +paonlinegambling.net +paonuo87.icu +paosk.com +papa.foxtrot.ezbunko.top +papa86.com +papaccfrat.club +papachka.ru +papaglitch.com +papai.cf +papai.ga +papai.gq +papai.ml +papai.tk +papajp.xyz +papaparororo.com +paparazzi-ongar.com +paparoatrackhike.com +paparoatrackmtb.com +papasha.net +papaxj.info +papayani.com +papayes.space +papenc.site +paper.cd +paperab.icu +paperbagimprints.com +paperfu.com +paperimprints.com +papermakers.ml +paperoper.xyz +paperpixels.net +paperrecent.cyou +papersaviour.com +papershelpers.website +papertravellers.org +papertri.email +papierkorb.me +papillionapartments.com +papinvlog.ru +papirobizurado.com +papl.icu +papl45tvy.buzz +papl46tbu.buzz +papl47ynu.buzz +papl48imo.buzz +papl49evo.buzz +paplease.com +papm50rni.buzz +papo.store +papolog.com +pappd.com +papua-nedv.ru +papuaqq.org +papuaqq.site +papubar.pl +papystreaming.llc +paqli.us +para2019.ru +parabayt.com +parabellum.us +paracat.org +paradigmclimbing.com +paradigmexplorer.net +paradigmplumbing.com +paradigmpop.com +paradise-massage.ru +paradise-properties.com +paradise-rp.fun +paradiselleida.com +paradisenearby.site +parador.media +parafforby.space +paragonmaps.net +paragvai-nedv.ru +paraisotropicalflorida.com +paralamb.ga +paralamb.gq +paralamb.ml +paralamb.tk +paralelweb.xyz +paralet.info +parallaxgap.com +parallelizes587nt.online +paralyzenetwork.shop +paramail.cf +paramedicimprovementacademy.com +parampampam.com +paranaguia.com +paranakit.net +parangsoca.com +parapentemocio.com +parasizkalmayalim.ml +parasizkalmayalim.tk +parasizonq.space +paraska.host +parasmi.club +paraterdeco.site +paratudo.store +parawansaassoniwora.id +parayum.net +parayum.org +parazit-ua4.website +parazit-ua5.website +parbapcrat.cf +parbapcrat.ga +parbapcrat.ml +parbapcrat.tk +parbehon.cf +parbehon.ga +parbehon.gq +parbehon.tk +parborental.com +parcartones.buzz +parcel4.net +parchmentmoon.net +parcimen.cf +parcimen.ga +parcimen.gq +parcimen.tk +parcosimone.org +pardakhtinano.xyz +pardakhtinanox.xyz +pardakhtinanoxy.xyz +pardazpara8.xyz +pardintret.xyz +pardis.shop +pardisyadak.com +paredav.site +parelay.org +parent.rip +parentby.design +parenthesizes360sc.online +parentingabahihsan.com +parentrescue.website +parents.lol +parents.wtf +parentsxke.com +parestate.xyz +pareton.info +parezvan.com +parfaitparis.com +parfar.ru +parfum-sell.ru +parfum-uray.ru +parfum33.ru +parfumcinta.club +parfumpoint.store +parhaatpelaa.online +pari-match-affiliate.com +parichitta.xyz +paridisa.cf +paridisa.ga +paridisa.gq +paridisa.ml +paridisa.tk +parikmakher.ru +parimatch-1xbet.site +parimatch-affiliates.com +parimatch-app.ru +parimatch-best4.com +parimatch-bett.ru +parimatch-chance10.com +parimatch-chance7.com +parimatch-chance8.com +parimatch-chance9.com +parimatch-fast7.com +parimatch-fast9.com +parimatch-great7.com +parimatch-great9.com +parimatch-ok.ru +parimatch-start10.com +parimatch-start9.com +parimatch-stavka10.com +parimatch-stavki10.com +parimatch-stavki7.com +parimatch-stavki8.com +parimatch-stavki9.com +parimatch-top10.com +parimatch-top7.com +parimatch-top8.com +parimatch-top9.com +parimatchchance10.com +parimatchchance7.com +parimatchchance8.com +parimatchchance9.com +parimatchfast10.com +parimatchfast7.com +parimatchfast9.com +parimatchgreat7.com +parimatchgreat9.com +parimatchstart7.com +parimatchstart8.com +parimatchstart9.com +parimatchstavka10.com +parimatchstavki9.com +parimatchtoday.com +parimatchtop10.com +parimatchtop7.com +parimatchtop8.com +parimatchuz.com +paripartners164.com +paripartners41.com +paripartners496.com +paripartners499.com +paris-attractions.com +paris-golfette.com +paris.company +parisannonce.com +parisbahis117.com +parisbahis119.com +parisbahis122.com +parisbahis129.com +parisbahis130.com +parisbahis138.com +parisbahis139.com +parisbahis6.com +parisbahis85.com +parisbahistv2.com +parisbahistv3.com +parisdentists.com +parisdolmus.com +parisgadgets.com +parisgooddeal.com +parishcouncilsnearme.com +parispatisserie.com +parisprivatetaxi.com +parisrealestateagents.com +parisvipescorts.com +parkabotties.club +parkarans.info +parkbeep.com +parkbiper.com +parkbipper.com +parkcrestlakewood.xyz +parkerparts.net +parkersabby.net +parkhiker.org +parkingaffiliateprogram.com +parkinggarage.xyz +parkingnearby.com +parkinshops.com +parkmellat.com +parkourvirginia.com +parkpeeper.com +parkpie.com +parkpluscharge.com +parkpulrulfland.xyz +parkservice.shop +parkspot.info +parkspot.sk +parktheshark.com +parkuhren.ch +parkviewchristianchuch.net +parkwaypolice.com +parkya.net +parkya.org +parleasalwebp.zyns.com +parlimentpetitioner.tk +parmageddon.net +parmesan-foods-takeaway.com +parnex.fun +parobet10.com +parobet2.com +parobet3.com +parobet5.com +parobet7.com +parobet9.com +parodyinvite.com +parolonboycomerun.com +parque-principado.com +parqueadero.work +parquedafeira.online +parrat.ru +parrotingtheright.com +parrrsssiigggraaammm.club +parrrsssiigraaammm.club +parsecfrontiers.net +parsgurup.com +parsi24.xyz +parsiboys.com +parsigirl.com +parsigm.club +parsigramcocoli.xyz +parsimani.xyz +parsiparsibet.club +parsssiigraaam.club +part-time.dev +part107tests.com +part107waiver.com +partajona.com +partcobbsi.ga +partcobbsi.ml +partcobbsi.tk +partenariat.ru +partescelulares.com +partfold.us +particitoyen.com +particuliers.pro +partidecitoyens.org +partimestudent.com +partisigeser.com +partmany.site +partner-tex.ru +partner1bizmoney.ru +partnerbetrayalrecovery.com +partnerconsulting.net +partnerct.com +partneriklan.com +partnerlink-stoloto.site +partnermvp.com +partnerskie.biz +partnetnkp.club +partskyline.com +partstudio.net +party4you.me +partyearrings.com +partyfun.info +partyofregions.info +partyonmycock.com +partyoverhere.live +partyshka.ru +partyswin.icu +partyweddingdress.net +parusie.de +parwehrnumb.ga +parwehrnumb.gq +parwehrnumb.ml +parwehrnumb.tk +pasacasino100.com +pasadena-jaycees.org +pasang4d.com +pasaoutlet.xyz +pasaranbola168.com +pasarjohar.biz +pasarnmurah.biz +pasarslot.info +pasarslot.life +pasarslot.monster +pasca22eempe2.xyz +pascaleelie.com +pascherairjordanchaussuresafr.com +pascherairjordanssoldes.com +pasco.store +pasenraaghous.xyz +pashabg.org +pashagamingbonus.com +pashagamingyeniadres.com +pashter.com +pasinn.ru +pasionesmarinela.com +paskero.cf +paskero.gq +paskero.ml +paskero.tk +paslanmazhurdasi.net +pasobahis13.com +pasobahis18.com +pasobahis22.com +pasobahis45.com +pasobahis47.com +pasobahis50.com +passagehalfdriver.website +passas7.com +passatudotv.site +passava.com +passdsinterview.com +passed-them.com +passgrumqui.cf +passgrumqui.ga +passgrumqui.gq +passionbet.space +passionforfoodtakeaway.com +passionhd.pro +passionhd18.info +passionwear.us +passive-income.tk +passiveagenda.com +passives-einkommen.ga +passmymatric.com +passport-yandex.fun +passport11.com +passportholder.me +passrountomb.cf +passrountomb.ga +passrountomb.gq +passrountomb.tk +passsbolt.com +passss.website +passthecpcexam.com +passtown.com +passw0rd.cf +passw0rd.ga +passw0rd.gq +passw0rd.ml +passw0rd.tk +password.colafanta.cf +password.nafko.cf +passwordconfirmation.com +passwort.schwarzmail.ga +passyourjoy.com +pastablog.com +pastadetectrange.site +pastafori.com +pastbook.us +pastbox.net +pastcave.com +pastcraze.xyz +pastebinn.com +pastebitch.com +pastefulasd.com +pastel-de-pan.com +pastesqf.xyz +pastmao.com +pastortips.com +pastplay.info +pastycarse.pl +pasukanganas.tk +patacore.com +patagon.website +patalchj.pro +patandlornaontwitter.com +patchag.xyz +patchagre.xyz +patchde.icu +patchspl.icu +patcourtna.cf +patcourtna.ga +patcourtna.gq +patcourtna.ml +patcourtna.tk +pateba.cf +pateba.ga +pateba.gq +pateba.ml +patedi.ga +patedi.gq +patekphilippe-watch.ru +patent-tree.info +patentree.net +paterndolg.space +pathfinder-publications.com +pathfindercampaign.com +pathogen.org +pathsavvy.net +pathstop.info +pathtogodsglory.org +pathtohealth.ru +pathtoig.com +pathtopurity.org +pating5566.com +patinthinhnguyen.info +patinthinhnguyen.org +patioandhomefurniture.com +patiorostrumrealm.site +patmortspac.cf +patmortspac.ga +patmortspac.gq +patmortspac.ml +patmortspac.tk +patmui.com +patodiproperty.com +patoentaccess.com +patonce.com +patongbaybeachclub.com +patorodzina.pl +patriciaclothing.com +patriciagoijens.site +patriciasalvo.com +patriciate.com +patrickdennis.buzz +patrickhaynes.com +patriotauction.org +patriothomebuilders.com +patriotmanifesto.com +patriotpartnersrestoration.us +patriotpost.net +patriotproject.info +patriotsjersey-shop.com +patriotsprofanshop.com +patriotsproteamsshop.com +patriotssportshoponline.com +patrisander.com +patrix1.com +patro.space +patronage-365.ru +patronage-msk.ru +patronmail.club +patronmail.icu +patronmail.online +patronmail.press +patronmail.site +patronmail.space +patswelti.cf +patswelti.ml +patswelti.tk +patteracids.top +patternsandrhythms.com +pattersonforeclosures.com +pattilyman.com +patwww.com +patzwccsmo.pl +pauikolas.tk +paulajapaneserecur.site +paulat.com +paulblogs.com +paulfucksallthebitches.com +paulgruenther.com +paulistaportal.club +paulkippes.com +paullandsberg.com +paulmadey.net +paulmalyschko.org +paulmcilwaine.com +paulmfarnsworth.com +paulpartington.com +paulsmithgift.com +paulsmithnihonn.com +paulsmithpresent.com +paulwilden.com +paulwnielsen.com +pausebasi.icu +pausemarsh.email +pausepla.xyz +pauseprinterrelay.site +pauseswear.buzz +pausnaarnederland.online +pautriphhea.cf +pautriphhea.ga +pautriphhea.gq +pautriphhea.ml +pautriphhea.tk +pauvoiplek.cf +pauvoiplek.ga +pauvoiplek.ml +pauvoiplek.tk +pav2r.site +pavel-kochkin.ru +pavelostapchuk.ru +pavementconference.org +paverol.ru +pavidity.best +pavilionx2.com +pavimentosdune.online +pavn9k.us +paw-patrol1.space +pawcco.info +pawdcast.info +pawn-coder.ru +pawofjustice.org +pawpawfestival.com +pawsaquamation.biz +pawsmarts.com +pawssentials.com +pawvogue.biz +pawygu.info +paxdealsy.info +paxiq.click +pay-for-win.xyz +pay-mon.com +pay-my9pay.ru +pay-mysupplier.com +pay-pal48996.ml +pay-pal55424.ml +pay-pal63.tk +pay-pal8585.ml +pay-pal8978746.tk +pay-pals.cf +pay-pals.ga +pay-pals.ml +pay-pals54647.cf +pay-pals5467.ml +pay.rentals +pay.tj +pay2-pay-s.top +pay4d.club +pay4d.live +pay4d.space +pay4master.online +pay88.cash +pay99.cash +pay999.cash +payadd.org +payadoctoronline.com +payaenable.com +payaengage.com +payasnap.com +payaut.online +paybycar.us +paybycard.best +paybycard.shop +paycard.net +paycheckprotectionprogram2020.com +paychip.xyz +payco.shop +payday-loans-since-1997.co.uk +paydayadvanceworld.co.uk +paydaycash750.com.co +paydaycic2013.co.uk +paydayinstantly.net +paydayjonny.net +paydaylaons.org +paydayloan.us +paydayloanaffiliate.com +paydayloanmoney.us +paydayloans.com +paydayloans.org +paydayloans.us +paydayloansab123.co.uk +paydayloansangely.co.uk +paydayloansbc123.co.uk +paydayloansonline1min.com +paydayloansonlinebro.com +paydayloansproviders.co.uk +paydayloanyes.biz +paydayoansangely.co.uk +paydaypoll.org +paydayquiduk.co.uk +paydo.uno +payeer-bonus32.ru +payeer-com.online +payeer-org.online +payeer-ru.site +payersglobal.com +payforclick.net +payforclick.org +payforcu.cf +payforcu.gq +payforcu.ml +payforcu.tk +payforpost.net +payforpost.org +payinapp.com +paylasimisi.com +paylessclinic.com +paylevo.net +paym22.xyz +paymaya.cf +paymenex.cd +payment.tj +payment1ab1.com +paymentfortoday.com +paymentfortoday1.com +paymentmaster.gq +paymentsbotswana.com +paymobet.com +paynetcollect.com +payo22.xyz +payop.xyz +payot.club +payotta.net +payoumoney.com +paypal.comx.cf +paypalserviceirc.com +paypaywin.fun +paypaywin.host +paypaywin.press +paypaywin.site +paypaywin.website +payperdonation.org +payperex2.com +paypirus.com +payprinar.ga +payprinar.ml +payprinar.tk +payrolltax.in +payru-avito.ru +payseho.cf +payseho.ga +payseho.gq +payseho.ml +payseho.tk +paysgateway.com +payshow.website +paysite02.icu +payslink.best +paysop.xyz +payspun.com +payterking.cf +payterking.gq +payterking.ml +payterking.tk +paytopay.xyz +paytv.rent +paytvgratis.click +paytvgratis.info +paytvgratis.net +paytvgratis.online +payweiner.com +payxinsijitv.info +pazarlamadahisi.com +pb-shelley.cf +pb-shelley.ga +pb-shelley.gq +pb-shelley.ml +pb-shelley.tk +pb2019zone.com +pb3rr.us +pb5g.com +pb641.site +pbbilling.com +pbesjk.site +pbestore.com +pbjmpgne.shop +pbmbill247.com +pbqr.org +pbs83c.us +pbvm.ru +pc-service-in-heidelberg.de +pc.tj +pc07.app +pc08.app +pc09.app +pc1520.com +pc16.app +pc23.app +pc27.app +pc30.app +pc4pc4.com +pcaccessoriesshops.info +pcamerabest.site +pcapcompany.com +pcapsi.com +pcaudioshop.life +pcbshack.com +pcc.mailboxxx.net +pcc1.com +pccareit.com +pccomputergames.info +pccwch.space +pcdd000.com +pcdd7654.com +pcdd8765.com +pcdd9876.com +pceee.com +pces.cloud +pcfastkomp.com +pcg.earth +pcgameans.ru +pcgamemart.com +pcgameplay.ru +pcgcoatings.com +pchasm.net +pchatz.ga +pchelovodstvo-tut.ru +pchogwbcx.shop +pcijztufv1s4lqs.cf +pcijztufv1s4lqs.ga +pcijztufv1s4lqs.gq +pcijztufv1s4lqs.ml +pcijztufv1s4lqs.tk +pcincutthter.cf +pcincutthter.ga +pcincutthter.gq +pcincutthter.tk +pcixemftp.pl +pcjbomaina.com +pcjmx.com +pcknowhow.de +pclaptopsandnetbooks.info +pcmnt.live +pcmo.de +pcmylife.com +pcoop.ru +pcpccompik91.ru +pcrc.de +pcshe.com +pcspeedcare2.com +pcsr.net +pctc.us +pcurk.site +pcusers.otherinbox.com +pcvb.site +pcwldalgj.shop +pcyi.xyz +pd2mwh.site +pd5qjy.us +pd675.site +pd6badzx7q8y0.cf +pd6badzx7q8y0.ga +pd6badzx7q8y0.gq +pd6badzx7q8y0.ml +pd6badzx7q8y0.tk +pd7a42u46.pl +pdamail.ru +pdazllto0nc8.cf +pdazllto0nc8.ga +pdazllto0nc8.gq +pdazllto0nc8.ml +pdazllto0nc8.tk +pdcqvirgifc3brkm.cf +pdcqvirgifc3brkm.ga +pdcqvirgifc3brkm.gq +pdcqvirgifc3brkm.ml +pdcqvirgifc3brkm.tk +pddauto.ru +pderg.live +pdf24-ch.org +pdfa.site +pdfb.site +pdfc.site +pdfd.site +pdff.site +pdfg.site +pdfh.site +pdfi.icu +pdfinvoice.com +pdfj.site +pdfl.site +pdfm.site +pdfn.site +pdfo.online +pdfp.site +pdfpool.com +pdfq.site +pdfs.icu +pdfsolo.com +pdft.site +pdfu.site +pdfv.site +pdfz.icu +pdfz.online +pdfzi.biz +pdgvja.best +pdh22.space +pdjkyczlq.pl +pdk93.us +pdkmanbetx.com +pdl-profit.su +pdmanesthesia.com +pdmlink.ze.cx +pdmmedical.org +pdold.com +pdpm6o.us +pdq-dispatch.com +pdqnx.club +pdsgwdzlh.ml +pdtdevelopment.com +pdtny.com +pduluo.us +pdx5g.com +pdxgolffitness.com +pdxtrust.com +pdzgle.site +pe-sky.com +pe.hu +pe19et59mqcm39z.cf +pe19et59mqcm39z.ga +pe19et59mqcm39z.gq +pe19et59mqcm39z.ml +pe19et59mqcm39z.tk +peabodyrentals.com +peace.mielno.pl +peaceacu.xyz +peacebuyeriacta10pills.com +peacefulstrings.com +peacefultomorrow.org +peaceoutpops.com +peaceridesla.org +peachcalories.net +peachtreeresidencescondo.com +peacockbrowser.com +peakcfg.com +peakdebt.org +peakfree.net +peakfree.org +peakkutsutenpojp.com +peaksneakerjapan.com +peaksun.com +peaky-blinders.life +pealuh.com +peanjx.rest +peapaws.com +peapz.com +pearland.dentist +pearldintho.cf +pearldintho.ga +pearldintho.ml +pearldintho.tk +pearly-papules.com +pearlypenilepapulesremovalreview.com +pearpay.xyz +pebblegarden.org +pebesupermart.site +pebkit.ga +peblandkrum.com +pebti.us +pecdo.com +pece-krby.sk +pecerwell.gq +pecerwell.ml +pecerwell.tk +pecinan.com +pecinan.net +pecinan.org +pecintapoker.com +pecmail.gq +pecmail.tk +pecom-check.ru +pecosdesign.com +pectcandtive.gettrials.com +pedalcallingreuse.site +pedalenergygym.online +pedalpatchcommunity.org +peddingheads.com +pedestrianize440cz.online +pedia-egypt.org +pediacode.com +pediaexploler.site +pedias.org +pediatray.com +pedigolaw.com +pedimed-szczecin.pl +pedmas.com +pednet.ru +pedregosamail.club +pedropereiramd.com +pedslovo.ru +pedusupermart.site +peekbrush.us +peekbrushes.biz +peekra.com +peekskillfiredepartment.com +peemanlamp.info +peepto.me +peerbonding.com +peerdisk.com +peertopeerlendinginfo.com +peevr.com +peew.ru +peewee-sweden.com +peezy.fun +pefabde.gq +pefabde.ml +pefabde.tk +pefehe.xyz +pegabooksp.monster +pegadacerta.com +pegandocredito.com +pegas-touristic.space +pegasse.biz +pegasus.metro.twitpost.info +pegellinux.ga +peggconsulting.com +peggyreduceriver.site +pegmarketcap.com +pegsnzphk.shop +pegweuwffz.cf +pegweuwffz.ga +pegweuwffz.gq +pegweuwffz.ml +pegweuwffz.tk +pegysaconsultores.com +peirealestatelistings.com +peisky.icu +pejovideomaker.tk +pejr1l.com +pejuangkecantikan.com +pejuangwin.com +pekanrabu.biz +pekcashop.com +pekimail.com +peking-takeaway-dundrum.com +pekinginntakeaway.com +pekingting.cf +pekingting.ga +pekingting.gq +pekingting.ml +pekingting.tk +pekow.org +pekow.us +pekow.xyz +pekwbx.us +pelagonia.capital +pelagonia.studio +pelagonia.ventures +pelagonia.works +pelagonialaw.com +pelaiswealthonline.com +pelandoh.site +pelangi9.org +pelangiangka.org +pelangiqq188.info +pelangiqq188.net +pelav.org +pelecandesign.com +pelhamcorcoran.com +peli.site +pelicula-completa.online +peliculasonlinegratis.net +pelip.cc +peliscloud.com +pelisflix.site +pelisplus.ru +pelisplusvip.info +pelleti-deshevo.ru +pelor.ga +pelor.tk +pelorqq.com +pelorqq.net +pelrofis.cf +pelrofis.ga +pelrofis.gq +pelrofis.tk +pelstore.buzz +pelusa.info +pemail.com +pemainjitu.live +pemakan-kecoa.site +pembeliananda.info +pembemsi.cf +pembemsi.tk +pemel.best +pemwe.com +pen-drevo.ru +penandpaper.site +penatik.ru +pencalc.xyz +pencap.info +pencemaran.com +pencildropcrampon.ru +pendikucakbileti.com +pendnorsubg.cf +pendnorsubg.ga +pendnorsubg.gq +pendnorsubg.ml +pendnorsubg.tk +pendokngana.cf +pendokngana.ga +pendokngana.gq +pendokngana.ml +pendokngana.tk +penest.bid +pengajiansf.org +pengangguran.me +pengelan123.com +penghacurlemak.top +penghasilan.online +penguincreationdate.pw +penguinese.cc +peniaze.app +penienet.ru +penijel.site +peninsulamartialartsacademy.online +penis.computer +penisenlargementbiblereview.org +penisenlargementshop.info +penisgoes.in +penisuzvetseni.com +penjualanbatu.com +penkyx.me +penlovers.net +penmode.ru +penndustna.cf +penndustna.gq +pennebaker.us +pennwoods.net +pennyagi.site +pennyas.press +pennyauctionsonlinereview.com +pennyauctionwizards.com +pennybag.com +pennybank.org +pennycl.xyz +pennydram.icu +pennyfre.xyz +pennyfres.xyz +pennyrif.xyz +pennysave.org +pennystar.icu +peno-blok1.ru +penoto.tk +penraker.com +pens4t.pl +pensfalloss.cf +pensfalloss.ga +pensfalloss.gq +pensfalloss.ml +pensfalloss.tk +pensionadvicevoucher.com +pensionadvicevoucher.org +pensionnayareforma.ru +pensionsfestival.com +pensjonatyprojekty.pl +pensortearvi.monster +penspam.com +pent.top +pentadon.online +pentadon.shop +pentadon.store +pentagon.info +pentagram.online +pentestacademy.online +pentests.guru +penthouse4d.org +pentowerdublin8.com +penuyul.online +penyewaanmobiljakarta.com +penythgehiqe.ru +penzahleb.ru +peonyinn-athy.com +peonysecluderogue.site +peopleconnect.dev +peopleconnect.support +peopledrivecompanies.com +peoplefood.top +peoplehavethepower.cf +peoplehavethepower.ga +peoplehavethepower.gq +peoplehavethepower.ml +peoplehavethepower.tk +peoplehubs.com +peoplemail.vip +peoplepoint.ru +peoplepoliticallyright.com +peoples-health.site +peoplesdemocracy.us +peoplesovreignfund.com +peoplesscience.com +peopletalktv.ru +peoplewillbuyanything.com +peopleworkconnect.ru +peoservicescompany.com +peosporym.cf +peosporym.ga +peosporym.gq +peosporym.ml +peosporym.tk +peotanbart.ga +peotanbart.gq +peotanbart.ml +peotanbart.tk +pep53.space +pepbot.com +pepbridge.com +pepeth.info +peppe.usa.cc +peppercorn-initiatives.com +pepperload.com +pepsi.coms.hk +peptide-conference.com +peptideinformation.com +peptize29nq.online +pequenosnegocioslucrativos.com +peqxfmyff.shop +peracid3lv.online +peramatozoa.info +peramoon.space +perance.com +peraningrepher.press +peras.space +perasut.us +percale.site +perceptium.com +percheronfund.com +perchjerker.com +perclesning.cf +perclesning.ga +perclesning.gq +perclesning.tk +percolfklw.space +percom-track.ru +percutianaceh.com +percypierre.com +perdeciertac.com +perderpes0.online +perdoklassniki.net +perdredupoids24.fr +pereezd-deshevo.ru +peregroqkm.ru +pereho.site +perekrestok-bonus.ru +perelinkovka.ipiurl.net +perennialpatch.net +perere.cf +perere.gq +perere.tk +peresvetov.ru +perevbistroz.ru +perevezi-gruz.ru +perevodc.club +perevozim78spb.ru +perevozkabolnykh24.ru +perevozov.com +perfect-brides.com +perfect-dating.site +perfect-offers.site +perfect-smile-shop.site +perfect-teen.com +perfect-u.pw +perfectbags.ru +perfectcreamshop.com +perfectfithomerentals.com +perfection-challenge.com +perfectmatchevents.biz +perfectmatchevents.org +perfectnetworksbd.com +perfectsite.website +perfectskinclub.com +perfectsmail.ru +perfectu.pw +perfectvending.net +perfectwebinarscript.com +perfectxx.store +perfetchapp.com +perfo.best +performancesciencesllc.biz +performant.dev +performfirst.net +performyork.com +perfromance.net +perfumeachelois.com +perfumeadele.com +perfumeaffluence.com +perfumeappear.com +perfumeathens.com +perfumeattractive.com +perfumebeguiling.com +perfumebite.com +perfumeblended.com +perfumeblurred.com +perfumebounce.com +perfumecaptivating.com +perfumeclass.com +perfumecoco.com +perfumecontact.com +perfumedarling.com +perfumedelicacy.com +perfumeeclipse.com +perfumeelectrify.com +perfumeembrace.com +perfumeextravagant.com +perfumefine.com +perfumeinfatuate.com +perfumeintensity.com +perfumeintrigue.com +perfumelambent.com +perfumelavish.com +perfumemarvel.com +perfumeorchid.com +perfumephoenix.com +perfumephotogenic.com +perfumeplush.com +perfumepurity.com +perfumequaint.com +perfumeray.com +perfumeregency.com +perfumeregenerate.com +perfumereign.com +perfumerichness.com +perfumeritual.com +perfumespotless.com +perfumetease.com +perfumevelocity.com +perfumevenom.com +perfumevixen.com +perfumewarrior.com +pergh.xyz +perhea.info +peri-peri-chicken-kebab.com +peribiotics.com +perillorollsroyce.com +perilpeeperrower.site +perimetr-okna.ru +perimeubels.online +perimeubels.site +perindu.xyz +periodontistwebsitedesign.com +perios-grill-takeaway.com +peripherocentral.best +perisarsas.club +periscian.xyz +periskole.ru +peritoinformatico.online +peritusauto.pl +periwonen.online +perjalanandinas.cf +perjalanandinas.ga +perjalanandinas.gq +perjalanandinas.ml +perjalanandinas.tk +perk.vision +perkdaily.com +perkypoll.com +perkypoll.net +perl.mil +perm-master.ru +permacultureconsultants.org +permanentans.ru +permispno.cf +permispno.ga +permispno.gq +permispno.ml +permispno.tk +permkurort.ru +permundi.net +permvisa.ru +perni22ademire2.xyz +pernio.ru +perolas.com +perpetualblonde.com +perpetualsecurities.com +perpiogreen.cf +perpiogreen.ga +perpiogreen.gq +perpiogreen.ml +perpiogreen.tk +perpostlop.cf +perpostlop.gq +perpostlop.ml +perpostlop.tk +perrackdo.ga +perrackdo.gq +perrackdo.tk +perresu.cf +perresu.ga +perresu.gq +perresu.tk +perross.ml +perrotravel.com +perry-ellis.ru +perryandterryautobodyandpaint.com +perrybear.com +perryboy.com +perryms.com +perryms.org +pers.craigslist.org +persbericht.org +persebaya1981.cf +persebaya1999.cf +persenta.se +pershart.com +persian360.xyz +persianbet.site +persianpay.club +persicoin.com +persimmongrove.org +persiscreations.com +persistnwcd.email +persja.com +perslihelp.cf +perslihelp.ga +perslihelp.ml +perslihelp.tk +persmacge.cf +persmacge.ga +persmacge.gq +persmacge.ml +persmacge.tk +persningko.cf +persningko.ga +persningko.ml +persningko.tk +personae.us +personae.vote +personal-email.ml +personal-fitness.tk +personalandlifecoach.com +personalassistant.expert +personalassistant.live +personalblog.com +personalcok.cf +personalcok.ga +personalcok.gq +personalcok.ml +personalcok.tk +personalenvelop.cf +personalepa.com +personalfloattank.com +personalinjuryclaimsadvice.com +personalinjurylawyerct.net +personalize81ry.xyz +personalized-video.com +personalizedmygift.com +personalizedussbsales.info +personalizedvegan.com +personalmailer.cf +personalnoe-predlozhenie.ru +personalnoepredlozhenie.ru +personaltrainerinsurancequote.com +perspectivesaddictionconferences.com +perspectivesconferences.com +perspectivesimmobilier.com +perspexcuttosize.com +perspuhow.cf +perspuhow.ga +perspuhow.gq +perspuhow.ml +perspuhow.tk +perstand.fun +pertade.cf +pertade.ga +pertade.gq +pertade.ml +pertade.tk +perth-write.com +perthhousecleaning.services +perthusedcars.co.uk +perthwrite.com +peru-nedv.ru +peruadventureblog.com +perubests.info +peruvianize.best +perverl.co.cc +perviibankrot.xyz +perviysad.ru +pervoevideo.ru +pervova.net +pesachmeals.com +pesele.cf +pesele.ga +pesele.gq +pesele.ml +pesiar4d.com +pesiartoto.com +peskdr.com +pesna.com +pesnibeez.ru +pesowuwzdyapml.cf +pesowuwzdyapml.ga +pesowuwzdyapml.gq +pesowuwzdyapml.ml +pesowuwzdyapml.tk +pesquisaplaca.com +pessoa-juridica.com +pest-removal-toronto.ca +pestabet.com +pestycraft.tk +pet-care.com +petadigital.net +petadventures.tech +petalheiressruddy.site +petalsandquill.com +petanque-echt.online +petarung303.store +petarung88.best +petberries.ru +petbuysmart.com +petearrings.com +petearrings.net +petebarrettfineart.com +petebarterondrums.com +petebrigham.net +peter-petrovsky.sk +peterayres.info +peterbrookes.buzz +peterburgskaya-orhideya.ru +peterdethier.com +petergunter.com +peterhoffmanlaw.com +peterjasek.com +peterjasek.org +peterjohnson.dev +peterschoice.info +peterteneyck.com +petertijj.com +peterum.com +peterung.com +peteryasek.net +petfoodresearch.com +petistisajoc.host +petiteblondemoviez.com +petitebrunettes.com +petitemargot.com +petitlien.fr +petmem.net +petmem.org +petpal-sale.ru +petpawprint.com +petphotographer.photography +petproductreviews.site +petprotect.club +petrib.com +petrinibellteam.com +petrlvur14.website +petrobahis107.com +petroflex-sever.ru +petroleous.site +petrolgames.com +petronas.cf +petronas.gq +petrovac.net +petruhino2.ru +petrus-shop.ru +petrzilka.net +petsburb.com +petsday.org +petsfirst.info +petsfoodresearch.com +petshomestore.com +petsitterlive.com +petstoresusa.xyz +petuahjudi.com +petuh.org +petworld.site +petypals.com +peugeot-argentina.club +peugeot-australia.club +peugeot-citroen-fiat.ru +peugeot-club.org +peugeot206.cf +peugeot206.ga +peugeot206.gq +peugeot206.ml +peuvolsi.cf +peuvolsi.ga +peuvolsi.gq +pewariskeramat.com +pewebnont.ga +pewebnont.gq +pewebnont.ml +pewebnont.tk +pewnealarmy.pl +pewpewpewpew.pw +pexda.co.uk +peybet22.com +peybet26.com +peybet28.com +peybet29.com +peypel.online +peyuuv.xyz +peyvandzendegi.com +peyzag.ru +peza.site +pezhub.org +pezmail.biz +pfgaoq.shop +pfgvreg.com +pfiizer.com +pfingstfest.info +pfiter.com +pflege-schoene-haut.de +pflugervilleautorepair.com +pfmarket.org +pfmretire.com +pfngr.live +pfnvjn.top +pfqcn1.site +pfui.ru +pfundig.info +pfvmedia.com +pfwt9.us +pfyhlp.com +pg1kmh.xyz +pg444.site +pg59tvomq.pl +pg7700.com +pg772222.com +pg772345.com +pg773333.com +pg773456.com +pg774444.com +pg774567.com +pg77789.com +pg77by.com +pg77dns.com +pg77ffff.com +pg77hb.com +pg77iiii.com +pg77sss.com +pg77yyy.com +pg9327.com +pgazhyawd.pl +pgbs.de +pgdln.cf +pgdln.ga +pgdln.gq +pgdln.ml +pgeriiyd.shop +pghwct.us +pgioa4ta46.ga +pgjgzjpc.shop +pgkenzo2.club +pgkl.icu +pgkpkr.icu +pgkundendienst-18.com +pgoinfo.online +pgq0x1.us +pgqudxz5tr4a9r.cf +pgqudxz5tr4a9r.ga +pgqudxz5tr4a9r.gq +pgqudxz5tr4a9r.ml +pgqudxz5tr4a9r.tk +pgribahra.shop +pgslot78.net +pgtdbo.us +pgu.us +pguar-t.com +pgwb1u.us +pgxrx.com +pgyu.xyz +ph-shop.pro +ph0jt.us +ph6xhw.us +phaantm.de +phagy.com +phahuy.com +phaiyeu.net +phallobase.org +phamcpa.com +phantasticthings11.ml +pharm-france.com +pharma-pillen.in +pharmaceuticalbrush.com +pharmaceuticalbrush.net +pharmaceuticalbrush.org +pharmaceuticalbrush.us +pharmacy-city.com +pharmacy-generic.org +pharmacy-online.bid +pharmacycenter.online +pharmacygroupofcolleges.com +pharmacygulf.xyz +pharmacyshop.top +pharmacystorebags.com +pharmaexcipients.info +pharmaexcipients.org +pharmaexcipientwiki.com +pharmafactsforum.com +pharmaingredient.com +pharmasiana.com +pharmatiq.com +pharmphuel.com +pharmshop-online.com +pharshoeke.com +pharveta.cf +pharveta.ga +pharveta.gq +pharveta.ml +pharveta.tk +phase4.app +phasupplies.com +phattangent.com +phattich.com +phbikemart.com +phc-valeo.info +phch.store +phclip.com +phcphs.com +phd-com.ml +phd-com.tk +phdify.info +phdlfy.com +phdzso.info +phearak.ml +pheasantridgeestates.com +phecrex.cf +phecrex.ga +phecrex.gq +phecrex.ml +phecrex.tk +phecti.com +pheed.app +phefinsi.ga +phefinsi.gq +phefinsi.ml +phefinsi.tk +phen375-help1.com +phen375.tv +phenergan.website +phenethylamine.network +phenixanima.com +phenixcityapartments.com +pheolutdi.cf +pheolutdi.ga +pheolutdi.ml +pheolutdi.tk +phgfve.us +phh6k4ob9.pl +phi-crea.com +philadelphiaarthotel.com +philadelphiaflyerjerseyshop.com +philadelphiaquote.com +philadelphiasanswer-am990.com +philadelphiasansweram990.com +philae.pictures +philassist.com +philatelicenthusiast.com +philatelierevolutionfrancaise.com +phileoministries.org +philgrove.com +philihp.org +philip.pro +philippe.best +philippine.monster +philippines-cloud.center +philippinesheritage.net +philippinesingles.org +philipposflavors.com +philips-remont61.com +philipsmails.pw +philipuss.ml +phillipsandtemro.com +phillipsd.net +phillysmallbusinesses.com +philosophicalresearch.org +philosophyquotes.org +philsdesign.pro +philthevirtualizer.com +philuent.com +phim.best +phim.icu +phim47.com +phim68vn.com +phimg.org +phimmoizzzzz.net +phimtop1.tk +phisbe.site +phjouoznu.shop +phjwsz.com +phlhomesolutions1.com +phoebegibson.buzz +phoenix-homes-and-lifestyles.com +phoenix-ws.pro +phoenixdate.com +phoenixhomeoffer.com +phoenixquote.com +phonam4u.tk +phone-accessories.ga +phone-customer-services.com +phone-elkey.ru +phone-speed-mine-installs.club +phone-top-new-speed.club +phone-victory.ru +phone11pro.com +phoneaccessoriestips.info +phonearea.us +phonebookofgrenoble.xyz +phonecalltracking.info +phonecase-tetris.ru +phonecasesforiphone.com +phonecasesforiphonestore.com +phonefeeder.com +phonegirl4you.com +phonepacket.com +phoneshrub.com +phonesnoop.org +phonetopnewspeed.club +phonetroll.org +phongcach.top +phongchongvirus.com +phonghoithao.net +phongthuyhomenh.store +phoninator.com +phonollbyu.site +phonyprofanerumor.site +phonyyorker.com +photo-impact.eu +photoboothdallas.com +photocandyphotography.com +photoguru.site +photoica.com +photoimaginganddesign.com +photomark.net +photonephograph.best +photonspower.com +photoprint.ga +photoroid.com +photosbylfe.com +photoscycling.com +photoshop-tutorials-plus.com +photostudiobangkok.com +photosynthesizes190aw.online +php3.ru +phpbb.uu.gl +phpbrasil.org +phpcode.website +phpduglist.info +phpieso.com +phpozelders.com +phppgads.com +phptutorial.org +phqobvrsyh.pl +phrase-we-had-to-coin.com +phrasepaper.com +phsacca.com +phtunneler.ga +phubinh.asia +phubinh.us +phuked.net +phuket4kids.com +phuketthai.ru +phukettrail.com +phukienrobot.info +phulbari.website +phulkari.online +phuminhnguyen.ml +phunu.club +phunutre.online +phuongblue1507.xyz +phuongnamdigital.net +phuongphapdautu.com +phuongpt9.tk +phuongsimonlazy.ga +phus8kajuspa.cu.cc +phvirtualtours.com +phyllostomatoid.best +phymail.info +phymix.de +physicalescrow.com +physicaltherapydegree.info +physicaltherapysalary.info +phytanna.com +phytofluid.com +pi-ka.ru +pi-note.online +pi-note.xyz +pi-squaredpizzstaverns.com +pi.vu +pi8lvj.us +piaa.me +piabellacasino.com +piaggio.cf +piaggio.ga +piaggio.gq +piaggio.ml +piaggioaero.cf +piaggioaero.ga +piaggioaero.gq +piaggioaero.ml +piaggioaero.tk +piala188.com +pialaeropa180.com +piamendi.cf +piamendi.ga +piamendi.gq +piamendi.tk +pianoamus.icu +pianofe.press +pianofortenews.org +pianoprojectrit.com +pianounlimited.com +pianowou.icu +pianoxltd.com +piaster415ir.online +piazzetta.moscow +piba.info +pibgmible.cf +pibgmible.ga +pibgmible.ml +pic0226.online +picandcomment.com +picanya.net +picardgroup.com +picbop.com +picfame.com +picfection.com +picfibum.cf +picfibum.ga +picfibum.gq +picfibum.ml +picfibum.tk +picha.cd +pichak.com +pichosti.info +pichumper.com +picilur.site +pickadulttoys.com +pickatyre.com +pickawash.com +pickbits.com +pickemid.site +pickettproperties.org +pickissy.site +pickle-pics.net +pickleballminnesota.com +picklez.org +picknameme.fun +pickupblog.com +pickupfinder.org +pickuplanet.com +pickupwo.com +pickybuys.com +pickyourcontractor.com +pickyourmail.info +pickyroadwayrunny.site +picmonline.com +picnicandbeach.live +picogram.website +picomedicine.com +picoprocessors.com +picoteka.site +picous.com +picpegasus.com +picsala.com +picsandyou.com +picsedate.com +picsfiy.site +picsmun.com +picstarter.com +picture-movies.com +pictureframe.com +pictureframe1.com +picturepuzzles.club +picturetellers.com +piczomat.site +pid.mx +pidati.cf +pidati.gq +pidati.ml +pidati.tk +pidcockmarketing.com +pidemudanza.com +pidmail.com +pidoseme.online +pidouno.com +pidox.org +piebombing.com +piececoun.icu +piecemoderatosaber.site +pieceni.email +piecerang.email +piecerange.email +piecethigh.us +piedmont-energy.net +piedmonttoday.com +pieknybiust.com.pl +piepeka.cf +piepeka.ga +piepeka.gq +piepeka.ml +piepeka.tk +piercebrassfield.com +piersonvet.com +piesackdes.cf +piesackdes.ga +piesackdes.gq +piesackdes.tk +piese.pro +piespeed.buzz +pietergroup.com +pietershop.com +pieu.site +piewish.com +pig.pp.ua +pig04.com +pigbrachialone.website +pigdog1.ru +pigeon-mail.bid +pigeonhall.com +pigeonmail.bid +pigeonor.com +piggybankcrypto.com +piggybankcrypto.net +piggybankcrypto.org +piggybankcryptosavings.net +piggycoins.info +piggyvest.tech +piggywiggy22.info +pigmentospuros.com +pigsstep.com +pigybankcoin.com +pigybankcoin.net +pigybankcoin.org +pigycoins.net +pihai.net +pihavi.ru +pii.at +pijopt.icu +pikabu.press +pikagen.cf +pikchaser.com +pikhoy.site +piki.si +pikirkumu.cf +pikirkumu.ga +pikirkumu.gq +pikirkumu.ml +pikoclick.ru +pikolanitto.cf +pikolanitto.ga +pikolanitto.gq +pikolanitto.ml +pikolanitto.tk +pikos.online +pilatesbuddyapp.com +pilatesretreatscrete.com +pilatesshop.live +pilazzo.ru +piledriving911.com +pilesofcash.com +pilicinhikayesi.com +pilios.com +pilira.cf +pilira.ga +pilira.tk +pillbiddit.com +pillbuddyapp.com +pillen-fun-shop.com +pillole-blu.com +pillole-it.com +pillsbreast.info +pillsellr.com +pillsshop.info +pillsvigra.info +pilomaterial57.ru +pilosityproducts.com +pilotreellive.net +pilpres2018.ga +pilpres2018.ml +pilpres2018.tk +pilsosign.cf +pilsosign.gq +pilsosign.ml +pilsosign.tk +pimaapparel.net +pimalu.com +pimeariver.com +pimeclegaltech.cat +pimep.com +pimgcx.us +pimolo.cf +pimolo.ga +pimolo.gq +pimolo.ml +pimpedupmyspace.com +pimples.com +pimpmystic.com +pin-fitness.com +pin.poistaa.com +pinafh.ml +pinamail.com +pinbahis162.com +pinbahis188.com +pinbahis196.com +pinbahis220.com +pinbahis237.com +pinbahis241.com +pinbahis262.com +pinbahis282.com +pinbahis361.com +pinbahis372.com +pinbahis415.com +pinbahis418.com +pinbahis434.com +pinballcoil.com +pinbhs1.com +pinbhs2.com +pinbhs3.com +pinbhs4.com +pinbookmark.com +pinbury.me +pincerpdwm.space +pincoffee.com +pinderi.com +pineappledisco.com +pinebelt.org +pinebelt.us +pinebluffnc.buzz +pinehill-seattle.org +pinellas.store +pinemaile.com +pineswood.com +pinetkitopotk.xyz +pinetreeproperties.com +pinetreesports.com +pinetum.xyz +pingbloggereidan.com +pingdom.live +pingextreme.com +pingheads.com +pingir.com +pingp.ngo +pingubos.net +pingxtreme.com +pinicolous.best +pink-party.ru +pink4ever.net +pinkbestpage.ru +pinkcam.tech +pinkco.co.uk +pinkfrosting.com.au +pinkgifts.ru +pinkgirl.online +pinkinbox.org +pinkmoonfarms.com +pinknbo.cf +pinknbo.ga +pinknbo.gq +pinknbo.ml +pinksalt.org +pinlesscard.com +pinlianew.cf +pinlianew.gq +pinlook.site +pinnaclecenturies.com +pinnaclekor.com +pinnaclekor2.com +pinnaclekor3.com +pino99.info +pinoy-tambayan.ru +pinoy.monster +pinoy.trade +pinoy1tv.ru +pinoychannelofw.ru +pinoylambingantv.ru +pinoylivetv.su +pinoytambayanako.ru +pinoytambayanz.ru +pinoytvlambingan.ru +pinpoint-corp-cdn.net +pinprints.com +pinsmigiterdisp.xyz +pinsonian.org +pinsup.ru +pintaresfacilconsapolin.com +pintasticapp.com +pintech.ru +pintechpinball.com +pinterest-seo.online +pinterests.pro +pinterestworldrecipes.xyz +pintermail.com +pintssaddles.top +pintypin.com +pinup26.com +pinupp1.ru +pinuscrxiz.space +pinweixiaoshuo.com +pinyifen.com +pinyiny.site +pio21.pl +piocvxasd321.info +piodeadmou.gq +piodeadmou.tk +piogroup.software +pioneer.pro +pioneercart.com +pioneeri.com +pioneeringplaces.org +pioneerofficesystems.com +pipadanfittinghdpe.website +pipaltree.ong +pipe.doctor +pipebrush.net +pipebrush.org +pipebrush.us +pipebrushes.biz +pipebrushes.net +pipebrushes.us +pipenny.com +pipetka.fun +pipi.net +pipikitchen.com +pipim.net +pipiska6879.cf +pipiska6879.ga +pipiska6879.gq +pipiska6879.ml +pipiska6879.tk +pippieterskn.xyz +pippop.cf +pippopmig33.cf +pippopmigme.cf +pippuzzo.gq +pipsbeachouses.com +pipsbyron.com +pipsqweek.com +piquemortarsadly.site +piramitpoker.com +pirassssigggrrram.club +pirate-faction.ru +piratebaymovies.net +piratebayproxy.direct +piratebayproxy.online +piratedgiveaway.ml +pirategy.com +piratesdelivery.ru +piribet100.com +piribet13.com +piribet14.com +piribet18.com +piribet20.com +piribet22.com +piribet23.com +piribet24.com +piribet26.com +piribet28.com +piribet40.com +piribet60.com +pirojfreshmk.xyz +piromail.com +piry.site +pisakii.pl +pisarniskajoga.com +piscateniw.space +pisceans.co.uk +pischevik24.ru +piscosf.com +pisdapoolamoe.com +piseliger.xyz +pish46.xyz +pishbiniroyal.site +pishgamdsevents.com +pishpeshuk.com +pisichka.com +pisisi.biz +pisisi.info +pisisi.net +pisls.com +pisolaminado.club +pisoos.com +pispis.xyz +pisqopli.com +pistolcrockett.com +pistoletow-blog.ru +pitamail.info +pitaniezdorovie.ru +pitapan.org +pitayadetoks.site +piter-nedv.ru +piter-potolki.ru +pithell.fun +pithyn.org +pitkern-nedv.ru +pitlokjob.com +pitong31.icu +pitonresources.org +pitostrax.com +pittpils.online +pittsborochiro.com +pittsburghheroinrehab.com +pitynorm.host +piuminimoncler2013italia.com +piuminimoncler2013spaccio.com +piuonsales.com +piupiz.com +piusmbleee49hs.cf +piusmbleee49hs.ga +piusmbleee49hs.gq +piusmbleee49hs.ml +piusmbleee49hs.tk +pivo-bar.ru +pivotfurthersally.site +pivotmylife.com +pivrtks.com +pivrw.us +pivxambassador.com +pixaco.info +pixaco.org +pixdoudounemoncler.com +pixego.com +pixelated.nyc +pixelboats.info +pixelcomparison.com +pixelmark.online +pixelmatorteam.com +pixelnod.com +pixelpassion.space +pixelpav.com +pixelrate.info +pixelrealms.net +pixelsendhere.icu +pixelsorcery.net +pixelsorcery.org +pixeltips.xyz +pixieapp.com +pixiv365.com +pixiv8.com +pixivtool.com +piyahkc.xyz +piyamipi.site +pizhama-hotel.ru +pizza-bay-dungarvan.com +pizza-kebabhouse.com +pizza-point-takeaway.com +pizza.cd +pizza.cool +pizza25.ga +pizza4app.site +pizzabonus.fun +pizzacookiegaming.com +pizzahot-tipperary.com +pizzahut.org +pizzajunk.com +pizzakababish.com +pizzaload.net +pizzamarketespluguesesplugues.com +pizzamarketsants.com +pizzamayorimperial.com +pizzanadiapro.website +pizzandfriedchicken.com +pizzanewcas.eu +pizzapalaceenniscorthy.com +pizzapastatakeaway.com +pizzaplanet-waterford.com +pizzaplus-limerick.com +pizzashacktakeaway.com +pizzaslicedelivery.com +pizzaslicetakeaway.com +pizzasncream.com +pizzeria-cashel.com +pizzeriacolonmarbella.com +pizzeriagreco.com +pizzeriailmercato.com +pizzeriakebabalcantarillaalcantarilla.com +pizzeriakebabestambulmurcia.com +pizzeriavallecasdonerkebab.com +pj.today +pj12l3paornl.cf +pj12l3paornl.ga +pj12l3paornl.gq +pj12l3paornl.ml +pj12l3paornl.tk +pjbals.co.pl +pjbpro.com +pjdrcz.com +pji40o094c2abrdx.cf +pji40o094c2abrdx.ga +pji40o094c2abrdx.gq +pji40o094c2abrdx.ml +pji40o094c2abrdx.tk +pjjkp.com +pjkmanbetx.com +pjlounge.com +pjmanufacturing.com +pjoh.us +pjsky.net +pk007.shop +pk008.shop +pk009.shop +pk015.shop +pk017.shop +pk018.shop +pk019.shop +pk020.shop +pk025.shop +pk026.shop +pk027.shop +pk028.shop +pk029.shop +pk030.shop +pk031.shop +pk032.shop +pk033.shop +pk034.shop +pk035.shop +pk036.shop +pk037.shop +pk038.shop +pk039.shop +pk041.shop +pk042.shop +pk044.shop +pk046.shop +pk048.shop +pk051.shop +pk052.shop +pk055.shop +pk056.shop +pk057.shop +pk058.shop +pk059.shop +pk061.shop +pk062.shop +pk063.shop +pk065.shop +pk066.shop +pk067.shop +pk068.shop +pk069.shop +pk070.shop +pk071.shop +pk072.shop +pk073.shop +pk074.shop +pk075.shop +pk076.shop +pk077.shop +pk078.shop +pk079.shop +pk081.shop +pk082.shop +pk083.shop +pk085.shop +pk086.shop +pk087.shop +pk088.shop +pk091.shop +pk092.shop +pk3000.club +pk4.org +pk6699.xyz +pkbmdq.fun +pkbmmx.fun +pkcabyr.cf +pkcabyr.ml +pkdnht.us +pkearl.com +pkinform.ru +pkins.com +pkl89.space +pklmck.fun +pklmlc.fun +pklwsg.us +pkmail.cf +pknmcf.fun +pkrhk.us +pkrnegara.com +pkvdewaq.com +pkvheboh.net +pkvkartu.com +pkwaf.com +pkwccarbnd.pl +pkwreifen.org +pkxmbh.fun +pkxxr.live +pkxy8.us +pkykcqrruw.pl +pl-mail.ru +pl-praca.com +pl-us22.com +pl85s5iyhxltk.cf +pl85s5iyhxltk.ga +pl85s5iyhxltk.gq +pl85s5iyhxltk.ml +pl85s5iyhxltk.tk +placathic.cf +placathic.ga +placathic.gq +placathic.ml +placathic.tk +placdescre.cf +placdescre.ga +placdescre.gq +placdescre.ml +placdescre.tk +place.cd +place.vote +place2win.net +placebod.com +placeftg.tk +placemail.online +placemslcp.space +placentiaapartments.com +placentiadentists.com +placepages.com +placeright.ru +placertitlecompany.net +placertitlecompany.org +placertitlecompany.us +placertitlee.net +placertitlee.org +placertitlee.us +placertitleescrow.net +placertitleescrow.us +placertitles.net +placertltie.com +placetitle.net +placetitle.ru +placetopay.biz +placetopay.net +placeu.org +placrospho.cf +placrospho.ga +placrospho.gq +placrospho.ml +placrospho.tk +pladprodandartistmgt.com +plagiarismcheck.online +plagiarizers320ze.online +plague.chat +plaindesire.com +plaipal3.xyz +plaitbarrierscion.site +planchas-ghd.org +planchasghdy.com +plancul2013.com +plandoreview.app +planeselect.com +planet-kebabish-limerick.com +planet-travel.club +planeta-samsung.ru +planetbeatrix.com +planetcomputers.net +planethaze.net +planetkebabish-cahir.com +planetlive.online +planetnetwok.com +planetside2players.com +planetvirtworld.ru +planetwin365winall.net +planeze.com +planfin.online +plangeeks.com +planhorsehill.com +planiplans.com +planiste-francophone.com +planiwpreap.cf +planiwpreap.ga +planiwpreap.gq +planiwpreap.ml +planiwpreap.tk +plankperishscree.site +planmy.menu +planned-parenthood.org +plannedparenthood.health +plannedparenthoodasegurate.com +planoautoaccidentlawyers.com +planodesaudecarloslira.top +planodesaudeleonardolobo.top +planoheroinrehab.com +planoquote.com +planorealestateagents.com +planowaniewakacji.pl +plans-b.ru +plansulcutt.cf +plansulcutt.ga +plansulcutt.gq +plansulcutt.ml +plansulcutt.tk +plant.energy +plant.events +plant.fitness +plant.global +plant.recipes +plant.vegas +plant1plant.com +plantbased.date +plantbased.doctor +plantbased.healthcare +plantbasedbacon.com +plantbasedbeef.com +plantbasedfish.com +plantbasedholidays.com +plantbasedlamb.com +plantbasedmacaron.com +plantbasedpork.com +plantbasedproteinbar.com +plantbasedshrimp.com +plantbasedsteak.com +plantbasedtoys.com +plantbasedvaccine.com +plantbasedvaccines.com +plantcab.xyz +plantcarbs.com +plantchocolate.com +plantcream.com +planteralatt.nu +planteralatt.se +plantfeels.com +plantfoodie.com +plantiary.com +plantkado.space +plantla.xyz +plantlas.xyz +plantmedicineglobal.com +plantnog.com +plantnove.press +plantoneplant.com +plantpolish.com +plantpork.com +plantproteinshake.com +plantsalmon.com +plantscan.online +plantscrave.com +plantshrimp.com +plantssparkjoyclub.com +plantsvszombies.ru +planttoys.com +planyourwed.com +plashmoistenscrew.site +plasmaforcure.com +plaspayti.cf +plaspayti.ga +plaspayti.gq +plaspayti.ml +plaspayti.tk +plasticizers180if.online +plasticizing753kl.online +plasticregime.com +plasticsurgeonmarketingagency.com +plastik.fun +plastikaspb.ru +plastikmed.com +plaswillno.cf +plaswillno.gq +plateapanama.com +platedeph.cf +platedeph.ml +platedeph.tk +plates4skates2.info +platformassociates.com +platin.dev +platingaming.dev +platinhosting.cloud +platinize755rx.online +platinum.cam +platinumalerts.com +platocasino.com +platypdmeb.site +platyrexgk.space +plauda.site +plavaivodaviytrsvxj.info +plavixprime.com +play-minevra.xyz +play-store.app +play-store.biz +play-store.net +play-vulkan-club.ru +play-wap.org +play11.com +play1x.icu +play1x.online +play2vulkan.net +play2x.land +play2x.link +play2x.zone +play303.xyz +play338.org +play3n1.com +play3n11.com +play3n18.com +play3nclub.com +play3ncn.com +play3nfair.com +play3niu18.com +play3niu88.com +play3niua.com +play3niub.com +play3niuc.com +play3nlive.com +play3nsb.com +play3nvip.com +play3nwin.com +play3nwin8.com +play4gold.net +play588.com +play999spin.com +playamo.casino +playamo36.com +playbaocasino.info +playbetcasino.com +playcanvas.net +playcard-semi.com +playcasino24.com +playcoin.online +playdiablo4.ru +player-casino.ru +player-midi.info +players501.info +playerspc.net +playerx.win +playforfun.ru +playforpc.icu +playfortuna-in.ru +playfortuna-official.ru +playfortunaonline.ru +playfulcityusa.com +playfunplus.com +playfuny.com +playgamesgo.club +playgirl4d.net +playhabnet.online +playhardjoinville.tk +playhippo.se +playhosting.ru +playkingschance.com +playkres.com +playlablondon.com +playmtv.com +plaync.top +plaync.xyz +playnposm.com +playon.fun +playonlinecasino.tech +playouisi.com +playpharaon.fun +playpokergame.net +playretro.online +playrugbyspain.com +playsbc.info +playsbc.org +playsbox.ru +playsetsshop.life +playsims.ru +playsoffstream.live +playsquareland.com +playstation3files.com +playstationspecs.online +playsto.bet +playstore.best +playstube.com +playtell.us +playthemarket.com +playtubemusic.com +playtubemusic.net +playtubepk.com +playtubes.net +playyo88.info +playyo88.win +playzonex.com +pldppd.site +pleadfl.xyz +pleadid.email +pleadlea.xyz +pleadworr.host +pleasantfantastic.com +pleasanthillapartments.com +pleasantinsterest.com +pleasanttransform.com +pleasantuniques.com +pleasedonotpurchasethedomain.com +pleasegoheretofinish.com +pleaseletmeoutdaddy.bar +pleasenoham.org +pleasewait.site +pleasherrnan.cf +pleasherrnan.ga +pleasherrnan.gq +pleasherrnan.ml +pleb.lol +plecertitle.com +plecmail.ml +pledge.xyz +plee.nyc +pleinairconventionfall.com +pleinairconventionwest.com +pleinairspring.com +pleinr.com +pleionehosting.com +plemedci.cf +plemedci.ga +plemedci.gq +plemedci.ml +plemedci.tk +plemrapen.cf +plemrapen.ga +plemrapen.gq +plemrapen.ml +plenbundden.cf +plenbundden.gq +plenbundden.ml +plenbundden.tk +plenty.su +plentyapps.com +plescheevo-mayak.ru +plesniaks.com.pl +plethurir.cf +plethurir.ga +plethurir.gq +plethurir.ml +plethurir.tk +plex-family.com +plexamab.cf +plexamab.ga +plexamab.gq +plexamab.ml +plexamab.tk +plexolan.de +plez.org +plfeco.xyz +plgbgus.ga +plgbgus.ml +plgjhm.us +plhdyj.icu +plhk.ru +plhosting.pl +pliego.dev +plitkagranit.com +plitkaua.site +plitur.com +pllacertitle.com +ploae.com +plollpy.edu +plombierleblancmesnil.com +plonecheck.xyz +plonkxicg.space +plopgroep.shop +ploraqob.cf +ploraqob.ga +ploraqob.tk +plorhosva.cf +plorhosva.ga +plorhosva.gq +plorhosva.tk +plot49.com +plotblip.com +plotfifth.com +plotsandfoils.com +plotwin.xyz +ploutos.ong +ploxitanin.ru +ployapp.com +plpfq.us +plrdn.com +plsh.xyz +pluccb.xyz +plufix.net +pluflex.com +plugfield.com +pluggedinsocial.net +plughorn.us +plugindesiger.com +pluginengine.com +plugins.cloud +plugsolo.com +plumbadzul.space +plumberdelray.com +plumberjerseycity.info +plumberplainfieldnj.info +plumberslive.com +plumbing-world.com +plumbingpackages.com +plumblandconsulting.co.uk +plumcreekmarketing.com +plumfox.com +plumlytics.net +plumosxxtz.space +plumrelrei.cf +plumrelrei.ga +plumrelrei.gq +plumrelrei.ml +plumrelrei.tk +plumripe.com +plumrite.com +pluralizes785ql.online +plus-size-promdresses.com +plus1vps.com +plusgmail.ru +plushimages.net +plushington.ru +plusica.tk +plusiptv.xyz +plusjlle.com +plusjlle12.tk +pluskatv.sk +plusmail.cf +plusonefactory.com +plussizecorsets4sale.com +plussmail.com +plussreklam.xyz +plustrak.ga +plutbild.ru +plutcool.ru +plutcrop.ru +plutdog.ru +plutlight.ru +plutmir.ru +plutobet.com +plutocow.com +plutofox.com +plutognivo.ru +plutoillumination.ru +pluttour.ru +plutus.family +plutus.social +plutvid.ru +plutvivo.ru +plw.me +plxrd1.site +plymouthrotarynh.org +plymouthrrock.com +plyplace.com +plyty-betonowe.com.pl +plz-mail.online +pm-200.info +pm-386.info +pm-773.info +pm-privat.com +pm244.site +pm7if.us +pmankidneyfoundation.org +pmarketst.com +pmcasino-online.ru +pmchtv.info +pmck.info +pmdlt.win +pmelegend-footwear.com +pmelegend.clothing +pmeshki.ru +pmivsmvc.shop +pmldmt.com +pmledyanoy.site +pmlep.de +pmmgladanorak.site +pmmgrafavenec.site +pmmkernstylyy.site +pmmkoftaglad.site +pmmoroznyy.site +pmmparkaglad.site +pmmpurgaburan.site +pmmvyugaparka.site +pmob.online +pmottc.com +pmpcertificationinfo.com +pmq0yk.us +pmriverside.com +pmshelf.com +pmsvs.com +pmta01.us +pmtmails.com +pmyojana.website +pmzummer.site +pn2ulj.site +pn8282.com +pncmarkets.com +pndan.com +pneumo360.ru +pnevmo360.ru +pnew-purse.com +pnhez.com +pnhrpna.com +pnina-inbar.com +pnizgotten.com +pnmproduction.com +pnmxb1.site +pnn79.com +pnpaxl.site +pnpbiz.com +pnqzqoryz.shop +pnrep.com +pntrvx.xyz +pnvky.live +pnvp7zmuexbqvv.cf +pnvp7zmuexbqvv.ga +pnvp7zmuexbqvv.gq +pnvp7zmuexbqvv.ml +pnvp7zmuexbqvv.tk +pnwgenetics.com +pnxmbv.icu +pny0if.us +po-telefonu.net +po.bot.nu +po.com +po0rasiiigraaam.club +po0rttttoo90.club +po209.space +po210.space +po211.space +po218.space +po221.space +po228.space +po4tamt.org +po588.com +po8flz.us +poakdna.com +poalmail.ga +poanunal.cf +poanunal.ga +poanunal.gq +poanunal.ml +poanunal.tk +pob2.club +pob9.pl +pobbbilocf.club +pobedamailer2.com +pobedit-ves.ru +pobet.info +pochatkivkarmane.cf +pochatkivkarmane.ga +pochatkivkarmane.gq +pochatkivkarmane.ml +pochatkivkarmane.tk +pochta2018.ru +pochtamt.ru +pochtar.men +pochtar.top +pocketmortyreceipes.org +pocketpleaser.com +pocketslotz.co +poclickcassx.com +poconospeech.com +pocontbest.cf +pocontbest.ga +pocontbest.ml +pocontbest.tk +pocoobtla29.site +pocupki.ru +poczta.pl +pocztaaonet.pl +pocztex.epizy.com +pocztex.ovh +poczxneolinka.info +poczxneolinkc.info +pod72.com +podam.pl +podarbuke.ru +podatki-kog.com +podatnik.info +podboremavto.ru +podcastflow.com +podcastfunnel.com +podcekay.ru +poddon-13.ru +poddop.club +podemosenmovimiento.info +poderatiop.space +poderosamulher.com +podgladaczgoogle.pl +podguznik38.ru +podiform.xyz +podil.xyz +podkarczowka.pl +podlipskiy.ru +podlqop.ru +podmosk.ru +podmozon.ru +podotherapie.frl +podscripts.online +podscripts.pro +podscripts.website +podstrigus.ru +podsvetkakuhni.ru +podv.net +podveska-nn.ru +poegal.ru +poehali-otdihat.ru +poers.com +poesie-de-nuit.com +poetred.com +poetrysms.in +poetrysms.org +poh.ong +poh.pp.ua +pohotmi.cf +pohotmi.ga +pohotmi.ml +pohotmi.tk +pohydalka.ru +poi123.com +point2usa.com +pointampl.xyz +pointcreator.com +pointfe.xyz +pointklick.com +pointklick.net +pointmade.pro +pointri.email +pointslot.com +pointssurvey.com +pointstr.cf +pointstraffictickets.com +pointtstrafficticket.com +pointvisible.company +poioijnkjb.cf +poioijnkjb.ml +poiopuoi568.info +poipet.asia +poipet2go.com +pois0n.su +poisoncycles.com +poisontech.net +poissonsvivants.info +poistaphdes.cf +poistaphdes.ga +poistaphdes.gq +poistaphdes.ml +poistaphdes.tk +poiuuiop23.xyz +poiuweqw2.info +pojangmacha.net +pojdveri.ru +pojieyuanma.com +pojok.ml +pokecalc.online +pokeett.site +pokegofast.com +pokemail.net +pokemon-video.ru +pokemonbattles.science +pokemongocoins.website +pokemongodatabreach.com +pokemonqq.com +pokenoms.com +poker-boya.com +poker-texas.com.pl +poker837.online +poker837.org +poker855.mobi +poker88asia.net +poker933.net +pokerasean.com +pokerbandar77.com +pokerbandar77.org +pokerbaz.club +pokerbet99.com +pokerbonuswithoutdeposit.com +pokercad47.net +pokercash.org +pokercashqq.biz +pokercashqq.net +pokercemeku.com +pokerclick88.biz +pokercloob.com +pokercmi.info +pokercuan.club +pokercuan.online +pokerdomonline.online +pokerdomz.online +pokerdong88.com +pokerduo.com +pokerevening.biz +pokergemini.org +pokeriran.info +pokeriran.net +pokerkilat.org +pokerlegendanew.com +pokerlena.club +pokermilenia.info +pokermilenia.net +pokermilenia.org +pokernet88.org +pokeronlinecc1.xyz +pokerorion.biz +pokerorion.online +pokerprizespies.com +pokersaya.com +pokersbo338.club +pokersbo338.org +pokersctv.biz +pokersdating.info +pokerseal-my.com +pokersgg.com +pokersolusiwin.com +pokerterpercaya.fun +pokertexas1001.com +pokertexas77.com +pokertexasidn.com +pokerting.org +pokerwalet123.com +pokerwin888.com +pokerwin99.com +pokerzilla126.xyz +pokerzilla127.xyz +pokerzo.biz +pokesmail.xyz +poketta.cf +poketta.gq +poketta.ml +poketta.tk +pokeymoms.org +pokiemobile.com +pokoshop.se +pokostand.se +pokostore.se +pokr-str.ru +pokraska1.ru +pokrowcede.pl +pokupai-mili.ru +pokupai-vsegda.ru +pokupaska24.ru +poky.ro +polaab.com +polacy-dungannon.tk +polameaangurata.com +poland-nedv.ru +polarcdn-static-staging.com +polaris-280.com +polarkingxx.ml +polasela.com +polatalemdar.com +polatlicocukdiyari.com +polccat.com +polco.org +poledancingct.com +polemarh.ru +polen-ostsee-ferienhaus.de +polenokol.ru +polenomir.ru +polespanki.icu +polet-pallet.ru +poletbot.site +polezno-znati.ru +polezno2012.com +poleznofinland.ru +policity.ml +policity.tk +policyofliberty.com +poliden.me +poliglot-16.ru +polija.ru +polikaser.tk +polikasret.ml +polimatsportsp.com +polimernd.com +polimi.ml +polina777.ru +polinom.ga +polioneis-reborb.com +polisabrn.gq +polisetr.ml +polishbs.pl +polishxwyb.com +polistand.site +polit-konsultant.ru +polit-tehnologiya.ru +polit-tekhnologiya.ru +politgator.ru +political101.com +politicalcripple.com +politicfree.news +politichesko.info +politicspass.com +politicsultra.com +politika24.info +politikerclub.de +politprognoz.club +polittehnologiya.ru +polittekhnologiya.ru +poliusraas.tk +polizasaduana.com +polizzeperstranieri.net +polka-shkaff.ru +polkaarsenal.com +polkaauth.com +polkadot.tk +polkaidot.ml +polkars.online +polkarsenal.com +polkindustries.com +polkretoiut.gq +pollardbase.com +pollgirl.org +polljonny.org +pollrokr.net +pollsthatpay.com +pollys.me +polmaru.cf +polmaru.ga +polnaserdew.ga +polobacolono.com +polobet312.com +polobet313.com +polobet314.com +polocoton.com +polohommefemmee2.com +polol.com +poloozz.cloud +polopasdcheres.com +polopashcheres.com +polopasqchere7.com +polopowdhz.space +poloralphlaurenjacket.org +poloralphlaurenpascheresfrancefr.com +poloralphlaurenpascherfr1.com +polosburberry.com +polosiekatowice.pl +polosous.com +polostar.me +polovaz.website +poloversamos.xyz +polplitka.ru +polpuzzcrab.ga +polpuzzcrab.gq +polpuzzcrab.tk +polres-aeknabara.cf +polskaprawna.site +poltawa.ru +poltovec.com +poluchitnasledst.xyz +poluchy.ru +poly-swarm.com +polyace.ru +polybrow.com +polycast-china.com +polycast-suzhou.com +polycoco.com +polyfaust.com +polyformat.media +polygami.pl +polymnestore.co +polymorph.icu +polynoxe.ru +polyor.xyz +polyskinwax.biz +polyswarms.com +polyvore.name +polzavredka.com +pomeranianboo.org +pomeroyohs.info +pomifo.info +pomonayouth.org +pomorscyprzedsiebiorcy.pl +pompanette.maroonsea.com +pomsiese.ru +pomsux.xyz +pomyslnaatrakcjedladzieci.pl +pomysloneo.net +pomyslynabiznes.net +ponabana.info +ponabana.org +ponahakizaki.xyz +ponatcyrr.ga +ponatcyrr.gq +ponatcyrr.ml +ponatcyrr.tk +ponce.works +pondsbydesign.com +ponenes.info +poney.xyz +pongueme.cf +pongueme.ga +pongueme.gq +pongueme.tk +pongwonproductions.com +ponibo.com +ponili.cf +ponili.ga +ponili.gq +ponili.ml +ponili.tk +ponmejudg.cf +ponmejudg.ga +ponmejudg.gq +ponmejudg.tk +ponp.be +ponselarena.com +pontonboot.net +pontonboten.net +pontorez.site +pontstoudar.ga +pontstoudar.gq +pontstoudar.ml +pontstoudar.tk +pony-shop.ru +ponycloud.net +ponyvaldez.com +ponyxchange.store +poo-nicorns.com +pooae.com +pooasdod.com +poobbttt.club +poochtimberscuba.site +poofy.org +pookmail.com +pool-plastering.com +poolameafrate.com +poolandliving.com +poolcovers.se +poolemail.men +poolfared.ml +poolstavka.com +pooltoys.com +poolx.site +poopiebutt.club +poopouri.ru +poorgeorgesalmanac.com +poormansjerky.com +pooyanmokhtari.net +pop-a-lock-smith.com +pop-newpurse.com +pop-under.ru +pop2011email.co.tv +pop3.xyz +pop3email.cz.cc +pop3mail.cz.cc +popa-mopa.ru +popalockofftsmith.com +popanda.website +popander.net +popbangphotography.com +popbum.com +popcanadagooseoutlet.com +popcavmire.ru +popcode15.xyz +popconn.party +popcornflix-free.site +popcornforrefugees.com +popcrime.com +popculturekeys.com +popculturetopics.com +popdrunk.com +popemailwe.com +popesodomy.com +popgeekcollectables.com +popgx.com +popherveleger.com +popinapp.com +popinfo.ru +popinmusic.com +popjav.ninja +popjob.us +popk-77.com +popk-me.com +poplift.com +popmail.io +popmaildf.com +popmailserv.org +popmailset.com +popmailset.org +popmints.app +popofish.com +popolo.waw.pl +popov.marketing +poppadomtakeaway.com +poppell.eu +poppellsimsdsaon.eu +poppermccormick.com +poppers.cd +poppopbattlej.com +poppunk.pl +poppyalwaz.site +poppyscroll.com +popsci.ru +popsissi.com +popso.cf +popso.ga +popso.gq +popso.ml +popso.tk +popsok.cf +popsok.ga +popsok.gq +popsok.ml +popsok.tk +popteen4u.com +populaire.pro +popularabutiker.se +popularbagblog.com +popularbook.se +popularjackets.info +popularmotorcycle.info +popularpiercing.com +popularswimwear.info +populatin.space +popunder.biz +popuza.net +poq9sm.us +poradcamaklera.sk +porarriba.com +poraza.com +porch-pride-slight-feathers.xyz +porchauhodi.org +porco.cf +porco.ga +porco.gq +porco.ml +pordiosw.com +poreglot.ru +porevoorevo.co.cc +porfitdota.fun +porilo.com +poring-ro.com +porkinjector.info +porkpolice.com +porn-movies.club +porn4everyone.tk +pornfreefiles.com +pornizletr.com +porno-figa.online +porno-man.com +porno-prosto.ru +porno-sex-video.net +pornoclipskostenlos.net +pornomors.info +pornopopki.com +pornoseti.com +pornosexe.biz +pornosiske.com +pororogoreng.top +porororebus.top +porovozik.ru +porrect.xyz +porrtob.info +porschcourtsettlement.com +porschcourtsettlements.com +porsche-brasil.club +porsche-destination-charging.com +porsche-emisiones0.com +porsche-macan.club +porschedealersacramento.com +porsh.net +porsterp.com +porta.loyalherceghalom.ml +portableearthing.com +portablespins.co +portageut.buzz +portailbijou.com +portal-finansowy.com.pl +portal-gonzaga.xyz +portal-internetowo-marketingowy.pl +portal-marketingowy.pl +portal-ogloszeniowy-24.pl +portal3.net +portal56.xyz +portal7.ru +portalbrasileiro.online +portaldenoticiasbrasil.site +portaldenovidades.site +portaldoagora.xyz +portaldosbrasileiros.site +portaleanimali.com +portaleanimali.net +portalgateway.org +portalninjas.com +portalprimavera.xyz +portalsehat.com +portalvideo.info +portalweb.icu +portatiles.online +portelatutoriais.com +porterandclarkchiropractic.com +porterbraces.com +portesdegarage.quebec +portfabric.com +portha-stephane.space +porthtatin.ga +porthtatin.gq +porthtatin.ml +porthtatin.tk +portic.xyz +porticoresidence.com +porticullus.com +portigalconsulting.com +portland5g.net +portland5g.org +portlandintegritasadvisors.info +portlandnailsalons.com +portlandnursingjobs.com +portlandsocietypage.net +portlenso.cf +portlenso.ga +portlenso.gq +portlenso.tk +portob.info +portobello-pizza-cafe.com +portobelobrew.com +portobet2019.club +portocalamecanicalor.com +portocalelele.com +portosharmelsheikhresort.xyz +portovelo.com +portsefor.cf +portsefor.ga +portsefor.ml +portsefor.tk +porttttooo90.club +portu-nedv.ru +portubeautiful.tech +portugal-choco-late.online +portugal-chocolate.club +portugal-chocolate.online +portugalchocolate.host +portugalholidays.org +portugalresidencial.com +portuguesewithrick.com +portxedna.cf +portxedna.ga +portxedna.gq +portxedna.tk +pos-graduacao-lato-sensu.com +posatlanta.net +posdz.com +posehigm.space +poselokvoskresenki.ru +poserpostageserif.site +poseyweddings.com +posgraduacaolatosensu.com +poshdine.com +posher.ru +posicionamientowebmadrid.com.es +posisiku.pw +positive.bet +posliquidators.com +posmayma.cf +posmayma.gq +posmayma.ml +posmayma.tk +posnwu.online +posobie-01.site +posov.info +possystemsguide.com +post-box.in +post-box.xyz +post-mail-server.com +post-shift.ru +post.melkfl.es +post.mydc.in.ua +post0.profimedia.net +posta.store +posta2015.ml +postaci.ml +postacin.com +postalmail.biz +postbenua.ru +postcard.delivery +postcards4change.net +postcardsfromukraine.crowdpress.it +postcm.com +postdated.email +poste-it.xyz +poste-recherche.xyz +postely-dream.ru +postemail.net +postermanderson.com +posteronwall.com +posterxmtw.space +postfach2go.de +postgres-replication.org +posthava.cf +posthava.ga +posthava.gq +posthava.ml +posthava.tk +posthectomie.info +postheo.de +postheodor.ml +posthet.stream +posthoxnxx.space +postim.de +postina.ml +postkaso.tk +postlame.cf +postlame.ga +postlame.gq +postlame.ml +postlame.tk +postmail1.ru +postmate.delivery +postmen.online +postmolly.com +postnasaldripbadbreath.com +postnetftent.ga +postnetftent.gq +postnetftent.ml +postnetftent.tk +postoni.ml +postonline.me +postroikoform.xyz +postroimkotedg.ru +postshift.ru +poststand.com +posttrade360.se +postupstand.com +posurl.ga +poszkodowani.info +potarveris.xyz +potasf.com +potblog.com +potdropcrampo123n.ru +potdropcrampon.ru +potechinltd.ru +potemalls.site +potencialex-it.site +potencialexone.ru +potencialexstore.ru +potencialis.info +potencid.ru +potencis.ru +potencyalex.ru +potenz-drink.com +potenzialex149.ru +potenzshot.com +potolki-voronezh.ru +potrawka.eu +potshisha.com +potstockinvesting.com +pottattemail.xyz +potterymediaco.com +pottingerperspectives.com +pottytrainingchamp.com +poucet.org +pouet.xyz +pounduni.us +poundwise.app +pourforme.com +pourover.dev +poutineyourface.com +poutokilas.ga +povesticopii.info +povorotov.ru +povu.site +povuoutlet.site +povzcz.shop +pow-pows.com +pow.photo +powaylawyers.com +powcoin.net +powcoins.com +powderdesk.com +powdergeek.com +power-leveling-service.com +power-shopping.info +power5mastermind.com +powerbank-russia.ru +powerbike.de +powercontinuitysystems.com +powerdast.ru +powerdra.us +powered.name +powerempleo.com +powerencry.com +powerexsys.com +powerfivemastermind.com +powerforce.site +powerfreedom.email +powerfulultraextract.com +powerhousedyno.com +powerin.site +powerlea.xyz +powerlear.xyz +powerlink.com.np +powermass.site +powerml.racing +poweronrepair.com +powerpages.website +powerpls.xyz +powerpressed.com +powerpressites.com +powers-balances.ru +powersala.com +powertaser.tk +powerwashchemicals.com +powerwashcompany.org +powerwashersmd.com +powerwashersmd.xyz +powerz.org +powewashing.mobi +powiekszaniepenisaxxl.pl +powlearn.com +poww.me +poxot.org +poxudeykina.ru +poy.e-paws.net +poy.kr +poyrtsrxve.pl +pozecraciun.info +pozitifff.com +pozitiv.ru +poznakomstvy.ru +pozunusec.com +pozycja-w-google.com +pozycjanusz.pl +pozycjonowanie-2015.pl +pozycjonowanie-jest-ok.pl +pozycjonowanie-stron-szczecin.top +pozycjonowanie.com +pozycjonowanie.com.pl +pozycjonowanie56.pl +pozycjonowaniekielce.pl +pozycjonowanieopole.net +pozyczka-provident.info +pozyczkabezbik24.com.pl +pozyczkasms24.com.pl +pozyczkigotowkowewuk.com.pl +pozyczkiinternetowechwilowki.com.pl +pozyczkiprywatne24.net +pozyczkiwuk.com.pl +pozyjo.eu +pp.ua +pp18269.com +pp57822.com +pp916.com +pp98.cf +pp98.ga +pp98.gq +pp98.ml +pp98.tk +ppabldwzsrdfr.cf +ppabldwzsrdfr.ga +ppabldwzsrdfr.gq +ppabldwzsrdfr.ml +ppabldwzsrdfr.tk +ppapa.ooo +pparlrrraaiggraaam.club +pparsgorrem.club +ppatour.org +ppav05.xyz +ppav07.xyz +ppb778.com +ppbanr.com +ppbill247.com +ppbk.ru +ppbomail.com +ppc-e.com +ppc-trafic.ru +ppcoy.com +ppcwoo.com +ppcwoo.org +ppdev.org +ppdf.site +ppdhub.best +ppetw.com +ppgu8mqxrmjebc.ga +ppgu8mqxrmjebc.gq +ppgu8mqxrmjebc.ml +ppgu8mqxrmjebc.tk +ppiqglobal.com +ppisjgika.ga +ppixorea.site +pplay-ffortuna1.ru +ppldnzyo.pro +pple.com +pplrecords.com +ppmoazqnoip2s.cf +ppmoazqnoip2s.ga +ppmoazqnoip2s.gq +ppmoazqnoip2s.ml +ppnet.ru +ppnncc.com +ppodkeye.site +ppodkeyr.site +ppoker99.com +ppp062.com +ppp9827.com +pppoirasigram.club +pprostitutki-samara.info +ppsapta.info +ppsapta.net +ppsekosovo.org +ppsindonesia.com +ppstat.ru +ppx219.com +ppx225.com +ppx237.com +ppx240.com +ppx299.com +ppymail.win +ppz.pl +pq6fbq3r0bapdaq.cf +pq6fbq3r0bapdaq.ga +pq6fbq3r0bapdaq.gq +pq6fbq3r0bapdaq.ml +pq6fbq3r0bapdaq.tk +pqhwcf.us +pqoia.com +pqoss.com +pqpk.us +pqssj.icu +pqtoxevetjoh6tk.cf +pqtoxevetjoh6tk.ga +pqtoxevetjoh6tk.gq +pqtoxevetjoh6tk.ml +pqtoxevetjoh6tk.tk +pqtxtlvne.tk +pquoil.site +pquw0o.com +pqxdig.info +pr0jectn1ne.com +pr1ngsil4nmu.ga +pr253.site +pr5.info +pr6312.xyz +pr7979.com +pra-22.com +praatmetelkaar.online +prabudhatravels.com +prac6m.xyz +pracapoplaca.online +prachylith.cf +prachylith.ga +prachylith.gq +prachylith.ml +prachylith.tk +pracnila.cf +pracnila.ga +pracnila.gq +pracnila.ml +pracnila.tk +pracroxtdel.ga +pracroxtdel.gq +pracroxtdel.tk +practicalfinace.com +practicalsight.com +practicerevive.org +practitionergrowthinstitute.com +practitionerhosting.com +practivity.net +practizkts.ru +pracylca.cf +pracylca.ga +pracylca.gq +pracylca.ml +pracylca.tk +prada-bags-outlet.org +prada-messenge-bag.us +prada-shoes.info +pradabagsalejp.com +pradabagshopjp.com +pradabagstorejp.com +pradabagstorejp.org +pradabakery.com +pradabuyjp.com +pradahandbagsrjp.com +pradahotonsale.com +pradajapan.com +pradajapan.org +pradajapan.orgpradajapan.orgpradajapan.orgpradajapan.orgpradajapan.orgpradajapan.orgpradajapan.orgpradajapan.orgpradajapan.org +pradanewjp.com +pradanewjp.org +pradanewstyle.com +pradaoutletonline.us +pradaoutletpop.com +pradaoutletshopjp.com +pradaoutletus.us +pradapursejp.com +pradapursejp.org +pradipmodi.website +prado-mail.ru +pradvice.ru +praemj.us +praetorianguardcanecorso.com +pragati.org +pragbet7.com +pragmatic.rocks +pragmatic.website +prahalottery.info +prahalottery.net +prahalottery.org +praktijkgids.net +praktika.site +pramaniya.site +pramitcasino.com +pramolcroonmant.xyz +prankish.buzz +prankish.online +prankish.site +prankkasino.se +prankmarketing.com +pranobun.cf +pranobun.ga +pranobun.gq +pranobun.ml +pranobun.tk +pranto.me +prasannasafetynets.com +prass.me +pratik-ik.com +pratikmail.com +pratikmail.net +pratikmail.org +pratincole.xyz +pratlaydi.tk +prava-ab.ru +praveen.win +pravesh.tk +pravorobotov.ru +pravotrudov.xyz +pravotver.ru +pravougolovn.xyz +pravovayasemyami.xyz +pravovoe-upravlenie.ru +pravozemelnoe.xyz +prawa-moskwa.ru +prawa-msk.ru +prawamoskva.ru +prawamoskwa.ru +prawasrf.ru +pray.agencja-csk.pl +prayatnafikrkalki.ong +prayersa3.com +prazdnik-37.ru +prazdnik-moy.ru +prcclosings.com +prcclosings.net +prcclosings.us +prchained.com +prchains.com +prclez.website +prclosing.info +prclosing.org +prclosing.us +prclosings.biz +prclosings.info +prclosings.mobi +prclosings.net +prclosinqs.com +prcloslngs.com +prduefed.com +pre-directappf.com +pre188.website +pre21marketing.com +preapprove.help +prebuilding.com +preccompdes.cf +preccompdes.gq +preccompdes.ml +precconta.cf +precconta.ga +precconta.tk +precdate.cf +precdate.ga +precdate.gq +precdate.ml +precdate.tk +precision.management +precisiondoorhillsborough.com +precisionmarina.management +precisionmarinamanagement.com +precisionroof.xyz +precitpren.cf +precitpren.ga +precitpren.gq +predatorrat.cf +predatorrat.ga +predatorrat.gq +predatorrat.ml +predatorrat.tk +predeathblog.com +prediksibola88.com +prediksihkjitu.online +predilectionaz.com +predizot.cf +predizot.ga +predizot.gq +predizot.ml +predizot.tk +predmarkcent.ga +predmarkcent.gq +predmarkcent.tk +prednestr-nedv.ru +predolenta.ru +predstalicinforofficial.ru +prefactura.org +prefermutual.com +prefixcom.com +prefood.ru +prefpargue.gq +prefpargue.ml +preg-marketingvici-app.com +pregabalin-lyrica.site +pregenicks.com +pregenics.com +pregnan.ru +pregnancybuddyapp.com +pregnancymiraclereviewnow.org +pregnancymiraclereviews.info +pregunmer.cf +pregunmer.ga +pregunmer.gq +pregunmer.ml +preicfes.online +prekab.net +preklady-polstina.cz +prekuldown47mmi.ml +preludelights.com +premarex.ga +premarex.gq +premarex.ml +premarex.tk +prematurecope.info +prembus.com +premeiracharters.com +premi2019.club +premiair.media +premier-coworking.com +premier-reverse.com +premieragentsofnova.com +premierbetcasino.com +premierbetsuper6.com +premierclosing.com +premiere.ee +premiereatlantarealestate.com +premierelivecasino.com +premierloto.info +premierlotto.net +premiermoney.net +premieroralsurgeryandimplantsplc.info +premieroralsurgeryandimplantsplc.us +premierpainandwellness.com +premierprivacy.com +premierpropertymanagementde.com +premiertech.africa +premiertechapps.com +premiertitle.biz +premiertitle.info +premiertitle.org +premiertitleagency.net +premiertitles.agency +premiertrafficservices.com +premisesplacegroup.com +premium-mail.fr +premium4pets.info +premiumail.ml +premiumcannabis.online +premiumcchelp.com +premiumgreencoffeereview.com +premiumlabels.de +premiumnezhealthcare.shop +premiumneznaturalbeauty.shop +premiumperson.website +premiumplantforskolin.com +premiumproductdiet.com +premiumseoservices.net +premiumservisak.tk +premiumsmartphonebonus.bid +premiumvulkan.ru +premmiere.biz +premmiere.info +prenekiz.cf +prenekiz.ga +prenekiz.gq +prenekiz.ml +prenekiz.tk +prenu.icu +preorderdiablo3.com +preownedcarsdirect.com +preownedluxurycars.com +prepaidgallery.com +prepared.fun +preparedwealth.com +preparee.top +prepayee.cd +preporod.online +preppingforfree.com +preridcer.cf +preridcer.ga +preridcer.gq +preridcer.ml +presale.tk +presanec.cf +presanec.ga +presanec.ml +presanec.tk +presaper.cf +presaper.ga +presaper.gq +presaper.ml +presaper.tk +presblok.ru +presci22ahkekstra.xyz +prescription-swimming-goggles.info +prescriptionbagimprints.com +prescriptiondeliveryservice.org +presence.red +preseven.com +presfecdee.cf +presfecdee.ga +presfecdee.gq +presfecdee.tk +presidency.com +presidentberniecoin.com +presidentbidencoin.com +presidentoto.com +presidentvisit.buzz +presinnil.cf +presinnil.ga +presinnil.gq +presinnil.tk +preskot.info +presmolthi.cf +presmolthi.ga +presmolthi.gq +presmolthi.ml +presmolthi.tk +prespa.mochkamieniarz.pl +press-citrus.ru +press-peacetalkwisdomdarter.com +pressbypresser.info +pressciynn.site +presslemon.ru +presslov.icu +pressreleasedispatcher.com +presssei.xyz +presster.com +pressurecleaningperth.com +pressurecookermadness.com +pressuredell.com +prestamospersonales.nom.es +prestamosurgente.com +prestashopcheck.xyz +prestativo.pro +presteg.com +prestiligh.cf +prestiligh.ga +prestiligh.ml +prestiligh.tk +prestore.co +prestubborn.best +prestudio48.xyz +prestuplenekon.xyz +presunad.cf +presunad.ga +presunad.gq +presunad.ml +presunad.tk +presuntab.cf +presuntab.ga +presuntab.gq +presuntab.ml +pret-a-renover-rona.com +pret-a-renover.com +pretans.com +pretenziitut.xyz +preterits242ei.online +pretesor.cf +pretesor.ga +pretesor.gq +pretesor.ml +pretesor.tk +prethlah907huir.cf +pretnzsostavit.xyz +pretoriuskoprestcamp.com +prettileaves.com +prettyandhealth.info +prettybet1688.com +prettyishlady.com +prettyishlady.net +prettylashes.co +prettymanprettyman.com +preventativeaction.com +preventivepain.com +prevesme.cf +prevesme.ga +prevesme.gq +prevesme.ml +prevesme.tk +previewsitedesign.com +previos.com +previouslyknown.com +prevueinfocus.com +prewx.com +preyantitheft.org +preyapp.org +preyhq.net +preylondon.com +preysecurity.com +preytracker.com +prftcshr.site +prhuws.shop +price-depot.com +price-shop-sale.ru +pricealert.uno +priceantiques.info +pricebit.co +priceblog.co +pricecanine.com +pricegues.xyz +priceio.co +priceleech.xyz +pricelinemovingandstorage.com +pricemobile.info +pricenew.co +pricenow.co +priceonline.co +pricepage.co +priceplunges.com +pricetag.ru +pricetegy.com +pricetrac.xyz +pricewarriors.com +pricewins.com +priceworld.co +prichy.com +pricraball.cf +pricraball.gq +pricraball.tk +pride.nafko.cf +pride1.info +pridemail.co +pridetw.com +priemu.pw +priest.com +priffer.net +prigovormodoi.ru +prihshop.ru +prijzenfeest.com +priligyonlineatonce.com +priligyonlinesure.com +priligyprime.com +priligytw.trade +prilution-ag.info +prilution-gmbh.com +prilution-gmbh.net +prilution-gmbh.org +prilution.com +prilution.info +prim1v.us +primabananen.net +primalburnkenburge.com +primaryale.com +primaryct.com +primaryvideos.com +primasecure.cd +primate.de +prime-diets-plusstoresales.com +prime.tg-nepali.co +primebusinessfinancingonline.com +primebusinessfinancingpro.com +primechoice.store +primecialisonline.com +primecostsolution.com +primedenverrealty.com +primejewlery.com +primelocationlets.co.uk +primemedya.net +primerka.co.cc +primerocomputers.com +primetbx.com +primeturbinessms.com +primevaluebeauty.com +primevaluedeals.com +primevaluedigital.com +primevaluegolf.com +primevaluenutrition.com +primevaluevitamins.com +primewire-movies.biz +primex.club +primonet.pl +primotor.com +primres.ru +primrosejewelry.com +primusmarkets.us +prin.be +princ-ro.com +prince-khan.tk +princeandassociatesrealty.com +princearmy.co +princecss.com +princeroyal.net +princesms.com +princess4d.club +princessbahis1.com +princessbets.com +princessbetsikayet1.com +princesscutengagementringsinfo.info +princessgardentakeaway.com +princessgirisyap.com +princeton-edu.com +princeton.edu.pl +princeton2008.com +princetonwaterpolo.com +principleinvestigator.com +principlez.com +pringlang.cf +pringlang.ga +pringlang.gq +pringlang.ml +prinicad.cf +prinicad.ga +prinicad.gq +print.domains +printala.cf +printala.ga +printala.gq +printala.tk +printcalendar.website +printedposrolls.com +printersni.co.uk +printerstore.shop +printf.cf +printf.ga +printf.ml +printgh.icu +printingchoice.com +printingeveryday.com +printlang.com +println.fun +printlu.recipes +printofart.ru +printosaurus.org +printphotos.ru +printsomemore.com +printsui.xyz +printvastra.com +priobx.com +priobx.net +priokfl.gr +priorfiscalshake.site +prioritypaydayloans.com +prioritysharpener.xyz +priorityxn5.com +priorlearningassessment.org +prisellels.icu +prisessifor.xyz +prismgp.com +prismlasers.tk +prisonerresources.com +prisongarde.com +prisonnews.net +pristinenaturecourse.com +pristineused.com +pristupozhireniya.ru +prity.org +priv.beastemail.com +priv8dns.net +privacy-mail.top +privacy-protect-online.com +privacy.net +privacygirl.com +privacygladiators.us +privacyharbour.com +privacymailshh.com +privacyscores.com +privacywi.com +privatdemail.net +private-investigator-fortlauderdale.com +private-mail.pro +private-mail.se +private-top-speed-webs.club +private-tours-croatia.info +private.kubuntu.myhomenetwork.info +private33.com +privatebag.ml +privateclosets.com +privateembassy.club +privateeyemarketing.biz +privategardenhemp.com +privategoldbanking.com +privatehost.xyz +privateinternetaccessz.com +privateinvest.me +privateinvestigationschool.com +privatemail.in +privatemailinator.nl +privatemassage.ru +privateme.site +privatemitel.cf +privatemitel.ml +privatemusicteacher.com +privateprofileviewerforinsta.com +privatesent.tk +privebet7.com +privebet9.com +privilege.ru +privilegebuzios.com +privmag.com +privseco.com +privy-mail.com +privy-mail.de +privyinternet.com +privyinternet.net +privymail.de +privyonline.com +privyonline.net +prixfixeny.com +prixfor.com +priyaanjalirai.us +prize4d.net +prizebaco.com +prizeboxes.life +prizepl.icu +prizes-for-you.life +prizes-place-here16.life +prizes-place-here19.life +prizesli.icu +prizeslift.com +prizmabet31.com +prizmabet33.com +prizmabet34.com +prizmabet36.com +prizmabet41.com +prizmabet43.com +prizmabet44.com +prizmabet45.com +prizmabet46.com +prizmabet47.com +prizmabet48.com +prizmabet49.com +prizmabet54.com +prlinkjuicer.info +prmail.top +prmin.ru +prn18.fun +prn18.space +prn18.website +prn90.online +prnewsnodes.com +prnvid.fun +prnvid.online +prnvid.site +prnvid.space +prnvid.website +pro-baby-dom.ru +pro-expert.online +pro-files.ru +pro-hindey.ru +pro-investlending.com +pro-ribak.ru +pro-salomon.ru +pro-stg.com +pro-stringers-shop.com +pro-tab.site +pro-tag.org +pro-turism.ru +pro-turisto.ru +pro-zakony.ru +pro.cloudns.asia +pro.iskba.com +pro100girl.ru +pro100magazine.ru +pro100sp.ru +pro2mail.net +pro33.icu +proactivechirowellness.net +proamulet.ru +prob.icu +probaseballfans.net +probatelawarizona.com +probbox.com +probegarage.com +probestbuyshop.ru +probestsales.online +probiv.xyz +probizemail.com +problematist.best +problemreactionsolution.today +problemreactionsolution.xyz +probotix.biz +probowlvoting.info +probowlvoting2011.info +probrali.cf +probrali.ga +probrali.ml +proc.icu +procesbrakorazvod.xyz +prochmalgvi.ml +prochmalgvi.tk +prochorpol.tk +procrackers.com +procturksen.ga +procturksen.ml +procturksen.tk +procurelikestuff.com +procvetaeva.ru +prod-factory-official.ru +prodavcazaschit.xyz +prodaza-avto.kiev.ua +prodence.com +prodercei.cf +prodercei.ga +prodercei.gq +prodercei.ml +prodercei.tk +prodesign.codes +prodigyproject.site +prodigysolutionsgroup.net +prodizain.site +prodleskea.cf +prodleskea.ga +prodleskea.tk +prodmail.net +prodmorlooo.cf +prodmorlooo.gq +prodmorlooo.ml +prodojiz.ga +prodojiz.gq +prodojiz.ml +prodotype.com +produatthe.cf +produatthe.gq +produatthe.tk +producerow.xyz +product-27.ru +productdealsonline.info +productemails.info +productevo.com +productfeedmanagement.com +producti-online-pro.com +production4you.ru +productosesotericos.cl +productpacking.com +productrdr.com +productzf.com +produktu.ru +produtosdevendas.online +proeasyweb.com +proefhhnwtw.pl +proek-tmebel.ru +proektsro.ru +proelectrum.com +proemail.ml +proemlak.com +proeng.se +proexpertonline.ru +profane.ru +profast.top +profcsn.eu +profeocn.pl +profeocnn.pl +profesional.ovh +profesjonalne-pozycjonowanie.com +profesorsaracoglu.com +professecrets.space +professionaldentistfinder.com +professionalseoservicesuk.com +professionegommista.com +professionneldumail.com +professoruniforms.com +profetish.ru +proffkraski.ru +profftaff.website +profi-bot.ru +profibooks.site +profile.cd +profile3786.info +profilelinkservices.com +profileliving.com +profilewatcher.website +profiliebakankisiler1.club +profilific.com +profinin.cf +profinin.ga +profinin.ml +profinin.tk +profissaomaquiadora.com +profit-kopiarki.com +profit-mats.ru +profit-pozycjonowanie.pl +profit.idea-profit.pl +profitableroimetrics.com +profitbet.asia +profitcheetah.com +profitindex.ru +profitresult.su +profitresult.tech +profitsave.online +profitsmaximizer.net +profituniversal.net +profitxtreme.com +profizum.ru +profmistde.cf +profmistde.ga +profmistde.gq +profound.cloud +profrasound.cf +profrasound.ga +profrasound.gq +profrasound.ml +profrasound.tk +profriend.ru +proftippers.online +proftruck.ru +profwatereco.ru +progameonline.ru +progardens.website +progdaly.cf +progdaly.gq +progdaly.ml +progdaly.tk +progefel.cf +progefel.ga +progefel.gq +progefel.ml +progem.pl +progestasert.info +progetti.rs +progiftstore.org +prognozmk.ru +progondola.xyz +progonrumarket.ru +progps.rs +programacomoemagrecer.org +programmaperspiarecellulari.info +programmeimmobilier-neuf.org +programmermail.tk +programmerov.net +programmingant.com +programmingtree.ml +programmiperspiarecellulari.info +programmispiapercellulari.info +programmymets.ru +programpit2013rok.pl +programtv.edu.pl +progrdessive.com +progrespolska.net +progressi8ve.com +progressive.tools +progressiveenvironment.com +progressiveenvironments.com +progressproduction.org +prohost24.ru +prohostadvice.website +proindia.tk +proinfomaster.ru +projavys.gq +projavys.ml +projavys.tk +project-enem.biz +project-warcraft.online +project-xhabbo.com +projectcl.com +projectearth.earth +projectgift.com +projectgold.ru +projecthollandia.shop +projectku.me +projectmike.pl +projector-replacement-lamp.info +projectoxygen.com +projectqq59.xyz +projectred.ru +projectsaam.com +projectsam.net +projectsgrid.com +projekt.blue +projekte-ssl.com +projektse.se +projekty.com +projektysamochodowe.pl +projexpartners.com +projeyonetimdanismanligi.xyz +projeyonetimegitimi.xyz +projmenkows.cf +projmenkows.ga +projmenkows.gq +projmenkows.ml +projmenkows.tk +prokarate.club +proknowsphoto.com +prol.icu +prolagu.pro +prolifepowerup.com +prolimeserver.com +proljiggbo.gq +proljiggbo.ml +proljiggbo.tk +proll.love +prom-tech.info +promail.net +promail.site +promail1.net +promail9.net +promaild.com +promaill.com +promails.xyz +promailsite.info +promailt.com +promaintenancegroupcleans.com +promdresses-short.com +promedcostarica.net +promedicales.com +promenadahotel.pl +prometheusmedia.xyz +promin-33.com +prominentapp.com +promisetoact.info +promisetoact.org +promisingartists.org +promist-sa.com +promistral.website +promkat.info +promo-10let.online +promo-claim.com +promo-msk.com +promo10let.online +promocioncentro24.com +promocionesenhuelva.com +promocionesgama.xyz +promocionespublicidad.com +promocjawnecie.pl +promocod.space +promocongo.cd +promoesperta.live +promofessional.com +promogsi.cf +promogsi.ga +promogsi.gq +promogsi.ml +promogsi.tk +promoguven.xyz +promokod-lamoda.ru +promoo.host +promoo.space +promoo.website +promoonline.info +promosbc.com +promosbcbet.net +promosbclive.com +promosegur.com +promosegur.org +promosfer.com +promot.site +promotemd.com +promotime.com +promotion-seo.net +promotionalcoder.com +promotionalproducttreats.icu +promotor.website +promotzy.com +promovizio.com +promplast-okna.ru +promptly700.com +prompttext.me +promres.info +promsky.ru +promstroy76.ru +promtmt.ru +promusicfans.com +promyscandlines.pl +pronailz.com +prongl.pw +pronkede.cf +pronkede.ga +pronkede.gq +pronkede.ml +pronkede.tk +prono-soft.net +pronosoft.org +pronouns.org +pronovopartners.com +pronto-arklow.com +pronuncil.xyz +proochotu.site +proof-of-works.info +proofcamping.com +proofreadingservices.website +proofreadmydocs.com +proofridg.email +prooftoug.xyz +prooftrading.ru +prooutboardmarine.com +propagandizing586fv.online +propartsupply.com +propay-gate1.com +propay-way1.com +propcleaners.com +propeciaonlinesure.com +propeciaonlinesureone.com +properevod.ru +properpizzafinglas.com +propertybuyersboise.com +propertycockpit.com +propertyfinder.cd +propertyhotspot.co.uk +propertynath.icu +propertyreal.rocks +propertytalking.com +propgenie.com +prophballand.cf +prophballand.ga +prophballand.ml +prophballand.tk +prophecygamesnews.club +propinned.cf +propinned.ga +propinned.gq +propinned.ml +propinned.tk +propoker.vn +proposal-store.site +proppemus.cf +proppemus.ga +proppemus.ml +proppemus.tk +propranolol.website +proprentalsanfrancisco.com +propressa.ru +proprice.co +proprietativalcea.ro +propscore.com +proptrader.site +proq.icu +prorabstroj.ru +prorefit.eu +proremonvse.site +prosalab.ga +prosalab.gq +prosalab.ml +prosalab.tk +prosaransk.ru +prosatdz.com +prosatdz.net +prosatnab.ml +prosatnab.tk +proscaronlinesure.com +proscarprime.com +prosequrity.com +proseriesm.info +prosfereisimera.online +proshopnflfalcons.com +proshopnflravens.com +proshopsf49ers.com +prosingly.best +prositeportal.ru +proslowo.home.pl +prosmail.info +prosolutiongelreview.net +prosolutionpillsreviews.org +prosorm.se +prosperformula.com +prosquashtour.net +prosselte.ga +prosselte.gq +prosselte.ml +prosselte.tk +prostatinor.com +proste-przetargi.pl +prostitutki-kaliningrad.xyz +prostitutki-kaluga-sochnie.xyz +prostitutki-pskov.xyz +prostitutki-s-p-b.ru +prostitutki-saransk.xyz +prostitutki-saratov.xyz +prostitutki-tambov.xyz +prostitutki-tomsk.xyz +prostitutki-tver.xyz +prostitutki-tyumen.xyz +prosto-loto.press +prosto-loto.website +prosto-videohd.ru +prosto-znai.ru +prostoeseo.ru +prostonor.net +prostylex.net +prostypodatek.info +protechskillsinstitute.com +protect-download.com +protection-0ffice365.com +protectionmanagers.com +protectmyemail.xyz +protectorngbayan.ph +protectrep.com +protectsrilanka.com +protectsyourmortgage.com +protectthechildsman.com +protectyourhealthandwealth.com +protein-krasnodar.ru +protein-razves.ru +protein-saratov.ru +proteintopper.com +protelpeca.ru +protempmail.com +protestant.com +protestly.com +protestore.co +protileroofing.com +protipsters.net +protivirus.ru +proto1rnfg.com +proto2mail.com +protologism.com +proton-team.com +protonemach.waw.pl +protongras.ga +protosale.ru +protovu.xyz +protrendcolorshop.com +proudtra.xyz +proulx.site +prousability.ru +provable.cash +provamail.com +provebas.icu +provera.website +provetable.us +provewai.xyz +provewais.xyz +providenceiloilo.com +providencenailsalons.com +providencestartups.com +provident-pl.info +providentassetmanagement.org +providentwniosek.info +providentwnioski.pl +provides.credit +providier.com +providkwtv.space +provinceandstatepermitting.com +provlst.com +provmail.net +provodow-net.ru +provsoftprov.cf +provsoftprov.ga +provsoftprov.gq +provsoftprov.ml +prow.cf +prow.ga +prow.gq +prow.ml +prowerl.com +prowessed.com +prowickbaskk.com +proxala.shop +proxivino.com +proxsei.com +proxy-java.fun +proxy.dreamhost.com +proxy1.pro +proxymail.eu +proxyparking.com +proxysite.rocks +proyectoser.org +proyectosoft.com +proz.icu +prplunder.com +prprtv.com +prrassiigggrram.club +prrply.com +prrqll.site +prs7.xyz +prsg333.com +prsg33c.com +prsg3ab.com +prsku.com +prsnly.com +prspaybooking90.net +prsym.info +prtaxisy.info +prtnews.com +prtnx.com +prtpoker.club +prtpoker.site +prtpoker.xyz +prtshr.com +prtxw.com +prtz.eu +pruchcongpo.cf +pruchcongpo.ga +pruchcongpo.gq +pruchcongpo.ml +prudesierrasheen.site +prudigital.org +prumrstef.pl +prurls.com +prwmqbfoxdnlh8p4z.cf +prwmqbfoxdnlh8p4z.ga +prwmqbfoxdnlh8p4z.gq +prwmqbfoxdnlh8p4z.ml +prwmqbfoxdnlh8p4z.tk +prxnzb4zpztlv.cf +prxnzb4zpztlv.ga +prxnzb4zpztlv.gq +prxnzb4zpztlv.ml +prxnzb4zpztlv.tk +pryamieruki.ru +pryeqfqsf.pl +pryfix.com +prymer.com +prywatnebiuro.pl +przeciski.ovh +przepis-na-pizze.pl +przeprowadzam.eu +przezsms.waw.pl +przyklad-domeny.pl +ps-gr5-79-online.com +ps-nuoriso.com +ps160.mpm-motors.cf +ps21cn.com +ps2emulatorforpc.co.cc +ps3pay.ru +ps4pay.ru +ps4plus.tk +ps5-store.ru +ps5.community +ps9000.com +psa18.com +psacake.me +psaleshow.site +psalmody.site +psasey.site +psb55.space +psbet365.best +psbzu8.com +psccodefree.com +psdin.ru +psdz.us +psecu.xyz +psellhit.online +psettinge5.com +pseudobslq.site +pseudoname.io +pseudorlhc.ru +psfaux.com +psfy.net +psg-45-r.top +psg45r.one +psgr579online.com +psgsro.xyz +psh.me +psh15.info +psicanalisi.org +psiek.com +psihologiyadushi.ru +psikus.pl +psilocmezv.space +psilocybindispensary.com +psilocybindosing.com +psilocybinfacts.com +psilocybintech.com +psilotech.com +psiolog.com +psirens.icu +psk3n.com +pskov.website +psles.com +pslog.ru +psmi.club +psminds.online +psnator.com +psncl.com +psncodegeneratorsn.com +psnplus.cf +psnplus.ml +pso2rmt.com +pso365.org +psomiadis.shop +psoriasisfreeforlifediscount.org +psoriasisvrij.online +psoxs.com +pspcolombia.com +pspinup.com +psppaygate.info +psppaygate.org +pspvitagames.info +psqf.xyz +psr1225.club +pssection9.online +pstv.live +psw.kg +psyans.ru +psych.social +psychclinicsmd.com +psychdegreedeal.xyz +psychdegreenow.xyz +psychedelicwarrior.xyz +psychiatragabinet.pl +psychiccrystalsunshine.com +psychicsteve.net +psychmdconsulting.com +psychmdus.com +psychmdus.org +psychmedicalclinics.com +psycho.com +psychodeli.co.uk +psychological.fun +psychologist-prof.ru +psychologize694rf.online +psychologues-clermont-ferrand.com +psyhicsydney.com +psyiszkolenie.com +psykosis.com +psylrd.com +psymedic.ru +psymejsc.pl +psyonix.net +pszxxh.us +pt-bt.com +pt-cto.net +pt-cto.org +pt-games.com +pt062.site +pt1-podo.com +pt2-podo.com +pt3-ggle.com +ptaddfan.com +ptautomation.us +ptbm.net +ptc.vuforia.us +ptcassino.com +ptcji.com +ptcks1ribhvupd3ixg.cf +ptcks1ribhvupd3ixg.ga +ptcks1ribhvupd3ixg.gq +ptcks1ribhvupd3ixg.ml +ptcks1ribhvupd3ixg.tk +ptcsites.in +ptcto.net +pterippi.info +pterodactyl.email +ptfawyuwk.shop +ptgeua.us +ptgptgmdzsmqtutqg.ru +ptgtar7lslnpomx.ga +ptgtar7lslnpomx.ml +ptgtar7lslnpomx.tk +pth82.space +pthoe.live +pticamp.com +ptilonorhynchinae.best +ptimesmail.com +ptimtailis.cf +ptimtailis.ga +ptimtailis.gq +ptimtailis.tk +ptjdthlu.pl +ptll5r.us +ptmm.com +ptolbv.info +ptpigeaz0uorsrygsz.cf +ptpigeaz0uorsrygsz.ga +ptpigeaz0uorsrygsz.gq +ptpigeaz0uorsrygsz.ml +ptpigeaz0uorsrygsz.tk +ptpomorze.com.pl +ptprosetown.com +ptsdcure.us +ptsdhelp.club +ptsos.com +ptsystemsandautomation.com +ptszxx.com +pttj.de +pttmdtquszututqu.ru +ptulce.icu +ptumpa.com +ptv98667.xyz +ptvans.com +ptxaez.us +ptyuch.ru +ptzprint.ru +puabezwzj.shop +puapickuptricksfanboy.com +puaqbqpru.pl +pub-mail.com +pubb.site +puberties.com +puberties.net +pubfgyh.com +pubfilmz.com +pubgasdw.xyz +pubgbets-login.us +pubgeresnrpxsab.cf +pubgeresnrpxsab.ga +pubgeresnrpxsab.gq +pubgeresnrpxsab.ml +pubgeresnrpxsab.tk +pubges.com +pubgm.website +pubgmlive.shop +pubgmplay.shop +pubjye.us +publeocasa.com +publi.innovatio.es +publi.live +publicadjusterinfo.com +publicdomain.graphics +publichosting.org +publichub-vpn.net +publicobituary.com +publicreports.net +publicreports.org +publicschooltalk.com +publictracker.com +publish316.com +pubmail886.com +pubnrez.com +pubs.ga +pubwarez.com +puchimail.club +puchmlt0mt.ga +puchmlt0mt.gq +puchmlt0mt.tk +puchong.info +puchong.org +puckingstinks.com +puclyapost.ga +puclyapost.ml +pucp.de +pudel.in +pudkg.live +pudra-style.ru +puds5k7lca9zq.cf +puds5k7lca9zq.ga +puds5k7lca9zq.gq +puds5k7lca9zq.ml +puds5k7lca9zq.tk +pudweb.com +pudxe.com +puebloareaihn.org +pueblosabandonados.com +puegauj.pl +puerentdeepf.ga +puerto-nedv.ru +puertoricodmv.com +puevwwfo.shop +pufcava.cf +pufcava.ga +pufcava.gq +pufcava.ml +puffandscruff.com +puffsreworksheet.site +puglieisi.com +puh4iigs4w.cf +puh4iigs4w.ga +puh4iigs4w.gq +puh4iigs4w.ml +puh4iigs4w.tk +puhetrade37.xyz +puhetrade8.xyz +puhgva.us +puhovska.ru +puhuleather.com +puibagajunportbagaj.com +puikusmases.info +puipui1012.online +puiw.website +puji.pro +puju.site +puk.us.to +pukaemporium.site +pukeymcpukerson.com +pukifsko.online +pukimay.cf +pukimay.ga +pukimay.gq +pukimay.ml +pukimay.tk +puks.de +pulawski.biz +pulford.ru +pulibetyenigiris.xyz +pulivetv17.com +pulivetv19.com +pullcombine.com +pullmail.info +pullovitos.com +pulltract.info +pulmining.com +pulocasino.com +pulpieve.cf +pulpieve.ga +pulpieve.gq +pulpieve.ml +pulpmail.us +pulsarfinans.ru +pulsarpay.net +pulse-original.ru +pulsedlife.com +pulseofthestreets.com +pulsepad.com +pulverize136es.online +pulwarm.net +pumail.com +pumamaning.cf +pumamaning.ml +pumapumayes.cf +pumapumayes.ml +pumasale-uk.com +pumashopkutujp.com +pumaturkiye.net +pumoe.com +pump-ltd.ru +pumps-fashion.com +pumpwearil.com +pumznyto.shop +puncakyuk.com +punchclose.us +punchhillaryclinton.com +punchlinefitness.com +punchothe.icu +punchratio.buzz +punchs.solutions +punchsl.fun +punchst.xyz +punchyandspike.com +punctal.site +punctuahoud.cf +punctuahoud.gq +punggur.tk +pungkiparamitasari.com +puninformed.com +punisherhq.com +punishly.com +punjabibynatureranelagh.com +punjabihousetakeaway.com +punkass.com +punkexpo.com +punto24.com.pl +puouadtq.pl +puperopres.site +puphemfm.shop +pupiki.online +pupiki.space +pupilaren.email +pupilfeig.us +pupillbpei.space +pupilpa.icu +pupilpri.xyz +pupilsout.icu +pupleld.ru +puppers.world +puppetmail.de +puppy.watch +puppyhome.us +puppyhood.best +puppynames.info +puppyplace.xyz +puppyproduct.com +purati.cf +purati.ga +purati.ml +purati.tk +purcell.email +purchaseaforeclosure.info +purchasight.com +purchasingdvdonline.com +purchasingdvdonline.info +purchasingdvdonline.net +purchasingdvdonline.org +purchasingpatty.com +pure-indian-takeaway.com +pureaucratic.info +pureclean.ltd +purecleanwipes.com +purecollagenreviews.net +pureelectric.ru +purefitness.xyz +puregreencleaning.com.au +puregreencoffeefacts.com +pureindianrathcoole.com +pureindianrush.com +pureindiantakeaway.com +pureism.org +purelogistics.org +purelycasual.com +purelyrics.biz +puremuscleproblogs.com +purenudist.site +pureoxide.net +pureoxide.org +purepsilocin.com +pureseed.store +puressancereview.com +purestagioni.com +puretransgressions.com +pureunderwater.com +purewcms.com +purewhitekidneyx.org +purificadorasmex1.com.mx +purimaslombok.com +purimasresort.com +purism.net +purist.info +puristical.best +puristparty.com +purists.info +puritagpax.space +puritis.org +puritronicde.com.mx +puritronicdemexico.com.mx +puritronicmexicano.com.mx +puritronicmexico.com.mx +puritronicmx.com.mx +puritronicmx2.com.mx +puritronicmxococo2.com.mx +puritunic.com +puriwaki.com +purixmx2000.com +purixmx2012.com +purkz.com +purlvvhz.space +purple.amsterdam +purple.dev +purple.flu.cc +purple.igg.biz +purple.nut.cc +purple.usa.cc +purple.viola.gq +purplea.com +purpleflowerdesignshop.com +purplegracecrafts.com +purpleheartcoffee.com +purplemail.ga +purplemail.gq +purplemail.ml +purplemail.tk +purplepuppy.info +purplest.dev +purposeinvestmentclub.com +purposeinvestor.com +purposeinvestorclub.com +purposeinvestors.com +purposeinvestorsclub.com +purposepottery.com +purselongchamp.net +purseorganizer.me +pursesoutletsale.com +pursesoutletstores.info +purseva11ey.co +pursm.org +purtunic.com +purtus.com +purves-fan.club +puryearlogistics.com +pusakaqq.org +pusclekra.cf +pusclekra.ga +pusclekra.gq +pusclekra.ml +pusclekra.tk +push19.ru +pushbroom.biz +pushbroom.us +pushechkin.ru +pushmojo.com +pushstate.xyz +pushxxx.ru +pushysbikes.bike +pustaka-anime.com +pustakapagi.xyz +pustekuchen.me +pustmati.cf +pustmati.ga +pustmati.gq +pustmati.ml +pustmati.tk +put2.net +putdomainhere.com +putfs6fbkicck.cf +putfs6fbkicck.ga +putfs6fbkicck.gq +putfs6fbkicck.ml +putfs6fbkicck.tk +putinism.org +putlocker-free.site +putlockerfree.biz +putlockerold.com +putlockers1.club +putlook.com +putonyourbigboypants.com +putoshops.site +putrashop.online +putsbox.com +puttana.cf +puttana.ga +puttana.gq +puttana.ml +puttana.tk +puttanamaiala.tk +putthidkr.ga +putthisinyourspamdatabase.com +puttingpv.com +putzmail.pw +puukkoknives.com +puurspa.com +puxyzufi.space +puyenkgel50ccb.ml +puzzlefolk.biz +puzzlespedia.com +puzzspychmusc.cf +puzzspychmusc.ga +puzzspychmusc.tk +pv288.com +pv575.top +pvccbyat.shop +pvccephe.com +pvccephegiydirme.com +pvcfigure.net +pvckomplekt.ru +pvcstreifen-vorhang.de +pvdprohunter.info +pvlnpa.shop +pvmail.pw +pvo-korf.ru +pvokhu.shop +pvoqwm.com +pvqotb.com +pvtnetflix.com +pvvfir2emwv8yoz.xyz +pw-mail.cf +pw-mail.ga +pw-mail.gq +pw-mail.ml +pw-mail.tk +pw.epac.to +pw.flu.cc +pw.igg.biz +pw.islam.igg.biz +pw.loyalherceghalom.ml +pw.mymy.cf +pw.mysafe.ml +pw.nut.cc +pw8999.com +pwbs.de +pwddslwk.shop +pwfwtgoxs.pl +pwjsdgofya4rwc.cf +pwjsdgofya4rwc.ga +pwjsdgofya4rwc.gq +pwjsdgofya4rwc.ml +pwjsdgofya4rwc.tk +pwkosz.pl +pwl7xn.us +pwm0vr.com +pwn-me.org +pwnhome.org +pwodskdf.com +pwodskdf.net +pwopqx.icu +pwp.lv +pwrby.com +pwstory.com +pwt9azutcao7mi6.ga +pwt9azutcao7mi6.ml +pwt9azutcao7mi6.tk +pwvco.us +pwvoyhajg.pl +pwy.pl +pwyc.us +pwyopkfyh.shop +px0dqqkyiii9g4fwb.cf +px0dqqkyiii9g4fwb.ga +px0dqqkyiii9g4fwb.gq +px0dqqkyiii9g4fwb.ml +px0dqqkyiii9g4fwb.tk +px1.pl +px1978.com +px1982.com +px1993.com +px1995.com +px2019.com +px2022.com +px2027.com +px2030.com +px9ixql4c.pl +pxddcpf59hkr6mwb.cf +pxddcpf59hkr6mwb.ga +pxddcpf59hkr6mwb.gq +pxddcpf59hkr6mwb.ml +pxddcpf59hkr6mwb.tk +pxdhx.com +pxenc1.site +pxey8q.us +pxhdtz.icu +pxixc.live +pxjtw.com +pxkejz.site +pxlink.xyz +pxltrck.site +pxqpma.ga +pxtv02fbb830f53fcd46.xyz +pxtv052d46b7e333b664.xyz +pxtv0e80b6e5b469e8dc.xyz +pxtv15c3f2c6e0ce2b37.xyz +pxtv1c4cb8a428306c18.xyz +pxtv2a957f7925521397.xyz +pxtv2ba2369697313665.xyz +pxtv2bcdd23327c95645.xyz +pxtv2d9adfcce7badf9a.xyz +pxtv2da8c6b4f6c5f609.xyz +pxtv47938c1abc5b0fb2.xyz +pxtv4975b124e768c0c5.xyz +pxtv56c76c80b948b92a.xyz +pxtv5a9713e9f4884e77.xyz +pxtv5f3e9d6d504d3747.xyz +pxtv76d86c9fb5842817.xyz +pxtv7ffb0688ed4b62d3.xyz +pxtv92b6bc897bd3ae7e.xyz +pxtv9d1d82bf02769321.xyz +pxtv9fc0a7ba354c7414.xyz +pxtv9fdb408c839f7bef.xyz +pxtvaca2f59556310d1a.xyz +pxtvb1cd59241d2ecad0.xyz +pxtvb41725948393cdb1.xyz +pxtvb7ecc35998763423.xyz +pxtvba9f33264c730559.xyz +pxtvc43ceea8c19f8b8f.xyz +pxtvc730cd765f8ccaa6.xyz +pxtvcdf107c513b6bbed.xyz +pxtvce6bfea0acc199ac.xyz +pxtvd2d53c5962145210.xyz +pxtvd4b4f44519b19133.xyz +pxtvd57d8c47cdc4d157.xyz +pxtvd858ed4383c32edf.xyz +pxtvd8d2938503a8b98b.xyz +pxtvda22249eee0a5404.xyz +pxtve0a673c78100922a.xyz +pxtve75a99c51a60b4bf.xyz +pxtvf8512d95d986b2c2.xyz +pxtvfd5b6b0fb2c72eca.xyz +pxtvff80d85f158b627e.xyz +pxzsonxu.shop +py0s.ru +py0x.icu +pyatigorskhot.info +pydzzs.com +pyekwl1.com +pyevr6.us +pyffqzkqe.pl +pygmypuff.com +pyhtml.com +pyiauje42dysm.cf +pyiauje42dysm.ga +pyiauje42dysm.gq +pyiauje42dysm.ml +pyiauje42dysm.tk +pyiev.com +pyjrn.us +pykegod.ml +pyksw.icu +pylehome.com +pylondata.com +pylonhub.com +pymagd.us +pymehosting.es +pymjj.com +pymjrhwu.shop +pynbwr.us +pyncer.org +pynsak.us +pyongyanglottery.info +pyribby.live +pyrogram.ru +pyrokiwi.xyz +pyrolatpha.space +pyroleech.com +pyromail.info +pyrozu.xyz +pyrrhujyuc.space +pystnv.site +pytehestvie.ru +pythoncloud.website +pythondemy.online +pywicoo.xyz +pyxyvy.info +pyymool.com +pyyzxo.us +pyzaro.info +pyzy8.com +pyzy9.com +pzcsy.us +pzfgef.us +pzhpckj.com +pzklt.com +pzlhjgbud.shop +pzpitjxi.shop +pzu.bz +pzxuva.site +pzznqcgcc.shop +q-kassa.online +q-kassa.ru +q-profitsystem.site +q-salex.online +q-urotrin.ru +q-world.online +q.new-mgmt.ga +q.polosburberry.com +q.xtc.yt +q0bcg1druy.ga +q0bcg1druy.ml +q0bcg1druy.tk +q0bhn.icu +q11toto.online +q1775.com +q1fdsfrtu.xyz +q1lqeo.info +q27uo.com +q2b.ru +q2gfiqsi4szzf54xe.cf +q2gfiqsi4szzf54xe.ga +q2gfiqsi4szzf54xe.gq +q2gfiqsi4szzf54xe.ml +q2gfiqsi4szzf54xe.tk +q2lofok6s06n6fqm.cf +q2lofok6s06n6fqm.ga +q2lofok6s06n6fqm.gq +q2lofok6s06n6fqm.ml +q2lofok6s06n6fqm.tk +q2o.events +q2o.life +q2o.live +q2o.online +q2oapp.com +q2w6b.us +q2xfln.us +q314.net +q33ddd.com +q4heo7ooauboanqh3xm.cf +q4heo7ooauboanqh3xm.ga +q4heo7ooauboanqh3xm.gq +q4heo7ooauboanqh3xm.ml +q4heo7ooauboanqh3xm.tk +q5kb8t.us +q5prxncteag.cf +q5prxncteag.ga +q5prxncteag.gq +q5prxncteag.ml +q5prxncteag.tk +q5rbp7.us +q5vm7pi9.com +q5wx1t.host +q65pk6ii.targi.pl +q6efmm.host +q6extec8.com +q6suiq1aob.cf +q6suiq1aob.ga +q6suiq1aob.gq +q6suiq1aob.ml +q6suiq1aob.tk +q6ts3c.us +q74.ru +q7hccq.us +q7t43q92.com +q7t43q92.com.com +q7vwu0.us +q8cbwendy.com +q8ec97sr791.cf +q8ec97sr791.ga +q8ec97sr791.gq +q8ec97sr791.ml +q8ec97sr791.tk +q8fcmf.com +q8fqrwlxehnu.cf +q8fqrwlxehnu.ga +q8fqrwlxehnu.gq +q8fqrwlxehnu.ml +q8fqrwlxehnu.tk +q8i4v1dvlsg.ga +q8i4v1dvlsg.ml +q8i4v1dvlsg.tk +q8z.ru +q9094.com +q99919.com +q9byhh.us +q9yepn.us +q9zqpu.us +qa.team +qaalby.com +qaaw.ga +qablackops.com +qabuka.us +qabvwr.online +qacmemphis.com +qacquirep.com +qacyvy.info +qaetaldkgl64ygdds.gq +qafatwallet.com +qafrem3456ails.com +qag.us +qaioz.com +qaiwm.us +qakexpected.com +qalbi.ru +qalirar.site +qamisy.com +qampxu.us +qantas.rentals +qaqco.com +qartoskd.shop +qasd2qgznggjrl.cf +qasd2qgznggjrl.ga +qasd2qgznggjrl.ml +qasd2qgznggjrl.tk +qasti.com +qatarbahis12.com +qatqxsify.pl +qatw.net +qaum.org +qav59.xyz +qaxinsuoro.pro +qazulbaauct.cf +qazulbaauct.ga +qazulbaauct.gq +qazulbaauct.ml +qazulbaauct.tk +qb-cms.com +qb04x4.badcreditcreditcheckpaydayloansloansloanskjc.co.uk +qb10em.info +qb23c60behoymdve6xf.cf +qb23c60behoymdve6xf.ga +qb23c60behoymdve6xf.gq +qb23c60behoymdve6xf.ml +qb23c60behoymdve6xf.tk +qbaydx2cpv8.cf +qbaydx2cpv8.ga +qbaydx2cpv8.gq +qbaydx2cpv8.ml +qbaydx2cpv8.tk +qbbus.club +qbesar.net +qbex.pl +qbfree.us +qbgmvwojc.pl +qbi.kr +qbikgcncshkyspoo.cf +qbikgcncshkyspoo.ga +qbikgcncshkyspoo.gq +qbikgcncshkyspoo.ml +qbikgcncshkyspoo.tk +qbjnx.live +qblti0.us +qbmail.bid +qbnifofx.shop +qbooker.pro +qbotrade.top +qbpgqo.us +qbqbtf4trnycocdg4c.cf +qbqbtf4trnycocdg4c.ga +qbqbtf4trnycocdg4c.gq +qbqbtf4trnycocdg4c.ml +qbrejwmo.shop +qbsef.us +qbt9.club +qbtl2t.com +qbtong.icu +qbuog1cbktcy.cf +qbuog1cbktcy.ga +qbuog1cbktcy.gq +qbuog1cbktcy.ml +qbuog1cbktcy.tk +qbyccoxi.shop +qbyyb.com +qc.to +qc0lipw1ux.cf +qc0lipw1ux.ga +qc0lipw1ux.ml +qc0lipw1ux.tk +qcddd.com +qcgj333.com +qcgowz.com +qciesgjp.shop +qcjrx.us +qckn.net +qclothesbest.site +qclsrecruitment.com +qcmail.qc.to +qcmgem.rest +qcolone.icu +qcrtkdpas.xyz +qcuwqyxky.ga +qcvsziiymzp.edu.pl +qczjaj.gq +qd139x.us +qd9ews.info +qdbhu.com +qddkztk.com +qdebhyy.com +qdiian.com +qdjlwqdj.space +qdjlwqdj.xyz +qdmug1.site +qdpfbyy.com +qdpjw.com +qdqsedu.com +qdroadviser.com +qdrwriterx.com +qdt.us +qdv9c0.us +qdwvzq.site +qdyxjshs.com +qe41hqboe4qixqlfe.gq +qe41hqboe4qixqlfe.ml +qe41hqboe4qixqlfe.tk +qeabluqwlfk.agro.pl +qeaxluhpit.pl +qedwardr.com +qefmail.com +qege.site +qeispacesq.com +qeko.site +qelawi.xyz +qembrace.com +qenori.info +qeotxmwotu.cf +qeotxmwotu.ga +qeotxmwotu.gq +qeotxmwotu.ml +qeotxmwotu.tk +qepad1.site +qepn5bbl5.pl +qeps.de +qeqrtc.ovh +qer3f4.stream +qervougxed.pro +qesvt.us +qeuuva.us +qeva.site +qewase.info +qewaz21.eu +qewyehthuh.website +qewzaqw.com +qexdb6.us +qextracts.com +qf1tqu1x124p4tlxkq.cf +qf1tqu1x124p4tlxkq.ga +qf1tqu1x124p4tlxkq.gq +qf1tqu1x124p4tlxkq.ml +qf1tqu1x124p4tlxkq.tk +qf669.top +qf7xkp.info +qfhh3mmirhvhhdi3b.cf +qfhh3mmirhvhhdi3b.ga +qfhh3mmirhvhhdi3b.gq +qfhh3mmirhvhhdi3b.ml +qfhh3mmirhvhhdi3b.tk +qfmwvcny.shop +qfqpy.com +qfrsxco1mkgl.ga +qfrsxco1mkgl.gq +qfrsxco1mkgl.ml +qfsda.site +qfwwdt.site +qg2f9r.com +qg8zn7nj8prrt4z3.cf +qg8zn7nj8prrt4z3.ga +qg8zn7nj8prrt4z3.gq +qg8zn7nj8prrt4z3.ml +qg8zn7nj8prrt4z3.tk +qgaff.com +qgfkslkd1ztf.cf +qgfkslkd1ztf.ga +qgfkslkd1ztf.gq +qgfkslkd1ztf.ml +qghdqj.icu +qgheoyttp.ga +qgriffith.com +qgrscz.ru +qguc.xyz +qhdpyzm.com +qhesnwv.com +qhexkgvyv.pl +qhfc48-mail.xyz +qhhqtaqi.shop +qhhub.com +qhi.us +qhidme.icu +qhjpa.live +qhjq5l.site +qhm59.xyz +qhqhidden.com +qhrgzdqthrqocrge922.cf +qhrgzdqthrqocrge922.ga +qhrgzdqthrqocrge922.gq +qhrgzdqthrqocrge922.ml +qhrgzdqthrqocrge922.tk +qhstreetr.com +qhwclmql.pl +qhzfjt.com +qi2i.com +qi3ivu.com +qi569.com +qianaseres.com +qiangdan168.com +qianglong.asia +qiantangylzc.com +qiaoleng.com +qiaopipi.xyz +qiarog.us +qiaua.com +qibl.at +qibode.site +qicgco.com +qidld.live +qifunue.space +qightyuhed.pro +qiglqgzg.shop +qigongglobalhub.com +qigongglobalwisdom.com +qihceoils.shop +qihwfscc.shop +qijobv.us +qikbeet.com +qikhnv.rest +qimican.xyz +qimla.us +qingbiletherapeutics.biz +qingbiletherapeutics.info +qingdm.com +qinghaidgw.com +qinhuangyuan.com +qinicial.ru +qinspections.online +qinth.today +qiodinlxed.pro +qip-file.tk +qipaomei.com +qipdcv.icu +qipmail.net +qipufy.info +qiq.us +qirzgl53rik0t0hheo.cf +qirzgl53rik0t0hheo.ga +qirzgl53rik0t0hheo.gq +qirzgl53rik0t0hheo.ml +qirzgl53rik0t0hheo.tk +qisdo.com +qisoa.com +qiuaja.info +qiubitewang.com +qiuchuchu.com +qiufanyi.com +qiukui.com +qiupey.com +qiuxiadyy.info +qiviamd.pl +qiwi-pay.xyz +qiwicasino.online +qiwigame.com +qiwikoshelek.com +qiyunwuliu.com +qiziriq.uz +qj59.xyz +qj97r73md7v5.com +qjbggr.icu +qjipim.tokyo +qjnnbimvvmsk1s.cf +qjnnbimvvmsk1s.ga +qjnnbimvvmsk1s.gq +qjnnbimvvmsk1s.ml +qjnnbimvvmsk1s.tk +qjuhpjsrv.pl +qkb862.com +qkbzptliqpdgeg.cf +qkbzptliqpdgeg.ga +qkbzptliqpdgeg.gq +qkbzptliqpdgeg.ml +qkbzptliqpdgeg.tk +qkc558.com +qkecil.net +qkerbl.com +qkjkgv.shop +qkjmkd.fun +qkjmrq.fun +qkk59.xyz +qkl65.host +qkohl.com +qkpmqs.fun +qkqmds.fun +qksmkg.fun +qksmpt.fun +qksmxn.fun +qktmcx.fun +qktmkn.fun +qkw4ck7cs1hktfba.cf +qkw4ck7cs1hktfba.ga +qkw4ck7cs1hktfba.gq +qkw4ck7cs1hktfba.ml +qkw4ck7cs1hktfba.tk +qkx18.xyz +qkxmhl.fun +ql2qs7dem.pl +ql66dh.xyz +ql9yzen3h.pl +qlaula.ga +qlaula.ml +qlaula.tk +qlearer.com +qlenw.com +qlevjh.com +qlfshop.store +qlhnu526.com +qlijgyvtf.pl +qlisda.monster +qlivecasino.com +qlnajv.site +qlniocsnvn.com +qlnk.fun +qloob.net +qlqprv.us +qlrh9b.com +qlrp5.us +qlt2jf.online +qltuo1.site +qluiwa5wuctfmsjpju.cf +qluiwa5wuctfmsjpju.ga +qluiwa5wuctfmsjpju.gq +qluiwa5wuctfmsjpju.ml +qluqua.ru +qluwxfa.site +qlvxfbzz.pro +qlwivwia.shop +qm1717.com +qm3370.com +qmail.com +qmail2.net +qmailers.com +qmails.loan +qmails.online +qmails.pw +qmails.services +qmails.website +qmails.world +qmails.xyz +qmailshop.com +qmailtgs.com +qmfi4i.us +qmhzh.site +qmj38.us +qmoil.com +qmperehpsthiu9j91c.ga +qmperehpsthiu9j91c.ml +qmperehpsthiu9j91c.tk +qmrbe.com +qmsgvx.site +qmtrdcxr.shop +qmtvchannel.co.uk +qmwparouoeq0sc.cf +qmwparouoeq0sc.ga +qmwparouoeq0sc.gq +qmwparouoeq0sc.ml +qmwparouoeq0sc.tk +qmzbdnnjtpez.com +qn5egoikcwoxfif2g.cf +qn5egoikcwoxfif2g.ga +qn5egoikcwoxfif2g.gq +qn5egoikcwoxfif2g.ml +qn5egoikcwoxfif2g.tk +qnb.io +qnbz8.com +qnetd.live +qnglisauro.pro +qnhwc.info +qninnng.best +qnksojyh.shop +qnkznwsrwu3.cf +qnkznwsrwu3.ga +qnkznwsrwu3.gq +qnkznwsrwu3.ml +qnkznwsrwu3.tk +qntrvx.xyz +qnuqgrfujukl2e8kh3o.cf +qnuqgrfujukl2e8kh3o.ga +qnuqgrfujukl2e8kh3o.gq +qnuqgrfujukl2e8kh3o.ml +qnuqgrfujukl2e8kh3o.tk +qnzkugh2dhiq.cf +qnzkugh2dhiq.ga +qnzkugh2dhiq.gq +qnzkugh2dhiq.ml +qnzkugh2dhiq.tk +qocdzm.us +qocya.com +qodrcf.icu +qofocused.com +qogipo.info +qoika.com +qoiolo.com +qokpdm.shop +qokuti.info +qonfident.com +qonmprtxz.pl +qonuxo.info +qoo-10.id +qopls.live +qopmail.com +qopxlox.com +qoqb0.us +qorikan.com +qortu.com +qoshnrdb.xyz +qot.us +qovu.site +qovwi.us +qovygq.icu +qoxurohi.cf +qoz7xct.xyz +qp-tube.ru +qp11111.net +qp22222.net +qp4.bet +qp87fb.us +qpalong.com +qpapa.ooo +qphdbg.icu +qphdlk.icu +qpi8iqrh8wtfpee3p.ga +qpi8iqrh8wtfpee3p.ml +qpi8iqrh8wtfpee3p.tk +qplh.us +qpptplypblyp052.cf +qpsrefugees.com +qpulsa.com +qpwnwmvo.shop +qpxxis.com +qq.my +qq152.com +qq163.com +qq164.com +qq1775.com +qq234.com +qq2889.team +qq323.com +qq3889.group +qq4889.org +qq568.top +qq57822.com +qq59.xyz +qq5901.xyz +qq705358368.xyz +qq77jj.com +qq77vv.com +qq88gg.com +qq88oo.com +qq8hc1f9g.pl +qq9827.com +qq998.xyz +qq99bb.com +qq99cc.com +qq99hh.com +qq99kk.com +qq99nn.com +qq99tt.com +qq99zz.com +qqaa.com +qqaa.zza.biz +qqao.net +qqb21.org +qqbolaku.net +qqcmail7.com +qqcmail8.com +qqcv7f2.com +qqfullbet.club +qqgenk.com +qqgerbangemas.space +qqhokibola.xyz +qqhokipoker.org +qqig88.info +qqipgthtrlm.cf +qqipgthtrlm.ga +qqipgthtrlm.gq +qqipgthtrlm.ml +qqipgthtrlm.tk +qqj84n.us +qqketua.com +qqmail.ir +qqmba122.top +qqmdu4.us +qqmegawin77d.xyz +qqmenang101.top +qqmimpi.com +qqmm518.com +qqole.org +qqowl.club +qqpj.org +qqqwwwil.men +qqrss.net +qqservice.com +qqspot.com +qqspot.net +qqsssj.com +qqturkiye.com +qqwtrnsqdhb.edu.pl +qqzymail.win +qr-informatie.online +qr6g.com +qraround.com +qrc1t.us +qreciclas.com +qrezkqqen.shop +qrlmiv.com +qrmte1.site +qrno1i.info +qrnoxwin.com +qrohoteles.com +qropspensionadvice.com +qropspensiontransfers.com +qrowded.com +qrrdja.info +qrrnc.com +qrryxk.site +qrs3un.us +qrtise.com +qrtjbzogb.gq +qrucav.com +qrudh.win +qrvdkrfpu.pl +qrxqdwmw.shop +qs1986.com +qs2k.com +qs34.com +qsb5.us +qsc95.com +qsdqsdqd.com +qsdt.com +qseminarb.com +qsg9ne.us +qsjs998.com +qsl.ro +qssapps.website +qsxheepv.shop +qt-top.com +qt.dprots.com +qt1.ddns.net +qtask.pro +qtauckland.com +qtc.org +qtcairns.com +qtellaplaza.com +qtftxn.com +qtfxtbxudvfvx04.cf +qtfxtbxudvfvx04.ga +qtfxtbxudvfvx04.gq +qtfxtbxudvfvx04.ml +qtfxtbxudvfvx04.tk +qtgptmututqg.ru +qtlhkpfx3bgdxan.cf +qtlhkpfx3bgdxan.ga +qtlhkpfx3bgdxan.gq +qtlhkpfx3bgdxan.ml +qtlhkpfx3bgdxan.tk +qtmail.org +qtmtxzl.pl +qtomac.com +qtooth.org +qtpjl.us +qtpozl.us +qtpxsvwifkc.cf +qtpxsvwifkc.ga +qtpxsvwifkc.gq +qtpxsvwifkc.ml +qtpxsvwifkc.tk +qtqvyklv.shop +qtresorts.com +qtsfxxxxf.shop +qtt4e.us +qtthredbo.com +qtujmiwzb.shop +qtum-ico.com +qtvg1y.us +qtvpatxl.shop +qtwicgcoz.ga +qtxm.us +qtyciz.com +qtyllhhtt.shop +quaatiorup.ga +quaatiorup.gq +quaatiorup.ml +quabbinmediation.net +quactaci.cf +quactaci.gq +quactaci.ml +quactaci.tk +quadcitiesphysicaltherapy.com +quadixrefugees.com +quadluve.gq +quadluve.ml +quadluve.tk +quadparts.ru +quadrafit.com +quadrant99.com +quadri.me +quadrigae-zeus.com +quaestore.co +quaihopli.cf +quaihopli.gq +quaihopli.ml +quaihopli.tk +quaipragma.cf +quaipragma.ga +quaipragma.tk +quakepock.site +qualia.cash +qualia.exchange +qualitatsproduktgeschenke.men +qualitific.com +qualitybrush.net +qualitybrush.us +qualitybrushes.biz +qualitybrushes.org +qualitybrushes.us +qualityimpres.com +qualitymedicarehelp.com +qualitymonitoringsolutions.com +qualityservice.com +quallary.com +qualmweirdshove.site +quaminigames.xyz +quan9nhadat.com +quanaothethao.com +quanaril.cf +quanaril.com +quanaril.ga +quanaril.ml +quandahui.com +quangcaoso1.net +quant-heyr.pro +quant-rr.pro +quant2new.pro +quant2wow.pro +quant3new.pro +quant4new.pro +quant4r.pro +quant5new.pro +quant7new.pro +quantarim.com +quanted.best +quantfycapital.org +quanthax.com +quanticmedia.co +quantize587rc.online +quantnodes.com +quantobasta.ru +quantrr.pro +quants.school +quantsoftware.com +quantum-hero.pro +quantum-kz.pro +quantum-wow.pro +quantum4u.pro +quantumreality.dev +quantums-code.site +quaracta.cf +quaracta.gq +quarentinetips.com +quarida.com +quarl.xyz +quarnipe.cf +quarnipe.ga +quarnipe.ml +quarnipe.tk +quarrycoin.com +quarterlyforum.com +quartz-co.ru +quasoro.ga +quasoro.gq +quasoro.ml +quasoro.tk +quassia.xyz +quatangdinhcao.com +quattro.best +quattro.monster +quattro.network +quaykingfun.com +qubecorp.tk +qubitoid.com +qubitoids.com +qubrku.com +qubyafahg.shop +qucaiguoji111.com +qucaiguoji222.com +qucaiguoji333.com +quduq.org +que-les-meilleurs-gagnent.com +quean.xyz +quebec.alpha.webmailious.top +quebec.victor.webmailious.top +quebeccruisespecialist.com +quebecgolf.livemailbox.top +quebecorworld.com +quebecstart.com +quebecupsilon.thefreemail.top +quecarrera.com +quecompde.cf +quecompde.ga +quecompde.gq +quecompde.tk +quecruncher.com +quediode.cf +quediode.ga +quediode.ml +quediode.tk +queeejkdfg7790.cf +queeejkdfg7790.ga +queeejkdfg7790.gq +queeejkdfg7790.ml +queeejkdfg7790.tk +queenbeauty.top +queenbet201.com +queenbet202.com +queenbet222.com +queenbet333.com +queenbet555.com +queenbet999.com +queencreekapartments.com +queenma.xyz +queensbags.com +queenslandfoodandwinefestival.com +queenslandlotto.com +queenslxcc.space +queenspeak-sgp.com +queentein.com +queentemp.site +queentempt.site +queerasfolk.ru +queerlyawkward.com +queersinproperty.melbourne +quehuongta.com +quelldropoutshown.site +quemaryndirt.host +quemede.ga +quemede.ml +quemillgyl.ga +quemillgyl.gq +quemillgyl.ml +quentinpelletier.com +quepasa.xyz +quepedi.cf +quepedi.gq +quepedi.tk +quepizzamassanassa.com +quequeremos.com +querl.xyz +querydirect.com +queryshuttle.com +queserchea.cf +queserchea.gq +queserchea.ml +queso-tillamook.name +quesomail.xyz +quesoran.cf +quesoran.ga +quesoran.ml +quesoran.tk +quesotillamook.name +quesotillamook.us +questali.xyz +questaliv.xyz +questdr.xyz +questdri.xyz +questionamusic.com +questner.xyz +questore.co +questoru.com +questshaf.xyz +questza.com +quetronis.cf +quetronis.ga +quetronis.gq +quetronis.ml +quetronis.tk +queuegr.icu +queuem.com +queueplan.xyz +qui-mail.com +qui2-mail.com +quiba.pl +quichebedext.freetcp.com +quick-mail.cc +quick-mail.club +quick-mail.info +quick-mail.online +quick-shopping.online +quickbookstampa.com +quickcash.us +quickcash4homesolutions.com +quickcashinstant.com +quickcloserealty.store +quickemail.info +quickemail.top +quickestloans.co.uk +quickhondaparts.com +quickinbox.com +quickloans.com +quickloans.us +quickloans560.co.uk +quickloanstoday.info +quicklymail.info +quickmail.best +quickmail.in +quickmail.nl +quickmail.rocks +quickmakeupbag-shop.ru +quickock.icu +quickpaydayloansuk34.co.uk +quickreport.it +quickresponsecanada.info +quickresponsefund.com +quicksandmovies.com +quickspect.com +quickstore.club +quicktech.repair +quicktricepguide.com +quicktv.xyz +quickty.org +quicooking-oita.com +quicooti.cf +quicooti.ga +quicooti.gq +quicooti.ml +quicooti.tk +quid4pro.com +quidoli.cf +quidoli.ga +quidoli.gq +quidoli.tk +quiecht.space +quienesjorge.com +quierolasvegas.com +quierolondres.com +quieroparis.com +quietcre.us +quietth.icu +quietthe.icu +quifacto.cf +quifacto.gq +quifacto.ml +quifacto.tk +quiflexaf.cf +quiflexaf.ga +quiflexaf.ml +quiflexaf.tk +quikdrycarpet.com +quilfast.com +quill-star.ru +quiller-star.ru +quiller.ru +quillstar.ru +quilon.net +quiltforest.online +quilthub.store +quiltshoppress.com +quiltslover.online +quiltslover.store +quimaress.cf +quimaress.ga +quimaress.gq +quimaress.ml +quimaress.tk +quinoadesavoie.net +quinoadesavoie.org +quintalaescondida.com +quintania.top +quintasystems.com +quintessentialextracts.com +quintuqzwv.club +quiperge.ga +quiperge.gq +quiperge.ml +quiperge.tk +quiprol.com +quiprol.farm +quismutach.cf +quismutach.gq +quismutach.ml +quismutach.tk +quisquous.site +quitadoptpop.website +quite-bag-seed-catch.xyz +quithic.site +quitmanms.org +quitsmokinghelpfulguide.net +quitsmokingmanyguides.net +quivilo.ga +quivilo.gq +quivilo.ml +quivilo.tk +quixoticals.com +quiz.style +quizee.ru +quizitaly.com +quizr.org +quizuetran.cf +quizuetran.ga +quizuetran.gq +quizuetran.ml +quizwords.com +qunianbi.com +qunke.cd +quodro.com +quoiceneck.site +quoprice.org +quotable.email +quotadr.press +quotaglas.press +quotale.xyz +quotaleav.xyz +quotasu.xyz +quotasui.xyz +quotationgo.email +quoteable.art +quotedakotacare.com +quoteko.cf +quoteko.ga +quoteko.gq +quoteko.tk +ququb.com +quran.cd +qureta.net +qurio.ru +qurist.com +quto.site +quuradminb.com +quvshine.ru +quw88.com +quwdo.us +quwo.site +quxppnmrn.pl +quxx14.com +quxx150.com +quxx152.com +quxx158.com +quxx159.com +quxx160.com +quxx162.com +quxx168.com +quxx174.com +quxx176.com +quxx178.com +quxx183.com +quxx186.com +quxx189.com +quxx190.com +quxx195.com +quxx198.com +quxx199.com +quxx200.com +quyao.online +quyi.info +quyi88.com +quzhou889.com +quzrisomzon.best +qvady.fun +qvady.group +qvady.life +qvady.live +qvady.network +qvap.ru +qvaq.ru +qvarqip.ru +qvcpv.com +qvestmail.com +qvitta.com +qvkf2i.com +qvlar.se +qvmassage.com +qvo6jm.us +qvpod.xyz +qvvcuk.com +qvvoxjfb.shop +qvwthrows.com +qvy.me +qwanton.xyz +qwarmingu.com +qwcrossing.com +qwe-qwe.com +qweazcc.com +qweewqrtr.info +qwefaswee.com +qwefewtata.com +qweiop.xyz +qwekssxt6624.cf +qwekssxt6624.ga +qwekssxt6624.gq +qwekssxt6624.ml +qwekssxt6624.tk +qwelth.com +qwerasd1.ru +qwereed.eu +qwerqwerty.ga +qwerqwerty.ml +qwerqwerty.tk +qwertaz.com +qwertymail.cf +qwertymail.ga +qwertymail.gq +qwertymail.ml +qwertymail.tk +qwertyuiop.tk +qwertyuiopasdfghjklzxcvbnm.info +qwerytr978.info +qwewe2.top +qwexaqwe.com +qwexecdue.ga +qwezxsa.co.uk +qwfox.com +qwgll.com +qwickmail.com +qwkcmail.com +qwkcmail.net +qwkk111.com +qwmmanbetx.com +qwnxf1.us +qwop.space +qwqrwsf.date +qwrezasw.com +qwsa.ga +qwtof1c6gewti.cf +qwtof1c6gewti.ga +qwtof1c6gewti.gq +qwtof1c6gewti.ml +qwtof1c6gewti.tk +qx93.com +qx95.com +qx96.com +qx97.com +qx98.com +qxads.com +qxkneives.shop +qxlvqptiudxbp5.cf +qxlvqptiudxbp5.ga +qxlvqptiudxbp5.gq +qxlvqptiudxbp5.ml +qxlvqptiudxbp5.tk +qxpaperk.com +qxtgd.com +qxxx.site +qy5p96.us +qydwa.live +qyfaka.info +qyhty.com +qyj101.com +qymuhu.info +qyp6sr.us +qysyny.site +qytue.site +qywbz1.site +qyx.pl +qzav69.com +qzbdlapps.shop.pl +qzc.xyz +qzdsx1.us +qzdynxhzj71khns.cf +qzdynxhzj71khns.gq +qzdynxhzj71khns.ml +qzdynxhzj71khns.tk +qzepg0.info +qzgqzgdtqumszututqg.ru +qzh198.com +qzick.com +qzilx1.site +qztc.edu +qzvbxqe5dx.cf +qzvbxqe5dx.ga +qzvbxqe5dx.gq +qzvbxqe5dx.ml +qzvbxqe5dx.tk +qzwdim.us +r-fasket.ru +r-mail.cf +r-mail.ga +r-mail.gq +r-mail.ml +r-shopinline.info +r.polosburberry.com +r.yasser.ru +r0.igg.biz +r044lzry.buzz +r047inbc.buzz +r051rfsk.buzz +r098tzje.buzz +r0ckst4r.com +r0kdgx.us +r0ywhqmv359i9cawktw.cf +r0ywhqmv359i9cawktw.ga +r0ywhqmv359i9cawktw.gq +r0ywhqmv359i9cawktw.ml +r0ywhqmv359i9cawktw.tk +r100glua.buzz +r115pwhzofguwog.cf +r115pwhzofguwog.ga +r115pwhzofguwog.gq +r115pwhzofguwog.ml +r115pwhzofguwog.tk +r14y.com +r18app.com +r18bt.com +r18h.com +r18mmd.com +r18udogyl.pl +r1b3d9.us +r1br1b.com +r1qaihnn9wb.cf +r1qaihnn9wb.ga +r1qaihnn9wb.gq +r1qaihnn9wb.ml +r1qaihnn9wb.tk +r2cakes.com +r2vw8nlia9goqce.cf +r2vw8nlia9goqce.ga +r2vw8nlia9goqce.gq +r2vw8nlia9goqce.ml +r2vw8nlia9goqce.tk +r2vxkpb2nrw.cf +r2vxkpb2nrw.ga +r2vxkpb2nrw.gq +r2vxkpb2nrw.ml +r2vxkpb2nrw.tk +r2z4m.xyz +r3-r4.tk +r31s4fo.com +r3hyegd84yhf.cf +r3hyegd84yhf.ga +r3hyegd84yhf.gq +r3hyegd84yhf.ml +r3hyegd84yhf.tk +r3kihu.us +r3z4.com +r4-3ds.ca +r4.dns-cloud.net +r425s.live +r4carta.eu +r4carte3ds.com +r4carte3ds.fr +r4ds-ds.com +r4ds.com +r4dscarte.fr +r4gmw5fk5udod2q.cf +r4gmw5fk5udod2q.ga +r4gmw5fk5udod2q.gq +r4gmw5fk5udod2q.ml +r4gmw5fk5udod2q.tk +r4ifr.com +r4nd0m.de +r4ntwsd0fe58xtdp.cf +r4ntwsd0fe58xtdp.ga +r4ntwsd0fe58xtdp.gq +r4ntwsd0fe58xtdp.ml +r4ntwsd0fe58xtdp.tk +r4unxengsekp.cf +r4unxengsekp.ga +r4unxengsekp.gq +r4unxengsekp.ml +r4unxengsekp.tk +r513s.live +r529n.live +r56r564b.cf +r56r564b.ga +r56r564b.gq +r56r564b.ml +r56r564b.tk +r57u.co.cc +r5hbb.cloud +r664mxb3kh3ff39.xyz +r6cnjv0uxgdc05lehvs.cf +r6cnjv0uxgdc05lehvs.ga +r6cnjv0uxgdc05lehvs.gq +r6cnjv0uxgdc05lehvs.ml +r6cnjv0uxgdc05lehvs.tk +r6ho.us +r6motorsportmarketing.com +r6q9vpi.shop.pl +r6ql7.buzz +r7m8z7.pl +r88mobile.com +r8ca4d.us +r8lirhrgxggthhh.cf +r8lirhrgxggthhh.ga +r8lirhrgxggthhh.ml +r8lirhrgxggthhh.tk +r8mwf.us +r8p0xh.host +r8r4p0cb.com +r9-nalarum.ru +r9094.com +r93k.us +r97il.com +r9827.com +r99.fun +r9eypf-mail.xyz +r9jebqouashturp.cf +r9jebqouashturp.ga +r9jebqouashturp.gq +r9jebqouashturp.ml +r9jebqouashturp.tk +r9qych.us +r9x5ce.us +r9ycfn3nou.cf +r9ycfn3nou.ga +r9ycfn3nou.gq +r9ycfn3nou.ml +r9ycfn3nou.tk +ra-st.ru +ra0099.com +ra3.us +ra540.buzz +ra5qke.us +ra72a3.online +raagevents.com +rabaz.org +rabbit168.info +rabdm.ru +rabet3.com +rabfibird.cf +rabfibird.ga +rabfibird.gq +rabfibird.ml +rabganglu.cf +rabganglu.ga +rabganglu.gq +rabganglu.ml +rabhjzwst.shop +rabidsammich.com +rabin.ca +rabiot.reisen +rabomo.com +rabota24-v-internet.ru +rabotagovno.xyz +rabotnikibest.ru +rabuberkah.cf +rabuh5.us +race-karts.com +racedaystudio.com +racesimulator.ru +racetire.us +racevietnam.info +racevietnam.net +rache2.net +rachelatkinson.buzz +rachelrobinsnest.com +rachelsreelreviews.com +rachsu.ru +racialcomfort.com +racinetech.org +racingmtbiketeam.club +racingwire.info +rackabzar.com +racksandlockers.com +racnewsmela.tech +racoga.cf +racoga.ga +racoga.ml +racoga.tk +racounso.cf +racounso.ga +racounso.gq +racounso.ml +racounso.tk +racquetballnut.com +racseho.ga +racseho.ml +racsubsphar.cf +racsubsphar.ga +racsubsphar.gq +racsubsphar.ml +racsubsphar.tk +radade.com +radardetectorhunt.com +radardetectorshuck.site +radarssalts.top +radcliffeconstructionllc.com +radecoratingltd.com +radede.com +radees.net +radhuni-indian-cuisine.com +radiator-stout.ru +radicalclub.net +radicalclub.org +radicalizes637qv.online +radicalsecurity.info +radicalsecurity.org +radicorn.com +radiku.ye.vc +radinex.com +radio-crazy.pl +radiocbb.com +radiodale.com +radiodaze.biz +radiodirectory.ru +radiofmwolf.site +radiofurqaan.com +radiohawdam.com +radioldz.info +radionaylamp.com +radionightclub.org +radionova.us +radioquebec.info +radioriki.com +radiorocket.ru +radiosiriushduser.info +radiostanica.me +radiostockyards.net +radiotra.icu +radiowhite.net +raditya.website +radius-patio.com +radiven.com +radjspeen-a.ru +radlercafe.com +radostnyy-krik.ru +radskirip.cf +radskirip.ga +radskirip.gq +radskirip.ml +radskirip.tk +radugachudes.ru +radugafutbolok.ru +radugateplo.ru +radux.online +rady24.waw.pl +radyohost.xyz +radyopozitif.xyz +rael.cc +raespital.cf +raespital.ga +raespital.ml +raetp9.com +raf-store.com +rafaelamelolab.com +rafaelsantos.info +rafahidalvarez.com +rafalrudnik.pl +raffle-fr.info +raffles.gg +rafmail.cf +rafmailku.ml +rafmix.site +rafrem3456ails.com +rafxnwqrl.shop +rag-tube.com +ragclwzns.shop +ragebite.net +ragebite.org +ragel.me +ragevpn.net +ragingiiys.online +ragitone.com +ragutti.date +ragvenetstor.website +ragzwtna4ozrbf.cf +ragzwtna4ozrbf.ga +ragzwtna4ozrbf.gq +ragzwtna4ozrbf.ml +ragzwtna4ozrbf.tk +rahabionic.com +rahavpn.men +rahimis.com +rahul.cyou +rai88.net +raiasu.cf +raiasu.ga +raiasu.gq +raiasu.ml +raiasu.tk +raicaltie.ga +raicaltie.gq +raicaltie.ml +raicaltie.tk +raichanlogistics.com +raichartsu.ga +raichartsu.gq +raichartsu.tk +raidiran.cf +raidiran.ga +raidiran.gq +raidiran.ml +raidiran.tk +raidot.org +raidtalk.com +raiffmob2.ru +raifgo.space +raifzus.website +raikas77.eu +rail-news.info +railroad-gifts.com +railroadcheckinn.com +railsmerchant.com +railway-shop.ru +raimne.site +raimonbundo.com +raimond.ru +raimu.cf +raimucok.cf +raimucok.ga +raimucok.gq +raimucok.ml +raimucul.cf +raimucul.ga +raimucul.gq +raimucul.ml +raimuwedos.cf +raimuwedos.ga +raimuwedos.gq +raimuwedos.ml +rain.laohost.net +rainbocorns.ru +rainbow-vanilla.ru +rainbowdelco.com +rainbowdungeon.com +rainbowflowersaz.com +rainbowforgottenscorpion.info +rainbowgelati.com +rainbowly.ml +rainbowrecess.com +rainbowstore.fun +raincode.ru +raindaydress.com +raindaydress.net +rainet.online +rainlear.com +rainmail.biz +rainmail.top +rainmail.win +rainplatform.cloud +rainproofresidual.com +rainstormes.com +rainture.com +rainwaterstudios.org +rainycitynights.com +raiplay.cf +raiplay.ga +raiplay.gq +raiplay.ml +raiplay.tk +rairecomp.cf +rairecomp.ga +rairecomp.gq +rairecomp.ml +rairecomp.tk +rairyri.cf +rairyri.gq +rairyri.tk +raise999.com +raisedhomes.com +raisedviaz.space +raiseenf.buzz +raisegl.com +raisemoneyfaster.com +raisemorecapital.com +raisero.com +raisethought.com +raisnacur.cf +raisnacur.ga +raisnacur.gq +raisnacur.ml +raisraiu.shop +raistone.ru +raitbox.com +raitingslots.ru +raiurais.shop +raiway.cf +raiway.ga +raiway.gq +raiway.ml +raiway.tk +raj-stopki.pl +raja333.net +raja333.org +raja69toto.com +rajaayam.net +rajaayam.org +rajabioskop.com +rajamahakal.com +rajamainonline.com +rajapkr.online +rajapoker.rocks +rajapoker333.org +rajapokerz88.xyz +rajarajut.co +rajas-grill-athlone.com +rajaserverpkv.club +rajasgrill-athlone.com +rajasoal.online +rajatalenan.com +rajatharshada.shop +rajavivobet.org +rajawaliindo.co.id +rajb.ru +rajdnocny.pl +rajeeyah.cf +rajegsquad.site +rajemail.tk +rajeshcon.cf +rajetempmail.com +rajo.site +rajonmi.cf +rajonmi.ga +rajonmi.gq +rajonmi.ml +rajonmi.tk +rajshreetrading.com +raka-raka.cd +raketenmann.de +rakfurniture.com +rakhi.online +rakietyssniezne.pl +rakinvymart.com +rakipbetvip.com +rakipbetvip1.com +rakipbetvip8.com +rakipkart6.online +rakipkart6.xyz +rakippro10.com +rakippro2.com +rakippro7.com +rakippro8.com +rakippro9.com +rakmalhatif.com +raksasadomino.com +raksasapkr.online +rakyatindo.com +ralala.com +raldo.ru +raleighalcoholrehab.com +raleighpaintingcompany.com +raleighquote.com +raleighshoebuddy.com +rallralo.shop +rallyraf.cf +rallyraf.ga +rallyraf.gq +rallyraf.ml +rallyraf.tk +ralph-laurensoldes.com +ralphlauren51.com +ralphlaurendenmark.com +ralphlaurenfemme3.com +ralphlaurenoutletzt.co.uk +ralphlaurenpascherfr1.com +ralphlaurenpaschersfrance.com +ralphlaurenpolo5.com +ralphlaurenpolozt.co.uk +ralphlaurenshirtszt.co.uk +ralphlaurensoldes1.com +ralphlaurensoldes2.com +ralphlaurensoldes3.com +ralphlaurensoldes4.com +ralphlaurenteejp.com +ralphlaurenukzt.co.uk +ralphpickard.com +ralree.com +ralutnabhod.xyz +ramagerealty.com +ramaninio.cf +ramaninio.ga +ramaninio.gq +ramaninio.ml +ramaninio.tk +ramatrk.site +ramazan-2012.com +rambakcor44bwd.ga +rambgarbe.ga +rambgarbe.gq +rambgarbe.tk +rambotogel.com +rambutpantene.online +ramdomtestonline.xyz +ramebet.club +ramgoformacion.com +ramireschat.com +ramireshop.ru +ramjane.mooo.com +ramkolz.xyz +rampas.ml +rampasboya.ml +rampyourbiz.com +ramserog.cf +ramserog.ga +ramserog.gq +ramserog.ml +ramserog.tk +ramseymail.men +ramshop.live +ramswares.com +ramundur.se +ramurop.ml +ramurop.tk +ranaphe.cf +ranaphe.ga +ranaphe.gq +ranaphe.ml +ranaphe.tk +ranas.ml +rancenylt.cf +rancenylt.ga +rancenylt.gq +rancenylt.ml +rancenylt.tk +ranchocucamonganailsalons.com +ranchosantamargaritadentists.com +ranchpanic.com +ranchpres.xyz +ranchweddinginsandiego.com +rancidhome.net +rancidkawing.me +rancilan.cf +rancilan.ga +rancilan.gq +rancilan.ml +rancilan.tk +rand1.info +randallb.photos +randelstravel.info +randich.info +randizzy.com +randkiuk.com +rando-nature.com +randofficcloth.com +randomactsofkindness.site +randomail.net +randombook.com +randomcsorg.ru +randomdrink.com +randomfever.com +randomgamen.online +randomgetaway.com +randomgift.com +randomniydomen897.cf +randomniydomen897.ga +randomniydomen897.gq +randomniydomen897.ml +randomniydomen897.tk +randomplanet.com +randomrecipe.com +randomseantheblogger.xyz +randomthing.org +randomusnet.com +randomwinner.net +randycloting.com +randyfitshoes.com +randykalbach.info +rangerapp.com +rangereviewer.com +rangerjerseysproshop.com +rangersgaming.biz +rangetige.xyz +rangevid.us +ranggasra.club +rangisre.me +ranhen.ru +rank.exchange +rankable.com +rankgapla.cf +rankgapla.ga +rankgapla.gq +rankgapla.ml +ranking-tabletek-na-odchudzanie.xyz +rankingc3.global +rankingweightgaintablets.info +rankmagix.net +ranko.site +ranktong7.com +rankupcommunity.com +ranmoi.net +ranonline-spygames.com +ranpack.online +ransern.com +ransombeauty.com +ransranbo.ml +ransranbo.tk +ransvershill.cf +ransvershill.ga +ransvershill.gq +ransvershill.ml +rantfoo.com +ranuless.cf +ranuless.ga +ranuless.ml +ranuless.tk +ranur.ru +rao-network.com +rao.kr +raoviet.website +rap-master.ru +rapadura.tech +rapaschi.cf +rapaschi.ga +rapaschi.gq +rapaschi.ml +rapdior.store +rape.lol +rapenakyodilakoni.cf +rapid-guaranteed-payday-loans.co.uk +rapidbeos.net +rapidbooks.site +rapidcontentwizardofficial.com +rapiddecisiontermlife.com +rapidmail.com +rapidpay.asia +rapidprotect.ml +rapidpulse.tech +rapidreceiptsidle.site +rapidrootermn.com +rapidspool.info +rapidvideo.co +rapidwristbands.net +rapik.online +raplico.asia +raposoyasociados.com +rappere.com +rapquangtri.com +rapt.be +rapture.bio +rapturetiger.com +rapyhu.info +rapzip.com +raq4iq.xyz +raqal.com +raqid.com +raqueldavalos.com +rarame.club +rarissima.site +rarlclasem.tk +rarsato.xyz +rary0.site +rasc2004.info +rascvetit.ru +rasedaoip.ga +rasedily.info +rash-pro.com +raskhin54swert.ml +raspaty.cf +raspaty.ga +raspaty.ml +raspaty.tk +raspberrypi123.ddns.net +raspberrypibra.com +raspberrypiguy.com +raspedc.org +rasplatamovie.ru +rasprodazha365.ru +rassulioni.ru +rastabettingsnupp.xyz +rastenivod.ru +rastrofiel.com +rasubsto.cf +rasubsto.ga +rasubsto.gq +rasubsto.ml +rasubsto.tk +ratcher5648.cf +ratcher5648.ga +ratcher5648.gq +ratcher5648.ml +ratcher5648.tk +rateandagents.com +ratedmildewsimon.site +ratedquote.com +rateiobarato.net +rateiovirtual.biz +rateiovirtual.club +rateiovirtual.xyz +rateiovirtualbr.org +ratel.org +ratemytravelagency.com +ratepro.site +ratesandagent.com +ratesforrefinance.net +ratesiteonline.com +rateslending.pro +ratharsben.com +ratibe.ga +ratihof.cf +ratihof.ga +ratihof.gq +ratihof.ml +rating-slimming.info +ratingcontrol.com +ratingpol.ru +ratingslimmingpills.info +ratioan.icu +ratiomars.email +rationalizer176ov.online +ratiorei.fun +ratiosha.xyz +ratiosk.xyz +ratioska.xyz +ratnnyhfs.gq +ratsnaijie.space +ratsukellari.info +ratsup.com +ratswap.com +ratta.cf +ratta.ga +ratta.gq +ratta.ml +ratta.tk +rattlearray.com +rattlecore.com +rattlesnakecanyon.org +ratu228.net +ratu855.com +ratu855.net +ratuayam.info +ratuayam.net +ratuayam.org +ratugaming.com +ratuibc.com +ratutangkas.net +ratutoto4d.org +raucuquadalat.net +raulenhou.cf +raulenhou.ga +raulenhou.gq +raulenhou.ml +raulenhou.tk +rauljhwsw.shop +raurua.com +rautostabilbetsnup.xyz +rauxa.seny.cat +rav-4.cf +rav-4.ga +rav-4.gq +rav-4.ml +rav-4.tk +rav-apsl.ru +rav4.tk +rave-cage.org +ravenol-bg.com +ravenom.ru +ravenouswolf.com +ravenplug.com +ravensproteamsshop.com +ravenssportshoponline.com +ravenssuperbowlonline.com +ravensuperbowlshop.com +raventurres.net +ravipatel.tk +raviswiss.com +ravnica.org +ravpowers.com +ravusraven.monster +ravyn.xyz +rawbeerfreighter.website +rawbucks.net +rawgamemaker.com +rawhidefc.org +rawirymi.xyz +rawizywax.com +rawkitchen.ru +rawmails.com +rawpitcher.com +rawreredc.cf +rawreredc.ga +rawreredc.ml +rawrr.ga +rawrr.tk +rawscore.app +rawscore.cash +rawscore.org +rawscored.com +rawscorer.com +rawscores.app +rawscores.net +rawscoring.com +rax.la +raxomart.site +raxtest.com +raya.gq +rayacasino.info +raybanpascher2013.com +raybanspascherfr.com +raybanssunglasses.info +raybansunglassesdiscount.us +raybansunglassessalev.net +raybansunglasseswayfarer.us +raycaster.info +raychat.xyz +rayenventures.com +rayetailor.com +rayfaulkner.com +raygunapps.com +raylee.ga +raymondheaden.com +raymondvase.com +raynaman.com +rayong.mobi +raywvjt.space +razbor54.ru +razemail.com +razernv.com +razin.me +razinrocks.me +razkruti.ru +razorbackfans.net +razorkast.com +razorwoodworks.com +razpayprim.cf +razpayprim.gq +razpayprim.tk +razsor.adult +razumkoff.ru +rb9dsi.com +rbatz.net +rbaynf.site +rbb.org +rbbyr.com +rbcenvk.top +rbcoint.top +rbcom.ru +rbdh.xyz +rbeiter.com +rbet260.com +rbezwx.com +rbfxecclw.pl +rbgwmlrt.shop +rbiwc.com +rbjkoko.com +rbkwd.us +rblrobot.com +rblx.site +rblxrewards.xyz +rbmail.co.uk +rbmtzy.icu +rbnej.xyz +rbnv.org +rbo88.xyz +rbpc6x9gprl.cf +rbpc6x9gprl.ga +rbpc6x9gprl.gq +rbpc6x9gprl.ml +rbpc6x9gprl.tk +rbq123.com +rbswwejhq.gq +rbteratuk.co.uk +rbuwc.com +rbvboox.com +rc-note.biz +rc6bcdak6.pl +rc8o6b7lhuyxvtj.xyz +rc94stgoffreg1.com +rcamerabest.info +rcasd.com +rcaynoye.shop +rcb.rest +rcbdeposits.com +rcbuy.info +rccew.site +rcelectricalcontractorsltd.com +rchd.de +rchondaparts.com +rchub.ru +rcinvn408nrpwax3iyu.cf +rcinvn408nrpwax3iyu.ga +rcinvn408nrpwax3iyu.gq +rcinvn408nrpwax3iyu.ml +rcinvn408nrpwax3iyu.tk +rclaccelerator.org +rclasmile.ru +rcm-coach.net +rcmails.com +rcnwp.live +rcode.net +rcode.site +rcon.app +rconsale.com +rcpt.at +rcr0hs.us +rcruiying.com +rcs.gaggle.net +rcs7.xyz +rcshost.ru +rctfood.com +rctkmijw.shop +rcuznkkw.shop +rd2ae.info +rdahb3lrpjquq.cf +rdahb3lrpjquq.ga +rdahb3lrpjquq.gq +rdahb3lrpjquq.ml +rdahb3lrpjquq.tk +rdiffmail.com +rdjoi.us +rdklcrv.xyz +rdlocksmith.com +rdom3t.host +rdqea1.site +rdr2native.com +rdresolucoes.com +rdrt.ml +rdrunner.net +rdset.com +rdssiro.space +rdstreetwear.com +rdvsnap.com +rdvx.tv +rdyn171d60tswq0hs8.cf +rdyn171d60tswq0hs8.ga +rdyn171d60tswq0hs8.gq +rdyn171d60tswq0hs8.ml +rdyn171d60tswq0hs8.tk +rdzbwm.icu +re-gister.com +re-shopping.info +re7zf1.info +reacc.me +reachable.online +reachaccept.monster +reachandrevenue.com +reachbeyondtoday.com +reachby.com +reachingthemedia.com +reachintegra.mobi +reachniy.ml +reachout.pw +reachun.xyz +reachwheat.us +reacsoca.cf +reactbooks.com +reactimok.com +reactive-eng.com +reactive-school.ru +reactripostesinew.site +read-wordld.website +reada.site +readanybook.best +readb.site +readc.site +readd.site +readdelight.site +readershealthdigest.com +readg.site +readh.site +readi.site +readied.com +readinghippo.com +readingkeylightning.net +readingroombookreviews.com +readissue.com +readk.site +readlistenlearn.info +readm.club +readstudysmart.site +readtext.app +readtoyou.info +readwritehustle.training +readyatuhready.online +readycoast.xyz +readycollect.biz +readycollect.info +readycollect.org +readyforchristmas.net +readyforfirstgradeworkshop.com +readyforschooltraining.com +readyforyou.cf +readyforyou.ga +readyforyou.gq +readyforyou.ml +readyhostel.com +readysetgaps.com +readyslo.com +readyslo.net +readyslocounty.net +readyslocounty.org +readystoo.email +readyttoloveyouforever.com +reakisynch.cf +reakisynch.ga +reakisynch.gq +reakisynch.ml +reakisynch.tk +reaktor51.online +real-dating-finder12.com +real-estate-net.com +real-group-action.info +real-leather.ru +real-market-buy.ru +real-partner-dating1.com +real-prizeszone.life +real-undersell-commerce.ru +real2realmiami.info +realacnetreatments.com +realaiot.club +realantispam.com +realbahis41.com +realbahis43.com +realbahis45.com +realbahis46.com +realbahis60.com +realbahis74.com +realbahis90.com +realchangepodcast.live +realdemocracy.vision +realdemocracy.works +realdietforskolin.com +realestateagent401k.com +realestatearticles.us +realestatebytheallens.com +realestatecont.info +realestatedating.info +realestatehotlineonline.com +realestatehow.com +realestateinfohotline.com +realestateinfosource.com +realestateinvestorsassociationoftoledo.com +realestatemarketcap.com +realestpeople.asia +realevoo.com +realexchangerates.com +realfanclub.cf +realfipacoin.net +realfoxj.site +realfun.info +realgt4d.com +realhomesafrica.com +realhoustondeals.com +realidindiana.com +realidma.com +realidmi.com +realidmichigan.com +realieee.com +realieee.org +realinflo.net +realistiskamassagestavar.se +reality-concept.club +realizerecords.net +realjoe1.ru +realjordansforsale.xyz +really.istrash.com +reallyfast.info +reallymymail.com +reallyneatgames.com +reallyshittycoffee.com +realmates.xyz +realmoviedd.com +realmpilot.com +realmx.se +realneoharry.ru +realoptionshousebuyer.com +realpetnatural.com +realpetnatural.net +realpharmacytechnician.com +realpokerschool.com +realportal.online +realproductivelife.com +realquickemail.com +realrisotto.com +realsalesforce.com +realsoul.in +realstlouisdeals.com +realstrongestates.com +realtor-chelny.ru +realtor.ph +realtv8.com +realtyalerts.ca +realtyexpertise.us +realtymogul.co +realwebcontent.info +realyour-girls1.com +realystics.com +realz.site +reaneta.cf +reaneta.ga +reaneta.tk +reankpek.xyz +reaoxyrsew.ga +reaoxysew.ga +reapermachine.com +rearepe.shop +reasons-to-use-3ds-max.com +reasontocelebrate.org +reasystabilitybetsnupp20.xyz +reauflabit.cf +reauflabit.ga +reauflabit.ml +rebami.cf +rebami.ga +rebami.gq +rebami.tk +rebatedates.com +rebates.stream +rebeca.kelsey.ezbunko.top +rebeccaallison.biz +rebeccabad.website +rebeccadavidson.buzz +rebeccadear.website +rebeccalblack.com +rebeccasfriends.info +rebeccavena.com +rebekahcarney.net +rebekamail.com +rebelexac.icu +rebelfi.icu +rebelrodeoteam.us +rebelvo.xyz +reberpzyl.cf +reberpzyl.ga +reberpzyl.gq +reberpzyl.ml +reberpzyl.tk +rebertboxing.ru +rebhornyocool.com +rebnt55-otymry.site +reboot-sec.net +reboot-secure.com +reboot-security.com +rebootsecure.com +rebootsecure.net +rebootsecurity.net +reborn-propertes.com +rebornlibrary.com +rebornlover.club +rebotec24.ru +recargaaextintores.com +recastchurch.net +recastclassics.com +recaudoalinstante.com +recdubmmp.org.ua +receeptionist.ru +receipt.legal +receiptroyalty.mobi +receitasdaju.com +receive.photo +receiveee.chickenkiller.com +receiveee.com +recept-edy.ru +recept-sekret.ru +receptest.ru +receptiki.woa.org.ua +receptsu.ru +recepty-mira.ru +recepty-prigotovleniya.ru +recettesla.store +recharge.cd +rechargenavkar.com +rechnoclick.com +rechtsbox.com +reciclaje.xyz +recipe.cd +recipebabbel.com +recipeblog.com +recipecommunity.com +recipedirectory.org +recipeforfailure.com +recipeinternasional.com +recipie-for.com +recklessbox.com +reclaimbellydancing.com +reclaimyourtimemasterclass.com +recode.me +recogeme.com +recognised.win +recognizably452yw.online +recognizance975sx.online +recognizers974rc.xyz +recoil.training +recolonization955nf.online +recombinati.xyz +recommendedstampedconcreteinma.com +recommendedvideos.com +reconbirdmedia.com +reconbirdsoftware.com +reconditionari-turbosuflante.com +reconmail.com +record01.site +record01.xyz +recordboo.org.ua +recordedvids.com +recordially.com +recordsinglekeymail02.gq +recordstimes.org.ua +recoverharddisk.org +recoverpoint.online +recoveryhealth.club +recoveryhealth.site +recoveryhealth.space +recoveryhealth.xyz +recpersonred.site +recreatie.works +recreationactivesite.club +recreationlogspot.club +recroyal.com +recruitaware.com +recruitdirt.com +recruitingfriend.com +recruitment.works +rectalcancer.ru +rectono.cf +rectono.ga +rectono.gq +rectono.ml +rectono.tk +recupemail.info +recurrenta.com +recursor.net +recyclabledisplays.com +recyclate.org +recyclemail.dk +recycleocean.info +recycleocean.net +recycleocean.org +recyclingjobs.org +recycraft.ru +red-mail.info +red-mail.top +red-paddle.ru +red-r.org +red-shopping.info +red12030505.xyz +red18sports.org +red88.org +red88.us +red88.vin +redacciones.net +redaily.online +redalbu.cf +redalbu.ga +redalbu.gq +redalbu.ml +redalbu.tk +redanumchurch.org +redapplecasino.com +redarrow.uni.me +redarrowcorp.com +redbahis22.com +redbahis23.com +redbarnfleamarket.net +redbarnfleamarket.org +redbats.info +redbird.live +redbmailer2.com +redbottomheels4cheap.com +redbottomshoesdiscounted.com +redbottomsshoesroom.com +redbottomsstores.com +redbullpoker.club +redbullpoker.site +redbullpoker.xyz +redcarpet-agency.ru +redcartmonkey.com +redchan.it +redchillieskincardine.com +redchoco.xyz +redcityrose.ru +redcolony.info +reddcoin2.com +reddcore.com +reddduslim.ru +reddeal6.site +reddenimhaven.com +redderex.com +reddiffusionpro.top +reddishearth.tk +reddit.usa.cc +reddithub.com +reddogspecials.com +reddoorresort.com +reddoors.ru +reddygroup.org +redeemupon.com +redefinedcloud.com +redefiningrealestate.us +redemptioncalvary.net +redeo.net +redesimpacto.site +redetm.online +redews.online +redfeathercrow.com +redflashgroup.net +redflpay.xyz +redfoxbet13.com +redfoxbet30.com +redfoxbet31.com +redfoxbet33.com +redfoxbet36.com +redfoxbet38.com +redfoxbet39.com +redfoxbet50.com +redfoxbet60.com +redfoxbet62.com +redfoxbet64.com +redfoxbet65.com +redfoxbet68.com +redfoxbet74.com +redfoxbet77.com +redfoxbet87.com +redfuli999.club +redgil.com +redheadcuties.com +redhet.xyz +redhoney.info +redhoney.site +redhoney.xyz +redhoneypower.com +redhookprocessing.com +redhornet.info +redhorsegaming.com +rediffmail.net +redigesso.ru +redir-ok-igrosoft.ru +redirect.plus +redissoft.site +reditt.xyz +redjoplastik.com +redkeyproperties.net +redkings.org +redkings.us +redleuplas.cf +redleuplas.ga +redleuplas.gq +redleuplas.tk +redline-shimonoseki.com +redmail.agency +redmail.tech +redmob.site +redmp4.site +redondobeachwomansclub.org +redopikas.cf +redounrsyi.space +redovisningdanderyd.nu +redovisningsbyra.nu +redpeanut.com +redpen.trade +redpepumya.space +redrabbit1.cf +redrabbit1.ga +redrabbit1.gq +redrabbit1.ml +redrabbit1.tk +redrect.site +redring.org +redrivervalleyacademy.com +redrockdigital.net +redropeapp.com +redseoeee.top +redsnow.cf +redsnow.ga +redstar.online +redteddy.ru +redtiger.info +redtopgames.com +redtreebrush.biz +redtreebrush.org +redtreebrush.us +redtreebrushes.biz +redtreebrushes.net +redtreebrushes.us +redtreeind.us +redtreeindustries.net +redtube-video.info +reduced.link +reduceyourrecurrence.net +reduitec.org +redundancy.dev +reduslim-dealer.ru +reduslim-dly-vas.ru +reduslim-originals.ru +reduslimf.ru +reduslimius.ru +redusslimium.ru +reduxe.jino.ru +redvid.cf +redvid.gq +redvid.ml +redvid.site +redvid.space +redvid.tk +redvideo.ga +redvideo.site +redviet.com +redvwap.fun +redwinegoblet.info +redwinelady.com +redwinelady.net +redwoodrehab.org +redwrapping.com +redxnxx.site +redxwap.site +redxxx.fun +redyspot.com +redyspots.com +redza.online +reecegiles.space +reedbusiness.nl +reedom.ru +reeducaremagrece.com +reedy.rocks +reedy.space +reefbarandmarket.com +reegasubs.cf +reegasubs.ga +reegasubs.gq +reegasubs.ml +reegasubs.tk +reel-innovation.com +reelsgyptio.cf +reelsgyptio.ga +reelsgyptio.gq +reelsgyptio.ml +reelsgyptio.tk +reelslunorth.cf +reelslunorth.ga +reelslunorth.gq +reelslunorth.ml +reesman.xyz +reestrkontrol.xyz +reestrtranzaction2020.top +reestrvesti.xyz +reeves.ngo +reeves.ong +reevolution.live +reevolutionpodcast.com +reeyna.com +ref01-payoffers.site +ref01-useroffers.info +ref01-useroffers.site +ref02-infopay.site +ref8cw.online +refa.site +refacna.cf +refacna.ga +refacna.ml +refacna.tk +refawra.cf +refawra.ga +refawra.gq +refawra.ml +refawra.tk +refb.site +refbets.com +refeele.live +refer.methode-casino.com +referado.com +referalu.ru +referans.xyz +referol.info +referralroutenight.website +refghtd.xyz +refina.cf +refina.ga +refina.gq +refina.ml +refina.tk +refinance-credit.ru +refinance-your-mortgage.org +refinita.com +refitfightclubcoralgables.com +refitfightclubmiami.com +refittrainingcentercoralgables.com +refk.site +refl.site +reflectcreed.info +reflectionsofiman.org +refleqted.com +refleqtive.com +refm.site +reformbigo.xyz +reformoyik.space +reformpila.space +refp.site +refpiwork.cf +refpiwork.ga +refpiwork.gq +refq.site +refr.site +refractionphotos.net +reframedlife.com +refsi.site +refstar.com +reftoken.net +refu.site +refuger.fun +refund.fun +refurbishdeadbatteries.com +refurhost.com +refy.site +reg-builder.xyz +reg.xmlhgyjx.com +reg19.ml +regalforex.com +regaloregamicudz.org +regalos.store +regalridge.com +regalsz.com +regbypass.com +regbypass.comsafe-mail.net +regcart.com +regencyatbeachwalk.com +regencyop.com +regeneratefootprint.com +regentparkhall.com +regentstudents.biz +reggaestarz.com +reggioemiliadaycare.com +regieneff.com +regimen-skin.com +reginaclothing.com +reginao.se +region13.cf +region13.ga +region13.gq +region13.ml +region13.tk +region42-tur.ru +regional-wolfsburg.com +regional.boutique +regional.catering +regional.delivery +regionalrideshare.com +regionalrideshare.org +regionless.com +regionteks.ru +regiopage-deutschland.de +regiopost.top +regiopost.trade +register-form.online +registermyninja.com +registerrequest.com +registersky777.club +registgmbw.space +registraciya-bank.ru +registratuimei.org +registrip.xyz +regitsrzao.xyz +regivx.com +regli.xyz +regmailproject.info +regmarerketss.ru +regoox.com +regopas.online +regorsland.online +regpp7arln7bhpwq1.cf +regpp7arln7bhpwq1.ga +regpp7arln7bhpwq1.gq +regpp7arln7bhpwq1.ml +regpp7arln7bhpwq1.tk +regroom.host +regroom.website +regspaces.tk +reguded.cf +reguded.ga +reguded.tk +regularlydress.net +regulaurgr.space +regutav.xyz +rehabcenterwebdesign.com +rehabonmymind.com +rehashes.com +rehau39.ru +rehlatti.com +rehobothmission.org +reichwerden.me +reicono.cf +reicono.ga +reicono.gq +reicono.ml +reicorming.gq +reicorming.tk +reiffspank.site +reifreakop.cf +reifreakop.ga +reifreakop.gq +reifreakop.tk +reignblad.icu +reignict.com +reignsa.buzz +reignsoli.icu +reignwast.space +reigpartner.com +reik.net +reikilove.ru +reilidust.cf +reilidust.ga +reilidust.tk +reillycars.info +reima-kinsei.online +reimalaplander.online +rein20.site +reinforcedpaper.com +reinvestors.cloud +reiprivre.cf +reiprivre.gq +reiprivre.ml +reiprivre.tk +reirei.live +reirepa.cf +reirepa.ml +reisezeit.site +reisteepin.cf +reisteepin.ml +reisteepin.tk +reitarme.tk +reitralsa.cf +reitralsa.ga +reitralsa.gq +reitralsa.ml +reitralsa.tk +reiwa.photos +reja9i.site +rejectmail.com +rejeki303.org +rejekihoki168.com +rejestraptek.com +rejestrsuplementow.com +rejo.technology +rejudi.cf +rejudi.ml +rejudsue.cf +rejudsue.ga +rejudsue.gq +rejudsue.ml +rejudsue.tk +rejuvenateyouthfullook.com +rejuvenexreviews.com +rekannaesi.cf +rekannaesi.ga +rekannaesi.tk +rekap.sk +rekeyko.press +reklama.com +reklamad.site +reklambladerbjudande.se +reklambladerbjudanden.se +reklambolum.xyz +reklamhome1.xyz +reklamilanlar005.xyz +reklamilanlar007.xyz +reklamilanlar009.xyz +reklamilanlar59.xyz +reklamowaagencjawarszawa.pl +reklamtr81.website +rekleman3.xyz +rekmatik.com +rekomend.org +rekorber67.com +rekorbet100.com +rekorbet50.com +rekorbet66.com +rekorbet80.com +rekorbet90.com +rekreco.space +reksareksy78oy.ml +reksatal-effective.ru +rekt.ml +rekthosting.ml +relaet.com +relationbreakthrough.com +relationbreakthroughsecrets.com +relationdevelopment.com +relationsansprisdetete-confirmed.com +relationsansprisdetete-meet-backup.com +relationsansprisdetete-meet.com +relationsansprisedetete-confirmed.com +relationsansprisedetete-meet-backup.com +relationsansprisedetete-meet.com +relationsansprisedetete.com +relationscript.com +relationsdesk.com +relationship-cure.com +relationship-transformers.com +relationshipbreakthroughsecrets.net +relationshipdevelop.com +relationshiphotline.com +relationshiping.ru +relationshippanecia.site +relationshiptransformer.org +relationshipwebinar.com +relativegifts.com +relatter.ru +relax59.com +relaxabroad.ru +relaxall.ru +relaxbahis101.com +relaxbahis11.xyz +relaxbahis12.xyz +relaxbahis13.com +relaxbahis82.com +relaxbahis95.com +relaxcafes.ru +relaxeyesasmr.online +relaxeyesasmr.xyz +relaxforyou.space +relaxgamesan.ru +relaxing-retreat.com +relaxiro.site +relaxirony.site +relaxology.ru +relaxplaces.ru +relaxrussia.ru +relaxself.ru +relaxst.icu +relaxwrec.icu +relaxyplace.ru +relay-bossku3.com +relay-bossku4.com +relayed.org +relayimmo.com +relazionifacili-confirmed.com +relazionifacili-meet-backup.com +relazionifacili-meet.com +relcasecrm.com +relcure.com +release-o-matic.com +releasepal.com +releasethekraken.online +releaseyourmusic.com +releri.cf +releri.ga +releri.gq +releri.ml +releri.tk +reless.website +relevart.com +reliable-mail.com +reliableproxies.com +reliablespell.xyz +relianceday.com +reliantcapitalgroup.com +reliefieut.site +reliefreach.monster +reliefsmokedeter.com +reliefteam.com +religionguru.ru +religioussearch.com +relika.cf +relika.ga +relika.gq +relika.ml +relith.xyz +reliz46.ru +relleano.com +relmarket.com +reloadbet55.com +reloadbet78.com +reloadpoint.ru +relocate2boise.com +relom.online +relrb.com +relscience.us +reludexo.site +relxdzy.com +relxv.com +relyst.store +remail.cf +remail.ga +remail7.com +remailer.tk +remailsky.com +remann.com +remarkable.rocks +remarkablycreatedtraining.com +remaster.su +remaxofnanaimopropertymanagement.com +rembaongoc.com +rembitmaster.ru +remedio-para-emagrecer.com +remehan.ga +remehan.ml +remembrance.ooo +rementb.shop +remgelind.cf +remgelind.gq +remgelind.ml +remgelind.tk +remicon.cf +remicon.ga +remicon.gq +remicon.ml +remicon.tk +remilitarizes329uj.online +remingtonaustin.com +remisde.cf +remisde.ga +remisde.gq +remisde.tk +remisra.gq +remisra.ml +remisra.tk +remisyrer.club +remitano.biz +remitano.dev +remitano.us +remium4pets.info +remixify.com +remocalifornia.com +remodalista.com +remomer.ga +remomer.gq +remomer.tk +remonciarz-malarz.pl +remont-92.ru +remont-dubai.ru +remont-dvigateley-inomarok.ru +remont-iq.ru +remont-stoy.ru +remont-svoimi.ru +remontholoda36.ru +remontvuu.ru +remonty-firma.pl +remonty-malarz.pl +remonty-v-sochi.ru +remontyartur.pl +remontyfirma.pl +remontymalarz.pl +remontynestor.pl +remospizza-ashbourne.com +remote.li +remotepcrepair.com +removfap.com +removingmoldtop.com +remprojects.com +remusi.cf +remusi.ga +remusi.gq +remusi.ml +remusi.tk +remyqneen.com +remythompsonphotography.com +remza.net +renalremission.net +renault-brasil.club +renault-duster-online.ru +renault-forums.ru +renault-kangoo.club +renault-sa.cf +renault-sa.ga +renault-sa.gq +renault-sa.ml +renault-sa.tk +renaultcikmaparca.biz +renaulttmail.pw +renaulttrucks.cf +renaulttrucks.ga +renaulttrucks.gq +renaulttrucks.ml +renaulttrucks.tk +renchah.com +rencontresannonces.com +rendek.info +render.community +rendimenttogold.xyz +rendymail.com +reneemonroe.com +renegade-hair-studio.com +renesilva.net +renewinsidergift.com +renewitcarsales.com +renewtechnologyinc.com +rengginangred95btw.cf +reniku.com +reninimpressskulk.site +renklervecizgiler.com +renlet.ru +renliner.cf +renliner.ga +renliner.gq +renliner.ml +rennoverahuset.nu +renobussines.com +renodepot.net +renomitt.cf +renomitt.ga +renomitt.gq +renomitt.ml +renomitt.tk +renoquote.com +renostory.com +renoszrtqw.club +renotravels.com +renouweb.fr +renovablepr.com +renovacaorg.site +renovasibangun-rumah.com +renovateur.com +renovation-building.ru +renoveringshuset.nu +renraku.in +rent2.xyz +rent7.xyz +rentacarpool.com +rentadeautoscancun.uno +rentaharleybike.com +rentalmobiljakarta.com +rentalmobilyogyakarta.biz +rentalproperty.cd +rentasig.com +rentberry-scam.com +rentberryscam.com +rentd.info +rentgigolo.com +rentierklub.pl +rentinmilwaukee.com +rentitthento.press +rentlyna.cf +rentlyna.ga +rentlyna.gq +rentlyna.tk +rentmotivenow.info +rentoaseksiseuraa.com +rentoilfieldequipment.com +rentonom.net +rentpober.cf +rentpober.gq +rentpober.ml +rentshot.pl +renumax-dealer.ru +renwoying.org +renx.de +reo2lease.com +reobreakti.gq +reobreakti.ml +reobreakti.tk +reogland.com +reollink.com +reomjk.icu +reopenireland.com +reorganize953mr.online +reorganizooo.xyz +reossanyth.cf +reossanyth.ga +reossanyth.gq +reossanyth.ml +reossanyth.tk +reostream.site +reotractant.cf +reotractant.gq +reotractant.ml +reotractant.tk +rep3-payment.site +rep5-german.site +rep6-payment.club +repaemail.bz.cm +repair.su +repairalliance.org +reparacionbatres.com +repargy.cf +repargy.ga +repargy.gq +repargy.ml +repargy.tk +repatecus.pl +repdom.info +repeatxdu.com +repelfzkx.space +repetitorka.ru +repetitoronlayn.ru +repfootballpop.website +rephyre.cf +rephyre.ga +rephyre.gq +rephyre.ml +rephyre.tk +repinler.site +repk.site +replacedocs.com +replacementd.email +replacementwindowsnearme.net +replatform.live +replay-wg.site +replica-surfaces.com +replicalouisvuittonukoutlets.com +replicasunglassesonline.org +replicasunglasseswholesaler.com +replicawatchesusa.net +repmyfgaj.ga +repobet6.com +repobet7.com +repokit.app +repolusi.com +repomega4u.co.uk +reportdebugsoftware.com +reportes.ml +reportgate.net +reportptol.tk +reports-here.com +reprisalist.com +reprocar.com +reproductivestrategies.com +reproductivestrategies.info +reprogramforhealth.com +repsandri.cf +repsandri.ga +repsandri.gq +repsandri.tk +repsec.com +repshop.net +reptech.org +reptileextinctrecovery.website +reptilegenetics.com +repubblica-24it.website +republichog.org +republikjaket.com +republiktycoon.com +repubstore.ru +repufire.com +repumazing.com +repuno.net +repushit.com +req.rest +reqaxv.com +reqt.net +requestmeds.com +requestseven.online +rerajut.com +rere.site +rerecircle.com +rereferenced.com +rerollers.com +rertimail.org +rerttymail.com +res.craigslist.org +res20.com +resadjro.cf +resadjro.ga +resadjro.tk +resalefx.ru +resantamiass.ru +rescoatran.gq +rescoatran.ml +rescoatran.tk +rescue-cash.com +rescuemountain.org +rescueroof911.com +rescuewildlife.com +resealzfuc.space +research-paper-writingservice.com +research-proposal.men +researchdetectors.com +researchgems.com +researchmob.com +researchobservatories.org.uk +researchsafety.org +researchstage.com +reseauparlementairegenre.cd +resellermurah.me +resellhotel.site +resellking.ru +resepantigagal.site +resepindonesia.site +resepku.site +reseprahasia.site +reservationforum.com +reservefxnf.email +reservelp.de +reservoirsource.com +reset-secure.com +resetsecure.org +resetsecurity.net +resfe.com +resgedvgfed.tk +resgranpalacio.com +reshaping.biz +reshipbox.com +reshuolimp.ru +resicoin.com +residencerewards.com +residencesdesroyetfils.com +residencialgenova.com +residencias-ancianos.info +residencias-baratas.com +residencias-mayores.info +residencias-rehabilitacion.com +residencymail.com +residentialpacifist.com +resifi.com +resifi.net +resignationcustodyoffend.website +resilijdez.ru +resimbudur.online +resimbudur.xyz +resin-board.com +resinboard.com +resindeca.xyz +resinlqdtk.space +resintesshop.xyz +resirtest.club +resistore.co +resize.email +resla-rasxaer.ru +reslifestaff.com +resmail24.com +resmigazete.net +resneti.cf +resneti.ga +resneti.ml +resneti.tk +resnitsy.com +resolution4print.info +resolutionrescue.info +resorings.com +resort-in-asia.com +resortmakeover.com +resortmapprinters.com +resortmapprints.com +resortsallinclusive.net +resortsp.club +resounkffh.space +resource.vote +resources.vote +resourcesfordancers.com +resourcingchristianity.com +respectabrew.com +respectabrew.net +respectgarage.ga +respectgarage.ml +respectgarage.tk +respectjewel.su +respekus.com +responsive.co.il +responsiveclassroom.info +responsiveclassrooms.org +respublica.app +resseru.cf +resseru.ga +resseru.ml +resseru.tk +ressources-solidaires.info +resspi.com +rest-lux.ru +rest-top.ru +restabbetting.xyz +restarteurope.com +restartmotora.ru +restaurangselins.se +restauranteasturianoelraitan.com +restauranteatarantella.com +restaurantechinolitualicante.com +restaurantechinoyongfeng.com +restaurantefarodehiguer.com +restauranteindiangardenmadrid.com +restaurantekansasburger.com +restaurantemaxim.com +restauranteoishiizaragoza.com +restauranteosasco.ml +restauranthosting.com +restaurantmarketinglasvegas.com +restaurantsnearme.life +restbetgir.site +resthinstbah.cf +resthinstbah.ga +resthinstbah.gq +resthinstbah.tk +resthomejobs.com +restilogic.xyz +restingcamel.net +restnotes.com +restoemploi.com +restonstartups.com +restoran-panorama.ru +restoran-park.info +restoraninovisad.info +restorationcoffee.us +restorativedentistnearme.com +restore7education.org +restorefitnessplan.com +restorereligion.org +restoringreach.com +restudwimukhfian.com +restumail.com +restwin.com +restyourlife.org +result-api.shop +resultaat.marketing +resultaatmarketing.com +resultadodehoje.org +resultevent.ru +resume-minikurs.ru +resume.land +resumeshortly.com +resumeworks4u.com +resumewrite.ru +resurs-nn.com +resusskills.com +reswitched.team +resx.net +ret35363ddfk.cf +ret35363ddfk.ga +ret35363ddfk.gq +ret35363ddfk.ml +ret35363ddfk.tk +retail-readiness.com +retailadservices.com +retailer.report +retailingcbd.com +retailofferunion.host +retailr.org +retailreserve.com +retailscience.com +retailsolutionadvisors.com +retailswitching.com +retailtopmail.cz.cc +retajjgroup.com +retapps.biz +retapps.cloud +retarusblog.com +retep.com.au +rethmail.ga +rethynkaus.com +retinaeyehealth.com +retinaonlinesure.com +retinaprime.com +retireddatinguk.co.uk +retirementandincomeacademy.com +retirementhomefinder.org +retirementhomelocator.com +retirementhomestoday.com +retkesbusz.nut.cc +retlayrei.ga +retlayrei.gq +retlayrei.ml +retlayrei.tk +retnooktapratama.me +retolatv.com +retourjustepourlefun.com +retqio.com +retractablebannerstands.interstatecontracting.net +retractablebannerstands.us +retragmail.com +retreatyourselfwell.net +retrewqa.online +retrmailse.com +retrocityarcade.net +retrocityarcade.org +retrojordansforsale.xyz +retrolith.xyz +retrolium.xyz +retropup.com +retroshare.online +retrt.org +retrubio.press +retsept18.ru +rettmail.com +return-on-insight.com +return0.ga +return0.gq +return0.ml +returnhealth.ru +returns-center.com +returnsify.com +retvtoday.com +reubidium.com +reuglenpet.cf +reuglenpet.gq +reuglenpet.ml +reuglenpet.tk +reunion-multimedia.com +reusablejutetotes.com +reusablenonwoventotes.com +rev-amz.xyz +rev-mail.net +rev-zone.net +rev-zone.xyz +revampdiaries.com +revarix.com +revault.net +revealbid.com +revealeal.com +revealeal.net +reveate.com +revechat.net +revelationsbotique.com +revelationschool.net +revelryshindig.com +revenge.vote +revengemc.us +revented.com +revenueads.net +revenueengineers.group +reverancevegas.com +reverbnationpromotions.com +reverenddanger.com +reversapal.com +reversed.photo +reversefone.com +reversefrachise.com +reversehairloss.net +reverseimage.photo +reversemortgage2020.com +reversetech.info +reverseyourdiabetestodayreview.org +reverze.ru +revhairproducts.com +revi.ltd +revieoo.com +review4bonus.net +review4forex.co.uk +reviewcasino.ru +reviewdrrichard.com +reviewedtv.com +reviewlately.com +reviewndecide.com +reviews-catalog.com +reviewsblog.org +reviewscasino.ru +reviewsforproduct.info +reviewsofhandbags.com +reviewsofpsychics.com +reviewtable.gov +revistaanabel.com +revistavanguardia.com +revivalstock.com +revive.bio +reviveherdriveprogram.com +revlive.me +revodac.site +revoltingdigits.com +revolunity.com +revolute-org.xyz +revoluthp.xyz +revolutionalgorithm.com +revolutionaryabolitionist.org +revolutionpowersolutions.online +revolvingdoorhoax.org +revreseller.com +revs-store.email +revstore.email +revstore.shop +revy.com +rew.team +rewalle.cf +rewalle.ga +rewalle.gq +rewalle.tk +rewardened.com +rewardenny.com +rewardents.com +rewardsforjustice.org +rewas-app-lex.com +reweo.site +rewet.com +rewinfetu.xyz +rewolt.pl +rewood.us +reword.press +rewqweqweq.info +rewrap.com +rewste.online +rewtorsfo.ru +rex-app-lexc.com +rex01.xyz +rex4sheriff16.com +rexagod-freeaccount.cf +rexagod-freeaccount.ga +rexagod-freeaccount.gq +rexagod-freeaccount.ml +rexagod-freeaccount.tk +rexagod.cf +rexagod.ga +rexagod.gq +rexagod.ml +rexagod.tk +rexburgwebsites.com +rexhuntress.com +rexuejianghusifu.com +reydonerkebabmalaga.com +reyw3.us +reyzor.com +rezablog.com +rezadrese.live +rezaz.live +rezendeco.com +rezepi.info +rezistyle.com +reznickabasta.com +rezolventa.ru +rezumenajob.ru +rf7gc7.orge.pl +rfactorf1.pl +rfavy2lxsllh5.cf +rfavy2lxsllh5.ga +rfavy2lxsllh5.gq +rfavy2lxsllh5.ml +rfc822.org +rfd-mauritanie.org +rfdlsmkx.shop +rfgt.ga +rfgym.ru +rfirewallj.com +rfjrx1.info +rfkstm.icu +rfm-analysis.com +rfreedomj.com +rfsa8h-mail.xyz +rftix.fun +rftt.de +rfuvault.com +rfvqi.us +rfx2h.us +rfxe.us +rfzaym.ru +rgames.us +rgarch.info +rgb9000.net +rgbwinkel.shop +rgcincy.com +rgcufu.icu +rgdoubtdhq.com +rggmtoxv.tech +rgjae5.best +rgmedianetwork.com +rgmediapartners.com +rgoponga.cf +rgoponga.gq +rgoponga.tk +rgostabbet.xyz +rgphotos.net +rgrocks.com +rgtvtnxvci8dnwy8dfe.cf +rgtvtnxvci8dnwy8dfe.ga +rgtvtnxvci8dnwy8dfe.gq +rgtvtnxvci8dnwy8dfe.ml +rgtvtnxvci8dnwy8dfe.tk +rgwefascvxcb1.ru +rgwefascvxcb2.ru +rgwfagbc9ufthnkmvu.cf +rgwfagbc9ufthnkmvu.ml +rgwfagbc9ufthnkmvu.tk +rgxuty.site +rh0d1um.online +rh0d1um.org +rh3qqqmfamt3ccdgfa.cf +rh3qqqmfamt3ccdgfa.ga +rh3qqqmfamt3ccdgfa.gq +rh3qqqmfamt3ccdgfa.ml +rh3qqqmfamt3ccdgfa.tk +rhabne.us +rhapsodytakeaway.com +rhatra.com +rhause.com +rhcassist.com +rhdxzn.top +rheamonique.com +rheank.com +rheeebstore.com +rheophile.site +rheotaxis.site +rheumview.com +rhexis.xyz +rhianelycia.com +rhindp.site +rhinoplastynashville.com +rhizoma.com +rhn0hg.us +rhnqxt.site +rho44.com +rhodecoders.online +rhodeislandquote.com +rhodium.llc +rhodiumgroup.llc +rhombushorizons.com +rhondaperky.com +rhondawilcoxfitness.com +rhone-alpes-tourisme-hebergements.com +rhotacism.xyz +rhouseh.shop +rhpzrwl4znync9f4f.cf +rhpzrwl4znync9f4f.ga +rhpzrwl4znync9f4f.gq +rhpzrwl4znync9f4f.ml +rhpzrwl4znync9f4f.tk +rhrrsbqp.shop +rhubgrmq.shop +rhumbrun.com +rhumworld.com +rhvsxf.us +rhymon.com +rhystrade.com +rhyta.com +rhythbagza.cf +rhythbagza.ga +rhythbagza.gq +rhythbagza.ml +rhythbagza.tk +rhythmerp.com +rhythmflex.org +rhzla.com +ri688.com +ri9lhx.us +riabervie.cf +riabervie.ga +riabervie.ml +riabervie.tk +riacomponents.com +rialisis.cf +rialisis.ga +rialisis.gq +rialisis.ml +rialisis.tk +riamitpo.cf +riamitpo.ga +riamitpo.gq +riamof.club +riaquili.cf +riaquili.ml +riaquili.tk +riarotta.cf +riarotta.ga +riarotta.gq +riarotta.ml +riarysem.cf +riarysem.ga +riarysem.gq +riarysem.ml +riarysem.tk +riasdevil.graphics +riasporem.cf +riasporem.gq +riasporem.ml +riaucyberart.ga +riavisoop.cf +riavisoop.ga +riavisoop.ml +riavisoop.tk +riaviva63.com +riazika.com +riba-4ok.ru +riba-stillorgan.com +ribalka-info.ru +ribenhao.com +ribenjia.com +ribenjiameng.com +ribenpu.com +ribenre.com +ribenshanghui.com +ribentu.com +ribenwo.com +ribenzhaoshang.com +ribenzhifu.com +ribetier.com +ribo.com +riboflavin.com +ricardojarma.com +ricarice.shop +riccardobrinkman.online +ricelandtakeaway.com +riceshopasian.com +rich-mail.net +rich-money.pw +rich-rp.com +rich-sk.com +rich-town.site +richard.salon +richardbenesti.com +richardlivolsi.com +richardpauline.com +richardsonpersonalinjury.com +richardtoon.net +richardyoung55places.com +richday.xyz +richdi.ru +riches111.com +riches222.com +riches333.com +riches567.com +riches789.com +richestweb.com +richesxo.com +richfinances.pw +richfunds.pw +richinssuresh.ga +richlyscentedcandle.in +richmondcosmeticsurgery.com +richmondhairsalons.com +richmondindepotdistrict.com +richmondlaundry.com +richmondnailsalons.com +richmondpride.org +richmondquote.com +richmondvadogtrainer.com +richmoney.pw +richonedai.pw +richpoker88.org +richsmart.pw +richtoon.lawyer +richtoon.net +richtoon.org +richtoonlaw.com +ricimail.com +ricirich22.com +rick-buyshouses.com +rick.properties +rickbenavidessellshomes.com +rickbuys.house +rickbuys.properties +rickcarhart.com +rickiemetal.com +rickifoodpatrocina.tk +rickmoriarity.com +rickpaquin.com +rickpropertiesllc.com +ricks-properties.com +ricks.plumbing +ricksfund.com +rickshawchinesetakeaway.com +rickspropertiesllc.com +rickthorpefund.org +rickyinthepark.com +rickymetal.com +rickysfundamentals.com +rickztah.best +rico.cool +ricret.com +ricrk.com +ridaky.cf +ridaky.gq +ridaky.ml +ridaky.tk +riddermark.de +riddle.media +riddle.store +riddle.tel +ride-tube.ru +ridebali.com +rideclickbas.com +ridepple.cf +ridepple.ga +ridepple.gq +ridepple.ml +ridepple.tk +riderannintgeb.space +ridesharedriver.org +ridetexasbrand.com +ridethechain.com +ridgeado.xyz +ridgeleyig.org +ridgevide.fun +ridgewoodfrontporch.com +ridicom.ru +ridingonthemoon.info +ridpaisess.cf +ridpaisess.ga +ridpaisess.gq +ridwabar.ga +ridwabar.gq +ridwabar.ml +riecrimal.cf +riecrimal.ga +riecrimal.gq +riecrimal.ml +riecrimal.tk +riel5.ru +rielunu.cf +rielunu.gq +rielunu.ml +rielunu.tk +riemsi.space +riewonmo.cf +riewonmo.gq +rif-ramarew.ru +riffcat.eu +rifkian.cf +rifkian.ga +rifkian.gq +rifkian.ml +rifkian.tk +rifo.ru +rifone.online +rigedeers.cf +rigedeers.ga +rigedeers.ml +rigedeers.tk +rigel6.com +right-leftempire.com +rightbank.org +rightbet1a.pro +rightca.email +rightclaims.org +righteb.com +righteous.exchange +righteous.live +rightexch.com +rightheapun.cf +rightheapun.ga +rightheapun.gq +rightheapun.ml +rightheapun.tk +righthirlo.cf +righthirlo.gq +righthirlo.ml +rightmom.net +rightnownotes.com +rightonfact.rest +rightput.com +rightsh.xyz +rigolo.ru +rigormentorslang.site +rigtmail.com +rihis.org +rijschoolcosma-nijmegen.nl +rik-morty.ru +rika-santila.ru +rika0525.com +rikekvinner.com +rikka-weaka.ru +riko.site +rikputs.space +riks1337.site +rilholding.net +rilholding.org +rilingna.cf +rilingna.ga +rilingna.gq +rilingna.ml +rillamail.info +rilohaf.ga +rilohaf.gq +rilohaf.ml +rim7lth8moct0o8edoe.cf +rim7lth8moct0o8edoe.ga +rim7lth8moct0o8edoe.gq +rim7lth8moct0o8edoe.ml +rim7lth8moct0o8edoe.tk +rimbapoker.live +rimmerworld.xyz +rimonabant.website +rimoralliance.info +rims.rocks +rin71.space +rinaddresmo.com +rincewind4.pl +rincewind5.pl +rincewind6.pl +rindupoker.com +ring123.com +ringier.tech +ringobaby344.cf +ringobaby344.ga +ringobaby344.gq +ringobaby344.ml +ringobaby344.tk +ringobot.ru +ringofyourpower.info +ringtoneculture.com +ringwesttran.ga +ringwesttran.gq +ringwesttran.ml +ringwesttran.tk +ringwormadvice.info +rinheverci.site +rinit.info +rinito.cf +rinito.gq +rinito.ml +rinota.cf +rinota.ga +rinota.gq +rinota.ml +rinota.tk +rintisus.cf +rintisus.ga +rintisus.gq +rintupo.cf +rintupo.gq +rintupo.ml +rintupo.tk +rio66.online +rioadgqn.shop +riobeli.com +riobeli.ga +riobet-casino.best +riobet.cyou +riobetpromokod1.ru +rioclub.site +riodejaneironews.site +riogoj.tech +riojaqvkl.space +riomaglo.cf +riomaglo.ga +riomaglo.gq +riomaglo.tk +riopiwatch.cf +riopiwatch.ga +riopiwatch.gq +riopiwatch.ml +riopromun.cf +riopromun.gq +riopromun.ml +riopromun.tk +riorovi.cf +riorovi.gq +riorovi.ml +riotap.com +riotel.xyz +riotesli.ga +riotesli.ml +riotesli.tk +riotete.cf +riotete.ga +riotete.ml +riotete.tk +riotlogwong.cf +riotlogwong.ga +riotlogwong.gq +riotlogwong.tk +rioveli.cf +rioveli.ga +rioveli.ml +rioveli.tk +ripioutlets.site +ripiste.cf +ripiste.ga +ripiste.gq +ripiste.tk +ripoepa.space +ripohand.cf +ripohand.gq +ripohand.ml +ripohand.tk +ripozoi9.online +rippadakidmusic.com +ripparewards.net +rippedabs.info +rippinw.fun +riqsiv.site +ririe.club +risbobi.cf +risbobi.ga +risbobi.gq +risbobi.ml +risbobi.tk +rise.de +risencraft.ru +risesturizm.online +risesturizm.xyz +rising-phoenix-takeaway.com +risingbengal.com +risingsuntouch.com +riski.cf +riskobscurity.com +riskwriterexpress.com +ristorantelafattoria.info +ristoranteparodi.com +ristorantepizzeriadamarc.com +ristoranteromanocork.com +risu.be +ritacadiz.com +ritade.com +ritadecrypt.net +ritahouse.co +ritalinus.site +ritamt2.xyz +riteros.top +ritighpi.cf +ritighpi.ga +ritighpi.gq +ritighpi.tk +ritoper.ml +ritsonoptical.com +ritualhwdz.space +ritualkisdj.email +ritugon.host +ritun.xyz +riujnivuvbxe94zsp4.ga +riujnivuvbxe94zsp4.ml +riujnivuvbxe94zsp4.tk +riukafo.cf +riukafo.ga +riukafo.ml +riulandtv.site +riut.ru +riuyt.com +riv3r.net +rival-abroad.xyz +rivalbox.com +rivalbox.info +rivalbox.net +rivaloo.com +rivalro.us +rivaz24.ru +river-branch.com +riveramail.men +riverbendsportsbar.com +rivercityferries.com +rivercityhomespot.club +riverdale.club +riverha.press +rivermarine.org +riverob.press +riverpu.xyz +riverpun.xyz +riverpunc.xyz +riverregionfood.org +riverridgepg.com +riverrunweaving.com +riversidebaitruong.com +riversidecapm.com +riversidehoteldominica.com +riversideinjurylawyers.com +riversidenailsalons.com +riversidequote.com +rivertondoctors.com +rivervalleyrep.com +riverview-takeaway.com +riverviewanimal.net +riverviewcontractors.com +rivierawellnessretreat.org +rivimeo.com +riw1twkw.pl +rixcloud00010.xyz +rixcloud00040.xyz +rixcloud00050.xyz +rixcloud00080.xyz +rixcloud00090.xyz +rixos.media +rixoscasino36.com +rixoscasino37.com +rixoscasino38.com +riytita.cf +riytita.gq +riytita.ml +riytita.tk +riywelctrig.cf +riywelctrig.ml +riywelctrig.tk +rizadr.xyz +rizamail.com +rizberk.com +rizberkcloud.com +rizberkserviscloud.com +rizedance.com +rizeligencler.com +rizeligencler.xyz +rizeliguney.xyz +rizemobese.com +rizet.in +rizhaohong.com +rizisowa.site +rj-11.cf +rj-11.ga +rj-11.gq +rj-11.ml +rj-11.tk +rj11.cf +rj11.ga +rj11.gq +rj11.ml +rj11.tk +rj2tpm.us +rj7zmu.us +rjbemestarfit.host +rjbemestarfit.site +rjbtech.com +rjcfu0.best +rjclctin.tech +rjdwpxykkv.fun +rjfencesandgates.com +rjjsz.live +rjkl.us +rjmerah.com +rjof.info +rjolympics.com +rjopoker88.com +rjopoker88.net +rjpqnu.site +rjxewz2hqmdshqtrs6n.cf +rjxewz2hqmdshqtrs6n.ga +rjxewz2hqmdshqtrs6n.gq +rjxewz2hqmdshqtrs6n.ml +rjxewz2hqmdshqtrs6n.tk +rk03.xyz +rk0fd.info +rk2w4c.us +rk4vgbhzidd0sf7hth.cf +rk4vgbhzidd0sf7hth.ga +rk4vgbhzidd0sf7hth.gq +rk4vgbhzidd0sf7hth.ml +rk4vgbhzidd0sf7hth.tk +rk5dfj-mail.xyz +rk9.chickenkiller.com +rkbxm1.site +rkcmfn.fun +rkdmjz.fun +rkhmjl.fun +rkhmqh.fun +rkjaufps.shop +rkjmwy.fun +rkkmsp.fun +rklips.com +rko.kr +rkofgttrb0.cf +rkofgttrb0.ga +rkofgttrb0.gq +rkofgttrb0.ml +rkofgttrb0.tk +rkomo.com +rkrmjk.fun +rktp.dev +rktwm.club +rkwdpa.com +rkwmhn.fun +rkxmhk.fun +rkympw.fun +rl425u.live +rl513a.live +rl75me8c.site +rlax.us +rlgzk.live +rlkwud.us +rlodvh.us +rloiua.icu +rlqjr8.info +rlrrcj.site +rls-log.net +rlubag.site +rlw999.com +rm-law.org +rm-tour.ru +rm2rf.com +rm7d3rzx.xyz +rm88.edu.bz +rma.ec +rmail.cf +rmailcloud.com +rmailgroup.in +rmakbe.best +rmas0.us +rmaudience.com +rmcecommerce.online +rmcp.cf +rmcp.ga +rmcp.gq +rmcp.ml +rmcp.tk +rmjd3z-mail.xyz +rmmakw.rest +rmnt.net +rmoaz.live +rmocybsl7.space +rmocybsl7.website +rmocybsl7.xyz +rmomail.com +rmorin.com +rmpc.de +rmpropane.com +rmqkr.net +rmr5na.us +rms-sotex.pp.ua +rmsql.info +rmtbgn.site +rmtmarket.ru +rmtvip.jp +rmtvipbladesoul.jp +rmtvipredstone.jp +rmwluudf.shop +rmwndknfo.shop +rmx-hmsstaging.com +rmxsys.com +rnabr.com +rnailinator.com +rnakmail.com +rnc69szk1i0u.cf +rnc69szk1i0u.ga +rnc69szk1i0u.gq +rnc69szk1i0u.ml +rnc69szk1i0u.tk +rnd-nedv.ru +rnd7e.us +rndoz2.com +rnewstabilbettingsnapp.xyz +rng.one +rnghlfwp.shop +rnh71.space +rniab.us +rnjc8wc2uxixjylcfl.cf +rnjc8wc2uxixjylcfl.ga +rnjc8wc2uxixjylcfl.gq +rnjc8wc2uxixjylcfl.ml +rnjc8wc2uxixjylcfl.tk +rnm-aude.com +rnohnp.com +rnstage-sale.info +rnwlqu.com +rnydx.us +rnzcomesth.com +ro-dev.online +ro-na.com +ro.lt +ro6b3.us +road2recovery.online +road66.xyz +roadcasinogam.ru +roadigraavertu.ru +roadkingoutdoor.com +roadmataqz.space +roadshowdahua.com +roahenself.cf +roahenself.ga +roahenself.ml +roamvegas.com +roanawel.cf +roanawel.ga +roanawel.gq +roanawel.ml +roanawel.tk +roar.capital +roargame.com +roaring.pro +roaringteam.com +roastedtastyfood.com +roastermachines.org +roastortoast.us +roastpig.app +roastscreen.com +roawintio.cf +roawintio.gq +roawintio.tk +rob4sib.org +robaxin.website +robbogans.info +robbolahta.ru +robchicly.com +robedesoiree-longue.com +robentowels.com +robergwo.gq +robergwo.ml +robergwo.tk +robertdipietro.com +robertiazx.ru +robertmowlavi.com +robertodure.tech +robertos-takeaway-louth.com +robertspcrepair.com +robind.dev +robink.info +robink.us +robinkikuchi.info +robinkikuchi.us +robinpenceimages.com +robinsnestfurnitureandmore.com +robinsonyablon.com +robinzonshop.ru +robkanass.ml +robkanass.tk +robkrop.land +robmita.cf +robmita.ga +robmita.gq +robmita.ml +robmita.tk +robmorgblack.com +robo-opus.com +robo.epool.pl +robo.poker +robo3.club +robo3.co +robo3.me +robo3.site +roboku.com +robolovers.ru +robomart.net +robonx.com +robot-alice.ru +robot-mail.com +robot2.club +robot2.me +robotappstore.info +robotbobot.ru +robotent.org +robothorcrux.com +roboticflowerpot.com +robotichomecenter.com +robotickee.com +roboticpenguina.com +robotinc.net +robotizes167vl.online +robotjobs.org +robotodo.ru +robox.agency +robsden.info +robsradio.com +robufo.info +robytoy.com +rocanoapp.ru +roccard.com +roccas-takeaway.com +rocco.zapto.org +roccoshmokko.com +rochelleskincareasli.com +rochesterquote.com +rochin-diamantes.com +rochmeve.cf +rochmeve.ga +rochmeve.gq +rochmeve.ml +rochmeve.tk +rochwitesepticsystemsllc.com +rocibou.cf +rocibou.ga +rocibou.gq +rocibou.ml +rocibou.tk +rockabubz.com +rockandrollglossary.com +rockdalerodandgunclub.online +rockdaleumc.org +rockdunna.cf +rockdunna.gq +rockdunna.ml +rockdunna.tk +rocket201.com +rocketfuelforyourbrain.rocks +rockethosting.xyz +rocketleague-team.com +rocketmail.cf +rocketmail.ga +rocketmail.gq +rocketscienceskincare.com +rocketshipstudio.net +rocketslotsnow.co +rocketspark.app +rocketspinz.co +rockfordnailsalons.com +rockhamptonworkshops.com +rockhillcareers.com +rockingchair.com +rockislandapartments.com +rockkes.us +rockmail.top +rockmailapp.com +rockmailgroup.com +rockofagesranch.org +rockpooldiningroup.com +rockport.se +rocksmartlink.site +rockstarkelly.com +rocktheheads.com +rocktoberfishing.org +rockwithyouallnight23.com +rockwoolstock.ru +rockyboots.ru +rockymountainscottierescue.org +rockyoujit.icu +rockypointfamilydentist.net +rockytheraccoon.com +rockzoppten.cf +rockzoppten.ga +rockzoppten.gq +rockzoppten.ml +rockzoppten.tk +rocoiran.com +rocord.website +rodapoker.xyz +rodax-software.online +roddrodden.com +rodduh.ru +roderina.com +rodeslava.ru +rodewayinnmuskogee.com +rodfirearms.com +rodionder63.ru +rodiquez.eu +rodiquezmcelderry.eu +rodjohnsonswienershack.net +rodjohnsonwienershack.com +rodneystudios.com +rodneywebb2023.com +rodneywebb2024.com +rodniedveri.ru +rodriguealcazar.com +rodrunner.ru +rodsupersale.com +rodtookjing.com +rodumre.gq +rodumre.ml +rodumre.tk +roduret.site +rodwhifa.cf +rodwhifa.ga +rodwhifa.ml +rodwhifa.tk +rodzinnie.org +roegegna.cf +roegegna.ga +roegegna.tk +roetrisjohn.cf +roetrisjohn.ga +roetrisjohn.gq +roetrisjohn.ml +roewe.cf +roewe.ga +roewe.gq +roewe.ml +rofacme.cf +rofacme.gq +rofacme.ml +rofacme.tk +rogacomp.cf +rogacomp.ga +rogacomp.gq +rogacomp.ml +rogacomp.tk +rogapartsllc.com +rogeoi.xyz +roger-leads.com +rogerbradburyphotography.com +rogerin.space +rogerleighton.com +rogermorerocks.com +rogerwisor.com +rogge.best +rogjf.com +rogowiec.com.pl +rogpasimp.cf +rogpasimp.ga +rogpasimp.gq +rogpasimp.ml +rogpasimp.tk +rogswtdiv.cf +roguebytes.com +roguesec.net +roguesec.org +roguewavecoffee.com +roguewaveroasting.com +rohandoge.ml +rohingga.xyz +rohkalby.com +roi50.ru +roi70.ru +roidmass.com +roigiayto.website +roikased.ga +roilibhindmil.site +roiturater.tk +rojadirecta.best +rojay.fr +rojolag.com +rojomorgan.com +roketus.com +rokko-rzeszow.com +roko-koko.com +rokoktoto.net +rokpa.cd +roksbahis61.online +roksbahis61.xyz +roksbahis79.com +roksbahis82.com +rokucollection.com +rokzrdprvt.space +rolex19bet.com +rolex31bet.com +rolexbahis.com +rolexdaily.com +rolexok.com +rolexpoker88.asia +rolexreplicainc.com +rolexreplicawatchs.com +rolipic.site +rollagodno.ru +rollegal.site +rollerbrush.org +rollerbrushes.net +rollercover.org +rollercover.us +rollercovers.net +rollercovers.us +rollerlaedle.de +rollh4.live +rollh49.live +rollindo.agency +rolling-discs.ru +rollingboxjapan.com +rollingvase.com +rollsroyce-plc.cf +rollsroyce-plc.ga +rollsroyce-plc.gq +rollsroyce-plc.ml +rollsroyce-plc.tk +rolndedip.cf +rolndedip.ga +rolndedip.gq +rolndedip.ml +rolndedip.tk +rolne.seo-host.pl +rolorin.space +rolva.net +rolvh.us +roma-clondalkin.com +roma-drogheda.com +roma-fish-chips.com +roma-takeaway.com +romabeto.xyz +romabetz.xyz +romaclondalkin.com +romagnabeach.com +romail9.com +romails.net +romaitaliantakeaway.com +romana.site +romaneibdo.xyz +romanfitnesssytems.com +romania-nedv.ru +romania-news.space +romaniansalsafestival.com +romanibm.site +romanibv.site +romanict.site +romanidd.site +romanidq.site +romanies.site +romanstatues.net +romanticizing335sg.online +romanticsgarden.com +romantiskt.se +romantyczka.pl +romanvstihah.site +romareusa.ru +romasense.ru +rombertoni.ru +rombs.site +romecapitol.org +romeesat.com +romemcguigan.com +romeotourism.com +romeoturizm.com +romeovilleapartments.com +romforyous.info +romloader.ru +romul.xyz +ronabuildingcentre.com +ronadecoration.com +ronadvantage.com +ronahomecenter.com +ronahomegarden.com +ronaksoft.ml +ronalansing.com +ronaldperlman.com +ronalerenovateur.com +ronbennettmemorialfund.org +rondecuir.us +ronell.me +rongcai23.icu +rongchuang-pz.com +rongqi33.com +rongs2gw.com +rongs2yl.com +rongwei-organic.com +roninmt2.com +roninmt2.xyz +ronipidp.cf +ronipidp.ga +ronipidp.gq +ronnierage.net +ronstasmoove.com +ronter.com +ronvfiuj.shop +roodrc.tk +roodrcethernlman.cf +roodrcethernlman.ml +roof99dollars.com +roofcleanermd.com +roofing4.expresshomecash.com +roofingcontractormassachusetts.com +roofsninetyninedollars.com +roofter.com +rooftest.net +roofwashmd.com +room369.red +roomka.online +roomservicemassage.com +roomy-hostel.ru +rooqie.com +rooseveltmail.com +rooster-pil-pil-ballincollig.com +rooststellarsmelt.site +root-servers.site +rootbrand.com +rootdz.com +rootednnature.biz +rootfest.net +rootlocus.net +rootmoney05.icu +roots31.ru +rootsfarmllc.net +rootsfarmllc.org +roozjame.com +roozu.xyz +ropgoraws.cf +ropgoraws.ga +ropgoraws.ml +ropgoraws.tk +rophievisioncare.com +ropolo.com +roqcast.club +rorarbeten.se +rosaceans.info +rosadvocati.ru +rosakaa.com +rosbelmash.ru +rose-garden-finglas.com +rose-law.biz +rose2.ga +rosebear21.ru +rosebearmylove.ru +rosechina.com +rosegarden-chinese.com +rosejellyyoga.com +roselism.com +roseltorg-info.ru +roselug.org +rosendalerapids.com +rosendalerapids.net +roseofwind.ru +rosepokers.com +rosetrimmers.com +rosewoodguild.com +roshaveno.com +rosiemorton.buzz +roskaltprec.cf +roskaltprec.ga +roskaltprec.ml +roskaltprec.tk +roslit.pro +roslit.site +rosmillo.com +rosnefl.ru +rospravosudie.info +rosreestr-50.ru +rosreestr-77.ru +rossa-art.pl +rossmail.ru +rossminer.online +rossminzdrav.site +rosso.ml +rossocorso.online +rossowoodfiredpizza.com +rosspenman.com +rostov862.ru +roswelltransmissions.com +rot3k.com +rotadrs.info +rotakurumsal.xyz +rotaniliam.com +rotaparts.com +rotaract2420.net +rotarybrush.biz +rotarybrush.us +rotarybrushes.org +rotarybrushes.us +rotarycampenterprise.org +rotate.pw +rotecproperty.xyz +rotermail.com +roth-group.com +rothesayrepair.com +rothschildsbeware.vision +rotingchi.ga +rotingchi.gq +rotingchi.ml +rotingchi.tk +rotiyu1-privdkrt.press +rotiyu1-privdkrt.space +rotiyu1-privdkrt.website +rotmanventurelab.com +rotmiss.com +rotrpg.com +rotterdamdevelopers.online +rottingdean.property +rotulosonline.site +rotupush.com +rou.us +rou31.space +roughch.press +roughess.xyz +roughidioe.space +roughiv.email +roughlive.recipes +roughmout.email +roughreunitesmirk.site +roughvali.site +roujpjbxeem.agro.pl +roulette-megasystem.com +roulettecash.org +roulettesuperpieno.com +roumeans.com +roundbrush.net +roundbrushes.org +roundcessqah.cf +roundcessqah.ga +roundcessqah.ml +roundclap.fun +roundclean.fun +roundhouseaquarium.com +roundlayout.com +roundpolik.ml +roundsnac.email +roundtabletechnology.info +roundtheweb.com +roundtowe.icu +rounduni.xyz +rousalmon.com +rout66.ru +routeegyptiansnack.site +routegogo.com +routesofsoul.net +routine4me.ru +routunner.com +rouverpa.ga +rouverpa.gq +rouverpa.ml +rouwbloemen.nu +rouyuba.xyz +rover.info +rover.org +rover100.cf +rover100.ga +rover100.gq +rover100.ml +rover100.tk +rover400.cf +rover400.ga +rover400.gq +rover400.ml +rover400.tk +rover75.cf +rover75.ga +rover75.gq +rover75.ml +rover75.tk +roverbedf.cf +roverbedf.ml +roverbedf.tk +rovesurf.com +rovianconspiracy.com +rovolowo.com +row.kr +rowantreepublishing.com +rowe-solutions.com +rowingbreak.com +rowingbreak.org +rowmin.com +rowmoja6a6d9z4ou.cf +rowmoja6a6d9z4ou.ga +rowmoja6a6d9z4ou.gq +rowmoja6a6d9z4ou.ml +rowmoja6a6d9z4ou.tk +rowntreewalks.org +rowrites.com +rowtaefo.site +rox-weelfree01.com +rox-weelfree02.com +roxcasinos1.ru +roxette.cd +roxmail.co.cc +roxmail.tk +roxtransit.com +roxz.app +roxz.bargains +roxz.best +roxz.blog +roxz.business +roxz.care +roxz.cash +roxz.chat +roxz.cheap +roxz.codes +roxz.company +roxz.coupons +roxz.deals +roxz.digital +roxz.discount +roxz.guru +roxz.link +roxz.live +roxz.money +roxz.ninja +roxz.party +roxz.pro +roxz.promo +roxz.review +roxz.reviews +roxz.rocks +roxz.sale +roxz.tips +royacupuncture.com +royal-centre.com +royal-host.su +royal-mali.art +royal-pay.ru +royal-soft.net +royal-spice-kilkenny.com +royal.net +royal70game.com +royalbetin49.com +royalbetin50.com +royalbetin51.com +royalbetin52.com +royalbetin53.com +royalbetin55.com +royalbetingiris1.xyz +royalbetingiris3.xyz +royalchocolatepalace.com +royalchocolatepalace.net +royalcitytakeaway.com +royalcoachbuses.com +royaldoodles.org +royale-dns.online +royalepizzaandburgers.com +royalflush.hk +royalflush128.live +royalgardenchinesetakeaway.com +royalgifts.info +royalgreencondosg.com +royalhost.info +royalhosting.ru +royalmail.top +royalmarket.club +royalmarket.life +royalmarket.online +royalnt.net +royalpizzaonline.com +royalpizzatakeaway.com +royalpresents.ru +royalpretendsnowy.site +royalranch.org +royalrosebrides.com +royalsgame.com +royalspicetakeaway.com +royaltangkas.xyz +royaltowerssanfrancisco202.com +royalvip.win +royalweb.email +royandk.com +royaumedesjeux.fr +royfeld.com +royfield.com +royinnandsuits.com +royprimaf.gq +royprimaf.ml +royprimaf.tk +roys.ml +royssbet1.xyz +royssbet10.com +royssbet8.com +roza-rouz.ru +roza-tmn.ru +rozadrevo.ru +rozanamarketing.com +rozaoils.site +rozavenok.ru +rozavk.ru +rozebet.com +rozkamao.in +rozwojosobisty.site +rp-attract.ru +rpaowpro3l5ha.tk +rpervahal.cf +rpervahal.tk +rpffn.com +rpfundingoklahoma.com +rpgitxp6tkhtasxho.cf +rpgitxp6tkhtasxho.ga +rpgitxp6tkhtasxho.gq +rpgitxp6tkhtasxho.ml +rpgitxp6tkhtasxho.tk +rpgkeronbeta.ru +rpgxxxgames.com +rphqakgrba.pl +rpkxsgenm.pl +rpl-id.com +rplid.com +rpm.social +rpmgmt.network +rpmleadgeneration.marketing +rpmleadgeneration.net +rppkn.com +rps-msk.ru +rpvduuvqh.pl +rpx12k.us +rq1.in +rq1h27n291puvzd.cf +rq1h27n291puvzd.ga +rq1h27n291puvzd.gq +rq1h27n291puvzd.ml +rq1h27n291puvzd.tk +rq4oid.us +rq6668f.com +rqaxih.com +rqhpce.us +rqjjf.live +rqlrf.com +rqmtg.com +rqt8bw.info +rqu.us +rqvph.site +rqzuelby.pl +rr-0.cu.cc +rr-1.cu.cc +rr-2.cu.cc +rr-3.cu.cc +rr-ghost.cf +rr-ghost.ga +rr-ghost.gq +rr-ghost.ml +rr-ghost.tk +rr-group.cf +rr-group.ga +rr-group.gq +rr-group.ml +rr-group.tk +rr.ccs.pl +rr18269.com +rr57822.com +rr7665.com +rr9827.com +rraecohouse.co +rrasianp.com +rrasinstar.cf +rrasinstar.ga +rrasinstar.tk +rraybanwayfarersaleukyj.co.uk +rrbonmrrt.shop +rrc6lf.info +rrckefu.site +rremontywarszawa.pl +rrilnanan.gq +rrilnanan.tk +rrjpwb.us +rrkk99.com +rrkvacanthomes.com +rrocket.ru +rrosesarered.com +rrq.us +rrqkd9t5fhvo5bgh.cf +rrqkd9t5fhvo5bgh.ga +rrqkd9t5fhvo5bgh.gq +rrqkd9t5fhvo5bgh.ml +rrqkd9t5fhvo5bgh.tk +rrr062.com +rrr1004.com +rrr813.com +rrragz5.best +rrrcat.com +rrwbltw.xyz +rrxnt.com +rs-76.ru +rs-p.club +rs2gw.com +rs2gwzc.com +rs311e8.com +rs9i4.us +rsaw68.info +rsbersbe.shop +rsbetter20.xyz +rsbysdmxi9.cf +rsbysdmxi9.ga +rsbysdmxi9.gq +rsbysdmxi9.ml +rsbysdmxi9.tk +rsco.email +rsefinepics.com +rseryl-sy.com +rsf.world +rsfdgtv4664.cf +rsfdgtv4664.ga +rsfdgtv4664.gq +rsfdgtv4664.ml +rsfdgtv4664.tk +rsgkefu.online +rsgkefu.site +rshdjg.icu +rsjp.tk +rsma.de +rsmix.ru +rsnapbet2020.xyz +rsnfoopuc0fs.cf +rsnfoopuc0fs.ga +rsnfoopuc0fs.gq +rsnfoopuc0fs.ml +rsnfoopuc0fs.tk +rsnwachg.tech +rsprd.com +rsqaat.site +rsqqz6xrl.pl +rsqytx.com +rssblog.pl +rssbt.com +rssfwu9zteqfpwrodq.ga +rssfwu9zteqfpwrodq.gq +rssfwu9zteqfpwrodq.ml +rssfwu9zteqfpwrodq.tk +rssmtp.com +rsstao.com +rst-sec.com +rst-sec.net +rstabbettingsnapp.xyz +rstabbettsnupp2020.xyz +rstabetsnup.xyz +rstabetting.xyz +rstabilbett.xyz +rstabilbettsnapp.xyz +rstabilitybetsnapp.xyz +rstabilitybettingsnapp.xyz +rstsec.com +rsvhr.com +rsvpee.com +rswilson.com +rswoodwinds.info +rsworldsoftware.com +rsx.cash +rt58cq.us +rtard.com +rtb20.com +rtclogisticsmail.com +rtcxstore.com +rtechcrm.com +rtechmedia.com +rtert.org +rtfa.site +rtfb.site +rtfc.site +rtfd.site +rtffzim.com +rtfh.site +rtfx.site +rthjr.co.cc +rthomellc.com +rtjg99.com +rtji9c.us +rtmhk.com +rtn37n.xyz +rtotlmail.com +rtotlmail.net +rtpcornpany.com +rtr6nj.info +rtrtr.com +rts137.com +rts6ypzvt8.ga +rts6ypzvt8.gq +rts6ypzvt8.ml +rts6ypzvt8.tk +rtsauth.shop +rtskiya.xyz +rtstyna111.ru +rtstyna112.ru +rtvregion.ru +rtyreszxl.ru +ru-api-id-dns-cgi-bin.ru +ru-casinos.com +ru-emailru.host +ru-emailru.online +ru-from.site +ru-id23907.xyz +ru-in.xyz +ru-inbox.fun +ru-loan.ru +ru-mail.website +ru-wargamming-net.icu +ru-wargarning.net +ru.coffee +ru1.site +ru196595463.ru +ru4kav.site +ruafdulw9otmsknf.cf +ruafdulw9otmsknf.ga +ruafdulw9otmsknf.ml +ruafdulw9otmsknf.tk +ruallnews.ru +ruangbagus.com +ruangjawa.com +ruasspornisn4.uni.cc +ruay016.com +ruay028.com +ruay046.com +ruay047.com +ruay048.com +ruay053.com +ruay055.com +ruay061.com +ruay070.com +ruay076.com +ruay084.com +ruay089.com +ruay090.com +ruay105.com +ruay108.com +ruay116.com +ruay117.com +ruay127.com +ruay134.com +ruay147.com +ruay149.com +ruay151.com +ruay152.com +ruay156.com +ruay166.com +ruay175.com +ruay184.com +ruay185.com +ruay187.com +ruay189.com +ruay194.com +ruay196.com +ruay200.com +ruay206.com +ruay219.com +ruay220.com +ruay235.com +ruay244.com +ruay247.com +ruay272.com +ruay278.com +ruay283.com +ruay292.com +ruay301.com +ruay305.com +ruay307.com +ruay314.com +ruay315.com +ruay326.com +ruay332.com +ruay337.com +ruay341.com +ruay342.com +ruay353.com +ruay358.com +ruay362.com +ruay369.com +ruay372.com +ruay376.com +ruay386.com +ruay399.com +ruay406.com +ruay407.com +ruay412.com +ruay415.com +ruay418.com +ruay419.com +ruay420.com +ruay430.com +ruay431.com +ruay436.com +ruay437.com +ruay457.com +ruay465.com +ruay472.com +ruay478.com +ruay479.com +ruay480.com +ruay482.com +ruay490.com +ruay493.com +ruay497.com +ruay500.com +ruay503.com +ruay504.com +ruay505.com +ruay506.com +ruay511.com +ruay513.com +ruay520.com +ruay521.com +ruay531.com +ruay533.com +ruay538.com +ruay547.com +ruay548.com +ruay550.com +ruay551.com +ruay552.com +ruay554.com +ruay566.com +ruay567.com +ruay569.com +ruay575.com +ruay576.com +ruay584.com +ruay591.com +ruay594.com +ruay595.com +ruay599.com +ruay608.com +ruay610.com +ruay613.com +ruay622.com +ruay623.com +ruay624.com +ruay630.com +ruay633.com +ruay639.com +ruay651.com +ruay652.com +ruay654.com +ruay656.com +ruay658.com +ruay659.com +ruay660.com +ruay662.com +ruay663.com +ruay669.com +ruay671.com +ruay676.com +ruay678.com +ruay679.com +ruay684.com +ruay688.com +ruay697.com +ruay702.com +ruay709.com +ruay710.com +ruay713.com +ruay714.com +ruay719.com +ruay723.com +ruay724.com +ruay725.com +ruay729.com +ruay733.com +ruay736.com +ruay739.com +ruay741.com +ruay746.com +ruay747.com +ruay748.com +ruay758.com +ruay763.com +ruay766.com +ruay775.com +ruay776.com +ruay780.com +ruay783.com +ruay787.com +ruay790.com +ruay791.com +ruay792.com +ruay793.com +ruay796.com +ruay797.com +ruay800.com +ruay805.com +ruay811.com +ruay812.com +ruay816.com +ruay818.com +ruay824.com +ruay828.com +ruay830.com +ruay831.com +ruay832.com +ruay834.com +ruay840.com +ruay842.com +ruay843.com +ruay845.com +ruay848.com +ruay851.com +ruay860.com +ruay870.com +ruay871.com +ruay874.com +ruay875.com +ruay876.com +ruay879.com +ruay883.com +ruay884.com +ruay885.com +ruay886.com +ruay895.com +ruay896.com +ruay898.com +ruay899.com +ruay901.com +ruay902.com +ruay908.com +ruay912.com +ruay913.com +ruay919.com +ruay924.com +ruay928.com +ruay929.com +ruay930.com +ruay937.com +ruay938.com +ruay940.com +ruay945.com +ruay948.com +ruay949.com +ruay953.com +ruay956.com +ruay965.com +ruay966.com +ruay969.com +ruay976.com +ruay977.com +ruay980.com +ruay984.com +ruay986.com +ruay988.com +ruay994.com +rubbank.ru +rubberbunnys.icu +rubbishmaestro.info +rubinetta.com +rubioproperties.com +rubiro.ru +rubitcoini.ru +rubro-59.com +ruby-keys.ru +ruby.business +rubyandbettysattic.com +rubyblogger.com +rubysec.org +rubystore.store +rucenrmf.shop +ruclawwzy3.xyz +rudelyawakenme.com +rudicle.xyz +rudimentapp.com +rudistettner.com +ruditnugnab.xyz +rudrapatna.com +rudybet76.com +rudybet92.com +rudymail.ml +rudysom.com +ruedeschaus.com +ruelite.ru +rueportcent.cf +rueportcent.ga +rueportcent.gq +ruetin.online +ruffrey.com +rufiysmbz.shop +rufoej.us +rugbyfixtures.com +rugbymov.icu +rugbytru.icu +rugedgrade.com +ruggedinbox.com +ruhdwb.us +ruhklasn.website +ruhq1o.us +ruhshe5uet547.tk +rui-yun.com +ruiheng.xyz +ruinnyrurrendmail.com +ruizsweet.com +rujhuk.us +ruk17.space +ruki-master.ru +rule.moscow +ruletka-online.ru +ruletkacsgo.com +rullezslots.ru +rulobet49.com +ruloli.com +rum-expert.com +rumbu.com +rumednews.site +rumgel.com +rumnrhythm.com +rumoney.club +rumorattic.us +rumorbrai.xyz +rumored562ws.online +rumorssalonaz.biz +rumorsto.xyz +rumpelhumpel.com +rumpelkammer.com +rumplenewskins.com +rumtos.info +rumuspoker.stream +rumweni.cf +rumweni.tk +run600.net +runalone.uni.me +runball.us +runballrally.us +runbhumi.club +runbhumi.live +rundablage.com +rundownsoftware.com +runeclient.com +runeclient.net +runelite.best +runemax.net +runemax.org +runews11.ru +runfoxyrun.com +runge-kutta.cf +runge-kutta.gq +runge-kutta.tk +runi.ca +runjoehalerun.com +runled-official.ru +runmail.club +runmail.info +runnersreference.com +running-mushi.com +running-shoes-for-men.com +runningdivas.com +runningreel.com +runninnqey.space +runonwords.com +runrunrun.net +runsarahrun.com +runyainvestments.com +runyaproperties.com +runyourmouthaboutit.com +runz.education +ruoleng.com +ruonion.su +ruorgs.ru +ruozhi.cn +rupay.space +rupayamail.com +rupe4ora.ru +rupeeathome.com +ruprom.info +ruptteco.cf +ruptteco.gq +ruptteco.ml +ruptteco.tk +rupya.info +rupya.xyz +ruqi.site +ruracgent.cf +ruracgent.ga +ruracgent.ml +ruracgent.tk +ruralrentals.net +ruralscreensorry.site +rurealjoe1.ru +ruru.be +rus-black-blog.ru +rus-flat.ru +rus-massaggio.com +rus-oonies.ru +rus-sale.pro +rusanplus.ru +rusdoc.xyz +rusecoflot.ru +rusellhobss.online +rusellhobss.site +rusgiftshop.com +rusgilcorporate.com +rush.ovh +rushdrive.com +rushingfeet.com +rushmails.com +rushmorekm.com +rushmotelm.com +rushotel24.ru +rushwarsgames.ru +rusita.ru +ruskaiw.pw +ruskasino.info +ruskovka.ru +ruslanneck.de +ruslantm.ru +ruslep.com +ruslot.site +rusmednews.ru +rusmotor.com +rusnewsfeed.ru +rusop.space +ruspalfinger.ru +ruspool.org +russ-samsung.ru +russ2004.ru +russell-technology.com +russellandnatasha.com +russellconstructionca.com +russelljohn.info +russellmail.men +russia-champion.ru +russia-future.site +russia-nedv.ru +russia-vk-mi.ru +russian-elka.ru +russianeditor.online +russianizba.ru +russianvolumesottawa.com +russianwebgirls.ru +russiarp04.online +russiaventura.com +russkovach.com +russmac.ml +russtavki.ru +rust-inside.ru +rust-kr.com +rustarticle.com +rustetoone.icu +rusticcel.com +rusticdecorstuff.com +rustinside.ru +rustoya.ru +rustrilca.gq +rustrilca.ml +rustrilca.tk +rustroigroup.ru +rusturistik.ru +rusturne.ru +rustydoor.com +rusvet.org +rusvideos.su +rusvidos.online +rusvisit.ru +rutafagre.ru +rutale.ru +ruthann.best +rutherfordium.best +ruthservicios.net +rutracker.moscow +rutv.site +ruu.kr +ruvidrink.com +ruvidrinks.com +ruvifood.com +ruvinow.com +ruvinutrition.com +ruwe.site +ruyadasarilmak.com +ruzavod.ru +ruzsbpyo1ifdw4hx.cf +ruzsbpyo1ifdw4hx.ga +ruzsbpyo1ifdw4hx.gq +ruzsbpyo1ifdw4hx.ml +ruzsbpyo1ifdw4hx.tk +ruzzinbox.info +rv-br.com +rv.storage +rvawomensjournal.com +rvb.ro +rvbspending.com +rvctf.com +rvdogs.com +rvemold.com +rviixj.us +rvjtudarhs.cf +rvjtudarhs.ga +rvjtudarhs.gq +rvjtudarhs.ml +rvjtudarhs.tk +rvkazino.com +rvlatinamerica.com +rvrentalsatlanta.org +rvrentalsinatlanta.com +rvrsemortage.bid +rvslideout.com +rvspedals.com +rvstep.com +rvtiaqwf.shop +rvwt4s.us +rvx9p.us +rvxwdz.site +rw0vps.com +rw24.de +rw9.net +rward.se +rwbktdmbyly.auto.pl +rwhhbpwfcrp6.cf +rwhhbpwfcrp6.ga +rwhhbpwfcrp6.gq +rwhhbpwfcrp6.ml +rwhhbpwfcrp6.tk +rwhpr33ki.pl +rwinner2020emailup.xyz +rwww1.buzz +rx-seer.com +rx.dred.ru +rx.qc.to +rxbagimprints.com +rxbuy-pills.info +rxcbilling.com +rxdoc.biz +rxdrugsreview.info +rxdtlfzrlbrle.cf +rxdtlfzrlbrle.ga +rxdtlfzrlbrle.gq +rxdtlfzrlbrle.ml +rxlakbrw.site +rxlur.net +rxmail.us +rxmail.xyz +rxmaof5wma.cf +rxmaof5wma.ga +rxmaof5wma.gq +rxmaof5wma.ml +rxmaof5wma.tk +rxmedic.biz +rxnts2daplyd0d.cf +rxnts2daplyd0d.ga +rxnts2daplyd0d.gq +rxnts2daplyd0d.tk +rxpil.fr +rxpiller.com +rxpillstore.biz +rxr6gydmanpltey.cf +rxr6gydmanpltey.ml +rxr6gydmanpltey.tk +rxtmk.us +rxtx.us +ryan-wood.ru +ryan1home.buzz +ryanandkellywedding.com +ryanb.com +ryanhumphries.dev +ryanlackey.org +ryanlester.name +ryannoack.com +ryanreedy.com +ryanreynolds.info +ryanswebsite.xyz +ryanswebsite1.xyz +ryanswebsite2.xyz +ryanswebsite5.xyz +ryazanpressa.ru +rybalkovedenie.ru +rybprom.biz +rycdqd.icu +rychal-de-carne.com +rychzd.best +rycz2fd2iictop.cf +rycz2fd2iictop.ga +rycz2fd2iictop.gq +rycz2fd2iictop.ml +rycz2fd2iictop.tk +rydh.xyz +rydjfs.site +rye6mi.us +ryen15ypoxe.ga +ryen15ypoxe.ml +ryen15ypoxe.tk +ryik1q.us +ryj15.tk +ryjewo.com.pl +ryldnwp4rgrcqzt.cf +ryldnwp4rgrcqzt.ga +ryldnwp4rgrcqzt.gq +ryldnwp4rgrcqzt.ml +ryldnwp4rgrcqzt.tk +rym84t-mail.xyz +ryno-4wd.com +rynooffroad.com +ryoblog.com +ryqi.com +ryqila.info +ryrixu.info +rysunek.biz +ryszardkowalski.pl +rytwjg.site +ryukyuxxrf.space +ryukyuzxis.space +ryumail.net +ryumail.ooo +ryvima.cf +ryvima.ga +ryvima.ml +ryvoice.org +ryxns.xyz +ryxuzt.us +ryzdgwkhkmsdikmkc.cf +ryzdgwkhkmsdikmkc.ga +ryzdgwkhkmsdikmkc.gq +ryzdgwkhkmsdikmkc.tk +rz5ha8.site +rzaca.com +rzbt8u-mail.xyz +rzcbqdmj.shop +rzdxpnzipvpgdjwo.cf +rzdxpnzipvpgdjwo.ga +rzdxpnzipvpgdjwo.gq +rzdxpnzipvpgdjwo.ml +rzdxpnzipvpgdjwo.tk +rze.fr +rzemien1.iswift.eu +rzesbt.us +rzh4xc.site +rzhaoyun.com +rzip.site +rzjzi.live +rzm-mebel.ru +rzmidias.com +rzn.host +rzn.services +rznf6v.us +rznsco.shop +rzuduuuaxbqt.cf +rzuduuuaxbqt.ga +rzuduuuaxbqt.gq +rzuduuuaxbqt.ml +rzuduuuaxbqt.tk +rzvwgr.host +rzwiocso.shop +rzxmoog.com +rzzr9.site +s-e-arch.com +s-hardware.com +s-health.site +s-lashes.info +s-mail.ga +s-mail.gq +s-motor.ru +s-mythink.tk +s-port.pl +s-potencial.ru +s-rnow.net +s-s.flu.cc +s-s.igg.biz +s-s.nut.cc +s-s.usa.cc +s-sakamas.ru +s-shoponline.info +s-silaman.ru +s-zx.info +s.bloq.ro +s.bungabunga.cf +s.dextm.ro +s.ea.vu +s.polosburberry.com +s.proprietativalcea.ro +s.sa.igg.biz +s.vdig.com +s.wkeller.net +s0.at +s00.orangotango.ga +s0129.com +s0146.com +s0147.com +s0181.com +s0185.com +s0190.com +s0204.com +s0214.com +s0216.com +s0217.com +s0224.com +s0264.com +s0313.com +s0315.com +s0337.com +s0341.com +s0346.com +s0352.com +s0384.com +s0389.com +s0407.com +s0439.com +s0450.com +s0458.com +s0467.com +s0470.com +s0509.com +s0574.com +s0585.com +s0641.com +s0652.com +s0737.com +s0835.com +s0837.com +s0846.com +s0872.com +s0924.com +s0926.com +s0971.com +s0982.com +s0nny.com +s0ny.cf +s0ny.flu.cc +s0ny.ga +s0ny.gq +s0ny.igg.biz +s0ny.ml +s0ny.net +s0ny.nut.cc +s0ny.usa.cc +s0ojarg3uousn.cf +s0ojarg3uousn.ga +s0ojarg3uousn.gq +s0ojarg3uousn.ml +s0ojarg3uousn.tk +s1011.com +s10ss10r.shop +s1211.com +s15qo.site +s1775.com +s1811.com +s182k.info +s188city.com +s188game.com +s188live.com +s1nj8nx8xf5s1z.cf +s1nj8nx8xf5s1z.ga +s1nj8nx8xf5s1z.gq +s1nj8nx8xf5s1z.ml +s1nj8nx8xf5s1z.tk +s1xssanlgkgc.cf +s1xssanlgkgc.ga +s1xssanlgkgc.gq +s1xssanlgkgc.ml +s1xssanlgkgc.tk +s29-megamoney.site +s29-megamoney.website +s2d4o1b3t2.fun +s2drawoff.com +s2dsan.info +s2f14n.best +s2znxa.com +s333pro.com +s33db0x.com +s35-cashworld.website +s360slots.com +s37ukqtwy2sfxwpwj.cf +s37ukqtwy2sfxwpwj.ga +s37ukqtwy2sfxwpwj.gq +s37ukqtwy2sfxwpwj.ml +s385u.site +s3mle.us +s3rttar9hrvh9e.cf +s3rttar9hrvh9e.ga +s3rttar9hrvh9e.gq +s3rttar9hrvh9e.ml +s3rttar9hrvh9e.tk +s3s4.tk +s3wrtgnn17k.cf +s3wrtgnn17k.ga +s3wrtgnn17k.gq +s3wrtgnn17k.ml +s3wrtgnn17k.tk +s42n6w7pryve3bpnbn.cf +s42n6w7pryve3bpnbn.ga +s42n6w7pryve3bpnbn.gq +s42n6w7pryve3bpnbn.ml +s42n6w7pryve3bpnbn.tk +s43n0sklopxmtar.xyz +s48aaxtoa3afw5edw0.cf +s48aaxtoa3afw5edw0.ga +s48aaxtoa3afw5edw0.gq +s48aaxtoa3afw5edw0.ml +s48aaxtoa3afw5edw0.tk +s4a5gb.us +s4f.co +s4m1ye.us +s51zdw001.com +s5jw.us +s5p.site +s6.weprof.it +s64hedik2.tk +s68betyes.com +s6a5ssdgjhg99.cf +s6a5ssdgjhg99.ga +s6a5ssdgjhg99.gq +s6a5ssdgjhg99.ml +s6a5ssdgjhg99.tk +s6d9o1bt2.fun +s6qjunpz9es.ga +s6qjunpz9es.ml +s6qjunpz9es.tk +s709l5d6.fun +s7665.com +s77win.com +s77win.net +s78poker.biz +s78qp.com +s80aaanan86hidoik.cf +s80aaanan86hidoik.ga +s80aaanan86hidoik.gq +s80aaanan86hidoik.ml +s8304.com +s8323.com +s8325.com +s8486.com +s8610.com +s8617.com +s8625.com +s8635.com +s88u.net +s88v.net +s88y.net +s8sigmao.com +s9094.com +s95599.com +s96lkyx8lpnsbuikz4i.cf +s96lkyx8lpnsbuikz4i.ga +s96lkyx8lpnsbuikz4i.ml +s96lkyx8lpnsbuikz4i.tk +s97998.com +s9827.com +s98eoj.com +sa-001.com +sa-cf.com +sa-ci.com +sa.igg.biz +sa22y22enbrkek.xyz +sa36.pro +sa5.net +sa6hpayn.online +sa888.store +sa985.com +saa1adfsdfds3er.tk +saaabbt2019.club +saaabt2019.club +saab9-3.cf +saab9-3.ga +saab9-3.gq +saab9-3.ml +saab9-3.tk +saab9-4x.cf +saab9-4x.ga +saab9-4x.gq +saab9-4x.ml +saab9-4x.tk +saab9-5.cf +saab9-5.ga +saab9-5.gq +saab9-5.ml +saab9-5.tk +saab9-7x.cf +saab9-7x.ga +saab9-7x.gq +saab9-7x.ml +saab9-7x.tk +saab900.cf +saab900.ga +saab900.gq +saab900.ml +saab900.tk +saabaru.cf +saabaru.ga +saabaru.gq +saabaru.ml +saabaru.tk +saabcars.cf +saabcars.ga +saabcars.gq +saabcars.ml +saabcars.tk +saabgroup.cf +saabgroup.ga +saabgroup.gq +saabgroup.ml +saabgroup.tk +saabsalon.com +saabscania.cf +saabscania.ga +saabscania.gq +saabscania.ml +saabscania.tk +saadatkhodro.com +saagartakeaway.com +saaheel.biz +saaheel.online +saarcxfp.priv.pl +saas-sd.com +saas.ong +saasbackups.com +saascity.asia +saataelliga.info +saatchirt.com +saatmod.net +sabahekonomi.xyz +sabahvolunteer.org +sabaka.host +sabapoker.online +sabastian.me +sabbati.it +saberastro.space +sabet11.com +sabinati.com +sabitspor.xyz +sablefriday.com +saboraliagirona.com +saborsabormadrid.com +saborsaudavel.top +sabotaj.info +sabrestlouis.com +sabrgist.com +sabrinawurmbrand.net +sabrituncer.site +sabtekarimkhan.com +sabuyjai.info +sabzshopp.com +sac-chane1.com +sac-louisvuittonpascher.info +sac-prada.info +sac-zbcg.com +sac2013louisvuittonsoldes.com +sacamain2013louisvuittonpascher.com +sacamainlouisvuitton2013pascher.info +sacamainlouisvuittonsac.com +sacar-news.tk +sacbakim.info +sacburberrypascher.info +saccatalyst.com +sacchanelpascherefr.fr +sacchanelsac.com +sacekiminasilolur.xyz +sacekimioperasyonu.net +saceslanguagehouse.xyz +sacgucc1-magasin.com +sacgucci-fr.info +sach.ir +sacheapo.com +sachermes.info +sachermespascher6.com +sachermskellyprix.com +sachiepvien.net +sachishiksha.org +sacil.xyz +sackboii.com +sackdicam.cf +sackdicam.ga +sackdicam.ml +sackdicam.tk +saclancelbb.net +saclancelbbpaschers1.com +saclanceldpaschers.com +saclancelpascheresfrance.com +saclavuitonpaschermagasinfrance.com +saclchanppascheresfr.com +saclongchampapascherefrance.com +saclongchampdefrance.com +saclouisvuitton-fr.info +saclouisvuittonapaschere.com +saclouisvuittonboutiquefrance.com +saclouisvuittonenfrance.com +saclouisvuittonnpascher.com +saclouisvuittonpascherenligne.com +saclouisvuittonsoldesfrance.com +saclovutonsfr9u.com +sacporschedealer.com +sacramentocaplasticsurgeon.com +sacramentohairsalons.com +sacramentoreal-estate.info +sacramentorealestatetalk.com +sacramentotreeremoval.net +sacredaction.app +sacredcitizen.com +sacredcitizensummit.com +sacredencountersthroughnaturaldreamwork.com +sacredoriginsnutrition.com +sacredpathart.com +sacslancelpascherfrance.com +sacslouisvuittonpascher-fr.com +sacsmagasinffr.com +sacsmagasinffrance.com +sacsmagasinfr9.com +sacsmagasinsfrance.com +sactownsoftball.com +sacvalleypet.com +sad495.ru +sadad-divar.online +sadakaonline.ru +sadasdasc-naonc.icu +sadasdsada.xyz +sadd.us +saddafi.icu +saddamcom.com +saddspyper.cf +saddspyper.ga +saddspyper.gq +saddspyper.ml +saddstore.com +sadecekoyden.com +sadehyd.cf +sadehyd.gq +sadehyd.tk +sadesoru.net +sadf.net +sadfopp.gq +sadfs145dfds3er.tk +sadfs235dfds3er.tk +sadfs31dfds3er.tk +sadfsd2548fds3er.tk +sadfsd458fds3er.tk +sadfsdf2554ds3er.tk +sadfsdfd554s3er.tk +sadfsdfdds3er.tk +sadfsdfds3er.tk +sadim.site +sadness.website +sado-das.ru +sadsagsaa.space +sadwertopc.com +saeativlet.xyz +saedicon.cf +saedicon.ga +saedicon.ml +saedicon.tk +saegis.ru +saegu.space +saentologik.ru +saerfiles.ru +safa8.xyz +safaat.cf +safariextendr.com +safariseo.com +safarjo.com +safber.com +safe-boxxberry.ru +safe-buy-cialis.com +safe-file.ru +safe-mail.ga +safe-mail.gq +safe-mail.net +safe-pay.icu +safe-planet.com +safe.equipment +safe.pics +safe.singles +safeamazon.xyz +safeandguaranteed.com +safeautobuy.com +safebolt.xyz +safecash.online +safecash.site +safecash.store +safecash.tech +safecointalk.com +safecointalk.org +safecollegealerts.org +safecreditunion.coop +safecreditunion.info +safecreditunion.name +safecreditunion.org +safecreditunion.us +safecu.care +safecu.cash +safecu.com +safecu.community +safecu.coop +safecu.creditunion +safecu.finance +safecu.financial +safecu.foundation +safecu.gives +safecu.help +safecu.investments +safecu.loan +safecu.loans +safecu.mobi +safecu.name +safecu.news +safecu.tax +safecu.us +safecuhb.biz +safecuhb.com +safecuhb.coop +safecuhb.info +safecuhb.name +safedrgh.net +safedye.com +safeemail.xyz +safefcu.com +safefcu.coop +safefcu.net +safefcu.us +safefoodcongress.org +safefree.com +safegirldate.com +safehosting.top +safehubsa.com +safeity.tech +safelistmarketing.com +safelutions.com +safemail.cf +safemail.icu +safemail.tk +safemaildesk.info +safemailweb.com +safemov.site +safenord.com +safeonlinedata.info +safepaydayloans365.co.uk +safepla.online +safer.gq +safermail.info +saferoomstogo.com +safersignup.com +safersignup.de +safeschoolalert.com +safeschoolsalerts.com +safeschoolsalerts.org +safesextour.com +safeshare.app +safeshare.email +safeshate.com +safetempmail.com +safetm.mobi +safetyadvises.be +safetydiary.com +safetymail.info +safetymobile.ru +safetypost.de +safetyrzxt.space +safetyrzxt.website +safewarp.org +safewebmail.net +safewithsurfeasy.com +saffront.info +safinancecenter.org +safirahome.com +safirbahis.com +safnny.cf +safnny.ga +safnny.tk +safrem3456ails.com +saga-asian-street-food.com +saga4d.net +sagame.academy +sagame.accountant +sagame.accountants +sagame.adult +sagame.amsterdam +sagame.archi +sagame.associates +sagame.audio +sagame.bar +sagame.berlin +sagame.bid +sagame.bike +sagame.black +sagame.blackfriday +sagame.build +sagame.buzz +sagame.cam +sagame.camp +sagame.capetown +sagame.career +sagame.cash +sagame.christmas +sagame.city +sagame.cleaning +sagame.click +sagame.cloud +sagame.college +sagame.desi +sagame.design +sagame.diet +sagame.doctor +sagame.durban +sagame.faith +sagame.fans +sagame.flowers +sagame.gold +sagame.green +sagame.guru +sagame.hiphop +sagame.ink +sagame.investments +sagame.irish +sagame.joburg +sagame.lol +sagame.ltd +sagame.markets +sagame.men +sagame.menu +sagame.mobi +sagame.mom +sagame.nagoya +sagame.name +sagame.nyc +sagame.ooo +sagame.photo +sagame.photography +sagame.physio +sagame.pics +sagame.pink +sagame.press +sagame.promo +sagame.property +sagame.racing +sagame.rest +sagame.science +sagame.shop +sagame.shopping +sagame.solar +sagame.solutions +sagame.stream +sagame.study +sagame.tattoo +sagame.tips +sagame.tokyo +sagame.tools +sagame.toys +sagame.trade +sagame.tube +sagame.us +sagame.vegas +sagame.webcam +sagame.win +sagame.zone +sagame25.asia +sagame357.asia +sagame358.com +sagame7000.com +sagame96.asia +sagardaks.co +sagd33.co.uk +sage.speedfocus.biz +sagerfireprotection.com +sagetsand.cf +sagetsand.gq +sagetsand.ml +sagetsand.tk +sagheh.com +sagiri.aa.am +saglikclub.net +sagliklikurlar.site +sagliklisac.online +sagliklisac.xyz +sagliktanyana.site +saglobe.com +sagmail.ru +sagosupermart.site +sagun.info +sah-ilk-han.com +sahaiicharity.com +sahampemenang.net +saharaforest.org +saharanightstempe.com +sahdisus.online +sahealthter.cf +sahealthter.gq +sahealthter.ml +sahealthter.tk +sahidlakhanmarathon.com +sahihai.club +sahilelektrik.xyz +sahinbeybldspor.xyz +sahipalace.com +sahishop.online +sahitya.com +sahivi.ru +sahnebet9.com +sahrulselow.cf +sahrulselow.ga +sahrulselow.gq +sahrulselow.ml +sai-tai.net +saibaagora.website +saibis.ru +saidbetanzos.info +saidwise.com +saifix.xyz +saigoncity-dublin.com +saigonmaigoinhaubangcung.com +saigonmail.us +saigonoi.org +saikishoremv.com +sail.today +sailaway-yacht.com +sailorplastic.com +sain2o.site +saint-martin.ru +saint-philip.com +saintcharles.online +saintignatiusloyola.nyc +saintloup.net +sait-kirov.ru +saitrajsu.cf +saitrajsu.ga +saitrajsu.gq +saitrajsu.ml +saitrajsu.tk +saivon.com +sajowi.site +sakam.info +sakamail.net +sakanasoft.biz +sakanasoft.com +sakarmain.com +sakaryaanket.xyz +sakaryabayan.xyz +sakaryaozguvenemlak.com +sakaryapimapen.com +sakdomvce.site +sakhimandal.com +sakila.cf +sakila.ga +sakila.gq +sakila.ml +sakila.tk +saktiemel.com +sakuraharoldscross.com +sakuramechanicsburg.com +sakurina.online +salabiltvaett.se +saladchef.me +saladsanwer.ru +saladsni.xyz +saladsnif.xyz +salahkahaku.cf +salahkahaku.ga +salahkahaku.gq +salahkahaku.ml +salamanderbaseball.com +salamfilm.xyz +salaopm.ml +salariominimo21.info +salary-able.xyz +salata.city +salavip.media +salbol.com +salcantaywalks.com +sald.de +saldiora.com +sale-good.site +sale-market-classic.ru +sale-market24.host +sale-nike-jordans.org +sale-perfect-smile.site +sale-russia.store +sale-store365.online +sale-trade-active.info +sale-veneers.site +sale-wow.ru +sale.craigslist.org +sale24shop.website +sale500.ru +salebot.shop +salebots.ru +salecheaphot.com +salechristianlouboutinukshoess.co.uk +salecse.cf +salecse.ga +salecse.gq +salecse.ml +salecse.tk +salehunters2021.space +saleiphone.ru +salem.media +salemail.com +salemen.com +salemnewschannel.com +salemovobit.com +salemovohet.com +salemsuperstars.com +salemtwincities.com +salemwebdesign.online +sales-exceed.com +sales-perfect-smile.site +sales.lol +salesac.xyz +salesaf.xyz +salesbb.xyz +salesbc.xyz +salesbeachhats.info +salescheapsepilators.info +salescoupleshirts.info +salesfashionnecklaces.info +salesfind.org +saleshare.app +saleshtcphoness.info +salesjs.ru +saleskf.com +salesmanagementconference.org +salesoperations.net +salesoperationsconference.org +salespark.store +salesperson.net +salesresult.online +saless.store +salesscushion.info +salessmenbelt.info +salesstack2017.com +salessuccessconsulting.com +salestodaygreat.space +salestodaygreat.xyz +salesunglassesonline.net +saleswallclock.info +saleuggsbootsclearance.com +salewebmail.com +salhinf.buzz +salinadentists.com +salingshop.info +salisburyrealestateagents.com +salla.dev +sallatna.net +salle-poker-en-ligne.com +salles-vestrepain-toulouse.com +salles-vestrepain-toulouse.org +sallesbank.com +salmanbyxn.ru +salmeow.tk +salmingacademy.com +salmo-us.com +salmo-usa.com +salomaslozapadlo.info +salomon.su +salon-chaumont.com +salon-kalipso.ru +salon3377.com +salonantigenspank.site +salonaurastudio.com +salonelizabeth.net +saloninnovation.com +salonkommunist.company +salonkommunist.cool +salonkommunist.expert +salonkommunist.guru +salonkommunist.money +salonkommunist.photos +salonkommunist.solutions +salonkommunist.space +salonkommunist.systems +salonkommunist.tools +salonkommunist.watch +salonkommunist.website +salonme.ru +salonre.xyz +salonrebe.xyz +salonvalu.icu +salonyfryzjerskie.info +saloonbahis7.com +saloudi.com +salpervemurat.ga +salsasmexican.com +salsoowi.site +salt-and-pepper-takeaway.com +saltanera.net +saltcityfiberworks.com +saltjp.com +saltlakecitybusinessadvisors.com +saltlakecitynailsalons.com +saltreactor.org +saltysushi.com +salud-es.site +saludbuy.com +saludyconsuegra.com +salute.moscow +salvador-nedv.ru +salvatore1818.site +salvelinus.se +salventrex.com +sam-dizainer.ru +sam-serial2.xyz +sam-serial5.xyz +sam-serial7.space +sam-serial7.xyz +sam-serial8.xyz +sam-serial9.xyz +samaki.com +samalert.org +samamul.ga +samamul.gq +samamul.ml +samamul.tk +samanghodus.com +samanh.site +samantha17.com +samaoyfxy.pl +samar.money +samara-nedv.ru +samarachisto.ru +samaralimuzin.ru +samarasantoss.site +samasdecor.com +samatante.ml +samateochiropracticclinic.com +samauil.com +sambabebe.com +sambalenak.com +samblad.ga +samblad.ml +sambuzh.com +same-taste.com +sameaccountmanage765.com +samedayloans118.co.uk +samenli.cf +samenli.ga +samenli.ml +samenli.tk +samenwerkingskunde.nu +sameoneto.ru +samerooteigelonline.co +samharnack.dev +saminiran.com +samireunanen.com +samirphotography.com +samisdaem.ru +samjaxcoolguy.com +samjhoquran.com +sammail.ws +sammasati.info +sammnabisoli.xyz +samoe-samoe.info +samogonda.ru +samokat-elektro.ru +samokat-mir.ru +samokat-msk.ru +samolocik.com.pl +samosters.site +samowarvps24.pl +samp-shop.ru +samp-soft.ru +samp-win.ru +sampleapp.com +sampleconvey.com +samplefy.com +samplehomedesign.com +samplelab.com +sampotechnologies.com +sampsonteam.com +samrise.name +sams-dels.ru +sams-gearfit2.site +samscashloans.co.uk +samsclass.info +samsinstantcashloans.co.uk +samslugas.cf +samslugas.ga +samslugas.ml +samsngmart.info +samsonaza.site +samsoniteshops.club +samsquickloans.co.uk +samsshorttermloans.co.uk +samstelevsionbeds.co.uk +samstore.store +samsuffy.com +samsunaraccekici.com +samsung-galaxy9.ru +samsung-x5.online +samsunggalaxys9.cf +samsunggalaxys9.ga +samsunggalaxys9.gq +samsunggalaxys9.ml +samsunggalaxys9.tk +samsungmails.pw +samsungs20.club +samsungtftlcd.xyz +samsuniyiolacak.com +samsunk.pl +samuderasports.info +samuelcarlsson.se +samuelstcyr.com +samye.cd +san-maria-takeaway.com +san-marino-nedv.ru +sana-all.com +sanaewesthkff.xyz +sanalada.com +sanalalem.com +sanalankara.xyz +sanalfilm.biz +sanalfuar.host +sanalkonferans.net +sanalvdssunucu.com +sanalyzer.com +sanangelopestcontrol.com +sanantoniornjob.com +sanaoils.ml +sanatoriizheleznovodska.ru +sanbernardinoaddictiontreatment.com +sanbernardinoheroinrehab.com +sanbosco.com +sanchof1.info +sanchom1.info +sanchom2.info +sanchom3.info +sanchom4.info +sanchom5.info +sanchom6.info +sanchom7.info +sanchom8.info +sanctuaryvpn.com +sandalsresortssale.com +sandar.almostmy.com +sandbagsandballoons.com +sandcars.net +sandcastlebuyshouses.com +sandcohoo.cf +sandcohoo.ga +sandcohoo.gq +sandcohoo.ml +sandcohoo.tk +sandelf.de +sanders4.us +sandf.space +sandhilllservice.net +sandhills.asia +sandiagauno.club +sandiegoallinclusivewedding.com +sandiegobeer.com +sandiegochargersjerseys.us +sandiegocontractors.org +sandiegoemergencyplumber.com +sandiegofarmwedding.com +sandiegolifescience.com +sandiegolifescience.org +sandiegolifesciencenetwork.com +sandiegoranchwedding.com +sandiegoreal-estate.info +sandiegospectrum.com +sandoronyn.com +sandre.cf +sandre.ga +sandre.gq +sandre.ml +sandre.tk +sandrinilix.pw +sands200.com +sandsmacau4445.com +sandstorm.site +sanduteo.online +sandwhichvideo.com +sandybusinessbrokers.com +sandytowingservices.com +sanering-stockholm.nu +sanetris.org +sanetrix.com +sanetrus.com +sanfinder.com +sanfordfibromyalgia.com +sanfordfibromyalgia.org +sanfranchic.com +sanfrancisco49ersproteamjerseys.com +sanfranflowersinhair.com +sangabazarshar.com +sangaritink09gkgk.tk +sangeks.com +sangiangphim.com +sangokutenbu-kouryaku.xyz +sangqiao.net +sangrlaaq.space +sangsters.us +sanibact-errecom.com +sanibelwaterfrontproperty.com +saniki.pl +sanim.net +sanioma.club +sanitasint.net +sanitzr.com +sanizr.com +sanjaricacrohr.com +sanjati.com +sanjaylaladds.com +sanjesh3.info +sanjoseareahomes.net +sankakucomplex.com +sankosolar.com +sanliurfaaktuel.xyz +sanliurfaemeksinemalari.com +sanliurfaemeksinemalari.xyz +sanliurfagelisim.xyz +sanliurfarehberim.xyz +sanliurfavefadernegi.com +sanliurfavitrin.xyz +sanliurfawebyazilim.com +sanlorenzodentalcare.com +sanluisobispoattorneys.com +sanmarcospanthers.com +sanmati.net +sanmh.ru +sannyaephc.online +sannyaephc.ru +sanporeta.ddns.name +sanprp.com +sans.su +sansarincel.com +sanshengonline.com +sanskrititoday.com +sanslisin11.com +sanstr.com +santa-liria.ru +santa.waw.pl +santaclaritarealestatebuzz.com +santacruz.delivery +santacruzsurf.net +santafedesignz.com +santafpuvu.space +santamonica.com +santannaenergyservices.biz +santannawarrantyservices.info +santaonoriginal4.xyz +santarosatours.com +santasbooksforkids.com +santasornament.com +santateresacostarica.com +santechwan.site +santehmarket-43.ru +santhia.cf +santhia.ga +santhia.gq +santhia.ml +santhia.tk +santiagogomezalcalde.com +santiagonino.org +santikadyandra.cf +santikadyandra.ga +santikadyandra.gq +santikadyandra.ml +santikadyandra.tk +santimetr.xyz +santingiamgia.com +santorini-holiday.com +santoriniflyingdress.com +santorinitoptours.com +sanvekhuyenmai.com +sanvetetre.com +sanvosport.com +sanwubapartners.org +sanxuat.top +saobse.xyz +saocarlosagora.com +saomeijie.xyz +saomoe.com +saorhj.com +saotom.info +saoxianggan.com +sapbox.bid +sapcom.org +sapgo.biz +sapi2.com +sapientsoftware.net +sapog.fun +sapogikupitru.ru +sapor138ot.online +saporiditaliact.com +sapoyr.best +sappartners.net +sapphiccb.xyz +sapphikn.xyz +sapphipap.xyz +sapphireluxuryspa.xyz +sapphiskm.xyz +sapphitte.xyz +sapphiwqr.xyz +sapphizzc.xyz +saprofit.ru +saprolplur.xyz +sapsan-24.com +sapsan-go.com +sapsan-russian.com +saptrangsuc.com +sapunda.com +sapya.com +saqixe.info +saqlamheyat.space +sar-asatun.ru +saracentrade.com +sarageers.com +sarahcarsontherapies.com +sarahdavisonsblog.com +sarahfordrealtor.com +sarahglenn.net +sarahpark.org +sarahstashuk.com +sarajohnorg.org +saranapoker.site +sarangbam5.com +sarapanakun.com +sarasotaairportcarrentals.com +sarasotacountyguides.org +sarasotacountyvisitorguides.com +sarasotalifestyles.com +sarasotaluxuryagent.com +sarawakreport.com +sarayaras.com +saraycasino.bet +saraycasinobonus.com +saraycasinogiris.net +saraycasinoyeniadresi.com +sarayferforje.xyz +sarchawa.krd +sarcoidosisdiseasetreatment.com +sargrip.asia +sarieddinegroup.com +sarikiz40.site +sarinaadams.com +sarinaaduhay.com +sarkaeeresult.info +sarkariyojana.xyz +sarkisozudeposu.com +sarkodie.africa +sarofimcapital.com +sarofimcapitalpartner.com +sarofimfamily.com +sarofimfamilycapital.com +sarofimfamilycapitalpartners.com +sarofimfamilyholdings.com +sarofimfamilyoffice.com +sarofimholdings.com +sarofimvc.com +sarofimventure.com +sarofimventurecapital.com +sarofimventurecapitalpartners.com +sarofimventures.com +saroniccruises.online +sarrafiipaaarsii.live +sarttrk.site +sas100.space +sas100.xyz +sasa22.usa.cc +sasababy.info +sasacademy.site +sasamirkovic.com +sasdads.club +sasha.compress.to +sashadean.com +sashagrey.mobi +sashifernandez.com +saskia.com +sasmanbetx.com +sasshost.net +sassy.com +sast.ro +sasukeurod.space +saswma.org +satabmail.com +satan.gq +satana.cf +satana.ga +satana.gq +satangpoker.com +satcom.cf +satcom.ga +satcom.gq +satcom.ml +satelite.space +satellitefirms.com +satelliteheroes.com +satenkumasbileklik.com +satepoker.org +sathinews.com +sathio.website +satined.best +satisageldim.com +satisfacaodepacientes.com +satisfyme.club +satishikayeleri.com +satisviag.site +sativajesus.org +satkhiramail.tk +satline.info +satorisciencespot.com +satoshi1982.biz +satoshibonus.ru +satoshibox.store +satservizi.net +satsport.fun +sattcipe.cf +sattcipe.ga +sattcipe.gq +sattcipe.ml +sattebangladesh.net +satterfield-sons.com +satterwhitefamily.net +satty-zhuldyz.site +satty-zhyldyz-kz.site +satubandar.club +satubandar.com +satubandar.us +satukosong.com +saturdaylaura.com +saturdaynightspecial.org +saturnbet-official.ru +saturniusz.info +satusatu.online +satusena.com +satutogel3.bar +satvpn.club +satyfor.gq +saubandvor.cf +saubandvor.ga +saubandvor.gq +saubandvor.tk +saucey-one.com +saucyaugmentspire.site +saude-digital.org +saudealternativa.org +saudedigital.net +saudeebom.club +saudeedicas.online +saudemasculina.icu +saudemasculina.press +saudenatural.live +saudenatural.xyz +saufoolbeachf.cf +saufoolbeachf.ga +saufoolbeachf.gq +saufoolbeachf.tk +saukute.me +sauna-na-sverdlova-9.ru +sauna-tomila.ru +saunakemer.xyz +saunaonline.biz +saupecmay.cf +saupecmay.ga +saupecmay.gq +saupecmay.ml +sausen.com +saut-elastique.club +sauyh.com +savageattitude.com +savagepublishing.com +savaryseachest.com +savbus.info +save-on-energy.org +save55.org +saveboxmail.ga +savebrain.com +savecashusingsolar.com +saveeagan.org +savefreg.ga +saveinsurance.us +savelife.ml +savelives.org +saveourpress.com +saveourswings.org +saveoxfordstreet.com +saverpa.ga +saverpa.gq +saverpa.ml +saverpa.tk +savesausd.com +savetheater.net +savethechildrenactionnetwork.com +savetimeerr.fun +saveuhealth.com +savevid.ga +saveyourgadget.com +savingallhomes.com +savingnyhomes.com +savingsearcher.com +savingship.com +savinpaiva.com +saviorreds.com +savip168.com +savip1688.com +savitar.network +savitargroup.com +savondemarseille.info +savondemarseille.us +savondemarseilles.com +savored973cf.online +savoytv17.com +savran.de +savvyadvisor.net +savvyartshop.com +savvyautosolutions.com +savvybusinessshow.com +savvyvibe.com +sawages.net +sawas.ru +sawefewfyfi.space +sawhorseresearch.com +sawoe.com +sawroutingrum.website +sax-lift.us +saxfun.party +saxlift.us +saxonbruce.com +saxophonexltd.com +saxsawigg.biz +say.buzzcluby.com +saya.ga +sayamaukaya3.com +sayano.ru +saycarlojistik.xyz +sayeghlawfirm.com +sayfa.info +sayfabir.com +sayfillzin.cf +sayfillzin.ga +sayfillzin.gq +sayfillzin.tk +saygioca.cf +saygioca.ga +saygioca.gq +saygioca.ml +saygioca.tk +sayinnet.net +sayitsme.com +saymeow.de +saymuscge.cf +saymuscge.ga +saymuscge.ml +saynigger.com +saynotospams.com +sayonara.gq +sayonara.ml +saytren.tk +sayyes-shop.ru +sayyesyes.com +saz753.com +sazaury.com +sazco.net +sazdauttt.shop +sazhimail.ooo +sb40.icu +sb88.online +sba7amoney.com +sbash.ru +sbb89c.com +sbcplay.club +sbcplay.org +sbcpoker.info +sbcseo.net +sberemec.cf +sberemec.ga +sberemec.ml +sberonlinedelivery.site +sberwick.com +sbg-museum.se +sbgcd.org +sbhk004.com +sbhk017.com +sbhk024.com +sbksacbakimkuru.online +sbnations.us +sbndetdc.shop +sbnsale.top +sbo1168.com +sbo21x.com +sbo62.net +sboassociation.com +sbobetpk.website +sbobslot.com +sbodewa.online +sbong88.online +sbong88.xyz +sbopk.website +sboro.ru +sborra.tk +sbox15.net +sbpoloclub.com +sbprceyewear.com +sbs.onl +sbs66.xyz +sbsgroup.ru +sbt90ir.info +sbt90ir.org +sbtjtj.com +sburningk.com +sbuttone.com +sbuyam.site +sc-racing.pl +sc-shoe.com +sc8156.com +sc888u.com +sc91pbmljtunkthdt.cf +sc91pbmljtunkthdt.ga +sc91pbmljtunkthdt.gq +sc91pbmljtunkthdt.ml +sc91pbmljtunkthdt.tk +sc96mam3y2pmpa4.xyz +scabiesguide.info +scadaerp.com +scaffoldinglab.com +scaisirg.shop +scalablefile.network +scalalearn.net +scalatrain.com +scalech.email +scaletrai.xyz +scaleyourads.com +scalpongs.com +scamerahot.info +scamkoreans.xyz +scamorlegit.review +scams.website +scanandfun.ru +scanapa.com +scandales.ru +scandiafelt.se +scandiciptv.info +scandinavianhairacademy.com +scandiskmails.gdn +scandynashop.com +scanf.ga +scanf.gq +scania.gq +scania.tk +scanitxtr.com +scanmail.us +scannerchip.com +scanning.app +scanonline.mobi +scanonline.org +scanor69.xyz +scantobrowser.com +scarfga.com +scarry-rp.com +scarymovies.biz +scasino.ru +scatibna.cf +scatibna.ml +scatibna.tk +scatindiashow.com +scatmail.com +scay.net +scbet88.net +scbgolfouting.com +scbox.one.pl +sccdomoter.site +sccountybank.us +scdn.ooo +sceenic.com +scenarioh.com +scenero.com +sceneslink.com +scennonpda.cf +scennonpda.ga +scennonpda.gq +scennonpda.ml +scennonpda.tk +scenpucu.cf +scenpucu.ga +scenpucu.gq +scentathome-dublin.com +scentedipity.com +scerpio.com +scfastoffers.com +scgmm1.com +schabernack.ru +schachrol.com +schackmail.com +schadizun.ga +schadizun.gq +schadizun.ml +schadizun.tk +schafmail.de +schalfpricedlisting.com +schalfpricedlistings.com +schaufell.pl +schaumburgofficecleaning.com +scheduleer.com +schema.report +schi-zo.de +schiborschi.ru +schicenranickspel.space +schiebetore.biz +schilan.site +schilderkunst.de +schilderpro.com +schiz.info +schlankefigur24.de +schlankheit.info +schluesseldienst-stflorian.at +schlump.com +schmalwieser.info +schmeissweg.tk +schmid.cf +schmid.ga +schmitt-tm-ltd.com +schmitt-tm-ltd.org +schmuckfiguren.de +schnabbel.app +schneetrap.tk +schnell-geld-verdienen.cf +schnell-geld-verdienen.ga +schnell-geld-verdienen.gq +schnippschnappschnupp.com +schoepr.top +schokopudding.vision +schola.cd +scholapp.cat +scholarassoc.org +scholarreinsurance.org +scholarsed.com +scholarshippro.com +scholarshipsusa.net +scholarshipzon3.com +schone-lucht.shop +schone-lucht.space +school-essay.org +school-good.ru +schoolexplorer.org +schoolforharvest.com +schoolgirlslive.com +schoolingherring.com +schoolreal.info +schoolrooster.net +schoolsoflove.com +schoolsuccessnetwork.net +schooltechnology.site +schoonheidsbar.com +schreib-mir.tk +schreiber-group.com +schreinermeister24.de +schrijf.nu +schrott-email.de +schtep.ru +schticky.tv +schufafreier-kredit.at +schulweis.com +schwanz.biz +schwartzfilm.com +schwartzmediapro.com +schwartzpress.com +schwarzmail.ga +schweizer-auto-des-jahres.swiss +schwerlastspedition.de +schwoer.de +schydled.com +sci44.space +scianypoznan.pl +sciatique.info +sciegenics.com +science-aviation.org +science-full.ru +scienceacademicnews.site +scienceauvert.org +sciencelive.ru +sciencepub.news +sciencestill.com +sciencestry.com +scifi-writers.com +scififaster.com +scifimangacomics.com +scifiplaybook.com +scilerap.cf +scilerap.gq +scilerap.ml +scilerap.tk +scinnovator.com +scinnovators.org +scireq.asia +scireq.net +scireq.org +scissel.xyz +scit.app +scitechivity.com +scities.pro +scizee.com +scj.edu +scjtzy.com +sclc2.com +scleraxmwa.space +sclgdetbm.shop +sclwu7.com +scmail.cf +scmbnpoem.pl +sco388.com +sco388.net +sco388.org +scoalaceptura.info +scoldremovedsplit.site +scollay.com +scoopper.ru +scoopsimplespume.site +scootersshop.life +scootmail.info +scopdefi.cf +scopdefi.ga +scopdefi.gq +scopdefi.tk +scope4.store +scopeartdesigns.com +scopus-wos.com +scorchingcraft.xyz +scoredream.ru +scoredwow.com +scoreek.com +scorefor.xyz +scoremaru.com +scoresc.org +scorestats.net +scoretroo.email +scorezq.com +scornfultoadcrimson.icu +scotassociation.org +scoteckleyinc.com +scotomasolution.com +scott-lee-heating.com +scottchauncey.biz +scottcomstock.org +scottdesmet.com +scotterkinz.com +scottishinnhuntsville.com +scottishkelpie.com +scottishmoscow.org +scottivester.com +scottpearson.net +scottpetersondaniel.us +scottrenshaw.com +scottrohe.com +scottscitylimits.com +scottsdale-resorts.com +scottsdalesgaragedoor.com +scottwestfamily.com +scottytoddmessages.com +scouringsfe.info +scoutprissysteak.site +scouts.onl +scraggbwfw.space +scrambleground.com +scrap-cars-4-cash-coventry.com +scrapbookingforprofit.com +scrapcar.money +scrapebox.in +scrapeemails.com +scrapii.com +scrapper.site +scrapper.us +scraptrend.recipes +scratch.cd +scratchcarddonation.com +scratchcuisine.com +screamfused.com +screamingfist.xyz +screechcontrol.com +screen-img.com +screen2.site +screenartisans.com +screencodr.com +screenlink.email +screenlobbydive.website +screenprintingtape.com +screenshottop.info +screentown.org +screenvel.com +screwdon.recipes +screwdriveraction.com +screwsmel.buzz +screwthe.xyz +scribb.eu +scribble.uno +scribeorigins.org +script.click +scriptscdn.pro +scriptsdota2.ru +scriptureboard.com +scripturl.com +scrmnto.cf +scrmnto.ga +scrmnto.gq +scrmnto.ml +scroball.com +scrofuqlaj.ru +scroll-through.club +scroomail.info +scrptshop.space +scrsot.com +scrubted.com +scruff-a-luvs-shop.ru +scrumbai.live +scrumexperts.com +scruto.xyz +scryptmachine.com +scs188live.net +scs188live.news +scs188live.site +scs188live.space +scs188rocks.com +scs188today.com +scsef.site +scsmalls.com +scst-nstp.site +scsvw.com +sctbmkxmh0xwt3.cf +sctbmkxmh0xwt3.ga +sctbmkxmh0xwt3.gq +sctbmkxmh0xwt3.ml +sctbmkxmh0xwt3.tk +sctcwe1qet6rktdd.cf +sctcwe1qet6rktdd.ga +sctcwe1qet6rktdd.gq +sctcwe1qet6rktdd.ml +sctcwe1qet6rktdd.tk +scubado.info +scufupzil.ga +scufupzil.ml +scufupzil.tk +scuputta.cf +scuputta.ga +scuputta.gq +scuputta.ml +scurcernbac.cf +scurcernbac.ga +scurcernbac.gq +scurcernbac.ml +scuregoto.website +scussymail.info +scutranti.cf +scutranti.ga +scutranti.ml +scutranti.tk +scxt1wis2wekv7b8b.cf +scxt1wis2wekv7b8b.ga +scxt1wis2wekv7b8b.gq +scxt1wis2wekv7b8b.ml +scxt1wis2wekv7b8b.tk +sd-discount.xyz +sd-exports.org +sd110.xyz +sd3.in +sd605.com +sd71bt2.fun +sdagds.com +sdamkvartiru.online +sdashi.xyz +sdayheou.icu +sdbfsdkjf.online +sdbmz.us +sdcrfmyj.com +sdd2q.com +sddfpop.com +sdelaemdeputatom.ru +sdelaisebe.site +sdelkanaraz.com +sdelknedvij.xyz +sdenhaoquangphat.com +sdevicem.com +sdew.cf +sdf.org +sdf44.com +sdfbd.com +sdferwwe.com +sdff.de +sdfgd.in +sdfggf.co.cc +sdfggre.xyz +sdfghyj.tk +sdfgsdrfgf.org +sdfgukl.com +sdfgwsfgs.org +sdfiresquad.info +sdfklsadkflsdkl.com +sdfqwetfv.com +sdfr.de +sdfsdf.co +sdfsdfsadf.xyz +sdfu8hu.com +sdfuggs.com +sdg34563yer.ga +sdg4643ty34.ga +sdgewrt43terdsgt.ga +sdgsdfgsfgsdg.pl +sdhalfpricedlisting.com +sdhalfpricelisting.com +sdhalfpricelistings.com +sdifkkfk.site +sdigbw.us +sdirchildbus.cf +sdirchildbus.ga +sdirchildbus.gq +sdirchildbus.ml +sdirchildbus.tk +sdireqta.cf +sdireqta.ga +sdireqta.gq +sdireqta.ml +sdireqta.tk +sdirfemail.com +sdjhjhtydst11417.cf +sdjhjhtydst11417.tk +sdjhjhtydst43770.cf +sdjhjhtydst43770.ga +sdjhjhtydst43770.tk +sdjhjhtydst71846.ga +sdjhjhtydst71846.tk +sdjhjhtydst80467.ml +sdjhjhtydst80467.tk +sdkaakjsj.xyz +sdkasjd.xyz +sdkf.com +sdkfkrorkg.com +sdks.app +sdlsn.org +sdlyzlxa.shop +sdnh.pro +sdnr.it +sdo6k.info +sdo71bt2.fun +sdo91bt2.fun +sdom-96.ru +sdpkl.live +sdqbbj.info +sdqlz.us +sdrmyshop.com +sdsas.xyz +sdsdaas231.org +sdsdwab.com +sdsgshizheng.com +sdsigns.com +sdv54.com +sdxgalzn.tech +sdy21.com +sdysofa.com +se-center.ru +se-cure.com +se.xt-size.info +se223.buzz +se666.net +se668.net +se7encityjlt.com +seabedharvesting.com +seabillionradio.com +seabreezeswaves.com +seacrew.xyz +seafoodglossary.com +seafoodpn.com +seag7r.site +seagullnet1.com +seahawksportsshop.com +seahawksproteamsshop.com +seajaymfg.com +seal-concepts.com +sealized.info +seankoybread.ga +seankoybread.gq +seankoybread.ml +seankoybread.tk +seanmetzs.info +seanmweaver.com +seansun.ru +seaofdreams.org +search-clients.info +search-dating-site-deal.rocks +search-dating-site-deals.live +search-home-security-now.market +search-home-security-sites.live +search-liposuction-fat-now.live +search-psoriasis-topicals.live +search-usa.ws +searchadvertisement.space +searchfather.com +searchformeaning.net +searchiehub.com +searchindog.com +searchmydirectory.com +searchrocketgroup.com +searchtermmatchdomain.com +searchtermsmatch.com +searchtraffic.online +searmail.com +searocketadventures.com +searsgaragedoor.org +searzh.com +seascoutbeta.org +seasearch.network +seasiapoker.info +seasidebrighton.com +seasideorient.com +seasoftdigital.icu +seasonalallergiess.com +seasoncraft.online +seasons-easy-info.ru +seasons-group-info.ru +seatcovershop.com +seatga.institute +seatist.com +seatjejbxly.email +seattguru.com +seattleethnicfoods.com +seattlehypnobirthing.org +seattlelaptoprepair.org +seattleovariancancerresearch.org +seattleplumbing.reviews +seattlerealestate4you.com +seattleroll.net +seattlescooter.com +seattletummytuck.com +seattravels.com +seaurg.icu +seawgame168.com +seawgame66.com +seawgame77.com +seawgame88.com +seawgame99.com +seazrem.com +sebastanoperero.com +sebastianwarren.buzz +sebatdekor.com +seberkd.com +sebilsepeti.com +seblog.cz.cc +sebnemisiguzel.net +sebobapark.com +sec-mail.online +secandocomsaude.com +secantsquare.com +secbadger.info +secencode.xyz +secfeaturerye.website +secfiz99.com +secfvc.site +secinvaders.org +secknow.info +seclolu.cf +secmail.ga +secmail.gq +secmail.ml +secmail.pro +secmail.pw +secmeeting.com +secmobi.net +secom-tj.com +second-chancechecking.com +secondmic.com +secondmindsoftware.com +seconomies.info +secops.app +secret-area.tk +secret-cinema.online +secret-cinema24.online +secretagehy.info +secretbet5.com +secretbet7.com +secretdev.co.uk +secretdiet.com +secretemail.de +secretfashionstore.com +secretlenders.online +secretluxurystore.com +secretmilllionairesclub.com +secretmovie.online +secretmystic.ru +secrets.name +secretsaiyan.xyz +secretsdepeou.com +secretsurveyreviews.info +secsforall.com +secsforall.org +sector2.org +sectormediastrategies.org +secularized818mw.online +seculife.ru +secur.page +securaname.com +securblockchain.net +secure-0nline-uk.xyz +secure-box.info +secure-box.online +secure-fb.com +secure-featured-producs.com +secure-mail.biz +secure-mail.cc +secure-mail.cn +secure-net-uk.buzz +secure-online-uk.buzz +secure-online-uk.monster +secure-online-uk.xyz +secure-online.monster +secureapay.com +secured-link.net +securedcontent.biz +secureddegrees.com +securehealthcareit.com +securehost.com.es +secureinvox.com +securemail.flu.cc +securemail.gq +securemail.igg.biz +securemail.nut.cc +securemail.usa.cc +securemailserver.cf +securemailserver.ga +securemailserver.gq +securemailserver.ml +securemailserver.tk +securemedikal.xyz +secureofficemobile.cyou +secureorder.online +securephoto.host +secureschoolalliance.com +secureschoolalliance.net +secureschoolalliance.org +secureschoolsalliance.net +secureschoolsalliance.us +secureserver.rogers.ca +secureserver.usa.cc +secureserver01.net +securesmtp.bid +securesmtp.download +securesmtp.stream +securesmtp.trade +securesmtp.win +securesys.cf +securesys.ga +securesys.gq +securesys.ml +securesys.tk +securesystems-corp.cf +securesystems-corp.ga +securesystems-corp.gq +securesystems-corp.ml +securesystems-corp.tk +securetel-big.tel +securiblog.com +security7.online +securitybyprotek.com +securitycamerasinstallation.net +securityconsulting.tech +securityfirstbook.com +securityfixed.com +securityinsight.net +securityriskexpert.com +sedansis.info +sedapetnya.guru +sedasagreen01try.tk +sedationdentalpractice.com +sedewoge.site +sedric.ru +seductiondictionary.com +seductivestarletzz.net +seductiveturtle.org +sedv4ph.com +seealmeria.com +seeashop.space +seebergs.com +seed.ml +seed2tree.com +seedbankcoin.com +seedboha.cf +seedboha.ga +seedboha.gq +seedboha.ml +seedboha.tk +seedcommerce.shop +seedcommons.com +seedjourney.com +seednest.us +seedtein.com +seek-online-degrees-deal.live +seek-voiceoverip-service.live +seek-voip-systems-today.rocks +seekapps.com +seekbeacon.com +seekbusinessblog.club +seekfindask.com +seekincentives.com +seeking-arrangements.review +seekintertech.info +seekjobs4u.com +seeksupply.com +seekusjobs.com +seelak.site +seelenders.net +seemail.info +seemyplace.xyz +seenontvclub.com +seenparisy.info +seeout.us +seepublic.nl +seer-rx.com +seesli.com +seevideoemail.com +seeyuan.com +segabandemcross74new.ml +segawayofhawaii.com +segayazilim.com +segestapizzeria.com +segoviavegas.com +segredodemarketingexpert.com +segredodogain.com +segredosdaaudienciaonline.com +segundamanozi.net +segundolance.site +seguo10.xyz +segurado.org +seguridadinformatica.ninja +seguro.bet +seguros.agency +segwrgna.shop +sehitkamilbelediyespor.xyz +sehnqv.info +seibersbach.net +seidistdi.cf +seidistdi.ga +seidistdi.gq +seierra.com +seigaterc.cf +seigaterc.ga +seigaterc.gq +seigaterc.ml +seigaterc.tk +seikki.com +seikopoker.com +seila.pt +seinebreachsteer.site +seiox.com +seishel-nedv.ru +seizefai.xyz +seizin737lr.online +sejaa.lv +sejarah.site +sejavistoo.com +sejohnsonandsons.com +sekamek.cd +sekarjagat.com +sekas.fun +sekatoto.com +sekcjajudo.pl +sekdongsan.com +sekerhastaligi.mobi +sekizbir.com +sekoeuropa.pl +sekris.com +seksbuiten.online +seksik.site +sektorpoker.com +sektorpoker.info +sektorpoker.net +sektorpoker.org +sekza.site +selaevent.com +selamfht22717.cf +selamfht22717.ga +selamfht22717.ml +selamfht22717.tk +selamlarsx13539.ml +selamlarsx61621.cf +selamlarsx61621.ga +selamsfjntvb36614.cf +selamsfjntvb42336.ml +selamtatube.com +selang3.xyz +selang5.xyz +selbcitbears.cf +selbcitbears.gq +selbcitbears.ml +selbcitbears.tk +selcukayanoglu.xyz +selcukluemlakkonya.com +seldc.org +seleb2toto.com +selectam.ru +selectfox.club +selectfriends.com +selectionsart.com +selectivestars.com +selectmcohio.net +selectmytrip.com +selector-casino.host +selector-casino.online +selectraindustries.com +selectyourinfo.com +seleramakngah.com +self.direct +selfarticle.com +selfbonds.info +selfcheckin.ru +selfcustodianira.com +selfdestructingmail.com +selfdestructingmail.org +selfdirected401ksecrets.com +selfdirectedadviser.com +selfdirectedadvisers.com +selfdirectedadvisor.com +selfdirectedinvest.com +selfdirectediraadvisers.com +selfdirectediraadvisor.com +selfdirectirallc.com +selfgard.com +selfhelptoolbox.com +selfie-cam.online +selfie-roipro.ru +selfiecard.com +selfieled.ru +selfietobacco.online +selfietobacco.xyz +selfimasajes.com +selfimvement.pro +selfmadesuccesstoday.com +selfmedicine.ru +selfreferral.org +selfrestaurant.com +selfretro.net +selfricorvai.site +selfstoragefind.net +selftanningpills.net +selindaconcession.com +selipico.site +seliux.com +selkamedya.com +selkirkpc.com +sell-brends.ru +sell-here.ru +sell-market1.ru +sell365.me +sellcircuitboards.com +sellcow.net +seller1hit.website +sellerku.info +sellerku.us +sellerku.xyz +sellfb.xyz +sellgallery.space +sellgallery.website +sellim.site +sellinganti-virussoftwares.info +sellingogos.com +sellingshop.online +selljar.com +sellmine.ru +sellmyexpirednow.com +sellmymichiganproperty.com +sellodeconfianza.online +sellry.website +sells.com +sellsbuttecounty.com +sellscopedata.com +sellscopemturk.com +sellscopeprospecting.com +sellscopeprospects.com +sellscoperesearch.com +sellstorevero.com +selluh.com +sellusyourhouse.net +sellyouroldmobile.info +sellyourstocks2019.com +selmaforeclosures.com +selowcoffee.cf +selowcoffee.ga +selowcoffee.gq +selowcoffee.ml +selowhellboy.cf +selowhellboy.ga +selowhellboy.gq +selowhellboy.ml +seltaire.cf +seltaire.ga +seltaire.gq +seltaire.ml +seltaire.tk +seluang.com +selumnkdnkf68373.ml +selumnkdnkf68373.tk +selyatino-beton-zavod.ru +sem9.com +semahua.com +semail.us +semaine-isr.com +semangat99.cf +semarcomputama.tk +semarhouse.ga +semarhouse.ml +semarhouse.tk +sembilansport.com +sembwebba.cf +sembwebba.ga +sembwebba.gq +sembwebba.tk +semei6.fun +semena-moskva.ru +semenaxreviews.net +semenula.site +semessusta.cf +semessusta.ml +semessusta.tk +semestatogel.com +semeynayakl.ru +semi-mile.com +semi168.live +semidesigns.com +seminaire-horizons.com +seminairehorizons.com +seminaroil.info +seminary-777.ru +semiotik.co +semited.fun +semitrailersnearme.com +semleter.gq +semleter.ml +semleter.tk +semmos.com +semogaderes.com +sempakk.com +sempuranadi.cf +sempuranadi.ga +sempuranadi.ml +sempuranadi.tk +semsei.co.uk +semsipasapasaji.xyz +semuaduit.org +semusimbersama.online +semut-kecil.com +semutkecil.com +senangpoker.site +senanurie2ens.xyz +senatec.cd +senatorsport.store +senbennett.com +send-email.org +send-money.ru +send22u.info +send360.de +sendanywhere.xyz +sendbananas.website +sendcertifiedletters.com +sendemail2.com +senderelasem.tk +sendermail.info +sendfree.org +sendify.email +sendify.org +sendingspecialflyers.com +sendmesome.cash +sendmesomemails.biz +sendrule.com +sendspamhere.com +sendthemails.com +sendto.cf +senduvu.com +senegal-nedv.ru +senegalove.com +senerza.press +senewz.cd +senfgad.com +senfmoka.cf +senfmoka.ga +senfmoka.gq +senfmoka.ml +senfmoka.tk +senfog.com +sengi.top +sengkang-grand-residences-sg.com +senguanteng.com +sengyindang.com +senikata.com +senintenin.xyz +senior4d.info +seniorblog.com +seniorcareandtransport.com +seniorcaremarketingconference.com +seniorcaremarketingcouncil.com +seniorcommunitylifestyle.com +seniorforless.net +seniorhomecareprograms.com +seniorhomes.ru +seniorlivingcenterfinder.com +seniorlivingcenterinfo.org +seniorlivingcenterinformation.com +seniorlivingcentersfinder.org +seniorlivinglifestylearizona.com +seniorlivingmarketingconference.com +seniormarketingcouncil.com +seniorom.sk +seniorslivingfinder.com +sennbox.cf +sennbox.ga +sennbox.gq +sennbox.ml +sennbox.tk +sennheiser-ru.online +senoa.store +senoonmarket.com +senpaigamer.com +sensavault.com +sensearticle.com +senseblan.recipes +sensecloc.us +sensegrie.icu +sensehab.us +sensejoint.xyz +sensel.ru +senseless-entertainment.com +sensemarket.host +sensemo.xyz +senseradios.com +senseswe.icu +sensibvwjt.space +sensika.email +sensika.global +sensika.news +sensika.online +sensika.page +sensitivityculture.com +sensorfkgg.space +sensorynopain.online +sensorynopain.xyz +sensualerotics.date +sensualitemovement.com +sensualizes731kd.online +sentapoker.live +sentencingnews.com +sentientdesigns.net +sentigizmo.com +sentitle.ru +sentralreitmy.com +sentry-e3taxservice.com +sentryenis.site +senttmail.ga +senty.ru +senukexcrreview.in +seo-bux.ru +seo-cdn.ru +seo-class.ru +seo-clicker.com +seo-delo.ru +seo-for-pussies.pl +seo-google.site +seo-local.site +seo-mailer.com +seo-search.site +seo-turn.ru +seo.beefirst.pl +seo.bytom.pl +seo.viplink.eu +seo1-miguel75.xyz +seo11.mygbiz.com +seo21.pl +seo3.pl +seo39.pl +seo8.co.uk +seoandwordpress.com +seoankur.info +seoartguruman.com +seobacklinks.edu +seobest.website +seobich.ru +seoblasters.com +seoblog.com +seoblogger.net +seobot.com +seobravura.com +seobrizz.com +seobungbinh.com +seobusinessclub1.com +seobuzzvine.com +seocdn.ru +seocdvig.ru +seocompany.edu +seocu.gen.tr +seocy.us +seodating.info +seoenterprises.com.au +seoestore.us +seoexperindia.online +seoforum.com +seofun.ru +seogawd.com +seogern.ru +seohoan.com +seoimpressions.com +seojuice.info +seokings.biz +seoknock.com +seolite.net.pl +seolondon.co.uk +seolondon24.co.uk +seolove.fr +seomail.net +seomail.org +seomail.top +seomalaysia88.com +seomaomao.net +seomarketingservices.nl +seomarketleaders.com +seomediadesign.online +seomoz.org +seonuke-x.com +seonuke.info +seoo-czestochowa.pl +seoofindia.com +seopapese.club +seopot.biz +seopowa.com +seopress.me +seoprorankings.com +seoquorankings.com +seoranker.pro +seorankhistory.com +seoreport.com +seorj.cn +seorolas.ga +seorolas.gq +seorolas.ml +seorolas.tk +seosavants.com +seosc.pl +seosecretservice.top +seoseoseo.mygbiz.com +seoservicespk.com +seoserwer.com +seosie.com +seoskyline.com +seostatic.pl +seostudio.co +seoteen.com +seotoolkit.ru +seoufo.net +seoulmusicawards.net +seoverr.com +seovestmont.cf +seovestmont.ga +seovestmont.gq +seovestmont.ml +seovps.com +seowebsitetop.com +seowy.eu +seoyo.com +seoysemweb.com +separajvlx.space +sepatuanak.online +sepatusupeng.gq +sepci-saneva.tk +sepoisk.ru +septeberuare.ru +septembermovo.com +septicinspectionjacksonnj.com +septicvernon.com +septiko-unilos.ru +septozer.com +septrail.info +sepulcher667sz.xyz +seputarbet.live +seputarti.com +sequadion.net +sequipment.ru +ser2201b.buzz +seraji.info +serapoker.com +serbangilvitu.com +serbian-nedv.ru +serdin.site +serebro32.ru +serena-pass.online +serenadestrings.com +serenadethailand.com +serenalaila.com +serendipityloves.website +serendipitysugarscrub.com +serenite.site +serenitynorth.org +serenitysjournal.com +seret.video +sergepreventstill.site +sergeykudria.com +sergeymavrodi.org +sergeypetrov.nanolv.com +sergiogaete.com +sergiopalm.ru +sergiovillellacorporate.com +sergiowatches.com +sergw.com +serhatcakar.online +serhuwadewtr.website +serial-hd.online +serializing971ze.online +serialkillers.us +serialkinogoru.ru +serialkinopoisk.ru +serialreview.com +serials-only.ru +serichs.xyz +series-online.club +series-online.info +serieson.best +seriesonlinegratis.org +seriestreaming.website +seriesviatorrent.biz +seriesvip.club +seriiletisimreklam.xyz +serik.website +serimet.ru +seringolt.ru +seriousalts.de +seriyaserial.ru +serkankalemcilerkimdir.org +sermonizer853ip.online +sernativo.com +serohiv.com +seron.top +serosurvey.ru +serp-clicker.com +serpclicker.com +serpina.website +serpshooter.top +serrurierperigny.com +sersageurn.icu +sersandsol.cf +sersandsol.ga +sersandsol.gq +sersandsol.ml +sersandsol.tk +sersome2201c.monster +sert2201a.site +sertecfarma.cat +sertf.press +serupedia.info +serv.craigslist.org +serv20.site +serv20.website +serv20.xyz +servachok-top.ru +servaux.org +servdorda.cf +servdorda.ga +servdorda.gq +servdorda.ml +servedi.email +serveextra.com +server-id.com +server-rus-v.ru +server.ms +server8.site +serverfor.email +servergal.com +serverhytale.ru +serverjavascript.com +serverlessintelligence.com +servermaps.net +servermuoihaikhongbon.com +serverpro.cf +serverqiu.com +servethe.net +servetserifoglu.com +serveup.press +serveurweb.org +servewareshop.life +service-911.ru +service-telecom.us +service-xiaomi.ru +service4.ml +servicebusinessmagazine.com +serviced.site +servicefile.ru +servicegulino.com +servicemercedes.biz +services-my3gvtnz-auth.icu +services.pancingqueen.com +services391.com +services4you.de +servicesbydeluxe.com +servicesfor.us +servicevideos.org +servicewhirlpool.ru +servicing-ca.info +servicioymantenimientos.com +servinghamptonroads.net +servisetcs.info +servismerkezi.info +servisy-acura.ru +servisy-alfaromeo.ru +servisy-aud1.ru +servisy-baw.ru +servisy-bentley.ru +servisy-byd.ru +servisy-cadillac.ru +servisy-chery.ru +servisy-chrysler.ru +servisy-daihatsu.ru +servisy-dodge.ru +servisy-faw.ru +servisy-ferrari.ru +servisy-hummer.ru +servisy-infiniti.ru +servisy-isuzu.ru +servisy-jaguar.ru +servisy-jeep.ru +servisy-kla.ru +servisy-lincoln.ru +servisy-mini.ru +servisy-oldsmobile.ru +servisy-pontiac.ru +servisy-rangerover.ru +servisy-saab.ru +servisy-shkoda.ru +servisy-smart.ru +servisy-vaz.ru +servisy-volksvvagen.ru +serviteschoolhbd.com +servizioeuropeodisolidarieta.com +servizioeuropeodisolidarieta.info +servizioeuropeodisolidarieta.net +servogamer.ga +servonews.ru +serwervps232x.com +serwervps24.pl +serwis-agd-warszawa.pl +serwisapple.pl +serwpcneel99.com +ses4energy.org +ses4services.net +seshirpetfood.com +sesknehtmarka.space +seskow.monster +seskvizyon.com +seslibayrak.xyz +seslibeter.xyz +seslifake.xyz +sesligoznurum.xyz +seslikalbimsin.com +seslikum.online +sesliloca.xyz +seslimaya.xyz +seslinokta.xyz +sesliozgurce.online +sesliozgurce.xyz +seslipak.xyz +seslisaha.online +seslisaha.xyz +seslisaklimdasin.xyz +seslisato.xyz +seslisevbeni.xyz +seslisevhet.xyz +seslisinemce.xyz +seslisizle.xyz +sesliturku.xyz +sesmale.us +sesnsesy.shop +sespovodkneht.space +sestitoboysbmx.com +sesysesn.shop +setabahis.net +setabahis.org +setafon.biz +setakepenk.xyz +setbet.icu +setefi.tk +setekshome.site +sethighknav.cf +sethighknav.ga +sethighknav.gq +sethighknav.ml +sethighknav.tk +sethtroxler.net +setia.biz +setiabudihitz.com +setiantang168.com +setki-optovik.ru +setrabet1.com +setrabet13.com +setrabet3.com +setrabet4.com +setrabet6.com +setrabet7.com +settcyre.cf +settcyre.ga +settcyre.gq +settcyre.ml +settcyre.tk +settingsizable.info +settleddivorce.com +settleforagoodcause.org +settleovhs.online +settsunmang.cf +settsunmang.ga +settsunmang.ml +settsunmang.tk +setun-alg.online +setuperu.ru +setupexpress.com +setupgamblingstink.site +setutime.com +setvolta.com +setyourownfee.com +setzd.us +seulasgoo.gq +seulasgoo.ml +seulasgoo.tk +seuvi8.us +sev-relax.ru +sev-vybor2020.ru +sevac.info +sevadhamunjha.com +sevadus.net +sevadusgaming.org +sevemy.us +seven-hotels.com +seven-neuro.ru +seven-shoes.ru +seven.emailfake.ml +seven.fackme.gq +seven6s.com +sevenfigureadvisorsecrets.com +sevenforce.su +sevengame.live +sevengame.ninja +sevengame.wtf +sevenpalms30a.net +sevensenseagency.com +sevensjsa.org.ua +sevensmail.org.ua +seventhposition.com +severimlers.site +sevgisoysal.org +sevilshop.ir +sevingetraadele.com +sevirama.com +sevket123.ga +sevketbaba.cf +sevketbaba.ga +sevketbaba.ml +sevketbaba.tk +sevketbaba2.cf +sevketbaba2.ga +sevketbaba2.ml +sevketbaba2.tk +sevketbaba3.ml +sevketbaba3.tk +sevketbehcet.cf +sevketbehcet.tk +sevketveyargalari.ml +sevkiakdemir.xyz +sevminurcayman.tk +sevsotreasure.com +sewafotocopy-xerox.com +sewaipad.com +sewamobilbaru.com +sewamobilharian.com +sewardtours.com +sewesi.info +sewmanyblanks.com +sewpack.com +sex-chicken.com +sex-guru.net +sex-mobile-blog.ru +sex-ru.net +sex-vox.info +sex.dns-cloud.net +sex.si +sexactive18.info +sexakt.org +sexboxx.cf +sexboxx.ga +sexboxx.gq +sexboxx.ml +sexboxx.tk +sexcamsex.org +sexe-pad.com +sexe-pas-cher.net +sexemamie.com +sexforswingers.com +sexfotka.com +sexical.com +sexini.com +sexioisoriog.gr +sexsation.ru +sexshop.com +sexsmi.org +sextoyth.com +sexxfun69.site +sexy.camdvr.org +sexyalwasmi.top +sexyalwax.online +sexyfashionswimwear.info +sexyjobs.net +sexylingeriegarte.com +sexymail.gq +sexymail.ooo +sexypleasuregirl.com +sexysleepwear.info +sexytoys24.de +sexyworld.com +sey6cs.us +seychelles-holiday.com +seyf.kim +seylifegr.gr +seyma.ga +seymourelderlawgroup.com +seymourindustries.com +seymourrealestateagents.com +seymourstudio.us +seyretbi.com +sez68r.us +sezersoycan.com +sezet.com +sezon.life +sf-getcare.org +sf-nero.site +sf-ss.ru +sf15.space +sf16.space +sf23.space +sf49ersshoponline.com +sf49erssuperbowlonline.com +sf49ersteamsshop.com +sfa.app +sfa59e1.mil.pl +sfab.nu +sfamo.com +sfbayproductions.com +sfbottlebank.com +sfc3files.com +sfd-aa.com +sfd-bb.com +sfdgdmail.com +sfdjg.in +sfdsci.us +sfer.com +sferamk.ru +sferyshar.xyz +sfes.de +sfgov.net +sfgpros.com +sfjnsdjg.cf +sflexi.net +sfmail.top +sforamseadif.xyz +sforvike.cf +sforvike.ga +sforvike.ml +sforvike.tk +sfpc.de +sfrty.ru +sfsa.de +sfvoice.org +sfxmailbox.com +sfzh6p.info +sfznix.club +sg4d.club +sgafest.ru +sgag.de +sgate.net +sgb-itu-anjeng.cf +sgb-itu-anjeng.ga +sgb-itu-anjeng.gq +sgb-itu-anjeng.ml +sgb-itu-anjeng.tk +sgb-itu-bangsat.cf +sgb-itu-bangsat.ga +sgb-itu-bangsat.gq +sgb-itu-bangsat.ml +sgb-itu-bangsat.tk +sgb-sukabumi.com +sgb.jembud.icu +sgb.team +sgbteam.hostingarif.me +sgbteambalikpapan.me +sgbtukangsuntik.club +sgcarpool.com +sgdati.com +sgdetian.com +sgds.cd +sge-edutec.com +sge-energia.com +sgep0o70lh.cf +sgep0o70lh.ga +sgep0o70lh.gq +sgep0o70lh.ml +sgep0o70lh.tk +sgesvcdasd.com +sgfqqz.site +sggxq.club +sghostfinder.com +sghostreview.com +sgilde.com +sgilder.com +sgiochi.it +sgizdkbck4n8deph59.cf +sgizdkbck4n8deph59.gq +sgizuw.us +sgmsoffice365.com +sgp-cu.online +sgphoki.com +sgraf.ru +sgsf5y.us +sgskaters.com +sgtmozag.shop +sgtt.ovh +sgw186.com +sgxboe1ctru.cf +sgxboe1ctru.ga +sgxboe1ctru.gq +sgxboe1ctru.ml +sgxboe1ctru.tk +sgxwv.com +sh-feldpc.com +sh-ftjs.com +sh-jnd.com +sh.soim.com +sh22.space +sh25.space +sh26.space +sh29.space +sh3rl0ck.com +sh77.net +sh90be.club +sha2iniekaa.xyz +shaadfamily.com +shaadiperfect.com +shaafshah.com +shabablad3m.info +shababu.site +shabbag.com +shabbag.net +shacasinoheat.ru +shackachaga.com +shacksanitizer.site +shadap.org +shadesofopera.com +shadesstreet.com +shadezbyj.com +shadion.com +shadow-net.ml +shadowcraft.online +shadowis.site +shadowlinepos.com +shadowoftheday.net +shadowpowered.com +shadowslots.info +shadygrovedermatology.com +shadylink.com +shadys.biz +shaghayegh1.com +shagranch.com +shagun-swords.com +shahabart.com +shahapta.org +shahbendar.com +shahidkamal.com +shahimul.tk +shahobt.info +shahobt.org +shahrvandyar.com +shahs.best +shahzad.org +shake.monster +shakebr.xyz +shakebrow.xyz +shakecove.xyz +shakemain.com +shaken.baby +shakensoftware.org +shakerou.buzz +shakewor.xyz +shakirabalti.com +shakpotok.com +shalar.net +shamanimports.com +shamanowners.com +shamansglobalhub.com +shamechao.press +shamepian.icu +shameweekendstrap.site +shamsalma3aref.xyz +shan999.net +shandongji232.info +shang-hai-chinese-takeaway.com +shang-hai-chinese.com +shangbad.xyz +shanghaichinesedublin.com +shanghaithai-dublin1.com +shangrila-ongar.com +shangtwo.com +shanieports.buzz +shanitakeaway.com +shannon.host +shannonil.buzz +shannonkweston.com +shannonrichmond.com +shannonyaindgkil.com +shantale.ru +shaonianpaideqihuanpiaoliu.com +shaparak90.xyz +shapeej.xyz +shapeeje.xyz +shapelybottom.com +shaper.sk +shaperu.xyz +shapesomewood.site +shapewearinfo.online +shapka-fashion.ru +shapoo.ch +shapsugskaya.ru +shaqir-hussyin.com +shar-kov.ru +sharaproctor.com +shardleo.com +share4charity.net +share4now.com +sharebooklib.com +sharecaregiver.net +sharedmailbox.org +sharedspiritsdev.com +sharedzone.org +shareess.icu +shareflix.xyz +sharehaus.org +sharehealthspot.club +sharela.xyz +sharelay.xyz +sharelaye.xyz +sharelist.tech +sharem.store +shareman-rus.ru +sharemycoachindio.com +sharepoint-consultants.sydney +shares.tel +sharespace.link +sharespace.school +sharesupermarket.com +sharetime.app +shargemostaghim.com +shargemostagim.com +shargmostaghim.com +sharikipodariki.ru +sharing-storage.com +sharingit.net +sharjemostagim.com +sharjeno.xyz +shark-flexi.com +sharkbayresearch.org +sharkcordfree.com +sharkfaces.com +sharkflexi.com +sharkgamer.com +sharklasers.com +sharkliferp.ru +sharkliveroil.in +sharklove.life +sharksteammop.in +sharkupright.com +sharkuprights.com +sharmanetworksolutions.biz +sharmmassage.ru +sharonfreach.com +sharonwiebe.com +sharpfibre.fr +sharpmail.com +shartse.org +sharyndoll.com +shastra.ru +shat.biz +shat.gives +shat.info +shat.live +shat.ninja +shat.store +shat.tech +shatelvpn.com +shatelvpn.xyz +shats.com +shattersense.com +shattuck.network +shattuck.ninja +shattuck.online +shattuck.services +shattucks.us +shavawnforester.org +shaveling.best +shaw.pl +shawarmarealalgeciras.com +shayanashop.biz +shaylarenx.com +shayuav.com +shayzam.net +shb90b.club +shbe90.club +shbg.info +sheareddeals.com +shearerpain.com +shebabu.site +shebenbeton.ru +shebhyy.com +shedik2.tk +shedplan.info +shedplan3547.xyz +sheepstai.press +sheepwatc.fun +sheepwo.xyz +sheepwor.xyz +sheepwort.xyz +sheerglove.com +sheetbooks.com +sheetguestwarm.website +sheetknee.press +shefruneta.ru +sheikhdailyshop.com +shejiapu.com +shejumps.org +shelby-styles.com +shelbymattingly.com +sheldh.xyz +shelfdeb.xyz +shelffe.icu +shelfte.xyz +shelfteac.xyz +shelkovo-3.ru +shellenge.net +shellfamilywellness.com +shellhenry.com +shellxvmi.online +shellylawpc.info +shellylawpc.org +shelmerston.net +shelord.site +shelovestogive.org +shelterinnovations.com +sheltex.blog +shemlmstore.com +shenangovalleyareascalemodelers.com +shengda2.net +shengshi.bet +shengunde.com +shenji.info +shenlex.com +shenmaexpress.com +shenmefan.com +shenmege.com +shenmidaima.com +shenmzycj.com +shenqiancun.com +shenshahfood.com +shenshizhan.com +shepherds-house.com +shepherdscrusade.com +shequechicago.com +sherepunjabtakeaway.com +sherlockholmesforkids.com +sheronhouse.co +sherrtty.xyz +sherry-rb.com +sherryrb.com +sherrywilliamsoncollection.com +sherrywilliamsondesign.com +sherrywilliamsondesigninc.com +sherwab.ru +shewantshim.com +shewishop.ru +shey-sama.ru +sheybe.live +sheytg56.ga +shh10.space +shhmail.com +shhuut.org +shi173.com +shiakidi.com +shiales.com +shiba1.xyz +shibabu.site +shibo338.net +shicentantvogue.com +shichuan.website +shicoast.com +shid.de +shieldedmail.com +shieldemail.com +shieldingtree.org +shifangba.me +shift-coin.com +shiftcampaigns.com +shiftcenters.com +shifted.media +shiftfeig.xyz +shifthealth.online +shiftincubator.com +shiftixiaj.space +shiftmail.com +shiftmayo.us +shiftnewyorkcity.com +shiftsacramento.com +shiftsanfrancisco.com +shiftstation.com +shifttr.xyz +shifttruc.icu +shiftwomenglobal.com +shifty.ninja +shigellainformation.com +shijieyinyangzhai.com +shijihuazhong.com +shikhartakeaway.com +shiklebas.info +shiliao.info +shiloa.com +shim.tech +shimano-catan.ru +shimano-nasci.online +shimano-sedona.online +shincode.tech +shineal.xyz +shineali.icu +shineali.xyz +shinedonor.buzz +shineru.ru +shinethatlight.com +shinewago.buzz +shinglestreatmentx.com +shining.one +shininglight.us +shiniseshop.com +shiniseshop.net +shinisetoriyose.com +shinisetoriyose.net +shinisetsuhan.com +shinnemo.com +shinsplintsguide.info +shinyandchrome.xyz +shinystagesecretsreviews.com +shio365.com +shiok88.info +shiok888.com +ship-from-to.com +shipboard.ru +shipfromto.com +shiphang.club +shiphangmy.club +shiphazmat.org +shipping-regulations.com +shippingcontainerhousing.org +shippingterms.org +shiprol.com +shipshiley.ru +shipyoufurniture.com +shirlehouse.co +shirlevusi.space +shirleybowman.com +shirleyespinozachiropractic.com +shirleylogan.com +shiroinime.ga +shironime.ga +shironime.ml +shironime.tk +shirtical.com +shirtmakers.de +shirtstopshop.site +shirttwo.com +shisazabenie.fun +shishie.com +shishire6.xyz +shishire8.xyz +shishire9.xyz +shishish.cf +shishish.ga +shishish.gq +shishish.ml +shishuai0511.com +shit.cards +shit.dns-cloud.net +shit.dnsabr.com +shit.exposed +shit.tools +shitaiqi.com +shitaway.cf +shitaway.flu.cc +shitaway.ga +shitaway.gq +shitaway.igg.biz +shitaway.ml +shitaway.nut.cc +shitaway.tk +shitaway.usa.cc +shitmail.cf +shitmail.de +shitmail.ga +shitmail.gq +shitmail.me +shitmail.ml +shitmail.org +shitmail.tk +shitmycatkills.com +shitposting.agency +shitservices.online +shittymail.cf +shittymail.ga +shittymail.gq +shittymail.ml +shittymail.tk +shitware.nl +shiunyean.tk +shiva-spirit.com +shivanienkij.xyz +shivaspirittv.com +shivelygallery.com +shiyakila.cf +shiyakila.ga +shiyakila.gq +shiyakila.ml +shizana.com +shizanasaeed.com +shizenken.online +shjdmedical.com +shjnddty.ml +shjto.us +shkololo.org +shluy.com +shm-au.host +shm-au.site +shmeriously.com +shmlkg.club +shobeh.com +shockhorror.com +shockingme.com +shockinmytown.cu.cc +shockmail.win +shocknewsru.ru +shocktours.com +shoddyaf.com +shoeclean.site +shoejanitor.com +shoemakerschool.com +shoeonlineblog.com +shoereporter.com +shoes-market.cf +shoes-sneakers2.site +shoes.com +shoes.net +shoesbrandsdesigner.info +shoesclouboupascher.com +shoeskicks.com +shoesking.su +shoeslouboutinoutlet.com +shoesmall.site +shoesnew278.ru +shoesonline2014.com +shoesonline4sale.com +shoesshoponline.info +shoesstock.ru +shoesusale.com +shoevs.com +shoklin.cf +shoklin.ga +shoklin.gq +shoklin.ml +shokoladsamilit.xyz +shokoshop.ru +shomalbet.site +shomeimprovementz.com +shonky.info +shoo-v777.com +shoo-v888.com +shoonyatama.com +shoot2splatter.com +shooters-ott.com +shootingstarrealty.com +shop-action-zero.ru +shop-csskin.ru +shop-discount-med.info +shop-horse.ru +shop-konditer.ru +shop-krossovki.ru +shop-massage.site +shop-nakidki.ru +shop-nik.ru +shop-retail-info.ru +shop-store-prod.ru +shop-teh.host +shop-veneers-smile.site +shop-wow-sale.ru +shop.lalaboutique.com +shop.winestains.org +shop2021.club +shop2021.online +shop247.top +shop349forus.com +shop4dream.info +shop4mail.net +shop4seals.com +shop4u2.com +shopaa318.xyz +shopaccco.com +shopaepi.com +shopaepi.net +shopasrss.com +shopatrips.com +shopbaby.me +shopback.asia +shopback.tech +shopbackgo.com +shopbagsjp.org +shopballball.com +shopbhop.company +shopburberryjp.com +shopbystyles.com +shopcartaillightsonline.site +shopcelinejapan.com +shopclone.com +shopcrazydeal.com +shopdigital.info +shopdoker.ru +shopdream.info +shopdream1.ru +shopeng.website +shopenss.online +shopepikg.club +shopfalconsteamjerseys.com +shopgiatot.website +shopgtvs.ru +shophall.net +shophapham.site +shophuge.com +shopicron.com +shopikcentr.ru +shopikss.fun +shopilingo.xyz +shoping25.ru +shopingas.site +shopingmax.ru +shopingmir.ru +shopingwatch.biz +shopinia.com +shopins2.site +shopins4.site +shopinwe.site +shopjpguide.com +shopjumy.com +shopkaws.com +shoplargeappliances.com +shopliterallymagic.live +shoplouisvuittonoutlets.com +shopmail.ga +shopmayruamat.com +shopmoza.com +shopmp3.org +shopmulberryonline.com +shopmystore.org +shopn2017.com +shopnessales.site +shopnewtren.fun +shopnflnewyorkjetsjersey.com +shopnflravenjerseys.com +shopnowhq.xyz +shopoglot.ru +shopokonline-man.space +shoponlinemallus.com +shoponlinewithoutcvv.ru +shopop.info +shoporder.xyz +shopourstudio.biz +shopperseeking.com +shoppibooks.com +shopping-1-go.online +shopping-3-go.online +shopping-4-go.online +shopping-5-go.online +shopping-6-go.online +shopping-7-go.online +shopping-8-go.online +shopping-9-go.online +shopping-cafe.info +shopping-line.info +shopping-mart-new.ru +shopping-mart.info +shopping-page.info +shopping-place.info +shopping-planet.info +shopping-power.info +shopping-press.info +shopping-real-factory.site +shopping-source.info +shopping-team.info +shopping-ville.info +shoppingballball.com +shoppingbuyo.com +shoppingcabinets.com +shoppinglove.org +shoppingpower.info +shoppingsecretnews.club +shoppingsource.info +shoppingteam.info +shoppingtostore.com +shoppingtrends24.de +shoppinguggboots.com +shoppingville.info +shoppingware.info +shoppiny.com +shoppradabagsjp.com +shopprime.work +shoppyhunt.com +shoppymarket.shop +shoppypay.shop +shopravensteamjerseys.com +shoproyal.net +shopru.host +shopsarnialambton.com +shopseahawksteamjerseys.com +shopser.ru +shopsgid.ru +shopshoes.co.cc +shopshopboongaja.com +shopshowlv.com +shopsmartclassified.com +shopsport.xyz +shopsred20.site +shopstarlow.space +shopsuperbowl49ers.com +shopsuperbowlravens.com +shopsza.com +shoptheshadowconspiracy.com +shoptragop.net +shoptumen.ru +shopukra-prust.site +shopuniformswarehouse.com +shopuniformwarehouse.com +shopussy.com +shopwalmarte.com +shopwrights.com +shopylingo.xyz +shopytopsale-lika.space +shorefitmb.com +shorelinehotelguest.com +short-haircuts.co +shortavi.tk +shorten.tempm.ml +shorterurl.biz +shortmail.net +shortopapp.site +shortpacket.org +shortsaleadv.com +shorttermloans90.co.uk +shorttermstaynyc.com +shorttimemail.com +shortybud.com +shortyliqs.net +shortyour.com +shoshaa.in +shotarou.com +shotarvaladze.site +shotcallerpress.com +shotflow.net +shotmail.ru +shotsdwwgrcil.com +shotsub.xyz +shouldercut.com +shoulderlengthhairstyles.biz +shouldermobilityflow.com +shouldpjr.com +shoutissu.site +shoutitout.biz +shoutworthy.com +showartcenter.com +showbeez.ru +showbizdirect.com +showboxmovies.club +showboxmovies.site +showbusians.ru +showcasebrand.com +showcasespas.com +showcoachfactory.com +showlogin.com +showme.social +showmeyourbest.design +shownabis.ru +showpets.store +showscoop.com +showslow.de +showstorm.com +showtimeanytimecomactivate.com +showup.us +showyoursteeze.com +shp7.cn +shpaten.site +shred50.com +shrib.com +shringarmarketing.com +shrinkedin.net +shroudofturin2011.info +shsbhns.xyz +shtang.travel +shtf2020.online +shubhlabh.ong +shuffle.email +shufflingzebra.com +shufuni.cn +shuifuli.com +shuimitaoshipin.xyz +shuimitaowang.xyz +shulmansystem.com +shuoshuotao.com +shupat.site +shurs.xyz +shusheyv.xyz +shut.name +shut.ws +shutaisha.ga +shutenk-shop.com +shuttee.com +shutterupsports.com +shutupandbet.com +shutupmeg.com +shuzi.link +shved-auto.ru +shvedian-nedv.ru +shvejnyevojska.ru +shwetaungcement.org +shwg.de +shwnshops.com +shy5mz.us +shyamguesthouse.icu +shyguymlm.com +shyuanjing.com +si-initiatives.org +si038bdxa.buzz +si039gonn.buzz +si040dcqe.buzz +si7kuh5p7hghha7.xyz +si94ve.com +siam-orchidee-ratingen.com +siambretta.com +siameducationalexperience.com +siamhd.com +sianautocentre.com +sianyhealth.com +siapabucol.com +siapaitu.online +siararab.cf +siararab.gq +siararab.tk +siasat.pl +siatkiogrodzeniowenet.pl +siavisos.com +sib-podarki.ru +sib3.xyz +sibc6f.site +sibelor.pw +siberask.com +siberiancontext.online +siberiasite.ru +siberkafa.com +sibigkostbil.xyz +sibirskiereki.ru +siblaka.ga +siblaka.ml +siblaka.tk +sibliecent.cf +sibliecent.ml +sibliecent.tk +siboneycubancuisine.com +sibphistband.cf +sibphistband.ga +sibphistband.gq +sibphistband.ml +sibphistband.tk +sibtehnosnab.ru +sibulifi.shop +siburabem.host +sicamail.ga +sicasa.casa +sicherere-verbindungen.xyz +sicheresleben.com +sicherung-9827349-datencenter-check.ru +sichtdtelar.ga +sichtdtelar.gq +sichtdtelar.tk +sickseo.co.uk +sicure.gq +sicurello.website +sid63.space +sidamail.ga +siddhacademy.com +sidebysidecycle.com +sidedeaths.co.cc +sidelka-msk.ru +sidelka-mytischi.ru +sidelka-pogilie24.ru +sidelkadlyalezhachego.ru +sidero-prokat.ru +siderurgybu.info +sidetech.info +sidhutravel.com +sidlece.xyz +sidler.us +sidmail.com +sidosa.info +sieczki.com.pl +siegeshin.us +siegesteam.buzz +siejieriau.info +siejieriau.org +siejieriau.xyz +siembrahotel.com +sienna12bourne.ga +siennajones.buzz +siennamail.com +siennazolman.com +sieprogoun.cf +sieprogoun.ga +sieprogoun.ml +sieprogoun.tk +sieprovev.cf +sieprovev.gq +sierra-leone.com +sieteluchas.com +sietepecados.com +sieucuong.com +sieuthidosi.website +sieuthidvd.com +sieuthifb.work +sieuthimayhutbui.website +sieuthirau.website +sieuthitihon.com +sieviatoua.cf +sieviatoua.ga +sieviatoua.ml +sieviatoua.tk +sifedya.ru +siftportal.ru +sify.com +sigarapazari.xyz +sigarety.info +sigbackmi.cf +sigbackmi.ga +sigbackmi.gq +sigbackmi.ml +sigbackmi.tk +sighspecuab.cf +sighspecuab.ga +sighspecuab.gq +sighspecuab.tk +sightcoas.xyz +sightdir.com +sightseeingtoursvegas.com +sighzove.cf +sighzove.ga +sighzove.gq +sighzove.tk +sigmabestshop.online +sign-up.website +signal.best +signal.sale +signal.tools +signaled.live +signaled.pro +signaled.us +signalfireranch.com +signalhd.cd +signals.reviews +signals.sale +signalstore.ru +signaltoto.com +signaltoto.net +signatureburgerculvercity.com +signaturefencecompany.com +signaturehomegroup.net +signdastsaq.cf +signdastsaq.ga +signdastsaq.gq +signings.ru +signintoemail.net +signnanlu.cf +signnanlu.ga +signnanlu.gq +signnanlu.tk +signstaller.com +signstallers.info +signstallers.net +signstallers.org +signup.vote +signwin.site +sigurs.net +sihirfm.net +sihirliblog.com +sihupe.info +siirtfirmarehberi.xyz +siis3s18lwdax43.xyz +siitk.live +sijeeri.cf +sijeeri.ga +sijeeri.tk +sika3.com +sikaland.org +sikataja.tech +sikatan.co +sikauni.com +sikdar.site +sikh.best +sikharchives.com +sikinchel.info +sikis18.org +sikis31.com +sikomo.cf +sikomo.ga +sikomo.gq +sikomo.ml +sikomo.tk +sikseydin.info +siktiket.com +sikuder.me +sikumedical.com +sikux.com +silaaccounting.com +silacon.com +silahkanbeli.com +silaleg.cf +silaleg.ga +silaleg.gq +silaleg.tk +silda8vv1p6qem.cf +silda8vv1p6qem.ga +silda8vv1p6qem.gq +silda8vv1p6qem.ml +silda8vv1p6qem.tk +sildalis.website +silencei.org.ua +silencejunb.email +silenceofthespam.com +silent-art.ru +silentdarkness.net +silentsuite.com +silesian.design +silex.cf +silex.ga +silicimhyr.space +silico.llc +silicolens.com +siliconarabia.com +siliconboost.com +siliconvip.com +silimo.rocks +siliwangi.ga +silkbrush.net +silkbrush.us +silkbrushes.biz +silkbrushes.com +silkbrushes.net +silkbrushes.us +silkgram.xyz +silkroadproxy.com +sillver.us +silmond.com +silnie-privoroti.ru +silosta.co.cc +silpay3s.ru +silsilah.life +silvago.store +silvanaboutique.com +silvanahair.com +silver-bullet.se +silver-liningcleaning.com +silvercheck.xyz +silvercoin.life +silverflare.com +silverfox.dev +silverfox.icu +silverfoxpocket.com +silvergold.global +silvergoldbull.global +silvergolddepositories.com +silvergoldloans.com +silverlinecap.com +silverliningreflections.com +silverpromask.com +silverseacruises.org +silverstarmarine.com +silverthornepavilion.org +silviadistefano.it +silxioskj.com +silybor.com +sim-simka.ru +sim25.com +sim7k.fun +simaenaga.com +simails.info +simamg.com +simari.tk +simasdia.cf +simasdia.ga +simasdia.ml +simasdia.tk +simba88club.com +simba88play.com +simbagames.se +simbet33.com +simbet55.com +simbet66.com +simbolospatrios.info +simbos.pro +simcity.hirsemeier.de +simcoepainting.com +simemia.co +similardozens.com +simmanllc.com +simoka73.vv.cc +simonhampel.net +simonlychecker.net +simonstreams.live +simpacked.com +simpgava.cf +simpgava.ga +simpgava.gq +simple-dinner-recipes.com +simple-mail-server.bid +simplealternativescares.com +simplebox.email +simplebrackets.com +simplebt.com +simplecoffeehouse.com +simpledress.online +simpleemail.in +simpleemail.info +simplehealthybodywellnesspro.com +simplehouseexit.com +simpleitsecurity.info +simplejourneyguide.com +simplelifetimeincome.com +simplelifthub.com +simplemail.in +simplemail.top +simplemailserver.bid +simplemerchantcapital.com +simplenews.info +simplepaylink.com +simplepeacock.com +simplervision.org +simpleseniorliving.com +simplesocialmedia.solutions +simplesport.ru +simpletextmarketing.com +simpleverification.com +simpleverni.icu +simplictylegal.com +simplisse.me +simplisseminerals.com +simply-email.bid +simply.cheap +simply4seniors.com +simplyamulet.ru +simplyaremailer.info +simplydelivered.online +simplyemail.bid +simplyemail.men +simplyemail.racing +simplyemail.trade +simplyemail.win +simplyfireworksdirect.com +simplyhorsemanship.com +simplypottytrain.com +simplysportsnews.xyz +simplysweeps.org +simplytastythaijax.com +simplythcfreecbd.com +simplyui.com +simposio.pro +simpsmarex.cf +simpsmarex.ga +simpsmarex.gq +simpsmarex.tk +simrig.shop +simscity.cf +simsdsaon.eu +simsdsaonflucas.eu +simsession.com +simsmail.ga +simsosieure.com +simspec.net +simtoanquoc.com +simu.solar +simulink.cf +simulink.ga +simulink.gq +simulink.ml +sin-mailing.com +sin.cl +sin88.org +sina.toh.info +sinalke.cf +sinalke.ga +sinalke.gq +sinalke.ml +sinalke.tk +sinangokergoz.com +sinasina.com +sinasinaqq123.info +sincanankara.xyz +sincankombiteknikservisi.com +sincitymurrcon.org +sincroaste.com +sinda.club +sindhcollegeeducation.com +sindu.org +sinema.ml +sinemail.info +sinemailing.com +sinemalab.com +sinfiltro.cl +singapore-nedv.ru +singaporelor.com +singaporetriennale.com +singaporetriennial.com +singatoto.net +singhtv.online +single-lady-looking-for-man.club +singlecoffeecupmaker.com +singlecyclists.org +singleearbud.com +singleearphone.com +singlenomore.com +singles-day.global +singlesearch12.info +singlespride.com +singlesx.site +singletravel.ru +singlex.site +singlexx.site +singonline.net +singotes.xyz +singpost.space +singpost.website +singssungg.faith +singtechsingapore.com +singtelmails.com +singulptxr.online +singyeang.com +sinhsins.shop +sinhvien.asia +sinisterbrain.com +sink.fblay.com +sinkingbody.com +sinkorswimcg.com +sinmailing.com +sinnlichemittel.info +sinnlos-mail.de +sinnott.us +sino.tw +sinoease.com +sinology.com +sinomd.com +sinopite.xyz +sinopotocilingir.xyz +sinplefx.com +sinplego.com +sinsinfo.com +sinterklaasactie.net +sintesengenharia.com +sinvis.ru +sinyomail.gq +siofreelan.cf +siofreelan.ga +siofreelan.gq +siofreelan.ml +siofreelan.tk +siolence.com +siomangwezinationalpark.org +siononpa.cf +siononpa.ga +siononpa.gq +siononpa.ml +sionumin.monster +siosfatuat.cf +siosfatuat.ga +siosfatuat.tk +siostocet.cf +siostocet.ga +siostocet.ml +siostocet.tk +sipbone.com +siphonula.best +sipinitial.top +sippingonhistory.org +siptogel.org +sir1ddnkurzmg4.cf +sir1ddnkurzmg4.ga +sir1ddnkurzmg4.gq +sir1ddnkurzmg4.ml +sir1ddnkurzmg4.tk +sirbingley.com +sireparamos.com +sirf.ong +sirgoo.com +sirhenibushveldcamp.com +siri-dublin.com +sirihealthcare.com +siriuscoffee.online +sirjan.shop +sirji.ru +sirostand.site +sirplusplus.com +sirr.de +sirver.ru +sis-informatique.com +sis52.xyz +sisahy.info +sisari.ru +sisemazamkov.com +sisipizzatakeaway.com +sisjmps.biz +sisko7.com +sislietfal2kbb.xyz +sislovesme.pro +sismemembran.com +sismeyapi.com +sismolo.ga +sissyproducts.com +sistemasderadiocomunicacionaxc.com +sisterjaneshop.com +sisteronabudget.com +sistewep.online +sisvode.cf +sisvode.ga +sisvode.gq +sisvode.ml +siswa.shop +sitdown.com +sitdown.info +sitdown.us +site-566g.online +site-bites.design +site-flowers.ru +site-games.ru +site-imperial.ru +site-recette.com +site-student.online +site-value.us +site24.site +site2apps.com +site4you.site +siteasa.website +sitefilm10.xyz +sitegoooroo.com +sitehost.shop +sitehosting.shop +sitemap.uk +sitemapsorg.site +sitenet.site +sitengin.com +siteparis.com +sitepenguin.com +siteposter.net +sitereplicator.net +sitersz.site +sites4friends.com +sitestyt.ru +sitetechnician.com +sitetosite.site +sitetwass.fun +siteuvelirki.info +sitkowskischool.com +sitlicou.cf +sitlicou.ga +sitlicou.ml +sitlicou.tk +sitnicely.com +sitnjoybalivillas.com +sitoautos.info +sitolowcost.com +sitrincare.org +sitroningdown.website +sitss.biz +sittingbournekebab.com +situationwa.email +situsbandarqiu.website +situsbola88.asia +situsgapleqq.com +situsjudibola88.com +situsjudionline.rocks +situsoke.online +situspoker.monster +situspokergo.info +situspokergo.net +siuleong.com +siundcu.com +siux3aph7ght7.cf +siux3aph7ght7.ga +siux3aph7ght7.gq +siux3aph7ght7.ml +siux3aph7ght7.tk +sivago.xyz +sivasakthitravels.xyz +sivasgeziyor.com +sivasgrandmasaldugunsarayi.com +sivashaberci.xyz +sivashaykoop.com +sivasisitmeengelliler.com +sivasliderfm.xyz +sivasligardaslar.xyz +sivassecimanketi.com +sivasspo.xyz +sivassporluyuz.xyz +sivasticaretmerkezi.com +sivasticaretmerkezi.xyz +siverekkuce.xyz +sivtmwumqz6fqtieicx.ga +sivtmwumqz6fqtieicx.gq +sivtmwumqz6fqtieicx.ml +sivtmwumqz6fqtieicx.tk +sivu.site +sivwb.us +siwonmail.com +six-six-six.cf +six-six-six.ga +six-six-six.gq +six-six-six.ml +six-six-six.tk +six.emailfake.ml +six.fackme.gq +sixbeagle.com +sixdrops.org +sixfgasgdo.ga +sixfgasgdo.gq +sixfgasgdo.ml +sixfgasgdo.tk +sixfigureactions.com +sixhappinessbettystown.com +sixi1916.com +sixi789.com +sixpackdifference.com +sixsharp.com +sixsigmaconsultants.com +sixt7.com +sixteenmeasures.dev +sixteenmeasures.live +sixteenthings.com +sixthsolid.com +sixtptsw6f.cf +sixtptsw6f.ga +sixtptsw6f.gq +sixtptsw6f.ml +sixtptsw6f.tk +sixtyk.com +sixtysixx-winter-sale.ru +sixxx.ga +sixyxi.cf +sixyxi.tk +siyahsarimsak.info +siyahsarimsak.online +siyahsarimsakresmi.site +siyahsarimsaksatis.info +siyamkhanbd.tk +siyerrehberi.xyz +siyeu.com +siyiel.icu +sizableonline.info +sizemc.store +sizespeed.com +sizeviewtrading.com +sizincarsi.xyz +sizinelan.biz +sizzlemctwizzle.com +sizzmurke.cf +sizzmurke.ga +sizzmurke.ml +sj206.com +sj20bt.net +sj3wlih.fun +sj5c.buzz +sjadhasdhj3423.info +sjck.icu +sjdh.xyz +sjl0ec.us +sjmcfaculty.org +sjnq9o.us +sjokbl.shop +sjp.nyc +sjpvvp.org +sjqmiihs.shop +sjrajufhwlb.cf +sjrajufhwlb.ga +sjrajufhwlb.gq +sjrajufhwlb.ml +sjrajufhwlb.tk +sjsfztvbvk.pl +sjuaq.com +sjukvardsmaterial.se +sjw-8307com.com +sjwg.us +sjzetyy.com +sk-vodoley.ru +sk0282.com +sk0380.com +sk0584.com +sk0585.com +sk0683.com +sk1825.com +sk6859.com +sk9802.com +sk9806.com +sk9817.com +sk9818.com +ska1218.ru +skaba.xyz +skachat-1c.org +skachat-888poker.ru +skachatfilm.com +skadel.xyz +skafi.xyz +skafunderz.com +skagen.xyz +skaipopia.space +skakuntv.com +skalcongress.com +skalith.xyz +skambil.com +skamia.xyz +skandiasport.com +skanu.xyz +skanyx.xyz +skaram.host +skateboarding-aficionados.com +skateboardingcourses.com +skater.zone +skatingequipment.org +skavo.xyz +skbhcnai.shop +skdjfmail.com +skdl.de +skechers-store.net +skechers-store.site +skedelweiss.ru +skedules.com +skedware.com +skeefmail.com +skeleton.us +skeletoncoastnationalpark.com +skellbox.ru +skeres.biz +skerin.com +sketchlib.ru +sketchlord.com +skettiobo.cf +skettiobo.ga +skettiobo.gq +skettiobo.ml +skettiobo.tk +skf828.icu +skfmfr.fun +skg3qvpntq.cf +skg3qvpntq.ga +skg3qvpntq.ml +skg3qvpntq.tk +skgtvp.us +skh.kim +skh.one +skhlist.net +skhnlm.cf +skhnlm.ga +skhnlm.gq +skhnlm.ml +skhstudio.com +ski-larosiere.com +skiagram.xyz +skideo.xyz +skidka-top.club +skidkatrends-top.site +skidkitop-kos.space +skidkivsem-top.space +skidubaimoments.com +skifi.xyz +skifrance.website +skifsmm.ru +skigh.net +skilaphab.cf +skilaphab.gq +skilaphab.ml +skillfare.com +skillfulblogger.com +skillion.org +skillion.store +skillionebikes.com +skillmachine.net +skillsgaming.com +skillsprivateacademy.net +skillsprivatetutoring.net +skilltag.com +skilsiri.cf +skilsiri.ga +skilsiri.gq +skimba.xyz +skimcss.com +skimlinks.site +skin-barone.site +skin-therapy.shop +skin416.net +skinacneremedytreatmentproduct.com +skinadvancedstore.com +skinaspoun.cf +skinaspoun.ml +skinaspoun.tk +skinbionom.com +skincareadvises.com +skincareonlinereviews.net +skincareproductoffers.com +skindu.xyz +skinhub.online +skinid.info +skinnyhandw.com +skinnyskinnysoaps.com +skinoodle.xyz +skinrustz.fun +skinsboom.xyz +skinsjar.icu +skinsosmoothpro.com +skinsuction.com +skintagfix.com +skinti.xyz +skinwhiteningforeverreview.org +skinyc.org +skinzrust.fun +skipadoo.org +skipbot.xyz +skipbyte.xyz +skiphire.network +skipopiasc.info +skiprnet.com +skipspot.eu +skishop24.de +skite.com +skittlrrcd.space +skiwgeoslav.cf +skiwgeoslav.gq +skiwhivap.ga +skiwhivap.gq +skiwhivap.ml +skiwhivap.tk +skkk.edu.my +sklad.progonrumarket.ru +skladchina.pro +sklazer.ru +skldfsldkfklsd.com +sklep-motocyklowy.xyz +sklep-nestor.pl +sklepsante.com +skm-ritual.ru +skodaauto.cf +skoghallpirates.se +skogmasawmills.com +skokiecpa.net +skolioz.info +skollbox.ru +skomedlys.com +skoozipasta.com +skor72.online +skorbola.club +skorbolaeuro.net +skorcomp.ru +skore.org +skorexpres.com +skormafusisi.space +skoronaekane.ru +skoshkami.ru +skowarz.club +skqmph.fun +skqmtf.fun +skra.de +skrattonnet.se +skrenvar.com +skrmgx.fun +skrmsw.fun +skrx.tk +skrzynka.waw.pl +sksfullskin.ga +sksmgc.fun +sktechprofs.com +sktmzg.fun +skummi-service.ru +skunkapps.com +skurkcasino.se +skv-object.ru +skvorets.com +skwbet.info +skxmdx.fun +skxmh.com +sky-grad.com +sky-inbox.com +sky-isite.com +sky-mail.ga +sky-movie.com +sky-ts.de +sky.dnsabr.com +skyadvert.info +skybahis.info +skybahis11.com +skybahis13.com +skybahis2.com +skybahis20.com +skybahisyenigiris.com +skybarlex.xyz +skybestyool.site +skycityproductions.com +skycodrones.com +skyconceptsphotos.com +skycustomhomes.com +skydragon112.cf +skydragon112.ga +skydragon112.gq +skydragon112.ml +skydragon112.tk +skydrive.tk +skyfibernetworksnv.com +skyflowers.info +skyflyhd.com +skygame7.com +skygame9.com +skyhard.online +skylablearning.com +skylarkmusic.online +skymail.ga +skymail.gq +skymailapp.com +skymailgroup.com +skymemy.com +skymountbahamas.com +skymountgovernmentservices.com +skymovieshd.space +skymovieshd.store +skyne.be +skynetengine.xyz +skynetfli.xyz +skynetflix.xyz +skyoid.xyz +skyometric.com +skypaluten.de +skypewebui.eu +skyrtiador.ga +skyrtiador.tk +skysmail.gdn +skyterracecondos.com +skytopconstruction.info +skytopconstruction.net +skytowerwindows.com +skytvdirect.com +skyvendersar.website +skyvia.info +skyvision.cd +skyworldtech.com +skz.us +skzc.net +skzmzs.fun +skzokgmueb3gfvu.cf +skzokgmueb3gfvu.ga +skzokgmueb3gfvu.gq +skzokgmueb3gfvu.ml +skzokgmueb3gfvu.tk +sl-ph.com +slaappleks.info +slabefotke.com +slack.best +sladko-ebet-rakom.ru +sladko-milo.ru +slambanglodge.com +slamroll.com +slane-kebabish-takeaway.com +slane-kebabish.com +slantmean.us +slantta.icu +slapsfromlastnight.com +slarmail.com +slashpills.com +slaskpost.rymdprojekt.se +slaskpost.se +slatkyf.best +slatmolda.cf +slatmolda.ga +slatmolda.ml +slatmolda.tk +slaughsages.com +slavakzb.ru +slave-auctions.net +slaveguinevere.com +slavens.eu +slavenspoppell.eu +slawbud.eu +slayam.site +slayress.com +slcgolf.net +sldindustries.com +sleavia.xyz +sledhoops.net +sledzikor.az.pl +sleeck.website +sleekdirectory.com +sleepary.com +sleepeasy.club +sleeperout.ga +sleeperout.tk +sleepesder.cf +sleepesder.gq +sleepesder.ml +sleepesder.tk +sleepfjfas.org.ua +sleepimportance.com +sleepinggiantliving.com +sleeprevital.com +sleepyninjagames.com +slefcare.com +sleij.host +slekepeth78njir.ga +slendex.co +sleppersl.xyz +slexports.com +slexpress.ru +slfmade.media +slgd.icu +slicediceandspiceny.com +sliceottawa.com +slicescheadle.com +slicesl.xyz +slicesle.xyz +sliceslee.xyz +slidegl.xyz +slidegla.xyz +slidejud.site +slidepuzzleapp.com +slidereach.com +slideshowapp.net +slifelabs.com +slifeweb.com +slikroad.show +slim-geld-lenen.info +slimagic.pro +slimail.info +slimboefje.online +slimdown1.ru +slimdown1.site +slime4you.ru +slimeangl.email +slimearomatic.ru +slimebase.ru +slimeco.xyz +slimecrea.xyz +slimefi.xyz +slimefina.xyz +slimeke03.site +slimexpo2020.ru +slimfort.ru +slimimport.com +slimkasinos.website +slimmepil.com +slimmer.cloud +slimmex.info +slimming-fast.info +slimming-premium.info +slimmingtabletsranking.info +slimor.site +slimsum.com +slimurl.pw +slimwaists.fun +slimwaists.space +slimwaits.space +slingomother.ru +slinng.ru +sliped.com +slippery.email +slippinband.com +slipry.net +slipshore.com +slipunob.cf +slipunob.ga +slipunob.gq +slipunob.ml +slissi.site +slitherer.com +slitko.xyz +slittrbmbz.space +sliv-cash.ru +slivap.com +sliveas.site +slivmag.ru +slivtika.cf +slivtika.gq +slivtika.ml +slix.dev +sljcsb.com +slkfewkkfgt.pl +slkjghsx77sx.ru +slmshf.cf +slmtracker.com +slobodanetivana.com +slobruspop.co.cc +slofuxhl.pro +slogangraduateperforate.website +slogramming.com +slomail.info +slona.site +slonmail.com +slopeintend.com +slopjockeys.com +sloppyworst.co +slopsbox.com +slopsegrex.space +slot-machine-gambling4money.com +slot118.org +slot7.club +slot7.fun +slot889.net +slotbet24.bet +slotes.ru +slothino-foundation.com +slothino-reviews.com +slothino-roulette.com +slothino.net +slothinofreebet.com +slothmail.net +slotino.xyz +slotobet.win +slotogod.club +slotojam.com +slotoking.city +slotoking.live +slotonlinebet.org +slotopin.fun +slotopin.online +slotopin.website +slotorotation.site +slotozal-casino.win +slotreward.com +slotrotation.icu +slots-formoney.com +slots-in-zurich.space +slots.sl +slots360.online +slots4you.ru +slotsawasdee.net +slotsbestproffit.ru +slotsbox.ru +slotsrasafe.space +slotstation26.com +slotstation29.com +slotstation3.com +slotstation30.com +slotstation35.com +slotstation39.com +slotticaksn.online +slottojam.casino +slottojam1.com +slottojam21.com +slottojam28.com +slovabegomua.ru +slovac-nedv.ru +slovect.pro +sloven-nedv.ru +slovenianschool.info +slovinskylawoffice.com +slovmeralgl.site +slowcooker-reviews.com +slowdeer.com +slowfoodfoothills.xyz +slowgramming.com +slowslow.de +sls.us +slson.com +slsp10.xyz +slsrs.ru +sltmail.com +sltng.com +slu21svky.com +slugmail.ga +slumppeac.icu +slumpwat.email +slushmail.com +slushyhut.com +slut-o-meter.com +sluteen.com +slutty.horse +slvbot.online +slvbus.com +slwedding.ru +slwyqbu.com +sly.io +sm51qc.info +sma.center +smaekets.com +smahtin.ru +smailpost.info +smailpostin.net +smailpro.com +smajok.ru +smalkaa.site +smallalpaca.com +smallanawanginbeach.com +smallbizla.com +smallbizloans.xyz +smallbudg.xyz +smallbusinessacct.info +smallbusinessacct.us +smallbusinessmindset.com +smallbusinessownergrants.com +smallbusinessseoagency.com +smallcleaningbrush.com +smallcleaningbrush.org +smallcleaningbrush.us +smallcleaningbrushes.com +smallcleaningbrushes.org +smallcleaningbrushes.us +smallcolor.store +smallcrud.email +smallfrank.com +smallgroups.app +smallhouzz.com +smallironabsorption.website +smallker.tk +smallpe.icu +smallstepstowellness.net +smalq.com +sman14kabtangerang.site +smanual.shop +smanual.site +smap4.me +smapfree24.com +smapfree24.de +smapfree24.eu +smapfree24.info +smapfree24.org +smardebtra.ga +smardebtra.gq +smardebtra.ml +smardebtra.tk +smaretboy.pw +smarshevent.com +smart-1-shop.online +smart-10-shop.online +smart-11-shop.online +smart-13-shop.online +smart-19-shop.online +smart-20-shop.online +smart-21-shop.online +smart-23-shop.online +smart-25-shop.online +smart-27-shop.online +smart-28-shop.online +smart-29-shop.online +smart-32-shop.online +smart-33-shop.online +smart-35-shop.online +smart-4-shop.online +smart-5-shop.online +smart-6-shop.online +smart-7-shop.online +smart-email.me +smart-host.org +smart-intentions.site +smart-mail.info +smart-mail.top +smart-mask.online +smart-medic.ru +smart-movie.biz +smart-thailand.com +smartalls.ru +smartbee.website +smartbusiness.me +smartcharts.live +smartcharts.pro +smartdedicated.site +smartdigitalone.com +smarterafter.com +smarterleads.online +smarteu.site +smartfotobudka.ru +smartfuture.space +smartgrid.com +smarthq.com +smarthqdistribution.com +smarthqproduction.com +smartify.homes +smartinstaprint.online +smartintentions.site +smartkeeda.net +smartlinkeroffer.xyz +smartlyheated.com +smartmasterkz.ru +smartmobility2016.shop +smartpaydayonline.com +smartphoneaddictionprogram.com +smartphonedangers.site +smartphonescreen.ru +smartphonesukraine.ru +smartphonesukraine.website +smartpikes.site +smartplaygame.com +smartpranks.com +smartpro.tips +smartprost-rf.ru +smartpurchaseus.com +smartsass.com +smartshop.futbol +smartsignout.com +smarttalent.pw +smarttestztn.site +smarttipsannie.com +smarttrainbodybuilduppreworkout.com +smarttrut.space +smarttvshop.life +smartvanlines.com +smartvds.xyz +smartvineyards.net +smartvp.xyz +smartvps.xyz +smartvs.xyz +smartwatch-9.ru +smartworkcenter013.nl +smartworldaccountants.com +smartx.sytes.net +smarty123.info +smartyzaim.store +smartzuyer.online +smashchao.fun +smashmail.de +smashprediabetes.com +smashtherecord.com +smbc-card.xyz +smcalv.host +smcccf.org +smcgreenville.com +smcleaningbydesign.com +smdtnbsd38407.ga +smdtnbsd38407.ml +smdtnbsd38407.tk +smdtnbsd44893.cf +smdtnbsd44893.ga +smdtnbsd46735.ml +smdtnbsd47078.cf +smdtnbsd47078.tk +smdtnbsd49121.ml +smdtnbsd49121.tk +smdtnbsd83684.cf +smdtnbsd83684.ga +smdtnbsd83684.ml +smdtnbsd83684.tk +smellfear.com +smellqu.xyz +smellrear.com +smellri.xyz +smellslikehypocrisy.com +smellypotato.tk +smeltitdealtit.com +smena-rabota.ru +smesthai.com +smetenzonenpromoties.site +smfg-law.com +smgrep.org +smh08888.com +smh18888.com +smh24-news.site +smh38888.com +smh78888.com +smi.ooo +smi30.xyz +smile-king.site +smileair.org +smilebalance.com +smilefaceexpression.com +smilefastcashloans.co.uk +smileglobal.biz +smilequickcashloans.co.uk +smiletransport.com +smilevxer.com +smileyet.tk +smime.ninja +sminicca.gq +sminicca.ml +sminicca.tk +smiotaku.online +smirnoffprices.info +smirusn6t7.cf +smirusn6t7.ga +smirusn6t7.gq +smirusn6t7.ml +smirusn6t7.tk +smith.com +smithandjones.us +smithfieldaw.com +smithfieldkebabhouse.com +smithgroupinternet.com +smithinsurer.com +smithschevron.net +smithwright.edu +sml2020.xyz +smldv.ru +smlmail.com +smlmail.net +smltop.xyz +smm-drom.ru +smm3.buzz +smmok-700nm.ru +smmwalebaba.com +smnagyaw.shop +smokdunyasi.xyz +smoke-allnight.ru +smoke-hollow.org +smokedril.press +smokefreesheffield.co.uk +smokehollow.org +smokehollowsmokers.com +smokeli.icu +smokemarket.org +smokemt.online +smoken.com +smokengunsmusic.com +smokeru.us +smokestackhobbyshop.com +smoketoas.email +smokeyridgewinery.com +smokingcessationandpregnancy.org +smokingpipescheap.info +smokinwingsspartanburg.com +smoklounge.ru +smokovik.com +smoksigara.xyz +smokymountain.guide +smokymountain.shop +smokymountain.store +smokymountainrealestateproperties.com +smokymountains.shop +smoochseniors.com +smoothtakers.net +smoothtreats.com +smoothunit.us +smosh.org +smosmm.ru +smotr.site +smotret-video.ru +smotretonline2015.ru +smotretvideotut.ru +smotry-v-glaza.ru +smottowee.info +smoug.net +smrltd.xyz +smrn420.com +smrtwyt.site +sms-analytical.net +sms-analytical.org +sms-express.us +smsanalytical.net +smsarjana.org +smsazart.ru +smsbaka.ml +smsblue.com +smsbuds.in +smscashpro.xyz +smsdash.com +smsdostup.com +smsenmasse.eu +smsforum.ro +smsjokes.org +smsmint.com +smsplanets.net +smsraag.com +smsturkey.com +smswan.com +smtapp.xyz +smtdh0.xyz +smtownv.online +smtp.docs.edu.vn +smtp2-dein-shop.accountant +smtp3.cz.cc +smtp33.com +smtp8-dein-shop.accountant +smtp9-dein-shop.accountant +smtp99.com +smtponestop.info +smug.info +smugarur.cf +smugarur.gq +smugarur.ml +smugarur.tk +smuguk.com +smuktliv.com +smuse.me +smvpoker.site +smwg.info +smyrnaattorneys.com +smzppk.shop +sn-em.com +sn3bochroifalv.cf +sn3bochroifalv.ga +sn3bochroifalv.gq +sn3bochroifalv.ml +sn3bochroifalv.tk +sn55nys5.cf +sn55nys5.ga +sn55nys5.gq +sn55nys5.ml +sn55nys5.tk +snabbel.app +snabdil.ru +snack-bar.name +snack-bar.us +snackbar.name +snackfood.com.cn +snackmango.com +snacktime.games +snad.website +snad1faxohwm.cf +snad1faxohwm.ga +snad1faxohwm.gq +snad1faxohwm.ml +snad1faxohwm.tk +snafoss.com +snag.org +snaganautoloan.com +snahandric.icu +snail-mail.bid +snailda.xyz +snailmail.bid +snailmail.download +snailmail.men +snaipau.online +snajtv.us +snakebite.com +snakebutt.com +snakecharm.ru +snakeiptv.live +snakemail.com +snakeriverstone.com +snakket.com +snaknoc.cf +snaknoc.ga +snaknoc.gq +snaknoc.ml +snam.cf +snam.ga +snam.gq +snam.tk +snamaii.ru +snamletaik.xyz +snap.monster +snapbackbay.com +snapbackcapcustom.com +snapbackcustom.com +snapbackdiscount.com +snapbackgaga.com +snapbackhatscustom.com +snapbackhatuk.com +snapbet20.xyz +snapbet2020.xyz +snapbett.xyz +snapblack.site +snapbrentwood.org +snapfish77.com +snapfishhsn.com +snapfishvaluepass.com +snapmaps360.com +snapmoms.org +snappedly.xyz +snappy.lease +snappypjay.space +snapquotes.com +snapunit.com +snapwet.com +snasu.info +snatap.space +snazzysnoodsandmore.com +sncnsl.site +sndae5.us +sndbtp.host +sndcrd.com +sneakalfi.cf +sneakalfi.gq +sneakalfi.ml +sneakemail.com +sneaker-friends.com +sneaker-mag.com +sneaker-shops.com +sneakerbunko.cf +sneakerbunko.ga +sneakerbunko.gq +sneakerbunko.ml +sneakerbunko.tk +sneakerhub.ru +sneakers-blog.com +sneakersisabel-marant.com +sneakmail.de +sneakyreviews.com +sneeuwbeukers.online +snehadas.rocks +snehadas.site +snehadas.tech +snellerherstel.nu +snelschilder.com +sngcentric.com +sngcom.ru +snif-acc.online +snike.site +snikersrules.ru +snip707.com +snipbingra.ga +snipbingra.gq +snipbingra.tk +snipe-mail.bid +snipemail4u.bid +snipemail4u.men +snipsandiego.org +snkaddr.com +snkmail.com +snkml.com +snkno.com +snkplace.com +snkplayer.com +snkqun.com +snktop.com +snl9lhtzuvotv.cf +snl9lhtzuvotv.ga +snl9lhtzuvotv.gq +snl9lhtzuvotv.ml +snl9lhtzuvotv.tk +snmotcpg.shop +snncnaydin.xyz +snnytt.tk +snnyty.cf +snnyty.ml +snobbob.com +snocespalk.icu +snollygoster.space +snoofi-shop.ru +snoom.com +snoosnot.shop +snoppeak.us +snorcle.tk +snorcoundo.cf +snorcoundo.ga +snorcoundo.gq +snorcoundo.ml +snorcoundo.tk +snore-therapy.com +snotis.icu +snotsnoo.shop +snouy.ru +snovosty.ru +snowbirdsfloridausdaytracker.com +snowboots.site +snowboots4usa.com +snowdenlimited.com +snowf0x.com +snowflakescustomjewelry.xyz +snowmail.xyz +snowmanunicode.com +snowprozone.com +snowsweepusa.com +snowthrowers-reviews.com +snpsex.ga +snqfl.xyz +sns.moe +snslogin.com +snuggle.ink +snugmail.net +snugsconcertseries.com +snytax.host +snz873.com +so-com.tk +so-l.org +so-net.cf +so-net.ga +so-net.gq +so-net.ml +so-u.club +so1ffy.online +so873g.site +soap2day.best +soapa.solutions +soapmarket.com +soapoperablog.com +soaronwings.shop +sobakanazaice.cf +sobakanazaice.ga +sobakanazaice.gq +sobakanazaice.ml +sobakanazaice.tk +sobat21.design +sobatkeren.design +sobdollfab.cf +sobdollfab.ga +sobdollfab.gq +sobdollfab.tk +sobeatsdrdreheadphones1.com +sobecoupon.com +sobeessentialenergy.com +sobill247.com +soblazn55.ru +soblaznvip.ru +sobmarinos.info +sobrietybuddyapp.com +sobrinhofs.com +sobrinhogf.com +sobrinhogroup.com +sobrinhon.com +sobterstread.cf +sobterstread.ga +sobterstread.gq +sobterstread.ml +sobterstread.tk +socalbikini.com +socalbrewnet.com +socalgamers5.info +socalnflfans.info +socalu2fans.info +socampeoes.com +socaparang.com +socbusinesstraining.com +soccer-brilliant.site +soccer-fanatics.space +soccer365.space +socceracademy.vegas +soccerazzo.com +soccerfans.space +soccerfit.com +soccerinstyle.com +soccertop.website +soccertotalstats.com +socgazeta.com +sochi.shn-host.ru +sochihosting.info +sochimeridian.ru +sochipools.com +social-bookmarking-site.info +social-mailer.tk +socialayz.xyz +socialcampaigns.org +socialcloud99.live +socialdistancing.tools +socialeum.com +socialfresh.website +socialfurry.org +socialhubmail.info +socialimdb.xyz +socialisaso.com +socialleadhack.net +sociallearningmarketplace.com +sociallifes.club +sociallinks.info +sociallymediocre.com +socialmailbox.info +socialmasta.org +socialmediaepic.com +socialmediamonitoring.nl +socialpreppers99.com +socialsecret.ru +socialtalker.com +socialtheme.ru +socialtracking.live +socialtroopers.com +socialventuresglobal.com +socialviplata.club +socialxbounty.info +sociative.xyz +societycampblog.site +societylionnews.club +sociocrisio.com +sociotasking.online +sociotasking.site +socitude.xyz +socjaliscidopiekla.pl +sockfoj.pl +sockpockers.com +socksbest.com +sockshare.watch +socmail.net +socoolglasses.com +socprodvizheniye.ru +socral-wood.ru +socratesmuniz.com +socrazy.club +socrazy.online +socsety.com +socusa.ru +socvideo.ru +soczewek-b.pl +soczewki.com +soda55.com +sodalithite.best +sodap4.org +sodapoppinecoolbro.com +sodatorrent.website +sodergacxzren.eu +sodergacxzrenslavens.eu +soderjanki.xyz +sodertornsfjarrvarme.nu +sodertornsfjarrvarme.se +sodiumysszd.email +soeasytop.ru +soeo4am81j.cf +soeo4am81j.ga +soeo4am81j.gq +soeo4am81j.ml +soeo4am81j.tk +soeveryonecangame.info +sofaoceco.pl +sofia.re +sofialenaliving.com +sofian.website +sofiarae.com +soficom.cd +sofimail.com +sofit-1.ru +sofme.com +sofodac.ru +sofolgia.com +sofort-mail.de +sofort.group +sofortmail.de +sofos.host +soft-cheap-oem.net +soft-utorrent.ru +soft4load.xyz +softanswer.ru +softballball.com +softbank.tk +softboxtv.ru +softdesk.net +softfaber.org +softgel.biz +softistic.net +softistic.org +softkey-office.ru +softmails.info +softnews.su +softonics.site +softpaws.ru +softpls.asia +softportald.tk +softswiss.today +softtoiletpaper.com +softvanria.cf +softvanria.ga +softvanria.gq +softvanria.ml +softvanria.tk +softviagra.info +software-sekolah.net +software.golf +software315.xyz +softwareaa316.xyz +softwareabilities.com +softwareandart.org +softwareblog.net +softwaredeals.site +softwaredynamics.tech +softwareengineer.info +softwareprofs.dev +softwaresekolah.net +softwarespiacellulari.info +softwarespiapercellulari.info +softwareversus.com +softwash.xyz +softwiretechnology.com +soganliadaklikkurban.online +soganliadaklikkurban.xyz +sogetthis.com +soggybottomrunning.com +soglashenmirov.xyz +soglasie.info +sogolfoz.com +sogopo.cf +sogopo.ga +sogopo.ml +sogopo.tk +sohai.ml +sohbet10.com +sohbet17.com +sohbetac.com +sohbetamk.xyz +sohbethattibu.xyz +sohoct.com +sohopros.com +sohosale.com +sohu.net +sohu.ro +sohufre.cf +sohufre.ga +sohufre.gq +sohufre.ml +sohus.cn +soillost.us +soiloptimizer.com +soilsuperfood.com +soioa.com +soisz.com +soitanve.cf +soitanve.ml +soitanve.tk +sojnd7.us +sojuqq.com +sokahplanet.com +sokaklambasi.cf +sokaklambasi.ga +sokaklambasi.ml +sokaklambasi.tk +sokeorganizasyon.xyz +soki.site +sokosquare.com +sokratit.ru +sokvi.us +sol28.com +solacenutrition.net +solalgarvio.com +solar-apricus.com +solar-impact.pro +solar.pizza +solaraction.network +solaraction.org +solaractivist.network +solarbet99.site +solarclassroom.net +solareclipsemud.com +solaredgelights.com +solaren-power.review +solarfirestarters.com +solarflight.org +solarfor99dollars.com +solarforninetyninedollars.com +solarianmedia.xyz +solarino.pl +solarquick.africa +solarwinds-msp.biz +solatint.com +solddit.com +soldesburbery.com +soldesnice.com +soldierofthecross.us +soldierreport.com +soldisthebest4letterword.com +soldnmyyb.shop +soleli.com +soleme.info +soliaflatirons.in +soliahairstyling.in +solidbots.net +solidframework.com +solidframeworks.com +solidgoldop.biz +solidseovps.com +solidstepper.top +solidtrianglegroup.com +solihulllandscapes.com +solinvictusguild.com +solioutlets.site +solirallc.com +solitaire-sunshine.com +sollie-legal.online +sollieja.online +solliejuridischadvies.online +solliz.online +solomasks.com +soloner.ru +soloou.xyz +solopreneur365crm.com +solosoloku.com +solotioner.site +solotouchofficial.ru +solotrasmakinasi.site +solovevz.ru +solovyova.org +solowkol.site +solowtech.com +solpowcont.info +soltur.bogatynia.net.pl +solu.gq +solu7ions.com +soluje.info +soluteconsulting.com +soluteconsulting.us +solution-finders.com +solution-space.biz +solutionsmagazine.org +solutionsnetwork10.com +solutionssummit.net +solutyn.net +solvabbolm.space +solve-anxiety.com +solvedbycitizens.com +solvemail.info +solventtrap.wiki +somaderm.health +somalipress.com +somans.site +sombra-company.ru +sombracorporation.ru +somdhosting.com +some.us +someadulttoys.com +somebodyswrong.com +somechoice.ga +somecool.xyz +somedd.com +someeh.org +someeh.us +somepornsite.com +somera.org +somerandomdomains.com +someredirectpartneral.info +someredirectpartnerance.info +someredirectpartnerery.info +someredirectpartnerify.info +someredirectpartnerious.info +someredirectpartnerly.info +someredirectpartneroid.info +someredirectpartnery.info +somethingsirious.com +sometimesbee.top +sommys.space +somniasound.com +somonbrand.com +somoslantian.net +somoslantian.org +soms-software.net +somsmarketing.info +somssoftware.net +somsupport.xyz +son-haber.live +son-haber.site +son-haber.website +son.zone +son16.com +sonaluma.com +sonamyr.shop +sonasoft.net +sonata-krasotavn.ru +sonderagency.org +sondwantbas.cf +sondwantbas.ga +sondwantbas.tk +sonesont.shop +songart.ru +songbomb.com +songgallery.info +songiang.xyz +songjiancai.com +songjianglushi.info +songlists.info +songlyricser.com +songpaste.com +songpong.net +songsblog.info +songshuxb.com +songyangguang.com +sonhaber.fun +sonhaber.live +sonicaz.space +sonicaz.website +soniconsultants.com +sonicx-pro.shop +sonifia.site +sonindependiente.com +sonindirimler.xyz +sonkub.com +sonmoi356.com +sonnarapp.com +sonohilight.com +sonomapock.xyz +sonophon.ru +sonseals.com +sonshi.cf +sonshi.pl +sonsporttpinup.ru +sonsuzhizmetci.xyz +sontearssat.website +sonu.com +sony4d.best +sony4d.xyz +sonyclub.online +sonyedu.com +sonymails.gdn +sonytoto.org +sonyymail.com +soodbet.site +soodbt.club +soodmail.com +soodomail.com +soodonims.com +soogalsudan.com +soon.it +soon2open.com +soonerinvestmentsint.com +soonso.com +soopr.info +sooq.live +sooqalsudan.com +sootbet90s.org +soowz.com +soozoop.com +sopatrack.com +sopbet.net +sophiamartins.online +sophiejenkins.buzz +sopho.blog +sopotstyle.com +sopotstyle.xyz +sopowstran.cf +sopowstran.ga +sopowstran.gq +sopowstran.tk +sopranospizzeriawaterford.com +sopsandqs.com +sopuhi.info +sora11.shop +soraly.cf +soraly.ga +soraly.gq +soraly.ml +soranet.shop +sorbapackp.space +sorcios.com +sordeti.cf +sordeti.ga +sordeti.gq +sordeti.ml +sordeti.tk +sordiri.cf +sordiri.ga +sordiri.ml +sordiri.tk +soricident.site +soriro.info +soroboutique.site +sororitree.com +sororitymvp.com +sorpresa-continua.info +sorrentos-takeaway.com +sorrownadj.space +sortado.com +sortado.ru +sortado.sk +sortecerta.online +sorteeemail.com +sortgleams.top +sortirlyon.org +soruvi.com +soshanti.org +soslouisville.com +soslukedi.xyz +sosmanga.com +sosmedpokeronline.net +sosojd.com +sostavpretenzii.xyz +sosvoyants.net +sosxao.xyz +sosyalmedyayonetimi.online +sosyalmerlin.online +sosyalmerlin.xyz +sotahmailz.ga +sotayonline.com +sote-muncete.club +soten.info +sothich.com +sotisoth.shop +sotnwh.shop +sotosegerr.xyz +sotres.ru +sottomarina.org +sotube.biz +souaimi.com +soudcuvea.cf +soudcuvea.gq +soudcuvea.ml +soudcuvea.tk +soudeel.com +soufflesinlive.com +sougalsudan.com +souhon.com +soukalsudan.com +soulfire.pl +soulinluv.com +soulmate-search.com +soulproprietorship.org +soulsourcespirit.org +soumail.info +soundagencystring.website +soundclouddownloader.info +soundfg.gq +sounditems.com +soundmovie.biz +soundwid.com +sounlali.cf +sounlali.ml +sounzaaf.online +soupans.ru +souqdeal.site +sourcedrx.com +sourcenet.online +sourceri.space +sourcesprosrvcs.com +sourcessolutionspros.com +sourcestrategic.com +sourcewithimpact.org +sourcl.club +sourcreammail.info +sourijboopn.email +sourtrush.site +soushuba.xyz +sousousousou.com +south-windinfo.online +southafrica-nedv.ru +southamericacruises.net +southamericangenweb.org +southamptonprintings.press +southamptonwebdesign.com +southasianfloods.org +southbaybh.com +southbridgeveterinary.com +southbrisbaneliving.com +southburyelderlawgroup.com +southcarolina.company +southeastaddictiontreatment.com +southeastasiaheritage.net +southeastasiaheritage.world +southeastassets.com +southelgindentist.net +southerncloseouts.com +southerndrinking.com +southernhighlandsgolfhomes.com +southernkiving.com +southernlegends.com +southernmovingsystems.com +southernpetservices.com +southernstarsvacations.info +southernup.org +southfloridaprivateinvestigator.com +southfloridaprivateinvestigators.org +southforklabs.com +southjordanapartments.com +southkorea.dev +southlakeapartments.com +southlaketahoeapartments.com +southmendocinorealestate.com +southmiamirealestateblog.com +southpasadenaapartments.com +southphillyrambots.com +southshoreadclub.com +southshoreaudi.net +southshoreauto.net +southshoremotors.net +southshorerover.net +southsidescout.com +southwestfloridaeyecare.com +soutong001.com +souvlakimalta.com +souvps.com +sovactha.cf +sovactha.ga +sovactha.gq +sovactha.ml +sovactha.tk +sovereignvpn.com +soverybling.com +sovetsro.ru +sovideostop.info +sovietizing684ig.online +sovixa.com +sowellfabric.com +sowhatilovedabici.com +sowmyapatapati.com +sowpropelsea.website +sowvet.org +sowwcharity.org +soxisipa.site +soxivu.info +soxoshops.site +soxrazstex.com +soycasasy.info +soycasero.com +soydemkt.com +soyou.net +soysimilar.com +soyuz-zvezda.ru +sozdaem-diety.ru +sozdanie-websaita.ru +sozfilmi.com +sozialismusoderbarberei.vision +sozzlefdvb.space +sp-aa.com +sp-market.ru +sp.woot.at +spa-fish.ru +spa-resort-lombok.com +spa.com +spacalar.cf +spacalar.ga +spacalar.ml +space-company.ru +space-fashion.ru +space-for-dates1.com +spacebazzar.ru +spacebooks.site +spacecas.ru +spacecityrecords.net +spacecore.blog +spaceepics.com +spaceflowers.ru +spaceinvadas.com +spacemail.info +spacepush.org +spacerust.net +spaceshop.website +spaceterm.info +spacewalker.cf +spacewalker.ga +spacewalker.gq +spacewalker.ml +spaceways.cd +spaceybodycount.com +spacherry.com +spacibbacmo.lflink.com +spaclick.online +spaereplease.com +spagyrichemp.com +spain-nedv.ru +spain-real-estate.ru +spainholidays2012.info +spainreview.net +spaintoday.club +spajek.com +spaledo.xyz +spalombok.com +spam-be-gone.com +spam-en.de +spam-nicht.de +spam.care +spam.coroiu.com +spam.deluser.net +spam.dhsf.net +spam.dnsx.xyz +spam.fassagforpresident.ga +spam.flu.cc +spam.hortuk.ovh +spam.igg.biz +spam.janlugt.nl +spam.jasonpearce.com +spam.la +spam.loldongs.org +spam.lucatnt.com +spam.lyceum-life.com.ru +spam.mccrew.com +spam.netpirates.net +spam.no-ip.net +spam.nut.cc +spam.org.es +spam.ozh.org +spam.pyphus.org +spam.rogers.us.com +spam.shep.pw +spam.su +spam.tla.ro +spam.trajano.net +spam.usa.cc +spam.viola.gq +spam.visuao.net +spam.wtf.at +spam.wulczer.org +spam4.me +spamail.de +spamail.typhon.ga +spamama.uk.to +spamarrest.com +spamassage-nsk.ru +spamavert.com +spamblog.biz +spambob.com +spambob.net +spambob.org +spambog.com +spambog.de +spambog.net +spambog.ru +spambooger.com +spambox.info +spambox.irishspringrealty.com +spambox.me +spambox.org +spambox.us +spambox.win +spambox.xyz +spamcannon.com +spamcannon.net +spamcero.com +spamcon.org +spamcorptastic.com +spamcowboy.com +spamcowboy.net +spamcowboy.org +spamday.com +spamdecoy.net +spameater.org +spamelka.com +spamex.com +spamfighter.cf +spamfighter.ga +spamfighter.gq +spamfighter.ml +spamfighter.tk +spamfree.eu +spamfree24.com +spamfree24.de +spamfree24.eu +spamfree24.info +spamfree24.net +spamfree24.org +spamgoes.in +spamgourmet.com +spamgourmet.net +spamgourmet.org +spamherelots.com +spamhereplease.com +spamhole.com +spamify.com +spaminator.de +spamkill.info +spaml.com +spaml.de +spamlot.net +spammail.me +spammedic.com +spammehere.com +spammehere.net +spammer.fail +spammingemail.com +spammotel.com +spammy.host +spamobox.com +spamoff.de +spamsalad.in +spamsandwich.com +spamserver.cf +spamserver.ga +spamserver.gq +spamserver.ml +spamserver.tk +spamserver2.cf +spamserver2.ga +spamserver2.gq +spamserver2.ml +spamserver2.tk +spamslicer.com +spamspameverywhere.org +spamsphere.com +spamspot.com +spamstack.net +spamthis.co.uk +spamthis.network +spamthisplease.com +spamtrail.com +spamtrap.co +spamtrap.ro +spamtroll.net +spamwc.cf +spamwc.de +spamwc.ga +spamwc.gq +spamwc.ml +spamwc.tk +spamyourbot.com +spandamail.info +spandrel.xyz +spaneger.club +spaniaflyplasstransport.com +spanien-immobilie-kaufen.com +spanienflygplatstransfer.com +spanishprofestore.com +spankoneout.com +spapa.ooo +spapaketleri.com +spapur.com +spararam.ru +sparc.media +sparc.mobi +sparc.red +sparc.support +sparesortlombok.com +sparfaclust.org +spark-short.ru +sparkaddress.com +sparket.com +sparkgnome.com +sparkgrowthteam.com +sparklepuzzles.app +sparkles.rocks +sparklogics.com +sparkmobile.xyz +sparkofone.com +sparkpensions.com +sparkstreet.dev +sparktel.us +sparktelecom.xyz +sparkyandjax.net +sparramail.info +sparrowcrew.org +sparruthetti.site +sparta.parts +spartamc.com +spartan-fitness-blog.info +spartanburgkc.org +spartanmarketing.net +spartapress.com +sparxbox.info +spasalonsan.ru +spase.website +spaso.it +spasuren.cf +spasuren.ga +spasuren.gq +spasuren.ml +spasuren.tk +spavinbxxs.site +spavinbxxs.website +spawnet.ru +spawnitaustralia.com +spawnitaustralia.online +spayment.ru +spayneutersaveslives.org +spb.ru +spbdyet.ru +spbemestarfit.host +spbemestarfit.online +spbintim.ru +spbladiestrophy.ru +spblt.ru +spbsquash.ru +spbtcdev.com +spduszniki.pl +spe24.de +speakeasyvanuatu.com +speakers401k.com +speakersblown.com +speakfimal.cf +speakfimal.ga +speakfimal.ml +speakfimal.tk +speakfreely.email +speakfreely.legal +speaktion.com +speakuptampabay.com +spearsmail.men +spearsreunion.com +speasfarm.us +spec-energo.ru +spec7rum.me +speciaalmachinebouw.com +specialbrush.biz +specialbrush.net +specialbrush.us +specialbrushes.net +specialbrushes.us +specialinoevideo.ru +specialinternetsite.com +specialistperformanceclassics.com +specialmail.com +specialprograms.biz +specialrate.xyz +specialrecipes.space +specialshares.com +specialsshorts.info +specialtcomfortcookies.com +specialty208uq.online +specialtybrushes.biz +specialtylightingandbulb.com +specialuxe.com +specialzone.xyz +specnondse.cf +specnondse.ml +specnondse.tk +specsantehnika.ru +specsecurity.ru +spectacularevents.org +specterius.ru +spectexremont.ru +spectralbodywork.com +spectreonline.net +spectro.icu +spectroscopy.tech +spectrummarketing.net +speechdova.space +speechiebusiness.com +speechlanguagetherapy.org +speed.hexhost.pl +speedcha.xyz +speedchal.icu +speedcloud.tokyo +speeddataanalytics.com +speeddategirls.com +speedemre.ga +speedemre.gq +speedemre.ml +speedemre.tk +speedgaus.net +speedily.site +speedkill.pl +speedlab.com +speedmag.com +speedorspir.cf +speedorspir.ga +speedorspir.ml +speedorspir.tk +speedpizza.ru +speedsogolink.com +speedspecial.club +speedsportsnews.xyz +speedsweep.net +speedsweepbroom.biz +speedsweepbroom.org +speedsweepbroom.us +speedsweepbrooms.biz +speedsweepbrooms.com +speedsweepbrooms.us +speedwayhealthspot.com +speedwayroadcarriers.com +speedycorn.biz +speedycorn.com +speedycorn.net +speedycorn.us +speedycornbroom.com +speedycornbroom.us +speedycornbrooms.biz +speedycornbrooms.org +speedydir.site +speedyenglish.xyz +speedyhostpost.net +speedymop.org +speemail.info +spektech.ru +spektr.info +spektrsteel.ru +spellas.email +spelldgmoe.space +spelled962tz.online +spellgla.press +spellware.ru +spellworksbrewery.com +spelovo.ru +spemail.xyz +spencech.com +spendbitcoin.com +spendbitcoins.net +spenden.app +sperma.cf +sperma.gq +spetsinger.ru +spfence.net +spga.de +spgen.net +sphate.ru +spheresdesign.com +spheretqoz.club +spherinde.ga +spherinde.gq +spherinde.ml +sphile.site +sphiritlab.com +spicate.xyz +spiceblogger.com +spiceedit.com +spiceglossary.com +spicehuttakeaway.com +spiceindiatakeaway.com +spiceitl.ru +spiceoflifetakeaway.com +spicesncurry.com +spick.club +spicy-grill-kebabish.com +spicybites-clonmel.com +spicycartoons.com +spicyhutindian.com +spicykarmen.com +spidalar.ga +spidalar.gq +spidalar.ml +spidalar.tk +spider.co.uk +spiderbabygrafix.com +spidercoal.icu +spiderfracture.com +spierdalaj.xyz +spigotmedia.com +spikebase.com +spikemargin.com +spikesstation.top +spikeworth.com +spikio.com +spillcar.xyz +spillfres.xyz +spillplea.red +spilt-test.bar +spilt-test.ru +spin-city-casino.com +spin-city-casino.info +spin-city.ru +spin-stickers.ru +spin24.com +spin720.com +spinacz99.ru +spinamrai.gq +spinamrai.tk +spinanit.cf +spinanit.ga +spinanit.gq +spinanit.tk +spindl-e.com +spindye.se +spinefruit.com +spinenow.physio +spinerin.cf +spinerin.ga +spinerin.gq +spinerin.ml +spingame.ru +spingenie.net +spingenie.org +spinghar-takeaway.com +spinia9.com +spinletbarth.cd +spinmail.info +spinners.se +spinoffer.ru +spinofis.ga +spinofis.gq +spinofis.ml +spinofis.tk +spinsterism.best +spinthis.biz +spipharma.net +spiral-of-life.ru +spiraled205ep.online +spiraling894vg.online +spirende.ga +spirende.gq +spirende.ml +spiripvan.ga +spiripvan.ml +spiripvan.tk +spirit.eco +spiritedmusepress.com +spiriti.tk +spiritjerseysattracting.com +spiritofradio.com +spiritofradio.info +spiritofradio.org +spiritsingles.com +spiritualfriendship.site +spiritualgemstones.info +spiritualgemstones.net +spiritualized243ee.online +spirituallabs.com +spirituallifesociety.org +spirituelle.design +spiritvuym.space +spiritwarlord.com +spirityxcc.space +spirliro.gq +spirliro.tk +spiroflux.com +spirt.com +spirtofrespect.com +spirutda.cf +spirutda.gq +spirutda.ml +spirutda.tk +spit-fire-productions.com +spitdesk.us +spitminuteremind.website +spittingup.com +spk9s.us +spkr-info.online +spkvariant.ru +splashdogs.net +splashjunglewaterpark.com +splendacoupons.org +splendidgifts.com +splendyrwrinkles.com +splintergroup.com +splio.nu +splishsplash.ru +splitauto.info +splitsl.icu +splitstuf.us +splitzauayy.email +spm.laohost.net +spmy.netpage.dk +spo777.com +spoilandsplendor.com +spoilhor.xyz +spoilhors.xyz +spokanenailsalons.com +spokaneparks.com +spokaneparks.net +spokedcity.com +spoksy.info +spolujizda.info +spomus.site +spondylodymus.best +sponect.com +spongemop.net +spongemops.biz +spongemops.us +sponsorhq.com +spontomleo.cf +spontomleo.ga +spontomleo.gq +spontomleo.tk +spoof.global +spoofmail.de +spookwarehouse.com +spooltacount.cf +spooltacount.ga +spooltacount.gq +spooltacount.ml +spooltacount.tk +spoom.pro +spoonelastic.com +spooofcard.com +spoortnews.info +sporbaydar.cf +sporbaydar.ga +sporbaydar.tk +sporethob.cf +sporethob.gq +sporethob.ml +sporethob.tk +sporexbet.com +sporksource.com +sporogenus-probiotics.com +sporsalonuankara.com +sport-1xbet.ru +sport-gesundheit.de +sport-life24.ru +sport-magaz.website +sport-outlet.info +sport-partners.ru +sport-polit.com +sport-portalos.com.uk +sport-souvenirs.ru +sport-web.ru +sport4me.info +sportanchik.ru +sportanswers.ru +sportbro.tech +sportbro666.com +sportbro72.com +sportbrobananat.ru +sportbrohome.ru +sportchek.ru +sportcrownt.ru +sportdsirect.com +sporterona.ru +sporteventmanager.net +sportfiends.com +sportfitne.com +sporthitbatt.ru +sporthitbrobanana.ru +sporthitbrobananat.ru +sporthitbrocub.ru +sporthitbrofan.ru +sporthitbrojar.ru +sporthitbromask.ru +sporthitbromaskt.ru +sporthitbroroad.ru +sporthitcrownt.ru +sporthitdresst.ru +sporthitmask.ru +sporthitmilkt.ru +sporthitrockt.ru +sporthittutcrown.ru +sporthittutmilk.ru +sportinize.icu +sportiotdyhvmeste.ru +sportiva.site +sportivnoetv.ru +sportmasina.com +sportmay.icu +sportmiet.ru +sportmilkt.ru +sportnbet.ru +sportofchivalry.org +sportprediction.com +sports-mud.com +sports3888.com +sportsa.ovh +sportsaa317.xyz +sportsallnews.com +sportsbarrie.com +sportsbettingblogio.com +sportsbettingcheat.com +sportscape.tv +sportscentertltc.com +sportscoring.org +sportsdeer.com +sportseventmanager.net +sportsextreme.ru +sportsflownews.club +sportsfoo.com +sportsfunnyjerseys.com +sportsgames2watch.com +sportsgobet.com +sportsheadbasketball.com +sportshqip.org +sportsinjapan.com +sportsintheraw.com +sportsjapanesehome.com +sportsnews.xyz +sportsnewsengine.xyz +sportsnewsforfun.com +sportsnflnews.com +sportsokworld.com +sportsraw.com +sportsscoring.org +sportsshopsnews.com +sportsterandme.com +sporttutbat.ru +sporttutmom.ru +sportulae.store +sportwales.org +sportylife.us +sporunaf.cf +sporunaf.ga +sporunaf.gq +spot12.icu +spotagory.com +spotcome.com +spotevents.online +spotify.best +spotifyupgrade.life +spotistic.com +spotlessmamma.online +spotlightgossip.com +spotlittle.com +spotmyworld.com +spotoaaa.com +spotoid.com +spotream.online +spotspeople.com +spottswoods.com +spoutserver.com +spoutsocial.ru +spoy.cn +spp878.com +spr.io +sprak.us +spranklesmeatclub.com +sprauncy.site +spravkajurist.ru +sprawdzlokatybankowe.com.pl +spraycrea.xyz +spraylysol.com +spraysalo.space +spreaddashboard.com +spreadoutlaugh.club +sprend.ru +sprenger1.com +sprin.tf +spring-o-pedia.com +springcitychronicle.com +springfactoring.com +springfield.clinic +springfieldnailsalons.com +springhotsale.com +springleafbooks.com +springmelodyteashop.website +springrive.com +springtowngeneralstore.com +sprinklerareus.com +sprintpal.com +spritelayer.net +spritepromo.eu +spritzzone.de +sproces.shop +sprosistalina.ru +sprypixel.net +spryte.co +sprzet.med.com +sps-visualisierung.de +spsnoforeclosure.com +spsu2o.us +spsuhornets.com +spt-sun.ru +sptgaming.com +sptrw.live +spuddgunner.xyz +spudiuzdsm.cf +spudiuzdsm.ga +spudiuzdsm.gq +spudiuzdsm.ml +spudiuzdsm.tk +spumartes.cf +spumartes.ga +spumartes.ml +spumartes.tk +spura2.com.mz +spurahome.se +spuramexico2.mx +spuramexico20.com.mx +spuramexico20.mx +spuramexico20012.com +spuramexico20012.com.mx +spuramexico2012.com +spuramexico2012.info +spuramexico2012.net +spuramexico2012.org +spurgs.us +spvantispam.com +spy700.com +spybox.de +spycamp.ml +spycellphonesoftware.info +spychelin.cf +spychelin.gq +spychelin.ml +spychelin.tk +spyderskiwearjp.com +spyderwebsoftware.com +spydictionary.com +spylive.ru +spymobilephone.info +spymobilesoftware.info +spyphonemobile.info +spyrointeractive.com +spysoftwareformobile.info +spywtarpa.cf +spywtarpa.ga +spywtarpa.gq +spywtarpa.ml +spywtarpa.tk +sq212ok.com +sq322.com +sq711.com +sq9227.com +sq9999.com +sqadekc.com +sqairwave.com +sqcysm.com +sqfbin.xyz +sqfec.us +sqftselfstorage.com +sqgpru.us +sqhbdl.site +sqicolombia.biz +sqiiwzfk.mil.pl +sqoai.com +sqpw35.us +sqqh9w.us +sqsiil.com +sqttr.com +squadmetrics.net +squadmetrix.com +squadmetrix.net +squafb.us +square-seal.com +squaredsmp.com +squaredsuppliers.com +squareseal.com +squarevjpe.space +squarsonry.best +squatch.shop +squawvalleyprom.net +squawvalleyresorts.com +squeeze.gq +squeezedconsumer.com +squeezedconsumer.org +squeezetv.com +squidforhire.com +squirepark.org +squirrelcagefan.net +squirt.school +squirtblurt.com +squirtsnap.com +squizzy.de +squizzy.eu +squizzy.net +sqwawky.com +sqwqdc.com +sqwtmail.com +sqxx.net +sr-wa.com +sr.ro.lt +sr2che.com +sr5qyp.us +sraka.xyz +srancypancy.net +srariityyy88.xyz +sravni.credit +sravnizaimi.ru +srb10n.com +srbhomessellfast.com +srbolik.com +srcoqhkc.shop +srcpls.ru +srenco.com +srenon.com +srestod.net +srewerty.ru +srgb.de +srgfesa21.online +srggaming.com +srhcp.org +srhfdhs.com +sri-consulting.com +sri-consulting.net +sriauth.com +sribey.com +srinkaweb.website +srjq.us +srkeskin.ga +srkeskin.tk +srkonduskar.com +srku7ktpd4kfa5m.cf +srku7ktpd4kfa5m.ga +srku7ktpd4kfa5m.gq +srku7ktpd4kfa5m.ml +srku7ktpd4kfa5m.tk +srm76.ru +srodaumvj7yvg76.xyz +sroff.com +srouchastie.xyz +srproductiononline.com +srqstudies.com +srquiz.com +srrowuvqlcbfrls4ej9.cf +srrowuvqlcbfrls4ej9.ga +srrowuvqlcbfrls4ej9.gq +srrowuvqlcbfrls4ej9.ml +srrvy25q.atm.pl +srsbizns.com +srsconsulting.com +srsxsx.shop +srtchaplaincyofcanada.com +srtnr.info +srtnr.org +srub48.ru +srubstroy35.ru +srugiel.eu +srv-aple-scr.xyz +srvais.online +srwatch.us +sry.li +srzio2.com +ss-deai.info +ss-hitler.cf +ss-hitler.ga +ss-hitler.gq +ss-hitler.ml +ss-hitler.tk +ss.undo.it +ss00.cf +ss00.ga +ss00.gq +ss00.ml +ss01.ga +ss01.gq +ss02.cf +ss02.ga +ss02.gq +ss02.ml +ss02.tk +ss1775.com +ss4pfk.us +ssabmocon.cf +ssabmocon.ga +ssabmocon.gq +ssabmocon.ml +ssabmocon.tk +ssacslancelbbfrance2.com +ssahgfemrl.com +ssakda2.net +ssande.site +ssangyong.cf +ssangyong.ga +ssangyong.gq +ssangyong.ml +ssanphone.me +ssanphones.com +ssantswilliams.icu +ssaofurr.com +ssapp222.xyz +ssapp555.xyz +ssapp777.xyz +ssasalliance.com +ssassto.ru +ssbhtcvm.shop +ssbt-russia.info +ssc52.top +sscclub.com +sschmid.ml +sscr7q.icu +ssd24.de +ssdbench.com +ssdcgk.com +ssddfxcj.net +ssdfxcc.com +ssdhfh7bexp0xiqhy.cf +ssdhfh7bexp0xiqhy.ga +ssdhfh7bexp0xiqhy.gq +ssdhfh7bexp0xiqhy.ml +ssdhfh7bexp0xiqhy.tk +ssdijcii.com +ssds.com +ssdsrvd.com +ssecured.com +ssegrub.best +ssekableat.top +ssfaa.com +ssfccxew.com +ssfehtjoiv7wj.cf +ssfehtjoiv7wj.ga +ssfehtjoiv7wj.gq +ssfehtjoiv7wj.ml +ssfehtjoiv7wj.tk +ssg24.de +ssgjylc1013.com +sshd520.com +sshid.com +ssiet.info +sskifym.site +sskinus.site +sskitriy.site +sskmail.top +sskstroy.ru +sskynderg.site +sskyreo.site +ssl-aktualisierung-des-server-2019.icu +ssl-trusted.com +ssl-verify.xyz +ssl.tls.cloudns.asia +ssl9mail.xyz +ssldigitalcertificate.com +sslgen.org +sslglobalnetwork.com +sslgsms.ru +sslporno.ru +sslsecurecert.com +sslsmtp.bid +sslsmtp.download +sslsmtp.racing +sslsmtp.trade +sslsmtp.win +ssml.app +ssmstem.net +ssn8ed.us +ssnapbridgee.site +ssnapclube.site +ssnapmarkm.site +ssnp5bjcawdoby.cf +ssnp5bjcawdoby.ga +ssnp5bjcawdoby.gq +ssnp5bjcawdoby.ml +ssnp5bjcawdoby.tk +sso-demo-okta.com +sso3.com +ssoia.com +ssoiskatel.ru +ssongs34f.com +sspecialscomputerparts.info +ssq.us +ssqiancha.com +ssrjzx.com +ssrpink.club +sssdccxc.com +ssslideserve.icu +ssspan.com +sssppua.cf +sssppua.ga +sssppua.gq +sssppua.ml +sssppua.tk +ssst-zar.ru +sssxs.top +sstata.com +ssteermail.com +sstorer.com +sstsy.net +ssudanhmis.org +ssuet-edu.tk +ssunz.cricket +ssv5jc.us +ssvm.xyz +sswinalarm.com +ssww.ml +ssxueyhnef01.pl +ssykxh.us +sszeyg24.xyz +sszxapi.com +sszzzz99.com +st-exp.net +st-lupopo.cd +st-m.cf +st-m.ga +st-m.gq +st-m.ml +st-m.tk +st1.vvsmail.com +st33.xyz +stabbettsnupp2020.xyz +stabbying.monster +stabetingsnup.xyz +stabetting.xyz +stabilbettsnapp.xyz +stabilitybetsnapp.xyz +stabilitybettingsnapp.xyz +stablebot.ru +stablecoininterest.com +stablemail.igg.biz +stachebarbershop.com +stackedlayers.com +stackinglayers.com +stacklance.com +stackled.com +stackleds.com +stackomatic.com +stackparts.com +stackupapp.com +stadia.codes +stadiumtrucks.net +stadyumdan.com +stafabands.info +staff7.ml +staffburada.com +staffchat.tk +staffmessages.com +staffprime.com +stafimre.cf +stafimre.ga +stafimre.gq +stafimre.ml +stagabta.site +stagarti.cf +stagarti.ga +stagarti.gq +stagarti.tk +stagazvi.ga +stagazvi.ml +stagazvi.tk +stage-dz.com +stagebla.xyz +stagedandconfused.com +stagedoorstudios.co.uk +stagefright.info +stagenext.co +stagewate.xyz +stagewijzer.space +stagingdisco.com +stagingsever.com +stagmoli.cf +stagmoli.ga +stagmoli.gq +stagmoli.ml +stagmoli.tk +stagnations.best +stagricomp.cf +stagricomp.ga +stagricomp.gq +stagricomp.ml +stagricomp.tk +stailas.club +staindrea.xyz +stainlessevil.com +stainlesssteelbrush.biz +stainlesssteelbrush.net +stainlesssteelbrush.org +stainlesssteelbrushes.us +staircraft5.com +staishansteel.com +stakegrace.com +stakehab.xyz +stakeholderexchange.org +staking-live.com +stalbud2.com.pl +stalbudd22.pl +stale.ml +stalenvilla.com +stalingradd.ru +stalingulag.com +stalker22.ru +stallbla.recipes +stallde.icu +stallfev.icu +stalliondc.com +stalloy.com +stallspine.recipes +stalnoj.ru +stalos.pl +stamathioudaki.xyz +stamberg.nl +stambytesundsvall.se +stamcoral.cf +stamcoral.ga +stamcoral.gq +stamcoral.tk +stamforddoctors.com +staminafamily.com +stampfrui.fun +stampguid.fun +stampoint.com +stamppot.media +stampsprint.com +stan-stan.com +stanalandgroup.com +stanbankrot.xyz +stanbondsa.com.au +standais.xyz +standaisl.xyz +standardcrypto.com +standardhome.org +standardsoptical.fun +standartnewsbg.club +standartnewsbg.online +standartnewsbg.today +standclea.icu +standeight.com +standeputatom.ru +standfl.xyz +standhover.email +standing-desk-office-expert.zone +stando-borescope.com +standothe.xyz +standrewavellinorcchurch.com +standrewavellinorcchurch.info +standrewavellinorcchurch.us +standrewskirk.org +standrewswide.co.uk +standupforyourrightswisconsin.org +standupstories.com +standwo.icu +stanford-edu.tk +stanfordscientific.org +stanfordujjain.com +stankrc.com +stanleykitchens-zp.in +stanmody.cf +stanmody.ga +stanmody.gq +stanmody.ml +stanmody.tk +stanniiffu.space +stanovanjskeprevare.com +stansade.cf +stansade.ga +stansade.ml +stansade.tk +stanthonycroatianchurchla.org +stantondoctors.com +stantonwhite.com +stanungrab.cf +stanungrab.gq +stanungrab.ml +staplefy.com +star-bet.cash +star-context.site +star-court-chinese-shannon.com +star-goroscop.org +star-trek.online +star0casino.club +starb5t5.com +starbasket.camp +starbet.xyz +starbet79.com +starbittest.xyz +starblogsthai.com +starbola.com +starboptyd.space +starbucks-samples.club +starcira.com +starcitycards.biz +starcitycards.net +starcitycards.org +starcraftwallpapers.com +stardefcon.com +stardiesel.biz +stardiesel.info +stardiesel.org +stargate1.com +stargaterecords.com +stargentumcraft.ru +starherz.ru +starikmail.in +starinfluencer.org +starkaraoke.ru +starkebab-athlone.com +starkfoundries.com +starkjoyas.com +starkrecords.com +starlegboa.cf +starlegboa.ga +starlegboa.gq +starlegboa.tk +starlight-breaker.net +starlightcanna.com +starlimo.cf +starlimo.ga +starlimo.ml +starline-a.site +starmagsigh.cf +starmagsigh.gq +starmagsigh.ml +starmetalsatlanta.us +starmyace.ga +starmyace.gq +starmyace.tk +staroevsyakoe.com +staronescooter-original.ru +starpl.com +starpolyrubber.com +starpopco.cf +starpopco.gq +starpopco.ml +starpower.space +starpreneur.com +stars-bets.com +stars-vulkan-casino.win +starslots.bid +starstablecheats.com +starstaboos.com +starstatemachine.org +starstruckcommerce.com +start-me.ru +start-money39.ru +start-serial.xyz +start-up.kg +start-vr.online +startafreeblog.com +startahead.today +startaheadtoday.com +startank.icu +startap731.ru +startation.net +startawinecollection.com +startbags.ru +startcreate.ru +startemail.tk +starterplansmo.info +startersite.ru +startfu.com +starthand.icu +startidc.com +startimetable.com +startkeys.com +startkni.icu +startmail.xyz +startoon02.com +startoon5.com +startoon8.com +startoon9.com +startpaya.com +startsgreat.ga +startupcircles.mobi +startupex.online +startuphusky.com +startuplunchclub.com +startupmystartup.com +startupnyou.com +startupschwag.com +startupsimulator.ru +startupsjournal.com +startupstartertoolkit.com +startuptees.com +startuptulsa.com +startuup.co +startwithone.ga +startxters.online +startymedia.com +starvalley.homes +starvalleyequipmentrental.com +starvalleyranchrvpark.com +starvalleyrentals.com +starveyourego.com +starveyourego.org +starwaytollers.com +starwin365.biz +starwitches.net +starx.pw +staryoskol.info +staryzones.com +starzip.link +stashemail.info +stashsheet.com +stasuauth.com +stat.org.pl +statdvr.com +stateattorneysgeneral.com +stateblin.space +statecollegedoctors.com +statecollegeplumbers.com +statefl.xyz +stateflee.xyz +statelawsuitreform.org +statelawyerdirectory.com +statement.email +statenislandmvp.com +stateofoyo.com +stateofthedebate.com +statetaxreview.com +stathost.net +static-xad.com +staticcontrolbrush.net +staticcontrolbrushes.biz +staticcontrolbrushes.net +staticdissipativebrush.com +staticdissipativebrushes.us +staticintime.de +staticpad.com +statiix.com +station.poker +stationatprominence.com +statisticalbreviary.com +statisticalbreviary.net +statisticalbreviary.org +statloan.info +staton-time.com +statontime.com +statpill.com +statravel.ru +statrep.com +stats-on-time.com +statsbet.ru +statsbot.xyz +statson-time.com +statsondemand.com +statsontime.com +stattech.info +statuaxkwo.space +status.vote +statusa.shop +statusers.com +statusinforming.xyz +statuspage.ga +statusqm.biz +statusqm.com +statusqm.net +statusqm.org +statusqms.biz +statusqms.net +statusqms.org +statutoryregisters.com +statx.ga +stavkapromokod10.ru +stavki-na-sport-online.ru +stavkile.xyz +stayarch.us +stayfish-dublin.com +stayfitforever.org +stayhome.li +stayinyang.com +staylocal.asia +staypei.com +staytoppop.com +stayvigel.com +stayvigil.com +stbartstours.com +stclairlawofficewa.com +stcnedu.com +stcroixboatrentals.com +std.doctor +steadying.com +steakej.icu +steakhe.us +steakhors.xyz +steakinde.xyz +steakreb.xyz +steakrebe.xyz +steakshoo.email +stealbest.com +stealbets.ru +stealth-check.space +stealthapps.org +stealthypost.net +stealthypost.org +steam-area.ru +steam-brush.net +steam-inventory-helper.com +steam-love.ru +steamak.ru +steambooty.com +steambot.net +steamcases.ru +steamcommuynitu.ru +steamcomunity.ru +steamdiscoveryhomeschool.com +steamgg.ru +steamgreenlight.ml +steamlite.in +steammap.com +steampowered.games +steamprank.com +steampunkrider.com +steamreal.ru +steamsupport-tr.tk +steamth.com +steamvip.ml +steamyliasons.com +steamyprofiles.com +steauaeomizerie.com +steauaosuge.com +steclin.net +stecloochistitel.ru +stedmeister.com +steel-pipes.com +steelgainer.ru +steemail.ga +steepeli.icu +steeplion.info +steericjpz.space +stefanbates.com +stefangorzkiewicz.com +stefanrush.com +stefanspooren.online +stefantoresson.se +stefhf.nl +stefparket.ru +steganpsmc.space +stegodons.best +stehkragenhemd.de +steifftier.de +steinheart.com.au +steklosila.ru +steklozona.ru +stekolko.ru +stelgames.com +stelian.net +stelkendh00.ga +stellarleagues.com +stelliteop.info +stels26.ru +stemcca123.xyz +stemfor.ru +stemsurgery.com +stendsad.gq +stenglertv.com +stenta.org +steorn.cf +steorn.ga +steorn.gq +steorn.ml +steorn.tk +stepbystepwoodworkingplans.com +stephanbrandhorst.shop +stephaniefords.com +stephaniestephensbuyshousesinconroe.com +stephensgreen-media.com +stephs.site +stepitup.solutions +steplingdor.com +steplingor.com +steplushs.online +stepoffstepbro.com +steprepeatsbackdrop.com +steps-of-rome-restaurant.com +stepsofromeitalian.com +steptobusiness.ru +steptohs.gq +stepundum.ga +stepundum.gq +stepundum.ml +stepundum.tk +stepx100.company +stepx100.name +stepx100.one +stepx100.ru +stepx100.space +stereoreceivers.info +sterfastspir.ga +sterfastspir.gq +sterfastspir.ml +sterfastspir.tk +sterlingheightsquote.com +sterlingsilverflatwareset.net +sterlingtelecom.ru +stermail.flu.cc +steroidi-anaboli.org +stetna.site +steueetxznd.media.pl +steumccommuniti.ru +steumccommunyti.ru +steumccommunytiu.ru +steumcommunytl.ru +steumcommunytliu.ru +steumcommunytlu.ru +steumcomunitu.ru +steumcomunnitu.ru +steumcomuunniti.ru +steumcomuunnitu.ru +steumcoommunytiu.ru +steunhandelaars.online +steunhandelaars.site +steunhandelaars.vlaanderen +steunhoreca.site +steuwo.site +stevefotos.com +steveharrismedia.com +steveholmesphoto.com +stevenbaker.com +stevenledford.com +stevenolls.info +stevenorbye.com +stevenspointapartments.com +stevepavilanis.com +stevesmale.com +steviestephens.com +stevyal.tech +stewartscyclecity.com +stewartspokane.com +stewarttalentchicago.com +stexsy.com +steyraustralia.com +stf8.wtf +stftmsa.club +stg.malibucoding.com +stgj68.com +stgmm.live +sthaniyasarkar.com +stichtowear.com +stick-tube.com +stickers5stier.website +stickersy.website +stickmansurf.com +stickprotection.com +stickyfaith.com +stickywarrior.com +sticypil.cf +sticypil.ga +sticypil.gq +sticypil.ml +sticypil.tk +stielampung.net +stiesy.com +stifemar.cf +stifemar.gq +stifemar.ml +stifemar.tk +stiffbook.xyz +stiffgirls.com +stihi-poeziya.ru +stiistim.shop +stilettopm.com +still-west.com +stillfeas.icu +stillshee.recipes +stillsheep.recipes +stillwerun.net +stilsom.xyz +stimstii.shop +stimulanti.com +stinghors.buzz +stingsma.xyz +stinkefinger.net +stinkers.org +stinkypoopoo.com +stinzavod16.ru +stinzavod28.ru +stinzavod44.ru +stinzavod8.ru +stiop.website +stiqx.in +stireazilei.ru +stitchingbelle.com +stitools.net +stivendigital.club +stixinbox.info +stjamesplantationrealestateproperties.com +stjohninglewood.net +stlfasola.com +stlithfunsworks.com +stlouisquote.com +stlzen.company +stmargarets.site +stmcb.org +stmentm.shop +stnds.ru +sto-loto-prise.press +stoboss.com +stoc24.info +stocherin.cf +stocherin.ga +stocherin.gq +stocherin.ml +stocherin.tk +stocilat.cf +stocilat.ga +stocilat.ml +stock-discount-retail.space +stock3dphotos.com +stockbeewp.com +stockblinds.ca +stockburger.solutions +stockguru.net +stockgurucanada.com +stockholmmarkis.nu +stockmarketnigeria.com +stockmount.info +stockmount.xyz +stockpedia.xyz +stockpicclub.com +stockpickcentral.com +stocksaa317.xyz +stocksaa318.xyz +stockservers.host +stocksforjocks.org +stocktonnailsalons.com +stocosur.cf +stocosur.ml +stocosur.tk +stocxingsgen.ga +stocxingsgen.gq +stocxingsgen.tk +stoenco.shop +stofaline.ru +stoffreich.de +stofverpoi.cf +stofverpoi.ga +stofverpoi.gq +stofverpoi.ml +stofverpoi.tk +stogigabit.ru +stohastik.tel +stokbucol.com +stokportal.ru +stokyards.info +stolbbrus.ru +stolica35.ru +stolidwiid.space +stoloto-lotterypartner.site +stolovaya-hutorok.ru +stom-prof.ru +stomach4m.com +stomatolog.pl +stonamab.ml +stonamab.tk +stonebahis25.com +stonecanyonvegas.com +stonecoal.space +stonedogdigital.com +stonedrones.com +stoneflylab.com +stoneflylabs.com +stonemountaindentistry.com +stonenetworkonline.net +stonerunapts.com +stonesmails.cz.cc +stonlinnidelan.space +stonvpshostelx.com +stop-alert.site +stop-my-spam.cf +stop-my-spam.com +stop-my-spam.ga +stop-my-spam.ml +stop-my-spam.pp.ua +stop-my-spam.tk +stop-nail-biting.tk +stop-working.ru +stopbitingyournailsnow.info +stopblackmoldnow.com +stopcheater.com +stopcomgi.cf +stopcomgi.ga +stopcomgi.gq +stopcomgi.ml +stopcomgi.tk +stopelevendentalgroup.com +stopforumforum.com +stopforumspam.info +stopforumspamcom.ru +stopgrowreview.org +stophabbos.tk +stopharlownorth.com +stopmassspying.com +stopnds.com +stopsesta.com +stopshooting.com +stopshowcontrol.com +stopspamservis.eu +stoptalonserrurerie.com +stopthehousingbailout.com +stoptracking.cool +stopvulcancomalcountyquarry.org +stopwhitecollarcrime.com +storabim.cf +storabim.gq +storagehouse.net +storageplacesusa.info +storageshop.futbol +storageunits.app +storal.co +storant.co +storckcleaning.biz +store-clear-fast.ru +store-krosi.ru +store-official-offer.ru +store-perfume.ru +store-sumky.ru +store-tshirt.com +store.hellomotow.net +store389.top +store4files.com +storeamnos.co +storeandgo.ru +storebero.club +storebestsale.ru +storechaneljp.org +storeclsrn.xyz +storectic.co +storective.co +storeferragamo.com +storegmail.com +storeillet.co +storellin.co +storendite.co +storenew24.net +storenia.co +storennnews.com +storent.co +storeodon.co +storeodont.co +storeodoxa.co +storeortyx.co +storeotragus.co +storepradabagsjp.com +storepradajp.com +storerecon.net +storereplica.net +storero.co +storestean.co +storesteia.co +storesuccpix.host +storeupdate.live +storeutics.co +storevisibility.com +storeweed.co +storewood.co +storeyee.com +storeyoga.mobi +storeyoga.vip +storiqax.com +storiqax.top +storist.co +storj99.com +storj99.top +storkbot.com +storm-gain.biz +storm-gain.com +storm-gain.net +storm-gain.ru +storm-gain.us +storm-news.ru +storm.cloudwatch.net +stormacu.press +stormarea51festival.com +stormcoalition.org +stormdrone.ru +stormenra.cf +stormenra.ga +stormenra.ml +stormenra.tk +stormfai.icu +stormflush.space +stormgain.asia +stormgain.club +stormgain.hk +stormgain.info +stormgain.live +stormgain.net +stormgain.sk +stormiro.com +stormwarriorsmediafoundation.com +stormynights.org +stornoway-angling-association.com +storos.ru +storpool.info +storrent.net +storrowband.com +storybicycle.com +storybuilding.cloud +storydrivenretail.com +storyjoke.xyz +storylensmarketing.com +storymed.icu +storysolution.com +storyst.xyz +storysta.xyz +storywat.xyz +stovepartes1.com +stowawaygingerbeer.com +stoya.tech +stpattys5k.com +stpaulfcu.biz +stpaulfcu.name +stpaulfcu.us +stpc.de +stpetebungalows.com +stpetersandstpauls.xyz +stpetersburggolf.com +stpetersburgmap360.com +stpetersburgnailsalons.com +stpeterskindergarten.com +stqffouerchjwho0.cf +stqffouerchjwho0.ga +stqffouerchjwho0.gq +stqffouerchjwho0.ml +stqffouerchjwho0.tk +str.cash +str1.doramm.com.pl +strahovanie-tinkoff.ru +strahovkavita.ru +straightacelearning.com +straightenersaustralia.info +straightenerstylesaustralia.info +straightenerstylescheapuk.info +straightenerstylessaustralia.info +straightenhaircare.com +straightening-solution.com +straightupfarms.com +strakkebuikbijbel.net +strandpromenaden9.site +strandsbar.online +strangersinstereo.com +strangerthanfriction.org +strangeserver.ru +strapedfortime.com +straply.com +straponmoviez.com +strapworkout.com +strasbergorganic.com +strat0s.earth +strategicalbrand.com +strategicprospecting.com +strategyzr.info +stratfordfootclinic.com +strathearnmasons.org +stratosphericheights.org +stratoverity.net +strattera.website +strauss.best +strausswell.com +strawar.xyz +strawberry-game.online +strawcabl.recipes +strawdi.works +strawdre.xyz +strawfei.fun +strawgri.email +strawhat.design +strawhous.icu +strawsig.icu +strawwa.xyz +stream-lite.monster +stream.gg +streamcomplet.one +streamdotshop.com +streamdrop.org +streamfly.biz +streamfly.link +streaming-films-gratuit.xyz +streaming-foot.biz +streaming-foot.online +streaming-manga-vf.com +streaming-mangas.net +streaming.cash +streamingbokepx.info +streamingfoot.biz +streamingz.xyz +streamlifecoin.com +streamlifeproductions.live +streamlifestudio.com +streamlines.us +streamnvr.net +streamnvr.org +streamonsport.stream +streams-web.site +streamsentiment.net +streamsofedendesign.com +streamtv2pc.com +streamup.ru +streamwatchtv.live +streamzt.org +streerd.com +street.network +streetbroom.net +streetbroom.org +streetbrooms.net +streetbrooms.us +streetevolution.club +streetfeetdance.com +streetsyouwalk.com +streetwisemail.com +strengthandwarmth.org +strengthvcf.email +strenmail.tk +stresser.store +stresser.tk +stressylglf.email +stricapticadore.com +strictddwxs.email +strideritecouponsbox.com +stringcool.com +stringlevel.icu +stringoftheseus.com +striorttedavisi.xyz +striorttreatment.xyz +striortturkey.xyz +strip-girls.ru +stripadvisor.xyz +stripbrush.biz +stripbrush.us +stripbrushes.net +stripbrushes.us +stripmsk.ru +stripouts.melbourne +stripquiz.ru +stripstu.us +strivenational.org +strivingman.com +strixed.website +strkt.website +strmail.site +stroemka.ru +stroi-pro.store +stroiitelstvo.ru +stroimfasad.ru +stroimvseinfo.ru +stroitel-ru.com +strokegenius.net +strollers-online.com +stromans.space +stromgain.biz +stromgain.com +stromgain.net +stromgain.ru +stromgain.us +stromox.com +strona1.pl +stronawww.eu +strong-muscle.com +strongan.com +strongerads.com +strongerwomandiet.com +strongerwomanlabs.com +strongerwrist.com +strongmd.com +strongpeptides.com +strongpesny.ru +strongsvilleapartments.com +strongviagra.net +stronnaa.pl +stronnica.pila.pl +strontmail.men +stronywww-na-plus.com.pl +stronzo.cf +stronzo.ga +stronzo.gq +stronzo.ml +stronzo.tk +strosehanford.com +stroutell.ru +strovolos.xyz +stroy--portal.ru +stroy-montage777.ru +stroydom54.ru +stroygroup.org +stroyka-34.ru +stroymetalls.ru +stroymetals.ru +stroymontazh24.ru +stroynovv.ru +stroyopt-31.ru +stroyportrus.ru +stroytehn.com +stroytell.ru +strshcola34.ru +structuralrenovations.com +sts.ansaldo.cf +sts.ansaldo.ga +sts.ansaldo.gq +sts.ansaldo.ml +sts.hitachirail.cf +sts.hitachirail.ga +sts.hitachirail.gq +sts.hitachirail.ml +sts.hitachirail.tk +sts9d93ie3b.cf +sts9d93ie3b.ga +sts9d93ie3b.gq +sts9d93ie3b.ml +sts9d93ie3b.tk +stsfsdf.se +ststwmedia.com +stt1188.com +stt288.com +stt3344.com +stt9888.com +stt991.com +stuckhere.ml +stuckmail.com +stucwerkrepareren.com +student-loan-consolidation-programs.us +student-web-design.com +student.edu.creo.tips +studentdaysout.com +studentdebtheros.com +studentloaninterestdeduction.info +studentloantherapist.com +studentmail.me +students-class1.ml +studi24.de +studiakrakow.eu +studiegids.org +studiekiezenhulp.online +studio-intensive.com +studio-mojito.ru +studio213llc.com +studio300.com +studioascc.com +studioaslka.email +studiodesain.me +studiodesparfums-paris.com +studiokadr.pl +studiokadrr.pl +studiomeha.ru +studiopolka.tokyo +studioro.review +studiosaus.online +studiotgsip.online +studiouberhaupt.com +studioverity.com +studiovolpi.info +study-advantage.site +study-good.ru +study-intentions.site +study-network.site +studychoicebes.com +studyeainja.email +studytantra.com +studytitl.fun +stuen.site +stuff.munrohk.com +stuffagent.ru +stuffmail.de +stuffsti.xyz +stuffuny.cf +stuffuny.ga +stuffuny.ml +stuffuny.tk +stumblemanage.com +stumblingbee.info +stumblingzebra.info +stumpblind.com +stumpfwerk.com +stunde.shop +stunninggorgeous.com +stupid.pet +stupid.tube +stupidblog.com +sturalray.ml +sturdynews.com +sturetattoo.online +sturetattoo.se +sturgeonpointchurch.com +sturroperp.cf +sturroperp.ga +sturroperp.gq +sturroperp.ml +sturroperp.tk +stusnem.ru +stuswope.com +stuttgarter.org +stutzarts.org +stuy-wash-n-dry.com +stvj.com +stvmanbetx.com +stvp.dev +stwirt.com +stxsports.org +styl-stroy.ru +style-sporty.ru +stylearis.xyz +stylebostononline.com +stylechec.recipes +styledesigner.co.uk +stylemail.cz.cc +stylen.info +stylenjeagn.email +stylepi.icu +stylepositive.com +stylesmail.org.ua +stylesp.icu +stylesshets.com +stylethiarish.com +styletype.site +stylght.com +stylishcombatboots.com +stylishdesignerhandbags.info +stylishmichaelkorshandbags.info +stylishwaka.com +stylist-volos.ru +styliste.pro +stylizes318cf.online +styllsy.com +su3cl3.com +su4gc.us +su7u.com +suagiagoc.com +suakmnn.com +suamgtpk.shop +suamiistribahagia.com +suasionnewsletter.com +suavietly.com +sub-2020.info +sub2qp.us +sub4d.org +suba3b.info +subaru-brz.cf +subaru-brz.ga +subaru-brz.gq +subaru-brz.ml +subaru-brz.tk +subaru-wrx.cf +subaru-wrx.ga +subaru-wrx.gq +subaru-wrx.ml +subaru-wrx.tk +subaru-xv.cf +subaru-xv.ga +subaru-xv.gq +subaru-xv.ml +subaru-xv.tk +subaxillary.best +subcblognus.cf +subcblognus.ga +subcblognus.gq +subcblognus.ml +subcblognus.tk +subccybd.site +subchina.com +subgauge.com +subgold.ru +subiri.cf +subiri.ga +subiri.gq +subiri.tk +subivari.site +subjectmap.net +subkeyten.cf +subkeyten.ga +subkeyten.gq +subkeyten.tk +subleasehub.com +sublime-shop.site +sublingualvitamins.info +subluminal.info +submergeus.com +submitprofit.com +submoti.ga +submoti.gq +submoti.tk +subneking.cf +subneking.tk +subnest.net +subnine.net +suboog.fun +subpastore.co +subqouisom.cf +subqouisom.ml +subqouisom.tk +subrendo.ml +subrolive.com +subrosavideo.com +subscenecdn8.xyz +subscrib.ru +subscribe.rocks +subscribershub.online +subset.support +subsidrlnq.space +subspacerelay.net +substate.info +substidehz.space +substitutesfat.com +substitutesrun.com +subsxchange.com +subtilizes150yj.online +subtle-love-brightimperial.com +subtogel.com +subtogel.net +subtoto.com +subtoto.net +subtverpthe.ga +subtverpthe.gq +subulog.xyz +suburbanthug.com +suburqq.club +suburqq.live +suburqq.net +subwaysgfm.space +subwaysubversive.com +suby.site +subzone.space +succcardnach.cf +succcardnach.ga +succcardnach.gq +succcardnach.ml +succcardnach.tk +succeedabw.com +succeedx.com +succesbehalen.site +succesgscv.space +success.ooo +successagency.site +successagency.website +successclick.ru +successforu.org +successforu.pw +successfulvideo.ru +successlocation.work +successmvp.com +successstylesstories.com +sucess16.com +suchtfrei.info +sucile.xyz +sucirve.ga +sucirve.gq +sucirve.ml +sucirve.tk +suckmyd.com +sucknfuck.date +sucknfuck.site +sucuqeu.space +sucvat.dog +sudan-nedv.ru +sudaneseoverline.com +sudanfreedom.org +sudannews365.net +suddenchangechallenge.com +suddenlystrangers.com +sudloisirs-nc.com +sudo5.com +sudolife.me +sudolife.net +sudomail.biz +sudomail.com +sudomail.net +sudoverse.com +sudoverse.net +sudoweb.net +sudoworld.com +sudoworld.net +sudurr.mobi +sudvestidelo.xyz +suedcore.com +suehuntdesign.com +suenodelcamino.com +suestetcomp.cf +suestetcomp.ga +suestetcomp.gq +suestetcomp.ml +suestetcomp.tk +suffisa.com +suffocationlive.info +suffrueguj.space +sufipreneur.org +sufismglobalcircle.com +sufit.waw.pl +sugabuzx.com +sugar-daddy-meet.review +sugarcane.de +sugarcrm.moscow +sugardaddypardise.com +sugarplummarys.com +sugartimeus.store +sugartoy.com +suger-ro.com +suggiewuggies.com +suggstimbermachining.net +sugoi-ii.biz +suhov-media.ru +suhuempek.cf +suhuempek.ga +suhuempek.gq +suhuempek.ml +suhuempek.tk +suhugatel.cf +suhugatel.ga +suhugatel.gq +suhugatel.ml +suhugatel.tk +suhusangar.ml +suiaid.com +suibox.com +suiliu.com +suioe.com +suipostsil.cf +suipostsil.ga +suipostsil.ml +suiratelier.com +suireka.cf +suireka.tk +suirovig.cf +suirovig.ga +suirovig.tk +suitableland.net +suitcasesjapan.com +suiteange.xyz +suitesatkillington.com +suitetru.xyz +suitetrun.icu +suitewea.fun +suittrends.com +suivicolissimo.cc +suiyoutalkblog.com +sujjn9qz.pc.pl +sukaalkuma.com +sukapkv.xyz +sukasukasuka.me +suke2.us +sukenjp.com +sukienb24.com +suksescasino.info +suksesnet.com +suksesnet.net +suksessin.net +sulari.cf +sulari.ga +sulari.gq +sulari.ml +sulari.tk +sulitapp.com +sull.ga +sullivan11thward.org +sullivanscafe.com +sulpehost.cf +sulpehost.ml +sulpehost.tk +sultanbaptist.space +sultanbetbonus.net +sultanbetcasino3.club +sultanbetgiris.org +sultanbetgiris2.club +sultanbetuyelik2.club +sultanbetyeniadresi2.club +sultanbeyliihl.xyz +sultandomino.info +sultandomino.org +sultandomino99.org +sulut365.com +sulut88.com +sulutbet.com +sum20.com +suma-group.com +sumaestrategias.com +sumaholog.online +sumaidaandkhurana.com +sumarymary.xyz +sumbatouristic.com +sumberkadalnya.com +sumerzhang.xyz +sumessentialoils.com +sumidouros.info +sumitra.ga +sumitra.tk +sumka-trands.ru +summabankrot.xyz +summarization92fv.online +summarization948gb.online +summationstaffing.com +summavocarefoundation.org +summer-boxoffice.com +summerblaze.site +summerbloggreenoceanlina.site +summercurvehealthygoalketo.com +summerinnswords.com +summerlinmedia.net +summeroceangreenbloglina.site +summerolympics.tokyo +summerswimwear.info +summertalbot.buzz +summerwedding.club +summis.com +summitcountylibraries.com +summitgg.com +summitmedweb.com +summitofentrepreneurship.com +summitofpower.com +summitofresources.com +summitoftruth.com +summonsinstinct.site +sumofsums.com +sump3min.ru +sumpbiro.cf +sumpbiro.ga +sumpbiro.gq +sumpbiro.ml +sumpbiro.tk +sumpscufna.cf +sumpscufna.ga +sumpscufna.gq +sumpscufna.tk +sumurborjogjakarta.com +sun-star-takeaway.com +sun8282.net +sunbatem.online +sunbeliever.online +sunbi.biz +sunbirdy.com +sunbuh.asia +sunburning.ru +sunburyohs.info +sunbzarra.ga +sunbzarra.gq +sunbzarra.ml +sunbzarra.tk +suncareersolution.com +suncitysouthafrica.org +sundancesquareplaza.com +sundaylaura.com +sundaymariska.com +sundaymovo.com +sundaysuspense.space +sundriesday.com +sundtnutrition.info +sundtnutrition.org +sunerb.pw +sunflower-hotel.com +sunflowermls.org +sungin-jp.com +sunglassescheapoutlets.com +sunglasseslabs.com +sunglassespa.com +sunglassesreplica.org +sunglassesshop.futbol +sunglassestory.com +sunglie-mind.xyz +suning.one +suningsuguo123.info +sunk62.fun +sunlifeplazahotel.com +sunmail.ga +sunmail.ml +sunmeni.com +sunnylandschool.com +sunnyleonexxx.mobi +sunnynet.shop +sunnysamedayloans.co.uk +sunpolis.site +sunprairieapartments.com +sunraindev.com +sunram.ru +sunramea.cf +sunramea.ga +sunramea.gq +sunramea.ml +sunramea.tk +sunrayod.com +sunrice-shop.ru +sunridgelandscape.com +sunrisebayleh.net +sunrisebayleh.org +sunrisespasaz.com +sunriver4you.com +sunsamail.info +sunsetclub.pl +sunsetgames.social +sunsetsigns.org +sunsggcvj7hx0ocm.cf +sunsggcvj7hx0ocm.ga +sunsggcvj7hx0ocm.gq +sunsggcvj7hx0ocm.ml +sunsggcvj7hx0ocm.tk +sunshine-bike.com +sunshine-mistery-villas.com +sunshine-takeaway.com +sunshineautocenter.com +sunshinedesign.info +sunshinehousespa.com +sunshineskilled.info +sunsol300.com +sunspouurw.online +suntory.ga +suntory.gq +sunvamor.ga +sunvamor.ml +sunvamor.tk +sunvictorytale.com +sunyarme.com +sunydaylunh.email +sunyggless.com +suoox.com +sup998.com +supa4.com +supaplex.site +supappl.me +supascan.com +supb.site +super-100-loto.press +super-100-loto.site +super-100-loto.website +super-auswahl.de +super-date-now3.com +super-fast-email.bid +super-fitnes.site +super-incomes.online +super-lodka.ru +super-mag-orange.space +super-swift-grey.space +super-szkola.pl +super-videos.info +super-wifi.online +super10.space +super1x.com +super6al.com +superalts.gq +superamaren.me +superauto8.com +superbags.de +superbahisbonus.info +superbahiscanlicasino.info +superbahiscanlicasino.net +superbahisguvenilirmi.info +superbahiskampanya.info +superbahisokey.com +superbahisokey.info +superbahisokey.net +superbahissikayet.net +superbahistavla.info +superbahistavla.net +superbalist.info +superbeam.tech +superbeingdiet.com +superbemediamail.com +superbet777.net +superbiteslimerick.com +superbitestakeaway.com +superbmedicines.com +superbowl500.info +superbowlaovivo.live +superbowlbettinglines.com +superbowlnflravens.com +superbowlravenshop.com +superbwebhost.de +supercache-bhs1.ovh +supercasinomitgeld.online +supercem.net +supercheapwow.com +supercoinmail.com +supercoolrecipe.com +supercreo.com +supercutewatches.com +superdieta.ddns.net +superdiplomnik.ru +superdom.site +supere.ml +supereme.com +superenalottoonline.it +superfanta.net +superfastemail.bid +superfinancejobs.org +superfood.click +superforumb.ga +supergadgets.xyz +supergelmarl.site +supergirl.fun +supergreatmail.com +supergreen.com +supergreentonic.com +superhappyfunnyseal.com +superhostformula.com +superintim.com +superior-seo.com +superiormarketers.com +superioroliveoils.com +superiorwholesaleblinds.com +superkardioru.ru +superleocasino.com +superleopoker.com +superlistas.info +superloto01.icu +superluckyslots.ru +supermacsmaynooth.com +supermail.cf +supermail.tk +supermailer.jp +supermails.pl +supermall.xyz +supermediamail.com +superminicase.rest +superminicraft.com +supermoji.app +supernews245.de +supernewsavto.ru +supernova-light.com +supernozhmarket.ru +superoeuhe.space +superpene.com +superplatyna.com +superpotencialex.ru +superpsychics.org +superputovanja.com +superraise.com +superreload.site +superrico.market +superrito.com +superrmail.biz +supersaiyagod.com +supersentai.ru +supersentai.space +superserver.site +superskidki.fun +supersolarpanelsuk.co.uk +supersorted.email +superstachel.de +superstarvideo.ru +supersufficiency.best +supertechguys.com +supertemporarymails.tk +supertotobet.tv +supertotobet0428.com +supertrend-top.site +supertrends-magazin.site +supertux.net +superurotrinz.ru +supervet.nu +supervideofriends.com +supervk.net +superweblink.ga +superwork-ufa.ru +superxml.icu +superyacht-glass.com +superzaym.ru +supimon.com +suplemento.club +suples.pl +supopenersir.website +suport.com +suppdiwaren.ddns.me.uk +supperdryface-fr.com +supperesierfaster.xyz +supplement-analysis.com +supplements.gov +supplybluelineproducts.com +supplyhuse.com +supplylist.org +supplywebmail.net +suppoint.ru +support-tes.ru +support.com +support22services.com +supporthpprinters.com +supportpatriotflexgoods.com +supporttheroundhouse.org +supportusdad.org +suppreme.ru +supra-hot-sale.com +supraoutlet256.com +supras.xyz +suprasalestore.com +suprashoesite.com +suprasmail.gdn +supremeairbnb.com +suprememarketingcompany.info +suprememedicinal.com +supremepowerblog.com +supremesewingmachines.com +supremesteroids.se +supremun.com +suprhost.net +suprisez.com +supstat.us +suptc.ru +supxmail.info +surabayakerja.info +surat.ddnsfree.com +suratku.dynu.net +suratuntukpresiden.org +surdany.site +surdaqwv.priv.pl +suredisc.info +surely-group.com +surelyfocus.com +suremail.info +suremail.ml +sureoffers.com +surf-online.ru +surfact.eu +surfando.info +surfcasino6.club +surfdayz.com +surfingwithsarah.com +surflepo.cf +surflepo.ga +surflepo.gq +surflepo.ml +surflepo.tk +surfmail.tk +surfomania.pl +surga.ga +surgeryfrance.com +surgerylaser.net +surgicalcoaching.net +surigaodigitalservices.net +surinam-nedv.ru +suriyeninlalesi.tk +surjuebu.cf +surjuebu.ga +surjuebu.ml +surjuebu.tk +surl2.info +surou.xyz +surpa1995.info +surpluscartridges.com +surpriseinbox.ru +surreptitious.website +surrogate-mothers.info +surrogatemothercost.com +suruitv.com +suruykusu.com +surveihtyf.space +surveillancefast.xyz +surveyor3.net +surveyrecruiters.com +surveyrnonkey.net +surveysaypanel.com +surveyswingnut.top +survivalgears.net +survivalgearsrocks.com +survivalistmagazine.net +survivan.com +survivordocs.com +survivvruscorona.us +susanwatkin.com +susbeicent.cf +susbeicent.ga +susbeicent.ml +susbeicent.tk +suscenko.com +suschnost.ru +suscm.co.uk +sushi10valladolid.com +sushiandsteak.com +sushibartor.com +sushiblog.com +sushida-dublin.com +sushimail.xyz +sushiojibarcelona.com +sushisalonbadalona.com +sushiseeker.com +sushitrifasicrubi.com +susi.ml +susictlano.com +susictlano.icu +suskapark.com +susmaso.ml +susmaso.tk +susmed.site +suspended.network +sussin99gold.co.uk +sustainable.style +sustainable.trade +sustainabledevelopmentexperts.com +sustainableroofchicago.com +sustaingoods.com +sustalifes.website +sustavampomogi1.host +sustavampomogi2.host +sustpro.host +sustpro1.host +sustpro2.host +sustvervia.cf +sustvervia.ga +sustvervia.ml +sustvervia.tk +susudomino.net +susuk99.net +susungaple.org +susupk.com +susupoker.biz +sususegarcoy.tk +sutann.us +sutbet71.com +sutbet72.com +sutbet77.com +sutbet78.com +sute.jp +sutener.academy +sutener.life +sutenerlubvi.fav.cc +sutgetel.cf +sutgetel.ga +sutgetel.gq +sutgetel.ml +sutiami.cf +sutiami.ga +sutiami.gq +sutiami.ml +sutmail.com +sutoplamasi.org +sutratoto.net +sutratoto.org +suttonsales.com +sutuosi.com +suuauto.online +suubuapp.com +suustainable.org +suuyydadb.com +suvidok.com +sux47.top +suxt3eifou1eo5plgv.cf +suxt3eifou1eo5plgv.ga +suxt3eifou1eo5plgv.gq +suxt3eifou1eo5plgv.ml +suxt3eifou1eo5plgv.tk +suz99i.it +suzanahouse.co +suzeblog.com +suzki.us +suzroot.com +suzuki-50.ru +suzukilab.net +sv-rs.org +svadba-city.ru +svadba-talk.com +svaekrut.ru +svaffshop.store +sval-ka.ru +svapomaxi.store +svapostore.online +svbil.nu +svblime.org +svblog.com +svbrokers.tech +svds.de +svedaengineering.com +svegott.com +svegott.se +svelteschool.net +svenskonlinebingo.se +sverigeloparen.online +sverigespel.com +sverta.ru +svet-web.ru +svetanet.ru +svetapriazha.ru +svetavarganova.ru +svetekonom.ru +svetlana-vesna.ru +svetlie-okna.ru +svhu5u.us +svi.space +svi88.com +svigrxpills.us +svil.net +svileetrw.shop +svino.ru +svinofirma.ru +svinograd.ru +svinomir.ru +svip520.cn +svk.jp +svlpackersandmovers.com +svmpc.com +svobodaototnoshenii.ru +svobodnayapressa.ru +svoedingen.club +svoi-format.ru +svojhozdom.ru +svoystvaproduktov.ru +svoyzarabotokvinternete.ru +svpmail.com +svpowo.com +svptkdkk.shop +svql.su +svr5t.com +svsmoney.ru +svupp.se +svws-tbr.com +svxr.org +svywkabolml.pc.pl +sw-mg.com +sw2244.com +sw8.dev +sw8y2c.stream +swagflavor.com +swagmami.com +swaidaindustry.org +swakdesigns.info +swalkinshaw.com +swankbmdd.space +swankyfood.us +swanticket.com +swap-crypto.site +swapandbid.com +swapfinancebroker.org +swapinsta.com +swappingfantasy.com +swarmbra.xyz +swarmhabi.us +swarmonio.us +swarmrout.email +swarmroute.recipes +swatch.com +swax.net +swbpepper.com +sweang.club +sweatankreq.email +sweatmail.com +sweatwaterbrew.com +sweb360.com +swedishcomics.se +swedishpalms.online +sweely.net +sweeneybuildings.com +sweepstakes956zh.online +sweepstakesforme.com +sweet-emotions.ru +sweet-ro.com +sweet-space.ru +sweet3d.com +sweet82.com +sweetagsfer.cf +sweetagsfer.gq +sweetagsfer.ml +sweetagsfer.tk +sweetbac.xyz +sweetcrac.email +sweetheartdress.net +sweetingpink.online +sweetlarep.cf +sweetlarep.gq +sweetlarep.ml +sweetmatch.se +sweetmemories.shop +sweetmessage.ga +sweetnessrice.com +sweetnessrice.net +sweetob.email +sweetobe.email +sweetpotato.ml +sweetpotatoconvention2019.com +sweetrea.icu +sweetreac.xyz +sweetsfood.ru +sweetsilence.org.ua +sweetstory.info +sweetswallet.com +sweetuni.icu +sweetvibes-bakery.com +sweetvibes-weddingcakes.com +sweetville.net +sweetwaters.site +sweetxxx.de +sweetyberry.ru +sweetyfoods.ru +swellslu.space +swerpossa.ga +swerpossa.gq +swerpossa.tk +swestudies.se +swflrealestateinvestmentfirm.com +swfwbqfqa.pl +swiat-atrakcji.pl +swiatdejwa.pl +swiatimprezek.pl +swiatlemmalowane.pl +swibe.space +swift-auto.info +swift-mail.net +swift10minutemail.com +swiftcoin.org +swiftinsight.com +swiftmail.xyz +swiftselect.com +swiftsnapshot.com +swimail.info +swimdies.com +swimmingpoolbuildersleecounty.com +swimmingshop.life +swimskivvies.com +swimweear.ru +swinbox.info +swinefu.com +swingclubs.online +swingdonor.com +swingers.dance +swingers69colombia.com +swingery.com +swinginggame.com +swipeche.icu +swipeeat.com +swipeforjobs.com +swiper.su +swipesei.xyz +swiping.app +swippii.com +swipwebma.cf +swipwebma.ga +swipwebma.gq +swipwebma.ml +swipwebma.tk +swiss-bank-advisory.org +swissbupx.space +swisscannamedix.com +swissglobalonline.com +swissport.media +swissreplicawatches.info +swisssportsblog.site +swisstrains.net +switchbrand.com +switchmyrb.space +switchpoker.cd +switunfuh.ga +switunfuh.gq +switunfuh.ml +swizeland-nedv.ru +swkvbo.us +swlnrf.com +swlrhqhz.pro +swmhw.com +swngkng.info +swngkng.org +swnws.press +sworda.com +swordange.com +swordcapital.com +swordsgarden-ongar.com +swordsstreets.top +swordssword.com +swosswou.shop +swp4bt.com +swq213567mm.cf +swq213567mm.ga +swq213567mm.gq +swq213567mm.ml +swq213567mm.tk +swqqfktgl.pl +swskrgg4m9tt.cf +swskrgg4m9tt.ga +swskrgg4m9tt.gq +swskrgg4m9tt.ml +swskrgg4m9tt.tk +swtorbots.net +swype.dev +sx4yyv.com +sxatli.info +sxbsfz.info +sxfkln.com +sxh-auto.com +sxiii.design +sxjyjgxxbx.com +sxkhyxy.com +sxmgld.us +sxouq.com +sxrop.com +sxv5e.xyz +sxxs.site +sxxx.ga +sxxx.gq +sxxx.ml +sxylc113.com +sxzevvhpmitlc64k9.cf +sxzevvhpmitlc64k9.ga +sxzevvhpmitlc64k9.gq +sxzevvhpmitlc64k9.ml +sxzevvhpmitlc64k9.tk +sy-honda.com +sy168.cash +sy90xo.us +syadouchebag.com +syandard.com +sybdfyy.com +sycdns.com +syckpk.art +sycoshoppers.com +sydnehouse.co +sydney-feuerwerk.info +sydneydeluxe.com +sydneyheraldmorning.site +sydneypoolstoday.one +syedlik.xyz +syerqrx14.pl +syf51.space +syfer.shop +syfilis.ru +syfyfigi.website +sygaxa.info +sygj3.com +sygj6065.com +sygj6067.com +sygj7070.com +sygj7073.com +sygj7076.com +sygj7077.com +sygj7078.com +sygj8081.com +sygj8086.com +sygj9090.com +sygj9096.com +sygodainetlikereward.top +syhyma.info +syhzpsc.com +syihpo.com +syilusa.com +syjiga.info +syjxwlkj.com +sykcloud.live +syktyv.ru +sykvjdvjko.pl +sylkskinreview.net +sylvanmo.com +sylvannet.com +sylviabartley.com +sylwester.podhale.pl +sylxe8.us +symatoys.ru +symbiote.network +symeil.fun +symextaustralia.com +sympathizing615ve.online +symphonyresume.com +symphouva.gq +symphouva.ml +symphouva.tk +sympleks.pl +symplysliphair.com +symposium.site +symproti.ga +symproti.ml +symproti.tk +symptombrick.us +symptoms-diabetes.info +symptomsofdiabetes.us +synagogue3000.org +synami.com +synapse.foundation +synapsefirm.com +synb.loan +syncbt.com +synchrosign.net +synchrpny.com +synchtradlibac.xyz +syncretizes167mg.online +syncrome.com +syndicatemortgages.com +synecious17mc.online +synergie.tk +synergisticmel.com +synergygrapeandwinesolutions.com +synergyj.com +synergyrecoveryroom.com +synergytime.live +synevde.com +synonem.com +synoniem.nu +synonyme.email +syntaxblitz.com +syntexhosting.space +syntheticsportsgroup.com +syntrop.com +syosetu.gq +syozv.us +syqyb.live +syracusequote.com +syrlzyw.com +syrus.website +sysblogd.com +sysdiesel.com +sysnon.com +sysology.tech +syssnaapbet.xyz +systel.us +system-2123.com +system-2125.com +system-765.com +system-765.info +system-962.com +system-962.org +system-sicherung-nutzer-pruefung-2356442-ssl-save.ru +system32.me +system573.org +systematicians.com +systeminfo.club +systemnet.club +systemoases.com +systemsflash.net +systemslender.com +systemy-call-contact-center.pl +systemyrezerwacji.pl +sysv2.com +syswars.com +sytadel.net +sytes.net +syujob.accountants +sywa4c.us +sywjgl.com +syyuledl.com +syyulept.com +syyxb.com +syzyjd.com +sz-wbqz.com +sz13l7k9ic5v9wsg.cf +sz13l7k9ic5v9wsg.ga +sz13l7k9ic5v9wsg.gq +sz13l7k9ic5v9wsg.ml +sz13l7k9ic5v9wsg.tk +sz80ue21y77zmst.com +szbxlp.cn +szccc.org +szcyd6.info +szczecin-termoosy.pl +szczepanik14581.co.pl +szef.cn +szela.net +szeptem.pl +szerz.com +szesc.wiadomosc.pisz.pl +szgztxh.com +szhaoks.com +szhtkyj.com +szi4edl0wnab3w6inc.cf +szi4edl0wnab3w6inc.ga +szi4edl0wnab3w6inc.gq +szi4edl0wnab3w6inc.ml +szi4edl0wnab3w6inc.tk +szinder.xyz +szkolapolicealna.com +szledxh.com +szn.us +szok.xcl.pl +szponki.pl +szsb.de +szsboiler.group +szseo.info +szsfcw.icu +szswsn.icu +sztucznapochwa.org.pl +sztyweta46.ga +szucsati.net +szukaj-pracy.info +szvezhsuu.shop +szwdfz2.com +szxkjx.com +szxshopping.com +szybki-remoncik.pl +szyk10.com +szyk6.com +szzhcp.com +szzlcx.com +t-brand.online +t-email.org +t-kitchen.online +t-knife.store +t-online.co +t-rexcomfort.ru +t-s-k.net +t-shirtcasual.com +t-shoponline.info +t-student.cf +t-student.ga +t-student.gq +t-student.ml +t-student.tk +t.odmail.cn +t.polosburberry.com +t.psh.me +t.woeishyang.com +t.zibet.net +t099.tk +t0fp3r49b.pl +t0hedz.us +t0tsdf.com +t13kli.info +t165.xyz +t166.xyz +t167.xyz +t16nmspsizvh.cf +t16nmspsizvh.ga +t16nmspsizvh.gq +t16nmspsizvh.ml +t16nmspsizvh.tk +t171.xyz +t1775.com +t1bkooepcd.cf +t1bkooepcd.ga +t1bkooepcd.gq +t1bkooepcd.ml +t1bkooepcd.tk +t1g2vf.us +t1osie.us +t24e4p7.com +t2treasure.com +t3-travel.com +t30.cn +t30ks.us +t3echmoflhipro.ga +t3g29.com +t3gear.ru +t3lam.com +t3mtxgg11nt.cf +t3mtxgg11nt.ga +t3mtxgg11nt.gq +t3mtxgg11nt.ml +t3mtxgg11nt.tk +t3sl4.xyz +t3t97d1d.com +t3transitions.com +t4eas6.us +t4jpol.us +t4ruhk.us +t4tmb2ph6.pl +t500track6.com +t55r.com +t5h65t54etttr.cf +t5h65t54etttr.ga +t5h65t54etttr.gq +t5h65t54etttr.ml +t5h65t54etttr.tk +t5it.icu +t5jnghjjh.xyz +t5mrk3.site +t5sxp5p.pl +t5vbxkpdsckyrdrp.cf +t5vbxkpdsckyrdrp.ga +t5vbxkpdsckyrdrp.gq +t5vbxkpdsckyrdrp.ml +t5vbxkpdsckyrdrp.tk +t60111.com +t60222.com +t60444.com +t60555.com +t60999.com +t6ixy.us +t6khsozjnhqr.cf +t6khsozjnhqr.ga +t6khsozjnhqr.gq +t6khsozjnhqr.ml +t6khsozjnhqr.tk +t6qdua.bee.pl +t6xeiavxss1fetmawb.ga +t6xeiavxss1fetmawb.ml +t6xeiavxss1fetmawb.tk +t76o11m.mil.pl +t77eim.mil.pl +t7qriqe0vjfmqb.ga +t7qriqe0vjfmqb.ml +t7qriqe0vjfmqb.tk +t7v1ef6bw.xyz +t822.com +t838.com +t8kco4lsmbeeb.cf +t8kco4lsmbeeb.ga +t8kco4lsmbeeb.gq +t8kco4lsmbeeb.ml +t8kco4lsmbeeb.tk +t8ndq7.site +t8oka.us +t97998.com +t9lw.us +t9trqb.us +ta-2525.com +ta-6.com +ta100.app +ta16.app +ta17.app +ta18.app +ta19.app +ta1ysd.us +ta20.app +ta21.app +ta22.app +ta23.app +ta25.app +ta26.app +ta27.app +ta28.app +ta29.app +ta30.app +ta35.app +ta36.app +ta37.app +ta39.app +ta40.app +ta42.app +ta43.app +ta48.app +ta49.app +ta50.app +ta52.app +ta53.app +ta54.app +ta56.app +ta58.app +ta60.app +ta61.app +ta62.app +ta64.app +ta65.app +ta67.app +ta68.app +ta69.app +ta70.app +ta72.app +ta74.app +ta75.app +ta77.app +ta78.app +ta7qcm-mail.xyz +ta83.app +ta85.app +ta88.app +ta89.app +ta91.app +ta93.app +ta96.app +taac.space +taaffshop.store +taago.app +taalunie43.gq +taate.live +tab-24.pl +tab365.asia +tabanpuanlaritr.com +tabbak36009.cf +tabbak51411.cf +tabbak51411.ga +tabbak51411.tk +tabbak87077.ml +tabcomons.cf +tabcomons.gq +tabcomons.tk +tabcupen.ml +tabcupen.tk +tabelon.com +tabienkorat.com +tabienrayong.com +tabithaanaya.livefreemail.top +tablebla.icu +tabledoug.icu +tableexi.icu +tablegdwnzx.email +tablegu.icu +tableri.xyz +tablerive.xyz +tabletas.top +tabletcraze.com +tabletdiscountdeals.com +tabletix.ml +tabletki-lysienie.pl +tabletki.org +tabletkinaodchudzanie.biz.pl +tabletkinapamiec.xyz +tabletmop.shop +tabletopfridge.org +tabletrafflez.info +tabletshop.live +tabletsshop.futbol +tabletstoextendthepenis.info +tablighat24.com +tabpheket.cf +tabpheket.ga +tabpheket.gq +tabpheket.ml +tabpheket.tk +tabtop.site +tabul.com +tac-c.center +tac0hlfp0pqqawn.cf +tac0hlfp0pqqawn.ga +tac0hlfp0pqqawn.ml +tac0hlfp0pqqawn.tk +tacanas.com +tacc.center +tacdasupp.cf +tacdasupp.gq +tacdasupp.ml +tacdasupp.tk +tacemonarim.net +tackleplain.com +tacodelphia.com +tacomacardiology.com +tacomaquote.com +tacomf.com +tactmagfi.cf +tactmagfi.gq +tactmagfi.ml +tactmagfi.tk +tacupao.ru +tadabe.cf +tadabe.ga +tadabe.gq +tadabe.ml +tadacipprime.com +tadahot.com +tadena.cf +tadena.ga +tadena.gq +tadena.ml +tae.simplexion.pm +tafayati.com +taffeta.xyz +tafhxx.com +tafilfa.cf +tafilfa.ga +tafilfa.gq +tafilfa.ml +tafilfa.tk +tafmail.com +tafo.site +tafoi.gr +tafrem3456ails.com +tafrlzg.pl +tag9.com +tagasayolf.site +tagcams.com +tagcchandda.cf +tagcchandda.ga +tagcchandda.gq +tagcchandda.ml +tagcchandda.tk +tagebuch-online.de +taginsa.cf +taginsa.ml +taginsa.tk +taglead.com +tagmymedia.com +tags.report +tagsmiths.com +tagyourself.com +tahaveyaragglari.cf +tahhkm.site +tahiroztan.com +tahltan.best +tahmin.info +tahminbet33.com +tahminbettv10.com +tahnaforbie.xyz +taho21.ru +tahoemediacenter.com +tahss.us +tahutex.online +tahutex.xyz +tai-asu.cf +tai-asu.ga +tai-asu.gq +tai-asu.ml +tai-nedv.ru +tai789.fun +taicaiwang.xyz +taichinh.icu +taichungpools.com +taidar.ru +taijic.com +taikhoanao.tk +taikz.com +taileqzu.club +taileqzu.site +tailfinsports.com +tailoredhemp.com +tailoredsuit.net +tailorgolfclub.se +tailorhemp.com +tailormailed.online +taimeha.cf +taimeha.gq +taimladpho.cf +taimladpho.ga +taimladpho.gq +taimladpho.ml +taimladpho.tk +tainerfitness.com +taipand4d.xyz +taiqicc.com +taitaiyijia.com +taitro.asia +taiv8.fun +taiv8.vin +taiv8.win +taiv8.xyz +taiviani.cf +taiviani.gq +taiviani.ml +taiviani.tk +taivic.win +taivin.club +taiwan.cd +taiwanlegacy.com +taiwanzijia.com +taix8.fun +taixiu88.com +taj99exch.net +tajmahalgallery.org +tajmahalterrassa.com +takaphis.cf +takaphis.ga +takaphis.ml +takaphis.tk +takashishimizu.com +takasimurah.xyz +takatato.pl +takato.shop +takawin.com +takbarg.click +takbet.design +takbt1.xyz +takcasinocrayon.ru +take-great-prize2.life +take-prizes-away13.life +take-prizes-away14.life +take-scroll.xyz +takeafancy.ru +takeawaymessenger.com +takeawayonlineordering.com +takeawaythis.org.ua +takebacktheregent.com +takecafxte.space +takedowns.org +takegatgame.fun +takeitme.site +takeitsocial.com +takemeback.net +takemehome188.com +takemy.xyz +takenews.com +takeny18.com +takepeak.xyz +takeshobo.cf +takeshobo.ga +takeshobo.gq +takeshobo.ml +takeshobo.tk +takesmymoney.com +takesonetoknowone.com +takestore.online +takevps.com +takewokmadrid.com +takeyourkids2vote.org +takhfifweb.net +takhtenegar.com +takhtenegar.org +takingreach.xyz +takipcihilesiyap.com +takipcisatinal.shop +takipsel.com +takmailing.com +takmemberi.cf +takmemberi.gq +takopok32.xyz +takotook.xyz +takradgivning.se +takrayaneh.com +takshoot21.online +takshotgh16.site +taksi-bonus.ru +taksibu.com +taksicininkeyfi.com +taksiklin.ru +taktikbet.xyz +taktikvip.xyz +takuino.app +talahicc.com +talamail.ir +talamovieoo.xyz +talamovieqq.xyz +talamoviess.xyz +talamoviett.xyz +talamovieuu.xyz +talamovievv.xyz +talamovieww.xyz +talaskayadibi.xyz +talduken.com +taledhosting.online +taleem.life +talenastemerick.com +talentasolutions.org +talentblog.com +talentstar.news +talifornialegal.com +taliforniaras.com +talifors.com +talikafuks.net +talile.org +talismana.ru +taliumhealthkick.com +talk-brilliance.com +talk49.com +talkatu.com +talken.net +talkinator.com +talkingnews.media +talkmises.com +talktal.net +talktocoupons.com +talktoip.com +talktravel.net +talkwithme.info +tallcity.email +tallcitysportsnetwork.com +talldry.com +taller-de-escritura-mallorca.com +tallerdeescrituracreativa.org +tallerfor.xyz +tallerplural.org +tallyscrapper.com +talmdesign.com +talmo.online +talnarow.cf +talnarow.ga +talnarow.tk +talterat.site +taluabushop.com +talwellden.ga +talwellden.ml +talwellden.tk +tamail.com +taman4d.club +tamanhodopenis.biz +tamanhodopenis.info +tamanta.net +tambahlagi.online +tambakrejo.cf +tambakrejo.ga +tambakrejo.tk +tambalamin.info +tambour.site +tambroker.ru +tamcasinomice.ru +tamcocbackpackershostel.com +tamelahouse.co +tamera.eu +tamfiyat.online +tamgulsuyu.com +tamiljukes.info +tamilnadumillsstores.org +tamkorumafiltre.club +tammaihes.cf +tammaihes.ga +tammaihes.ml +tammaihes.tk +tammega.com +tammysellslawton.com +tamoxifen.website +tampa-seo.us +tampaautoaccidentlawyers.com +tampabaycoalition.com +tampabayluxuryagent.com +tampabayrealtypro.com +tampacouplescounselor.com +tampadates.info +tampaflcomputerrepair.com +tampanursejobs.com +tampaorthopedicsurgeon.com +tampaquote.com +tamparealty.store +tampasurveys.com +tampatailor.com +tampicobrush.org +tampicobrushes.com +tampicobrushes.us +tamtam-buzz.xyz +tamtam-info.site +tamtam-info.xyz +tamtam-minute.site +tamtam-minute.xyz +tamtam-topinfo.site +tamtam-topinfo.xyz +tamtam-topnews.site +tamu99.info +tamu99.net +tamuhost.me +tan9595.com +tanahsubur.net +tandartspraktijkscherpenzeel.com +tandberggroup.com +tandbergonline.com +tandcpg.com +tandlakarhuset.info +tandoori-bite-takeaway.com +tandy.co +tangarinefun.com +tangdie.com +tangelo.dev +tangkaskitaid.org +tangkasnetid.site +tanglewoodstudios.com +tanglotto.net +tangoqkwn.ru +tangramshow.ru +tani-japanese-takeaway.com +taniesianie.online +tanihosting.net.pl +taniiepozyczki.pl +taninsider.com +tanitarus.ru +tanivi.ga +tanivi.gq +tanivi.ml +tanivi.tk +tanjorepalacetakeaway.com +tankbrush.us +tankbrushes.net +tanklipho.cf +tanklipho.ml +tanklipho.tk +tankult-tech.com +tankult.com +tanning-bed-bulbs.com +tanningcoupon.com +tanqeep.com +tansa.ga +tanslog-2k2.com +tansmail.ga +tansof.press +tanstipplesix.website +tantbepha.cf +tantbepha.ga +tantbepha.gq +tantbepha.ml +tantedewi.ml +tantennajz.com +tantifilm.tools +tantra-for-couples.com +tantraclassesonline.com +tantrafirefitness.com +tantraforhealth.com +tantralube.com +tantraprostatehealing.com +tantrareview.com +tantraspeeddating.com +tantratv.com +tantricrose.net +tantricrose.org +tanttermerk.tk +tanukis.org +tanya-odintsova.ru +tanyamauldin.com +tanyanecole.com +tanzaniawild.life +tao-fitness.ru +tao399.com +taobaigou.club +taobao0710.com +taohoso.com +taojav.club +taojav.life +taokhienfacebook.com +taolan68.com +taoquxet.ga +taoser.icu +taosjw.com +taowenda.club +taoyuan.chat +taoyuanguo.chat +taoyuanguo.network +taozuizhi.com +tap.vin +tap7p4.site +tapchicuoihoi.com +tapchitocdep.com +tapeamos.com +tapecompany.com +tapecopy.net +taperianuevoriofrio.com +tapestrywriters.com +tapetoland.pl +tapety-download.pl +taphear.com +tapi.re +tapiitudulu.com +tapkat.net +tapmups.space +tapourpower.com +tappkins.com +tapreport.net +tapreta.cf +tapreta.ga +tapreta.gq +tapreta.ml +tapreta.tk +tapsitoaktl353t.ga +taptype.me +tapvpnfree.website +tar00ih60tpt2h7.cf +tar00ih60tpt2h7.ga +tar00ih60tpt2h7.gq +tar00ih60tpt2h7.ml +tar00ih60tpt2h7.tk +taraftarium.xyz +taraftartekstil.com +taramsinc.com +taranfilm.ru +taranpa.cf +taranpa.ga +taranpa.tk +tarassis.xyz +tarbity.cf +tarbity.gq +tarbity.tk +tarbyti.cf +tarbyti.gq +tarbyti.ml +tarciano.com +tarcompme.cf +tarcompme.tk +tarcuttgige.eu +tardharto.cf +tardharto.ga +tardharto.gq +tardharto.ml +tardharto.tk +tarek-auth.com +taresz.ga +tarfand.city +target35.ru +targetachived.tk +targeting.space +targetqq.live +tarifmanya.com +tariksaldo.net +tariqa-burhaniya.com +tarisjohn.cf +tarisjohn.ga +tarisjohn.gq +tarisjohn.ml +taritencyber.com +taritensystems.com +tarjetasdecredito.company +tarjoman.shop +tarlancapital.com +tarma.cf +tarma.ga +tarma.ml +tarma.tk +tarminolek.ru +tarocena.com +tarpiohumph.cf +tarpiohumph.ga +tarpiohumph.gq +tarponspringsapartments.com +tarriqaw.cf +tarriqaw.ga +tarriqaw.gq +tarriqaw.ml +tarrylforsenate.com +tarsiergames.com +tartangrand.com +tartoor.club +tartoor.com +tartoor.fun +tartoor.space +taruhangame.com +taruhantop.com +tarunbharat.online +tarzanmail.cf +tarzanmail.ml +tarzinaslibu.xyz +tarzkombin.xyz +tarzmen.site +tasarimsozluk.xyz +tasarrufdostu.com +tasarrufladugun.com +tascon.com +taserra.cf +taserra.ga +taserra.tk +tasgourmettour.com +tashjw.com +tasityonetimmerkezi.com +task-list.ru +taskboard.app +taskfl.ru +taskforcetech.com +taskninja.mobi +taskscbo.com +taskvsasp.online +tasmakarta.pl +tastaravalli.tk +taste2table.com +taste4tees.site +tasteechinese.com +tastefer.buzz +tastefuldeparture.info +tastefulnudes.tk +tastemyjuices.press +tastiethc.com +tastrg.com +tasty-burger-takeaway.com +tasty-drop.org +tasty-garden-takeaway.com +tastyarabicacoffee.com +tastychina-dundalk.com +tastycold.com +tastydota.net +tastydrop.one +tastydrop.online +tastydrops.net +tastyemail.xyz +tastyfood.website +tastygo.info +tastygo.org +tastygo.ru +tastygo.su +tastygra.icu +tastyhut.com +tastylacks.info +tastypizzarecipes.com +tastytri.icu +tastywide.xyz +tat4free.ru +tataba.com +tataelxsi.name +tatalbet.com +tatapeta.pl +tatasteellongproducts.net +tatasteellongproductslimited.net +tatasteellpl.com +tatasteellpl.info +tatbuffremfastgo.com +tatebayashi-zeirishi.biz +tatekub.info +tatersik.eu +tatibu.cf +tatibu.ga +tatibu.gq +tatibu.ml +tatibu.tk +tatilbonus.com +tatisa.cf +tatisa.ga +tatisa.gq +tatlihesap.org +tattersallmediaforensics.com +tattoo.cd +tattoopeace.com +tattooradio.ru +tattoos.name +tattooscollectionforgirl.site +tattynatty.com +tatubet.biz +tatulivescream.com +tatvadesk.net +tau.io +taucoindo.site +taufik.sytes.net +taufikrt.ddns.net +taukpereavia.xyz +taupoker.org +taureesur.cf +taureesur.ga +taureesur.gq +taureesur.ml +taureesur.tk +taurefor.cf +taurefor.ga +taurefor.gq +taurefor.ml +taurefor.tk +taurusbet.org +tauthuyenvietnhat.net +tauttjar3r46.cf +tav7px.com +tavares.com +tavinmathai.com +tavridatreks.ru +tawagnadirect.us +tawaza.ru +tawny.roastedtastyfood.com +tawnygrammar.org +taworle.cf +taworle.ga +taworle.gq +taworle.ml +taworle.tk +tawowk.com +tawserdog.com +tawtar.com +tax315.xyz +taxfilingsite.com +taxfreeemail.com +taxi-bonus.ru +taxi-france.com +taxi-vovrema.info +taxi2malagaairport.com +taxiaugsburg.de +taxififes.info +taxilodka.ru +taximone.ru +taxivaeroportvnukovo.ru +taxqueries.com +taxsaleclub.com +taxslayerinfo.com +taygrc.icu +tayk5.com +taylorplain.buzz +taylorventuresllc.com +taynguyen24h.net +tayo.ooo +tayohei-official.com +taysirnabulsi.com +tayspirec.cf +tayspirec.ml +tayspirec.tk +taytkombinim.xyz +tayur-boilers.ru +tazpkrzkq.pl +tb-on-line.net +tb1ou.us +tb20x7cwkmoz738.xyz +tb37c.com +tbbo.de +tbeach.ru +tbet90.xyz +tbfnp1.site +tbi0jd.com +tbnovin.org +tboostpro.com +tbpdehdu9g2ym2j.xyz +tbrfky.com +tbrochetje.space +tbs35.ru +tbupapxq.shop +tbwzidal06zba1gb.cf +tbwzidal06zba1gb.ga +tbwzidal06zba1gb.gq +tbwzidal06zba1gb.ml +tbwzidal06zba1gb.tk +tbxmakazxsoyltu.cf +tbxmakazxsoyltu.ga +tbxmakazxsoyltu.gq +tbxmakazxsoyltu.ml +tbxmakazxsoyltu.tk +tbxqzbm9omc.cf +tbxqzbm9omc.ga +tbxqzbm9omc.gq +tbxqzbm9omc.ml +tbxqzbm9omc.tk +tc-school.ru +tc.vipset.me +tc4q7muwemzq9ls.ml +tc4q7muwemzq9ls.tk +tcafe.shop +tcases.com +tcbbk.com +tcfr2ulcl9cs.cf +tcfr2ulcl9cs.ga +tcfr2ulcl9cs.gq +tcfr2ulcl9cs.ml +tcfr2ulcl9cs.tk +tcgun.ru +tchatrencontrenc.com +tchatroulette.eu +tchatsenegal.com +tchpole.net +tchuestore.xyz +tchvn.tk +tckefu.online +tckefu.site +tckefu.xyz +tcmba.org +tcmrw.info +tcmselangor.com +tcnmistakes.com +tcoe.foundation +tcom6a.us +tconamear.cf +tconamear.ga +tconamear.gq +tconamear.ml +tconamear.tk +tcscelikyapi.com +tcsh6f.site +tcsqzc04ipp9u.cf +tcsqzc04ipp9u.ga +tcsqzc04ipp9u.gq +tcsqzc04ipp9u.ml +tcsqzc04ipp9u.tk +tctnano.ru +tctp69.xyz +tcua9bnaq30uk.cf +tcua9bnaq30uk.ga +tcua9bnaq30uk.gq +tcua9bnaq30uk.ml +tcua9bnaq30uk.tk +tcxd.xyz +tcyjbuild.cd +tcyl78.com +td71.us +tda4gi.us +tdameritradeinvestment.com +tdbusinessfinancing.com +tdcryo.com +tdedbaccarat.net +tdf-illustration.com +tdf2623.online +tdfwld7e7z.cf +tdfwld7e7z.ga +tdfwld7e7z.gq +tdfwld7e7z.ml +tdfwld7e7z.tk +tdhmyclassic.com +tdhpw.info +tdmoip.ru +tdn-online.info +tdnarat.ru +tdnonline.net +tdovk626l.pl +tdpqhr.us +tdrop.ru +tdtraveljobs.melbourne +tdtraveljobs.net +tdtraveljobs.sydney +te-sale.online +te.caseedu.tk +te2jrvxlmn8wetfs.gq +te2jrvxlmn8wetfs.ml +te2jrvxlmn8wetfs.tk +te5s5t56ts.ga +tea-tins.com +teaaz.cf +teachber.com +teachcar.xyz +teachersblueprint.com +teachfr.xyz +teachglo.xyz +teaching.hk +teachingfreedom.info +teachingjobshelp.com +teachmehere.com +teachmoodle.info +teachmoodle.org +teachsn.xyz +teachsnak.xyz +teachtrun.press +teal.delivery +teal.dev +tealeafadmins.com +tealeafdevelopers.com +tealeafdevelopment.net +tealeafdevelopment.org +tealeafexperts.com +tealeafhacker.org +tealeafsolution.com +tealeavesone.com +team30.live +teamandclub.ga +teamblogger.com +teambogor.online +teamcasco.com +teamdigest.com +teamflow.works +teamhibiskurlabs.site +teamhv.net +teamjulie.com +teamkg.tk +teamkiller.net +teamliquid.org +teamlogicnj.com +teamlonewolf.co +teammlb.xyz +teamopros.com +teamrnd.win +teamrubicon.ong +teamsidealphysiques.com +teamsl.xyz +teamsnacks.online +teamsoulcycling.org +teamspeak3.ga +teamster.com +teamtimspencer.com +teamtournamenttravel.com +teamtriton.net +teamviewerindirsene.com +teamwyden.net +teamxpress.org +teaparty-news.com +teardown.site +tearflakes.com +teasealoo.buzz +teasebre.icu +teaser-team.ru +teasetige.icu +teasetract.us +teasevague.buzz +teasewate.icu +teasewor.xyz +teaseworl.xyz +teatre-afisha.ru +teatrolnfk.space +teatrtaganka.ru +teaurnzycf.space +tebaknomor.info +tebardo.cf +tebardo.ga +tebardo.gq +tebardo.ml +tebardo.tk +tebeodobreno.ru +teblife.com +tebwinsoi.ooo +tecampto.cf +tecampto.ga +tecampto.ml +tecampto.tk +tecbnb.com +tecemail.top +tech-guru.site +tech-mail.net +tech-suit.org +tech.edu +tech.gent +tech.joburg +tech.madrid +tech2fly.com +tech5group.com +tech69.com +techballball.com +techbike.ru +techbirb.dev +techblast.ch +techblogs.site +techbung.com +techcenter.biz +techchakras.com +techdevacademy.info +techdigitalinc.com +techdiver.com +techehouse.com +techemail.com +techeno.com +techenus.com +techewaste.site +techfevo.info +techgigger.com +techgroup.me +techgroup.top +techhelp.website +techholic.in +techiedeals.xyz +techiedevadssecure.club +techiessecrets.com +techiewall.com +techinc.top +techindo.web.id +techjmx.com +techknowlogy.com +techlabreviews.com +techloveer.com +techmail.info +techmanic.tech +techmaximous.com +techmeets.biz +technet.mobi +technicalchartalerts.com +technicolor.cf +technicolor.ga +technicolor.gq +technicolor.ml +technicsan.ru +technidem.fr +techniek.works +techniekgeniek.online +techniekgeniek.shop +techniekgeniek.site +technik-bedarf.com +technikue.men +technivant.net +techno5.club +technocape.com +technoharness.com +technoinsights.info +technoking.club +technoliczni.pl +technologyaddicttreatment.com +technologyaddicttreatmentprogram.com +technologycipher.com +technopark.site +technoproxy.ru +technotrends-tradingservices.site +technoworks.club +technoworldd.com +technt.org +techpaisa.com +techpress.info +techproductinfo.com +techreactor.net +techretro.club +techshucareers.com +techsio.pro +techstat.net +techstore2019.com +techstrike.tech +techthehalls.nyc +techtradebd.com +techtrage.com +techtribeph.com +techuppy.com +techwebfact.com +techwizardent.me +techworm.org +techxs.dx.am +techysocietykisan.xyz +tecinnova.solutions +tecla.ml +teclody.com +tecmur2.org +tecniblend.net +tecnicasdecorativas.com +tecninja.xyz +tecnisolltda.net +tecnoleds.net +tecnologiactuales.com +tecnosmail.com +tecnotutos.com +ted-dhanik.biz +ted-dhanik.net +ted-dhanik.org +ted-dhanik.us +tedace.com +tedadig.ml +tedadig.tk +teddhanik.biz +teddhanik.info +teddy-rose-present.ru +tedesafia.com +tedflower.ru +tedguissan.ga +tedguissan.gq +tedguissan.ml +tedguissan.tk +tedlirol.cf +tedlirol.ga +tedlirol.gq +tedlirol.ml +tedlirol.tk +tedlivechat.com +tedspetcountryclub.com +tedswoodworking.science +tedxibadan.com +tedxsziu.ru +tee800.com +teebaum-oel.info +teecheap.store +teedinnan.com +teeessential.com +teegift.online +teemia.com +teemo.site +teemoco.shop +teemoloveulongtime.com +teenadvisors.com +teenamaree.com +teenanaltubes.com +teencaptures.com +teeneatingdisordertreatmentcenter.com +teeneatingdisordertreatmentcenters.com +teeneatingdisordertreatmentoptions.com +teenhealth.space +teenhub.online +teenloss.com +teensuccessprograms.com +teeny7.com +teenyscat.com +teeprint.online +teerest.com +teesdiscount.com +teesheet.app +teesheet.golf +teeshirtsprint.com +teethsowhitepro.com +teewars.org +teewhole.com +teezinou.online +tefer.gov +teffire.cf +teffire.gq +teffire.ml +teffire.tk +tefibbumb.cf +tefibbumb.ga +tefibbumb.gq +tefibbumb.ml +tefl.ro +teflonbrush.biz +teflonbrush.net +teflonbrush.us +teflonbrushes.us +tefuncsym.cf +tefuncsym.ga +tefuncsym.gq +tefuncsym.tk +tegagentarmash.com +tegifehurez.glogow.pl +tegnabrapal.me +tehdini.cf +tehdini.ga +tehdini.gq +tehdini.ml +tehfor.ru +tehkom-sz.ru +tehno-d.ru +tehnodans.ru +tehnoleader.ru +tehoopcut.info +tehosmotr.info +tehosmotr86.ru +tehran120.xyz +tehranemail.ir +tehs8ce9f9ibpskvg.cf +tehs8ce9f9ibpskvg.ga +tehs8ce9f9ibpskvg.gq +tehs8ce9f9ibpskvg.ml +tehs8ce9f9ibpskvg.tk +tehsliv.ru +tehsusu.cf +tehsusu.ga +tehsusu.gq +tehsusu.ml +tehubpmw.shop +teicrimta.ga +teicrimta.gq +teicrimta.ml +teicrimta.tk +teimur.com +teinfo.ru +tejahomes.icu +tejas21.com +tejeiro.best +tejmail.pl +tejsolpro.us +tekear.com +tekelbayisi.xyz +tekfenyem.com +tekhletbo.cf +tekhletbo.ga +tekhletbo.gq +tekhletbo.ml +tekhnoiservis.ru +tekhsnab.ru +tekirdagdagyenicesi.xyz +tekirdagemlakcilar.xyz +tekirdagtanitim.com +tekirdagtanitim.xyz +tekknos.com +tekkoree.cf +tekkoree.ga +tekkoree.gq +tekkoree.ml +tekkulanim.com +teknikmerkezhatti.com +teknikservisglobal.xyz +teknodiot.net +teknopena.com +teknostar.ru +teknow.site +tekrefurb.com +tekstilcephegiydirme.com +tekstilmimarisi.com +tekstilyapilar.com +telanganajobs.net +telanganarental.com +telasmercamoda.com +telcosan.net +telcosan.org +telcosantechnology.com +telcosanteknoloji.com +tele1europe.online +teleasistencia.page +telebenefit.net +telecama.com +telechargement-film.net +telechargement-film.xyz +telecharger-films-megaupload.com +telechargermusique.live +telechargerpiratertricher.info +telechargervideosyoutube.fr +telecineon.co +telecomhomeservice.com +telecomix.pl +telecomuplinks.com +telectrl.com +telectro.us +telefan.ru +telefondacanlisohbetler.site +telefone-ping.ru +telefono365.com +telefonv2.cf +telefonv2.ml +telefonv2.tk +telefony-opinie.pl +telefoondock.online +telegainbot.online +telegilit.monster +telegmail.com +telego446.com +telegraaf-24.host +telegraf-sppbb.ru +telegram.moe +telekbird.com.cn +telekgaring.cf +telekgaring.ga +telekgaring.gq +telekgaring.ml +telekom-mail.com +telekteles.cf +telekteles.ga +telekteles.gq +telekteles.ml +telekucing.cf +telekucing.ga +telekucing.gq +telekucing.ml +telelogs.net +telemetricop.com +teleosaurs.xyz +telephone-conferencing.com +telephoneportableoccasion.eu +telephonesystemsforbusiness.com +teleport-pskov.ru +teleseryegroup.ru +teleshop.org +teleuoso.com +televac.ru +televega.net +teleworm.com +teleworm.us +telexplorer.info +telfordpasy.info +telfty.com +telgnik.best +telialebanon.com +telkompro.com +tellectualpress.com +tellno1.com +tellorange.com +tellorg.top +tellos.xyz +tellsearch.network +tellthestory.info +telly.app +tellynet.giize.com +tellyoursurvivorstory.org +telmail.top +telmedchiropractic.com +telnoratti.net +telo5.ru +tels920cb.online +telsmart.info +telugump3hits.com +telugusongs.info +telukmeong1.ga +telukmeong2.cf +telukmeong3.ml +temail.com +teman-bangsa.com +temasekmail.com +temasparawordpress.es +tembak4d.online +temecon.cf +temecon.gq +temecon.ml +temecon.tk +temeculahomecenter.com +temengaming.com +temhuv.com +temiznetwork.xyz +temmrktg.com +temp-cloud.net +temp-email.ru +temp-emails.com +temp-link.net +temp-mail.com +temp-mail.de +temp-mail.info +temp-mail.life +temp-mail.live +temp-mail.ml +temp-mail.monster +temp-mail.net +temp-mail.org +temp-mail.pp.ua +temp-mail.ru +temp-mails.com +temp.aogoen.com +temp.bartdevos.be +temp.cloudns.asia +temp.emeraldwebmail.com +temp.headstrong.de +temp.qwertz.me +temp.wheezer.net +temp1.club +temp15qm.com +temp2.club +tempachair.com +tempail.com +tempalias.com +tempamailbox.info +tempat-main-poker.xyz +tempathiburan.com +tempathiburan.net +tempatmainpoker.info +tempatmainpoker.online +tempatmainpoker.xyz +tempatspa.com +tempcloud.in +tempcloud.info +tempe-mail.com +tempekmuta.cf +tempekmuta.ga +tempekmuta.gq +tempekmuta.ml +tempemail.biz +tempemail.co +tempemail.co.za +tempemail.com +tempemail.daniel-james.me +tempemail.info +tempemail.net +tempemail.org +tempemail.pro +tempemailaddress.com +tempemailco.com +tempemails.io +tempes.gq +tempfishthedrift.com +tempinbox.co.uk +tempinbox.com +tempinbox.xyz +templateartist.net +templatecustomizationservice.com +templategeek.net +temple-project.info +templefr.com +templefunctionalrehab.com +templerehab.com +templetonmortgage.net +tempm.cf +tempm.com +tempm.ga +tempm.gq +tempm.ml +tempmail.co +tempmail.de +tempmail.eu +tempmail.io +tempmail.it +tempmail.net +tempmail.ninja +tempmail.plus +tempmail.pp.ua +tempmail.pro +tempmail.red +tempmail.space +tempmail.sytes.net +tempmail.top +tempmail.us +tempmail.website +tempmail.win +tempmail.ws +tempmail2.com +tempmailapp.com +tempmaildemo.com +tempmailer.com +tempmailer.de +tempmailid.com +tempmailid.net +tempmailid.org +tempmailo.com +tempmails.cf +tempmails.gq +tempmails.org +tempnursejob.com +tempomail.fr +tempomail.org +tempor.site +temporagourmet.com +temporamail.com +temporarily.de +temporarioemail.com.br +temporary-email-address.com +temporary-email.com +temporary-email.world +temporary-mail.net +temporaryemail.com +temporaryemail.net +temporaryemail.us +temporaryforwarding.com +temporaryinbox.com +temporarymail.ga +temporarymail.org +temporarymailaddress.com +temporfkcn.space +tempr.email +tempr.email.viola.gq +temprazzsoft.cf +temprazzsoft.ga +temprazzsoft.gq +temprazzsoft.tk +tempremail.cf +tempremail.tk +tempsky.com +temptacon.cf +temptacon.ga +temptacon.gq +temptacon.ml +temptam.site +temptbl.xyz +temptbla.icu +temptbla.xyz +temptblan.icu +temptca.xyz +temptcat.xyz +temptcatc.xyz +tempthe.net +temptifi.cf +temptifi.ga +temptifi.gq +temptifi.ml +temptifi.tk +temptlaye.icu +temptsteam.email +temptti.buzz +tempttrend.email +tempxd.tk +tempymail.com +tempzo.info +temr0520cr4kqcsxw.cf +temr0520cr4kqcsxw.ga +temr0520cr4kqcsxw.gq +temr0520cr4kqcsxw.ml +temr0520cr4kqcsxw.tk +temsagroup.com +temstory.com +temxp.net +ten-invest.ru +ten-thousand-dublin.com +tenalbums.com +tenashouse.co +tendance.xyz +tendatakeaway.com +tender-master.su +tendermemoryforever.com +tenderolfl.space +tenesu.tk +tengraphix.com +tengyunyule.com +tenia578at.online +tenikla.cf +tenikla.ml +tenipen.cf +tenipen.ga +tenipen.ml +tenipen.tk +tenkkeys.site +tenmiensieure.com +tennbuilder.com +tenndoe.com +tennesseeinssaver.com +tenney.tech +tennisan.ru +tenniselbowguide.info +tenniside.com +tennisnews4ever.info +tennisportintl.com +tennisshop.live +tennisvalencia.com +tennuicei.ml +tennuicei.tk +tenormin.website +tenorplanet.com +tenraica.cf +tenraica.ga +tenraica.gq +tenraica.ml +tenraica.tk +tensi.org +tensilemembrane.com +tensionrelief.com +tensmetconc.cf +tensmetconc.ga +tensmetconc.ml +tensmetconc.tk +tentenb.com +tentigor.cf +tentigor.ga +tentigor.gq +tentigor.tk +tentntable.com +tenweekchallenge.net +tenxtenb.com +tenzoves.ru +teobaldo.org +teocarsa.cf +teocarsa.ga +teocarsa.gq +teocarsa.ml +teogansse.gq +teogansse.tk +teompm.shop +teonanakatl.info +teonufest.ga +teonufest.gq +teonufest.ml +teonufest.tk +teorlfs.com +teoti.net +teoutelba.gq +teoutelba.ml +teoutelba.tk +tepas.ru +teplobur.ru +tepos12.eu +tepzo.com +ter.com +teracomase.info +terafile.tokyo +terafile.xyz +terahack.com +teraz.artykulostrada.pl +tercasinosnow.ru +tercsash.online +tercupu.gq +tercupu.ml +terdwa.online +terfullvert.ga +terfullvert.gq +terfullvert.ml +tergvikerp.cf +tergvikerp.ga +tergvikerp.gq +tergvikerp.tk +terika.net +terirem.com +terjifuzviron.space +terleani.ml +terleani.tk +terluboul.cf +terluboul.ga +terluboul.gq +terluboul.ml +terluboul.tk +termail.com +termallo.site +termezy.com +terminalerror.com +terminate.tech +termitecontrolchandler.com +ternaklele.ga +terokops.press +teronamay.tk +terpesrus.com +terpistick.com +terra-etica.com +terra-incognita.co +terra-real-estate.com +terra7.com +terracash.org +terrafirmacollective.org +terraform.cloud +terraform.dev +terraformproject.com +terrainshift.info +terranasaurus.com +terraorousa.com +terraria.fun +terrasavvy.com +terrascope.online +terrathink.com +terraverge.org +terrehautedentists.com +terrelac.cf +terrelac.ga +terrelac.gq +terrelac.ml +terreni.click +terreno.cf +terreno.ml +terribgsbl.space +terrificbusinesses.com +terrihouse.co +territoriya-remonta.ru +territors.club +terrkrasoty.ru +terroni-per-salvini.it +terrorcmll.space +terrprib.ru +terryjohnson.online +terrymillershannon.com +tersdiper.cf +tersdiper.gq +tersdiper.tk +tershaber.com +tersime.cf +tersime.ga +tersime.gq +tersime.ml +tersime.tk +tert353ayre6tw.ml +teruio.host +terustegang.xyz +tervalis.cf +tervalis.ga +tervalis.gq +tervalis.ml +tervalis.tk +tes-studio.online +teses.club +tesghj4656.xyz +tesgurus.net +teshushihao.xyz +tesiov.info +teslaenergyoptima.com +teslaexecutive.com +teslahome.sk +teslasteel.com +tesler24.info +teslime.ga +teslime.gq +teslime.ml +teslime.tk +tesqas.online +tesresidusdangereux.net +tessaflower.com +tessauto.info +tessen.info +tessingroup.com +test-acs.com +test-intl.biz +test.actess.fr +test.com +test.crowdpress.it +test.de +test.unergie.com +test0108-domain.xyz +test1111.host +test130.com +test171.com +test324t6234w5y.ru +testa-lot.net +testadobe.ru +testbnk.com +testclean.org +testclubs.com +testdom34533663.host +testdom345336633.host +testdomain1808-34365.se +testdomain1808-39235.se +testdomain20191307.host +testdomain220191307.host +testdomains3244.host +testdoors.ru +teste445k.ga +testebarato.xyz +testeidenovo.xyz +testenormal.xyz +tester-games.ru +testerino.tk +testextensile.com +testfastspendslow.com +testforcextremereviews.com +testguma.cf +testguma.ga +testguma.gq +testi.com +testicles.com +testif.io +testincorp.xyz +testinger.ru +testingprog.com +testlatcei.cf +testlatcei.ml +testlatcei.tk +testlink24.com +testlire.cf +testlire.ga +testlire.gq +testlire.ml +testlire.tk +testmattawanschools.org +testoforcereview.net +testoh.cf +testoh.ga +testoh.gq +testoh.ml +testoh.tk +testore.co +testose.website +testosterone-tablets.com +testosteroneforman.com +testosxboost.com +testosxboost.net +testosxmax.org +testoweprv.pl +testoxl.net +testperfectlittlebirdy.info +testshiv.com +testsmails.tk +testtomoc.cf +testtomoc.ga +testtomoc.gq +testtomoc.ml +testtomoc.tk +testtruthinmydays.com +testudine.com +testytestermcgee-11.com +tesvama.cf +tesvama.ga +tesvama.gq +tesvama.ml +tesvama.tk +tesxco.com +tetacouch.ru +tetdoanvien.com +tethjdt.com +tetivil.ga +tetivil.gq +tetivil.ml +tetivil.tk +tetohe.com +tetrads.ru +tetrisai.com +teubenart.com +teufelsweb.com +teugterpa.cf +teugterpa.ga +teugterpa.gq +teuzml.ml +teverjo.com +tevhiddersleri.com +tevkanlartur.xyz +tewame.info +tewassbures.press +tewijihu.site +tewsere.online +tewua.ru +tex-line.ru +texac0.cf +texac0.ga +texac0.gq +texac0.ml +texac0.tk +texanhipster.ml +texansportsshop.com +texansproteamsshop.com +texas-nedv.ru +texas88poker.info +texasaol.com +texascartitleloan.com +texascityplumbers.com +texasconservationcorps.org +texascrimedefense.com +texasdriverhandbook.com +texasecologix.com +texaselevatorsolutions.com +texasgunclassifieds.com +texasgunowners.com +texashardwoodfloors.com +texaslibertynetwork.org +texasmanhunt.com +texasmomblogger.com +texasmovo.com +texasnationallaw.org +texasnationallaw.us +texasnationaltitle.biz +texasnationaltitle.info +texasnationaltitle.land +texasnationaltitle.org +texasnationaltitle.us +texasnationaltitlee.net +texasnationaltltle.com +texasnationatite.com +texasnationatltle.com +texasorangepages.com +texasorganized.com +texasrealestatebrokers.com +texasretirementservice.info +texasworkcomphelp.com +texasyrs.com +texi-connect.pro +texiluwa.xyz +text.gq +textad.us +textagrams.biz +textagrams.org +textagrams.website +textannons.se +textbooksandtickets.com +textcasi.cf +textcasi.gq +textcasi.ml +textcasi.tk +texters.ru +textil-home24.ru +textildesign24.de +textile-23.ru +textilelife.ru +textileroofs.org +textjobs.ru +textmarken.de +textmaster.app +textmedude.cf +textmedude.ga +textmedude.gq +textmedude.ml +textmedude.tk +textoverip.com +textpro.site +textrelaxs.info +textriot.com +textrme.com +textstep.info +textu.site +textwebs.info +textyourexbackreviewed.org +texvembterp.cf +texvembterp.ga +texvembterp.gq +texvembterp.ml +texvembterp.tk +texwerx.com +teyostore.xyz +teypstore.com +tezdbz8aovezbbcg3.cf +tezdbz8aovezbbcg3.ga +tezdbz8aovezbbcg3.gq +tezdbz8aovezbbcg3.ml +tezdbz8aovezbbcg3.tk +tezeger.xyz +teziver.com +tezos.charity +tezosclassic.com +tezwork.com +tezy.site +tezzmail.com +tezzmail.host +tf-373.com +tf2statistical.com +tf5bh7wqi0zcus.cf +tf5bh7wqi0zcus.ga +tf5bh7wqi0zcus.gq +tf5bh7wqi0zcus.ml +tf5bh7wqi0zcus.tk +tf7nzhw.com +tf888.com +tfajf.us +tfasesoria.com +tfclw.info +tfcredit.club +tfdkpn.shop +tfgphjqzkc.pl +tfiadvocate.com +tfq.us +tftitem.com +tfwno.gf +tfzav6iptxcbqviv.cf +tfzav6iptxcbqviv.ga +tfzav6iptxcbqviv.gq +tfzav6iptxcbqviv.ml +tfzav6iptxcbqviv.tk +tg-elektra.ru +tg7.net +tgcn.live +tgd9.us +tgftmyjy.com +tggmalls.com +tghenterprise.com +tgiq9zwj6ttmq.cf +tgiq9zwj6ttmq.ga +tgiq9zwj6ttmq.gq +tgiq9zwj6ttmq.ml +tgiq9zwj6ttmq.tk +tgisindia.com +tgmanetwork.com +tgntcexya.pl +tgpix.net +tgproxy.site +tgres24.com +tgspb.app +tgstation.org +tgszgot72lu.cf +tgszgot72lu.ga +tgszgot72lu.gq +tgszgot72lu.ml +tgszgot72lu.tk +tgtshop.com +tguide.site +tgw48y.online +tgwegame-44.xyz +tgwnw.info +tgwrzqr.top +tgxvhp5fp9.cf +tgxvhp5fp9.ga +tgxvhp5fp9.gq +tgxvhp5fp9.ml +tgxvhp5fp9.tk +tgyup.us +th-garciniaextract-plus.site +th-garciniaextractplus.site +th-trend.com +th398gij3fjndoip3.com +th3glw.us +th3ts2zurnr.cf +th3ts2zurnr.ga +th3ts2zurnr.gq +th3ts2zurnr.ml +th3ts2zurnr.tk +th6008.com +th9002.com +th9ekodo77wkv8k.xyz +tha2itkkiman.xyz +thai-palace-inn-takeaway.com +thai4u.info +thaibikemart.com +thaiedvisa.com +thaifoodkinkin.com +thaigarciniaextract.site +thailaaa.org.ua +thailand-estelle.website +thailand-mega.com +thailandforyou.site +thailandresort.asia +thailandstayeasy.com +thailongstayjapanese.com +thainguyen.com +thaiparadisetakeaway.com +thaishop.email +thaishop.info +thaispiceathome.com +thaivip888.com +thaivisa.cc +thaivisa.es +thaki8ksz.info +thaliaesmivida.com +thambdistpec.ga +thambdistpec.gq +thambdistpec.ml +thambdistpec.tk +thamesvalley.exposed +thampvinig.cf +thampvinig.gq +thampvinig.ml +thampvinig.tk +than.one +thanawi.com +thangapple.com +thangberus.net +thangcambietnoi.com +thangmay.biz +thangmay.com +thangmay.com.vn +thangmay.net +thangmay.org +thangmay.vn +thangmaydaiphong.com +thangmaygiadinh.com +thangmayhaiduong.com +thangmaythoitrang.vn +thanhbaohan.com +thanhhoagroup.com +thanhhoaonline.com +thanhscam100k.com +thankams.com +thankch.icu +thankenstein.com +thankenstein.net +thankgodfordrdon.com +thankhors.xyz +thankinator.com +thankle.host +thanklov.icu +thanksala.xyz +thanksgiving.company +thanksgiving.digital +thanksnospam.info +thanktrac.xyz +thankworl.xyz +thankyou2010.com +thankyou2014.com +thanoper.cf +thanoper.ga +thanoper.gq +thanthoai.ml +thassoshotelleri.com +that.gives +thatbloggergirl.com +thatim.info +thatleft.com +thatsill.com +thatsumsitallup.com +thatswhatcheesesaidtruck.com +thatswhatyouneed.fun +thatswhatyouneed.site +thatswhatyouneed.xyz +thatthing.org +thavornpalmbeachphuket.ru +thbr88.com +thc.st +thcmsa.site +the-bitcoins-era.net +the-blockchainnews.xyz +the-bloggers-exchange.org +the-boots-ugg.com +the-business-execution-system.com +the-celebrity-confessed.info +the-central-hotel-lamai.com +the-classifiedads-online.info +the-cryptovipclub.site +the-dating-jerk.com +the-ethereumcode.site +the-eyesp.us +the-first.email +the-greateststat.com +the-grill-house-clondalkin.com +the-hbswiss.site +the-hill-leixlip.com +the-hill-takeaway.com +the-infiniateastcoast.com +the-johnsons.family +the-johnsons.net +the-kitchen-dundrum.com +the-louis-vuitton-outlet.com +the-movie-resort.biz +the-new-leaf-takeaway.com +the-om-shoppe.com +the-pharmacy.info +the-pill.info +the-popa.ru +the-protagonist.net +the-raj-passage-west.com +the-river-retreat.com +the-skyeverton.com +the-snapcashb.site +the-source.co.il +the-tarot-guy.com +the-unknown.app +the-valley-macaris-moate.com +the-web-writer.com +the-wondrous-pattaya.com +the-wondrous.com +the-wondrouz-pattaya.com +the-x.agency +the.celebrities-duels.com +the2012riots.info +the21nation.com +the2jacks.com +the2percentlisting.com +the3percentlisting.com +the4you.ru +theaahatel.cf +theaahatel.ga +theaahatel.gq +theaahatel.ml +theaahatel.tk +theacneblog.com +theactionplaybook.com +theactualnews.online +theaddesk.com +theaddyshow.com +theadmiralcodrington.com +theadvertisingdesk.com +theairfilters.com +theajmorganfoundation.org +theallardprize.com +theallgaiermogensen.com +theallmightyyes.com +thealohagroup.international +thealth.shop +theamazingcomic.com +theambersea.com +theambulance.com +theanatoly.com +theanewdaycenter.com +theangelhack.ru +theangelwings.com +theanswer-am990.com +theanywherebusinessbook.com +theaperturelabs.com +theaperturescience.com +theapp.agency +thearcarcade.com +thearch-info.com +thearcticbears.com +thearketekt.com +theartistpainting.info +theartofrecharge.com +theartypeople.com +thearunsounds.org +theautomaticmovement.com +theautothority.us +theavatar11.com +theaviors.com +thebabiescares.com +thebaby.blog +thebagbook.com +thebankofwestindies.com +thebargainbasement.site +thebargainsuperstore.com +thebarkerychch.com +thebat.client.blognet.in +thebearshark.com +thebeatcolumbus.com +thebeatlesbogota.com +thebeautifullyrics.com +thebeautybargain.one +thebegoodtanyas.com +thebenefit.xyz +thebest4ever.com +thebestacupuncturedavenport.com +thebestarticles.org +thebestforex.ru +thebesthotelsinmexico.com +thebestmassage.life +thebestmedicinecomedyclub.com +thebestmoneymakingtips.info +thebestofscrubs.com +thebestorchards.com +thebestremont.ru +thebestrolexreplicawatches.com +thebestwebtrafficservices.info +thebetcoin.com +thebetterrelationship.com +thebettsnaps.xyz +thebibleen.com +thebigdeal.media +thebigfoody.biz +thebitcoincircuit.net +theblackmagiccafe.com +theblg.xyz +theblocnola.com +theblogprofboe.info +theblownwhistle.com +thebluffersguidetoit.com +thebluyondr.com +theboatcycle.com +thebogdiaries.com +thebongjournal.com +thebonusaction.site +theboogiecats.com +thebrainzen.com +thebrandgraph.net +thebridgelincoln.org +thebridgespangroup.ngo +thebrilliantvault.com +thebrokenhands.com +thebrooklynmarathon.net +thebrothersgreens.com +thebrownclan.info +thebudhound.com +thebuildingteamandsons.com +theburningofpaper.com +theburntorange.com +thebusinessmakeover.net +thebusinessmakeoverexperience.com +thebuyinghub.net +thebytehouse.info +thecall.media +thecanadiancollege.com +thecapeswalk.com +thecasinowatcher.com +thecathyeffect.com +thecatstaleusedbooks.org +thecenterforspecialdentistry.com +thechampionofwhatif.com +thechapel.space +thechattapp.com +thechemwiki.org +thecherry.club +thecherrypress.net +thechesschool.net +thecirchotelhollywood.com +thecisco.xyz +thecitiescafe.com +thecity.biz +thecitypress.biz +theclassroomla.com +theclearproject.net +thecliffsvillage.com +theclinicshield.com +thecloudindex.com +theclubhousegrill.org +thecoalblog.com +thecocreatornetwork.net +thecocreatornetwork.org +thecocreators.net +thecoffeetender.com +thecoincasino.com +thecolabclub.com +thecolemanlawgroup.net +thecollegeessayistblog.com +thecolonydoctors.com +thecolorsofblue.com +thecomcommunity.com +thecomebackalliance.com +thecomedyfilmplaybook.com +thecomeup.com +thecommunityky.org +thecongruentmystic.com +theconsciouspractice.com +theconsumerclub.org +thecontainergroup.com.au +thecookoffboard.com +thecouchpotatomillionaire.com +thecouragetobeyou.net +thecovid.report +thecovidhygiene.report +thecraftytalk.com +thecreativefoundry.sydney +theculturallyconnectedcook.com +theculturallyconnectedcook.org +thecuomoteam.com +thecuspofrelevance.com +thecyberpunk.space +thecybervolunteers.com +thedailyfloridian.com +thedanye.tk +thedarkcorner.org +thedarkcorner.tk +thedarkmaster097.sytes.net +thedavosman.store +thedealsvillage.com +thedearnest.com +thedeepbox.com +thedenatlicon.com +thedenovocompany.com +thedentalshop.xyz +thedepression.com +thedesignerhomestyleprogram.com +thediamants.org +thedietsolutionprogramreview.com +thedigitalbrandbox.com +thedigitalphotoframe.com +thedimcafe.com +thedirhq.info +thedirtytutor.com +thediscountbag.com +thediscountmart.net +thediscreetretreat.com +thedishrag.com +thedistrictbook.com +thedocerosa.com +thedohertyclan.info +thedollymix.com +thedoublecommaclub.org +thedoubletop.site +thedowntowndiva.com +thedowntowndivas.com +thedowntowndivas.net +thedragonsmokeshop.com +thedriftbackpackershostel.com +thedriveinn.com +thedunneclan.info +theeagleselement.com +theeasttrain.com +theeasymail.com +theeatclub.ru +theedgesignals.com +theelysianbrand.com +theemailaccount.com +theemailadress.com +theemailprogram.com +theempirecode.com +theencorehall.com +theengagement.group +theengagementtest.com +theequineinternetnetwork.com +theeriviera.com +theestateplanning.org +theestateplanningatty.com +theestateplanningatty.net +theexclusiveonnew.com +theexitgroup.com +theexitnow.com +thefaceofbrazil.com +thefactsproject.org +thefairholmepartnership.net +thefairyprincessshop.com +thefakechef.com +thefalconsshop.com +thefallsmt.net +thefarmlane.com +thefarmtakeaway.com +thefarsightnepal.com +thefatloss4idiotsreview.org +thefatlossfactorreview.info +thefatlossfactorreviews.co +thefatlossfactorreviews.com +thefinalhero.com +thefinaltwist.com +thefirstpadres.com +thefirstticket.com +thefishbarcrumlin.com +thefishdoctors.vet +thefitnessgeek.com +thefitnessguru.org +thefitnesstrail.com +thefivem.com +theflanneleffect.com +theflatwater.com +theflavr.com +theflexbelt.info +thefocusfolks.com +thefoolevents.xyz +theforexdivision.com +theforgotten-soldiers.com +thefredericksburggenerals.com +thefreedomdaily.com +thefreefamily.xyz +thefreemanual.asia +thefrenchlotus.com +thefriendsit.com +thefrntrw.online +thefryerysmithfield.com +thefuturebit.com +thefuturehopeempowerment.ong +thefutureofcharity.com +thefvs.info +thefxpro.com +thega.ga +thegachi.cf +thegachi.ga +thegachi.gq +thegachi.ml +thegachi.tk +thegameemporium.com +thegamersclub.ru +theganderinn.com +thegappers.net +thegarageprofessionals.com +thegatefirm.com +thegathering.xyz +thegazgroup.com +thegenuineoriginal.xyz +theghdstraighteners.com +theghostofjeffersom.com +thegigabithk.com +thegioibepga.com +thegioidat.info +thegioididong.asia +thegioigiamgia.website +thegioikemduongda.com +thegioitiepthi.website +thegioixinhdep.info +thegirlcute.com +thegirlhot.com +theglobalsdgawards.com +theglockner.com +theglockneronline.com +thegolbii.ru +thegoldishere.com +thegolfodyssey.com +thegolfshopnc.com +thegolfswingtutor.com +thegoodbee.com +thegoodherbals.com +thegoodlifemommaacademy.com +thegoodwork.club +thegothamgirl.com +thegreasegun.com +thegreatcommission.cloud +thegreatest-stats.com +thegreatindian.ooo +thegrilltakeaway.com +thegroundage.com +thegrovebandb.com +thegrovebnb.com +thegrumpyglobetroter.com +thegscw.org +theguardian.best +thehagiasophia.com +theharmfam.com +thehatchedegg.com +thehawaiirealestatesite.com +thehealingroom.info +thehealingstream.com +thehempstore.com +thehenryrestaurant.club +theherochecklist.com +theholeinthewallfinglas.com +theholeinthewalltakeaway.com +thehoroscopereview.com +thehosh.com +thehostbase.com +thehosthelpers.com +thehotlist.vote +thehouseofrock.org +thehoustoninnerloop.com +thehowardhistorian.com +thehubdublin.com +thehudsonsheafoundation.org +thehumanlongevityproject.org +thehungryrabbit.com +thehygiene.report +thehypothyroidismrevolutionreview.com +theimagetrader.com +theimgdump.com +theindiaphile.com +theindiaproject.org +theinevitablezombieapocalypse.com +theinfomarketing.info +theinquisitor.xyz +theinsuranceinfo.org +theinternationaltinkler.com +theinternetpower.info +theintim.ru +theisbook.com +theitalianconnection-d1.com +theitdoc.com +theittechblog.com +thejerniganagency.com +thejerseykid.icu +thejesusclubs.org +thejewishfraternity.org +thejmrcompany.com +thejoaocarlosblog.tk +thejoytravel.com +thejuniper-hill.com +thejupiterblues.com +thekaleofoundation.net +thekamasutrabooks.com +thekarunggoni.com +thekebabandindiancurryjoint.com +theketodiet.club +thekimagency.biz +thekindredcompany.co +thekingcasino.shop +thekitchen-dundalk.com +thekitchenfairypc.com +thekittensmurf.com +theklister.com +thekoots.com +thekratomtemple.com +thekurangngopi.club +thelanterntakeaway.com +thelastshred.com +thelavalamp.info +thelbb-london.com +thelearning.cloud +thelearningcurve.org +theleatherartsstore.com +thelegacybarbers.com +thelenfestcenter.org +thelifeguardonline.com +thelightningmail.net +thelimestones.com +thelittlechicboutique.com +thelocalcarrentals.ru +thelocaltraffic.com +theloftbarn.com +thelol.space +thelol.xyz +thelonestarbrewery.com +thelordofpdf.info +thelorenzcompany.com +thelostway.blog +thelouisvillelady.com +thelovethread.com +thelsatprofessor.com +thelurelounge.com +theluxplanet.com +theluxurycloset.info +themadfishicist.com +themadhipster.com +themagicclass.com +themagicofmakingupreview.info +themail.krd.ag +themail3.net +themailemail.com +themailmall.com +themailpro.net +themailredirector.info +themailworld.info +themanage.ru +themandalawnian.com +themandarinorientalvegas.com +themanicuredgardener.com +themanifestoofencouragement.com +themarket-delivery.ru +themarketingsolutions.info +themaskedsingerbingo.com +themaskedsingerslot.com +themaslowcollection.com +themasterchefcarlow.com +themasterminds.us +thematicworld.pl +thembones.com.au +themcminshuck.cf +themcminshuck.ga +themecolours.com +themecpak.com +themediant.com +themediaspark.info +themediaspark.net +themediaspark.org +themedicinehat.net +themediterraneinn.com +themediummaria.com +themeg.co +themegreview.com +themegxit.life +themelizer.com +themenswellnesscenters.com +themenudiet.com +themeritstore.com +themesavegas.com +themidwood-sg.com +themigration.us +themillionairenetworkmarketer.com +themindfullearningpath.com +themindsui.com +theminimarriage.com +theminimumviableteam.com +theminorityvotefilm.com +themission.network +themodernlad.store +themogensen.com +themoneysinthelist.com +themonroy.site +themonthly.app +themoon.co.uk +themostemail.com +themotowners.info +themoviestudio.biz +themulberrybags.us +themulberrybagsuksale.com +themule.net +themz.org +thenaborsgroup.com +thenativeangeleno.com +thenaturalepiphanystore.com +thenaturalfoodshow.com +thenaturalhairdiva.com +thenetcare.net +thenetfx.website +thenetshop.xyz +thenew.press +thenewenglandhouse.com +thenewjubilee.com +thenewmadridpost.com +thenewmombod.com +thenewrustic.club +thenewsdhhayy.com +thenewtinsomerset.news +thenflpatriotshop.com +thenflravenshop.com +thenickensfamily.com +thenightmareofgaza.com +theninthinfantrydivisionassociation.org +thenodehouse.net +thenoftime.org.ua +thenorth-face-shop.com +thenorthfaceoutletb.com +thenorthfaceoutletk.com +thenumberonemattress.com +thenumbersfund.com +theodelo.cf +theodelo.ml +theodelo.tk +theodore1818.site +theoliveoiltimes.com +theologynerd.com +theomastix.xyz +theone-blue.com +theone2017.us +theonedinline.com +theonlinemattressstore.com +theonlineme.com +theopendoorwayinc.com +theopenspace.asia +theopposition.club +theoptimizedmarketinggroup.net +theorganiqera.biz +theorientaltakeaway.com +theoriginsprogram.com +theoriginsprogram.net +theorlandoblog.com +theorlandoguide.net +theortolanoteam.com +theoryphotoart.com +theosullivanclan.info +theothermail.com +theoutriggeradvantage.com +theoverlandtandberg.com +theoxfordpoloschool.com +theoxfordunderground.com +theoxygenator.com +thepacificmansionresidences.com +thepaintedknitter.com +thepaleoburnsystem.com +thepancakeparlour.net +thepaperbackshop.com +theparaclete.org +theparentingdifference.com +theparlordowntown.club +theparryscope.com +thepartsden.com +thepascher.com +thepathofmostresistance.com +thepathwayout.africa +thepathwayout.global +thepathwayout.org +thepathwayout.tokyo +thepathwayout.world +thepatriotchannel.info +thepcad.tech +thepcgames.cf +thepenshield.com +theperformancecenterformen.com +thepetaclouds.com +thephillycalendar.com +thepichuleiros.com +thepieter.com +thepieteronline.com +thepill360.com +thepillsforcellulite.info +thepinkbee.com +thepirate.download +thepiratebay.space +thepiratefilmeshd.org +thepiratesmc.online +thepit.ml +thepitujk79mgh.tk +theplaidapron.com +theplug.org +theplugchange.com +thepoisonmag.ru +thepolingfamily.com +thepowerofuniverse.com +thepreppybrunette.com +theprestigemotorcars.net +theprinterwizards.com +theprocesslibrary.com +theprojectcitybus.com +thepromenadebolingbrook.com +thepsoft.org +thepublicityfirm.com +thepunjabpantry.com +theqbn.com +thequickreview.com +thequickstuff.info +thequicktake.org +theradicalprogressive.com +theramblingroadsters.com +therapeats.info +therapiesthatwork.org +therapy.cd +therapyservicesllc.org +therateguide.website +therattler.site +theravensshop.com +therawhealthsolution.com +theraworkplus.com +theraworksactive.com +theraworksbionom.com +theraworksbionometherapies.com +theraworkstech.com +theraworkstechnologys.com +theraworxactiv.com +theraworxbionomtherapies.com +theraworxcramp.com +theraworxtechnologies.com +theraworxtowels.com +therealdealblogs.com +therealfoto.com +therealgreencafe.com +thereareemails.xyz +therebecas.com +thereboost.info +therecepts.com +therecoverycompanion.com +thereddoors.online +therednecklipstick.com +thereefbarandmarket.com +thereefbarandmarketgrill.com +theresawylie.com +theresearchleague.com +theresolvegrp.com +theresorts.ru +therestaurantstore.info +therinro.stream +theriworks.com +therkoda.cf +therkoda.ml +therkoda.tk +thermacel-patio.com +thermesthesia863lh.online +thermoconsulting.pl +thermoplasticelastomer.net +thermostatreviews.org +therndentsur.cf +therndentsur.ga +therndentsur.gq +therndentsur.tk +theroarroarwentzoom.xyz +therodrigos.com +theromatakeaway.com +therookharrison.com +theroundhouseaquarium.org +theroyalstores.com +theroyalweb.club +therustichome.club +theryanschmidt.com +thesacredmist.icu +thesahaty.com +thesandovals.org +thesarasoulatihealthforlifepro.icu +thesaturdaypaper.app +thesavvybusiness.academy +thesavvybusinessnetwork.com +thesavvymarketing.agency +thesavvymarketingagency.com +thesbnation.com +thescalinggroup.com +thescanner.com +theschreibertimes.org +thescrappermovie.com +thesdfsfgdf345353.com +these.reviews +these.tips +theseamstress.online +thesearchmarkefirm.net +thesector.org +theseobarn.com +theseodude.co.uk +theseoexperts.net +theshadowconspiracy.us +theshamrockcarlow.com +thesheermcgoldrickness.com +theshiftcoin.com +theshiftfestival.world +theshopisme.com +theshortop.site +theshowbizsociety.com +thesickest.co +thesidfe.tk +thesierrasanctuary.com +thesieve.info +thesimplegiant.com +thesimpletraders.com +thesinandtonics.com +thesingaporemajor.com +thesio.net +thesio.org +thesipcalculator.com +thesistersvn.icu +theskymail.com +theslatch.com +theslave.network +thesnapmom.org +thesneakerswarehouse.com +thesoccerdoc.com +thesocialchaingroup.life +thesocialmint.com +thesoftwareresource.com +thesolereader.com +thesolutions.guru +thesophiaonline.com +thesoupkid.com +thesourcefilm.org +thesouthdakotaclub.com +thespacemarine.com +thespamfather.com +thespawningpool.com +thespinningbur.com +thesporters.com +thesportshows.net +thesportsillustrated.com +thespotonfifth.com +thespringreveal.com +thesprouts.com +thesqueeze.pro +thesquirrelsnuts.online +thestamp.app +thestansberryfoundation.org +thestarwars.xyz +thestatesman.org +thestats.top +thestimulant.com +thestonedcrab.com +thestonedcrabbrewingcompany.com +thestopplus.com +thestoryofbookworm.com +thestraightshooterband.com +thestringerpress.com +thestyleneur.com +thestyleneur.xyz +thesudokulegend.com +thesugarmakerbakery.com +thesunshinecrew.com +thesunshinetoker.com +theswanfactory.com +thesweetshop.me +thesweetshop.tech +theswingking.info +theswingking.org +theswisschaletinthevillages.com +theta-time.ru +theta.whiskey.webmailious.top +thetabletswindows.net +thetalento.com +thetaletop.com +thetantraoils.com +thetaoofbadassreviews.info +thetapkins.com +thetayankee.webmailious.top +theteastory.info +thetechnicaladviser.com +thetechpeople.net +thetechteamuk.com +thetempmail.com +thethaomoi.com +thethirdbear.net +thethyroiddiseasesecret.com +thetimeplease.com +thetimothyprojects.com +thetlilin.gq +thetlilin.ml +thetlilin.tk +thetopsale2015.com +thetouch.xyz +thetraditionalpizza.com +thetrash.email +thetraumamama.info +thetrendprime.com +thetrommler.com +thetruthaboutfatburningfoodsreview.org +thetruthshirts.org +thetumbledryers.com +thetwil.com +thetybeetimes.net +theugg-outletshop.com +theukmassageguide.com +theulogo.org +theunicornpower.us +theunitestars.com +theupperroomyork.com +theupscalecircle.com +thevaltrexnetwork.online +thevapeonator.com +theversatileme.shop +theviastudy.com +thevibet.site +thevibram-fivefingers.com +thevillachinese.com +thevillageslifeeventcenter.com +thevinewexford.com +thevipcardclub.com +thevisioncenterofwesttexas.com +thewaitcarefree.com +thewalkingsticks.com +thewarofus.shop +thewarpandweft.com +thewaterenhancer.com +thewaterworld.ru +thewaybetween.net +theweatherplease.com +thewebbusinessresearch.com +theweepingdragon.net +thewhelanclan.info +thewhitebunkbed.co.uk +thewhitehouse.ml +thewickerbasket.net +thewidowscry.com +thewileychronicles.com +thewirelessmicrophone.com +thewisehomesellers.com +thewondrouzpattaya.com +thewoodenstoragebeds.co.uk +theworldisyours.ru +theworldof17hats.com +theworldofeasier.com +theworldofespn.com +theworldofworks.works +theworldremembers.com +theworldwewant.live +theworm.company +thewriterssoul.com +thex.ro +thexfactorweb.com +thexforex.com +thexgenmarketing.info +thexlist.net +thextracool.info +thexxx.site +they-sell-these.com +theyarepodcasting.us +theyearsface.com +thezarara.com +thfulhaggder.cf +thfulhaggder.ga +thfulhaggder.gq +thfulhaggder.ml +thfulhaggder.tk +thg24.de +thianingle.cf +thianingle.ga +thianingle.gq +thianingle.tk +thibault-calderon-andre.com +thickfiel.buzz +thidoper.cf +thidoper.gq +thidoper.ml +thidoper.tk +thidthid.cf +thidthid.ga +thidthid.gq +thidthid.ml +thiebimis.cf +thiebimis.ga +thiegravit.cf +thiegravit.ga +thiegravit.gq +thiegravit.tk +thienduongcave.com +thiennhatnguyen.shop +thiepcuoibeloved.net +thiet-ke-web.org +thietbivanphong.asia +thiethin.shop +thietkeweb.org +thighagree.us +thighfo.xyz +thighforc.xyz +thighs.chat +thildryn.com +thinbrush.net +thinbrush.us +thinbrushes.us +thindiancollection.com +thinfile.com +thinges.site +thingexpress.com +thinggebli.cf +thinggebli.gq +thinggebli.ml +thinggebli.tk +thinglayer.com +thinglingo.com +thingsandstuff.rocks +thingsneverdo.com +thingssimple.site +thingtrieve.com +think316.com +thinkaboutb.top +thinkbait.media +thinkbigholdings.com +thinkbikeaustralia.com +thinkfuxglv.email +thinkhive.com +thinkingimpared.com +thinkingus24.com +thinklocalsantacruz.com +thinkmerkdo.cf +thinkmerkdo.ga +thinkmerkdo.gq +thinkmerkdo.ml +thinkmerkdo.tk +thinkphp.dev +thinktalentia.com +thinktimessolve.info +thinktop.network +thinktrendy.online +thinkun.live +thinkun.shop +thinkunportfolio.com +thinthe.shop +thinwooldstiv.cf +thinwooldstiv.ga +thinwooldstiv.gq +thinwooldstiv.ml +thinwooldstiv.tk +thirdbear.net +thirdbrother.coffee +thirdbrothercoffee.com +thirdhome.media +thirdminuteloan.com +thirdwrist.com +thirstybear.icu +thirstycat.icu +thirstycow.icu +thirstytree.org +thirteenscissors.com +thirthis.shop +thirtysecondsofcourage.com +thiruvallikkeni.com +this-is-a-free-domain.usa.cc +this.cd +this.gallery +thischarmlessgirl.com +thisemailis.absolutelyleg.it +thisisatrick.com +thisisfamilytree.net +thisisfashion.net +thisisfashion.org +thisishowyouplay.org +thisismyemail.xyz +thisisnotacommunity.org +thisisnotmyrealemail.com +thislifechoseme.com +thislifefoundme.com +thismail.net +thisshipping.xyz +thisthin.shop +thistime.uni.me +thistimedd.tk +thistimenow.org.ua +thistvknows.com +thisurl.website +thiswildsong.com +thitchua.info +thitruongnhadat247.net +thkig7.xyz +thlingo.com +thnikka.com +thnk.de +thnyqy.xyz +thoas.ru +thodetading.xyz +thodien247.com +thoitrang.vn +thoitrangcongso.vn +thoitrangthudong.vn +thoitrangtructuyen.website +tholo.energy +thomasasaro.com +thomascoleman.buzz +thomasedisonlightbulb.net +thomasklun.com +thomeena.ru +thompsogna.host +thomsonmail.us.pn +thomsonvirtual.com +thongtinchung.com +thoppilbuildersinc.com +thoraxjs.org +thorfun.org +thornyscrate.com +thorouashi.online +thoroughbreddailynews.net +thoroughbredhistory.com +thorplat.ru +thorpoker.com +those-guys.com +thosefeard.xyz +thoskin.site +thot.fail +thotels.net +thought-police.net +thoughtconventioneasy.website +thoughtcrate.com +thoughtfulbit.com +thoughtsofanangel.com +thoughtsontwo.com +thousandoakscarpetcleaning.net +thousandoaksdoctors.com +thousandoaksdrilling.com +thpenza.ru +thpoq1.site +thqdiviaddnef.com +thqdivinef.com +thraml.com +thrashers.net +threadnecre.cf +threadnecre.ga +threadnecre.gq +threadnecre.ml +threadneedlepress.com +threatstreams.com +threatvectorsecurity.org +thredbo60.com +three-fellas-pizza-waterford.com +three.emailfake.ml +three.fackme.gq +threecreditscoresreview.com +threeday.site +threedollarcafe.net +threeeight.ru +threeframes.ru +threemonks-dublin.com +threemountaindojo.com +threesume.com +thremagforspace20.site +thremagforspace20.website +thriftypixel.com +thriftypro.xyz +thrillofdriving.com +thritorbo.ga +thritorbo.gq +thritorbo.ml +thritorbo.tk +thrivetemplates.club +thrma.com +throam.com +throopllc.com +thropasach.cf +thropasach.ga +thropasach.ml +thropasach.tk +thrott.com +throwam.com +throwawayemail.com +throwawayemailaddress.com +throwawaymail.com +throwawaymail.pp.ua +throwawaymail.uu.gl +throwblanket.net +throya.com +thrubay.com +thrudisanglux.com +thsehouseof.house +thsideskisbrown.com +thsiisxgood2020.site +thspdi.icu +thtt.us +thtvbc.xyz +thucdon365.net +thucml.com +thud.site +thuducnhadat.com +thuehost.net +thuexemay.top +thug.pw +thuguimomo.ga +thuisworkoutset.online +thulsitvuk.com +thumbthingshiny.net +thumoi.com +thund.cf +thund.ga +thund.gq +thund.ml +thund.tk +thunderballs.net +thunderbolt.science +thundernetwerk.online +thunderonbrush.biz +thunderonbrush.net +thunderonbrush.us +thunderonbrushes.biz +thunderonbrushes.org +thunderonbrushes.us +thunkinator.org +thunnus.best +thuocclub.club +thuocclub.fun +thuocvip.fun +thuonghieutenmien.com +thurst2sixes.com +thurstoncounty.biz +thuthuatlamseo.com +thuvanmayff.site +thuyloi.ga +thwequ.xyz +thx40.site +thxmate.com +thxrnhiual.host +thybet24.com +thyfootball.ru +thyfre.cf +thyfre.ga +thyfre.gq +thyfre.ml +thyia1.us +thymusvulgaris.com +thyroidportal.com +thyroidsaver.com +thyroidsaver.org +thyroidtips.info +thyxwenu.shop +thzhhe5l.ml +ti-sale.online +ti.igg.biz +tiabami.cf +tiabami.ga +tiabami.gq +tiabami.ml +tiabami.tk +tiacrystalcases.com +tiam24.com +tianadonerkebabpizzeriatiana.com +tiancaiyy.info +tiandeonline.ru +tianjijinrong.net +tianmao.cd +tiaotiaoylezc.com +tiapz.com +tiarabet99.info +tiarabet99.org +tib.wtf +tiba8q.info +tibet.cd +tibetsmen.ru +tibia7.com +tibpftbz.site +tibui.com +tic.ec +ticareh.com +ticatom.com +ticgris.com +ticket-please.ga +ticket.gifts +ticket4one.com +ticketb.com +ticketcenter.site +ticketfood.com +ticketkick.com +ticketmarket.place +ticketsdiscounter.com +ticketwipe.com +ticklecontrol.com +ticlesen.cf +ticlesen.ga +ticlesen.gq +ticlesen.tk +ticpire.cf +ticpire.gq +ticpire.ml +ticpire.tk +tidc.dev +tide-fillmig.rest +tideloans.com +tidemigfill.rest +tidningensvegot.se +tidyupjunkremoval.com +tiebajian.com +tieboppda.cf +tieboppda.ga +tieboppda.ml +tieboppda.tk +tiedupnivc.space +tieindeedted.website +tieit.app +tielu168.com +tiemmeservice.net +tiendacars.net +tiendamaravilla.com +tiendamia.africa +tiendamia.shop +tienduoc.win +tienganhpro.net +tienghan.org +tiengtrungmoingay.online +tiepoes.com +tieportsi.cf +tieportsi.gq +tieportsi.ml +tieportsi.tk +tierahs.com +tiesmares.cf +tiesmares.ga +tiesmares.ml +tiesmares.tk +tieungoc.life +tievah.com +tievol.com +tiffanyclarkwriter.com +tiffanyelite.com +tiffanymarascio.com +tiffanypower.com +tiffanysbnb.com +tiffanywishes.com +tiffin-maynooth.com +tigerch.xyz +tigerlilyflowershop.net +tigermou.icu +tigersuga.press +tigerwoodsdesign.org +tigerwoodsmobile.com +tigerwoodsonline.com +tigerzindahaicollection.info +tighmarta.cf +tighmarta.ga +tighmarta.gq +tighmarta.ml +tigmon.club +tiguanreview.com +tigytech.com +tijdelijke-email.nl +tijdelijkmailadres.nl +tijuanatexmexsevilla.com +tika-gil.ru +tikao.org +tikiboutiques.site +tikichoy.com +tikima.cf +tikima.gq +tikima.tk +tikisalesa.info +tikitrunk.com +tikkahutindian.com +tikkaindiantakeaway.com +tikkieme.tech +tikkunology.ong +tikl.tk +tiko-wabe.ru +tikpal.site +tiksi.info +tiktokitop.com +tiktokrewards.xyz +tikusqq.org +tikvahhertogfellows.org +tilamook.name +tilamook.us +tilanhem.site +tilda-vikroiki.ru +tilehi.cf +tilehi.ga +tilehi.gq +tilehi.ml +tilehi.tk +tilersforums.net +tiles.guru +tilien.com +tillamook-cheese.name +tillamook-cheese.us +tillamook.name +tillamookcheese.name +tillamookfoodsales.biz +tillamookfoodsales.name +tillamookfoodsales.us +tillerrakes.com +tillid.ru +tillion.com +tilnopen.cf +tilnopen.ga +tilnopen.ml +tilnopen.tk +timail.ml +timalti.shop +timanac.cf +timanac.ga +timanac.gq +timanac.ml +timanac.tk +timberlakehemp.com +timberland-rus.site +timberlandboot4sale.com +timberlandboots.biz +timberlandchukka-boots.us +timberlandf4you.com +timberlandfordonline.com +timberulove.com +timcooper.org +time-for-dating2.com +time-tamtam.site +time-tamtam.xyz +time.dating +time4areview.com +time4wine.xyz +time789.com +timeand.shop +timeavenue.fr +timebet12.com +timebet26.com +timebet29.com +timebet34.com +timebet38.com +timebet63.com +timebetting.org +timebit.store +timecomp.pl +timecritics.com +timeforex.ru +timegv.com +timekr.xyz +timeleone.info +timelytrims.com +timenetwork.online +timepad.com +timepod.net +timesharerentalorlando.com +timesua.com +timetodeliver.org +timetotv.com +timewasterarcade.com +timewillshow.com +timfesenko.com +timfosterarchitects.com +timfrench.net +timgiarevn.com +timgmail.com +timiko.ru +timishop.site +timjarrett.net +timkassouf.com +timmatheson.com +timmphiha.cf +timmphiha.ga +timmphiha.gq +timmphiha.tk +timmyknowlesofficial.com +timnas88.biz +timoloogkn.space +timphongsamson.net +timrad.ru +timrodlibrary.org +timsautorepair-subaguru.com +timspeak.ru +timviechieuqua.com +timvieclamnhanh.net +tinaksu.com +tinbitcoin.net +tinbitcoin.org +tincvenmi.gq +tincvenmi.ml +tincvenmi.tk +tinderajans.club +tinderajans.online +tinderajans.site +tinderhunter.com +tinechic.xyz +tinedsdqzxmbmz.host +tinfb.org +tinfoto.ru +tingcamptic.cf +tingcamptic.ga +tingcamptic.ml +tingmoe.com +tingnewsre.cf +tingnewsre.gq +tingnewsre.ml +tingnewsre.tk +tingsihop.cf +tingsihop.ga +tingsihop.gq +tingsihop.ml +tinhay.fun +tinhay.info +tinhaynhat.net +tinhnguyen0202.uk +tinhy.eu +tinhyeu.asia +tinhyeu.mobi +tinikok2.ru +tinkeringpans.com +tinkiremote.site +tinkmail.net +tinkoff-strahovanie-cabinet.ru +tinkoff-strahovanie-kabinet.ru +tinkoff-strahovanie-osago.ru +tinleyparkplumbers.com +tinmail.tk +tinman.jobs +tinmorrluzz.cf +tinmorrluzz.ga +tinmorrluzz.gq +tinmorrluzz.ml +tinmorrluzz.tk +tinnituscentercapecod.com +tinnitusmiraclereviews.org +tinnitusremediesforyou.com +tinnitustreatmentsblog.com +tinoza.org +tinsieuchuoi.com +tinsignifytoe.website +tinsology.net +tintanenlingro.info +tintinnabulation.space +tintorama.ru +tintremovals.com +tintuceva.org +tintucphunu.org +tinviahe.top +tiny.itemxyz.com +tinybet.org +tinybt.com +tinyheight.com +tinymill.org +tinypc.reviews +tinypc.tech +tinystoves.net +tinyurl24.com +tinywiki.com +tiobichieu.site +tiodarrigh.cf +tiodarrigh.ga +tiodarrigh.tk +tiofolva.cf +tiofolva.ga +tiofolva.gq +tiofolva.ml +tioforsellhotch.xyz +tiohulfi.cf +tiohulfi.gq +tiohulfi.ml +tiohulfi.tk +tiolabal.cf +tiolabal.ga +tiomahecon.tech +tiongbahrusocialclub.com +tiopreslasz.cf +tiopreslasz.ga +tiopreslasz.gq +tiopreslasz.ml +tiopreslasz.tk +tiosiro.cf +tiosiro.ga +tiosiro.gq +tiosiro.ml +tiosiro.tk +tiosparhar.cf +tiosparhar.ga +tiosparhar.gq +tiosparhar.tk +tioswerar.cf +tioswerar.ga +tioswerar.tk +tiosyri.tk +tiotego.ga +tiotego.ml +tiovamons.cf +tiovamons.gq +tiovamons.ml +tiovamons.tk +tip.capital +tipartre.gq +tipasza.ga +tipasza.gq +tipasza.ml +tipasza.tk +tipertbubb.cf +tipertbubb.ga +tipertbubb.gq +tipertbubb.ml +tipertbubb.tk +tipheaven.com +tipicopr.site +tipidfinder.com +tipidfranchise.com +tipidkorpoldakalteng.info +tipo24.com +tipo34.com +tipo35.com +tipo37.com +tipo38.com +tipo39.com +tipobet.host +tipobet144.site +tipobetbahis.com +tiprod.ru +tiprv.com +tips-and-guides.com +tipsb.com +tipsbankforyou.com +tipsfortechteams.email +tipsochtricks.site +tipsonhowtogetridofacne.com +tipsshortsleeve.com +tipsvk.best +tiptopik.tech +tiptrip.ru +tiqmlv.ru +tir-na-nog.su +tiramisumail.xyz +tirbom.ru +tiredbr.xyz +tiredbri.xyz +tireddo.buzz +tiredfl.xyz +tiredflo.xyz +tiredfloo.xyz +tirednoble.com +tireesc.shop +tiresandmorekent.com +tiresflint.com +tirestdi.cf +tirestdi.gq +tirestdi.ml +tiretaine.site +tirgiji.com +tiriacgroup.com +tiriacmanagement.com +tirisfal-project.org +tirixix.pl +tiroshops.site +tirreno.cf +tirreno.ga +tirreno.gq +tirreno.ml +tirreno.tk +tirsmail.info +tirthajatra.com +tirupatitemple.net +tisokoljert.tk +tisolethat.com +tisrendvi.cf +tisrendvi.ml +tisrendvi.tk +tissernet.com +tisubgi.cf +tisubgi.gq +tisubgi.ml +tisubgi.tk +tit8282.com +titafeminina.com +titan-host.cf +titan-host.ga +titan-host.gq +titan-host.ml +titan-host.tk +titan-original.ru +titan4d.com +titan4d.net +titanbrojart.ru +titandansatislar.xyz +titandansatislar1.xyz +titanemail.info +titangelsrbija.com +titanit.de +titanitelife.com +titaniumbrush.biz +titaniumbrush.net +titaniumbrush.org +titaniumbrush.us +titaniumbrushes.net +titaniumbrushes.us +titanmine.ru +titanopto.com +titantytcrownt.ru +titas.cf +titaskotom.cf +titaskotom.ga +titaskotom.gq +titaskotom.ml +titaskotom.tk +titaspaharpur.cf +titaspaharpur.ga +titaspaharpur.gq +titaspaharpur.ml +titaspaharpur.tk +titaspaharpur1.cf +titaspaharpur1.ga +titaspaharpur1.gq +titaspaharpur1.ml +titaspaharpur1.tk +titaspaharpur2.cf +titaspaharpur2.ga +titaspaharpur2.gq +titaspaharpur2.ml +titaspaharpur2.tk +titaspaharpur3.cf +titaspaharpur3.ga +titaspaharpur3.gq +titaspaharpur3.ml +titaspaharpur3.tk +titaspaharpur4.cf +titaspaharpur4.ga +titaspaharpur4.gq +titaspaharpur4.ml +titaspaharpur4.tk +titaspaharpur5.cf +titaspaharpur5.ga +titaspaharpur5.gq +titaspaharpur5.ml +titaspaharpur5.tk +titietnana.com +titipoker.net +titipoker.org +titkiprokla.tk +title1program.com +title1reading.com +title1readingprogram.com +title1readingresources.com +titleblee.buzz +titlehumo.site +titlemora.space +titlermedicin.website +titmail.com +titoronde.ru +titrevy.tech +tittbit.in +tiuyretgr.gq +tiv.cc +tiverton-town-council.org +tivowxl7nohtdkoza.cf +tivowxl7nohtdkoza.ga +tivowxl7nohtdkoza.gq +tivowxl7nohtdkoza.ml +tivowxl7nohtdkoza.tk +tix.onl +tixanovski.com +tixdiscounter.com +tixonicindia.icu +tiyanxing.com +tiyu.asia +tiyucp.net +tiyx.party +tiyx.trade +tizanidinorifarm.website +tizanwarm.gq +tizi.com +tj2-sygw.com +tj22.net +tj28.app +tj2851.com +tj2852.com +tj4.app +tj5.app +tj6.app +tj7.app +tjampoer.events +tjbma5.us +tjbpoker.vip +tjbwgyxx.com +tjcitt.icu +tjcy.us +tjd93.space +tjdh.xyz +tjebhyy.com +tjjlkctec.pl +tjkjzjel.shop +tjmn.cc +tjnf.cc +tjthklnbx.shop +tjtnbyy.com +tjuew56d0xqmt.cf +tjuew56d0xqmt.ga +tjuew56d0xqmt.gq +tjuew56d0xqmt.ml +tjuew56d0xqmt.tk +tjuln.com +tjxiyu.com +tjyqw.info +tjzbd.com +tk-intercom.ru +tk-poker.com +tk218.com +tk3od4c3sr1feq.cf +tk3od4c3sr1feq.ga +tk3od4c3sr1feq.gq +tk3od4c3sr1feq.ml +tk3od4c3sr1feq.tk +tk4535z.pl +tk4ck8.us +tk8phblcr2ct0ktmk3.ga +tk8phblcr2ct0ktmk3.gq +tk8phblcr2ct0ktmk3.ml +tk8phblcr2ct0ktmk3.tk +tkaniny.com +tkaninymaxwell.pl +tkbmwr.fun +tkbnw.info +tkcmbp.fun +tkcpw.info +tkdirvine.com +tkdmzs.fun +tkdtustin.com +tkeiyaku.cf +tkeycoin.art +tkeycoin.fun +tkgmmj.fun +tkhaetgsf.pl +tkhmlp.fun +tkijuu.tokyo +tkitc.de +tkitchen.online +tkjmsf.fun +tkjngulik.com +tkkbw.info +tkmy88m.com +tknife.online +tknmqb.fun +tknmwf.fun +tko-ply.online +tko.co.kr +tko.kr +tkos.online +tkpard90.com +tkpgy.live +tkpmxt.fun +tkrofg.us +tkroycap.tk +tktkdata.com +tktoursamui.xyz +tkvf9p.us +tkwnht.com +tkxmll.fun +tkyoko8787.online +tkzmcx.fun +tkzumbsbottzmnr.cf +tkzumbsbottzmnr.ga +tkzumbsbottzmnr.gq +tkzumbsbottzmnr.ml +tkzumbsbottzmnr.tk +tl.community +tl8dlokbouj8s.cf +tl8dlokbouj8s.gq +tl8dlokbouj8s.ml +tl8dlokbouj8s.tk +tlachustpe.cf +tlachustpe.ga +tlachustpe.gq +tlachustpe.ml +tlachustpe.tk +tlaun.ru +tlccafeteriawexford.com +tlcglobalhealth.com +tlcministries.info +tldoe8nil4tbq.cf +tldoe8nil4tbq.ga +tldoe8nil4tbq.gq +tldoe8nil4tbq.ml +tldoe8nil4tbq.tk +tleecinnue.ga +tleecinnue.gq +tleecinnue.tk +tlgpwzmqe.pl +tlgr.live +tlgrcn.live +tlhjw.info +tlichemras.tk +tliel.live +tlifestore.website +tlpn.org +tlraob.tokyo +tls.cloudns.asia +tlumaczeniawaw.com.pl +tlv70.us +tlvl8l66amwbe6.cf +tlvl8l66amwbe6.ga +tlvl8l66amwbe6.gq +tlvl8l66amwbe6.ml +tlvl8l66amwbe6.tk +tlvm.us +tlvsmbdy.cf +tlvsmbdy.ga +tlvsmbdy.gq +tlvsmbdy.ml +tlvsmbdy.tk +tlw-cz.info +tm-organicfood.ru +tm-ramana.ru +tm.in-ulm.de +tm.slsrs.ru +tm.tosunkaya.com +tm2mail.com +tm3ful.com +tm42.gq +tm95xeijmzoxiul.cf +tm95xeijmzoxiul.ga +tm95xeijmzoxiul.gq +tm95xeijmzoxiul.ml +tm95xeijmzoxiul.tk +tmail.com +tmail.org +tmail.run +tmail.ws +tmail1.com +tmail1.tk +tmail15.com +tmail2.com +tmail2.tk +tmail3.tk +tmail4.tk +tmail5.tk +tmail7.com +tmailavi.ml +tmailcloud.com +tmailcloud.net +tmaildir.com +tmailer.org +tmailffrt.com +tmailhost.com +tmailinator.com +tmailpro.net +tmails.net +tmails.top +tmailservices.com +tmajre.com +tmamidwest.net +tmatthew.net +tmauv.com +tmavfitness.com +tmaxxpro.com +tmbox.xyz +tmcburger.com +tmethicac.cf +tmethicac.gq +tmethicac.ml +tmethicac.tk +tmhit.ru +tmhound.com +tmhsale.top +tmin360.com +tmj1lmtkc5lydcl.xyz +tmljw.info +tmlwell.org +tmlzsehta.shop +tmnuuq6.mil.pl +tmnxw.info +tmo.kr +tmpbox.net +tmpemails.com +tmpeml.info +tmpjr.me +tmpmail.net +tmpmail.org +tmpromo.online +tmtfdpxpmm12ehv0e.cf +tmtfdpxpmm12ehv0e.ga +tmtfdpxpmm12ehv0e.gq +tmtfdpxpmm12ehv0e.ml +tmtfdpxpmm12ehv0e.tk +tmtrackr.com +tmwlad.info +tmzh8pcp.agro.pl +tmzkvqam.shop +tnblackrock.com +tnblw.info +tncitsolutions.com +tnd168.me +tnhalfpricedlistings.com +tnhalfpricelisting.com +tnhalfpricelistings.com +tnhqwj.xyz +tningedi.cf +tningedi.ga +tningedi.gq +tningedi.ml +tningedi.tk +tnkf8.us +tnmsabac.website +tnnairmaxpasch.com +tnnsw.info +tnoz1n.us +tnpepsico.com +tnrbw.info +tnrequinacheter.com +tnrequinboutinpascheresfrance.com +tnrequinpascherboutiquenlignefr.com +tnrequinpaschertnfr.com +tnrequinpaschertnfrance.com +tnrequinstocker.com +tnrwj1.site +tnt.land +tntitans.club +tntrealestates.com +tnuxqbra.shop +tnvj6r.us +tnvrtqjhqvbwcr3u91.cf +tnvrtqjhqvbwcr3u91.ga +tnvrtqjhqvbwcr3u91.gq +tnvrtqjhqvbwcr3u91.ml +tnvrtqjhqvbwcr3u91.tk +tnwvhaiqd.pl +to-boys.com +to-iran.info +to-rena.com +to-sale.online +to-team7.com +to77rosreestr.ru +to79.xyz +toal.com +toana.com +toaraichee.cf +toaraichee.ga +toaraichee.gq +toaraichee.ml +toaraichee.tk +toastcrow.fun +toastdram.icu +toastmatrix.com +toastsuffer.xyz +toastsum.com +toasttrain.email +toastwid.xyz +toastwide.xyz +tobaccodebate.com +tobeate.cf +tobeate.ga +tobeate.gq +tobeate.ml +tobeblossom.store +tobeluckys.com +tobinproperties.com +toblessyou.com +tobobet.mobi +tobooradys.website +tobuso.com +toby.click +tobycarveryvouchers.com +tobymstudio.com +tobynealcounseling.com +tobyye.com +tocabsui.cf +tocabsui.ga +tocabsui.gq +tocabsui.tk +tocheif.com +tochintper.cf +tochintper.ga +tochintper.gq +tochintper.ml +toconnell.org +tocufull.cf +tocufull.ga +tocufull.gq +tocufull.ml +tocz.us +tod2020.xyz +todanpho.com +today-amigurumi.site +today-payment.com +today24bet.com +todayamazonquiz.com +todayamigurumi.website +todaybestnovadeals.club +todayemail.ga +todaygroup.us +todayhistory.org +todayinstantpaydayloans.co.uk +todayjustsport.online +todaymednews.site +todaynew.ru +todaynewcoplictation.site +todayprizes2.life +todays-web-deal.com +todayspennystocks.com +todaysvisionlascolinas.com +todaytaxis.info +todaywebz.com +toddbach.com +toddnettleton.net +toddsbighug.com +toddwebbcpa.com +toditokard.pw +todofutbol.info +todogestorias.es +todongromau.com +todoprestamos.com +todoprestamos.es +todslonesaddles.com +toenailmail.info +toerkmail.com +toerkmail.net +togame.ru +togblog.biz +togel.news +togel.one +togel00.com +togelapi.org +togelbet8887.com +togelbet8888.info +togelcyber.com +togelfortuna.club +togelhin.xyz +togelhin88.com +togelkami.xyz +togelkembar.net +togelmain.net +togelnusa.live +togelonline1.com +togelonline88.org +togelounge99.asia +togelpedia.bar +togelprediksi.com +togelsgpid.site +togeltotojitu.com +togeltotojitu.info +togetaloan.co.uk +togetheragain.org.ua +togetherwethrive.us +togirls.site +toglobalist.org +tohetheragain.org.ua +tohive.org +tohurt.me +toi.kr +toiantoan.net +toictp.us +toiea.com +toihocseo.com +toihocweb.best +toikehos.cf +toikehos.ga +toikehos.ml +toikehos.tk +toiletries1.com +toin3535.com +tojbet.com +tokai.tk +tokatgop.com +tokatgop.xyz +tokatgunestv.xyz +tokatinadresi.com +tokatta.org +tokbeat.com +toke88.co +tokeishops.jp +tokem.co +token-improve.host +token-painted.website +tokencoach.com +tokencoach.net +tokenized-equity.com +tokenized-equity.info +tokenized-equity.net +tokenized-equity.org +tokenized-shares.com +tokenized-shares.info +tokenized-shares.org +tokenizedequity.org +tokenizedshares.org +tokenkeno.com +tokenmail.de +tokenvesto.com +tokenvesto.net +toker.city +toker.shop +tokeracademy.com +tokeradvertising.com +tokercollege.com +tokerdolls.com +tokerdude.com +tokerholding.company +tokermap.com +tokermuseum.com +tokernetwork.com +tokeroutfitters.com +tokerparties.com +tokerphotos.com +tokerpipes.com +tokerplanet.com +tokerrecipes.com +tokerreviews.com +tokertrail.com +tokertribe.com +tokkabanshop.com +toko3d.com +tokoarmys.info +tokofavorit.com +tokoinduk.com +tokojudi.best +tokoperfume.com +tokopremium.co +tokot.ru +tokuriders.club +tokyotogel.online +tol.net +tol.ooo +tolasoft.net +tolatech.com +tolbet23.com +tolbet4.com +toldhistory.xyz +toldtec.com +toldtech.net +toldtech.org +toledoarearealtor.com +toledocare.com +toleme.gq +tolkuchi-rinok.ru +tollfreehomehotline.com +tolls.com +tollsjoforsamling.online +tologvo.works +tolongsaya.me +tols-ex.ru +tolteca-camden-street.com +tolufan.ru +tom083.com +tomacupon.com +tomad.ru +tomageek.com +tomali.cn +tomasaro.com +tomatillosatinal.xyz +tomatoeshb.com +tomatonn.com +tomatoon.net +tomba.site +tombalanet.com +tomballguns.com +tombe-juive.com +tombolatica.org +tomcail.com +tomchos.fun +tomehi.com +tomejl.pl +tomeshoes.online +tomevault.com +tomevault.net +tomevault.org +tomjoneswatches.net +tommer.store +tommoore.net +tommymorris.com +tommymylife.com +tommynilssonbil.online +tommyphomeimprovements.com +tomnaza.site +tomogavk.online +tomoworks.tech +tomris2.xyz +tomsawyer.camp +tomsemmmai.company +tomshirts.com +tomshoesonline.net +tomshoesonlinestore.com +tomshoesoutletonline.net +tomshoesoutletus.com +tomsoutletsalezt.com +tomsoutletw.com +tomsoutletzt.com +tomsshoeoutletzt.com +tomsshoesonline4.com +tomsshoesonsale4.com +tomsshoesonsale7.com +tomsshoesoutlet2u.com +tomsshoesoutletssales.com +tomthen.org.ua +tomx.de +tomymailpost.com +ton-platform.club +tonall.com +tonaroca.com +tondar-shop.xyz +tondar-vpn.xyz +tondar-vpns.xyz +tondarvpn-shop.xyz +tonehy.info +tonermix.ru +tonghopnhadat.biz +tonghushi.club +tonicronk.com +tonigcrash.club +tonightsbang.com +toningtheflab.com +tonirovkaclub.ru +tonne.to +tonneau-covers-4you.com +tonngokhong.vn +tonno.cf +tonno.gq +tonno.ml +tonno.tk +tonolon.cf +tonolon.gq +tonolon.ml +tonolon.tk +tonpetitlait.com +tonpetitmec.com +tonplancul-page.com +tony-casino.com +tonyandtinosmacroom.com +tonyandtinostakeaway.com +tonyclass.com +tonycuffe.com +tonymanso.com +tonyplace.com +tonys-takeaway-carlow.com +tonytinostakeaway.com +too879many.info +toodagos.cf +toodagos.ga +toodagos.gq +toodagos.tk +tooeasybuy.ru +toogether.digital +toogrammys.online +tookhub.com +tooktook.site +tool-9-you.com +tool.pp.ua +toolreviews.tech +toolsfly.com +toolsshop.futbol +tooltackle.ru +toolyoareboyy.com +toomail.biz +toomail.net +toomtam.com +toomuchabout.com +toon.ml +toone.best +toonfirm.com +toonlawtulsa.com +toonmoa48.com +toonusfit.space +toooe.xyz +toootook.shop +toopitoo.com +tooslowtodoanything.com +toothandmail.com +toothdecay.website +toothfqualmo.cf +toothfqualmo.ga +toothfqualmo.gq +toothtolerance.com +tootrendavto.ru +tooxet.ru +top-annuaire.com +top-elka.ru +top-email.org +top-freza.ru +top-help.ru +top-life-insurance-today.live +top-magazine.site +top-mailer.net +top-mails.net +top-med.biz +top-onlinecasino.info +top-opros.best +top-seller15.ru +top-seller24.ru +top-setbpp.ru +top-sh0ps.fun +top-shop-tovar.ru +top-shop24info.ru +top-shopz.online +top-start.ru +top-store11.ru +top-telechargement-sites.com +top-trends.su +top-trends1.ru +top-veneers.ru +top021.site +top10-voto.com +top100mail.com +top101.de +top10cpm.com +top10extreme.com +top10movies.info +top1mail.ir +top1mail.ru +top1post.ru +top365.su +top3chwilowki.pl +top4bum.com +top4butt.com +top4th.in +top50.cd +top5heelinsertscom.com +top5news.fun +top5rating.org +top5znakomstv.space +top777.site +top9appz.info +topairdrops.site +topalfajor.buzz +topamulet.ru +topand.best +topar.pro +toparama.com +topaz.studio +topazpro.xyz +topbabygirl.com +topbagsforsale.info +topbahissiteleri.com +topbak.ru +topbananamarketing.co.uk +topbigwin777online.space +topbooksites.com +topboombeet.xyz +topbuyer.xyz +topbuysteroids.com +topbuysteroids365.com +topbuzz-tamtam.xyz +topbwin.com +topcarlawyer.com +topcash18indo.xyz +topchik.xyz +topchikbestsales.fun +topchiknavse.fun +topchshopl-anas.space +topclassemail.online +topcleaninghk.com +topcoin.business +topcuponesdescuento.com +topdait.icu +topdcevents.com +topdeadcentermusic.com +topdealoffering.com +topdepcasinos.ru +topdiane35.pl +topdope.site +topdrivers.top +topdropcase.ru +topechelonsoftware.com +topeducationvn.cf +topeducationvn.ga +topeducationvn.gq +topeducationvn.ml +topeducationvn.tk +topemail24.info +toperhophy.xyz +topessayunreal.com +topfast-supernet.fun +topfivestars.fun +topflightdesign.com +topgads.com +topgif.ru +topgjali.cf +topgjali.ga +topgjali.gq +topgjali.ml +tophandbagsbrands.info +tophdmovies.biz +topheadphonesforsale.com +tophealthinsuranceproviders.com +tophit-mzg.ru +tophouseforsale.com +tophyhar.cf +tophyhar.ga +tophyhar.gq +tophyhar.ml +tophyhar.tk +topiasolutions.net +topiasolutions.org +topic-books.com +topicalbionom.com +topicalspectrumhemp.com +topiemas.com +topigrok-online.ru +topikt.com +topinbox.info +topinfomed.ru +topinrock.cf +topiphone.icu +topiratu.info +topitiji.site +topitrend.com +topjobsbook.com +topjuju.com +topkek.pro +topladygirl.com +toplampy.online +toplessbucksbabes.us +topline.bet +toplinewindow.com +toplinktap.ru +toplistcasinovideo.tech +toplistninja.com +topmaidanapinola.com +topmail.bid +topmail.net +topmail.org +topmail.ws +topmail1.net +topmail2.com +topmail2.net +topmail24.ru +topmail4u.eu +topmailer.info +topmailings.com +topmailmantra.net +topmall.com +topmall.info +topmall.org +topmarketing2020.space +topmart24.ru +topmoviesonline.co +topmumbaiproperties.com +topmusicas.club +topmusiklist.com +topnewest.com +topnewride-now.sale +topnewswaka.site +topnewz.net +topnnov.ru +topnolan.com +topnovosti-russia.ru +topofertasdehoy.com +topofthehilldining.com +toponda.com +toponline.su +toponlinemba.org +toporra.cf +toporra.ga +toporra.ml +toporra.tk +toposterclippers.com +topovtovar.space +topp10topp.ru +toppartners.cf +toppartners.ga +toppartners.gq +toppartners.ml +toppartners.tk +toppcuttaz.net +toppeak.asia +topphouse.ru +toppieter.com +topplase-es.site +topplayers.fun +toppriceshp-rp.space +topqualityjewelry.info +topranklist.de +topread.fun +toprecipecenter.com +topretirements.org +topricedublin3.com +toprucasino2018.ru +toprucasinos.ru +toprumours.com +topsale.uno +topsalebest-anst.space +topsearchnet.com +topsecretvn.cf +topsecretvn.ga +topsecretvn.gq +topsecretvn.ml +topsecretvn.tk +topsellingtools.com +topseos.com +topseptik.site +topseriestreaming.site +topseriestreaming.xyz +topshoemall.org +topshop-saleprunik.space +topshop123.ru +topshoppingmalls.info +topskidki.fun +topskin.online +topslrcameras.com +topsml4you.xyz +topsourcemedia5.info +topspizza-crumlin.com +topspizzaandfriedchicken.com +topstorewearing.com +topsuccsesspeople.site +topsuccsesspeople.space +topsuccsesspeople.website +topswisswatch.ru +topsydodo.com +toptalentsearchexperts.com +toptalentsearchexperts.xyz +topteengirl.com +toptenformen.com +toptenplaces.net +toptextloans.co.uk +topthailandsport.com +topthingsstore.info +toptopmail.cf +toptopmail.ga +toptopmail.gq +toptopmail.ml +toptrainingandgym.com +toptransfer.cf +toptransfer.ga +toptransfer.gq +toptransfer.ml +toptransfer.tk +toptravelbg.pl +toptrend777.ru +toptrendnews.net +topusaclassifieds.com +toputaer.ga +topvacationhomes.rentals +topvideogames.ninja +topvidnow.com +topviecquanly.com +topvpnfree.ooo +topwebinfos.info +topwebplacement.com +topwebresources.com +topwm.org +topzpost.com +toqire.info +toqpoj.com +toqza5.com +tor13.site +tora1.info +toracw.com +torahcenter-chabad.org +torange-fr.com +torawa.info +torbecouples.org +torbenetwork.net +torbix.site +torbrowser-rus.ru +torch.space +torch.yi.org +tordamyco.xyz +toreandrebalic.com +torg-06.ru +torgorama.com +torgoviy-dom.com +torgovyicenter.ru +tori.ru +torickcryp.gq +torickcryp.tk +torm.xyz +tormail.net +tormail.org +tornadobet11.net +tornadobet365.net +tornbanner.com +torneodeljoropo.com +torneomail.ga +tornovi.net +torontogooseoutlet.com +torontoincometax.com +torontopropertyhousehunters.com +toropic.site +torquatoasociados.com +torrent0.com +torrent9-fr.site +torrentbebe10.com +torrentcache.com +torrentgirl.shop +torrenthaja.shop +torrentinos.net +torrentjoa.shop +torrentmoa.shop +torrentmovies.biz +torrentpc.org +torrentqq33.com +torrentqq36.com +torrentqq37.com +torrentqq38.com +torrents.click +torrents73.ru +torrents9.red +torrents9.rip +torrentshow.net +torrenttool.com +torrentupload.com +torrentwiki.com +torrenty.plus +torressecuritygroup.com +torrhost.com +torrid.ga +torsighpost.cf +torsighpost.gq +torsighpost.ml +torsighpost.tk +tort64.ru +tortconli.ga +tortconli.gq +tortconli.ml +tortconli.tk +tortilla.xyz +torvice.cf +torvice.ga +torvice.gq +torvice.ml +torvice.tk +torwotool.com +torwotools.com +tory-burch-brand.com +toryburch-outletsonline.us +toryburchjanpanzt.com +toryburchjapaneses.com +toryburchjapans.com +tosciencebible.ru +toshiba-premium.online +toshibaqq.com +toshine.org +tosiga.info +tosilday.gq +tosilday.ml +tosilday.tk +tosmomu.ml +tosmomu.tk +tosms.ru +tosonyhari.online +toss.pw +tostiepo.cf +tostiepo.ga +tostiepo.ml +tostiepo.tk +tosun.ml +tosunkaya.com +total-research.com +total-sportek.net +totalcoach.net +totalcoders.com +totalfanhub.com +totalhealthy.fun +totalhentai.net +totalistasyonlari.com +totalizer311wf.xyz +totalkw.com +totallynotfake.net +totallypianos.com +totalmanpower.kiwi +totalnetve.ml +totalpoolservice.com +totalreconautocenter.com +totalsolv.icu +totalvista.com +totalwellnesswi.com +totalwirelessrefill.com +totebagimprints.com +totelouisvuittonshops.com +totemarchers.com +toteshops.com +totesmail.com +tothelab.com +tothesis.com +totnet.xyz +toto88.bet +toto88.org +toto96.com +totoabadi2.net +totoan.info +totobaksa.website +totobet.club +totobo200.com +totoboonline8.com +totobt22.com +totobt23.com +totochi.online +totochi.org +totochi.site +totochi.space +totochi.xyz +totodinasti.info +totojek.tech +totolotoki.pl +totoson.com +totosta.com +tototaman.com +tototogel4d.xyz +totovip.online +totse1voqoqoad.cf +totse1voqoqoad.ga +totse1voqoqoad.gq +totse1voqoqoad.ml +totse1voqoqoad.tk +totty.ru +toubro.com +toucai131.com +toucai151.com +touchain.net +touchain.one +touchchas.com +touchhcs.com +touchsalabai.org +touchsout.xyz +touchtosuccess.com +toudiswe.ga +toudiswe.gq +toudiswe.tk +tough.cf +toughblarbarw.cf +toughblarbarw.ml +toughcov.icu +toughness.org +touoejiz.pl +touranya.com +tourbalitravel.com +tourcatalyst.com +tourdepeaks.com +tourdulichviet.net +tourerr.space +tourism-life.ru +tourism-live.ru +tourism-ok.ru +tourism.expert +tourism.support +tourismsilverstar.org +tourist-live.ru +tourist61.website +touristevent.com +touristguidenepal.com +touristinfo.network +touristinfo.news +touristoz.ru +touristpower.ru +touristravel.ru +touristry.cd +tourmalinehairdryerz.com +tournament-challenge.com +tournament62.website +tours-cappadocia.org +tours-turizm.ru +toursyogas.info +tourtripbali.com +touseshop.com +toushizemi.com +touziweilai.net +tovar-off.ru +tovar-tyt.ru +tovar-zdes.ru +tovarmagaz.shop +tovarsales70.ru +tovarshopmoscow.ru +tovartovar.site +tovarvtope.site +tovemen.cf +tovemen.ml +tovemen.tk +tovhtjd2lcp41mxs2.cf +tovhtjd2lcp41mxs2.ga +tovhtjd2lcp41mxs2.gq +tovhtjd2lcp41mxs2.ml +tovhtjd2lcp41mxs2.tk +toviell.net +tovip.net +tow23g.us +towardstarsgame.com +towb.cf +towb.ga +towb.gq +towb.ml +towb.tk +towerdom.space +towergames.ru +towerlifeglobal.com +towfood.com +towheeci.cf +towheeci.ml +towheeci.tk +towing-services-sandiego.info +towistand.site +towndewerap23.eu +townehousediner.com +townoflowrys.com +townofstonington.com +townomics.com +townvillage.su +towsempro.cf +towsempro.gq +towsempro.ml +towsempro.tk +towsonshowerglass.com +towtravels.info +toxini.ru +toxtalk.org +toy-coupons.org +toy-guitars.com +toy-me.ru +toy-tech.ru +toy68n55b5o8neze.cf +toy68n55b5o8neze.ga +toy68n55b5o8neze.gq +toy68n55b5o8neze.ml +toy68n55b5o8neze.tk +toyebet196.com +toygunmarch.com +toyhacking.org +toyhiosl.com +toyiosk.gr +toymalling.site +toyojitu.net +toyoonies.ru +toyota-avalon.club +toyota-chr.club +toyota-clubs.ru +toyota-prius.club +toyota-rav-4.cf +toyota-rav-4.ga +toyota-rav-4.gq +toyota-rav-4.ml +toyota-rav-4.tk +toyota-rav4.cf +toyota-rav4.ga +toyota-rav4.gq +toyota-rav4.ml +toyota-rav4.tk +toyota-sequoia.club +toyota-sequoia.com +toyota-yaris.tk +toyota.cellica.com +toyota123.xyz +toyotacelica.com +toyotacorolla.club +toyotalife22.org +toyotamanualspdf.com +toyotamisiones.com +toyotapartsabq.com +toyotapartshub.com +toyotataganka.ru +toyotavlzh.com +toys-r-us-coupon-codes.com +toys.ie +toysfortots2007.com +toysgifts.info +toysikio.gr +toysshop.futbol +toywoz.com +toyzshop.net +toyzzclubkart.com +toyzzshop.mobi +toyzzshop.ru +tozerspeaks.com +tozmaskesi.com +tozustore.site +tp-qa-mail.com +tp54lxfshhwik5xuam.cf +tp54lxfshhwik5xuam.ga +tp54lxfshhwik5xuam.gq +tp54lxfshhwik5xuam.ml +tp54lxfshhwik5xuam.tk +tpaglucerne.dnset.com +tpahometeam.org +tpapa.ooo +tpass.xyz +tpb-mirror.tk +tpbank.gq +tpbonion.win +tpcebm.tokyo +tpcom.store +tpfqxbot4qrtiv9h.cf +tpfqxbot4qrtiv9h.ga +tpfqxbot4qrtiv9h.gq +tpfqxbot4qrtiv9h.ml +tpfqxbot4qrtiv9h.tk +tpfxnr.com +tpg24.com +tph.red +tphqmdtqustuzptqu.ru +tpib5y.us +tpiecer.best +tpk.community +tplccioef.shop +tplqbom.com +tpmail.top +tpnyx.fun +tpobaba.com +tpper.shop +tpq1.com +tpqmanbetx.com +tprtm.shop +tprtmwxh.shop +tprugu.us +tpsdq0kdwnnk5qhsh.ml +tpsdq0kdwnnk5qhsh.tk +tpsoftwaresolutions.com +tpte.org +tptxiz.us +tpwvawf.space +tpxnu1s3lotyaj6.xyz +tpxvre.us +tpyy57aq.pl +tq-sale.ru +tq3.pl +tq84vt9teyh.cf +tq84vt9teyh.ga +tq84vt9teyh.gq +tq84vt9teyh.ml +tq84vt9teyh.tk +tqbe1b.us +tqc-sheen.com +tql4swk9wqhqg.gq +tqmfk.live +tqoai.com +tqophzxzixlxf3uq0i.cf +tqophzxzixlxf3uq0i.ga +tqophzxzixlxf3uq0i.gq +tqophzxzixlxf3uq0i.ml +tqophzxzixlxf3uq0i.tk +tqosi.com +tqpxdj.us +tqqun.com +tqwagwknnm.pl +tqyjr2.com +tr-1s.xyz +tr-2s.xyz +tr-3s.xyz +tr-4s.xyz +tr-5s.xyz +tr-bet.com +tr2k.cf +tr2k.ga +tr2k.gq +tr2k.ml +tr2k.tk +tr32qweq.com +tr3s.tech +traanhosting.shop +traapn.rest +trabajan2nos.com +trabalharnashorasvagas.com +trabesp.com +trabzonisilanlari.xyz +trabzonlularotomotiv.xyz +trabzonpostasi.xyz +tracanmi.cf +tracanmi.ga +tracanmi.ml +tracciabi.li +tracemy.net +tracenstar.cf +tracenstar.ga +tracenstar.gq +tracenstar.ml +tracenstar.tk +traceyhughesbutters.com +traceyrumsey.com +tracicroy.info +tracimna.cf +tracimna.ga +tracimna.gq +tracimna.ml +tracimna.tk +track-custom.com +trackarry.com +trackback.link +trackbillion.live +trackdriver.com +tracker-fb.online +tracker.peacled.xyz +tracking.army +tracking.democrat +tracking.navy +tracking.republican +trackinghub.org +tracklady.club +trackmenow.ru +trackmo.icu +trackmusic.info +trackmyflightnow.com +trackpai.fun +trackprov.icu +tracksalon.club +tracksame.com +tracksnac.xyz +trackspor.us +tracktoolbox.com +trackwatch.ru +trackyourcraft.com +traclecfa.cf +traclecfa.gq +traclecfa.ml +traclecfa.tk +tracoutpa.tk +tracsisdata.com +tracsistads.com +tracsistrafficsurveys.com +tractcoun.com +tractionbusinessblog.com +tractitto.cf +tractitto.ga +tractitto.gq +tractitto.ml +tractitto.tk +tractors24.com +tractspa.host +tractswar.com +tractswor.site +tradaswacbo.eu +trade-finance-broker.org +trade-magazine-product.ru +trade-sale-info.ru +tradeatf.mobi +tradebea.us +tradebitrage.com +tradecnyo.cf +tradecnyo.ga +tradecnyo.gq +tradecnyo.ml +tradecnyo.tk +tradecomnn.ru +tradeelb.us +tradefinanceagent.org +tradefinancebroker.org +tradefinancedealer.org +tradeinvestmentbroker.org +tradeivo.icu +tradelix.club +trader-en-ligne.net +trader-expert.ru +trader-test.site +tradercomputersspot.club +traderlink.adult +tradermail.info +tradersinsight.com +tradersoffortune.com +tradertest.site +tradeseze.com +tradeskins.ru +tradesl.xyz +tradesna.buzz +tradespo.xyz +tradeswallet.online +tradewithgreg.com +tradewithrichard.com +tradex.gb +tradexan.cf +tradexan.ga +tradexan.gq +tradexan.ml +tradexan.tk +tradexvirtualevents.app +tradiated.com +trading-courses.org +trading.social +tradingedu.site +tradingtourney.com +traditionalimpacts.com +traducatoriromana.com +traducereenglezaromana.com +tradunen.ml +traff-flay.ru +traff1c.xyz +traffic-inc.biz +traffic-make.ru +trafficmanager.cloud +trafficmanager.link +trafficreviews.org +traffictags.com +traffshop.store +trafik.co.pl +trafikcafeer.online +traforetto.com +tragaver.ga +tragedyontheconception.com +tragop.shop +trah.fun +trailerplus.shop +trailhero.com +trailmail.org +trailockusa.com +trailslee.com +trailwor.xyz +trailworl.xyz +trainercomm.com +training-radiopharmacy.com +trainingandnutrtiontruth.com +trainingcamera.com +trainingpedia.co.id +trainingpedia.online +trainingpracticum.ru +trainingstandardsinternational.com +trainingvideos.xyz +traitclim.us +trak4mandela.africa +trakable.com +traklabs.tech +trakopti.com +trakpomo.com +traksta.com +traksx.website +trakyanetiletisim.xyz +trakyauniversiteli.xyz +tralalajos.ga +tralalajos.gq +tralalajos.ml +tralalajos.tk +tralee-tandoori.com +trallal.com +tramecpolska.com.pl +tramepel.cf +tramepel.ga +tramepel.gq +tramepel.ml +tramepel.tk +tramold.pw +tramplinp.pro +tranbo.site +tranceversal.com +trands-shoes.ru +tranghuudongchieu.ml +trangmuon.com +tranhelan.ga +tranlamanh.ml +tranmailinh.ga +tranminhphuong.ga +tranpay.xyz +tranquillpoet.com +trans2019.website +transactionscenter1.com +transactionshub2.com +transcience.org +transcript-xpress.com +transend.click +transfaraga.co.in +transfergoods.com +transferinn.com +transformationalsurgery.com +transformationministry.org +transformers-zone.ru +transformicexd.com +transformingz.club +transformyourelationshipsnow.com +transgenicorganism.com +transgressiveart.com +transistore.co +transit-loot.xyz +transitionsllc.com +transitionsoftime.com +transitious.org +transitmebel.ru +translationcenter-annabi.net +translationserviceonline.com +translity.ru +translyhhh.space +transmatter.xyz +transmissioncleaner.com +transmissionmechanism.info +transmute.us +transparenzinitiative.jetzt +transphaeton.com +transportationfreightbroker.com +transportationglossary.com +transporterdispatch.com +transporteszuniga.cl +transportpersoane.info +transselfies.com +trantamnhu.ga +trantrungdan.ga +tranyenvy.website +tranz-lotin.xyz +traoluu.com +trap-mail.de +trapassa.cf +trapassa.ga +trapassa.gq +trapassa.ml +trapassa.tk +trapholdem.com +traphouse.party +traplogce.ga +traplogce.gq +traplogce.tk +trasatad.cf +trasatad.ga +trasatad.gq +trasatad.ml +trasatad.tk +trash-amil.com +trash-mail.at +trash-mail.cf +trash-mail.com +trash-mail.de +trash-mail.ga +trash-mail.gq +trash-mail.ml +trash-mail.net +trash-mail.tk +trash-me.com +trash.co.uk +trash2009.com +trash2010.com +trash2011.com +trash247.com +trash4.me +trashbin.cf +trashbox.eu +trashbox.gq +trashcanmail.com +trashdevil.com +trashdevil.de +trashemail.de +trashemails.de +trashimail.de +trashinbox.com +trashinbox.net +trashmail.app +trashmail.at +trashmail.com +trashmail.de +trashmail.ga +trashmail.gq +trashmail.io +trashmail.me +trashmail.net +trashmail.org +trashmail.pw +trashmail.tk +trashmail.ws +trashmailer.com +trashmails.com +trashpandacookbook.com +trashspam.com +trashy.buzz +trashymail.com +trashymail.net +trashyourspouse.com +traslex.com +trast12.icu +trasunram.ga +trasunram.gq +trasunram.ml +trasunram.tk +trasz.com +trata.xyz +tratenun.cf +tratenun.ga +tratenun.gq +tratenun.ml +tratenun.tk +trathofun.ga +trathofun.gq +trathofun.ml +tratratratomatra.com +tratrek.com +tratsch.party +traumatherapycenters.com +traumcapital.us +trav3lers.com +trava-kavkaza.ru +travala10.com +travel-e-store.com +travel-singapore-with-me.com +travel-venezuela.com +traveladaleaders.com +travelagent.cd +travelandtourismmedia.com +travelbenz.com +travelbestbets.club +travelblogplace.com +travelcuckoo.com +traveldesk.com +traveldestination.ru +travelersglossary.com +travelfleet.net +travelforjob.ru +travelhacking4life.com +travelhelps.ru +traveling.monster +travelingcome.com +travelitis.site +travelkot.ru +travellaptop.net +travellenta.ru +travelnewnews.ru +traveloffers.services +travelopedia.site +travelovelinka.club +travelparka.pl +travelpointbuilders.com +travelsaroundasia.com +travelsdoc.ru +travelshotels.org +travelsmith.info +travelsta.tk +travelstep.ru +traveltagged.com +traveltourist.ru +traveltovegasdeals.com +traveltraderating.com +travelua.ru +travelvance.com +traverrateso.host +traverseio.com +travertineinstallersofflorida.com +travforross.ga +travforross.gq +travforross.ml +travforross.tk +travismichaelsart.com +travissharpe.net +travunen.cf +travunen.ga +travunen.gq +travunen.ml +travunen.tk +trawinsurance.com +trayjust.us +trayna.com +traz.cafe +trazimdevojku.in.rs +trazodone247.video +trbbw.info +trbet277.com +trbet350.com +trbet351.com +trbet477.com +trbet591.com +trbvm.com +trbvn.com +trbvo.com +trckonliserv.xyz +trcpin.com +trcprebsw.pl +trdhw.info +treadetaf.cf +treadetaf.ga +treadetaf.gq +treadetaf.ml +treadetaf.tk +treadpoun.icu +treadsl.xyz +treadthi.xyz +treap.net +treasure-inn.com +treasuregem.info +treasureinntakeaway.com +treatalpa.cf +treatalpa.gq +treatalpa.ml +treatalpa.tk +treatbas.xyz +treatent.icu +treathinan.cf +treathinan.ga +treathinan.gq +treatmentans.ru +treatmentcanwork.com +treatmented.info +treatmentsforherpes.com +trebeshina.com +treblebet.com +trebusinde.cf +trebusinde.ml +treckmx.club +tredinghiahs.com +tree-some.com +tree-someclothing.com +treebasics.online +treebate.org +treecaremgmt.com +treecon.pl +treeflat.info +treefreeresumes.com +treehealth.site +treehealth.space +treeheir.com +treehouseburning.com +treepickle.ru +treepnihis.cf +treepnihis.ga +treepnihis.ml +treepnihis.tk +treeptok.space +treeremovalmichigan.com +treeringrecords.com +treesoflifefarm.com +trefoils.site +tregame.site +treguboof.ru +treillage.xyz +trek-planet.com +trekholidays.com +trekwire.com +trelephant.com +trellotalk.com +tremontoworks.info +tremubtib.cf +tremubtib.ga +tremubtib.gq +tremubtib.ml +tremubtib.tk +trenager-ems.ru +trend-maker.ru +trend-on.ru +trend-tovar.ru +trend.lol +trend70.xyz +trendauto.info +trendbet51.com +trendbettor.com +trendblogmag.site +trendblogmag.xyz +trenddriv.xyz +trendfinance.ru +trendforc.site +trendingtopic.cl +trendinx.com +trendmagazin-vash.fun +trendmagazinvsego.fun +trendmarket-top.fun +trendnail.ru +trendoerdmega.space +trends-magaz.site +trends-magazinchik.site +trends-magazinpna.site +trends-magazintop.fun +trends-magazintopchik.site +trends-magaztop.space +trends-market.site +trends-topsales.fun +trendshop95.ru +trendsmagaz-ans.space +trendsmagaz.fun +trendsmagazin-anstm.space +trendsmagazin-funstyle.site +trendsmagazin-kul.fun +trendsmagazin.site +trendsmagazinchiktop.fun +trendsmark-pus.fun +trendsmarketer.site +trendsonnet.com +trendssales.space +trendstalks.fyi +trendstomright.com +trendstovar-rop.space +trendstyle.life +trendsux.com +trendtattoo.ru +trendtivia.com +trendtop-magazin.fun +trendtop-price.fun +trendunas.ru +trendytoday.live +trendyworldinc.com +trenerfitness.ru +trenerov.ru +trengo.me +treniraj.info +trenitalia.gq +trenmayamx.com +trenord.cf +trenord.ga +trenord.gq +trenord.ml +trenord.tk +trentarnettegary.com +trentcasino.com +trentetanlis.com +treon.info +treon.org +trepicas.cf +trepicas.gq +trepicas.tk +trerwe.online +tressicolli.com +trestle.com +tretinoincream-05.com +tretmuhle.com +treudad.ru +trevor.ga +trezvostrus.ru +trf20.online +trg.pw +trgeforcenow.me +trgoals1.club +trgoals3.club +trgovinanaveliko.info +tri-es.ru +tri-katushki.ru +triadelta.com +triadstore.ru +trialaloo.xyz +trialforyou.com +trialmail.de +trialseparationtop.com +triathlongreyhounds.com +triathlonpavese.info +tribalvoices.africa +tribesascendhackdownload.com +tribespring.com +tribonox79llr.tk +tribora.com +tribsearno.cf +tribsearno.ga +tribsearno.gq +tribsearno.ml +tribsearno.tk +tricdistsiher.xyz +triceptacorecs.com +trickbr.icu +trickcate.fun +trickervip.tk +trickmail.net +trickminds.com +trickphotographyreviews.net +tricksho.icu +tricksndtips.com +trickupdaily.com +trickupdaily.net +trickwidth.recipes +tricnabobs.ga +tricnabobs.tk +tricokin.ga +tricokin.gq +tricokin.ml +tricokin.tk +tricoulesmecher.com +tridalinbox.info +triderprez.cf +triderprez.gq +triderprez.tk +triedbook.xyz +trifectafunnel.com +triginar.ml +triginar.tk +triho.ru +triipmiles.info +trikavli.cf +trikavli.gq +trikavli.tk +trilkompas.com +trillianpro.com +trilogyofsecrets.com +trimbakeshwarhotels.com +trimcams.com +trimcutsave.com +trimjoper.cf +trimjoper.ga +trimjoper.gq +trimjoper.ml +trimsj.com +trindepcomm.gq +trindepcomm.ml +trindepcomm.tk +tringle.online +trinidad.nyc +trinilive.com +trinityfellowshipchurches.org +trinityfriends.org +trinityoee.com +triolus.com +trionym.best +triosc.best +tripaat.com +tripanfinance.com +triparish.net +tripecmal.cf +tripecmal.ga +tripecmal.gq +tripecmal.ml +tripecmal.tk +tripinofpa.space +tripjeeps.info +tripledmultiple.com +tripledvaluation.com +triplefiveshanghai.com +triplehosting.com +triplejackpoker.com +triplun.xyz +tripmusic.ru +tripmymetrip.site +tripolis.com +tripolnet.website +tripotcher.cf +tripotcher.ga +tripotcher.ml +trippenadmin.site +triprain.info +trips-shop.ru +tripster.info +tripsterfoodies.net +trisana.net +trisanreeno.club +trishkimbell.com +tristanabestolaf.com +tristanteo.net +tristanwoodworks.com +tristarasdfdk1parse.net +tristarcremation.info +tristeziul.space +triteksolution.info +triton-service.ru +triumphlotto.com +triumphworld.education +triumphworld.school +triumphworldschool.online +triumphworldschools.com +triumphworldschools.online +triunemasteryinstitute.com +trivecgroup.se +trivei.com +trivialization494jg.online +trixtrax1.ru +trixtrux1.ru +triz4you.site +trjnd1.site +trn1023.com +trnyor28-privnrkty.website +trobertqs.com +trobosajalah.ga +trocas.top +trocgoogri.cf +trocgoogri.ga +trocgoogri.ml +trocgoogri.tk +trochoi.asia +trock.cf +trogonidae.best +troikasedro.ml +trojanmail.ga +trol.com +trolamrux.cf +trolamrux.ga +trolamrux.tk +trollandtad.com +trollingforgamers.com +trollphysicscomic.com +trollproject.com +tromba.best +trombonetube.com +trommlergroup.com +trommleronline.com +trommlershop.com +trompetti.net +tromsomar.cf +tromsomar.ga +tromsomar.gq +tromsomar.ml +tromsomar.tk +tron.care +tron.pl +tron2019.ru +troncomail.club +tronmuzika.ru +tronvenho.cf +tronvenho.ga +tronvenho.gq +tronvenho.ml +tronvenho.tk +tronzillion.com +troofer.com +troopflash.email +troops.online +troopsto.press +tropica-asian-cuisine-dalkey.com +tropica-asian-cuisine.com +tropicalbass.info +tropicalnetwork.shop +tropicpvp.ml +trops888.ru +troscx.website +troserat.cf +troserat.gq +troserat.tk +trotebag.com +troubsellpost.cf +troubsellpost.ga +trousdaleassociates.com +trousdalevcholdings.com +trousdaleventurecapitalpartners.com +trouvercolis.com +troxy.us +troyakebabs.com +trrqo.com +trsrrtire.com +trssdgajw.pl +trsvan.com +trt-austria.com +trtd.info +trtkitap.com +truartist360.com +truba-stout.ru +trucchisca.cf +trucchisca.ga +trucchisca.ml +trucchisca.tk +truck-autos-zone.sale +truck-dealersspot.live +truckaccidentlawyerpennsylvania.org +truckcashoffer.com +truckcoa.buzz +truckerlifestyles.com +truckfault.com +truckhob.icu +truckmetalworks.com +trucksupermarket.org +trucktrader.adult +truckwashbrush.com +truckwashbrush.org +truckwashbrush.us +trucmai.cf +trucmai.ml +trucmai.tk +trucosdemagia.online +trucossimssocial.com +trucosymas.com +trucweedra.cf +trucweedra.gq +trucweedra.ml +trucweedra.tk +trud.media +trudoc.net +trudovpravo.xyz +true-portall1.club +true-religion.cc +true-secure00.ru +trueallergytesting.com +trueattractions.com +truebankonline.com +trueblueaff.com +trueblueglobalfranchisinggroup.com +truecoinvalues.com +truecryptorothira.com +truecs.com +trueedhardy.com +truefile.org +truefitt.net +truegoldcenter.com +truegravitydistribution.com +truehealthdentistry.com +truehelpbox.site +truelifecanada.org +truelivewebcams.com +truenaturenetwork.info +truereligionbrandmart.com +truereligionjeansdublin.eu +truesimplesoft.com +trueyoueats.com +trufficial.com +trufilth.com +truhealth.shop +truinstall.com +trulli.pl +truly-stunning-skin.com +trum.win +trum86.club +trumanpost.com +trumbullelderlawgroup.com +trumgamevn.ml +trump.flu.cc +trump.igg.biz +trumpmail.cf +trumpmail.ga +trumpmail.gq +trumpmail.ml +trumpmail.tk +trumptowerscondo.com +trumptowersvegascondos.com +trumpupclose.com +trumpwasgood.com +trumtaixiu.net +trumtn.com +trung.name.vn +trungtamtoeic.com +trungthu.ga +trunktotail.com +trunma.fun +trunma.space +trunorth.coop +trupho.us +trushsymptomstreatment.com +truskwashbrushes.org +truskwashbrushes.us +trussinteriors.site +trust-advisor.ru +trust-deals.ru +trust.games +trustablehosts.com +trustatscale.com +trustattorneyscalifornia.com +trustcoin.tech +trusted-canadian-online-pharmacy.com +trusted.camera +trusted.clothing +trusted.diamonds +trusted.parts +trusted.photos +trusted.shoes +trusted.style +trusted.trading +trusted.wine +trustedchest.site +trustedcvvshop.ru +trustedhosts.net +trustedproducts.info +trustfb.online +trustfb.site +trustfb.xyz +trustfig.fun +trustflash.fun +trustfractalforge.com +trustgames.vip +trusthalal.com +trusthomesmidsouth.com +trustingfunds.ltd +trustinj.trade +trustinthe.cloud +trustiov.club +trustjudg.fun +trustlending.pro +trustmall.online +trustmymeat.com +trustnetsecurity.net +trustpiiot.site +trustsieg.us +trusttravellive.biz +trusttravellive.info +trusttravellive.net +trusttravellive.org +trusttravellive.travel +trustur.ru +trustware.coach +trustware.us +trustxm.com +truth-publications.com +truthaboutcellulitereviews.com +truthaboutgluten.com +truthandlibertycoalition.com +truthdaredo.com +truthdaredo.net +truthfinderlogin.com +truthfulintegrity.com +truthorconsequences.net +truthpowe.buzz +truthye.com +truuhost.com +truvabetgiris.website +truvifoods.com +truvinutrition.com +truvisagereview.com +truvisionhealth.global +truviz.shop +truxbox.ru +trwfey.us +trxsuspension.us +trxubcfbyu73vbg.ga +trxubcfbyu73vbg.ml +trxubcfbyu73vbg.tk +try-rx.com +tryalert.com +tryalfajor.buzz +tryblg.xyz +tryblgs.xyz +tryblog.xyz +trybookr.com +trycatchrepeat.info +trycjebraingames.com +tryclickfunnels.com +tryjx2s.com +tryluminousglow.com +trymachaearthpetsupply.com +trymail.tk +trymindstein.com +tryninja.io +trynugentix.com +tryorganictips.site +trypayroll.com +trypedoc.cf +trypedoc.ga +trypedoc.gq +trypedoc.ml +trypedoc.tk +tryppin.site +trypregenix.com +tryprice.co +trysubj.com +trytopstaminxtestoboost.com +trytwp.com +tryuf5m9hzusis8i.cf +tryuf5m9hzusis8i.ga +tryuf5m9hzusis8i.gq +tryuf5m9hzusis8i.ml +tryuf5m9hzusis8i.tk +tryvertty.services +tryworks.xyz +tryzoe.com +ts-by-tashkent.cf +ts-by-tashkent.ga +ts-by-tashkent.gq +ts-by-tashkent.ml +ts-by-tashkent.tk +ts2menswear.com +ts30.club +ts5.xyz +ts93crz8fo5lnf.cf +ts93crz8fo5lnf.ga +ts93crz8fo5lnf.gq +ts93crz8fo5lnf.ml +ts93crz8fo5lnf.tk +tsa8ii.us +tsamoncler.info +tsapplications.com +tsas.tr +tsassoo.shop +tsba.xyz +tsbyj.live +tscamp.ru +tsclifton.com +tscpartner.com +tscripta.net +tscursos1.com +tscuties.com +tscyule.com +tsczxzc.com +tsdivas.com +tsdtracker.com +tsedalel.cf +tsedalel.ga +tsedalel.gq +tsedalel.ml +tsedalel.tk +tseh10.ru +tsendzerusticcampsite.com +tsgelas.club +tsgjw.info +tshirt.center +tshirtformens.com +tsikarstak.cf +tsikarstak.ga +tsikarstak.gq +tsikarstak.ml +tsikarstak.tk +tsiklessla.ga +tsiklessla.gq +tsiklessla.tk +tsipnn.site +tsj.com.pl +tsjdt.com +tsjp.xyz +tsk.tk +tskduz.cf +tsluoli.xyz +tsmc.mx +tsnhw.info +tsnmw.com +tsoundmost.shop +tsource.ist +tspace.net +tspfw.info +tspnob.com +tsptw.info +tspzeoypw35.ml +tsrgdd.com +tsrpay.info +tssc.cd +tssdz.com +tst69.space +tstcasino.com +tsternie.com +tstetsto.shop +tstoto21.org +tsukushiakihito.gq +tsv00.com +tswd.de +tsyatsys.shop +tsyefn.com +tsystsya.shop +tsyuan.xyz +tt1775.com +tt18269.com +tt2dx90.com +tt7665.com +tt9827.com +tta17.com +ttbbc.com +ttcccs.com +ttchx.com +ttckefu.site +ttcrtk.ru +ttcscan.org +ttdfytdd.ml +ttds.space +ttedttei.shop +ttekstormw.site +tteotted.shop +tthatin.shop +tthdtquszptutqu.ru +tthemos.shop +tthettha.shop +tthomp.com +ttht.us +ttieu.com +ttirv.com +ttirv.net +ttirv.org +ttitoolsale.com +ttk-uralgeo.ru +ttkamukecil.com +ttkkk2.xyz +ttlalloe.xyz +ttlzw.info +ttman.dns.navy +ttmpoker.club +ttmpoker.website +ttmpoker.xyz +ttobogo5.net +ttokto0up00.club +ttolk.com +ttomorrow.com +ttopclubr.site +ttopfeedt.site +ttopicopian.site +ttopzf.site +ttoubdzlowecm7i2ua8.cf +ttoubdzlowecm7i2ua8.ga +ttoubdzlowecm7i2ua8.gq +ttoubdzlowecm7i2ua8.ml +ttoubdzlowecm7i2ua8.tk +ttqp101.com +ttr6.su +ttrcasinoblog.ru +ttrimbai.site +ttrinet.site +ttrulanea.site +ttrzgbpu9t6drgdus.cf +ttrzgbpu9t6drgdus.ga +ttrzgbpu9t6drgdus.gq +ttrzgbpu9t6drgdus.ml +ttrzgbpu9t6drgdus.tk +ttsbcq.us +ttsi.de +ttsport42.ru +ttszuo.xyz +ttt062.com +ttt324.com +ttt552.com +ttt72pfc0g.cf +ttt72pfc0g.ga +ttt72pfc0g.gq +ttt72pfc0g.ml +ttt72pfc0g.tk +ttt944.com +ttt9827.com +tttbhgfdfdsmjhh.monster +tttbvbnv.com +tttcem.xyz +tttfvmknbhkcmk.xyz +tttitan.com +tttooo.online +tttttyrewrw.xyz +tttv1.com +ttuckbokee.com +ttusrgpdfs.pl +ttweetlounget.site +ttwijis.site +ttxcom.info +ttxte.com +ttxx6868.com +ttytgyh56hngh.cf +ttyuhjk.co.uk +ttzbw.info +tu-sale.online +tu3x8h.us +tu6oiu4mbcj.cf +tu6oiu4mbcj.ga +tu6oiu4mbcj.gq +tu6oiu4mbcj.ml +tu6oiu4mbcj.tk +tualias.com +tuan889p.ga +tuana31.com +tuantoto.com +tuatupo.ga +tuatupo.tk +tubanmentol.ml +tubbanews.tk +tubcasinomek.ru +tubdk2dersum.xyz +tube-dns.ru +tube-ff.com +tube-lot.ru +tube-over-hd.ru +tube-rita.ru +tubeadulte.biz +tubebob.ru +tubebrushes.biz +tubecandy.site +tubeftw.com +tubegain.com +tubegalore.site +tubegod.net +tubehide.site +tubehub.net +tubepack.site +tubered.site +tuberkulez.info +tubesurf.net +tubeteen.ru +tubev.site +tubex.buzz +tubexnxx.site +tubeyes.site +tubi-tv.best +tubidu.com +tubidy9.com +tubodamagnifica.com +tubruk.trade +tubzesk.org +tubzoos.info +tucash1.icu +tucboxy.com +tucineestiba.com +tuckschool.com +tucogough.cf +tucogough.ga +tucogough.ml +tucogough.tk +tucsonbesthomes.com +tucsonfreewifi.net +tucsonquote.com +tucuman.shop +tucumcaritonite.com +tudatacentervirtual.com +tudena.pro +tudesearch.cf +tudesearch.ga +tudesearch.gq +tudesearch.ml +tudesearch.tk +tudicthurn.cf +tudicthurn.ga +tudicthurn.gq +tudicthurn.ml +tudicthurn.tk +tudooz.com +tudouindex.com +tuembarazoymas.com +tuesdaylaura.com +tuesdaymariska.com +tuesdaymovo.com +tuesdaypleasure.site +tufbcdgr18-privcnvfjtu.press +tuferni.club +tuffautos.info +tug.minecraftrabbithole.com +tuga4you.site +tugboater.com +tugobro.ml +tugobro.tk +tugxbd.online +tuholesa.site +tuhsuhtzk.pl +tuhzih.icu +tuiberga.cf +tuiberga.ga +tuiberga.gq +tuiberga.ml +tuiberga.tk +tuimail.ml +tuimoe.com +tuipa.net +tuipharmacy.info +tuipharmacy.net +tuizipper.net +tujimastr09lioj.ml +tujuhonline.com +tujuhsatusatu.com +tukardim.com +tukkertrots.online +tukno.online +tukp.com +tukudawet.tk +tukulyagan.com +tukupedia.co +tukz.net +tular.online +tulipbettv9.com +tulistoto.xyz +tuljaenak.com +tulnl.xyz +tulsa.gov +tulsabud.delivery +tulsacannabisdoctor.com +tulsalaw.org +tulsaokeldercare.com +tulsaopiaterehab.com +tulsaprofessionalmatchmakers.com +tulsaspecialtysales.com +tulsi-takeaway.com +tulsisapkota.com +tulsitakeaway.com +tumblegifs.com +tumblegroup.com +tumblrlove.com +tumihaleler.xyz +tumima.cf +tumima.ga +tumima.gq +tumima.tk +tumiqq.info +tumjsnceh.pl +tummytotoddler.com +tunaarda.cf +tunaarda.ml +tunaarda.tk +tunaarda123.cf +tunaarda123.ga +tunaarda123.ml +tunaarda123.tk +tunaarda1234.ml +tunaarda1234.tk +tunacrispy.com +tunaeffect.com +tunasbola.site +tunasbola.website +tuncelidemirkapikoyu.com +tuncpersonel.com +tundy.us +tune.guide +tune.red +tuneintogiving.com +tunes.cd +tunezja-przewodnik.pl +tungsten-carbide.info +tungstenfabric.space +tunhide.com +tunikusami.xyz +tunis-nedv.ru +tunmanageservers.com +tunnelbeear.com +tunnelbound.com +tunneler.cf +tunnelerph.com +tunnell.org +tunningmail.gdn +tunschs.ru +tunzees.com +tuoficina.online +tuofs.com +tuoihoctro.site +tuoiteen.asia +tuongtactot.tk +tuopzyzc.shop +tuoslo.info +tup.best +tupel.org +tuphmail.com +tuposti.net +tuppencehalfpennyentertainment.com +tupuduku.pw +tur-3tur.ru +tur-top.ru +tur-yog.ru +tur-zoloto.ru +turabet129.com +turabkentseldonusum.com +turava.site +turbiki.ga +turbiki.gq +turbiki.ml +turbiki.tk +turbobahis6.com +turbobania.com +turbocarvers.com +turbochoicegarcinia.com +turbomail.ovh +turbonzb.com +turboparts.info +turboshack.biz +turboshopes.ru +turbospinz.co +turbovoicebox.com +turbu.pro +turcaro.ru +turcasinosofa.ru +turekdesigns.com +turekskursiya.ru +turenbox.ru +turf.exchange +turfaq.ru +turfoptimization.com +turfoptimizer.com +turihom.host +turihom.space +turismnews.ru +turismoemcanelars.com +turismohuaraz.com +turist-tur.ru +turistiobro.ru +turistogid.ru +turistoinfo.ru +turizm-okey.ru +turka71.com +turkazkjdfjj52855.ml +turkazkjdfjj52855.tk +turkbet.live +turkbet100.com +turkbet27.com +turkbet3.com +turkbet31.com +turkbet34.com +turkbet35.com +turkbet41.com +turkbet46.com +turkbet5.com +turkbet56.com +turkbet58.com +turkbet60.com +turkbet62.com +turkbet63.com +turkbet66.com +turkbet67.com +turkbet72.com +turkbet73.com +turkbet76.com +turkbet77.com +turkbet79.com +turkbet80.com +turkbet81.com +turkbet83.com +turkbet85.com +turkbet88.com +turkbet9.com +turkbet92.com +turkbet95.com +turkbet97.com +turkdizifilm.xyz +turkey-nedv.ru +turkeyalerts.com +turkeyalerts.org +turkeybeachweddings.com +turkeybeautyclinic.net +turkeymedical.tours +turkeyvillasales.com +turkint.ru +turkish-kebab-house-takeaway.com +turkishairlinesopen.golf +turkishcafefurniture.com +turkishlobbyfurniture.com +turkishrealestates.net +turkiyegercekleri.xyz +turkko.xyz +turknet.com +turkserial.club +turksey.net +turksey.org +turkuazballooning.com +turkuazkebab.com +turkudiyari-sesli.online +turkudiyari-sesli.xyz +turleyprandpublicaffairs.com +turly.site +turma6.com +turmadocurioso.com +turn.capital +turnabaikal.ru +turnabet37.com +turnabet40.com +turnabet44.com +turnabet45.com +turnabet51.com +turnback-time.com +turnbackthebattle.com +turnberrypl.com +turnerdigitalsales.com +turnerlegalpllc.com +turningpoint.store +turnkeyliberty.com +turnkeyprivacy.com +turnpokerid.com +turnpokeronline.com +turntenpe.cf +turntenpe.ga +turntenpe.gq +turntenpe.ml +turnthepagepublishing.com +turoid.com +turrifi.cf +turrifi.ga +turrifi.ml +turrifi.tk +turs.pro +turtle01.info +turturizm.ru +turual.com +turvichurch.cf +turvichurch.ga +turvichurch.ml +turvichurch.tk +tushi.icu +tusitiowebgratis.com.ar +tusitowebserver.com +tusslemyax.space +tust.org +tustoredigital.es +tuswatchslic.cf +tuswatchslic.ga +tuswatchslic.gq +tuswatchslic.ml +tuswatchslic.tk +tut-turist.ru +tut-zaycev.net +tutadocs.com +tutadocs.net +tutadocs.site +tutadox.net +tutadox.online +tutadox.site +tutadox.store +tutadox.tech +tutckc.site +tutela-adultos.info +tuthit.com +tutis.me +tutlekalku.xyz +tutorcolumbus.info +tutordocs.net +tutordocs.site +tutordox.net +tutoringhotline.com +tutrazdeldobra.xyz +tutsimer.space +tutsport.ru +tutushop.com +tutusweetshop.com +tutye.com +tuu7jy.com +tuubz.com +tuugo.com +tuulu-altai.ru +tuvanthietkexaydung.com +tuvepi.xyz +tuvimoingay.us +tuvpg.live +tuvsu-fmf.ru +tuxreportsnews.com +tuyen889.ml +tuyensinhonline.info +tuyingan.co +tuyistand.site +tuymades.ga +tuymades.ml +tuymades.tk +tuyuejiaqi.com +tuyulmokad.ml +tuyulmokad.tk +tuzlaforklift.com +tuzplay33.com +tuzuwa.info +tv-cinema.pro +tv-informacje.site +tv-licensing.xyz +tv-ooh.com +tv-real.com +tv123movies.info +tv1ay348.space +tv24-info.website +tv552.com +tv7bcx8o6wh7pyp.xyz +tvacx0.us +tvaplet.com +tvasiadrama.com +tvbank.website +tvbong.fun +tvbong8.fun +tvbong9.fun +tvbrcjnj.shop +tvcablesshop.life +tvcchurch.biz +tvccsport.com +tvccsports.org +tvchd.com +tvcs.co +tvdj9x.info +tvelef2khzg79i.cf +tvelef2khzg79i.ga +tvelef2khzg79i.gq +tvelef2khzg79i.ml +tvelef2khzg79i.tk +tver-dveri.ru +tverpost.ru +tverpravo.ru +tverya.com +tvetxs.site +tvexpedite.com +tvforanyone.life +tvg-watch-rasshia.ru +tvhdnova.site +tvhom.info +tvi72tuyxvd.cf +tvi72tuyxvd.ga +tvi72tuyxvd.gq +tvi72tuyxvd.ml +tvi72tuyxvd.tk +tvinfo.site +tviwi.com +tvkey.site +tvlagu.com +tvlg.com +tvlicensing-co-uk.xyz +tvmarin.net +tvmin7.club +tvmoe.com +tvmovies.biz +tvnamu.fun +tvnamu8.fun +tvnawa9.fun +tvnxygrn.site +tvoe-videohd.ru +tvoi-mishka.ru +tvoiavigoda.ru +tvoitovarysoskidkoy.ru +tvonlayn2.ru +tvopros.space +tvoyastihiya4.icu +tvoyastihiya5.icu +tvoyastihiya6.icu +tvoyastihiya7.icu +tvoymanager.ru +tvoymoy.ru +tvoyryukzak.ru +tvoyshoping.ru +tvparatv.site +tvst.de +tvtaxcos.info +tvtech.org +tvtnvn.com +tvtoiptv.com +tvtv1234.xyz +tvv55.ru +tvzion.info +twablocose.icu +twanakta.gq +twanakta.ml +twanakta.tk +twaucmyrovy.xyz +twbikemart.com +twddos.net +twdesign.org +tweakacapun.wwwhost.biz +tweakcity.city +tweakly.net +tweaks.org +twearch.com +tweatme.com +tweedvalleyicecream.com +tweeflood.com +tweetuphiq.cf +tweetuphiq.gq +tweetuphiq.ml +twejhyqio.tk +tweles.site +twelveaward.com +twelvee.us +twenties.nu +twentybet5.ru +twentylanding.ru +twentysevenstore.me +tweta.site +twevvm.us +twfsale.top +twgs.pro +twichzhuce.com +twiclorddhun.ga +twiclorddhun.gq +twiclorddhun.ml +twiclorddhun.tk +twif.ru +twiink.com +twilightsterror.com +twinducedz.com +twinecbmq.space +twinh.info +twinklegalaxy.com +twinmail.de +twinotter-parts.com +twinotterpma.com +twinpoolsandspa.com +twinsbrand.com +twinslabs.com +twinzero.net +twirlygirl.info +twistbigo.site +twistcasino.ru +twistedpaiwd.com +twistedtortillafreshmexgrill.com +twistersbedandbreakfast.com +twisty-petz-optom.ru +twit-mail.com +twitchieleaks.com +twitchmasters.com +twitchname.ru +twitchsoftdomen.xyz +twitguide.com +twitlebrities.com +twitlebrity.com +twitt3r.cf +twitt3r.ga +twitt3r.gq +twitt3r.ml +twitt3r.tk +twitter-accs.ru +twitter-sign-in.cf +twitteraddersoft.com +twitterfact.com +twitterfree.com +twitterparty.ru +twitterplus.org +twitterreviewer.tk +twixoutweb.cf +twixoutweb.ga +twixoutweb.gq +twixoutweb.ml +twixoutweb.tk +twizadmu.cf +twizadmu.ga +twizadmu.gq +twkj.xyz +twkly.ml +twlcd4i6jad6.cf +twlcd4i6jad6.ga +twlcd4i6jad6.gq +twlcd4i6jad6.ml +twlcd4i6jad6.tk +twlemt.us +twlnw.info +twmail.tk +twn3d.site +two-bet.xyz +two-better-than.one +two-harbors.net +two-shoes.ru +two-tiered.host +two.emailfake.ml +two.fackme.gq +two.haddo.eu +two0aks.com +twobeebs.com +twocolor.ru +twocowmail.net +twodrops.org +twofachpen.cf +twofachpen.ga +twofachpen.gq +twofachpen.ml +twofachpen.tk +twohourtop.com +twoindians.com +twojalawenda.pl +twojapozyczka.online +twojbiznesowydziennik.online +twoje-nowe-biuro.pl +twojekonto.pl +twojepromocje.online +twolyn.com +twooceanstours.com +tworcyatrakcji.pl +tworcyimprez.pl +tworiversbaptist.org +tworkarbou.cf +tworkarbou.ga +tworkarbou.ml +tworzenieserwisow.com +twosale.ru +twoweirdtricks.com +twpride.com +twpsw.info +twseel.com +twsexy66.info +twsurgeon.com +twt33.xyz +twtscript.com +twvvvfrgjxplpv5.xyz +twxex.live +twymverpworl.cf +twymverpworl.ga +twymverpworl.gq +twymverpworl.tk +twzhhq.com +twzhhq.online +tx4000.com +tx5551.com +tx6ufp.info +txairpods.com +txantxiku.tk +txbnyp.us +txd58.space +txedu.org +txhalfpricelistings.com +txhlkbhbs.shop +txii.com +txlq3i.us +txmovingquotes.com +txpwg.usa.cc +txrnjobs.com +txrsvu8dhhh2znppii.cf +txrsvu8dhhh2znppii.ga +txrsvu8dhhh2znppii.gq +txrsvu8dhhh2znppii.ml +txrsvu8dhhh2znppii.tk +txsgw.info +txsignal.com +txt.flu.cc +txt10xqa7atssvbrf.cf +txt10xqa7atssvbrf.ga +txt10xqa7atssvbrf.gq +txt10xqa7atssvbrf.ml +txt10xqa7atssvbrf.tk +txt7e99.com +txta.site +txtadvertise.com +txtb.site +txtc.site +txtd.site +txtf.site +txtfinder.xyz +txtg.site +txth.site +txti.site +txtn.site +txtr.site +txts.site +txtx.site +txtz.site +txunilever.com +txv4lq0i8.pl +txwebsiteusa.com +txxiomi.com +txyl168.com +ty.ceed.se +ty.squirtsnap.com +ty068.space +ty069.space +ty072.space +ty073.space +ty075.space +ty081.space +ty082.space +ty11139.xyz +ty119.xyz +ty12umail.com +ty3322.com +ty355355.com +ty3cgx.us +ty7799.com +ty8800.com +ty888a.com +tyagbookd.site +tyagflyd.site +tybreho.cf +tybreho.ga +tyc.fan +tyc.gp +tyc.mw +tyc.sk +tyc1158.com +tyc1164.com +tyc33a.com +tyc33b.com +tyc33c.com +tyc33d.com +tyc33f.com +tyc33g.com +tyc33i.com +tyc33k.com +tyc33m.com +tyc33p.com +tyc33q.com +tyc33s.com +tyc33u.com +tyc33v.com +tyc33x.com +tyc33y.com +tyc33z.com +tyc66b.com +tyc66d.com +tyc66e.com +tyc66f.com +tyc66g.com +tyc66h.com +tyc66m.com +tyc66n.com +tyc66o.com +tyc66r.com +tyc66t.com +tyc66u.com +tyc66w.com +tyc66x.com +tyc66z.com +tyc77a.com +tyc77c.com +tyc77d.com +tyc77e.com +tyc77h.com +tyc77k.com +tyc77l.com +tyc77p.com +tyc77r.com +tyc77s.com +tyc77u.com +tyc77v.com +tyc77w.com +tyc77x.com +tycacmo9best.website +tycai.net +tychangfang.com +tychoservice.online +tychoservice.shop +tyclonecuongsach.site +tycoma.cf +tycoma.ga +tycoma.gq +tycoma.ml +tycoma.tk +tyconme.ga +tyconme.gq +tyconme.ml +tyconme.tk +tydaab.ru +tydakyda.ru +tydanu.info +tydgr.com +tydnao.com +tydy.site +tyeo.ga +tyeyy.com +tygamusic.net +tygfh.com +tyhe.ro +tyhlw.com +tyhrf.jino.ru +tyjiy.live +tykyus.com +tyldd.com +tylerellis.org +tylerellisllc.com +tylerexpress.com +tylermoberly.com +tylerseymour.org +tylko-dobre-lokaty.com.pl +tylorstewart.com +tymail.top +tymber.online +tymeiron-pro.ru +tymicep.cf +tymicep.gq +tymicep.tk +tymkvheyo.shop +tymona.site +tympe.net +tynick.win +tynkowanie-cktynki.pl +tynop.xyz +tyofflof.shop +tyoftyoi.shop +tyopitchsy.cf +tyopitchsy.gq +tyopitchsy.ml +tyopitchsy.tk +typecho.asia +typechocheck.xyz +typepoker.com +typery.com +typescriptis.fun +typesoforchids.info +typesofrehab.com +typestring.com +typity.net +typlrqbhn.pl +typo3check.xyz +typografille.com +tyrauber.org +tyristo-zen.ru +tyristo.ru +tyrmas.ru +tyroepo.site +tyrosine.shop +tyrosine.store +tyskali.org +tysonsdivorce.party +tysu.site +tytfhcghb.ga +tyubnxa.xyz +tyuioiuyt.site +tyuitu.com +tyuobq.space +tyurist.ru +tyuty.net +tyuweaw.xyz +tyweetflowy.site +tywmp.com +tyxinc.com +tyxtzioco.shop +tyycmbw8.xyz +tyyel.live +tz-zina.ru +tz.tz +tz3vk1.us +tz4qhs.com +tzarmail.info +tzawke.us +tzc14.space +tzfww.com +tzkmp.us +tzlxlwp003.site +tzlxlwp005.site +tzlxlwp006.site +tzlxlwp007.site +tzlxlwp008.site +tzlxlwp009.site +tznlulmxe.shop +tznohv.shop +tzqmirpz0ifacncarg.cf +tzqmirpz0ifacncarg.gq +tzqmirpz0ifacncarg.tk +tzqnw.info +tzrtrapzaekdcgxuq.cf +tzrtrapzaekdcgxuq.ga +tzrtrapzaekdcgxuq.gq +tzrtrapzaekdcgxuq.ml +tzrtrapzaekdcgxuq.tk +tzstudio.ru +tzt22.com +tzxec.com +tzzcw.info +u-aroma.info +u-cco.org +u-torrent.cf +u-torrent.ga +u-torrent.gq +u-wills-uc.pw +u.civvic.ro +u.dmarc.ro +u.labo.ch +u.qvap.ru +u03.gmailmirror.com +u0nuw4hnawyec6t.xyz +u0qbtllqtk.cf +u0qbtllqtk.ga +u0qbtllqtk.gq +u0qbtllqtk.ml +u0qbtllqtk.tk +u1.myftp.name +u14269.gq +u14269.ml +u14w.buzz +u1775.com +u1cykv.us +u1gdt8ixy86u.cf +u1gdt8ixy86u.ga +u1gdt8ixy86u.gq +u1gdt8ixy86u.ml +u1gdt8ixy86u.tk +u1liwc.us +u1pvwg.us +u1z.ru +u2.net.pl +u2b.comx.cf +u2casino.net +u2casino.org +u30cir.info +u336.com +u3kvj.us +u3t9cb3j9zzmfqnea.cf +u3t9cb3j9zzmfqnea.ga +u3t9cb3j9zzmfqnea.gq +u3t9cb3j9zzmfqnea.ml +u3t9cb3j9zzmfqnea.tk +u423jf.us +u4iiaqinc365grsh.cf +u4iiaqinc365grsh.ga +u4iiaqinc365grsh.gq +u4iiaqinc365grsh.ml +u4iiaqinc365grsh.tk +u4jhrqebfodr.cf +u4jhrqebfodr.ml +u4jhrqebfodr.tk +u4nzbr5q3.com +u4ves.us +u59wl.space +u5clwe.us +u5i2je.us +u5tbrlz3wq.cf +u5tbrlz3wq.ga +u5tbrlz3wq.gq +u5tbrlz3wq.ml +u5tbrlz3wq.tk +u6lvty2.com +u6spng.info +u6wv97.info +u6yksh-mail.xyz +u7665.com +u7l9s6.com +u7vt7vt.cf +u7vt7vt.ga +u7vt7vt.gq +u7vt7vt.ml +u7vt7vt.tk +u86d8.site +u8mpjsx0xz5whz.cf +u8mpjsx0xz5whz.ga +u8mpjsx0xz5whz.gq +u8mpjsx0xz5whz.ml +u8mpjsx0xz5whz.tk +u9gtz.us +u9nlyx.us +u9y7m8zvi3jhypb.xyz +ua0ole.info +ua10whyx559huni.xyz +ua3jx7n0w3.com +ua6htwfwqu6wj.cf +ua6htwfwqu6wj.ga +ua6htwfwqu6wj.gq +ua6htwfwqu6wj.ml +ua6htwfwqu6wj.tk +uabrandsinternational.com +uabvhy.com +uacognacfoot.com +uacro.com +uacrossad.com +uae-eko-store.com +uaegiftat.com +uaemail.com +uafebox.com +uafsomlp.com +uafusjnwa.pl +uagtl.us +uagyp.com +uajgqhgug.pl +ualmail.com +uamail.com +uamtlrlr.shop +uannfamd.ru +uapproves.com +uarara5ryura46.ga +uas-certification.com +uasregistry.net +uat6m3.pl +uathg.live +uatop.in +uautfgdu35e71m.cf +uautfgdu35e71m.ga +uautfgdu35e71m.gq +uautfgdu35e71m.ml +uautfgdu35e71m.tk +uautostabilbetsnup.xyz +uav3pl.com +uavpad.net +uavplans.ru +uavpowerstation.com +uawlocal94.net +uawycw.ml +uaxary.tokyo +ub288.com +ub5kat.us +ub858.com +ubamail.com +ubars.ru +ubavxxbd.shop +ubcategories.com +ubcpk0.com +ubdeexu2ozqnoykoqn8.ml +ubdeexu2ozqnoykoqn8.tk +uber-mail.com +uber333.com +uber69route.com +uberdriver-taxi.ru +ubergamers.net +uberketing.com +ubermail.info +ubermail39.info +ubermember.com +uberone.info +ubersetzer.nyc +ubfre2956mails.com +ubicloud.com +ubiqi.net +ubismail.net +ubitherm.ru +ubl-astanalytics.com +ublast-analytics.com +ublastanalytic-s.com +ublastanalytics.com +ublomail.com +ublooper.com +ubm.md +ubmail.com +ubnqpm.ml +ubreakfix.net +ubssvlkv.shop +ubt-uni.info +ubumail.com +ubuntu-users.info +ubuntu.dns-cloud.net +ubuntu.dnsabr.com +ubuntu.org +ubuntumaster.ru +ubwerrr.com +ubwerrrd.com +ubyopa.us +ubziemail.info +uc-dev.xyz +uc132.com +ucakfiyat.com +ucalgaryujgnlh.net +ucandobest.pw +ucansuc.pw +ucarplastikkimya.xyz +ucavlq9q3ov.cf +ucavlq9q3ov.ga +ucavlq9q3ov.gq +ucavlq9q3ov.ml +ucavlq9q3ov.tk +ucche.us +uccstudenthousing.com +uccuyosanjuan.com +ucdn.ooo +ucemail.com +ucfcn.net +ucfz1d.us +ucgbc.org +uchasim.shop +uchastiesro.xyz +uchiyazik.ru +ucho.top +ucimail.com +ucir.org +ucitelka.info +uclacbam.com +uclinics.com +ucmamail.com +ucnezavisimost.com +ucnp.info +ucombinator.com +ucombinator.net +ucorean.com +ucourse.club +ucq9vbhc9mhvp3bmge6.cf +ucq9vbhc9mhvp3bmge6.ga +ucq9vbhc9mhvp3bmge6.gq +ucq9vbhc9mhvp3bmge6.ml +ucr6pb.site +ucroyal09.com +ucsoft.biz +uctqoj.us +uctwh.us +ucupdong.ml +ucuzlukpazarim.xyz +ucuzteyp.xyz +ucuzucakbiletin.online +ucvqr.com +ucw8rp2fnq6raxxm.cf +ucw8rp2fnq6raxxm.ga +ucw8rp2fnq6raxxm.gq +ucw8rp2fnq6raxxm.ml +ucw8rp2fnq6raxxm.tk +ucylu.com +ud0.net +ud0hzn.best +udachniy-den2020.site +udacityy.com +udaepyo11.net +udaepyo13.net +udasity.com +udbaccount.com +udcuf4ijm6tpbnv.xyz +udec.edu +udemail.com +udemypack.com +uditkarode.shop +udlmiuojt.shop +udmail.com +udnr.net +udns.cf +udns.gq +udns.tk +udohka-avtomat1990.ru +udoiswell.pw +udozmail.com +udrotu.site +udrpattorney.net +udruzenjejez.info +udsc.edu +udubnation.com +udumu.com +uduomail.com +udyrc.site +ue90x.com +ued077.com +uedbet222.com +uedbet333.net +uedhot855.com +uefabucharest.com +uefhuvmujq.xyz +uefia.com +uefpr.us +uegumail.com +ueiaco100.info +ueig2phoenix.info +ueimultimeter.info +uejumk4yslktvhi.xyz +uemail99.com +uemfpu.us +uemliiawz.shop +uenct2012.info +ueno-kojun.com +ueqj91t0.online +ueqj91t0.space +ueqj91t01t0.online +ueqj91t01t0.space +ueqj91t01t01t0.space +ueqj91t01t0924.online +ueqj91t01t0924.space +ueqj91t042i90j.online +ueqj91t042i90j.space +ueqj91t0924.space +ueqj91t09241t0.online +ueqj91t09241t0.space +ueqj91t0924924.online +ueqj91t0924924.space +ueqj91t0h33u19.online +ueqj91t0h33u19.space +ueqj91t0vhh13h.online +ueqj91t0vhh13h.space +ueqj942i90j.online +ueqj942i90j.space +ueqj942i90j1t0.online +ueqj942i90j1t0.space +ueqj942i90j924.online +ueqj942i90j924.space +ueqj9924.online +ueqj9924.space +ueqj99241t0.online +ueqj99241t0.space +ueqj99241t01t0.online +ueqj99241t01t0.space +ueqj99241t0924.online +ueqj99241t0924.space +ueqj992442i90j.online +ueqj992442i90j.space +ueqj9924924.online +ueqj9924924.space +ueqj99249241t0.online +ueqj99249241t0.space +ueqj9924924924.online +ueqj9924924924.space +ueqj9924h33u19.online +ueqj9924h33u19.space +ueqj9924vhh13h.space +ueqj9bn9fbwv.online +ueqj9bn9fbwv.space +ueqj9h33u19.online +ueqj9h33u19.space +ueqj9h33u191t0.online +ueqj9h33u19924.online +ueqj9h33u19924.space +ueqj9jrbh2h4.online +ueqj9vhh13h.online +ueqj9vhh13h.space +ueqj9vhh13h1t0.online +ueqj9vhh13h1t0.space +ueqj9vhh13h924.online +ueqj9vhh13h924.space +ueses.club +uestabbetting.xyz +uetimer.com +uew0i.us +uewryweqiwuea.tk +uezzhaem.ru +uf29.com +uf789.com +ufa-decor.ru +ufa-moscow.ru +ufa-nedv.ru +ufa090.info +ufa090s.com +ufa8989.info +ufa9898.info +ufaamigo.site +ufabet789.asia +ufabet9.com +ufabetapi.com +ufabystore.com +ufacturing.com +ufaremax.ru +ufascr168.com +ufatoday88.net +ufbpq9hinepu9k2fnd.cf +ufbpq9hinepu9k2fnd.ga +ufbpq9hinepu9k2fnd.gq +ufbpq9hinepu9k2fnd.ml +ufbpq9hinepu9k2fnd.tk +ufc239ppv.com +ufcboxingfight.info +ufcticket.ru +uffdacap.com +uffdacapital.com +uffdo.com +ufficialeairmax.com +uffm.de +ufgel.com +ufgqgrid.xyz +ufhuheduf.com +ufi9tsftk3a.pl +ufibmail.com +ufiwmslou.shop +ufk3rtwyb.pl +ufkakaya.ru +ufkhhsov.shop +ufman.site +ufmncvmrz.pl +ufoairs.info +ufoeq.live +ufrbox.net +ufrdtrdv.shop +uftmjcsuh.shop +uftploqft.tk +ufukbagci.icu +ufw58.com +ufxcnboh4hvtu4.cf +ufxcnboh4hvtu4.ga +ufxcnboh4hvtu4.gq +ufxcnboh4hvtu4.ml +ufxcnboh4hvtu4.tk +ufyfoj.icu +ug02.icu +ug080593nubrm09.xyz +ugandasports.online +ugandi.com +uganondee.host +ugbisp.gq +ugbwy.com +ugdr7k.us +ugf1xh8.info.pl +ugf9bd.host +ugg-495.ru +ugg-bootsoutletclearance.info +uggboos-online.com +uggbootoutletonline.com +uggboots-uksale.info +uggboots.com +uggbootscom.com +uggbootsever.com +uggbootsins.com +uggbootsonlinecheap.com +uggbootssale-discount.us +uggbootssale.com +uggbootssale2011.info +uggbootssales.com +uggbuystorejp.com +uggi-chelyabinsk.ru +uggi-kurgan.ru +uggi-kzn.ru +uggi-magadan.ru +uggi-nvartovsk.ru +uggi-perm.ru +uggi-rostov.ru +uggi-simferopol.ru +uggi-ufa.ru +uggi-volgograd.ru +uggibelgorod.ru +uggibryansk.ru +uggiizhevsk.ru +uggikaluga.ru +uggikirov.ru +uggikursk.ru +uggilipeck.ru +uggipenza.ru +uggisaratov.ru +uggitambov.ru +uggitomsk.ru +uggitver.ru +uggityumen.ru +uggiulyanovsk.ru +uggjimmystores.com +uggkids.online +uggout.com +uggpaschermz.com +uggs-canadaonline.info +uggs-outletstores.info +uggs.co.uk +uggsale-uk.info +uggsart.com +uggsguide.org +uggshopsite.org +uggsiteus.com +uggsnowbootsoline.com +uggsoutlet-online.info +uggsrock.com +ughsalecc.com +ugimail.com +ugimail.net +ugipmail.com +ugjfzx.info +ugkal.site +ugkugbkh5-privjpjp.fun +ugkugbkh5-privjpjp.host +ugkugbkh5-privjpjp.site +ugkugbkh5-privjpjp.space +ugkugbkh5-privjpjp.website +ugkugbkh5-privjpjp.xyz +uglewmail.pw +ugmail.com +ugogi.com +ugolovnpravo.xyz +ugonnamoveit.info +ugoxxf.tokyo +ugpag.cd +ugpna.com +ugrafix.com +ugreatejob.pw +ugredig.website +uguisudanideli.net +ugurlukilif.net +ugurlupromosyon.com +ugusre.tokyo +uguuchantele.com +uh7w5t.us +uha.kr +uhbqsboyg.shop +uhcbook.tk +uhds.tk +uhefmail.com +uhewl684.monster +uhfnk1.site +uhhu.ru +uhjyzglhrs.pl +uhmail.com +uhmbrehluh.com +uho1nhelxmk.ga +uho1nhelxmk.gq +uho1nhelxmk.ml +uho1nhelxmk.tk +uhodmsk.ru +uhoxiy.us +uhrx.site +uhsbriarp.shop +uhtgq.com +uhtso.com +uhyea.com +ui-feed.com +uiaep1.site +uibbahwsx.xyz +uibc.club +uicegroups.com +uidckjut.shop +uigfruk8.com +uighugugui.com +uikd.com +uilfemcjsn.pl +uimove.xyz +uinta.tech +uipvu.site +uiqaourlu.pl +uish6.info +uiu.us +uiy7ob.info +uj0sx.info +ujafmail.com +ujames3nh.com +ujapbk1aiau4qwfu.cf +ujapbk1aiau4qwfu.ga +ujapbk1aiau4qwfu.gq +ujapbk1aiau4qwfu.ml +ujapbk1aiau4qwfu.tk +ujaw.net +ujbsale.top +ujcss.live +ujdah.us +ujgmn.us +ujicoba10.xyz +ujicoba12.xyz +ujicoba14.xyz +ujicoba8.xyz +ujicoba9.xyz +ujijima1129.gq +ujkuwkni.shop +ujl1gf.us +ujm1ck.us +ujmail.com +ujrmail.com +ujtdt.live +ujuzesyz.swiebodzin.pl +ujxspots.com +uk-beauty.co.uk +uk-draw.com +uk-nedv.ru +uk-tv24news.site +uk-tvshow.com +uk-unitedkingdom.cf +uk-unitedkingdom.ga +uk-unitedkingdom.gq +uk-unitedkingdom.ml +uk-unitedkingdom.tk +uk.flu.cc +uk.igg.biz +uk.nut.cc +uk.org +uk.slowdeer.com +uk.to +uk90es.us +ukachettrshop.online +ukairmax4cheap.com +ukairmaxshoe.com +ukboer.cc +ukbootsugg.co.uk +ukcompanies.org +ukcraps.com +ukddamip.co +ukdhv.live +ukdressessale.com +ukeg.site +ukelsd.us +ukescortdirectories.com +ukeveningdresses.com +ukexample.com +ukflooringdirect.com +ukfreeisp.co.uk +ukgaw.com +ukgaw.org +ukgeq.us +ukgfw.net +ukhollisterer.co.uk +ukhollisteroutlet4s.co.uk +ukhollisteroutlet4u.co.uk +ukhollisteroutletlondon.co.uk +ukhost-uk.co.uk +ukilo3.site +ukimail.com +ukip.net +ukipbroadband.com +ukiperemastetesendirishop.com +ukjton.cf +ukjton.ga +ukjton.gq +ukjton.ml +ukjton.tk +ukladkaasfalt.ru +ukld.ru +ukleadingb2b.info +uklonnalog.xyz +uklouboutinuk.com +uklouboutinuksale.com +uklouisvuittonoutletzt.co.uk +ukmail.com +ukmask-force.com +ukmaskforce.com +ukmuvkddo.pl +ukniketrainerssale.com +uknowmyname.info +uko.kr +uko6nx.us +ukolhgfr.mns.uk +ukonline.com +ukoutletkarenmillendresses.org +ukoxqt.us +ukpayday24.com +ukpensionsadvisor.tk +ukpostmail.com +ukr-nedv.ru +ukr-po-v.co.cc +ukrainaharnagay.shn-host.ru +ukraine-gox.ru +ukraine-onli.com +ukraingate.news +ukrainianidea.org +ukrainigate.news +ukrgov.com +ukrolika.ru +ukrtovar.ru +uks5.com +uksmm.biz +uksnapback.com +uksnapbackcap.com +uksnapbackcaps.com +uksnapbackhat.com +uksnapbacks.com +uksurveyors.org +ukswingersmeet.com +uktaxrefund.info +uktf3s.online +uktrainers4sale.com +uktrainersale.com +uktrainerssale.com +ukttht.xyz +ukvisa.space +ukxgvjxxx.shop +ukyfemfwc.pl +ukyjgs.us +ukymail.com +ukzjrnmfguxm7rp.xyz +ul888.net +ulahadigung.cf +ulahadigung.ga +ulahadigung.gq +ulahadigung.ml +ulahadigung.tk +ulahadigungproject.cf +ulahadigungproject.ga +ulahadigungproject.gq +ulahadigungproject.ml +ulahadigungproject.tk +ulaptopsn.com +ularolelay.cf +ularonline.net +ularonline.org +ulascimselam.tk +ulck4w.us +ulconto.cf +ulconto.ga +ulconto.ml +ulconto.tk +ulcred.com +ulemail.com +uletqq.com +uleviaku.xyz +ulgran-stav.ru +ulidgid.cf +ulidgid.ga +ulidgid.ml +ulidgid.tk +ulipox.xyz +ulitimsuda.xyz +ullife.info +ullyyd.icu +ulmich.edu +ulolan.host +ulotrichous.site +ulovdu.cf +ulovdu.ga +ulovdu.gq +ulovdu.ml +ulovdu.tk +ulovomania.ru +uloxh.icu +ulpxot.us +ulqoirraschifer.cf +ulqoirraschifer.ga +ulqoirraschifer.gq +ulqoirraschifer.ml +ulqoirraschifer.tk +ulsters.best +ultamaytumpools.net +ultdeliquid.com +ultdesign.ru +ulteja.cf +ulteja.ga +ulteja.gq +ulteja.ml +ulteja.tk +ultiemestudent.online +ultijar.cf +ultijar.ga +ultijar.gq +ultijar.ml +ultijar.tk +ultimahoramadrid.com +ultimateaussieadventure.com +ultimatebusinessservices.com +ultimatedronestore.net +ultimateheartvisions.com +ultimatejewelrydesigns.com +ultimatelawmarketing.com +ultimatemediaconcepts.net +ultimatesystems.xyz +ultimateteamsite.com +ultimatetoys.club +ultimi-prodotti.fun +ultimotech45.xyz +ultiselect-malelifestyletoday.com +ultiselect-malenow.com +ultra-craft.ru +ultra-nyc.com +ultra.fyi +ultrabet128.com +ultrabet144.com +ultrabet184.com +ultrabet189.com +ultrabet193.com +ultrabet200.com +ultrabloodsugar.com +ultrada.ru +ultradrugbuy.com +ultrafan.site +ultrafitnessguide.com +ultraimperialism.best +ultraleverage.com +ultraliffe.space +ultralink.store +ultramovie.biz +ultramoviestreams.com +ultraocr.com +ultraperformans.online +ultraschallanlagen.de +ultraslimdvr.com +ultrasoundtherapies.com +ultrasoundtreatments.com +ultraste.ml +ultrawebb.com +ultrawit.online +ultraxmail.pw +ultrazeelwatchluxnow.com +ultronbet.com +ultrtime.org.ua +uluadam.com +ulucky.club +ulucky.net +ulumdocab.xyz +ulunpasadgo.ru +ulusalkalipcilikzirvesi.org +ulusalmedya.net +ulusuhaliyikama.com +ulxag.us +ulyufyjwwrm4sni.xyz +ulzlemwzyx.pl +ulzlfh.us +um0vwn.us +um2dq7.us +um85.com +umail.net +umail2.com +umail365.com +umail4less.bid +umail4less.men +umailbox.net +umailz.com +umakanth.online +umanit.cloud +umanit.dev +umanit.net +umanit.online +umanit.space +umanit.store +umanit.us +umauma.cd +umbrellainvesting.xyz +umbrellascolors.info +umbrila.com +umc67.space +umcygsyolytu.site +ume-sk.com +umedis.org +umehlunua.pl +umessage.cf +umgewichtzuverlieren.com +umgqpw.info +umgwali.org +umhyri.site +umibenefits.com +umica.com +umicon-crimea.ru +umin12.com +uminu.com +umka-mgn.ru +umlesin.ru +umm77.com +ummail.com +ummoh.com +umnenkie-deti.ru +umniy-zavod.ru +umode.net +umprotat.cf +umprotat.ga +umprotat.gq +umprotat.ml +umprotat.tk +umraniyeanadolulisesi.xyz +umrika.com +umrn.ga +umrn.gq +umrn.ml +umrohdulu.com +umscoltd.com +umss.de +umtmusic.com +umuey.com +umumwqrb9.pl +umy.kr +umyld5.us +umynv.us +un99ulq.xyz +unabla.cf +unabla.ga +unabla.ml +unaccompaniedminers.com +unadmo.cf +unadmo.gq +unadmo.ml +unadmo.tk +unadornment.best +unakihn.info +unalbaby.biz +unalcas.cf +unalcas.ga +unalcas.gq +unalcas.ml +unalcas.tk +unalstore.xyz +unambiguous.net +unamiradafinanciera.com +unanon.cf +unanon.gq +unanon.tk +unappartalacle.com +unasolaviva.com +unavida.com +unbanq.com +unbedarft.love +unblock.dog +unblockedgamesrun.com +unblockit.buzz +unblockit.club +unblockit.link +unblockproxy.one +unc.app +uncause.org +uncensored.rf.gd +unchained.city +unchanti.cf +unchanti.ga +unchanti.gq +unchanti.ml +unchanti.tk +unclebobscoupons.com +unclecode.stream +unclepetestakeaway.com +unclesamstakeaway.com +unclesamswexford.com +unclest.icu +uncletha.us +uncletr.icu +unclick.ru +uncoma.cf +uncoma.ga +uncoma.gq +uncoma.tk +uncommonsenseunlimited.com +uncond.us +uncoy.live +uncuvend.cf +uncuvend.ga +uncuvend.gq +uncuvend.tk +undeadforum.com +undefinedtreat.xyz +under30finance.com +underangelswing.org +undercases.com +underemphasize323ug.online +underfetwx.space +undergmail.com +underirxtd.site +underlipserv.info +underpoddk.space +undersdotw.space +undersell-info-shop.site +undersell-stock-sale.site +undersky.org.ua +understew.com +undertheradar.site +undeva.net +undfans.com +undiagnosed.net +undime.ru +undme.xyz +undo.it +undochemo.com +undol-kazanskijhram.ru +undoredo.online +undoubtedchanelforsale.com +undressyouressence.com +undroldintho.website +undwelsu.cf +undwelsu.ga +undwelsu.gq +undwelsu.ml +undwelsu.tk +uneccu.ga +uneccu.gq +uneccu.ml +uneccu.tk +unefty.site +unelignepourlavie.com +unelos.cf +unelos.ml +unelos.tk +unenex.cf +unenex.ga +unenex.gq +unenex.ml +uneppwqi.pl +unesconaturebg.info +unetus.online +uneverse.ru +unevideox.fr +unfao.net +unfibbed.best +unfilmx.fr +unfollowersforinsta.com +unforenppf.space +ungdomar.com +ungenickt-183g5s0.tk +ungenickt-ah3qz6d.tk +ungenickt-ah47am9.tk +ungenickt-freshmen.ml +ungenickt-rubymail.tk +ungeniert.love +unggulpkr.com +unggulpoker.com +ungjuris.site +ungolfclubs.com +unheatedgems.net +unhoused.network +uni-proxies.com +unibahis3.com +unibetplay.asia +unibloom.host +unibooks.site +unicersalcreditsolved.com +unichain.us +unichell.fun +unicity.name +unicity.shop +unicity.tech +unicodeworld.com +unicorn-restaurant.com +unicorngirlrock.com +unicornsforsocialism.com +unicorntoday.com +unicreatures.com +unicredit.tk +unids.com +uniduniv.shop +unif8nthemsmnp.cf +unif8nthemsmnp.ga +unif8nthemsmnp.gq +unif8nthemsmnp.ml +unif8nthemsmnp.tk +unifaction.com +uniform.november.aolmail.top +uniformpapa.wollomail.top +unifyfxu.com +unihash.info +unihash.net +unijnedotacje.info.pl +unikafester.se +unikle.com +unilend.info +unimail.com +unimark.org +union-trade-hit.ru +unioncity.florist +unionsport.net +uniontou.us +uniqmachines.com +uniqo.xyz +unique3d.com +uniquebedroom-au.com +uniquebrand.pl +uniqueqq.info +uniqueseo.pl +uniquesoftwaresolutionsllc.com +uniquesolution.ru +uniqweb.space +unireaurzicenikaput.com +unirom.ga +unirom.gq +unirom.ml +unirom.tk +uniros.ru +uniruniv.shop +unisal.ngo +unisexjewelry.org +unisystem.store +unit7lahaina.com +unitconversiontool.com +unite.cloudns.asia +unitebirth.org +unitedasia.club +unitedasia.marketing +unitedasia.network +unitedasia.online +unitedbullionexchange.com +uniteditcare.com +unitedjiu-jitsu.com +unitedmartialartskaty.com +unitednpeace.org +unitedstatesostrich.com +unitedstatesvdonaldtrump.com +unitedstormadjusters.org +unitmate.com +unitycaus.xyz +unitymail.me +unitymail.pro +unityofgulfbreeze.org +unityofstudents.com +univ21.com +universablockchain.tech +universal388.net +universal388.org +universalassetsportfolio.com +universalcoders.com +universalcreditbuilder.com +universalcreditfile.com +universalcreditlimit.com +universalcreditor.com +universalcreditscores.com +universalfilm.ru +universalkabbalahcommunities.org +universallightkeys.com +universalsecurity.cd +universaltextures.com +universe-rp.su +universenews.site +universidadditella.org +universidadebiblica.net +universityincanada.info +universityla.edu +univestycoty.com +univibrasyon.com +univocal.site +univocalic.xyz +univunid.shop +uniwetten.com +unix.university +unixproject.ru +unjabazaar.com +unjhaapmcbazar.com +unjhabajaar.com +unjouruncercueil.com +unjunkmail.com +unkempocys.space +unkn0wn.ws +unknmail.com +unknown.pizza +unknownscams.com +unlightly.site +unlimit.com +unlimit.email +unlimitedbodies.com +unlimitedfullmoviedownload.tk +unlimitedlinuxhosting.com +unlimitedlinuxresellerhosting.com +unlimitedreviews.com +unlimitedwebhostingindia.com +unlimpokecoins.org +unlockallnetflix.com +unlofty.best +unmadeinchina.net +unmail.com +unmail.ru +unmetered.ltd +unmetered.nu +unmetered.se +unmetv.com +unmoeglich.love +unnarf.icu +unnitv.com +unnuhol.cf +unnuhol.ga +unnuhol.gq +unnuhol.ml +unnuhol.tk +unofyfcu.com +unogoalz.club +unoinku.com +unomail.com +unomail9.com +unopol-bis.pl +unorid.cf +unorid.ga +unorid.ml +unorid.tk +unot.in +unoutta.cf +unoutta.ga +unoutta.gq +unoutta.tk +unpastore.co +unpermwbru.space +unpresumidence.xyz +unpromptedhappiness.com +unquesvsoy.space +unrafo.cf +unrafo.ga +unrafo.gq +unrafo.ml +unrafo.tk +unraveled.us +unrealsoft.tk +unregenerate.best +unrodi.xyz +unsacred.net +unseen.eu +unseen.is +unshift.com +unslack.info +unsoilnwyr.space +unspeakablebeauty.com +unspokendad.com +unstcdskz.shop +unsy3woc.aid.pl +untaggableapp.com +untech.biz +untehal.cf +untehal.gq +untehal.ml +untehal.tk +untertech.com +unthunpanb.cf +unthunpanb.gq +unthunpanb.tk +untilwerefree.com +untleecsio.cf +untleecsio.ga +untleecsio.gq +untleecsio.ml +untouchedsiberia.ru +untract.com +untrustedroot.com +untuk.us +unubvq.us +ununlai.cf +ununlai.ga +ununlai.gq +ununlai.ml +ununlai.tk +unusov.online +unvaledpsychological.net +unvaledpsychological.org +unvaledpsychological.us +unwiki.org +uny.kr +unzabajaar.com +unzabazar.com +uo8fylspuwh9c.cf +uo8fylspuwh9c.ga +uo8fylspuwh9c.gq +uo8fylspuwh9c.ml +uo8fylspuwh9c.tk +uo93a1bg7.pl +uoadoausa.pl +uof-assoc.org +uof196ye8i3v3j8.xyz +uoft.edu.com +uogimail.com +uohqbb.site +uojjhyhih.cf +uojjhyhih.ga +uojjhyhih.gq +uojjhyhih.ml +uola.org +uomhtf.icu +uonyc.org +uotluok.com +uouweoq132.info +uowonb.shop +up2date-nutzer-deutschland-12312422-de-checker.ru +up2date-nutzer-deutschland-12315242-de-checker.ru +up9zow.us +upak-vakuum.ru +upakologiya.ru +upamail.com +upapa.ooo +upatient.com +upb.university +upbrellastore.ru +upclube.com +upcmaill.com +upcomingthings.com +update-today.xyz +update-tpday.xyz +update1c.ru +updateinfodev.net +updates9z.com +updateusermob.xyz +updating.page +updmysoft.icu +upelmail.com +upenflight.com +upentors.ru +upetreal.ru +upf7qtcvyeev.cf +upf7qtcvyeev.ga +upf7qtcvyeev.gq +upf7qtcvyeev.tk +upgcsjy.com +upgo.host +upgrademyconsciousness.com +uphere.net +uphold.financial +upholdfinancial.financial +upholdfinancial.holdings +upholdfinancial.management +upholdfinancial.ventures +upholdpay.com +upholsbyeo.space +uphomail.ga +uphomeideas.info +uphonni.ru +upimage.net +upimail.com +upived.com +upived.online +upizzatakeaway.com +upl0adand1nsta11.com +uplandish.com +uplay-store.ru +upliftnow.com +uplinkdesign.com +uplipht.com +uploadboy.net +uploadnolimit.com +uploads.page +uploadscript.com +uploadshare.ru +uplvbg.com +upmail.com +upmedio.com +upmoe.com +upmovie.shop +upmovies.me +upnutrition.app +upoker.site +uponshoes.org +upozowac.info +upperpit.org +upppc.com +uppror.se +upraink.ru +uprightbroom.biz +uprightbroom.com +uprightbroom.us +uprightbrooms.biz +uprightbrooms.net +uprightbrooms.us +uproarinteractive.com +uprsoft.ru +upsetac.buzz +upsetbrav.icu +upsetbrav.xyz +upsetfo.email +upsetmone.space +upsetstudy.email +upshotpremium.club +upside.blog +upsidedownletters.xyz +upsiderealty.store +upsidetelemanagementinc.biz +upskirt-central.com +upskirtscr.com +upskrcnd.ml +upspecul.cf +upspecul.ga +upspecul.gq +upspecul.tk +upstairsgallery.org +upstate.dev +upstatecadillacdealers.com +upstateverything.com +upterip.cf +upterip.gq +upterip.ml +upterip.tk +uptimebee.com +uptin.net +uptiwin.cf +uptiwin.ga +uptiwin.gq +uptiwin.ml +uptiwin.tk +upto1.shop +uptodate.tech +uptownartsgranburytx.com +uptrendwindsor.com +uptuber.info +upumail.com +upurfiles.com +upvid.club +upvid.website +upvsi.live +upvue.com +upwithme.com +upwwpgjvj.shop +upy.kr +upyou.online +uq333.com +uq8c.us +uq8kpl.us +uqcgga04i1gfbqf.cf +uqcgga04i1gfbqf.ga +uqcgga04i1gfbqf.gq +uqcgga04i1gfbqf.ml +uqcgga04i1gfbqf.tk +uqdxyoij.auto.pl +uqemail.com +uqghq6tvq1p8c56.cf +uqghq6tvq1p8c56.ga +uqghq6tvq1p8c56.gq +uqghq6tvq1p8c56.ml +uqghq6tvq1p8c56.tk +uqmail.com +uqofr.com +uqopmail.com +uqxcmcjdvvvx32.cf +uqxcmcjdvvvx32.ga +uqxcmcjdvvvx32.gq +uqxcmcjdvvvx32.ml +uqxcmcjdvvvx32.tk +uqxgbt.us +uqxgz.com +uqxo.us +urabbow.cf +urabbow.gq +urabbow.tk +uradresnsk.ru +uraldc.ru +uralidze.ru +uralmaxx.ru +uralmer.ru +uralmet-ekb.ru +uralplay.ru +uralschool25.ru +uralsk-airport.ru +uralskie-pelmeni-bilety.ru +uralviayli.host +uran.realty +uranai-soudan.info +urayuliya.ru +urbanban.com +urbanblackpix.space +urbanbreaks.com +urbancampout.icu +urbanchannel.info +urbanchannel.live +urbanchickencoop.com +urbancowboypoetry.com +urbanfamilyfoundation.org +urbani.ph +urbanizacion.biz +urbanized.us +urbanlanguageadventures.com +urbanlegendsvideo.com +urbanloose.com +urbannw.org +urbanoaks.community +urbanoaks.properties +urbanoaks.us +urbanquarter.co +urbanspacepractice.com +urbanstand.com +urbanstudios.online +urbanvelo.ru +urbaza.com +urbsound.com +urcarfresheners.irish +urcemxrmd.pl +urchatz.ga +urdubbc.us +uredemail.com +ureee.us +ureforp.com +uremail.com +uremno.ga +uremno.gq +uremno.ml +urepair.site +urewsao.online +urfadegerkaybi.com +urfaliibo.xyz +urfalimrestaurant.com +urfalimrestaurant.xyz +urfapazari.net +urfavtech.biz +urfey.com +urfunktion.se +urgamebox.com +urgeinnovationlesson.website +urhen.com +urid-answer.ru +urirmail.com +urist-agunova495.ru +url.gen.in +urleur.com +urlina.ru +urlmoe.com +urlre.com +urltc.com +urlux.ru +urlwave.org +urlwiki.com +urmoney.icu +urmosa.ru +uroboros-team.ru +urodzinydlaadzieci.pl +uroetueptriwe.cz.cc +uroid.com +uroki-logopeda.ru +urokitv.ru +urologcenter.ru +uronva.com +urotrin-supershop.ru +urotrin62.ru +urotrinium.ru +urotrinz-supershop.ru +urrala.cf +urrala.ga +urrala.gq +urrala.tk +urs4kd9f2aufma7.xyz +ursdursh.shop +urshursd.shop +ursms.ru +urstar.site +urta.cz +urthmovement.org +urtinu.cf +urtinu.ga +urtinu.gq +urtinu.ml +uruarurqup5ri9s28ki.cf +uruarurqup5ri9s28ki.ga +uruarurqup5ri9s28ki.gq +uruarurqup5ri9s28ki.ml +uruarurqup5ri9s28ki.tk +urugvai-nedv.ru +urules.ru +urulsour.cf +urulsour.ga +urulsour.gq +urulsour.ml +urulsour.tk +urx7.com +urzelni.cf +urzelni.ga +urzelni.gq +urzelni.ml +urzelni.tk +us-bets.com +us-cup.com +us-ranch.com +us-uggboots.com +us.af +us.armymil.com +us.dlink.cf +us.dlink.gq +us.monkeywerks.net +us.tk +us.to +us315.xyz +us3day.com +us7day.com +usa-cc.usa.cc +usa-gov.cf +usa-gov.ga +usa-gov.gq +usa-gov.ml +usa-gov.tk +usa-lasvegas.com +usa-loanmods.biz +usa-mail.cf +usa-mail.ga +usa-mail.gq +usa-mail.ml +usa-nedv.ru +usa-nevada.com +usa-newjersey.com +usa-newyorkcity.com +usa-northcarolina.com +usa-tooday.biz +usa.cc +usa.isgre.at +usa623.gq +usaacrdmail.com +usaagents.com +usaairjordann.com +usabemestarfit.icu +usabestturmeric.net +usabookies.com +usabrains.us +usabrandhover.space +usabs.org +usabusinesslendingcoonline.com +usacasinoo.se +usacentrall.com +usachan.cf +usachan.gq +usachan.ml +usacityfacts.com +usactive.ru +usadaniesstore.com +usadphi.cf +usadphi.ga +usadphi.gq +usadphi.tk +usaf.dmtc.press +usagoodloan.com +usahandbagsonlinestorecoach.com +usahapoker.org +usahavanastore.com +usaindiananewyear.com +usajacketoutletsale.com +usakataturkioo.com +usakataturkioo.xyz +usakca.xyz +usakliuncular.xyz +usako.be +usako.net +usakteknikyapi.xyz +usalanmak.ga +usalanmak.ml +usalanmak.tk +usaliffebody.online +usaliffebody.site +usaliffebody.store +usalol.ru +usalvmalls.com +usamail.cf +usamail.com +usamail.gq +usamail.ml +usaohionewyears.com +usaonline.biz +usaoppo.com +usaotong.com +usapodcasd.com +usapurse.com +usarealme.com +usareplicawatch.com +usariderclothing.com +usartroreser.ru +usasyracuseoffc.com +usatelor.com +usatennesseenewyears.com +usatexasnewyears.com +usatradepro.com +usaultraliffe.host +usaultraliffe.website +usaunldqc.shop +usaveroofficial.com +usavsdonaldtrump.com +usavtrump.com +usawers.online +usawisconsinnewyear.com +usayoman.com +usayummy.com +usbc.be +usbcspot.com +usbdirect.ca +usbeefcompany.com +usbetter20.xyz +usbgadgetsusage.info +usbing.club +usbmicrophone.org.uk +usbvap.com +uscalfgu.biz +uscaves.com +uscbpimmegration.info +uscemrounds.com +uschalap.website +uschroniclenews.com +usclub.club +uscoachoutletstoreonlinezt.com +uscosplay.com +usda-loan.org +usdeal.us +usdebate.com +usdx.org +usdy.org +useaipins.com +useamerica.info +useappfacebook.tk +useblgs.xyz +useblog.xyz +useblogs.xyz +used-cars-uae.com +used-product.fr +usedate.online +usedcarsinpl.eu +usedcarsinqatar.com +usedcarsjacksonms.xyz +usedhospitalbeds.com +usedhospitalbeds.net +usedhospitalbeds.org +usedtoloves.com +useful-page.club +usefultipsforme.com +usefultools.pro +useglmrlds.site +useglz.com +usehealth.club +useithtra.site +usellwebuyfast.com +usemail.xyz +usenergypro.com +usenet.deals +usenet.sale +usenetmail.tk +useplace.ru +user-report.site +user.bottesuggds.com +user.peoplesocialspace.com +user.school +usercoupon.com +userdrivvers.ru +userfus.cf +useriostligg-confirmed.com +useriostligg-meet-backup.com +useriostligg-meet.com +usermobinfonew.top +usermobinfoupdate.com +userology.com +users.idbloc.co +users.totaldrama.net +userseo.ga +userwfargoupdate.com +userwfnewdev.com +usesinfo.com +usf.biz +usfai.xyz +usfeu-nich.ru +usgifter.com +usharingk.com +ushijima1129.cf +ushijima1129.ga +ushijima1129.gq +ushijima1129.ml +ushijima1129.tk +ushondaparts.com +ushortop.site +ushouldknowabout-1.site +ushwy287.com +usiaj.com +usingin.shop +usinsk-detsad22.ru +usiportal.ru +usitv.ga +uslgwcxmk.shop +uslouisvuittondamier.com +uslove.xyz +usloviyabankrot.xyz +uslugi-i-tovary.ru +uslugiseo.warszawa.pl +uslyn.com +usmailstar.com +usmediaweb.net +usn-dlya-ipe.ru +usn.pw +usnacewf.site +usnetads.online +usodellavoce.net +usoiv.com +uspeakw.com +uspermitservices.com +usps5.com +usps9.com +uspyparky.com +usrrs.us +ussat.one +ussolarpump.com +ussv.club +ustabbettsnupp2020.xyz +ustabetsnup.xyz +ustabilbettingsnap.xyz +ustabilbettsnapp.xyz +ustabilitybettingsnapp.xyz +ustayapisoke.xyz +ustins.ru +ustolur131.com +ustreamy.xyz +usurpator.ru +usyu.xyz +usywjsm.xyz +uszrn.us +ut-vacationrentals.com +ut432.com +ut6jlkt9.pl +ut6rtiy1ajr.ga +ut6rtiy1ajr.gq +ut6rtiy1ajr.ml +ut6rtiy1ajr.tk +ut7pf.us +ut990.com +utacloud.com +utahcann.org +utahdispensaryassociation.org +utahmail.com +utahmicrosoft.com +utahrockproducts.com +utangsss.online +utc7xrlttynuhc.cf +utc7xrlttynuhc.ga +utc7xrlttynuhc.gq +utc7xrlttynuhc.ml +utc7xrlttynuhc.tk +utcfxpbva.shop +utclubsxu.com +utcoiproc.cf +utcoiproc.ga +utcoiproc.tk +ute15.space +utechcomp.ru +utelzcpd.shop +utgreto.org +utgunlistings.com +uthalfpricedlistings.com +uthebettsnaps.xyz +uthruthg.shop +uththandi.com +uthwellsnewuser.com +utiket.us +utilitcrgg.space +utilities-online.info +utilitiesshop.futbol +utilitservis.ru +utilized659gg.online +utilqr.com +utilsans.ru +utimatebuilder.com +utimatesports.com +utime.space +utjuji.site +utmail.com +utoi.cu.uk +utoken.fund +utoo.email +utooemail.com +utool.com +utool.us +utopiacosmetic.xyz +utopiangiggly.com +utplexpotrabajos.com +utraisk.xyz +utsav-food.com +utsupma.cf +utsupma.ga +utsupma.gq +utsupma.ml +utsupma.tk +utterloos.us +utterrug.us +utterse.email +utthere.shop +uttmkl.site +uttoymdkyokix6b3.cf +uttoymdkyokix6b3.ga +uttoymdkyokix6b3.gq +uttoymdkyokix6b3.ml +uttoymdkyokix6b3.tk +uttvgar633r.cf +uttvgar633r.ga +uttvgar633r.gq +uttvgar633r.ml +uttvgar633r.tk +utubemp3.net +utwevq886bwc.cf +utwevq886bwc.ga +utwevq886bwc.gq +utwevq886bwc.ml +utwevq886bwc.tk +utxre1.site +utyneypmn.shop +uu.gl +uu1.pl +uu18269.com +uu2.ovh +uu34.space +uu36.space +uu38.space +uu39.space +uu41.space +uu42.space +uu486.com +uu57822.com +uu7wqv.ru +uu9827.com +uudimail.com +uufan.xyz +uugmail.com +uuhhxk.us +uuigjm.shop +uujewellrys.site +uujrh3886ffc.com +uukx.info +uul.pl +uultraashop.space +uuluu.net +uuluu.org +uumail.com +uumjdnff.pl +uunfg.com +uunifonykrakow.pl +uurbeheer.online +uurksjb7guo0.cf +uurksjb7guo0.ga +uurksjb7guo0.gq +uurksjb7guo0.ml +uurksjb7guo0.tk +uuroalaldoadkgk058.cf +uushoes.ru +uuu062.com +uuu813.com +uuups.ru +uuvk.ru +uv7v.com +uv8w.com +uvamail.com +uvdi.net +uvelichenie-grudi-kak.ru +uvelichit-grud.ru +uvezem.su +uvidetsmotret.ru +uvmail.com +uvomail.com +uvoofiwy.pl +uvrz8u52b.xyz +uvsgpctdl.shop +uvsvalue.com +uvvc.info +uvy.kr +uvyuviyopi.cf +uvyuviyopi.ga +uvyuviyopi.gq +uvyuviyopi.ml +uvyuviyopi.tk +uw333.com +uw5t6ds54.com +uw88.info +uw88.online +uw88.org +uwa7tq.info +uwag.org +uwamail.com +uwated.win +uwciw.us +uwdiscount.online +uwebmail.live +uwemail.com +uwentira.ga +uwhouse.com +uwhouse.net +uwillsuc.pw +uwimail.com +uwin90.online +uwington.icu +uwjtid.shop +uwmail.com +uwn5.xyz +uwomail.com +uwonym.ga +uwork4.us +uwtahw.site +uwu.lv +uwuefr.com +uwwmog.com +ux.dob.jp +ux.uk.to +uxcez1.site +uxdes54.com +uxlxpc2df3s.pl +uxmco.live +uxqp2019.com +uxqp2020.com +uxs14gvxcmzu.cf +uxs14gvxcmzu.ga +uxs14gvxcmzu.gq +uxs14gvxcmzu.ml +uxs14gvxcmzu.tk +uxtpht.us +uxxx.fun +uxyvyq.best +uxzicou.pl +uy77.xyz +uydagdmzsc.cf +uydagdmzsc.ga +uydagdmzsc.gq +uydagdmzsc.ml +uydagdmzsc.tk +uyemail.com +uyfs58-mail.xyz +uygunboyaci.com +uyhip.com +uyinnerssa.space +uyinnerssa7.space +uyizeaw8.com +uyjo.com +uymail.com +uyp5qbqidg.cf +uyp5qbqidg.ga +uyp5qbqidg.gq +uyp5qbqidg.ml +uyp5qbqidg.tk +uypcv.club +uyu.kr +uyv2d.us +uywnfoymy.shop +uywxa2.com +uyx3rqgaghtlqe.cf +uyx3rqgaghtlqe.ga +uyx3rqgaghtlqe.gq +uyx3rqgaghtlqe.ml +uyx3rqgaghtlqe.tk +uz6tgwk.com +uzbekbazaar.com +uzbekistan-nedv.ru +uzbet.com +uzgrthjrfr4hdyy.gq +uziblt.us +uzip.site +uzmail.com +uzmancevap.org +uzmanlarteknik.xyz +uzmanolsun.com +uzmanyakala.com +uzn5sw.info +uzo-amsterdam.com +uzrip.com +uzu6ji.info +uzundiz.best +uzxia.cf +uzxia.com +uzxia.ga +uzxia.gq +uzxia.ml +uzxia.tk +uzy8wdijuzm.pl +v-a-v.de +v-bucks.money +v-dosuge.ru +v-kirove.ru +v-kuhne.ru +v-kv.com +v-mail.xyz +v-on-honey.com +v-pizdu.net +v-plus.pro +v-pyti.ru +v-rewards32.info +v-rros.ru +v-science.ru +v-soc.ru +v-twins101.com +v-wiz.com +v-wiz.net +v.jsonp.ro +v.northibm.com +v.polosburberry.com +v00qy9qx4hfmbbqf.cf +v00qy9qx4hfmbbqf.ga +v00qy9qx4hfmbbqf.gq +v00qy9qx4hfmbbqf.ml +v00qy9qx4hfmbbqf.tk +v0domwwkbyzh1vkgz.cf +v0domwwkbyzh1vkgz.ga +v0domwwkbyzh1vkgz.gq +v0domwwkbyzh1vkgz.ml +v0domwwkbyzh1vkgz.tk +v0p1gm.info +v13.com +v17001.com +v1ael70wn6387fb.xyz +v1bob.com +v1vnks.us +v21.me.uk +v250.cf +v250.ga +v250.gq +v250.ml +v250.tk +v27hb4zrfc.cf +v27hb4zrfc.ga +v27hb4zrfc.gq +v27hb4zrfc.ml +v27hb4zrfc.tk +v2fly.xyz +v2oekh.us +v2poker.org +v3bsb9rs4blktoj.cf +v3bsb9rs4blktoj.ga +v3bsb9rs4blktoj.gq +v3bsb9rs4blktoj.ml +v3bsb9rs4blktoj.tk +v3gate.net +v3lrsh.us +v3py.biz +v3vz2c.com +v4gdm4ipndpsk.cf +v4gdm4ipndpsk.ga +v4gdm4ipndpsk.gq +v4gdm4ipndpsk.ml +v4gdm4ipndpsk.tk +v4hgfjhgf.xyz +v4p.ru +v4uryn.site +v58tk1r6kp2ft01.cf +v58tk1r6kp2ft01.ga +v58tk1r6kp2ft01.gq +v58tk1r6kp2ft01.ml +v58tk1r6kp2ft01.tk +v5mec.us +v5qnoc.online +v5r6e.us +v62qa2.xyz +v6hosting.com +v6iexwlhb6n2hf.ga +v6iexwlhb6n2hf.gq +v6iexwlhb6n2hf.ml +v6iexwlhb6n2hf.tk +v6ready.xyz +v6test.tokyo +v6uk95.site +v6v.dev +v7brxqo.pl +v7ecub.com +v7g2w7z76.pl +v7nk.us +v7px49yk.pl +v8.vin +v840xt.us +v8garagefloor.com +v8jumd.us +v8win.com +v8ze.icu +v9094.com +v9fxq.us +v9paying.com +v9pays.com +va-medic1.site +va-sale.online +va-sale.ru +va58beertrail.com +va5vsqerkpmsgibyk.cf +va5vsqerkpmsgibyk.ga +va5vsqerkpmsgibyk.gq +va5vsqerkpmsgibyk.ml +va5vsqerkpmsgibyk.tk +vaasfc4.tk +vaati.org +vacancies-job.info +vacancydom.ru +vacation-voyage-now.sale +vacationrental.zone +vacationrentals.business +vacationrentals.directory +vacationrentalshawaii.info +vacations.company +vacationtemp.com +vacationwithjason.com +vacavaca.ru +vacavillerentals.com +vaccimnatlod.xyz +vaccinepre.xyz +vachwu.com +vacpocket.com +vacuus.gq +vacwdlenws604.ml +vadable.xyz +vadalist.com +vadaway.icu +vadelect.xyz +vadick.design +vadlag.xyz +vadosh.website +vaefwm.us +vaffanculo.gq +vafleklassniki.ru +vafrem3456ails.com +vagabondvpn.pro +vagenland.cf +vagenland.ga +vagenland.gq +vagenland.ml +vagenland.tk +vagifx.net +vagilthe.ga +vagilthe.gq +vagilthe.ml +vaginkos.com +vagiserum.com +vagmag.com +vagnerlove.ru +vagrant.dev +vagsuerokgxim1inh.cf +vagsuerokgxim1inh.ga +vagsuerokgxim1inh.gq +vagsuerokgxim1inh.ml +vagsuerokgxim1inh.tk +vaguebuil.xyz +vagueen.xyz +vagueenfi.xyz +vaguefa.icu +vaguemodel.us +vaguetast.xyz +vaguproject.com +vagus.com +vahalfpricedlisting.com +vahalfpricelisting.com +vahallamarketing.net +vahidkhazaei.com +vahomeloansl1.com +vahsc.us +vaik.cf +vaik.ga +vaik.gq +vaik.ml +vaik.tk +vailhealthjobs.com +vailkilo.online +vailsnowboardlessons.com +vailuyen688.ga +vaimumi.cf +vaimumi.gq +vaimumi.tk +vainamail.club +vairs.org +vajdica.com +vajeri.info +vajobsri.cf +vajobsri.ga +vajobsri.gq +vajobsri.ml +vajobsri.tk +vajq8t6aiul.cf +vajq8t6aiul.ga +vajq8t6aiul.gq +vajq8t6aiul.ml +vajq8t6aiul.tk +vajra4d.com +vakifarabam.com +vaknin-law.com +vaktarjobb.se +valdezmail.men +valdisttul.ga +valdisttul.gq +valdisttul.ml +valdisttul.tk +valemail.net +valenceinvestment.com +valenciabackpackers.com +valencianista.com +valentin.best +valentinagrib.ru +valentinka.host +valentinobet2.online +valentinostakeaway.com +valentop.com +valeo-dar.ru +valerabet.ru +valeraverim.ru +valeria-ecclesie.com +valerieallenpowell.com +valeyventura.com +valhalladev.com +valiantgaming.net +valiantvineyards.net +valiantvineyardswinery.com +valibri.com +valid.digital +validsiegetech.info +valimodert.ru +valionkd.online +vallate.xyz +valledds.com +valleybrains.tech +valleyedit.com +valleyhealthphysicians.net +valleyhealthphysicians.org +valleyinnmistake.info +valleyinvestmentproperty.com +valleyrust.top +valleystudies.top +vallier.ru +valmosergraphics.com +valoitinc.biz +valorant-case.ru +valorant-drop.ru +valorant.codes +valorantasil.cf +valorantasil.ml +valorantasil.tk +valorantejder.cf +valorantejder.ga +valorantejder.ml +valorantejder.tk +valorantsjin.cf +valorantsjin.ml +valorantsjin.tk +valordinmuscle.com +valornades.com +valorstanding.com +valtresttranach.website +valtrexprime.com +valtrexrxonline.com +valuablegyan.com +value-digital.net +value-establish-point-stomach.xyz +value-group.net +valuebl.icu +valued.guide +valuedsport.store +valuesflyer.com +valueweboffers.com +valveball.net +valvebrush.biz +valvebrush.net +valvebrush.us +valvebrushes.biz +valvebrushes.us +valves-uk.com +valyutniy-kontrol.ru +vamosconfe.com +vamosdenovo.monster +vampiregirl.xyz +vampirelestad.live +vampresent.ru +van87.com +vanacken.xyz +vanairlines.xyz +vanbalen.icu +vanbil.tk +vancemail.men +vanclifts.info +vancouverenergyusa.com +vancouverhairsalons.com +vancouverislandrealestatecareer.com +vanderleimaciel.com +vandorrenn.com +vandstabmar.ga +vandstabmar.ml +vanessarobison.com +vanevans.xyz +vanheusden.site +vanhilleary.com +vanhoangtn1.ga +vanhoangtn1.ooo +vanhoangtn1.us +vanholtgroup.com +vaniercup52.com +vanilkin.ru +vanillalist.com +vankin.de +vanlilardernegi.com +vanmail.com +vanna-house.ru +vanneerbos.site +vanpirly.com +vanpoint.net +vantagepayment.com +vantaxi.pl +vanturtransfer.com +vanturtransfer.xyz +vanuatu-nedv.ru +vanvalu.linuxpl.info +vanvlachsen.com +vanxardmedia.com +vaparisy.info +vapecentral.ru +vapecpd.com +vapessenceuy.com +vapetaxi.ru +vapewildd.com +vapordu.cf +vapordu.ga +vapordu.gq +vapordu.ml +vapordu.tk +vaporizers776cv.online +vaporware.xyz +vappewild.com +var-2.site +varadeals.com +varag88.com +varantsigorta.com +vardanes.net +vardanes.org +varese-secure.com +varewn.site +varialomail.biz +variamize.com +varicoseveinslaser.com +varietyecompartners.com +varifya.space +varimlimon.com +varimmaltbira.com +variouscraft.ru +varkensoren.com +varlikholding.xyz +varmakir.cf +varmakir.ga +varmakir.gq +varna.vip +varnerllc.com +varnishbrush.net +varnishbrush.us +varnishbrushes.net +varout.com +varparide.com +varushka.ru +varyag51.ru +varzish-1xbet.net +vas-promokod.space +vasashing.fun +vasctechinc.com +vasectomize375xh.online +vash--mishka.ru +vash-promocod.website +vashakarta24.com +vasir.site +vasosrojosamericanos.com +vasquezcreeklodge.com +vasschlorin.cf +vasschlorin.ga +vasschlorin.gq +vasschlorin.ml +vast-03.com +vast-04.com +vasterbux.site +vastgoed.video +vastkey.com +vastorestaurante.net +vasvast.shop +vasy.site +vasyna.space +vaszerkolig.ru +vaszily.com +vatclinics.info +vatrel.com +vaudit.ru +vaughn.life +vauki.fun +vault.camp +vaultautoparts.com +vaultoffer.info +vaultpoint.us +vaultproject.dev +vaultsophia.com +vaultsophiaonline.com +vaultvision.app +vavacash.org +vavada777kasino.ru +vavadacazino.com +vawamu.info +vaxce.com +vaxport.online +vaxxport.online +vay.kr +vaybet38.com +vaycongso.vn +vaymail.com +vayme.com +vb17100astridcoleman.info +vb17101tesswalton.info +vb4cte.us +vb9vwd.us +vba.kr +vba.rzeszow.pl +vbalakovo.ru +vbdwreca.com +vbet.network +vbetstar.com +vbfaps.us +vbha0moqoig.ga +vbha0moqoig.ml +vbha0moqoig.tk +vbhoa.com +vbilet.com +vbkb050288.com +vbmvp.com +vbni.org +vbo.buzz +vbotanicalspa.com +vbpqap.us +vbrands.club +vbshopper.com +vbtsystem.site +vbusksk.xyz +vbwarez.net +vc58bo.info +vc9.net +vcamp.co +vcbmail.ga +vcbox.pro +vcfpn.space +vcgciw.club +vcgenk.com +vcghv0eyf3fr.cf +vcghv0eyf3fr.ga +vcghv0eyf3fr.gq +vcghv0eyf3fr.ml +vcghv0eyf3fr.tk +vchunger.games +vcicard.com +vcip5.us +vclvrq.icu +vcm.sk +vcmatchmaker.com +vcmfycxda.ml +vcnbzvers.site +vcplxm.us +vctel.com +vcticngsh5.ml +vctlwl.info +vcu26q-mail.xyz +vcwql.us +vcz.us +vcznb.us +vd-sale.online +vda.ro +vdaily.biz +vdaily.info +vdaymyvg.shop +vdbirxhg.shop +vdcasino366.com +vdcxnf.us +vddhs90.online +vdemegtic.shop +vdggehha.xyz +vdh.us +vdi-ms.com +vdieasy.com +vdig.com +vdims.com +vdione.com +vdlh0.us +vdmmhozx5kxeh.cf +vdmmhozx5kxeh.ga +vdmmhozx5kxeh.gq +vdmmhozx5kxeh.ml +vdmmhozx5kxeh.tk +vdnetmail.gdn +vdobromzdravyy.ru +vdomemilo.ru +vdownloader.email +vdp8ehmf.edu.pl +vdsound.ru +vdxm.com +vdy.itx.mybluehost.me +vdzbot.xyz +ve-101.com +ve-sale.online +ve-sale.ru +ve-v5.com +ve1droid.host +ve1f.net +ve1g.net +ve1i.net +ve1n.net +ve1p.net +ve1u.net +ve1v.net +ve1x.net +ve8zum01pfgqvm.cf +ve8zum01pfgqvm.ga +ve8zum01pfgqvm.gq +ve8zum01pfgqvm.ml +ve8zum01pfgqvm.tk +ve9xvwsmhks8wxpqst.cf +ve9xvwsmhks8wxpqst.ga +ve9xvwsmhks8wxpqst.gq +ve9xvwsmhks8wxpqst.ml +ve9xvwsmhks8wxpqst.tk +vealtex.online +veanlo.com +veat.ch +vebilewu.space +veboieye.space +vecene.net +vecijuo5.online +veckopengen.nu +veco.site +vecom.ltd +vect.org +vector-rzn.ru +vectorgo.site +vectoris.site +vedalholding.com +vedeniedelasud.xyz +vedic.site +vedid.com +vedioo.com +vedmail.com +vedojy.online +vedrolet.ru +veduco.xyz +vedula.com +vedv.de +veebee.cf +veebee.ga +veebee.gq +veebee.ml +veebee.tk +veee113.vip +veekcode.biz +veepex.com +veertjku.tk +veesms.com +veevacertification.com +vefdrq.us +vefspchlzs2qblgoodf.ga +vefspchlzs2qblgoodf.ml +vefspchlzs2qblgoodf.tk +veg2o.com +vega100mgtr.com +vegabet137.com +vegaeticaret.com +vegan-in-frankenthal.info +veganbargains.com +veganlifecoach.net +veganlogical.xyz +veganqueenrunnerbean.com +vegas-skills.com +vegas-x.app +vegas-x.biz +vegas368e.net +vegasbet.life +vegascasino.casino +vegaslim-official.online +vegaslimshop.online +vegasplus.ru +vegasrealestate.company +vegastickets.us +vegastour.pro +vegasworlds.com +vegemite.xyz +veggdekorasjon.site +veggiephiles.com +vegly.app +vegly.club +vegly.life +vegly.network +vegsthetime.org.ua +vegterlo.online +vehicle-blackbox-dvr.ru +vehicleowners.tk +vehiclestorageyubacity.com +vehinho.xyz +vehkud.us +veholdy.cf +veholdy.ga +veholdy.tk +vehw4ia60.xyz +veibelda.cf +veibelda.ga +veibelda.gq +veibelda.ml +veibelda.tk +veiligonlineprecedure.ru +vein-com.ru +veinaha.cf +veinaha.ga +veinaha.gq +veinaha.ml +veinaha.tk +veination.site +veiudo.tech +vejaalagoas.com +vejernews.com +vejohy.info +vekavu.info +vekbid.com +vektik.com +vektor-shop.ru +velar.cloud +velar.site +velarhost.com +velasdo.cf +velasdo.ga +velasdo.ml +velasdo.tk +velavadar.com +velbettdomino.com +veldahouse.co +veldmail.ga +velikos.host +velkam.org +velkanol.ru +velobotanicals.com +velobro.space +velocilight.com +velocities.space +velocity-digital.com +velocity-digital.org +velocitydigital.net +velomandryvo.xyz +veloped.us +velosegway.ru +velosiped-go.ru +velostocrat.com +velourareview.net +velourclothes.com +velourclothes.net +veloxmail.pw +veltean.com +velvetaroma.com +velvetshopping.net +vemaybaygiare.com +vemaybaytetgiare.com +veminia.com +vemmaelijahcarter.site +vemomail.win +vemple.info +vemrecik.com +vemser.com +ven8mf.com +venagoo.website +venanation.info +vendasml.ml +vendedores-premium.ml +vendedoresplatinum.ml +vendorbrands.com +vendorlinkusa.com +vendx.us +veneerdmd.com +veneersofficial.ru +veneersperfectsmile.ru +veneravalitova.ru +venesialottery.info +venesialottery.net +venesialottery.org +venesuela-nedv.ru +venezuelainc.com +venezuelanpro.com +venged.com +vengodwin.store +vengr-nedv.ru +venicedays.info +venka-mir.ru +venka.host +venmirack.cf +venmirack.gq +venmirack.tk +venok-mir.ru +venokbrus.ru +venompen.com +venomroleplay.ga +venomroleplay.tk +venomteam.ru +venosy.site +vent-krasnodar.ru +ventadepetardospirodexmurcia.com +ventamark.net +ventanamexico.info +ventanasvegas.com +ventastx.net +ventent.com +ventesflash75.com +ventgelteo.cf +ventgelteo.ga +ventgelteo.gq +ventgelteo.ml +ventgelteo.tk +venttanip.cf +venttanip.ml +venttanip.tk +venturacarpetcleaning.net +venturawaterwell.com +ventureschedule.com +ventureuoso.com +venturishost.com +venue-ars.com +venuears.com +venuedot.com +venusandmarssextoys.com +venuscicekcilik.xyz +venuselbow.recipes +venuselec.host +venusen.press +venusfactorreviews.co +venusgmv.net +venusocks.ru +venusstri.com +venweld.site +veo.kr +veomideg.cf +veomideg.ga +veomideg.gq +veomideg.ml +veomideg.tk +veona.pw +vepa.info +veperon.net +vepklvbuy.com +veqizuwu.website +ver0.cf +ver0.ga +ver0.gq +ver0.ml +ver0.tk +vera-zandbergen.nl +vera52.com +vera97.com +veraandaudrey.com +verajenkins.xyz +verajohnmuryo.com +veralucia.top +verarays.info +veratoiun.ga +verbee.ru +verboseguides.com +vercameab.cf +vercameab.ga +vercameab.gq +vercameab.ml +vercameab.tk +vercelli.cf +vercelli.ga +vercelli.gq +vercelli.ml +verconspat.cf +verconspat.ml +verconspat.tk +vercutemp.cf +vercutemp.ga +vercutemp.ml +vercutemp.tk +verdejo.com +verdetelecom.com +verdoto.cf +verdoto.ga +verdoto.gq +verdoto.ml +verdoto.tk +verdugolife.com +verenoxnetwork.online +verfisigca.xyz +vergiora.cf +vergiora.ga +vergiora.gq +vergiora.ml +vergiora.tk +verhonicaryan.com +veridiandyn.com +verificadas.tk +verified-real.net +verified.vote +verifiedbuyerscheme.com +verifiedbuyerscheme.org +verifyerror.online +verifykero.com +verifymail.cf +verifymail.ga +verifymail.gq +verifymail.ml +verifymail.win +veriguvenlik.com +veriifmail.com +verinic.net +verisign.cf +verisign.ga +verisign.gq +verissl.com +veritybusinesscenter.pl +veriyaz.com +veriyaz.net +verizondw.com +verkaufsstelle24.de +verkeersschoolalim.online +verkopenviabol.shop +verlo.casa +verlustfic.cf +verlustfic.gq +verlustfic.ml +vermagerentips24.xyz +vermontamazon.com +vermontcareers.com +vermontlinkedin.com +vermutlich.net +vernetzteshaus.me +verni-svoel.fun +vernichel.host +verniinternational.icu +vernipay.ru +verniplanet.icu +verniprava.com +vernisvoye.site +vernisystem.icu +vernivychet.ru +vernz.cf +vernz.ga +vernz.gq +vernz.ml +vernz.tk +verocourses.com +veroikasd.ml +veromodaonlineshop.com +veronateam.ru +veronisy.com +veropopshop.com +verossa-rp.ru +verozo.info +verprerock.ga +verprerock.gq +verprerock.ml +verrabahu.xyz +verrando.net +verrighde.cf +verrighde.ga +verrighde.ml +verrighde.tk +versaupe.cf +versaupe.ga +versaupe.ml +versaupe.tk +verseboard.com +versinet.com +versmesi.ga +versmesi.gq +versmesi.ml +versmesi.tk +verstanttran.cf +verstanttran.ga +verstanttran.gq +versteabags.gq +versteabags.ml +versteabags.tk +versuplitt.site +versusbooks.com +versustheghost.com +vertamo.cf +vertamo.ga +vertamo.gq +vertamo.ml +vertamo.tk +verterygiep.com +verticals.report +verticedecabo.com +vertigo.cd +vertigueiros.website +vertikali.site +vertiuoso.com +vertraut.love +vertraute.love +verumst.com +verweisnip.cf +verweisnip.ga +verweisnip.gq +verweisnip.ml +very-cheap-car-insurance.online +very-games.com +verybad.co.uk +verycheapcarinsurance.online +veryday.ch +veryday.eu +veryday.info +verydrunk.co.uk +veryfinepay.com +verymit.com +veryprice.co +veryrealemail.com +veryrude.co.uk +verytrendyshop.com +verywise.co.uk +verzekeringdeals.online +vesa.pw +vesiquvece.website +veska.pl +vespor.biz +vespor.info +vespor.net +vespor.online +vespor.org +vespor.xyz +vesteddjrr.space +vestgreensig.cf +vestgreensig.ga +vestgreensig.gq +vestgreensig.tk +vestigeschool.com +vestimed.ru +vestnikao.ru +vestniktm.ru +vestrelis.ga +vestrelis.ml +vestrelis.tk +vestrilga.cf +vestrilga.ml +vestrilga.tk +vet-impact.ong +vetaucanthocondao.com +vetechpayments.com +vetementuss.com +veteransbenefitsinc.icu +veteransinstem.org +veteranvanproject.com +veterinarnaya-kurkino11.ru +veterinaryproviders.org +vetklinikadmitrov.ru +vetlinkos.ru +vetmed22.website +vetofunhes.art +vetonound.site +vetpainters.com +vetpd.net +vetriangle.eu +vetro-colore.ru +vets-victories-dreams.net +vetsvictoriesdreams.com +vetsvictoriesdreams.net +vettechtoday.website +vettery.cf +vettery.gq +vettery.ml +vettery.tk +vety.site +veuduchalk.ga +veuduchalk.gq +veuduchalk.ml +vevacq.com +veve.decisivetalk.com +vevevevevery.ru +vevhjlks.cf +vevhjlks.ga +vevhjlks.ml +vevomail.cf +vevomail.ml +vevomail.tk +vevomail2.cf +vevomail2.ga +vevomail2.ml +vevomail2.tk +vevomail3.cf +vevomail3.ga +vevomail3.ml +vevomail3.tk +vevpqk.host +vewku.com +vewovegady.space +vex4.top +vexbug.us +vexotrol.com +vey0xl.com +veycanle.cf +veycanle.ga +veycanle.gq +veycanle.tk +veyera.tk +veyschoolsubt.cf +veyschoolsubt.ga +veyschoolsubt.gq +veyschoolsubt.ml +veyschoolsubt.tk +vezdehod-rent.ru +vezunchik-blog.ru +vf-sale.ru +vfbpdh.site +vfdikja.site +vfdvuo.us +vfemail.net +vffelbqst.shop +vfienvtua2dlahfi7.cf +vfienvtua2dlahfi7.ga +vfienvtua2dlahfi7.gq +vfienvtua2dlahfi7.ml +vfienvtua2dlahfi7.tk +vfile.org +vfj9g3vcnj7kadtty.cf +vfj9g3vcnj7kadtty.ga +vfj9g3vcnj7kadtty.gq +vfj9g3vcnj7kadtty.ml +vfj9g3vcnj7kadtty.tk +vfnvls.site +vfpkta.site +vfr3tz.site +vfru80.info +vfyodrokn.tk +vgamers.win +vgatineau.com +vgatodviadapter.com +vgb758.com +vgdbankrotstvo.ru +vge88.com +vgegadso.ru +vgfhfghfghfgh.tech +vgfjj85.pl +vgfxks.online +vggboutiqueenlignefr1.com +vglasses.com +vglobalnews.asia +vgmlnw.com +vgo-roulette.com +vgo-roulette.net +vgo-roulette.ru +vgoldmailer2.com +vgqgzqwg.shop +vgryhm.site +vgs28.com +vgs33.com +vgsbet.com +vgsreqqr564.cf +vgsreqqr564.ga +vgsreqqr564.gq +vgsreqqr564.ml +vgsreqqr564.tk +vgxwhriet.pl +vh-sale.online +vhak.org +vhan.tech +vhcoqj.us +vhdgroup.net +vhglvi6o.com +vhj.biz +vhmmanbetx.com +vhntp15yadrtz0.cf +vhntp15yadrtz0.ga +vhntp15yadrtz0.gq +vhntp15yadrtz0.ml +vhntp15yadrtz0.tk +vhobbi.ru +vhoff.com +vhpsc.us +vhw5ie.us +vhwiz8.us +vhwuph.rest +via-paypal.com +via.tokyo.jp +viableshoppingblog.club +viachinonk.ml +viacimex.info +viadodinheiro.com +viaferrata.net +viafordrivers.com +viagra-be.info +viagra-cheap.org +viagra-withoutadoctorprescription.com +viagra.com +viagra34.xyz +viagra88.shop +viagracy.com +viagrafoxcer.xyz +viagrageneric-usa.com +viagraigow.us +viagrakaufen.com +viagranowdirect.com +viagranrxbuyonlinerx.com +viagraonlineedshop.com +viagrasy.com +viagrawithoutadoctorprescription777.bid +viagraya.com +viaip.online +viajando.net +viajesatope.online +vialfishing.ru +viamobile.app +viamobileforcarriers.com +viamobileforshippers.com +viano.com +viantakte.ru +viarasno.cf +viarasno.ga +viarasno.ml +viarasno.tk +viasatelital.us +viascales.cf +viascales.ga +viascales.gq +viascales.ml +viascales.tk +viata.site +viata.space +viataestefrumoasa.site +vibejsk.host +viberi-tur.ru +vibhavram.com +vibi.cf +vibi4f1pc2xjk.cf +vibi4f1pc2xjk.ga +vibi4f1pc2xjk.gq +vibi4f1pc2xjk.ml +vibi4f1pc2xjk.tk +viblab.today +vibrantfaithmilestones.org +vibronic.site +vibupis.cf +vibupis.ga +vibupis.gq +vibupis.ml +vibupis.tk +vic-allen.com +vicaqq.com +vicdanhukuku.com +vicdanhukuku.xyz +vices.biz +vicfoban.cf +vicfoban.ga +vicfoban.ml +vicfoban.tk +vichnew.site +vicious.email +vicious.life +vickaentb.cf +vickaentb.ga +vickaentb.gq +vickaentb.ml +vickaentb.tk +vickeyhouse.co +vickeyhouse.com +vicloning.net +vicosgrill.com +victime.ninja +victimization206na.online +victor.whiskey.coayako.top +victor1.club +victorgabrielg.com +victoriagreen.mobi +victoriahousetakeaway.com +victoriaking55places.com +victoriantwins.com +victoriarcail.com +victoriasslots.com +victoriatakeaway.com +victoriazakopane.pl +victoriousrestoration.com +victorserge.ru +victorsierra.spithamail.top +victory-mag.ru +victoryboats.ru +victoryfarmsuganda.com +victoryforanimals.com +victorygardenv2.com +victorypointgames.org +victoryseminary.net +vidacriptomoneda.com +vidaneh.org +vidasole.com +vidchart.com +viddly.online +viddly.plus +viddly.site +viddsy.net +videgertools.info +video-16porno.fr +video-dating.info +video-dlj-tebya.ru +video-insanity.com +video-klass.ru +video-step.ru +video-tube-club.ru +video.ddnsking.com +video35.com +video4less.net +videoarenda.ru +videobell.ru +videobest-for-you.ru +videobuilda.com +videobut.com +videocalls.net +videochat.band +videochat.exposed +videochat.watch +videochat.wtf +videocht.com +videocorporation.ru +videodig.tk +videodr.us +videoeditors.org +videofilling.ru +videofilm.club +videogamefeed.info +videogameleadsheets.com +videogo49.com +videographer.agency +videographer.city +videographer.education +videographer.equipment +videographer.expert +videographer.global +videographer.group +videographer.legal +videographer.link +videographer.llc +videographer.ltd +videographer.productions +videographer.review +videographer.reviews +videographer.school +videographer.store +videographer.stream +videographer.studio +videographer.style +videographer.university +videographers.boutique +videographers.city +videographers.college +videographers.community +videographers.company +videographers.exchange +videographers.fan +videographers.global +videographers.guide +videographers.guru +videographers.legal +videographers.llc +videographers.ltd +videographers.page +videographers.productions +videographers.tips +videographers.website +videography.camera +videography.city +videography.click +videography.college +videography.community +videography.education +videography.equipment +videography.events +videography.foundation +videography.gallery +videography.global +videography.help +videography.productions +videography.review +videography.reviews +videography.site +videography.us +videohandle.com +videohandles.com +videohd-clip.ru +videohd-club.ru +videohdtv.site +videohdtv.tk +videoinfoblogs.com +videojuegos.icu +videojunke2018.com +videojurnal.ru +videokazdyideni.ru +videolovelock.net +videonabludenie-msk.ru +videonyanya.site +videoonlinecasino.tech +videophotos.ru +videoprosmotr.ru +videorealm.net +videored.site +videoregistrator-rus.space +videos-de-chasse.com +videos.mothere.com +videos.zonerig.com +videosliw.xyz +videossl.stream +videosx.blog +videosxxx.video +videotoob.ru +videotubegames.ru +videowap.site +videoxnxx.site +videoxred.site +videoxx-francais.fr +vidhosters.org +vidiboutique.site +viditag.com +vidltpvm.shop +vidnoe-beton-zavod.ru +vidoc.ru +vidred.cf +vidred.ga +vidred.gq +vidred.ml +vidred.tk +vidspot.xyz +vidssa.com +vidt.site +vidup.us +vidvila.icu +vidxnxx.site +vidxxx.fun +vidyo.site +vidywi.info +vieebee.cf +vieebee.ga +vieebee.gq +vieebee.tk +viehelpfolk.ga +viehelpfolk.gq +viehelpfolk.ml +vielove.com +vienna.cf +vientiane.blog +vientianebackpackershostel.com +vientianecarrental.net +vientianehostel.com +vieremat.cf +vieremat.gq +vieremat.tk +viergroup.ru +vieserli.cf +vieserli.ga +vieserli.gq +vieserli.ml +vieserli.tk +vietcafe.net +vietnam-nedv.ru +vietnam-travel-tours.info +vietnamesenannies.com +vietnamsflorist.net +vietnamsgift.net +vietnamtour360.com +vietnamtoursnews.com +vietnamtoursnews.net +vietnamtravelblog.info +vietnamvisas.net +vietpay.org +vietregtoday.site +vietuctour.com +vietvoters.org +vievibrant.com +viewarticle.mobi +viewcastmedia.com +viewcastmedia.net +viewcastmedia.org +viewinglifedictionary.com +viewleaders.com +viewpay.club +viewsitedesign.com +viewtechnology.info +viewworlds.com +viexymas.com +vifdjc.icu +vifes.se +viflix.site +vifocals.com +vigee.com +viggomobil.se +vigil4synod.org +vigilantkeep.net +vigilentveteran.com +vignirguobjarnarson.space +vigorhealth.ru +vigorstratagem-intellectualwisdomwisdominsider.com +vigra-tadacip.info +vigratadacip.info +vigrxpills.us +vigyapanti.com +vihost.ml +vihost.tk +vihxan.us +viiisummitperu.org +viineblog.xyz +viinnovation.com +viitorultau.club +viivaofficial.com +vijayanchor.com +vijoto.info +vikandow.com +vikaslin-ruraten.ru +vikfocye.shop +vikikredit.ru +vikingglass-kr.info +vikingpuresolutions.com +vikingsilkroad.xyz +vikingsonly.com +vikram-rao.com +viktminskningsnabbt.net +viktorgladchenko.ru +viktorina-2018.ru +viktorkedrovskiy.ru +vikylov.ru +vikyol.com +vil7xp.us +vilbarcpil.ga +vilbarcpil.gq +vilbarcpil.ml +vilbarcpil.tk +vile.ninja +vileblakkey.africa +villa-aina.com +villa-in-altea.site +villaairsms.com +villabhj.com +villadipuncak.com +villaforesta.studio +villageanimalclinicofdunwoody.com +villagecrestrehab.net +villagesoffairlakes.org +villagethemeparks.com +villageville.org +villapuncak.org +villarrealmail.men +villascondosamerica.com +villascondoseurope.com +villascondosusa.com +villastream.xyz +villatriestevegas.com +villekulla.email +villemolaque.info +villousproducts.com +vilnapresa.com +vilnuska.site +vilrata.cf +vilrata.ga +vilrata.gq +vilrata.tk +viltioni.cf +viltioni.ga +viltioni.gq +viltioni.ml +viltioni.tk +vilvefa.cf +vilvefa.ga +vilvefa.ml +vilvefa.tk +vilyzakh.ml +vimail24.com +vimailpro.net +vimi-kan.ru +vimmeter.com +vin-diesel.com +vinaclicks.com +vinas.host +vinatahouse.co +vincenoffc.com +vincentcreations.com +vincentjoness.com +vincentlegall.org +vincenza1818.site +vincenzosdrimnagh.com +vincenzositalianpizzeria.com +vincilamusica.shop +vincitop.com +vinclub.win +vincode24.ru +vinde.ru +vinder-life.ru +vineal.xyz +vinedali.site +vinerabazar.com +vinernet.com +vinetack.com +vineyardclinic.org +vineyardmetronorth.org +vingcesscar.cf +vingcesscar.ga +vingcesscar.gq +vingcesscar.ml +vingcesscar.tk +vingdera.cf +vingdera.ga +vingdera.ml +vingdera.tk +vingnammigh.cf +vingnammigh.ga +vingnammigh.ml +vingnammigh.tk +vinhsu.info +vinicolatresraices.com +vinnow.info +vino-sf.com +vino-veritas.ru +vino.ma +vinogradcentr.com +vinohrad.info +vinordknkz.ru +vinshipper.com +vinsmoke.tech +vinsshoptop.club +vintage-interior.ru +vintagecardiff.com +vintagecurrent.net +vintagefashion.de +vintagefashionblog.org +vintageranchwedding.com +vintageshop.store +vintagetrailer.info +vintange.com +vinted.org +vintedkids.com +vintee.club +vinviper.dev +vinviper.info +vinviper.org +vinyljudge.com +viocrypot.cf +viocrypot.ga +viocrypot.ml +viola.gq +violin.link +viollee.com +vionari.com +viotypog.ga +viotypog.gq +viotypog.tk +viouratel.ga +viouratel.gq +viouratel.ml +viouratel.tk +viovideo.com +viox.app +vip-aiptv.xyz +vip-asbet.site +vip-avtos.ru +vip-bal.ru +vip-clicker.ru +vip-dress.net +vip-food.biz +vip-intim-dosug.ru +vip-lovemagic.ru +vip-mail.ml +vip-mail.tk +vip-moyki.ru +vip-payday-loans.com +vip-replica1.eu +vip-smule.info +vip-sushi.ru +vip-timeclub.ru +vip-watches.ru +vip-watches1.eu +vip.aiot.eu.org +vip.boxmaill.com +vip.cool +vip.dmtc.press +vip.hstu.eu.org +vip.sohu.com +vip.sohu.net +vip.stu.office.gy +vip.tom.com +vip52.online +vip52.pro +vip5319.com +vip6372.com +vip666866.com +vip7777.net +vip9227.com +vip9stn.xyz +vipattendance.com +vipbd4.info +vipbet5.biz +vipchristianlouboutindiscount.com +vipclub.icu +vipcodes.info +vipconverter.org +vipdewapoker.com +vipdieta.info +vipdom-agoy.com +vipelin.info +vipelin.net +vipelin.site +vipenglishlearning.com +vipepe.com +viper.email +vipflix.xyz +vipfon.ru +vipgamemarket.ru +vipgod.ru +viphomeljjljk658.info +viphone.eu.org +viphop.ru +vipilitka.buzz +vipiskaegryult.xyz +vipizka-iz-egrp.ru +vipjis.top +viplasvegasparty.com +viplinz.ru +viplotto.net +viplovemagic.ru +viplvoutlet.com +vipmagi.ru +vipmail.in +vipmail.name +vipmail.net +vipmail.pw +vipmgm10.com +vipmovie.xyz +vipmp3.site +vipnikeairmax.co.uk +vippark29.com +vippark31.com +vippark37.com +vippark40.com +vippoker88.info +vippoker88.online +vippoker88.org +vipracing.icu +vipraybanuk.co.uk +vipsale2015online.com +vipsbet.com +vipsentence.ru +vipshkatulki.ru +vipsmail.us +vipsohu.net +vipstanok.info +viptaksitur.xyz +viptoto.info +viptupperware.ru +vipuskakcii.xyz +vipvolvos.info +vipweinisiren.com +vipwxb.com +vipxm.net +vipxtest.com +vir.waw.pl +viracochastore.xyz +viraginous.xyz +viral-hub.xyz +viral-science.fun +viral-update.xyz +viralchoose.com +viralclothes.com +viralemon.shop +viralhits.org +virallifestyles.com +viralplays.com +viraltoken.co +viralvideosf.com +viransehirlimited.xyz +viransehirtv.com +viraorg.com +virarowing.com +virarproperty.co.in +virasailingrowing.com +viraskibreak.com +vircaiget.cf +vircaiget.ml +vircaiget.tk +virdettype.xyz +vireonidae.com +vireopartners.com +virgilbunaophotography.com +virgilio.ga +virgilio.gq +virgilio.ml +virgiliomail.cf +virgiliomail.ga +virgiliomail.gq +virgiliomail.ml +virgiliomail.tk +virgin-eg.com +virginal.site +virginfavorableanalysis.website +virginiabasketballassociation.com +virginiabeachnailsalons.com +virginiabeachopiaterehab.com +virginiafarmshealthylifestyles.com +virginiaintel.com +virginiaquote.com +virginislandcharteryachts.com +virginmedua.com +virginshuttle.com +virginsrus.xyz +virgoans.co.uk +virgotv.com +virkbhandari.com +virngocsgoa.xyz +viro.live +virol.club +viroleni.cu.cc +virtania.site +virtize.com +virtual-agent.org +virtual-baccarat-online.com +virtual-bank.live +virtual-email.com +virtual-generations.com +virtual-mail.net +virtualemail.info +virtualjunkie.com +virtualmail.gq +virtualmedicalconsulting.com +virtualprivateserversindia.com +virtualrunninguk.com +virtualserver.pro +virtualsummeroutings.com +virtualtags.co +virtualtrainingprograms.com +virtualveggiepatch.com +virtualvicksburg.com +virtualxxxteens.site +virtuatest.com +virtuf.info +virtuosoy.xyz +virtusgroup.net +virtuswin.com +virtznakomstva.ru +virucide.school +viruscan.ru +virusfreeemail.com +virushelp.site +virusirto.cloud +virusonlya.space +virusremovallosangeles.com +virusremovalseattle.com +virusuneet.site +visa-pl.com +visa-securepay.cf +visa-securepay.ga +visa-securepay.gq +visa-securepay.ml +visa-securepay.tk +visa.coms.hk +visa.dns-cloud.net +visa.dnsabr.com +visa159.ru +visaabudhabi.com +visacz.name +visal007.tk +visal168.cf +visal168.ga +visal168.gq +visal168.ml +visal168.tk +visalaw.ru +visalus.com +visantia.ru +visaua.ru +viscidkluu.space +visconte.store +viseur.xyz +vishivkamktut.xyz +visiems.info +visiokatu.xyz +visionaries.world +visionariesglobal.com +visionbig.com +visiondating.info +visionwithoutglassesscam.org +visit-twin-peaks.com +visit24.ru +visitachetumal.com +visitaislamujeres.com +visitalgarve.info +visitany.com +visitcassi.com +visitfindhorn.com +visitguernsey.org +visitinbox.com +visitingcyprus.com +visitingob.com +visitnorwayusa.com +visitnycdeals.com +visitor99.info +visitorratings.com +visitors-tracker.ru +visitorweb.net +visitvlore.com +visitworldheritage.org +visitxhot.org +visitxx.com +vismecpazarlama.com +vismos-news.ru +visozial-backup.org +vispif.com +visshirts.online +vist.video +vista-tube.ru +vistadulcevegas.com +vistanavegas.com +vistarto.co.cc +vistasfilmfestival.org +vistm.ru +vistomail.com +vistore.co +visualarguments.com +visualcluster.com +visualfx.com +visualimpactreviews.com +visualkonzept.de +visualpro.online +visuellewelt.xyz +visuvu.com +visweden.com +vit-toy.site +vita-healthcare.com +vitaelix.dev +vitaj.org +vital-dermax.online +vital-medizin.info +vitalavita24.ru +vitalbeginning.com +vitaldevelopmentsolutions.com +vitaldrama.xyz +vitaliebblkuet.fun +vitaliemoscow.fun +vitaliemoscow.space +vitalitygang.com +vitalizebaby.com +vitalizebeauty.com +vitalizedelhi.com +vitalizedia.com +vitalizehairgummy.com +vitalizehairmen.com +vitalizehairvitamins.com +vitalizeindian.com +vitalizemen.com +vitalizesilkpillowcase.com +vitalizeskinforwomen.com +vitalizewomen.com +vitalpetprovisions.com +vitalslab.org +vitalyzereview.com +vitamin-water.net +vitaminb12direct.org +vitaminc.news +vitaminglossary.com +vitaminpassion.com +vitamins.cd +vitamins.com +vitaminsdiscounter.com +vitaminshope.org +vitaminydlyadushi.ru +vitamixcostco.us +vitapersonal.com +vitapure.org +vitarosehealthoffers.site +vitebsk-news.info +vithub.net +vitiferous.site +vitime.icu +vitobet11.com +vitolau2019.xyz +vitovem.xyz +vitrina82.ru +vitstratumfho.site +vityarustov.com +vivabem.xyz +vivabet91.online +vivabets90.info +vivafranco.tk +vivalafiestapuertosherry.com +vivaldi.media +vivamogul.org +vivaptb.site +vivarack.com +vivaroaffiliates.com +viveladobdeviajar.com +viventel.com +viverdemonetizze.com +viverointernacional.com +viversemdrama.com +vivfatura.website +vivianhouse.co +vividbase.xyz +vivie.club +vivigle.org +vivliopoli.xyz +vivo4d.online +vivocrop.ru +vivogame11.net +vivogame168.com +vivogame33.com +vivogame33.net +vivogame55.com +vivogame99.net +vivokiu.org +vivolight.ru +vivopelafe.com +vivreauxusa.com +vivrela.store +vivshine.com +vivusbet60.com +viwsala.com +vixiohosting.shop +vixiohub.shop +vixletdev.com +vixmalls.com +vixo.net +vixodkyh.shop +vizedf.site +vizi-forum.com +vizi-soft.com +vizionkc.com +vizit-fabric.xyz +vizsim.com +vizstar.net +vizyondafilm.info +vizzapizzeria.com +vj520.com +vjav.info +vjav.site +vjogpb.cf +vjov9w.online +vjrkvx.site +vjsbdp.com +vjvqdl.us +vjwwgppcf.shop +vk-app-online.ru +vk-appication.ru +vk-apps-online.ru +vk-com-application.ru +vk-com-golosa.site +vk-comm.ru +vk-fb-ok.ru +vk-goog.ru +vk-id5099994-loh.xyz +vk-nejno-sladko.ru +vk-net-app.ru +vk-net-application.ru +vk-russkoe.ru +vk-skachat.ru +vk-ssl-support5.host +vk-test.ru +vk-tvoe.ru +vk7077.com +vkbrand.xyz +vkchat.ru +vkcode.ru +vkdmtzzgsx.pl +vkdmtzzgsxa.pl +vkfwzulon.shop +vkgdno.us +vkhelp-com.online +vkhotkevich.ru +vkilotakte.ru +vkinomax.ru +vkitgm.com +vkjncf.com +vkladkpkvozvr.xyz +vknmanbetx.com +vknumber.website +vkontakteemail.co.cc +vkopssite.site +vkoxtakte.ru +vkoztakte.ru +vkpay.club +vkpornoprivate.ru +vksaver-pc.ru +vksmartparadise.com +vkstiker.fun +vkusno-vse.ru +vkusnosam.ru +vkusnyj-recept-foto.ru +vkusup.ru +vkvhod.ru +vkzbfuvrx.shop +vl-pla.ru +vl2ivlyuzopeawoepx.cf +vl2ivlyuzopeawoepx.ga +vl2ivlyuzopeawoepx.gq +vl2ivlyuzopeawoepx.ml +vl2ivlyuzopeawoepx.tk +vlad-webdevelopment.ru +vladinews.space +vladomusic.com +vlan.global +vlasy.site +vlbjx6.info +vlbtest.site +vlfbvia.design +vlifeinsure.com +vlinder.icu +vlinitial.com +vlipbttm9p37te.cf +vlipbttm9p37te.ga +vlipbttm9p37te.gq +vlipbttm9p37te.ml +vlipbttm9p37te.tk +vlivki.ru +vlk-gold.org +vlk-neon-online.com +vlk-pltnm.ru +vlk-prestige.net +vlkstarsbest.com +vlkstil-6.com +vlkstil-7.com +vlkstl-3.com +vln.io +vloggerusa.com +vlogino.pro +vlote.ru +vloux.com +vlquark.com +vlrnt.com +vlsca8nrtwpcmp2fe.cf +vlsca8nrtwpcmp2fe.ga +vlsca8nrtwpcmp2fe.gq +vlsca8nrtwpcmp2fe.ml +vlsca8nrtwpcmp2fe.tk +vlstwoclbfqip.cf +vlstwoclbfqip.ga +vlstwoclbfqip.gq +vlstwoclbfqip.ml +vlstwoclbfqip.tk +vlueo.net +vlvstech.com +vlvtsmtx.com +vlvwine.com +vlwomhm.xyz +vlzpji.com +vm009.com +vm088.com +vm2016.com +vmadhavan.com +vmail.me +vmail.tech +vmailcloud.com +vmailing.info +vmailpro.net +vmani.com +vmaryus.iogmail.com.urbanban.com +vmbkbs.us +vmentorgk.com +vmgmails.com +vmhdisfgxxqoejwhsu.cf +vmhdisfgxxqoejwhsu.ga +vmhdisfgxxqoejwhsu.gq +vmhdisfgxxqoejwhsu.ml +vmhdisfgxxqoejwhsu.tk +vmi13l.us +vmirenas.ru +vmish.icu +vmlfwgjgdw2mqlpc.cf +vmlfwgjgdw2mqlpc.ga +vmlfwgjgdw2mqlpc.ml +vmlfwgjgdw2mqlpc.tk +vmo.exchange +vmpanda.com +vmpanel.shop +vmpsd.com +vmv-msk.ru +vmvgoing.com +vmwgfaop.shop +vmy49.space +vmzll.com +vn009900.com +vn7ag6.us +vn8b3.us +vn92wutocpclwugc.cf +vn92wutocpclwugc.ga +vn92wutocpclwugc.gq +vn92wutocpclwugc.ml +vn92wutocpclwugc.tk +vna1ra.us +vna68.space +vnbdktv2.ml +vnbdktv2.tk +vncoders.net +vncwyesfy.pl +vnd3yf.us +vndeal.info +vndfgtte.com +vnds-20.site +vnds-2020.fun +vnds-go.club +vnds-go.info +vnds-go.site +vnds-go.xyz +vnds-h20.info +vnds-world.space +vnedorognik-yeti.ru +vnedu.me +vnexpaawj.shop +vngbam.us +vnhojkhdkla.info +vnitsolution.com +vnjpny.site +vnkrgjt10-privmderj.space +vnpnet.com +vnr98.com +vnrrdjhl.shop +vns2640.com +vns72h.com +vnshare.info +vnsl.com +vnuova.icu +vnvejjlh.shop +vnwcs9.us +vnwin99.com +vnxteam.xyz +vnznetve.online +voati.pro +vobeclinic.net +vobtic.buzz +vocabgym.com +vocabook.win +vocaloid.moe +vocobe.com +vocupeo.space +vod2019.org +vod9d9.website +voda-v-tule.ru +vodadesk.info +vodafone-au.host +vodafone-au.info +vodafone-au.space +vodafone-nz.site +vodafone-nz.space +vodakov.com +vodes.xyz +vodgard.ru +vodka.in +vodlockerseries.online +vodmir.com +vodtv.xyz +voedselbosnistelrode.com +voemail.com +vofnbz.site +vofu.ru +vogayervaluation.com +vogons.ru +vogrxtwas.pl +vogue.sk +vohashops.site +vohjzw.com +voiceclasses.com +voicefeas.xyz +voicememe.com +voiceseoservices.com +voicesheep.email +voicevictory.site +void.maride.cc +voidbay.com +voided.host +voikaserd.ga +voikskrant.online +voilans.com +voimacapbackno.space +voip-torg.ru +voip3.ru +voip4.ru +voip5.ru +voip6.ru +voip7.ru +voip8.ru +voipdevices.ru +voipjury.com +voipocoupon.com +voiporeview.com +voiptorg.ru +voiptrade.ru +voiquitruc.ga +voiquitruc.gq +voiquitruc.ml +voiquitruc.tk +voir-animes.xyz +voir-film1.website +voirfilms.blue +voirfilms.stream +voirfilmsgratuit.net +voirserie-streaming.com +voirseries-streaming.com +voirseries.host +voirseriestreaming.online +voirseriestreaming.xyz +voisonnhots.cf +voisonnhots.ga +voisonnhots.gq +voisonnhots.ml +voisonnhots.tk +voiture.cf +voitures.cd +voize.biz +voize.online +voizeapi.net +voizemall.com +vokbu0.info +voland.site +volary.site +volcanclub.com +volcano-wings.com +volestream.com +volestream19.com +volestream21.com +volestream22.com +volestream23.com +volestream24.com +volestream25.com +volestream26.com +volestream34.com +volestream35.com +volestream38.com +volestream39.com +volestream40.com +volestream41.com +volestream42.com +volestream43.com +volestream44.com +volestream46.com +volestream47.com +volestream48.com +volestream50.com +volgograd-nedv.ru +volkemol.ru +volknakone.cf +volknakone.ga +volknakone.gq +volknakone.ml +volknakone.tk +volkskran.online +volkswagen-ag.cf +volkswagen-ag.ga +volkswagen-ag.gq +volkswagen-ag.ml +volkswagen-ag.tk +volkswagenamenageoccasion.fr +vollfertig.vision +volna-realty.ru +volniisas.space +volodya-stavit.site +vologdalestopprom.ru +volshebstii.xyz +volshebstiiluch.xyz +volsingume.ru +volssecsy.info +voltaer.com +voltalin.site +voltanord.org +volthdas.gq +voltxsports.com +volumaska.host +volumehd.com +volumetudo.website +volumkas.cf +volunteerfirstresponder.com +volunteerfirstrespondernetwork.org +volunteerfirstresponders.net +volunteergarden.org +voluptuary.site +volvefloor.com +volvo-ab.cf +volvo-ab.ga +volvo-ab.gq +volvo-ab.ml +volvo-ab.tk +volvo-s60.cf +volvo-s60.ga +volvo-s60.gq +volvo-s60.ml +volvo-s60.tk +volvo-v40.ml +volvo-v40.tk +volvo-xc.ml +volvo-xc.tk +volvogroup.ga +volvogroup.gq +volvogroup.ml +volvogroup.tk +volvopenta.tk +vomadig.ga +vomadig.gq +vomadig.tk +vomar.be +vomechild.cf +vomechild.ga +vomechild.tk +vomega.org +vomiqo.info +vomoto.com +vomua.website +vomvos.org +vomwege.net +vonbe.tk +vonderheide.me +voneger.com +vonnihouse.co +vonumalls.site +vook.host +voopee.net +voozadnetwork.com +vopikaslukda.gq +vorarlberg.dev +vorga.org +vorimo.ru +voron-kryuk.ru +voron.center +voron.plus +voronkryuk.ru +vorply.com +vorpostport.cf +vorpostport.ga +vorpostport.gq +vorpostport.ml +vors.info +vorscorp.mooo.com +vosomart.site +vospitanievovrema.ru +vosts.com +votavk.com +vote4gas.org +vote4today.org +vote4tomorrow.org +votealaska.org +votebestofsu.com +votedb.info +voteforhot.net +votejohnfisher.com +votenogeorgia.com +votenonov6.com +votenoonnov6.com +votesoregon2006.info +voteulp.net +vothiquynhyen.info +votingportland07.info +votiputox.org +votofeliz.com +votretableaupersonnalise.fr +vouchergeek.com +vouchfor.app +vouhotpcrib.cf +vouhotpcrib.ga +vouhotpcrib.gq +vouhotpcrib.tk +voujoncafe.com +vouk.cf +vouk.gq +vouk.ml +vouk.tk +voulesrandom.com +vovin.gdn +vovin.life +vovva.ru +vowallco.cf +vowallco.ga +vowallco.gq +vowallco.ml +voxcj.com +voxelcore.com +voxpronoia.com +voxsign.com +voxsox.com +voyagebirmanie.net +voyancegratuite10min.com +voyeurseite.info +voyuboutique.site +voz79.shop +vozenkahi.xyz +vozmi-instrument.ru +vozmivtop.ru +vozsensual.com +vozvratpravrf.ru +vozvrmfovklad.xyz +vp.com +vp.ycare.de +vp4zy.us +vp8aop.us +vp8xi3.us +vp93.com +vpalt.net +vpanel.ru +vpapa.ooo +vpay.work +vpc608a0.pl +vperdolil.com +vpexpositor.com +vpfbattle.com +vphnfuu2sd85w.cf +vphnfuu2sd85w.ga +vphnfuu2sd85w.gq +vphnfuu2sd85w.ml +vphnfuu2sd85w.tk +vpidcvzfhfgxou.cf +vpidcvzfhfgxou.ga +vpidcvzfhfgxou.gq +vpidcvzfhfgxou.ml +vpidcvzfhfgxou.tk +vpieser.club +vpmaj.us +vpmsl.com +vpn-ike.net +vpn-tondar.xyz +vpn.st +vpn33.top +vpnexpress.best +vpnfinity.com +vpnflix.com +vpnforever.space +vpnforge.com +vpnfreetrial.best +vpngermany.company +vpngratuit.company +vpnike.org +vpnnotsafe.zone +vpnopenvpn.zone +vpnprivacy.fund +vpnprivate.fund +vpnratings.fail +vpns.best +vpnsupport.cool +vpntochina.city +vpntracker.band +vpoker99domino.com +vpomosmame.ru +vprice.co +vprintall.com +vprinter.com +vps.reviews +vps001.net +vps004.net +vps005.net +vps30.com +vps911.bet +vps911.net +vpsadminn.com +vpsbots.com +vpscloudvntoday.com +vpscommunity.us +vpsconfig.com +vpsdb.com +vpsdown.com +vpsera.com +vpsera.net +vpsfox.com +vpshi.com +vpsjb.com +vpsjqgkkn.pl +vpslists.com +vpsmobilecloudkb.com +vpsorg.pro +vpsorg.top +vpsscaler.com +vpstalk.com +vpstraffic.com +vpstrk.com +vpstube.com +vpsuniverse.com +vpswatch.com +vpswins.site +vpvtou.us +vpxdxsor.site +vq8nr.us +vqargiqlf.cf +vqgaakece.shop +vqqhry1j.xyz +vqrbaq.site +vqsjpy.com +vqsprint.com +vqzdwm.us +vr-sale.online +vr066.com +vr068.com +vr087.com +vr096.com +vr1ly4.us +vr21.ml +vr360listings.info +vr3s61.us +vr4x4.ru +vr5gpowerv.com +vrabote-doma.ru +vracg.com +vradportal.com +vram.xyz +vranton.buzz +vraskrutke.biz +vrcard.ru +vrdhy6.club +vredirect.com +vreeland.agencja-csk.pl +vreemail.com +vregion.ru +vremonte24-store.ru +vrender.ru +vreqfbev.shop +vreveal.com +vrgu4x.com +vrgwkwab2kj5.cf +vrgwkwab2kj5.ga +vrgwkwab2kj5.gq +vrgwkwab2kj5.ml +vrgwkwab2kj5.tk +vrheroes.info +vridhi.org +vrify.org +vrior.club +vripnc.us +vrjsoq.ru +vrjw.com +vrloco.com +vrmmeh.com +vrmqacrq.shop +vrmtr.com +vroomvroomvroom.rentals +vrou.cf +vrou.ga +vrou.gq +vrou.ml +vrou.tk +vrpitch.com +vrshop.life +vrsim.ir +vrstripshows.com +vrsykk.xyz +vrtgog.us +vrvrx.com +vryyqtgz.shop +vrzpoker.com +vs-ad.com +vs3ir4zvtgm.cf +vs3ir4zvtgm.ga +vs3ir4zvtgm.gq +vs3ir4zvtgm.ml +vs3ir4zvtgm.tk +vs7wgz.host +vs904a6.com +vs9992.net +vsalmonusq.com +vsc3bf.us +vscarymazegame.com +vsds.pro +vsdv.pro +vse-casino.com +vse-dveriru.ru +vse-massageri.ru +vse-nyew.ru +vse-oboiru.ru +vse-polyru.ru +vse-serii.xyz +vse-smi.ru +vse-strany.ru +vse-zamkiru.ru +vse-zdes.website +vseadvocaty.ru +vseadvokati.ru +vsebrigadi.ru +vsedirect.ru +vsedveriru.ru +vsegirect.ru +vsekatal.ru +vselennaya.su +vsembiznes.ru +vsemkvarti.ru +vsemotdihat.ru +vsemsoft.ru +vseoboiru.ru +vseoforexe.ru +vseokmoz.org.ua +vseoneyrosisteme7.ru +vseosade.ru +vseosade.site +vsepolyru.ru +vseturist.ru +vsevnovosti.ru +vsezamkiru.ru +vsezdorovie-vsem.ru +vsglives.com +vshisugg.pl +vsibkb.com +vsimcard.com +vsix.de +vsjfashions.com +vskins.market +vsmartdata.com +vsmartsync.com +vsmini.com +vspay.ru +vspiderf.com +vss6.com +vsshevvq.shop +vssms.com +vsszone.com +vstahigherlearning.com +vstarbliss.org +vstartup4q.com +vstoremisc.com +vsv1js1belhluaw.xyz +vsxz.pro +vsyamebel-nn.ru +vsz63.space +vt021.net +vt0bk.us +vt0uhhsb0kh.cf +vt0uhhsb0kh.ga +vt0uhhsb0kh.gq +vt0uhhsb0kh.ml +vt0uhhsb0kh.tk +vt6k5.us +vt8khiiu9xneq.cf +vt8khiiu9xneq.ga +vt8khiiu9xneq.gq +vt8khiiu9xneq.ml +vt8khiiu9xneq.tk +vt8zilugrvejbs.tk +vtaffiliate.com +vtallinn.info +vtavte.xyz +vtb365.com +vtbapp.com +vtbcn.com +vtbet.online +vtbfan.com +vtbja.us +vtblist.com +vtbnews.com +vtbshe.com +vtbsub.com +vtbt.design +vtbtt.com +vtbvtb.com +vtbvup.com +vtdetoxcenter.com +vteachesb.com +vteensp.com +vthalfpricelisting.com +vthalfpricelistings.com +vtj0.buzz +vtoasik.ru +vtol.us +vtolat.icu +vtopeklassniki.ru +vtormetresyrs.ru +vtoroum2.co.tv +vtrue.org +vtryan.monster +vtsm.net +vtuber.fan +vtuber365.com +vtubercn.com +vtuberlist.com +vtuberlive.com +vtubernews.com +vtubershe.com +vtuberworld.com +vtwelves.com +vtwumka.xyz +vtxmail.us +vu38.com +vu981s5cexvp.cf +vu981s5cexvp.ga +vu981s5cexvp.gq +vu981s5cexvp.ml +vuabai.info +vuacado.xyz +vuadoithuong.xyz +vuasanca.com +vuathethao.pro +vubby.com +vubori13.space +vudisdiz.space +vuecine.com +vuejshub.com +vufe.site +vufkbrsdd.shop +vugnlv.com +vuhoangtelecom.com +vuihet.ga +vuive.shop +vuiy.pw +vujave.info +vukdfe.us +vulcan-platinum24.com +vulcandengy.ru +vulcanrussia.club +vulccanstars.live +vulkan-game-casino.ru +vulkan-hot.online +vulkan-klub.ru +vulkan-maximum-scachat.org +vulkan-neon.space +vulkan-olimp.info +vulkan-olymp-mobile.xyz +vulkan-original.ru +vulkan-platinum-casino777.com +vulkan-russkiy.tech +vulkan-slots11.com +vulkan365-vhod.xyz +vulkanavtomatmaid.ru +vulkancasino.design +vulkansloti.ru +vulkanstavka.center +vulkanstl-8.com +vulkastars.ru +vulkhan-vip.ru +vulktee.com +vullesmemes.online +vuln.space +vulnerable.host +vulsiket.cf +vulsiket.ga +vulsiket.gq +vulsiket.tk +vultiasu.cf +vultiasu.ga +vultiasu.gq +vultiasu.ml +vultrvultr.com +vumaenergy.com +vumaevergy.com +vumparit.xyz +vumurt.org +vungchom.net +vunjrc.online +vuokuc.ru +vuongquocgowin.com +vup.moe +vupnews.com +vupvtb.com +vupwiki.com +vuqpid.us +vurbmedia.com +vurzoukewaq.ru +vusasoi3.site +vusd.net +vushocsgo.xyz +vutdrenaf56aq9zj68.cf +vutdrenaf56aq9zj68.ga +vutdrenaf56aq9zj68.gq +vutdrenaf56aq9zj68.ml +vutdrenaf56aq9zj68.tk +vuv9hhstrxnjkr.cf +vuv9hhstrxnjkr.ga +vuv9hhstrxnjkr.gq +vuv9hhstrxnjkr.ml +vuv9hhstrxnjkr.tk +vuvomarket.site +vuvuive.xyz +vuylkan.com +vuylu5.host +vuyulryu.xyz +vuzimir.cf +vv18269.com +vv3b.icu +vv7665.com +vv9094.com +vv9827.com +vvb3sh5ie0kgujv3u7n.cf +vvb3sh5ie0kgujv3u7n.ga +vvb3sh5ie0kgujv3u7n.gq +vvb3sh5ie0kgujv3u7n.ml +vvb3sh5ie0kgujv3u7n.tk +vvcc777.com +vve-ripperdahof.online +vventrachicago.com +vvg94.space +vvgmail.com +vvimbog.site +vvimboo.site +vvitrik.site +vvizion.site +vvlvmrutenfi1udh.ga +vvlvmrutenfi1udh.ml +vvlvmrutenfi1udh.tk +vvng8xzmv2.cf +vvng8xzmv2.ga +vvng8xzmv2.gq +vvng8xzmv2.ml +vvng8xzmv2.tk +vvolkov.top +vvoondun.site +vvoozzyl.site +vvopzc.shop +vvs.su +vvs3s.com +vvuti.ru +vvv813.com +vvvnagar.org +vvvpondo.info +vvvulek8.xyz +vvvv.de +vvvvv.uni.me +vvwbaidu.com +vvwin.com +vvx046q.com +vvyolr.site +vw-ag.tk +vw-audi.ml +vw-cc.cf +vw-cc.ga +vw-cc.gq +vw-cc.ml +vw-cc.tk +vw-eos.cf +vw-eos.ga +vw-eos.gq +vw-eos.ml +vw-eos.tk +vw-seat.ml +vw-skoda.ml +vw5opi.us +vw7w.com +vw8w.com +vwavkb.info +vwazamarshwildlifereserve.com +vwdiscount.online +vwdvpnxsm.shop +vwengh.xyz +vwhitetoothbrush.com +vwhomedecor.com +vwivod.rest +vwlk1i.us +vwolf.site +vworangecounty.com +vwqftf.us +vwstk.buzz +vwtedx7d7f.cf +vwtedx7d7f.ga +vwtedx7d7f.gq +vwtedx7d7f.ml +vwtedx7d7f.tk +vwugsdlro.ml +vwwape.com +vwwbaidu.com +vwydus.icu +vwzagoujq.shop +vxa34.space +vxc.edgac.com +vxcae9z14z.xyz +vxcs.pro +vxeqzvrgg.pl +vxhdtlud.shop +vxinzlno.xyz +vxmail.top +vxmail2.net +vxmlcmyde.pl +vxqkogil.shop +vxqt4uv19oiwo7p.cf +vxqt4uv19oiwo7p.ga +vxqt4uv19oiwo7p.gq +vxqt4uv19oiwo7p.ml +vxqt4uv19oiwo7p.tk +vxvcvcv.com +vxvv.net +vxwiew.site +vxxx.fun +vxznq.com +vy-sale.online +vy-sale.ru +vy555.com +vy69pr.us +vy7c9u.com +vy89.com +vy8iyh.com +vyajiponchoc.xyz +vydoei.rest +vyehg.us +vygsale.top +vyhade3z.gq +vyineily.com +vyjeku.info +vyjti-zapoya-pomoshchyu.ru +vykupavto1.ru +vylkinkz.xyz +vylqsc.us +vympelpravo.ru +vyrski4nwr5.cf +vyrski4nwr5.ga +vyrski4nwr5.gq +vyrski4nwr5.ml +vyrski4nwr5.tk +vytevident.com +vzanguard.com +vze0w.us +vziskaliment.xyz +vziskatosago.ru +vzlom4ik.tk +vzml.us +vzodv.com +vzpuj.com +vzroslyekartinki.ru +vzrxr.ru +vztc.com +vztu4a1r21hkmst.com +vzvqdh.site +vzwrdwggkv.host +vzwv6test.com +vzyat-ssudy.ru +w-amst.ru +w-asertun.ru +w-lo.top +w-oproz.ru +w-shoponline.info +w.comeddingwhoesaleusa.com +w.polosburberry.com +w03nmjqtx.site +w09xyeb3w.site +w0ht.us +w12io.space +w12qt.space +w12wc.space +w13sr.space +w15xx.space +w1775.com +w17ac.space +w17hs.space +w19oi.space +w1pars.online +w20al.space +w20tb.space +w2203.com +w22fe21.com +w22pj.space +w23ex.space +w24gs.space +w25nx.space +w25vz.buzz +w27qo.space +w2858.com +w2fdsqdhgr.xyz +w2go.xyz +w2yq4x-mail.xyz +w30gw.space +w310.club +w312.club +w313.club +w315.club +w31cy.space +w32qm.space +w33wq.space +w33yu.space +w34ct.space +w34nu.space +w34sf.space +w35ez.space +w35so.space +w37il.space +w37xg0.com +w3fun.com +w3internet.co.uk +w3k6sm.info +w3kit.ru +w3kv2e.us +w3mailbox.com +w3ur4.com +w3windsor.com +w41di.space +w41dm.space +w41lj.space +w41yn.space +w42fq.space +w42hm.space +w44hh.space +w44xf.space +w45678.com +w45ex.space +w45k6k.pl +w46db.space +w47al.space +w47rl.space +w4f.com +w4files.xyz +w4i3em6r.com +w4iaj.us +w4ms.ga +w4ms.ml +w50h.com +w58h.com +w5955.com +w5gpurn002.cf +w5gpurn002.ga +w5gpurn002.gq +w5gpurn002.ml +w5gpurn002.tk +w5p.ru +w5q.ru +w5t.ru +w634634.ga +w656n4564.cf +w656n4564.ga +w656n4564.gq +w656n4564.ml +w656n4564.tk +w6840.com +w6867.com +w6890.com +w68vn.com +w6att2c39zyj22i.xyz +w6mail.com +w6r9cs71xbbzwod.xyz +w6rz6j0ply1oppp.xyz +w6veyq.com +w7082.com +w70h.com +w70ptee1vxi40folt.cf +w70ptee1vxi40folt.ga +w70ptee1vxi40folt.gq +w70ptee1vxi40folt.ml +w70ptee1vxi40folt.tk +w777info.ru +w7l6tv.us +w7vcxs.online +w7wdhuw9acdwy.cf +w7wdhuw9acdwy.ga +w7wdhuw9acdwy.gq +w7wdhuw9acdwy.ml +w7wdhuw9acdwy.tk +w7zmjk2g.bij.pl +w8196.com +w888b.com +w888info.com +w888me.com +w88biz.com +w88first.com +w88good.com +w88id.xyz +w88shop.com +w88th.asia +w88th.one +w88vipen.com +w88w88.info +w88x3.com +w88yd0.com +w88yd2.com +w88yd4.com +w88yd5.com +w8fll.info +w8i8n.com +w8u55.com +w8u66.com +w8u77.com +w8u88.com +w8xo.us +w90h.com +w918bsq.com +w9339.com +w93o.us +w94ofm0z.icu +w9969.com +w9d23w.us +w9f.de +w9y9640c.com +w9zen.com +wa.itsminelove.com +wa010.com +waa03.info +waariswaldo.online +waasorchestrator.com +wackov.com +wacopyingy.com +wadawdawd.ru +waddayareckon.com +wadeeni.net +wadegriffinroofing.com +wadfes.ml +wadifa55.work +wadigum.cf +wadigum.ga +wadigum.gq +wadigum.ml +wadigum.tk +wadiz.blog +waelectrician.com +wafaz.com +wafege.info +wafflebrigadecaptain.net +waffwlwolf.live +wafrem3456ails.com +waftage.site +wafture.site +wagerrcore.com +wagerrcore.org +wagerrwallet.com +wagertalkpicks.com +wagfused.com +waggadistrict.com +waggeli.icu +waggy.media +waggy.toys +waggy.vacations +wagon58.website +wahab.com +wahalfpricedlistings.com +wahalfpricelisting.com +wahalfpricelistings.com +wahana888.org +wahart.store +wahch-movies.net +wahl-beret.online +wahlprofessional.ru +wahltek.biz +waibavic.cf +waibavic.ga +waibavic.gq +waibavic.ml +waibavic.tk +waifu.club +waifufigures.com +waifumail.ml +waikikieasthotel.com +waikinyxt.site +waimate.info +wait.cf +waitingjwo.com +waitslab.site +waitulea.cf +waitulea.ga +waitulea.ml +waitulea.tk +waivcoin.com +wajikethanh96ger.gq +wakabook.xyz +wakacje-e.pl +wakacjeznami.com.pl +wakaface.site +wakaface.xyz +wakainfo.site +wakatopinfo.site +wake-up-from-the-lies.com +wakescene.com +wakingupesther.com +walala.org +waldboard.biz +waldboard.com +waldemar.ru +waldened.net +waldlecum.cf +waldlecum.ga +waldlecum.gq +waldlecum.ml +waldlecum.tk +waldronpropertysolutionsllc.com +walepy.site +walgioci.cf +walgioci.ga +walgioci.gq +walgioci.ml +walgioci.tk +walizu.com +walk2metro.com +walkandtalk.app +walkerhill.shop +walkerroadchiropractic.com +walking-holiday-in-spain.com +walking-water.com +walkinremembrance.com +walkkiyo.ml +walkmail.net +walkmail.ru +walkritefootclinic.com +walkthiswaypaths.shop +wall-street.uni.me +wall5droid.ru +walldepha.cf +walldepha.ga +walldepha.gq +walldepha.ml +walldepha.tk +walletsshopjp.com +wallfit.me +wallingtalks.com +wallm.com +wallofcoins.org +wallpaperfren.com +wallpaperlive.org +wallpaperpedia.club +wallrkvagfg.email +walls4homes.com +wallsmail.men +wallsoo.com +wallstreetcn.live +wallus.casinokun.hu +walmart-eshop.com +walmart-site.com +walmart-web.com +walmarte-shop.com +walmarteshop.com +walmarteshops.com +walmartnet.com +walmartonlines.com +walmartpartners.com +walmartshops.com +walmartsites.com +walmartsoftware.com +walmartsshop.com +walmarttonlines.com +walmarttshops.com +walmartttonlines.com +walmartttshops.com +walmarttttonlines.com +walmarttttshops.com +walmartttttonlines.com +walmartttttshops.com +walmartwebs.com +walmartwebsites.com +walotu.site +walshpoems.com +walsinghamsociety.org +walter01.ru +walterchu.com +walterhgottschalk.org +walternal.info +waltoncomp.com +waltonor.buzz +waltpanko.net +waltsbeefjerky.net +waltsworkwearstore.com +walvoper.cf +walvoper.ga +walvoper.gq +walvoper.tk +wam-blog7.site +wam-blog8.site +wamdabiz.com +wampsetupserver.com +wanadoo.com +wanari.info +wancloud.ru +wander.love +wanderdszx.site +wanderingstarstudio.com +wanderlust.host +wandershopper.xyz +wanetwork.us +wangansheep.com +wangiparfum.info +wanglouyouxiluntan.xyz +wangluojingyingchangsuo.shop +wangsili.space +wangye.pub +wanhuiyule.net +wanida.se +wanitasukses.com +wanko.be +wanlzy.xyz +wanminle.com +wannabuyit.website +wanoptimization.info +want2lov.us +want2makemoneynow.com +wantisol.gq +wantisol.ml +wantisol.tk +wantplay.site +wantresult71.online +wantresultkzn.ru +wants.dicksinhisan.us +wants.dicksinmyan.us +wantsuccess.ru +wanttocum.com +wantwasherdryerparts.site +wantwp.com +wanxing-yl.com +wap8037.com +wap9827.com +wapclub.ru +wapenshaw.xyz +wapgwh.site +wapixdev.com +wapl.ga +wappay.xyz +wappia.app +wapqus.com +wapsound.ru +wapsportsmedicine.net +wapstores.org +waptube.site +wapxxx.site +wapyello.gq +waqoodtech.com +war-gift.ru +waratishou.us +warau-kadoni.com +warbet365.net +warbfisa.cf +warbfisa.ga +warbfisa.gq +warbfisa.tk +warblespe.cf +warblespe.ga +warblespe.gq +warcandde.cf +warcandde.ga +warcandde.gq +warcandde.ml +warcraftwallpapers.com +wardarabando.com +wardcabinetworks.com +wardenrant.com +wardlile.cf +wardlile.ga +wardlile.gq +wardlile.ml +wardlile.tk +wardprodun.ga +wardprodun.gq +wardprodun.ml +wardprodun.tk +wardwamse.cf +wardwamse.ga +wardwamse.gq +wardwamse.ml +wardwamse.tk +waredbarn.com +warehambowls.club +warehouse-flooring.com +warehouseofthebooks.site +warepool.com +warezbborg.ru +wareznulled.com +wareztalk.org +warfile.ru +warfingers.xyz +wargot.ru +waridsolutions.info +warjungle.com +warman.global +warmiki.ru +warmnessgirl.com +warmnessgirl.net +warmorop.gq +warmorop.ml +warmorop.tk +warmroofs.com +warmthday.com +warmthday.net +warmynfh.ru +warna222.com +warnabandarqnet.com +warnatoto.com +warnbuilding.com +warned.email +warnednl2.com +warnedwahen.cf +warnerbrobrewco.com +warnerwave.xyz +warning-10by25.stream +warnomics.com +waroengdo.store +waronrent.org +warp2p.com +warqaat.com +warranty.legal +warrenbuffetsnextdoor.com +warrenbuffett.org +warrenforpresident.com +warringalpublications.com +warriorhaze.com +warriorhemp.com +warriorpls.com +warriorsoul.clothing +warriorssweat.com +warriorsvscavs.info +warruga.com +warschauermusicstore.com +warskill.ru +waru88.xyz +waruh.com +warungku.me +warungsanak.com +warwickattorneys.com +warwickrealestateagents.com +wasabi-75.ru +wasabimalahide.com +wasanii.africa +wasatchpestcontrol.net +waschservice.de +wasd.dropmail.me +wasd.netmail.tk +wasdfgh.cf +wasdfgh.ga +wasdfgh.gq +wasdfgh.ml +wasdfgh.tk +wasenm12.xyz +wasenm15.xyz +wasenm16.xyz +wasenm19.xyz +wasenm22.xyz +wasenm25.xyz +wasenm26.xyz +wasenm33.xyz +wasenm36.xyz +wasenm39.xyz +wasenm40.xyz +wasenm41.xyz +wasenm42.xyz +wasenm45.xyz +wasenm46.xyz +wasenm47.xyz +wasenm53.xyz +wasenm55.xyz +wasenm6.xyz +wasenm64.xyz +wasenm68.xyz +wasenm71.xyz +wasenm72.xyz +wasenm78.xyz +wasenm83.xyz +wasenm85.xyz +wasenm86.xyz +wasenm87.xyz +wasenm89.xyz +wasevgjkg.shop +washdye.com +washi.store +washingmachines2012.info +washington-ttv.com +washingtonfeb.com +washingtongarricklawyers.com +washingtonmsn.com +washingtonrose.net +washingtonrose.org +washingtontitleandescrow.org +washingtonttv.com +washingtonweddingco.com +washstnqzz.ru +wasistforex.net +waskitacorp.cf +waskitacorp.ga +waskitacorp.gq +waskitacorp.ml +waskitacorp.tk +waslangewaehrtwirdendlichwar.love +wasp-reach.com +wasptemo.cf +wasptemo.ga +wasptemo.gq +wasptemo.ml +wasptemo.tk +wasse-asxzer.ru +wastecrea.xyz +wastefulaf.com +wastefunds.online +wastesli.xyz +wasteslic.xyz +wastespac.buzz +wastimenin.site +watacukrowaa.pl +watashiyuo.cf +watashiyuo.ga +watashiyuo.gq +watashiyuo.ml +watashiyuo.tk +watch-arb8.site +watch-harry-potter.com +watch-tv-series.tk +watchbotmail.org +watchclickbuyagency.com +watchclubonline.com +watchcontrabandonline.net +watchdairy.site +watchelements.asia +watches-mallhq.com +watchesbuys.com +watcheset.com +watchesforsale.org.uk +watcheshq.net +watchesju.com +watchesnow.info +watchesshop.futbol +watchestiny.com +watchever.biz +watchforums.org +watchfree.org +watchfull.net +watchfull.org +watchhaking.cf +watchhaking.tk +watchheaven.us +watchhosfold.cf +watchhosfold.ga +watchhosfold.gq +watchhosfold.ml +watchhosfold.tk +watchironman3onlinefreefullmovie.com +watchkingofthehill.info +watchmanonaledgeonline.net +watchmoviesonline-4-free.com +watchmoviesonlinefree0.com +watchmtv.co +watchnowfree.com +watchnsfw.com +watchofficial.ru +watchpart.com +watchpinoytambayan.ru +watchreplica.biz +watchreplica.org +watchsdt.tk +watchshak.recipes +watchstifva.cf +watchstifva.ga +watchstifva.gq +watchstifva.ml +watchthedevilinsideonline.net +watchti.icu +watchtre.xyz +watchtrea.xyz +watchtruebloodseason5episode3online.com +watchtvcoin.com +watchunderworldawakeningonline.net +watcstation.com +watdafuq.com +watdoigot.com +water-freedom.com +waterbedblog.com +watercoloraquariumgallery.com +waterhudcj.space +waterlifetmx.com.mx +waterlifetmx2.com.mx +waterloodoctors.com +waterloorealestateagents.com +watermarkmoso.com +waterparkphuket.fun +waterpointemortgage.com +waterqualityassociation.net +waterservice.xyz +watersit.site +waterso.com +watersportsmegastore.com +watertaxionlakegeorge.com +watertec1.com +watertinacos.com +watertownsbestsummercamp.com +wateruh.com +waterus2a.com +waterusa.com +wathie.site +wathuncont.cf +wathuncont.gq +wathuncont.tk +watingdiv.com +watkacukrowa.pl +watkinsmail.bid +watsonvilleapartments.com +watsonvilledoctors.com +watsonvillerentals.com +wattonmi.buzz +wattpad.pl +waucisni.cf +waucisni.gq +waucisni.tk +waudomen.space +wav257.com +waveneyhousehotel.com +waverlyohsa.info +wavescientist.com +wavesplatfom.ru +wavesplotform.ru +wavr.org +wawa990.pl +wawan.org +wawaterfilters.com +wawi.es +wawinfauzani.com +wawobuild.com +wawstudent.pl +wawuo.com +waxdesign.ru +waxyme.info +way-to-pay.space +way-to-pay.website +way2bargain.com +way2iceland.ru +wayacepaytl.com +waybet.ru +waybmw.com +wayofthesufi.com +waypayblock.com +ways2getback.info +ways2lays.info +wayszo.com +wayto.info +waywuygan.xyz +wayza.com +wazabi.club +wazino.bet +wazino777.bet +wazow.com +wazqup.us +waztempe.com +wb-master.ru +wb24.de +wbdev.tech +wbdymzon.shop +wbfre2956mails.com +wbfxaffiliate.com +wbhyzb.com +wbidfc.com +wbieszczady.xyz +wbkqcw.site +wbmkr0.us +wbml.net +wbn.bingo +wbnckidmxh.pl +wbngl0bal.net +wbqhurlzxuq.edu.pl +wbr.global +wbr.reviews +wbr21.site +wbrchristian.com +wbryfeb.mil.pl +wbseoseo.com +wbt24f.us +wbwck.us +wc-api-fjc--2.com +wc-api-fjc--4.com +wc-api-fjc--5.com +wc2ttpxd7o0y9np.xyz +wca.cn.com +wcapedhgh.shop +wccoba.org +wcddvezl974tnfpa7.cf +wcddvezl974tnfpa7.ga +wcddvezl974tnfpa7.gq +wcddvezl974tnfpa7.ml +wcddvezl974tnfpa7.tk +wcfzw.info +wcgnv.us +wchatz.ga +wcheat.xyz +wchhka.us +wclc.net +wclxwo.site +wco9zb.us +wcpuid.com +wcpww.info +wcqrg6.com +wcrpw.info +wcsoxefen.shop +wctpw.info +wcus6s.us +wcxnbu.best +wczasy.com +wczasy.nad.morzem.pl +wczasy.nom.pl +wd-shop.online +wd0payo12t8o1dqp.cf +wd0payo12t8o1dqp.ga +wd0payo12t8o1dqp.gq +wd0payo12t8o1dqp.ml +wd0payo12t8o1dqp.tk +wd5vxqb27.pl +wdaus1.us +wdbanyak.org +wdcloud.ru +wddfeg.xyz +wddgw.info +wddsocial.com +wdge.de +wdinengz.shop +wdiscount.online +wditu.com +wdjc.us +wdlyw.info +wdnotifications.com +wdplgwfsi.shop +wdr8tx.info +wdrecipes.com +wdrzw.info +wdsfbghfg77hj.gq +wdvhw1.site +wdw.ru +wdwot.com +wdx4.com +wdxgc.com +wdzsw.info +we-are-replay.com +we-dwoje.com.pl +we-lose.site +we-love-life.com +we.lovebitco.in +we.qq.my +we1j3y.us +we33pin.xyz +we34.space +we37.space +we40.space +we43.space +we55pin.xyz +we66pin.xyz +we77pin.xyz +we9pnv.us +weahteronline.com +wealth-mastermind.com +wealthbargains.com +wealthinusa.com +wealthru.club +wealthymoney.pw +weammo.xyz +weaponofmusicaldefence.com +wearableobjects.com +wearablesculpture.com +wearcocaine.online +weareallcavemen.com +weareallgamers.com +wearechange.site +wearefairfashion.cat +wearefairfashion.se +wearelantian.net +weareobodo.com +wearerootedinexcellence.com +wearethepeople.site +weareworkcomp.com +wearewynwood.com +wearewynwood.org +wearinguniforms.info +wearitonmyface.com +wearsn.com +wearsti19.tk +wearwoolf.space +weaseling606tw.online +weasity.ru +weatherdakar.com +weatherest.com +weatherrootfirefight.best +weatherslawblog.com +weave.email +weave.xyz +weavestixscalpscratcher.com +weavingbeads.host +web-contact.info +web-design-malta.com +web-design-ni.co.uk +web-development-companies-uae.info +web-email.eu +web-emailbox.eu +web-experts.net +web-gravitation.ru +web-ideal.fr +web-inc.net +web-kamere-za-odrasle-online.fun +web-mail.pp.ua +web-mail1.com +web-maill.com +web-mailz.com +web-model.info +web-novosti.ru +web-ryugaku.net +web-site-sale.ru +web-sites-sale.ru +web-solution.shop +web-wingmen.com +web.discard-email.cf +web2mailco.com +web2rss.com +web2web.bid +web2web.stream +web2web.top +web3411.de +web3437.de +web3453.de +web3561.de +webadilly.com +webadsprotectonline.club +webaff.com +webaheadstudios.com +webanalyticsalert.com +webandgraphicdesignbyphil.com +webarnak.fr.eu.org +webasto.ltd +webauth.shop +webauthn.cloud +webaward.online +webbamail.com +webbear.ru +webbiesharing.com +webbithosting.org +webbizprofit.com +webbox.biz +webbsfunny.com +webbusinessanalysts.com +webcache.site +webcam-strip.com +webcamchiks.com +webcamia.com +webcamjobslive.com +webcamrobots.com +webcams-girls.com +webcamsex.de +webcamsjapan.com +webcamtests.net +webcamwithme.com +webcamzilla.com +webcare.tips +webcarta.com +webcchelp.com +webcity.ml +webcity.tk +webcms.app +webcoffe.ru +webcontact-france.eu +webcool.club +webcoworking.ru +webcperbri.cf +webcperbri.ga +webcperbri.gq +webcperbri.tk +webdeal.biz +webdesign-guide.info +webdesign-romania.net +webdesignlabratory.com +webdesignspecialist.com.au +webdesigrsbio.gr +webdespro.ru +webdev-pro.ru +webeditonline.info +webemail.me +webemailtop.com +webet188tiga.net +webet24.biz +webet24.live +webex.expert +webfilm.online +webfin.top +webfreemanual.asia +webgameawards.com +webgamesclub.com +webgenic.online +webgirlsinternational.com +webgmail.info +webgravitation.ru +webhane.com +webharden.com +webharden.net +webhocseo.com +webhomes.net +webhook.online +webhostchart.com +webhostfarm.com +webhostingbuzz.org +webhostingdomain.ga +webhostingjoin.com +webhostingsimplicity.com +webhostingtable.com +webhostingwatch.ru +webhostingwebsite.info +webide.ga +webinar-kochandkarki.live +webinfoservices.website +webingways.com +webird.se +webjet.rentals +webkatalog1.org +webkiff.info +webkiper.ru +webkitfoundation.net +webkitfoundation.org +webkizlar.com +webkizlar.net +webkoffe.ru +weblab34.ru +weblenders.ru +webleverancier.com +weblima.info +weblovein.ru +webm1.xyz +webm4il.in +webm4il.info +webmail.flu.cc +webmail.igg.biz +webmail.kolmpuu.net +webmail24.to +webmail24.top +webmail360.eu +webmail4.club +webmaild.net +webmailforall.info +webmailn7program.tld.cc +webmails.top +webmails24.com +webmastercommerce.com +webmastergrounds.com +webmcampvi.cf +webmcampvi.ga +webmcampvi.gq +webmcampvi.ml +webmeetme.com +webmind-glu.online +webmind-glu.shop +webname.cloud +webnavster.com +webnet.cd +weboka.info +webonofos.com +webpersonalshopper.biz +webphanmem.net +webpinoyako.ru +webpinoyteleserye.ru +webpinoyteleserye.su +webpix.ch +webpoets.info +webpoker99.live +webpozdravka.ru +webpreserv.com +webpro24.ru +webrepository.ru +webryugaku.com +webservers.info +webserverwst.com +webshop.website +websitebod.com +websitebody.com +websitebooty.com +websitecheckin.com +websiteconcierge.net +websitedesignjb.com +websitedomain.website +websiteflags.com +websiteforbusiness.info +websitegalore.net +websitehostingserverindia.com +websitehostingservices.info +websitemoves.net +websiteproekt.ru +websiterank.com +websiteregistrationrequest.com +websitevsfunnel.com +websock.eu +websorcery.com +webspor76.com +webspor78.com +webspor82.com +webspor90.com +webstart.host +webstarter.xyz +websterinc.com +webstesting.com +webstoremy.site +websubtopnew.club +webtalk-reviews.com +webtare.cf +webtare.ga +webtare.gq +webtare.ml +webtasarimi.com +webtechmarketing.we.bs +webteleserye.ru +webtempmail.online +webtimereport.com +webting-net.com +webtoon.club +webtown2.com +webtown3.net +webtrip.ch +webuiltyoursite.com +webuser.in +webuyahouse.com +webuydayton.net +webuyhudsonvalleyhouses.com +webwallet.exchange +webx5.royal-almas.it +webxengine.com +webxphp.ru +webyzonerz.com +webziliao.com +webzone.icu +wecantaffordtowait.com +wecarepropertybuyers.com +wecell.net +weclickers.ru +wecloud.buzz +wecmail.cz.cc +wecmon.org +wecookittakeaway.com +wedbank.ru +wedding-lombok.com +weddingalley.net +weddingcopenhagen.com +weddingcrawler.com +weddingdating.info +weddingdressaccessory.com +weddingdresseszone.com +weddingdressparty.net +weddingfurniture.net +weddingily.com +weddinginsurancereviews.info +weddinglombok.com +weddingofficiant.vegas +weddingplannernews.com +weddingrepublic.com +weddingringsinfo.com +weddings.cd +weddingslombok.com +weddingsontheocean.com +weddingtop.site +weddingvenuexs.com +wedeliverknowdledge.info +wederaser.cf +wediapanel.online +wediapanel.xyz +wediasoft.com +wedigjobs.org +wednesburydirect.info +wednesdaylaura.com +wednesdaymovo.com +wedooos.cf +wedooos.ga +wedooos.gq +wedooos.ml +wedostuffwell.net +wedpurpleyet.website +wedvine.com +wee.my +weeatbricks.com +weebsterboi.com +weed.monster +weeditopia.com +weedseedsforsale.com +weegal.com +weekendemail.com +weeklion.com +weeklydozen.today +weekmovie.org +weekom.fr +weemanlivetv.live +weenmyip.com +weeping-willow.shop +weepingdragon.net +weer.de +weeya22.com +wef.gr +wefeelgood.tk +wefjo.grn.cc +wefky.com +wefod1.site +weftsealer.com +weg-beschlussbuch.de +weg-werf-email.de +wegas.ru +wegenbouw.works +wegetall.store +wego-delivery.com +wegolo.se +wegoloblogs.com +wegwerf-email-addressen.de +wegwerf-email-adressen.de +wegwerf-email.at +wegwerf-email.de +wegwerf-email.net +wegwerf-emails.de +wegwerfadresse.de +wegwerfemail.com +wegwerfemail.de +wegwerfemail.info +wegwerfemail.net +wegwerfemail.org +wegwerfemailadresse.com +wegwerfmail.de +wegwerfmail.info +wegwerfmail.net +wegwerfmail.org +wegwerpmailadres.nl +wegwrfmail.de +wegwrfmail.net +wegwrfmail.org +wehealasone.cf +wehnerrapids.buzz +weho.monster +wehungry.hk +weibomail.net +weiborss.com +weightbalance.ru +weighted.reviews +weightloss.info +weightlossandhealth.info +weightlossidealiss.com +weightlossketo.shop +weightlossmetrics.com +weightlosspak.space +weightlossremedy.icu +weightlossshort.info +weightlossworld.net +weightoffforgood.com +weightrating.com +weihnachts-gruesse.info +weikemm.com +weil4feet.com +weildasjaklarist.vision +weildworks.org +weimoe.com +weimoe.net +weinisirenyulecheng.net +weinjobs.org +weipafa.cf +weipafa.ga +weipafa.ml +weipafa.tk +weipai.ws +weird3.eu +weirdcups.com +weirdfella.com +weirenqs.space +weishanghl.com +weishiwave.monster +weissdesignlab.online +weitong001.com +weiwep.us +weixincom1341.xyz +weixinlog.com +weixyz.com +weiyitou.net +weja.site +wejmx.com +wejr.in +welch-plc.com +welcome33.ru +welcomecitydublin.com +welcomehomeastbay.com +welcometocheap.site +welcoming.ong +weldir.cf +weldonrailroad.com +welgati.cf +welgati.ga +welgati.gq +welgati.ml +welgati.tk +welikecookies.com +well-well.xyz +well.brainhard.net +well108.biz +wellc.site +wellcelebritydress.com +wellcelebritydress.net +welldonev.xyz +wellensstarts.com +welleveningdress.com +welleveningdress.net +welleveningdresses.com +welleveningdresses.net +wellget.website +wellhungup.dynu.net +wellick.ru +wellmaek.com +wellmiderg.cf +wellmiderg.ga +wellmiderg.ml +wellmiderg.tk +wellnessanalytics.com +wellnesscentersofnorthtx.com +wellnesscreativemarketing.org +wellnessdom.ru +wellnessgeeksview.com +wellnessintexas.info +wellnessmarketing.solutions +wellnessthroughliving.com +wellnesswelder.com +wello.systems +wellpromdresses.com +wellpromdresses.net +wellsauthuserinfo.com +wellsfargoclassactionlawsuit.com +wellsfargocomcardholders.com +wellsummary.site +wellsupdatenewinfo.com +welltop24.ru +wellys37.ru +weloveketodiet.store +welshpoultrycentre.co.uk +weltentor.info +welypower.com +wem.com +wemel.site +wemel.top +wemesh.com +wemoveit2.com +wemzi.com +wencyphrasepedia.com +wendyalper.net +wendyalper.org +wendygoodhealthblog.com +wendyguest.com +wenegey.ru +wenghuo.com +wenjiong.com +wenku.moe +wenku0.com +wenkuapp.com +wensjuweel.online +wensjuweel.site +wentzvilleeyecenter.info +weoieng.space +weontheworks.bid +wepaycashforyourhouses.com +wephrr.us +weprintgroup.com +weprof.it +wepulaversion3alpha.xyz +wer.ez.lv +wer34276869j.ga +wer34276869j.gq +wer34276869j.ml +wer34276869j.tk +werbtghtry007fdgbn.monster +wercessdown.cf +wercessdown.ga +wercessdown.tk +werdiwerp.cf +werdiwerp.ga +werdiwerp.gq +werdiwerp.ml +werdiwerp.tk +were-having-a-party.life +wereviewbiz.com +werfat.xyz +weritharter.gq +werj.in +werkprocessen.app +werkr.com +wernunado.xyz +weroityr.ml +werparacinasx.com +werpbuna.ml +werpbuna.tk +werrmai.com +wersar.ru +wersollesdennsonstmachenaussergutti.vision +wersumer.us +wertacy.ga +wertacy.ml +wertaret.com +wertdrivatmo.website +wertheforscv.org +wertuoicikax10.site +wertuoicikax11.site +wertuoicikax8.site +wertxdn253eg.cf +wertxdn253eg.ga +wertxdn253eg.gq +wertxdn253eg.ml +wertxdn253eg.tk +wertyu.com +werw436526.cf +werw436526.ga +werw436526.gq +werw436526.ml +werw436526.tk +werwe.in +wes-x.net +wesandrianto241.ml +wesatikah407.cf +wesatikah407.ml +wesayt.tk +wesazalia927.ga +wescabiescream.cu.cc +wesd.icu +wesellchicagohomesfast.com +wesellhousesct.com +weselne.livenet.pl +weselvina200.tk +weseni427.tk +wesfajria37.tk +wesfajriah489.ml +wesgaluh852.ga +wesgebe.xyz +weshasni356.ml +weship2you.ru +weshutahaean910.ga +wesjuliyanto744.ga +weskusumawardhani993.ga +wesleytatibana.com +wesmailer.com +wesmailer.comdmaildd.com +wesmubasyiroh167.ml +wesmuharia897.ga +wesnadya714.tk +wesnurullah701.tk +wesruslian738.cf +wessastra497.tk +wessmsellsnc.com +west-african-energy.com +west-africanenergy.com +west-aussie.com +west.shop +westayyoung.com +westbendcomputer.com +westbendrental.com +westbranchtreasures.com +westbymontana.com +westchicagoofficecleaning.com +westconsin.mobi +westcrypt.com +westerlaken.icu +western24.site +westernavenuenissanespanol.com +westernbloggen.online +westervilleapartments.com +westfieldicedogs.com +westgatereservas.com +westin.media +westjeffersonarts.net +westjeffersonweddings.com +westjeffersonweddings.net +westjordanshoes.us +westlaketakeaway.com +westleyrichardsstore.com +westlocationserver921.com +westlund.info +westmailer.com +westmichiganclones.com +westmontchiropractor.com +westmontphysicaltherapist.com +westmontphysicaltherapyandrehab.com +westmountains.site +westmountains.website +westocrealty.com +westozzie.com +westpointbodrum.xyz +westsacramentodentists.com +westshockey.net +westsideservicecenter.net +weststarrealestate.com +westuckvethospital.com +westvalleyhospice.com +westvalleyhospicecare.com +westvirginiabbb.com +wesutui.com +wesw881.ml +weswibowo593.cf +weswidihastuti191.ml +wesyuliyansih469.tk +weszwestyningrum767.cf +wet-fish.com +wet-lip.com +wetacompany.ru +wetheprotocol.net +wetrainbayarea.com +wetrainbayarea.org +wetreasureyoursmiles.com +wetteliga25.com +wettertunesien.com +wettish.best +wetvibes.com +wewatestg2513.com +wewintheylose.com +wewtmail.com +wexdh.info +wexdh.ooo +weyfamily.com +weyuoi.com +wezo.tech +wezuwio.com +wf1110.com +wf2227.com +wf333.net +wf3337.com +wf4999.com +wf5559.com +wf558.com +wf7722.com +wf8111.com +wf8833.com +wf9666.com +wfacommunity.com +wfconcepts.info +wfdongyu.com +wfes.site +wfewyibw.shop +wffxtr.site +wfgdfhj.tk +wfggh995.com +wfgoldpin.ru +wfgun.ru +wfh.college +wfjngl.com +wfjsiks854.com +wfkyd.com +wfmarion.com +wfmeat.com +wfought0o.com +wfpukr.us +wfrijgt4ke.cf +wfrijgt4ke.ga +wfrijgt4ke.gq +wfrijgt4ke.ml +wfrijgt4ke.tk +wfsbw.com +wfuij1.site +wfupdateauthuser.com +wfupdatenewdev.com +wfwddl.com +wfxegkfrmfvyvzcwjb.cf +wfxegkfrmfvyvzcwjb.ga +wfxegkfrmfvyvzcwjb.gq +wfxegkfrmfvyvzcwjb.ml +wfxegkfrmfvyvzcwjb.tk +wg-replays.online +wg0.com +wg48fr-mail.xyz +wg7aey.us +wgberlin.org +wgbrothers.com +wgc89.com +wgdbwu.site +wgdmensmuscle.com +wgetcu0qg9kxmr9yi.ga +wgetcu0qg9kxmr9yi.ml +wgetcu0qg9kxmr9yi.tk +wgfrankfurt.org +wgfvim.us +wgkfdq.host +wgkoeln.org +wgnyw.info +wgraj.com +wgrazd.site +wgw365.com +wgweddxy.shop +wgwsgz.tokyo +wgztc71ae.pl +wh419.site +wh4f.org +whaaaaaaaaaat.com +whaaso.tk +whackedgangsters.com +whackedmobsters.com +whackedoutcriminals.com +whackyourboss.info +whadadeal.com +whalbum.ru +whale-mail.com +whale-should-cow-stuck.xyz +whale-watching.biz +whalechip.fund +whaletrue.com +whanntechnologygroup.com +what-the-falafal-dublin.com +whatdatnoise.com +whatdaywasthemost.com +whatharam.com +whatiaas.com +whatifanalytics.com +whatifcapital.com +whatifpartners.org +whatisbitcoin.org +whatisforskolin.xyz +whatismyipaddress.host +whatisnfc.com +whatistrust.info +whatistrust.org +whatlovers.com +whatmailer.com +whatnametogivesite.com +whatowhatboyx.com +whatpaas.com +whatsaas.com +whatsaduckdo.com +whatshalal.delivery +whatshouldibuypetetoday.com +whatsmyfeed.com +whatsmyspeed.info +whatsnew.events +whatsonmyballot.com +whatsresfa.cf +whatsresfa.ga +whatsresfa.gq +whatsresfa.ml +whatsresfa.tk +whatsthepointofaventura.com +whatthefeast.com +whatwewant.live +whatworkscsc.org +whatyourdoctorwasnttaughtebook.com +whdentalstudio.xyz +wheatbright.com +wheatbright.net +wheatsunny.com +wheatsunny.net +wheelbalancetraining.net +wheelbarrow.red +wheeldown.com +wheelemail.com +wheelie-machine.pl +wheelingfoods.net +wheels-club.ru +whemmle.xyz +whenex.com +whenkids.ru +whenstert.tk +whentake.org.ua +whentheycry.com +whenwillmychild.com +whenxrp.com +wherebeesmeet.com +wherecanibuythe.biz +whereismyairport.com +wherenever.tk +whereonrch.space +wheretoget-backlinks.com +whereuntil.xyz +whermt2.com +whgrid.com +whguyr.site +whhs.co.uk +whhsbdp.com +which-code.com +whichfoodsareinseason.com +whichloadsfaster.org +whidbees.com +whiffles.org +whikere.cf +whikere.ga +whikere.gq +whikere.ml +whilezo.com +whimdinil.cf +whimdinil.ga +whimdinil.gq +whimdinil.ml +whimdinil.tk +whipamo.tk +whiplashh.com +whirdilt.website +whirlwinds.xyz +whisenhuntdesign.com +whiskey.xray.ezbunko.top +whiskeyalpha.webmailious.top +whiskeygolf.wollomail.top +whiskeyiota.webmailious.top +whiskeynotes.com +whiskonzin.edu +whiskygame.com +whislmilsfar.cf +whislmilsfar.ga +whislmilsfar.gq +whislmilsfar.ml +whislmilsfar.tk +whispercities.org +whisperfocus.com +whispers-from-above.com +whispersum.com +whistleapp.com +whitdentezk.com +white-hands.net +white-hands.org +white-legion.ru +white-oak-brain.com +white-teeth-premium.info +white-tips.com +whitealligator.info +whitearkitekter.us +whiteazurro.com +whitebeachresort.net +whitebearlakeapartments.com +whitebison.info +whiteboss.net +whitebot.ru +whiteboxnetwork.org +whitedentezm.com +whitedentezn.com +whitedice.fun +whitedoggdetroit.com +whiteflowers.site +whitehall-dress.ru +whitehall-solutions.com +whitehat.markets +whitehousemeats.com +whitekazino.com +whitekidneybeanreview.com +whitelabelextracts.org +whitelinehat.com +whitemail.ga +whitemoosecafe-d7.com +whitenorthcard.com +whiteowlcigars.biz +whitepeoplearesoweird.com +whiteprofile.tk +whiterhum.com +whitesearch.net +whiteseoromania.tk +whiteshagrug.net +whiteshirtlady.com +whiteshirtlady.net +whiteskgfv.space +whitespee.icu +whitesteak.com +whitesteaks.com +whitetaildreamsre.com +whiteteeth-tcmpc.com +whitetiger.tools +whitetrait.xyz +whiteunit.icu +whiteutt.icu +whitewaterawards.org +whitewro.recipes +whitneyartparty.org +whiz.dev +whizdom.app +whizdom.biz +whizdom.net +whj1wwre4ctaj.ml +whj1wwre4ctaj.tk +whkart.com +whkfyy.com +whkw6j.com +whkwj.com +whlevb.com +whmailtop.com +whmwcy.com +whnp.us +who95.com +whoamail.co +whocalled.xyz +whodamanny.com +whodj.com +whodj.net +whohq.us +whoisandygrant.com +whoishussainiran.com +whoisless.com +whoissteviej.com +whoisya.com +whole-foods.ru +wholearth.org +wholebet3.com +wholecustomdesign.com +wholefoodrunner.com +wholegraincooker.com +wholegrainresources.com +wholegrainshop.com +wholelifetermlifeinsurance.com +wholepeoplemedia.com +wholeranc.xyz +wholesale-belts.com +wholesale-cheapjewelrys.com +wholesalebag.info +wholesalecheap-hats.com +wholesalediscountshirts.info +wholesalediscountsshoes.info +wholesaleelec.tk +wholesalefavor.com +wholesalejordans.xyz +wholesalelove.org +wholesalepsilocybin.com +wholesaleshtcphones.info +wholesn.xyz +wholesna.icu +wholesomebotanical.com +wholesomefamilycooking.com +wholesomeniggamemes.com +wholestee.icu +wholete.xyz +wholetea.xyz +wholewidget.com +wholey.browndecorationlights.com +wholisticeden.com +whomshoulditip.com +whoold.site +whoox.com +whopy.com +whose-is-this-phone-number.com +whoshoulditip.com +whosthere.site +whotravel.ru +whowego.com +whowlft.com +whoyoushouldvotefor.com +whqywc.com +whstores.com +whszum.com +wht004.com +whtsqpp.com +why.edu.pl +whydelhis.info +whydoihaveacne.com +whydrinktea.info +whyexdi34gq.cf +whyexdigq.cf +whyglu.us +whyitthis.org.ua +whyiwantout.com +whymustcodes.net +whymustyarz.com +whynotjazz.org +whynottos.info +whyspam.me +whyworkhard.com +whzqozx.site +wiadomosc.pisz.pl +wiantygamecoffer.cf +wiantygamecoffer.ml +wibb.ru +wibblesmith.com +wibu.online +wicepay.org +wichitahometeam.net +wicked-game.cf +wicked-game.ga +wicked-game.gq +wicked-game.ml +wicked-game.tk +wicked-teens.com +wicked.cricket +wickeddvdsales.com +wickedgames.net +wickedhipstribal.com +wickedsecure.net +wickedticketspittsburgh.com +wickerby.com +wickerbydesign.com +wickerparkdentalil.com +wickmail.net +wicoco.com +wicollar.site +widaryanto.info +widatv.site +widelettings.xyz +wideline-studio.com +widelo.ru +widencatc.buzz +widencycl.xyz +widenequ.email +widenmeta.site +widenvide.xyz +wideopencomputer.com +widerska.ovh +widerwhite.com +wides.co +wideserv.com +widewhy.com +widewilliam.com +widgeon.org +widgepaste.com +widget.gg +widgmit.com +widows.info +widthgaf.email +widthgr.fun +widthgre.recipes +widthmouth.com +wie-zwischen-himmel-und-erde.de +wiebunkgi.ga +wiebunkgi.gq +wiebunkgi.ml +wiebunkgi.tk +wielkanocne-dekoracje.pl +wierie.tk +wiersmatenten.frl +wiese-consult.biz +wiesekey.com +wifesutensils.com +wifi-boost.shop +wifi-map.net +wifi-surge.com +wificon.eu +wifiyi.com +wig-catering.com.pl +wighn.icu +wigo4d.net +wigoclub.net +wigolive.com +wigsweet.com +wihalfpricelistings.com +wiibundledeals.us +wiipointsgen.com +wikaya.org +wiki24.ga +wiki24.ml +wikiacne.com +wikiafterdark.com +wikibola.net +wikidocuslava.ru +wikifar.com +wikifortunes.com +wikilibhub.ru +wikilimpieza.com +wikimediane.org +wikipedi.biz +wikipedia-inc.cf +wikipedia-inc.ga +wikipedia-inc.gq +wikipedia-inc.ml +wikipedia-inc.tk +wikipedia-llc.cf +wikipedia-llc.ga +wikipedia-llc.gq +wikipedia-llc.ml +wikipedia-llc.tk +wikiplanet.space +wikirefs.com +wikiserie.online +wikiserie.org +wikiserie.website +wikisite.co +wikiswearia.info +wikitunner.com +wiklysale.online +wikuiz.com +wil.kr +wilayone.com +wilbrahamhomevalue.com +wilbrahammahomevalue.com +wilburn.prometheusx.pl +wilburnbuckingbulls.com +wild-game.ru +wild.wiki +wildbeard.ru +wildberryyogurt.net +wildbluepublishing.com +wildcardstudio.art +wildetool.net +wildfilms.ru +wildgeesegolfsociety.net +wildlifepen.com +wildlifephotographyholidays.online +wildmountainseed.com +wildorqwpr.space +wildorqwpr.website +wildrasthr.space +wildstar-gold.co.uk +wildstar-gold.us +wildsusta.cf +wildsusta.ml +wildsusta.tk +wildthingsbap.org.uk +wilemail.com +wiliserie.club +wiliserie.host +wiliserie.online +wiliserie.org +wiliserie.site +wiliserie.website +wiliserie.xyz +wilkeaardema.info +wilkinsonms.com +wilkinspleckgarden.com +wilkun.xyz +will-yum.com +willakarmazym.pl +willemwakker.com +willette.com +willhackforfood.biz +william-tell-ballistics.com +williambowers.net +williamcastillo.me +williamkew.com +williamkhalick.realtor +williampatersonuniversity.com +williamrobinson.buzz +williamsburgisforgolflovers.com +williatkte.space +williaucvu.space +williebcochran.com +willleather.com +willloc.com +willm.cd +willner-ventures.com +willosel.cf +willosel.ga +willosel.gq +willosel.ml +willosel.tk +willowclothing.shop +willowhavenhome.com +willowkleding.online +willowkleding.shop +willowmattresses.com +willowtreeddental.com +willrazsi.cf +willrazsi.ga +willrazsi.gq +willrazsi.ml +willrazsi.tk +wills.guru +willselfdestruct.com +willymailly.com +willypopper.com +wilmatalks.se +wilmhba.com +wilmingtonrealestateagents.com +wilon0706384.xyz +wilon3000018.xyz +wilon3631867.xyz +wilon3951350.xyz +wilon4461641.xyz +wilon5707450.xyz +wilon6097856.xyz +wilon6322863.xyz +wilon6478376.xyz +wilon6702026.xyz +wilon7053973.xyz +wilon7746360.xyz +wilon9533166.xyz +wilon9600861.xyz +wilon9601599.xyz +wilon9602154.xyz +wilon9630049.xyz +wilon9634055.xyz +wilon9634558.xyz +wilon9649506.xyz +wilon9651371.xyz +wilon9658322.xyz +wilon9674110.xyz +wilon9676273.xyz +wilon9687326.xyz +wilon9691114.xyz +wilon9698394.xyz +wilon9711272.xyz +wilon9714738.xyz +wilon9714965.xyz +wilon9726374.xyz +wilon9739931.xyz +wilon9756029.xyz +wilon9757869.xyz +wilon9759538.xyz +wilon9782174.xyz +wilon9783874.xyz +wilon9794243.xyz +wilon9819104.xyz +wilon9825173.xyz +wilon9830966.xyz +wilon9843344.xyz +wilon9859733.xyz +wilon9937245.xyz +wilon9955293.xyz +wilon9974230.xyz +wilon9978419.xyz +wilon9980567.xyz +wilroptit.xyz +wilson-hsu.com +wilson.cd +wilsonbuilddirect.jp +wilsonexpress.org +wilsonsaberdare.com +wilsonsleather.info +wilyapps.com +wimbl.com +wimsg.com +win-123.com +win-2020.club +win-777.net +win-bet.space +win-clean.xyz +win-cool-prizes-today.buzz +win-get.online +win-reward-award-national.club +win-win-win-win-win-win.site +win-winto.site +win-your.site +win1000x.net +win11bet.org +win4d.online +win789.net +win9rolet.xyz +winallinpro.xyz +winalways.ru +winandplay.com +winanipadtips.info +winaniphone7.info +winbro.online +wincep.com +windharpswindchimes.com +windlady.com +windlady.net +windmaweek.cf +windmaweek.ga +windmaweek.gq +windmaweek.ml +windmaweek.tk +windmine.tk +windom.fun +window-55.net +windowconfigurator.com +windowoffice7.com +windows.sos.pl +windows8hosting.info +windows8service.info +windowsdedicatedserversindia.com +windowshelpme.ru +windowsicon.info +windowsmanageddedicatedserver.com +windowsmembership.com +windowsresellerwebhostinginindia.com +windowsunlimitedwebhosting.com +windrow.xyz +windsandfa.cf +windsandfa.ga +windsandfa.gq +windsandfa.ml +windsandfa.tk +windscribe.lol +windscribe.wtf +windscribeindir.com +windscriber.com +windshieldrepairtech.com +windsorrealestateagents.com +windsurfingintotheunknown.com +windycityui.com +windykacjawpraktyce.pl +windytransit.com +winebagohire.org +winecorkus.com +winedaddy.com +winemail.net +winemails.com +winemaven.in +winemaven.info +winesoda.com +winetastingdriver.net +winetastingdrivers.net +winetypeslist.com +winevacuumpump.info +winfine.website +winfire.com +winfreegifts.xyz +winftime.cf +winftime.ml +winftime.tk +wingamble.press +winginus.xyz +wingslacrosse.com +wingspkr.net +wingybubble.icu +winie.club +winifi.info +wink-scrubs.com +wink-versicherung.de +winkslab.com +winkuniformscrubs.com +winliga365.tips +winline-bonus.ru +winlinee.ru +winmail.org +winmail.world +winmails.net +winmiosports.com +winner-foryour-prizes11.life +winner-win.site +winneroqqld.email +winnersom.space +winnersom7.space +winnersqa7.space +winnersstores.com +winnerto.site +winneryourprize-supergut1.life +winniejames.com +winning365.com +winning365.social +winningcombi.xyz +winningeleven365.com +winnipegeventvideo.com +winnipegvideorecording.com +winnweb.net +winnweb.win +winong.top +winonlinerewards9.site +winoptimizer.com +winpayawardnational.club +winplay-casinox332.ru +winplay303.com +winplus24.com +winpublib.com +winpupe.cf +winpupe.ga +winpupe.gq +winregion.com +winrere.xyz +winrewardawardnational.club +wins-await.net +wins.com.br +wins.vote +winsbet88.org +winsdar.com +winslot97.net +winsomedress.com +winsomedress.net +winspins.party +winsrezde.cf +winsrezde.ga +winsrezde.gq +winsrezde.ml +winsrezde.tk +winstanleyspramworld.com +winter-solstice.info +winter-solstice2011.info +winterabootsboutique.info +winterafootwearonline.info +winteries.xyz +winterize843tp.online +wintersbootsonline.info +wintershop.icu +winterx.site +wintopaywin.fun +wintopaywin.host +wintopaywin.press +wintopaywin.space +wintopaywin.xyz +wintosa.info +wintowin18.com +wintowinz.site +winwin-77.net +winwin.realestate +winwincool.site +winwincool.website +winwinni.site +winwinus.xyz +winxmail.com +wip.com +wipaffillate.com +wipbet400.com +wipbet73.com +wipesshop.live +wira6d.info +wirasempana.com +wiratoto4d.xyz +wirawan.cf +wirawanakhmadi.cf +wire-shelving.info +wire.cd +wirebrush.biz +wirebrush.us +wirebrushes.us +wired-usa.com +wiredlifemag.com +wiredlifemagazine.com +wiredlivingmag.com +wiredlivingmagazine.com +wirednyc.com +wiredparis.com +wirefreeemail.com +wireless-alarm-system.info +wirelesspreviews.com +wiremail.host +wirepark.us +wirkel.site +wirkelantikored.site +wirkoennenjaauchgleichmckinseyanheuernwennssoweitergeht.vision +wirlwide.com +wirp.xyz +wirsindneuland.vision +wirtualnewiadomosci.space +wirull.site +wirwollenkeingelabermehr.vision +wirwox.com +wisans.ru +wisatajogja.xyz +wisataoperasiplastik.com +wisataseru.info +wisbuy.shop +wisconsincomedy.com +wisconsinlakehomefinder.com +wisdompublishers.com +wisdompush.com +wisdomsurvival.com +wisdomtime-healthmethod.com +wise-04.com +wise-06.com +wise-07.com +wise-08.com +wisechoiceinvestors.com +wiseeyessecurity.com +wisehomepurchasing.com +wiseideas.com +wisepromo.com +wiserspots.com +wisewad.net +wisfkzmitgxim.cf +wisfkzmitgxim.ga +wisfkzmitgxim.gq +wisfkzmitgxim.ml +wisfkzmitgxim.tk +wish-shoponline.info +wishan.net +wishboneengineering.se +wisheswide.com +wishlack.com +wispkz.ga +wit.coffee +wit123.com +witchermedallion.ru +witecollar.site +witel.com +witgoedexpo.online +with-u.us +withapi.net +withlove.sk +withlovedenise.com +withsflussurf.ga +withsflussurf.tk +withspark.com +withstar.se +witix.fun +wittenbergpartnership.com +wittfest.net +witty7.com +wittyotic.com +wity.site +wityjs.com +wix.creou.dev +wix.ptcu.dev +wixcmm.com +wixgdu.info +wixubou.space +wiyam.org +wiz2.site +wizaz.com +wizbangimages.com +wizerco.org +wizseoservicesaustralia.com +wizstep.club +wizzcar.space +wj5514.com +wj5517.com +wj7qzenox9.cf +wj7qzenox9.ga +wj7qzenox9.gq +wj7qzenox9.ml +wj7qzenox9.tk +wjblw.info +wjhndxn.xyz +wjjxxlib.com +wjkyw.info +wjs1001.com +wjs1006.com +wjs1007.com +wjs1009.com +wjzldt.us +wk-designedtowork.net +wk-designedtowork.se +wk376.com +wk5btj.info +wk853.com +wkbmcw.fun +wkbmwf.fun +wkcqw.info +wkd0as.info +wkdmyq.fun +wkernl.com +wkex.net +wkgmbb.fun +wkhaiii.cf +wkhaiii.ga +wkhaiii.gq +wkhaiii.ml +wkhaiii.tk +wkhmsr.fun +wkime.pl +wkjrj.com +wklik.com +wkmmzn.fun +wknmfp.fun +wkobe.us +wkoorts.fun +wkpmjm.fun +wkpmxt.fun +wkqmgq.fun +wkrmwr.fun +wkschemesx.com +wksmdn.fun +wktmpq.fun +wktmxd.fun +wkuteraeus.xyz +wkzmnp.fun +wkzrw.info +wla2d.info +wla2d.net +wla2d.xyz +wla9c4em.com +wladyslawa.xyz +wlands.online +wletu1.site +wlht8w.info +wlist.ro +wljia.com +wljkj3.com +wljycs.online +wlk.com +wloahs.icu +wlpyt.com +wlrzapp.com +wlvwv.us +wlwzvd.tokyo +wm-pecom.ru +wm335.com +wm336.com +wm567.com +wm5x.us +wm88th.com +wmail.cf +wmail.club +wmail.tk +wmail1.com +wmail2.com +wmail2.net +wmaill.site +wmaqw.space +wmbadszand2varyb7.cf +wmbadszand2varyb7.ga +wmbadszand2varyb7.gq +wmbadszand2varyb7.ml +wmbadszand2varyb7.tk +wmcsale.top +wmesale.top +wmgame88.com +wmik.de +wmjqzp.us +wmlorgana.com +wmpezacn.shop +wmpy.ru +wmrmail.com +wmux.ru +wmwha0sgkg4.ga +wmwha0sgkg4.ml +wmwha0sgkg4.tk +wmxhj3.us +wmzgen.ru +wmzgjewtfudm.cf +wmzgjewtfudm.ga +wmzgjewtfudm.gq +wmzgjewtfudm.ml +wmzgjewtfudm.tk +wn01kb.xyz +wn3wq9irtag62.cf +wn3wq9irtag62.ga +wn3wq9irtag62.gq +wn3wq9irtag62.ml +wn3wq9irtag62.tk +wn8c38i.com +wnacg.xyz +wncbigfoot.com +wncbigfoot.info +wncnw.com +wndcw.info +wnextaudit.com +wnmail.top +wnptdb.com +wns777.info +wnsocjnhz.pl +wnsymb.us +wntmw.info +wnu8lg.us +wnvpedwag.shop +wnyrcfl.org +wo-gg.com +wo295ttsarx6uqbo.cf +wo295ttsarx6uqbo.ga +wo295ttsarx6uqbo.gq +wo295ttsarx6uqbo.ml +wo295ttsarx6uqbo.tk +wo52ni.com +woa.org.ua +woae0g.site +wobblysausage.site +woberim.live +wobtel.biz +wobvmihyy.shop +woc-news.ru +wocall.com +wocowstore.com +wocy.info +wodexue.xyz +wodeyars.com +wodtorec.cf +wodtorec.ml +wodtorec.tk +wodtrials.com +wodulaw.com +wody.site +woe.com +woermawoerma1.info +wofa0.com +wofeshops.site +wofsrm6ty26tt.cf +wofsrm6ty26tt.ga +wofsrm6ty26tt.gq +wofsrm6ty26tt.ml +wofsrm6ty26tt.tk +wohbjs.online +wohiza.info +wohlbarkfeeb.cf +wohlbarkfeeb.ga +wohlbarkfeeb.gq +wohlbarkfeeb.ml +wohlbarkfeeb.tk +wohnzimmerdesignideen.me +wohoho.xyz +woikalsderf.tk +wokanguode.com +wokcy.com +wokecus.com +woktowalk-tallaght.com +wolaf.com +wolbac.club +wolbettv3.com +wolbettv4.com +wolbettv5.com +wolbettv6.com +wolbettv7.com +wolbettv9.com +wolckano24.website +wolcottelderlawgroup.com +wolf-os.com +wolf999.com +wolff-llc.com +wolff00.xyz +wolfmail.ml +wolfmedia.solutions +wolfmission.com +wolfnetworksecurity.com +wolfslag.info +wolfsmail.ml +wolfsmail.tk +wolfsmails.tk +wolfyx.xyz +wolij1.club +wolitwo.club +wollan.info +wolljk.club +wolukieh89gkj.tk +wolukiyeh88jik.ga +wolurem.ru +wolven.xyz +wolverinebaseball.us +womackautomation.com +woman-blog-list.info +woman2019.ru +womanolog.ru +womanshealth.online +womclub.su +women-g.ru +women999.com +womenbay.ru +womenblazerstoday.com +womenbox.ru +womencosmetic.info +womendressinfo.com +womenhealthcare.ooo +womeninaccountancyawards.com +womenklab.ru +womenmeanbusinessweek.com +womenofjewelry.online +womenoutfitters.xyz +womens.vote +womensmentalhealthcenters.com +womenssubstanceabusetreatmentprograms.com +womenstuff.icu +womenstuff.xyz +womentao.club +womentopsclothing.com +womentopswear.com +womenussf.online +womenvetsrun.com +womenvetsrun.org +wommangotobuy.site +womxht.us +wonaffiliate.com +wonderfish-recipe2.com +wonderfulblogthemes.info +wonderfulfitnessstores.com +wonderfulgifts.ru +wonderfulllife.space +wonderfulproperties.com +wonderlog.com +wondernest.kitchen +wonderouz.com +wonderphotobooth.site +wondersteri.com +wonderstwo.top +wonderwaregroup.com +wongndeso.gq +wongplay.com +wonlexofficial.ru +wonodds41.com +wonodds87.com +wonrg.com +wonwwf.com +woocommercemultiwarehouses.com +woodblittde.cf +woodblittde.ga +woodblittde.gq +woodblittde.tk +woodbridgeelderlawgroup.com +woodchristmasornaments.com +woodecorfurniture.com +woodfrek.tk +woodgribla.gq +woodgribla.tk +woodlandplace.info +woodlandplumbers.com +woodlandsfootspecialists.net +woodlandsnashville.us +woodmachinery-group.ru +woodmillcafe.com +woodoostudio.ru +woodroastedcoffee.store +woodsmail.bid +woodwilder.com +woodwindshop.life +woodworkingforum.life +woodykit43.ru +woodzone.info +woofbtqw.ru +woofee.ru +wooh.site +woollens.ru +woolop.best +woolrich-italy.com +woolrichhoutlet.com +woolrichoutlet-itley.com +woolticharticparkaoutlet.com +woolyburger.com +woonq.info +wooolrichitaly.com +wooppa.com +wooricasino.shop +woosha.se +wootap.me +wop.ro +wopc.cf +wopcmtdnqr.space +wopit.xyz +wopizza.ru +woppler.ru +worcesterbaseballclub.com +worcesterpartnership.com +word-literature.xyz +word.monster +wordfromthebirdblog.com +wordme.stream +wordmedia.site +wordmix.pl +wordpressbucuresti.com +wordpressitaly.com +wordpressmails.com +wordsajtg.ru +wordsorcerer.com +wordswzpdx.space +wordsyimages.com +work-info.ru +work-is-play.com +work.obask.com +work24h.eu +work4uber.us +work66.ru +workcareer.site +workcareer.today +workconsfun.cf +workconsfun.ga +workconsfun.gq +workconsfun.ml +workconsfun.tk +workdinser.ru +workemail5.ru +workers.su +workersunity.org +workevo.email +workfast24.ru +workflowtest.xyz +workflowy.club +workflowy.cn +workflowy.top +workflowy.work +workfromhome365.org +workfromhomegroups.com +workhard.by +workingzlq.space +worklists.ru +workmail.life +worknetli.cf +worknetli.gq +worknetli.ml +worknetli.tk +workout-onlinedvd.info +workoutsupplements.com +workplacemoodle.info +workplacemoodle.org +workright.ru +worksctory.email +workshopbrouwen.com +workshopdeautomaquiagem.com +workshopwha.email +worksmail.cf +worksmail.ga +worksmail.gq +worksmail.ml +worksmail.tk +worksoho.cf +worksoho.ga +worksoho.gq +worksoho.ml +worksoho.tk +worktgfkcwt.email +worktogetherbetter.com +workwithchampions.net +workwolf.fun +workwolf.host +workwolf.site +world-champion.ru +world-many.ru +world-news-pers.site +world-sale.ru +world-shopping.info +world-surprising.ru +world-travel.online +world4ch.org +worldatnet.com +worldawaits.org +worldbestoliveoils.com +worldbibleschool.name +worldcenter.ru +worldcoinmap.online +worldcoinmap.xyz +worldcpa.ru +worldcup2019-10.xyz +worldcup2019-11.xyz +worldcup2019-12.xyz +worldcup2019-13.xyz +worldcup2019-14.xyz +worldcup2019-15.xyz +worldcup2019-16.xyz +worldcup2019-17.xyz +worldcup2019-18.xyz +worldcup2019-2.xyz +worldcup2019-21.xyz +worldcup2019-23.xyz +worldcup2019-24.xyz +worldcup2019-3.xyz +worldcup2019-5.xyz +worldcup2019-6.xyz +worldcup2019-7.xyz +worldcup2019-8.xyz +worlddataproducts.com +worlddidac.com +worlddonation.org +worldfinanceloancompany.host +worldfowheels.com +worldfridge.com +worldgovernmentsummit.media +worldimprovementlabs.org +worldinvent.com +worldjournal.info +worldlivecams.com +worldlottowin.com +worldluckyclubwons.ru +worldmail.com +worldmuz.org +worldnewstoday.ru +worldof.works +worldof17hats.com +worldofeasier.com +worldofemail.info +worldofgamedesign.com +worldofhappy.info +worldofpetals.com +worldofrichworks.com +worldofzoe.com +worldopros3-ml.fun +worldpetcare.cf +worldrabiesday.asia +worldrabiesday.net +worldrabiesday.tel +worldrevolution.info +worldsbestever.company +worldsbestoliveoil.org +worldsbestoliveoils.com +worldshealth.org +worldsonlineradios.com +worldspace.link +worldsquare.sydney +worldsreversephonelookups.com +worldstarbetting7.com +worldstarbetting8.com +worldtaxback.com +worldteachersurvey.com +worldturinfo.ru +worldunitedmusic.com +worldw88.com +worldwatchnews.com +worldwidebusinesscards.com +worldwidecasings.com +worldwideprayerchain.org +worldwideviews.ru +worldwidewholesale.company +worldwidewholesalecompany.com +worldwite.com +worldwite.net +worldzip.info +worlhydlo.cf +worlhydlo.ml +worlhydlo.tk +worlipca.com +worllofa.ga +worllofa.gq +worllofa.ml +worllofa.tk +worlsiftfil.ga +worlsiftfil.gq +worlsiftfil.ml +wormbrand.com +wormbrand.net +wormbrand.org +wormholed.best +wormikj12.xyz +wormseo.cn +wormswap.com +wormswork.org +wormusiky.ru +wornbyacelebrity.com +worp.site +worryabothings.com +worrybr.icu +worrybre.xyz +worrycro.xyz +worrygrav.site +worryunc.xyz +worrywas.xyz +worrywh.xyz +worstautos.info +worstcoversever.com +worthitmarketing.com +worthniza.cf +worthniza.ga +worthniza.gq +worthniza.ml +worthniza.tk +worthshake.email +worthtri.recipes +worthwre.com +wortsesfa.cf +wortsesfa.ga +wortsesfa.gq +wortsesfa.ml +worxsites.net +wosenow.com +wosipaskbc.info +wosostand.site +wossm.site +wot-booster.ru +wot-replay.online +wotgjv.site +would-battle-toy-cheese.xyz +would.dev +woundje.icu +woundy.site +wovfkp.icu +wovz.cu.cc +wow-h2.com +wow-hack.com +wow-logic.com +wow-tb.com +wow-zakuski.ru +wow.royalbrandco.tk +wowable.com +wowauctionguide.com +wowbd.fun +wowcemafacfutpe.com +wowchina.club +wowclassicbot.com +wowcorp.com +wowgoldy.cz +wowgrill.ru +wowgua.com +wowhackgold.com +wowhair.ru +wowhundred.com +wowico.org +wowin.pl +wowishop.ru +wowizmir.com +wowjk.site +wowklas.site +wowlogik.com +wowmail.gq +wowmailing.com +wowmyksd.gq +wowokan.com +wowosp.xyz +wowpizza.ru +wowsale.website +wowthis.space +wowthis.tk +wowxv.com +woxvf3xsid13.cf +woxvf3xsid13.ga +woxvf3xsid13.gq +woxvf3xsid13.ml +woxvf3xsid13.tk +wp-admins.com +wp-ap.com +wp-coop.net +wp-global.ru +wp-viralclick.com +wp.company +wp2romantic.com +wp485k.us +wp568.com +wpaimj.us +wpbackup.online +wpbbq.dev +wpbbq.world +wpbinaq3w7zj5b0.cf +wpbinaq3w7zj5b0.ga +wpbinaq3w7zj5b0.ml +wpbinaq3w7zj5b0.tk +wpblogbuilders.com +wpbsw.info +wpcommentservices.info +wpcrash.site +wpdeveloperguides.com +wpdfs.com +wpdork.com +wpeopwfp099.tk +wperts.com +wpflsp.xyz +wpfoo.com +wpg.im +wpgeeks.online +wpgotten.com +wphacks.online +wpjigg.best +wpkg.de +wpkppihh.shop +wplusley.site +wpmail.org +wpmeaning.com +wpms9sus.pl +wpnotificationbar.com +wpondersteuning.com +wpower.info +wppremiumclub.com +wpredis.com +wpsavy.com +wpservices.expert +wpstorage.org +wpsurveys.com +wpuseractions.com +wputils.online +wpwjlr.site +wpxlgh.site +wqcefp.com +wqcefp.online +wqczu9.com +wqh0o.us +wqnbilqgz.pl +wqqkg5.com +wqsaunas.com +wqwhw.info +wqwq778.xyz +wqwwdhjij.pl +wqxhasgkbx88.cf +wqxhasgkbx88.ga +wqxhasgkbx88.gq +wqxhasgkbx88.ml +wqxhasgkbx88.tk +wqypw.info +wr-betad.com +wr.moeri.org +wr29zi.us +wr9v6at7.com +wracesis.cf +wracesis.ga +wracesis.gq +wracesis.ml +wracesis.tk +wracked.space +wraf.pro +wralawfirm.com +wrangler-sale.com +wrappedinit.com +wrappedstudio.com +wrapplese.ru +wrcbsaei.shop +wrdtme.us +wrenchenbt.space +wrf7vx.info +wrgs.icu +wrgtci.icu +wri.xyz +wrinadstal.cf +wrinadstal.gq +wrinadstal.ml +wrinadstal.tk +wrinklecareproduct.com +wristawf.icu +wristpl.icu +wristpla.icu +wristqueen.recipes +wristwast.xyz +wristwidt.com +writability.net +write-unknown-second-shot.xyz +writegoodessay.website +writehag.ga +writeme-lifestyle.com +writeme.us +writeme.xyz +writemyessays.onl +writemypaper.onl +writenownote.com +writergoods.com +writers.com +writersarticles.be +writersefx.com +writersservices.net +writidicim.site +writingforpennies.pro +writinghelper.top +writingservice.cf +writsenle.cf +writsenle.ga +writsenle.ml +writsenle.tk +written4you.info +writteninstonethemovie.com +wrjadeszd.pl +wrld.community +wrlnewstops.space +wrlxw.info +wroc.community +wroc.space +wroclaw-tenis-stolowy.pl +wroetret.site +wroglass.br +wrongfuldeathattorneyct.com +wronggrin.space +wronghead.com +wrongli.xyz +wronsu.com +wrpd4y.us +wrqbw.info +wrysutgst57.ga +wrzshield.xyz +wrzuta.com +ws.gy +ws1i0rh.pl +wsacommunications.com +wsad.xyz +wsanitizer.com +wsap.site +wsb-delta.ru +wsb-tourproject.biz +wsb365group.com +wsbclusterdelta.ru +wsbdelta.ru +wsbet.info +wscu73sazlccqsir.cf +wscu73sazlccqsir.ga +wscu73sazlccqsir.gq +wscu73sazlccqsir.ml +wscu73sazlccqsir.tk +wsd88poker.com +wsdbet88.net +wsen1.ru +wsfjtyk29-privtnyu.fun +wsfjtyk29-privtnyu.host +wsfjtyk29-privtnyu.site +wsfjtyk29-privtnyu.website +wsfjtyk29-privtnyu.xyz +wsh1q4.us +wsh72eonlzb5swa22.cf +wsh72eonlzb5swa22.ga +wsh72eonlzb5swa22.gq +wsh72eonlzb5swa22.ml +wsh72eonlzb5swa22.tk +wsiconsultant.com +wsifenetondr.host +wsiillinois.com +wsimediagroup.com +wsimiami.com +wsiyb.com +wsmeu.com +wsodrg.us +wsoparty.com +wsqaxdezxc.net +wsse.us +wsswoodstock.com +wsswoodstock.xyz +wstc.info +wstc8d.us +wsuart.com +wsuoptimize.org +wsvnsbtgq.pl +wswseo.com +wswsw.info +wszystkoolokatach.com.pl +wt-rus.ru +wt0vkmg1ppm.cf +wt0vkmg1ppm.ga +wt0vkmg1ppm.gq +wt0vkmg1ppm.ml +wt0vkmg1ppm.tk +wt2.orangotango.cf +wtbone.com +wtcnoida2.com +wtdmugimlyfgto13b.cf +wtdmugimlyfgto13b.ga +wtdmugimlyfgto13b.gq +wtdmugimlyfgto13b.ml +wtdmugimlyfgto13b.tk +wteoq7vewcy5rl.cf +wteoq7vewcy5rl.ga +wteoq7vewcy5rl.gq +wteoq7vewcy5rl.ml +wteoq7vewcy5rl.tk +wtf-man.net +wtfdesign.ru +wtflagu.bid +wtfzbg.ml +wtguns.com +wth0v.us +wtic.de +wtnqw.info +wtnw4.us +wto.com +wtprlf.com +wtransit.ru +wtrckhertz.com +wtskw.info +wttmw.info +wtu1sv.us +wtudeevd.shop +wu138.club +wu138.top +wu158.club +wu158.top +wu189.top +wu2vf.site +wu8vx48hyxst.cf +wu8vx48hyxst.ga +wu8vx48hyxst.gq +wu8vx48hyxst.ml +wu8vx48hyxst.tk +wucaitang.com +wudet.men +wudprint.online +wudtee.online +wuespdj.xyz +wueycgwuyebc.club +wufoshops.site +wufu45.com +wufu77.com +wufushe.org +wufuya.com +wugxxqrov.pl +wuhl.de +wujaze.info +wuji37.com +wuji38.com +wuji39.com +wujicloud.com +wujlsahrr.shop +wujy.site +wulcaner24.website +wum5sr-mail.xyz +wumail.com +wumbo.co +wunderkraut.ru +wunschbaum.info +wunvc.monster +wunvdh.xyz +wupics.com +wurasu.info +wurer.live +wurric.site +wusnet.site +wusrmp.best +wuvamarket.site +wuwaqu.info +wuwnxia.xyz +wuxoby.ru +wuxoshop.site +wuxq.xyz +wuyc41hgrf.cf +wuyc41hgrf.ga +wuyc41hgrf.gq +wuyc41hgrf.ml +wuyc41hgrf.tk +wuyebcuywebc.club +wuyecili.net +wuyecuwyec.club +wuzhizheng.mygbiz.com +wuzhou333.com +wuzup.net +wuzupmail.net +wv4t2k.info +wv94.com +wvcheckpoints.com +wvckgenbx.pl +wvclibrary.com +wvea.net +wvgtc.us +wvhalfpricedlisting.com +wvhalfpricelisting.com +wvipapp.com +wvjmpysbh.shop +wvl238skmf.com +wvmih7.site +wvppz7myufwmmgh.cf +wvppz7myufwmmgh.ga +wvppz7myufwmmgh.gq +wvppz7myufwmmgh.ml +wvppz7myufwmmgh.tk +wvpzbsx0bli.cf +wvpzbsx0bli.ga +wvpzbsx0bli.gq +wvpzbsx0bli.ml +wvpzbsx0bli.tk +wvrbee.org +wvrdwomer3arxsc4n.cf +wvrdwomer3arxsc4n.ga +wvrdwomer3arxsc4n.gq +wvrdwomer3arxsc4n.tk +wvruralhealthpolicy.org +wvulm5.us +wvv360.com +wvw3421.com +ww-ww.su +ww00.com +ww00bb.com +ww00ee.com +ww00ii.com +ww00qq.com +ww00xx.com +ww1775.com +ww33aa.com +ww33ii.com +ww33qq.com +ww33vv.com +ww33zz.com +ww696.net +wwah.org +wwatme7tpmkn4.cf +wwatme7tpmkn4.ga +wwatme7tpmkn4.gq +wwatme7tpmkn4.tk +wwatrakcje.pl +wwcp0000.com +wwcuh5.us +wwdd22.com +wwee00.com +wweeerraz.com +wwf.az.pl +wwfontsele.com +wwhbvoic.shop +wwii-1940s.com +wwii00.com +wwikiyas.site +wwjj55.com +wwjltnotun30qfczaae.cf +wwjltnotun30qfczaae.ga +wwjltnotun30qfczaae.gq +wwjltnotun30qfczaae.ml +wwjltnotun30qfczaae.tk +wwjmp.com +wwkk00.com +wwkk55.com +wwmails.com +wwnewstop.site +wwordbridgeg.site +wwordcluba.site +wworddogn.site +wwparaverlain.ml +wwparaverlain.tk +wwpshop.com +wwqysw.com +wwrmails.com +wwstockist.com +wwsww.info +wwva.net +wwvhaosou.com +wwvl2n.us +www-011usafuspzporpuss01.xyz +www-0419.com +www-123movies.best +www-19927.com +www-3886.com +www-49149.com +www-5875k.com +www-5875n.com +www-5875r.com +www-5875x.com +www-5875y.com +www-5875z.com +www-733555.com +www-7775678.com +www-88591.com +www-9424.com +www-9908818.com +www-9968818.com +www-bm1234.com +www-cx888.com +www-email.bid +www-hk09.com +www-hk288.com +www-host.site +www-ky5500.com +www-lr888.com +www-odqp.com +www-putlockers.best +www-rolimons.tk +www.barryogorman.com +www.bccto.com +www.bccto.me +www.cqnhtgs.top +www.dmtc.edu.pl +www.eairmail.com +www.gameaaholic.com +www.gishpuppy.com +www.hotmobilephoneoffers.com +www.live.co.kr.beo.kr +www.mailinator.com +www.mykak.us +www.nak-nordhorn.de +www.redpeanut.com +www.thestopplus.com +www1.hotmobilephoneoffers.com +www10.ru +www111elexbet.xyz +www111gao.com +www11rsx.net +www188gao.com +www2.htruckzk.biz +www22rsx.com +www24ruru.com +www25ruru.com +www33rsx.com +www38ruru.com +www41ruru.com +www44rsx.net +www55rsx.com +www55rsx.net +www6234.net +www700ruru.com +www77rsx.com +www800ruru.com +www880883.com +www99rsx.com +www99rsx.net +wwwap.ru +wwwatrakcje.pl +wwwblooom.com +wwwbm1234.com +wwwbox.tk +wwwbrightscope.com +wwwcruiseone.com +wwwdindon.ga +wwweaglerider.com +wwweb.cf +wwweb.ga +wwwemail.bid +wwwemail.racing +wwwemail.stream +wwwemail.trade +wwwemail.win +wwwerincondren.com +wwwerr.com +wwwfiserv.com +wwwfotowltaika.pl +wwwfotowoltaika.pl +wwwh567.com +wwwhaodiaochui.com +wwwhaodiaonv.com +wwwhaodiaopao.com +wwwhk09.com +wwwhk288.com +wwwht.com +wwwkreatorzyimprez.pl +wwwlh8828.com +wwwlr888.com +wwwmail.gq +wwwmetatrader5.com +wwwmitel.ga +wwwmontanatitle.info +wwwncslenders.net +wwwnew.de +wwwnew.eu +wwworkers.com +wwwoutmail.cf +wwwpao00.com +wwwpapa26.com +wwwpapa39.com +wwwpapa57.com +wwwplacertitle.mobi +wwwprclosings.net +wwwprepscholar.com +wwwptanow.us +wwwruru02.com +wwwruru03.com +wwwruru10.com +wwwruru13.com +wwwruru18.com +wwwruru21.com +wwwruru24.com +wwwruru32.com +wwwruru45.com +wwwruru98.com +wwwsafecu.org +wwwshoujinwang.com +wwwtexasnationaltitle.com +wwwtexasnationaltitle.us +wwwtexasnationaltltle.net +wwwtexasnationatite.org +wwwtm55.com +wwwtradervue.com +wwwtworcyimprez.pl +wwwuedfa.info +wwwuna.com +wwwvbaidu.com +wwww-011uspush-notification-af-uss08.xyz +wwww-011uspush-notification-af-uss09.xyz +wwwwp888.com +wwwwpobedun.ru +wwwwyomingtitle.com +wwwwyomingtitle.info +wwwwyomingtitle.net +wwwyp888.com +wwwyugeeson.xyz +wwxfur.com +wwzm8r.site +wx6018.com +wx7008.com +wxgsln.us +wxkmbrgh.shop +wxmail263.com +wxnmsy.com +wxnw.net +wxt2.icu +wxy5q9479s.men +wxyuetu.com +wy6klk.us +wyandotcountyfair.net +wybory.edu.pl +wybuwy.xyz +wychw.pl +wyeransmax.ga +wyeransmax.gq +wyeransmax.tk +wyfeedburner.com +wyfhyx.com +wygc2.info +wygjgg.com +wyhalfpricelistings.com +wyioum.shop +wyjatkoweokazje.online +wymarzonesluby.pl +wymeno.info +wymote.best +wynajemaauta.pl +wynajemmikolajawarszawa.pl +wynanet.ru +wynbud.com +wynncash01.com +wynncash13.com +wynwoodfarms.com +wyoming-nedv.ru +wyomingaluminum.xyz +wyomingou.com +wyomingtitl.us +wyomingtitle.info +wyomingtitle.org +wyomingtitle.us +wyseo.net +wyszukiwaramp3.pl +wyuqois.site +wyvernia.net +wyvy.site +wyzb39.xyz +wyzb40.xyz +wyzwt.com +wz69j3ah3uaa2b1.xyz +wz9227.com +wz9827.com +wz9837.com +wzeabtfzyd.pl +wzeabtfzyda.pl +wzfcw.info +wzgrupos.com +wzhn34.us +wzjfebopn.gq +wzjqg1.site +wzkdvl.com +wzm7.us +wzofwtsry.shop +wzorymatematyka.pl +wzukltd.com +wzxmtb3stvuavbx9hfu.cf +wzxmtb3stvuavbx9hfu.ga +wzxmtb3stvuavbx9hfu.gq +wzxmtb3stvuavbx9hfu.ml +wzxmtb3stvuavbx9hfu.tk +wzxsbz.com +wzyk.tech +wzyzex.icu +wzzhjl.com +x-8.buzz +x-bases.ru +x-cocaine3.online +x-fails.com +x-fuck.info +x-instruments.edu +x-izvestiya.ru +x-mail.cf +x-ms.info +x-mule.cf +x-mule.ga +x-mule.gq +x-mule.ml +x-mule.tk +x-musor.ru +x-netmail.com +x-new-ru-news.ru +x-pc.ru +x-porno-away.info +x-rugazeta.ru +x-runovosti.ru +x-rutochka.ru +x-today-x.info +x-v-x.com +x-vestnik.ru +x-w-x.com +x-watch.best +x.agriturismopavi.it +x.bigpurses.org +x.emailfake.ml +x.fackme.gq +x.nadazero.net +x.polosburberry.com +x.puk.ro +x.tonno.cf +x.tonno.gq +x.tonno.ml +x.tonno.tk +x.yeastinfectionnomorenow.com +x004scur.buzz +x006nfta.buzz +x00x.online +x012xvph.buzz +x015dtix.buzz +x01porn.xyz +x022ucsk.buzz +x025yyfb.buzz +x026ztea.buzz +x033ltnr.buzz +x0dj2u.info +x0m4nr.com +x0w4twkj0.pl +x0zj6k8.com +x1-payfree.info +x1-payfree.site +x1000000.site +x1069x.com +x13.dev +x13.email +x13.services +x13x13x13.com +x18clip.com +x1bkskmuf4.cf +x1bkskmuf4.ga +x1bkskmuf4.gq +x1bkskmuf4.ml +x1bkskmuf4.tk +x1cult.ru +x1econ.ru +x1lion.ru +x1news.ru +x1post.com +x1sci.ru +x1x.spb.ru +x1x22716.com +x1xthj.us +x2-greatfaro.site +x220.xyz +x24.com +x25rn1.us +x263.net +x2bhv4.us +x2c.ru +x2ewzd983ene0ijo8.cf +x2ewzd983ene0ijo8.ga +x2ewzd983ene0ijo8.gq +x2ewzd983ene0ijo8.ml +x2ewzd983ene0ijo8.tk +x2fsqundvczas.cf +x2fsqundvczas.ga +x2fsqundvczas.gq +x2fsqundvczas.ml +x2fsqundvczas.tk +x2lap6.us +x2news.ru +x2qys9.us +x2science.ru +x2t0n.us +x2x.foundation +x3-faropaymenrs.info +x3-faropaymenrs.site +x30-coolmoney.host +x31-funnycash.xyz +x33-funnymonney.website +x33-funnymonney.xyz +x33567.com +x3551.com +x37-megacashsait.host +x39-saitjoy.space +x3gaev.us +x3gsbkpu7wnqg.cf +x3gsbkpu7wnqg.ga +x3gsbkpu7wnqg.gq +x3gsbkpu7wnqg.ml +x3lbhdmnd206onc.xyz +x3m8pu.us +x3mailer.com +x3us.us +x3w875ioakdvmst.com +x4y.club +x58ff.com +x58ii.com +x5a9m8ugq.com +x5bj6zb5fsvbmqa.ga +x5bj6zb5fsvbmqa.ml +x5bj6zb5fsvbmqa.tk +x5ep20.info +x5lyq2xr.osa.pl +x5n.net +x5nw.com +x5sk7ofi.xyz +x5wcbd.us +x5wila.us +x6dqh5d5u.pl +x6z72z.com +x77.club +x777.icu +x777x.host +x78qp.com +x7971.com +x7ca5blmxvskfoj.xyz +x7mail.com +x7tzhbikutpaulpb9.cf +x7tzhbikutpaulpb9.ga +x7tzhbikutpaulpb9.gq +x7tzhbikutpaulpb9.ml +x7xjou.us +x8h8x941l.com +x8rbn.cloud +x8vplxtmrbegkoyms.cf +x8vplxtmrbegkoyms.ga +x8vplxtmrbegkoyms.gq +x8vplxtmrbegkoyms.ml +x8vplxtmrbegkoyms.tk +x9094.com +x90b.club +x9dofwvspm9ll.cf +x9dofwvspm9ll.ga +x9dofwvspm9ll.gq +x9dofwvspm9ll.ml +x9dofwvspm9ll.tk +x9vl67yw.edu.pl +x9y9.com +xa9f9hbrttiof1ftean.cf +xa9f9hbrttiof1ftean.ga +xa9f9hbrttiof1ftean.gq +xa9f9hbrttiof1ftean.ml +xa9f9hbrttiof1ftean.tk +xabe.site +xablogowicz.com +xacbdxbjd.shop +xact-solutions.com +xad.us +xadi.ru +xady.info +xadzbill247.com +xaffz.com +xafrem3456ails.com +xagloo.co +xagloo.com +xairbo.club +xak3qyaso.pl +xakalutu.com +xakas-online.ru +xakishop.site +xakomsung.cf +xakomsung.ga +xalipcode.xyz +xalipcodes.online +xamog.com +xandermemo.info +xanhvilla.website +xaotxauf.pro +xap.chat +xapocopi.site +xarakter.org +xaralabs.com +xartis89.co.uk +xarzru.icu +xas04oo56df2scl.cf +xas04oo56df2scl.ga +xas04oo56df2scl.gq +xas04oo56df2scl.ml +xas04oo56df2scl.tk +xasdrugshop.com +xasgs.com +xasqvz.com +xatovzzgb.pl +xaugroup.com +xautostabilbetsnup.xyz +xav.buzz +xaxugen.org +xaxx.ml +xaynetsss.ddns.net +xb-eco.info +xb07.xyz +xb709.com +xbaby69.top +xbapi.xyz +xbbprgxrl.shop +xbestwebdesigners.com +xbetpinupflag.ru +xbfby.xyz +xbizscl.space +xblbet.com +xbm7bx391sm5owt6xe.cf +xbm7bx391sm5owt6xe.ga +xbm7bx391sm5owt6xe.gq +xbm7bx391sm5owt6xe.ml +xbm7bx391sm5owt6xe.tk +xbmm.xyz +xbmyv8qyga0j9.cf +xbmyv8qyga0j9.ga +xbmyv8qyga0j9.gq +xbmyv8qyga0j9.ml +xbmyv8qyga0j9.tk +xbnxnf.com +xbombo.site +xbox360-cheats.com +xbox720.com +xboxbeta20117.co.tv +xboxformoney.com +xboxonelove.com +xbpybglk.shop +xbreg.com +xbtcpro.com +xbtpro.tech +xbtravel.com +xbtybo.info +xbusinesnews.com +xbvrfy45g.ga +xbwgfx.com +xbxjvl.online +xbytes.app +xbz0412.uu.me +xbziv2krqg7h6.cf +xbziv2krqg7h6.ga +xbziv2krqg7h6.gq +xbziv2krqg7h6.ml +xbziv2krqg7h6.tk +xc05fypuj.com +xc40.cf +xc40.ga +xc40.gq +xc40.ml +xc40.tk +xc60.cf +xc60.ga +xc60.gq +xc60.ml +xc60.tk +xc90.cf +xc90.ga +xc90.gq +xc90.ml +xc90.tk +xca.cz +xcameravip.info +xcasino-mega.ru +xcc-999.com +xcdn.ooo +xcekh6p.pl +xcfehg.com +xchanghe6majid.com +xcheesemail.info +xchita.com +xchjbvhgx20321.ga +xchjbvhgx31790.tk +xchjbvhgx70681.ga +xchjbvhgx70681.ml +xcisade129.ru +xckerkorkf33.info +xcmitm3ve.pl +xcnjvjhx12594.ga +xcnjvjhx13060.tk +xcnjvjhx19527.cf +xcnjvjhx19527.ga +xcnjvjhx19527.ml +xcnjvjhx19527.tk +xcnjvjhx30005.ml +xcnjvjhx30005.tk +xcnjvjhx49780.ml +xcnjvjhx49780.tk +xcnjvjhx64925.cf +xcnjvjhx72237.ml +xcnjvjhx77854.cf +xcnjvjhx77854.ga +xcnjvjhx77854.ml +xcnjvjhx77854.tk +xcnjvjhx96702.ml +xcnjvjhx96702.tk +xcnmarketingcompany.com +xcnvmf3-privbmngt.info +xcnvmf3-privbmngt.press +xcnvmf3-privbmngt.space +xcode.ro +xcodes.net +xcoex.asia +xcoex.chat +xcoex.email +xcoex.mobi +xcoex.net +xcoex.news +xcoex.org +xcoex.ru +xcoex.trade +xcompress.com +xconstantine.pro +xconvict-vpn.technology +xconvictz.com +xcoryo.site +xcpy.com +xcq61r.us +xcremail.com +xctc5r.us +xctrade.info +xcufrmogj.pl +xcure.xyz +xcvitir-account1manager1.com +xcvlolonyancat.com +xcvrtasdqwe.com +xcxqtsfd0ih2l.cf +xcxqtsfd0ih2l.ga +xcxqtsfd0ih2l.gq +xcxqtsfd0ih2l.ml +xcxqtsfd0ih2l.tk +xcy1.xyz +xcy8gl.site +xcygtvytxcv22910.tk +xcygtvytxcv23382.ga +xcygtvytxcv40382.cf +xcygtvytxcv40382.ga +xcygtvytxcv40382.tk +xcygtvytxcv99512.cf +xcygtvytxcv99512.ga +xcygtvytxcv99512.ml +xcygtvytxcv99512.tk +xczffumdemvoi23ugfs.cf +xczffumdemvoi23ugfs.ga +xczffumdemvoi23ugfs.gq +xczffumdemvoi23ugfs.ml +xczffumdemvoi23ugfs.tk +xd-solutions.com +xd2i8lq18.pl +xd7ueb.com +xdatel.com +xdatelocal.com +xdavpzaizawbqnivzs0.cf +xdavpzaizawbqnivzs0.ga +xdavpzaizawbqnivzs0.gq +xdavpzaizawbqnivzs0.ml +xdavpzaizawbqnivzs0.tk +xdbdqdkxbb.xyz +xdbdqkkxbb.xyz +xdbdqnkxbb.xyz +xdbdqskxbb.xyz +xdbdqxkxbb.xyz +xdeyegrymfw0w0e.xyz +xdfav.com +xdlink.icu +xdofud.info +xdoqsh.site +xdtf.fun +xdtf.site +xdtgme.online +xdumb.com +xdvsagsdg4we.ga +xdwtfc.online +xe2g.com +xe8kc.us +xeame.online +xeames.net +xeasystabilitybetsnupp20.xyz +xeb9xwp7.tk +xebrcxcfey.xyz +xecautaiquangngai.com +xedmi.com +xedoiutret.cf +xefezi.info +xefthth.xyz +xegi.net +xekeshop.site +xelacade.site +xemaps.com +xembongda.com +xemne.com +xemngay.buzz +xemnhantuong.com +xemrelim.cf +xemrelim.ga +xemrelim.gq +xemrelim.ml +xemrelim.tk +xenacareholdings.com +xenfun.net +xengthreview.com +xenicalprime.com +xenocountryses.com +xenodate.com +xenodio.gr +xenofon.gr +xenogamy.site +xenonforte.space +xenonheadlightsale.com +xenopharmacophilia.com +xents.com +xenzld.com +xeon-e3.ovh +xeon.net +xeosa9gvyb5fv.cf +xeosa9gvyb5fv.ga +xeosa9gvyb5fv.gq +xeosa9gvyb5fv.ml +xeosa9gvyb5fv.tk +xerath.tk +xeripu.info +xermo.info +xernonos62064.ga +xernonos84669.cf +xernonos84669.ga +xerothworld.com +xerqhpmma.shop +xesaxesb.shop +xet0p.us +xetaithanhvinh.com +xeti.com +xeu2ot.us +xeuja98.pl +xevents.buzz +xevents.site +xex66.com +xex88.com +xezbii.us +xf.sluteen.com +xf5di7.us +xf7asj.us +xfactorenterprise.com +xfamiliar9.com +xfashionset.com +xfcjfsfep.pl +xfdmwbbx.shop +xffbe2l8xiwnw.cf +xffbe2l8xiwnw.ga +xffbe2l8xiwnw.gq +xffbe2l8xiwnw.ml +xffbe2l8xiwnw.tk +xfghzdff75zdfhb.ml +xfind.online +xfinder.site +xfitkmvt.space +xfjyn.com +xfkfdmam.shop +xfmz9p.com +xfriend.fun +xfriend.site +xfriends.site +xfsdszd.site +xfuze.com +xfwb7l.us +xfwlcq.com +xfxbfv.us +xfzvtxrhu.shop +xg6sn5.us +xgaming.ca +xgenas.com +xgeuyh.icu +xgfpg.site +xgk6dy3eodx9kwqvn.cf +xgk6dy3eodx9kwqvn.ga +xgk6dy3eodx9kwqvn.gq +xgk6dy3eodx9kwqvn.tk +xgl4nb.com +xglmedia.com +xglrcflghzt.pl +xgmailoo.com +xgnowherei.com +xgoiuu.xyz +xgold.fun +xgqwpv.us +xgrxsuldeu.cf +xgrxsuldeu.ga +xgrxsuldeu.gq +xgrxsuldeu.ml +xgrxsuldeu.tk +xgsj.xyz +xgstabfbu.tk +xguy.net +xgyeco.us +xgyu.net +xgzslm.com +xh1118.com +xh4388.com +xh5ef.info +xh8954.com +xh8988.com +xh9z2af.pl +xhamster.ltd +xhanimatedm.com +xhcav.top +xhcbtduey.shop +xhd09.us +xhfc6m.us +xhhanndifng.info +xhhc123.com +xhiaxhik.shop +xhkss.net +xhmdh99.xyz +xho8i.info +xhouse.xyz +xhr10.com +xhs.bet +xht00.com +xht77.com +xhusjsx.xyz +xhxynyfbb.shop +xhybdnhyr.shop +xhyemail.com +xhypm.com +xhysp.xyz +xi-rang.com +xi-rang.net +xi2.net +xi6.buzz +xiacorilop.icu +xiaixue.club +xiangjiaodaohang.live +xiaoai.net +xiaobi100.com +xiaobi101.com +xiaobi103.com +xiaobi107.com +xiaobi108.com +xiaobi110.com +xiaobi112.com +xiaobi115.com +xiaobi119.com +xiaobi120.com +xiaobi126.com +xiaobi132.com +xiaobi133.com +xiaobi137.com +xiaobi139.com +xiaobi140.com +xiaobi142.com +xiaobi143.com +xiaobi146.com +xiaobi149.com +xiaobi153.com +xiaobi155.com +xiaobi156.com +xiaobi157.com +xiaobi159.com +xiaobi162.com +xiaobi164.com +xiaobi167.com +xiaobi168.com +xiaobi170.com +xiaobi171.com +xiaobi173.com +xiaobi175.com +xiaobi177.com +xiaobi178.com +xiaobi181.com +xiaobi182.com +xiaobi187.com +xiaobi188.com +xiaobi191.com +xiaobi195.com +xiaobi196.com +xiaobi198.com +xiaobi200.com +xiaojifang.com +xiaolaoshu.site +xiaomico.ru +xiaomimiband03.ru +xiaominglu88.com +xiaomitvplus.com +xiaoshir.com +xiaoshuo.ru +xiaoyangera.com +xiaoyenan.club +xiaoyocc.xyz +xiaoyodd.xyz +xiaoyoee.xyz +xiaoyogg.xyz +xiaoyohh.xyz +xiaoyojj.xyz +xiaoyokk.xyz +xiaoyomm.xyz +xiaoyonn.xyz +xiaoyoqq.xyz +xiaoyorr.xyz +xiaoyoss.xyz +xiaoyott.xyz +xiaoyovv.xyz +xiaoyoww.xyz +xiaoyoyy.xyz +xiaozao66.com +xias-daman1.ru +xiayuanpan.com +xiazaidang.com +xicoda.cf +xicoda.ga +xicoda.gq +xicoda.ml +xicoda.tk +xideen.site +xidy.site +xiehuomeitu.xyz +xieyugui.online +xifer.xyz +xifhbnqyi.shop +xihunwo.com +xihunwu.com +xijjfjoo.turystyka.pl +xikihn.us +xilaimai.club +xilaohu.top +xilinous.xyz +xilopro.com +xilor.com +ximant.pro +ximtyl.com +xin7749.info +xin88088.com +xin88288.com +xin88588.com +xin88688.com +xinbo.info +xinbox.info +xinfangloupan.com +xinfi.com.pl +xing886.uu.gl +xingc3yl.com +xingfushiguangktv.com +xinglossne.cf +xinglossne.gq +xinglossne.ml +xinglossne.tk +xingmadh.site +xingwater.com +xingyaoyule.biz +xingyaoyule77.com +xinhao102.com +xinhao103.com +xinhao106.com +xinhao107.com +xinhao108.com +xinhao109.com +xinhuanet.ru +xinjiacp.com +xinli18.info +xinmail.info +xinmeng8.xyz +xinqpi.com +xinsiji.info +xinsiji.org +xinsiji.xyz +xinsijifuli.org +xinsijifuli.xyz +xinsijitv.info +xinsijitv.xyz +xinsijitv00.info +xinsijitv11.info +xinsijitv13.info +xinsijitv14.info +xinsijitv15.info +xinsijitv16.info +xinsijitv17.info +xinsijitv18.info +xinsijitv2.info +xinsijitv20.info +xinsijitv22.info +xinsijitv23.info +xinsijitv25.info +xinsijitv26.info +xinsijitv28.info +xinsijitv29.info +xinsijitv3.info +xinsijitv32.info +xinsijitv33.info +xinsijitv34.info +xinsijitv35.info +xinsijitv36.info +xinsijitv37.info +xinsijitv38.info +xinsijitv4.info +xinsijitv40.info +xinsijitv41.info +xinsijitv42.info +xinsijitv43.info +xinsijitv45.info +xinsijitv46.info +xinsijitv47.info +xinsijitv49.info +xinsijitv50.info +xinsijitv52.info +xinsijitv53.info +xinsijitv54.info +xinsijitv55.info +xinsijitv56.info +xinsijitv57.info +xinsijitv58.info +xinsijitv59.info +xinsijitv60.info +xinsijitv62.info +xinsijitv63.info +xinsijitv64.info +xinsijitv65.info +xinsijitv66.info +xinsijitv67.info +xinsijitv68.info +xinsijitv69.info +xinsijitv70.info +xinsijitv72.info +xinsijitv73.info +xinsijitv74.info +xinsijitv76.info +xinsijitv77.info +xinsijitv79.info +xinsijitv8.info +xinsijitv82.info +xinsijitv83.info +xinsijitv84.info +xinsijitv86.info +xinsijitv87.info +xinsijitv88.info +xinsijitv89.info +xinsijitv9.info +xinsijitv90.info +xinsijitv91.info +xinsijitv92.info +xinsijitv93.info +xinsijitv95.info +xinsijitv96.info +xinwangcai.xyz +xinwangyl.net +xinxianguo.xyz +xinyushe.com +xinyuzu.com +xinzhi.org +xinzk1ul.com +xio7s7zsx8arq.cf +xio7s7zsx8arq.ga +xio7s7zsx8arq.gq +xio7s7zsx8arq.ml +xio7s7zsx8arq.tk +xionprotocol.com +xioplop.com +xiotel.com +xipcj6uovohr.cf +xipcj6uovohr.ga +xipcj6uovohr.gq +xipcj6uovohr.ml +xipcj6uovohr.tk +xipemedia.com +xiqfyn.us +xiqing11.com +xiqing22.com +xiqing55.com +xiqing66.com +xir7hi.site +xishibbs.com +xitedegaming.online +xiteen.asia +xitercs.ml +xitercs.tk +xitimail.com +xitroo.com +xitroo.de +xitroo.fr +xitroo.net +xitroo.org +xitzakaz.ru +xiujiajia.club +xiunhl.us +xiuptwzcv.pl +xiveth.xyz +xiwa1e.us +xix80j.com +xixx.site +xiyaopin.cn +xiyi12348.xyz +xizan62.icu +xizang.us +xizqxhuq.shop +xj1234.xyz +xj3322.com +xj333333.com +xj520aa.com +xj5237.com +xj6600.com +xjav52.com +xjav58.com +xjav77.com +xjaymn.com +xjbpav.com +xjedu1.site +xjgbw.com +xjghm.com +xjgyud.us +xjhytkjutk2er.xyz +xjin.xyz +xjkbrsi.pl +xjmjt.com +xjmwtk.info +xjoi.com +xjolfx.site +xjp991.com +xjpzit.us +xjqdbrqsi.ml +xjshutdownbaychiro.com +xjsjbd.com +xjsp123.xyz +xjsp55.xyz +xjudge.com +xjwmp.us +xjzodqqhb.pl +xk39zh.us +xk6.net +xk81g9.us +xkbmxs.fun +xkcmkl.fun +xkcmmg.fun +xkjmfw.fun +xklmlm.fun +xklmnj.fun +xklonecde.shop +xklt4qdifrivcw.cf +xklt4qdifrivcw.ga +xklt4qdifrivcw.gq +xklt4qdifrivcw.ml +xklt4qdifrivcw.tk +xklzdv.site +xkmmpw.fun +xkmpkjhth.shop +xknmxt.fun +xkpmbc.fun +xkpmrp.fun +xkpmzf.fun +xkqukjsq.shop +xkqvlbva.shop +xkrmkd.fun +xksmbc.fun +xksmfx.fun +xksmhp.fun +xktmfp.fun +xktmyb.fun +xktyr5.pl +xkwmjn.fun +xkx.me +xkymcw.fun +xkzmgj.fun +xl.cx +xl7fnr.us +xl8037.com +xl9837.com +xlarge.kiwi +xlekskpwcvl.pl +xlgaokao.com +xlgo.tk +xlgria.us +xlhf.us +xljelarabic.site +xljmz1.site +xlmx5p.host +xlootgame.fun +xloveme.top +xlpaketinternet.com +xlqndaij.pl +xlra5cuttko5.cf +xlra5cuttko5.ga +xlra5cuttko5.gq +xlra5cuttko5.ml +xlra5cuttko5.tk +xltbz8eudlfi6bdb6ru.cf +xltbz8eudlfi6bdb6ru.ga +xltbz8eudlfi6bdb6ru.gq +xltbz8eudlfi6bdb6ru.ml +xltbz8eudlfi6bdb6ru.tk +xlxe.pl +xlzdroj.ru +xmail.com +xmail.edu +xmail.org +xmail2.net +xmail365.net +xmaill.com +xmailpro.tech +xmailsme.com +xmailweb.com +xmailxz.com +xmaily.com +xmailz.ru +xmaq1.us +xmasloans.us +xmatch.buzz +xmatch.site +xmatchup.online +xmatchup.site +xmate.fun +xmate.online +xmate.site +xmcybgfd.pl +xmdszg.com +xmeetup.buzz +xmeetup.fun +xmeetup.site +xmerwdauq.pl +xmgczdjvx.pl +xmgzyw.com +xmhaoduoxie.com +xmjxcy.com +xmlat.com +xmljk.us +xmlkvr.us +xmma4c.xyz +xmmail.ru +xmmar3.xyz +xmmbas.xyz +xmmcou.xyz +xmme81.xyz +xmmf4u.xyz +xmmg8u.xyz +xmmhce.xyz +xmmiiu.xyz +xmmliq.xyz +xmmmx1.xyz +xmmoln.xyz +xmmtgp.xyz +xmmtxf.xyz +xmmybf.xyz +xmov.site +xmovies8.tech +xmovies8.today +xmp9o.us +xmpr.cf +xmpr.tk +xmqiangshou.com +xmrecoveryblogs.info +xmrigcc.me +xmule.cf +xmule.ga +xmule.gq +xmule.ml +xmv6txw5xtpsd65.xyz +xmyguides.site +xmymanuals.site +xmz73.com +xmze8t.us +xn-----6kcpc1bhcrdk5h1d.com +xn----0hcns4anp6av.xyz +xn----zhcqo4atp6am.com +xn----zhcqo4atp6am.net +xn----zhcqo4atp6am.xyz +xn--12cmd0bjwv5auyea8pldh5jrj.com +xn--1389-43d9dogi6n.com +xn--17-0j9i78yt70a.com +xn--1lqx47cqwv.app +xn--2-v30fu36e.com +xn--220b70t2ube1ltzb.com +xn--24-6kch4bfq8b.live +xn--299as8e18g.org +xn--2e0bspv5t.com +xn--2h3b21h6yfmub61a.com +xn--2h3bi8t39h.com +xn--2i0by5tlwa.com +xn--2n1b.com +xn--2o2b1x16o.com +xn--2p7bp2h.net +xn--31bsue4aj8a5mua.com +xn--352bl9l86p.net +xn--365-hy7mu67i.com +xn--3e0bu9ybmaw5m.com +xn--3oqt7hvrnu9zfgg.com +xn--42c6aa8cyaxn9mqc.com +xn--42c6bxagvbqjd8ded7s5c.com +xn--4dbceig1b7e.com +xn--4dbjnyln2as.com +xn--4dbjnyln2as.xyz +xn--4dd.com +xn--4gqt6ffycq7dca9225a3tp9e0d.top +xn--50talsklder-s8a.se +xn--51xyz-308h91u.xyz +xn--53h1310o.ws +xn--55qx2a60cqzlfp8a.hk +xn--5dd.com +xn--5tzu35b.hk +xn--6dd.com +xn--6zrr4hv82csok.hk +xn--72c5ai8avd1a7nla2d.net +xn--72cm8acj4ezas8a6bb1bzgrfc.com +xn--747-v18mt43c.com +xn--7gqvd.com +xn--7hvr7ae9s.top +xn--80aafsr8j.online +xn--80abdl4as.online +xn--80adbmpmfrc3ajdz.space +xn--80adjuryc.com +xn--80adydm6a.today +xn--80ajbbnaaicbe8ab2btj.org +xn--80anhm.online +xn--80asehdbfhkho.com +xn--8dd.com +xn--90af4abj.online +xn--90af4abj.su +xn--90aifdivcrocc1io.online +xn--950bt9so0e0pfctjn4i.com +xn--950bt9so0e0pfctjn4i.net +xn--9fyue625bora.top +xn--9i4b.net +xn--9kq967o.com +xn--9kqp1stng.top +xn--9l4b91e9xcm2a.com +xn--9l4b91i3dx8cc2a.net +xn--9l4bn3j2ta380a7zc.net +xn--9uv034f.top +xn--a-eeu4d6a4m.com +xn--aliexprss-1f7d.com +xn--alln-s6b.com +xn--almazaradefiana-9qb.com +xn--alsverismarketiniz-f0c.com +xn--amonn-9ra.xyz +xn--antamo-vua.com +xn--aradnhereyburda-2cc91ab29f.com +xn--ateliergzel-0hb.com +xn--atlantismhendislik-u6b.com +xn--aufsteckbrsten-kaufen-hic.de +xn--b-dga.vn +xn--b1aq.space +xn--b3c3ap8a0c0a.xyz +xn--badrumssrenoveringmrsta-e8b.se +xn--barcelonabmbardejada-k8b.cat +xn--bc-f5s.net +xn--bei.cf +xn--bei.ga +xn--bei.gq +xn--bei.ml +xn--bei.tk +xn--bichosdeestimao-xkb1e.com +xn--bk8vn8den8tweed-85c.xyz +xn--bka.net +xn--blckchain-66a.site +xn--blckchan-i2a8c.site +xn--blckchn-mwa2i6b.site +xn--blockchaj-t6a.com +xn--blockchan-n5a.site +xn--bluewn-7va.cf +xn--bnqv7k.net +xn--byggfretagistockholm-79b.nu +xn--c3cralk2a3ak7a5gghbv.com +xn--c3cralk2a3ak7a5gnbdr.com +xn--c3cralk2a3ak7a8c7anddj0t.com +xn--c3cralk2a3ak7a8c7angjb8s.com +xn--c3cralk2a3ak7a8c7anpbd4s.com +xn--c3cralk2a3ak7a8ce5aoqf4s.com +xn--c3cranh6a3ae7a0d7andcr3s.com +xn--c3cranh6a3ae7a0d7aqchj3s.com +xn--c3cranh6a3ae7a0d7ashdf3s.com +xn--c3cranh6a3ae7a0db8aulf3s.com +xn--c3cranh6a3ae7a1d7bjfq.com +xn--c3cranh6a3ae7a2hfdfq.com +xn--c3cranh6a3ae7a8gdcpq.com +xn--c3crat5cva1fdm.com +xn--c3crat5cva4edv.com +xn--c3crat5cva5bbzz9l.com +xn--c3crat5cva5byakd0n.com +xn--c3crat5cva5byatd9l.com +xn--c3crat5cva6b4bm.com +xn--c3cro5br0ed.com +xn--caddeparfm-ieb.com +xn--canldabahis-2zb.com +xn--centresantles4chemins-k5b.com +xn--cest9b816c0pi.top +xn--ciqp94mlxb.com +xn--cjr6vo4e4za759t.site +xn--clodflare-is7d.net +xn--cloudflae-7n6d.com +xn--cloudflar-3f7d.com +xn--cloudflar-3f7d.net +xn--cloudflre-676d.com +xn--cloudflre-676d.net +xn--clouflare-t05d.com +xn--cludflare-ml7d.com +xn--cludflare-ml7d.net +xn--comunicaci21-9hb.cat +xn--coudflare-qd6d.com +xn--coudflare-qd6d.net +xn--cret-bpa.holiday +xn--cretholiday-bbb.com +xn--cykelfrmjandet-cib.se +xn--d-bga.net +xn--d1abbzibngdp5b.com +xn--d2q.net +xn--damsolglasgon-rmb.se +xn--darma-2ta.xyz +xn--desayuno-tnico-jkb.info +xn--dimensin-normalizada-h8b.info +xn--dlqv1x88bf9qm66a.xyz +xn--dncesizlerkulbesi-22bam97r.xyz +xn--duzv1q24e.top +xn--dveloppersaconfiance-b2b.com +xn--dy-hpa.shop +xn--e5xx98d.top +xn--efvt95f.com +xn--ehquh6ex304a.top +xn--entretienmnagercommercial-kic.quebec +xn--farr-epa.cat +xn--faturakart-6ub.com +xn--fed.com +xn--filim-bsa.xyz +xn--fiq06l2rdsvs.online +xn--fiq06l2rdsvs.site +xn--fiq06l2rdsvs.tech +xn--fiq64f9jv65a.com +xn--fiqs8s9z5a1un.hk +xn--foto-en-el-lbum-xjb.info +xn--gilnationalreserve-dwb.com +xn--golvlggarestersund-ptb97a.se +xn--gorrinrosa-kbb.info +xn--gratislna-c3a.se +xn--grundstcke-geb.com +xn--gteborgbergvrme-clb80a.se +xn--gtvz22d7vt.com +xn--gvsy1c432dt4b73w.com +xn--h3t3kv19csvc4qh.wang +xn--h3t41m4st.com +xn--h3t41m4stzge.com +xn--h3t41m6yx.com +xn--h43axb.asia +xn--hilbetyenigiri-8zc.com +xn--horu63b9x9a.hk +xn--hospedagem-de-vdeo-vyb.info +xn--hottetser-q8a.com +xn--huslkaren-y2a.se +xn--hy1bt45ad8b.com +xn--hyra-buss-gteborg-9zb.se +xn--i8s19v917a.com +xn--ida.online +xn--ida.website +xn--ihq702hpui.top +xn--iloveand-5z9m0a.gq +xn--instgram-cza.com +xn--j6h.ml +xn--jkrzr252dtnal80f95bk17d.top +xn--jurdicorobot-ufb.com +xn--kabeldurchfhrung-tzb.info +xn--kbr860dxgb522ac8c.com +xn--kksrenoveringgvle-3qb24a.se +xn--kksrenoveringnorrkping-uhcr.se +xn--kksrenoveringstersund-hecm.se +xn--kksrenoveringsundsvall-uhc.se +xn--kltrkrtasiye-dlbc11f.com +xn--koltukrts-57a2eb.com +xn--krhemp-3ya.com +xn--l1b.live +xn--l3caiixzj3a4a0a4bofr.com +xn--l3caiixzj3a4a0a4bovk1p.com +xn--l3caiixzj3a4a7dghbv.com +xn--l3caiixzj3a4a7dnbdr.com +xn--l3caiixzj3a4aw7anddj0t.com +xn--l3caiixzj3a4aw7angjb8s.com +xn--l3caiixzj3a4awe5aoq9a9nla.com +xn--l3caiixzj3a4awe5aoqf4s.com +xn--l3cajg0aze3a4a0a3cjfq.com +xn--l3cajg0aze3a4a0a3copf1p.com +xn--l3cajg0aze3a4a0edcpq.com +xn--l3cajg0aze3a4a0efopf1p.com +xn--l3cajg0aze3a4a5efdfq.com +xn--l3cajg0aze3a4az7anfqy7pg.com +xn--l3cajg0aze3a4az7aqchj3s.com +xn--l3cajg0aze3a4azb8auqy7pg.com +xn--l3cao5brv2ceq.com +xn--l3cao5brv6cdm.com +xn--l3cao5brv9bdv.com +xn--l3cao5brv9bwaf1j.com +xn--l3cao5brvqbz9b6hg.com +xn--l3cao5brvqyk7a9ig.com +xn--l3cao5brvqyng3m.com +xn--l3cao5brvqytd9l.com +xn--l3cao5brvr8cf1j.com +xn--l3cj5ans2bd.com +xn--l3cj5ans5bd.com +xn--l3cj5ans8bd.com +xn--l3clf0bb4at.world +xn--la-caada-flintridge-appliance-90c.net +xn--leccindemsica-flb3i.info +xn--ledigajobbbors-xib.se +xn--lgbabba2ddn0k1a86eemd79bgab.com +xn--livredadepresso-xkb.com +xn--lna10000krdirekt-dob.se +xn--lndle-gra.dev +xn--lndwirt-hwa.com +xn--lttflrt-5wa0o.se +xn--m3cso0a9e4c3a.com +xn--malmstronomy-7ib.se +xn--marknadsfring-qmb.xyz +xn--mcdonals-8bb.com +xn--mes89wv6wqby9a05u.site +xn--mes89wv6wqby9a05u.website +xn--mgb.online +xn--mgbaak8abb3osw7v.com +xn--mgbad8a0b2cxa.com +xn--mgbgvi3fi.com +xn--mgbgz7e0zxg.com +xn--mgbq7clv.com +xn--mirn-xpa7a.xyz +xn--mlareume-9zah.nu +xn--mlarnuppsala-tcb.se +xn--mll-hoa.email +xn--mllemail-65a.com +xn--mllmail-n2a.com +xn--mmzn68d.hk +xn--mzn-elan1g.com +xn--n8j998g8ob7u1aivdps1a3h9b.com +xn--namnh-7ya4834c.net +xn--nct552fn5jdja.net +xn--ndice-ysa.com +xn--ndoor-m4a.shop +xn--nds7pu7ag41mqka.top +xn--nepreminine-split-zcc.com +xn--norrkpingmlare-uib0y.se +xn--ntex24-3ua.net +xn--o39a10at55b6sdcrf.com +xn--ob0br3r1td81o8tc.com +xn--odszkodowania-usugi-lgd.waw.pl +xn--ok0bo94b1pav74c.com +xn--ot24-px9g.biz +xn--otomotivingelecei-imc.com +xn--otu027d.com +xn--p89anzg24betd54dkw2abqa.shop +xn--pararse-as-t8a.info +xn--parasepeti-q6a.com +xn--parasoescondido-7ob.com +xn--paypa-9tb.com +xn--pddf8i.com +xn--pedescalo-x3a.com +xn--planteraltt-t8a.com +xn--planteraltt-t8a.nu +xn--planteraltt-t8a.se +xn--princessbetgiri1-0dd.com +xn--prncessbet1-0zb.com +xn--q3cadn7dwbj.com +xn--q3caxbff8ccp6afk4qmeqc.net +xn--qei8618m9qa.ws +xn--qxam.xyz +xn--r2baebyf8c2dtc.com +xn--ray-bg-2h6j.net +xn--razn-para-sonrer-nsb9g.info +xn--realmatc-y09c.com +xn--redovisningsbyrjnkping-25b32bc.nu +xn--refeio-7ta5a.online +xn--rgfest-vxa4c.com +xn--rhqt5tmrbt30afkiqpk45b.top +xn--ridsp-nua.se +xn--robotjurdico-zfb.com +xn--rpple-tsa.com +xn--rrmokarejnkping-8sbic.nu +xn--rrmokarenorrkping-zzbm.com +xn--saatbahaber-4zb11d.com +xn--sakerhetsdrrar-4pb.se +xn--sd-pla.elk.pl +xn--sdertrnsfjrrvrme-4nbd24ae.com +xn--sdertrnsfjrrvrme-4nbd24ae.nu +xn--sdertrnsfjrrvrme-4nbd24ae.se +xn--seorcane-e3a.com +xn--seorgol-5za.com +xn--sheyd8kejer-thb.xyz +xn--sk-fka.xyz +xn--skerhetsvst-l8ai.se +xn--skidvder-4za.nu +xn--smrtforum-w2a.se +xn--sngkheep-qcb2527era.com +xn--soclich-hya.com +xn--sprq0xrsg4w0ad9q.com +xn--stambytegvle-ocb.se +xn--stambyteume-78a.se +xn--sttvgsbehandlingstockholm-ffc07b.nu +xn--svenskkrnkraft-cib.se +xn--t-tma.xyz +xn--tacklggareoxelsund-ptb38a.se +xn--taklggaregvle-efbg.nu +xn--taklggareneskilstuna-ezb.se +xn--taklggarenrebro-3kb62a.se +xn--taklggarenvsters-ynbhx.nu +xn--taklggarestersund-tqb16a.se +xn--taklggarestockholm-otb.nu +xn--taklggareume-jcbw.nu +xn--tarzyakala-0ub.com +xn--taxinykping-xfb.se +xn--thepiratbay-ibb.org +xn--thepratebay-rcb.org +xn--thpiratebay-cbb.org +xn--til-e-emocionante-01b.info +xn--tiqz61cv9ct44b.asia +xn--tl3br0fpo32jc0f.net +xn--tn1b.com +xn--tn1b.net +xn--toms-2na.cat +xn--toms-olivo-lpez-pjb92a.info +xn--tryggmklare-q8a.se +xn--undaoscuro-m8a.info +xn--us1aq98a.top +xn--uzzfeed-22a.com +xn--v30bm5byymr7m.org +xn--v3chobrp9cc6k.com +xn--vk5b29y.com +xn--vo4b.com +xn--vo4b.net +xn--vrmepumpar-stockholm-bzb.se +xn--vuqutg24mksf.com +xn--wcso4nxt0ar2j.com +xn--wda.net +xn--wgkln-lua.org +xn--wkr.cf +xn--wkr.gq +xn--x2a.ltd +xn--x49ap35a6odo7t.net +xn--x8q24mjzay63b.top +xn--xft85u.asia +xn--xyz-t33er8o.xyz +xn--yenialdm-zkb.com +xn--yfr2t843afc006birqehc.top +xn--yfrx98av8bba7543a.biz +xn--yh4bv0ldmk.site +xn--yivy24d73j.com +xn--ynyz0b.com +xn--yuniverse-l4a.net +xn--yuniversity-nbb.com +xn--yuuniversity-oeb.com +xn--z8hxwp135i.ws +xn--zfr188b243a.hk +xn--ztsu23a.com +xncm.netmail.tk +xne2jaw.pl +xnefa7dpydciob6wu9.cf +xnefa7dpydciob6wu9.ga +xnefa7dpydciob6wu9.gq +xnefa7dpydciob6wu9.ml +xnefa7dpydciob6wu9.tk +xneopocza.xyz +xneopoczb.xyz +xneopoczc.xyz +xneu.com +xngirls.fun +xnmail.mooo.com +xnnpdqjow.shop +xnogl.us +xnscy.xyz +xnsmm.xyz +xnssf.xyz +xnszp.xyz +xnttjtpuk.shop +xntub.site +xnxn.biz +xnxxa.fun +xnxxa.site +xnxxb.site +xnxxmov.site +xnxxn.space +xnxxs.site +xnxxt.online +xnxxtube.site +xnxxup.site +xnxxv.site +xnxxv.top +xnxxz.site +xnxzzz.com +xnycy.best +xnzmlyhwgi.pl +xo0.buzz +xo0yvn.com +xoballoon.com +xodu.site +xoduje.info +xogolden.com +xography.site +xohi.site +xoifyjcyj.shop +xoixa.com +xokdgw.site +xolox.xyz +xomawmiux.pl +xooit.fr +xoolexa.xyz +xormail.net +xormail.org +xorpaopl.com +xoru.ga +xoso.online +xoso168.org +xoso889.net +xost.us +xov0qq.info +xowxdd4w4h.cf +xowxdd4w4h.ga +xowxdd4w4h.gq +xowxdd4w4h.ml +xowxdd4w4h.tk +xoxaxoda.site +xoxo-2012.info +xoxo1688.com +xoxox.cc +xoxy.net +xoxy.uk +xoxy.work +xoyctl.com +xoze0.us +xozith.com +xp603.top +xp6tq6vet4tzphy6b0n.cf +xp6tq6vet4tzphy6b0n.ga +xp6tq6vet4tzphy6b0n.gq +xp6tq6vet4tzphy6b0n.ml +xp6tq6vet4tzphy6b0n.tk +xpalcomp3.xyz +xpartner.site +xpasystems.com +xpaw.net +xpdevenv.com +xpdyab.site +xpee.tk +xperiae5.com +xpert.tech +xphyk.fun +xpict.buzz +xpict.site +xpiyg.com +xpj-333.com +xpj100999.com +xpjbct.com +xpjfvmjq.shop +xplannersr.com +xplanningzx.com +xplaytamil.pro +xploit.ml +xploreazadkashmir.com +xploziya.xyz +xpoker99.asia +xpoowivo.pl +xpornclub.com +xposenet.ooo +xposible.info +xpouch.com +xpressbattery.com +xpressionisme.com +xprice.co +xproofs.com +xproxyhost.com +xps-dl.xyz +xpsatnzenyljpozi.cf +xpsatnzenyljpozi.ga +xpsatnzenyljpozi.gq +xpsatnzenyljpozi.ml +xpsatnzenyljpozi.tk +xpslots.com +xpslotscasino.com +xpywg888.com +xq-diamond.com +xqcenter.com +xqfhm1.site +xqonu.us +xqsdr.com +xqur.xyz +xqworks.com +xqwuia.icu +xqyoqwnpl.shop +xqzsale.top +xr.ftpserver.biz +xr158a.com +xr160.com +xr160.info +xr232.com +xr3.elk.pl +xray.lambda.livefreemail.top +xrbsgv.us +xreiesx.club +xrerlf.us +xret.com +xrewspro.site +xrfact.website +xrg7vtiwfeluwk.cf +xrg7vtiwfeluwk.ga +xrg7vtiwfeluwk.gq +xrg7vtiwfeluwk.ml +xrg7vtiwfeluwk.tk +xrho.com +xrilop.com +xrlackli.shop +xrlihiuvt.shop +xrmail.xyz +xrmailbox.net +xrmdvvkre.shop +xrnwccun.com +xroenv.us +xrohan.ga +xronmyer.info +xrplug.com +xrpmail.com +xrqsoz.us +xrqwooehh.shop +xrsig.us +xrtt.xyz +xrum.xyz +xrumail.com +xrumer.warszawa.pl +xrumercracked.com +xrumerdownload.com +xrxrxr.host +xrzgxj.icu +xs-foto.org +xs188.net +xs31xs.com +xs31xs.info +xs31xs.org +xs31xs.xyz +xs5lfo.site +xsbetter20.xyz +xsbyby.com +xscdouzan.pl +xscrape.com +xsdfgh.ru +xsdolls.com +xsellize.xyz +xsgb2v.host +xshoestop.info +xsil43fw5fgzito.cf +xsil43fw5fgzito.ga +xsil43fw5fgzito.gq +xsil43fw5fgzito.ml +xsil43fw5fgzito.tk +xsingles.online +xsingles.site +xsiteservice.com +xsjfl.info +xsjfl.org +xsjfl.xyz +xskt168.com +xsmega.com +xsmega645.com +xsmfhh.icu +xsnapbet2020.xyz +xsnapbett.xyz +xsqc54.com +xsrrug.tokyo +xss.science +xssworm.com +xstabbettsnupp2020.xyz +xstabetsnup.xyz +xstabilbettingsnap.xyz +xstabilbettsnapp.xyz +xstabilitybettingsnapp.xyz +xstasyenergy.com +xstdshmpz.shop +xstest1.tk +xstratacoal.cd +xstratairon.cd +xstrerilize.com +xswtrl.com +xt-size.info +xt.net.pl +xt6jn.us +xtaint.host +xtbanke.com +xtbpkpq.online +xtc94az.pl +xtds.net +xteammail.com +xtgg8f.site +xtggarshz.shop +xtguj.com +xthemes.xyz +xtknrv.us +xtm7vr.us +xtmail.win +xtnr2cd464ivdj6exro.cf +xtnr2cd464ivdj6exro.ga +xtnr2cd464ivdj6exro.gq +xtnr2cd464ivdj6exro.ml +xtnr2cd464ivdj6exro.tk +xtocqw.club +xtojnhpq.shop +xtq6mk2swxuf0kr.cf +xtq6mk2swxuf0kr.ga +xtq6mk2swxuf0kr.gq +xtq6mk2swxuf0kr.ml +xtq6mk2swxuf0kr.tk +xtradult.com +xtrars.ga +xtrars.ml +xtrasize-funziona-opinioni-blog.it +xtremenano9h.net +xtremerouters.com +xtremeventure.com +xtremewebtraffic.net +xtrfacts.com +xtrsongs.com +xtrstories.com +xtrstudios.com +xtrtarget.com +xtrzeer.fun +xtsimilar.com +xtubemate.site +xtuc.com +xtwgtpfzxo.pl +xtxfdwe03zhnmrte0e.ga +xtxfdwe03zhnmrte0e.ml +xtxfdwe03zhnmrte0e.tk +xtzqytswu.pl +xtzverostrore.com +xu28.biz +xu54sgce3.xyz +xubawe.info +xubqgqyuq98c.cf +xubqgqyuq98c.ga +xubqgqyuq98c.gq +xubqgqyuq98c.ml +xubqgqyuq98c.tk +xudttnik4n.cf +xudttnik4n.ga +xudttnik4n.gq +xudttnik4n.ml +xudttnik4n.tk +xuduoshop.com +xueshenka.com +xueziwo.com +xugomuo0.online +xuiahyobv.shop +xuj56.us +xumail.cf +xumail.ga +xumail.gq +xumail.ml +xumail.tk +xumberleop.ru +xumku.ru +xun1314.com +xundayule.com +xunfood.com +xunixiaozhan.com +xuniyxa.ru +xunlei.ml +xuogcbcxw.pl +xuora.com +xupace.info +xusujyi.space +xutd8o2izswc3ib.xyz +xutemail.info +xuubu.com +xuuxmo1lvrth.cf +xuuxmo1lvrth.ga +xuuxmo1lvrth.gq +xuuxmo1lvrth.ml +xuuxmo1lvrth.tk +xuwome.info +xuwphq72clob.cf +xuwphq72clob.ga +xuwphq72clob.gq +xuwphq72clob.ml +xuwphq72clob.tk +xuxx.gq +xuyalter.ru +xuyushuai.com +xv9u9m.com +xvcezxodtqzbvvcfw4a.cf +xvcezxodtqzbvvcfw4a.ga +xvcezxodtqzbvvcfw4a.gq +xvcezxodtqzbvvcfw4a.ml +xvcezxodtqzbvvcfw4a.tk +xvnc.net +xvpkrm.online +xvpz6c.us +xvx.us +xwa3up.us +xwaretech.com +xwaretech.info +xwaretech.net +xwaretech.tk +xwcbk1.site +xwdmoe.cf +xwfzlvjb.shop +xwgpzgajlpw.cf +xwgpzgajlpw.ga +xwgpzgajlpw.gq +xwgpzgajlpw.ml +xwgpzgajlpw.tk +xwmca1.site +xwo4ua.us +xwpet8imjuihrlgs.cf +xwpet8imjuihrlgs.ga +xwpet8imjuihrlgs.gq +xwpet8imjuihrlgs.ml +xwpet8imjuihrlgs.tk +xwtaudcha.cf +xww.ro +xwyzperlkx.cf +xwyzperlkx.ga +xwyzperlkx.gq +xwyzperlkx.ml +xwyzperlkx.tk +xwzowgfnuuwcpvm.cf +xwzowgfnuuwcpvm.ga +xwzowgfnuuwcpvm.gq +xwzowgfnuuwcpvm.ml +xwzowgfnuuwcpvm.tk +xx-9.tk +xx-ms98.online +xx-xgirls.fun +xx-xgirls.host +xx11.icu +xx1775.com +xx18269.com +xx44.xyz +xx57822.com +xx6699.com +xx9094.com +xxbb834.info +xxbqgstore.com +xxckefu.online +xxckefu.xyz +xxdane5p2nj8mbi.xyz +xxgirls.site +xxgkhlbqi.pl +xxgmaail.com +xxgmail.com +xxgry.pl +xxhaili.com +xxhamsterxx.ga +xxhu70.com +xxhu71.com +xxhu74.com +xxhu76.com +xxi2.com +xxiyh.us +xxjj068.xyz +xxjj072.xyz +xxjj073.xyz +xxjj074.xyz +xxjj075.xyz +xxjj077.xyz +xxjj078.xyz +xxjj079.xyz +xxjj080.xyz +xxjj081.xyz +xxjj082.xyz +xxjj083.xyz +xxjj084.xyz +xxjj085.xyz +xxjj086.xyz +xxjj087.xyz +xxjj089.xyz +xxjj090.xyz +xxjj091.xyz +xxjj093.xyz +xxjj094.xyz +xxjj096.xyz +xxjj098.xyz +xxjj099.xyz +xxkangli.com +xxl.rzeszow.pl +xxldruckerei.de +xxlocanto.us +xxlxx.com +xxme.me +xxmuonline.net +xxmv.site +xxolocanto.us +xxpm12pzxpom6p.cf +xxpm12pzxpom6p.ga +xxpm12pzxpom6p.gq +xxpm12pzxpom6p.ml +xxpm12pzxpom6p.tk +xxqx3802.com +xxs.buzz +xxshe.info +xxsx.site +xxsxnr.tokyo +xxtxmore.online +xxtxmuse.best +xxtxtime.site +xxup.site +xxvcongresodeasem.org +xxvl.xyz +xxw22.com +xxx-chatten.online +xxx-gif.com +xxx-ios.ru +xxx-jino.ru +xxx-movies-tube.ru +xxx-movs-online.ru +xxx-mx.ru +xxx-strory.ru +xxx.sytes.net +xxx165.xyz +xxx28.ru +xxx36.ru +xxx65.ru +xxx72.ru +xxx72.space +xxx73.space +xxx75.space +xxx76.space +xxx81.space +xxx83.space +xxx84.space +xxx9827.com +xxxa.online +xxxa.site +xxxa.space +xxxamazing.com +xxxany.site +xxxb.fun +xxxbig.site +xxxbomb.site +xxxbox.site +xxxc.fun +xxxcam.ooo +xxxclips.site +xxxcock.site +xxxd.fun +xxxdreams.site +xxxe.club +xxxe.fun +xxxe.online +xxxe.site +xxxe.top +xxxe.website +xxxf.fun +xxxf.site +xxxflashgaming.com +xxxfresh.site +xxxfunny.site +xxxfuns.site +xxxg.fun +xxxg.site +xxxgamesshop.com +xxxgirls.online +xxxh.fun +xxxh.site +xxxh.space +xxxhdtv.top +xxxhdv.site +xxxhdv.top +xxxhi.site +xxxhjs.ga +xxxhot.fun +xxxhot.site +xxxhot.space +xxxi.club +xxxi.fun +xxxi.site +xxxi.space +xxxi.website +xxxin.site +xxxj.fun +xxxj.site +xxxju.site +xxxjust.com +xxxk.fun +xxxk.site +xxxk.space +xxxking.site +xxxl.fun +xxxlive.ooo +xxxlx.site +xxxm.fun +xxxm.online +xxxm.site +xxxmature.mobi +xxxmob.fun +xxxmovs.fun +xxxmovs.site +xxxmp4.site +xxxmx.site +xxxn.fun +xxxn.online +xxxn.site +xxxn.website +xxxnew.site +xxxnxx.fun +xxxnxx.site +xxxo.fun +xxxo.online +xxxo.site +xxxo.space +xxxo.website +xxxok.site +xxxooo.site +xxxorgy.site +xxxp.fun +xxxp.online +xxxpawme.com +xxxpictures.online +xxxpure.site +xxxq.fun +xxxq.site +xxxr.fun +xxxred.fun +xxxred.site +xxxred.xyz +xxxs.buzz +xxxs.online +xxxs.site +xxxs.website +xxxshort.com +xxxsn.site +xxxstars.site +xxxsweet.site +xxxsx.site +xxxt.fun +xxxtext.site +xxxtub.fun +xxxtyt.ru +xxxu.fun +xxxu.site +xxxv.fun +xxxv.online +xxxv.website +xxxvids.site +xxxvs.site +xxxvx.site +xxxw.fun +xxxw.online +xxxw.site +xxxw.space +xxxw.website +xxxwap.site +xxxxilo.com +xxxy.space +xxxy.website +xxxz.online +xxxz.site +xxxz.space +xxzyr.com +xy-78.com +xy1qrgqv3a.cf +xy1qrgqv3a.ga +xy1qrgqv3a.gq +xy1qrgqv3a.ml +xy1qrgqv3a.tk +xy2jg.us +xy66699.com +xy99955.com +xy9ce.tk +xycassino.com +xycp5556.com +xycp5557.com +xycp5559.com +xycp7775.com +xycp8880.com +xycp8882.com +xycp8883.com +xycp8885.com +xyguja.ru +xygy.site +xyhjzg.com +xyjckj.icu +xymailpro.com +xymgzp.com +xypo.site +xyso.site +xysthjx.com +xystus.site +xytexinternational.com +xytjjucfljt.atm.pl +xytojios.com +xyussmc.xyz +xyz-drive.info +xyzbnj.com +xyzcasinoforum.xyz +xyzcasinositeleri.xyz +xyzdzw.com +xyzfree.net +xyzmail.men +xyzmailhub.com +xyzpoker.club +xyzsite.space +xz3.net +xz5qwrfu7.pl +xz8syw3ymc.cf +xz8syw3ymc.ga +xz8syw3ymc.gq +xz8syw3ymc.ml +xz8syw3ymc.tk +xzavier1121.club +xzbags.com +xzcameras.com +xzcloth2.online +xzcsrv41.life +xzcsrv44.life +xzcsrv45.life +xzcsrv46.life +xzcsrv51.life +xzcsrv55.life +xzcsrv56.life +xzcsrv58.life +xzcsrv61.life +xzcsrv62.life +xzcsrv63.life +xzcsrv64.life +xzcsrv65.life +xzcsrv66.life +xzcsrv69.life +xzcsrv70.life +xzcsrv72.life +xzcsrv74.life +xzcsrv75.life +xzcsrv76.life +xzcsrv79.life +xzcsrv80.life +xzcsrv82.life +xzcsrv83.life +xzcsrv84.life +xzcsrv85.life +xzcsrv88.life +xzcsrv89.life +xzcsrv90.life +xzcsrv91.life +xzcsrv92.life +xzcsrv95.life +xzcsrv98.life +xzcsrv99.life +xzdcn.com +xzdhmail.tk +xzemw.us +xzephzdt.shop +xzhanziyuan.xyz +xzhguyvuygc15742.cf +xzhguyvuygc15742.ga +xzhguyvuygc15742.ml +xzhguyvuygc15742.tk +xzhguyvuygc32149.cf +xzhguyvuygc50724.ml +xzifgx.icu +xziyq.com +xzjwtsohya3.cf +xzjwtsohya3.ga +xzjwtsohya3.gq +xzjwtsohya3.ml +xzjwtsohya3.tk +xzljdt.com +xzlwdfugt.ga +xzmic.com +xzoahsuyb.shop +xzotokoah.pl +xzqrepurlrre7.cf +xzqrepurlrre7.ga +xzqrepurlrre7.gq +xzqrepurlrre7.ml +xzqrepurlrre7.tk +xzsok.com +xzxgo.com +xzxmymfz.shop +xzymoe.edu.pl +xzzy.info +y-3sapfirov.ru +y-andekac.ru +y-salex.ru +y-turist.ru +y-voronezh.ru +y.bcb.ro +y.lochou.fr +y.polosburberry.com +y.x.ssl.cloudns.asia +y033w3bs1t3a99m0b113.xyz +y05.xyz +y06nr.info +y0brainx6.com +y0cocb.us +y0ituhabqwjpnua.cf +y0ituhabqwjpnua.ga +y0ituhabqwjpnua.gq +y0ituhabqwjpnua.ml +y0ituhabqwjpnua.tk +y0rkhm246kd0.cf +y0rkhm246kd0.ga +y0rkhm246kd0.gq +y0rkhm246kd0.ml +y0rkhm246kd0.tk +y0up0rn.cf +y0up0rn.ga +y0up0rn.gq +y0up0rn.ml +y0up0rn.tk +y1ajs4.us +y1djbz.us +y1vmis713bucmc.cf +y1vmis713bucmc.ga +y1vmis713bucmc.gq +y1vmis713bucmc.ml +y1vmis713bucmc.tk +y1wl0z.us +y1xhu.us +y1ybl.cloud +y1zwny.us +y20acz.com +y20pq.site +y20pt.site +y2b.comx.cf +y2d.xyz +y2emu.us +y2kpz7mstrj.cf +y2kpz7mstrj.ga +y2kpz7mstrj.gq +y2kpz7mstrj.ml +y2kpz7mstrj.tk +y2oleo.us +y2ube.comx.cf +y2y4.com +y2zgop89uxtsk84.xyz +y3bbs.com +y3dvb0bw947k.cf +y3dvb0bw947k.ga +y3dvb0bw947k.gq +y3dvb0bw947k.ml +y3dvb0bw947k.tk +y3elp.com +y3qryj.us +y46abt.host +y4s9.icu +y56erx.us +y5815.com +y59.jp +y5artmb3.pl +y5kbku.host +y5q3pf.com +y6ce.us +y6npbt.us +y70.net +y75aff.site +y7bbbbbbbbbbt8.ga +y7sdpd.site +y7ukrb.host +y8c.info +y8fr9vbap.pl +y8gbc.cloud +y97998.com +y97dtdiwf.pl +y981ppe1a07kphr.xyz +y9827.com +y9ewd.site +ya-doctor.ru +ya-gamer.ru +ya-tourism.ru +ya-tourist.ru +ya-touristo.ru +ya-tur.ru +ya-turistik.ru +ya-turistom.ru +ya-tyt.ru +ya.yomail.info +yaadgar-tullamore.com +yaasked.com +yabackup.ru +yabai-oppai.tk +yabancifilm.mobi +yabba-dabba-dashery.co.uk +yabbadabbadoo.ru +yabet35.com +yabet36.com +yabingu.com +yablochnipirog.space +yabo0770.com +yabo0990.com +yabo701.com +yabo7070.com +yabo9090.com +yabo999l.com +yabocg.com +yaboda.shop +yabovip167.com +yabovip169.com +yabovip181.com +yabovip192.com +yabovip193.com +yabovip195.com +yabovip198.com +yabovip658.com +yabovip668.com +yabrigadir.ru +yabumail.com +yaburi.shop +yabyoo.xyz +yachassa09.com +yachassa16.com +yackir.store +yacsocial.us +yacxrz.pl +yadavnaresh.com.np +yadegarigift.icu +yadkincounty.org +yadong4.com +yadongmall.shop +yadoo.ru +yadro-electro.ru +yaelahrid.net +yaelahtodkokgitu.cf +yaelahtodkokgitu.ga +yaelahtodkokgitu.gq +yaelahtodkokgitu.ml +yaelahtodkokgitu.tk +yafrem3456ails.com +yafri.se +yagciogluajansmatbaa.xyz +yagfiltresi.com +yagg.com +yaglariazalt.site +yaha.com +yahahayuk.fun +yahane.shop +yahantv.shop +yahany.shop +yahaoo.co.uk +yahho.jino.ru +yahmail.top +yahnmtntxwhxtymrs.cf +yahnmtntxwhxtymrs.ga +yahnmtntxwhxtymrs.gq +yahnmtntxwhxtymrs.ml +yahnmtntxwhxtymrs.tk +yaho.co.uk +yaho.com +yahobi.com +yahomail.gdn +yahomail.top +yahoo-emails.online +yahoo-mail.ga +yahoo-team.org +yahoo.co.au +yahoo.comx.cf +yahoo.cu.uk +yahoo.netmail.tk +yahoo.us +yahoodashtrick.com +yahooi.aol +yahoomails.site +yahoon.com +yahooo.com +yahooo.com.mx +yahooo.xyz +yahooproduct.com +yahooproduct.net +yahoosportstab.com +yahooweb.co +yahooz.com +yahu.com +yahuu.com.uk +yajasoo2.net +yajasoo3.net +yajoo.de +yakgh.com +yakimarealestateagents.com +yakinikurestaurantejapones.com +yakolhoznik.ru +yalamail.com +yale-lisboa.com +yalelo.biz +yalelo.pro +yaleta.ru +yalexonyegues.com +yalild.tk +yalokh.site +yalovacakilliogrenciyurdu.xyz +yalovaemlakevi.xyz +yalovaklimaservisi.online +yalovalisveris.com +yalovamenar.com +yalovamenar.xyz +yalovamhaber.xyz +yalovamuzik.com +yalovasandalbalik.xyz +yalp.top +yalta.krim.ws +yamaika-nedv.ru +yamail.win +yamails.net +yamalmashstroy.ru +yaman3raby.com +yamanaraby.com +yamandex.com +yamin6.club +yamiyule88.com +yammydog.com +yammyshop.com +yamoa.shop +yamory.shop +yamuyade.site +yan-dex.cf +yan-dex.ga +yan-dex.gq +yan-dex.ml +yan-dex.tk +yana-dolgushina.ru +yanbex.website +yanbex.xyz +yandecompany.ru +yandere.cu.cc +yandex-mail.cf +yandex-mail.ga +yandex-mail.gq +yandex-mail.ml +yandex-mail.tk +yandex-prosto.ru +yandex-vladimir.ru +yandex.ca +yandex.comx.cf +yandex.net +yandex.uk.com +yandexdrive.pro +yandexmail.cf +yandexmail.ga +yandexmail.gq +yandexmailserv.com +yandextaxigp.ru +yandextaxilider.ru +yandikos8.ru +yandx.icu +yaner.icu +yanet.me +yanezii.club +yankee.epsilon.coayako.top +yankeeecho.wollomail.top +yannmail.win +yanseti.net +yanso.fun +yaocaobi003.xyz +yaokpm.site +yaoshe121.com +yaoshe122.com +yaoshe127.com +yaoshe128.com +yaoshe145.com +yaoshe148.com +yaoshe149.com +yaoshe155.com +yaoshe160.com +yaoshe199.com +yaoshe200.com +yapan-nedv.ru +yapbahsini112.com +yapbahsini114.com +yapkayyoldye.info +yaple9.com +yapohudeu.ru +yapped.net +yaqp.com +yaraon.cf +yaraon.ga +yaraon.gq +yaraon.ml +yaraon.tk +yargerfamily.com +yariga.org +yarigasport.info +yarigatv.net +yarikadeh.org +yarininogretmenleri.online +yarininogretmenleri.xyz +yarled.com +yarmarka-alla.ru +yarnpedia.cf +yarnpedia.ga +yarnpedia.gq +yarnpedia.ml +yarnpedia.tk +yarnsandtails.com +yarpnetb.com +yarra.click +yarra.design +yarra.studio +yarravalleyairport.com +yarzmail.xyz +yasakvideo.net +yasakvideo.org +yasalbahisiddaa.info +yasaljigoloajansi.info +yasaltv.icu +yase.xyz +yaseebet90.org +yasellerbot.xyz +yaseminilan.com +yaseutdcz.shop +yasewzgmax.pl +yashwantdedcollege.com +yasintasli.ml +yasiotio.com +yaskincamp.com +yasmama.net +yasminavaniterson.info +yasminbanks.buzz +yasser.ru +yasul.shop +yasvoyurist.ru +yatagandergisi.xyz +yatecars.info +yatesmail.men +yathaitakeaway.com +yatou-rist.ru +yatripath.com +yatube11.com +yatube13.com +yatube8.com +yatube9.com +yaturistik.ru +yaturistt.ru +yatutpapa.space +yaungshop.com +yausmail.com +yavdengah.ru +yavinedr.digital +yavolshebnik.ru +yavsety.ru +yavuzpack.xyz +yawemail.com +yaxoo.com +yayazhibo.com +yayinakisi.info +yayincilikokulu.com +yayincilikokulu.net +yayinturnvasi.ga +yayinturnvasi.ml +yazaral14.net +yazidanefantasy.com +yazilimfirmasi.com +yazobo.com +yb0hmi.us +yb45tyvn8945.cf +yb45tyvn8945.ga +yb45tyvn8945.gq +yb45tyvn8945.ml +yb45tyvn8945.tk +yb779901.com +yb78oim.cf +yb78oim.ga +yb78oim.gq +yb78oim.ml +yb78oim.tk +ybaznygl.shop +ybbltl.site +ybdwz.com +ybetsport.com +ybgnzblml.shop +ybmwukt.com +ybo96.com +ybozus.us +ybpxbqt.pl +ybq2.com +ybq4.com +ybrc8n.site +ybsc1o.us +ybtz1.com +ybvip10.com +ybw678.com +ybwcf.site +ybwjs.com +ybwrh1.us +ybymlcbfwql.pl +ybyule88.com +yc4.ru +yc9obkmthnla2owe.cf +yc9obkmthnla2owe.ga +yc9obkmthnla2owe.gq +yc9obkmthnla2owe.ml +yc9obkmthnla2owe.tk +yc9qv5.site +ycare.de +ycarpet.com +ycbfb.com +yccyds.com +yceqsd.tk +ychatz.ga +yckvz.com +ycm813ebx.pl +ycn.ro +ycrsnb.site +yctfn.us +ycwodpim.shop +ycxe3h.us +ycxrd1hlf.pl +ycy-charm.com +ycykly.com +ycysale.top +ycyuan.club +ycyuan.site +ycyuan.xyz +yd-wf.com +yd20q.site +yd2444.com +yd2yd.org +yd3oqf.us +yd7lw.us +ydbdsgnn.shop +ydd-naicha.com +ydd20.site +yddc5511.com +yddc999.com +ydeclinegv.com +ydgeimrgd.shop +ydhbbr.site +ydhopn.us +ydkscoyun.shop +ydlmkoutletjackets9us.com +ydnwgkulh.shop +ydouthink.com +ydpggbwe.shop +ydpq.site +ydpt.site +ydt1om.com +ydvrgaphk.shop +ydww88.com +ydwyw.com +ydyl5.com +ydznvykfk.tk +ydzwnq.site +ye.vc +ye20p.site +ye20q.site +ye20t.site +yeah.net.com +yeahdresses.com +yeahm.cn +yeamail.info +yean.site +yearbooks.xyz +yearnbudge.buzz +yearngra.xyz +yearngras.xyz +yeastinfectionnomorenow.com +yeckelk.tech +yed20.site +yedi.org +yedkvgar.site +yedogg.us +yedp.site +yedq.site +yedt.site +yedvmq.site +yeeeou.org.ua +yeeet.info +yeeshoes.store +yeezus.ru +yeezy888.com +yeheey.xyz +yehetang.info +yehha.xyz +yej2lf.us +yejdnp45ie1to.cf +yejdnp45ie1to.ga +yejdnp45ie1to.gq +yejdnp45ie1to.ml +yejdnp45ie1to.tk +yek2pay.shop +yektara.com +yelectronicsmost.info +yelkivpos2.ru +yelkons1.ru +yellingjournal.com +yellnbmv766.cf +yellnbmv766.ga +yellnbmv766.gq +yellnbmv766.ml +yellnbmv766.tk +yellow.casino +yellow.flu.cc +yellow.hotakama.tk +yellow.igg.biz +yellowbearpropertymanagement.com +yellowbearrealty.com +yellowbook.com.pl +yellowen.com +yellowhandprint.com +yelloww.ga +yelloww.gq +yelloww.ml +yelloww.tk +yelvin.info +yemailme.com +yemek46.com +yemekizmit.xyz +yemekykalmadi.cf +yemekykalmadi.ga +yemobaswq.online +yenderpern10.ru +yeniajan.cf +yeniajan.ml +yenigulen.xyz +yeniji777-com.xyz +yenilerturizm.online +yenilerturizm.xyz +yenilmezdijital.com +yenilmezdijital.xyz +yenimahalledershanesi.xyz +yenimail.site +yenimetinbeleri.cf +yenimetinbeleri.ml +yenimetinbeleri.tk +yenimusteri.com +yenisohbet33.online +yeniyasamgorukle.xyz +yennzu.com +yentzscholarship.xyz +yeod.site +yeoq.site +yeot.site +yeovv.site +yep.it +yepbd.com +yepmail.app +yepmail.cc +yepmail.club +yepmail.co +yepmail.email +yepmail.id +yepmail.in +yepmail.to +yepmail.us +yepmail.ws +yepnews.com +yeppee.net +yepq.site +yept.site +yepwprntw.pl +yeqlk1.site +yerberasdeluruguay.com +yerliarabafiyati.xyz +yerligurme.com +yermail.net +yermanbetx.com +yerpertod5.ru +yert.ye.vc +yertio.website +yertwowos9.ru +yertxenon.tk +yertxenor.tk +yes100.com +yes2khalistan.com +yesaccounts.net +yesdew.com +yesese.xyz +yesferadyim.ga +yesgotour.com +yesgreenenergy.com +yesgreenenergy.net +yesilimsi.ga +yesilimsi.tk +yesilyurtkurye.xyz +yesilyurtluyuz.com +yesimbla.cf +yesimbla.tk +yesiyu.com +yeskshop.space +yesnauk.com +yesnews.info +yeson1608.org +yesorting.com +yespickup.com +yespostcardyou.website +yesselma.com +yesterday2010.info +yesuan17.xyz +yesuan18.xyz +yesuan20.xyz +yeswecanevents.info +yeswetoys.com +yeswewill2024.com +yesxnxx.site +yesyes.site +yetereveoturupkaldim.ga +yetereveoturupkaldim.tk +yetgo.site +yetipay.cd +yetmail.net +yeuniverse.net +yeuniverse.org +yeupmail.cf +yeurth.com +yevme.com +yevvd.site +yevvp.site +yevvq.site +yeweuqwtru.tk +yewma46eta.ml +yewmail.com +yewtyigrhtyu.co.cc +yezy2112.ru +yf322.com +yf877.com +yfdaqxglnz.pl +yffxs.com +yfhffo.icu +yfkfct.info +yfn1d5.us +yfophx.us +yfpasf.biz +yfpoloralphlaurenpascher.com +yfqchina.com +yfqkryxpygz.pl +yfqkwvzkl.gq +yfqyvg.com +yfractal.com +yftfc.com +yfyf00000.info +yfyf11111.info +yfyf777.com +yfyf77777.info +yfyf88888.info +yfyf999.com +yg02sl.us +ygfghhs.xyz +ygfwhcpaqf.pl +ygifccwbzv.site +ygmail.pl +ygmin3.us +ygmx.de +ygnzqh2f97sv.cf +ygnzqh2f97sv.ga +ygnzqh2f97sv.gq +ygnzqh2f97sv.ml +ygnzqh2f97sv.tk +ygod2020.site +ygow2020.site +ygquc.us +ygroupvideoarchive.com +ygroupvideoarchive.net +ygrxw.com +ygryiprodagi.ru +yguh.com +ygva12.info +ygvz2n.site +yh00028.com +yh00078.com +yh08c6abpfm17g8cqds.cf +yh08c6abpfm17g8cqds.ga +yh08c6abpfm17g8cqds.gq +yh08c6abpfm17g8cqds.ml +yh08c6abpfm17g8cqds.tk +yh3kjs-mail.xyz +yh58581.com +yh6686.com +yh9837.com +yhaig.com +yham222.com +yham666.com +yham888.com +yhcaturkl79jk.tk +yhcaturxc69ol.ml +yhccetl.com +yhdichan.com +yhfadceub.shop +yhfryy.com +yhfs78.com +yhg.biz +yhgj9986.com +yhiy.site +yhjgh65hghgfj.tk +yhldqhvie.pl +yhq61.space +yhqbb.site +yhr93.club +yhtqks.us +yhttls.us +yhykmg6t56uhjjhn.best +yhyseo.com +yicaiwts.com +yidaiyiluwang.com +yidaolife.net +yidongo.xyz +yieldiwogk.space +yieldo.com +yierda.icu +yifan.net +yiffy.monster +yigeyidh1.xyz +yigitcafe.xyz +yihdc4.info +yihuang.xyz +yiiokb.xyz +yijinshiji.com +yikanabilirmaske.site +yikes.online +yikoujia.cd +yikpg.us +yikulju.com +yikwvmovcj.pl +yildirimgurses.xyz +yildirimmatbaareklam.xyz +yildizv2.cf +yildizv2.ga +yildizv2.tk +yildzentegre.com +yilmazplanlama.xyz +yimate.info +yin-m.com +yinbox.net +yinfengyule1.com +ying168.org +yingcaipiao.com +yingcy.xyz +yingeshiye.com +yinghangk.com +yingka-yule.com +yingnanstone.com +yintoni.com +yinz.cab +yipimalls.site +yippamail.info +yipsymail.info +yirotrin15.ru +yishuzhai.club +yitaifang.website +yitemalls.site +yitenghz.xyz +yiustrange.com +yivbfojva.tk +yiwuoutlet.site +yiximalls.site +yixiu.site +yiyi678.com +yiying.app +yiyuer.icu +yiyuncloud.services +yiz126dd4oz44ye.xyz +yizuchegroup.com +yj3nas.cf +yj3nas.ga +yj3nas.gq +yj3nas.ml +yj3nas.tk +yjav14.com +yjav15.com +yjav17.com +yjav18.com +yjav19.com +yjav20.com +yjav22.com +yjav23.com +yjav25.com +yjav28.com +yjav31.com +yjav32.com +yjav34.com +yjav37.com +yjav39.com +yjav40.com +yjav44.com +yjav46.com +yjav49.com +yjcoupone.com +yjehor.site +yjemjj.com +yjfcncch.shop +yjivq.us +yjjgcbxhn.shop +yjjk19.top +yjjvinbnr.shop +yjlnyo.space +yjnkteez.pl +yjpel.com +yjpth.us +yjyjwl.icu +yk20.com +yk888d.com +ykblzr.site +ykbmcp.fun +ykcpdz.us +ykctj.com +ykdmrk.fun +ykdszp.us +ykfmzg.fun +ykfx9u-mail.xyz +ykgmjf.fun +ykjmpb.fun +yklmgh.fun +yklmyt.fun +yknhcm.site +yknmpx.fun +ykp9.com +ykrmgb.fun +ykrmkp.fun +ykrybwiko.shop +yksmmk.fun +ykssyqub.pro +ykwmnt.fun +ykxhd.club +yl0661.com +yl2bs4.us +ylatd.com +yldvgi.us +ylegging.com +ylhmy.com +yliora.site +yliuetcxaf405.tk +ylkht.com +ylkpdp.info +yllw.info +yllw.life +yllw.rocks +yllw.us +ylouisvuittonoutlet.net +yltemvfak.pl +yluxuryshomemn.com +ylxnw6.com +ylyangsheng.com +ylztst.site +ym9.app +ymai.com +ymail.edu +ymail.net +ymail.org +ymail.site +ymail365.com +ymail4.com +ymail44.com +ymail5.com +ymails.pw +ymakers.shop +ymcswjdzmx.pl +ymdeeil.com +ymdeiel.com +ymdeil.com +ymedeil.com +ymeeil.com +ymeil.cc +ymggs.tk +ymjd9n.us +ymoaymor.shop +ymobil.ru +ymogof.cf +ymogof.ga +ymogof.ml +ymqzwwdo.shop +ymrnvjjgu.pl +yms.us +ymt198.com +ymv168.com +ymvosiwly.pl +ymwvlgzkn.shop +ymz7ur.us +yn3ahk.com +yn6lcg.us +yn8jnfb0cwr8.cf +yn8jnfb0cwr8.ga +yn8jnfb0cwr8.gq +yn8jnfb0cwr8.ml +yn8jnfb0cwr8.tk +yndrinks.com +yndx.online +yndx.press +yndx.space +yngjh.net +ynhblw.icu +ynhpgc.com +ynlasrpza.shop +ynmrealty.com +ynolptsmw.shop +ynowmt.us +ynrczx.icu +ynskleboots.com +yntou.club +ynumoriz6.ru +ynuyqc.com +ynvidixoc7.ru +ynvvehnfe.shop +ynvwdg.us +ynwfkeji.com +ynwkw.com +ynzfx6.us +yo20p.site +yo20t.site +yo35.xyz +yo88.pro +yoa69.space +yobe.pl +yobit.biz +yobogames.com +yockelz.best +yoco.dev +yoco.shop +yocxiphbi.shop +yod20.site +yodaat.com +yodabetbonus.com +yodd.site +yodogoods.com +yodq.site +yodt.site +yodw2020.site +yodx.ro +yoex0s.us +yofashops.site +yofibeauty.com +yofoto5188.com +yoga-flexible.club +yoga.cd +yogaatheart.biz +yogaemerald.com +yogagooddeal.ru +yogainsurancequote.com +yogaisaboutyou.ru +yogajellies.info +yogakovriki.ru +yogamaven.com +yogasauna.ru +yogashop.live +yogawithniyati.com +yogcartones.xyz +yogiain.com +yogida.host +yoginyogik.ru +yogivest.com +yogiwebsite.com +yogod.com +yogurtcereal.com +yohana.us +yohomail.ga +yohomail.ml +yohvshop.com +yojishinkawa.com +yokezkyx.space +yokmpqg.pl +yolahost.ru +yolbiletim.xyz +yoloisforgagsnoob.com +yolooo.top +yolosherpa.com +yom6dw.com +yomail.com +yomail.info +yomura.info +yomura.mobi +yomura.org +yomurabroadband.com +yomuracarrier.com +yomuracloud.com +yomuraethernet.com +yomuragroup.com +yomuraholdings.com +yomuraix.net +yomurarefugee.com +yomurarefugees.com +yomurastatus.com +yomuratransit.com +yomurawifi.com +yonaki.xyz +yongdaqm.com +yongfameiye.com +yonglewheel.com +yongxin3.com +yonisp.site +yoo.ro +yood.org +yoofollow.com +yoojeen.design +yoojeen.store +yoojeen.tech +yoolinemail.com +yoonpapa.site +yop.email +yop.emersion.fr +yop.fexp.io +yop.itram.es +yop.milter.int.eu.org +yop.profmusique.com +yop.ze.cx +yopail.com +yopmai.com +yopmail.biz.st +yopmail.cf +yopmail.co +yopmail.com +yopmail.dams.city +yopmail.fr +yopmail.fr.nf +yopmail.gq +yopmail.info +yopmail.ml +yopmail.net +yopmail.org +yopmail.pp.ua +yopmail.usa.cc +yopmail2.tk +yoposts.icu +yopq.site +yoptest.tk +yoqtedbre.shop +yordanmail.cf +yorecountryhome.com +yorkbet100.com +yorkbet49.com +yorkbet70.com +yorkieandco.com +yormanwhite.ml +yoroiwailet.com +yoru-dea.com +yoseek.de +yosemail.com +yoshoper.ru +yosketchers.ml +yosta.site +yosuoa.com +yotmail.com +yotobet.com +yotogroup.com +yotq.site +you-qi.com +you-shopping.info +you-spam.com +you-turist.ru +you.has.dating +youandmetrip.site +youareinvolved.org +youarenotdifferent.com +youarenotyourstigma.com +youbestone.pw +youbetcash.club +youbid.auction +youbid.network +youbid.team +youcankeepit.info +youcaresimple.com +youchat.ooo +youdealonline.org +youdoloveme.me +youfffgo.tk +yougoodshop.com +yougotgoated.com +youhachongdian.net +youhavegotnewmail.net +youhavegototbekidding.com +youhavetowatchthis.com +youhoo.co.uk +youhouse.biz +youjury.com +youkiss-me.online +youknow.blog +youknowscafftowrsz.com +youkybox.org +youkybox.store +youla-info.site +youla-payout.site +youla-rent.online +youlike88box.com +youlynx.com +youmail.ga +youmailr.com +youmails.online +youmakeincome.online +youneedmore.info +young-app-lexacc.com +young-living.store +youngadultrehabprograms.com +youngandjuicy.net +youngaudiences.us +youngbluekennels.com +youngbrofessionals.com +youngcrew.ga +youngforevers.com +younghemp.com +younguxqy.space +youniquebymom.com +youniquelycrowned.com +youporn.flu.cc +youporn.igg.biz +youporn.usa.cc +youpush1.xyz +youpymail.com +youqa.ru +youquwa.cn +your-airy-lashes-spb.ru +your-best-profits2.com +your-crossover-car-today.live +your-crossover-cars-deal.live +your-dating-zones.com +your-dating.website +your-dentalimplant-deal.rocks +your-dentalimplant-offer.sale +your-dentalimplantchoice.live +your-dentalimplantchoice.sale +your-dentalimplantdeals.rocks +your-dentalimplantguide.rocks +your-dentalimplantguides.live +your-dentalimplantonline.live +your-dentalimplantonline.sale +your-dentalimplantsites.rocks +your-dentalimplantspot.market +your-dentalimplantzone.market +your-energy.net +your-free-mail.bid +your-health.store +your-iphone.com +your-ugg-boots.com +your-up.online +your2020.life +youractors24.com +youradvocacystory.org +youranimations.com +yourannuityadvisors.com +yourannuityconsultant.com +yourannuityguru.com +yourapartmentinmadrid.com +youraquatics.com +yourargument.com +yourasshole.online +yourbeautygift.com +yourbellawedding.com +yourbestdate.website +yourbesthvac1.com +yourbestmua.ru +yourbestpropose.website +yourbestversion.space +yourbestwishes.ru +yourbettingrules.com +yourbonus.win +yourbranded.website +yourbrandsites.com +yourbreathcoach.com +yourbusinessjustgoteasier.com +yourbusinesstips.biz +yourcakerecipe.com +yourcambridgemortgageshrink.com +yourcelebshop.com +yourchristmasplan.com +yourcreative2020.website +yourdailypoll.club +yourdemowebsite.info +yourdirectoryguy.com +yourdomain.com +yourefiredday.com +youremail.cf +youremail.info +youremail.top +youremaillist.com +yourenotyourstigma.com +yourent.us +yourentuan.com +yourewronghereswhy.com +yourfast-prizehere9.life +yourfastcashloans.co.uk +yourfastmail.com +yourfilm.pl +yourfilmsite.com +yourfirststeps.blog +yourfitnessguide.org +yourfreeflix.me +yourfreemail.bid +yourfreemail.stream +yourfreemail.streammmail.men +yourfreemail.tk +yourfreemailbox.co +yourgrand-bonus-zone1.life +yourhatchpedia.com +yourhealthguide.co.uk +yourhealthyfamily.xyz +yourhighness5.info +yourhomesecured.net +yourhorseisfrog.online +yourhotbabes.com +yourhotclips.info +youri-tapper.shop +yourimail.bid +yourimail.download +yourimbox.cf +yourinbox.co +yourinternet.icu +yourinternets.world +youripost.bid +youripost.download +youritzones.com +yourjobguru.online +yourlincolnparkagent.com +yourlittlesource.com +yourlms.biz +yourluckycompany.net +yourluckylottery.com +yourmail.work +yourmailbox.co +yourmailbox.xyz +yourmailpro.bid +yourmailpro.stream +yourmailtoday.com +yourmedicinecenter.net +yourmommademecum.com +yourmoode.info +yournationalservice.com +yournetsolutions.bid +yournetsolutions.stream +yournewgadgetpresent.icu +yournewstarlog.com +yournogtrue.top +yournotice.xyz +yourofficiteblueprint.com +youroldemail.com +youronlyliveonce.online +youropa-re.com +youropinion.ooo +yourorder.xyz +yourparked.app +yourphen375.com +yourphoto.pl +yourpilotstars.com +yourpochta.tk +yourpresscorner.com +yourprivateembassy.com +yourprizehere10.life +yourprizeishere12.life +yourprizeishere14.info +yourquickcashloans.co.uk +yourqwik.cf +yourrealpartner1.com +yourresult.ru +yourroscoevillageagent.com +yoursafeinv.website +yoursaferate.biz +yoursaferate.info +yoursaferate.mobi +yoursaferate.name +yoursaferate.net +yoursaferate.org +yoursaferate.us +yoursales.coach +yoursent.gq +yourseo.name +yourshoesandhandbags.com +yoursmileava.info +yoursmileirea.info +yoursmilejulia.info +yoursmilekylie.info +yoursmilelily.info +yoursmilemia.info +yoursmileriley.info +yoursoulsrainbow.com +yourspace.ooo +yourspace.su +yourspamgoesto.space +yoursportszone.com +yourst.art +yourstat.com +yoursuperhealth.com +yoursurvivorstory.org +yourtechnology.info +yourtemecularealestateagent.com +yourtinylog.com +yourtrading.com +yourtube.ml +yourvideos.ru +yourweb.email +yourwebsite.world +yourwildheart.com +yourwinninglottery.com +yourwinprize.info +youryearofsayingyes.com +yousefnabulsi.com +yousupers.online +youtebem.site +youtheatingdisordertreatment.com +youtheatingdisordertreatments.com +youthexchange.club +youthfeet.com +youthfishingclub.com +youthfulhgh.com +youthhuntingclub.com +youthnetworks.info +youthquakelive.org +youthqueue.com +youtjube.waw.pl +youtube-page.com +youtube.comx.cf +youtube2vimeo.info +youtubeabonesatinal.net +youtubecasino.ru +youtubeconverter.tools +youtubelive360.com +youtuyuedu.top +youveo.ch +youw88.com +youwatchmovie.com +youweb.solutions +youwillenjoythis.com +youwinbahis.info +youwinturkiye.info +youxi.moe +youxi88.club +youxxx.site +youzend.net +yovv20.site +yovvd.site +yovvq.site +yovvt.site +yowinpoker.club +yoynk.net +yoyo11.xyz +yoyo69.com +yoyobt.online +yoyobt.xyz +yoyomedia.online +yozaruwi.site +yozgatcozumkoleji.com +yozgatdogruhaber.xyz +yozgatlialuminyum.com +yozgatliyiz.xyz +yozgatmedya.xyz +yozgatyazilim.xyz +yp10.info +yp20.tk +yp3sur.us +ypa7mi.us +ypapa.ooo +ypar82.info +ypcarp.us +ypcomq.com +ypctuz.com +ypehh.us +ypeople.shop +ypfkrl.site +ypicall.shop +ypkyl.fun +ypkzn.com +ypmail.webarnak.fr.eu.org +ypolk1.site +ypovert.shop +ypplasev.cf +ypplasev.gq +ypplasev.ml +ypplasev.tk +yppm0z5sjif.ga +yppm0z5sjif.gq +yppm0z5sjif.ml +yppm0z5sjif.tk +yprbcxde1cux.cf +yprbcxde1cux.ga +yprbcxde1cux.gq +yprbcxde1cux.ml +yprbcxde1cux.tk +ypsilantiapartments.com +yq2.app +yq3.app +yq6iki8l5xa.cf +yq6iki8l5xa.ga +yq6iki8l5xa.gq +yq6iki8l5xa.ml +yq6iki8l5xa.tk +yqdongze.com +yqejb1.site +yqevzp.online +yqjmtqpl.shop +yqlnd.art +yquhnhipm.pl +yqww14gpadey.cf +yqww14gpadey.ga +yqww14gpadey.ml +yqww14gpadey.tk +yqzzmo.info +yr2tx.us +yr6mhc.us +yr9mek.us +yraff.us +yraj46a46an43.tk +yrcr3.com +yrcr4.com +yrcr5.com +yrcr9.com +yreduslim.ru +yreferenta.ru +yreilof.xyz +yrfffo.shop +yritysporssi.ru +yrivgdbk.shop +yrmno5cxjkcp9qlen8t.cf +yrmno5cxjkcp9qlen8t.ga +yrmno5cxjkcp9qlen8t.gq +yrmno5cxjkcp9qlen8t.ml +yrmno5cxjkcp9qlen8t.tk +yroid.com +yrp35o.us +yrra.dev +yrseni.site +yrt74748944.cf +yrt74748944.ga +yrt74748944.gq +yrt74748944.ml +yrt74748944.tk +yrubjt.com +yrxwvnaovm.pl +yrzvip.com +ys034.com +ys054.com +ys204.com +ys242.com +ys264.com +ys3hhylgw.com +ys7eqe.site +ysavvides.com +ysbjwg.info +ysbnkz.com +yscape.net +ysgjzhjeos6f.best +ysgldvux.shop +yskyue.icu +yslonsale.com +yslyep.online +ysmm3.us +ysoundfirst.info +yspend.com +yspk.online +yspwhc.us +ystradgynlais.biz +ysvit7.online +ysyl000.com +ysyl03.com +ysyl09.com +ysyl10.com +ysyl222.com +ysyl33.com +ysyl444.com +yszjj.us +yt-creator.com +yt-dl.net +yt-google.com +yt6erya4646yf.gq +yta1965.com +ytb14a.us +ytbmc.tk +ytdyou.shop +ytg456hjkjh.cf +ytg456hjkjh.ga +ytg456hjkjh.gq +ytg456hjkjh.ml +ytg456hjkjh.tk +ytgzn.space +yth238.com +yth240.com +yth242.com +yth243.com +yth244.com +yth248.com +yth249.com +yth254.com +yth256.com +yth259.com +yth261.com +yth264.com +yth277.com +yth282.com +yth289.com +yth295.com +yth298.com +yth300.com +yth303.com +yth306.com +yth307.com +yth311.com +yth312.com +yth319.com +yth323.com +yth334.com +yth335.com +yth337.com +yth353.com +yth355.com +yth357.com +yth361.com +yth364.com +yth373.com +yth379.com +yth385.com +yth386.com +yth387.com +yth390.com +yth391.com +yth392.com +yth400.com +yth488.com +yth500.com +yth533.com +yth543.com +yth552.com +yth577.com +yth599.com +yth600.com +yth611.com +yth660.com +yth664.com +yth665.com +yth700.com +yth755.com +yth770.com +yth771.com +yth775.com +yth779.com +yth788.com +yth811.com +yth822.com +yth881.com +yth886.com +yth887.com +yth890.com +yth933.com +yth955.com +yth977.com +yth987.com +yth992.com +yth993.com +ythbb.com +ythunsha.com +ythyh.net +ytjh.site +ytkewl.rest +ytknu.space +ytkqv.space +ytkwowijn.gq +ytn333.com +ytpayy.com +ytpza.space +ytpzcsf.site +ytqou.space +ytrko.space +ytrojad.online +yttrevdfd.pl +ytutrl.co.uk +ytvanrfut.shop +ytvfu.space +ytwbws.site +ytwjxms.xyz +ytxot.space +ytyyh.com +ytzsgz.com +yu15.xyz +yualfq.rest +yubacityapartments.com +yubima.com +yubixiang.com +yuccavalleyhomes4sale.com +yucral.net +yuebo.xyz +yueluqu.cn +yuepaopai.world +yuese101.com +yuese104.com +yuese105.com +yuese106.com +yuese110.com +yuese122.com +yufu999.com +yugasandrika.com +yuge5189.xyz +yugfbjghbvh8v67.ml +yughfdjg67ff.ga +yuhe.us +yui.it +yuirz.com +yukaction.club +yukemon.online +yukiji.org +yukonznus.ru +yuksedekah.online +yuksu.com +yuku.net +yula-stayhome.ru +yuletideop.net +yultik.com +yum-king.com +yumavbbo.space +yumedream.ru +yumlecn.com +yummiescf31.com +yummyrecipeswithchicken.com +yumrecipekitchen.com +yumyumcentralondon.com +yunacg.com +yunchali.com +yundiktonber4.ru +yungal.com +yungkashsk.com +yuniang.club +yunik.in +yunipixos3.ru +yunpanke.com +yunshijiegj1.com +yuntiangjzc.com +yunusdelano.online +yunusemre.kim +yuoia.com +yupengjy.com +yups.xyz +yuqiliangju.com +yuradresfirm.xyz +yurfirmadres.xyz +yurimail.ml +yuristarbitraj.xyz +yurtdisitatilsec.com +yurtdisitursec.com +yuslamail.com +yusmpgroup.ru +yusomad.com +yusuhysu93805.tk +yut.com +yutnaya-kuhnya.ru +yutongdt.com +yutw706u.tk +yuugk9.us +yuurok.com +yuuuyyyyyui.site +yuuywil.date +yuweioaso.tk +yuwixms.xyz +yuxdeo.info +yuxuan.mobi +yuyoshop.site +yuyu.asia +yuzhen6688.com +yuzwdo.us +yvaw6gv9hytojpm.top +yvd20.site +yvdd.site +yvehyrain.shop +yverinostiimestnotiii.xyz +yverinostiipopul.xyz +yvessaintlaurentshoesuk.com +yveswindow.com +yvgalgu7zt.cf +yvgalgu7zt.ga +yvgalgu7zt.gq +yvgalgu7zt.ml +yvgalgu7zt.tk +yvo20.site +yvod.site +yvr4u.us +yvv20p.site +yvv20q.site +yvvd20.site +yvvdp.site +yvvdq.site +yvvdt.site +yvvpt.site +yvyflorestal.com +yvzcmk.us +yw4kz.info +ywamarts.org +ywamdayton.com +ywdd89.com +ywgsr.icu +ywhmsx.xyz +ywirywil.shop +ywjpfdry.xyz +ywsgeli.com +ywtong.icu +ywydw.com +ywzs20d76pb06zy.xyz +yx.dns-cloud.net +yx262.com +yx48bxdv.ga +yxbooketo.ru +yxbv0bipacuhtq4f6z.ga +yxbv0bipacuhtq4f6z.gq +yxbv0bipacuhtq4f6z.ml +yxbv0bipacuhtq4f6z.tk +yxir.cn +yxjump.ru +yxnfjlrhl.ml +yxpf.xyz +yxsdszd.club +yxtgame.com +yxyoqn.shop +yxzr4n.us +yxzx.net +yy-h2.nut.cc +yy18269.com +yy2h.info +yy330.xyz +yyaahooo.com +yyc.rocks +yydrbxzv.shop +yyemek.xyz +yyhdress.com +yyhmail.com +yyj295r31.com +yynkm.com +yyo18.space +yyolf.net +yyonya.site +yyp3yn.host +yyriibusines.ru +yytcza.com +yytv.ddns.net +yyugo.com +yyuuhxjt.shop +yywenxue.com +yyy.lol +yyymail.pl +yz-huanyu.com +yz2wbef.pl +yz831.com +yz888w.com +yz888x.com +yz888y.com +yz888z.com +yzgpxm.site +yzhz78hvsxm3zuuod.cf +yzhz78hvsxm3zuuod.ga +yzhz78hvsxm3zuuod.ml +yzi6co.us +yzidaxqyt.pl +yzjrhnfs.pro +yzjup.us +yzkrachel.com +yzmuht.us +yznakandex.ru +yznqa.us +yzovun.site +yzpcoygst.gq +yzrbjc.com +yzrd.org +yzrggs.com +yzsdhi.us +yztfgtqm.shop +yzwmanbetx.com +yzx12.com +yzxvbp.com +z-7mark.ru +z-mail.cf +z-mail.ga +z-mail.gq +z-mild.ga +z-o-e-v-a.ru +z-portfolio.ru +z-profit.ru +z-zap.ru +z-zerkalo.ru +z.polosburberry.com +z.thepinkbee.com +z00111.com +z00222.com +z00333.com +z00555.com +z00999.com +z0210.gmailmirror.com +z0b2h.info +z0d.eu +z0mg.org +z0numi.ml +z0zkjy.us +z1-fm.ru +z1-mp3.ru +z10888.com +z11bet.org +z1775.com +z18wgfafghatddm.cf +z18wgfafghatddm.ga +z18wgfafghatddm.gq +z18wgfafghatddm.ml +z18wgfafghatddm.tk +z1fm.site +z1gb4t.us +z1kycx2hlf1k7vo.xyz +z1ott6.us +z1p.biz +z1tiixjk7juqix94.ga +z1tiixjk7juqix94.ml +z1tiixjk7juqix94.tk +z2-payfree.site +z20888.com +z22123.com +z27-cashsait.host +z27-cashsait.site +z2v.ru +z3-userreferal.info +z3-userreferal.site +z30-megacash.host +z30-megacash.site +z30888.com +z32-faropartner.info +z33-funnymoney.host +z36-megajoy.xyz +z3at.us +z3cq.com +z3frrd.info +z3pbtvrxv76flacp4f.cf +z3pbtvrxv76flacp4f.ga +z3pbtvrxv76flacp4f.gq +z3pbtvrxv76flacp4f.ml +z3pbtvrxv76flacp4f.tk +z4445.com +z48bk5tvl.pl +z4vkg.info +z50888.com +z5cpw9pg8oiiuwylva.cf +z5cpw9pg8oiiuwylva.ga +z5cpw9pg8oiiuwylva.gq +z5cpw9pg8oiiuwylva.ml +z5cpw9pg8oiiuwylva.tk +z6s.net +z6ylqc.us +z6yr.top +z6z7tosg9.pl +z70888.com +z77567.com +z777e.space +z7az14m.com +z7az14m.com.com +z80888.com +z85frv.host +z86.ru +z87.info +z870wfurpwxadxrk.ga +z870wfurpwxadxrk.gq +z870wfurpwxadxrk.ml +z870wfurpwxadxrk.tk +z8bbq.art +z8h.info +z8hguj.site +z8zcx3gpit2kzo.gq +z8zcx3gpit2kzo.ml +z8zcx3gpit2kzo.tk +z90888.com +z9094.com +z9827.com +z9btpl.us +za-derzhavu.ru +za-gay.link +za-zdravie.ru +za-zelenskogo.info +za.com +za72p.com +zaa.org +zaab.de +zaandam.info +zaaskater.cf +zaaskater.ga +zaaskater.gq +zaaskater.ml +zaaskater.tk +zabaikalfood.club +zabawki.edu.pl +zabbabox.info +zabodau.xyz +zabolevaniya.info +zaborkalitka.ru +zabota-v-rodah.ru +zabross.com +zabtec.ru +zacharychan.buzz +zachemeto.xyz +zachpacks.online +zachrisso.com +zadder.xyz +zaderatsky.info +zadereasder.site +zadowolony-klient.org +zadz119.com +zae.monster +zaebbalo.info +zaednoschools.org +zaelmo.com +zaerapremiumbar.com +zaertlich.love +zafarullah.com +zafervip.online +zafran5in1.com +zafrem3456ails.com +zaftneqz2xsg87.cf +zaftneqz2xsg87.ga +zaftneqz2xsg87.gq +zaftneqz2xsg87.ml +zaftneqz2xsg87.tk +zaga.site +zagdy1.site +zageulyy.shop +zagorodnyi-domik.ru +zagorski-artstudios.com +zagrajse.pl +zagvxqywjw.pl +zah3jk.us +zaharin.ru +zahav.net +zahoditnaura.space +zahuy.site +zaikadublin.com +zaim-fart.ru +zaim-gotov.site +zaim-gotov.store +zaimi-na-karty.ru +zaimy-srochno.ru +zain.site +zainhaidermusic.com +zainmax.net +zakachaisya.org +zakatharta.net +zakaz-ber.space +zakazat-aviabilet.ru +zakazat-okno.ru +zakitri.website +zakkaas.com +zakl.org +zakonnaya-territoriya.ru +zakritieip.xyz +zakticorp.com +zaktouni.fr +zakupro.ru +zakvason.ru +zakzsvpgxu.pl +zalansed.xyz +zalina.live +zalmem.com +zalocasino.xyz +zalopner87.com +zalotti.com +zaltak.com +zalvisual.us +zamana.com +zamananow.com +zambezinationalparks.com +zambia-nedv.ru +zamena-stekla.ru +zamge.com +zamiana-domu.pl +zamojskie.com.pl +zamownie.pl +zamsahamtravel.com +zamsw.com +zamua.com +zamytravel.icu +zamzamtakeaway.com +zanaflex.pro +zanairsafety.com +zanaveskin.ru +zanboor.pro +zanchua53.icu +zanderfoxgrant.com +zandicapital.com +zane.pro +zane.prometheusx.pl +zane.rocks +zanemail.info +zanichelli.cf +zanichelli.ga +zanichelli.gq +zanichelli.ml +zanichelli.tk +zanist.xyz +zanistan.xyz +zanmei5.com +zannuaire.com +zanosgames.com +zanovosti.ru +zantsuppno.ga +zantsuppno.gq +zantsuppno.tk +zanzatoys.com +zanzedalo.com +zaochnik-berezniki.ru +zaonlineclassified.com +zaoonline.com +zaoregistr.xyz +zaoseda.ru +zaoshweika.ru +zap2q0drhxu.cf +zap2q0drhxu.ga +zap2q0drhxu.gq +zap2q0drhxu.ml +zap2q0drhxu.tk +zapak.com +zapak.in +zapatos.sk +zapbox.fr +zapchasti-daewoo-samara.ru +zapchasti-ford-sevastopol.ru +zapchasti-orig.ru +zapchasti-renault-sevastopol.ru +zapchati-a.ru +zapl.ink +zapqq.com +zapravka19.ru +zapstibliri.xyz +zapviral.com +zapzap.army +zapzap.band +zapzap.bar +zapzap.bike +zapzap.build +zapzap.care +zapzap.careers +zapzap.catering +zapzap.coach +zapzap.college +zapzap.construction +zapzap.cricket +zapzap.deals +zapzap.delivery +zapzap.dev +zapzap.equipment +zapzap.estate +zapzap.events +zapzap.financial +zapzap.fish +zapzap.florist +zapzap.gallery +zapzap.glass +zapzap.golf +zapzap.host +zapzap.ink +zapzap.legal +zapzap.lighting +zapzap.limo +zapzap.navy +zapzap.news +zapzap.photography +zapzap.plumbing +zapzap.properties +zapzap.racing +zapzap.realty +zapzap.rent +zapzap.solutions +zapzap.space +zapzap.store +zapzap.supply +zapzap.support +zapzap.tech +zapzap.tours +zapzap.toys +zapzap.trade +zapzap.travel +zapzap.vet +zapzap.video +zapzap.vision +zapzapchasty.ru +zapzapcloud.com +zar-fin.ru +zarabotaibystro.ru +zarabotati-sei4as.ru +zarabotay2020.host +zarabotay2020.space +zarabotay2020.website +zarabotok-77.host +zarabotok-biz.ru +zarabotok-v-internet.ru +zarabotok-vot-kat-prosto2020.site +zarabotokdoma11.ru +zarabotokdoma12.ru +zarabotokdoma7.ru +zarabotokdoma8.ru +zarabotokvseti.info +zarada7.co +zarafit.xyz +zaragozatoros.es +zarbelo.ga +zarbelo.tk +zard.website +zarifdardokuma.xyz +zarinparvaz.net +zaripov.digital +zarnitsa.su +zaromias24.net +zarplatniy-proekt.ru +zarplatnyj-proekt.ru +zarpldolgvzisk.xyz +zarubki.space +zaruchku.ru +zarurrora.online +zarweek.cf +zarweek.ga +zarweek.tk +zaryadkaofficial.ru +zaschitaimuschestva.xyz +zaschitprodavca.xyz +zasderea.site +zasod.com +zaspelj.xyz +zasrance.website +zasve.info +zatopplomi.xyz +zauj.us +zavejy.info +zavio.com.pl +zavio.nl +zavod-himii.ru +zavodzet.ru +zavtrac.ru +zawzad.com +zayacpups.space +zayiflatankarisim.site +zaym-mix.ru +zaym-o.ru +zaym-zaym.ru +zaymi-online.ru +zaymi-srochno.ru +zayna.love +zayna.style +zaz-co.com +zazebo.xyz +zazeto.xyz +zb8bpo.com +zbapaly.store +zbarman.com +zbbk.info +zbestcheaphostingforyou.info +zbfjhhbv82-priverfdrj.press +zbiznes.ru +zbl43.pl +zbl74.pl +zbmingfa.com +zbolg.xyz +zbook.site +zbpefn95saft.cf +zbpefn95saft.ga +zbpefn95saft.gq +zbpefn95saft.ml +zbpefn95saft.tk +zbpu84wf.edu.pl +zbtkazgf.site +zbtxx4iblkgp0qh.cf +zbtxx4iblkgp0qh.ga +zbtxx4iblkgp0qh.gq +zbtxx4iblkgp0qh.ml +zbtxx4iblkgp0qh.tk +zbyadk.com +zbzincs.com +zc3dy5.us +zc72379.top +zcash-cloud.com +zcbkh.space +zchatz.ga +zchwzskc.shop +zchx1.com +zcolor.live +zcphxq.shop +zcqrgaogm.pl +zcttrira.site +zcut.de +zcvtheiconic.com +zcwjsj.com +zcwx88.com +zcymamrqs.shop +zdanisphotography.com +zdbgjajg.shop +zdbgroup.com +zdcardtechglobal.com +zdecadesgl.com +zdenka.net +zdesyaigri.ru +zdferma.ru +zdfpost.net +zdfsmh.site +zdgvxposc.pl +zdie.us +zdjv0s.us +zdmxbqww.shop +zdorove-polar.ru +zdoroveem-molodeem.ru +zdorovie2-0.ru +zdorovmay.ru +zdorovpagh.ru +zdorovyeblogs.ru +zdpuppyiy.com +zdqe.icu +zdqfnk01rz.icu +zdqjt.com +zdr20.club +zdrajcy.xyz +zdrav-nadzor-03.site +zdravmol.ru +zdravnadzor07.site +zdravproduct.xyz +zdravslet.ru +zdravsredstvo.website +zdrowewlosy.info +zdrowystyl.net +zdtc.network +zdtnpkydingcw2e.xyz +ze.cx +ze.gally.jp +ze.tc +ze19.com +ze1ckq.com +ze31.com +ze4rty.pw +ze87.com +zealouste.com +zealouste.net +zeansteplnw.com +zebins.com +zebins.eu +zebra.email +zebras.network +zebua.cf +zebuaboy.cf +zebuasadis.ml +zebyic.tokyo +zeca.com +zecili.xyz +zed.expert +zedeliereo.icu +zednation.xyz +zedthei.shop +zeedcn.site +zeego.site +zeelandsezorg.com +zeemails.in +zeenews.app +zeepaw.com +zeeworldproduction.com +zefuqua.space +zeg59.us +zehnminuten.de +zehnminutenmail.de +zeiasscasino.com +zeinconsulting.info +zeingae.ru +zeitdesschwarms.com +zeko.site +zeky.site +zelda-planet.de +zelda.monster +zeldaforums.net +zelia.online +zelras.ru +zemail.ga +zemail.ml +zematsmskorela.host +zen.nieok.com +zen43.com.pl +zen4dad.com +zen4mom.com +zen4play.net +zen74.com.pl +zenadop.com +zenadops.com +zenaking.xyz +zenarz.esmtp.biz +zenblogpoczta.com.pl +zenbo.ga +zencab.com +zencart-web.com +zenek-poczta.com.pl +zenekpoczta.com.pl +zeng2b.us +zengolar.xyz +zeniga.com +zenithagedcare.sydney +zenithcalendars.info +zenitsumail.com +zenocoomniki.ru +zenopoker.com +zenopoker.net +zenplanneryoga.com +zenpocza.com.pl +zenpoczb.com.pl +zenpoczc.com.pl +zenrz.itemdb.com +zenseo.net +zensolutions.info +zentaiji.biz +zentaiji.info +zentaiji.name +zentaiji.net +zentaiji.us +zentradingmagazine.online +zentrumbox.com +zenyth.marketing +zenyth.online +zep-hyr.com +zepco.ru +zepexo.com +zephrmail.info +zepp.dk +zepter-moscow.biz +zer-0.cf +zer-0.ga +zer-0.gq +zer-0.ml +zercat.website +zergp.vip +zerkalo-admiralx.xyz +zerkalobet1x.site +zerkalosssport.website +zerkaloxc.ru +zero-action-shopping.ru +zero-product-stock.ru +zero-sale-inform.ru +zerocarboncalifornia.com +zerocarboncostarica.com +zerocopter.dev +zerocoptermail.com +zerocorp.ru +zerodog.icu +zeroe.ml +zeroegress.com +zeroegress.net +zeroen-douga.tokyo +zeroeth-world.org +zeroethworld.net +zerograv.top +zerohush.org +zeroknow.ga +zeromail.ga +zerosupervision.art +zerothccbd.us +zerothworld.net +zerotohero-1.com +zertigo.org +zest.me.uk +zesta.cf +zesta.gq +zestrany.website +zestroy.info +zeta-telecom.com +zetagames.club +zetap.travel +zetaseek.com +zetfilmy.pl +zetgets.com +zetia.in +zetmail.com +zettransport.pl +zeus0303430.xyz +zeus0310218.xyz +zeus0324202.xyz +zeus0454333.xyz +zeus0771866.xyz +zeus1252961.xyz +zeus1549658.xyz +zeus1817999.xyz +zeus2229034.xyz +zeus2502287.xyz +zeus3777396.xyz +zeus4588184.xyz +zeus5233852.xyz +zeus6397394.xyz +zeus6408834.xyz +zeus7843650.xyz +zeus8399726.xyz +zeus9447425.xyz +zeus9536726.xyz +zeus9550576.xyz +zeus9556189.xyz +zeus9563736.xyz +zeus9564765.xyz +zeus9577727.xyz +zeus9594524.xyz +zeus9603734.xyz +zeus9618305.xyz +zeus9665639.xyz +zeus9694503.xyz +zeus9695926.xyz +zeus9705328.xyz +zeus9723746.xyz +zeus9725408.xyz +zeus9730367.xyz +zeus9736785.xyz +zeus9762715.xyz +zeus9778146.xyz +zeus9779039.xyz +zeus9805897.xyz +zeus9821555.xyz +zeus9864546.xyz +zeus9892415.xyz +zeus9892949.xyz +zeus9895931.xyz +zeus9901564.xyz +zeus9907227.xyz +zeus9917624.xyz +zeus9929754.xyz +zeus9936224.xyz +zeus9947361.xyz +zeus9958726.xyz +zeus9959878.xyz +zeus9963130.xyz +zeus9989540.xyz +zeus9993314.xyz +zeuschimneyservice.com +zeusndione-eyewear.com +zeusonline99.biz +zeusrisky07.ml +zeusrisky07.tk +zeusus.ru +zeuwescull.cf +zeuwescull.ga +zeuwescull.ml +zeuwescull.tk +zeveyuse.com +zeveyuse.net +zewuju.info +zexeet9i5l49ocke.cf +zexeet9i5l49ocke.ga +zexeet9i5l49ocke.gq +zexeet9i5l49ocke.ml +zexeet9i5l49ocke.tk +zeyadtk.com +zeynepgenc.com +zeytech.net +zeytinburnudamlaspor.com +zeytinselesi.com +zezayiez.xyz +zezet.net +zezis.ru +zf0.info +zf4r34ie.com +zf813.com +zfbmt1.site +zfijv.us +zfilm6.ru +zfpsale.top +zfs4ug.us +zfshqt.online +zfvip75.com +zfvip76.com +zfvip78.com +zfvip79.com +zfvip80.com +zfxchk.site +zfxmanbetx.com +zfyl2.com +zfyl3.com +zfyl63.com +zfymail.com +zg2.info +zg5dl7go8ylo5im.xyz +zg8.info +zgame.zapto.org +zgbdwnfce.tk +zgbeilin.com +zgdayi.com +zgdsoper.space +zgeotd.us +zgfzazbe.shop +zgg520.com +zggbzlw.net +zggyfzyxgs.com +zgjlcbs.com +zgjxjx.com +zgktfj.com +zglysyw.com +zgm-ural.ru +zgmdl.com +zgqp9.com +zgsgjj.com +zgsphj.us +zgtjvczkp.shop +zgtmanbetx.com +zgu5la23tngr2molii.cf +zgu5la23tngr2molii.ga +zgu5la23tngr2molii.gq +zgu5la23tngr2molii.ml +zgu5la23tngr2molii.tk +zguide.site +zgupuf.site +zgxxt.com +zgzbqshy.com +zh.ax +zh214.com +zh9.info +zhaijimai.club +zhaimang.club +zhaixing.icu +zhaiyouji.club +zhaocaiqipai4.com +zhaohishu.com +zhaoqiang35.icu +zhaoyuanedu.cn +zhaoyuantu.com +zhaqiaocun.com +zhcne.com +zhcp123.com +zhdanov.su +zhebucuo.com +zhehot.com +zhejiang.today +zheleznodorognyi-beton-zavod.ru +zhemchug.xyz +zhenchashi.com +zhendesao.com +zhenghaokai.xyz +zhengjiatpou34.info +zhengyajun.com +zhenskayaodejda.ru +zhenskiy-stendap.best +zhenzhan16.icu +zhewei88.com +zhibang.info +zhibo69.com +zhibo69.xyz +zhibozhiyuan.xyz +zhidkiy-gazon.ru +zhilecai.xyz +zhitnadovkaifotivse.xyz +zhkmywb.site +zhkzux.shop +zhm.us +zhnslyzkv.shop +zhongbeike.com +zhongchengtz.com +zhongy.in +zhorachu.com +zhuaiyong15.icu +zhuanqianco.com +zhubed.us +zhubobao.xyz +zhuhaipools.com +zhuime85.icu +zhuishu.online +zhun.best +zhurnaliki.com +zhuting1993.com +zhuyong.org +zhvssnrf.shop +zhyl0.us +zi3asz.us +ziadbzo.ml +ziahask.ru +zib.com +zibiz.me +zibox.info +zicaolu.com +zicu.site +zidu.pw +ziebhagil.cf +ziebhagil.ga +ziebhagil.ml +ziebhagil.tk +zielonadioda.com +zielonyjeczmiennaodchudzanie.xyz +zientogel.com +zientogel.net +ziewrwp.space +zifersrl.com +zigblog.net +ziggurattemple.info +zigrab.online +zigspage.com +zigybt.us +zigzagmirror.ru +ziholexet.ru +zihuwu.info +zihuxb.rest +zik.dj +zik2zik.com +zikzak.gq +zil4czsdz3mvauc2.cf +zil4czsdz3mvauc2.ga +zil4czsdz3mvauc2.gq +zil4czsdz3mvauc2.ml +zil4czsdz3mvauc2.tk +zilbercoin.space +zillionsofdollars.info +zilmail.cf +zilmail.ga +zilmail.gq +zilmail.ml +zilmail.tk +zilonggj.com +zimail.com +zimail.ga +zimbabwe-nedv.ru +zimbail.me +zimbocrowd.info +zimerster.site +zimmermail.info +zimmermann-foto.com +zimonas.site +zimowapomoc.pl +zimu.moe +zimu123.com +zimufensi.cn +zinabf2edderus.xyz +zinany.com +zincc.us +zincset.com +zindevital.com +zineotic.com +zinfighkildo.ftpserver.biz +zingar.com +zingermail.co +zingibzfrr.space +zinmail.cf +zinmail.ga +zinmail.gq +zinmail.ml +zinmail.tk +zinnober.xyz +ziojp.com +zip-institute.com +zip1.site +zipa.online +zipac.site +zipada.com +zipas.site +zipax.site +zipb.site +zipbox.info +zipc.site +zipcad.com +zipd.site +zipdf.biz +ziped.site +ziph.site +zipil.site +zipir.site +zipj.site +zipk.site +zipl.online +zipl.site +ziplb.biz +ziplinegear.biz +ziplinehuntermountain.com +zipm.site +zipmail.xyz +zipn.site +zipo1.cf +zipo1.ga +zipo1.gq +zipo1.ml +zippiex.com +zippydownl.eu +zippymail.in +zippymail.info +zipq.site +zipr.site +ziprol.com +zipsendtest.com +zipt.site +ziptracker49062.info +ziptracker56123.info +ziptracker67311.info +ziptracker67451.info +ziptracker75121.info +ziptracker87612.info +ziptracker90211.info +ziptracker90513.info +zipv.site +zipx.site +zipz.online +zipz.site +zipzaprap.beerolympics.se +zipzaps.de +ziqo.studio +zis.netmail.tk +zisustand.site +zita-blog-xxx.ru +zithromaxonlinesure.com +zithromaxprime.com +zitong001.com +zitroproperties.com +ziu3z9.com +ziukfh.tokyo +ziuta.com +zivanto.xyz +zivvwh.com +zixaha.info +zixnnupt.shop +zixoa.com +ziyap.com +ziyaratarbaeen1437.com +ziyungj.com +ziza.pl +zizhuxizhu888.info +zizobt.org +zjdkoq.best +zjexmail.com +zjffmj.com +zjflqj.us +zjhonda.com +zjkksgs.com +zjlm28.com +zjlrau.rest +zjlzd.com +zjnicety.com +zjnmn.info +zjnxek.us +zjp.monster +zjrt4.us +zju.best +zju83.space +zjvg2x.us +zjwanjin.com +zjxiaosheng.com +zjxylcar.com +zk0r8a.com +zk2578.com +zk9sdg.online +zkb.su +zkcckwvt5j.cf +zkcckwvt5j.ga +zkcckwvt5j.gq +zkcckwvt5j.ml +zkcckwvt5j.tk +zkcmlp.fun +zkd252.com +zkd252.net +zkeiw.com +zkfmdm.fun +zkgdtarov.pl +zkgmgm.fun +zkgxvued.shop +zkhmmk.fun +zkhyib.ml +zkjbbf.vip +zkjmzj.fun +zkjmzz.fun +zkkefu.online +zklmkr.fun +zklundt.buzz +zkmusic.ru +zknow.org +zkushu.com +zkxr1u.us +zkyiad.icu +zkzjk.com +zkzone.icu +zl0irltxrb2c.cf +zl0irltxrb2c.ga +zl0irltxrb2c.gq +zl0irltxrb2c.ml +zl0irltxrb2c.tk +zl3ici.us +zlansa.site +zlatoj.ru +zlbpvs.us +zlcai168.net +zlcai1688.net +zlcai88.net +zlcai888.net +zld.us +zlebyqd34.pl +zledscsuobre9adudxm.cf +zledscsuobre9adudxm.ga +zledscsuobre9adudxm.gq +zledscsuobre9adudxm.ml +zledscsuobre9adudxm.tk +zleohkaqpt5.cf +zleohkaqpt5.ga +zleohkaqpt5.gq +zleohkaqpt5.ml +zleohkaqpt5.tk +zlinvo.site +zlmsl0rkw0232hph.cf +zlmsl0rkw0232hph.ga +zlmsl0rkw0232hph.gq +zlmsl0rkw0232hph.ml +zlmsl0rkw0232hph.tk +zlrjxmmt.shop +zltcsmym9xyns1eq.cf +zltcsmym9xyns1eq.tk +zltiu4.us +zluxretail.xyz +zm-44.com +zmac.club +zmail.info.tm +zmailforbusiness.com +zmailonline.info +zmaka.site +zmani.biz +zmara.com +zmat.xyz +zmbw.xyz +zmemq.com +zmi3cb.com +zmiev.ru +zmilkofthecow.info +zmkn.xyz +zmpoker.info +zmt.plus +zmtbbyqcr.pl +zmtdzc.com +zmti6x70hdop.cf +zmti6x70hdop.ga +zmti6x70hdop.gq +zmti6x70hdop.ml +zmti6x70hdop.tk +zmwgvx.site +zmxrrxipv.shop +zmylf33tompym.cf +zmylf33tompym.ga +zmylf33tompym.gq +zmylf33tompym.ml +zmylf33tompym.tk +zmywarkilodz.pl +zn4chyguz9rz2gvjcq.cf +zn4chyguz9rz2gvjcq.ga +zn4chyguz9rz2gvjcq.gq +zn4chyguz9rz2gvjcq.ml +zn4chyguz9rz2gvjcq.tk +zn7w0.us +zn9a.icu +znachenie-finance.ru +znacheniezvezd.ru +znai-gde.ru +znaisvoiprava.ru +znakomstva-vsem.ru +znam-ya.ru +znatb25xbul30ui.cf +znatb25xbul30ui.ga +znatb25xbul30ui.gq +znatb25xbul30ui.ml +znatb25xbul30ui.tk +znatzhestko.xyz +znbhuf.ooo +znbup3e30kpupwf.xyz +zncqtumbkq.cf +zncqtumbkq.ga +zncqtumbkq.gq +zncqtumbkq.ml +zncqtumbkq.tk +zndqv4.site +zngjfa.us +zni1d2bs6fx4lp.cf +zni1d2bs6fx4lp.ga +zni1d2bs6fx4lp.gq +zni1d2bs6fx4lp.ml +zni1d2bs6fx4lp.tk +znkzhidpasdp32423.info +znnix.com +znnxguest.com +znq0bc.us +zns1ad.com +znsupgvno.gq +znsxchgx212jc9y.xyz +znthe6ggfbh6d0mn2f.cf +znthe6ggfbh6d0mn2f.ga +znthe6ggfbh6d0mn2f.gq +znthe6ggfbh6d0mn2f.ml +znthe6ggfbh6d0mn2f.tk +znull.net +znxrzalb.shop +znyxer.icu +zoabok.ru +zoanthropy.xyz +zoaxe.com +zobeed.com +zocial.ru +zodekb.ru +zoedailythoughts.com +zoelifetips.com +zoelotem.ga +zoelotem.gq +zoelotem.ml +zoelotem.tk +zoemail.com +zoemail.net +zoemail.org +zoeov.com +zoepenny.com +zoeportals.icu +zoescolorfullegacy.org +zoetomlinson.buzz +zoetropes.org +zoevaofficial.online +zoevaofficial.ru +zogavm.ru +zoidberg.ninja +zojyta.xyz +zoknseybm.shop +zolaemporium.site +zoldnwx.com +zolman.org +zomail.org +zomantidecopics.site +zombie-hive.com +zombie99.com +zombieapocalypserace.com +zombiecourse.com +zombo.flu.cc +zombo.igg.biz +zombo.nut.cc +zomg.info +zona-kita.com +zona.best +zona24.ru +zona7.com +zonagaming77.club +zonagaming77.live +zonamail.ga +zonangopi.co +zonapara.fun +zondee.ru +zone-telechargement-1.com +zone10electric.com +zone4u-prizes1.info +zonecotton.com +zonedating.info +zonedefilmbarbie.com +zonemail.info +zonemail.monster +zonepyramid.com +zongases.cf +zongases.ga +zongases.gq +zongases.ml +zongases.tk +zongbopay1577.com +zongbopay2100.com +zongteng51.icu +zonguldakgundem.xyz +zonguldakozelders.xyz +zonland.ru +zonsurvey.xyz +zontero.top +zoo-chat.ru +zoo-game.ru +zoobutik.ru +zooki.net +zoom.cd +zoomafoo.info +zoombbearhota.xyz +zoombdcmi.shop +zoomclick.online +zoomfm.ru +zoomial.info +zoomnation.info +zoonti.pl +zoophagy.xyz +zoosuits.info +zoozentrum.de +zopeqsa.space +zoqqa.com +zoqyge.info +zor-da.ru +zorgkaartzeeland.com +zoroasterdomain.com +zoroasterplace.com +zoroastersite.com +zoroasterwebsite.com +zoromarkets.site +zoroter21.xyz +zorropace.se +zosiwuu3.site +zota.fun +zotorganics.com +zotyxsod.shop +zoutlook.com +zoutoutou.com +zoviraxprime.com +zowomavixy.website +zowtaguz.shop +zowuto.info +zozoprint.com +zozugo.info +zp4.info +zp5d0a.com +zpapa.ooo +zpaperfax.com +zpayhub2.com +zpcaf8dhq.pl +zpcdgm.us +zperczhnj.shop +zpfxhb.com +zph8ag47zm3zz1h.xyz +zphuxm.info +zpjcre.com +zpjdb1.site +zpjjmc.icu +zpjy.xyz +zpkdqkozdopc3mnta.cf +zpkdqkozdopc3mnta.ga +zpkdqkozdopc3mnta.gq +zpkdqkozdopc3mnta.ml +zpkdqkozdopc3mnta.tk +zpocu.net +zpp.su +zpqvdc.com +zprea.ru +zpsrwt.icu +zpvozwsri4aryzatr.cf +zpvozwsri4aryzatr.ga +zpvozwsri4aryzatr.gq +zpvozwsri4aryzatr.ml +zpvozwsri4aryzatr.tk +zpvpriozvodnja.com +zpxcb1.site +zpye.icu +zpzksad.space +zqakus.us +zqdnppf.site +zqe91.buzz +zqw.pl +zr8la.us +zran5yxefwrcpqtcq.cf +zran5yxefwrcpqtcq.ga +zran5yxefwrcpqtcq.gq +zran5yxefwrcpqtcq.ml +zran5yxefwrcpqtcq.tk +zrbmsx.top +zrczefgjv.pl +zre3i49lnsv6qt.cf +zre3i49lnsv6qt.ga +zre3i49lnsv6qt.gq +zre3i49lnsv6qt.ml +zre3i49lnsv6qt.tk +zrega.com +zregomen.cf +zregomen.ga +zregomen.ml +zregomen.tk +zrelost.ru +zrenieplus.space +zrinyi.org +zrmail.ga +zrmail.ml +zrpurhxql.pl +zrqlejfyt.shop +zruycop.site +zrvtddfh.shop +zrzljy.com +zs2019021.com +zs2019023.com +zs2019025.com +zs2019031.com +zs2019033.com +zs2019064.com +zs2019065.com +zs2019097.com +zs2019098.com +zs2019099.com +zs20192068.com +zs20192097.com +zs201939.com +zs201940.com +zs201942.com +zsaful.com +zsaleshow.site +zsba31.us +zsbgllzin.shop +zsccyccxea.pl +zsero.com +zsfuteer.com +zsgo45.com +zshaiwa.com +zshops.ru +zsigmondy.org +zsj05.com +zsjrxh.com +zskoqt.us +zslsz.com +zssgsexdqd.pl +zssh3d.com +zsvrqrmkr.pl +zsyu.org +zsyx158.com +zt5wgv.us +ztahoewgbo.com +ztd5af7qo1drt8.cf +ztd5af7qo1drt8.ga +ztd5af7qo1drt8.gq +ztd5af7qo1drt8.ml +ztd5af7qo1drt8.tk +ztdgrucjg92piejmx.cf +ztdgrucjg92piejmx.ga +ztdgrucjg92piejmx.gq +ztdgrucjg92piejmx.ml +ztdgrucjg92piejmx.tk +ztjspeakmn.com +ztlkky.icu +ztols4.online +ztrackz.tk +ztsecurity.org +ztssce.icu +zu15jn.us +zu91pml1dge6dcv.xyz +zualikhakk.cf +zualikhakk.ga +zualikhakk.gq +zualikhakk.ml +zualikhakk.tk +zuan4e.us +zubacteriax.com +zubayer.cf +zubr-store.ru +zucconi-dublin.com +zudrm1dxjnikm.cf +zudrm1dxjnikm.ga +zudrm1dxjnikm.gq +zudrm1dxjnikm.ml +zudrm1dxjnikm.tk +zuhaoban.com +zuhouse.ru +zuilinger.info +zuimap.com +zuinigverwarmen.com +zuiquandaohang.xyz +zujdg1.site +zujrn4.us +zukhy4.us +zukmail.cf +zukmail.ga +zukmail.ml +zukmail.tk +zulala.com +zulamri.com +zumail.net +zumbinimex.com +zumpul.com +zumrotin.ml +zumrut.tk +zun-s.icu +zunemasters.com +zunigersa.site +zuperholo.com +zupka.anglik.org +zupload.xyz +zupper.tk +zuppyezof.info +zuqame.info +zuqkfp.info +zurabhsan.ml +zurabhsan.tk +zurbdj.us +zurcasinocow.ru +zuribeauty.com +zurotrinz.ru +zurtel.cf +zurtel.ga +zurtel.gq +zurtel.ml +zurtel.tk +zuvio.com +zuxi.site +zuza.se +zv-mail.ru +zv-ml.ru +zv-send.ru +zv35.icu +zv6.info +zv68.com +zvbt.com +zvezda.website +zvhmuytt.shop +zvik-mail.ru +zvik-ml.ru +zvik-r.ru +zvik-ras.ru +zvik-rs.ru +zvik-sd.ru +zvik-send.ru +zvikeu.xyz +zvkkihlo.shop +zvnhkcpnq.shop +zvookkolonka.ru +zvtv.xyz +zvukofon.ru +zvwjfk.us +zw6provider.com +zwcmanbetx.com +zwerivokrug.xyz +zwiedzaniebrowaru.com.pl +zwiekszsile.pl +zwiknm.ru +zwmkv0.us +zwnrffoz.shop +zwoho.com +zwphmnfrs.shop +zwpqjsnpkdjbtu2soc.ga +zwpqjsnpkdjbtu2soc.ml +zwpqjsnpkdjbtu2soc.tk +zwunwvxz.shop +zwwaltered.com +zwwnhmmcec57ziwux.cf +zwwnhmmcec57ziwux.ga +zwwnhmmcec57ziwux.gq +zwwnhmmcec57ziwux.ml +zwwnhmmcec57ziwux.tk +zx180.com +zx3dl.com +zx3dlzc.com +zx3gw.com +zx553.com +zx81.ovh +zxcnvgj2-privnbmgt.press +zxcnvgj2-privnbmgt.xyz +zxcv.com +zxcvbn.in +zxcvbnm.cf +zxcvbnm.com +zxcvbnm.tk +zxcvbtyuytfcvb06nbp.monster +zxcvjhjh12198.cf +zxcvjhjh12198.ga +zxcvjhjh12198.ml +zxcvjhjh12198.tk +zxcvjhjh18924.cf +zxcvjhjh18924.ga +zxcvjhjh18924.ml +zxcvjhjh18924.tk +zxcvjhjh21878.cf +zxcvjhjh21878.ga +zxcvjhjh21878.ml +zxcvjhjh21878.tk +zxcvjhjh22711.cf +zxcvjhjh51720.ml +zxcvjhjh84673.tk +zxcvjhjh92976.ga +zxcvjhjh92976.ml +zxcvjhjh92976.tk +zxcxc.com +zxcxcva.com +zxd9837.com +zxgsd4gydfg.ga +zxlzct.info +zxnhu0.us +zxo.us +zxonkcw91bjdojkn.cf +zxonkcw91bjdojkn.ga +zxonkcw91bjdojkn.gq +zxonkcw91bjdojkn.ml +zxonkcw91bjdojkn.tk +zxpasystems.com +zxq1998.design +zxqpgame.com +zxuctaviaperze.info +zxuinf.us +zxusnkn0ahscvuk0v.cf +zxusnkn0ahscvuk0v.ga +zxusnkn0ahscvuk0v.gq +zxusnkn0ahscvuk0v.ml +zxusnkn0ahscvuk0v.tk +zxw114.info +zxwg.site +zxxxz.gq +zxxz.ml +zy33.com +zyarat40.com +zyazu.xyz +zybiqe.site +zybu.xyz +zyczeniurodzinow.pl +zyegabvk.shop +zyeht.info +zyfdz.com +zyga2d.us +zygnomic.xyz +zyjzdrowiej.club +zylpu4cm6hrwrgrqxb.cf +zylpu4cm6hrwrgrqxb.ga +zylpu4cm6hrwrgrqxb.gq +zylpu4cm6hrwrgrqxb.ml +zylpu4cm6hrwrgrqxb.tk +zymail.men +zymotic.xyz +zymuying.com +zynana.cf +zynana.ga +zynana.gq +zynga-email.com +zyngabahis77.com +zyngabahis80.com +zyoxry.site +zypu.site +zyqoje.info +zyrone.us +zyseo.com +zyte.site +zytrzz.com +zyyberrys.com +zyyg.net +zyyu6mute9qn.cf +zyyu6mute9qn.ga +zyyu6mute9qn.gq +zyyu6mute9qn.ml +zyyu6mute9qn.tk +zz-6677.com +zz.beststudentloansx.org +zz1298.com +zz75.net +zz7665.com +zz77.com +zz8ty.com +zz9094.com +zz9827.com +zza77.com +zzhjqr.com +zzi.us +zzjbfwqi.shop +zzolboo02.com +zzqaau.rest +zzrgg.com +zzuwnakb.pl +zzv2bfja5.pl +zzxilie.xyz +zzz-xxx.com +zzz.com +zzz813.com +zzz98.xyz +zzzmail.pl +zzzpush.icu +zzzz1717.com +zzzzzzzzzzzzz.com \ No newline at end of file diff --git a/src/api/util/entities/trustedEmailDomains.txt b/src/api/util/entities/trustedEmailDomains.txt new file mode 100644 index 00000000..38ffa4fa --- /dev/null +++ b/src/api/util/entities/trustedEmailDomains.txt @@ -0,0 +1,154 @@ +aol.com +att.net +comcast.net +facebook.com +gmail.com +gmx.com +googlemail.com +google.com +hotmail.com +hotmail.co.uk +mac.com +me.com +mail.com +msn.com +live.com +sbcglobal.net +verizon.net +yahoo.com +yahoo.co.uk +email.com +fastmail.fm +games.com +gmx.net +hush.com +hushmail.com +icloud.com +iname.com +inbox.com +lavabit.com +love.com +outlook.com +pobox.com +protonmail.ch +protonmail.com +tutanota.de +tutanota.com +tutamail.com +tuta.io +keemail.me +rocketmail.com +safe-mail.net +wow.com +ygm.com +ymail.com +zoho.com +yandex.com +bellsouth.net +charter.net +cox.net +earthlink.net +juno.com +btinternet.com +virginmedia.com +blueyonder.co.uk +freeserve.co.uk +live.co.uk +ntlworld.com +o2.co.uk +orange.net +sky.com +talktalk.co.uk +tiscali.co.uk +virgin.net +wanadoo.co.uk +bt.com +sina.com +sina.cn +qq.com +naver.com +hanmail.net +daum.net +nate.com +yahoo.co.jp +yahoo.co.kr +yahoo.co.id +yahoo.co.in +yahoo.com.sg +yahoo.com.ph +163.com +yeah.net +126.com +21cn.com +aliyun.com +foxmail.com +hotmail.fr +live.fr +laposte.net +yahoo.fr +wanadoo.fr +orange.fr +gmx.fr +sfr.fr +neuf.fr +free.fr +gmx.de +hotmail.de +live.de +online.de +t-online.de +web.de +yahoo.de +libero.it +virgilio.it +hotmail.it +aol.it +tiscali.it +alice.it +live.it +yahoo.it +email.it +tin.it +poste.it +teletu.it +mail.ru +rambler.ru +yandex.ru +ya.ru +list.ru +hotmail.be +live.be +skynet.be +voo.be +tvcablenet.be +telenet.be +hotmail.com.ar +live.com.ar +yahoo.com.ar +fibertel.com.ar +speedy.com.ar +arnet.com.ar +yahoo.com.mx +live.com.mx +hotmail.es +hotmail.com.mx +prodigy.net.mx +yahoo.ca +hotmail.ca +bell.net +shaw.ca +sympatico.ca +rogers.com +yahoo.com.br +hotmail.com.br +outlook.com.br +uol.com.br +bol.com.br +terra.com.br +ig.com.br +itelefonica.com.br +r7.com +zipmail.com.br +globo.com +globomail.com +oi.com.br \ No newline at end of file diff --git a/src/api/util/handlers/Instance.ts b/src/api/util/handlers/Instance.ts new file mode 100644 index 00000000..7c337270 --- /dev/null +++ b/src/api/util/handlers/Instance.ts @@ -0,0 +1,22 @@ +import { Config, Guild, Session } from "@fosscord/util"; +import { createQueryBuilder } from "typeorm"; + +export async function initInstance() { + // TODO: clean up database and delete tombstone data + // TODO: set first user as instance administrator/or generate one if none exists and output it in the terminal + + // create default guild and add it to auto join + // TODO: check if any current user is not part of autoJoinGuilds + const { autoJoin } = Config.get().guild; + + if (autoJoin.enabled && !autoJoin.guilds?.length) { + let guild = await Guild.findOne({where: {}, order: {id: "ASC"}}); + if (guild) { + // @ts-ignore + await Config.set({ guild: { autoJoin: { guilds: [guild.id] } } }); + } + } + + // TODO: do no clear sessions for instance cluster + await Session.delete({}); +} diff --git a/src/api/util/handlers/Message.ts b/src/api/util/handlers/Message.ts new file mode 100644 index 00000000..ff5ece75 --- /dev/null +++ b/src/api/util/handlers/Message.ts @@ -0,0 +1,229 @@ +import { + Channel, + Embed, + emitEvent, + Guild, + Message, + MessageCreateEvent, + MessageUpdateEvent, + getPermission, + getRights, + CHANNEL_MENTION, + Snowflake, + USER_MENTION, + ROLE_MENTION, + Role, + EVERYONE_MENTION, + HERE_MENTION, + MessageType, + User, + Application, + Webhook, + Attachment, + Config, + MessageCreateSchema, +} from "@fosscord/util"; +import { HTTPError } from "@fosscord/util"; +import fetch from "node-fetch"; +import cheerio from "cheerio"; +import { OrmUtils } from "@fosscord/util"; + +const allow_empty = false; +// TODO: check webhook, application, system author, stickers +// TODO: embed gifs/videos/images + +const LINK_REGEX = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)/g; + +const DEFAULT_FETCH_OPTIONS: any = { + redirect: "follow", + follow: 1, + headers: { + "user-agent": "Mozilla/5.0 (compatible; Fosscord/1.0; +https://github.com/fosscord/fosscord)" + }, + // size: 1024 * 1024 * 5, // grabbed from config later + compress: true, + method: "GET" +}; + +export async function handleMessage(opts: MessageOptions): Promise { + const channel = await Channel.findOneOrFail({ where: { id: opts.channel_id }, relations: ["recipients"] }); + if (!channel || !opts.channel_id) throw new HTTPError("Channel not found", 404); + + const message = OrmUtils.mergeDeep(new Message(), { + ...opts, + sticker_items: opts.sticker_ids?.map((x) => ({ id: x })), + guild_id: channel.guild_id, + channel_id: opts.channel_id, + attachments: opts.attachments || [], + embeds: opts.embeds || [], + reactions: /*opts.reactions ||*/ [], + type: opts.type ?? 0 + }); + + if (message.content && message.content.length > Config.get().limits.message.maxCharacters) { + throw new HTTPError("Content length over max character limit") + } + + if (opts.author_id) { + message.author = await User.getPublicUser(opts.author_id); + const rights = await getRights(opts.author_id); + rights.hasThrow("SEND_MESSAGES"); + } + if (opts.application_id) { + message.application = await Application.findOneOrFail({ where: { id: opts.application_id } }); + } + if (opts.webhook_id) { + message.webhook = await Webhook.findOneOrFail({ where: { id: opts.webhook_id } }); + } + + const permission = await getPermission(opts.author_id, channel.guild_id, opts.channel_id); + permission.hasThrow("SEND_MESSAGES"); + if (permission.cache.member) { + message.member = permission.cache.member; + } + + if (opts.tts) permission.hasThrow("SEND_TTS_MESSAGES"); + if (opts.message_reference) { + permission.hasThrow("READ_MESSAGE_HISTORY"); + // code below has to be redone when we add custom message routing + if (message.guild_id !== null) { + const guild = await Guild.findOneOrFail({ where: { id: channel.guild_id } }); + if (!guild.features.includes("CROSS_CHANNEL_REPLIES")) { + if (opts.message_reference.guild_id !== channel.guild_id) throw new HTTPError("You can only reference messages from this guild"); + if (opts.message_reference.channel_id !== opts.channel_id) throw new HTTPError("You can only reference messages from this channel"); + } + } + /** Q: should be checked if the referenced message exists? ANSWER: NO + otherwise backfilling won't work **/ + // @ts-ignore + message.type = MessageType.REPLY; + } + + // TODO: stickers/activity + if (!allow_empty && (!opts.content && !opts.embeds?.length && !opts.attachments?.length && !opts.sticker_ids?.length)) { + throw new HTTPError("Empty messages are not allowed", 50006); + } + + let content = opts.content; + let mention_channel_ids = [] as string[]; + let mention_role_ids = [] as string[]; + let mention_user_ids = [] as string[]; + let mention_everyone = false; + + if (content) { // TODO: explicit-only mentions + message.content = content.trim(); + for (const [_, mention] of content.matchAll(CHANNEL_MENTION)) { + if (!mention_channel_ids.includes(mention)) mention_channel_ids.push(mention); + } + + for (const [_, mention] of content.matchAll(USER_MENTION)) { + if (!mention_user_ids.includes(mention)) mention_user_ids.push(mention); + } + + await Promise.all( + Array.from(content.matchAll(ROLE_MENTION)).map(async ([_, mention]) => { + const role = await Role.findOneOrFail({ where: { id: mention, guild_id: channel.guild_id } }); + if (role.mentionable || permission.has("MANAGE_ROLES")) { + mention_role_ids.push(mention); + } + }) + ); + + if (permission.has("MENTION_EVERYONE")) { + mention_everyone = !!content.match(EVERYONE_MENTION) || !!content.match(HERE_MENTION); + } + } + + message.mention_channels = mention_channel_ids.map((x) => OrmUtils.mergeDeep(new Channel(), { id: x })); + message.mention_roles = mention_role_ids.map((x) => OrmUtils.mergeDeep(new Role(), { id: x })); + message.mentions = mention_user_ids.map((x) => OrmUtils.mergeDeep(new User(), { id: x })); + message.mention_everyone = mention_everyone; + + // TODO: check and put it all in the body + + return message; +} + +// TODO: cache link result in db +export async function postHandleMessage(message: Message) { + let links = message.content?.match(LINK_REGEX); + if (!links) return; + + const data = { ...message }; + data.embeds = data.embeds.filter((x) => x.type !== "link"); + + links = links.slice(0, 20); // embed max 20 links — TODO: make this configurable with instance policies + + for (const link of links) { + try { + const request = await fetch(link, { + ...DEFAULT_FETCH_OPTIONS, + size: Config.get().limits.message.maxEmbedDownloadSize, + }); + + const text = await request.text(); + const $ = cheerio.load(text); + + const title = $('meta[property="og:title"]').attr("content"); + const provider_name = $('meta[property="og:site_name"]').text(); + const author_name = $('meta[property="article:author"]').attr("content"); + const description = $('meta[property="og:description"]').attr("content") || $('meta[property="description"]').attr("content"); + const image = $('meta[property="og:image"]').attr("content"); + const url = $('meta[property="og:url"]').attr("content"); + // TODO: color + const embed: Embed = { + provider: { + url: link, + name: provider_name + } + }; + + if (author_name) embed.author = { name: author_name }; + if (image) embed.thumbnail = { proxy_url: image, url: image }; + if (title) embed.title = title; + if (url) embed.url = url; + if (description) embed.description = description; + + if (title || description) { + data.embeds.push(embed); + } + } catch (error) {} + } + + await Promise.all([ + emitEvent({ + event: "MESSAGE_UPDATE", + channel_id: message.channel_id, + data + } as MessageUpdateEvent), + Message.update({ id: message.id, channel_id: message.channel_id }, { embeds: data.embeds }) + ]); +} + +export async function sendMessage(opts: MessageOptions) { + const message = await handleMessage({ ...opts, timestamp: new Date() }); + + //TODO: check this, removed toJSON call + await Promise.all([ + Message.insert(message), + emitEvent({ event: "MESSAGE_CREATE", channel_id: opts.channel_id, data: message } as MessageCreateEvent) + ]); + + postHandleMessage(message).catch((e) => {}); // no await as it should catch error non-blockingly + + return message; +} + +interface MessageOptions extends MessageCreateSchema { + id?: string; + type?: MessageType; + pinned?: boolean; + author_id?: string; + webhook_id?: string; + application_id?: string; + embeds?: Embed[]; + channel_id?: string; + attachments?: Attachment[]; + edited_timestamp?: Date; + timestamp?: Date; +} diff --git a/src/api/util/handlers/Voice.ts b/src/api/util/handlers/Voice.ts new file mode 100644 index 00000000..4d60eb91 --- /dev/null +++ b/src/api/util/handlers/Voice.ts @@ -0,0 +1,32 @@ +import { Config } from "@fosscord/util"; +import { distanceBetweenLocations, IPAnalysis } from "../utility/ipAddress"; + +export async function getVoiceRegions(ipAddress: string, vip: boolean) { + const regions = Config.get().regions; + const availableRegions = regions.available.filter((ar) => (vip ? true : !ar.vip)); + let optimalId = regions.default; + + if (!regions.useDefaultAsOptimal) { + const clientIpAnalysis = await IPAnalysis(ipAddress); + + let min = Number.POSITIVE_INFINITY; + + for (let ar of availableRegions) { + //TODO the endpoint location should be saved in the database if not already present to prevent IPAnalysis call + const dist = distanceBetweenLocations(clientIpAnalysis, ar.location || (await IPAnalysis(ar.endpoint))); + + if (dist < min) { + min = dist; + optimalId = ar.id; + } + } + } + + return availableRegions.map((ar) => ({ + id: ar.id, + name: ar.name, + custom: ar.custom, + deprecated: ar.deprecated, + optimal: ar.id === optimalId + })); +} diff --git a/src/api/util/handlers/route.ts b/src/api/util/handlers/route.ts new file mode 100644 index 00000000..71e14955 --- /dev/null +++ b/src/api/util/handlers/route.ts @@ -0,0 +1,131 @@ +import { + DiscordApiErrors, + EVENT, + Event, + EventData, + FieldErrors, + FosscordApiErrors, + getPermission, + getRights, + PermissionResolvable, + Permissions, + RightResolvable, + Rights +} from "@fosscord/util"; +import { NextFunction, Request, Response } from "express"; +import fs from "fs"; +import path from "path"; +import Ajv from "ajv"; +import { AnyValidateFunction } from "ajv/dist/core"; +import addFormats from "ajv-formats"; + +const SchemaPath = path.join(__dirname, "..", "..", "..","..", "assets", "schemas.json"); +const schemas = JSON.parse(fs.readFileSync(SchemaPath, { encoding: "utf8" })); + +export const ajv = new Ajv({ + allErrors: true, + parseDate: true, + allowDate: true, + schemas, + coerceTypes: true, + messages: true, + strict: true, + strictRequired: true +}); + +addFormats(ajv); + +declare global { + namespace Express { + interface Request { + permission?: Permissions; + } + } +} + +export type RouteResponse = { status?: number; body?: `${string}Response`; headers?: Record }; + +export interface RouteOptions { + permission?: PermissionResolvable; + right?: RightResolvable; + body?: `${string}Schema`; // typescript interface name + test?: { + response?: RouteResponse; + body?: any; + path?: string; + event?: EVENT | EVENT[]; + headers?: Record; + }; +} + +// Normalizer is introduced to workaround https://github.com/ajv-validator/ajv/issues/1287 +// this removes null values as ajv doesn't treat them as undefined +// normalizeBody allows to handle circular structures without issues +// taken from https://github.com/serverless/serverless/blob/master/lib/classes/ConfigSchemaHandler/index.js#L30 (MIT license) +const normalizeBody = (body: any = {}) => { + const normalizedObjectsSet = new WeakSet(); + const normalizeObject = (object: any) => { + if (normalizedObjectsSet.has(object)) return; + normalizedObjectsSet.add(object); + if (Array.isArray(object)) { + for (const [index, value] of object.entries()) { + if (typeof value === "object") normalizeObject(value); + } + } else { + for (const [key, value] of Object.entries(object)) { + if (value == null) { + if (key === "icon" || key === "avatar" || key === "banner" || key === "splash" || key === "discovery_splash") continue; + delete object[key]; + } else if (typeof value === "object") { + normalizeObject(value); + } + } + } + }; + normalizeObject(body); + return body; +}; + +export function route(opts: RouteOptions) { + let validate: AnyValidateFunction | undefined; + if (opts.body) { + validate = ajv.getSchema(opts.body); + if (!validate) throw new Error(`Body schema ${opts.body} not found`); + } + + return async (req: Request, res: Response, next: NextFunction) => { + if (opts.permission) { + const required = new Permissions(opts.permission); + req.permission = await getPermission(req.user_id, req.params.guild_id, req.params.channel_id); + + // bitfield comparison: check if user lacks certain permission + if (!req.permission.has(required)) { + throw DiscordApiErrors.MISSING_PERMISSIONS.withParams(opts.permission as string); + } + } + + if (opts.right) { + const required = new Rights(opts.right); + req.rights = await getRights(req.user_id); + + if (!req.rights || !req.rights.has(required)) { + throw FosscordApiErrors.MISSING_RIGHTS.withParams(opts.right as string); + } + } + + if (validate) { + const valid = validate(normalizeBody(req.body)); + if (!valid) { + const fields: Record = {}; + if(process.env.LOG_INVALID_BODY) { + console.log(`Got invalid request: ${req.method} ${req.originalUrl}`) + console.log(req.body) + validate.errors?.forEach(x => console.log(x.params)) + } + validate.errors?.forEach((x) => (fields[x.instancePath.slice(1)] = { code: x.keyword, message: x.message || "" })); + throw FieldErrors(fields); + } + } + next(); + }; +} diff --git a/src/api/util/index.ts b/src/api/util/index.ts new file mode 100644 index 00000000..b3c7559f --- /dev/null +++ b/src/api/util/index.ts @@ -0,0 +1,9 @@ +export * from "./entities/AssetCacheItem"; +export * from "./handlers/Message"; +export * from "./handlers/route"; +export * from "./handlers/Voice"; +export * from "./utility/Base64"; +export * from "./utility/ipAddress"; +export * from "./utility/passwordStrength"; +export * from "./utility/RandomInviteID"; +export * from "./utility/String"; \ No newline at end of file diff --git a/src/api/util/utility/Base64.ts b/src/api/util/utility/Base64.ts new file mode 100644 index 00000000..46cff77a --- /dev/null +++ b/src/api/util/utility/Base64.ts @@ -0,0 +1,47 @@ +const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+"; + +// binary to string lookup table +const b2s = alphabet.split(""); + +// string to binary lookup table +// 123 == 'z'.charCodeAt(0) + 1 +const s2b = new Array(123); +for (let i = 0; i < alphabet.length; i++) { + s2b[alphabet.charCodeAt(i)] = i; +} + +// number to base64 +export const ntob = (n: number): string => { + if (n < 0) return `-${ntob(-n)}`; + + let lo = n >>> 0; + let hi = (n / 4294967296) >>> 0; + + let right = ""; + while (hi > 0) { + right = b2s[0x3f & lo] + right; + lo >>>= 6; + lo |= (0x3f & hi) << 26; + hi >>>= 6; + } + + let left = ""; + do { + left = b2s[0x3f & lo] + left; + lo >>>= 6; + } while (lo > 0); + + return left + right; +}; + +// base64 to number +export const bton = (base64: string) => { + let number = 0; + const sign = base64.charAt(0) === "-" ? 1 : 0; + + for (let i = sign; i < base64.length; i++) { + number = number * 64 + s2b[base64.charCodeAt(i)]; + } + + return sign ? -number : number; +}; diff --git a/src/api/util/utility/RandomInviteID.ts b/src/api/util/utility/RandomInviteID.ts new file mode 100644 index 00000000..7ea344e0 --- /dev/null +++ b/src/api/util/utility/RandomInviteID.ts @@ -0,0 +1,32 @@ +import { Snowflake } from "@fosscord/util"; + +export function random(length = 6) { + // Declare all characters + let chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + + // Pick characers randomly + let str = ""; + for (let i = 0; i < length; i++) { + str += chars.charAt(Math.floor(Math.random() * chars.length)); + } + + return str; +} + +export function snowflakeBasedInvite() { + // Declare all characters + let chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + let base = BigInt(chars.length); + let snowflake = Snowflake.generateWorkerProcess(); + + // snowflakes hold ~10.75 characters worth of entropy; + // safe to generate a 8-char invite out of them + let str = ""; + for (let i=0; i < 10; i++) { + + str.concat(chars.charAt(Number(snowflake % base))); + snowflake = snowflake / base; + } + + return str.substr(3,8).split("").reverse().join(""); +} diff --git a/src/api/util/utility/String.ts b/src/api/util/utility/String.ts new file mode 100644 index 00000000..982b7e11 --- /dev/null +++ b/src/api/util/utility/String.ts @@ -0,0 +1,18 @@ +import { Request } from "express"; +import { ntob } from "./Base64"; +import { FieldErrors } from "@fosscord/util"; + +export function checkLength(str: string, min: number, max: number, key: string, req: Request) { + if (str.length < min || str.length > max) { + throw FieldErrors({ + [key]: { + code: "BASE_TYPE_BAD_LENGTH", + message: req.t("common:field.BASE_TYPE_BAD_LENGTH", { length: `${min} - ${max}` }) + } + }); + } +} + +export function generateCode() { + return ntob(Date.now() + Math.randomIntBetween(0, 10000)); +} diff --git a/src/api/util/utility/ipAddress.ts b/src/api/util/utility/ipAddress.ts new file mode 100644 index 00000000..8d986b26 --- /dev/null +++ b/src/api/util/utility/ipAddress.ts @@ -0,0 +1,95 @@ +import { Config } from "@fosscord/util"; +import { Request } from "express"; +// use ipdata package instead of simple fetch because of integrated caching +import fetch from "node-fetch"; + +const exampleData = { + ip: "", + is_eu: true, + city: "", + region: "", + region_code: "", + country_name: "", + country_code: "", + continent_name: "", + continent_code: "", + latitude: 0, + longitude: 0, + postal: "", + calling_code: "", + flag: "", + emoji_flag: "", + emoji_unicode: "", + asn: { + asn: "", + name: "", + domain: "", + route: "", + type: "isp" + }, + languages: [ + { + name: "", + native: "" + } + ], + currency: { + name: "", + code: "", + symbol: "", + native: "", + plural: "" + }, + time_zone: { + name: "", + abbr: "", + offset: "", + is_dst: true, + current_time: "" + }, + threat: { + is_tor: false, + is_proxy: false, + is_anonymous: false, + is_known_attacker: false, + is_known_abuser: false, + is_threat: false, + is_bogon: false + }, + count: 0, + status: 200 +}; + +//TODO add function that support both ip and domain names +export async function IPAnalysis(ip: string): Promise { + const { ipdataApiKey } = Config.get().security; + if (!ipdataApiKey) return { ...exampleData, ip }; + + return (await fetch(`https://api.ipdata.co/${ip}?api-key=${ipdataApiKey}`)).json() as any; +} + +export function isProxy(data: typeof exampleData) { + if (!data || !data.asn || !data.threat) return false; + if (data.asn.type !== "isp") return true; + if (Object.values(data.threat).some((x) => x)) return true; + + return false; +} + +export function getIpAdress(req: Request): string { + // @ts-ignore + return req.headers[Config.get().security.forwadedFor] || req.socket.remoteAddress; +} + +export function distanceBetweenLocations(loc1: any, loc2: any): number { + return distanceBetweenCoords(loc1.latitude, loc1.longitude, loc2.latitude, loc2.longitude); +} + +//Haversine function +function distanceBetweenCoords(lat1: number, lon1: number, lat2: number, lon2: number) { + const p = 0.017453292519943295; // Math.PI / 180 + const c = Math.cos; + const a = 0.5 - c((lat2 - lat1) * p) / 2 + (c(lat1 * p) * c(lat2 * p) * (1 - c((lon2 - lon1) * p))) / 2; + + return 12742 * Math.asin(Math.sqrt(a)); // 2 * R; R = 6371 km +} diff --git a/src/api/util/utility/passwordStrength.ts b/src/api/util/utility/passwordStrength.ts new file mode 100644 index 00000000..8eca63b8 --- /dev/null +++ b/src/api/util/utility/passwordStrength.ts @@ -0,0 +1,59 @@ +import { Config } from "@fosscord/util"; + +const reNUMBER = /[0-9]/g; +const reUPPERCASELETTER = /[A-Z]/g; +const reSYMBOLS = /[A-Z,a-z,0-9]/g; + +const blocklist: string[] = []; // TODO: update ones passwordblocklist is stored in db +/* + * https://en.wikipedia.org/wiki/Password_policy + * password must meet following criteria, to be perfect: + * - min chars + * - min numbers + * - min symbols + * - min uppercase chars + * - shannon entropy folded into [0, 1) interval + * + * Returns: 0 > pw > 1 + */ +export function checkPassword(password: string): number { + const { minLength, minNumbers, minUpperCase, minSymbols } = Config.get().register.password; + let strength = 0; + + // checks for total password len + if (password.length >= minLength - 1) { + strength += 0.05; + } + + // checks for amount of Numbers + if (password.count(reNUMBER) >= minNumbers - 1) { + strength += 0.05; + } + + // checks for amount of Uppercase Letters + if (password.count(reUPPERCASELETTER) >= minUpperCase - 1) { + strength += 0.05; + } + + // checks for amount of symbols + if (password.replace(reSYMBOLS, "").length >= minSymbols - 1) { + strength += 0.05; + } + + // checks if password only consists of numbers or only consists of chars + if (password.length == password.count(reNUMBER) || password.length === password.count(reUPPERCASELETTER)) { + strength = 0; + } + + let entropyMap: { [key: string]: number } = {}; + for (let i = 0; i < password.length; i++) { + if (entropyMap[password[i]]) entropyMap[password[i]]++; + else entropyMap[password[i]] = 1; + } + + let entropies = Object.values(entropyMap); + + entropies.map(x => (x / entropyMap.length)); + strength += entropies.reduceRight((a: number, x: number) => a - (x * Math.log2(x))) / Math.log2(password.length); + return strength; +} diff --git a/src/cdn/Server.ts b/src/cdn/Server.ts new file mode 100644 index 00000000..b27d3321 --- /dev/null +++ b/src/cdn/Server.ts @@ -0,0 +1,80 @@ +import { Server, ServerOptions } from "lambert-server"; +import { Config, getOrInitialiseDatabase, registerRoutes } from "@fosscord/util"; +import path from "path"; +import avatarsRoute from "./routes/avatars"; +import iconsRoute from "./routes/role-icons"; +import bodyParser from "body-parser"; + +export interface CDNServerOptions extends ServerOptions {} + +export class CDNServer extends Server { + public declare options: CDNServerOptions; + + constructor(options?: Partial) { + super(options); + } + + async start() { + await getOrInitialiseDatabase(); + await Config.init(); + this.app.use((req, res, next) => { + res.set("Access-Control-Allow-Origin", "*"); + // TODO: use better CSP policy + res.set( + "Content-security-policy", + "default-src * data: blob: filesystem: about: ws: wss: 'unsafe-inline' 'unsafe-eval'; script-src * data: blob: 'unsafe-inline' 'unsafe-eval'; connect-src * data: blob: 'unsafe-inline'; img-src * data: blob: 'unsafe-inline'; frame-src * data: blob: ; style-src * data: blob: 'unsafe-inline'; font-src * data: blob: 'unsafe-inline';" + ); + res.set( + "Access-Control-Allow-Headers", + req.header("Access-Control-Request-Headers") || "*" + ); + res.set( + "Access-Control-Allow-Methods", + req.header("Access-Control-Request-Methods") || "*" + ); + next(); + }); + this.app.use(bodyParser.json({ inflate: true, limit: "10mb" })); + + await registerRoutes(this, path.join(__dirname, "routes/")); + + this.app.use("/icons/", avatarsRoute); + this.log("verbose", "[Server] Route /icons registered"); + + this.app.use("/role-icons/", iconsRoute); + this.log("verbose", "[Server] Route /role-icons registered"); + + this.app.use("/emojis/", avatarsRoute); + this.log("verbose", "[Server] Route /emojis registered"); + + this.app.use("/stickers/", avatarsRoute); + this.log("verbose", "[Server] Route /stickers registered"); + + this.app.use("/banners/", avatarsRoute); + this.log("verbose", "[Server] Route /banners registered"); + + this.app.use("/splashes/", avatarsRoute); + this.log("verbose", "[Server] Route /splashes registered"); + + this.app.use("/app-icons/", avatarsRoute); + this.log("verbose", "[Server] Route /app-icons registered"); + + this.app.use("/app-assets/", avatarsRoute); + this.log("verbose", "[Server] Route /app-assets registered"); + + this.app.use("/discover-splashes/", avatarsRoute); + this.log("verbose", "[Server] Route /discover-splashes registered"); + + this.app.use("/team-icons/", avatarsRoute); + this.log("verbose", "[Server] Route /team-icons registered"); + + this.app.use("/channel-icons/", avatarsRoute); + this.log("verbose", "[Server] Route /channel-icons registered"); + + return super.start(); + } + + async stop() { + return super.stop(); + } +} diff --git a/src/cdn/index.ts b/src/cdn/index.ts new file mode 100644 index 00000000..a24300d6 --- /dev/null +++ b/src/cdn/index.ts @@ -0,0 +1,4 @@ +export * from "./Server"; +export * from "./util/FileStorage"; +export * from "./util/Storage"; +export * from "./util/multer"; diff --git a/src/cdn/routes/attachments.ts b/src/cdn/routes/attachments.ts new file mode 100644 index 00000000..723a6c03 --- /dev/null +++ b/src/cdn/routes/attachments.ts @@ -0,0 +1,100 @@ +import { Router, Response, Request } from "express"; +import { Config, Snowflake } from "@fosscord/util"; +import { storage } from "../util/Storage"; +import FileType from "file-type"; +import { HTTPError } from "@fosscord/util"; +import { multer } from "../util/multer"; +import imageSize from "image-size"; + +const router = Router(); + +const SANITIZED_CONTENT_TYPE = [ + "text/html", + "text/mhtml", + "multipart/related", + "application/xhtml+xml", +]; + +router.post( + "/:channel_id", + multer.single("file"), + async (req: Request, res: Response) => { + if (req.headers.signature !== Config.get().security.requestSignature) + throw new HTTPError("Invalid request signature"); + if (!req.file) throw new HTTPError("file missing"); + + const { buffer, mimetype, size, originalname, fieldname } = req.file; + const { channel_id } = req.params; + const filename = originalname + .replaceAll(" ", "_") + .replace(/[^a-zA-Z0-9._]+/g, ""); + const id = Snowflake.generate(); + const path = `attachments/${channel_id}/${id}/${filename}`; + + const endpoint = + Config.get()?.cdn.endpointPublic || "http://localhost:3003"; + + await storage.set(path, buffer); + let width; + let height; + if (mimetype.includes("image")) { + const dimensions = imageSize(buffer); + if (dimensions) { + width = dimensions.width; + height = dimensions.height; + } + } + + const file = { + id, + content_type: mimetype, + filename: filename, + size, + url: `${endpoint}/${path}`, + width, + height, + }; + + return res.json(file); + } +); + +router.get( + "/:channel_id/:id/:filename", + async (req: Request, res: Response) => { + const { channel_id, id, filename } = req.params; + + const file = await storage.get( + `attachments/${channel_id}/${id}/${filename}` + ); + if (!file) throw new HTTPError("File not found"); + const type = await FileType.fromBuffer(file); + let content_type = type?.mime || "application/octet-stream"; + + if (SANITIZED_CONTENT_TYPE.includes(content_type)) { + content_type = "application/octet-stream"; + } + + res.set("Content-Type", content_type); + res.set("Cache-Control", "public, max-age=31536000"); + + return res.send(file); + } +); + +router.delete( + "/:channel_id/:id/:filename", + async (req: Request, res: Response) => { + if (req.headers.signature !== Config.get().security.requestSignature) + throw new HTTPError("Invalid request signature"); + + const { channel_id, id, filename } = req.params; + const path = `attachments/${channel_id}/${id}/${filename}`; + + await storage.delete(path); + + return res.send({ success: true }); + } +); + +export default router; diff --git a/src/cdn/routes/avatars.ts b/src/cdn/routes/avatars.ts new file mode 100644 index 00000000..40705b2e --- /dev/null +++ b/src/cdn/routes/avatars.ts @@ -0,0 +1,102 @@ +import { Router, Response, Request } from "express"; +import { Config, Snowflake } from "@fosscord/util"; +import { storage } from "../util/Storage"; +import FileType from "file-type"; +import { HTTPError } from "@fosscord/util"; +import crypto from "crypto"; +import { multer } from "../util/multer"; + +// TODO: check premium and animated pfp are allowed in the config +// TODO: generate different sizes of icon +// TODO: generate different image types of icon +// TODO: delete old icons + +const ANIMATED_MIME_TYPES = ["image/apng", "image/gif", "image/gifv"]; +const STATIC_MIME_TYPES = [ + "image/png", + "image/jpeg", + "image/webp", + "image/svg+xml", + "image/svg", +]; +const ALLOWED_MIME_TYPES = [...ANIMATED_MIME_TYPES, ...STATIC_MIME_TYPES]; + +const router = Router(); + +router.post( + "/:user_id", + multer.single("file"), + async (req: Request, res: Response) => { + if (req.headers.signature !== Config.get().security.requestSignature) + throw new HTTPError("Invalid request signature"); + if (!req.file) throw new HTTPError("Missing file"); + const { buffer, mimetype, size, originalname, fieldname } = req.file; + const { user_id } = req.params; + + let hash = crypto + .createHash("md5") + .update(Snowflake.generate()) + .digest("hex"); + + const type = await FileType.fromBuffer(buffer); + if (!type || !ALLOWED_MIME_TYPES.includes(type.mime)) + throw new HTTPError("Invalid file type"); + if (ANIMATED_MIME_TYPES.includes(type.mime)) hash = `a_${hash}`; // animated icons have a_ infront of the hash + + const path = `avatars/${user_id}/${hash}`; + const endpoint = + Config.get().cdn.endpointPublic || "http://localhost:3003"; + + await storage.set(path, buffer); + + return res.json({ + id: hash, + content_type: type.mime, + size, + url: `${endpoint}${req.baseUrl}/${user_id}/${hash}`, + }); + } +); + +router.get("/:user_id", async (req: Request, res: Response) => { + let { user_id } = req.params; + user_id = user_id.split(".")[0]; // remove .file extension + const path = `avatars/${user_id}`; + + const file = await storage.get(path); + if (!file) throw new HTTPError("not found", 404); + const type = await FileType.fromBuffer(file); + + res.set("Content-Type", type?.mime); + res.set("Cache-Control", "public, max-age=31536000"); + + return res.send(file); +}); + +router.get("/:user_id/:hash", async (req: Request, res: Response) => { + let { user_id, hash } = req.params; + hash = hash.split(".")[0]; // remove .file extension + const path = `avatars/${user_id}/${hash}`; + + const file = await storage.get(path); + if (!file) throw new HTTPError("not found", 404); + const type = await FileType.fromBuffer(file); + + res.set("Content-Type", type?.mime); + res.set("Cache-Control", "public, max-age=31536000"); + + return res.send(file); +}); + +router.delete("/:user_id/:id", async (req: Request, res: Response) => { + if (req.headers.signature !== Config.get().security.requestSignature) + throw new HTTPError("Invalid request signature"); + const { user_id, id } = req.params; + const path = `avatars/${user_id}/${id}`; + + await storage.delete(path); + + return res.send({ success: true }); +}); + +export default router; diff --git a/src/cdn/routes/external.ts b/src/cdn/routes/external.ts new file mode 100644 index 00000000..c9441fc2 --- /dev/null +++ b/src/cdn/routes/external.ts @@ -0,0 +1,58 @@ +import { Router, Response, Request } from "express"; +import fetch from "node-fetch"; +import { HTTPError } from "@fosscord/util"; +import { Snowflake, Config } from "@fosscord/util"; +import { storage } from "../util/Storage"; +import FileType from "file-type"; + +// TODO: somehow handle the deletion of images posted to the /external route + +const router = Router(); +const DEFAULT_FETCH_OPTIONS: any = { + redirect: "follow", + follow: 1, + headers: { + "user-agent": + "Mozilla/5.0 (compatible Fosscordbot/0.1; +https://fosscord.com)", + }, + size: 1024 * 1024 * 8, + compress: true, + method: "GET", +}; + +router.post("/", async (req: Request, res: Response) => { + if (req.headers.signature !== Config.get().security.requestSignature) + throw new HTTPError("Invalid request signature"); + + if (!req.body) throw new HTTPError("Invalid Body"); + + const { url } = req.body; + if (!url || typeof url !== "string") throw new HTTPError("Invalid url"); + + const id = Snowflake.generate(); + + try { + const response = await fetch(url, DEFAULT_FETCH_OPTIONS); + const buffer = await response.buffer(); + + await storage.set(`/external/${id}`, buffer); + + res.send({ id }); + } catch (error) { + throw new HTTPError("Couldn't fetch website"); + } +}); + +router.get("/:id", async (req: Request, res: Response) => { + const { id } = req.params; + + const file = await storage.get(`/external/${id}`); + if (!file) throw new HTTPError("File not found"); + const result = await FileType.fromBuffer(file); + + res.set("Content-Type", result?.mime); + + return res.send(file); +}); + +export default router; diff --git a/src/cdn/routes/ping.ts b/src/cdn/routes/ping.ts new file mode 100644 index 00000000..38daf81e --- /dev/null +++ b/src/cdn/routes/ping.ts @@ -0,0 +1,9 @@ +import { Router, Response, Request } from "express"; + +const router = Router(); + +router.get("/", (req: Request, res: Response) => { + res.send("pong"); +}); + +export default router; diff --git a/src/cdn/routes/role-icons.ts b/src/cdn/routes/role-icons.ts new file mode 100644 index 00000000..2e5c42dd --- /dev/null +++ b/src/cdn/routes/role-icons.ts @@ -0,0 +1,101 @@ +import { Router, Response, Request } from "express"; +import { Config, Snowflake } from "@fosscord/util"; +import { storage } from "../util/Storage"; +import FileType from "file-type"; +import { HTTPError } from "@fosscord/util"; +import crypto from "crypto"; +import { multer } from "../util/multer"; + +//Role icons ---> avatars.ts modified + +// TODO: check user rights and perks and animated pfp are allowed in the policies +// TODO: generate different sizes of icon +// TODO: generate different image types of icon + +const STATIC_MIME_TYPES = [ + "image/png", + "image/jpeg", + "image/webp", + "image/svg+xml", + "image/svg", +]; +const ALLOWED_MIME_TYPES = [...STATIC_MIME_TYPES]; + +const router = Router(); + +router.post( + "/:role_id", + multer.single("file"), + async (req: Request, res: Response) => { + if (req.headers.signature !== Config.get().security.requestSignature) + throw new HTTPError("Invalid request signature"); + if (!req.file) throw new HTTPError("Missing file"); + const { buffer, mimetype, size, originalname, fieldname } = req.file; + const { role_id } = req.params; + + let hash = crypto + .createHash("md5") + .update(Snowflake.generate()) + .digest("hex"); + + const type = await FileType.fromBuffer(buffer); + if (!type || !ALLOWED_MIME_TYPES.includes(type.mime)) + throw new HTTPError("Invalid file type"); + + const path = `role-icons/${role_id}/${hash}.png`; + const endpoint = + Config.get().cdn.endpointPublic || "http://localhost:3003"; + + await storage.set(path, buffer); + + return res.json({ + id: hash, + content_type: type.mime, + size, + url: `${endpoint}${req.baseUrl}/${role_id}/${hash}`, + }); + } +); + +router.get("/:role_id", async (req: Request, res: Response) => { + let { role_id } = req.params; + //role_id = role_id.split(".")[0]; // remove .file extension + const path = `role-icons/${role_id}`; + + const file = await storage.get(path); + if (!file) throw new HTTPError("not found", 404); + const type = await FileType.fromBuffer(file); + + res.set("Content-Type", type?.mime); + res.set("Cache-Control", "public, max-age=31536000, must-revalidate"); + + return res.send(file); +}); + +router.get("/:role_id/:hash", async (req: Request, res: Response) => { + let { role_id, hash } = req.params; + //hash = hash.split(".")[0]; // remove .file extension + const path = `role-icons/${role_id}/${hash}`; + + const file = await storage.get(path); + if (!file) throw new HTTPError("not found", 404); + const type = await FileType.fromBuffer(file); + + res.set("Content-Type", type?.mime); + res.set("Cache-Control", "public, max-age=31536000, must-revalidate"); + + return res.send(file); +}); + +router.delete("/:role_id/:id", async (req: Request, res: Response) => { + if (req.headers.signature !== Config.get().security.requestSignature) + throw new HTTPError("Invalid request signature"); + const { role_id, id } = req.params; + const path = `role-icons/${role_id}/${id}`; + + await storage.delete(path); + + return res.send({ success: true }); +}); + +export default router; diff --git a/src/cdn/start.ts b/src/cdn/start.ts new file mode 100644 index 00000000..71681b40 --- /dev/null +++ b/src/cdn/start.ts @@ -0,0 +1,13 @@ +import dotenv from "dotenv"; +dotenv.config(); + +import { CDNServer } from "./Server"; +const server = new CDNServer({ port: Number(process.env.PORT) || 3003 }); +server + .start() + .then(() => { + console.log("[Server] started on :" + server.options.port); + }) + .catch((e) => console.error("[Server] Error starting: ", e)); + +module.exports = server; diff --git a/src/cdn/util/FileStorage.ts b/src/cdn/util/FileStorage.ts new file mode 100644 index 00000000..aee9d345 --- /dev/null +++ b/src/cdn/util/FileStorage.ts @@ -0,0 +1,51 @@ +import { Storage } from "./Storage"; +import fs from "fs"; +import { join, relative, dirname } from "path"; +import { Readable } from "stream"; +//import ExifTransformer = require("exif-be-gone"); +import ExifTransformer from "exif-be-gone"; + +// TODO: split stored files into separate folders named after cloned route + +function getPath(path: string) { + // STORAGE_LOCATION has a default value in start.ts + const root = process.env.STORAGE_LOCATION || "../"; + let filename = join(root, path); + + if (path.indexOf("\0") !== -1 || !filename.startsWith(root)) + throw new Error("invalid path"); + return filename; +} + +export class FileStorage implements Storage { + async get(path: string): Promise { + path = getPath(path); + try { + return fs.readFileSync(path); + } catch (error) { + try { + const files = fs.readdirSync(path); + if (!files.length) return null; + return fs.readFileSync(join(path, files[0])); + } catch (error) { + return null; + } + } + } + + async set(path: string, value: any) { + path = getPath(path); + //fse.ensureDirSync(dirname(path)); + fs.mkdirSync(dirname(path), {recursive: true}); + + value = Readable.from(value); + const cleaned_file = fs.createWriteStream(path); + + return value.pipe(new ExifTransformer()).pipe(cleaned_file); + } + + async delete(path: string) { + //TODO we should delete the parent directory if empty + fs.unlinkSync(getPath(path)); + } +} diff --git a/src/cdn/util/S3Storage.ts b/src/cdn/util/S3Storage.ts new file mode 100644 index 00000000..c4066817 --- /dev/null +++ b/src/cdn/util/S3Storage.ts @@ -0,0 +1,60 @@ +import { S3 } from "@aws-sdk/client-s3"; +import { Readable } from "stream"; +import { Storage } from "./Storage"; + +const readableToBuffer = (readable: Readable): Promise => + new Promise((resolve, reject) => { + const chunks: Buffer[] = []; + readable.on("data", (chunk) => chunks.push(chunk)); + readable.on("error", reject); + readable.on("end", () => resolve(Buffer.concat(chunks))); + }); + +export class S3Storage implements Storage { + public constructor( + private client: S3, + private bucket: string, + private basePath?: string + ) {} + + /** + * Always return a string, to ensure consistency. + */ + get bucketBasePath() { + return this.basePath ?? ""; + } + + async set(path: string, data: Buffer): Promise { + await this.client.putObject({ + Bucket: this.bucket, + Key: `${this.bucketBasePath}${path}`, + Body: data, + }); + } + + async get(path: string): Promise { + try { + const s3Object = await this.client.getObject({ + Bucket: this.bucket, + Key: `${this.bucketBasePath ?? ""}${path}`, + }); + + if (!s3Object.Body) return null; + + const body = s3Object.Body; + + return await readableToBuffer(body); + } catch (err) { + console.error(`[CDN] Unable to get S3 object at path ${path}.`); + console.error(err); + return null; + } + } + + async delete(path: string): Promise { + await this.client.deleteObject({ + Bucket: this.bucket, + Key: `${this.bucketBasePath}${path}`, + }); + } +} diff --git a/src/cdn/util/Storage.ts b/src/cdn/util/Storage.ts new file mode 100644 index 00000000..728804a0 --- /dev/null +++ b/src/cdn/util/Storage.ts @@ -0,0 +1,64 @@ +import { FileStorage } from "./FileStorage"; +import path from "path"; +//import fse from "fs-extra"; +import fs from "fs"; +import { bgCyan, black } from "picocolors"; +import { S3 } from "@aws-sdk/client-s3"; +import { S3Storage } from "./S3Storage"; +process.cwd(); + +export interface Storage { + set(path: string, data: Buffer): Promise; + get(path: string): Promise; + delete(path: string): Promise; +} + +let storage: Storage; + +if (process.env.STORAGE_PROVIDER === "file" || !process.env.STORAGE_PROVIDER) { + let location = process.env.STORAGE_LOCATION; + if (location) { + location = path.resolve(location); + } else { + location = path.join(process.cwd(), "files"); + } + console.log(`[CDN] storage location: ${bgCyan(`${black(location)}`)}`); + //fse.ensureDirSync(location); + fs.mkdirSync(location, {recursive: true}); + process.env.STORAGE_LOCATION = location; + + storage = new FileStorage(); +} else if (process.env.STORAGE_PROVIDER === "s3") { + const region = process.env.STORAGE_REGION, + bucket = process.env.STORAGE_BUCKET; + + if (!region) { + console.error( + `[CDN] You must provide a region when using the S3 storage provider.` + ); + process.exit(1); + } + + if (!bucket) { + console.error( + `[CDN] You must provide a bucket when using the S3 storage provider.` + ); + process.exit(1); + } + + // in the S3 provider, this should be the root path in the bucket + let location = process.env.STORAGE_LOCATION; + + if (!location) { + console.warn( + `[CDN] STORAGE_LOCATION unconfigured for S3 provider, defaulting to the bucket root...` + ); + location = undefined; + } + + const client = new S3({ region }); + + storage = new S3Storage(client, bucket, location); +} + +export { storage }; diff --git a/src/cdn/util/index.ts b/src/cdn/util/index.ts new file mode 100644 index 00000000..07a5c31a --- /dev/null +++ b/src/cdn/util/index.ts @@ -0,0 +1,3 @@ +export * from "./FileStorage"; +export * from "./multer"; +export * from "./Storage"; diff --git a/src/cdn/util/multer.ts b/src/cdn/util/multer.ts new file mode 100644 index 00000000..bfdf6aff --- /dev/null +++ b/src/cdn/util/multer.ts @@ -0,0 +1,10 @@ +import multerConfig from "multer"; + +export const multer = multerConfig({ + storage: multerConfig.memoryStorage(), + limits: { + fields: 10, + files: 10, + fileSize: 1024 * 1024 * 100, // 100 mb + }, +}); diff --git a/src/gateway/Server.ts b/src/gateway/Server.ts new file mode 100644 index 00000000..82fbeba2 --- /dev/null +++ b/src/gateway/Server.ts @@ -0,0 +1,62 @@ +import dotenv from "dotenv"; +dotenv.config(); +import { closeDatabase, Config, getOrInitialiseDatabase, initEvent } from "@fosscord/util"; +import ws from "ws"; +import { Connection } from "./events/Connection"; +import http from "http"; + +export class Server { + public ws: ws.Server; + public port: number; + public server: http.Server; + public production: boolean; + + constructor({ + port, + server, + production, + }: { + port: number; + server?: http.Server; + production?: boolean; + }) { + this.port = port; + this.production = production || false; + + if (server) this.server = server; + else { + this.server = http.createServer(function (req, res) { + res.writeHead(200).end("Online"); + }); + } + + this.server.on("upgrade", (request, socket, head) => { + // @ts-ignore + this.ws.handleUpgrade(request, socket, head, (socket) => { + this.ws.emit("connection", socket, request); + }); + }); + + this.ws = new ws.Server({ + maxPayload: 4096, + noServer: true, + }); + this.ws.on("connection", Connection); + this.ws.on("error", console.error); + } + + async start(): Promise { + await getOrInitialiseDatabase(); + await Config.init(); + await initEvent(); + if (!this.server.listening) { + this.server.listen(this.port); + console.log(`[Gateway] online on 0.0.0.0:${this.port}`); + } + } + + async stop() { + closeDatabase(); + this.server.close(); + } +} diff --git a/src/gateway/events/Close.ts b/src/gateway/events/Close.ts new file mode 100644 index 00000000..5b7c512c --- /dev/null +++ b/src/gateway/events/Close.ts @@ -0,0 +1,46 @@ +import { WebSocket } from "@fosscord/gateway"; +import { + emitEvent, + PresenceUpdateEvent, + PrivateSessionProjection, + Session, + SessionsReplace, + User, +} from "@fosscord/util"; + +export async function Close(this: WebSocket, code: number, reason: string) { + console.log("[WebSocket] closed", code, reason); + if (this.heartbeatTimeout) clearTimeout(this.heartbeatTimeout); + if (this.readyTimeout) clearTimeout(this.readyTimeout); + this.deflate?.close(); + this.removeAllListeners(); + + if (this.session_id) { + await Session.delete({ session_id: this.session_id }); + const sessions = await Session.find({ + where: { user_id: this.user_id }, + select: PrivateSessionProjection, + }); + await emitEvent({ + event: "SESSIONS_REPLACE", + user_id: this.user_id, + data: sessions, + } as SessionsReplace); + const session = sessions.first() || { + activities: [], + client_info: {}, + status: "offline", + }; + + await emitEvent({ + event: "PRESENCE_UPDATE", + user_id: this.user_id, + data: { + user: await User.getPublicUser(this.user_id), + activities: session.activities, + client_status: session?.client_info, + status: session.status, + }, + } as PresenceUpdateEvent); + } +} diff --git a/src/gateway/events/Connection.ts b/src/gateway/events/Connection.ts new file mode 100644 index 00000000..508b4741 --- /dev/null +++ b/src/gateway/events/Connection.ts @@ -0,0 +1,94 @@ +import WS from "ws"; +import { WebSocket } from "@fosscord/gateway"; +import { Send } from "../util/Send"; +import { CLOSECODES, OPCODES } from "../util/Constants"; +import { setHeartbeat } from "../util/Heartbeat"; +import { IncomingMessage } from "http"; +import { Close } from "./Close"; +import { Message } from "./Message"; +import { createDeflate } from "zlib"; +import { URL } from "url"; +let erlpack: any; +try { + erlpack = require("@yukikaze-bot/erlpack"); +} catch (error) {} + +// TODO: check rate limit +// TODO: specify rate limit in config +// TODO: check msg max size + +export async function Connection( + this: WS.Server, + socket: WebSocket, + request: IncomingMessage +) { + try { + // @ts-ignore + socket.on("close", Close); + // @ts-ignore + socket.on("message", Message); + + if(process.env.WS_LOGEVENTS) + [ + "close", + "error", + "upgrade", + //"message", + "open", + "ping", + "pong", + "unexpected-response" + ].forEach(x=>{ + socket.on(x, y => console.log(x, y)); + }); + + console.log(`[Gateway] Connections: ${this.clients.size}`); + + const { searchParams } = new URL(`http://localhost${request.url}`); + // @ts-ignore + socket.encoding = searchParams.get("encoding") || "json"; + if (!["json", "etf"].includes(socket.encoding)) { + if (socket.encoding === "etf" && erlpack) { + throw new Error( + "Erlpack is not installed: 'npm i @yukikaze-bot/erlpack'" + ); + } + return socket.close(CLOSECODES.Decode_error); + } + + // @ts-ignore + socket.version = Number(searchParams.get("version")) || 8; + if (socket.version != 8) + return socket.close(CLOSECODES.Invalid_API_version); + + // @ts-ignore + socket.compress = searchParams.get("compress") || ""; + if (socket.compress) { + if (socket.compress !== "zlib-stream") + return socket.close(CLOSECODES.Decode_error); + socket.deflate = createDeflate({ chunkSize: 65535 }); + socket.deflate.on("data", (chunk) => socket.send(chunk)); + } + + socket.events = {}; + socket.member_events = {}; + socket.permissions = {}; + socket.sequence = 0; + + setHeartbeat(socket); + + await Send(socket, { + op: OPCODES.Hello, + d: { + heartbeat_interval: 1000 * 30, + }, + }); + + socket.readyTimeout = setTimeout(() => { + return socket.close(CLOSECODES.Session_timed_out); + }, 1000 * 30); + } catch (error) { + console.error(error); + return socket.close(CLOSECODES.Unknown_error); + } +} diff --git a/src/gateway/events/Message.ts b/src/gateway/events/Message.ts new file mode 100644 index 00000000..569f5fc7 --- /dev/null +++ b/src/gateway/events/Message.ts @@ -0,0 +1,61 @@ +import { CLOSECODES } from "../util/Constants"; +import { WebSocket, Payload } from "@fosscord/gateway"; +let erlpack: any; +try { + erlpack = require("@yukikaze-bot/erlpack"); +} catch (error) {} +import OPCodeHandlers from "../opcodes"; +import { check } from "../opcodes/instanceOf"; + +const PayloadSchema = { + op: Number, + $d: Object || Number, // or number for heartbeat sequence + $s: Number, + $t: String, +}; + +export async function Message(this: WebSocket, buffer: Buffer) { + // TODO: compression + let data: Payload; + + if (this.encoding === "etf" && buffer instanceof Buffer) + data = erlpack.unpack(buffer); + else if (this.encoding === "json") + data = JSON.parse(buffer as unknown as string); //TODO: is this even correct?? seems to work for web clients... + else if(/--debug|--inspect/.test(process.execArgv.join(' '))) { + debugger; + return; + } + else { + console.log("Invalid gateway connection! Use a debugger to inspect!"); + return; + } + + if(process.env.WS_VERBOSE) + console.log(`[Websocket] Incomming message: ${JSON.stringify(data)}`); + if(data.op !== 1) + check.call(this, PayloadSchema, data); + else { //custom validation for numbers, because heartbeat + if(data.s || data.t || (typeof data.d !== "number" && data.d)) { + console.log("Invalid heartbeat..."); + this.close(CLOSECODES.Decode_error); + } + } + + // @ts-ignore + const OPCodeHandler = OPCodeHandlers[data.op]; + if (!OPCodeHandler) { + console.error("[Gateway] Unkown opcode " + data.op); + // TODO: if all opcodes are implemented comment this out: + // this.close(CLOSECODES.Unknown_opcode); + return; + } + + try { + return await OPCodeHandler.call(this, data); + } catch (error) { + console.error(error); + if (!this.CLOSED && this.CLOSING) + return this.close(CLOSECODES.Unknown_error); + } +} diff --git a/src/gateway/index.ts b/src/gateway/index.ts new file mode 100644 index 00000000..d77ce931 --- /dev/null +++ b/src/gateway/index.ts @@ -0,0 +1,4 @@ +export * from "./Server"; +export * from "./util/"; +export * from "./opcodes/"; +export * from "./listener/listener"; diff --git a/src/gateway/listener/listener.ts b/src/gateway/listener/listener.ts new file mode 100644 index 00000000..8c69e193 --- /dev/null +++ b/src/gateway/listener/listener.ts @@ -0,0 +1,249 @@ +import { + getPermission, + Permissions, + RabbitMQ, + listenEvent, + EventOpts, + ListenEventOpts, + Member, + EVENTEnum, + Relationship, + RelationshipType, +} from "@fosscord/util"; +import { OPCODES } from "../util/Constants"; +import { Send } from "../util/Send"; +import { WebSocket } from "@fosscord/gateway"; +import { Channel as AMQChannel } from "amqplib"; +import { Recipient } from "@fosscord/util"; + +// TODO: close connection on Invalidated Token +// TODO: check intent +// TODO: Guild Member Update is sent for current-user updates regardless of whether the GUILD_MEMBERS intent is set. + +// Sharding: calculate if the current shard id matches the formula: shard_id = (guild_id >> 22) % num_shards +// https://discord.com/developers/docs/topics/gateway#sharding + +export function handlePresenceUpdate( + this: WebSocket, + { event, acknowledge, data }: EventOpts +) { + acknowledge?.(); + if (event === EVENTEnum.PresenceUpdate) { + return Send(this, { + op: OPCODES.Dispatch, + t: event, + d: data, + s: this.sequence++, + }); + } +} + +// TODO: use already queried guilds/channels of Identify and don't fetch them again +export async function setupListener(this: WebSocket) { + const [members, recipients, relationships] = await Promise.all([ + Member.find({ + where: { id: this.user_id }, + relations: ["guild", "guild.channels"], + }), + Recipient.find({ + where: { user_id: this.user_id, closed: false }, + relations: ["channel"], + }), + Relationship.find({ where: { + from_id: this.user_id, + type: RelationshipType.friends, + } }), + ]); + + const guilds = members.map((x) => x.guild); + const dm_channels = recipients.map((x) => x.channel); + + const opts: { acknowledge: boolean; channel?: AMQChannel } = { + acknowledge: true, + }; + this.listen_options = opts; + const consumer = consume.bind(this); + + if (RabbitMQ.connection) { + opts.channel = await RabbitMQ.connection.createChannel(); + // @ts-ignore + opts.channel.queues = {}; + } + + this.events[this.user_id] = await listenEvent(this.user_id, consumer, opts); + + relationships.forEach(async (relationship) => { + this.events[relationship.to_id] = await listenEvent( + relationship.to_id, + handlePresenceUpdate.bind(this), + opts + ); + }); + + dm_channels.forEach(async (channel) => { + this.events[channel.id] = await listenEvent(channel.id, consumer, opts); + }); + + guilds.forEach(async (guild) => { + const permission = await getPermission(this.user_id, guild.id); + this.permissions[guild.id] = permission; + this.events[guild.id] = await listenEvent(guild.id, consumer, opts); + + guild.channels.forEach(async (channel) => { + if ( + permission + .overwriteChannel(channel.permission_overwrites!) + .has("VIEW_CHANNEL") + ) { + this.events[channel.id] = await listenEvent( + channel.id, + consumer, + opts + ); + } + }); + }); + + this.once("close", () => { + if (opts.channel) opts.channel.close(); + else { + Object.values(this.events).forEach((x) => x()); + Object.values(this.member_events).forEach((x) => x()); + } + }); +} + +// TODO: only subscribe for events that are in the connection intents +async function consume(this: WebSocket, opts: EventOpts) { + const { data, event } = opts; + let id = data.id as string; + const permission = this.permissions[id] || new Permissions("ADMINISTRATOR"); // default permission for dm + + const consumer = consume.bind(this); + const listenOpts = opts as ListenEventOpts; + opts.acknowledge?.(); + // console.log("event", event); + + // subscription managment + switch (event) { + case "GUILD_MEMBER_REMOVE": + this.member_events[data.user.id]?.(); + delete this.member_events[data.user.id]; + case "GUILD_MEMBER_ADD": + if (this.member_events[data.user.id]) break; // already subscribed + this.member_events[data.user.id] = await listenEvent( + data.user.id, + handlePresenceUpdate.bind(this), + this.listen_options + ); + break; + case "GUILD_MEMBER_REMOVE": + if (!this.member_events[data.user.id]) break; + this.member_events[data.user.id](); + break; + case "RELATIONSHIP_REMOVE": + case "CHANNEL_DELETE": + case "GUILD_DELETE": + delete this.events[id]; + opts.cancel(); + break; + case "CHANNEL_CREATE": + if ( + !permission + .overwriteChannel(data.permission_overwrites) + .has("VIEW_CHANNEL") + ) { + return; + } + this.events[id] = await listenEvent(id, consumer, listenOpts); + break; + case "RELATIONSHIP_ADD": + this.events[data.user.id] = await listenEvent( + data.user.id, + handlePresenceUpdate.bind(this), + this.listen_options + ); + break; + case "GUILD_CREATE": + this.events[id] = await listenEvent(id, consumer, listenOpts); + break; + case "CHANNEL_UPDATE": + const exists = this.events[id]; + // @ts-ignore + if ( + permission + .overwriteChannel(data.permission_overwrites) + .has("VIEW_CHANNEL") + ) { + if (exists) break; + this.events[id] = await listenEvent(id, consumer, listenOpts); + } else { + if (!exists) return; // return -> do not send channel update events for hidden channels + opts.cancel(id); + delete this.events[id]; + } + break; + } + + // permission checking + switch (event) { + case "INVITE_CREATE": + case "INVITE_DELETE": + case "GUILD_INTEGRATIONS_UPDATE": + if (!permission.has("MANAGE_GUILD")) return; + break; + case "WEBHOOKS_UPDATE": + if (!permission.has("MANAGE_WEBHOOKS")) return; + break; + case "GUILD_MEMBER_ADD": + case "GUILD_MEMBER_REMOVE": + case "GUILD_MEMBER_UPDATE": + // only send them, if the user subscribed for this part of the member list, or is a bot + case "PRESENCE_UPDATE": // exception if user is friend + break; + case "GUILD_BAN_ADD": + case "GUILD_BAN_REMOVE": + if (!permission.has("BAN_MEMBERS")) break; + break; + case "VOICE_STATE_UPDATE": + case "MESSAGE_CREATE": + case "MESSAGE_DELETE": + case "MESSAGE_DELETE_BULK": + case "MESSAGE_UPDATE": + case "CHANNEL_PINS_UPDATE": + case "MESSAGE_REACTION_ADD": + case "MESSAGE_REACTION_REMOVE": + case "MESSAGE_REACTION_REMOVE_ALL": + case "MESSAGE_REACTION_REMOVE_EMOJI": + case "TYPING_START": + // only gets send if the user is alowed to view the current channel + if (!permission.has("VIEW_CHANNEL")) return; + break; + case "GUILD_CREATE": + case "GUILD_DELETE": + case "GUILD_UPDATE": + case "GUILD_ROLE_CREATE": + case "GUILD_ROLE_UPDATE": + case "GUILD_ROLE_DELETE": + case "CHANNEL_CREATE": + case "CHANNEL_DELETE": + case "CHANNEL_UPDATE": + case "GUILD_EMOJIS_UPDATE": + case "READY": // will be sent by the gateway + case "USER_UPDATE": + case "APPLICATION_COMMAND_CREATE": + case "APPLICATION_COMMAND_DELETE": + case "APPLICATION_COMMAND_UPDATE": + default: + // always gets sent + // Any events not defined in an intent are considered "passthrough" and will always be sent + break; + } + + Send(this, { + op: OPCODES.Dispatch, + t: event, + d: data, + s: this.sequence++, + }); +} diff --git a/src/gateway/opcodes/Heartbeat.ts b/src/gateway/opcodes/Heartbeat.ts new file mode 100644 index 00000000..42b72d4b --- /dev/null +++ b/src/gateway/opcodes/Heartbeat.ts @@ -0,0 +1,11 @@ +import { Payload, WebSocket } from "@fosscord/gateway"; +import { setHeartbeat } from "../util/Heartbeat"; +import { Send } from "../util/Send"; + +export async function onHeartbeat(this: WebSocket, _data: Payload) { + // TODO: validate payload + + setHeartbeat(this); + + await Send(this, { op: 11 }); +} diff --git a/src/gateway/opcodes/Identify.ts b/src/gateway/opcodes/Identify.ts new file mode 100644 index 00000000..4f17ab70 --- /dev/null +++ b/src/gateway/opcodes/Identify.ts @@ -0,0 +1,298 @@ +import { WebSocket, Payload } from "@fosscord/gateway"; +import { + checkToken, + Intents, + Member, + ReadyEventData, + User, + Session, + EVENTEnum, + Config, + PublicMember, + PublicUser, + PrivateUserProjection, + ReadState, + Application, + emitEvent, + SessionsReplace, + PrivateSessionProjection, + MemberPrivateProjection, + PresenceUpdateEvent, + UserSettings, + IdentifySchema, +} from "@fosscord/util"; +import { Send } from "../util/Send"; +import { CLOSECODES, OPCODES } from "../util/Constants"; +import { genSessionId } from "../util/SessionUtils"; +import { setupListener } from "../listener/listener"; +// import experiments from "./experiments.json"; +const experiments: any = []; +import { check } from "./instanceOf"; +import { Recipient } from "@fosscord/util"; +import { OrmUtils } from "@fosscord/util"; + +// TODO: user sharding +// TODO: check privileged intents, if defined in the config +// TODO: check if already identified + +export async function onIdentify(this: WebSocket, data: Payload) { + clearTimeout(this.readyTimeout); + check.call(this, IdentifySchema, data.d); + + const identify: IdentifySchema = data.d; + + try { + const { jwtSecret } = Config.get().security; + var { decoded } = await checkToken(identify.token, jwtSecret); // will throw an error if invalid + } catch (error) { + console.error("invalid token", error); + return this.close(CLOSECODES.Authentication_failed); + } + this.user_id = decoded.id; + + const session_id = genSessionId(); + this.session_id = session_id; //Set the session of the WebSocket object + + const [user, read_states, members, recipients, session, application] = + await Promise.all([ + User.findOneOrFail({ + where: { id: this.user_id }, + relations: ["relationships", "relationships.to", "settings"], + select: [...PrivateUserProjection, "relationships"], + }), + ReadState.find({ where: { user_id: this.user_id } }), + Member.find({ + where: { id: this.user_id }, + select: MemberPrivateProjection, + relations: [ + "guild", + "guild.channels", + "guild.emojis", + "guild.emojis.user", + "guild.roles", + "guild.stickers", + "user", + "roles", + ], + }), + Recipient.find({ + where: { user_id: this.user_id, closed: false }, + relations: [ + "channel", + "channel.recipients", + "channel.recipients.user", + ], + // TODO: public user selection + }), + // save the session and delete it when the websocket is closed + await OrmUtils.mergeDeep(new Session(), { + user_id: this.user_id, + session_id: session_id, + // TODO: check if status is only one of: online, dnd, offline, idle + status: identify.presence?.status || "offline", //does the session always start as online? + client_info: { + //TODO read from identity + client: "desktop", + os: identify.properties?.os, + version: 0, + }, + activities: [], + }).save(), + Application.findOne({ where: { id: this.user_id } }), + ]); + + if (!user) return this.close(CLOSECODES.Authentication_failed); + if (!user.settings) { //settings may not exist after updating... + user.settings = new UserSettings(); + user.settings.id = user.id; + await user.settings.save(); + } + + if (!identify.intents) identify.intents = "0x6ffffffff" + this.intents = new Intents(identify.intents); + if (identify.shard) { + this.shard_id = identify.shard[0]; + this.shard_count = identify.shard[1]; + if ( + this.shard_count == null || + this.shard_id == null || + this.shard_id >= this.shard_count || + this.shard_id < 0 || + this.shard_count <= 0 + ) { + console.log(identify.shard); + return this.close(CLOSECODES.Invalid_shard); + } + } + let users: PublicUser[] = []; + + const merged_members = members.map((x: Member) => { + return [ + { + ...x, + roles: x.roles.map((x) => x.id), + settings: undefined, + guild: undefined, + }, + ]; + }) as PublicMember[][]; + let guilds = members.map((x) => ({ ...x.guild, joined_at: x.joined_at })); + + // @ts-ignore + guilds = guilds.map((guild) => { + if (user.bot) { + setTimeout(() => { + Send(this, { + op: OPCODES.Dispatch, + t: EVENTEnum.GuildCreate, + s: this.sequence++, + d: guild, + }); + }, 500); + return { id: guild.id, unavailable: true }; + } + + return guild; + }); + + const user_guild_settings_entries = members.map((x) => x.settings); + + const channels = recipients.map((x) => { + // @ts-ignore + x.channel.recipients = x.channel.recipients?.map((x) => x.user); + //TODO is this needed? check if users in group dm that are not friends are sent in the READY event + users = users.concat(x.channel.recipients as unknown as User[]); + if (x.channel.isDm()) { + x.channel.recipients = x.channel.recipients!.filter( + (x) => x.id !== this.user_id + ); + } + return x.channel; + }); + + for (let relation of user.relationships) { + const related_user = relation.to; + const public_related_user = { + username: related_user.username, + discriminator: related_user.discriminator, + id: related_user.id, + public_flags: related_user.public_flags, + avatar: related_user.avatar, + bot: related_user.bot, + bio: related_user.bio, + premium_since: user.premium_since + }; + users.push(public_related_user); + } + + setImmediate(async () => { + // run in seperate "promise context" because ready payload is not dependent on those events + emitEvent({ + event: "SESSIONS_REPLACE", + user_id: this.user_id, + data: await Session.find({ + where: { user_id: this.user_id }, + select: PrivateSessionProjection, + }), + } as SessionsReplace); + emitEvent({ + event: "PRESENCE_UPDATE", + user_id: this.user_id, + data: { + user: await User.getPublicUser(this.user_id), + activities: session.activities, + client_status: session?.client_info, + status: session.status, + }, + } as PresenceUpdateEvent); + }); + + read_states.forEach((s: any) => { + s.id = s.channel_id; + delete s.user_id; + delete s.channel_id; + }); + + const privateUser = { + avatar: user.avatar, + mobile: user.mobile, + desktop: user.desktop, + discriminator: user.discriminator, + email: user.email, + flags: user.flags, + id: user.id, + mfa_enabled: user.mfa_enabled, + nsfw_allowed: user.nsfw_allowed, + phone: user.phone, + premium: user.premium, + premium_type: user.premium_type, + public_flags: user.public_flags, + username: user.username, + verified: user.verified, + bot: user.bot, + accent_color: user.accent_color || 0, + banner: user.banner, + bio: user.bio, + premium_since: user.premium_since + }; + + const d: ReadyEventData = { + v: 8, + application: {id: application?.id??'', flags: application?.flags??''}, //TODO: check this code! + user: privateUser, + user_settings: user.settings, + // @ts-ignore + guilds: guilds.map((x) => { + // @ts-ignore + x.guild_hashes = {}; // @ts-ignore + x.guild_scheduled_events = []; // @ts-ignore + x.threads = []; + return x; + }), + guild_experiments: [], // TODO + geo_ordered_rtc_regions: [], // TODO + relationships: user.relationships.map((x) => x.toPublicRelationship()), + read_state: { + entries: read_states, + partial: false, + version: 304128, + }, + user_guild_settings: { + entries: user_guild_settings_entries, + partial: false, // TODO partial + version: 642, + }, + private_channels: channels, + session_id: session_id, + analytics_token: "", // TODO + connected_accounts: [], // TODO + consents: { + personalization: { + consented: false, // TODO + }, + }, + country_code: user.settings.locale, + friend_suggestion_count: 0, // TODO + // @ts-ignore + experiments: experiments, // TODO + guild_join_requests: [], // TODO what is this? + users: users.filter((x) => x).unique(), + merged_members: merged_members, + // shard // TODO: only for user sharding + }; + + // TODO: send real proper data structure + await Send(this, { + op: OPCODES.Dispatch, + t: EVENTEnum.Ready, + s: this.sequence++, + d, + }); + + //TODO send READY_SUPPLEMENTAL + //TODO send GUILD_MEMBER_LIST_UPDATE + //TODO send SESSIONS_REPLACE + //TODO send VOICE_STATE_UPDATE to let the client know if another device is already connected to a voice channel + + await setupListener.call(this); +} diff --git a/src/gateway/opcodes/LazyRequest.ts b/src/gateway/opcodes/LazyRequest.ts new file mode 100644 index 00000000..74996f5b --- /dev/null +++ b/src/gateway/opcodes/LazyRequest.ts @@ -0,0 +1,173 @@ +import { getPermission, listenEvent, Member, Role, getOrInitialiseDatabase, LazyRequest } from "@fosscord/util"; +import { Send } from "../util/Send"; +import { OPCODES } from "../util/Constants"; +import { WebSocket, Payload, handlePresenceUpdate } from "@fosscord/gateway"; +import { check } from "./instanceOf"; +import { getRepository } from "typeorm"; + +// TODO: only show roles/members that have access to this channel +// TODO: config: to list all members (even those who are offline) sorted by role, or just those who are online +// TODO: rewrite typeorm + +async function getMembers(guild_id: string, range: [number, number]) { + if (!Array.isArray(range) || range.length !== 2) { + throw new Error("range is not a valid array"); + } + // TODO: wait for typeorm to implement ordering for .find queries https://github.com/typeorm/typeorm/issues/2620 + // TODO: rewrite this, released in 0.3.0 + + let members: Member[] = await (await getOrInitialiseDatabase()).getRepository(Member) + .createQueryBuilder("member") + .where("member.guild_id = :guild_id", { guild_id }) + .leftJoinAndSelect("member.roles", "role") + .leftJoinAndSelect("member.user", "user") + .leftJoinAndSelect("user.sessions", "session") + .addSelect( + "CASE WHEN session.status = 'offline' THEN 0 ELSE 1 END", + "_status" + ) + .orderBy("role.position", "DESC") + .addOrderBy("_status", "DESC") + .addOrderBy("user.username", "ASC") + .offset(Number(range[0]) || 0) + .limit(Number(range[1]) || 100) + .getMany(); + + const groups = [] as any[]; + const items = []; + const member_roles = members + .map((m) => m.roles) + .flat() + .unique((r: Role) => r.id); + + const offlineItems = []; + + for (const role of member_roles) { + // @ts-ignore + const [role_members, other_members] = partition(members, (m: Member) => + m.roles.find((r) => r.id === role.id) + ); + const group = { + count: role_members.length, + id: role.id === guild_id ? "online" : role.id, + }; + + items.push({ group }); + groups.push(group); + + for (const member of role_members) { + const roles = member.roles + .filter((x: Role) => x.id !== guild_id) + .map((x: Role) => x.id); + + const session = member.user.sessions.first(); + + // TODO: properly mock/hide offline/invisible status + const item = { + member: { + ...member, + roles, + user: { ...member.user, sessions: undefined }, + presence: { + ...session, + activities: session?.activities || [], + user: { id: member.user.id }, + }, + }, + } + + if (!member?.user?.sessions || !member.user.sessions.length) { + offlineItems.push(item); + group.count--; + continue; + } + + items.push(item); + } + members = other_members; + } + + if (offlineItems.length) { + const group = { + count: offlineItems.length, + id: "offline", + }; + items.push({ group }); + groups.push(group); + + items.push(...offlineItems); + } + + return { + items, + groups, + range, + members: items.map((x) => 'member' in x ? x.member : undefined).filter(x => !!x), + }; +} + +export async function onLazyRequest(this: WebSocket, { d }: Payload) { + // TODO: check data + check.call(this, LazyRequest, d); + const { guild_id, typing, channels, activities } = d as LazyRequest; + + const channel_id = Object.keys(channels || {}).first(); + if (!channel_id) return; + + const permissions = await getPermission(this.user_id, guild_id, channel_id); + permissions.hasThrow("VIEW_CHANNEL"); + + const ranges = channels![channel_id]; + if (!Array.isArray(ranges)) throw new Error("Not a valid Array"); + + const member_count = await Member.count({ where: { guild_id } }); + const ops = await Promise.all(ranges.map((x) => getMembers(guild_id, x))); + + // TODO: unsubscribe member_events that are not in op.members + + ops.forEach((op) => { + op.members.forEach(async (member) => { + if (this.events[member.user.id]) return; // already subscribed as friend + if (this.member_events[member.user.id]) return; // already subscribed in member list + this.member_events[member.user.id] = await listenEvent( + member.user.id, + handlePresenceUpdate.bind(this), + this.listen_options + ); + }); + }); + + return Send(this, { + op: OPCODES.Dispatch, + s: this.sequence++, + t: "GUILD_MEMBER_LIST_UPDATE", + d: { + ops: ops.map((x) => ({ + items: x.items, + op: "SYNC", + range: x.range, + })), + online_count: member_count, + member_count, + id: "everyone", + guild_id, + groups: ops + .map((x) => x.groups) + .flat() + .unique(), + }, + }); +} + +function partition(array: T[], isValid: Function) { + // @ts-ignore + return array.reduce( + // @ts-ignore + ([pass, fail], elem) => { + return isValid(elem) + ? [[...pass, elem], fail] + : [pass, [...fail, elem]]; + }, + [[], []] + ); +} diff --git a/src/gateway/opcodes/PresenceUpdate.ts b/src/gateway/opcodes/PresenceUpdate.ts new file mode 100644 index 00000000..f31c9161 --- /dev/null +++ b/src/gateway/opcodes/PresenceUpdate.ts @@ -0,0 +1,24 @@ +import { WebSocket, Payload } from "@fosscord/gateway"; +import { ActivitySchema, emitEvent, PresenceUpdateEvent, Session, User } from "@fosscord/util"; +import { check } from "./instanceOf"; + +export async function onPresenceUpdate(this: WebSocket, { d }: Payload) { + check.call(this, ActivitySchema, d); + const presence = d as ActivitySchema; + + await Session.update( + { session_id: this.session_id }, + { status: presence.status, activities: presence.activities } + ); + + await emitEvent({ + event: "PRESENCE_UPDATE", + user_id: this.user_id, + data: { + user: await User.getPublicUser(this.user_id), + activities: presence.activities, + client_status: {}, // TODO: + status: presence.status, + }, + } as PresenceUpdateEvent); +} diff --git a/src/gateway/opcodes/RequestGuildMembers.ts b/src/gateway/opcodes/RequestGuildMembers.ts new file mode 100644 index 00000000..b80721dc --- /dev/null +++ b/src/gateway/opcodes/RequestGuildMembers.ts @@ -0,0 +1,5 @@ +import { Payload, WebSocket } from "@fosscord/gateway"; + +export function onRequestGuildMembers(this: WebSocket, data: Payload) { + // return this.close(CLOSECODES.Unknown_error); +} diff --git a/src/gateway/opcodes/Resume.ts b/src/gateway/opcodes/Resume.ts new file mode 100644 index 00000000..42dc586d --- /dev/null +++ b/src/gateway/opcodes/Resume.ts @@ -0,0 +1,12 @@ +import { WebSocket, Payload } from "@fosscord/gateway"; +import { Send } from "../util/Send"; + +export async function onResume(this: WebSocket, data: Payload) { + console.log("Got Resume -> cancel not implemented"); + await Send(this, { + op: 9, + d: false, + }); + + // return this.close(CLOSECODES.Invalid_session); +} diff --git a/src/gateway/opcodes/VoiceStateUpdate.ts b/src/gateway/opcodes/VoiceStateUpdate.ts new file mode 100644 index 00000000..c4297a68 --- /dev/null +++ b/src/gateway/opcodes/VoiceStateUpdate.ts @@ -0,0 +1,116 @@ +import { Payload, WebSocket } from "@fosscord/gateway"; +import { genVoiceToken } from "../util/SessionUtils"; +import { check } from "./instanceOf"; +import { + Config, + emitEvent, + Guild, + Member, + VoiceServerUpdateEvent, + VoiceState, + VoiceStateUpdateEvent, + VoiceStateUpdateSchema, +} from "@fosscord/util"; +import { OrmUtils } from "@fosscord/util"; +import { Region } from "@fosscord/util"; +// TODO: check if a voice server is setup +// Notice: Bot users respect the voice channel's user limit, if set. When the voice channel is full, you will not receive the Voice State Update or Voice Server Update events in response to your own Voice State Update. Having MANAGE_CHANNELS permission bypasses this limit and allows you to join regardless of the channel being full or not. + +export async function onVoiceStateUpdate(this: WebSocket, data: Payload) { + check.call(this, VoiceStateUpdateSchema, data.d); + const body = data.d as VoiceStateUpdateSchema; + + if(body.guild_id == null) { + console.log(`[Gateway] VoiceStateUpdate called with guild_id == null by user ${this.user_id}!`); + return; + } + + let voiceState: VoiceState; + try { + voiceState = await VoiceState.findOneOrFail({ + where: { user_id: this.user_id }, + }); + if ( + voiceState.session_id !== this.session_id && + body.channel_id === null + ) { + //Should we also check guild_id === null? + //changing deaf or mute on a client that's not the one with the same session of the voicestate in the database should be ignored + return; + } + + //If a user change voice channel between guild we should send a left event first + if ( + voiceState.guild_id !== body.guild_id && + voiceState.session_id === this.session_id + ) { + await emitEvent({ + event: "VOICE_STATE_UPDATE", + data: { ...voiceState, channel_id: null }, + guild_id: voiceState.guild_id, + }); + } + + //The event send by Discord's client on channel leave has both guild_id and channel_id as null + if (body.guild_id === null) body.guild_id = voiceState.guild_id; + voiceState = OrmUtils.mergeDeep(voiceState, body); + } catch (error) { + voiceState = OrmUtils.mergeDeep(new VoiceState(), { + ...body, + user_id: this.user_id, + deaf: false, + mute: false, + suppress: false, + }); + } + + //TODO the member should only have these properties: hoisted_role, deaf, joined_at, mute, roles, user + //TODO the member.user should only have these properties: avatar, discriminator, id, username + //TODO this may fail + voiceState.member = await Member.findOneOrFail({ + where: { id: voiceState.user_id, guild_id: voiceState.guild_id }, + relations: ["user", "roles"], + }); + + //If the session changed we generate a new token + if (voiceState.session_id !== this.session_id) + voiceState.token = genVoiceToken(); + voiceState.session_id = this.session_id; + + const { id, ...newObj } = voiceState; + + await Promise.all([ + voiceState.save(), + emitEvent({ + event: "VOICE_STATE_UPDATE", + data: newObj, + guild_id: voiceState.guild_id, + } as VoiceStateUpdateEvent), + ]); + + //If it's null it means that we are leaving the channel and this event is not needed + if (voiceState.channel_id !== null) { + const guild = await Guild.findOne({ where: { id: voiceState.guild_id } }); + const regions = Config.get().regions; + let guildRegion: Region; + if (guild && guild.region) { + guildRegion = regions.available.filter( + (r) => r.id === guild.region + )[0]; + } else { + guildRegion = regions.available.filter( + (r) => r.id === regions.default + )[0]; + } + + await emitEvent({ + event: "VOICE_SERVER_UPDATE", + data: { + token: voiceState.token, + guild_id: voiceState.guild_id, + endpoint: guildRegion.endpoint, + }, + guild_id: voiceState.guild_id, + } as VoiceServerUpdateEvent); + } +} diff --git a/src/gateway/opcodes/experiments.json b/src/gateway/opcodes/experiments.json new file mode 100644 index 00000000..0370b5da --- /dev/null +++ b/src/gateway/opcodes/experiments.json @@ -0,0 +1,76 @@ +[ + [4047587481, 0, 0, -1, 0], + [1509401575, 0, 1, -1, 0], + [1865079242, 0, 1, -1, 0], + [1962538549, 1, 0, -1, 0], + [3816091942, 3, 2, -1, 0], + [4130837190, 0, 10, -1, 0], + [1861568052, 0, 1, -1, 0], + [2290910058, 6, 2, -1, 0], + [1578940118, 1, 1, -1, 0], + [1571676964, 0, 1, -1, 2], + [3640172371, 0, 2, -1, 2], + [1658164312, 2, 1, -1, 0], + [98883956, 1, 1, -1, 0], + [3114091169, 0, 1, -1, 0], + [2570684145, 4, 1, -1, 2], + [4007615411, 0, 1, -1, 0], + [3665310159, 2, 1, -1, 1], + [852550504, 3, 1, -1, 0], + [2333572067, 0, 1, -1, 0], + [935994771, 1, 1, -1, 0], + [1127795596, 1, 1, -1, 0], + [4168223991, 0, 1, -1, 0], + [18585280, 0, 1, -1, 1], + [327482016, 0, 1, -1, 2], + [3458098201, 7, 1, -1, 0], + [478613943, 2, 1, -1, 1], + [2792197902, 0, 1, -1, 2], + [284670956, 0, 1, -1, 0], + [2099185390, 0, 1, -1, 0], + [1202202685, 0, 1, -1, 0], + [2122174751, 0, 1, -1, 0], + [3633864632, 0, 1, -1, 0], + [3103053065, 0, 1, -1, 0], + [820624960, 0, 1, -1, 0], + [1134479292, 0, 1, -1, 0], + [2511257455, 3, 1, -1, 3], + [2599708267, 0, 1, -1, 0], + [613180822, 1, 1, -1, 0], + [2885186814, 0, 1, -1, 0], + [221503477, 0, 1, -1, 0], + [1054317075, 0, 1, -1, 3], + [683872522, 0, 1, -1, 1], + [1739278764, 0, 2, -1, 0], + [2855249023, 0, 1, -1, 0], + [3721841948, 0, 1, -1, 0], + [1285203515, 0, 1, -1, 0], + [1365487849, 6, 1, -1, 0], + [955229746, 0, 1, -1, 0], + [3128009767, 0, 10, -1, 0], + [441885003, 0, 1, -1, 0], + [3433971238, 0, 1, -1, 2], + [1038765354, 3, 1, -1, 0], + [1174347196, 0, 1, -1, 0], + [3649806352, 1, 1, -1, 0], + [2973729510, 2, 1, -1, 0], + [2571931329, 1, 6, -1, 0], + [3884442008, 0, 1, -1, 0], + [978673395, 1, 1, -1, 0], + [4050927174, 0, 1, -1, 0], + [1260103069, 0, 1, -1, 0], + [4168894280, 0, 1, -1, 0], + [4045587091, 0, 1, -1, 0], + [2003494159, 1, 1, -1, 0], + [51193042, 0, 1, -1, 0], + [2634540382, 3, 1, -1, 0], + [886364171, 0, 1, -1, 0], + [3898604944, 0, 1, -1, 0], + [3388129398, 0, 1, -1, 0], + [3964382884, 2, 1, -1, 1], + [3305874255, 0, 1, -1, 0], + [156590431, 0, 1, -1, 0], + [3106485751, 0, 0, -1, 0], + [3035674767, 0, 1, -1, 0], + [851697110, 0, 1, -1, 0] +] diff --git a/src/gateway/opcodes/index.ts b/src/gateway/opcodes/index.ts new file mode 100644 index 00000000..027739db --- /dev/null +++ b/src/gateway/opcodes/index.ts @@ -0,0 +1,25 @@ +import { WebSocket, Payload } from "@fosscord/gateway"; +import { onHeartbeat } from "./Heartbeat"; +import { onIdentify } from "./Identify"; +import { onLazyRequest } from "./LazyRequest"; +import { onPresenceUpdate } from "./PresenceUpdate"; +import { onRequestGuildMembers } from "./RequestGuildMembers"; +import { onResume } from "./Resume"; +import { onVoiceStateUpdate } from "./VoiceStateUpdate"; + +export type OPCodeHandler = (this: WebSocket, data: Payload) => any; + +export default { + 1: onHeartbeat, + 2: onIdentify, + 3: onPresenceUpdate, + 4: onVoiceStateUpdate, + // 5: Voice Server Ping + 6: onResume, + // 7: Reconnect: You should attempt to reconnect and resume immediately. + 8: onRequestGuildMembers, + // 9: Invalid Session + // 10: Hello + // 13: Dm_update + 14: onLazyRequest, +}; diff --git a/src/gateway/opcodes/instanceOf.ts b/src/gateway/opcodes/instanceOf.ts new file mode 100644 index 00000000..eb6f6ea1 --- /dev/null +++ b/src/gateway/opcodes/instanceOf.ts @@ -0,0 +1,18 @@ +import { instanceOf } from "@fosscord/util"; +import { WebSocket } from "@fosscord/gateway"; +import { CLOSECODES } from "../util/Constants"; + +export function check(this: WebSocket, schema: any, data: any) { + try { + const error = instanceOf(schema, data, { path: "body" }); + if (error !== true) { + throw error; + } + return true; + } catch (error) { + console.error(error); + // invalid payload + this.close(CLOSECODES.Decode_error); + throw error; + } +} diff --git a/src/gateway/start.ts b/src/gateway/start.ts new file mode 100644 index 00000000..2000522a --- /dev/null +++ b/src/gateway/start.ts @@ -0,0 +1,14 @@ +process.on("uncaughtException", console.error); +process.on("unhandledRejection", console.error); + +import { Server } from "./Server"; +import { config } from "dotenv"; +config(); + +let port = Number(process.env.PORT); +if (isNaN(port)) port = 3002; + +const server = new Server({ + port, +}); +server.start(); diff --git a/src/gateway/util/Constants.ts b/src/gateway/util/Constants.ts new file mode 100644 index 00000000..692f9028 --- /dev/null +++ b/src/gateway/util/Constants.ts @@ -0,0 +1,50 @@ +export enum OPCODES { + Dispatch = 0, + Heartbeat = 1, + Identify = 2, + Presence_Update = 3, + Voice_State_Update = 4, + Voice_Server_Ping = 5, // ? What is opcode 5? + Resume = 6, + Reconnect = 7, + Request_Guild_Members = 8, + Invalid_Session = 9, + Hello = 10, + Heartbeat_ACK = 11, + Guild_Sync = 12, + DM_Update = 13, + Lazy_Request = 14, + Lobby_Connect = 15, + Lobby_Disconnect = 16, + Lobby_Voice_States_Update = 17, + Stream_Create = 18, + Stream_Delete = 19, + Stream_Watch = 20, + Stream_Ping = 21, + Stream_Set_Paused = 22, + Request_Application_Commands = 24, +} +export enum CLOSECODES { + Unknown_error = 4000, + Unknown_opcode, + Decode_error, + Not_authenticated, + Authentication_failed, + Already_authenticated, + Invalid_session, + Invalid_seq, + Rate_limited, + Session_timed_out, + Invalid_shard, + Sharding_required, + Invalid_API_version, + Invalid_intent, + Disallowed_intent, +} + +export interface Payload { + op: OPCODES; + d?: any; + s?: number; + t?: string; +} diff --git a/src/gateway/util/Heartbeat.ts b/src/gateway/util/Heartbeat.ts new file mode 100644 index 00000000..f6871cfe --- /dev/null +++ b/src/gateway/util/Heartbeat.ts @@ -0,0 +1,11 @@ +import { CLOSECODES } from "./Constants"; +import { WebSocket } from "./WebSocket"; + +// TODO: make heartbeat timeout configurable +export function setHeartbeat(socket: WebSocket) { + if (socket.heartbeatTimeout) clearTimeout(socket.heartbeatTimeout); + + socket.heartbeatTimeout = setTimeout(() => { + return socket.close(CLOSECODES.Session_timed_out); + }, 1000 * 45); +} diff --git a/src/gateway/util/Send.ts b/src/gateway/util/Send.ts new file mode 100644 index 00000000..2a28d8e0 --- /dev/null +++ b/src/gateway/util/Send.ts @@ -0,0 +1,33 @@ +let erlpack: any; +try { + erlpack = require("@yukikaze-bot/erlpack"); +} catch (error) { + console.log("Missing @yukikaze-bot/erlpack, electron-based desktop clients designed for discord.com will not be able to connect!"); +} +import { Payload, WebSocket } from "@fosscord/gateway"; + +export async function Send(socket: WebSocket, data: Payload) { + if(process.env.WS_VERBOSE) + console.log(`[Websocket] Outgoing message: ${JSON.stringify(data)}`); + let buffer: Buffer | string; + if (socket.encoding === "etf") buffer = erlpack.pack(data); + // TODO: encode circular object + else if (socket.encoding === "json") buffer = JSON.stringify(data); + else return; + // TODO: compression + if (socket.deflate) { + socket.deflate.write(buffer); + socket.deflate.flush(); + return; + } + + return new Promise((res, rej) => { + if (socket.readyState !== 1) { + return rej("socket not open"); + } + socket.send(buffer, (err: any) => { + if (err) return rej(err); + return res(null); + }); + }); +} diff --git a/src/gateway/util/SessionUtils.ts b/src/gateway/util/SessionUtils.ts new file mode 100644 index 00000000..bf854042 --- /dev/null +++ b/src/gateway/util/SessionUtils.ts @@ -0,0 +1,13 @@ +export function genSessionId() { + return genRanHex(32); +} + +export function genVoiceToken() { + return genRanHex(16); +} + +function genRanHex(size: number) { + return [...Array(size)] + .map(() => Math.floor(Math.random() * 16).toString(16)) + .join(""); +} diff --git a/src/gateway/util/WebSocket.ts b/src/gateway/util/WebSocket.ts new file mode 100644 index 00000000..9496da85 --- /dev/null +++ b/src/gateway/util/WebSocket.ts @@ -0,0 +1,22 @@ +import { Intents, Permissions } from "@fosscord/util"; +import WS from "ws"; +import { Deflate } from "zlib"; + +export interface WebSocket extends WS { + version: number; + user_id: string; + session_id: string; + encoding: "etf" | "json"; + compress?: "zlib-stream"; + shard_count?: number; + shard_id?: number; + deflate?: Deflate; + heartbeatTimeout: NodeJS.Timeout; + readyTimeout: NodeJS.Timeout; + intents: Intents; + sequence: number; + permissions: Record; + events: Record; + member_events: Record; + listen_options: any; +} diff --git a/src/gateway/util/index.ts b/src/gateway/util/index.ts new file mode 100644 index 00000000..0be5ecee --- /dev/null +++ b/src/gateway/util/index.ts @@ -0,0 +1,5 @@ +export * from "./Constants"; +export * from "./Send"; +export * from "./SessionUtils"; +export * from "./Heartbeat"; +export * from "./WebSocket"; diff --git a/src/start.ts b/src/start.ts new file mode 100644 index 00000000..a20581c3 --- /dev/null +++ b/src/start.ts @@ -0,0 +1,97 @@ +// process.env.MONGOMS_DEBUG = "true"; +import "reflect-metadata"; +import cluster, { Worker } from "cluster"; +import os from "os"; +import { red, bold, yellow, cyan } from "picocolors"; +import { initStats } from "./stats"; +import { config } from "dotenv"; +config(); +import { execSync } from "child_process"; + +// TODO: add socket event transmission +let cores = 1; +try { + cores = Number(process.env.THREADS) || os.cpus().length; +} catch { + console.log("[API] Failed to get thread count! Using 1...") +} + +if (cluster.isMaster) { + function getCommitOrFail() { + try { + return execSync("git rev-parse HEAD").toString().trim(); + } catch (e) { + return null; + } + } + const commit = getCommitOrFail(); + + console.log( + bold(` +███████╗ ██████╗ ███████╗███████╗ ██████╗ ██████╗ ██████╗ ██████╗ +██╔════╝██╔═══██╗██╔════╝██╔════╝██╔════╝██╔═══██╗██╔══██╗██╔══██╗ +█████╗ ██║ ██║███████╗███████╗██║ ██║ ██║██████╔╝██║ ██║ +██╔══╝ ██║ ██║╚════██║╚════██║██║ ██║ ██║██╔══██╗██║ ██║ +██║ ╚██████╔╝███████║███████║╚██████╗╚██████╔╝██║ ██║██████╔╝ +╚═╝ ╚═════╝ ╚══════╝╚══════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ + + fosscord-server | ${yellow( + `Pre-release (${ + commit !== null + ? commit.slice(0, 7) + : "Unknown (Git cannot be found)" + })` + )} + +Commit Hash: ${ + commit !== null + ? `${cyan(commit)} (${yellow(commit.slice(0, 7))})` + : "Unknown (Git cannot be found)" + } +Cores: ${cyan(os.cpus().length)} (Using ${cores} thread(s).) +`) + ); + + if (commit == null) { + console.log(yellow(`Warning: Git is not installed or not in PATH.`)); + } + + initStats(); + + console.log(`[Process] starting with ${cores} threads`); + + if (cores === 1) { + require("./Server"); + } else { + process.env.EVENT_TRANSMISSION = "process"; + + // Fork workers. + for (let i = 0; i < cores; i++) { + // Delay each worker start if using sqlite database to prevent locking it + let delay = process.env.DATABASE?.includes("://") ? 0 : i * 1000; + setTimeout(() => { + cluster.fork(); + console.log(`[Process] worker ${cyan(i)} started.`); + }, delay); + } + + cluster.on("message", (sender: Worker, message: any) => { + for (const id in cluster.workers) { + const worker = cluster.workers[id]; + if (worker === sender || !worker) continue; + worker.send(message); + } + }); + + cluster.on("exit", (worker: any, code: any, signal: any) => { + console.log( + `[Worker] ${red( + `died with PID: ${worker.process.pid} , restarting ...` + )}` + ); + cluster.fork(); + }); + } +} else { + require("./Server"); +} diff --git a/src/stats.ts b/src/stats.ts new file mode 100644 index 00000000..654e0a4f --- /dev/null +++ b/src/stats.ts @@ -0,0 +1,24 @@ +import os from "os"; +import { red } from "picocolors"; + +export function initStats() { + + console.log(`[Path] running in ${__dirname}`); + try { + console.log(`[CPU] ${os.cpus()[0].model} Cores x${os.cpus().length}`); + } + catch { + console.log('[CPU] Failed to get cpu model!') + } + + console.log(`[System] ${os.platform()} ${os.arch()}`); + console.log(`[Process] running with PID: ${process.pid}`); + if (process.getuid && process.getuid() === 0) { + console.warn( + red( + `[Process] Warning fosscord is running as root, this highly discouraged and might expose your system vulnerable to attackers. Please run fosscord as a user without root privileges.` + ) + ); + } + +} diff --git a/src/util/config/Config.ts b/src/util/config/Config.ts new file mode 100644 index 00000000..7aee1775 --- /dev/null +++ b/src/util/config/Config.ts @@ -0,0 +1,22 @@ +import { ApiConfiguration, ClientConfiguration, DefaultsConfiguration, EndpointConfiguration, GeneralConfiguration, GifConfiguration, GuildConfiguration, KafkaConfiguration, LimitsConfiguration, LoginConfiguration, MetricsConfiguration, RabbitMQConfiguration, RegionConfiguration, RegisterConfiguration, SecurityConfiguration, SentryConfiguration, TemplateConfiguration } from "."; + +export class ConfigValue { + gateway: EndpointConfiguration = new EndpointConfiguration(); + cdn: EndpointConfiguration = new EndpointConfiguration(); + api: ApiConfiguration = new ApiConfiguration(); + general: GeneralConfiguration = new GeneralConfiguration(); + limits: LimitsConfiguration = new LimitsConfiguration(); + security: SecurityConfiguration = new SecurityConfiguration(); + login: LoginConfiguration = new LoginConfiguration(); + register: RegisterConfiguration = new RegisterConfiguration(); + regions: RegionConfiguration = new RegionConfiguration(); + guild: GuildConfiguration = new GuildConfiguration(); + gif: GifConfiguration = new GifConfiguration(); + rabbitmq: RabbitMQConfiguration = new RabbitMQConfiguration(); + kafka: KafkaConfiguration = new KafkaConfiguration(); + templates: TemplateConfiguration = new TemplateConfiguration(); + client: ClientConfiguration = new ClientConfiguration(); + metrics: MetricsConfiguration = new MetricsConfiguration(); + sentry: SentryConfiguration = new SentryConfiguration(); + defaults: DefaultsConfiguration = new DefaultsConfiguration(); +} \ No newline at end of file diff --git a/src/util/config/index.ts b/src/util/config/index.ts new file mode 100644 index 00000000..0a9b58ae --- /dev/null +++ b/src/util/config/index.ts @@ -0,0 +1,2 @@ +export * from "./Config"; +export * from "./types/index"; diff --git a/src/util/config/types/ApiConfiguration.ts b/src/util/config/types/ApiConfiguration.ts new file mode 100644 index 00000000..16b1efba --- /dev/null +++ b/src/util/config/types/ApiConfiguration.ts @@ -0,0 +1,5 @@ +export class ApiConfiguration { + defaultVersion: string = "9"; + activeVersions: string[] = ["6", "7", "8", "9"]; + useFosscordEnhancements: boolean = true; +} \ No newline at end of file diff --git a/src/util/config/types/ClientConfiguration.ts b/src/util/config/types/ClientConfiguration.ts new file mode 100644 index 00000000..1adda1e2 --- /dev/null +++ b/src/util/config/types/ClientConfiguration.ts @@ -0,0 +1,8 @@ +import { ClientReleaseConfiguration } from "."; + +export class ClientConfiguration { + //classes + releases: ClientReleaseConfiguration = new ClientReleaseConfiguration(); + //base types + useTestClient: boolean = true; +} \ No newline at end of file diff --git a/src/util/config/types/DefaultsConfiguration.ts b/src/util/config/types/DefaultsConfiguration.ts new file mode 100644 index 00000000..9b02a590 --- /dev/null +++ b/src/util/config/types/DefaultsConfiguration.ts @@ -0,0 +1,6 @@ +import { GuildDefaults, UserDefaults } from "."; + +export class DefaultsConfiguration { + guild: GuildDefaults = new GuildDefaults(); + user: UserDefaults = new UserDefaults(); +} \ No newline at end of file diff --git a/src/util/config/types/EndpointConfiguration.ts b/src/util/config/types/EndpointConfiguration.ts new file mode 100644 index 00000000..87baea31 --- /dev/null +++ b/src/util/config/types/EndpointConfiguration.ts @@ -0,0 +1,5 @@ +export class EndpointConfiguration { + endpointClient: string | null = null; + endpointPrivate: string | null = null; + endpointPublic: string | null = null; +} \ No newline at end of file diff --git a/src/util/config/types/GeneralConfiguration.ts b/src/util/config/types/GeneralConfiguration.ts new file mode 100644 index 00000000..55848b44 --- /dev/null +++ b/src/util/config/types/GeneralConfiguration.ts @@ -0,0 +1,12 @@ +import { Snowflake } from "../../util"; + +export class GeneralConfiguration { + instanceName: string = "Fosscord Instance"; + instanceDescription: string | null = "This is a Fosscord instance made in the pre-release days"; + frontPage: string | null = null; + tosPage: string | null = null; + correspondenceEmail: string | null = "noreply@localhost.local"; + correspondenceUserID: string | null = null; + image: string | null = null; + instanceId: string = Snowflake.generate(); +} \ No newline at end of file diff --git a/src/util/config/types/GifConfiguration.ts b/src/util/config/types/GifConfiguration.ts new file mode 100644 index 00000000..6a2d520d --- /dev/null +++ b/src/util/config/types/GifConfiguration.ts @@ -0,0 +1,5 @@ +export class GifConfiguration { + enabled: boolean = true; + provider: "tenor" = "tenor"; // more coming soon + apiKey?: string = "LIVDSRZULELA"; +} \ No newline at end of file diff --git a/src/util/config/types/GuildConfiguration.ts b/src/util/config/types/GuildConfiguration.ts new file mode 100644 index 00000000..3d43b368 --- /dev/null +++ b/src/util/config/types/GuildConfiguration.ts @@ -0,0 +1,6 @@ +import { DiscoveryConfiguration, AutoJoinConfiguration } from "."; + +export class GuildConfiguration { + discovery: DiscoveryConfiguration = new DiscoveryConfiguration(); + autoJoin: AutoJoinConfiguration = new AutoJoinConfiguration(); +} diff --git a/src/util/config/types/KafkaConfiguration.ts b/src/util/config/types/KafkaConfiguration.ts new file mode 100644 index 00000000..7932f49e --- /dev/null +++ b/src/util/config/types/KafkaConfiguration.ts @@ -0,0 +1,5 @@ +import { KafkaBroker } from "."; + +export class KafkaConfiguration { + brokers: KafkaBroker[] | null = null; +} \ No newline at end of file diff --git a/src/util/config/types/LimitConfigurations.ts b/src/util/config/types/LimitConfigurations.ts new file mode 100644 index 00000000..bcc2e7e2 --- /dev/null +++ b/src/util/config/types/LimitConfigurations.ts @@ -0,0 +1,9 @@ +import { ChannelLimits, GuildLimits, MessageLimits, RateLimits, UserLimits } from "."; + +export class LimitsConfiguration { + user: UserLimits = new UserLimits(); + guild: GuildLimits = new GuildLimits(); + message: MessageLimits = new MessageLimits(); + channel: ChannelLimits = new ChannelLimits(); + rate: RateLimits = new RateLimits(); +} \ No newline at end of file diff --git a/src/util/config/types/LoginConfiguration.ts b/src/util/config/types/LoginConfiguration.ts new file mode 100644 index 00000000..255c9451 --- /dev/null +++ b/src/util/config/types/LoginConfiguration.ts @@ -0,0 +1,3 @@ +export class LoginConfiguration { + requireCaptcha: boolean = false; +} \ No newline at end of file diff --git a/src/util/config/types/MetricsConfiguration.ts b/src/util/config/types/MetricsConfiguration.ts new file mode 100644 index 00000000..d7cd4937 --- /dev/null +++ b/src/util/config/types/MetricsConfiguration.ts @@ -0,0 +1,3 @@ +export class MetricsConfiguration { + timeout: number = 30000; +} \ No newline at end of file diff --git a/src/util/config/types/RabbitMQConfiguration.ts b/src/util/config/types/RabbitMQConfiguration.ts new file mode 100644 index 00000000..ce4a9123 --- /dev/null +++ b/src/util/config/types/RabbitMQConfiguration.ts @@ -0,0 +1,3 @@ +export class RabbitMQConfiguration { + host: string | null = null; +} \ No newline at end of file diff --git a/src/util/config/types/RegionConfiguration.ts b/src/util/config/types/RegionConfiguration.ts new file mode 100644 index 00000000..09d9271c --- /dev/null +++ b/src/util/config/types/RegionConfiguration.ts @@ -0,0 +1,16 @@ +import { Region } from "."; + +export class RegionConfiguration { + default: string = "fosscord"; + useDefaultAsOptimal: boolean = true; + available: Region[] = [ + { + id: "fosscord", + name: "Fosscord", + endpoint: "127.0.0.1:3004", + vip: false, + custom: false, + deprecated: false, + }, + ]; +} \ No newline at end of file diff --git a/src/util/config/types/RegisterConfiguration.ts b/src/util/config/types/RegisterConfiguration.ts new file mode 100644 index 00000000..a0dc97c5 --- /dev/null +++ b/src/util/config/types/RegisterConfiguration.ts @@ -0,0 +1,18 @@ +import { DateOfBirthConfiguration, EmailConfiguration, PasswordConfiguration } from "."; + +export class RegisterConfiguration { + //classes + email: EmailConfiguration = new EmailConfiguration(); + dateOfBirth: DateOfBirthConfiguration = new DateOfBirthConfiguration(); + password: PasswordConfiguration = new PasswordConfiguration(); + //base types + disabled: boolean = false; + requireCaptcha: boolean = true; + requireInvite: boolean = false; + guestsRequireInvite: boolean = true; + allowNewRegistration: boolean = true; + allowMultipleAccounts: boolean = true; + blockProxies: boolean = true; + incrementingDiscriminators: boolean = false; // random otherwise + defaultRights: string = "0"; +} diff --git a/src/util/config/types/SecurityConfiguration.ts b/src/util/config/types/SecurityConfiguration.ts new file mode 100644 index 00000000..405b86ac --- /dev/null +++ b/src/util/config/types/SecurityConfiguration.ts @@ -0,0 +1,17 @@ +import crypto from "crypto"; +import { CaptchaConfiguration, TwoFactorConfiguration } from "."; + +export class SecurityConfiguration { + //classes + captcha: CaptchaConfiguration = new CaptchaConfiguration(); + twoFactor: TwoFactorConfiguration = new TwoFactorConfiguration(); + //base types + autoUpdate: boolean | number = true; + requestSignature: string = crypto.randomBytes(32).toString("base64"); + jwtSecret: string = crypto.randomBytes(256).toString("base64"); + // header to get the real user ip address + // X-Forwarded-For for nginx/reverse proxies + // CF-Connecting-IP for cloudflare + forwadedFor: string | null = null; + ipdataApiKey: string | null = "eca677b284b3bac29eb72f5e496aa9047f26543605efe99ff2ce35c9"; +} diff --git a/src/util/config/types/SentryConfiguration.ts b/src/util/config/types/SentryConfiguration.ts new file mode 100644 index 00000000..836094a1 --- /dev/null +++ b/src/util/config/types/SentryConfiguration.ts @@ -0,0 +1,8 @@ +import { hostname } from "os"; + +export class SentryConfiguration { + enabled: boolean = false; + endpoint: string = "https://05e8e3d005f34b7d97e920ae5870a5e5@sentry.thearcanebrony.net/6"; + traceSampleRate: number = 1.0; + environment: string = hostname(); +} \ No newline at end of file diff --git a/src/util/config/types/TemplateConfiguration.ts b/src/util/config/types/TemplateConfiguration.ts new file mode 100644 index 00000000..4a9aa8f2 --- /dev/null +++ b/src/util/config/types/TemplateConfiguration.ts @@ -0,0 +1,6 @@ +export class TemplateConfiguration { + enabled: boolean = true; + allowTemplateCreation: boolean = true; + allowDiscordTemplates: boolean = true; + allowRaws: boolean = true; +} \ No newline at end of file diff --git a/src/util/config/types/index.ts b/src/util/config/types/index.ts new file mode 100644 index 00000000..608503a0 --- /dev/null +++ b/src/util/config/types/index.ts @@ -0,0 +1,18 @@ +export * from "./ApiConfiguration"; +export * from "./ClientConfiguration"; +export * from "./DefaultsConfiguration"; +export * from "./EndpointConfiguration"; +export * from "./GeneralConfiguration"; +export * from "./GifConfiguration"; +export * from "./GuildConfiguration"; +export * from "./KafkaConfiguration"; +export * from "./LimitConfigurations"; +export * from "./LoginConfiguration"; +export * from "./MetricsConfiguration"; +export * from "./RabbitMQConfiguration"; +export * from "./RegionConfiguration"; +export * from "./RegisterConfiguration"; +export * from "./SecurityConfiguration"; +export * from "./SentryConfiguration"; +export * from "./TemplateConfiguration"; +export * from "./subconfigurations/index"; diff --git a/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts b/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts new file mode 100644 index 00000000..54e7f365 --- /dev/null +++ b/src/util/config/types/subconfigurations/client/ClientReleaseConfiguration.ts @@ -0,0 +1,4 @@ +export class ClientReleaseConfiguration { + useLocalRelease: boolean = true; //TODO + upstreamVersion: string = "0.0.264"; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/client/index.ts b/src/util/config/types/subconfigurations/client/index.ts new file mode 100644 index 00000000..96bbb0ca --- /dev/null +++ b/src/util/config/types/subconfigurations/client/index.ts @@ -0,0 +1 @@ +export * from "./ClientReleaseConfiguration"; diff --git a/src/util/config/types/subconfigurations/defaults/GuildDefaults.ts b/src/util/config/types/subconfigurations/defaults/GuildDefaults.ts new file mode 100644 index 00000000..d6ff7697 --- /dev/null +++ b/src/util/config/types/subconfigurations/defaults/GuildDefaults.ts @@ -0,0 +1,8 @@ +export class GuildDefaults { + maxPresences: number = 250000; + maxVideoChannelUsers: number = 200; + afkTimeout: number = 300; + defaultMessageNotifications: number = 1; + explicitContentFilter: number = 0; + test: number = 123; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/defaults/UserDefaults.ts b/src/util/config/types/subconfigurations/defaults/UserDefaults.ts new file mode 100644 index 00000000..4481c011 --- /dev/null +++ b/src/util/config/types/subconfigurations/defaults/UserDefaults.ts @@ -0,0 +1,5 @@ +export class UserDefaults { + premium: boolean = false; + premium_type: number = 2; + verified: boolean = true; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/defaults/index.ts b/src/util/config/types/subconfigurations/defaults/index.ts new file mode 100644 index 00000000..50258d1c --- /dev/null +++ b/src/util/config/types/subconfigurations/defaults/index.ts @@ -0,0 +1,2 @@ +export * from "./GuildDefaults"; +export * from "./UserDefaults"; diff --git a/src/util/config/types/subconfigurations/guild/AutoJoin.ts b/src/util/config/types/subconfigurations/guild/AutoJoin.ts new file mode 100644 index 00000000..47dfe5ec --- /dev/null +++ b/src/util/config/types/subconfigurations/guild/AutoJoin.ts @@ -0,0 +1,5 @@ +export class AutoJoinConfiguration { + enabled: boolean = true; + guilds: string[] = []; + canLeave: boolean = true; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/guild/Discovery.ts b/src/util/config/types/subconfigurations/guild/Discovery.ts new file mode 100644 index 00000000..59d8a8ae --- /dev/null +++ b/src/util/config/types/subconfigurations/guild/Discovery.ts @@ -0,0 +1,6 @@ +export class DiscoveryConfiguration { + showAllGuilds: boolean = false; + useRecommendation: boolean = false; // TODO: Recommendation, privacy concern? + offset: number = 0; + limit: number = 24; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/guild/index.ts b/src/util/config/types/subconfigurations/guild/index.ts new file mode 100644 index 00000000..e9614856 --- /dev/null +++ b/src/util/config/types/subconfigurations/guild/index.ts @@ -0,0 +1,2 @@ +export * from "./AutoJoin"; +export * from "./Discovery"; diff --git a/src/util/config/types/subconfigurations/index.ts b/src/util/config/types/subconfigurations/index.ts new file mode 100644 index 00000000..bfbadc92 --- /dev/null +++ b/src/util/config/types/subconfigurations/index.ts @@ -0,0 +1,8 @@ +export * from "./client/index"; +export * from "./defaults/index"; +export * from "./guild/index"; +export * from "./kafka/index"; +export * from "./limits/index"; +export * from "./region/index"; +export * from "./register/index"; +export * from "./security/index"; diff --git a/src/util/config/types/subconfigurations/kafka/KafkaBroker.ts b/src/util/config/types/subconfigurations/kafka/KafkaBroker.ts new file mode 100644 index 00000000..4f9a5e51 --- /dev/null +++ b/src/util/config/types/subconfigurations/kafka/KafkaBroker.ts @@ -0,0 +1,4 @@ +export interface KafkaBroker { + ip: string; + port: number; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/kafka/index.ts b/src/util/config/types/subconfigurations/kafka/index.ts new file mode 100644 index 00000000..2c633950 --- /dev/null +++ b/src/util/config/types/subconfigurations/kafka/index.ts @@ -0,0 +1 @@ +export * from "./KafkaBroker"; diff --git a/src/util/config/types/subconfigurations/limits/ChannelLimits.ts b/src/util/config/types/subconfigurations/limits/ChannelLimits.ts new file mode 100644 index 00000000..2f8f9485 --- /dev/null +++ b/src/util/config/types/subconfigurations/limits/ChannelLimits.ts @@ -0,0 +1,5 @@ +export class ChannelLimits { + maxPins: number = 500; + maxTopic: number = 1024; + maxWebhooks: number = 100; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/limits/GuildLimits.ts b/src/util/config/types/subconfigurations/limits/GuildLimits.ts new file mode 100644 index 00000000..91ad39ae --- /dev/null +++ b/src/util/config/types/subconfigurations/limits/GuildLimits.ts @@ -0,0 +1,8 @@ +export class GuildLimits { + maxRoles: number = 1000; + maxEmojis: number = 2000; + maxMembers: number = 25000000; + maxChannels: number = 65535; + maxChannelsInCategory: number = 65535; + hideOfflineMember: number = 3; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/limits/MessageLimits.ts b/src/util/config/types/subconfigurations/limits/MessageLimits.ts new file mode 100644 index 00000000..51576b90 --- /dev/null +++ b/src/util/config/types/subconfigurations/limits/MessageLimits.ts @@ -0,0 +1,8 @@ +export class MessageLimits { + maxCharacters: number = 1048576; + maxTTSCharacters: number = 160; + maxReactions: number = 2048; + maxAttachmentSize: number = 1024 * 1024 * 1024; + maxBulkDelete: number = 1000; + maxEmbedDownloadSize: number = 1024 * 1024 * 5; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/limits/RateLimits.ts b/src/util/config/types/subconfigurations/limits/RateLimits.ts new file mode 100644 index 00000000..25e7a1e0 --- /dev/null +++ b/src/util/config/types/subconfigurations/limits/RateLimits.ts @@ -0,0 +1,18 @@ +import { RouteRateLimit, RateLimitOptions } from "."; + +export class RateLimits { + disabled: boolean = true; + ip: Omit = { + count: 500, + window: 5 + }; + global: RateLimitOptions = { + count: 250, + window: 5 + }; + error: RateLimitOptions = { + count: 10, + window: 5 + }; + routes: RouteRateLimit; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/limits/UserLimits.ts b/src/util/config/types/subconfigurations/limits/UserLimits.ts new file mode 100644 index 00000000..0d10e0b3 --- /dev/null +++ b/src/util/config/types/subconfigurations/limits/UserLimits.ts @@ -0,0 +1,5 @@ +export class UserLimits { + maxGuilds: number = 1048576; + maxUsername: number = 127; + maxFriends: number = 5000; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/limits/index.ts b/src/util/config/types/subconfigurations/limits/index.ts new file mode 100644 index 00000000..0b7304f6 --- /dev/null +++ b/src/util/config/types/subconfigurations/limits/index.ts @@ -0,0 +1,6 @@ +export * from "./ChannelLimits"; +export * from "./GuildLimits"; +export * from "./MessageLimits"; +export * from "./RateLimits"; +export * from "./UserLimits"; +export * from "./ratelimits/index"; diff --git a/src/util/config/types/subconfigurations/limits/ratelimits/Auth.ts b/src/util/config/types/subconfigurations/limits/ratelimits/Auth.ts new file mode 100644 index 00000000..df171044 --- /dev/null +++ b/src/util/config/types/subconfigurations/limits/ratelimits/Auth.ts @@ -0,0 +1,12 @@ +import { RateLimitOptions } from "./RateLimitOptions"; + +export class AuthRateLimit { + login: RateLimitOptions = { + count: 5, + window: 60 + }; + register: RateLimitOptions = { + count: 2, + window: 60 * 60 * 12 + }; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts b/src/util/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts new file mode 100644 index 00000000..7089e28e --- /dev/null +++ b/src/util/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts @@ -0,0 +1,6 @@ +export interface RateLimitOptions { + bot?: number; + count: number; + window: number; + onyIp?: boolean; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/limits/ratelimits/Route.ts b/src/util/config/types/subconfigurations/limits/ratelimits/Route.ts new file mode 100644 index 00000000..844b1b9a --- /dev/null +++ b/src/util/config/types/subconfigurations/limits/ratelimits/Route.ts @@ -0,0 +1,19 @@ +import { AuthRateLimit } from "./Auth"; +import { RateLimitOptions } from "./RateLimitOptions"; + +export class RouteRateLimit { + guild: RateLimitOptions = { + count: 5, + window: 5 + }; + webhook: RateLimitOptions = { + count: 10, + window: 5 + }; + channel: RateLimitOptions = { + count: 10, + window: 5 + }; + auth: AuthRateLimit; + // TODO: rate limit configuration for all routes +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/limits/ratelimits/index.ts b/src/util/config/types/subconfigurations/limits/ratelimits/index.ts new file mode 100644 index 00000000..432eb601 --- /dev/null +++ b/src/util/config/types/subconfigurations/limits/ratelimits/index.ts @@ -0,0 +1,3 @@ +export * from "./Auth"; +export * from "./RateLimitOptions"; +export * from "./Route"; diff --git a/src/util/config/types/subconfigurations/region/Region.ts b/src/util/config/types/subconfigurations/region/Region.ts new file mode 100644 index 00000000..a8717e1f --- /dev/null +++ b/src/util/config/types/subconfigurations/region/Region.ts @@ -0,0 +1,12 @@ +export interface Region { + id: string; + name: string; + endpoint: string; + location?: { + latitude: number; + longitude: number; + }; + vip: boolean; + custom: boolean; + deprecated: boolean; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/region/index.ts b/src/util/config/types/subconfigurations/region/index.ts new file mode 100644 index 00000000..2beb8de7 --- /dev/null +++ b/src/util/config/types/subconfigurations/region/index.ts @@ -0,0 +1 @@ +export * from "./Region"; diff --git a/src/util/config/types/subconfigurations/register/DateOfBirth.ts b/src/util/config/types/subconfigurations/register/DateOfBirth.ts new file mode 100644 index 00000000..5a3c4e9d --- /dev/null +++ b/src/util/config/types/subconfigurations/register/DateOfBirth.ts @@ -0,0 +1,4 @@ +export class DateOfBirthConfiguration { + required: boolean = true; + minimum: number = 13; // in years +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/register/Email.ts b/src/util/config/types/subconfigurations/register/Email.ts new file mode 100644 index 00000000..115d49e0 --- /dev/null +++ b/src/util/config/types/subconfigurations/register/Email.ts @@ -0,0 +1,7 @@ +export class EmailConfiguration { + required: boolean = false; + allowlist: boolean = false; + blocklist: boolean = true; + domains: string[] = [];// TODO: efficiently save domain blocklist in database + // domains: fs.readFileSync(__dirname + "/blockedEmailDomains.txt", { encoding: "utf8" }).split("\n"), +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/register/Password.ts b/src/util/config/types/subconfigurations/register/Password.ts new file mode 100644 index 00000000..977473ac --- /dev/null +++ b/src/util/config/types/subconfigurations/register/Password.ts @@ -0,0 +1,7 @@ +export class PasswordConfiguration { + required: boolean = false; + minLength: number = 8; + minNumbers: number = 2; + minUpperCase: number =2; + minSymbols: number = 0; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/register/index.ts b/src/util/config/types/subconfigurations/register/index.ts new file mode 100644 index 00000000..d9738120 --- /dev/null +++ b/src/util/config/types/subconfigurations/register/index.ts @@ -0,0 +1,3 @@ +export * from "./DateOfBirth"; +export * from "./Email"; +export * from "./Password"; diff --git a/src/util/config/types/subconfigurations/security/Captcha.ts b/src/util/config/types/subconfigurations/security/Captcha.ts new file mode 100644 index 00000000..ad6aa762 --- /dev/null +++ b/src/util/config/types/subconfigurations/security/Captcha.ts @@ -0,0 +1,6 @@ +export class CaptchaConfiguration { + enabled: boolean = false; + service: "recaptcha" | "hcaptcha" | null = null; // TODO: hcaptcha, custom + sitekey: string | null = null; + secret: string | null = null; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/security/TwoFactor.ts b/src/util/config/types/subconfigurations/security/TwoFactor.ts new file mode 100644 index 00000000..33a47385 --- /dev/null +++ b/src/util/config/types/subconfigurations/security/TwoFactor.ts @@ -0,0 +1,3 @@ +export class TwoFactorConfiguration { + generateBackupCodes: boolean = true; +} \ No newline at end of file diff --git a/src/util/config/types/subconfigurations/security/index.ts b/src/util/config/types/subconfigurations/security/index.ts new file mode 100644 index 00000000..17619589 --- /dev/null +++ b/src/util/config/types/subconfigurations/security/index.ts @@ -0,0 +1,2 @@ +export * from "./Captcha"; +export * from "./TwoFactor"; diff --git a/src/util/dtos/DmChannelDTO.ts b/src/util/dtos/DmChannelDTO.ts new file mode 100644 index 00000000..226b2f9d --- /dev/null +++ b/src/util/dtos/DmChannelDTO.ts @@ -0,0 +1,41 @@ +import { MinimalPublicUserDTO } from "./UserDTO"; +import { Channel, PublicUserProjection, User } from "../entities"; + +export class DmChannelDTO { + icon: string | null; + id: string; + last_message_id: string | null; + name: string | null; + origin_channel_id: string | null; + owner_id?: string; + recipients: MinimalPublicUserDTO[]; + type: number; + + static async from(channel: Channel, excluded_recipients: string[] = [], origin_channel_id?: string) { + const obj = new DmChannelDTO(); + obj.icon = channel.icon || null; + obj.id = channel.id; + obj.last_message_id = channel.last_message_id || null; + obj.name = channel.name || null; + obj.origin_channel_id = origin_channel_id || null; + obj.owner_id = channel.owner_id; + obj.type = channel.type; + obj.recipients = ( + await Promise.all( + channel + .recipients!.filter((r) => !excluded_recipients.includes(r.user_id)) + .map(async (r) => { + return await User.findOneOrFail({ where: { id: r.user_id }, select: PublicUserProjection }); + }) + ) + ).map((u) => new MinimalPublicUserDTO(u)); + return obj; + } + + excludedRecipients(excluded_recipients: string[]): DmChannelDTO { + return { + ...this, + recipients: this.recipients.filter((r) => !excluded_recipients.includes(r.id)), + }; + } +} diff --git a/src/util/dtos/UserDTO.ts b/src/util/dtos/UserDTO.ts new file mode 100644 index 00000000..ee2752a4 --- /dev/null +++ b/src/util/dtos/UserDTO.ts @@ -0,0 +1,17 @@ +import { User } from "../entities"; + +export class MinimalPublicUserDTO { + avatar?: string | null; + discriminator: string; + id: string; + public_flags: number; + username: string; + + constructor(user: User) { + this.avatar = user.avatar; + this.discriminator = user.discriminator; + this.id = user.id; + this.public_flags = user.public_flags; + this.username = user.username; + } +} diff --git a/src/util/dtos/index.ts b/src/util/dtos/index.ts new file mode 100644 index 00000000..0e8f8459 --- /dev/null +++ b/src/util/dtos/index.ts @@ -0,0 +1,2 @@ +export * from "./DmChannelDTO"; +export * from "./UserDTO"; diff --git a/src/util/entities/Application.ts b/src/util/entities/Application.ts new file mode 100644 index 00000000..103f8e84 --- /dev/null +++ b/src/util/entities/Application.ts @@ -0,0 +1,156 @@ +import { Column, Entity, JoinColumn, ManyToOne, OneToOne, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { Guild } from "./Guild"; +import { Team } from "./Team"; +import { User } from "./User"; + +@Entity("applications") +export class Application extends BaseClass { + @Column() + name: string; + + @Column({ nullable: true }) + icon?: string; + + @Column({ nullable: true }) + description: string; + + @Column({ nullable: true }) + summary: string = ""; + + @Column({ type: "simple-json", nullable: true }) + type?: any; + + @Column() + hook: boolean = true; + + @Column() + bot_public?: boolean = true; + + @Column() + bot_require_code_grant?: boolean = false; + + @Column() + verify_key: string; + + @JoinColumn({ name: "owner_id" }) + @ManyToOne(() => User) + owner: User; + + @Column() + flags: number = 0; + + @Column({ type: "simple-array", nullable: true }) + redirect_uris: string[] = []; + + @Column({ nullable: true }) + rpc_application_state: number = 0; + + @Column({ nullable: true }) + store_application_state: number = 1; + + @Column({ nullable: true }) + verification_state: number = 1; + + @Column({ nullable: true }) + interactions_endpoint_url?: string; + + @Column({ nullable: true }) + integration_public: boolean = true; + + @Column({ nullable: true }) + integration_require_code_grant: boolean = false; + + @Column({ nullable: true }) + discoverability_state: number = 1; + + @Column({ nullable: true }) + discovery_eligibility_flags: number = 2240; + + @JoinColumn({ name: "bot_user_id" }) + @OneToOne(() => User) + bot?: User; + + @Column({ type: "simple-array", nullable: true }) + tags?: string[]; + + @Column({ nullable: true }) + cover_image?: string; // the application's default rich presence invite cover image hash + + @Column({ type: "simple-json", nullable: true }) + install_params?: {scopes: string[], permissions: string}; + + @Column({ nullable: true }) + terms_of_service_url?: string; + + @Column({ nullable: true }) + privacy_policy_url?: string; + + //just for us + + //@Column({ type: "simple-array", nullable: true }) + //rpc_origins?: string[]; + + //@JoinColumn({ name: "guild_id" }) + //@ManyToOne(() => Guild) + //guild?: Guild; // if this application is a game sold, this field will be the guild to which it has been linked + + //@Column({ nullable: true }) + //primary_sku_id?: string; // if this application is a game sold, this field will be the id of the "Game SKU" that is created, + + //@Column({ nullable: true }) + //slug?: string; // if this application is a game sold, this field will be the URL slug that links to the store page + + @JoinColumn({ name: "team_id" }) + @ManyToOne(() => Team, { + onDelete: "CASCADE", + nullable: true + }) + team?: Team; + + } + +export interface ApplicationCommand { + id: string; + application_id: string; + name: string; + description: string; + options?: ApplicationCommandOption[]; +} + +export interface ApplicationCommandOption { + type: ApplicationCommandOptionType; + name: string; + description: string; + required?: boolean; + choices?: ApplicationCommandOptionChoice[]; + options?: ApplicationCommandOption[]; +} + +export interface ApplicationCommandOptionChoice { + name: string; + value: string | number; +} + +export enum ApplicationCommandOptionType { + SUB_COMMAND = 1, + SUB_COMMAND_GROUP = 2, + STRING = 3, + INTEGER = 4, + BOOLEAN = 5, + USER = 6, + CHANNEL = 7, + ROLE = 8, +} + +export interface ApplicationCommandInteractionData { + id: string; + name: string; + options?: ApplicationCommandInteractionDataOption[]; +} + +export interface ApplicationCommandInteractionDataOption { + name: string; + value?: any; + options?: ApplicationCommandInteractionDataOption[]; +} diff --git a/src/util/entities/Attachment.ts b/src/util/entities/Attachment.ts new file mode 100644 index 00000000..7b4b17eb --- /dev/null +++ b/src/util/entities/Attachment.ts @@ -0,0 +1,43 @@ +import { BeforeRemove, Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { URL } from "url"; +import { deleteFile } from "../util/cdn"; +import { BaseClass } from "./BaseClass"; + +@Entity("attachments") +export class Attachment extends BaseClass { + @Column() + filename: string; // name of file attached + + @Column() + size: number; // size of file in bytes + + @Column() + url: string; // source url of file + + @Column() + proxy_url: string; // a proxied url of file + + @Column({ nullable: true }) + height?: number; // height of file (if image) + + @Column({ nullable: true }) + width?: number; // width of file (if image) + + @Column({ nullable: true }) + content_type?: string; + + @Column({ nullable: true }) + @RelationId((attachment: Attachment) => attachment.message) + message_id: string; + + @JoinColumn({ name: "message_id" }) + @ManyToOne(() => require("./Message").Message, (message: import("./Message").Message) => message.attachments, { + onDelete: "CASCADE", + }) + message: import("./Message").Message; + + @BeforeRemove() + onDelete() { + return deleteFile(new URL(this.url).pathname); + } +} diff --git a/src/util/entities/AuditLog.ts b/src/util/entities/AuditLog.ts new file mode 100644 index 00000000..b003e7ba --- /dev/null +++ b/src/util/entities/AuditLog.ts @@ -0,0 +1,194 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { ChannelPermissionOverwrite } from "./Channel"; +import { User } from "./User"; + +export enum AuditLogEvents { + // guild level + GUILD_UPDATE = 1, + GUILD_IMPORT = 2, + GUILD_EXPORTED = 3, + GUILD_ARCHIVE = 4, + GUILD_UNARCHIVE = 5, + // join-leave + USER_JOIN = 6, + USER_LEAVE = 7, + // channels + CHANNEL_CREATE = 10, + CHANNEL_UPDATE = 11, + CHANNEL_DELETE = 12, + // permission overrides + CHANNEL_OVERWRITE_CREATE = 13, + CHANNEL_OVERWRITE_UPDATE = 14, + CHANNEL_OVERWRITE_DELETE = 15, + // kick and ban + MEMBER_KICK = 20, + MEMBER_PRUNE = 21, + MEMBER_BAN_ADD = 22, + MEMBER_BAN_REMOVE = 23, + // member updates + MEMBER_UPDATE = 24, + MEMBER_ROLE_UPDATE = 25, + MEMBER_MOVE = 26, + MEMBER_DISCONNECT = 27, + BOT_ADD = 28, + // roles + ROLE_CREATE = 30, + ROLE_UPDATE = 31, + ROLE_DELETE = 32, + ROLE_SWAP = 33, + // invites + INVITE_CREATE = 40, + INVITE_UPDATE = 41, + INVITE_DELETE = 42, + // webhooks + WEBHOOK_CREATE = 50, + WEBHOOK_UPDATE = 51, + WEBHOOK_DELETE = 52, + WEBHOOK_SWAP = 53, + // custom emojis + EMOJI_CREATE = 60, + EMOJI_UPDATE = 61, + EMOJI_DELETE = 62, + EMOJI_SWAP = 63, + // deletion + MESSAGE_CREATE = 70, // messages sent using non-primary seat of the user only + MESSAGE_EDIT = 71, // non-self edits only + MESSAGE_DELETE = 72, + MESSAGE_BULK_DELETE = 73, + // pinning + MESSAGE_PIN = 74, + MESSAGE_UNPIN = 75, + // integrations + INTEGRATION_CREATE = 80, + INTEGRATION_UPDATE = 81, + INTEGRATION_DELETE = 82, + // stage actions + STAGE_INSTANCE_CREATE = 83, + STAGE_INSTANCE_UPDATE = 84, + STAGE_INSTANCE_DELETE = 85, + // stickers + STICKER_CREATE = 90, + STICKER_UPDATE = 91, + STICKER_DELETE = 92, + STICKER_SWAP = 93, + // threads + THREAD_CREATE = 110, + THREAD_UPDATE = 111, + THREAD_DELETE = 112, + // application commands + APPLICATION_COMMAND_PERMISSION_UPDATE = 121, + // automod + POLICY_CREATE = 140, + POLICY_UPDATE = 141, + POLICY_DELETE = 142, + MESSAGE_BLOCKED_BY_POLICIES = 143, // in fosscord, blocked messages are stealth-dropped + // instance policies affecting the guild + GUILD_AFFECTED_BY_POLICIES = 216, + // message moves + IN_GUILD_MESSAGE_MOVE = 223, + CROSS_GUILD_MESSAGE_MOVE = 224, + // message routing + ROUTE_CREATE = 225, + ROUTE_UPDATE = 226, +} + +@Entity("audit_logs") +export class AuditLog extends BaseClass { + @JoinColumn({ name: "target_id" }) + @ManyToOne(() => User) + target?: User; + + @Column({ nullable: true }) + @RelationId((auditlog: AuditLog) => auditlog.user) + user_id: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User, (user: User) => user.id) + user: User; + + @Column({ type: "int" }) + action_type: AuditLogEvents; + + @Column({ type: "simple-json", nullable: true }) + options?: { + delete_member_days?: string; + members_removed?: string; + channel_id?: string; + messaged_id?: string; + count?: string; + id?: string; + type?: string; + role_name?: string; + }; + + @Column() + @Column({ type: "simple-json" }) + changes: AuditLogChange[]; + + @Column({ nullable: true }) + reason?: string; +} + +export interface AuditLogChange { + new_value?: AuditLogChangeValue; + old_value?: AuditLogChangeValue; + key: string; +} + +export interface AuditLogChangeValue { + name?: string; + description?: string; + icon_hash?: string; + splash_hash?: string; + discovery_splash_hash?: string; + banner_hash?: string; + owner_id?: string; + region?: string; + preferred_locale?: string; + afk_channel_id?: string; + afk_timeout?: number; + rules_channel_id?: string; + public_updates_channel_id?: string; + mfa_level?: number; + verification_level?: number; + explicit_content_filter?: number; + default_message_notifications?: number; + vanity_url_code?: string; + $add?: {}[]; + $remove?: {}[]; + prune_delete_days?: number; + widget_enabled?: boolean; + widget_channel_id?: string; + system_channel_id?: string; + position?: number; + topic?: string; + bitrate?: number; + permission_overwrites?: ChannelPermissionOverwrite[]; + nsfw?: boolean; + application_id?: string; + rate_limit_per_user?: number; + permissions?: string; + color?: number; + hoist?: boolean; + mentionable?: boolean; + allow?: string; + deny?: string; + code?: string; + channel_id?: string; + inviter_id?: string; + max_uses?: number; + uses?: number; + max_age?: number; + temporary?: boolean; + deaf?: boolean; + mute?: boolean; + nick?: string; + avatar_hash?: string; + id?: string; + type?: number; + enable_emoticons?: boolean; + expire_behavior?: number; + expire_grace_period?: number; + user_limit?: number; +} diff --git a/src/util/entities/BackupCodes.ts b/src/util/entities/BackupCodes.ts new file mode 100644 index 00000000..9092c14e --- /dev/null +++ b/src/util/entities/BackupCodes.ts @@ -0,0 +1,19 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { User } from "./User"; + +@Entity("backup_codes") +export class BackupCode extends BaseClass { + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User, { onDelete: "CASCADE" }) + user: User; + + @Column() + code: string; + + @Column() + consumed: boolean; + + @Column() + expired: boolean; +} \ No newline at end of file diff --git a/src/util/entities/Ban.ts b/src/util/entities/Ban.ts new file mode 100644 index 00000000..9504bd8e --- /dev/null +++ b/src/util/entities/Ban.ts @@ -0,0 +1,41 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { Guild } from "./Guild"; +import { User } from "./User"; + +@Entity("bans") +export class Ban extends BaseClass { + @Column({ nullable: true }) + @RelationId((ban: Ban) => ban.user) + user_id: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + user: User; + + @Column({ nullable: true }) + @RelationId((ban: Ban) => ban.guild) + guild_id: string; + + @JoinColumn({ name: "guild_id" }) + @ManyToOne(() => Guild, { + onDelete: "CASCADE", + }) + guild: Guild; + + @Column({ nullable: true }) + @RelationId((ban: Ban) => ban.executor) + executor_id: string; + + @JoinColumn({ name: "executor_id" }) + @ManyToOne(() => User) + executor: User; + + @Column() + ip: string; + + @Column({ nullable: true }) + reason?: string; +} diff --git a/src/util/entities/BaseClass.ts b/src/util/entities/BaseClass.ts new file mode 100644 index 00000000..aecc2465 --- /dev/null +++ b/src/util/entities/BaseClass.ts @@ -0,0 +1,26 @@ +import "reflect-metadata"; +import { BaseEntity, ObjectIdColumn, PrimaryColumn, SaveOptions } from "typeorm"; +import { Snowflake } from "../util/Snowflake"; + +export class BaseClassWithoutId extends BaseEntity { + constructor() { + super(); + } +} + +export const PrimaryIdColumn = process.env.DATABASE?.startsWith("mongodb") ? ObjectIdColumn : PrimaryColumn; + +export class BaseClass extends BaseClassWithoutId { + @PrimaryIdColumn() + id: string; + + constructor() { + super(); + if (!this.id) this.id = Snowflake.generate(); + } + + save(options?: SaveOptions | undefined): Promise { + if (!this.id) this.id = Snowflake.generate(); + return super.save(options); + } +} diff --git a/src/util/entities/Categories.ts b/src/util/entities/Categories.ts new file mode 100644 index 00000000..81fbc303 --- /dev/null +++ b/src/util/entities/Categories.ts @@ -0,0 +1,33 @@ +import { PrimaryColumn, Column, Entity} from "typeorm"; +import { BaseClassWithoutId } from "./BaseClass"; + +// TODO: categories: +// [{ +// "id": 16, +// "default": "Anime & Manga", +// "localizations": { +// "de": "Anime & Manga", +// "fr": "Anim\u00e9s et mangas", +// "ru": "\u0410\u043d\u0438\u043c\u0435 \u0438 \u043c\u0430\u043d\u0433\u0430" +// } +// }, +// "is_primary": false/true +// }] +// Also populate discord default categories + +@Entity("categories") +export class Categories extends BaseClassWithoutId { // Not using snowflake + + @PrimaryColumn() + id: number; + + @Column({ nullable: true }) + name: string; + + @Column({ type: "simple-json" }) + localizations: string; + + @Column({ nullable: true }) + is_primary: boolean; + +} \ No newline at end of file diff --git a/src/util/entities/Channel.ts b/src/util/entities/Channel.ts new file mode 100644 index 00000000..a576d7af --- /dev/null +++ b/src/util/entities/Channel.ts @@ -0,0 +1,391 @@ +import { Column, Entity, JoinColumn, ManyToOne, OneToMany, RelationId } from "typeorm"; +import { OrmUtils } from "../util/imports/OrmUtils"; +import { BaseClass } from "./BaseClass"; +import { Guild } from "./Guild"; +import { PublicUserProjection, User } from "./User"; +import { HTTPError } from "../util/imports/HTTPError"; +import { containsAll, emitEvent, getPermission, Snowflake, trimSpecial, InvisibleCharacters } from "../util"; +import { ChannelCreateEvent, ChannelRecipientRemoveEvent } from "../interfaces"; +import { Recipient } from "./Recipient"; +import { Message } from "./Message"; +import { ReadState } from "./ReadState"; +import { Invite } from "./Invite"; +import { VoiceState } from "./VoiceState"; +import { Webhook } from "./Webhook"; +import { DmChannelDTO } from "../dtos"; + +export enum ChannelType { + GUILD_TEXT = 0, // a text channel within a guild + DM = 1, // a direct message between users + GUILD_VOICE = 2, // a voice channel within a guild + GROUP_DM = 3, // a direct message between multiple users + GUILD_CATEGORY = 4, // an organizational category that contains zero or more channels + GUILD_NEWS = 5, // a channel that users can follow and crosspost into a guild or route + GUILD_STORE = 6, // a channel in which game developers can sell their things + ENCRYPTED = 7, // end-to-end encrypted channel + ENCRYPTED_THREAD = 8, // end-to-end encrypted thread channel + TRANSACTIONAL = 9, // event chain style transactional channel + GUILD_NEWS_THREAD = 10, // a temporary sub-channel within a GUILD_NEWS channel + GUILD_PUBLIC_THREAD = 11, // a temporary sub-channel within a GUILD_TEXT channel + GUILD_PRIVATE_THREAD = 12, // a temporary sub-channel within a GUILD_TEXT channel that is only viewable by those invited and those with the MANAGE_THREADS permission + GUILD_STAGE_VOICE = 13, // a voice channel for hosting events with an audience + DIRECTORY = 14, // guild directory listing channel + GUILD_FORUM = 15, // forum composed of IM threads + TICKET_TRACKER = 33, // ticket tracker, individual ticket items shall have type 12 + KANBAN = 34, // confluence like kanban board + VOICELESS_WHITEBOARD = 35, // whiteboard but without voice (whiteboard + voice is the same as stage) + CUSTOM_START = 64, // start custom channel types from here + UNHANDLED = 255, // unhandled unowned pass-through channel type +} + +@Entity("channels") +export class Channel extends BaseClass { + @Column() + created_at: Date; + + @Column({ nullable: true }) + name?: string; + + @Column({ type: "text", nullable: true }) + icon?: string | null; + + @Column({ type: "int" }) + type: ChannelType; + + @OneToMany(() => Recipient, (recipient: Recipient) => recipient.channel, { + cascade: true, + orphanedRowAction: "delete", + }) + recipients?: Recipient[]; + + @Column({ nullable: true }) + last_message_id: string; + + @Column({ nullable: true }) + @RelationId((channel: Channel) => channel.guild) + guild_id?: string; + + @JoinColumn({ name: "guild_id" }) + @ManyToOne(() => Guild, { + onDelete: "CASCADE", + }) + guild: Guild; + + @Column({ nullable: true }) + @RelationId((channel: Channel) => channel.parent) + parent_id: string; + + @JoinColumn({ name: "parent_id" }) + @ManyToOne(() => Channel) + parent?: Channel; + + // for group DMs and owned custom channel types + @Column({ nullable: true }) + @RelationId((channel: Channel) => channel.owner) + owner_id: string; + + @JoinColumn({ name: "owner_id" }) + @ManyToOne(() => User) + owner: User; + + @Column({ nullable: true }) + last_pin_timestamp?: number; + + @Column({ nullable: true }) + default_auto_archive_duration?: number; + + @Column({ nullable: true }) + position?: number; + + @Column({ type: "simple-json", nullable: true }) + permission_overwrites?: ChannelPermissionOverwrite[]; + + @Column({ nullable: true }) + video_quality_mode?: number; + + @Column({ nullable: true }) + bitrate?: number; + + @Column({ nullable: true }) + user_limit?: number; + + @Column({ nullable: true }) + nsfw?: boolean; + + @Column({ nullable: true }) + rate_limit_per_user?: number; + + @Column({ nullable: true }) + topic?: string; + + @OneToMany(() => Invite, (invite: Invite) => invite.channel, { + cascade: true, + orphanedRowAction: "delete", + }) + invites?: Invite[]; + + @Column({ nullable: true }) + retention_policy_id?: string; + + @OneToMany(() => Message, (message: Message) => message.channel, { + cascade: true, + orphanedRowAction: "delete", + }) + messages?: Message[]; + + @OneToMany(() => VoiceState, (voice_state: VoiceState) => voice_state.channel, { + cascade: true, + orphanedRowAction: "delete", + }) + voice_states?: VoiceState[]; + + @OneToMany(() => ReadState, (read_state: ReadState) => read_state.channel, { + cascade: true, + orphanedRowAction: "delete", + }) + read_states?: ReadState[]; + + @OneToMany(() => Webhook, (webhook: Webhook) => webhook.channel, { + cascade: true, + orphanedRowAction: "delete", + }) + webhooks?: Webhook[]; + + @Column({ nullable: true }) + flags?: number = 0; + + @Column({ nullable: true }) + default_thread_rate_limit_per_user?: number = 0; + + + // TODO: DM channel + static async createChannel( + channel: Partial, + user_id: string = "0", + opts?: { + keepId?: boolean; + skipExistsCheck?: boolean; + skipPermissionCheck?: boolean; + skipEventEmit?: boolean; + skipNameChecks?: boolean; + } + ) { + if (!opts?.skipPermissionCheck) { + // Always check if user has permission first + const permissions = await getPermission(user_id, channel.guild_id); + permissions.hasThrow("MANAGE_CHANNELS"); + } + + if (!opts?.skipNameChecks) { + const guild = await Guild.findOneOrFail({ where: { id: channel.guild_id } }); + if (!guild.features.includes("ALLOW_INVALID_CHANNEL_NAMES") && channel.name) { + for (let character of InvisibleCharacters) + if (channel.name.includes(character)) + throw new HTTPError("Channel name cannot include invalid characters", 403); + + if (channel.name.match(/\-\-+/g)) + throw new HTTPError("Channel name cannot include multiple adjacent dashes.", 403); + + if (channel.name.charAt(0) === "-" || channel.name.charAt(channel.name.length - 1) === "-") + throw new HTTPError("Channel name cannot start/end with dash.", 403); + } + + if (!guild.features.includes("ALLOW_UNNAMED_CHANNELS")) { + if (!channel.name) throw new HTTPError("Channel name cannot be empty.", 403); + } + } + + switch (channel.type) { + case ChannelType.GUILD_TEXT: + case ChannelType.GUILD_NEWS: + case ChannelType.GUILD_VOICE: + if (channel.parent_id && !opts?.skipExistsCheck) { + const exists = await Channel.findOneOrFail({ where: { id: channel.parent_id } }); + if (!exists) throw new HTTPError("Parent id channel doesn't exist", 400); + if (exists.guild_id !== channel.guild_id) + throw new HTTPError("The category channel needs to be in the guild"); + } + break; + case ChannelType.GUILD_CATEGORY: + case ChannelType.UNHANDLED: + break; + case ChannelType.DM: + case ChannelType.GROUP_DM: + throw new HTTPError("You can't create a dm channel in a guild"); + case ChannelType.GUILD_STORE: + default: + throw new HTTPError("Not yet supported"); + } + + if (!channel.permission_overwrites) channel.permission_overwrites = []; + // TODO: eagerly auto generate position of all guild channels + + channel = { + ...channel, + ...(!opts?.keepId && { id: Snowflake.generate() }), + created_at: new Date(), + position: (channel.type === ChannelType.UNHANDLED ? 0 : channel.position) || 0, + }; + + await Promise.all([ + OrmUtils.mergeDeep(new Channel(), channel).save(), + !opts?.skipEventEmit + ? emitEvent({ + event: "CHANNEL_CREATE", + data: channel, + guild_id: channel.guild_id, + } as ChannelCreateEvent) + : Promise.resolve(), + ]); + + return channel; + } + + static async createDMChannel(recipients: string[], creator_user_id: string, name?: string) { + recipients = recipients.unique().filter((x) => x !== creator_user_id); + const otherRecipientsUsers = await User.find({ where: recipients.map((x) => ({ id: x })) }); + + // TODO: check config for max number of recipients + /** if you want to disallow note to self channels, uncomment the conditional below + if (otherRecipientsUsers.length !== recipients.length) { + throw new HTTPError("Recipient/s not found"); + } + **/ + + const type = recipients.length > 1 ? ChannelType.GROUP_DM : ChannelType.DM; + + let channel = null; + + const channelRecipients = [...recipients, creator_user_id]; + + const userRecipients = await Recipient.find({ + where: { user_id: creator_user_id }, + relations: ["channel", "channel.recipients"], + }); + + for (let ur of userRecipients) { + let re = ur.channel.recipients!.map((r) => r.user_id); + if (re.length === channelRecipients.length) { + if (containsAll(re, channelRecipients)) { + if (channel == null) { + channel = ur.channel; + ur = OrmUtils.mergeDeep(ur, { closed: false }); + await ur.save(); + } + } + } + } + + if (channel == null) { + name = trimSpecial(name); + + channel = await ( + OrmUtils.mergeDeep(new Channel(), { + name, + type, + owner_id: type === ChannelType.DM ? undefined : null, // 1:1 DMs are ownerless in fosscord-server + created_at: new Date(), + last_message_id: null, + recipients: channelRecipients.map((x) => + OrmUtils.mergeDeep(new Recipient(), { + user_id: x, + closed: !(type === ChannelType.GROUP_DM || x === creator_user_id), + }) + ), + }) as Channel + ).save(); + } + + const channel_dto = await DmChannelDTO.from(channel); + + if (type === ChannelType.GROUP_DM) { + for (let recipient of channel.recipients!) { + await emitEvent({ + event: "CHANNEL_CREATE", + data: channel_dto.excludedRecipients([recipient.user_id]), + user_id: recipient.user_id, + }); + } + } else { + await emitEvent({ event: "CHANNEL_CREATE", data: channel_dto, user_id: creator_user_id }); + } + + if (recipients.length === 1) return channel_dto; + else return channel_dto.excludedRecipients([creator_user_id]); + } + + static async removeRecipientFromChannel(channel: Channel, user_id: string) { + await Recipient.delete({ channel_id: channel.id, user_id: user_id }); + channel.recipients = channel.recipients?.filter((r) => r.user_id !== user_id); + + if (channel.recipients?.length === 0) { + await Channel.deleteChannel(channel); + await emitEvent({ + event: "CHANNEL_DELETE", + data: await DmChannelDTO.from(channel, [user_id]), + user_id: user_id, + }); + return; + } + + await emitEvent({ + event: "CHANNEL_DELETE", + data: await DmChannelDTO.from(channel, [user_id]), + user_id: user_id, + }); + + //If the owner leave the server user is the new owner + if (channel.owner_id === user_id) { + channel.owner_id = "1"; // The channel is now owned by the server user + await emitEvent({ + event: "CHANNEL_UPDATE", + data: await DmChannelDTO.from(channel, [user_id]), + channel_id: channel.id, + }); + } + + await channel.save(); + + await emitEvent({ + event: "CHANNEL_RECIPIENT_REMOVE", + data: { + channel_id: channel.id, + user: await User.findOneOrFail({ where: { id: user_id }, select: PublicUserProjection }), + }, + channel_id: channel.id, + } as ChannelRecipientRemoveEvent); + } + + static async deleteChannel(channel: Channel) { + await Message.delete({ channel_id: channel.id }); //TODO we should also delete the attachments from the cdn but to do that we need to move cdn.ts in util + //TODO before deleting the channel we should check and delete other relations + await Channel.delete({ id: channel.id }); + } + + isDm() { + return this.type === ChannelType.DM || this.type === ChannelType.GROUP_DM; + } + + // Does the channel support sending messages ( eg categories do not ) + isWritable() { + const disallowedChannelTypes = [ + ChannelType.GUILD_CATEGORY, + ChannelType.GUILD_STAGE_VOICE, + ChannelType.VOICELESS_WHITEBOARD, + ]; + return disallowedChannelTypes.indexOf(this.type) == -1; + } +} + +export interface ChannelPermissionOverwrite { + allow: string; + deny: string; + id: string; + type: ChannelPermissionOverwriteType; +} + +export enum ChannelPermissionOverwriteType { + role = 0, + member = 1, + group = 2, +} diff --git a/src/util/entities/ClientRelease.ts b/src/util/entities/ClientRelease.ts new file mode 100644 index 00000000..c5afd307 --- /dev/null +++ b/src/util/entities/ClientRelease.ts @@ -0,0 +1,26 @@ +import { Column, Entity} from "typeorm"; +import { BaseClass } from "./BaseClass"; + +@Entity("client_release") +export class Release extends BaseClass { + @Column() + name: string; + + @Column() + pub_date: string; + + @Column() + url: string; + + @Column() + deb_url: string; + + @Column() + osx_url: string; + + @Column() + win_url: string; + + @Column({ nullable: true }) + notes?: string; +} diff --git a/src/util/entities/Config.ts b/src/util/entities/Config.ts new file mode 100644 index 00000000..606fe901 --- /dev/null +++ b/src/util/entities/Config.ts @@ -0,0 +1,11 @@ +import { Column, Entity } from "typeorm"; +import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; + +@Entity("config") +export class ConfigEntity extends BaseClassWithoutId { + @PrimaryIdColumn() + key: string; + + @Column({ type: "simple-json", nullable: true }) + value: number | boolean | null | string | undefined; +} \ No newline at end of file diff --git a/src/util/entities/ConnectedAccount.ts b/src/util/entities/ConnectedAccount.ts new file mode 100644 index 00000000..09ae30ab --- /dev/null +++ b/src/util/entities/ConnectedAccount.ts @@ -0,0 +1,42 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { User } from "./User"; + +export interface PublicConnectedAccount extends Pick {} + +@Entity("connected_accounts") +export class ConnectedAccount extends BaseClass { + @Column({ nullable: true }) + @RelationId((account: ConnectedAccount) => account.user) + user_id: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + user: User; + + @Column({ select: false }) + access_token: string; + + @Column({ select: false }) + friend_sync: boolean; + + @Column() + name: string; + + @Column({ select: false }) + revoked: boolean; + + @Column({ select: false }) + show_activity: boolean; + + @Column() + type: string; + + @Column() + verified: boolean; + + @Column({ select: false }) + visibility: number; +} diff --git a/src/util/entities/Emoji.ts b/src/util/entities/Emoji.ts new file mode 100644 index 00000000..a3615b7d --- /dev/null +++ b/src/util/entities/Emoji.ts @@ -0,0 +1,46 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { User } from "."; +import { BaseClass } from "./BaseClass"; +import { Guild } from "./Guild"; +import { Role } from "./Role"; + +@Entity("emojis") +export class Emoji extends BaseClass { + @Column() + animated: boolean; + + @Column() + available: boolean; // whether this emoji can be used, may be false due to various reasons + + @Column() + guild_id: string; + + @JoinColumn({ name: "guild_id" }) + @ManyToOne(() => Guild, { + onDelete: "CASCADE", + }) + guild: Guild; + + @Column({ nullable: true }) + @RelationId((emoji: Emoji) => emoji.user) + user_id: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User) + user: User; + + @Column() + managed: boolean; + + @Column() + name: string; + + @Column() + require_colons: boolean; + + @Column({ type: "simple-array" }) + roles: string[]; // roles this emoji is whitelisted to (new discord feature?) + + @Column({ type: "simple-array", nullable: true }) + groups: string[]; // user groups this emoji is whitelisted to (Fosscord extension) +} diff --git a/src/util/entities/Encryption.ts b/src/util/entities/Encryption.ts new file mode 100644 index 00000000..6b578d15 --- /dev/null +++ b/src/util/entities/Encryption.ts @@ -0,0 +1,35 @@ +import { Column, Entity, JoinColumn, ManyToOne, OneToMany, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { Guild } from "./Guild"; +import { PublicUserProjection, User } from "./User"; +import { HTTPError } from ".."; +import { containsAll, emitEvent, getPermission, Snowflake, trimSpecial, InvisibleCharacters } from "../util"; +import { BitField, BitFieldResolvable, BitFlag } from "../util/BitField"; +import { Recipient } from "./Recipient"; +import { Message } from "./Message"; +import { ReadState } from "./ReadState"; +import { Invite } from "./Invite"; +import { DmChannelDTO } from "../dtos"; + +@Entity("security_settings") +export class SecuritySettings extends BaseClass { + + @Column({nullable: true}) + guild_id: Snowflake; + + @Column({nullable: true}) + channel_id: Snowflake; + + @Column() + encryption_permission_mask: BitField; + + @Column() + allowed_algorithms: string[]; + + @Column() + current_algorithm: string; + + @Column({nullable: true}) + used_since_message: Snowflake; + +} diff --git a/src/util/entities/Group.ts b/src/util/entities/Group.ts new file mode 100644 index 00000000..b24d38cf --- /dev/null +++ b/src/util/entities/Group.ts @@ -0,0 +1,33 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; + +import { BaseClass } from "./BaseClass"; + +@Entity("groups") +export class UserGroup extends BaseClass { + @Column({ nullable: true }) + parent?: BigInt; + + @Column() + color: number; + + @Column() + hoist: boolean; + + @Column() + mentionable: boolean; + + @Column() + name: string; + + @Column() + rights: BigInt; + + @Column() + position: number; + + @Column({ nullable: true }) + icon: BigInt; + + @Column({ nullable: true }) + unicode_emoji: BigInt; +} diff --git a/src/util/entities/Guild.ts b/src/util/entities/Guild.ts new file mode 100644 index 00000000..d146e577 --- /dev/null +++ b/src/util/entities/Guild.ts @@ -0,0 +1,370 @@ +import { Column, Entity, JoinColumn, ManyToMany, ManyToOne, OneToMany, OneToOne, RelationId } from "typeorm"; +import { OrmUtils } from "../util/imports/OrmUtils"; +import { Config, handleFile, Snowflake } from ".."; +import { Ban } from "./Ban"; +import { BaseClass } from "./BaseClass"; +import { Channel } from "./Channel"; +import { Emoji } from "./Emoji"; +import { Invite } from "./Invite"; +import { Member } from "./Member"; +import { Role } from "./Role"; +import { Sticker } from "./Sticker"; +import { Template } from "./Template"; +import { User } from "./User"; +import { VoiceState } from "./VoiceState"; +import { Webhook } from "./Webhook"; + +// TODO: application_command_count, application_command_counts: {1: 0, 2: 0, 3: 0} +// TODO: guild_scheduled_events +// TODO: stage_instances +// TODO: threads +// TODO: +// "keywords": [ +// "Genshin Impact", +// "Paimon", +// "Honkai Impact", +// "ARPG", +// "Open-World", +// "Waifu", +// "Anime", +// "Genshin", +// "miHoYo", +// "Gacha" +// ], + +export const PublicGuildRelations = [ + "channels", + "emojis", + "members", + "roles", + "stickers", + "voice_states", + "members.user", +]; + +@Entity("guilds") +export class Guild extends BaseClass { + @Column({ nullable: true }) + @RelationId((guild: Guild) => guild.afk_channel) + afk_channel_id?: string; + + @JoinColumn({ name: "afk_channel_id" }) + @ManyToOne(() => Channel) + afk_channel?: Channel; + + @Column({ nullable: true }) + afk_timeout?: number = Config.get().defaults.guild.afkTimeout; + + // * commented out -> use owner instead + // application id of the guild creator if it is bot-created + // @Column({ nullable: true }) + // application?: string; + + @JoinColumn({ name: "ban_ids" }) + @OneToMany(() => Ban, (ban: Ban) => ban.guild, { + cascade: true, + orphanedRowAction: "delete", + }) + bans: Ban[]; + + @Column({ nullable: true }) + banner?: string; + + @Column({ nullable: true }) + default_message_notifications?: number = Config.get().defaults.guild.defaultMessageNotifications; + + @Column({ nullable: true }) + description?: string; + + @Column({ nullable: true }) + discovery_splash?: string; + + @Column({ nullable: true }) + explicit_content_filter?: number = Config.get().defaults.guild.explicitContentFilter; + + @Column({ type: "simple-array" }) + features: string[]; //TODO use enum + //TODO: https://discord.com/developers/docs/resources/guild#guild-object-guild-features + + @Column({ nullable: true }) + primary_category_id: number; + + @Column({ nullable: true }) + icon?: string; + + @Column({ nullable: true }) + large?: boolean; + + @Column({ nullable: true }) + max_members?: number = Config.get().limits.guild.maxMembers; // e.g. default 100.000 + + @Column({ nullable: true }) + max_presences?: number = Config.get().defaults.guild.maxPresences; + + @Column({ nullable: true }) + max_video_channel_users?: number = Config.get().defaults.guild.maxVideoChannelUsers; // ? default: 25, is this max 25 streaming or watching + + @Column({ nullable: true }) + member_count?: number = 0; + + @Column({ nullable: true }) + presence_count?: number = 0; // users online + + @OneToMany(() => Member, (member: Member) => member.guild, { + cascade: true, + orphanedRowAction: "delete", + onDelete: "CASCADE", + }) + members: Member[]; + + @JoinColumn({ name: "role_ids" }) + @OneToMany(() => Role, (role: Role) => role.guild, { + cascade: true, + orphanedRowAction: "delete", + onDelete: "CASCADE", + }) + roles: Role[]; + + @JoinColumn({ name: "channel_ids" }) + @OneToMany(() => Channel, (channel: Channel) => channel.guild, { + cascade: true, + orphanedRowAction: "delete", + }) + channels: Channel[]; + + @Column({ nullable: true }) + @RelationId((guild: Guild) => guild.template) + template_id?: string; + + @JoinColumn({ name: "template_id", referencedColumnName: "id" }) + @ManyToOne(() => Template) + template: Template; + + @JoinColumn({ name: "emoji_ids" }) + @OneToMany(() => Emoji, (emoji: Emoji) => emoji.guild, { + cascade: true, + orphanedRowAction: "delete", + onDelete: "CASCADE", + }) + emojis: Emoji[]; + + @JoinColumn({ name: "sticker_ids" }) + @OneToMany(() => Sticker, (sticker: Sticker) => sticker.guild, { + cascade: true, + orphanedRowAction: "delete", + onDelete: "CASCADE", + }) + stickers: Sticker[]; + + @JoinColumn({ name: "invite_ids" }) + @OneToMany(() => Invite, (invite: Invite) => invite.guild, { + cascade: true, + orphanedRowAction: "delete", + onDelete: "CASCADE", + }) + invites: Invite[]; + + @JoinColumn({ name: "voice_state_ids" }) + @OneToMany(() => VoiceState, (voicestate: VoiceState) => voicestate.guild, { + cascade: true, + orphanedRowAction: "delete", + onDelete: "CASCADE", + }) + voice_states: VoiceState[]; + + @JoinColumn({ name: "webhook_ids" }) + @OneToMany(() => Webhook, (webhook: Webhook) => webhook.guild, { + cascade: true, + orphanedRowAction: "delete", + onDelete: "CASCADE", + }) + webhooks: Webhook[]; + + @Column({ nullable: true }) + mfa_level?: number; + + @Column() + name: string; + + @Column({ nullable: true }) + @RelationId((guild: Guild) => guild.owner) + owner_id?: string; // optional to allow for ownerless guilds + + @JoinColumn({ name: "owner_id", referencedColumnName: "id" }) + @ManyToOne(() => User) + owner?: User; // optional to allow for ownerless guilds + + @Column({ nullable: true }) + preferred_locale?: string; + + @Column({ nullable: true }) + premium_subscription_count?: number; + + @Column({ nullable: true }) + premium_tier?: number; // crowd premium level + + @Column({ nullable: true }) + @RelationId((guild: Guild) => guild.public_updates_channel) + public_updates_channel_id: string; + + @JoinColumn({ name: "public_updates_channel_id" }) + @ManyToOne(() => Channel) + public_updates_channel?: Channel; + + @Column({ nullable: true }) + @RelationId((guild: Guild) => guild.rules_channel) + rules_channel_id?: string; + + @JoinColumn({ name: "rules_channel_id" }) + @ManyToOne(() => Channel) + rules_channel?: string; + + @Column({ nullable: true }) + region?: string; + + @Column({ nullable: true }) + splash?: string; + + @Column({ nullable: true }) + @RelationId((guild: Guild) => guild.system_channel) + system_channel_id?: string; + + @JoinColumn({ name: "system_channel_id" }) + @ManyToOne(() => Channel) + system_channel?: Channel; + + @Column({ nullable: true }) + system_channel_flags?: number; + + @Column({ nullable: true }) + unavailable?: boolean; + + @Column({ nullable: true }) + verification_level?: number; + + @Column({ type: "simple-json" }) + welcome_screen: { + enabled: boolean; + description: string; + welcome_channels: { + description: string; + emoji_id?: string; + emoji_name: string; + channel_id: string; + }[]; + }; + + @Column({ nullable: true }) + @RelationId((guild: Guild) => guild.widget_channel) + widget_channel_id?: string; + + @JoinColumn({ name: "widget_channel_id" }) + @ManyToOne(() => Channel) + widget_channel?: Channel; + + @Column({ nullable: true }) + widget_enabled?: boolean; + + @Column({ nullable: true }) + nsfw_level?: number; + + @Column({ nullable: true }) + nsfw?: boolean; + + // TODO: nested guilds + @Column({ nullable: true }) + parent?: string; + + // only for developer portal + permissions?: number; + + //new guild settings, 11/08/2022: + @Column({ nullable: true }) + premium_progress_bar_enabled: boolean = false; + + static async createGuild(body: { + name?: string; + icon?: string | null; + owner_id?: string; + channels?: Partial[]; + }) { + const guild_id = Snowflake.generate(); + + const guild: Guild = OrmUtils.mergeDeep(new Guild(), { + name: body.name || "Fosscord", + icon: await handleFile(`/icons/${guild_id}`, body.icon as string), + region: Config.get().regions.default, + owner_id: body.owner_id, // TODO: need to figure out a way for ownerless guilds and multiply-owned guilds + afk_timeout: 300, + default_message_notifications: 1, // defaults effect: setting the push default at mentions-only will save a lot + explicit_content_filter: 0, + features: [], + primary_category_id: null, + id: guild_id, + max_members: 250000, + max_presences: 250000, + max_video_channel_users: 200, + presence_count: 0, + member_count: 0, // will automatically be increased by addMember() + mfa_level: 0, + preferred_locale: "en-US", + premium_subscription_count: 0, + premium_tier: 0, + system_channel_flags: 4, // defaults effect: suppress the setup tips to save performance + unavailable: false, + nsfw: false, + nsfw_level: 0, + verification_level: 0, + welcome_screen: { + enabled: false, + description: "Fill in your description", + welcome_channels: [], + }, + widget_enabled: true, // NB: don't set it as false to prevent artificial restrictions + }); + await guild.save(); + + // we have to create the role _after_ the guild because else we would get a "SQLITE_CONSTRAINT: FOREIGN KEY constraint failed" error + // TODO: make the @everyone a pseudorole that is dynamically generated at runtime so we can save storage + let role: Role = OrmUtils.mergeDeep(new Role(), { + id: guild_id, + guild_id: guild_id, + color: 0, + hoist: false, + managed: false, + // NB: in Fosscord, every role will be non-managed, as we use user-groups instead of roles for managed groups + mentionable: false, + name: "@everyone", + permissions: String("2251804225"), + position: 0, + icon: null, + unicode_emoji: null, + }); + await role.save(); + + if (!body.channels || !body.channels.length) body.channels = [{ id: "01", type: 0, name: "general" }]; + + const ids = new Map(); + + body.channels.forEach((x) => { + if (x.id) { + ids.set(x.id, Snowflake.generate()); + } + }); + + for (const channel of body.channels?.sort((a, b) => (a.parent_id ? 1 : -1))) { + let id = ids.get(channel.id) || Snowflake.generate(); + + let parent_id = ids.get(channel.parent_id); + + await Channel.createChannel({ ...channel, guild_id, id, parent_id }, body.owner_id, { + keepId: true, + skipExistsCheck: true, + skipPermissionCheck: true, + skipEventEmit: true, + }); + } + + return guild; + } +} diff --git a/src/util/entities/Invite.ts b/src/util/entities/Invite.ts new file mode 100644 index 00000000..1e0ebe52 --- /dev/null +++ b/src/util/entities/Invite.ts @@ -0,0 +1,88 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId, PrimaryColumn } from "typeorm"; +import { Member } from "./Member"; +import { BaseClassWithoutId } from "./BaseClass"; +import { Channel } from "./Channel"; +import { Guild } from "./Guild"; +import { User } from "./User"; +import { random } from "@fosscord/api"; + +export const PublicInviteRelation = ["inviter", "guild", "channel"]; + +@Entity("invites") +export class Invite extends BaseClassWithoutId { + @PrimaryColumn() + code: string = random(); + + @Column() + temporary: boolean = true; + + @Column() + uses: number = 0; + + @Column() + max_uses: number; + + @Column() + max_age: number; + + @Column() + created_at: Date = new Date(); + + @Column() + expires_at: Date; + + @Column({ nullable: true }) + @RelationId((invite: Invite) => invite.guild) + guild_id: string; + + @JoinColumn({ name: "guild_id" }) + @ManyToOne(() => Guild, { + onDelete: "CASCADE", + }) + guild: Guild; + + @Column({ nullable: true }) + @RelationId((invite: Invite) => invite.channel) + channel_id: string; + + @JoinColumn({ name: "channel_id" }) + @ManyToOne(() => Channel, { + onDelete: "CASCADE", + }) + channel: Channel; + + @Column({ nullable: true }) + @RelationId((invite: Invite) => invite.inviter) + inviter_id: string; + + @JoinColumn({ name: "inviter_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE" + }) + inviter: User; + + @Column({ nullable: true }) + @RelationId((invite: Invite) => invite.target_user) + target_user_id: string; + + @JoinColumn({ name: "target_user_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + target_user?: string; // could be used for "User specific invites" https://github.com/fosscord/fosscord/issues/62 + + @Column({ nullable: true }) + target_user_type?: number; + + @Column({ nullable: true }) + vanity_url?: boolean; + + static async joinGuild(user_id: string, code: string) { + const invite = await Invite.findOneOrFail({ where: { code } }); + if (invite.uses++ >= invite.max_uses && invite.max_uses !== 0) await Invite.delete({ code }); + else await invite.save(); + + await Member.addToGuild(user_id, invite.guild_id); + return invite; + } +} diff --git a/src/util/entities/Member.ts b/src/util/entities/Member.ts new file mode 100644 index 00000000..baac58ed --- /dev/null +++ b/src/util/entities/Member.ts @@ -0,0 +1,360 @@ +import { PublicUser, User } from "./User"; +import { BaseClass } from "./BaseClass"; +import { + Column, + Entity, + Index, + JoinColumn, + JoinTable, + ManyToMany, + ManyToOne, + PrimaryGeneratedColumn, + RelationId, +} from "typeorm"; +import { Guild } from "./Guild"; +import { Config, emitEvent } from "../util"; +import { + GuildCreateEvent, + GuildDeleteEvent, + GuildMemberAddEvent, + GuildMemberRemoveEvent, + GuildMemberUpdateEvent, +} from "../interfaces"; +import { HTTPError } from "../util/imports/HTTPError"; +import { Role } from "./Role"; +import { BaseClassWithoutId } from "./BaseClass"; +import { Ban, PublicGuildRelations } from "."; +import { DiscordApiErrors } from "../util/Constants"; +import { OrmUtils } from "../util/imports/OrmUtils"; + +export const MemberPrivateProjection: (keyof Member)[] = [ + "id", + "guild", + "guild_id", + "deaf", + "joined_at", + "last_message_id", + "mute", + "nick", + "pending", + "premium_since", + "roles", + "settings", + "user", +]; + +@Entity("members") +@Index(["id", "guild_id"], { unique: true }) +export class Member extends BaseClassWithoutId { + @PrimaryGeneratedColumn() + index: string; + + @Column() + @RelationId((member: Member) => member.user) + id: string; + + @JoinColumn({ name: "id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + user: User; + + @Column() + @RelationId((member: Member) => member.guild) + guild_id: string; + + @JoinColumn({ name: "guild_id" }) + @ManyToOne(() => Guild, { + onDelete: "CASCADE", + }) + guild: Guild; + + @Column({ nullable: true }) + nick?: string; + + @JoinTable({ + name: "member_roles", + joinColumn: { name: "index", referencedColumnName: "index" }, + inverseJoinColumn: { + name: "role_id", + referencedColumnName: "id", + }, + }) + @ManyToMany(() => Role, { cascade: true }) + roles: Role[]; + + @Column() + joined_at: Date; + + @Column({ nullable: true }) + premium_since?: Date; + + @Column() + deaf: boolean; + + @Column() + mute: boolean; + + @Column() + pending: boolean; + + @Column({ type: "simple-json", select: false }) + settings: UserGuildSettings; + + @Column({ nullable: true }) + last_message_id?: string; + + /** + @JoinColumn({ name: "id" }) + @ManyToOne(() => User, { + onDelete: "DO NOTHING", + // do not auto-kick force-joined members just because their joiners left the server + }) **/ + @Column({ nullable: true }) + joined_by?: string; + + // TODO: add this when we have proper read receipts + // @Column({ type: "simple-json" }) + // read_state: ReadState; + + static async IsInGuildOrFail(user_id: string, guild_id: string) { + if (await Member.count({ where: { id: user_id, guild: { id: guild_id } } })) return true; + throw new HTTPError("You are not member of this guild", 403); + } + + static async removeFromGuild(user_id: string, guild_id: string) { + const guild = await Guild.findOneOrFail({ select: ["owner_id", "member_count"], where: { id: guild_id } }); + if (guild.owner_id === user_id) throw new Error("The owner cannot be removed of the guild"); + const member = await Member.findOneOrFail({ where: { id: user_id, guild_id }, relations: ["user"] }); + + // use promise all to execute all promises at the same time -> save time + //TODO: check for bugs + if (guild.member_count) guild.member_count--; + return Promise.all([ + Member.delete({ + id: user_id, + guild_id, + }), + //Guild.decrement({ id: guild_id }, "member_count", -1), + + emitEvent({ + event: "GUILD_DELETE", + data: { + id: guild_id, + }, + user_id: user_id, + } as GuildDeleteEvent), + emitEvent({ + event: "GUILD_MEMBER_REMOVE", + data: { guild_id, user: member.user }, + guild_id, + } as GuildMemberRemoveEvent), + ]); + } + + static async addRole(user_id: string, guild_id: string, role_id: string) { + const [member, role] = await Promise.all([ + // @ts-ignore + Member.findOneOrFail({ + where: { id: user_id, guild_id }, + relations: ["user", "roles"], // we don't want to load the role objects just the ids + select: ["index"], + }), + Role.findOneOrFail({ where: { id: role_id, guild_id }, select: ["id"] }), + ]); + member.roles.push(OrmUtils.mergeDeep(new Role(), { id: role_id })); + + await Promise.all([ + member.save(), + emitEvent({ + event: "GUILD_MEMBER_UPDATE", + data: { + guild_id, + user: member.user, + roles: member.roles.map((x) => x.id), + }, + guild_id, + } as GuildMemberUpdateEvent), + ]); + } + + static async removeRole(user_id: string, guild_id: string, role_id: string) { + const [member] = await Promise.all([ + // @ts-ignore + Member.findOneOrFail({ + where: { id: user_id, guild_id }, + relations: ["user", "roles"], // we don't want to load the role objects just the ids + select: ["index"], + }), + await Role.findOneOrFail({ where: { id: role_id, guild_id } }), + ]); + member.roles = member.roles.filter((x) => x.id == role_id); + + await Promise.all([ + member.save(), + emitEvent({ + event: "GUILD_MEMBER_UPDATE", + data: { + guild_id, + user: member.user, + roles: member.roles.map((x) => x.id), + }, + guild_id, + } as GuildMemberUpdateEvent), + ]); + } + + static async changeNickname(user_id: string, guild_id: string, nickname: string) { + const member = await Member.findOneOrFail({ + where: { + id: user_id, + guild_id, + }, + relations: ["user"], + }); + member.nick = nickname; + + await Promise.all([ + member.save(), + + emitEvent({ + event: "GUILD_MEMBER_UPDATE", + data: { + guild_id, + user: member.user, + nick: nickname, + }, + guild_id, + } as GuildMemberUpdateEvent), + ]); + } + + static async addToGuild(user_id: string, guild_id: string) { + const user = await User.getPublicUser(user_id); + const isBanned = await Ban.count({ where: { guild_id, user_id } }); + if (isBanned) { + throw DiscordApiErrors.USER_BANNED; + } + const { maxGuilds } = Config.get().limits.user; + const guild_count = await Member.count({ where: { id: user_id } }); + if (guild_count >= maxGuilds) { + throw new HTTPError(`You are at the ${maxGuilds} server limit.`, 403); + } + + const guild = await Guild.findOneOrFail({ + where: { + id: guild_id, + }, + relations: PublicGuildRelations, + }); + + if (await Member.count({ where: { id: user.id, guild: { id: guild_id } } })) + throw new HTTPError("You are already a member of this guild", 400); + + const member = { + id: user_id, + guild_id, + nick: undefined, + roles: [guild_id], // @everyone role + joined_at: new Date(), + premium_since: null, + deaf: false, + mute: false, + pending: false, + }; + //TODO: check for bugs + if (guild.member_count) guild.member_count++; + await Promise.all([ + OrmUtils.mergeDeep(new Member(), { + ...member, + roles: [OrmUtils.mergeDeep(new Role(), { id: guild_id })], + // read_state: {}, + settings: { + channel_overrides: [], + message_notifications: 0, + mobile_push: true, + muted: false, + suppress_everyone: false, + suppress_roles: false, + version: 0, + }, + // Member.save is needed because else the roles relations wouldn't be updated + }).save(), + //Guild.increment({ id: guild_id }, "member_count", 1), + emitEvent({ + event: "GUILD_MEMBER_ADD", + data: { + ...member, + user, + guild_id, + }, + guild_id, + } as GuildMemberAddEvent), + emitEvent({ + event: "GUILD_CREATE", + data: { + ...guild, + members: [...guild.members, { ...member, user }], + member_count: (guild.member_count || 0) + 1, + guild_hashes: {}, + guild_scheduled_events: [], + joined_at: member.joined_at, + presences: [], + stage_instances: [], + threads: [], + }, + user_id, + } as GuildCreateEvent), + ]); + } +} + +export interface UserGuildSettings { + channel_overrides: { + channel_id: string; + message_notifications: number; + mute_config: MuteConfig; + muted: boolean; + }[]; + message_notifications: number; + mobile_push: boolean; + mute_config: MuteConfig; + muted: boolean; + suppress_everyone: boolean; + suppress_roles: boolean; + version: number; +} + +export interface MuteConfig { + end_time: number; + selected_time_window: number; +} + +export type PublicMemberKeys = + | "id" + | "guild_id" + | "nick" + | "roles" + | "joined_at" + | "pending" + | "deaf" + | "mute" + | "premium_since"; + +export const PublicMemberProjection: PublicMemberKeys[] = [ + "id", + "guild_id", + "nick", + "roles", + "joined_at", + "pending", + "deaf", + "mute", + "premium_since", +]; + +// @ts-ignore +export type PublicMember = Pick> & { + user: PublicUser; + roles: string[]; // only role ids not objects +}; diff --git a/src/util/entities/Message.ts b/src/util/entities/Message.ts new file mode 100644 index 00000000..ba3d4f2d --- /dev/null +++ b/src/util/entities/Message.ts @@ -0,0 +1,284 @@ +import { User } from "./User"; +import { Member } from "./Member"; +import { Role } from "./Role"; +import { Channel } from "./Channel"; +import { InteractionType } from "../interfaces/Interaction"; +import { Application } from "./Application"; +import { + Column, + CreateDateColumn, + Entity, + Index, + JoinColumn, + JoinTable, + ManyToMany, + ManyToOne, + OneToMany, + RelationId, + RemoveOptions, + UpdateDateColumn, +} from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { Guild } from "./Guild"; +import { Webhook } from "./Webhook"; +import { Sticker } from "./Sticker"; +import { Attachment } from "./Attachment"; + +export enum MessageType { + DEFAULT = 0, + RECIPIENT_ADD = 1, + RECIPIENT_REMOVE = 2, + CALL = 3, + CHANNEL_NAME_CHANGE = 4, + CHANNEL_ICON_CHANGE = 5, + CHANNEL_PINNED_MESSAGE = 6, + GUILD_MEMBER_JOIN = 7, + USER_PREMIUM_GUILD_SUBSCRIPTION = 8, + USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1 = 9, + USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2 = 10, + USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3 = 11, + CHANNEL_FOLLOW_ADD = 12, + ACTION = 13, // /me messages + GUILD_DISCOVERY_DISQUALIFIED = 14, + GUILD_DISCOVERY_REQUALIFIED = 15, + ENCRYPTED = 16, + REPLY = 19, + APPLICATION_COMMAND = 20, // application command or self command invocation + ROUTE_ADDED = 41, // custom message routing: new route affecting that channel + ROUTE_DISABLED = 42, // custom message routing: given route no longer affecting that channel + SELF_COMMAND_SCRIPT = 43, // self command scripts + ENCRYPTION = 50, + CUSTOM_START = 63, + UNHANDLED = 255 +} + +@Entity("messages") +@Index(["channel_id", "id"], { unique: true }) +export class Message extends BaseClass { + @Column({ nullable: true }) + @RelationId((message: Message) => message.channel) + @Index() + channel_id: string; + + @JoinColumn({ name: "channel_id" }) + @ManyToOne(() => Channel, { + onDelete: "CASCADE", + }) + channel: Channel; + + @Column({ nullable: true }) + @RelationId((message: Message) => message.guild) + guild_id?: string; + + @JoinColumn({ name: "guild_id" }) + @ManyToOne(() => Guild, { + onDelete: "CASCADE", + }) + guild?: Guild; + + @Column({ nullable: true }) + @RelationId((message: Message) => message.author) + @Index() + author_id: string; + + @JoinColumn({ name: "author_id", referencedColumnName: "id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + author?: User; + + @Column({ nullable: true }) + @RelationId((message: Message) => message.member) + member_id: string; + + @JoinColumn({ name: "member_id", referencedColumnName: "id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + member?: Member; + + @Column({ nullable: true }) + @RelationId((message: Message) => message.webhook) + webhook_id: string; + + @JoinColumn({ name: "webhook_id" }) + @ManyToOne(() => Webhook) + webhook?: Webhook; + + @Column({ nullable: true }) + @RelationId((message: Message) => message.application) + application_id: string; + + @JoinColumn({ name: "application_id" }) + @ManyToOne(() => Application) + application?: Application; + + @Column({ nullable: true }) + content?: string; + + @Column() + @CreateDateColumn() + timestamp: Date; + + @Column({ nullable: true }) + edited_timestamp?: Date; + + @Column({ nullable: true }) + tts?: boolean; + + @Column({ nullable: true }) + mention_everyone?: boolean; + + @JoinTable({ name: "message_user_mentions" }) + @ManyToMany(() => User) + mentions: User[]; + + @JoinTable({ name: "message_role_mentions" }) + @ManyToMany(() => Role) + mention_roles: Role[]; + + @JoinTable({ name: "message_channel_mentions" }) + @ManyToMany(() => Channel) + mention_channels: Channel[]; + + @JoinTable({ name: "message_stickers" }) + @ManyToMany(() => Sticker, { cascade: true, onDelete: "CASCADE" }) + sticker_items?: Sticker[]; + + @OneToMany(() => Attachment, (attachment: Attachment) => attachment.message, { + cascade: true, + orphanedRowAction: "delete", + }) + attachments?: Attachment[]; + + @Column({ type: "simple-json" }) + embeds: Embed[]; + + @Column({ type: "simple-json" }) + reactions: Reaction[]; + + @Column({ type: "text", nullable: true }) + nonce?: string; + + @Column({ nullable: true }) + pinned?: boolean; + + @Column({ type: "int" }) + type: MessageType; + + @Column({ type: "simple-json", nullable: true }) + activity?: { + type: number; + party_id: string; + }; + + @Column({ nullable: true }) + flags?: string; + @Column({ type: "simple-json", nullable: true }) + message_reference?: { + message_id: string; + channel_id?: string; + guild_id?: string; + }; + + @JoinColumn({ name: "message_reference_id" }) + @ManyToOne(() => Message) + referenced_message?: Message; + + @Column({ type: "simple-json", nullable: true }) + interaction?: { + id: string; + type: InteractionType; + name: string; + user_id: string; // the user who invoked the interaction + // user: User; // TODO: autopopulate user + }; + + @Column({ type: "simple-json", nullable: true }) + components?: MessageComponent[]; +} + +export interface MessageComponent { + type: number; + style?: number; + label?: string; + emoji?: PartialEmoji; + custom_id?: string; + url?: string; + disabled?: boolean; + components: MessageComponent[]; +} + +export enum MessageComponentType { + Script = 0, // self command script + ActionRow = 1, + Button = 2, +} + +export interface Embed { + title?: string; //title of embed + type?: EmbedType; // type of embed (always "rich" for webhook embeds) + description?: string; // description of embed + url?: string; // url of embed + timestamp?: Date; // timestamp of embed content + color?: number; // color code of the embed + footer?: { + text: string; + icon_url?: string; + proxy_icon_url?: string; + }; // footer object footer information + image?: EmbedImage; // image object image information + thumbnail?: EmbedImage; // thumbnail object thumbnail information + video?: EmbedImage; // video object video information + provider?: { + name?: string; + url?: string; + }; // provider object provider information + author?: { + name?: string; + url?: string; + icon_url?: string; + proxy_icon_url?: string; + }; // author object author information + fields?: { + name: string; + value: string; + inline?: boolean; + }[]; +} + +export enum EmbedType { + rich = "rich", + image = "image", + video = "video", + gifv = "gifv", + article = "article", + link = "link", +} + +export interface EmbedImage { + url?: string; + proxy_url?: string; + height?: number; + width?: number; +} + +export interface Reaction { + count: number; + //// not saved in the database // me: boolean; // whether the current user reacted using this emoji + emoji: PartialEmoji; + user_ids: string[]; +} + +export interface PartialEmoji { + id?: string; + name: string; + animated?: boolean; +} + +export interface AllowedMentions { + parse?: ("users" | "roles" | "everyone")[]; + roles?: string[]; + users?: string[]; + replied_user?: boolean; +} diff --git a/src/util/entities/Migration.ts b/src/util/entities/Migration.ts new file mode 100644 index 00000000..3f39ae72 --- /dev/null +++ b/src/util/entities/Migration.ts @@ -0,0 +1,18 @@ +import { Column, Entity, ObjectIdColumn, PrimaryGeneratedColumn } from "typeorm"; +import { BaseClassWithoutId } from "."; + +export const PrimaryIdAutoGenerated = process.env.DATABASE?.startsWith("mongodb") + ? ObjectIdColumn + : PrimaryGeneratedColumn; + +@Entity("migrations") +export class Migration extends BaseClassWithoutId { + @PrimaryIdAutoGenerated() + id: number; + + @Column({ type: "bigint" }) + timestamp: number; + + @Column() + name: string; +} diff --git a/src/util/entities/Note.ts b/src/util/entities/Note.ts new file mode 100644 index 00000000..36017c5e --- /dev/null +++ b/src/util/entities/Note.ts @@ -0,0 +1,18 @@ +import { Column, Entity, JoinColumn, ManyToOne, Unique } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { User } from "./User"; + +@Entity("notes") +@Unique(["owner", "target"]) +export class Note extends BaseClass { + @JoinColumn({ name: "owner_id" }) + @ManyToOne(() => User, { onDelete: "CASCADE" }) + owner: User; + + @JoinColumn({ name: "target_id" }) + @ManyToOne(() => User, { onDelete: "CASCADE" }) + target: User; + + @Column() + content: string; +} \ No newline at end of file diff --git a/src/util/entities/RateLimit.ts b/src/util/entities/RateLimit.ts new file mode 100644 index 00000000..f5916f6b --- /dev/null +++ b/src/util/entities/RateLimit.ts @@ -0,0 +1,17 @@ +import { Column, Entity } from "typeorm"; +import { BaseClass } from "./BaseClass"; + +@Entity("rate_limits") +export class RateLimit extends BaseClass { + @Column() // no relation as it also + executor_id: string; + + @Column() + hits: number; + + @Column() + blocked: boolean; + + @Column() + expires_at: Date; +} diff --git a/src/util/entities/ReadState.ts b/src/util/entities/ReadState.ts new file mode 100644 index 00000000..b915573b --- /dev/null +++ b/src/util/entities/ReadState.ts @@ -0,0 +1,55 @@ +import { Column, Entity, Index, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { Channel } from "./Channel"; +import { Message } from "./Message"; +import { User } from "./User"; + +// for read receipts +// notification cursor and public read receipt need to be forwards-only (the former to prevent re-pinging when marked as unread, and the latter to be acceptable as a legal acknowledgement in criminal proceedings), and private read marker needs to be advance-rewind capable +// public read receipt ≥ notification cursor ≥ private fully read marker + +@Entity("read_states") +@Index(["channel_id", "user_id"], { unique: true }) +export class ReadState extends BaseClass { + @Column() + @RelationId((read_state: ReadState) => read_state.channel) + channel_id: string; + + @JoinColumn({ name: "channel_id" }) + @ManyToOne(() => Channel, { + onDelete: "CASCADE", + }) + channel: Channel; + + @Column() + @RelationId((read_state: ReadState) => read_state.user) + user_id: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + user: User; + + // fully read marker + @Column({ nullable: true }) + last_message_id: string; + + // public read receipt + @Column({ nullable: true }) + public_ack: string; + + // notification cursor / private read receipt + @Column({ nullable: true }) + notifications_cursor: string; + + @Column({ nullable: true }) + last_pin_timestamp?: Date; + + @Column({ nullable: true }) + mention_count: number; + + // @Column({ nullable: true }) + // TODO: derive this from (last_message_id=notifications_cursor=public_ack)=true + manual: boolean; +} diff --git a/src/util/entities/Recipient.ts b/src/util/entities/Recipient.ts new file mode 100644 index 00000000..a945f938 --- /dev/null +++ b/src/util/entities/Recipient.ts @@ -0,0 +1,30 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; + +@Entity("recipients") +export class Recipient extends BaseClass { + @Column() + @RelationId((recipient: Recipient) => recipient.channel) + channel_id: string; + + @JoinColumn({ name: "channel_id" }) + @ManyToOne(() => require("./Channel").Channel, { + onDelete: "CASCADE", + }) + channel: import("./Channel").Channel; + + @Column() + @RelationId((recipient: Recipient) => recipient.user) + user_id: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => require("./User").User, { + onDelete: "CASCADE", + }) + user: import("./User").User; + + @Column({ default: false }) + closed: boolean; + + // TODO: settings/mute/nick/added at/encryption keys/read_state +} diff --git a/src/util/entities/Relationship.ts b/src/util/entities/Relationship.ts new file mode 100644 index 00000000..c3592c76 --- /dev/null +++ b/src/util/entities/Relationship.ts @@ -0,0 +1,49 @@ +import { Column, Entity, Index, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { User } from "./User"; + +export enum RelationshipType { + outgoing = 4, + incoming = 3, + blocked = 2, + friends = 1, +} + +@Entity("relationships") +@Index(["from_id", "to_id"], { unique: true }) +export class Relationship extends BaseClass { + @Column({}) + @RelationId((relationship: Relationship) => relationship.from) + from_id: string; + + @JoinColumn({ name: "from_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + from: User; + + @Column({}) + @RelationId((relationship: Relationship) => relationship.to) + to_id: string; + + @JoinColumn({ name: "to_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + to: User; + + @Column({ nullable: true }) + nickname?: string; + + @Column({ type: "int" }) + type: RelationshipType; + + toPublicRelationship() { + return { + id: this.to?.id || this.to_id, + type: this.type, + nickname: this.nickname, + user: this.to?.toPublicUser(), + }; + } +} diff --git a/src/util/entities/Role.ts b/src/util/entities/Role.ts new file mode 100644 index 00000000..4b721b5b --- /dev/null +++ b/src/util/entities/Role.ts @@ -0,0 +1,51 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; + +import { BaseClass } from "./BaseClass"; +import { Guild } from "./Guild"; + +@Entity("roles") +export class Role extends BaseClass { + @Column({ nullable: true }) + @RelationId((role: Role) => role.guild) + guild_id: string; + + @JoinColumn({ name: "guild_id" }) + @ManyToOne(() => Guild, { + onDelete: "CASCADE", + }) + guild: Guild; + + @Column() + color: number; + + @Column() + hoist: boolean; + + @Column() + managed: boolean; + + @Column() + mentionable: boolean; + + @Column() + name: string; + + @Column() + permissions: string; + + @Column() + position: number; + + @Column({ nullable: true }) + icon: string; + + @Column({ nullable: true }) + unicode_emoji: string; + + @Column({ type: "simple-json", nullable: true }) + tags?: { + bot_id?: string; + integration_id?: string; + premium_subscriber?: boolean; + }; +} diff --git a/src/util/entities/Session.ts b/src/util/entities/Session.ts new file mode 100644 index 00000000..969efa89 --- /dev/null +++ b/src/util/entities/Session.ts @@ -0,0 +1,46 @@ +import { User } from "./User"; +import { BaseClass } from "./BaseClass"; +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { Status } from "../interfaces/Status"; +import { Activity } from "../interfaces/Activity"; + +//TODO we need to remove all sessions on server start because if the server crashes without closing websockets it won't delete them + +@Entity("sessions") +export class Session extends BaseClass { + @Column({ nullable: true }) + @RelationId((session: Session) => session.user) + user_id: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + user: User; + + //TODO check, should be 32 char long hex string + @Column({ nullable: false, select: false }) + session_id: string; + + @Column({ type: "simple-json", nullable: true }) + activities: Activity[]; + + // TODO client_status + @Column({ type: "simple-json", select: false }) + client_info: { + client: string; + os: string; + version: number; + }; + + @Column({ nullable: false, type: "varchar" }) + status: Status; //TODO enum +} + +export const PrivateSessionProjection: (keyof Session)[] = [ + "user_id", + "session_id", + "activities", + "client_info", + "status", +]; diff --git a/src/util/entities/Sticker.ts b/src/util/entities/Sticker.ts new file mode 100644 index 00000000..37bc6fbe --- /dev/null +++ b/src/util/entities/Sticker.ts @@ -0,0 +1,66 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { User } from "./User"; +import { BaseClass } from "./BaseClass"; +import { Guild } from "./Guild"; + +export enum StickerType { + STANDARD = 1, + GUILD = 2, +} + +export enum StickerFormatType { + GIF = 0, // gif is a custom format type and not in discord spec + PNG = 1, + APNG = 2, + LOTTIE = 3, +} + +@Entity("stickers") +export class Sticker extends BaseClass { + @Column() + name: string; + + @Column({ nullable: true }) + description?: string; + + @Column({ nullable: true }) + available?: boolean; + + @Column({ nullable: true }) + tags?: string; + + @Column({ nullable: true }) + @RelationId((sticker: Sticker) => sticker.pack) + pack_id?: string; + + @JoinColumn({ name: "pack_id" }) + @ManyToOne(() => require("./StickerPack").StickerPack, { + onDelete: "CASCADE", + nullable: true, + }) + pack: import("./StickerPack").StickerPack; + + @Column({ nullable: true }) + guild_id?: string; + + @JoinColumn({ name: "guild_id" }) + @ManyToOne(() => Guild, { + onDelete: "CASCADE", + }) + guild?: Guild; + + @Column({ nullable: true }) + user_id?: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + user?: User; + + @Column({ type: "int" }) + type: StickerType; + + @Column({ type: "int" }) + format_type: StickerFormatType; +} diff --git a/src/util/entities/StickerPack.ts b/src/util/entities/StickerPack.ts new file mode 100644 index 00000000..ec8c69a2 --- /dev/null +++ b/src/util/entities/StickerPack.ts @@ -0,0 +1,31 @@ +import { Column, Entity, JoinColumn, ManyToOne, OneToMany, OneToOne, RelationId } from "typeorm"; +import { Sticker } from "."; +import { BaseClass } from "./BaseClass"; + +@Entity("sticker_packs") +export class StickerPack extends BaseClass { + @Column() + name: string; + + @Column({ nullable: true }) + description?: string; + + @Column({ nullable: true }) + banner_asset_id?: string; + + @OneToMany(() => Sticker, (sticker: Sticker) => sticker.pack, { + cascade: true, + orphanedRowAction: "delete", + }) + stickers: Sticker[]; + + // sku_id: string + + @Column({ nullable: true }) + @RelationId((pack: StickerPack) => pack.cover_sticker) + cover_sticker_id?: string; + + @ManyToOne(() => Sticker, { nullable: true }) + @JoinColumn() + cover_sticker?: Sticker; +} diff --git a/src/util/entities/Team.ts b/src/util/entities/Team.ts new file mode 100644 index 00000000..22140b7f --- /dev/null +++ b/src/util/entities/Team.ts @@ -0,0 +1,27 @@ +import { Column, Entity, JoinColumn, ManyToMany, ManyToOne, OneToMany, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { TeamMember } from "./TeamMember"; +import { User } from "./User"; + +@Entity("teams") +export class Team extends BaseClass { + @Column({ nullable: true }) + icon?: string; + + @JoinColumn({ name: "member_ids" }) + @OneToMany(() => TeamMember, (member: TeamMember) => member.team, { + orphanedRowAction: "delete", + }) + members: TeamMember[]; + + @Column() + name: string; + + @Column({ nullable: true }) + @RelationId((team: Team) => team.owner_user) + owner_user_id: string; + + @JoinColumn({ name: "owner_user_id" }) + @ManyToOne(() => User) + owner_user: User; +} diff --git a/src/util/entities/TeamMember.ts b/src/util/entities/TeamMember.ts new file mode 100644 index 00000000..b726e1e8 --- /dev/null +++ b/src/util/entities/TeamMember.ts @@ -0,0 +1,37 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { User } from "./User"; + +export enum TeamMemberState { + INVITED = 1, + ACCEPTED = 2, +} + +@Entity("team_members") +export class TeamMember extends BaseClass { + @Column({ type: "int" }) + membership_state: TeamMemberState; + + @Column({ type: "simple-array" }) + permissions: string[]; + + @Column({ nullable: true }) + @RelationId((member: TeamMember) => member.team) + team_id: string; + + @JoinColumn({ name: "team_id" }) + @ManyToOne(() => require("./Team").Team, (team: import("./Team").Team) => team.members, { + onDelete: "CASCADE", + }) + team: import("./Team").Team; + + @Column({ nullable: true }) + @RelationId((member: TeamMember) => member.user) + user_id: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + user: User; +} diff --git a/src/util/entities/Template.ts b/src/util/entities/Template.ts new file mode 100644 index 00000000..1d952283 --- /dev/null +++ b/src/util/entities/Template.ts @@ -0,0 +1,44 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { Guild } from "./Guild"; +import { User } from "./User"; + +@Entity("templates") +export class Template extends BaseClass { + @Column({ unique: true }) + code: string; + + @Column() + name: string; + + @Column({ nullable: true }) + description?: string; + + @Column({ nullable: true }) + usage_count?: number; + + @Column({ nullable: true }) + @RelationId((template: Template) => template.creator) + creator_id: string; + + @JoinColumn({ name: "creator_id" }) + @ManyToOne(() => User) + creator: User; + + @Column() + created_at: Date; + + @Column() + updated_at: Date; + + @Column({ nullable: true }) + @RelationId((template: Template) => template.source_guild) + source_guild_id: string; + + @JoinColumn({ name: "source_guild_id" }) + @ManyToOne(() => Guild) + source_guild: Guild; + + @Column({ type: "simple-json" }) + serialized_source_guild: Guild; +} diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts new file mode 100644 index 00000000..61343e81 --- /dev/null +++ b/src/util/entities/User.ts @@ -0,0 +1,324 @@ +import { Column, Entity, FindOneOptions, FindOptionsSelectByString, JoinColumn, OneToMany, OneToOne } from "typeorm"; +import { OrmUtils } from "../util/imports/OrmUtils"; +import { BaseClass } from "./BaseClass"; +import { BitField } from "../util/BitField"; +import { Relationship } from "./Relationship"; +import { ConnectedAccount } from "./ConnectedAccount"; +import { Config, FieldErrors, Snowflake, trimSpecial } from ".."; +import { Member, Session, UserSettings } from "."; + +export enum PublicUserEnum { + username, + discriminator, + id, + public_flags, + avatar, + accent_color, + banner, + bio, + bot, + premium_since, +} +export type PublicUserKeys = keyof typeof PublicUserEnum; + +export enum PrivateUserEnum { + flags, + mfa_enabled, + email, + phone, + verified, + nsfw_allowed, + premium, + premium_type, + disabled, + settings, + // locale +} +export type PrivateUserKeys = keyof typeof PrivateUserEnum | PublicUserKeys; + +export const PublicUserProjection = Object.values(PublicUserEnum).filter( + (x) => typeof x === "string" +) as PublicUserKeys[]; +export const PrivateUserProjection = [ + ...PublicUserProjection, + ...Object.values(PrivateUserEnum).filter((x) => typeof x === "string"), +] as PrivateUserKeys[]; + +// Private user data that should never get sent to the client +export type PublicUser = Pick; + +export interface UserPublic extends Pick {} + +export interface UserPrivate extends Pick { + locale: string; +} + +// TODO: add purchased_flags, premium_usage_flags + +@Entity("users") +export class User extends BaseClass { + @Column() + username: string; // username max length 32, min 2 (should be configurable) + + @Column() + discriminator: string; // opaque string: 4 digits on discord.com + + setDiscriminator(val: string) { + const number = Number(val); + if (isNaN(number)) throw new Error("invalid discriminator"); + if (number <= 0 || number >= 10000) throw new Error("discriminator must be between 1 and 9999"); + this.discriminator = val.toString().padStart(4, "0"); + } + + @Column({ nullable: true }) + avatar?: string; // hash of the user avatar + + @Column({ nullable: true }) + accent_color?: number; // banner color of user + + @Column({ nullable: true }) + banner?: string; // hash of the user banner + + @Column({ nullable: true, select: false }) + phone?: string; // phone number of the user + + @Column({ select: false }) + desktop: boolean = false; // if the user has desktop app installed + + @Column({ select: false }) + mobile: boolean = false; // if the user has mobile app installed + + @Column() + premium: boolean = Config.get().defaults.user.premium; // if user bought individual premium + + @Column() + premium_type: number = Config.get().defaults.user.premium_type; // individual premium level + + @Column() + bot: boolean = false; // if user is bot + + @Column() + bio: string; // short description of the user (max 190 chars -> should be configurable) + + @Column() + system: boolean = false; // shouldn't be used, the api sends this field type true, if the generated message comes from a system generated author + + @Column({ select: false }) + nsfw_allowed: boolean = true; // if the user can do age-restricted actions (NSFW channels/guilds/commands) // TODO: depending on age + + @Column({ select: false }) + mfa_enabled: boolean; // if multi factor authentication is enabled + + @Column({ select: false, nullable: true }) + totp_secret?: string; + + @Column({ nullable: true, select: false }) + totp_last_ticket?: string; + + @Column() + created_at: Date = new Date(); // registration date + + @Column({ nullable: true }) + premium_since: Date = new Date(); // premium date + + @Column({ select: false }) + verified: boolean = Config.get().defaults.user.verified; // if the user is offically verified + + @Column() + disabled: boolean = false; // if the account is disabled + + @Column() + deleted: boolean = false; // if the user was deleted + + @Column({ nullable: true, select: false }) + email?: string; // email of the user + + @Column() + flags: string = "0"; // UserFlags // TODO: generate + + @Column() + public_flags: number = 0; + + @Column({ type: "bigint" }) + rights: string = Config.get().register.defaultRights; // Rights + + @OneToMany(() => Session, (session: Session) => session.user) + sessions: Session[]; + + @JoinColumn({ name: "relationship_ids" }) + @OneToMany(() => Relationship, (relationship: Relationship) => relationship.from, { + cascade: true, + orphanedRowAction: "delete", + }) + relationships: Relationship[]; + + @JoinColumn({ name: "connected_account_ids" }) + @OneToMany(() => ConnectedAccount, (account: ConnectedAccount) => account.user, { + cascade: true, + orphanedRowAction: "delete", + }) + connected_accounts: ConnectedAccount[]; + + @Column({ type: "simple-json", select: false }) + data: { + valid_tokens_since: Date; // all tokens with a previous issue date are invalid + hash?: string; // hash of the password, salt is saved in password (bcrypt) + }; + + @Column({ type: "simple-array", select: false }) + fingerprints: string[] = []; // array of fingerprints -> used to prevent multiple accounts + + + @OneToOne(()=> UserSettings, { + cascade: true, + orphanedRowAction: "delete", + eager: false + }) + @JoinColumn() + settings: UserSettings; + + // workaround to prevent fossord-unaware clients from deleting settings not used by them + @Column({ type: "simple-json", select: false }) + extended_settings: string = "{}"; + + @Column({ type: "simple-json" }) + notes: { [key: string]: string } = {}; //key is ID of user + + async save(): Promise { + if(!this.settings) this.settings = new UserSettings(); + this.settings.id = this.id; + //await this.settings.save(); + return super.save(); + } + + toPublicUser() { + const user: any = {}; + PublicUserProjection.forEach((x) => { + user[x] = this[x]; + }); + return user as PublicUser; + } + + static async getPublicUser(user_id: string, opts?: FindOneOptions) { + return await User.findOneOrFail({ + where: { id: user_id }, + select: [...PublicUserProjection, ...((opts?.select as FindOptionsSelectByString) || [])], + ...opts, + }); + } + + public static async generateDiscriminator(username: string): Promise { + if (Config.get().register.incrementingDiscriminators) { + // discriminator will be incrementally generated + + // First we need to figure out the currently highest discrimnator for the given username and then increment it + const users = await User.find({ where: { username }, select: ["discriminator"] }); + const highestDiscriminator = Math.max(0, ...users.map((u) => Number(u.discriminator))); + + const discriminator = highestDiscriminator + 1; + if (discriminator >= 10000) { + return undefined; + } + + return discriminator.toString().padStart(4, "0"); + } else { + // discriminator will be randomly generated + + // randomly generates a discriminator between 1 and 9999 and checks max five times if it already exists + // TODO: is there any better way to generate a random discriminator only once, without checking if it already exists in the database? + for (let tries = 0; tries < 5; tries++) { + const discriminator = Math.randomIntBetween(1, 9999).toString().padStart(4, "0"); + const exists = await User.findOne({ where: { discriminator, username: username }, select: ["id"] }); + if (!exists) return discriminator; + } + + return undefined; + } + } + + static async register({ + email, + username, + password, + date_of_birth, + req, + }: { + username: string; + password?: string; + email?: string; + date_of_birth?: Date; // "2000-04-03" + req?: any; + }) { + // trim special uf8 control characters -> Backspace, Newline, ... + username = trimSpecial(username); + + const discriminator = await User.generateDiscriminator(username); + if (!discriminator) { + // We've failed to generate a valid and unused discriminator + throw FieldErrors({ + username: { + code: "USERNAME_TOO_MANY_USERS", + message: req?.t("auth:register.USERNAME_TOO_MANY_USERS"), + }, + }); + } + + // TODO: save date_of_birth + // appearently discord doesn't save the date of birth and just calculate if nsfw is allowed + // if nsfw_allowed is null/undefined it'll require date_of_birth to set it to true/false + const language = req?.language === "en" ? "en-US" : req?.language || "en-US"; + + const user = OrmUtils.mergeDeep(new User(), { + //required: + username: username, + discriminator, + id: Snowflake.generate(), + email: email, + data: { + hash: password, + valid_tokens_since: new Date(), + }, + settings: { ...new UserSettings(), locale: language } + }); + + await user.save(); + await user.settings.save(); + + setImmediate(async () => { + if (Config.get().guild.autoJoin.enabled) { + for (const guild of Config.get().guild.autoJoin.guilds || []) { + await Member.addToGuild(user.id, guild).catch((e) => {}); + } + } + }); + + return user; + } +} + +export const CUSTOM_USER_FLAG_OFFSET = BigInt(1) << BigInt(32); + +export class UserFlags extends BitField { + static FLAGS = { + DISCORD_EMPLOYEE: BigInt(1) << BigInt(0), + PARTNERED_SERVER_OWNER: BigInt(1) << BigInt(1), + HYPESQUAD_EVENTS: BigInt(1) << BigInt(2), + BUGHUNTER_LEVEL_1: BigInt(1) << BigInt(3), + MFA_SMS: BigInt(1) << BigInt(4), + PREMIUM_PROMO_DISMISSED: BigInt(1) << BigInt(5), + HOUSE_BRAVERY: BigInt(1) << BigInt(6), + HOUSE_BRILLIANCE: BigInt(1) << BigInt(7), + HOUSE_BALANCE: BigInt(1) << BigInt(8), + EARLY_SUPPORTER: BigInt(1) << BigInt(9), + TEAM_USER: BigInt(1) << BigInt(10), + TRUST_AND_SAFETY: BigInt(1) << BigInt(11), + SYSTEM: BigInt(1) << BigInt(12), + HAS_UNREAD_URGENT_MESSAGES: BigInt(1) << BigInt(13), + BUGHUNTER_LEVEL_2: BigInt(1) << BigInt(14), + UNDERAGE_DELETED: BigInt(1) << BigInt(15), + VERIFIED_BOT: BigInt(1) << BigInt(16), + EARLY_VERIFIED_BOT_DEVELOPER: BigInt(1) << BigInt(17), + CERTIFIED_MODERATOR: BigInt(1) << BigInt(18), + BOT_HTTP_INTERACTIONS: BigInt(1) << BigInt(19), + }; +} diff --git a/src/util/entities/UserGroup.ts b/src/util/entities/UserGroup.ts new file mode 100644 index 00000000..709b9d0b --- /dev/null +++ b/src/util/entities/UserGroup.ts @@ -0,0 +1,37 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; + +import { BaseClass } from "./BaseClass"; +import { Guild } from "./Guild"; +import { User } from "./User"; + +@Entity("groups") +export class UserGroup extends BaseClass { + @Column() + color: number; + + @Column() + hoist: boolean; + + @JoinColumn({ name: "controller", referencedColumnName: "id" }) + @ManyToOne(() => User) + controller?: User; + + @Column() + mentionable_by?: string; + + @Column() + name: string; + + @Column() + rights: string; + + @Column({ nullable: true }) + icon: string; + + @Column({ nullable: true }) + parent?: string; + + @Column({ type: "simple-array", nullable: true}) + associciations: string[]; + +} diff --git a/src/util/entities/UserSettings.ts b/src/util/entities/UserSettings.ts new file mode 100644 index 00000000..ef6f95af --- /dev/null +++ b/src/util/entities/UserSettings.ts @@ -0,0 +1,119 @@ +import { Column, Entity, JoinColumn } from "typeorm"; +import { BaseClassWithoutId, PrimaryIdColumn } from "."; + +@Entity("user_settings") +export class UserSettings extends BaseClassWithoutId { + @PrimaryIdColumn() + id: string; + + @Column({ nullable: true }) + afk_timeout: number = 3600; + + @Column({ nullable: true }) + allow_accessibility_detection: boolean = true; + + @Column({ nullable: true }) + animate_emoji: boolean = true; + + @Column({ nullable: true }) + animate_stickers: number = 0; + + @Column({ nullable: true }) + contact_sync_enabled: boolean = false; + + @Column({ nullable: true }) + convert_emoticons: boolean = false; + + @Column({ nullable: true, type: "simple-json" }) + custom_status: CustomStatus | null = null; + + @Column({ nullable: true }) + default_guilds_restricted: boolean = false; + + @Column({ nullable: true }) + detect_platform_accounts: boolean = false; + + @Column({ nullable: true }) + developer_mode: boolean = true; + + @Column({ nullable: true }) + disable_games_tab: boolean = true; + + @Column({ nullable: true }) + enable_tts_command: boolean = false; + + @Column({ nullable: true }) + explicit_content_filter: number = 0; + + @Column({ nullable: true, type: "simple-json" }) + friend_source_flags: FriendSourceFlags = { all: true }; + + @Column({ nullable: true }) + gateway_connected: boolean = false; + + @Column({ nullable: true }) + gif_auto_play: boolean = false; + + @Column({ nullable: true, type: "simple-json" }) + guild_folders: GuildFolder[] = []; // every top guild is displayed as a "folder" + + @Column({ nullable: true, type: "simple-json" }) + guild_positions: string[] = []; // guild ids ordered by position + + @Column({ nullable: true }) + inline_attachment_media: boolean = true; + + @Column({ nullable: true }) + inline_embed_media: boolean = true; + + @Column({ nullable: true }) + locale: string = "en-US"; // en_US + + @Column({ nullable: true }) + message_display_compact: boolean = false; + + @Column({ nullable: true }) + native_phone_integration_enabled: boolean = true; + + @Column({ nullable: true }) + render_embeds: boolean = true; + + @Column({ nullable: true }) + render_reactions: boolean = true; + + @Column({ nullable: true, type: "simple-json" }) + restricted_guilds: string[] = []; + + @Column({ nullable: true }) + show_current_game: boolean = true; + + @Column({ nullable: true }) + status: "online" | "offline" | "dnd" | "idle" | "invisible" = "online"; + + @Column({ nullable: true }) + stream_notifications_enabled: boolean = false; + + @Column({ nullable: true }) + theme: "dark" | "white" = "dark"; // dark + + @Column({ nullable: true }) + timezone_offset: number = 0; // e.g -60 +} + +interface CustomStatus { + emoji_id?: string; + emoji_name?: string; + expires_at?: number; + text?: string; +} + +interface GuildFolder { + color: number; + guild_ids: string[]; + id: number; + name: string; +} + +interface FriendSourceFlags { + all: boolean +} \ No newline at end of file diff --git a/src/util/entities/VoiceState.ts b/src/util/entities/VoiceState.ts new file mode 100644 index 00000000..75748a01 --- /dev/null +++ b/src/util/entities/VoiceState.ts @@ -0,0 +1,77 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { BaseClass } from "./BaseClass"; +import { Channel } from "./Channel"; +import { Guild } from "./Guild"; +import { User } from "./User"; +import { Member } from "./Member"; + +//https://gist.github.com/vassjozsef/e482c65df6ee1facaace8b3c9ff66145#file-voice_state-ex +@Entity("voice_states") +export class VoiceState extends BaseClass { + @Column({ nullable: true }) + @RelationId((voice_state: VoiceState) => voice_state.guild) + guild_id: string; + + @JoinColumn({ name: "guild_id" }) + @ManyToOne(() => Guild, { + onDelete: "CASCADE", + }) + guild?: Guild; + + @Column({ nullable: true }) + @RelationId((voice_state: VoiceState) => voice_state.channel) + channel_id: string; + + @JoinColumn({ name: "channel_id" }) + @ManyToOne(() => Channel, { + onDelete: "CASCADE", + }) + channel: Channel; + + @Column({ nullable: true }) + @RelationId((voice_state: VoiceState) => voice_state.user) + user_id: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + user: User; + + // @JoinColumn([{ name: "user_id", referencedColumnName: "id" },{ name: "guild_id", referencedColumnName: "guild_id" }]) + // @ManyToOne(() => Member, { + // onDelete: "CASCADE", + // }) + //TODO find a way to make it work without breaking Guild.voice_states + member: Member; + + @Column() + session_id: string; + + @Column({ nullable: true }) + token: string; + + @Column() + deaf: boolean; + + @Column() + mute: boolean; + + @Column() + self_deaf: boolean; + + @Column() + self_mute: boolean; + + @Column({ nullable: true }) + self_stream?: boolean; + + @Column() + self_video: boolean; + + @Column() + suppress: boolean; // whether this user is muted by the current user + + @Column({ nullable: true, default: null }) + request_to_speak_timestamp?: Date; +} diff --git a/src/util/entities/Webhook.ts b/src/util/entities/Webhook.ts new file mode 100644 index 00000000..89538417 --- /dev/null +++ b/src/util/entities/Webhook.ts @@ -0,0 +1,76 @@ +import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; +import { Application } from "./Application"; +import { BaseClass } from "./BaseClass"; +import { Channel } from "./Channel"; +import { Guild } from "./Guild"; +import { User } from "./User"; + +export enum WebhookType { + Incoming = 1, + ChannelFollower = 2, +} + +@Entity("webhooks") +export class Webhook extends BaseClass { + @Column({ type: "int" }) + type: WebhookType; + + @Column({ nullable: true }) + name?: string; + + @Column({ nullable: true }) + avatar?: string; + + @Column({ nullable: true }) + token?: string; + + @Column({ nullable: true }) + @RelationId((webhook: Webhook) => webhook.guild) + guild_id: string; + + @JoinColumn({ name: "guild_id" }) + @ManyToOne(() => Guild, { + onDelete: "CASCADE", + }) + guild: Guild; + + @Column({ nullable: true }) + @RelationId((webhook: Webhook) => webhook.channel) + channel_id: string; + + @JoinColumn({ name: "channel_id" }) + @ManyToOne(() => Channel, { + onDelete: "CASCADE", + }) + channel: Channel; + + @Column({ nullable: true }) + @RelationId((webhook: Webhook) => webhook.application) + application_id: string; + + @JoinColumn({ name: "application_id" }) + @ManyToOne(() => Application, { + onDelete: "CASCADE", + }) + application: Application; + + @Column({ nullable: true }) + @RelationId((webhook: Webhook) => webhook.user) + user_id: string; + + @JoinColumn({ name: "user_id" }) + @ManyToOne(() => User, { + onDelete: "CASCADE", + }) + user: User; + + @Column({ nullable: true }) + @RelationId((webhook: Webhook) => webhook.guild) + source_guild_id: string; + + @JoinColumn({ name: "source_guild_id" }) + @ManyToOne(() => Guild, { + onDelete: "CASCADE", + }) + source_guild: Guild; +} diff --git a/src/util/entities/index.ts b/src/util/entities/index.ts new file mode 100644 index 00000000..c6f12022 --- /dev/null +++ b/src/util/entities/index.ts @@ -0,0 +1,33 @@ +export * from "./Application"; +export * from "./Attachment"; +export * from "./AuditLog"; +export * from "./Ban"; +export * from "./BaseClass"; +export * from "./Categories"; +export * from "./Channel"; +export * from "./Config"; +export * from "./ConnectedAccount"; +export * from "./Emoji"; +export * from "./Guild"; +export * from "./Invite"; +export * from "./Member"; +export * from "./Message"; +export * from "./Migration"; +export * from "./RateLimit"; +export * from "./ReadState"; +export * from "./Recipient"; +export * from "./Relationship"; +export * from "./Role"; +export * from "./Session"; +export * from "./Sticker"; +export * from "./StickerPack"; +export * from "./Team"; +export * from "./TeamMember"; +export * from "./Template"; +export * from "./User"; +export * from "./VoiceState"; +export * from "./Webhook"; +export * from "./ClientRelease"; +export * from "./BackupCodes"; +export * from "./Note"; +export * from "./UserSettings"; diff --git a/src/util/index.ts b/src/util/index.ts new file mode 100644 index 00000000..d944dc49 --- /dev/null +++ b/src/util/index.ts @@ -0,0 +1,9 @@ +import "reflect-metadata"; + +export * from "./util/index"; +export * from "./config/index"; +export * from "./interfaces/index"; +export * from "./entities/index"; +export * from "./dtos/index"; +export * from "./util/MFA"; +export * from "./schemas"; \ No newline at end of file diff --git a/src/util/interfaces/Activity.ts b/src/util/interfaces/Activity.ts new file mode 100644 index 00000000..43984afd --- /dev/null +++ b/src/util/interfaces/Activity.ts @@ -0,0 +1,44 @@ +export interface Activity { + name: string; // the activity's name + type: ActivityType; // activity type // TODO: check if its between range 0-5 + url?: string; // stream url, is validated when type is 1 + created_at?: number; // unix timestamp of when the activity was added to the user's session + timestamps?: { + // unix timestamps for start and/or end of the game + start: number; + end: number; + }; + application_id?: string; // application id for the game + details?: string; + state?: string; + emoji?: { + name: string; + id?: string; + animated: boolean; + }; + party?: { + id?: string; + size?: [number]; // used to show the party's current and maximum size // TODO: array length 2 + }; + assets?: { + large_image?: string; // the id for a large asset of the activity, usually a snowflake + large_text?: string; // text displayed when hovering over the large image of the activity + small_image?: string; // the id for a small asset of the activity, usually a snowflake + small_text?: string; // text displayed when hovering over the small image of the activity + }; + secrets?: { + join?: string; // the secret for joining a party + spectate?: string; // the secret for spectating a game + match?: string; // the secret for a specific instanced match + }; + instance?: boolean; + flags: string; // activity flags OR d together, describes what the payload includes +} + +export enum ActivityType { + GAME = 0, + STREAMING = 1, + LISTENING = 2, + CUSTOM = 4, + COMPETING = 5, +} diff --git a/src/util/interfaces/Event.ts b/src/util/interfaces/Event.ts new file mode 100644 index 00000000..be66c62f --- /dev/null +++ b/src/util/interfaces/Event.ts @@ -0,0 +1,640 @@ +import { PublicUser, User } from "../entities/User"; +import { Channel } from "../entities/Channel"; +import { Guild } from "../entities/Guild"; +import { Member, PublicMember, UserGuildSettings } from "../entities/Member"; +import { Emoji } from "../entities/Emoji"; +import { Role } from "../entities/Role"; +import { Invite } from "../entities/Invite"; +import { Message, PartialEmoji } from "../entities/Message"; +import { VoiceState } from "../entities/VoiceState"; +import { ApplicationCommand } from "../entities/Application"; +import { Interaction } from "./Interaction"; +import { ConnectedAccount } from "../entities/ConnectedAccount"; +import { Relationship, RelationshipType } from "../entities/Relationship"; +import { Presence } from "./Presence"; +import { Sticker, UserSettings } from ".."; +import { Activity, Status } from "."; + +export interface Event { + guild_id?: string; + user_id?: string; + channel_id?: string; + created_at?: Date; + event: EVENT; + data?: any; +} + +// ! Custom Events that shouldn't get sent to the client but processed by the server + +export interface InvalidatedEvent extends Event { + event: "INVALIDATED"; +} + +export interface PublicRelationship { + id: string; + user: PublicUser; + type: RelationshipType; +} + +// ! END Custom Events that shouldn't get sent to the client but processed by the server + +export interface ReadyEventData { + v: number; + user: PublicUser & { + mobile: boolean; + desktop: boolean; + email: string | undefined; + flags: string; + mfa_enabled: boolean; + nsfw_allowed: boolean; + phone: string | undefined; + premium: boolean; + premium_type: number; + verified: boolean; + bot: boolean; + }; + private_channels: Channel[]; // this will be empty for bots + session_id: string; // resuming + guilds: Guild[]; + analytics_token?: string; + connected_accounts?: ConnectedAccount[]; + consents?: { + personalization?: { + consented?: boolean; + }; + }; + country_code?: string; // e.g. DE + friend_suggestion_count?: number; + geo_ordered_rtc_regions?: string[]; // ["europe","russie","india","us-east","us-central"] + experiments?: [number, number, number, number, number][]; + guild_experiments?: [ + // ? what are guild_experiments? + // this is the structure of it: + number, + null, + number, + [[number, { e: number; s: number }[]]], + [number, [[number, [number, number]]]], + { b: number; k: bigint[] }[] + ][]; + guild_join_requests?: any[]; // ? what is this? this is new + shard?: [number, number]; + user_settings?: UserSettings; + relationships?: PublicRelationship[]; // TODO + read_state: { + entries: any[]; // TODO + partial: boolean; + version: number; + }; + user_guild_settings?: { + entries: UserGuildSettings[]; + version: number; + partial: boolean; + }; + application?: { + id: string; + flags: number; + }; + merged_members?: PublicMember[][]; + // probably all users who the user is in contact with + users?: PublicUser[]; +} + +export interface ReadyEvent extends Event { + event: "READY"; + data: ReadyEventData; +} + +export interface ChannelCreateEvent extends Event { + event: "CHANNEL_CREATE"; + data: Channel; +} + +export interface ChannelUpdateEvent extends Event { + event: "CHANNEL_UPDATE"; + data: Channel; +} + +export interface ChannelDeleteEvent extends Event { + event: "CHANNEL_DELETE"; + data: Channel; +} + +export interface ChannelPinsUpdateEvent extends Event { + event: "CHANNEL_PINS_UPDATE"; + data: { + guild_id?: string; + channel_id: string; + last_pin_timestamp?: number; + }; +} + +export interface ChannelRecipientAddEvent extends Event { + event: "CHANNEL_RECIPIENT_ADD"; + data: { + channel_id: string; + user: User; + }; +} + +export interface ChannelRecipientRemoveEvent extends Event { + event: "CHANNEL_RECIPIENT_REMOVE"; + data: { + channel_id: string; + user: User; + }; +} + +export interface GuildCreateEvent extends Event { + event: "GUILD_CREATE"; + data: Guild & { + joined_at: Date; + // TODO: add them to guild + guild_scheduled_events: never[]; + guild_hashes: {}; + presences: never[]; + stage_instances: never[]; + threads: never[]; + }; +} + +export interface GuildUpdateEvent extends Event { + event: "GUILD_UPDATE"; + data: Guild; +} + +export interface GuildDeleteEvent extends Event { + event: "GUILD_DELETE"; + data: { + id: string; + unavailable?: boolean; + }; +} + +export interface GuildBanAddEvent extends Event { + event: "GUILD_BAN_ADD"; + data: { + guild_id: string; + user: User; + }; +} + +export interface GuildBanRemoveEvent extends Event { + event: "GUILD_BAN_REMOVE"; + data: { + guild_id: string; + user: User; + }; +} + +export interface GuildEmojisUpdateEvent extends Event { + event: "GUILD_EMOJIS_UPDATE"; + data: { + guild_id: string; + emojis: Emoji[]; + }; +} + +export interface GuildStickersUpdateEvent extends Event { + event: "GUILD_STICKERS_UPDATE"; + data: { + guild_id: string; + stickers: Sticker[]; + }; +} + +export interface GuildIntegrationUpdateEvent extends Event { + event: "GUILD_INTEGRATIONS_UPDATE"; + data: { + guild_id: string; + }; +} + +export interface GuildMemberAddEvent extends Event { + event: "GUILD_MEMBER_ADD"; + data: PublicMember & { + guild_id: string; + }; +} + +export interface GuildMemberRemoveEvent extends Event { + event: "GUILD_MEMBER_REMOVE"; + data: { + guild_id: string; + user: User; + }; +} + +export interface GuildMemberUpdateEvent extends Event { + event: "GUILD_MEMBER_UPDATE"; + data: { + guild_id: string; + roles: string[]; + user: User; + nick?: string; + joined_at?: Date; + premium_since?: number; + pending?: boolean; + }; +} + +export interface GuildMembersChunkEvent extends Event { + event: "GUILD_MEMBERS_CHUNK"; + data: { + guild_id: string; + members: PublicMember[]; + chunk_index: number; + chunk_count: number; + not_found: string[]; + presences: Presence[]; + nonce?: string; + }; +} + +export interface GuildRoleCreateEvent extends Event { + event: "GUILD_ROLE_CREATE"; + data: { + guild_id: string; + role: Role; + }; +} + +export interface GuildRoleUpdateEvent extends Event { + event: "GUILD_ROLE_UPDATE"; + data: { + guild_id: string; + role: Role; + }; +} + +export interface GuildRoleDeleteEvent extends Event { + event: "GUILD_ROLE_DELETE"; + data: { + guild_id: string; + role_id: string; + }; +} + +export interface InviteCreateEvent extends Event { + event: "INVITE_CREATE"; + data: Omit & { + channel_id: string; + guild_id?: string; + }; +} + +export interface InviteDeleteEvent extends Event { + event: "INVITE_DELETE"; + data: { + channel_id: string; + guild_id?: string; + code: string; + }; +} + +export interface MessageCreateEvent extends Event { + event: "MESSAGE_CREATE"; + data: Message; +} + +export interface MessageUpdateEvent extends Event { + event: "MESSAGE_UPDATE"; + data: Message; +} + +export interface MessageDeleteEvent extends Event { + event: "MESSAGE_DELETE"; + data: { + id: string; + channel_id: string; + guild_id?: string; + }; +} + +export interface MessageDeleteBulkEvent extends Event { + event: "MESSAGE_DELETE_BULK"; + data: { + ids: string[]; + channel_id: string; + guild_id?: string; + }; +} + +export interface MessageReactionAddEvent extends Event { + event: "MESSAGE_REACTION_ADD"; + data: { + user_id: string; + channel_id: string; + message_id: string; + guild_id?: string; + member?: PublicMember; + emoji: PartialEmoji; + }; +} + +export interface MessageReactionRemoveEvent extends Event { + event: "MESSAGE_REACTION_REMOVE"; + data: { + user_id: string; + channel_id: string; + message_id: string; + guild_id?: string; + emoji: PartialEmoji; + }; +} + +export interface MessageReactionRemoveAllEvent extends Event { + event: "MESSAGE_REACTION_REMOVE_ALL"; + data: { + channel_id: string; + message_id: string; + guild_id?: string; + }; +} + +export interface MessageReactionRemoveEmojiEvent extends Event { + event: "MESSAGE_REACTION_REMOVE_EMOJI"; + data: { + channel_id: string; + message_id: string; + guild_id?: string; + emoji: PartialEmoji; + }; +} + +export interface PresenceUpdateEvent extends Event { + event: "PRESENCE_UPDATE"; + data: Presence; +} + +export interface TypingStartEvent extends Event { + event: "TYPING_START"; + data: { + channel_id: string; + user_id: string; + timestamp: number; + guild_id?: string; + member?: PublicMember; + }; +} + +export interface UserUpdateEvent extends Event { + event: "USER_UPDATE"; + data: User; +} + +export interface VoiceStateUpdateEvent extends Event { + event: "VOICE_STATE_UPDATE"; + data: VoiceState & { + member: PublicMember; + }; +} + +export interface VoiceServerUpdateEvent extends Event { + event: "VOICE_SERVER_UPDATE"; + data: { + token: string; + guild_id: string; + endpoint: string; + }; +} + +export interface WebhooksUpdateEvent extends Event { + event: "WEBHOOKS_UPDATE"; + data: { + guild_id: string; + channel_id: string; + }; +} + +export type ApplicationCommandPayload = ApplicationCommand & { + guild_id: string; +}; + +export interface ApplicationCommandCreateEvent extends Event { + event: "APPLICATION_COMMAND_CREATE"; + data: ApplicationCommandPayload; +} + +export interface ApplicationCommandUpdateEvent extends Event { + event: "APPLICATION_COMMAND_UPDATE"; + data: ApplicationCommandPayload; +} + +export interface ApplicationCommandDeleteEvent extends Event { + event: "APPLICATION_COMMAND_DELETE"; + data: ApplicationCommandPayload; +} + +export interface InteractionCreateEvent extends Event { + event: "INTERACTION_CREATE"; + data: Interaction; +} + +export interface MessageAckEvent extends Event { + event: "MESSAGE_ACK"; + data: { + channel_id: string; + message_id: string; + version?: number; + manual?: boolean; + mention_count?: number; + }; +} + +export interface RelationshipAddEvent extends Event { + event: "RELATIONSHIP_ADD"; + data: PublicRelationship & { + should_notify?: boolean; + user: PublicUser; + }; +} + +export interface RelationshipRemoveEvent extends Event { + event: "RELATIONSHIP_REMOVE"; + data: Omit; +} + +export interface SessionsReplace extends Event { + event: "SESSIONS_REPLACE"; + data: { + activities: Activity[]; + client_info: { + version: number; + os: string; + client: string; + }; + status: Status; + }[]; +} + +export interface GuildMemberListUpdate extends Event { + event: "GUILD_MEMBER_LIST_UPDATE"; + data: { + groups: { id: string; count: number }[]; + guild_id: string; + id: string; + member_count: number; + online_count: number; + ops: { + index: number; + item: { + member?: PublicMember & { presence: Presence }; + group?: { id: string; count: number }[]; + }; + }[]; + }; +} + +export type EventData = + | InvalidatedEvent + | ReadyEvent + | ChannelCreateEvent + | ChannelUpdateEvent + | ChannelDeleteEvent + | ChannelPinsUpdateEvent + | ChannelRecipientAddEvent + | ChannelRecipientRemoveEvent + | GuildCreateEvent + | GuildUpdateEvent + | GuildDeleteEvent + | GuildBanAddEvent + | GuildBanRemoveEvent + | GuildEmojisUpdateEvent + | GuildIntegrationUpdateEvent + | GuildMemberAddEvent + | GuildMemberRemoveEvent + | GuildMemberUpdateEvent + | GuildMembersChunkEvent + | GuildMemberListUpdate + | GuildRoleCreateEvent + | GuildRoleUpdateEvent + | GuildRoleDeleteEvent + | InviteCreateEvent + | InviteDeleteEvent + | MessageCreateEvent + | MessageUpdateEvent + | MessageDeleteEvent + | MessageDeleteBulkEvent + | MessageReactionAddEvent + | MessageReactionRemoveEvent + | MessageReactionRemoveAllEvent + | MessageReactionRemoveEmojiEvent + | PresenceUpdateEvent + | TypingStartEvent + | UserUpdateEvent + | VoiceStateUpdateEvent + | VoiceServerUpdateEvent + | WebhooksUpdateEvent + | ApplicationCommandCreateEvent + | ApplicationCommandUpdateEvent + | ApplicationCommandDeleteEvent + | InteractionCreateEvent + | MessageAckEvent + | RelationshipAddEvent + | RelationshipRemoveEvent; + +// located in collection events + +export enum EVENTEnum { + Ready = "READY", + ChannelCreate = "CHANNEL_CREATE", + ChannelUpdate = "CHANNEL_UPDATE", + ChannelDelete = "CHANNEL_DELETE", + ChannelPinsUpdate = "CHANNEL_PINS_UPDATE", + ChannelRecipientAdd = "CHANNEL_RECIPIENT_ADD", + ChannelRecipientRemove = "CHANNEL_RECIPIENT_REMOVE", + GuildCreate = "GUILD_CREATE", + GuildUpdate = "GUILD_UPDATE", + GuildDelete = "GUILD_DELETE", + GuildBanAdd = "GUILD_BAN_ADD", + GuildBanRemove = "GUILD_BAN_REMOVE", + GuildEmojUpdate = "GUILD_EMOJI_UPDATE", + GuildIntegrationsUpdate = "GUILD_INTEGRATIONS_UPDATE", + GuildMemberAdd = "GUILD_MEMBER_ADD", + GuildMemberRempve = "GUILD_MEMBER_REMOVE", + GuildMemberUpdate = "GUILD_MEMBER_UPDATE", + GuildMemberSpeaking = "GUILD_MEMBER_SPEAKING", + GuildMembersChunk = "GUILD_MEMBERS_CHUNK", + GuildMemberListUpdate = "GUILD_MEMBER_LIST_UPDATE", + GuildRoleCreate = "GUILD_ROLE_CREATE", + GuildRoleDelete = "GUILD_ROLE_DELETE", + GuildRoleUpdate = "GUILD_ROLE_UPDATE", + InviteCreate = "INVITE_CREATE", + InviteDelete = "INVITE_DELETE", + MessageCreate = "MESSAGE_CREATE", + MessageUpdate = "MESSAGE_UPDATE", + MessageDelete = "MESSAGE_DELETE", + MessageDeleteBulk = "MESSAGE_DELETE_BULK", + MessageReactionAdd = "MESSAGE_REACTION_ADD", + MessageReactionRemove = "MESSAGE_REACTION_REMOVE", + MessageReactionRemoveAll = "MESSAGE_REACTION_REMOVE_ALL", + MessageReactionRemoveEmoji = "MESSAGE_REACTION_REMOVE_EMOJI", + PresenceUpdate = "PRESENCE_UPDATE", + TypingStart = "TYPING_START", + UserUpdate = "USER_UPDATE", + WebhooksUpdate = "WEBHOOKS_UPDATE", + InteractionCreate = "INTERACTION_CREATE", + VoiceStateUpdate = "VOICE_STATE_UPDATE", + VoiceServerUpdate = "VOICE_SERVER_UPDATE", + ApplicationCommandCreate = "APPLICATION_COMMAND_CREATE", + ApplicationCommandUpdate = "APPLICATION_COMMAND_UPDATE", + ApplicationCommandDelete = "APPLICATION_COMMAND_DELETE", + SessionsReplace = "SESSIONS_REPLACE", +} + +export type EVENT = + | "READY" + | "CHANNEL_CREATE" + | "CHANNEL_UPDATE" + | "CHANNEL_DELETE" + | "CHANNEL_PINS_UPDATE" + | "CHANNEL_RECIPIENT_ADD" + | "CHANNEL_RECIPIENT_REMOVE" + | "GUILD_CREATE" + | "GUILD_UPDATE" + | "GUILD_DELETE" + | "GUILD_BAN_ADD" + | "GUILD_BAN_REMOVE" + | "GUILD_EMOJIS_UPDATE" + | "GUILD_STICKERS_UPDATE" + | "GUILD_INTEGRATIONS_UPDATE" + | "GUILD_MEMBER_ADD" + | "GUILD_MEMBER_REMOVE" + | "GUILD_MEMBER_UPDATE" + | "GUILD_MEMBER_SPEAKING" + | "GUILD_MEMBERS_CHUNK" + | "GUILD_MEMBER_LIST_UPDATE" + | "GUILD_ROLE_CREATE" + | "GUILD_ROLE_DELETE" + | "GUILD_ROLE_UPDATE" + | "INVITE_CREATE" + | "INVITE_DELETE" + | "MESSAGE_CREATE" + | "MESSAGE_UPDATE" + | "MESSAGE_DELETE" + | "MESSAGE_DELETE_BULK" + | "MESSAGE_REACTION_ADD" + // TODO: add a new event: bulk add reaction: + // | "MESSAGE_REACTION_BULK_ADD" + | "MESSAGE_REACTION_REMOVE" + | "MESSAGE_REACTION_REMOVE_ALL" + | "MESSAGE_REACTION_REMOVE_EMOJI" + | "PRESENCE_UPDATE" + | "TYPING_START" + | "USER_UPDATE" + | "USER_NOTE_UPDATE" + | "WEBHOOKS_UPDATE" + | "INTERACTION_CREATE" + | "VOICE_STATE_UPDATE" + | "VOICE_SERVER_UPDATE" + | "APPLICATION_COMMAND_CREATE" + | "APPLICATION_COMMAND_UPDATE" + | "APPLICATION_COMMAND_DELETE" + | "MESSAGE_ACK" + | "RELATIONSHIP_ADD" + | "RELATIONSHIP_REMOVE" + | "SESSIONS_REPLACE" + | CUSTOMEVENTS; + +export type CUSTOMEVENTS = "INVALIDATED" | "RATELIMIT"; diff --git a/src/util/interfaces/Interaction.ts b/src/util/interfaces/Interaction.ts new file mode 100644 index 00000000..5d3aae24 --- /dev/null +++ b/src/util/interfaces/Interaction.ts @@ -0,0 +1,34 @@ +import { AllowedMentions, Embed } from "../entities/Message"; + +export interface Interaction { + id: string; + type: InteractionType; + data?: {}; + guild_id: string; + channel_id: string; + member_id: string; + token: string; + version: number; +} + +export enum InteractionType { + SelfCommand = 0, + Ping = 1, + ApplicationCommand = 2, +} + +export enum InteractionResponseType { + SelfCommandResponse = 0, + Pong = 1, + Acknowledge = 2, + ChannelMessage = 3, + ChannelMessageWithSource = 4, + AcknowledgeWithSource = 5, +} + +export interface InteractionApplicationCommandCallbackData { + tts?: boolean; + content: string; + embeds?: Embed[]; + allowed_mentions?: AllowedMentions; +} diff --git a/src/util/interfaces/Presence.ts b/src/util/interfaces/Presence.ts new file mode 100644 index 00000000..7663891a --- /dev/null +++ b/src/util/interfaces/Presence.ts @@ -0,0 +1,12 @@ +import { ClientStatus, Status } from "./Status"; +import { Activity } from "./Activity"; +import { PublicUser } from "../entities/User"; + +export interface Presence { + user: PublicUser; + guild_id?: string; + status: Status; + activities: Activity[]; + client_status: ClientStatus; + // TODO: game +} diff --git a/src/util/interfaces/Status.ts b/src/util/interfaces/Status.ts new file mode 100644 index 00000000..5d2e1bba --- /dev/null +++ b/src/util/interfaces/Status.ts @@ -0,0 +1,7 @@ +export type Status = "idle" | "dnd" | "online" | "offline" | "invisible"; + +export interface ClientStatus { + desktop?: string; // e.g. Windows/Linux/Mac + mobile?: string; // e.g. iOS/Android + web?: string; // e.g. browser, bot account +} diff --git a/src/util/interfaces/index.ts b/src/util/interfaces/index.ts new file mode 100644 index 00000000..ab7fa429 --- /dev/null +++ b/src/util/interfaces/index.ts @@ -0,0 +1,5 @@ +export * from "./Activity"; +export * from "./Presence"; +export * from "./Interaction"; +export * from "./Event"; +export * from "./Status"; diff --git a/src/util/migrations/mariadb/1659901151025-initial.ts b/src/util/migrations/mariadb/1659901151025-initial.ts new file mode 100644 index 00000000..d15e0add --- /dev/null +++ b/src/util/migrations/mariadb/1659901151025-initial.ts @@ -0,0 +1,1219 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class initial1659901151025 implements MigrationInterface { + name = 'initial1659901151025' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE \`config\` ( + \`key\` varchar(255) NOT NULL, + \`value\` text NULL, + PRIMARY KEY (\`key\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`relationships\` ( + \`id\` varchar(255) NOT NULL, + \`from_id\` varchar(255) NOT NULL, + \`to_id\` varchar(255) NOT NULL, + \`nickname\` varchar(255) NULL, + \`type\` int NOT NULL, + UNIQUE INDEX \`IDX_a0b2ff0a598df0b0d055934a17\` (\`from_id\`, \`to_id\`), + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`connected_accounts\` ( + \`id\` varchar(255) NOT NULL, + \`user_id\` varchar(255) NULL, + \`access_token\` varchar(255) NOT NULL, + \`friend_sync\` tinyint NOT NULL, + \`name\` varchar(255) NOT NULL, + \`revoked\` tinyint NOT NULL, + \`show_activity\` tinyint NOT NULL, + \`type\` varchar(255) NOT NULL, + \`verified\` tinyint NOT NULL, + \`visibility\` int NOT NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`users\` ( + \`id\` varchar(255) NOT NULL, + \`username\` varchar(255) NOT NULL, + \`discriminator\` varchar(255) NOT NULL, + \`avatar\` varchar(255) NULL, + \`accent_color\` int NULL, + \`banner\` varchar(255) NULL, + \`phone\` varchar(255) NULL, + \`desktop\` tinyint NOT NULL, + \`mobile\` tinyint NOT NULL, + \`premium\` tinyint NOT NULL, + \`premium_type\` int NOT NULL, + \`bot\` tinyint NOT NULL, + \`bio\` varchar(255) NOT NULL, + \`system\` tinyint NOT NULL, + \`nsfw_allowed\` tinyint NOT NULL, + \`mfa_enabled\` tinyint NOT NULL, + \`totp_secret\` varchar(255) NULL, + \`totp_last_ticket\` varchar(255) NULL, + \`created_at\` datetime NOT NULL, + \`premium_since\` datetime NULL, + \`verified\` tinyint NOT NULL, + \`disabled\` tinyint NOT NULL, + \`deleted\` tinyint NOT NULL, + \`email\` varchar(255) NULL, + \`flags\` varchar(255) NOT NULL, + \`public_flags\` int NOT NULL, + \`rights\` bigint NOT NULL, + \`data\` text NOT NULL, + \`fingerprints\` text NOT NULL, + \`settings\` text NOT NULL, + \`extended_settings\` text NOT NULL, + \`notes\` text NOT NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`backup_codes\` ( + \`id\` varchar(255) NOT NULL, + \`code\` varchar(255) NOT NULL, + \`consumed\` tinyint NOT NULL, + \`expired\` tinyint NOT NULL, + \`user_id\` varchar(255) NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`bans\` ( + \`id\` varchar(255) NOT NULL, + \`user_id\` varchar(255) NULL, + \`guild_id\` varchar(255) NULL, + \`executor_id\` varchar(255) NULL, + \`ip\` varchar(255) NOT NULL, + \`reason\` varchar(255) NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`recipients\` ( + \`id\` varchar(255) NOT NULL, + \`channel_id\` varchar(255) NOT NULL, + \`user_id\` varchar(255) NOT NULL, + \`closed\` tinyint NOT NULL DEFAULT 0, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`roles\` ( + \`id\` varchar(255) NOT NULL, + \`guild_id\` varchar(255) NULL, + \`color\` int NOT NULL, + \`hoist\` tinyint NOT NULL, + \`managed\` tinyint NOT NULL, + \`mentionable\` tinyint NOT NULL, + \`name\` varchar(255) NOT NULL, + \`permissions\` varchar(255) NOT NULL, + \`position\` int NOT NULL, + \`icon\` varchar(255) NULL, + \`unicode_emoji\` varchar(255) NULL, + \`tags\` text NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`members\` ( + \`index\` int NOT NULL AUTO_INCREMENT, + \`id\` varchar(255) NOT NULL, + \`guild_id\` varchar(255) NOT NULL, + \`nick\` varchar(255) NULL, + \`joined_at\` datetime NOT NULL, + \`premium_since\` bigint NULL, + \`deaf\` tinyint NOT NULL, + \`mute\` tinyint NOT NULL, + \`pending\` tinyint NOT NULL, + \`settings\` text NOT NULL, + \`last_message_id\` varchar(255) NULL, + \`joined_by\` varchar(255) NULL, + UNIQUE INDEX \`IDX_bb2bf9386ac443afbbbf9f12d3\` (\`id\`, \`guild_id\`), + PRIMARY KEY (\`index\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`webhooks\` ( + \`id\` varchar(255) NOT NULL, + \`type\` int NOT NULL, + \`name\` varchar(255) NULL, + \`avatar\` varchar(255) NULL, + \`token\` varchar(255) NULL, + \`guild_id\` varchar(255) NULL, + \`channel_id\` varchar(255) NULL, + \`application_id\` varchar(255) NULL, + \`user_id\` varchar(255) NULL, + \`source_guild_id\` varchar(255) NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`stickers\` ( + \`id\` varchar(255) NOT NULL, + \`name\` varchar(255) NOT NULL, + \`description\` varchar(255) NULL, + \`available\` tinyint NULL, + \`tags\` varchar(255) NULL, + \`pack_id\` varchar(255) NULL, + \`guild_id\` varchar(255) NULL, + \`user_id\` varchar(255) NULL, + \`type\` int NOT NULL, + \`format_type\` int NOT NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`attachments\` ( + \`id\` varchar(255) NOT NULL, + \`filename\` varchar(255) NOT NULL, + \`size\` int NOT NULL, + \`url\` varchar(255) NOT NULL, + \`proxy_url\` varchar(255) NOT NULL, + \`height\` int NULL, + \`width\` int NULL, + \`content_type\` varchar(255) NULL, + \`message_id\` varchar(255) NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`messages\` ( + \`id\` varchar(255) NOT NULL, + \`channel_id\` varchar(255) NULL, + \`guild_id\` varchar(255) NULL, + \`author_id\` varchar(255) NULL, + \`member_id\` varchar(255) NULL, + \`webhook_id\` varchar(255) NULL, + \`application_id\` varchar(255) NULL, + \`content\` varchar(255) NULL, + \`timestamp\` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), + \`edited_timestamp\` datetime NULL, + \`tts\` tinyint NULL, + \`mention_everyone\` tinyint NULL, + \`embeds\` text NOT NULL, + \`reactions\` text NOT NULL, + \`nonce\` text NULL, + \`pinned\` tinyint NULL, + \`type\` int NOT NULL, + \`activity\` text NULL, + \`flags\` varchar(255) NULL, + \`message_reference\` text NULL, + \`interaction\` text NULL, + \`components\` text NULL, + \`message_reference_id\` varchar(255) NULL, + INDEX \`IDX_86b9109b155eb70c0a2ca3b4b6\` (\`channel_id\`), + INDEX \`IDX_05535bc695e9f7ee104616459d\` (\`author_id\`), + UNIQUE INDEX \`IDX_3ed7a60fb7dbe04e1ba9332a8b\` (\`channel_id\`, \`id\`), + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`read_states\` ( + \`id\` varchar(255) NOT NULL, + \`channel_id\` varchar(255) NOT NULL, + \`user_id\` varchar(255) NOT NULL, + \`last_message_id\` varchar(255) NULL, + \`public_ack\` varchar(255) NULL, + \`notifications_cursor\` varchar(255) NULL, + \`last_pin_timestamp\` datetime NULL, + \`mention_count\` int NULL, + UNIQUE INDEX \`IDX_0abf8b443321bd3cf7f81ee17a\` (\`channel_id\`, \`user_id\`), + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`invites\` ( + \`code\` varchar(255) NOT NULL, + \`temporary\` tinyint NOT NULL, + \`uses\` int NOT NULL, + \`max_uses\` int NOT NULL, + \`max_age\` int NOT NULL, + \`created_at\` datetime NOT NULL, + \`expires_at\` datetime NOT NULL, + \`guild_id\` varchar(255) NULL, + \`channel_id\` varchar(255) NULL, + \`inviter_id\` varchar(255) NULL, + \`target_user_id\` varchar(255) NULL, + \`target_user_type\` int NULL, + \`vanity_url\` tinyint NULL, + PRIMARY KEY (\`code\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`voice_states\` ( + \`id\` varchar(255) NOT NULL, + \`guild_id\` varchar(255) NULL, + \`channel_id\` varchar(255) NULL, + \`user_id\` varchar(255) NULL, + \`session_id\` varchar(255) NOT NULL, + \`token\` varchar(255) NULL, + \`deaf\` tinyint NOT NULL, + \`mute\` tinyint NOT NULL, + \`self_deaf\` tinyint NOT NULL, + \`self_mute\` tinyint NOT NULL, + \`self_stream\` tinyint NULL, + \`self_video\` tinyint NOT NULL, + \`suppress\` tinyint NOT NULL, + \`request_to_speak_timestamp\` datetime NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`channels\` ( + \`id\` varchar(255) NOT NULL, + \`created_at\` datetime NOT NULL, + \`name\` varchar(255) NULL, + \`icon\` text NULL, + \`type\` int NOT NULL, + \`last_message_id\` varchar(255) NULL, + \`guild_id\` varchar(255) NULL, + \`parent_id\` varchar(255) NULL, + \`owner_id\` varchar(255) NULL, + \`last_pin_timestamp\` int NULL, + \`default_auto_archive_duration\` int NULL, + \`position\` int NULL, + \`permission_overwrites\` text NULL, + \`video_quality_mode\` int NULL, + \`bitrate\` int NULL, + \`user_limit\` int NULL, + \`nsfw\` tinyint NULL, + \`rate_limit_per_user\` int NULL, + \`topic\` varchar(255) NULL, + \`retention_policy_id\` varchar(255) NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`emojis\` ( + \`id\` varchar(255) NOT NULL, + \`animated\` tinyint NOT NULL, + \`available\` tinyint NOT NULL, + \`guild_id\` varchar(255) NOT NULL, + \`user_id\` varchar(255) NULL, + \`managed\` tinyint NOT NULL, + \`name\` varchar(255) NOT NULL, + \`require_colons\` tinyint NOT NULL, + \`roles\` text NOT NULL, + \`groups\` text NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`templates\` ( + \`id\` varchar(255) NOT NULL, + \`code\` varchar(255) NOT NULL, + \`name\` varchar(255) NOT NULL, + \`description\` varchar(255) NULL, + \`usage_count\` int NULL, + \`creator_id\` varchar(255) NULL, + \`created_at\` datetime NOT NULL, + \`updated_at\` datetime NOT NULL, + \`source_guild_id\` varchar(255) NULL, + \`serialized_source_guild\` text NOT NULL, + UNIQUE INDEX \`IDX_be38737bf339baf63b1daeffb5\` (\`code\`), + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`guilds\` ( + \`id\` varchar(255) NOT NULL, + \`afk_channel_id\` varchar(255) NULL, + \`afk_timeout\` int NULL, + \`banner\` varchar(255) NULL, + \`default_message_notifications\` int NULL, + \`description\` varchar(255) NULL, + \`discovery_splash\` varchar(255) NULL, + \`explicit_content_filter\` int NULL, + \`features\` text NOT NULL, + \`primary_category_id\` int NULL, + \`icon\` varchar(255) NULL, + \`large\` tinyint NULL, + \`max_members\` int NULL, + \`max_presences\` int NULL, + \`max_video_channel_users\` int NULL, + \`member_count\` int NULL, + \`presence_count\` int NULL, + \`template_id\` varchar(255) NULL, + \`mfa_level\` int NULL, + \`name\` varchar(255) NOT NULL, + \`owner_id\` varchar(255) NULL, + \`preferred_locale\` varchar(255) NULL, + \`premium_subscription_count\` int NULL, + \`premium_tier\` int NULL, + \`public_updates_channel_id\` varchar(255) NULL, + \`rules_channel_id\` varchar(255) NULL, + \`region\` varchar(255) NULL, + \`splash\` varchar(255) NULL, + \`system_channel_id\` varchar(255) NULL, + \`system_channel_flags\` int NULL, + \`unavailable\` tinyint NULL, + \`verification_level\` int NULL, + \`welcome_screen\` text NOT NULL, + \`widget_channel_id\` varchar(255) NULL, + \`widget_enabled\` tinyint NULL, + \`nsfw_level\` int NULL, + \`nsfw\` tinyint NULL, + \`parent\` varchar(255) NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`team_members\` ( + \`id\` varchar(255) NOT NULL, + \`membership_state\` int NOT NULL, + \`permissions\` text NOT NULL, + \`team_id\` varchar(255) NULL, + \`user_id\` varchar(255) NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`teams\` ( + \`id\` varchar(255) NOT NULL, + \`icon\` varchar(255) NULL, + \`name\` varchar(255) NOT NULL, + \`owner_user_id\` varchar(255) NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`applications\` ( + \`id\` varchar(255) NOT NULL, + \`name\` varchar(255) NOT NULL, + \`icon\` varchar(255) NULL, + \`description\` varchar(255) NOT NULL, + \`rpc_origins\` text NULL, + \`bot_public\` tinyint NOT NULL, + \`bot_require_code_grant\` tinyint NOT NULL, + \`terms_of_service_url\` varchar(255) NULL, + \`privacy_policy_url\` varchar(255) NULL, + \`summary\` varchar(255) NULL, + \`verify_key\` varchar(255) NOT NULL, + \`primary_sku_id\` varchar(255) NULL, + \`slug\` varchar(255) NULL, + \`cover_image\` varchar(255) NULL, + \`flags\` varchar(255) NOT NULL, + \`owner_id\` varchar(255) NULL, + \`team_id\` varchar(255) NULL, + \`guild_id\` varchar(255) NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`audit_logs\` ( + \`id\` varchar(255) NOT NULL, + \`user_id\` varchar(255) NULL, + \`action_type\` int NOT NULL, + \`options\` text NULL, + \`changes\` text NOT NULL, + \`reason\` varchar(255) NULL, + \`target_id\` varchar(255) NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`categories\` ( + \`id\` int NOT NULL, + \`name\` varchar(255) NULL, + \`localizations\` text NOT NULL, + \`is_primary\` tinyint NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`rate_limits\` ( + \`id\` varchar(255) NOT NULL, + \`executor_id\` varchar(255) NOT NULL, + \`hits\` int NOT NULL, + \`blocked\` tinyint NOT NULL, + \`expires_at\` datetime NOT NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`sessions\` ( + \`id\` varchar(255) NOT NULL, + \`user_id\` varchar(255) NULL, + \`session_id\` varchar(255) NOT NULL, + \`activities\` text NULL, + \`client_info\` text NOT NULL, + \`status\` varchar(255) NOT NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`sticker_packs\` ( + \`id\` varchar(255) NOT NULL, + \`name\` varchar(255) NOT NULL, + \`description\` varchar(255) NULL, + \`banner_asset_id\` varchar(255) NULL, + \`cover_sticker_id\` varchar(255) NULL, + \`coverStickerId\` varchar(255) NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`client_release\` ( + \`id\` varchar(255) NOT NULL, + \`name\` varchar(255) NOT NULL, + \`pub_date\` varchar(255) NOT NULL, + \`url\` varchar(255) NOT NULL, + \`deb_url\` varchar(255) NOT NULL, + \`osx_url\` varchar(255) NOT NULL, + \`win_url\` varchar(255) NOT NULL, + \`notes\` varchar(255) NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`notes\` ( + \`id\` varchar(255) NOT NULL, + \`content\` varchar(255) NOT NULL, + \`owner_id\` varchar(255) NULL, + \`target_id\` varchar(255) NULL, + UNIQUE INDEX \`IDX_74e6689b9568cc965b8bfc9150\` (\`owner_id\`, \`target_id\`), + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`member_roles\` ( + \`index\` int NOT NULL, + \`role_id\` varchar(255) NOT NULL, + INDEX \`IDX_5d7ddc8a5f9c167f548625e772\` (\`index\`), + INDEX \`IDX_e9080e7a7997a0170026d5139c\` (\`role_id\`), + PRIMARY KEY (\`index\`, \`role_id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`message_user_mentions\` ( + \`messagesId\` varchar(255) NOT NULL, + \`usersId\` varchar(255) NOT NULL, + INDEX \`IDX_a343387fc560ef378760681c23\` (\`messagesId\`), + INDEX \`IDX_b831eb18ceebd28976239b1e2f\` (\`usersId\`), + PRIMARY KEY (\`messagesId\`, \`usersId\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`message_role_mentions\` ( + \`messagesId\` varchar(255) NOT NULL, + \`rolesId\` varchar(255) NOT NULL, + INDEX \`IDX_a8242cf535337a490b0feaea0b\` (\`messagesId\`), + INDEX \`IDX_29d63eb1a458200851bc37d074\` (\`rolesId\`), + PRIMARY KEY (\`messagesId\`, \`rolesId\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`message_channel_mentions\` ( + \`messagesId\` varchar(255) NOT NULL, + \`channelsId\` varchar(255) NOT NULL, + INDEX \`IDX_2a27102ecd1d81b4582a436092\` (\`messagesId\`), + INDEX \`IDX_bdb8c09e1464cabf62105bf4b9\` (\`channelsId\`), + PRIMARY KEY (\`messagesId\`, \`channelsId\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + CREATE TABLE \`message_stickers\` ( + \`messagesId\` varchar(255) NOT NULL, + \`stickersId\` varchar(255) NOT NULL, + INDEX \`IDX_40bb6f23e7cc133292e92829d2\` (\`messagesId\`), + INDEX \`IDX_e22a70819d07659c7a71c112a1\` (\`stickersId\`), + PRIMARY KEY (\`messagesId\`, \`stickersId\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + ALTER TABLE \`relationships\` + ADD CONSTRAINT \`FK_9af4194bab1250b1c584ae4f1d7\` FOREIGN KEY (\`from_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`relationships\` + ADD CONSTRAINT \`FK_9c7f6b98a9843b76dce1b0c878b\` FOREIGN KEY (\`to_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`connected_accounts\` + ADD CONSTRAINT \`FK_f47244225a6a1eac04a3463dd90\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`backup_codes\` + ADD CONSTRAINT \`FK_70066ea80d2f4b871beda32633b\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`bans\` + ADD CONSTRAINT \`FK_5999e8e449f80a236ff72023559\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`bans\` + ADD CONSTRAINT \`FK_9d3ab7dd180ebdd245cdb66ecad\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`bans\` + ADD CONSTRAINT \`FK_07ad88c86d1f290d46748410d58\` FOREIGN KEY (\`executor_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`recipients\` + ADD CONSTRAINT \`FK_2f18ee1ba667f233ae86c0ea60e\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`recipients\` + ADD CONSTRAINT \`FK_6157e8b6ba4e6e3089616481fe2\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`roles\` + ADD CONSTRAINT \`FK_c32c1ab1c4dc7dcb0278c4b1b8b\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`members\` + ADD CONSTRAINT \`FK_28b53062261b996d9c99fa12404\` FOREIGN KEY (\`id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`members\` + ADD CONSTRAINT \`FK_16aceddd5b89825b8ed6029ad1c\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`webhooks\` + ADD CONSTRAINT \`FK_487a7af59d189f744fe394368fc\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`webhooks\` + ADD CONSTRAINT \`FK_df528cf77e82f8032230e7e37d8\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`webhooks\` + ADD CONSTRAINT \`FK_c3e5305461931763b56aa905f1c\` FOREIGN KEY (\`application_id\`) REFERENCES \`applications\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`webhooks\` + ADD CONSTRAINT \`FK_0d523f6f997c86e052c49b1455f\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`webhooks\` + ADD CONSTRAINT \`FK_3a285f4f49c40e0706d3018bc9f\` FOREIGN KEY (\`source_guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`stickers\` + ADD CONSTRAINT \`FK_e7cfa5cefa6661b3fb8fda8ce69\` FOREIGN KEY (\`pack_id\`) REFERENCES \`sticker_packs\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`stickers\` + ADD CONSTRAINT \`FK_193d551d852aca5347ef5c9f205\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`stickers\` + ADD CONSTRAINT \`FK_8f4ee73f2bb2325ff980502e158\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`attachments\` + ADD CONSTRAINT \`FK_623e10eec51ada466c5038979e3\` FOREIGN KEY (\`message_id\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`messages\` + ADD CONSTRAINT \`FK_86b9109b155eb70c0a2ca3b4b6d\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`messages\` + ADD CONSTRAINT \`FK_b193588441b085352a4c0109423\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`messages\` + ADD CONSTRAINT \`FK_05535bc695e9f7ee104616459d3\` FOREIGN KEY (\`author_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`messages\` + ADD CONSTRAINT \`FK_b0525304f2262b7014245351c76\` FOREIGN KEY (\`member_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`messages\` + ADD CONSTRAINT \`FK_f83c04bcf1df4e5c0e7a52ed348\` FOREIGN KEY (\`webhook_id\`) REFERENCES \`webhooks\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`messages\` + ADD CONSTRAINT \`FK_5d3ec1cb962de6488637fd779d6\` FOREIGN KEY (\`application_id\`) REFERENCES \`applications\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`messages\` + ADD CONSTRAINT \`FK_61a92bb65b302a76d9c1fcd3174\` FOREIGN KEY (\`message_reference_id\`) REFERENCES \`messages\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`read_states\` + ADD CONSTRAINT \`FK_40da2fca4e0eaf7a23b5bfc5d34\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`read_states\` + ADD CONSTRAINT \`FK_195f92e4dd1254a4e348c043763\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`invites\` + ADD CONSTRAINT \`FK_3f4939aa1461e8af57fea3fb05d\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`invites\` + ADD CONSTRAINT \`FK_6a15b051fe5050aa00a4b9ff0f6\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`invites\` + ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`invites\` + ADD CONSTRAINT \`FK_11a0d394f8fc649c19ce5f16b59\` FOREIGN KEY (\`target_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`voice_states\` + ADD CONSTRAINT \`FK_03779ef216d4b0358470d9cb748\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`voice_states\` + ADD CONSTRAINT \`FK_9f8d389866b40b6657edd026dd4\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`voice_states\` + ADD CONSTRAINT \`FK_5fe1d5f931a67e85039c640001b\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD CONSTRAINT \`FK_c253dafe5f3a03ec00cd8fb4581\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD CONSTRAINT \`FK_3274522d14af40540b1a883fc80\` FOREIGN KEY (\`parent_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD CONSTRAINT \`FK_3873ed438575cce703ecff4fc7b\` FOREIGN KEY (\`owner_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`emojis\` + ADD CONSTRAINT \`FK_4b988e0db89d94cebcf07f598cc\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`emojis\` + ADD CONSTRAINT \`FK_fa7ddd5f9a214e28ce596548421\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`templates\` + ADD CONSTRAINT \`FK_d7374b7f8f5fbfdececa4fb62e1\` FOREIGN KEY (\`creator_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`templates\` + ADD CONSTRAINT \`FK_445d00eaaea0e60a017a5ed0c11\` FOREIGN KEY (\`source_guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` + ADD CONSTRAINT \`FK_f591a66b8019d87b0fe6c12dad6\` FOREIGN KEY (\`afk_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` + ADD CONSTRAINT \`FK_e2a2f873a64a5cf62526de42325\` FOREIGN KEY (\`template_id\`) REFERENCES \`templates\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` + ADD CONSTRAINT \`FK_fc1a451727e3643ca572a3bb394\` FOREIGN KEY (\`owner_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` + ADD CONSTRAINT \`FK_8d450b016dc8bec35f36729e4b0\` FOREIGN KEY (\`public_updates_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` + ADD CONSTRAINT \`FK_95828668aa333460582e0ca6396\` FOREIGN KEY (\`rules_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` + ADD CONSTRAINT \`FK_cfc3d3ad260f8121c95b31a1fce\` FOREIGN KEY (\`system_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` + ADD CONSTRAINT \`FK_9d1d665379eefde7876a17afa99\` FOREIGN KEY (\`widget_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`team_members\` + ADD CONSTRAINT \`FK_fdad7d5768277e60c40e01cdcea\` FOREIGN KEY (\`team_id\`) REFERENCES \`teams\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`team_members\` + ADD CONSTRAINT \`FK_c2bf4967c8c2a6b845dadfbf3d4\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`teams\` + ADD CONSTRAINT \`FK_13f00abf7cb6096c43ecaf8c108\` FOREIGN KEY (\`owner_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD CONSTRAINT \`FK_e57508958bf92b9d9d25231b5e8\` FOREIGN KEY (\`owner_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD CONSTRAINT \`FK_a36ed02953077f408d0f3ebc424\` FOREIGN KEY (\`team_id\`) REFERENCES \`teams\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD CONSTRAINT \`FK_e5bf78cdbbe9ba91062d74c5aba\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`audit_logs\` + ADD CONSTRAINT \`FK_3cd01cd3ae7aab010310d96ac8e\` FOREIGN KEY (\`target_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`audit_logs\` + ADD CONSTRAINT \`FK_bd2726fd31b35443f2245b93ba0\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`sessions\` + ADD CONSTRAINT \`FK_085d540d9f418cfbdc7bd55bb19\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`sticker_packs\` + ADD CONSTRAINT \`FK_448fafba4355ee1c837bbc865f1\` FOREIGN KEY (\`coverStickerId\`) REFERENCES \`stickers\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`notes\` + ADD CONSTRAINT \`FK_f9e103f8ae67cb1787063597925\` FOREIGN KEY (\`owner_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`notes\` + ADD CONSTRAINT \`FK_23e08e5b4481711d573e1abecdc\` FOREIGN KEY (\`target_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`member_roles\` + ADD CONSTRAINT \`FK_5d7ddc8a5f9c167f548625e772e\` FOREIGN KEY (\`index\`) REFERENCES \`members\`(\`index\`) ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE \`member_roles\` + ADD CONSTRAINT \`FK_e9080e7a7997a0170026d5139c1\` FOREIGN KEY (\`role_id\`) REFERENCES \`roles\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE \`message_user_mentions\` + ADD CONSTRAINT \`FK_a343387fc560ef378760681c236\` FOREIGN KEY (\`messagesId\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE \`message_user_mentions\` + ADD CONSTRAINT \`FK_b831eb18ceebd28976239b1e2f8\` FOREIGN KEY (\`usersId\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE \`message_role_mentions\` + ADD CONSTRAINT \`FK_a8242cf535337a490b0feaea0b4\` FOREIGN KEY (\`messagesId\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE \`message_role_mentions\` + ADD CONSTRAINT \`FK_29d63eb1a458200851bc37d074b\` FOREIGN KEY (\`rolesId\`) REFERENCES \`roles\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE \`message_channel_mentions\` + ADD CONSTRAINT \`FK_2a27102ecd1d81b4582a4360921\` FOREIGN KEY (\`messagesId\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE \`message_channel_mentions\` + ADD CONSTRAINT \`FK_bdb8c09e1464cabf62105bf4b9d\` FOREIGN KEY (\`channelsId\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE \`message_stickers\` + ADD CONSTRAINT \`FK_40bb6f23e7cc133292e92829d28\` FOREIGN KEY (\`messagesId\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE \`message_stickers\` + ADD CONSTRAINT \`FK_e22a70819d07659c7a71c112a1f\` FOREIGN KEY (\`stickersId\`) REFERENCES \`stickers\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + CREATE TABLE \`query-result-cache\` ( + \`id\` int NOT NULL AUTO_INCREMENT, + \`identifier\` varchar(255) NULL, + \`time\` bigint NOT NULL, + \`duration\` int NOT NULL, + \`query\` text NOT NULL, + \`result\` text NOT NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + DROP TABLE \`query-result-cache\` + `); + await queryRunner.query(` + ALTER TABLE \`message_stickers\` DROP FOREIGN KEY \`FK_e22a70819d07659c7a71c112a1f\` + `); + await queryRunner.query(` + ALTER TABLE \`message_stickers\` DROP FOREIGN KEY \`FK_40bb6f23e7cc133292e92829d28\` + `); + await queryRunner.query(` + ALTER TABLE \`message_channel_mentions\` DROP FOREIGN KEY \`FK_bdb8c09e1464cabf62105bf4b9d\` + `); + await queryRunner.query(` + ALTER TABLE \`message_channel_mentions\` DROP FOREIGN KEY \`FK_2a27102ecd1d81b4582a4360921\` + `); + await queryRunner.query(` + ALTER TABLE \`message_role_mentions\` DROP FOREIGN KEY \`FK_29d63eb1a458200851bc37d074b\` + `); + await queryRunner.query(` + ALTER TABLE \`message_role_mentions\` DROP FOREIGN KEY \`FK_a8242cf535337a490b0feaea0b4\` + `); + await queryRunner.query(` + ALTER TABLE \`message_user_mentions\` DROP FOREIGN KEY \`FK_b831eb18ceebd28976239b1e2f8\` + `); + await queryRunner.query(` + ALTER TABLE \`message_user_mentions\` DROP FOREIGN KEY \`FK_a343387fc560ef378760681c236\` + `); + await queryRunner.query(` + ALTER TABLE \`member_roles\` DROP FOREIGN KEY \`FK_e9080e7a7997a0170026d5139c1\` + `); + await queryRunner.query(` + ALTER TABLE \`member_roles\` DROP FOREIGN KEY \`FK_5d7ddc8a5f9c167f548625e772e\` + `); + await queryRunner.query(` + ALTER TABLE \`notes\` DROP FOREIGN KEY \`FK_23e08e5b4481711d573e1abecdc\` + `); + await queryRunner.query(` + ALTER TABLE \`notes\` DROP FOREIGN KEY \`FK_f9e103f8ae67cb1787063597925\` + `); + await queryRunner.query(` + ALTER TABLE \`sticker_packs\` DROP FOREIGN KEY \`FK_448fafba4355ee1c837bbc865f1\` + `); + await queryRunner.query(` + ALTER TABLE \`sessions\` DROP FOREIGN KEY \`FK_085d540d9f418cfbdc7bd55bb19\` + `); + await queryRunner.query(` + ALTER TABLE \`audit_logs\` DROP FOREIGN KEY \`FK_bd2726fd31b35443f2245b93ba0\` + `); + await queryRunner.query(` + ALTER TABLE \`audit_logs\` DROP FOREIGN KEY \`FK_3cd01cd3ae7aab010310d96ac8e\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e5bf78cdbbe9ba91062d74c5aba\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_a36ed02953077f408d0f3ebc424\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e57508958bf92b9d9d25231b5e8\` + `); + await queryRunner.query(` + ALTER TABLE \`teams\` DROP FOREIGN KEY \`FK_13f00abf7cb6096c43ecaf8c108\` + `); + await queryRunner.query(` + ALTER TABLE \`team_members\` DROP FOREIGN KEY \`FK_c2bf4967c8c2a6b845dadfbf3d4\` + `); + await queryRunner.query(` + ALTER TABLE \`team_members\` DROP FOREIGN KEY \`FK_fdad7d5768277e60c40e01cdcea\` + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_9d1d665379eefde7876a17afa99\` + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_cfc3d3ad260f8121c95b31a1fce\` + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_95828668aa333460582e0ca6396\` + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_8d450b016dc8bec35f36729e4b0\` + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_fc1a451727e3643ca572a3bb394\` + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_e2a2f873a64a5cf62526de42325\` + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_f591a66b8019d87b0fe6c12dad6\` + `); + await queryRunner.query(` + ALTER TABLE \`templates\` DROP FOREIGN KEY \`FK_445d00eaaea0e60a017a5ed0c11\` + `); + await queryRunner.query(` + ALTER TABLE \`templates\` DROP FOREIGN KEY \`FK_d7374b7f8f5fbfdececa4fb62e1\` + `); + await queryRunner.query(` + ALTER TABLE \`emojis\` DROP FOREIGN KEY \`FK_fa7ddd5f9a214e28ce596548421\` + `); + await queryRunner.query(` + ALTER TABLE \`emojis\` DROP FOREIGN KEY \`FK_4b988e0db89d94cebcf07f598cc\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP FOREIGN KEY \`FK_3873ed438575cce703ecff4fc7b\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP FOREIGN KEY \`FK_3274522d14af40540b1a883fc80\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP FOREIGN KEY \`FK_c253dafe5f3a03ec00cd8fb4581\` + `); + await queryRunner.query(` + ALTER TABLE \`voice_states\` DROP FOREIGN KEY \`FK_5fe1d5f931a67e85039c640001b\` + `); + await queryRunner.query(` + ALTER TABLE \`voice_states\` DROP FOREIGN KEY \`FK_9f8d389866b40b6657edd026dd4\` + `); + await queryRunner.query(` + ALTER TABLE \`voice_states\` DROP FOREIGN KEY \`FK_03779ef216d4b0358470d9cb748\` + `); + await queryRunner.query(` + ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_11a0d394f8fc649c19ce5f16b59\` + `); + await queryRunner.query(` + ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` + `); + await queryRunner.query(` + ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_6a15b051fe5050aa00a4b9ff0f6\` + `); + await queryRunner.query(` + ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_3f4939aa1461e8af57fea3fb05d\` + `); + await queryRunner.query(` + ALTER TABLE \`read_states\` DROP FOREIGN KEY \`FK_195f92e4dd1254a4e348c043763\` + `); + await queryRunner.query(` + ALTER TABLE \`read_states\` DROP FOREIGN KEY \`FK_40da2fca4e0eaf7a23b5bfc5d34\` + `); + await queryRunner.query(` + ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_61a92bb65b302a76d9c1fcd3174\` + `); + await queryRunner.query(` + ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_5d3ec1cb962de6488637fd779d6\` + `); + await queryRunner.query(` + ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_f83c04bcf1df4e5c0e7a52ed348\` + `); + await queryRunner.query(` + ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_b0525304f2262b7014245351c76\` + `); + await queryRunner.query(` + ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_05535bc695e9f7ee104616459d3\` + `); + await queryRunner.query(` + ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_b193588441b085352a4c0109423\` + `); + await queryRunner.query(` + ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_86b9109b155eb70c0a2ca3b4b6d\` + `); + await queryRunner.query(` + ALTER TABLE \`attachments\` DROP FOREIGN KEY \`FK_623e10eec51ada466c5038979e3\` + `); + await queryRunner.query(` + ALTER TABLE \`stickers\` DROP FOREIGN KEY \`FK_8f4ee73f2bb2325ff980502e158\` + `); + await queryRunner.query(` + ALTER TABLE \`stickers\` DROP FOREIGN KEY \`FK_193d551d852aca5347ef5c9f205\` + `); + await queryRunner.query(` + ALTER TABLE \`stickers\` DROP FOREIGN KEY \`FK_e7cfa5cefa6661b3fb8fda8ce69\` + `); + await queryRunner.query(` + ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_3a285f4f49c40e0706d3018bc9f\` + `); + await queryRunner.query(` + ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_0d523f6f997c86e052c49b1455f\` + `); + await queryRunner.query(` + ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_c3e5305461931763b56aa905f1c\` + `); + await queryRunner.query(` + ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_df528cf77e82f8032230e7e37d8\` + `); + await queryRunner.query(` + ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_487a7af59d189f744fe394368fc\` + `); + await queryRunner.query(` + ALTER TABLE \`members\` DROP FOREIGN KEY \`FK_16aceddd5b89825b8ed6029ad1c\` + `); + await queryRunner.query(` + ALTER TABLE \`members\` DROP FOREIGN KEY \`FK_28b53062261b996d9c99fa12404\` + `); + await queryRunner.query(` + ALTER TABLE \`roles\` DROP FOREIGN KEY \`FK_c32c1ab1c4dc7dcb0278c4b1b8b\` + `); + await queryRunner.query(` + ALTER TABLE \`recipients\` DROP FOREIGN KEY \`FK_6157e8b6ba4e6e3089616481fe2\` + `); + await queryRunner.query(` + ALTER TABLE \`recipients\` DROP FOREIGN KEY \`FK_2f18ee1ba667f233ae86c0ea60e\` + `); + await queryRunner.query(` + ALTER TABLE \`bans\` DROP FOREIGN KEY \`FK_07ad88c86d1f290d46748410d58\` + `); + await queryRunner.query(` + ALTER TABLE \`bans\` DROP FOREIGN KEY \`FK_9d3ab7dd180ebdd245cdb66ecad\` + `); + await queryRunner.query(` + ALTER TABLE \`bans\` DROP FOREIGN KEY \`FK_5999e8e449f80a236ff72023559\` + `); + await queryRunner.query(` + ALTER TABLE \`backup_codes\` DROP FOREIGN KEY \`FK_70066ea80d2f4b871beda32633b\` + `); + await queryRunner.query(` + ALTER TABLE \`connected_accounts\` DROP FOREIGN KEY \`FK_f47244225a6a1eac04a3463dd90\` + `); + await queryRunner.query(` + ALTER TABLE \`relationships\` DROP FOREIGN KEY \`FK_9c7f6b98a9843b76dce1b0c878b\` + `); + await queryRunner.query(` + ALTER TABLE \`relationships\` DROP FOREIGN KEY \`FK_9af4194bab1250b1c584ae4f1d7\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_e22a70819d07659c7a71c112a1\` ON \`message_stickers\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_40bb6f23e7cc133292e92829d2\` ON \`message_stickers\` + `); + await queryRunner.query(` + DROP TABLE \`message_stickers\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_bdb8c09e1464cabf62105bf4b9\` ON \`message_channel_mentions\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_2a27102ecd1d81b4582a436092\` ON \`message_channel_mentions\` + `); + await queryRunner.query(` + DROP TABLE \`message_channel_mentions\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_29d63eb1a458200851bc37d074\` ON \`message_role_mentions\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_a8242cf535337a490b0feaea0b\` ON \`message_role_mentions\` + `); + await queryRunner.query(` + DROP TABLE \`message_role_mentions\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_b831eb18ceebd28976239b1e2f\` ON \`message_user_mentions\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_a343387fc560ef378760681c23\` ON \`message_user_mentions\` + `); + await queryRunner.query(` + DROP TABLE \`message_user_mentions\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_e9080e7a7997a0170026d5139c\` ON \`member_roles\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_5d7ddc8a5f9c167f548625e772\` ON \`member_roles\` + `); + await queryRunner.query(` + DROP TABLE \`member_roles\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_74e6689b9568cc965b8bfc9150\` ON \`notes\` + `); + await queryRunner.query(` + DROP TABLE \`notes\` + `); + await queryRunner.query(` + DROP TABLE \`client_release\` + `); + await queryRunner.query(` + DROP TABLE \`sticker_packs\` + `); + await queryRunner.query(` + DROP TABLE \`sessions\` + `); + await queryRunner.query(` + DROP TABLE \`rate_limits\` + `); + await queryRunner.query(` + DROP TABLE \`categories\` + `); + await queryRunner.query(` + DROP TABLE \`audit_logs\` + `); + await queryRunner.query(` + DROP TABLE \`applications\` + `); + await queryRunner.query(` + DROP TABLE \`teams\` + `); + await queryRunner.query(` + DROP TABLE \`team_members\` + `); + await queryRunner.query(` + DROP TABLE \`guilds\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_be38737bf339baf63b1daeffb5\` ON \`templates\` + `); + await queryRunner.query(` + DROP TABLE \`templates\` + `); + await queryRunner.query(` + DROP TABLE \`emojis\` + `); + await queryRunner.query(` + DROP TABLE \`channels\` + `); + await queryRunner.query(` + DROP TABLE \`voice_states\` + `); + await queryRunner.query(` + DROP TABLE \`invites\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_0abf8b443321bd3cf7f81ee17a\` ON \`read_states\` + `); + await queryRunner.query(` + DROP TABLE \`read_states\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_3ed7a60fb7dbe04e1ba9332a8b\` ON \`messages\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_05535bc695e9f7ee104616459d\` ON \`messages\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_86b9109b155eb70c0a2ca3b4b6\` ON \`messages\` + `); + await queryRunner.query(` + DROP TABLE \`messages\` + `); + await queryRunner.query(` + DROP TABLE \`attachments\` + `); + await queryRunner.query(` + DROP TABLE \`stickers\` + `); + await queryRunner.query(` + DROP TABLE \`webhooks\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_bb2bf9386ac443afbbbf9f12d3\` ON \`members\` + `); + await queryRunner.query(` + DROP TABLE \`members\` + `); + await queryRunner.query(` + DROP TABLE \`roles\` + `); + await queryRunner.query(` + DROP TABLE \`recipients\` + `); + await queryRunner.query(` + DROP TABLE \`bans\` + `); + await queryRunner.query(` + DROP TABLE \`backup_codes\` + `); + await queryRunner.query(` + DROP TABLE \`users\` + `); + await queryRunner.query(` + DROP TABLE \`connected_accounts\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_a0b2ff0a598df0b0d055934a17\` ON \`relationships\` + `); + await queryRunner.query(` + DROP TABLE \`relationships\` + `); + await queryRunner.query(` + DROP TABLE \`config\` + `); + } + +} diff --git a/src/util/migrations/mariadb/1659921859145-premium_since_as_date.ts b/src/util/migrations/mariadb/1659921859145-premium_since_as_date.ts new file mode 100644 index 00000000..de173cfe --- /dev/null +++ b/src/util/migrations/mariadb/1659921859145-premium_since_as_date.ts @@ -0,0 +1,26 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class premiumSinceAsDate1659921859145 implements MigrationInterface { + name = 'premiumSinceAsDate1659921859145' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`members\` DROP COLUMN \`premium_since\` + `); + await queryRunner.query(` + ALTER TABLE \`members\` + ADD \`premium_since\` datetime NULL + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`members\` DROP COLUMN \`premium_since\` + `); + await queryRunner.query(` + ALTER TABLE \`members\` + ADD \`premium_since\` bigint NULL + `); + } + +} diff --git a/src/util/migrations/mariadb/1660258393551-CodeCleanup3.ts b/src/util/migrations/mariadb/1660258393551-CodeCleanup3.ts new file mode 100644 index 00000000..87d075e4 --- /dev/null +++ b/src/util/migrations/mariadb/1660258393551-CodeCleanup3.ts @@ -0,0 +1,232 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup31660258393551 implements MigrationInterface { + name = 'CodeCleanup31660258393551' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_2ce5a55796fe4c2f77ece57a647\` + `); + await queryRunner.query(` + DROP INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` + `); + await queryRunner.query(` + CREATE TABLE \`user_settings\` ( + \`id\` varchar(255) NOT NULL, + \`afk_timeout\` int NULL, + \`allow_accessibility_detection\` tinyint NULL, + \`animate_emoji\` tinyint NULL, + \`animate_stickers\` int NULL, + \`contact_sync_enabled\` tinyint NULL, + \`convert_emoticons\` tinyint NULL, + \`custom_status\` text NULL, + \`default_guilds_restricted\` tinyint NULL, + \`detect_platform_accounts\` tinyint NULL, + \`developer_mode\` tinyint NULL, + \`disable_games_tab\` tinyint NULL, + \`enable_tts_command\` tinyint NULL, + \`explicit_content_filter\` int NULL, + \`friend_source_flags\` text NULL, + \`gateway_connected\` tinyint NULL, + \`gif_auto_play\` tinyint NULL, + \`guild_folders\` text NULL, + \`guild_positions\` text NULL, + \`inline_attachment_media\` tinyint NULL, + \`inline_embed_media\` tinyint NULL, + \`locale\` varchar(255) NULL, + \`message_display_compact\` tinyint NULL, + \`native_phone_integration_enabled\` tinyint NULL, + \`render_embeds\` tinyint NULL, + \`render_reactions\` tinyint NULL, + \`restricted_guilds\` text NULL, + \`show_current_game\` tinyint NULL, + \`status\` varchar(255) NULL, + \`stream_notifications_enabled\` tinyint NULL, + \`theme\` varchar(255) NULL, + \`timezone_offset\` int NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP COLUMN \`settings\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`type\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`hook\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`redirect_uris\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`rpc_application_state\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`store_application_state\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`verification_state\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`interactions_endpoint_url\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`integration_public\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`integration_require_code_grant\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`discoverability_state\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`discovery_eligibility_flags\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`tags\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`install_params\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`bot_user_id\` + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` + ADD \`premium_progress_bar_enabled\` tinyint NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`rpc_origins\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`primary_sku_id\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`slug\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`guild_id\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`flags\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`flags\` varchar(255) NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD CONSTRAINT \`FK_e5bf78cdbbe9ba91062d74c5aba\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e5bf78cdbbe9ba91062d74c5aba\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`flags\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`flags\` int NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`guild_id\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`slug\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`primary_sku_id\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`rpc_origins\` + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` DROP COLUMN \`premium_progress_bar_enabled\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`bot_user_id\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`install_params\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`tags\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`discovery_eligibility_flags\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`discoverability_state\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`integration_require_code_grant\` tinyint NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`integration_public\` tinyint NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`interactions_endpoint_url\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`verification_state\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`store_application_state\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`rpc_application_state\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`redirect_uris\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`hook\` tinyint NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`type\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD \`settings\` text NOT NULL + `); + await queryRunner.query(` + DROP TABLE \`user_settings\` + `); + await queryRunner.query(` + CREATE UNIQUE INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`) + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD CONSTRAINT \`FK_2ce5a55796fe4c2f77ece57a647\` FOREIGN KEY (\`bot_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + +} diff --git a/src/util/migrations/mariadb/1660260587556-CodeCleanup4.ts b/src/util/migrations/mariadb/1660260587556-CodeCleanup4.ts new file mode 100644 index 00000000..98da67db --- /dev/null +++ b/src/util/migrations/mariadb/1660260587556-CodeCleanup4.ts @@ -0,0 +1,39 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup41660260587556 implements MigrationInterface { + name = 'CodeCleanup41660260587556' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`users\` + ADD \`settingsId\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` (\`settingsId\`) + `); + await queryRunner.query(` + CREATE UNIQUE INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD CONSTRAINT \`FK_76ba283779c8441fd5ff819c8cf\` FOREIGN KEY (\`settingsId\`) REFERENCES \`user_settings\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`users\` DROP FOREIGN KEY \`FK_76ba283779c8441fd5ff819c8cf\` + `); + await queryRunner.query(` + DROP INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP COLUMN \`settingsId\` + `); + } + +} diff --git a/src/util/migrations/mariadb/1660265930624-CodeCleanup5.ts b/src/util/migrations/mariadb/1660265930624-CodeCleanup5.ts new file mode 100644 index 00000000..04f8e6af --- /dev/null +++ b/src/util/migrations/mariadb/1660265930624-CodeCleanup5.ts @@ -0,0 +1,53 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup51660265930624 implements MigrationInterface { + name = 'CodeCleanup51660265930624' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`users\` + ADD \`settingsId\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` (\`settingsId\`) + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD \`flags\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD \`default_thread_rate_limit_per_user\` int NULL + `); + await queryRunner.query(` + CREATE UNIQUE INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD CONSTRAINT \`FK_76ba283779c8441fd5ff819c8cf\` FOREIGN KEY (\`settingsId\`) REFERENCES \`user_settings\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`users\` DROP FOREIGN KEY \`FK_76ba283779c8441fd5ff819c8cf\` + `); + await queryRunner.query(` + DROP INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP COLUMN \`default_thread_rate_limit_per_user\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP COLUMN \`flags\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP COLUMN \`settingsId\` + `); + } + +} diff --git a/src/util/migrations/postgres/1659899687168-initial.ts b/src/util/migrations/postgres/1659899687168-initial.ts new file mode 100644 index 00000000..4ffb897d --- /dev/null +++ b/src/util/migrations/postgres/1659899687168-initial.ts @@ -0,0 +1,1245 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class initial1659899687168 implements MigrationInterface { + name = 'initial1659899687168' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "config" ( + "key" character varying NOT NULL, + "value" text, + CONSTRAINT "PK_26489c99ddbb4c91631ef5cc791" PRIMARY KEY ("key") + ) + `); + await queryRunner.query(` + CREATE TABLE "relationships" ( + "id" character varying NOT NULL, + "from_id" character varying NOT NULL, + "to_id" character varying NOT NULL, + "nickname" character varying, + "type" integer NOT NULL, + CONSTRAINT "PK_ba20e2f5cf487408e08e4dcecaf" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_a0b2ff0a598df0b0d055934a17" ON "relationships" ("from_id", "to_id") + `); + await queryRunner.query(` + CREATE TABLE "connected_accounts" ( + "id" character varying NOT NULL, + "user_id" character varying, + "access_token" character varying NOT NULL, + "friend_sync" boolean NOT NULL, + "name" character varying NOT NULL, + "revoked" boolean NOT NULL, + "show_activity" boolean NOT NULL, + "type" character varying NOT NULL, + "verified" boolean NOT NULL, + "visibility" integer NOT NULL, + CONSTRAINT "PK_70416f1da0be645bb31da01c774" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "users" ( + "id" character varying NOT NULL, + "username" character varying NOT NULL, + "discriminator" character varying NOT NULL, + "avatar" character varying, + "accent_color" integer, + "banner" character varying, + "phone" character varying, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" character varying NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" character varying, + "totp_last_ticket" character varying, + "created_at" TIMESTAMP NOT NULL, + "premium_since" TIMESTAMP, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" character varying, + "flags" character varying NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "settings" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL, + CONSTRAINT "PK_a3ffb1c0c8416b9fc6f907b7433" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "backup_codes" ( + "id" character varying NOT NULL, + "code" character varying NOT NULL, + "consumed" boolean NOT NULL, + "expired" boolean NOT NULL, + "user_id" character varying, + CONSTRAINT "PK_34ab957382dbc57e8fb53f1638f" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "bans" ( + "id" character varying NOT NULL, + "user_id" character varying, + "guild_id" character varying, + "executor_id" character varying, + "ip" character varying NOT NULL, + "reason" character varying, + CONSTRAINT "PK_a4d6f261bffa4615c62d756566a" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "recipients" ( + "id" character varying NOT NULL, + "channel_id" character varying NOT NULL, + "user_id" character varying NOT NULL, + "closed" boolean NOT NULL DEFAULT false, + CONSTRAINT "PK_de8fc5a9c364568f294798fe1e9" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "roles" ( + "id" character varying NOT NULL, + "guild_id" character varying, + "color" integer NOT NULL, + "hoist" boolean NOT NULL, + "managed" boolean NOT NULL, + "mentionable" boolean NOT NULL, + "name" character varying NOT NULL, + "permissions" character varying NOT NULL, + "position" integer NOT NULL, + "icon" character varying, + "unicode_emoji" character varying, + "tags" text, + CONSTRAINT "PK_c1433d71a4838793a49dcad46ab" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "members" ( + "index" SERIAL NOT NULL, + "id" character varying NOT NULL, + "guild_id" character varying NOT NULL, + "nick" character varying, + "joined_at" TIMESTAMP NOT NULL, + "premium_since" bigint, + "deaf" boolean NOT NULL, + "mute" boolean NOT NULL, + "pending" boolean NOT NULL, + "settings" text NOT NULL, + "last_message_id" character varying, + "joined_by" character varying, + CONSTRAINT "PK_b4a6b8c2478e5df990909c6cf6a" PRIMARY KEY ("index") + ) + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") + `); + await queryRunner.query(` + CREATE TABLE "webhooks" ( + "id" character varying NOT NULL, + "type" integer NOT NULL, + "name" character varying, + "avatar" character varying, + "token" character varying, + "guild_id" character varying, + "channel_id" character varying, + "application_id" character varying, + "user_id" character varying, + "source_guild_id" character varying, + CONSTRAINT "PK_9e8795cfc899ab7bdaa831e8527" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "stickers" ( + "id" character varying NOT NULL, + "name" character varying NOT NULL, + "description" character varying, + "available" boolean, + "tags" character varying, + "pack_id" character varying, + "guild_id" character varying, + "user_id" character varying, + "type" integer NOT NULL, + "format_type" integer NOT NULL, + CONSTRAINT "PK_e1dafa4063a5532645cc2810374" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "attachments" ( + "id" character varying NOT NULL, + "filename" character varying NOT NULL, + "size" integer NOT NULL, + "url" character varying NOT NULL, + "proxy_url" character varying NOT NULL, + "height" integer, + "width" integer, + "content_type" character varying, + "message_id" character varying, + CONSTRAINT "PK_5e1f050bcff31e3084a1d662412" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "messages" ( + "id" character varying NOT NULL, + "channel_id" character varying, + "guild_id" character varying, + "author_id" character varying, + "member_id" character varying, + "webhook_id" character varying, + "application_id" character varying, + "content" character varying, + "timestamp" TIMESTAMP NOT NULL DEFAULT now(), + "edited_timestamp" TIMESTAMP, + "tts" boolean, + "mention_everyone" boolean, + "embeds" text NOT NULL, + "reactions" text NOT NULL, + "nonce" text, + "pinned" boolean, + "type" integer NOT NULL, + "activity" text, + "flags" character varying, + "message_reference" text, + "interaction" text, + "components" text, + "message_reference_id" character varying, + CONSTRAINT "PK_18325f38ae6de43878487eff986" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" ON "messages" ("channel_id") + `); + await queryRunner.query(` + CREATE INDEX "IDX_05535bc695e9f7ee104616459d" ON "messages" ("author_id") + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" ON "messages" ("channel_id", "id") + `); + await queryRunner.query(` + CREATE TABLE "read_states" ( + "id" character varying NOT NULL, + "channel_id" character varying NOT NULL, + "user_id" character varying NOT NULL, + "last_message_id" character varying, + "public_ack" character varying, + "notifications_cursor" character varying, + "last_pin_timestamp" TIMESTAMP, + "mention_count" integer, + CONSTRAINT "PK_e6956a804978f01b713b1ed58e2" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_0abf8b443321bd3cf7f81ee17a" ON "read_states" ("channel_id", "user_id") + `); + await queryRunner.query(` + CREATE TABLE "invites" ( + "code" character varying NOT NULL, + "temporary" boolean NOT NULL, + "uses" integer NOT NULL, + "max_uses" integer NOT NULL, + "max_age" integer NOT NULL, + "created_at" TIMESTAMP NOT NULL, + "expires_at" TIMESTAMP NOT NULL, + "guild_id" character varying, + "channel_id" character varying, + "inviter_id" character varying, + "target_user_id" character varying, + "target_user_type" integer, + "vanity_url" boolean, + CONSTRAINT "PK_33fd8a248db1cd832baa8aa25bf" PRIMARY KEY ("code") + ) + `); + await queryRunner.query(` + CREATE TABLE "voice_states" ( + "id" character varying NOT NULL, + "guild_id" character varying, + "channel_id" character varying, + "user_id" character varying, + "session_id" character varying NOT NULL, + "token" character varying, + "deaf" boolean NOT NULL, + "mute" boolean NOT NULL, + "self_deaf" boolean NOT NULL, + "self_mute" boolean NOT NULL, + "self_stream" boolean, + "self_video" boolean NOT NULL, + "suppress" boolean NOT NULL, + "request_to_speak_timestamp" TIMESTAMP, + CONSTRAINT "PK_ada09a50c134fad1369b510e3ce" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "channels" ( + "id" character varying NOT NULL, + "created_at" TIMESTAMP NOT NULL, + "name" character varying, + "icon" text, + "type" integer NOT NULL, + "last_message_id" character varying, + "guild_id" character varying, + "parent_id" character varying, + "owner_id" character varying, + "last_pin_timestamp" integer, + "default_auto_archive_duration" integer, + "position" integer, + "permission_overwrites" text, + "video_quality_mode" integer, + "bitrate" integer, + "user_limit" integer, + "nsfw" boolean, + "rate_limit_per_user" integer, + "topic" character varying, + "retention_policy_id" character varying, + CONSTRAINT "PK_bc603823f3f741359c2339389f9" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "emojis" ( + "id" character varying NOT NULL, + "animated" boolean NOT NULL, + "available" boolean NOT NULL, + "guild_id" character varying NOT NULL, + "user_id" character varying, + "managed" boolean NOT NULL, + "name" character varying NOT NULL, + "require_colons" boolean NOT NULL, + "roles" text NOT NULL, + "groups" text, + CONSTRAINT "PK_9adb96a675f555c6169bad7ba62" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "templates" ( + "id" character varying NOT NULL, + "code" character varying NOT NULL, + "name" character varying NOT NULL, + "description" character varying, + "usage_count" integer, + "creator_id" character varying, + "created_at" TIMESTAMP NOT NULL, + "updated_at" TIMESTAMP NOT NULL, + "source_guild_id" character varying, + "serialized_source_guild" text NOT NULL, + CONSTRAINT "UQ_be38737bf339baf63b1daeffb55" UNIQUE ("code"), + CONSTRAINT "PK_515948649ce0bbbe391de702ae5" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "guilds" ( + "id" character varying NOT NULL, + "afk_channel_id" character varying, + "afk_timeout" integer, + "banner" character varying, + "default_message_notifications" integer, + "description" character varying, + "discovery_splash" character varying, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" character varying, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" character varying, + "mfa_level" integer, + "name" character varying NOT NULL, + "owner_id" character varying, + "preferred_locale" character varying, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" character varying, + "rules_channel_id" character varying, + "region" character varying, + "splash" character varying, + "system_channel_id" character varying, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" character varying, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" character varying, + CONSTRAINT "PK_e7e7f2a51bd6d96a9ac2aa560f9" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "team_members" ( + "id" character varying NOT NULL, + "membership_state" integer NOT NULL, + "permissions" text NOT NULL, + "team_id" character varying, + "user_id" character varying, + CONSTRAINT "PK_ca3eae89dcf20c9fd95bf7460aa" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "teams" ( + "id" character varying NOT NULL, + "icon" character varying, + "name" character varying NOT NULL, + "owner_user_id" character varying, + CONSTRAINT "PK_7e5523774a38b08a6236d322403" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "applications" ( + "id" character varying NOT NULL, + "name" character varying NOT NULL, + "icon" character varying, + "description" character varying NOT NULL, + "rpc_origins" text, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" character varying, + "privacy_policy_url" character varying, + "summary" character varying, + "verify_key" character varying NOT NULL, + "primary_sku_id" character varying, + "slug" character varying, + "cover_image" character varying, + "flags" character varying NOT NULL, + "owner_id" character varying, + "team_id" character varying, + "guild_id" character varying, + CONSTRAINT "PK_938c0a27255637bde919591888f" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "audit_logs" ( + "id" character varying NOT NULL, + "user_id" character varying, + "action_type" integer NOT NULL, + "options" text, + "changes" text NOT NULL, + "reason" character varying, + "target_id" character varying, + CONSTRAINT "PK_1bb179d048bbc581caa3b013439" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "categories" ( + "id" integer NOT NULL, + "name" character varying, + "localizations" text NOT NULL, + "is_primary" boolean, + CONSTRAINT "PK_24dbc6126a28ff948da33e97d3b" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "rate_limits" ( + "id" character varying NOT NULL, + "executor_id" character varying NOT NULL, + "hits" integer NOT NULL, + "blocked" boolean NOT NULL, + "expires_at" TIMESTAMP NOT NULL, + CONSTRAINT "PK_3b4449f1f5fc167d921ee619f65" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "sessions" ( + "id" character varying NOT NULL, + "user_id" character varying, + "session_id" character varying NOT NULL, + "activities" text, + "client_info" text NOT NULL, + "status" character varying NOT NULL, + CONSTRAINT "PK_3238ef96f18b355b671619111bc" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "sticker_packs" ( + "id" character varying NOT NULL, + "name" character varying NOT NULL, + "description" character varying, + "banner_asset_id" character varying, + "cover_sticker_id" character varying, + "coverStickerId" character varying, + CONSTRAINT "PK_a27381efea0f876f5d3233af655" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "client_release" ( + "id" character varying NOT NULL, + "name" character varying NOT NULL, + "pub_date" character varying NOT NULL, + "url" character varying NOT NULL, + "deb_url" character varying NOT NULL, + "osx_url" character varying NOT NULL, + "win_url" character varying NOT NULL, + "notes" character varying, + CONSTRAINT "PK_4c4ea258342d2d6ba1be0a71a43" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "notes" ( + "id" character varying NOT NULL, + "content" character varying NOT NULL, + "owner_id" character varying, + "target_id" character varying, + CONSTRAINT "UQ_74e6689b9568cc965b8bfc9150b" UNIQUE ("owner_id", "target_id"), + CONSTRAINT "PK_af6206538ea96c4e77e9f400c3d" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + CREATE TABLE "member_roles" ( + "index" integer NOT NULL, + "role_id" character varying NOT NULL, + CONSTRAINT "PK_951c1d72a0fd1da8760b4a1fd66" PRIMARY KEY ("index", "role_id") + ) + `); + await queryRunner.query(` + CREATE INDEX "IDX_5d7ddc8a5f9c167f548625e772" ON "member_roles" ("index") + `); + await queryRunner.query(` + CREATE INDEX "IDX_e9080e7a7997a0170026d5139c" ON "member_roles" ("role_id") + `); + await queryRunner.query(` + CREATE TABLE "message_user_mentions" ( + "messagesId" character varying NOT NULL, + "usersId" character varying NOT NULL, + CONSTRAINT "PK_9b9b6e245ad47a48dbd7605d4fb" PRIMARY KEY ("messagesId", "usersId") + ) + `); + await queryRunner.query(` + CREATE INDEX "IDX_a343387fc560ef378760681c23" ON "message_user_mentions" ("messagesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_b831eb18ceebd28976239b1e2f" ON "message_user_mentions" ("usersId") + `); + await queryRunner.query(` + CREATE TABLE "message_role_mentions" ( + "messagesId" character varying NOT NULL, + "rolesId" character varying NOT NULL, + CONSTRAINT "PK_74dba92cc300452a6e14b83ed44" PRIMARY KEY ("messagesId", "rolesId") + ) + `); + await queryRunner.query(` + CREATE INDEX "IDX_a8242cf535337a490b0feaea0b" ON "message_role_mentions" ("messagesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_29d63eb1a458200851bc37d074" ON "message_role_mentions" ("rolesId") + `); + await queryRunner.query(` + CREATE TABLE "message_channel_mentions" ( + "messagesId" character varying NOT NULL, + "channelsId" character varying NOT NULL, + CONSTRAINT "PK_85cb45351497cd9d06a79ced65e" PRIMARY KEY ("messagesId", "channelsId") + ) + `); + await queryRunner.query(` + CREATE INDEX "IDX_2a27102ecd1d81b4582a436092" ON "message_channel_mentions" ("messagesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_bdb8c09e1464cabf62105bf4b9" ON "message_channel_mentions" ("channelsId") + `); + await queryRunner.query(` + CREATE TABLE "message_stickers" ( + "messagesId" character varying NOT NULL, + "stickersId" character varying NOT NULL, + CONSTRAINT "PK_ed820c4093d0b8cd1d2bcf66087" PRIMARY KEY ("messagesId", "stickersId") + ) + `); + await queryRunner.query(` + CREATE INDEX "IDX_40bb6f23e7cc133292e92829d2" ON "message_stickers" ("messagesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_e22a70819d07659c7a71c112a1" ON "message_stickers" ("stickersId") + `); + await queryRunner.query(` + ALTER TABLE "relationships" + ADD CONSTRAINT "FK_9af4194bab1250b1c584ae4f1d7" FOREIGN KEY ("from_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "relationships" + ADD CONSTRAINT "FK_9c7f6b98a9843b76dce1b0c878b" FOREIGN KEY ("to_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "connected_accounts" + ADD CONSTRAINT "FK_f47244225a6a1eac04a3463dd90" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "backup_codes" + ADD CONSTRAINT "FK_70066ea80d2f4b871beda32633b" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "bans" + ADD CONSTRAINT "FK_5999e8e449f80a236ff72023559" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "bans" + ADD CONSTRAINT "FK_9d3ab7dd180ebdd245cdb66ecad" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "bans" + ADD CONSTRAINT "FK_07ad88c86d1f290d46748410d58" FOREIGN KEY ("executor_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "recipients" + ADD CONSTRAINT "FK_2f18ee1ba667f233ae86c0ea60e" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "recipients" + ADD CONSTRAINT "FK_6157e8b6ba4e6e3089616481fe2" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "roles" + ADD CONSTRAINT "FK_c32c1ab1c4dc7dcb0278c4b1b8b" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "members" + ADD CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "members" + ADD CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "webhooks" + ADD CONSTRAINT "FK_487a7af59d189f744fe394368fc" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "webhooks" + ADD CONSTRAINT "FK_df528cf77e82f8032230e7e37d8" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "webhooks" + ADD CONSTRAINT "FK_c3e5305461931763b56aa905f1c" FOREIGN KEY ("application_id") REFERENCES "applications"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "webhooks" + ADD CONSTRAINT "FK_0d523f6f997c86e052c49b1455f" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "webhooks" + ADD CONSTRAINT "FK_3a285f4f49c40e0706d3018bc9f" FOREIGN KEY ("source_guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "stickers" + ADD CONSTRAINT "FK_e7cfa5cefa6661b3fb8fda8ce69" FOREIGN KEY ("pack_id") REFERENCES "sticker_packs"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "stickers" + ADD CONSTRAINT "FK_193d551d852aca5347ef5c9f205" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "stickers" + ADD CONSTRAINT "FK_8f4ee73f2bb2325ff980502e158" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "attachments" + ADD CONSTRAINT "FK_623e10eec51ada466c5038979e3" FOREIGN KEY ("message_id") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "messages" + ADD CONSTRAINT "FK_86b9109b155eb70c0a2ca3b4b6d" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "messages" + ADD CONSTRAINT "FK_b193588441b085352a4c0109423" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "messages" + ADD CONSTRAINT "FK_05535bc695e9f7ee104616459d3" FOREIGN KEY ("author_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "messages" + ADD CONSTRAINT "FK_b0525304f2262b7014245351c76" FOREIGN KEY ("member_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "messages" + ADD CONSTRAINT "FK_f83c04bcf1df4e5c0e7a52ed348" FOREIGN KEY ("webhook_id") REFERENCES "webhooks"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "messages" + ADD CONSTRAINT "FK_5d3ec1cb962de6488637fd779d6" FOREIGN KEY ("application_id") REFERENCES "applications"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "messages" + ADD CONSTRAINT "FK_61a92bb65b302a76d9c1fcd3174" FOREIGN KEY ("message_reference_id") REFERENCES "messages"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "read_states" + ADD CONSTRAINT "FK_40da2fca4e0eaf7a23b5bfc5d34" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "read_states" + ADD CONSTRAINT "FK_195f92e4dd1254a4e348c043763" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "invites" + ADD CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "invites" + ADD CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "invites" + ADD CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "invites" + ADD CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "voice_states" + ADD CONSTRAINT "FK_03779ef216d4b0358470d9cb748" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "voice_states" + ADD CONSTRAINT "FK_9f8d389866b40b6657edd026dd4" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "voice_states" + ADD CONSTRAINT "FK_5fe1d5f931a67e85039c640001b" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "channels" + ADD CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "channels" + ADD CONSTRAINT "FK_3274522d14af40540b1a883fc80" FOREIGN KEY ("parent_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "channels" + ADD CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "emojis" + ADD CONSTRAINT "FK_4b988e0db89d94cebcf07f598cc" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "emojis" + ADD CONSTRAINT "FK_fa7ddd5f9a214e28ce596548421" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "templates" + ADD CONSTRAINT "FK_d7374b7f8f5fbfdececa4fb62e1" FOREIGN KEY ("creator_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "templates" + ADD CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" FOREIGN KEY ("source_guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "guilds" + ADD CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "guilds" + ADD CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "guilds" + ADD CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "guilds" + ADD CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "guilds" + ADD CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "guilds" + ADD CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "guilds" + ADD CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "team_members" + ADD CONSTRAINT "FK_fdad7d5768277e60c40e01cdcea" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "team_members" + ADD CONSTRAINT "FK_c2bf4967c8c2a6b845dadfbf3d4" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "teams" + ADD CONSTRAINT "FK_13f00abf7cb6096c43ecaf8c108" FOREIGN KEY ("owner_user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "audit_logs" + ADD CONSTRAINT "FK_3cd01cd3ae7aab010310d96ac8e" FOREIGN KEY ("target_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "audit_logs" + ADD CONSTRAINT "FK_bd2726fd31b35443f2245b93ba0" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "sessions" + ADD CONSTRAINT "FK_085d540d9f418cfbdc7bd55bb19" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "sticker_packs" + ADD CONSTRAINT "FK_448fafba4355ee1c837bbc865f1" FOREIGN KEY ("coverStickerId") REFERENCES "stickers"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "notes" + ADD CONSTRAINT "FK_f9e103f8ae67cb1787063597925" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "notes" + ADD CONSTRAINT "FK_23e08e5b4481711d573e1abecdc" FOREIGN KEY ("target_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE "member_roles" + ADD CONSTRAINT "FK_5d7ddc8a5f9c167f548625e772e" FOREIGN KEY ("index") REFERENCES "members"("index") ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE "member_roles" + ADD CONSTRAINT "FK_e9080e7a7997a0170026d5139c1" FOREIGN KEY ("role_id") REFERENCES "roles"("id") ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE "message_user_mentions" + ADD CONSTRAINT "FK_a343387fc560ef378760681c236" FOREIGN KEY ("messagesId") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE "message_user_mentions" + ADD CONSTRAINT "FK_b831eb18ceebd28976239b1e2f8" FOREIGN KEY ("usersId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE "message_role_mentions" + ADD CONSTRAINT "FK_a8242cf535337a490b0feaea0b4" FOREIGN KEY ("messagesId") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE "message_role_mentions" + ADD CONSTRAINT "FK_29d63eb1a458200851bc37d074b" FOREIGN KEY ("rolesId") REFERENCES "roles"("id") ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE "message_channel_mentions" + ADD CONSTRAINT "FK_2a27102ecd1d81b4582a4360921" FOREIGN KEY ("messagesId") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE "message_channel_mentions" + ADD CONSTRAINT "FK_bdb8c09e1464cabf62105bf4b9d" FOREIGN KEY ("channelsId") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE "message_stickers" + ADD CONSTRAINT "FK_40bb6f23e7cc133292e92829d28" FOREIGN KEY ("messagesId") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + ALTER TABLE "message_stickers" + ADD CONSTRAINT "FK_e22a70819d07659c7a71c112a1f" FOREIGN KEY ("stickersId") REFERENCES "stickers"("id") ON DELETE CASCADE ON UPDATE CASCADE + `); + await queryRunner.query(` + CREATE TABLE "query-result-cache" ( + "id" SERIAL NOT NULL, + "identifier" character varying, + "time" bigint NOT NULL, + "duration" integer NOT NULL, + "query" text NOT NULL, + "result" text NOT NULL, + CONSTRAINT "PK_6a98f758d8bfd010e7e10ffd3d3" PRIMARY KEY ("id") + ) + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + DROP TABLE "query-result-cache" + `); + await queryRunner.query(` + ALTER TABLE "message_stickers" DROP CONSTRAINT "FK_e22a70819d07659c7a71c112a1f" + `); + await queryRunner.query(` + ALTER TABLE "message_stickers" DROP CONSTRAINT "FK_40bb6f23e7cc133292e92829d28" + `); + await queryRunner.query(` + ALTER TABLE "message_channel_mentions" DROP CONSTRAINT "FK_bdb8c09e1464cabf62105bf4b9d" + `); + await queryRunner.query(` + ALTER TABLE "message_channel_mentions" DROP CONSTRAINT "FK_2a27102ecd1d81b4582a4360921" + `); + await queryRunner.query(` + ALTER TABLE "message_role_mentions" DROP CONSTRAINT "FK_29d63eb1a458200851bc37d074b" + `); + await queryRunner.query(` + ALTER TABLE "message_role_mentions" DROP CONSTRAINT "FK_a8242cf535337a490b0feaea0b4" + `); + await queryRunner.query(` + ALTER TABLE "message_user_mentions" DROP CONSTRAINT "FK_b831eb18ceebd28976239b1e2f8" + `); + await queryRunner.query(` + ALTER TABLE "message_user_mentions" DROP CONSTRAINT "FK_a343387fc560ef378760681c236" + `); + await queryRunner.query(` + ALTER TABLE "member_roles" DROP CONSTRAINT "FK_e9080e7a7997a0170026d5139c1" + `); + await queryRunner.query(` + ALTER TABLE "member_roles" DROP CONSTRAINT "FK_5d7ddc8a5f9c167f548625e772e" + `); + await queryRunner.query(` + ALTER TABLE "notes" DROP CONSTRAINT "FK_23e08e5b4481711d573e1abecdc" + `); + await queryRunner.query(` + ALTER TABLE "notes" DROP CONSTRAINT "FK_f9e103f8ae67cb1787063597925" + `); + await queryRunner.query(` + ALTER TABLE "sticker_packs" DROP CONSTRAINT "FK_448fafba4355ee1c837bbc865f1" + `); + await queryRunner.query(` + ALTER TABLE "sessions" DROP CONSTRAINT "FK_085d540d9f418cfbdc7bd55bb19" + `); + await queryRunner.query(` + ALTER TABLE "audit_logs" DROP CONSTRAINT "FK_bd2726fd31b35443f2245b93ba0" + `); + await queryRunner.query(` + ALTER TABLE "audit_logs" DROP CONSTRAINT "FK_3cd01cd3ae7aab010310d96ac8e" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" + `); + await queryRunner.query(` + ALTER TABLE "teams" DROP CONSTRAINT "FK_13f00abf7cb6096c43ecaf8c108" + `); + await queryRunner.query(` + ALTER TABLE "team_members" DROP CONSTRAINT "FK_c2bf4967c8c2a6b845dadfbf3d4" + `); + await queryRunner.query(` + ALTER TABLE "team_members" DROP CONSTRAINT "FK_fdad7d5768277e60c40e01cdcea" + `); + await queryRunner.query(` + ALTER TABLE "guilds" DROP CONSTRAINT "FK_9d1d665379eefde7876a17afa99" + `); + await queryRunner.query(` + ALTER TABLE "guilds" DROP CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" + `); + await queryRunner.query(` + ALTER TABLE "guilds" DROP CONSTRAINT "FK_95828668aa333460582e0ca6396" + `); + await queryRunner.query(` + ALTER TABLE "guilds" DROP CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" + `); + await queryRunner.query(` + ALTER TABLE "guilds" DROP CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" + `); + await queryRunner.query(` + ALTER TABLE "guilds" DROP CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" + `); + await queryRunner.query(` + ALTER TABLE "guilds" DROP CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" + `); + await queryRunner.query(` + ALTER TABLE "templates" DROP CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" + `); + await queryRunner.query(` + ALTER TABLE "templates" DROP CONSTRAINT "FK_d7374b7f8f5fbfdececa4fb62e1" + `); + await queryRunner.query(` + ALTER TABLE "emojis" DROP CONSTRAINT "FK_fa7ddd5f9a214e28ce596548421" + `); + await queryRunner.query(` + ALTER TABLE "emojis" DROP CONSTRAINT "FK_4b988e0db89d94cebcf07f598cc" + `); + await queryRunner.query(` + ALTER TABLE "channels" DROP CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" + `); + await queryRunner.query(` + ALTER TABLE "channels" DROP CONSTRAINT "FK_3274522d14af40540b1a883fc80" + `); + await queryRunner.query(` + ALTER TABLE "channels" DROP CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" + `); + await queryRunner.query(` + ALTER TABLE "voice_states" DROP CONSTRAINT "FK_5fe1d5f931a67e85039c640001b" + `); + await queryRunner.query(` + ALTER TABLE "voice_states" DROP CONSTRAINT "FK_9f8d389866b40b6657edd026dd4" + `); + await queryRunner.query(` + ALTER TABLE "voice_states" DROP CONSTRAINT "FK_03779ef216d4b0358470d9cb748" + `); + await queryRunner.query(` + ALTER TABLE "invites" DROP CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" + `); + await queryRunner.query(` + ALTER TABLE "invites" DROP CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" + `); + await queryRunner.query(` + ALTER TABLE "invites" DROP CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" + `); + await queryRunner.query(` + ALTER TABLE "invites" DROP CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" + `); + await queryRunner.query(` + ALTER TABLE "read_states" DROP CONSTRAINT "FK_195f92e4dd1254a4e348c043763" + `); + await queryRunner.query(` + ALTER TABLE "read_states" DROP CONSTRAINT "FK_40da2fca4e0eaf7a23b5bfc5d34" + `); + await queryRunner.query(` + ALTER TABLE "messages" DROP CONSTRAINT "FK_61a92bb65b302a76d9c1fcd3174" + `); + await queryRunner.query(` + ALTER TABLE "messages" DROP CONSTRAINT "FK_5d3ec1cb962de6488637fd779d6" + `); + await queryRunner.query(` + ALTER TABLE "messages" DROP CONSTRAINT "FK_f83c04bcf1df4e5c0e7a52ed348" + `); + await queryRunner.query(` + ALTER TABLE "messages" DROP CONSTRAINT "FK_b0525304f2262b7014245351c76" + `); + await queryRunner.query(` + ALTER TABLE "messages" DROP CONSTRAINT "FK_05535bc695e9f7ee104616459d3" + `); + await queryRunner.query(` + ALTER TABLE "messages" DROP CONSTRAINT "FK_b193588441b085352a4c0109423" + `); + await queryRunner.query(` + ALTER TABLE "messages" DROP CONSTRAINT "FK_86b9109b155eb70c0a2ca3b4b6d" + `); + await queryRunner.query(` + ALTER TABLE "attachments" DROP CONSTRAINT "FK_623e10eec51ada466c5038979e3" + `); + await queryRunner.query(` + ALTER TABLE "stickers" DROP CONSTRAINT "FK_8f4ee73f2bb2325ff980502e158" + `); + await queryRunner.query(` + ALTER TABLE "stickers" DROP CONSTRAINT "FK_193d551d852aca5347ef5c9f205" + `); + await queryRunner.query(` + ALTER TABLE "stickers" DROP CONSTRAINT "FK_e7cfa5cefa6661b3fb8fda8ce69" + `); + await queryRunner.query(` + ALTER TABLE "webhooks" DROP CONSTRAINT "FK_3a285f4f49c40e0706d3018bc9f" + `); + await queryRunner.query(` + ALTER TABLE "webhooks" DROP CONSTRAINT "FK_0d523f6f997c86e052c49b1455f" + `); + await queryRunner.query(` + ALTER TABLE "webhooks" DROP CONSTRAINT "FK_c3e5305461931763b56aa905f1c" + `); + await queryRunner.query(` + ALTER TABLE "webhooks" DROP CONSTRAINT "FK_df528cf77e82f8032230e7e37d8" + `); + await queryRunner.query(` + ALTER TABLE "webhooks" DROP CONSTRAINT "FK_487a7af59d189f744fe394368fc" + `); + await queryRunner.query(` + ALTER TABLE "members" DROP CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" + `); + await queryRunner.query(` + ALTER TABLE "members" DROP CONSTRAINT "FK_28b53062261b996d9c99fa12404" + `); + await queryRunner.query(` + ALTER TABLE "roles" DROP CONSTRAINT "FK_c32c1ab1c4dc7dcb0278c4b1b8b" + `); + await queryRunner.query(` + ALTER TABLE "recipients" DROP CONSTRAINT "FK_6157e8b6ba4e6e3089616481fe2" + `); + await queryRunner.query(` + ALTER TABLE "recipients" DROP CONSTRAINT "FK_2f18ee1ba667f233ae86c0ea60e" + `); + await queryRunner.query(` + ALTER TABLE "bans" DROP CONSTRAINT "FK_07ad88c86d1f290d46748410d58" + `); + await queryRunner.query(` + ALTER TABLE "bans" DROP CONSTRAINT "FK_9d3ab7dd180ebdd245cdb66ecad" + `); + await queryRunner.query(` + ALTER TABLE "bans" DROP CONSTRAINT "FK_5999e8e449f80a236ff72023559" + `); + await queryRunner.query(` + ALTER TABLE "backup_codes" DROP CONSTRAINT "FK_70066ea80d2f4b871beda32633b" + `); + await queryRunner.query(` + ALTER TABLE "connected_accounts" DROP CONSTRAINT "FK_f47244225a6a1eac04a3463dd90" + `); + await queryRunner.query(` + ALTER TABLE "relationships" DROP CONSTRAINT "FK_9c7f6b98a9843b76dce1b0c878b" + `); + await queryRunner.query(` + ALTER TABLE "relationships" DROP CONSTRAINT "FK_9af4194bab1250b1c584ae4f1d7" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_e22a70819d07659c7a71c112a1" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_40bb6f23e7cc133292e92829d2" + `); + await queryRunner.query(` + DROP TABLE "message_stickers" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_bdb8c09e1464cabf62105bf4b9" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_2a27102ecd1d81b4582a436092" + `); + await queryRunner.query(` + DROP TABLE "message_channel_mentions" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_29d63eb1a458200851bc37d074" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_a8242cf535337a490b0feaea0b" + `); + await queryRunner.query(` + DROP TABLE "message_role_mentions" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_b831eb18ceebd28976239b1e2f" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_a343387fc560ef378760681c23" + `); + await queryRunner.query(` + DROP TABLE "message_user_mentions" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_e9080e7a7997a0170026d5139c" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_5d7ddc8a5f9c167f548625e772" + `); + await queryRunner.query(` + DROP TABLE "member_roles" + `); + await queryRunner.query(` + DROP TABLE "notes" + `); + await queryRunner.query(` + DROP TABLE "client_release" + `); + await queryRunner.query(` + DROP TABLE "sticker_packs" + `); + await queryRunner.query(` + DROP TABLE "sessions" + `); + await queryRunner.query(` + DROP TABLE "rate_limits" + `); + await queryRunner.query(` + DROP TABLE "categories" + `); + await queryRunner.query(` + DROP TABLE "audit_logs" + `); + await queryRunner.query(` + DROP TABLE "applications" + `); + await queryRunner.query(` + DROP TABLE "teams" + `); + await queryRunner.query(` + DROP TABLE "team_members" + `); + await queryRunner.query(` + DROP TABLE "guilds" + `); + await queryRunner.query(` + DROP TABLE "templates" + `); + await queryRunner.query(` + DROP TABLE "emojis" + `); + await queryRunner.query(` + DROP TABLE "channels" + `); + await queryRunner.query(` + DROP TABLE "voice_states" + `); + await queryRunner.query(` + DROP TABLE "invites" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_0abf8b443321bd3cf7f81ee17a" + `); + await queryRunner.query(` + DROP TABLE "read_states" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_3ed7a60fb7dbe04e1ba9332a8b" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_05535bc695e9f7ee104616459d" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_86b9109b155eb70c0a2ca3b4b6" + `); + await queryRunner.query(` + DROP TABLE "messages" + `); + await queryRunner.query(` + DROP TABLE "attachments" + `); + await queryRunner.query(` + DROP TABLE "stickers" + `); + await queryRunner.query(` + DROP TABLE "webhooks" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_bb2bf9386ac443afbbbf9f12d3" + `); + await queryRunner.query(` + DROP TABLE "members" + `); + await queryRunner.query(` + DROP TABLE "roles" + `); + await queryRunner.query(` + DROP TABLE "recipients" + `); + await queryRunner.query(` + DROP TABLE "bans" + `); + await queryRunner.query(` + DROP TABLE "backup_codes" + `); + await queryRunner.query(` + DROP TABLE "users" + `); + await queryRunner.query(` + DROP TABLE "connected_accounts" + `); + await queryRunner.query(` + DROP INDEX "public"."IDX_a0b2ff0a598df0b0d055934a17" + `); + await queryRunner.query(` + DROP TABLE "relationships" + `); + await queryRunner.query(` + DROP TABLE "config" + `); + } + +} diff --git a/src/util/migrations/postgres/1659921826567-premium_since_as_date.ts b/src/util/migrations/postgres/1659921826567-premium_since_as_date.ts new file mode 100644 index 00000000..ac1e2edb --- /dev/null +++ b/src/util/migrations/postgres/1659921826567-premium_since_as_date.ts @@ -0,0 +1,26 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class premiumSinceAsDate1659921826567 implements MigrationInterface { + name = 'premiumSinceAsDate1659921826567' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "members" DROP COLUMN "premium_since" + `); + await queryRunner.query(` + ALTER TABLE "members" + ADD "premium_since" TIMESTAMP + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "members" DROP COLUMN "premium_since" + `); + await queryRunner.query(` + ALTER TABLE "members" + ADD "premium_since" bigint + `); + } + +} diff --git a/src/util/migrations/postgres/1660257815436-CodeCleanup2.ts b/src/util/migrations/postgres/1660257815436-CodeCleanup2.ts new file mode 100644 index 00000000..511c2f5a --- /dev/null +++ b/src/util/migrations/postgres/1660257815436-CodeCleanup2.ts @@ -0,0 +1,59 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup21660257815436 implements MigrationInterface { + name = 'CodeCleanup21660257815436' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "user_settings" ( + "id" character varying NOT NULL, + "afk_timeout" integer, + "allow_accessibility_detection" boolean, + "animate_emoji" boolean, + "animate_stickers" integer, + "contact_sync_enabled" boolean, + "convert_emoticons" boolean, + "custom_status" text, + "default_guilds_restricted" boolean, + "detect_platform_accounts" boolean, + "developer_mode" boolean, + "disable_games_tab" boolean, + "enable_tts_command" boolean, + "explicit_content_filter" integer, + "friend_source_flags" text, + "gateway_connected" boolean, + "gif_auto_play" boolean, + "guild_folders" text, + "guild_positions" text, + "inline_attachment_media" boolean, + "inline_embed_media" boolean, + "locale" character varying, + "message_display_compact" boolean, + "native_phone_integration_enabled" boolean, + "render_embeds" boolean, + "render_reactions" boolean, + "restricted_guilds" text, + "show_current_game" boolean, + "status" character varying, + "stream_notifications_enabled" boolean, + "theme" character varying, + "timezone_offset" integer, + CONSTRAINT "PK_00f004f5922a0744d174530d639" PRIMARY KEY ("id") + ) + `); + await queryRunner.query(` + ALTER TABLE "guilds" + ADD "premium_progress_bar_enabled" boolean + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "guilds" DROP COLUMN "premium_progress_bar_enabled" + `); + await queryRunner.query(` + DROP TABLE "user_settings" + `); + } + +} diff --git a/src/util/migrations/postgres/1660258372154-CodeCleanup3.ts b/src/util/migrations/postgres/1660258372154-CodeCleanup3.ts new file mode 100644 index 00000000..e2823a54 --- /dev/null +++ b/src/util/migrations/postgres/1660258372154-CodeCleanup3.ts @@ -0,0 +1,19 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup31660258372154 implements MigrationInterface { + name = 'CodeCleanup31660258372154' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" DROP COLUMN "settings" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" + ADD "settings" text NOT NULL + `); + } + +} diff --git a/src/util/migrations/postgres/1660260565996-CodeCleanup4.ts b/src/util/migrations/postgres/1660260565996-CodeCleanup4.ts new file mode 100644 index 00000000..0aaf7197 --- /dev/null +++ b/src/util/migrations/postgres/1660260565996-CodeCleanup4.ts @@ -0,0 +1,33 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup41660260565996 implements MigrationInterface { + name = 'CodeCleanup41660260565996' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" + ADD "settingsId" character varying + `); + await queryRunner.query(` + ALTER TABLE "users" + ADD CONSTRAINT "UQ_76ba283779c8441fd5ff819c8cf" UNIQUE ("settingsId") + `); + await queryRunner.query(` + ALTER TABLE "users" + ADD CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" FOREIGN KEY ("settingsId") REFERENCES "user_settings"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" DROP CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" + `); + await queryRunner.query(` + ALTER TABLE "users" DROP CONSTRAINT "UQ_76ba283779c8441fd5ff819c8cf" + `); + await queryRunner.query(` + ALTER TABLE "users" DROP COLUMN "settingsId" + `); + } + +} diff --git a/src/util/migrations/postgres/1660265907544-CodeCleanup5.ts b/src/util/migrations/postgres/1660265907544-CodeCleanup5.ts new file mode 100644 index 00000000..157d686a --- /dev/null +++ b/src/util/migrations/postgres/1660265907544-CodeCleanup5.ts @@ -0,0 +1,26 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup51660265907544 implements MigrationInterface { + name = 'CodeCleanup51660265907544' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "channels" + ADD "flags" integer + `); + await queryRunner.query(` + ALTER TABLE "channels" + ADD "default_thread_rate_limit_per_user" integer + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "channels" DROP COLUMN "default_thread_rate_limit_per_user" + `); + await queryRunner.query(` + ALTER TABLE "channels" DROP COLUMN "flags" + `); + } + +} diff --git a/src/util/migrations/sqlite/1659899662635-initial.ts b/src/util/migrations/sqlite/1659899662635-initial.ts new file mode 100644 index 00000000..f82e7b0d --- /dev/null +++ b/src/util/migrations/sqlite/1659899662635-initial.ts @@ -0,0 +1,3529 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class initial1659899662635 implements MigrationInterface { + name = 'initial1659899662635' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "config" ("key" varchar PRIMARY KEY NOT NULL, "value" text) + `); + await queryRunner.query(` + CREATE TABLE "relationships" ( + "id" varchar PRIMARY KEY NOT NULL, + "from_id" varchar NOT NULL, + "to_id" varchar NOT NULL, + "nickname" varchar, + "type" integer NOT NULL + ) + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_a0b2ff0a598df0b0d055934a17" ON "relationships" ("from_id", "to_id") + `); + await queryRunner.query(` + CREATE TABLE "connected_accounts" ( + "id" varchar PRIMARY KEY NOT NULL, + "user_id" varchar, + "access_token" varchar NOT NULL, + "friend_sync" boolean NOT NULL, + "name" varchar NOT NULL, + "revoked" boolean NOT NULL, + "show_activity" boolean NOT NULL, + "type" varchar NOT NULL, + "verified" boolean NOT NULL, + "visibility" integer NOT NULL + ) + `); + await queryRunner.query(` + CREATE TABLE "users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "settings" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL + ) + `); + await queryRunner.query(` + CREATE TABLE "backup_codes" ( + "id" varchar PRIMARY KEY NOT NULL, + "code" varchar NOT NULL, + "consumed" boolean NOT NULL, + "expired" boolean NOT NULL, + "user_id" varchar + ) + `); + await queryRunner.query(` + CREATE TABLE "bans" ( + "id" varchar PRIMARY KEY NOT NULL, + "user_id" varchar, + "guild_id" varchar, + "executor_id" varchar, + "ip" varchar NOT NULL, + "reason" varchar + ) + `); + await queryRunner.query(` + CREATE TABLE "recipients" ( + "id" varchar PRIMARY KEY NOT NULL, + "channel_id" varchar NOT NULL, + "user_id" varchar NOT NULL, + "closed" boolean NOT NULL DEFAULT (0) + ) + `); + await queryRunner.query(` + CREATE TABLE "roles" ( + "id" varchar PRIMARY KEY NOT NULL, + "guild_id" varchar, + "color" integer NOT NULL, + "hoist" boolean NOT NULL, + "managed" boolean NOT NULL, + "mentionable" boolean NOT NULL, + "name" varchar NOT NULL, + "permissions" varchar NOT NULL, + "position" integer NOT NULL, + "icon" varchar, + "unicode_emoji" varchar, + "tags" text + ) + `); + await queryRunner.query(` + CREATE TABLE "members" ( + "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, + "id" varchar NOT NULL, + "guild_id" varchar NOT NULL, + "nick" varchar, + "joined_at" datetime NOT NULL, + "premium_since" bigint, + "deaf" boolean NOT NULL, + "mute" boolean NOT NULL, + "pending" boolean NOT NULL, + "settings" text NOT NULL, + "last_message_id" varchar, + "joined_by" varchar + ) + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") + `); + await queryRunner.query(` + CREATE TABLE "webhooks" ( + "id" varchar PRIMARY KEY NOT NULL, + "type" integer NOT NULL, + "name" varchar, + "avatar" varchar, + "token" varchar, + "guild_id" varchar, + "channel_id" varchar, + "application_id" varchar, + "user_id" varchar, + "source_guild_id" varchar + ) + `); + await queryRunner.query(` + CREATE TABLE "stickers" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "description" varchar, + "available" boolean, + "tags" varchar, + "pack_id" varchar, + "guild_id" varchar, + "user_id" varchar, + "type" integer NOT NULL, + "format_type" integer NOT NULL + ) + `); + await queryRunner.query(` + CREATE TABLE "attachments" ( + "id" varchar PRIMARY KEY NOT NULL, + "filename" varchar NOT NULL, + "size" integer NOT NULL, + "url" varchar NOT NULL, + "proxy_url" varchar NOT NULL, + "height" integer, + "width" integer, + "content_type" varchar, + "message_id" varchar + ) + `); + await queryRunner.query(` + CREATE TABLE "messages" ( + "id" varchar PRIMARY KEY NOT NULL, + "channel_id" varchar, + "guild_id" varchar, + "author_id" varchar, + "member_id" varchar, + "webhook_id" varchar, + "application_id" varchar, + "content" varchar, + "timestamp" datetime NOT NULL DEFAULT (datetime('now')), + "edited_timestamp" datetime, + "tts" boolean, + "mention_everyone" boolean, + "embeds" text NOT NULL, + "reactions" text NOT NULL, + "nonce" text, + "pinned" boolean, + "type" integer NOT NULL, + "activity" text, + "flags" varchar, + "message_reference" text, + "interaction" text, + "components" text, + "message_reference_id" varchar + ) + `); + await queryRunner.query(` + CREATE INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" ON "messages" ("channel_id") + `); + await queryRunner.query(` + CREATE INDEX "IDX_05535bc695e9f7ee104616459d" ON "messages" ("author_id") + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" ON "messages" ("channel_id", "id") + `); + await queryRunner.query(` + CREATE TABLE "read_states" ( + "id" varchar PRIMARY KEY NOT NULL, + "channel_id" varchar NOT NULL, + "user_id" varchar NOT NULL, + "last_message_id" varchar, + "public_ack" varchar, + "notifications_cursor" varchar, + "last_pin_timestamp" datetime, + "mention_count" integer + ) + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_0abf8b443321bd3cf7f81ee17a" ON "read_states" ("channel_id", "user_id") + `); + await queryRunner.query(` + CREATE TABLE "invites" ( + "code" varchar PRIMARY KEY NOT NULL, + "temporary" boolean NOT NULL, + "uses" integer NOT NULL, + "max_uses" integer NOT NULL, + "max_age" integer NOT NULL, + "created_at" datetime NOT NULL, + "expires_at" datetime NOT NULL, + "guild_id" varchar, + "channel_id" varchar, + "inviter_id" varchar, + "target_user_id" varchar, + "target_user_type" integer, + "vanity_url" boolean + ) + `); + await queryRunner.query(` + CREATE TABLE "voice_states" ( + "id" varchar PRIMARY KEY NOT NULL, + "guild_id" varchar, + "channel_id" varchar, + "user_id" varchar, + "session_id" varchar NOT NULL, + "token" varchar, + "deaf" boolean NOT NULL, + "mute" boolean NOT NULL, + "self_deaf" boolean NOT NULL, + "self_mute" boolean NOT NULL, + "self_stream" boolean, + "self_video" boolean NOT NULL, + "suppress" boolean NOT NULL, + "request_to_speak_timestamp" datetime + ) + `); + await queryRunner.query(` + CREATE TABLE "channels" ( + "id" varchar PRIMARY KEY NOT NULL, + "created_at" datetime NOT NULL, + "name" varchar, + "icon" text, + "type" integer NOT NULL, + "last_message_id" varchar, + "guild_id" varchar, + "parent_id" varchar, + "owner_id" varchar, + "last_pin_timestamp" integer, + "default_auto_archive_duration" integer, + "position" integer, + "permission_overwrites" text, + "video_quality_mode" integer, + "bitrate" integer, + "user_limit" integer, + "nsfw" boolean, + "rate_limit_per_user" integer, + "topic" varchar, + "retention_policy_id" varchar + ) + `); + await queryRunner.query(` + CREATE TABLE "emojis" ( + "id" varchar PRIMARY KEY NOT NULL, + "animated" boolean NOT NULL, + "available" boolean NOT NULL, + "guild_id" varchar NOT NULL, + "user_id" varchar, + "managed" boolean NOT NULL, + "name" varchar NOT NULL, + "require_colons" boolean NOT NULL, + "roles" text NOT NULL, + "groups" text + ) + `); + await queryRunner.query(` + CREATE TABLE "templates" ( + "id" varchar PRIMARY KEY NOT NULL, + "code" varchar NOT NULL, + "name" varchar NOT NULL, + "description" varchar, + "usage_count" integer, + "creator_id" varchar, + "created_at" datetime NOT NULL, + "updated_at" datetime NOT NULL, + "source_guild_id" varchar, + "serialized_source_guild" text NOT NULL, + CONSTRAINT "UQ_be38737bf339baf63b1daeffb55" UNIQUE ("code") + ) + `); + await queryRunner.query(` + CREATE TABLE "guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar + ) + `); + await queryRunner.query(` + CREATE TABLE "team_members" ( + "id" varchar PRIMARY KEY NOT NULL, + "membership_state" integer NOT NULL, + "permissions" text NOT NULL, + "team_id" varchar, + "user_id" varchar + ) + `); + await queryRunner.query(` + CREATE TABLE "teams" ( + "id" varchar PRIMARY KEY NOT NULL, + "icon" varchar, + "name" varchar NOT NULL, + "owner_user_id" varchar + ) + `); + await queryRunner.query(` + CREATE TABLE "applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar NOT NULL, + "rpc_origins" text, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "primary_sku_id" varchar, + "slug" varchar, + "cover_image" varchar, + "flags" varchar NOT NULL, + "owner_id" varchar, + "team_id" varchar, + "guild_id" varchar + ) + `); + await queryRunner.query(` + CREATE TABLE "audit_logs" ( + "id" varchar PRIMARY KEY NOT NULL, + "user_id" varchar, + "action_type" integer NOT NULL, + "options" text, + "changes" text NOT NULL, + "reason" varchar, + "target_id" varchar + ) + `); + await queryRunner.query(` + CREATE TABLE "categories" ( + "id" integer PRIMARY KEY NOT NULL, + "name" varchar, + "localizations" text NOT NULL, + "is_primary" boolean + ) + `); + await queryRunner.query(` + CREATE TABLE "rate_limits" ( + "id" varchar PRIMARY KEY NOT NULL, + "executor_id" varchar NOT NULL, + "hits" integer NOT NULL, + "blocked" boolean NOT NULL, + "expires_at" datetime NOT NULL + ) + `); + await queryRunner.query(` + CREATE TABLE "sessions" ( + "id" varchar PRIMARY KEY NOT NULL, + "user_id" varchar, + "session_id" varchar NOT NULL, + "activities" text, + "client_info" text NOT NULL, + "status" varchar NOT NULL + ) + `); + await queryRunner.query(` + CREATE TABLE "sticker_packs" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "description" varchar, + "banner_asset_id" varchar, + "cover_sticker_id" varchar, + "coverStickerId" varchar + ) + `); + await queryRunner.query(` + CREATE TABLE "client_release" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "pub_date" varchar NOT NULL, + "url" varchar NOT NULL, + "deb_url" varchar NOT NULL, + "osx_url" varchar NOT NULL, + "win_url" varchar NOT NULL, + "notes" varchar + ) + `); + await queryRunner.query(` + CREATE TABLE "notes" ( + "id" varchar PRIMARY KEY NOT NULL, + "content" varchar NOT NULL, + "owner_id" varchar, + "target_id" varchar, + CONSTRAINT "UQ_74e6689b9568cc965b8bfc9150b" UNIQUE ("owner_id", "target_id") + ) + `); + await queryRunner.query(` + CREATE TABLE "member_roles" ( + "index" integer NOT NULL, + "role_id" varchar NOT NULL, + PRIMARY KEY ("index", "role_id") + ) + `); + await queryRunner.query(` + CREATE INDEX "IDX_5d7ddc8a5f9c167f548625e772" ON "member_roles" ("index") + `); + await queryRunner.query(` + CREATE INDEX "IDX_e9080e7a7997a0170026d5139c" ON "member_roles" ("role_id") + `); + await queryRunner.query(` + CREATE TABLE "message_user_mentions" ( + "messagesId" varchar NOT NULL, + "usersId" varchar NOT NULL, + PRIMARY KEY ("messagesId", "usersId") + ) + `); + await queryRunner.query(` + CREATE INDEX "IDX_a343387fc560ef378760681c23" ON "message_user_mentions" ("messagesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_b831eb18ceebd28976239b1e2f" ON "message_user_mentions" ("usersId") + `); + await queryRunner.query(` + CREATE TABLE "message_role_mentions" ( + "messagesId" varchar NOT NULL, + "rolesId" varchar NOT NULL, + PRIMARY KEY ("messagesId", "rolesId") + ) + `); + await queryRunner.query(` + CREATE INDEX "IDX_a8242cf535337a490b0feaea0b" ON "message_role_mentions" ("messagesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_29d63eb1a458200851bc37d074" ON "message_role_mentions" ("rolesId") + `); + await queryRunner.query(` + CREATE TABLE "message_channel_mentions" ( + "messagesId" varchar NOT NULL, + "channelsId" varchar NOT NULL, + PRIMARY KEY ("messagesId", "channelsId") + ) + `); + await queryRunner.query(` + CREATE INDEX "IDX_2a27102ecd1d81b4582a436092" ON "message_channel_mentions" ("messagesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_bdb8c09e1464cabf62105bf4b9" ON "message_channel_mentions" ("channelsId") + `); + await queryRunner.query(` + CREATE TABLE "message_stickers" ( + "messagesId" varchar NOT NULL, + "stickersId" varchar NOT NULL, + PRIMARY KEY ("messagesId", "stickersId") + ) + `); + await queryRunner.query(` + CREATE INDEX "IDX_40bb6f23e7cc133292e92829d2" ON "message_stickers" ("messagesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_e22a70819d07659c7a71c112a1" ON "message_stickers" ("stickersId") + `); + await queryRunner.query(` + DROP INDEX "IDX_a0b2ff0a598df0b0d055934a17" + `); + await queryRunner.query(` + CREATE TABLE "temporary_relationships" ( + "id" varchar PRIMARY KEY NOT NULL, + "from_id" varchar NOT NULL, + "to_id" varchar NOT NULL, + "nickname" varchar, + "type" integer NOT NULL, + CONSTRAINT "FK_9af4194bab1250b1c584ae4f1d7" FOREIGN KEY ("from_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_9c7f6b98a9843b76dce1b0c878b" FOREIGN KEY ("to_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_relationships"("id", "from_id", "to_id", "nickname", "type") + SELECT "id", + "from_id", + "to_id", + "nickname", + "type" + FROM "relationships" + `); + await queryRunner.query(` + DROP TABLE "relationships" + `); + await queryRunner.query(` + ALTER TABLE "temporary_relationships" + RENAME TO "relationships" + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_a0b2ff0a598df0b0d055934a17" ON "relationships" ("from_id", "to_id") + `); + await queryRunner.query(` + CREATE TABLE "temporary_connected_accounts" ( + "id" varchar PRIMARY KEY NOT NULL, + "user_id" varchar, + "access_token" varchar NOT NULL, + "friend_sync" boolean NOT NULL, + "name" varchar NOT NULL, + "revoked" boolean NOT NULL, + "show_activity" boolean NOT NULL, + "type" varchar NOT NULL, + "verified" boolean NOT NULL, + "visibility" integer NOT NULL, + CONSTRAINT "FK_f47244225a6a1eac04a3463dd90" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_connected_accounts"( + "id", + "user_id", + "access_token", + "friend_sync", + "name", + "revoked", + "show_activity", + "type", + "verified", + "visibility" + ) + SELECT "id", + "user_id", + "access_token", + "friend_sync", + "name", + "revoked", + "show_activity", + "type", + "verified", + "visibility" + FROM "connected_accounts" + `); + await queryRunner.query(` + DROP TABLE "connected_accounts" + `); + await queryRunner.query(` + ALTER TABLE "temporary_connected_accounts" + RENAME TO "connected_accounts" + `); + await queryRunner.query(` + CREATE TABLE "temporary_backup_codes" ( + "id" varchar PRIMARY KEY NOT NULL, + "code" varchar NOT NULL, + "consumed" boolean NOT NULL, + "expired" boolean NOT NULL, + "user_id" varchar, + CONSTRAINT "FK_70066ea80d2f4b871beda32633b" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_backup_codes"("id", "code", "consumed", "expired", "user_id") + SELECT "id", + "code", + "consumed", + "expired", + "user_id" + FROM "backup_codes" + `); + await queryRunner.query(` + DROP TABLE "backup_codes" + `); + await queryRunner.query(` + ALTER TABLE "temporary_backup_codes" + RENAME TO "backup_codes" + `); + await queryRunner.query(` + CREATE TABLE "temporary_bans" ( + "id" varchar PRIMARY KEY NOT NULL, + "user_id" varchar, + "guild_id" varchar, + "executor_id" varchar, + "ip" varchar NOT NULL, + "reason" varchar, + CONSTRAINT "FK_5999e8e449f80a236ff72023559" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_9d3ab7dd180ebdd245cdb66ecad" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_07ad88c86d1f290d46748410d58" FOREIGN KEY ("executor_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_bans"( + "id", + "user_id", + "guild_id", + "executor_id", + "ip", + "reason" + ) + SELECT "id", + "user_id", + "guild_id", + "executor_id", + "ip", + "reason" + FROM "bans" + `); + await queryRunner.query(` + DROP TABLE "bans" + `); + await queryRunner.query(` + ALTER TABLE "temporary_bans" + RENAME TO "bans" + `); + await queryRunner.query(` + CREATE TABLE "temporary_recipients" ( + "id" varchar PRIMARY KEY NOT NULL, + "channel_id" varchar NOT NULL, + "user_id" varchar NOT NULL, + "closed" boolean NOT NULL DEFAULT (0), + CONSTRAINT "FK_2f18ee1ba667f233ae86c0ea60e" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_6157e8b6ba4e6e3089616481fe2" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_recipients"("id", "channel_id", "user_id", "closed") + SELECT "id", + "channel_id", + "user_id", + "closed" + FROM "recipients" + `); + await queryRunner.query(` + DROP TABLE "recipients" + `); + await queryRunner.query(` + ALTER TABLE "temporary_recipients" + RENAME TO "recipients" + `); + await queryRunner.query(` + CREATE TABLE "temporary_roles" ( + "id" varchar PRIMARY KEY NOT NULL, + "guild_id" varchar, + "color" integer NOT NULL, + "hoist" boolean NOT NULL, + "managed" boolean NOT NULL, + "mentionable" boolean NOT NULL, + "name" varchar NOT NULL, + "permissions" varchar NOT NULL, + "position" integer NOT NULL, + "icon" varchar, + "unicode_emoji" varchar, + "tags" text, + CONSTRAINT "FK_c32c1ab1c4dc7dcb0278c4b1b8b" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_roles"( + "id", + "guild_id", + "color", + "hoist", + "managed", + "mentionable", + "name", + "permissions", + "position", + "icon", + "unicode_emoji", + "tags" + ) + SELECT "id", + "guild_id", + "color", + "hoist", + "managed", + "mentionable", + "name", + "permissions", + "position", + "icon", + "unicode_emoji", + "tags" + FROM "roles" + `); + await queryRunner.query(` + DROP TABLE "roles" + `); + await queryRunner.query(` + ALTER TABLE "temporary_roles" + RENAME TO "roles" + `); + await queryRunner.query(` + DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" + `); + await queryRunner.query(` + CREATE TABLE "temporary_members" ( + "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, + "id" varchar NOT NULL, + "guild_id" varchar NOT NULL, + "nick" varchar, + "joined_at" datetime NOT NULL, + "premium_since" bigint, + "deaf" boolean NOT NULL, + "mute" boolean NOT NULL, + "pending" boolean NOT NULL, + "settings" text NOT NULL, + "last_message_id" varchar, + "joined_by" varchar, + CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_members"( + "index", + "id", + "guild_id", + "nick", + "joined_at", + "premium_since", + "deaf", + "mute", + "pending", + "settings", + "last_message_id", + "joined_by" + ) + SELECT "index", + "id", + "guild_id", + "nick", + "joined_at", + "premium_since", + "deaf", + "mute", + "pending", + "settings", + "last_message_id", + "joined_by" + FROM "members" + `); + await queryRunner.query(` + DROP TABLE "members" + `); + await queryRunner.query(` + ALTER TABLE "temporary_members" + RENAME TO "members" + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") + `); + await queryRunner.query(` + CREATE TABLE "temporary_webhooks" ( + "id" varchar PRIMARY KEY NOT NULL, + "type" integer NOT NULL, + "name" varchar, + "avatar" varchar, + "token" varchar, + "guild_id" varchar, + "channel_id" varchar, + "application_id" varchar, + "user_id" varchar, + "source_guild_id" varchar, + CONSTRAINT "FK_487a7af59d189f744fe394368fc" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_df528cf77e82f8032230e7e37d8" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_c3e5305461931763b56aa905f1c" FOREIGN KEY ("application_id") REFERENCES "applications" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_0d523f6f997c86e052c49b1455f" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_3a285f4f49c40e0706d3018bc9f" FOREIGN KEY ("source_guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_webhooks"( + "id", + "type", + "name", + "avatar", + "token", + "guild_id", + "channel_id", + "application_id", + "user_id", + "source_guild_id" + ) + SELECT "id", + "type", + "name", + "avatar", + "token", + "guild_id", + "channel_id", + "application_id", + "user_id", + "source_guild_id" + FROM "webhooks" + `); + await queryRunner.query(` + DROP TABLE "webhooks" + `); + await queryRunner.query(` + ALTER TABLE "temporary_webhooks" + RENAME TO "webhooks" + `); + await queryRunner.query(` + CREATE TABLE "temporary_stickers" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "description" varchar, + "available" boolean, + "tags" varchar, + "pack_id" varchar, + "guild_id" varchar, + "user_id" varchar, + "type" integer NOT NULL, + "format_type" integer NOT NULL, + CONSTRAINT "FK_e7cfa5cefa6661b3fb8fda8ce69" FOREIGN KEY ("pack_id") REFERENCES "sticker_packs" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_193d551d852aca5347ef5c9f205" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_8f4ee73f2bb2325ff980502e158" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_stickers"( + "id", + "name", + "description", + "available", + "tags", + "pack_id", + "guild_id", + "user_id", + "type", + "format_type" + ) + SELECT "id", + "name", + "description", + "available", + "tags", + "pack_id", + "guild_id", + "user_id", + "type", + "format_type" + FROM "stickers" + `); + await queryRunner.query(` + DROP TABLE "stickers" + `); + await queryRunner.query(` + ALTER TABLE "temporary_stickers" + RENAME TO "stickers" + `); + await queryRunner.query(` + CREATE TABLE "temporary_attachments" ( + "id" varchar PRIMARY KEY NOT NULL, + "filename" varchar NOT NULL, + "size" integer NOT NULL, + "url" varchar NOT NULL, + "proxy_url" varchar NOT NULL, + "height" integer, + "width" integer, + "content_type" varchar, + "message_id" varchar, + CONSTRAINT "FK_623e10eec51ada466c5038979e3" FOREIGN KEY ("message_id") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_attachments"( + "id", + "filename", + "size", + "url", + "proxy_url", + "height", + "width", + "content_type", + "message_id" + ) + SELECT "id", + "filename", + "size", + "url", + "proxy_url", + "height", + "width", + "content_type", + "message_id" + FROM "attachments" + `); + await queryRunner.query(` + DROP TABLE "attachments" + `); + await queryRunner.query(` + ALTER TABLE "temporary_attachments" + RENAME TO "attachments" + `); + await queryRunner.query(` + DROP INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" + `); + await queryRunner.query(` + DROP INDEX "IDX_05535bc695e9f7ee104616459d" + `); + await queryRunner.query(` + DROP INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" + `); + await queryRunner.query(` + CREATE TABLE "temporary_messages" ( + "id" varchar PRIMARY KEY NOT NULL, + "channel_id" varchar, + "guild_id" varchar, + "author_id" varchar, + "member_id" varchar, + "webhook_id" varchar, + "application_id" varchar, + "content" varchar, + "timestamp" datetime NOT NULL DEFAULT (datetime('now')), + "edited_timestamp" datetime, + "tts" boolean, + "mention_everyone" boolean, + "embeds" text NOT NULL, + "reactions" text NOT NULL, + "nonce" text, + "pinned" boolean, + "type" integer NOT NULL, + "activity" text, + "flags" varchar, + "message_reference" text, + "interaction" text, + "components" text, + "message_reference_id" varchar, + CONSTRAINT "FK_86b9109b155eb70c0a2ca3b4b6d" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_b193588441b085352a4c0109423" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_05535bc695e9f7ee104616459d3" FOREIGN KEY ("author_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_b0525304f2262b7014245351c76" FOREIGN KEY ("member_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_f83c04bcf1df4e5c0e7a52ed348" FOREIGN KEY ("webhook_id") REFERENCES "webhooks" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_5d3ec1cb962de6488637fd779d6" FOREIGN KEY ("application_id") REFERENCES "applications" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_61a92bb65b302a76d9c1fcd3174" FOREIGN KEY ("message_reference_id") REFERENCES "messages" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_messages"( + "id", + "channel_id", + "guild_id", + "author_id", + "member_id", + "webhook_id", + "application_id", + "content", + "timestamp", + "edited_timestamp", + "tts", + "mention_everyone", + "embeds", + "reactions", + "nonce", + "pinned", + "type", + "activity", + "flags", + "message_reference", + "interaction", + "components", + "message_reference_id" + ) + SELECT "id", + "channel_id", + "guild_id", + "author_id", + "member_id", + "webhook_id", + "application_id", + "content", + "timestamp", + "edited_timestamp", + "tts", + "mention_everyone", + "embeds", + "reactions", + "nonce", + "pinned", + "type", + "activity", + "flags", + "message_reference", + "interaction", + "components", + "message_reference_id" + FROM "messages" + `); + await queryRunner.query(` + DROP TABLE "messages" + `); + await queryRunner.query(` + ALTER TABLE "temporary_messages" + RENAME TO "messages" + `); + await queryRunner.query(` + CREATE INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" ON "messages" ("channel_id") + `); + await queryRunner.query(` + CREATE INDEX "IDX_05535bc695e9f7ee104616459d" ON "messages" ("author_id") + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" ON "messages" ("channel_id", "id") + `); + await queryRunner.query(` + DROP INDEX "IDX_0abf8b443321bd3cf7f81ee17a" + `); + await queryRunner.query(` + CREATE TABLE "temporary_read_states" ( + "id" varchar PRIMARY KEY NOT NULL, + "channel_id" varchar NOT NULL, + "user_id" varchar NOT NULL, + "last_message_id" varchar, + "public_ack" varchar, + "notifications_cursor" varchar, + "last_pin_timestamp" datetime, + "mention_count" integer, + CONSTRAINT "FK_40da2fca4e0eaf7a23b5bfc5d34" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_195f92e4dd1254a4e348c043763" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_read_states"( + "id", + "channel_id", + "user_id", + "last_message_id", + "public_ack", + "notifications_cursor", + "last_pin_timestamp", + "mention_count" + ) + SELECT "id", + "channel_id", + "user_id", + "last_message_id", + "public_ack", + "notifications_cursor", + "last_pin_timestamp", + "mention_count" + FROM "read_states" + `); + await queryRunner.query(` + DROP TABLE "read_states" + `); + await queryRunner.query(` + ALTER TABLE "temporary_read_states" + RENAME TO "read_states" + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_0abf8b443321bd3cf7f81ee17a" ON "read_states" ("channel_id", "user_id") + `); + await queryRunner.query(` + CREATE TABLE "temporary_invites" ( + "code" varchar PRIMARY KEY NOT NULL, + "temporary" boolean NOT NULL, + "uses" integer NOT NULL, + "max_uses" integer NOT NULL, + "max_age" integer NOT NULL, + "created_at" datetime NOT NULL, + "expires_at" datetime NOT NULL, + "guild_id" varchar, + "channel_id" varchar, + "inviter_id" varchar, + "target_user_id" varchar, + "target_user_type" integer, + "vanity_url" boolean, + CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_invites"( + "code", + "temporary", + "uses", + "max_uses", + "max_age", + "created_at", + "expires_at", + "guild_id", + "channel_id", + "inviter_id", + "target_user_id", + "target_user_type", + "vanity_url" + ) + SELECT "code", + "temporary", + "uses", + "max_uses", + "max_age", + "created_at", + "expires_at", + "guild_id", + "channel_id", + "inviter_id", + "target_user_id", + "target_user_type", + "vanity_url" + FROM "invites" + `); + await queryRunner.query(` + DROP TABLE "invites" + `); + await queryRunner.query(` + ALTER TABLE "temporary_invites" + RENAME TO "invites" + `); + await queryRunner.query(` + CREATE TABLE "temporary_voice_states" ( + "id" varchar PRIMARY KEY NOT NULL, + "guild_id" varchar, + "channel_id" varchar, + "user_id" varchar, + "session_id" varchar NOT NULL, + "token" varchar, + "deaf" boolean NOT NULL, + "mute" boolean NOT NULL, + "self_deaf" boolean NOT NULL, + "self_mute" boolean NOT NULL, + "self_stream" boolean, + "self_video" boolean NOT NULL, + "suppress" boolean NOT NULL, + "request_to_speak_timestamp" datetime, + CONSTRAINT "FK_03779ef216d4b0358470d9cb748" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_9f8d389866b40b6657edd026dd4" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_5fe1d5f931a67e85039c640001b" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_voice_states"( + "id", + "guild_id", + "channel_id", + "user_id", + "session_id", + "token", + "deaf", + "mute", + "self_deaf", + "self_mute", + "self_stream", + "self_video", + "suppress", + "request_to_speak_timestamp" + ) + SELECT "id", + "guild_id", + "channel_id", + "user_id", + "session_id", + "token", + "deaf", + "mute", + "self_deaf", + "self_mute", + "self_stream", + "self_video", + "suppress", + "request_to_speak_timestamp" + FROM "voice_states" + `); + await queryRunner.query(` + DROP TABLE "voice_states" + `); + await queryRunner.query(` + ALTER TABLE "temporary_voice_states" + RENAME TO "voice_states" + `); + await queryRunner.query(` + CREATE TABLE "temporary_channels" ( + "id" varchar PRIMARY KEY NOT NULL, + "created_at" datetime NOT NULL, + "name" varchar, + "icon" text, + "type" integer NOT NULL, + "last_message_id" varchar, + "guild_id" varchar, + "parent_id" varchar, + "owner_id" varchar, + "last_pin_timestamp" integer, + "default_auto_archive_duration" integer, + "position" integer, + "permission_overwrites" text, + "video_quality_mode" integer, + "bitrate" integer, + "user_limit" integer, + "nsfw" boolean, + "rate_limit_per_user" integer, + "topic" varchar, + "retention_policy_id" varchar, + CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_3274522d14af40540b1a883fc80" FOREIGN KEY ("parent_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_channels"( + "id", + "created_at", + "name", + "icon", + "type", + "last_message_id", + "guild_id", + "parent_id", + "owner_id", + "last_pin_timestamp", + "default_auto_archive_duration", + "position", + "permission_overwrites", + "video_quality_mode", + "bitrate", + "user_limit", + "nsfw", + "rate_limit_per_user", + "topic", + "retention_policy_id" + ) + SELECT "id", + "created_at", + "name", + "icon", + "type", + "last_message_id", + "guild_id", + "parent_id", + "owner_id", + "last_pin_timestamp", + "default_auto_archive_duration", + "position", + "permission_overwrites", + "video_quality_mode", + "bitrate", + "user_limit", + "nsfw", + "rate_limit_per_user", + "topic", + "retention_policy_id" + FROM "channels" + `); + await queryRunner.query(` + DROP TABLE "channels" + `); + await queryRunner.query(` + ALTER TABLE "temporary_channels" + RENAME TO "channels" + `); + await queryRunner.query(` + CREATE TABLE "temporary_emojis" ( + "id" varchar PRIMARY KEY NOT NULL, + "animated" boolean NOT NULL, + "available" boolean NOT NULL, + "guild_id" varchar NOT NULL, + "user_id" varchar, + "managed" boolean NOT NULL, + "name" varchar NOT NULL, + "require_colons" boolean NOT NULL, + "roles" text NOT NULL, + "groups" text, + CONSTRAINT "FK_4b988e0db89d94cebcf07f598cc" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_fa7ddd5f9a214e28ce596548421" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_emojis"( + "id", + "animated", + "available", + "guild_id", + "user_id", + "managed", + "name", + "require_colons", + "roles", + "groups" + ) + SELECT "id", + "animated", + "available", + "guild_id", + "user_id", + "managed", + "name", + "require_colons", + "roles", + "groups" + FROM "emojis" + `); + await queryRunner.query(` + DROP TABLE "emojis" + `); + await queryRunner.query(` + ALTER TABLE "temporary_emojis" + RENAME TO "emojis" + `); + await queryRunner.query(` + CREATE TABLE "temporary_templates" ( + "id" varchar PRIMARY KEY NOT NULL, + "code" varchar NOT NULL, + "name" varchar NOT NULL, + "description" varchar, + "usage_count" integer, + "creator_id" varchar, + "created_at" datetime NOT NULL, + "updated_at" datetime NOT NULL, + "source_guild_id" varchar, + "serialized_source_guild" text NOT NULL, + CONSTRAINT "UQ_be38737bf339baf63b1daeffb55" UNIQUE ("code"), + CONSTRAINT "FK_d7374b7f8f5fbfdececa4fb62e1" FOREIGN KEY ("creator_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" FOREIGN KEY ("source_guild_id") REFERENCES "guilds" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_templates"( + "id", + "code", + "name", + "description", + "usage_count", + "creator_id", + "created_at", + "updated_at", + "source_guild_id", + "serialized_source_guild" + ) + SELECT "id", + "code", + "name", + "description", + "usage_count", + "creator_id", + "created_at", + "updated_at", + "source_guild_id", + "serialized_source_guild" + FROM "templates" + `); + await queryRunner.query(` + DROP TABLE "templates" + `); + await queryRunner.query(` + ALTER TABLE "temporary_templates" + RENAME TO "templates" + `); + await queryRunner.query(` + CREATE TABLE "temporary_guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent" + FROM "guilds" + `); + await queryRunner.query(` + DROP TABLE "guilds" + `); + await queryRunner.query(` + ALTER TABLE "temporary_guilds" + RENAME TO "guilds" + `); + await queryRunner.query(` + CREATE TABLE "temporary_team_members" ( + "id" varchar PRIMARY KEY NOT NULL, + "membership_state" integer NOT NULL, + "permissions" text NOT NULL, + "team_id" varchar, + "user_id" varchar, + CONSTRAINT "FK_fdad7d5768277e60c40e01cdcea" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_c2bf4967c8c2a6b845dadfbf3d4" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_team_members"( + "id", + "membership_state", + "permissions", + "team_id", + "user_id" + ) + SELECT "id", + "membership_state", + "permissions", + "team_id", + "user_id" + FROM "team_members" + `); + await queryRunner.query(` + DROP TABLE "team_members" + `); + await queryRunner.query(` + ALTER TABLE "temporary_team_members" + RENAME TO "team_members" + `); + await queryRunner.query(` + CREATE TABLE "temporary_teams" ( + "id" varchar PRIMARY KEY NOT NULL, + "icon" varchar, + "name" varchar NOT NULL, + "owner_user_id" varchar, + CONSTRAINT "FK_13f00abf7cb6096c43ecaf8c108" FOREIGN KEY ("owner_user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_teams"("id", "icon", "name", "owner_user_id") + SELECT "id", + "icon", + "name", + "owner_user_id" + FROM "teams" + `); + await queryRunner.query(` + DROP TABLE "teams" + `); + await queryRunner.query(` + ALTER TABLE "temporary_teams" + RENAME TO "teams" + `); + await queryRunner.query(` + CREATE TABLE "temporary_applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar NOT NULL, + "rpc_origins" text, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "primary_sku_id" varchar, + "slug" varchar, + "cover_image" varchar, + "flags" varchar NOT NULL, + "owner_id" varchar, + "team_id" varchar, + "guild_id" varchar, + CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_applications"( + "id", + "name", + "icon", + "description", + "rpc_origins", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "primary_sku_id", + "slug", + "cover_image", + "flags", + "owner_id", + "team_id", + "guild_id" + ) + SELECT "id", + "name", + "icon", + "description", + "rpc_origins", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "primary_sku_id", + "slug", + "cover_image", + "flags", + "owner_id", + "team_id", + "guild_id" + FROM "applications" + `); + await queryRunner.query(` + DROP TABLE "applications" + `); + await queryRunner.query(` + ALTER TABLE "temporary_applications" + RENAME TO "applications" + `); + await queryRunner.query(` + CREATE TABLE "temporary_audit_logs" ( + "id" varchar PRIMARY KEY NOT NULL, + "user_id" varchar, + "action_type" integer NOT NULL, + "options" text, + "changes" text NOT NULL, + "reason" varchar, + "target_id" varchar, + CONSTRAINT "FK_3cd01cd3ae7aab010310d96ac8e" FOREIGN KEY ("target_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_bd2726fd31b35443f2245b93ba0" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_audit_logs"( + "id", + "user_id", + "action_type", + "options", + "changes", + "reason", + "target_id" + ) + SELECT "id", + "user_id", + "action_type", + "options", + "changes", + "reason", + "target_id" + FROM "audit_logs" + `); + await queryRunner.query(` + DROP TABLE "audit_logs" + `); + await queryRunner.query(` + ALTER TABLE "temporary_audit_logs" + RENAME TO "audit_logs" + `); + await queryRunner.query(` + CREATE TABLE "temporary_sessions" ( + "id" varchar PRIMARY KEY NOT NULL, + "user_id" varchar, + "session_id" varchar NOT NULL, + "activities" text, + "client_info" text NOT NULL, + "status" varchar NOT NULL, + CONSTRAINT "FK_085d540d9f418cfbdc7bd55bb19" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_sessions"( + "id", + "user_id", + "session_id", + "activities", + "client_info", + "status" + ) + SELECT "id", + "user_id", + "session_id", + "activities", + "client_info", + "status" + FROM "sessions" + `); + await queryRunner.query(` + DROP TABLE "sessions" + `); + await queryRunner.query(` + ALTER TABLE "temporary_sessions" + RENAME TO "sessions" + `); + await queryRunner.query(` + CREATE TABLE "temporary_sticker_packs" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "description" varchar, + "banner_asset_id" varchar, + "cover_sticker_id" varchar, + "coverStickerId" varchar, + CONSTRAINT "FK_448fafba4355ee1c837bbc865f1" FOREIGN KEY ("coverStickerId") REFERENCES "stickers" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_sticker_packs"( + "id", + "name", + "description", + "banner_asset_id", + "cover_sticker_id", + "coverStickerId" + ) + SELECT "id", + "name", + "description", + "banner_asset_id", + "cover_sticker_id", + "coverStickerId" + FROM "sticker_packs" + `); + await queryRunner.query(` + DROP TABLE "sticker_packs" + `); + await queryRunner.query(` + ALTER TABLE "temporary_sticker_packs" + RENAME TO "sticker_packs" + `); + await queryRunner.query(` + CREATE TABLE "temporary_notes" ( + "id" varchar PRIMARY KEY NOT NULL, + "content" varchar NOT NULL, + "owner_id" varchar, + "target_id" varchar, + CONSTRAINT "UQ_74e6689b9568cc965b8bfc9150b" UNIQUE ("owner_id", "target_id"), + CONSTRAINT "FK_f9e103f8ae67cb1787063597925" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_23e08e5b4481711d573e1abecdc" FOREIGN KEY ("target_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_notes"("id", "content", "owner_id", "target_id") + SELECT "id", + "content", + "owner_id", + "target_id" + FROM "notes" + `); + await queryRunner.query(` + DROP TABLE "notes" + `); + await queryRunner.query(` + ALTER TABLE "temporary_notes" + RENAME TO "notes" + `); + await queryRunner.query(` + DROP INDEX "IDX_5d7ddc8a5f9c167f548625e772" + `); + await queryRunner.query(` + DROP INDEX "IDX_e9080e7a7997a0170026d5139c" + `); + await queryRunner.query(` + CREATE TABLE "temporary_member_roles" ( + "index" integer NOT NULL, + "role_id" varchar NOT NULL, + CONSTRAINT "FK_5d7ddc8a5f9c167f548625e772e" FOREIGN KEY ("index") REFERENCES "members" ("index") ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT "FK_e9080e7a7997a0170026d5139c1" FOREIGN KEY ("role_id") REFERENCES "roles" ("id") ON DELETE CASCADE ON UPDATE CASCADE, + PRIMARY KEY ("index", "role_id") + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_member_roles"("index", "role_id") + SELECT "index", + "role_id" + FROM "member_roles" + `); + await queryRunner.query(` + DROP TABLE "member_roles" + `); + await queryRunner.query(` + ALTER TABLE "temporary_member_roles" + RENAME TO "member_roles" + `); + await queryRunner.query(` + CREATE INDEX "IDX_5d7ddc8a5f9c167f548625e772" ON "member_roles" ("index") + `); + await queryRunner.query(` + CREATE INDEX "IDX_e9080e7a7997a0170026d5139c" ON "member_roles" ("role_id") + `); + await queryRunner.query(` + DROP INDEX "IDX_a343387fc560ef378760681c23" + `); + await queryRunner.query(` + DROP INDEX "IDX_b831eb18ceebd28976239b1e2f" + `); + await queryRunner.query(` + CREATE TABLE "temporary_message_user_mentions" ( + "messagesId" varchar NOT NULL, + "usersId" varchar NOT NULL, + CONSTRAINT "FK_a343387fc560ef378760681c236" FOREIGN KEY ("messagesId") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT "FK_b831eb18ceebd28976239b1e2f8" FOREIGN KEY ("usersId") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE, + PRIMARY KEY ("messagesId", "usersId") + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_message_user_mentions"("messagesId", "usersId") + SELECT "messagesId", + "usersId" + FROM "message_user_mentions" + `); + await queryRunner.query(` + DROP TABLE "message_user_mentions" + `); + await queryRunner.query(` + ALTER TABLE "temporary_message_user_mentions" + RENAME TO "message_user_mentions" + `); + await queryRunner.query(` + CREATE INDEX "IDX_a343387fc560ef378760681c23" ON "message_user_mentions" ("messagesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_b831eb18ceebd28976239b1e2f" ON "message_user_mentions" ("usersId") + `); + await queryRunner.query(` + DROP INDEX "IDX_a8242cf535337a490b0feaea0b" + `); + await queryRunner.query(` + DROP INDEX "IDX_29d63eb1a458200851bc37d074" + `); + await queryRunner.query(` + CREATE TABLE "temporary_message_role_mentions" ( + "messagesId" varchar NOT NULL, + "rolesId" varchar NOT NULL, + CONSTRAINT "FK_a8242cf535337a490b0feaea0b4" FOREIGN KEY ("messagesId") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT "FK_29d63eb1a458200851bc37d074b" FOREIGN KEY ("rolesId") REFERENCES "roles" ("id") ON DELETE CASCADE ON UPDATE CASCADE, + PRIMARY KEY ("messagesId", "rolesId") + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_message_role_mentions"("messagesId", "rolesId") + SELECT "messagesId", + "rolesId" + FROM "message_role_mentions" + `); + await queryRunner.query(` + DROP TABLE "message_role_mentions" + `); + await queryRunner.query(` + ALTER TABLE "temporary_message_role_mentions" + RENAME TO "message_role_mentions" + `); + await queryRunner.query(` + CREATE INDEX "IDX_a8242cf535337a490b0feaea0b" ON "message_role_mentions" ("messagesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_29d63eb1a458200851bc37d074" ON "message_role_mentions" ("rolesId") + `); + await queryRunner.query(` + DROP INDEX "IDX_2a27102ecd1d81b4582a436092" + `); + await queryRunner.query(` + DROP INDEX "IDX_bdb8c09e1464cabf62105bf4b9" + `); + await queryRunner.query(` + CREATE TABLE "temporary_message_channel_mentions" ( + "messagesId" varchar NOT NULL, + "channelsId" varchar NOT NULL, + CONSTRAINT "FK_2a27102ecd1d81b4582a4360921" FOREIGN KEY ("messagesId") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT "FK_bdb8c09e1464cabf62105bf4b9d" FOREIGN KEY ("channelsId") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE CASCADE, + PRIMARY KEY ("messagesId", "channelsId") + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_message_channel_mentions"("messagesId", "channelsId") + SELECT "messagesId", + "channelsId" + FROM "message_channel_mentions" + `); + await queryRunner.query(` + DROP TABLE "message_channel_mentions" + `); + await queryRunner.query(` + ALTER TABLE "temporary_message_channel_mentions" + RENAME TO "message_channel_mentions" + `); + await queryRunner.query(` + CREATE INDEX "IDX_2a27102ecd1d81b4582a436092" ON "message_channel_mentions" ("messagesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_bdb8c09e1464cabf62105bf4b9" ON "message_channel_mentions" ("channelsId") + `); + await queryRunner.query(` + DROP INDEX "IDX_40bb6f23e7cc133292e92829d2" + `); + await queryRunner.query(` + DROP INDEX "IDX_e22a70819d07659c7a71c112a1" + `); + await queryRunner.query(` + CREATE TABLE "temporary_message_stickers" ( + "messagesId" varchar NOT NULL, + "stickersId" varchar NOT NULL, + CONSTRAINT "FK_40bb6f23e7cc133292e92829d28" FOREIGN KEY ("messagesId") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT "FK_e22a70819d07659c7a71c112a1f" FOREIGN KEY ("stickersId") REFERENCES "stickers" ("id") ON DELETE CASCADE ON UPDATE CASCADE, + PRIMARY KEY ("messagesId", "stickersId") + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_message_stickers"("messagesId", "stickersId") + SELECT "messagesId", + "stickersId" + FROM "message_stickers" + `); + await queryRunner.query(` + DROP TABLE "message_stickers" + `); + await queryRunner.query(` + ALTER TABLE "temporary_message_stickers" + RENAME TO "message_stickers" + `); + await queryRunner.query(` + CREATE INDEX "IDX_40bb6f23e7cc133292e92829d2" ON "message_stickers" ("messagesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_e22a70819d07659c7a71c112a1" ON "message_stickers" ("stickersId") + `); + await queryRunner.query(` + CREATE TABLE "query-result-cache" ( + "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, + "identifier" varchar, + "time" bigint NOT NULL, + "duration" integer NOT NULL, + "query" text NOT NULL, + "result" text NOT NULL + ) + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + DROP TABLE "query-result-cache" + `); + await queryRunner.query(` + DROP INDEX "IDX_e22a70819d07659c7a71c112a1" + `); + await queryRunner.query(` + DROP INDEX "IDX_40bb6f23e7cc133292e92829d2" + `); + await queryRunner.query(` + ALTER TABLE "message_stickers" + RENAME TO "temporary_message_stickers" + `); + await queryRunner.query(` + CREATE TABLE "message_stickers" ( + "messagesId" varchar NOT NULL, + "stickersId" varchar NOT NULL, + PRIMARY KEY ("messagesId", "stickersId") + ) + `); + await queryRunner.query(` + INSERT INTO "message_stickers"("messagesId", "stickersId") + SELECT "messagesId", + "stickersId" + FROM "temporary_message_stickers" + `); + await queryRunner.query(` + DROP TABLE "temporary_message_stickers" + `); + await queryRunner.query(` + CREATE INDEX "IDX_e22a70819d07659c7a71c112a1" ON "message_stickers" ("stickersId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_40bb6f23e7cc133292e92829d2" ON "message_stickers" ("messagesId") + `); + await queryRunner.query(` + DROP INDEX "IDX_bdb8c09e1464cabf62105bf4b9" + `); + await queryRunner.query(` + DROP INDEX "IDX_2a27102ecd1d81b4582a436092" + `); + await queryRunner.query(` + ALTER TABLE "message_channel_mentions" + RENAME TO "temporary_message_channel_mentions" + `); + await queryRunner.query(` + CREATE TABLE "message_channel_mentions" ( + "messagesId" varchar NOT NULL, + "channelsId" varchar NOT NULL, + PRIMARY KEY ("messagesId", "channelsId") + ) + `); + await queryRunner.query(` + INSERT INTO "message_channel_mentions"("messagesId", "channelsId") + SELECT "messagesId", + "channelsId" + FROM "temporary_message_channel_mentions" + `); + await queryRunner.query(` + DROP TABLE "temporary_message_channel_mentions" + `); + await queryRunner.query(` + CREATE INDEX "IDX_bdb8c09e1464cabf62105bf4b9" ON "message_channel_mentions" ("channelsId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_2a27102ecd1d81b4582a436092" ON "message_channel_mentions" ("messagesId") + `); + await queryRunner.query(` + DROP INDEX "IDX_29d63eb1a458200851bc37d074" + `); + await queryRunner.query(` + DROP INDEX "IDX_a8242cf535337a490b0feaea0b" + `); + await queryRunner.query(` + ALTER TABLE "message_role_mentions" + RENAME TO "temporary_message_role_mentions" + `); + await queryRunner.query(` + CREATE TABLE "message_role_mentions" ( + "messagesId" varchar NOT NULL, + "rolesId" varchar NOT NULL, + PRIMARY KEY ("messagesId", "rolesId") + ) + `); + await queryRunner.query(` + INSERT INTO "message_role_mentions"("messagesId", "rolesId") + SELECT "messagesId", + "rolesId" + FROM "temporary_message_role_mentions" + `); + await queryRunner.query(` + DROP TABLE "temporary_message_role_mentions" + `); + await queryRunner.query(` + CREATE INDEX "IDX_29d63eb1a458200851bc37d074" ON "message_role_mentions" ("rolesId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_a8242cf535337a490b0feaea0b" ON "message_role_mentions" ("messagesId") + `); + await queryRunner.query(` + DROP INDEX "IDX_b831eb18ceebd28976239b1e2f" + `); + await queryRunner.query(` + DROP INDEX "IDX_a343387fc560ef378760681c23" + `); + await queryRunner.query(` + ALTER TABLE "message_user_mentions" + RENAME TO "temporary_message_user_mentions" + `); + await queryRunner.query(` + CREATE TABLE "message_user_mentions" ( + "messagesId" varchar NOT NULL, + "usersId" varchar NOT NULL, + PRIMARY KEY ("messagesId", "usersId") + ) + `); + await queryRunner.query(` + INSERT INTO "message_user_mentions"("messagesId", "usersId") + SELECT "messagesId", + "usersId" + FROM "temporary_message_user_mentions" + `); + await queryRunner.query(` + DROP TABLE "temporary_message_user_mentions" + `); + await queryRunner.query(` + CREATE INDEX "IDX_b831eb18ceebd28976239b1e2f" ON "message_user_mentions" ("usersId") + `); + await queryRunner.query(` + CREATE INDEX "IDX_a343387fc560ef378760681c23" ON "message_user_mentions" ("messagesId") + `); + await queryRunner.query(` + DROP INDEX "IDX_e9080e7a7997a0170026d5139c" + `); + await queryRunner.query(` + DROP INDEX "IDX_5d7ddc8a5f9c167f548625e772" + `); + await queryRunner.query(` + ALTER TABLE "member_roles" + RENAME TO "temporary_member_roles" + `); + await queryRunner.query(` + CREATE TABLE "member_roles" ( + "index" integer NOT NULL, + "role_id" varchar NOT NULL, + PRIMARY KEY ("index", "role_id") + ) + `); + await queryRunner.query(` + INSERT INTO "member_roles"("index", "role_id") + SELECT "index", + "role_id" + FROM "temporary_member_roles" + `); + await queryRunner.query(` + DROP TABLE "temporary_member_roles" + `); + await queryRunner.query(` + CREATE INDEX "IDX_e9080e7a7997a0170026d5139c" ON "member_roles" ("role_id") + `); + await queryRunner.query(` + CREATE INDEX "IDX_5d7ddc8a5f9c167f548625e772" ON "member_roles" ("index") + `); + await queryRunner.query(` + ALTER TABLE "notes" + RENAME TO "temporary_notes" + `); + await queryRunner.query(` + CREATE TABLE "notes" ( + "id" varchar PRIMARY KEY NOT NULL, + "content" varchar NOT NULL, + "owner_id" varchar, + "target_id" varchar, + CONSTRAINT "UQ_74e6689b9568cc965b8bfc9150b" UNIQUE ("owner_id", "target_id") + ) + `); + await queryRunner.query(` + INSERT INTO "notes"("id", "content", "owner_id", "target_id") + SELECT "id", + "content", + "owner_id", + "target_id" + FROM "temporary_notes" + `); + await queryRunner.query(` + DROP TABLE "temporary_notes" + `); + await queryRunner.query(` + ALTER TABLE "sticker_packs" + RENAME TO "temporary_sticker_packs" + `); + await queryRunner.query(` + CREATE TABLE "sticker_packs" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "description" varchar, + "banner_asset_id" varchar, + "cover_sticker_id" varchar, + "coverStickerId" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "sticker_packs"( + "id", + "name", + "description", + "banner_asset_id", + "cover_sticker_id", + "coverStickerId" + ) + SELECT "id", + "name", + "description", + "banner_asset_id", + "cover_sticker_id", + "coverStickerId" + FROM "temporary_sticker_packs" + `); + await queryRunner.query(` + DROP TABLE "temporary_sticker_packs" + `); + await queryRunner.query(` + ALTER TABLE "sessions" + RENAME TO "temporary_sessions" + `); + await queryRunner.query(` + CREATE TABLE "sessions" ( + "id" varchar PRIMARY KEY NOT NULL, + "user_id" varchar, + "session_id" varchar NOT NULL, + "activities" text, + "client_info" text NOT NULL, + "status" varchar NOT NULL + ) + `); + await queryRunner.query(` + INSERT INTO "sessions"( + "id", + "user_id", + "session_id", + "activities", + "client_info", + "status" + ) + SELECT "id", + "user_id", + "session_id", + "activities", + "client_info", + "status" + FROM "temporary_sessions" + `); + await queryRunner.query(` + DROP TABLE "temporary_sessions" + `); + await queryRunner.query(` + ALTER TABLE "audit_logs" + RENAME TO "temporary_audit_logs" + `); + await queryRunner.query(` + CREATE TABLE "audit_logs" ( + "id" varchar PRIMARY KEY NOT NULL, + "user_id" varchar, + "action_type" integer NOT NULL, + "options" text, + "changes" text NOT NULL, + "reason" varchar, + "target_id" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "audit_logs"( + "id", + "user_id", + "action_type", + "options", + "changes", + "reason", + "target_id" + ) + SELECT "id", + "user_id", + "action_type", + "options", + "changes", + "reason", + "target_id" + FROM "temporary_audit_logs" + `); + await queryRunner.query(` + DROP TABLE "temporary_audit_logs" + `); + await queryRunner.query(` + ALTER TABLE "applications" + RENAME TO "temporary_applications" + `); + await queryRunner.query(` + CREATE TABLE "applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar NOT NULL, + "rpc_origins" text, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "primary_sku_id" varchar, + "slug" varchar, + "cover_image" varchar, + "flags" varchar NOT NULL, + "owner_id" varchar, + "team_id" varchar, + "guild_id" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "applications"( + "id", + "name", + "icon", + "description", + "rpc_origins", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "primary_sku_id", + "slug", + "cover_image", + "flags", + "owner_id", + "team_id", + "guild_id" + ) + SELECT "id", + "name", + "icon", + "description", + "rpc_origins", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "primary_sku_id", + "slug", + "cover_image", + "flags", + "owner_id", + "team_id", + "guild_id" + FROM "temporary_applications" + `); + await queryRunner.query(` + DROP TABLE "temporary_applications" + `); + await queryRunner.query(` + ALTER TABLE "teams" + RENAME TO "temporary_teams" + `); + await queryRunner.query(` + CREATE TABLE "teams" ( + "id" varchar PRIMARY KEY NOT NULL, + "icon" varchar, + "name" varchar NOT NULL, + "owner_user_id" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "teams"("id", "icon", "name", "owner_user_id") + SELECT "id", + "icon", + "name", + "owner_user_id" + FROM "temporary_teams" + `); + await queryRunner.query(` + DROP TABLE "temporary_teams" + `); + await queryRunner.query(` + ALTER TABLE "team_members" + RENAME TO "temporary_team_members" + `); + await queryRunner.query(` + CREATE TABLE "team_members" ( + "id" varchar PRIMARY KEY NOT NULL, + "membership_state" integer NOT NULL, + "permissions" text NOT NULL, + "team_id" varchar, + "user_id" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "team_members"( + "id", + "membership_state", + "permissions", + "team_id", + "user_id" + ) + SELECT "id", + "membership_state", + "permissions", + "team_id", + "user_id" + FROM "temporary_team_members" + `); + await queryRunner.query(` + DROP TABLE "temporary_team_members" + `); + await queryRunner.query(` + ALTER TABLE "guilds" + RENAME TO "temporary_guilds" + `); + await queryRunner.query(` + CREATE TABLE "guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent" + FROM "temporary_guilds" + `); + await queryRunner.query(` + DROP TABLE "temporary_guilds" + `); + await queryRunner.query(` + ALTER TABLE "templates" + RENAME TO "temporary_templates" + `); + await queryRunner.query(` + CREATE TABLE "templates" ( + "id" varchar PRIMARY KEY NOT NULL, + "code" varchar NOT NULL, + "name" varchar NOT NULL, + "description" varchar, + "usage_count" integer, + "creator_id" varchar, + "created_at" datetime NOT NULL, + "updated_at" datetime NOT NULL, + "source_guild_id" varchar, + "serialized_source_guild" text NOT NULL, + CONSTRAINT "UQ_be38737bf339baf63b1daeffb55" UNIQUE ("code") + ) + `); + await queryRunner.query(` + INSERT INTO "templates"( + "id", + "code", + "name", + "description", + "usage_count", + "creator_id", + "created_at", + "updated_at", + "source_guild_id", + "serialized_source_guild" + ) + SELECT "id", + "code", + "name", + "description", + "usage_count", + "creator_id", + "created_at", + "updated_at", + "source_guild_id", + "serialized_source_guild" + FROM "temporary_templates" + `); + await queryRunner.query(` + DROP TABLE "temporary_templates" + `); + await queryRunner.query(` + ALTER TABLE "emojis" + RENAME TO "temporary_emojis" + `); + await queryRunner.query(` + CREATE TABLE "emojis" ( + "id" varchar PRIMARY KEY NOT NULL, + "animated" boolean NOT NULL, + "available" boolean NOT NULL, + "guild_id" varchar NOT NULL, + "user_id" varchar, + "managed" boolean NOT NULL, + "name" varchar NOT NULL, + "require_colons" boolean NOT NULL, + "roles" text NOT NULL, + "groups" text + ) + `); + await queryRunner.query(` + INSERT INTO "emojis"( + "id", + "animated", + "available", + "guild_id", + "user_id", + "managed", + "name", + "require_colons", + "roles", + "groups" + ) + SELECT "id", + "animated", + "available", + "guild_id", + "user_id", + "managed", + "name", + "require_colons", + "roles", + "groups" + FROM "temporary_emojis" + `); + await queryRunner.query(` + DROP TABLE "temporary_emojis" + `); + await queryRunner.query(` + ALTER TABLE "channels" + RENAME TO "temporary_channels" + `); + await queryRunner.query(` + CREATE TABLE "channels" ( + "id" varchar PRIMARY KEY NOT NULL, + "created_at" datetime NOT NULL, + "name" varchar, + "icon" text, + "type" integer NOT NULL, + "last_message_id" varchar, + "guild_id" varchar, + "parent_id" varchar, + "owner_id" varchar, + "last_pin_timestamp" integer, + "default_auto_archive_duration" integer, + "position" integer, + "permission_overwrites" text, + "video_quality_mode" integer, + "bitrate" integer, + "user_limit" integer, + "nsfw" boolean, + "rate_limit_per_user" integer, + "topic" varchar, + "retention_policy_id" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "channels"( + "id", + "created_at", + "name", + "icon", + "type", + "last_message_id", + "guild_id", + "parent_id", + "owner_id", + "last_pin_timestamp", + "default_auto_archive_duration", + "position", + "permission_overwrites", + "video_quality_mode", + "bitrate", + "user_limit", + "nsfw", + "rate_limit_per_user", + "topic", + "retention_policy_id" + ) + SELECT "id", + "created_at", + "name", + "icon", + "type", + "last_message_id", + "guild_id", + "parent_id", + "owner_id", + "last_pin_timestamp", + "default_auto_archive_duration", + "position", + "permission_overwrites", + "video_quality_mode", + "bitrate", + "user_limit", + "nsfw", + "rate_limit_per_user", + "topic", + "retention_policy_id" + FROM "temporary_channels" + `); + await queryRunner.query(` + DROP TABLE "temporary_channels" + `); + await queryRunner.query(` + ALTER TABLE "voice_states" + RENAME TO "temporary_voice_states" + `); + await queryRunner.query(` + CREATE TABLE "voice_states" ( + "id" varchar PRIMARY KEY NOT NULL, + "guild_id" varchar, + "channel_id" varchar, + "user_id" varchar, + "session_id" varchar NOT NULL, + "token" varchar, + "deaf" boolean NOT NULL, + "mute" boolean NOT NULL, + "self_deaf" boolean NOT NULL, + "self_mute" boolean NOT NULL, + "self_stream" boolean, + "self_video" boolean NOT NULL, + "suppress" boolean NOT NULL, + "request_to_speak_timestamp" datetime + ) + `); + await queryRunner.query(` + INSERT INTO "voice_states"( + "id", + "guild_id", + "channel_id", + "user_id", + "session_id", + "token", + "deaf", + "mute", + "self_deaf", + "self_mute", + "self_stream", + "self_video", + "suppress", + "request_to_speak_timestamp" + ) + SELECT "id", + "guild_id", + "channel_id", + "user_id", + "session_id", + "token", + "deaf", + "mute", + "self_deaf", + "self_mute", + "self_stream", + "self_video", + "suppress", + "request_to_speak_timestamp" + FROM "temporary_voice_states" + `); + await queryRunner.query(` + DROP TABLE "temporary_voice_states" + `); + await queryRunner.query(` + ALTER TABLE "invites" + RENAME TO "temporary_invites" + `); + await queryRunner.query(` + CREATE TABLE "invites" ( + "code" varchar PRIMARY KEY NOT NULL, + "temporary" boolean NOT NULL, + "uses" integer NOT NULL, + "max_uses" integer NOT NULL, + "max_age" integer NOT NULL, + "created_at" datetime NOT NULL, + "expires_at" datetime NOT NULL, + "guild_id" varchar, + "channel_id" varchar, + "inviter_id" varchar, + "target_user_id" varchar, + "target_user_type" integer, + "vanity_url" boolean + ) + `); + await queryRunner.query(` + INSERT INTO "invites"( + "code", + "temporary", + "uses", + "max_uses", + "max_age", + "created_at", + "expires_at", + "guild_id", + "channel_id", + "inviter_id", + "target_user_id", + "target_user_type", + "vanity_url" + ) + SELECT "code", + "temporary", + "uses", + "max_uses", + "max_age", + "created_at", + "expires_at", + "guild_id", + "channel_id", + "inviter_id", + "target_user_id", + "target_user_type", + "vanity_url" + FROM "temporary_invites" + `); + await queryRunner.query(` + DROP TABLE "temporary_invites" + `); + await queryRunner.query(` + DROP INDEX "IDX_0abf8b443321bd3cf7f81ee17a" + `); + await queryRunner.query(` + ALTER TABLE "read_states" + RENAME TO "temporary_read_states" + `); + await queryRunner.query(` + CREATE TABLE "read_states" ( + "id" varchar PRIMARY KEY NOT NULL, + "channel_id" varchar NOT NULL, + "user_id" varchar NOT NULL, + "last_message_id" varchar, + "public_ack" varchar, + "notifications_cursor" varchar, + "last_pin_timestamp" datetime, + "mention_count" integer + ) + `); + await queryRunner.query(` + INSERT INTO "read_states"( + "id", + "channel_id", + "user_id", + "last_message_id", + "public_ack", + "notifications_cursor", + "last_pin_timestamp", + "mention_count" + ) + SELECT "id", + "channel_id", + "user_id", + "last_message_id", + "public_ack", + "notifications_cursor", + "last_pin_timestamp", + "mention_count" + FROM "temporary_read_states" + `); + await queryRunner.query(` + DROP TABLE "temporary_read_states" + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_0abf8b443321bd3cf7f81ee17a" ON "read_states" ("channel_id", "user_id") + `); + await queryRunner.query(` + DROP INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" + `); + await queryRunner.query(` + DROP INDEX "IDX_05535bc695e9f7ee104616459d" + `); + await queryRunner.query(` + DROP INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" + `); + await queryRunner.query(` + ALTER TABLE "messages" + RENAME TO "temporary_messages" + `); + await queryRunner.query(` + CREATE TABLE "messages" ( + "id" varchar PRIMARY KEY NOT NULL, + "channel_id" varchar, + "guild_id" varchar, + "author_id" varchar, + "member_id" varchar, + "webhook_id" varchar, + "application_id" varchar, + "content" varchar, + "timestamp" datetime NOT NULL DEFAULT (datetime('now')), + "edited_timestamp" datetime, + "tts" boolean, + "mention_everyone" boolean, + "embeds" text NOT NULL, + "reactions" text NOT NULL, + "nonce" text, + "pinned" boolean, + "type" integer NOT NULL, + "activity" text, + "flags" varchar, + "message_reference" text, + "interaction" text, + "components" text, + "message_reference_id" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "messages"( + "id", + "channel_id", + "guild_id", + "author_id", + "member_id", + "webhook_id", + "application_id", + "content", + "timestamp", + "edited_timestamp", + "tts", + "mention_everyone", + "embeds", + "reactions", + "nonce", + "pinned", + "type", + "activity", + "flags", + "message_reference", + "interaction", + "components", + "message_reference_id" + ) + SELECT "id", + "channel_id", + "guild_id", + "author_id", + "member_id", + "webhook_id", + "application_id", + "content", + "timestamp", + "edited_timestamp", + "tts", + "mention_everyone", + "embeds", + "reactions", + "nonce", + "pinned", + "type", + "activity", + "flags", + "message_reference", + "interaction", + "components", + "message_reference_id" + FROM "temporary_messages" + `); + await queryRunner.query(` + DROP TABLE "temporary_messages" + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" ON "messages" ("channel_id", "id") + `); + await queryRunner.query(` + CREATE INDEX "IDX_05535bc695e9f7ee104616459d" ON "messages" ("author_id") + `); + await queryRunner.query(` + CREATE INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" ON "messages" ("channel_id") + `); + await queryRunner.query(` + ALTER TABLE "attachments" + RENAME TO "temporary_attachments" + `); + await queryRunner.query(` + CREATE TABLE "attachments" ( + "id" varchar PRIMARY KEY NOT NULL, + "filename" varchar NOT NULL, + "size" integer NOT NULL, + "url" varchar NOT NULL, + "proxy_url" varchar NOT NULL, + "height" integer, + "width" integer, + "content_type" varchar, + "message_id" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "attachments"( + "id", + "filename", + "size", + "url", + "proxy_url", + "height", + "width", + "content_type", + "message_id" + ) + SELECT "id", + "filename", + "size", + "url", + "proxy_url", + "height", + "width", + "content_type", + "message_id" + FROM "temporary_attachments" + `); + await queryRunner.query(` + DROP TABLE "temporary_attachments" + `); + await queryRunner.query(` + ALTER TABLE "stickers" + RENAME TO "temporary_stickers" + `); + await queryRunner.query(` + CREATE TABLE "stickers" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "description" varchar, + "available" boolean, + "tags" varchar, + "pack_id" varchar, + "guild_id" varchar, + "user_id" varchar, + "type" integer NOT NULL, + "format_type" integer NOT NULL + ) + `); + await queryRunner.query(` + INSERT INTO "stickers"( + "id", + "name", + "description", + "available", + "tags", + "pack_id", + "guild_id", + "user_id", + "type", + "format_type" + ) + SELECT "id", + "name", + "description", + "available", + "tags", + "pack_id", + "guild_id", + "user_id", + "type", + "format_type" + FROM "temporary_stickers" + `); + await queryRunner.query(` + DROP TABLE "temporary_stickers" + `); + await queryRunner.query(` + ALTER TABLE "webhooks" + RENAME TO "temporary_webhooks" + `); + await queryRunner.query(` + CREATE TABLE "webhooks" ( + "id" varchar PRIMARY KEY NOT NULL, + "type" integer NOT NULL, + "name" varchar, + "avatar" varchar, + "token" varchar, + "guild_id" varchar, + "channel_id" varchar, + "application_id" varchar, + "user_id" varchar, + "source_guild_id" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "webhooks"( + "id", + "type", + "name", + "avatar", + "token", + "guild_id", + "channel_id", + "application_id", + "user_id", + "source_guild_id" + ) + SELECT "id", + "type", + "name", + "avatar", + "token", + "guild_id", + "channel_id", + "application_id", + "user_id", + "source_guild_id" + FROM "temporary_webhooks" + `); + await queryRunner.query(` + DROP TABLE "temporary_webhooks" + `); + await queryRunner.query(` + DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" + `); + await queryRunner.query(` + ALTER TABLE "members" + RENAME TO "temporary_members" + `); + await queryRunner.query(` + CREATE TABLE "members" ( + "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, + "id" varchar NOT NULL, + "guild_id" varchar NOT NULL, + "nick" varchar, + "joined_at" datetime NOT NULL, + "premium_since" bigint, + "deaf" boolean NOT NULL, + "mute" boolean NOT NULL, + "pending" boolean NOT NULL, + "settings" text NOT NULL, + "last_message_id" varchar, + "joined_by" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "members"( + "index", + "id", + "guild_id", + "nick", + "joined_at", + "premium_since", + "deaf", + "mute", + "pending", + "settings", + "last_message_id", + "joined_by" + ) + SELECT "index", + "id", + "guild_id", + "nick", + "joined_at", + "premium_since", + "deaf", + "mute", + "pending", + "settings", + "last_message_id", + "joined_by" + FROM "temporary_members" + `); + await queryRunner.query(` + DROP TABLE "temporary_members" + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") + `); + await queryRunner.query(` + ALTER TABLE "roles" + RENAME TO "temporary_roles" + `); + await queryRunner.query(` + CREATE TABLE "roles" ( + "id" varchar PRIMARY KEY NOT NULL, + "guild_id" varchar, + "color" integer NOT NULL, + "hoist" boolean NOT NULL, + "managed" boolean NOT NULL, + "mentionable" boolean NOT NULL, + "name" varchar NOT NULL, + "permissions" varchar NOT NULL, + "position" integer NOT NULL, + "icon" varchar, + "unicode_emoji" varchar, + "tags" text + ) + `); + await queryRunner.query(` + INSERT INTO "roles"( + "id", + "guild_id", + "color", + "hoist", + "managed", + "mentionable", + "name", + "permissions", + "position", + "icon", + "unicode_emoji", + "tags" + ) + SELECT "id", + "guild_id", + "color", + "hoist", + "managed", + "mentionable", + "name", + "permissions", + "position", + "icon", + "unicode_emoji", + "tags" + FROM "temporary_roles" + `); + await queryRunner.query(` + DROP TABLE "temporary_roles" + `); + await queryRunner.query(` + ALTER TABLE "recipients" + RENAME TO "temporary_recipients" + `); + await queryRunner.query(` + CREATE TABLE "recipients" ( + "id" varchar PRIMARY KEY NOT NULL, + "channel_id" varchar NOT NULL, + "user_id" varchar NOT NULL, + "closed" boolean NOT NULL DEFAULT (0) + ) + `); + await queryRunner.query(` + INSERT INTO "recipients"("id", "channel_id", "user_id", "closed") + SELECT "id", + "channel_id", + "user_id", + "closed" + FROM "temporary_recipients" + `); + await queryRunner.query(` + DROP TABLE "temporary_recipients" + `); + await queryRunner.query(` + ALTER TABLE "bans" + RENAME TO "temporary_bans" + `); + await queryRunner.query(` + CREATE TABLE "bans" ( + "id" varchar PRIMARY KEY NOT NULL, + "user_id" varchar, + "guild_id" varchar, + "executor_id" varchar, + "ip" varchar NOT NULL, + "reason" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "bans"( + "id", + "user_id", + "guild_id", + "executor_id", + "ip", + "reason" + ) + SELECT "id", + "user_id", + "guild_id", + "executor_id", + "ip", + "reason" + FROM "temporary_bans" + `); + await queryRunner.query(` + DROP TABLE "temporary_bans" + `); + await queryRunner.query(` + ALTER TABLE "backup_codes" + RENAME TO "temporary_backup_codes" + `); + await queryRunner.query(` + CREATE TABLE "backup_codes" ( + "id" varchar PRIMARY KEY NOT NULL, + "code" varchar NOT NULL, + "consumed" boolean NOT NULL, + "expired" boolean NOT NULL, + "user_id" varchar + ) + `); + await queryRunner.query(` + INSERT INTO "backup_codes"("id", "code", "consumed", "expired", "user_id") + SELECT "id", + "code", + "consumed", + "expired", + "user_id" + FROM "temporary_backup_codes" + `); + await queryRunner.query(` + DROP TABLE "temporary_backup_codes" + `); + await queryRunner.query(` + ALTER TABLE "connected_accounts" + RENAME TO "temporary_connected_accounts" + `); + await queryRunner.query(` + CREATE TABLE "connected_accounts" ( + "id" varchar PRIMARY KEY NOT NULL, + "user_id" varchar, + "access_token" varchar NOT NULL, + "friend_sync" boolean NOT NULL, + "name" varchar NOT NULL, + "revoked" boolean NOT NULL, + "show_activity" boolean NOT NULL, + "type" varchar NOT NULL, + "verified" boolean NOT NULL, + "visibility" integer NOT NULL + ) + `); + await queryRunner.query(` + INSERT INTO "connected_accounts"( + "id", + "user_id", + "access_token", + "friend_sync", + "name", + "revoked", + "show_activity", + "type", + "verified", + "visibility" + ) + SELECT "id", + "user_id", + "access_token", + "friend_sync", + "name", + "revoked", + "show_activity", + "type", + "verified", + "visibility" + FROM "temporary_connected_accounts" + `); + await queryRunner.query(` + DROP TABLE "temporary_connected_accounts" + `); + await queryRunner.query(` + DROP INDEX "IDX_a0b2ff0a598df0b0d055934a17" + `); + await queryRunner.query(` + ALTER TABLE "relationships" + RENAME TO "temporary_relationships" + `); + await queryRunner.query(` + CREATE TABLE "relationships" ( + "id" varchar PRIMARY KEY NOT NULL, + "from_id" varchar NOT NULL, + "to_id" varchar NOT NULL, + "nickname" varchar, + "type" integer NOT NULL + ) + `); + await queryRunner.query(` + INSERT INTO "relationships"("id", "from_id", "to_id", "nickname", "type") + SELECT "id", + "from_id", + "to_id", + "nickname", + "type" + FROM "temporary_relationships" + `); + await queryRunner.query(` + DROP TABLE "temporary_relationships" + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_a0b2ff0a598df0b0d055934a17" ON "relationships" ("from_id", "to_id") + `); + await queryRunner.query(` + DROP INDEX "IDX_e22a70819d07659c7a71c112a1" + `); + await queryRunner.query(` + DROP INDEX "IDX_40bb6f23e7cc133292e92829d2" + `); + await queryRunner.query(` + DROP TABLE "message_stickers" + `); + await queryRunner.query(` + DROP INDEX "IDX_bdb8c09e1464cabf62105bf4b9" + `); + await queryRunner.query(` + DROP INDEX "IDX_2a27102ecd1d81b4582a436092" + `); + await queryRunner.query(` + DROP TABLE "message_channel_mentions" + `); + await queryRunner.query(` + DROP INDEX "IDX_29d63eb1a458200851bc37d074" + `); + await queryRunner.query(` + DROP INDEX "IDX_a8242cf535337a490b0feaea0b" + `); + await queryRunner.query(` + DROP TABLE "message_role_mentions" + `); + await queryRunner.query(` + DROP INDEX "IDX_b831eb18ceebd28976239b1e2f" + `); + await queryRunner.query(` + DROP INDEX "IDX_a343387fc560ef378760681c23" + `); + await queryRunner.query(` + DROP TABLE "message_user_mentions" + `); + await queryRunner.query(` + DROP INDEX "IDX_e9080e7a7997a0170026d5139c" + `); + await queryRunner.query(` + DROP INDEX "IDX_5d7ddc8a5f9c167f548625e772" + `); + await queryRunner.query(` + DROP TABLE "member_roles" + `); + await queryRunner.query(` + DROP TABLE "notes" + `); + await queryRunner.query(` + DROP TABLE "client_release" + `); + await queryRunner.query(` + DROP TABLE "sticker_packs" + `); + await queryRunner.query(` + DROP TABLE "sessions" + `); + await queryRunner.query(` + DROP TABLE "rate_limits" + `); + await queryRunner.query(` + DROP TABLE "categories" + `); + await queryRunner.query(` + DROP TABLE "audit_logs" + `); + await queryRunner.query(` + DROP TABLE "applications" + `); + await queryRunner.query(` + DROP TABLE "teams" + `); + await queryRunner.query(` + DROP TABLE "team_members" + `); + await queryRunner.query(` + DROP TABLE "guilds" + `); + await queryRunner.query(` + DROP TABLE "templates" + `); + await queryRunner.query(` + DROP TABLE "emojis" + `); + await queryRunner.query(` + DROP TABLE "channels" + `); + await queryRunner.query(` + DROP TABLE "voice_states" + `); + await queryRunner.query(` + DROP TABLE "invites" + `); + await queryRunner.query(` + DROP INDEX "IDX_0abf8b443321bd3cf7f81ee17a" + `); + await queryRunner.query(` + DROP TABLE "read_states" + `); + await queryRunner.query(` + DROP INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" + `); + await queryRunner.query(` + DROP INDEX "IDX_05535bc695e9f7ee104616459d" + `); + await queryRunner.query(` + DROP INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" + `); + await queryRunner.query(` + DROP TABLE "messages" + `); + await queryRunner.query(` + DROP TABLE "attachments" + `); + await queryRunner.query(` + DROP TABLE "stickers" + `); + await queryRunner.query(` + DROP TABLE "webhooks" + `); + await queryRunner.query(` + DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" + `); + await queryRunner.query(` + DROP TABLE "members" + `); + await queryRunner.query(` + DROP TABLE "roles" + `); + await queryRunner.query(` + DROP TABLE "recipients" + `); + await queryRunner.query(` + DROP TABLE "bans" + `); + await queryRunner.query(` + DROP TABLE "backup_codes" + `); + await queryRunner.query(` + DROP TABLE "users" + `); + await queryRunner.query(` + DROP TABLE "connected_accounts" + `); + await queryRunner.query(` + DROP INDEX "IDX_a0b2ff0a598df0b0d055934a17" + `); + await queryRunner.query(` + DROP TABLE "relationships" + `); + await queryRunner.query(` + DROP TABLE "config" + `); + } + +} diff --git a/src/util/migrations/sqlite/1659921722863-premium_since_as_date.ts b/src/util/migrations/sqlite/1659921722863-premium_since_as_date.ts new file mode 100644 index 00000000..788be625 --- /dev/null +++ b/src/util/migrations/sqlite/1659921722863-premium_since_as_date.ts @@ -0,0 +1,252 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class premiumSinceAsDate1659921722863 implements MigrationInterface { + name = 'premiumSinceAsDate1659921722863' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" + `); + await queryRunner.query(` + CREATE TABLE "temporary_members" ( + "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, + "id" varchar NOT NULL, + "guild_id" varchar NOT NULL, + "nick" varchar, + "joined_at" datetime NOT NULL, + "premium_since" bigint, + "deaf" boolean NOT NULL, + "mute" boolean NOT NULL, + "pending" boolean NOT NULL, + "settings" text NOT NULL, + "last_message_id" varchar, + "joined_by" varchar, + CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_members"( + "index", + "id", + "guild_id", + "nick", + "joined_at", + "premium_since", + "deaf", + "mute", + "pending", + "settings", + "last_message_id", + "joined_by" + ) + SELECT "index", + "id", + "guild_id", + "nick", + "joined_at", + "premium_since", + "deaf", + "mute", + "pending", + "settings", + "last_message_id", + "joined_by" + FROM "members" + `); + await queryRunner.query(` + DROP TABLE "members" + `); + await queryRunner.query(` + ALTER TABLE "temporary_members" + RENAME TO "members" + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") + `); + await queryRunner.query(` + DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" + `); + await queryRunner.query(` + CREATE TABLE "temporary_members" ( + "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, + "id" varchar NOT NULL, + "guild_id" varchar NOT NULL, + "nick" varchar, + "joined_at" datetime NOT NULL, + "premium_since" datetime, + "deaf" boolean NOT NULL, + "mute" boolean NOT NULL, + "pending" boolean NOT NULL, + "settings" text NOT NULL, + "last_message_id" varchar, + "joined_by" varchar, + CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_members"( + "index", + "id", + "guild_id", + "nick", + "joined_at", + "premium_since", + "deaf", + "mute", + "pending", + "settings", + "last_message_id", + "joined_by" + ) + SELECT "index", + "id", + "guild_id", + "nick", + "joined_at", + "premium_since", + "deaf", + "mute", + "pending", + "settings", + "last_message_id", + "joined_by" + FROM "members" + `); + await queryRunner.query(` + DROP TABLE "members" + `); + await queryRunner.query(` + ALTER TABLE "temporary_members" + RENAME TO "members" + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" + `); + await queryRunner.query(` + ALTER TABLE "members" + RENAME TO "temporary_members" + `); + await queryRunner.query(` + CREATE TABLE "members" ( + "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, + "id" varchar NOT NULL, + "guild_id" varchar NOT NULL, + "nick" varchar, + "joined_at" datetime NOT NULL, + "premium_since" bigint, + "deaf" boolean NOT NULL, + "mute" boolean NOT NULL, + "pending" boolean NOT NULL, + "settings" text NOT NULL, + "last_message_id" varchar, + "joined_by" varchar, + CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "members"( + "index", + "id", + "guild_id", + "nick", + "joined_at", + "premium_since", + "deaf", + "mute", + "pending", + "settings", + "last_message_id", + "joined_by" + ) + SELECT "index", + "id", + "guild_id", + "nick", + "joined_at", + "premium_since", + "deaf", + "mute", + "pending", + "settings", + "last_message_id", + "joined_by" + FROM "temporary_members" + `); + await queryRunner.query(` + DROP TABLE "temporary_members" + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") + `); + await queryRunner.query(` + DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" + `); + await queryRunner.query(` + ALTER TABLE "members" + RENAME TO "temporary_members" + `); + await queryRunner.query(` + CREATE TABLE "members" ( + "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, + "id" varchar NOT NULL, + "guild_id" varchar NOT NULL, + "nick" varchar, + "joined_at" datetime NOT NULL, + "premium_since" bigint, + "deaf" boolean NOT NULL, + "mute" boolean NOT NULL, + "pending" boolean NOT NULL, + "settings" text NOT NULL, + "last_message_id" varchar, + "joined_by" varchar, + CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "members"( + "index", + "id", + "guild_id", + "nick", + "joined_at", + "premium_since", + "deaf", + "mute", + "pending", + "settings", + "last_message_id", + "joined_by" + ) + SELECT "index", + "id", + "guild_id", + "nick", + "joined_at", + "premium_since", + "deaf", + "mute", + "pending", + "settings", + "last_message_id", + "joined_by" + FROM "temporary_members" + `); + await queryRunner.query(` + DROP TABLE "temporary_members" + `); + await queryRunner.query(` + CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") + `); + } + +} diff --git a/src/util/migrations/sqlite/1660257576211-CodeCleanup1.ts b/src/util/migrations/sqlite/1660257576211-CodeCleanup1.ts new file mode 100644 index 00000000..5a61db0d --- /dev/null +++ b/src/util/migrations/sqlite/1660257576211-CodeCleanup1.ts @@ -0,0 +1,326 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup11660257576211 implements MigrationInterface { + name = 'CodeCleanup11660257576211' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "user_settings" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_timeout" integer, + "allow_accessibility_detection" boolean, + "animate_emoji" boolean, + "animate_stickers" integer, + "contact_sync_enabled" boolean, + "convert_emoticons" boolean, + "custom_status" text, + "default_guilds_restricted" boolean, + "detect_platform_accounts" boolean, + "developer_mode" boolean, + "disable_games_tab" boolean, + "enable_tts_command" boolean, + "explicit_content_filter" integer, + "friend_source_flags" text, + "gateway_connected" boolean, + "gif_auto_play" boolean, + "guild_folders" text, + "guild_positions" text, + "inline_attachment_media" boolean, + "inline_embed_media" boolean, + "locale" varchar, + "message_display_compact" boolean, + "native_phone_integration_enabled" boolean, + "render_embeds" boolean, + "render_reactions" boolean, + "restricted_guilds" text, + "show_current_game" boolean, + "status" varchar, + "stream_notifications_enabled" boolean, + "theme" varchar, + "timezone_offset" integer + ) + `); + await queryRunner.query(` + CREATE TABLE "temporary_guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + "premium_progress_bar_enabled" boolean NOT NULL, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent" + FROM "guilds" + `); + await queryRunner.query(` + DROP TABLE "guilds" + `); + await queryRunner.query(` + ALTER TABLE "temporary_guilds" + RENAME TO "guilds" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "guilds" + RENAME TO "temporary_guilds" + `); + await queryRunner.query(` + CREATE TABLE "guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent" + FROM "temporary_guilds" + `); + await queryRunner.query(` + DROP TABLE "temporary_guilds" + `); + await queryRunner.query(` + DROP TABLE "user_settings" + `); + } + +} diff --git a/src/util/migrations/sqlite/1660257795259-CodeCleanup2.ts b/src/util/migrations/sqlite/1660257795259-CodeCleanup2.ts new file mode 100644 index 00000000..53698256 --- /dev/null +++ b/src/util/migrations/sqlite/1660257795259-CodeCleanup2.ts @@ -0,0 +1,572 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup21660257795259 implements MigrationInterface { + name = 'CodeCleanup21660257795259' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + "premium_progress_bar_enabled" boolean NOT NULL, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + FROM "guilds" + `); + await queryRunner.query(` + DROP TABLE "guilds" + `); + await queryRunner.query(` + ALTER TABLE "temporary_guilds" + RENAME TO "guilds" + `); + await queryRunner.query(` + CREATE TABLE "temporary_guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + "premium_progress_bar_enabled" boolean, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + FROM "guilds" + `); + await queryRunner.query(` + DROP TABLE "guilds" + `); + await queryRunner.query(` + ALTER TABLE "temporary_guilds" + RENAME TO "guilds" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "guilds" + RENAME TO "temporary_guilds" + `); + await queryRunner.query(` + CREATE TABLE "guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + "premium_progress_bar_enabled" boolean NOT NULL, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + FROM "temporary_guilds" + `); + await queryRunner.query(` + DROP TABLE "temporary_guilds" + `); + await queryRunner.query(` + ALTER TABLE "guilds" + RENAME TO "temporary_guilds" + `); + await queryRunner.query(` + CREATE TABLE "guilds" ( + "id" varchar PRIMARY KEY NOT NULL, + "afk_channel_id" varchar, + "afk_timeout" integer, + "banner" varchar, + "default_message_notifications" integer, + "description" varchar, + "discovery_splash" varchar, + "explicit_content_filter" integer, + "features" text NOT NULL, + "primary_category_id" integer, + "icon" varchar, + "large" boolean, + "max_members" integer, + "max_presences" integer, + "max_video_channel_users" integer, + "member_count" integer, + "presence_count" integer, + "template_id" varchar, + "mfa_level" integer, + "name" varchar NOT NULL, + "owner_id" varchar, + "preferred_locale" varchar, + "premium_subscription_count" integer, + "premium_tier" integer, + "public_updates_channel_id" varchar, + "rules_channel_id" varchar, + "region" varchar, + "splash" varchar, + "system_channel_id" varchar, + "system_channel_flags" integer, + "unavailable" boolean, + "verification_level" integer, + "welcome_screen" text NOT NULL, + "widget_channel_id" varchar, + "widget_enabled" boolean, + "nsfw_level" integer, + "nsfw" boolean, + "parent" varchar, + "premium_progress_bar_enabled" boolean NOT NULL, + CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "guilds"( + "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + ) + SELECT "id", + "afk_channel_id", + "afk_timeout", + "banner", + "default_message_notifications", + "description", + "discovery_splash", + "explicit_content_filter", + "features", + "primary_category_id", + "icon", + "large", + "max_members", + "max_presences", + "max_video_channel_users", + "member_count", + "presence_count", + "template_id", + "mfa_level", + "name", + "owner_id", + "preferred_locale", + "premium_subscription_count", + "premium_tier", + "public_updates_channel_id", + "rules_channel_id", + "region", + "splash", + "system_channel_id", + "system_channel_flags", + "unavailable", + "verification_level", + "welcome_screen", + "widget_channel_id", + "widget_enabled", + "nsfw_level", + "nsfw", + "parent", + "premium_progress_bar_enabled" + FROM "temporary_guilds" + `); + await queryRunner.query(` + DROP TABLE "temporary_guilds" + `); + } + +} diff --git a/src/util/migrations/sqlite/1660258351379-CodeCleanup3.ts b/src/util/migrations/sqlite/1660258351379-CodeCleanup3.ts new file mode 100644 index 00000000..13fba6dd --- /dev/null +++ b/src/util/migrations/sqlite/1660258351379-CodeCleanup3.ts @@ -0,0 +1,231 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup31660258351379 implements MigrationInterface { + name = 'CodeCleanup31660258351379' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + FROM "users" + `); + await queryRunner.query(` + DROP TABLE "users" + `); + await queryRunner.query(` + ALTER TABLE "temporary_users" + RENAME TO "users" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" + RENAME TO "temporary_users" + `); + await queryRunner.query(` + CREATE TABLE "users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "settings" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL + ) + `); + await queryRunner.query(` + INSERT INTO "users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + FROM "temporary_users" + `); + await queryRunner.query(` + DROP TABLE "temporary_users" + `); + } + +} diff --git a/src/util/migrations/sqlite/1660260672914-CodeCleanup4.ts b/src/util/migrations/sqlite/1660260672914-CodeCleanup4.ts new file mode 100644 index 00000000..33f4df03 --- /dev/null +++ b/src/util/migrations/sqlite/1660260672914-CodeCleanup4.ts @@ -0,0 +1,459 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class CodeCleanup41660260672914 implements MigrationInterface { + name = 'CodeCleanup41660260672914' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL, + "settingsId" varchar, + CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId") + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + FROM "users" + `); + await queryRunner.query(` + DROP TABLE "users" + `); + await queryRunner.query(` + ALTER TABLE "temporary_users" + RENAME TO "users" + `); + await queryRunner.query(` + CREATE TABLE "temporary_users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL, + "settingsId" varchar, + CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId"), + CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" FOREIGN KEY ("settingsId") REFERENCES "user_settings" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + FROM "users" + `); + await queryRunner.query(` + DROP TABLE "users" + `); + await queryRunner.query(` + ALTER TABLE "temporary_users" + RENAME TO "users" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" + RENAME TO "temporary_users" + `); + await queryRunner.query(` + CREATE TABLE "users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL, + "settingsId" varchar, + CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId") + ) + `); + await queryRunner.query(` + INSERT INTO "users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + FROM "temporary_users" + `); + await queryRunner.query(` + DROP TABLE "temporary_users" + `); + await queryRunner.query(` + ALTER TABLE "users" + RENAME TO "temporary_users" + `); + await queryRunner.query(` + CREATE TABLE "users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL + ) + `); + await queryRunner.query(` + INSERT INTO "users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes" + FROM "temporary_users" + `); + await queryRunner.query(` + DROP TABLE "temporary_users" + `); + } + +} diff --git a/src/util/schemas/ActivitySchema.ts b/src/util/schemas/ActivitySchema.ts new file mode 100644 index 00000000..e18f66c8 --- /dev/null +++ b/src/util/schemas/ActivitySchema.ts @@ -0,0 +1,51 @@ +import { Activity, Status } from "@fosscord/util"; + +export const ActivitySchema = { + afk: Boolean, + status: String, + $activities: [ + { + name: String, + type: Number, + $url: String, + $created_at: Date, + $timestamps: { + $start: Number, + $end: Number, + }, + $application_id: String, + $details: String, + $state: String, + $emoji: { + $name: String, + $id: String, + $animated: Boolean, + }, + $party: { + $id: String, + $size: [Number, Number], + }, + $assets: { + $large_image: String, + $large_text: String, + $small_image: String, + $small_text: String, + }, + $secrets: { + $join: String, + $spectate: String, + $match: String, + }, + $instance: Boolean, + $flags: String, + }, + ], + $since: Number, // unix time (in milliseconds) of when the client went idle, or null if the client is not idle +}; + +export interface ActivitySchema { + afk: boolean; + status: Status; + activities?: Activity[]; + since?: number; // unix time (in milliseconds) of when the client went idle, or null if the client is not idle +} diff --git a/src/util/schemas/BanCreateSchema.ts b/src/util/schemas/BanCreateSchema.ts new file mode 100644 index 00000000..64b02943 --- /dev/null +++ b/src/util/schemas/BanCreateSchema.ts @@ -0,0 +1,5 @@ + +export interface BanCreateSchema { + delete_message_days?: string; + reason?: string; +} diff --git a/src/util/schemas/BanModeratorSchema.ts b/src/util/schemas/BanModeratorSchema.ts new file mode 100644 index 00000000..b497d319 --- /dev/null +++ b/src/util/schemas/BanModeratorSchema.ts @@ -0,0 +1,8 @@ + +export interface BanModeratorSchema { + id: string; + user_id: string; + guild_id: string; + executor_id: string; + reason?: string | undefined; +} diff --git a/src/util/schemas/BanRegistrySchema.ts b/src/util/schemas/BanRegistrySchema.ts new file mode 100644 index 00000000..661f934f --- /dev/null +++ b/src/util/schemas/BanRegistrySchema.ts @@ -0,0 +1,9 @@ + +export interface BanRegistrySchema { + id: string; + user_id: string; + guild_id: string; + executor_id: string; + ip?: string; + reason?: string | undefined; +} diff --git a/src/util/schemas/BulkDeleteSchema.ts b/src/util/schemas/BulkDeleteSchema.ts new file mode 100644 index 00000000..26f88374 --- /dev/null +++ b/src/util/schemas/BulkDeleteSchema.ts @@ -0,0 +1,4 @@ + +export interface BulkDeleteSchema { + messages: string[]; +} diff --git a/src/util/schemas/ChannelModifySchema.ts b/src/util/schemas/ChannelModifySchema.ts new file mode 100644 index 00000000..3cfcf7d2 --- /dev/null +++ b/src/util/schemas/ChannelModifySchema.ts @@ -0,0 +1,29 @@ +import { ChannelPermissionOverwriteType, ChannelType } from ".."; + + +export interface ChannelModifySchema { + /** + * @maxLength 100 + */ + name?: string; + type?: ChannelType; + topic?: string; + icon?: string | null; + bitrate?: number; + user_limit?: number; + rate_limit_per_user?: number; + position?: number; + permission_overwrites?: { + id: string; + type: ChannelPermissionOverwriteType; + allow: string; + deny: string; + }[]; + parent_id?: string; + id?: string; // is not used (only for guild create) + nsfw?: boolean; + rtc_region?: string; + default_auto_archive_duration?: number; + flags?: number; + default_thread_rate_limit_per_user?: number; +} \ No newline at end of file diff --git a/src/util/schemas/ChannelPermissionOverwriteSchema.ts b/src/util/schemas/ChannelPermissionOverwriteSchema.ts new file mode 100644 index 00000000..fe9ba860 --- /dev/null +++ b/src/util/schemas/ChannelPermissionOverwriteSchema.ts @@ -0,0 +1,5 @@ +import { ChannelPermissionOverwrite } from "@fosscord/util"; + +// TODO: Only permissions your bot has in the guild or channel can be allowed/denied (unless your bot has a MANAGE_ROLES overwrite in the channel) + +export interface ChannelPermissionOverwriteSchema extends ChannelPermissionOverwrite { } diff --git a/src/util/schemas/ChannelReorderSchema.ts b/src/util/schemas/ChannelReorderSchema.ts new file mode 100644 index 00000000..3715f59e --- /dev/null +++ b/src/util/schemas/ChannelReorderSchema.ts @@ -0,0 +1 @@ +export type ChannelReorderSchema = { id: string; position?: number; lock_permissions?: boolean; parent_id?: string }[]; \ No newline at end of file diff --git a/src/util/schemas/DmChannelCreateSchema.ts b/src/util/schemas/DmChannelCreateSchema.ts new file mode 100644 index 00000000..d5afc6d7 --- /dev/null +++ b/src/util/schemas/DmChannelCreateSchema.ts @@ -0,0 +1,5 @@ + +export interface DmChannelCreateSchema { + name?: string; + recipients: string[]; +} diff --git a/src/util/schemas/EmojiCreateSchema.ts b/src/util/schemas/EmojiCreateSchema.ts new file mode 100644 index 00000000..d50c419c --- /dev/null +++ b/src/util/schemas/EmojiCreateSchema.ts @@ -0,0 +1,7 @@ + +export interface EmojiCreateSchema { + name?: string; + image: string; + require_colons?: boolean | null; + roles?: string[]; +} diff --git a/src/util/schemas/EmojiModifySchema.ts b/src/util/schemas/EmojiModifySchema.ts new file mode 100644 index 00000000..5529dbd5 --- /dev/null +++ b/src/util/schemas/EmojiModifySchema.ts @@ -0,0 +1,5 @@ + +export interface EmojiModifySchema { + name?: string; + roles?: string[]; +} diff --git a/src/util/schemas/GuildCreateSchema.ts b/src/util/schemas/GuildCreateSchema.ts new file mode 100644 index 00000000..e4855119 --- /dev/null +++ b/src/util/schemas/GuildCreateSchema.ts @@ -0,0 +1,14 @@ +import { ChannelModifySchema } from "."; + +export interface GuildCreateSchema { + /** + * @maxLength 100 + */ + name: string; + region?: string; + icon?: string | null; + channels?: ChannelModifySchema[]; + guild_template_code?: string; + system_channel_id?: string; + rules_channel_id?: string; +} diff --git a/src/util/schemas/GuildTemplateCreateSchema.ts b/src/util/schemas/GuildTemplateCreateSchema.ts new file mode 100644 index 00000000..1579001e --- /dev/null +++ b/src/util/schemas/GuildTemplateCreateSchema.ts @@ -0,0 +1,5 @@ + +export interface GuildTemplateCreateSchema { + name: string; + avatar?: string | null; +} diff --git a/src/util/schemas/GuildUpdateSchema.ts b/src/util/schemas/GuildUpdateSchema.ts new file mode 100644 index 00000000..86527cf1 --- /dev/null +++ b/src/util/schemas/GuildUpdateSchema.ts @@ -0,0 +1,18 @@ +import { GuildCreateSchema } from "."; + +export interface GuildUpdateSchema extends Omit { + name?: string; + banner?: string | null; + splash?: string | null; + description?: string; + features?: string[]; + verification_level?: number; + default_message_notifications?: number; + system_channel_flags?: number; + explicit_content_filter?: number; + public_updates_channel_id?: string; + afk_timeout?: number; + afk_channel_id?: string; + preferred_locale?: string; + premium_progress_bar_enabled?: boolean; +} diff --git a/src/util/schemas/GuildUpdateWelcomeScreenSchema.ts b/src/util/schemas/GuildUpdateWelcomeScreenSchema.ts new file mode 100644 index 00000000..b1e36920 --- /dev/null +++ b/src/util/schemas/GuildUpdateWelcomeScreenSchema.ts @@ -0,0 +1,11 @@ + +export interface GuildUpdateWelcomeScreenSchema { + welcome_channels?: { + channel_id: string; + description: string; + emoji_id?: string; + emoji_name: string; + }[]; + enabled?: boolean; + description?: string; +} diff --git a/src/util/schemas/IdentifySchema.ts b/src/util/schemas/IdentifySchema.ts new file mode 100644 index 00000000..f3d60fb3 --- /dev/null +++ b/src/util/schemas/IdentifySchema.ts @@ -0,0 +1,89 @@ +import { ActivitySchema } from "./ActivitySchema"; + +export const IdentifySchema = { + token: String, + $intents: String, // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt + $properties: Object, + // { + // // discord uses $ in the property key for bots, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key + // $os: String, + // $os_arch: String, + // $browser: String, + // $device: String, + // $$os: String, + // $$browser: String, + // $$device: String, + // $browser_user_agent: String, + // $browser_version: String, + // $os_version: String, + // $referrer: String, + // $$referrer: String, + // $referring_domain: String, + // $$referring_domain: String, + // $referrer_current: String, + // $referring_domain_current: String, + // $release_channel: String, + // $client_build_number: Number, + // $client_event_source: String, + // $client_version: String, + // $system_locale: String, + // $window_manager: String, + // $distro: String, + // }, + $presence: ActivitySchema, + $compress: Boolean, + $large_threshold: Number, + $shard: [Number, Number], + $guild_subscriptions: Boolean, + $capabilities: Number, + $client_state: { + $guild_hashes: Object, + $highest_last_message_id: String, + $read_state_version: Number, + $user_guild_settings_version: Number, + $user_settings_version: undefined, + }, + $v: Number, + $version: Number, +}; + +export interface IdentifySchema { + token: string; + properties: { + // bruh discord really uses $ in the property key, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key + os?: string; + os_atch?: string; + browser?: string; + device?: string; + $os?: string; + $browser?: string; + $device?: string; + browser_user_agent?: string; + browser_version?: string; + os_version?: string; + referrer?: string; + referring_domain?: string; + referrer_current?: string; + referring_domain_current?: string; + release_channel?: "stable" | "dev" | "ptb" | "canary"; + client_build_number?: number; + client_event_source?: any; + client_version?: string; + system_locale?: string; + }; + intents?: string; // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt + presence?: ActivitySchema; + compress?: boolean; + large_threshold?: number; + shard?: [number, number]; + guild_subscriptions?: boolean; + capabilities?: number; + client_state?: { + guild_hashes?: any; + highest_last_message_id?: string; + read_state_version?: number; + user_guild_settings_version?: number; + user_settings_version?: number; + }; + v?: number; +} diff --git a/src/util/schemas/InviteCreateSchema.ts b/src/util/schemas/InviteCreateSchema.ts new file mode 100644 index 00000000..7f6af338 --- /dev/null +++ b/src/util/schemas/InviteCreateSchema.ts @@ -0,0 +1,12 @@ + +export interface InviteCreateSchema { + target_user_id?: string; + target_type?: string; + validate?: string; // ? what is this + max_age?: number; + max_uses?: number; + temporary?: boolean; + unique?: boolean; + target_user?: string; + target_user_type?: number; +} diff --git a/src/util/schemas/LazyRequestSchema.ts b/src/util/schemas/LazyRequestSchema.ts new file mode 100644 index 00000000..1fe658bb --- /dev/null +++ b/src/util/schemas/LazyRequestSchema.ts @@ -0,0 +1,19 @@ +export interface LazyRequest { + guild_id: string; + channels?: Record; + activities?: boolean; + threads?: boolean; + typing?: true; + members?: any[]; + thread_member_lists?: any[]; +} + +export const LazyRequest = { + guild_id: String, + $activities: Boolean, + $channels: Object, + $typing: Boolean, + $threads: Boolean, + $members: [] as any[], + $thread_member_lists: [] as any[], +}; diff --git a/src/util/schemas/LoginSchema.ts b/src/util/schemas/LoginSchema.ts new file mode 100644 index 00000000..358019a8 --- /dev/null +++ b/src/util/schemas/LoginSchema.ts @@ -0,0 +1,9 @@ + +export interface LoginSchema { + login: string; + password: string; + undelete?: boolean; + captcha_key?: string; + login_source?: string; + gift_code_sku_id?: string; +} diff --git a/src/util/schemas/MemberChangeSchema.ts b/src/util/schemas/MemberChangeSchema.ts new file mode 100644 index 00000000..a75c0ea0 --- /dev/null +++ b/src/util/schemas/MemberChangeSchema.ts @@ -0,0 +1,4 @@ + +export interface MemberChangeSchema { + roles?: string[]; +} diff --git a/src/util/schemas/MemberNickChangeSchema.ts b/src/util/schemas/MemberNickChangeSchema.ts new file mode 100644 index 00000000..e6a6a007 --- /dev/null +++ b/src/util/schemas/MemberNickChangeSchema.ts @@ -0,0 +1,4 @@ + +export interface MemberNickChangeSchema { + nick: string; +} diff --git a/src/util/schemas/MessageAcknowledgeSchema.ts b/src/util/schemas/MessageAcknowledgeSchema.ts new file mode 100644 index 00000000..3f4eb2b6 --- /dev/null +++ b/src/util/schemas/MessageAcknowledgeSchema.ts @@ -0,0 +1,8 @@ +// TODO: public read receipts & privacy scoping +// TODO: send read state event to all channel members +// TODO: advance-only notification cursor + +export interface MessageAcknowledgeSchema { + manual?: boolean; + mention_count?: number; +} diff --git a/src/util/schemas/MessageCreateSchema.ts b/src/util/schemas/MessageCreateSchema.ts new file mode 100644 index 00000000..7b1cc7b9 --- /dev/null +++ b/src/util/schemas/MessageCreateSchema.ts @@ -0,0 +1,34 @@ +import { Embed } from "@fosscord/util"; + + +export interface MessageCreateSchema { + type?: number; + content?: string; + nonce?: string; + channel_id?: string; + tts?: boolean; + flags?: string; + embeds?: Embed[]; + embed?: Embed; + // TODO: ^ embed is deprecated in favor of embeds (https://discord.com/developers/docs/resources/channel#message-object) + allowed_mentions?: { + parse?: string[]; + roles?: string[]; + users?: string[]; + replied_user?: boolean; + }; + message_reference?: { + message_id: string; + channel_id: string; + guild_id?: string; + fail_if_not_exists?: boolean; + }; + payload_json?: string; + file?: any; + /** + TODO: we should create an interface for attachments + TODO: OpenWAAO<-->attachment-style metadata conversion + **/ + attachments?: any[]; + sticker_ids?: string[]; +} diff --git a/src/util/schemas/MfaCodesSchema.ts b/src/util/schemas/MfaCodesSchema.ts new file mode 100644 index 00000000..53230841 --- /dev/null +++ b/src/util/schemas/MfaCodesSchema.ts @@ -0,0 +1,5 @@ + +export interface MfaCodesSchema { + password: string; + regenerate?: boolean; +} diff --git a/src/util/schemas/ModifyGuildStickerSchema.ts b/src/util/schemas/ModifyGuildStickerSchema.ts new file mode 100644 index 00000000..6f24e4ce --- /dev/null +++ b/src/util/schemas/ModifyGuildStickerSchema.ts @@ -0,0 +1,16 @@ + +export interface ModifyGuildStickerSchema { + /** + * @minLength 2 + * @maxLength 30 + */ + name: string; + /** + * @maxLength 100 + */ + description?: string; + /** + * @maxLength 200 + */ + tags: string; +} diff --git a/src/util/schemas/PruneSchema.ts b/src/util/schemas/PruneSchema.ts new file mode 100644 index 00000000..eebac763 --- /dev/null +++ b/src/util/schemas/PruneSchema.ts @@ -0,0 +1,7 @@ + +export interface PruneSchema { + /** + * @min 0 + */ + days: number; +} diff --git a/src/util/schemas/PurgeSchema.ts b/src/util/schemas/PurgeSchema.ts new file mode 100644 index 00000000..0eeef6f2 --- /dev/null +++ b/src/util/schemas/PurgeSchema.ts @@ -0,0 +1,5 @@ + +export interface PurgeSchema { + before: string; + after: string; +} diff --git a/src/util/schemas/RegisterSchema.ts b/src/util/schemas/RegisterSchema.ts new file mode 100644 index 00000000..e53330d2 --- /dev/null +++ b/src/util/schemas/RegisterSchema.ts @@ -0,0 +1,27 @@ + +export interface RegisterSchema { + /** + * @minLength 2 + * @maxLength 32 + */ + username: string; + /** + * @minLength 1 + * @maxLength 72 + */ + password?: string; + consent: boolean; + /** + * @TJS-format email + */ + email?: string; + fingerprint?: string; + invite?: string; + /** + * @TJS-type string + */ + date_of_birth?: Date; // "2000-04-03" + gift_code_sku_id?: string; + captcha_key?: string; + promotional_email_opt_in?: boolean; +} diff --git a/src/util/schemas/RelationshipPostSchema.ts b/src/util/schemas/RelationshipPostSchema.ts new file mode 100644 index 00000000..40093700 --- /dev/null +++ b/src/util/schemas/RelationshipPostSchema.ts @@ -0,0 +1,5 @@ + +export interface RelationshipPostSchema { + discriminator: string; + username: string; +} diff --git a/src/util/schemas/RelationshipPutSchema.ts b/src/util/schemas/RelationshipPutSchema.ts new file mode 100644 index 00000000..f46966e0 --- /dev/null +++ b/src/util/schemas/RelationshipPutSchema.ts @@ -0,0 +1,6 @@ +import { RelationshipType } from "@fosscord/util"; + + +export interface RelationshipPutSchema { + type?: RelationshipType; +} diff --git a/src/util/schemas/RoleModifySchema.ts b/src/util/schemas/RoleModifySchema.ts new file mode 100644 index 00000000..d08a5022 --- /dev/null +++ b/src/util/schemas/RoleModifySchema.ts @@ -0,0 +1,11 @@ + +export interface RoleModifySchema { + name?: string; + permissions?: string; + color?: number; + hoist?: boolean; // whether the role should be displayed separately in the sidebar + mentionable?: boolean; // whether the role should be mentionable + position?: number; + icon?: string; + unicode_emoji?: string; +} diff --git a/src/util/schemas/RolePositionUpdateSchema.ts b/src/util/schemas/RolePositionUpdateSchema.ts new file mode 100644 index 00000000..1019d504 --- /dev/null +++ b/src/util/schemas/RolePositionUpdateSchema.ts @@ -0,0 +1,4 @@ +export type RolePositionUpdateSchema = { + id: string; + position: number; +}[]; \ No newline at end of file diff --git a/src/util/schemas/TemplateCreateSchema.ts b/src/util/schemas/TemplateCreateSchema.ts new file mode 100644 index 00000000..72c19f68 --- /dev/null +++ b/src/util/schemas/TemplateCreateSchema.ts @@ -0,0 +1,5 @@ + +export interface TemplateCreateSchema { + name: string; + description?: string; +} diff --git a/src/util/schemas/TemplateModifySchema.ts b/src/util/schemas/TemplateModifySchema.ts new file mode 100644 index 00000000..2231a1d2 --- /dev/null +++ b/src/util/schemas/TemplateModifySchema.ts @@ -0,0 +1,5 @@ + +export interface TemplateModifySchema { + name: string; + description?: string; +} diff --git a/src/util/schemas/TotpDisableSchema.ts b/src/util/schemas/TotpDisableSchema.ts new file mode 100644 index 00000000..b73db64e --- /dev/null +++ b/src/util/schemas/TotpDisableSchema.ts @@ -0,0 +1,4 @@ + +export interface TotpDisableSchema { + code: string; +} diff --git a/src/util/schemas/TotpEnableSchema.ts b/src/util/schemas/TotpEnableSchema.ts new file mode 100644 index 00000000..44d9ebac --- /dev/null +++ b/src/util/schemas/TotpEnableSchema.ts @@ -0,0 +1,6 @@ + +export interface TotpEnableSchema { + password: string; + code?: string; + secret?: string; +} diff --git a/src/util/schemas/TotpSchema.ts b/src/util/schemas/TotpSchema.ts new file mode 100644 index 00000000..fe54735e --- /dev/null +++ b/src/util/schemas/TotpSchema.ts @@ -0,0 +1,7 @@ + +export interface TotpSchema { + code: string; + ticket: string; + gift_code_sku_id?: string | null; + login_source?: string | null; +} diff --git a/src/util/schemas/UserModifySchema.ts b/src/util/schemas/UserModifySchema.ts new file mode 100644 index 00000000..659f5841 --- /dev/null +++ b/src/util/schemas/UserModifySchema.ts @@ -0,0 +1,19 @@ + +export interface UserModifySchema { + /** + * @minLength 1 + * @maxLength 100 + */ + username?: string; + discriminator?: string; + avatar?: string | null; + /** + * @maxLength 1024 + */ + bio?: string; + accent_color?: number; + banner?: string | null; + password?: string; + new_password?: string; + code?: string; +} diff --git a/src/util/schemas/UserSettingsSchema.ts b/src/util/schemas/UserSettingsSchema.ts new file mode 100644 index 00000000..b497dff2 --- /dev/null +++ b/src/util/schemas/UserSettingsSchema.ts @@ -0,0 +1,4 @@ +import { UserSettings } from "@fosscord/util"; + + +export interface UserSettingsSchema extends Partial { } diff --git a/src/util/schemas/VanityUrlSchema.ts b/src/util/schemas/VanityUrlSchema.ts new file mode 100644 index 00000000..de32695a --- /dev/null +++ b/src/util/schemas/VanityUrlSchema.ts @@ -0,0 +1,8 @@ + +export interface VanityUrlSchema { + /** + * @minLength 1 + * @maxLength 20 + */ + code?: string; +} diff --git a/src/util/schemas/VoiceStateUpdateSchema.ts b/src/util/schemas/VoiceStateUpdateSchema.ts new file mode 100644 index 00000000..02bb141b --- /dev/null +++ b/src/util/schemas/VoiceStateUpdateSchema.ts @@ -0,0 +1,18 @@ +export const VoiceStateUpdateSchema = { + $guild_id: String, + $channel_id: String, + self_mute: Boolean, + self_deaf: Boolean, + self_video: Boolean, +}; + +//TODO need more testing when community guild and voice stage channel are working +export interface VoiceStateUpdateSchema { + channel_id: string; + guild_id?: string; + suppress?: boolean; + request_to_speak_timestamp?: Date; + self_mute?: boolean; + self_deaf?: boolean; + self_video?: boolean; +} \ No newline at end of file diff --git a/src/util/schemas/WebhookCreateSchema.ts b/src/util/schemas/WebhookCreateSchema.ts new file mode 100644 index 00000000..12ab1869 --- /dev/null +++ b/src/util/schemas/WebhookCreateSchema.ts @@ -0,0 +1,8 @@ +// TODO: webhooks +export interface WebhookCreateSchema { + /** + * @maxLength 80 + */ + name: string; + avatar?: string; +} diff --git a/src/util/schemas/WidgetModifySchema.ts b/src/util/schemas/WidgetModifySchema.ts new file mode 100644 index 00000000..390efc30 --- /dev/null +++ b/src/util/schemas/WidgetModifySchema.ts @@ -0,0 +1,5 @@ + +export interface WidgetModifySchema { + enabled: boolean; // whether the widget is enabled + channel_id: string; // the widget channel id +} diff --git a/src/util/schemas/index.ts b/src/util/schemas/index.ts new file mode 100644 index 00000000..a15ab4b0 --- /dev/null +++ b/src/util/schemas/index.ts @@ -0,0 +1,43 @@ +export * from "./ActivitySchema"; +export * from "./BanCreateSchema"; +export * from "./BanModeratorSchema"; +export * from "./BanRegistrySchema"; +export * from "./BulkDeleteSchema"; +export * from "./ChannelModifySchema"; +export * from "./ChannelPermissionOverwriteSchema"; +export * from "./ChannelReorderSchema"; +export * from "./DmChannelCreateSchema"; +export * from "./EmojiCreateSchema"; +export * from "./EmojiModifySchema"; +export * from "./GuildCreateSchema"; +export * from "./GuildTemplateCreateSchema"; +export * from "./GuildUpdateSchema"; +export * from "./GuildUpdateWelcomeScreenSchema"; +export * from "./IdentifySchema"; +export * from "./InviteCreateSchema"; +export * from "./LazyRequestSchema"; +export * from "./LoginSchema"; +export * from "./MemberChangeSchema"; +export * from "./MemberNickChangeSchema"; +export * from "./MessageAcknowledgeSchema"; +export * from "./MessageCreateSchema"; +export * from "./MfaCodesSchema"; +export * from "./ModifyGuildStickerSchema"; +export * from "./PruneSchema"; +export * from "./PurgeSchema"; +export * from "./RegisterSchema"; +export * from "./RelationshipPostSchema"; +export * from "./RelationshipPutSchema"; +export * from "./RoleModifySchema"; +export * from "./RolePositionUpdateSchema"; +export * from "./TemplateCreateSchema"; +export * from "./TemplateModifySchema"; +export * from "./TotpDisableSchema"; +export * from "./TotpEnableSchema"; +export * from "./TotpSchema"; +export * from "./UserModifySchema"; +export * from "./UserSettingsSchema"; +export * from "./VanityUrlSchema"; +export * from "./VoiceStateUpdateSchema"; +export * from "./WebhookCreateSchema"; +export * from "./WidgetModifySchema"; diff --git a/src/util/util/ApiError.ts b/src/util/util/ApiError.ts new file mode 100644 index 00000000..f1a9b4f6 --- /dev/null +++ b/src/util/util/ApiError.ts @@ -0,0 +1,28 @@ +export class ApiError extends Error { + constructor( + readonly message: string, + public readonly code: number, + public readonly httpStatus: number = 400, + public readonly defaultParams?: string[] + ) { + super(message); + } + + withDefaultParams(): ApiError { + if (this.defaultParams) + return new ApiError(applyParamsToString(this.message, this.defaultParams), this.code, this.httpStatus); + return this; + } + + withParams(...params: (string | number)[]): ApiError { + return new ApiError(applyParamsToString(this.message, params), this.code, this.httpStatus); + } +} + +export function applyParamsToString(s: string, params: (string | number)[]): string { + let newString = s; + params.forEach((a) => { + newString = newString.replace("{}", "" + a); + }); + return newString; +} diff --git a/src/util/util/Array.ts b/src/util/util/Array.ts new file mode 100644 index 00000000..5a45d1b5 --- /dev/null +++ b/src/util/util/Array.ts @@ -0,0 +1,3 @@ +export function containsAll(arr: any[], target: any[]) { + return target.every((v) => arr.includes(v)); +} diff --git a/src/util/util/AutoUpdate.ts b/src/util/util/AutoUpdate.ts new file mode 100644 index 00000000..7d020106 --- /dev/null +++ b/src/util/util/AutoUpdate.ts @@ -0,0 +1,83 @@ +import fetch from "node-fetch"; +import ProxyAgent from 'proxy-agent'; +import readline from "readline"; +import fs from "fs/promises"; +import path from "path"; + +const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, +}); + +export function enableAutoUpdate(opts: { + checkInterval: number | boolean; + packageJsonLink: string; + path: string; + downloadUrl: string; + downloadType?: "zip"; +}) { + if (!opts.checkInterval) return; + let interval = 1000 * 60 * 60 * 24; + if (typeof opts.checkInterval === "number") opts.checkInterval = 1000 * interval; + + const i = setInterval(async () => { + const currentVersion = await getCurrentVersion(opts.path); + const latestVersion = await getLatestVersion(opts.packageJsonLink); + if (currentVersion !== latestVersion) { + clearInterval(i); + console.log(`[Auto Update] Current version (${currentVersion}) is out of date, updating ...`); + await download(opts.downloadUrl, opts.path); + } + }, interval); + setImmediate(async () => { + const currentVersion = await getCurrentVersion(opts.path); + const latestVersion = await getLatestVersion(opts.packageJsonLink); + if (currentVersion !== latestVersion) { + rl.question( + `[Auto Update] Current version (${currentVersion}) is out of date, would you like to update? (yes/no)`, + (answer) => { + if (answer.toBoolean()) { + console.log(`[Auto update] updating ...`); + download(opts.downloadUrl, opts.path); + } else { + console.log(`[Auto update] aborted`); + } + } + ); + } + }); +} + +async function download(url: string, dir: string) { + try { + // TODO: use file stream instead of buffer (to prevent crash because of high memory usage for big files) + // TODO check file hash + const agent = new ProxyAgent(); + const response = await fetch(url, { agent }); + const buffer = await response.buffer(); + const tempDir = await fs.mkdtemp("fosscord"); + fs.writeFile(path.join(tempDir, "Fosscord.zip"), buffer); + } catch (error) { + console.error(`[Auto Update] download failed`, error); + } +} + +async function getCurrentVersion(dir: string) { + try { + const content = await fs.readFile(path.join(dir, "package.json"), { encoding: "utf8" }); + return JSON.parse(content).version; + } catch (error) { + throw new Error("[Auto update] couldn't get current version in " + dir); + } +} + +async function getLatestVersion(url: string) { + try { + const agent = new ProxyAgent(); + const response = await fetch(url, { agent }); + const content: any = await response.json(); + return content.version; + } catch (error) { + throw new Error("[Auto update] check failed for " + url); + } +} diff --git a/src/util/util/BitField.ts b/src/util/util/BitField.ts new file mode 100644 index 00000000..9bdbf6d7 --- /dev/null +++ b/src/util/util/BitField.ts @@ -0,0 +1,150 @@ +"use strict"; + +// https://github.com/discordjs/discord.js/blob/master/src/util/BitField.js +// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah + +export type BitFieldResolvable = number | BigInt | BitField | string | BitFieldResolvable[]; + +/** + * Data structure that makes it easy to interact with a bitfield. + */ +export class BitField { + public bitfield: bigint = BigInt(0); + + public static FLAGS: Record = {}; + + constructor(bits: BitFieldResolvable = 0) { + this.bitfield = BitField.resolve.call(this, bits); + } + + /** + * Checks whether the bitfield has a bit, or any of multiple bits. + */ + any(bit: BitFieldResolvable): boolean { + return (this.bitfield & BitField.resolve.call(this, bit)) !== BigInt(0); + } + + /** + * Checks if this bitfield equals another + */ + equals(bit: BitFieldResolvable): boolean { + return this.bitfield === BitField.resolve.call(this, bit); + } + + /** + * Checks whether the bitfield has a bit, or multiple bits. + */ + has(bit: BitFieldResolvable): boolean { + if (Array.isArray(bit)) return bit.every((p) => this.has(p)); + const BIT = BitField.resolve.call(this, bit); + return (this.bitfield & BIT) === BIT; + } + + /** + * Gets all given bits that are missing from the bitfield. + */ + missing(bits: BitFieldResolvable) { + if (!Array.isArray(bits)) bits = new BitField(bits).toArray(); + return bits.filter((p) => !this.has(p)); + } + + /** + * Freezes these bits, making them immutable. + */ + freeze(): Readonly { + return Object.freeze(this); + } + + /** + * Adds bits to these ones. + * @param {...BitFieldResolvable} [bits] Bits to add + * @returns {BitField} These bits or new BitField if the instance is frozen. + */ + add(...bits: BitFieldResolvable[]): BitField { + let total = BigInt(0); + for (const bit of bits) { + total |= BitField.resolve.call(this, bit); + } + if (Object.isFrozen(this)) return new BitField(this.bitfield | total); + this.bitfield |= total; + return this; + } + + /** + * Removes bits from these. + * @param {...BitFieldResolvable} [bits] Bits to remove + */ + remove(...bits: BitFieldResolvable[]) { + let total = BigInt(0); + for (const bit of bits) { + total |= BitField.resolve.call(this, bit); + } + if (Object.isFrozen(this)) return new BitField(this.bitfield & ~total); + this.bitfield &= ~total; + return this; + } + + /** + * Gets an object mapping field names to a {@link boolean} indicating whether the + * bit is available. + * @param {...*} hasParams Additional parameters for the has method, if any + */ + serialize() { + const serialized: Record = {}; + for (const [flag, bit] of Object.entries(BitField.FLAGS)) serialized[flag] = this.has(bit); + return serialized; + } + + /** + * Gets an {@link Array} of bitfield names based on the bits available. + */ + toArray(): string[] { + return Object.keys(BitField.FLAGS).filter((bit) => this.has(bit)); + } + + toJSON() { + return this.bitfield; + } + + valueOf() { + return this.bitfield; + } + + *[Symbol.iterator]() { + yield* this.toArray(); + } + + /** + * Data that can be resolved to give a bitfield. This can be: + * * A bit number (this can be a number literal or a value taken from {@link BitField.FLAGS}) + * * An instance of BitField + * * An Array of BitFieldResolvable + * @typedef {number|BitField|BitFieldResolvable[]} BitFieldResolvable + */ + + /** + * Resolves bitfields to their numeric form. + * @param {BitFieldResolvable} [bit=0] - bit(s) to resolve + * @returns {number} + */ + static resolve(bit: BitFieldResolvable = BigInt(0)): bigint { + // @ts-ignore + const FLAGS = this.FLAGS || this.constructor?.FLAGS; + if ((typeof bit === "number" || typeof bit === "bigint") && bit >= BigInt(0)) return BigInt(bit); + if (bit instanceof BitField) return bit.bitfield; + if (Array.isArray(bit)) { + // @ts-ignore + const resolve = this.constructor?.resolve || this.resolve; + return bit.map((p) => resolve.call(this, p)).reduce((prev, p) => BigInt(prev) | BigInt(p), BigInt(0)); + } + if (typeof bit === "string" && typeof FLAGS[bit] !== "undefined") return FLAGS[bit]; + if (bit === "0") return BigInt(0); //special case: 0 + if (typeof bit === "string") return BigInt(bit); //last ditch effort... + if(/--debug|--inspect/.test(process.execArgv.join(' '))) debugger; //if you're here, we have an invalid bitfield... if bit is 0, thats fine, I guess... + throw new RangeError("BITFIELD_INVALID: " + bit); + } +} + +export function BitFlag(x: bigint | number) { + return BigInt(1) << BigInt(x); +} diff --git a/src/util/util/Categories.ts b/src/util/util/Categories.ts new file mode 100644 index 00000000..a3c69da7 --- /dev/null +++ b/src/util/util/Categories.ts @@ -0,0 +1 @@ +//TODO: populate default discord categories + init, get and set methods \ No newline at end of file diff --git a/src/util/util/Config.ts b/src/util/util/Config.ts new file mode 100644 index 00000000..e0fb2a81 --- /dev/null +++ b/src/util/util/Config.ts @@ -0,0 +1,94 @@ +import { ConfigEntity } from "../entities/Config"; +import fs from "fs"; +import { ConfigValue } from "../config"; +import { OrmUtils } from "."; + +// TODO: yaml instead of json +const overridePath = process.env.CONFIG_PATH ?? ""; + +let config: ConfigValue; +let pairs: ConfigEntity[]; + +// TODO: use events to inform about config updates +// Config keys are separated with _ + +export const Config = { + init: async function init() { + if (config) return config; + console.log('[Config] Loading configuration...') + pairs = await ConfigEntity.find(); + config = pairsToConfig(pairs); + //config = (config || {}).merge(new ConfigValue()); + config = OrmUtils.mergeDeep(new ConfigValue(), config) + + if(process.env.CONFIG_PATH) + try { + const overrideConfig = JSON.parse(fs.readFileSync(overridePath, { encoding: "utf8" })); + config = overrideConfig.merge(config); + } catch (error) { + fs.writeFileSync(overridePath, JSON.stringify(config, null, 4)); + } + + + return this.set(config); + }, + get: function get() { + if(!config) { + if(/--debug|--inspect/.test(process.execArgv.join(' '))) + console.log("Oops.. trying to get config without config existing... Returning defaults... (Is the database still initialising?)"); + return new ConfigValue(); + } + return config; + }, + set: function set(val: Partial) { + if (!config || !val) return; + config = val.merge(config); + + return applyConfig(config); + }, +}; + +function applyConfig(val: ConfigValue) { + async function apply(obj: any, key = ""): Promise { + if (typeof obj === "object" && obj !== null) + return Promise.all(Object.keys(obj).map((k) => apply(obj[k], key ? `${key}_${k}` : k))); + + let pair = pairs.find((x) => x.key === key); + if (!pair) pair = new ConfigEntity(); + + pair.key = key; + pair.value = obj; + return pair.save(); + } + if(process.env.CONFIG_PATH) { + if(/--debug|--inspect/.test(process.execArgv.join(' '))) + console.log(`Writing config: ${process.env.CONFIG_PATH}`) + fs.writeFileSync(overridePath, JSON.stringify(val, null, 4)); + } + + return apply(val); +} + +function pairsToConfig(pairs: ConfigEntity[]) { + let value: any = {}; + + pairs.forEach((p) => { + const keys = p.key.split("_"); + let obj = value; + let prev = ""; + let prevObj = obj; + let i = 0; + + for (const key of keys) { + if (!isNaN(Number(key)) && !prevObj[prev]?.length) prevObj[prev] = obj = []; + if (i++ === keys.length - 1) obj[key] = p.value; + else if (!obj[key]) obj[key] = {}; + + prev = key; + prevObj = obj; + obj = obj[key]; + } + }); + + return value as ConfigValue; +} diff --git a/src/util/util/Constants.ts b/src/util/util/Constants.ts new file mode 100644 index 00000000..a5d3fcd2 --- /dev/null +++ b/src/util/util/Constants.ts @@ -0,0 +1,792 @@ +import { ApiError } from "./ApiError"; + +export const WSCodes = { + 1000: "WS_CLOSE_REQUESTED", + 4004: "TOKEN_INVALID", + 4010: "SHARDING_INVALID", + 4011: "SHARDING_REQUIRED", + 4013: "INVALID_INTENTS", + 4014: "DISALLOWED_INTENTS", +}; + +/** + * The current status of the client. Here are the available statuses: + * * READY: 0 + * * CONNECTING: 1 + * * RECONNECTING: 2 + * * IDLE: 3 + * * NEARLY: 4 + * * DISCONNECTED: 5 + * * WAITING_FOR_GUILDS: 6 + * * IDENTIFYING: 7 + * * RESUMING: 8 + * @typedef {number} Status + */ +export const WsStatus = { + READY: 0, + CONNECTING: 1, + RECONNECTING: 2, + IDLE: 3, + NEARLY: 4, + DISCONNECTED: 5, + WAITING_FOR_GUILDS: 6, + IDENTIFYING: 7, + RESUMING: 8, +}; + +/** + * The current status of a voice connection. Here are the available statuses: + * * CONNECTED: 0 + * * CONNECTING: 1 + * * AUTHENTICATING: 2 + * * RECONNECTING: 3 + * * DISCONNECTED: 4 + * @typedef {number} VoiceStatus + */ +export const VoiceStatus = { + CONNECTED: 0, + CONNECTING: 1, + AUTHENTICATING: 2, + RECONNECTING: 3, + DISCONNECTED: 4, +}; + +export const OPCodes = { + DISPATCH: 0, + HEARTBEAT: 1, + IDENTIFY: 2, + STATUS_UPDATE: 3, + VOICE_STATE_UPDATE: 4, + VOICE_GUILD_PING: 5, + RESUME: 6, + RECONNECT: 7, + REQUEST_GUILD_MEMBERS: 8, + INVALID_SESSION: 9, + HELLO: 10, + HEARTBEAT_ACK: 11, +}; + +export const VoiceOPCodes = { + IDENTIFY: 0, + SELECT_PROTOCOL: 1, + READY: 2, + HEARTBEAT: 3, + SESSION_DESCRIPTION: 4, + SPEAKING: 5, + HELLO: 8, + CLIENT_CONNECT: 12, + CLIENT_DISCONNECT: 13, +}; + +export const Events = { + RATE_LIMIT: "rateLimit", + CLIENT_READY: "ready", + GUILD_CREATE: "guildCreate", + GUILD_DELETE: "guildDelete", + GUILD_UPDATE: "guildUpdate", + GUILD_UNAVAILABLE: "guildUnavailable", + GUILD_AVAILABLE: "guildAvailable", + GUILD_MEMBER_ADD: "guildMemberAdd", + GUILD_MEMBER_REMOVE: "guildMemberRemove", + GUILD_MEMBER_UPDATE: "guildMemberUpdate", + GUILD_MEMBER_AVAILABLE: "guildMemberAvailable", + GUILD_MEMBER_SPEAKING: "guildMemberSpeaking", + GUILD_MEMBERS_CHUNK: "guildMembersChunk", + GUILD_INTEGRATIONS_UPDATE: "guildIntegrationsUpdate", + GUILD_ROLE_CREATE: "roleCreate", + GUILD_ROLE_DELETE: "roleDelete", + INVITE_CREATE: "inviteCreate", + INVITE_DELETE: "inviteDelete", + GUILD_ROLE_UPDATE: "roleUpdate", + GUILD_EMOJI_CREATE: "emojiCreate", + GUILD_EMOJI_DELETE: "emojiDelete", + GUILD_EMOJI_UPDATE: "emojiUpdate", + GUILD_BAN_ADD: "guildBanAdd", + GUILD_BAN_REMOVE: "guildBanRemove", + CHANNEL_CREATE: "channelCreate", + CHANNEL_DELETE: "channelDelete", + CHANNEL_UPDATE: "channelUpdate", + CHANNEL_PINS_UPDATE: "channelPinsUpdate", + MESSAGE_CREATE: "message", + MESSAGE_DELETE: "messageDelete", + MESSAGE_UPDATE: "messageUpdate", + MESSAGE_BULK_DELETE: "messageDeleteBulk", + MESSAGE_REACTION_ADD: "messageReactionAdd", + MESSAGE_REACTION_REMOVE: "messageReactionRemove", + MESSAGE_REACTION_REMOVE_ALL: "messageReactionRemoveAll", + MESSAGE_REACTION_REMOVE_EMOJI: "messageReactionRemoveEmoji", + USER_UPDATE: "userUpdate", + PRESENCE_UPDATE: "presenceUpdate", + VOICE_SERVER_UPDATE: "voiceServerUpdate", + VOICE_STATE_UPDATE: "voiceStateUpdate", + VOICE_BROADCAST_SUBSCRIBE: "subscribe", + VOICE_BROADCAST_UNSUBSCRIBE: "unsubscribe", + TYPING_START: "typingStart", + TYPING_STOP: "typingStop", + WEBHOOKS_UPDATE: "webhookUpdate", + ERROR: "error", + WARN: "warn", + DEBUG: "debug", + SHARD_DISCONNECT: "shardDisconnect", + SHARD_ERROR: "shardError", + SHARD_RECONNECTING: "shardReconnecting", + SHARD_READY: "shardReady", + SHARD_RESUME: "shardResume", + INVALIDATED: "invalidated", + RAW: "raw", +}; + +export const ShardEvents = { + CLOSE: "close", + DESTROYED: "destroyed", + INVALID_SESSION: "invalidSession", + READY: "ready", + RESUMED: "resumed", + ALL_READY: "allReady", +}; + +/** + * The type of Structure allowed to be a partial: + * * USER + * * CHANNEL (only affects DMChannels) + * * GUILD_MEMBER + * * MESSAGE + * * REACTION + * Partials require you to put checks in place when handling data, read the Partials topic listed in the + * sidebar for more information. + * @typedef {string} PartialType + */ +export const PartialTypes = keyMirror(["USER", "CHANNEL", "GUILD_MEMBER", "MESSAGE", "REACTION"]); + +/** + * The type of a websocket message event, e.g. `MESSAGE_CREATE`. Here are the available events: + * * READY + * * RESUMED + * * GUILD_CREATE + * * GUILD_DELETE + * * GUILD_UPDATE + * * INVITE_CREATE + * * INVITE_DELETE + * * GUILD_MEMBER_ADD + * * GUILD_MEMBER_REMOVE + * * GUILD_MEMBER_UPDATE + * * GUILD_MEMBERS_CHUNK + * * GUILD_INTEGRATIONS_UPDATE + * * GUILD_ROLE_CREATE + * * GUILD_ROLE_DELETE + * * GUILD_ROLE_UPDATE + * * GUILD_BAN_ADD + * * GUILD_BAN_REMOVE + * * GUILD_EMOJIS_UPDATE + * * CHANNEL_CREATE + * * CHANNEL_DELETE + * * CHANNEL_UPDATE + * * CHANNEL_PINS_UPDATE + * * MESSAGE_CREATE + * * MESSAGE_DELETE + * * MESSAGE_UPDATE + * * MESSAGE_DELETE_BULK + * * MESSAGE_REACTION_ADD + * * MESSAGE_REACTION_REMOVE + * * MESSAGE_REACTION_REMOVE_ALL + * * MESSAGE_REACTION_REMOVE_EMOJI + * * USER_UPDATE + * * PRESENCE_UPDATE + * * TYPING_START + * * VOICE_STATE_UPDATE + * * VOICE_SERVER_UPDATE + * * WEBHOOKS_UPDATE + * @typedef {string} WSEventType + */ +export const WSEvents = keyMirror([ + "READY", + "RESUMED", + "GUILD_CREATE", + "GUILD_DELETE", + "GUILD_UPDATE", + "INVITE_CREATE", + "INVITE_DELETE", + "GUILD_MEMBER_ADD", + "GUILD_MEMBER_REMOVE", + "GUILD_MEMBER_UPDATE", + "GUILD_MEMBERS_CHUNK", + "GUILD_INTEGRATIONS_UPDATE", + "GUILD_ROLE_CREATE", + "GUILD_ROLE_DELETE", + "GUILD_ROLE_UPDATE", + "GUILD_BAN_ADD", + "GUILD_BAN_REMOVE", + "GUILD_EMOJIS_UPDATE", + "CHANNEL_CREATE", + "CHANNEL_DELETE", + "CHANNEL_UPDATE", + "CHANNEL_PINS_UPDATE", + "MESSAGE_CREATE", + "MESSAGE_DELETE", + "MESSAGE_UPDATE", + "MESSAGE_DELETE_BULK", + "MESSAGE_REACTION_ADD", + "MESSAGE_REACTION_REMOVE", + "MESSAGE_REACTION_REMOVE_ALL", + "MESSAGE_REACTION_REMOVE_EMOJI", + "USER_UPDATE", + "PRESENCE_UPDATE", + "TYPING_START", + "VOICE_STATE_UPDATE", + "VOICE_SERVER_UPDATE", + "WEBHOOKS_UPDATE", +]); + +/** + * The type of a message, e.g. `DEFAULT`. Here are the available types: + * * DEFAULT + * * RECIPIENT_ADD + * * RECIPIENT_REMOVE + * * CALL + * * CHANNEL_NAME_CHANGE + * * CHANNEL_ICON_CHANGE + * * PINS_ADD + * * GUILD_MEMBER_JOIN + * * USER_PREMIUM_GUILD_SUBSCRIPTION + * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1 + * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2 + * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3 + * * CHANNEL_FOLLOW_ADD + * * GUILD_DISCOVERY_DISQUALIFIED + * * GUILD_DISCOVERY_REQUALIFIED + * * REPLY + * @typedef {string} MessageType + */ +export const MessageTypes = [ + "DEFAULT", + "RECIPIENT_ADD", + "RECIPIENT_REMOVE", + "CALL", + "CHANNEL_NAME_CHANGE", + "CHANNEL_ICON_CHANGE", + "PINS_ADD", + "GUILD_MEMBER_JOIN", + "USER_PREMIUM_GUILD_SUBSCRIPTION", + "USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1", + "USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2", + "USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3", + "CHANNEL_FOLLOW_ADD", + null, + "GUILD_DISCOVERY_DISQUALIFIED", + "GUILD_DISCOVERY_REQUALIFIED", + null, + null, + null, + "REPLY", +]; + +/** + * The types of messages that are `System`. The available types are `MessageTypes` excluding: + * * DEFAULT + * * REPLY + * @typedef {string} SystemMessageType + */ +export const SystemMessageTypes = MessageTypes.filter( + (type: string | null) => type && type !== "DEFAULT" && type !== "REPLY" +); + +/** + * Bots cannot set a `CUSTOM_STATUS`, it is only for custom statuses received from users + * The type of an activity of a users presence, e.g. `PLAYING`. Here are the available types: + * * PLAYING + * * STREAMING + * * LISTENING + * * WATCHING + * * CUSTOM_STATUS + * * COMPETING + * @typedef {string} ActivityType + */ +export const ActivityTypes = ["PLAYING", "STREAMING", "LISTENING", "WATCHING", "CUSTOM_STATUS", "COMPETING"]; + +export const ChannelTypes = { + TEXT: 0, + DM: 1, + VOICE: 2, + GROUP: 3, + CATEGORY: 4, + NEWS: 5, + STORE: 6, +}; + +export const ClientApplicationAssetTypes = { + SMALL: 1, + BIG: 2, +}; + +export const Colors = { + DEFAULT: 0x000000, + WHITE: 0xffffff, + AQUA: 0x1abc9c, + GREEN: 0x2ecc71, + BLUE: 0x3498db, + YELLOW: 0xffff00, + PURPLE: 0x9b59b6, + LUMINOUS_VIVID_PINK: 0xe91e63, + GOLD: 0xf1c40f, + ORANGE: 0xe67e22, + RED: 0xe74c3c, + GREY: 0x95a5a6, + NAVY: 0x34495e, + DARK_AQUA: 0x11806a, + DARK_GREEN: 0x1f8b4c, + DARK_BLUE: 0x206694, + DARK_PURPLE: 0x71368a, + DARK_VIVID_PINK: 0xad1457, + DARK_GOLD: 0xc27c0e, + DARK_ORANGE: 0xa84300, + DARK_RED: 0x992d22, + DARK_GREY: 0x979c9f, + DARKER_GREY: 0x7f8c8d, + LIGHT_GREY: 0xbcc0c0, + DARK_NAVY: 0x2c3e50, + BLURPLE: 0x7289da, + GREYPLE: 0x99aab5, + DARK_BUT_NOT_BLACK: 0x2c2f33, + NOT_QUITE_BLACK: 0x23272a, +}; + +/** + * The value set for the explicit content filter levels for a guild: + * * DISABLED + * * MEMBERS_WITHOUT_ROLES + * * ALL_MEMBERS + * @typedef {string} ExplicitContentFilterLevel + */ +export const ExplicitContentFilterLevels = ["DISABLED", "MEMBERS_WITHOUT_ROLES", "ALL_MEMBERS"]; + +/** + * The value set for the verification levels for a guild: + * * NONE + * * LOW + * * MEDIUM + * * HIGH + * * VERY_HIGH + * @typedef {string} VerificationLevel + */ +export const VerificationLevels = ["NONE", "LOW", "MEDIUM", "HIGH", "VERY_HIGH"]; + +/** + * An error encountered while performing an API request. Here are the potential errors: + * * GENERAL_ERROR + * * UNKNOWN_ACCOUNT + * * UNKNOWN_APPLICATION + * * UNKNOWN_CHANNEL + * * UNKNOWN_GUILD + * * UNKNOWN_INTEGRATION + * * UNKNOWN_INVITE + * * UNKNOWN_MEMBER + * * UNKNOWN_MESSAGE + * * UNKNOWN_OVERWRITE + * * UNKNOWN_PROVIDER + * * UNKNOWN_ROLE + * * UNKNOWN_TOKEN + * * UNKNOWN_USER + * * UNKNOWN_EMOJI + * * UNKNOWN_WEBHOOK + * * UNKNOWN_WEBHOOK_SERVICE + * * UNKNOWN_SESSION + * * UNKNOWN_BAN + * * UNKNOWN_SKU + * * UNKNOWN_STORE_LISTING + * * UNKNOWN_ENTITLEMENT + * * UNKNOWN_BUILD + * * UNKNOWN_LOBBY + * * UNKNOWN_BRANCH + * * UNKNOWN_STORE_DIRECTORY_LAYOUT + * * UNKNOWN_REDISTRIBUTABLE + * * UNKNOWN_GIFT_CODE + * * UNKNOWN_STREAM + * * UNKNOWN_PREMIUM_SERVER_SUBSCRIBE_COOLDOWN + * * UNKNOWN_GUILD_TEMPLATE + * * UNKNOWN_DISCOVERABLE_SERVER_CATEGORY + * * UNKNOWN_STICKER + * * UNKNOWN_INTERACTION + * * UNKNOWN_APPLICATION_COMMAND + * * UNKNOWN_APPLICATION_COMMAND_PERMISSIONS + * * UNKNOWN_STAGE_INSTANCE + * * UNKNOWN_GUILD_MEMBER_VERIFICATION_FORM + * * UNKNOWN_GUILD_WELCOME_SCREEN + * * UNKNOWN_GUILD_SCHEDULED_EVENT + * * UNKNOWN_GUILD_SCHEDULED_EVENT_USER + * * BOT_PROHIBITED_ENDPOINT + * * BOT_ONLY_ENDPOINT + * * EXPLICIT_CONTENT_CANNOT_BE_SENT_TO_RECIPIENT + * * ACTION_NOT_AUTHORIZED_ON_APPLICATION + * * SLOWMODE_RATE_LIMIT + * * ONLY_OWNER + * * ANNOUNCEMENT_RATE_LIMITS + * * CHANNEL_WRITE_RATELIMIT + * * WORDS_NOT_ALLOWED + * * GUILD_PREMIUM_LEVEL_TOO_LOW + * * MAXIMUM_GUILDS + * * MAXIMUM_FRIENDS + * * MAXIMUM_PINS + * * MAXIMUM_NUMBER_OF_RECIPIENTS_REACHED + * * MAXIMUM_ROLES + * * MAXIMUM_WEBHOOKS + * * MAXIMUM_NUMBER_OF_EMOJIS_REACHED + * * MAXIMUM_REACTIONS + * * MAXIMUM_CHANNELS + * * MAXIMUM_ATTACHMENTS + * * MAXIMUM_INVITES + * * MAXIMUM_ANIMATED_EMOJIS + * * MAXIMUM_SERVER_MEMBERS + * * MAXIMUM_SERVER_CATEGORIES + * * GUILD_ALREADY_HAS_TEMPLATE + * * MAXIMUM_THREAD_PARTICIPANTS + * * MAXIMUM_BANS_FOR_NON_GUILD_MEMBERS + * * MAXIMUM_BANS_FETCHES + * * MAXIMUM_STICKERS + * * MAXIMUM_PRUNE_REQUESTS + * * UNAUTHORIZED + * * ACCOUNT_VERIFICATION_REQUIRED + * * OPENING_DIRECT_MESSAGES_TOO_FAST + * * REQUEST_ENTITY_TOO_LARGE + * * FEATURE_TEMPORARILY_DISABLED + * * USER_BANNED + * * TARGET_USER_IS_NOT_CONNECTED_TO_VOICE + * * ALREADY_CROSSPOSTED + * * APPLICATION_COMMAND_ALREADY_EXISTS + * * MISSING_ACCESS + * * INVALID_ACCOUNT_TYPE + * * CANNOT_EXECUTE_ON_DM + * * EMBED_DISABLED + * * CANNOT_EDIT_MESSAGE_BY_OTHER + * * CANNOT_SEND_EMPTY_MESSAGE + * * CANNOT_MESSAGE_USER + * * CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL + * * CHANNEL_VERIFICATION_LEVEL_TOO_HIGH + * * OAUTH2_APPLICATION_BOT_ABSENT + * * MAXIMUM_OAUTH2_APPLICATIONS + * * INVALID_OAUTH_STATE + * * MISSING_PERMISSIONS + * * INVALID_AUTHENTICATION_TOKEN + * * NOTE_TOO_LONG + * * INVALID_BULK_DELETE_QUANTITY + * * CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL + * * INVALID_OR_TAKEN_INVITE_CODE + * * CANNOT_EXECUTE_ON_SYSTEM_MESSAGE + * * CANNOT_EXECUTE_ON_THIS_CHANNEL_TYPE + * * INVALID_OAUTH_TOKEN + * * MISSING_REQUIRED_OAUTH2_SCOPE + * * INVALID_WEBHOOK_TOKEN_PROVIDED + * * INVALID_ROLE + * * INVALID_RECIPIENT + * * BULK_DELETE_MESSAGE_TOO_OLD + * * INVALID_FORM_BODY + * * INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT + * * INVALID_API_VERSION + * * FILE_EXCEEDS_MAXIMUM_SIZE + * * INVALID_FILE_UPLOADED + * * CANNOT_SELF_REDEEM_GIFT + * * PAYMENT_SOURCE_REQUIRED + * * CANNOT_DELETE_COMMUNITY_REQUIRED_CHANNEL + * * INVALID_STICKER_SENT + * * CANNOT_EDIT_ARCHIVED_THREAD + * * INVALID_THREAD_NOTIFICATION_SETTINGS + * * BEFORE_EARLIER_THAN_THREAD_CREATION_DATE + * * SERVER_NOT_AVAILABLE_IN_YOUR_LOCATION + * * SERVER_NEEDS_MONETIZATION_ENABLED + * * TWO_FACTOR_REQUIRED + * * NO_USERS_WITH_DISCORDTAG_EXIST + * * REACTION_BLOCKED + * * RESOURCE_OVERLOADED + * * STAGE_ALREADY_OPEN + * * THREAD_ALREADY_CREATED_FOR_THIS_MESSAGE + * * THREAD_IS_LOCKED + * * MAXIMUM_NUMBER_OF_ACTIVE_THREADS + * * MAXIMUM_NUMBER_OF_ACTIVE_ANNOUNCEMENT_THREADS + * * INVALID_JSON_FOR_UPLOADED_LOTTIE_FILE + * * LOTTIES_CANNOT_CONTAIN_RASTERIZED_IMAGES + * * STICKER_MAXIMUM_FRAMERATE + * * STICKER_MAXIMUM_FRAME_COUNT + * * LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS + * * STICKER_FRAME_RATE_TOO_SMALL_OR_TOO_LARGE + * * STICKER_ANIMATION_DURATION_MAXIMUM + * * UNKNOWN_VOICE_STATE + * @typedef {string} APIError + */ +export const DiscordApiErrors = { + //https://discord.com/developers/docs/topics/opcodes-and-status-codes#json-json-error-codes + GENERAL_ERROR: new ApiError("General error (such as a malformed request body, amongst other things)", 0), + UNKNOWN_ACCOUNT: new ApiError("Unknown account", 10001), + UNKNOWN_APPLICATION: new ApiError("Unknown application", 10002), + UNKNOWN_CHANNEL: new ApiError("Unknown channel", 10003), + UNKNOWN_GUILD: new ApiError("Unknown guild", 10004), + UNKNOWN_INTEGRATION: new ApiError("Unknown integration", 10005), + UNKNOWN_INVITE: new ApiError("Unknown invite", 10006), + UNKNOWN_MEMBER: new ApiError("Unknown member", 10007), + UNKNOWN_MESSAGE: new ApiError("Unknown message", 10008), + UNKNOWN_OVERWRITE: new ApiError("Unknown permission overwrite", 10009), + UNKNOWN_PROVIDER: new ApiError("Unknown provider", 10010), + UNKNOWN_ROLE: new ApiError("Unknown role", 10011), + UNKNOWN_TOKEN: new ApiError("Unknown token", 10012), + UNKNOWN_USER: new ApiError("Unknown user", 10013), + UNKNOWN_EMOJI: new ApiError("Unknown emoji", 10014), + UNKNOWN_WEBHOOK: new ApiError("Unknown webhook", 10015), + UNKNOWN_WEBHOOK_SERVICE: new ApiError("Unknown webhook service", 10016), + UNKNOWN_SESSION: new ApiError("Unknown session", 10020), + UNKNOWN_BAN: new ApiError("Unknown ban", 10026), + UNKNOWN_SKU: new ApiError("Unknown SKU", 10027), + UNKNOWN_STORE_LISTING: new ApiError("Unknown Store Listing", 10028), + UNKNOWN_ENTITLEMENT: new ApiError("Unknown entitlement", 10029), + UNKNOWN_BUILD: new ApiError("Unknown build", 10030), + UNKNOWN_LOBBY: new ApiError("Unknown lobby", 10031), + UNKNOWN_BRANCH: new ApiError("Unknown branch", 10032), + UNKNOWN_STORE_DIRECTORY_LAYOUT: new ApiError("Unknown store directory layout", 10033), + UNKNOWN_REDISTRIBUTABLE: new ApiError("Unknown redistributable", 10036), + UNKNOWN_GIFT_CODE: new ApiError("Unknown gift code", 10038), + UNKNOWN_STREAM: new ApiError("Unknown stream", 10049), + UNKNOWN_PREMIUM_SERVER_SUBSCRIBE_COOLDOWN: new ApiError("Unknown premium server subscribe cooldown", 10050), + UNKNOWN_GUILD_TEMPLATE: new ApiError("Unknown guild template", 10057), + UNKNOWN_DISCOVERABLE_SERVER_CATEGORY: new ApiError("Unknown discoverable server category", 10059), + UNKNOWN_STICKER: new ApiError("Unknown sticker", 10060), + UNKNOWN_INTERACTION: new ApiError("Unknown interaction", 10062), + UNKNOWN_APPLICATION_COMMAND: new ApiError("Unknown application command", 10063), + UNKNOWN_APPLICATION_COMMAND_PERMISSIONS: new ApiError("Unknown application command permissions", 10066), + UNKNOWN_STAGE_INSTANCE: new ApiError("Unknown Stage Instance", 10067), + UNKNOWN_GUILD_MEMBER_VERIFICATION_FORM: new ApiError("Unknown Guild Member Verification Form", 10068), + UNKNOWN_GUILD_WELCOME_SCREEN: new ApiError("Unknown Guild Welcome Screen", 10069), + UNKNOWN_GUILD_SCHEDULED_EVENT: new ApiError("Unknown Guild Scheduled Event", 10070), + UNKNOWN_GUILD_SCHEDULED_EVENT_USER: new ApiError("Unknown Guild Scheduled Event User", 10071), + BOT_PROHIBITED_ENDPOINT: new ApiError("Bots cannot use this endpoint", 20001), + BOT_ONLY_ENDPOINT: new ApiError("Only bots can use this endpoint", 20002), + EXPLICIT_CONTENT_CANNOT_BE_SENT_TO_RECIPIENT: new ApiError( + "Explicit content cannot be sent to the desired recipient(s)", + 20009 + ), + ACTION_NOT_AUTHORIZED_ON_APPLICATION: new ApiError( + "You are not authorized to perform this action on this application", + 20012 + ), + SLOWMODE_RATE_LIMIT: new ApiError("This action cannot be performed due to slowmode rate limit", 20016), + ONLY_OWNER: new ApiError("Only the owner of this account can perform this action", 20018), + ANNOUNCEMENT_RATE_LIMITS: new ApiError("This message cannot be edited due to announcement rate limits", 20022), + CHANNEL_WRITE_RATELIMIT: new ApiError("The channel you are writing has hit the write rate limit", 20028), + WORDS_NOT_ALLOWED: new ApiError( + "Your Stage topic, server name, server description, or channel names contain words that are not allowed", + 20031 + ), + GUILD_PREMIUM_LEVEL_TOO_LOW: new ApiError("Guild premium subscription level too low", 20035), + MAXIMUM_GUILDS: new ApiError("Maximum number of guilds reached ({})", 30001, undefined, ["100"]), + MAXIMUM_FRIENDS: new ApiError("Maximum number of friends reached ({})", 30002, undefined, ["1000"]), + MAXIMUM_PINS: new ApiError("Maximum number of pins reached for the channel ({})", 30003, undefined, ["50"]), + MAXIMUM_NUMBER_OF_RECIPIENTS_REACHED: new ApiError("Maximum number of recipients reached ({})", 30004, undefined, [ + "10", + ]), + MAXIMUM_ROLES: new ApiError("Maximum number of guild roles reached ({})", 30005, undefined, ["250"]), + MAXIMUM_WEBHOOKS: new ApiError("Maximum number of webhooks reached ({})", 30007, undefined, ["10"]), + MAXIMUM_NUMBER_OF_EMOJIS_REACHED: new ApiError("Maximum number of emojis reached", 30008), + MAXIMUM_REACTIONS: new ApiError("Maximum number of reactions reached ({})", 30010, undefined, ["20"]), + MAXIMUM_CHANNELS: new ApiError("Maximum number of guild channels reached ({})", 30013, undefined, ["500"]), + MAXIMUM_ATTACHMENTS: new ApiError("Maximum number of attachments in a message reached ({})", 30015, undefined, [ + "10", + ]), + MAXIMUM_INVITES: new ApiError("Maximum number of invites reached ({})", 30016, undefined, ["1000"]), + MAXIMUM_ANIMATED_EMOJIS: new ApiError("Maximum number of animated emojis reached", 30018), + MAXIMUM_SERVER_MEMBERS: new ApiError("Maximum number of server members reached", 30019), + MAXIMUM_SERVER_CATEGORIES: new ApiError( + "Maximum number of server categories has been reached ({})", + 30030, + undefined, + ["5"] + ), + GUILD_ALREADY_HAS_TEMPLATE: new ApiError("Guild already has a template", 30031), + MAXIMUM_THREAD_PARTICIPANTS: new ApiError("Max number of thread participants has been reached", 30033), + MAXIMUM_BANS_FOR_NON_GUILD_MEMBERS: new ApiError( + "Maximum number of bans for non-guild members have been exceeded", + 30035 + ), + MAXIMUM_BANS_FETCHES: new ApiError("Maximum number of bans fetches has been reached", 30037), + MAXIMUM_STICKERS: new ApiError("Maximum number of stickers reached", 30039), + MAXIMUM_PRUNE_REQUESTS: new ApiError("Maximum number of prune requests has been reached. Try again later", 30040), + UNAUTHORIZED: new ApiError("Unauthorized. Provide a valid token and try again", 40001), + ACCOUNT_VERIFICATION_REQUIRED: new ApiError( + "You need to verify your account in order to perform this action", + 40002 + ), + OPENING_DIRECT_MESSAGES_TOO_FAST: new ApiError("You are opening direct messages too fast", 40003), + REQUEST_ENTITY_TOO_LARGE: new ApiError("Request entity too large. Try sending something smaller in size", 40005), + FEATURE_TEMPORARILY_DISABLED: new ApiError("This feature has been temporarily disabled server-side", 40006), + USER_BANNED: new ApiError("The user is banned from this guild", 40007), + TARGET_USER_IS_NOT_CONNECTED_TO_VOICE: new ApiError("Target user is not connected to voice", 40032), + ALREADY_CROSSPOSTED: new ApiError("This message has already been crossposted", 40033), + APPLICATION_COMMAND_ALREADY_EXISTS: new ApiError("An application command with that name already exists", 40041), + MISSING_ACCESS: new ApiError("Missing access", 50001), + INVALID_ACCOUNT_TYPE: new ApiError("Invalid account type", 50002), + CANNOT_EXECUTE_ON_DM: new ApiError("Cannot execute action on a DM channel", 50003), + EMBED_DISABLED: new ApiError("Guild widget disabled", 50004), + CANNOT_EDIT_MESSAGE_BY_OTHER: new ApiError("Cannot edit a message authored by another user", 50005), + CANNOT_SEND_EMPTY_MESSAGE: new ApiError("Cannot send an empty message", 50006), + CANNOT_MESSAGE_USER: new ApiError("Cannot send messages to this user", 50007), + CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL: new ApiError("Cannot send messages in a voice channel", 50008), + CHANNEL_VERIFICATION_LEVEL_TOO_HIGH: new ApiError( + "Channel verification level is too high for you to gain access", + 50009 + ), + OAUTH2_APPLICATION_BOT_ABSENT: new ApiError("OAuth2 application does not have a bot", 50010), + MAXIMUM_OAUTH2_APPLICATIONS: new ApiError("OAuth2 application limit reached", 50011), + INVALID_OAUTH_STATE: new ApiError("Invalid OAuth2 state", 50012), + MISSING_PERMISSIONS: new ApiError("You lack permissions to perform that action ({})", 50013, undefined, [""]), + INVALID_AUTHENTICATION_TOKEN: new ApiError("Invalid authentication token provided", 50014), + NOTE_TOO_LONG: new ApiError("Note was too long", 50015), + INVALID_BULK_DELETE_QUANTITY: new ApiError( + "Provided too few or too many messages to delete. Must provide at least {} and fewer than {} messages to delete", + 50016, + undefined, + ["2", "100"] + ), + CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL: new ApiError( + "A message can only be pinned to the channel it was sent in", + 50019 + ), + INVALID_OR_TAKEN_INVITE_CODE: new ApiError("Invite code was either invalid or taken", 50020), + CANNOT_EXECUTE_ON_SYSTEM_MESSAGE: new ApiError("Cannot execute action on a system message", 50021), + CANNOT_EXECUTE_ON_THIS_CHANNEL_TYPE: new ApiError("Cannot execute action on this channel type", 50024), + INVALID_OAUTH_TOKEN: new ApiError("Invalid OAuth2 access token provided", 50025), + MISSING_REQUIRED_OAUTH2_SCOPE: new ApiError("Missing required OAuth2 scope", 50026), + INVALID_WEBHOOK_TOKEN_PROVIDED: new ApiError("Invalid webhook token provided", 50027), + INVALID_ROLE: new ApiError("Invalid role", 50028), + INVALID_RECIPIENT: new ApiError("Invalid Recipient(s)", 50033), + BULK_DELETE_MESSAGE_TOO_OLD: new ApiError("A message provided was too old to bulk delete", 50034), + INVALID_FORM_BODY: new ApiError( + "Invalid form body (returned for both application/json and multipart/form-data bodies), or invalid Content-Type provided", + 50035 + ), + INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT: new ApiError( + "An invite was accepted to a guild the application's bot is not in", + 50036 + ), + INVALID_API_VERSION: new ApiError("Invalid API version provided", 50041), + FILE_EXCEEDS_MAXIMUM_SIZE: new ApiError("File uploaded exceeds the maximum size", 50045), + INVALID_FILE_UPLOADED: new ApiError("Invalid file uploaded", 50046), + CANNOT_SELF_REDEEM_GIFT: new ApiError("Cannot self-redeem this gift", 50054), + PAYMENT_SOURCE_REQUIRED: new ApiError("Payment source required to redeem gift", 50070), + CANNOT_DELETE_COMMUNITY_REQUIRED_CHANNEL: new ApiError( + "Cannot delete a channel required for Community guilds", + 50074 + ), + INVALID_STICKER_SENT: new ApiError("Invalid sticker sent", 50081), + CANNOT_EDIT_ARCHIVED_THREAD: new ApiError( + "Tried to perform an operation on an archived thread, such as editing a message or adding a user to the thread", + 50083 + ), + INVALID_THREAD_NOTIFICATION_SETTINGS: new ApiError("Invalid thread notification settings", 50084), + BEFORE_EARLIER_THAN_THREAD_CREATION_DATE: new ApiError( + "before value is earlier than the thread creation date", + 50085 + ), + SERVER_NOT_AVAILABLE_IN_YOUR_LOCATION: new ApiError("This server is not available in your location", 50095), + SERVER_NEEDS_MONETIZATION_ENABLED: new ApiError( + "This server needs monetization enabled in order to perform this action", + 50097 + ), + TWO_FACTOR_REQUIRED: new ApiError("Two factor is required for this operation", 60003), + NO_USERS_WITH_DISCORDTAG_EXIST: new ApiError("No users with DiscordTag exist", 80004), + REACTION_BLOCKED: new ApiError("Reaction was blocked", 90001), + RESOURCE_OVERLOADED: new ApiError("API resource is currently overloaded. Try again a little later", 130000), + STAGE_ALREADY_OPEN: new ApiError("The Stage is already open", 150006), + THREAD_ALREADY_CREATED_FOR_THIS_MESSAGE: new ApiError("A thread has already been created for this message", 160004), + THREAD_IS_LOCKED: new ApiError("Thread is locked", 160005), + MAXIMUM_NUMBER_OF_ACTIVE_THREADS: new ApiError("Maximum number of active threads reached", 160006), + MAXIMUM_NUMBER_OF_ACTIVE_ANNOUNCEMENT_THREADS: new ApiError( + "Maximum number of active announcement threads reached", + 160007 + ), + INVALID_JSON_FOR_UPLOADED_LOTTIE_FILE: new ApiError("Invalid JSON for uploaded Lottie file", 170001), + LOTTIES_CANNOT_CONTAIN_RASTERIZED_IMAGES: new ApiError( + "Uploaded Lotties cannot contain rasterized images such as PNG or JPEG", + 170002 + ), + STICKER_MAXIMUM_FRAMERATE: new ApiError("Sticker maximum framerate exceeded", 170003), + STICKER_MAXIMUM_FRAME_COUNT: new ApiError("Sticker frame count exceeds maximum of {} frames", 170004, undefined, [ + "1000", + ]), + LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS: new ApiError("Lottie animation maximum dimensions exceeded", 170005), + STICKER_FRAME_RATE_TOO_SMALL_OR_TOO_LARGE: new ApiError( + "Sticker frame rate is either too small or too large", + 170006 + ), + STICKER_ANIMATION_DURATION_MAXIMUM: new ApiError( + "Sticker animation duration exceeds maximum of {} seconds", + 170007, + undefined, + ["5"] + ), + + //Other errors + UNKNOWN_VOICE_STATE: new ApiError("Unknown Voice State", 10065, 404), +}; + +/** + * An error encountered while performing an API request (Fosscord only). Here are the potential errors: + */ +export const FosscordApiErrors = { + MANUALLY_TRIGGERED_ERROR: new ApiError("This is an artificial error", 1, 500), + PREMIUM_DISABLED_FOR_GUILD: new ApiError("This guild cannot be boosted", 25001), + NO_FURTHER_PREMIUM: new ApiError("This guild does not receive further boosts", 25002), + GUILD_PREMIUM_DISABLED_FOR_YOU: new ApiError("This guild cannot be boosted by you", 25003, 403), + CANNOT_FRIEND_SELF: new ApiError("Cannot friend oneself", 25009), + USER_SPECIFIC_INVITE_WRONG_RECIPIENT: new ApiError("This invite is not meant for you", 25010), + USER_SPECIFIC_INVITE_FAILED: new ApiError("Failed to invite user", 25011), + CANNOT_MODIFY_USER_GROUP: new ApiError("This user cannot manipulate this group", 25050, 403), + CANNOT_REMOVE_SELF_FROM_GROUP: new ApiError("This user cannot remove oneself from user group", 25051), + CANNOT_BAN_OPERATOR: new ApiError("Non-OPERATOR cannot ban OPERATOR from instance", 25052), + CANNOT_LEAVE_GUILD: new ApiError("You are not allowed to leave guilds that you joined by yourself", 25059, 403), + EDITS_DISABLED: new ApiError("You are not allowed to edit your own messages", 25060, 403), + DELETE_MESSAGE_DISABLED: new ApiError("You are not allowed to delete your own messages", 25061, 403), + FEATURE_PERMANENTLY_DISABLED: new ApiError("This feature has been disabled server-side", 45006, 501), + MISSING_RIGHTS: new ApiError("You lack rights to perform that action ({})", 50013, undefined, [""]), + CANNOT_REPLACE_BY_BACKFILL: new ApiError("Cannot backfill to message ID that already exists", 55002, 409), + CANNOT_BACKFILL_TO_THE_FUTURE: new ApiError("You cannot backfill messages in the future", 55003), + CANNOT_GRANT_PERMISSIONS_EXCEEDING_RIGHTS: new ApiError("You cannot grant permissions exceeding your own rights", 50050), + ROUTES_LOOPING: new ApiError("Loops in the route definition ({})", 50060, undefined, [""]), + CANNOT_REMOVE_ROUTE: new ApiError("Cannot remove message route while it is in effect and being used", 50061), +}; + +/** + * The value set for a guild's default message notifications, e.g. `ALL`. Here are the available types: + * * ALL + * * MENTIONS + * * MUTED (Fosscord extension) + * @typedef {string} DefaultMessageNotifications + */ +export const DefaultMessageNotifications = ["ALL", "MENTIONS", "MUTED"]; + +/** + * The value set for a team members's membership state: + * * INVITED + * * ACCEPTED + * * INSERTED (Fosscord extension) + * @typedef {string} MembershipStates + */ +export const MembershipStates = [ + "INSERTED", + "INVITED", + "ACCEPTED", +]; + +/** + * The value set for a webhook's type: + * * Incoming + * * Channel Follower + * * Custom (Fosscord extension) + * @typedef {string} WebhookTypes + */ +export const WebhookTypes = [ + "Custom", + "Incoming", + "Channel Follower", +]; + +function keyMirror(arr: string[]) { + let tmp = Object.create(null); + for (const value of arr) tmp[value] = value; + return tmp; +} + diff --git a/src/util/util/Database.ts b/src/util/util/Database.ts new file mode 100644 index 00000000..84ce473d --- /dev/null +++ b/src/util/util/Database.ts @@ -0,0 +1,103 @@ +import path from "path"; +import "reflect-metadata"; +import { DataSource, createConnection, DataSourceOptions, PrimaryColumn, PrimaryGeneratedColumn } from "typeorm"; +import * as Models from "../entities"; +import { Migration } from "../entities/Migration"; +import { yellow, green, red } from "picocolors"; +import fs from "fs"; +import { exit } from "process"; +import { BaseClass, BaseClassWithoutId } from "../entities"; +import { config } from "dotenv"; + +// UUID extension option is only supported with postgres +// We want to generate all id's with Snowflakes that's why we have our own BaseEntity class + +let promise: Promise; +let dataSource: DataSource; + +export async function getOrInitialiseDatabase(): Promise { + //if (dataSource) return dataSource; // prevent initalizing multiple times + + if(dataSource.isInitialized) return dataSource; + + await dataSource.initialize(); + console.log(`[Database] ${green("Connected!")}`); + await dataSource.runMigrations(); + console.log(`[Database] ${green("Up to date!")}`); + + if("DB_MIGRATE" in process.env) { + console.log("DB_MIGRATE specified, exiting!") + exit(0); + } + return dataSource; +} + +export function closeDatabase() { + dataSource?.destroy(); +} + +function getDataSourceOptions(): DataSourceOptions { + config(); + //get connection string and check for migrations + const dbConnectionString = process.env.DATABASE || path.join(process.cwd(), "database.db"); + const type = dbConnectionString.includes("://") ? dbConnectionString.split(":")[0]?.replace("+srv", "") : "sqlite" as any; + const isSqlite = type.includes("sqlite"); + const migrationsExist = fs.existsSync(path.join(__dirname, "..", "migrations", type)); + //read env vars + const synchronizeInsteadOfMigrations = "DB_UNSAFE" in process.env; + const verboseDb = "DB_VERBOSE" in process.env; + + if(isSqlite) + console.log(`[Database] ${red(`You are running sqlite! Please keep in mind that we recommend setting up a dedicated database!`)}`); + if(verboseDb) + console.log(`[Database] ${red(`Verbose database logging is enabled, this might impact performance! Unset DB_VERBOSE to disable.`)}`); + + if(synchronizeInsteadOfMigrations){ + console.log(`[Database] ${red(`Unsafe database upgrades are enabled! We are not responsible for broken databases! Unset DB_UNSAFE to disable.`)}`); + } + else if(!migrationsExist) { + console.log(`[Database] ${red(`Database engine not supported! Set UNSAFE_DB to bypass.`)}`); + console.log(`[Database] ${red(`Please mention this to Fosscord developers, and provide this info:`)}`); + console.log(`[Database]\n${red(JSON.stringify({ + db_type: type, + migrations_exist: migrationsExist + }, null, 4))}`); + + if(!("DB_MIGRATE" in process.env)) exit(1); + } + console.log(`[Database] ${yellow(`Configuring data source to use ${type} database...`)}`); + return { + type, + charset: 'utf8mb4', + url: isSqlite ? undefined : dbConnectionString, + database: isSqlite ? dbConnectionString : undefined, + // @ts-ignore + //entities: Object.values(Models).filter((x) => x.constructor.name !== "Object" && x.constructor.name !== "Array" && x.constructor.name !== "BigInt" && x).map(x=>x.name), + entities: Object.values(Models).filter((x) => x.constructor.name == "Function" && shouldIncludeEntity(x.name)), + synchronize: synchronizeInsteadOfMigrations, + logging: verboseDb, + cache: { + duration: 1000 * 3, // cache all find queries for 3 seconds + }, + bigNumberStrings: false, + supportBigNumbers: true, + name: "default", + migrations: synchronizeInsteadOfMigrations ? [] : [path.join(__dirname, "..", "migrations", type, "*.js")], + migrationsRun: !synchronizeInsteadOfMigrations, + //migrationsRun: false, + cli: { + migrationsDir: `src/migrations/${type}` + }, + } as DataSourceOptions; +} + +function shouldIncludeEntity(name: string): boolean { + return ![ + BaseClassWithoutId, + PrimaryColumn, + BaseClass, + PrimaryGeneratedColumn + ].map(x=>x.name).includes(name); +} + +export default dataSource = new DataSource(getDataSourceOptions()); diff --git a/src/util/util/Email.ts b/src/util/util/Email.ts new file mode 100644 index 00000000..6885da33 --- /dev/null +++ b/src/util/util/Email.ts @@ -0,0 +1,25 @@ +export const EMAIL_REGEX = + /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + +export function adjustEmail(email?: string): string | undefined { + if (!email) return email; + // body parser already checked if it is a valid email + const parts = email.match(EMAIL_REGEX); + // @ts-ignore + if (!parts || parts.length < 5) return undefined; + const domain = parts[5]; + const user = parts[1]; + + // TODO: check accounts with uncommon email domains + if (domain === "gmail.com" || domain === "googlemail.com") { + // replace .dots and +alternatives -> Gmail Dot Trick https://support.google.com/mail/answer/7436150 and https://generator.email/blog/gmail-generator + let v = user.replace(/[.]|(\+.*)/g, "") + "@gmail.com"; + } + + if (domain === "google.com") { + // replace .dots and +alternatives -> Google Staff GMail Dot Trick + let v = user.replace(/[.]|(\+.*)/g, "") + "@google.com"; + } + + return email; +} diff --git a/src/util/util/Event.ts b/src/util/util/Event.ts new file mode 100644 index 00000000..90c24347 --- /dev/null +++ b/src/util/util/Event.ts @@ -0,0 +1,122 @@ +import { Channel } from "amqplib"; +import { RabbitMQ } from "./RabbitMQ"; +import EventEmitter from "events"; +import { EVENT, Event } from "../interfaces"; +export const events = new EventEmitter(); + +export async function emitEvent(payload: Omit) { + const id = (payload.channel_id || payload.user_id || payload.guild_id) as string; + if (!id) return console.error("event doesn't contain any id", payload); + + if (RabbitMQ.connection) { + const data = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.data; // use rabbitmq for event transmission + await RabbitMQ.channel?.assertExchange(id, "fanout", { durable: false }); + + // assertQueue isn't needed, because a queue will automatically created if it doesn't exist + const successful = RabbitMQ.channel?.publish(id, "", Buffer.from(`${data}`), { type: payload.event }); + if (!successful) throw new Error("failed to send event"); + } else if (process.env.EVENT_TRANSMISSION === "process") { + process.send?.({ type: "event", event: payload, id } as ProcessEvent); + } else { + events.emit(id, payload); + } +} + +export async function initEvent() { + await RabbitMQ.init(); // does nothing if rabbitmq is not setup + if (RabbitMQ.connection) { + } else { + // use event emitter + // use process messages + } +} + +export interface EventOpts extends Event { + acknowledge?: Function; + channel?: Channel; + cancel: Function; +} + +export interface ListenEventOpts { + channel?: Channel; + acknowledge?: boolean; +} + +export interface ProcessEvent { + type: "event"; + event: Event; + id: string; +} + +export async function listenEvent(event: string, callback: (event: EventOpts) => any, opts?: ListenEventOpts) { + if (RabbitMQ.connection) { + // @ts-ignore + return rabbitListen(opts?.channel || RabbitMQ.channel, event, callback, { acknowledge: opts?.acknowledge }); + } else if (process.env.EVENT_TRANSMISSION === "process") { + const cancel = () => { + process.removeListener("message", listener); + process.setMaxListeners(process.getMaxListeners() - 1); + }; + + const listener = (message: any) => { + message.type === "event" && message.id === event && callback({ ...message.event, cancel }); + }; + + process.addListener("message", listener); + process.setMaxListeners(process.getMaxListeners() + 1); + + return cancel; + } else { + const listener = (opts: any) => callback({ ...opts, cancel }); + const cancel = () => { + events.removeListener(event, listener); + events.setMaxListeners(events.getMaxListeners() - 1); + }; + events.setMaxListeners(events.getMaxListeners() + 1); + events.addListener(event, listener); + + return cancel; + } +} + +async function rabbitListen( + channel: Channel, + id: string, + callback: (event: EventOpts) => any, + opts?: { acknowledge?: boolean } +) { + await channel.assertExchange(id, "fanout", { durable: false }); + const q = await channel.assertQueue("", { exclusive: true, autoDelete: true }); + + const cancel = () => { + channel.cancel(q.queue); + channel.unbindQueue(q.queue, id, ""); + }; + + channel.bindQueue(q.queue, id, ""); + channel.consume( + q.queue, + (opts) => { + if (!opts) return; + + const data = JSON.parse(opts.content.toString()); + const event = opts.properties.type as EVENT; + + callback({ + event, + data, + acknowledge() { + channel.ack(opts); + }, + channel, + cancel, + }); + // rabbitCh.ack(opts); + }, + { + noAck: !opts?.acknowledge, + } + ); + + return cancel; +} diff --git a/src/util/util/FieldError.ts b/src/util/util/FieldError.ts new file mode 100644 index 00000000..49968e1a --- /dev/null +++ b/src/util/util/FieldError.ts @@ -0,0 +1,23 @@ +export function FieldErrors(fields: Record) { + return new FieldError( + 50035, + "Invalid Form Body", + fields.map(({ message, code }) => ({ + _errors: [ + { + message, + code: code || "BASE_TYPE_INVALID", + }, + ], + })) + ); +} + +// TODO: implement Image data type: Data URI scheme that supports JPG, GIF, and PNG formats. An example Data URI format is: data:image/jpeg;base64,BASE64_ENCODED_JPEG_IMAGE_DATA +// Ensure you use the proper content type (image/jpeg, image/png, image/gif) that matches the image data being provided. + +export class FieldError extends Error { + constructor(public code: string | number, public message: string, public errors?: any) { + super(message); + } +} diff --git a/src/util/util/Intents.ts b/src/util/util/Intents.ts new file mode 100644 index 00000000..1e840b76 --- /dev/null +++ b/src/util/util/Intents.ts @@ -0,0 +1,34 @@ +import { BitField } from "./BitField"; + +export class Intents extends BitField { + static FLAGS = { + GUILDS: BigInt(1) << BigInt(0), // guilds and guild merge-split events affecting the user + GUILD_MEMBERS: BigInt(1) << BigInt(1), // memberships + GUILD_BANS: BigInt(1) << BigInt(2), // bans and ban lists + GUILD_EMOJIS: BigInt(1) << BigInt(3), // custom emojis + GUILD_INTEGRATIONS: BigInt(1) << BigInt(4), // applications + GUILD_WEBHOOKS: BigInt(1) << BigInt(5), // webhooks + GUILD_INVITES: BigInt(1) << BigInt(6), // mass invites (no user can receive user specific invites of another user) + GUILD_VOICE_STATES: BigInt(1) << BigInt(7), // voice updates + GUILD_PRESENCES: BigInt(1) << BigInt(8), // presence updates + GUILD_MESSAGES_METADATA: BigInt(1) << BigInt(9), // guild message metadata + GUILD_MESSAGE_REACTIONS: BigInt(1) << BigInt(10), // guild message reactions + GUILD_MESSAGE_TYPING: BigInt(1) << BigInt(11), // guild channel typing notifications + DIRECT_MESSAGES: BigInt(1) << BigInt(12), // DM or orphan channels + DIRECT_MESSAGE_REACTIONS: BigInt(1) << BigInt(13), // DM or orphan channel message reactions + DIRECT_MESSAGE_TYPING: BigInt(1) << BigInt(14), // DM typing notifications + GUILD_MESSAGES_CONTENT: BigInt(1) << BigInt(15), // guild message content + GUILD_POLICIES: BigInt(1) << BigInt(20), // guild policies + GUILD_POLICY_EXECUTION: BigInt(1) << BigInt(21), // guild policy execution + LIVE_MESSAGE_COMPOSITION: BigInt(1) << BigInt(32), // allow composing messages using the gateway + GUILD_ROUTES: BigInt(1) << BigInt(41), // message routes affecting the guild + DIRECT_MESSAGES_THREADS: BigInt(1) << BigInt(42), // direct message threads + JUMBO_EVENTS: BigInt(1) << BigInt(43), // jumbo events (size limits to be defined later) + LOBBIES: BigInt(1) << BigInt(44), // lobbies + INSTANCE_ROUTES: BigInt(1) << BigInt(60), // all message route changes + INSTANCE_GUILD_CHANGES: BigInt(1) << BigInt(61), // all guild create, guild object patch, split, merge and delete events + INSTANCE_POLICY_UPDATES: BigInt(1) << BigInt(62), // all instance policy updates + INSTANCE_USER_UPDATES: BigInt(1) << BigInt(63) // all instance user updates + }; +} + diff --git a/src/util/util/InvisibleCharacters.ts b/src/util/util/InvisibleCharacters.ts new file mode 100644 index 00000000..2b014e14 --- /dev/null +++ b/src/util/util/InvisibleCharacters.ts @@ -0,0 +1,56 @@ +// List from https://invisible-characters.com/ +export const InvisibleCharacters = [ + '\u{9}', //Tab + '\u{20}', //Space + '\u{ad}', //Soft hyphen + '\u{34f}', //Combining grapheme joiner + '\u{61c}', //Arabic letter mark + '\u{115f}', //Hangul choseong filler + '\u{1160}', //Hangul jungseong filler + '\u{17b4}', //Khmer vowel inherent AQ + '\u{17b5}', //Khmer vowel inherent AA + '\u{180e}', //Mongolian vowel separator + '\u{2000}', //En quad + '\u{2001}', //Em quad + '\u{2002}', //En space + '\u{2003}', //Em space + '\u{2004}', //Three-per-em space + '\u{2005}', //Four-per-em space + '\u{2006}', //Six-per-em space + '\u{2007}', //Figure space + '\u{2008}', //Punctuation space + '\u{2009}', //Thin space + '\u{200a}', //Hair space + '\u{200b}', //Zero width space + '\u{200c}', //Zero width non-joiner + '\u{200d}', //Zero width joiner + '\u{200e}', //Left-to-right mark + '\u{200f}', //Right-to-left mark + '\u{202f}', //Narrow no-break space + '\u{205f}', //Medium mathematical space + '\u{2060}', //Word joiner + '\u{2061}', //Function application + '\u{2062}', //Invisible times + '\u{2063}', //Invisible separator + '\u{2064}', //Invisible plus + '\u{206a}', //Inhibit symmetric swapping + '\u{206b}', //Activate symmetric swapping + '\u{206c}', //Inhibit arabic form shaping + '\u{206d}', //Activate arabic form shaping + '\u{206e}', //National digit shapes + '\u{206f}', //Nominal digit shapes + '\u{3000}', //Ideographic space + '\u{2800}', //Braille pattern blank + '\u{3164}', //Hangul filler + '\u{feff}', //Zero width no-break space + '\u{ffa0}', //Haldwidth hangul filler + '\u{1d159}', //Musical symbol null notehead + '\u{1d173}', //Musical symbol begin beam + '\u{1d174}', //Musical symbol end beam + '\u{1d175}', //Musical symbol begin tie + '\u{1d176}', //Musical symbol end tie + '\u{1d177}', //Musical symbol begin slur + '\u{1d178}', //Musical symbol end slur + '\u{1d179}', //Musical symbol begin phrase + '\u{1d17a}' //Musical symbol end phrase +]; \ No newline at end of file diff --git a/src/util/util/MFA.ts b/src/util/util/MFA.ts new file mode 100644 index 00000000..2e47b2fc --- /dev/null +++ b/src/util/util/MFA.ts @@ -0,0 +1,17 @@ +import crypto from "crypto"; +import { BackupCode } from "../entities/BackupCodes"; + +export function generateMfaBackupCodes(user_id: string) { + let backup_codes: BackupCode[] = []; + for (let i = 0; i < 10; i++) { + const code = BackupCode.create({ + user: { id: user_id }, + code: crypto.randomBytes(4).toString("hex"), // 8 characters + consumed: false, + expired: false, + }); + backup_codes.push(code); + } + + return backup_codes; +} \ No newline at end of file diff --git a/src/util/util/MessageFlags.ts b/src/util/util/MessageFlags.ts new file mode 100644 index 00000000..b59295c4 --- /dev/null +++ b/src/util/util/MessageFlags.ts @@ -0,0 +1,20 @@ +// based on https://github.com/discordjs/discord.js/blob/master/src/util/MessageFlags.js +// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah, 2022 Erkin Alp Güney + +import { BitField } from "./BitField"; + +export class MessageFlags extends BitField { + static FLAGS = { + CROSSPOSTED: BigInt(1) << BigInt(0), + IS_CROSSPOST: BigInt(1) << BigInt(1), + SUPPRESS_EMBEDS: BigInt(1) << BigInt(2), + // SOURCE_MESSAGE_DELETED: BigInt(1) << BigInt(3), // fosscord will delete them from destination too, making this redundant + URGENT: BigInt(1) << BigInt(4), + // HAS_THREAD: BigInt(1) << BigInt(5) // does not apply to fosscord due to infrastructural differences + PRIVATE_ROUTE: BigInt(1) << BigInt(6), // it that has been routed to only some of the users that can see the channel + INTERACTION_WAIT: BigInt(1) << BigInt(7), // discord.com calls this LOADING + // FAILED_TO_MENTION_SOME_ROLES_IN_THREAD: BigInt(1) << BigInt(8) + SCRIPT_WAIT: BigInt(1) << BigInt(24), // waiting for the self command to complete + IMPORT_WAIT: BigInt(1) << BigInt(25), // latest message of a bulk import, waiting for the rest of the channel to be backfilled + }; +} diff --git a/src/util/util/Permissions.ts b/src/util/util/Permissions.ts new file mode 100644 index 00000000..c7400303 --- /dev/null +++ b/src/util/util/Permissions.ts @@ -0,0 +1,273 @@ +// https://github.com/discordjs/discord.js/blob/master/src/util/Permissions.js +// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah +import { Channel, ChannelPermissionOverwrite, Guild, Member, Role } from "../entities"; +import { BitField, BitFieldResolvable, BitFlag } from "./BitField"; +import { HTTPError } from ".."; + +export type PermissionResolvable = bigint | number | Permissions | PermissionResolvable[] | PermissionString; + +type PermissionString = keyof typeof Permissions.FLAGS; + +// BigInt doesn't have a bit limit (https://stackoverflow.com/questions/53335545/whats-the-biggest-bigint-value-in-js-as-per-spec) +const CUSTOM_PERMISSION_OFFSET = BigInt(1) << BigInt(64); // 27 permission bits left for discord to add new ones + +export class Permissions extends BitField { + cache: PermissionCache = {}; + + constructor(bits: BitFieldResolvable = 0) { + super(bits); + if (this.bitfield & Permissions.FLAGS.ADMINISTRATOR) { + this.bitfield = ALL_PERMISSIONS; + } + } + + static FLAGS = { + CREATE_INSTANT_INVITE: BitFlag(0), + KICK_MEMBERS: BitFlag(1), + BAN_MEMBERS: BitFlag(2), + ADMINISTRATOR: BitFlag(3), + MANAGE_CHANNELS: BitFlag(4), + MANAGE_GUILD: BitFlag(5), + ADD_REACTIONS: BitFlag(6), + VIEW_AUDIT_LOG: BitFlag(7), + PRIORITY_SPEAKER: BitFlag(8), + STREAM: BitFlag(9), + VIEW_CHANNEL: BitFlag(10), + SEND_MESSAGES: BitFlag(11), + SEND_TTS_MESSAGES: BitFlag(12), + MANAGE_MESSAGES: BitFlag(13), + EMBED_LINKS: BitFlag(14), + ATTACH_FILES: BitFlag(15), + READ_MESSAGE_HISTORY: BitFlag(16), + MENTION_EVERYONE: BitFlag(17), + USE_EXTERNAL_EMOJIS: BitFlag(18), + VIEW_GUILD_INSIGHTS: BitFlag(19), + CONNECT: BitFlag(20), + SPEAK: BitFlag(21), + MUTE_MEMBERS: BitFlag(22), + DEAFEN_MEMBERS: BitFlag(23), + MOVE_MEMBERS: BitFlag(24), + USE_VAD: BitFlag(25), + CHANGE_NICKNAME: BitFlag(26), + MANAGE_NICKNAMES: BitFlag(27), + MANAGE_ROLES: BitFlag(28), + MANAGE_WEBHOOKS: BitFlag(29), + MANAGE_EMOJIS_AND_STICKERS: BitFlag(30), + USE_APPLICATION_COMMANDS: BitFlag(31), + REQUEST_TO_SPEAK: BitFlag(32), + // TODO: what is permission 33? + MANAGE_THREADS: BitFlag(34), + USE_PUBLIC_THREADS: BitFlag(35), + USE_PRIVATE_THREADS: BitFlag(36), + USE_EXTERNAL_STICKERS: BitFlag(37), + + /** + * CUSTOM PERMISSIONS ideas: + * - allow user to dm members + * - allow user to pin messages (without MANAGE_MESSAGES) + * - allow user to publish messages (without MANAGE_MESSAGES) + */ + // CUSTOM_PERMISSION: BigInt(1) << BigInt(0) + CUSTOM_PERMISSION_OFFSET + }; + + any(permission: PermissionResolvable, checkAdmin = true) { + return (checkAdmin && super.any(Permissions.FLAGS.ADMINISTRATOR)) || super.any(permission); + } + + /** + * Checks whether the bitfield has a permission, or multiple permissions. + */ + has(permission: PermissionResolvable, checkAdmin = true) { + return (checkAdmin && super.has(Permissions.FLAGS.ADMINISTRATOR)) || super.has(permission); + } + + /** + * Checks whether the bitfield has a permission, or multiple permissions, but throws an Error if user fails to match auth criteria. + */ + hasThrow(permission: PermissionResolvable) { + if (this.has(permission) && this.has("VIEW_CHANNEL")) return true; + // @ts-ignore + throw new HTTPError(`You are missing the following permissions ${permission}`, 403); + } + + overwriteChannel(overwrites: ChannelPermissionOverwrite[]) { + if (!overwrites) return this; + if (!this.cache) throw new Error("permission chache not available"); + overwrites = overwrites.filter((x) => { + if (x.type === 0 && this.cache.roles?.some((r) => r.id === x.id)) return true; + if (x.type === 1 && x.id == this.cache.user_id) return true; + return false; + }); + return new Permissions(Permissions.channelPermission(overwrites, this.bitfield)); + } + + static channelPermission(overwrites: ChannelPermissionOverwrite[], init?: bigint) { + // TODO: do not deny any permissions if admin + return overwrites.reduce((permission, overwrite) => { + // apply disallowed permission + // * permission: current calculated permission (e.g. 010) + // * deny contains all denied permissions (e.g. 011) + // * allow contains all explicitly allowed permisions (e.g. 100) + return (permission & ~BigInt(overwrite.deny)) | BigInt(overwrite.allow); + // ~ operator inverts deny (e.g. 011 -> 100) + // & operator only allows 1 for both ~deny and permission (e.g. 010 & 100 -> 000) + // | operators adds both together (e.g. 000 + 100 -> 100) + }, init || BigInt(0)); + } + + static rolePermission(roles: Role[]) { + // adds all permissions of all roles together (Bit OR) + return roles.reduce((permission, role) => permission | BigInt(role.permissions), BigInt(0)); + } + + static finalPermission({ + user, + guild, + channel, + }: { + user: { id: string; roles: string[] }; + guild: { roles: Role[] }; + channel?: { + overwrites?: ChannelPermissionOverwrite[]; + recipient_ids?: string[] | null; + owner_id?: string; + }; + }) { + if (user.id === "0") return new Permissions("ADMINISTRATOR"); // system user id + + let roles = guild.roles.filter((x) => user.roles.includes(x.id)); + let permission = Permissions.rolePermission(roles); + + if (channel?.overwrites) { + let overwrites = channel.overwrites.filter((x) => { + if (x.type === 0 && user.roles.includes(x.id)) return true; + if (x.type === 1 && x.id == user.id) return true; + return false; + }); + permission = Permissions.channelPermission(overwrites, permission); + } + + if (channel?.recipient_ids) { + if (channel?.owner_id === user.id) return new Permissions("ADMINISTRATOR"); + if (channel.recipient_ids.includes(user.id)) { + // Default dm permissions + return new Permissions([ + "VIEW_CHANNEL", + "SEND_MESSAGES", + "STREAM", + "ADD_REACTIONS", + "EMBED_LINKS", + "ATTACH_FILES", + "READ_MESSAGE_HISTORY", + "MENTION_EVERYONE", + "USE_EXTERNAL_EMOJIS", + "CONNECT", + "SPEAK", + "MANAGE_CHANNELS", + ]); + } + + return new Permissions(); + } + + return new Permissions(permission); + } +} + +const ALL_PERMISSIONS = Object.values(Permissions.FLAGS).reduce((total, val) => total | val, BigInt(0)); + +export type PermissionCache = { + channel?: Channel | undefined; + member?: Member | undefined; + guild?: Guild | undefined; + roles?: Role[] | undefined; + user_id?: string; +}; + +export async function getPermission( + user_id?: string, + guild_id?: string, + channel_id?: string, + opts: { + guild_select?: (keyof Guild)[]; + guild_relations?: string[]; + channel_select?: (keyof Channel)[]; + channel_relations?: string[]; + member_select?: (keyof Member)[]; + member_relations?: string[]; + } = {} +) { + if (!user_id) throw new HTTPError("User not found"); + let channel: Channel | undefined; + let member: Member | undefined; + let guild: Guild | undefined; + + if (channel_id) { + channel = await Channel.findOneOrFail({ + where: { id: channel_id }, + relations: ["recipients", ...(opts.channel_relations || [])], + select: [ + "id", + "recipients", + "permission_overwrites", + "owner_id", + "guild_id", + // @ts-ignore + ...(opts.channel_select || []), + ], + }); + if (channel.guild_id) guild_id = channel.guild_id; // derive guild_id from the channel + } + + if (guild_id) { + guild = await Guild.findOneOrFail({ + where: { id: guild_id }, + select: [ + "id", + "owner_id", + // @ts-ignore + ...(opts.guild_select || []), + ], + relations: opts.guild_relations, + }); + if (guild.owner_id === user_id) return new Permissions(Permissions.FLAGS.ADMINISTRATOR); + + member = await Member.findOneOrFail({ + where: { guild_id, id: user_id }, + relations: ["roles", ...(opts.member_relations || [])], + select: [ + "id", + "roles", + "index", + // @ts-ignore + ...(opts.member_select || []), + ], + }); + } + + let recipient_ids: any = channel?.recipients?.map((x) => x.user_id); + if (!recipient_ids?.length) recipient_ids = null; + + // TODO: remove guild.roles and convert recipient_ids to recipients + let permission = Permissions.finalPermission({ + user: { + id: user_id, + roles: member?.roles.map((x) => x.id) || [], + }, + guild: { + roles: member?.roles || [], + }, + channel: { + overwrites: channel?.permission_overwrites, + owner_id: channel?.owner_id, + recipient_ids, + }, + }); + + const obj = new Permissions(permission); + + // pass cache to permission for possible future getPermission calls + obj.cache = { guild, member, channel, roles: member?.roles, user_id }; + + return obj; +} diff --git a/src/util/util/RabbitMQ.ts b/src/util/util/RabbitMQ.ts new file mode 100644 index 00000000..0f5eb6aa --- /dev/null +++ b/src/util/util/RabbitMQ.ts @@ -0,0 +1,19 @@ +import amqp, { Connection, Channel } from "amqplib"; +// import Config from "./Config"; + +export const RabbitMQ: { connection: Connection | null; channel: Channel | null; init: () => Promise } = { + connection: null, + channel: null, + init: async function () { + return; + // const host = Config.get().rabbitmq.host; + // if (!host) return; + // console.log(`[RabbitMQ] connect: ${host}`); + // this.connection = await amqp.connect(host, { + // timeout: 1000 * 60, + // }); + // console.log(`[RabbitMQ] connected`); + // this.channel = await this.connection.createChannel(); + // console.log(`[RabbitMQ] channel created`); + }, +}; diff --git a/src/util/util/Regex.ts b/src/util/util/Regex.ts new file mode 100644 index 00000000..83fc9fe8 --- /dev/null +++ b/src/util/util/Regex.ts @@ -0,0 +1,7 @@ +export const DOUBLE_WHITE_SPACE = /\s\s+/g; +export const SPECIAL_CHAR = /[@#`:\r\n\t\f\v\p{C}]/gu; +export const CHANNEL_MENTION = /<#(\d+)>/g; +export const USER_MENTION = /<@!?(\d+)>/g; +export const ROLE_MENTION = /<@&(\d+)>/g; +export const EVERYONE_MENTION = /@everyone/g; +export const HERE_MENTION = /@here/g; diff --git a/src/util/util/Rights.ts b/src/util/util/Rights.ts new file mode 100644 index 00000000..1c3906fb --- /dev/null +++ b/src/util/util/Rights.ts @@ -0,0 +1,93 @@ +import { BitField, BitFieldResolvable, BitFlag } from "./BitField"; +import { User } from "../entities"; +import { HTTPError } from ".."; + +export type RightResolvable = bigint | number | Rights | RightResolvable[] | RightString; + +type RightString = keyof typeof Rights.FLAGS; +// TODO: just like roles for members, users should have privilidges which combine multiple rights into one and make it easy to assign + +export class Rights extends BitField { + constructor(bits: BitFieldResolvable = 0) { + super(bits); + if (this.bitfield & Rights.FLAGS.OPERATOR) { + this.bitfield = ALL_RIGHTS; + } + } + + static FLAGS = { + OPERATOR: BitFlag(0), // has all rights + MANAGE_APPLICATIONS: BitFlag(1), + MANAGE_GUILDS: BitFlag(2), + MANAGE_MESSAGES: BitFlag(3), // Can't see other messages but delete/edit them in channels that they can see + MANAGE_RATE_LIMITS: BitFlag(4), + MANAGE_ROUTING: BitFlag(5), // can create custom message routes to any channel/guild + MANAGE_TICKETS: BitFlag(6), // can respond to and resolve support tickets + MANAGE_USERS: BitFlag(7), + ADD_MEMBERS: BitFlag(8), // can manually add any members in their guilds + BYPASS_RATE_LIMITS: BitFlag(9), + CREATE_APPLICATIONS: BitFlag(10), + CREATE_CHANNELS: BitFlag(11), // can create guild channels or threads in the guilds that they have permission + CREATE_DMS: BitFlag(12), + CREATE_DM_GROUPS: BitFlag(13), // can create group DMs or custom orphan channels + CREATE_GUILDS: BitFlag(14), + CREATE_INVITES: BitFlag(15), // can create mass invites in the guilds that they have CREATE_INSTANT_INVITE + CREATE_ROLES: BitFlag(16), + CREATE_TEMPLATES: BitFlag(17), + CREATE_WEBHOOKS: BitFlag(18), + JOIN_GUILDS: BitFlag(19), + PIN_MESSAGES: BitFlag(20), + SELF_ADD_REACTIONS: BitFlag(21), + SELF_DELETE_MESSAGES: BitFlag(22), + SELF_EDIT_MESSAGES: BitFlag(23), + SELF_EDIT_NAME: BitFlag(24), + SEND_MESSAGES: BitFlag(25), + USE_ACTIVITIES: BitFlag(26), // use (game) activities in voice channels (e.g. Watch together) + USE_VIDEO: BitFlag(27), + USE_VOICE: BitFlag(28), + INVITE_USERS: BitFlag(29), // can create user-specific invites in the guilds that they have INVITE_USERS + SELF_DELETE_DISABLE: BitFlag(30), // can disable/delete own account + DEBTABLE: BitFlag(31), // can use pay-to-use features + CREDITABLE: BitFlag(32), // can receive money from monetisation related features + KICK_BAN_MEMBERS: BitFlag(33), + // can kick or ban guild or group DM members in the guilds/groups that they have KICK_MEMBERS, or BAN_MEMBERS + SELF_LEAVE_GROUPS: BitFlag(34), + // can leave the guilds or group DMs that they joined on their own (one can always leave a guild or group DMs they have been force-added) + PRESENCE: BitFlag(35), + // inverts the presence confidentiality default (OPERATOR's presence is not routed by default, others' are) for a given user + SELF_ADD_DISCOVERABLE: BitFlag(36), // can mark discoverable guilds that they have permissions to mark as discoverable + MANAGE_GUILD_DIRECTORY: BitFlag(37), // can change anything in the primary guild directory + POGGERS: BitFlag(38), // can send confetti, screenshake, random user mention (@someone) + USE_ACHIEVEMENTS: BitFlag(39), // can use achievements and cheers + INITIATE_INTERACTIONS: BitFlag(40), // can initiate interactions + RESPOND_TO_INTERACTIONS: BitFlag(41), // can respond to interactions + SEND_BACKDATED_EVENTS: BitFlag(42), // can send backdated events + USE_MASS_INVITES: BitFlag(43), // added per @xnacly's request — can accept mass invites + ACCEPT_INVITES: BitFlag(44) // added per @xnacly's request — can accept user-specific invites and DM requests + }; + + any(permission: RightResolvable, checkOperator = true) { + return (checkOperator && super.any(Rights.FLAGS.OPERATOR)) || super.any(permission); + } + + has(permission: RightResolvable, checkOperator = true) { + return (checkOperator && super.has(Rights.FLAGS.OPERATOR)) || super.has(permission); + } + + hasThrow(permission: RightResolvable) { + if (this.has(permission)) return true; + // @ts-ignore + throw new HTTPError(`You are missing the following rights ${permission}`, 403); + } + +} + +const ALL_RIGHTS = Object.values(Rights.FLAGS).reduce((total, val) => total | val, BigInt(0)); + +export async function getRights( user_id: string + /**, opts: { + in_behalf?: (keyof User)[]; + } = {} **/) { + let user = await User.findOneOrFail({ where: { id: user_id } }); + return new Rights(user.rights); +} diff --git a/src/util/util/Snowflake.ts b/src/util/util/Snowflake.ts new file mode 100644 index 00000000..0ef178fe --- /dev/null +++ b/src/util/util/Snowflake.ts @@ -0,0 +1,130 @@ +// @ts-nocheck +import * as cluster from "cluster"; + +// https://github.com/discordjs/discord.js/blob/master/src/util/Snowflake.js +// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah +("use strict"); + +// Discord epoch (2015-01-01T00:00:00.000Z) + +/** + * A container for useful snowflake-related methods. + */ +export class Snowflake { + static readonly EPOCH = 1420070400000; + static INCREMENT = 0n; // max 4095 + static processId = BigInt(process.pid % 31); // max 31 + static workerId = BigInt((cluster.worker?.id || 0) % 31); // max 31 + + constructor() { + throw new Error(`The ${this.constructor.name} class may not be instantiated.`); + } + + /** + * A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z + * ``` + * If we have a snowflake '266241948824764416' we can represent it as binary: + * + * 64 22 17 12 0 + * 000000111011000111100001101001000101000000 00001 00000 000000000000 + * number of ms since Discord epoch worker pid increment + * ``` + * @typedef {string} Snowflake + */ + + /** + * Transforms a snowflake from a decimal string to a bit string. + * @param {Snowflake} num Snowflake to be transformed + * @returns {string} + * @private + */ + static idToBinary(num) { + let bin = ""; + let high = parseInt(num.slice(0, -10)) || 0; + let low = parseInt(num.slice(-10)); + while (low > 0 || high > 0) { + bin = String(low & 1) + bin; + low = Math.floor(low / 2); + if (high > 0) { + low += 5000000000 * (high % 2); + high = Math.floor(high / 2); + } + } + return bin; + } + + /** + * Transforms a snowflake from a bit string to a decimal string. + * @param {string} num Bit string to be transformed + * @returns {Snowflake} + * @private + */ + static binaryToID(num) { + let dec = ""; + + while (num.length > 50) { + const high = parseInt(num.slice(0, -32), 2); + const low = parseInt((high % 10).toString(2) + num.slice(-32), 2); + + dec = (low % 10).toString() + dec; + num = + Math.floor(high / 10).toString(2) + + Math.floor(low / 10) + .toString(2) + .padStart(32, "0"); + } + + num = parseInt(num, 2); + while (num > 0) { + dec = (num % 10).toString() + dec; + num = Math.floor(num / 10); + } + + return dec; + } + + static generateWorkerProcess() { // worker process - returns a number + let time = BigInt(Date.now() - Snowflake.EPOCH) << BigInt(22); + let worker = Snowflake.workerId << 17n; + let process = Snowflake.processId << 12n; + let increment = Snowflake.INCREMENT++; + return BigInt(time | worker | process | increment); + } + + static generate() { + return Snowflake.generateWorkerProcess().toString(); + } + /** + * A deconstructed snowflake. + * @typedef {Object} DeconstructedSnowflake + * @property {number} timestamp Timestamp the snowflake was created + * @property {Date} date Date the snowflake was created + * @property {number} workerID Worker ID in the snowflake + * @property {number} processID Process ID in the snowflake + * @property {number} increment Increment in the snowflake + * @property {string} binary Binary representation of the snowflake + */ + + /** + * Deconstructs a Discord snowflake. + * @param {Snowflake} snowflake Snowflake to deconstruct + * @returns {DeconstructedSnowflake} Deconstructed snowflake + */ + static deconstruct(snowflake) { + const BINARY = Snowflake.idToBinary(snowflake).toString(2).padStart(64, "0"); + const res = { + timestamp: parseInt(BINARY.substring(0, 42), 2) + Snowflake.EPOCH, + workerID: parseInt(BINARY.substring(42, 47), 2), + processID: parseInt(BINARY.substring(47, 52), 2), + increment: parseInt(BINARY.substring(52, 64), 2), + binary: BINARY, + }; + Object.defineProperty(res, "date", { + get: function get() { + return new Date(this.timestamp); + }, + enumerable: true, + }); + return res; + } +} diff --git a/src/util/util/String.ts b/src/util/util/String.ts new file mode 100644 index 00000000..55f11e8d --- /dev/null +++ b/src/util/util/String.ts @@ -0,0 +1,7 @@ +import { SPECIAL_CHAR } from "./Regex"; + +export function trimSpecial(str?: string): string { + // @ts-ignore + if (!str) return; + return str.replace(SPECIAL_CHAR, "").trim(); +} diff --git a/src/util/util/Token.ts b/src/util/util/Token.ts new file mode 100644 index 00000000..5a3922d1 --- /dev/null +++ b/src/util/util/Token.ts @@ -0,0 +1,51 @@ +import jwt, { VerifyOptions } from "jsonwebtoken"; +import { Config } from "./Config"; +import { User } from "../entities"; + +export const JWTOptions: VerifyOptions = { algorithms: ["HS256"] }; + +export function checkToken(token: string, jwtSecret: string): Promise { + return new Promise((res, rej) => { + token = token.replace("Bot ", ""); + /** + in fosscord, even with instances that have bot distinction; we won't enforce "Bot" prefix, + as we don't really have separate pathways for bots + **/ + + jwt.verify(token, jwtSecret, JWTOptions, async (err, decoded: any) => { + if (err || !decoded) return rej("Invalid Token"); + + const user = await User.findOne({ + where: { id: decoded.id }, + select: ["data", "bot", "disabled", "deleted", "rights"] + }); + if (!user) return rej("Invalid Token"); + // we need to round it to seconds as it saved as seconds in jwt iat and valid_tokens_since is stored in milliseconds + if (decoded.iat * 1000 < new Date(user.data.valid_tokens_since).setSeconds(0, 0)) + return rej("Invalid Token"); + if (user.disabled) return rej("User disabled"); + if (user.deleted) return rej("User not found"); + + return res({ decoded, user }); + }); + }); +} + +export async function generateToken(id: string) { + const iat = Math.floor(Date.now() / 1000); + const algorithm = "HS256"; + + return new Promise((res, rej) => { + jwt.sign( + { id: id, iat }, + Config.get().security.jwtSecret, + { + algorithm, + }, + (err, token) => { + if (err) return rej(err); + return res(token); + } + ); + }); +} diff --git a/src/util/util/TraverseDirectory.ts b/src/util/util/TraverseDirectory.ts new file mode 100644 index 00000000..3d0d6279 --- /dev/null +++ b/src/util/util/TraverseDirectory.ts @@ -0,0 +1,13 @@ +import { Server, traverseDirectory } from "lambert-server"; + +//if we're using ts-node, use ts files instead of js +const extension = Symbol.for("ts-node.register.instance") in process ? "ts" : "js" + +const DEFAULT_FILTER = new RegExp("^([^\.].*)(? { + if (!body || !body.startsWith("data:")) return undefined; + try { + const mimetype = body.split(":")[1].split(";")[0]; + const buffer = Buffer.from(body.split(",")[1], "base64"); + + // @ts-ignore + const { id } = await uploadFile(path, { buffer, mimetype, originalname: "banner" }); + return id; + } catch (error) { + console.error(error); + throw new HTTPError("Invalid " + path); + } +} + +export async function deleteFile(path: string) { + const response = await fetch(`${Config.get().cdn.endpointPrivate || "http://localhost:3003"}${path}`, { + headers: { + signature: Config.get().security.requestSignature, + }, + method: "DELETE", + }); + const result = await response.json(); + + if (response.status !== 200) throw result; + return result; +} diff --git a/src/util/util/imports/Checks.ts b/src/util/util/imports/Checks.ts new file mode 100644 index 00000000..19a84171 --- /dev/null +++ b/src/util/util/imports/Checks.ts @@ -0,0 +1,125 @@ +//source: https://github.com/Flam3rboy/-server/blob/master/src/check.ts +import { NextFunction, Request, Response } from "express"; +import { HTTPError } from "."; + +const OPTIONAL_PREFIX = "$"; +const EMAIL_REGEX = + /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + +export function check(schema: any) { + return (req: Request, res: Response, next: NextFunction) => { + try { + const result = instanceOf(schema, req.body, { path: "body" }); + if (result === true) return next(); + throw result; + } catch (error) { + next(new HTTPError((error as any).toString(), 400)); + } + }; +} +export class Tuple { + public types: any[]; + constructor(...types: any[]) { + this.types = types; + } +} + +export class Email { + constructor(public email: string) {} + check() { + return !!this.email.match(EMAIL_REGEX); + } +} +export function instanceOf( + type: any, + value: any, + { path = "", optional = false }: { path?: string; optional?: boolean } = {} +): boolean { + if (!type) return true; // no type was specified + + if (value == null) { + if (optional) return true; + throw `${path} is required`; + } + + switch (type) { + case String: + if (typeof value === "string") return true; + throw `${path} must be a string`; + case Number: + value = Number(value); + if (typeof value === "number" && !isNaN(value)) return true; + throw `${path} must be a number`; + case BigInt: + try { + value = BigInt(value); + if (typeof value === "bigint") return true; + } catch (error) {} + throw `${path} must be a bigint`; + case Boolean: + if (value == "true") value = true; + if (value == "false") value = false; + if (typeof value === "boolean") return true; + throw `${path} must be a boolean`; + case Object: + if (typeof value === "object" && value !== null) return true; + throw `${path} must be a object`; + } + + if (typeof type === "object") { + if (Array.isArray(type)) { + if (!Array.isArray(value)) throw `${path} must be an array`; + if (!type.length) return true; // type array didn't specify any type + + return value.every((val, i) => instanceOf(type[0], val, { path: `${path}[${i}]`, optional })); + } + if (type?.constructor?.name != "Object") { + if (type instanceof Tuple) { + if ( + (type).types.some((x) => { + try { + return instanceOf(x, value, { path, optional }); + } catch (error) { + return false; + } + }) + ) { + return true; + } + throw `${path} must be one of ${type.types}`; + } + if (type instanceof Email) { + if ((type).check()) return true; + throw `${path} is not a valid E-Mail`; + } + if (value instanceof type) return true; + throw `${path} must be an instance of ${type}`; + } + if (typeof value !== "object") throw `${path} must be a object`; + + const diff = Object.keys(value).missing( + Object.keys(type).map((x) => (x.startsWith(OPTIONAL_PREFIX) ? x.slice(OPTIONAL_PREFIX.length) : x)) + ); + + if (diff.length) throw `Unkown key ${diff}`; + + return Object.keys(type).every((key) => { + let newKey = key; + const OPTIONAL = key.startsWith(OPTIONAL_PREFIX); + if (OPTIONAL) newKey = newKey.slice(OPTIONAL_PREFIX.length); + + return instanceOf(type[key], value[newKey], { + path: `${path}.${newKey}`, + optional: OPTIONAL, + }); + }); + } else if (typeof type === "number" || typeof type === "string" || typeof type === "boolean") { + if (value === type) return true; + throw `${path} must be ${value}`; + } else if (typeof type === "bigint") { + if (BigInt(value) === type) return true; + throw `${path} must be ${value}`; + } + + return type == value; +} diff --git a/src/util/util/imports/HTTPError.ts b/src/util/util/imports/HTTPError.ts new file mode 100644 index 00000000..56a7dd55 --- /dev/null +++ b/src/util/util/imports/HTTPError.ts @@ -0,0 +1,5 @@ +export class HTTPError extends Error { + constructor(message: string, public code: number = 400) { + super(message); + } +} \ No newline at end of file diff --git a/src/util/util/imports/OrmUtils.ts b/src/util/util/imports/OrmUtils.ts new file mode 100644 index 00000000..91d88172 --- /dev/null +++ b/src/util/util/imports/OrmUtils.ts @@ -0,0 +1,113 @@ +//source: https://github.com/typeorm/typeorm/blob/master/src/util/OrmUtils.ts +export class OrmUtils { + // Checks if it's an object made by Object.create(null), {} or new Object() + private static isPlainObject(item: any) { + if (item === null || item === undefined) { + return false + } + + return !item.constructor || item.constructor === Object + } + + private static mergeArrayKey( + target: any, + key: number, + value: any, + memo: Map, + ) { + // Have we seen this before? Prevent infinite recursion. + if (memo.has(value)) { + target[key] = memo.get(value) + return + } + + if (value instanceof Promise) { + // Skip promises entirely. + // This is a hold-over from the old code & is because we don't want to pull in + // the lazy fields. Ideally we'd remove these promises via another function first + // but for now we have to do it here. + return + } + + if (!this.isPlainObject(value) && !Array.isArray(value)) { + target[key] = value + return + } + + if (!target[key]) { + target[key] = Array.isArray(value) ? [] : {} + } + + memo.set(value, target[key]) + this.merge(target[key], value, memo) + memo.delete(value) + } + + private static mergeObjectKey( + target: any, + key: string, + value: any, + memo: Map, + ) { + // Have we seen this before? Prevent infinite recursion. + if (memo.has(value)) { + Object.assign(target, { [key]: memo.get(value) }) + return + } + + if (value instanceof Promise) { + // Skip promises entirely. + // This is a hold-over from the old code & is because we don't want to pull in + // the lazy fields. Ideally we'd remove these promises via another function first + // but for now we have to do it here. + return + } + + if (!this.isPlainObject(value) && !Array.isArray(value)) { + Object.assign(target, { [key]: value }) + return + } + + if (!target[key]) { + Object.assign(target, { [key]: value }) + } + + memo.set(value, target[key]) + this.merge(target[key], value, memo) + memo.delete(value) + } + + private static merge( + target: any, + source: any, + memo: Map = new Map(), + ): any { + if (Array.isArray(target) && Array.isArray(source)) { + for (let key = 0; key < source.length; key++) { + this.mergeArrayKey(target, key, source[key], memo) + } + } + else { + for (const key of Object.keys(source)) { + this.mergeObjectKey(target, key, source[key], memo) + } + } + + + } + + /** + * Deep Object.assign. + */ + static mergeDeep(target: any, ...sources: any[]): any { + if (!sources.length) { + return target + } + + for (const source of sources) { + OrmUtils.merge(target, source) + } + + return target + } +} \ No newline at end of file diff --git a/src/util/util/imports/index.ts b/src/util/util/imports/index.ts new file mode 100644 index 00000000..18c47a3b --- /dev/null +++ b/src/util/util/imports/index.ts @@ -0,0 +1,3 @@ +export * from './Checks'; +export * from './HTTPError'; +export * from './OrmUtils'; \ No newline at end of file diff --git a/src/util/util/index.ts b/src/util/util/index.ts new file mode 100644 index 00000000..9e6059fa --- /dev/null +++ b/src/util/util/index.ts @@ -0,0 +1,26 @@ +export * from "./ApiError"; +export * from "./BitField"; +export * from "./Token"; +export * from "./imports/HTTPError"; +export * from "./imports/OrmUtils"; +//export * from "./Categories"; +export * from "./cdn"; +export * from "./Config"; +export * from "./Constants"; +export * from "./Database"; +export * from "./Email"; +export * from "./Event"; +export * from "./FieldError"; +export * from "./Intents"; +export * from "./MessageFlags"; +export * from "./Permissions"; +export * from "./RabbitMQ"; +export * from "./Regex"; +export * from "./Rights"; +export * from "./Snowflake"; +export * from "./String"; +export * from "./Array"; +export * from "./TraverseDirectory"; +export * from "./InvisibleCharacters"; + +export * from "./imports/index"; diff --git a/tests/User.test.js b/tests/User.test.js new file mode 100644 index 00000000..c0852ebc --- /dev/null +++ b/tests/User.test.js @@ -0,0 +1,43 @@ +const { initDatabase, closeDatabase } = require("../dist/util/Database"); +const { User } = require("../dist/entities/User"); +jest.setTimeout(20000); + +beforeAll((done) => { + initDatabase().then(() => { + done(); + }); +}); + +afterAll(() => { + closeDatabase(); +}); + +describe("User", () => { + test("valid discriminator: 1", async () => { + new User({ discriminator: "1" }).validate(); + }); + test("invalid discriminator: test", async () => { + expect(() => { + new User({ discriminator: "test" }).validate(); + }).toThrow(); + }); + + test("invalid discriminator: 0", async () => { + expect(() => { + new User({ discriminator: "0" }).validate(); + }).toThrow(); + }); + + test("add guild", async () => { + try { + await new User({ guilds: [], discriminator: "1" }, { id: "0" }).save(); + const user = await User.find("0"); + + user.guilds.push(new Guild({ name: "test" })); + + user.save(); + } catch (error) { + console.error(error); + } + }); +}); diff --git a/tests/antman.jpg b/tests/antman.jpg new file mode 100644 index 00000000..56af9063 Binary files /dev/null and b/tests/antman.jpg differ diff --git a/tests/cdn_endpoints.test.js b/tests/cdn_endpoints.test.js new file mode 100644 index 00000000..5a543e54 --- /dev/null +++ b/tests/cdn_endpoints.test.js @@ -0,0 +1,238 @@ +const dotenv = require("dotenv"); +const path = require("path"); +const fs = require("fs"); +dotenv.config(); + +// TODO: write unittest to check if FileStorage.ts is working +// TODO: write unitest to check if env vars are defined + +if (!process.env.STORAGE_PROVIDER) process.env.STORAGE_PROVIDER = "file"; +// TODO:nodejs path.join trailing slash windows compatible +if (process.env.STORAGE_PROVIDER === "file") { + if (process.env.STORAGE_LOCATION) { + if (!process.env.STORAGE_LOCATION.startsWith("/")) { + process.env.STORAGE_LOCATION = path.join( + __dirname, + "..", + process.env.STORAGE_LOCATION, + "/" + ); + } + } else { + process.env.STORAGE_LOCATION = path.join(__dirname, "..", "files", "/"); + } + if(!fs.existsSync(process.env.STORAGE_LOCATION)) fs.mkdirSync(process.env.STORAGE_LOCATION, {recursive:true}); +} +const { CDNServer } = require("../dist/Server"); +const { Config } = require("@fosscord/util"); +const supertest = require("supertest"); +const request = supertest("http://localhost:3003"); +const server = new CDNServer({ port: Number(process.env.PORT) || 3003 }); + +beforeAll(async () => { + await server.start(); + return server; +}); + +afterAll(() => { + return server.stop(); +}); + +describe("/ping", () => { + describe("GET", () => { + describe("without signature specified", () => { + test("route should respond with 200", async () => { + let response = await request.get("/ping"); + expect(response.text).toBe("pong"); + }); + }); + }); +}); + +describe("/attachments", () => { + describe("POST", () => { + describe("without signature specified", () => { + test("route should respond with 400", async () => { + const response = await request.post("/attachments/123456789"); + expect(response.statusCode).toBe(400); + }); + }); + describe("with signature specified, without file specified", () => { + test("route should respond with 400", async () => { + const response = await request + .post("/attachments/123456789") + .set({ signature: Config.get().security.requestSignature }); + expect(response.statusCode).toBe(400); + }); + }); + describe("with signature specified, with file specified ", () => { + test("route should respond with Content-type: application/json, 200 and res.body.url", async () => { + const response = await request + .post("/attachments/123456789") + .set({ signature: Config.get().security.requestSignature }) + .attach("file", __dirname + "/antman.jpg"); + expect(response.statusCode).toBe(200); + expect(response.headers["content-type"]).toEqual( + expect.stringContaining("json") + ); + expect(response.body.url).toBeDefined(); + }); + }); + }); + describe("GET", () => { + describe("getting uploaded image by url returned by POST /attachments", () => { + test("route should respond with 200", async () => { + let response = await request + .post("/attachments/123456789") + .set({ signature: Config.get().security.requestSignature }) + .attach("file", __dirname + "/antman.jpg"); + request + .get(response.body.url.replace("http://localhost:3003", "")) + .then((x) => { + expect(x.statusCode).toBe(200); + }); + }); + }); + }); + describe("DELETE", () => { + describe("deleting uploaded image by url returned by POST /attachments", () => { + test("route should respond with res.body.success", async () => { + let response = await request + .post("/attachments/123456789") + .set({ signature: Config.get().security.requestSignature }) + .attach("file", __dirname + "/antman.jpg"); + request + .delete( + response.body.url.replace("http://localhost:3003", "") + ) + .then((x) => { + expect(x.body.success).toBeDefined(); + }); + }); + }); + }); +}); + +describe("/avatars", () => { + describe("POST", () => { + describe("without signature specified", () => { + test("route should respond with 400", async () => { + const response = await request.post("/avatars/123456789"); + expect(response.statusCode).toBe(400); + }); + }); + describe("with signature specified, without file specified", () => { + test("route should respond with 400", async () => { + const response = await request + .post("/avatars/123456789") + .set({ signature: Config.get().security.requestSignature }); + expect(response.statusCode).toBe(400); + }); + }); + describe("with signature specified, with file specified ", () => { + test("route should respond with Content-type: application/json, 200 and res.body.url", async () => { + const response = await request + .post("/avatars/123456789") + .set({ signature: Config.get().security.requestSignature }) + .attach("file", __dirname + "/antman.jpg"); + expect(response.statusCode).toBe(200); + expect(response.headers["content-type"]).toEqual( + expect.stringContaining("json") + ); + expect(response.body.url).toBeDefined(); + }); + }); + }); + describe("GET", () => { + describe("getting uploaded image by url returned by POST /avatars", () => { + test("route should respond with 200", async () => { + let response = await request + .post("/avatars/123456789") + .set({ signature: Config.get().security.requestSignature }) + .attach("file", __dirname + "/antman.jpg"); + request + .get(response.body.url.replace("http://localhost:3003", "")) + .then((x) => { + expect(x.statusCode).toBe(200); + }); + }); + }); + }); + describe("DELETE", () => { + describe("deleting uploaded image by url returned by POST /avatars", () => { + test("route should respond with res.body.success", async () => { + let response = await request + .post("/avatars/123456789") + .set({ signature: Config.get().security.requestSignature }) + .attach("file", __dirname + "/antman.jpg"); + request + .delete( + response.body.url.replace("http://localhost:3003", "") + ) + .then((x) => { + expect(x.body.success).toBeDefined(); + }); + }); + }); + }); +}); + +describe("/external", () => { + describe("POST", () => { + describe("without signature specified", () => { + test("route should respond with 400", async () => { + const response = await request.post("/external"); + expect(response.statusCode).toBe(400); + }); + }); + describe("with signature specified, without file specified", () => { + test("route should respond with 400", async () => { + const response = await request + .post("/external") + .set({ signature: Config.get().security.requestSignature }); + expect(response.statusCode).toBe(400); + }); + }); + describe("with signature specified, with file specified ", () => { + test("route should respond with Content-type: application/json, 200 and res.body.url", async () => { + const response = await request + .post("/external") + .set({ signature: Config.get().security.requestSignature }) + .send({ + url: "https://i.ytimg.com/vi_webp/TiXzhQr5AUc/mqdefault.webp", + }); + expect(response.statusCode).toBe(200); + expect(response.headers["content-type"]).toEqual( + expect.stringContaining("json") + ); + expect(response.body.id).toBeDefined(); + }); + }); + describe("with signature specified, with falsy url specified ", () => { + test("route should respond with 400", async () => { + const response = await request + .post("/external") + .set({ signature: Config.get().security.requestSignature }) + .send({ + url: "notavalidurl.123", + }); + expect(response.statusCode).toBe(400); + }); + }); + }); + describe("GET", () => { + describe("getting uploaded image by url returned by POST /avatars", () => { + test("route should respond with 200", async () => { + let response = await request + .post("/external") + .set({ signature: Config.get().security.requestSignature }) + .send({ + url: "https://i.ytimg.com/vi_webp/TiXzhQr5AUc/mqdefault.webp", + }); + request.get(`external/${response.body.id}`).then((x) => { + expect(x.statusCode).toBe(200); + }); + }); + }); + }); +}); diff --git a/tests/filestorage.test.js b/tests/filestorage.test.js new file mode 100644 index 00000000..78036602 --- /dev/null +++ b/tests/filestorage.test.js @@ -0,0 +1,27 @@ +const path = require("path"); +process.env.STORAGE_LOCATION = path.join(__dirname, "..", "files", "/"); + +const { FileStorage } = require("../dist/util/FileStorage"); +const storage = new FileStorage(); +const fs = require("fs"); + +const file = fs.readFileSync(path.join(__dirname, "antman.jpg")); + +describe("FileStorage", () => { + describe("saving a file", () => { + test("saving a buffer", async () => { + await storage.set("test_saving_file", file); + }); + }); + describe("getting a file", () => { + test("getting buffer with given name", async () => { + const buffer2 = await storage.get("test_saving_file"); + expect(Buffer.compare(file, buffer2)).toBeTruthy(); + }); + }); + describe("deleting a file", () => { + test("deleting buffer with given name", async () => { + await storage.delete("test_saving_file"); + }); + }); +}); diff --git a/tests/routes.test.ts b/tests/routes.test.ts new file mode 100644 index 00000000..c915fab9 --- /dev/null +++ b/tests/routes.test.ts @@ -0,0 +1,155 @@ +// TODO: check every route based on route() parameters: https://github.com/fosscord/fosscord-server/issues/308 +// TODO: check every route with different database engine + +import getRouteDescriptions from "../jest/getRouteDescriptions"; +import { join } from "path"; +import fs from "fs"; +import Ajv from "ajv"; +import addFormats from "ajv-formats"; +import fetch from "node-fetch"; +import { Event, User, events, Guild, Channel } from "@fosscord/util"; + +const SchemaPath = join(__dirname, "..", "assets", "schemas.json"); +const schemas = JSON.parse(fs.readFileSync(SchemaPath, { encoding: "utf8" })); +export const ajv = new Ajv({ + allErrors: true, + parseDate: true, + allowDate: true, + schemas, + messages: true, + strict: true, + strictRequired: true, + coerceTypes: true +}); +addFormats(ajv); + +let token: string; +let user: User; +let guild: Guild; +let channel: Channel; + +const request = async (path: string, opts: any = {}): Promise => { + const response = await fetch(`http://localhost:3001/api${path}`, { + ...opts, + method: opts.method || opts.body ? "POST" : "GET", + body: opts.body && JSON.stringify(opts.body), + headers: { + authorization: token, + ...(opts.body ? { "content-type": "application/json" } : {}), + ...(opts.header || {}) + } + }); + if (response.status === 204) return; + + let data = await response.text(); + try { + data = JSON.parse(data); + if (response.status >= 400) throw data; + return data; + } catch (error) { + throw data; + } +}; + +beforeAll(async (done) => { + try { + const response = await request("/auth/register", { + body: { + fingerprint: "805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", + username: "tester", + invite: null, + consent: true, + date_of_birth: "2000-01-01", + gift_code_sku_id: null, + captcha_key: null + } + }); + token = response.token; + user = await request(`/users/@me`); + const { id: guild_id } = await request("/guilds", { body: { name: "test server" } }); + guild = await request(`/guilds/${guild_id}`); + channel = (await request(`/guilds/${guild_id}/channels`))[0]; + + done(); + } catch (error) { + done(error); + } +}); + +const emit = events.emit; +events.emit = (event: string | symbol, ...args: any[]) => { + events.emit("event", args[0]); + return emit(event, ...args); +}; + +describe("Automatic unit tests with route description middleware", () => { + const routes = getRouteDescriptions(); + + routes.forEach((route, pathAndMethod) => { + const [path, method] = pathAndMethod.split("|"); + + test(`${method.toUpperCase()} ${path}`, async (done) => { + if (!route.test) { + console.log(`${(route as any).file}\nrouter.${method} is missing the test property`); + return done(); + } + const urlPath = + path.replace(":id", user.id).replace(":guild_id", guild.id).replace(":channel_id", channel.id) || route.test?.path; + let validate: any; + if (route.test.body) { + validate = ajv.getSchema(route.test.body); + if (!validate) return done(new Error(`Response schema ${route.test.body} not found`)); + } + + let body = ""; + let eventEmitted = Promise.resolve(); + + if (route.test.event) { + if (!Array.isArray(route.test.event)) route.test.event = [route.test.event]; + + eventEmitted = new Promise((resolve, reject) => { + const timeout = setTimeout(() => reject, 1000); + const received = []; + + events.on("event", (event: Event) => { + if (!route.test.event.includes(event.event)) return; + + received.push(event.event); + if (received.length === route.test.event.length) resolve(); + }); + }); + } + + try { + const response = await fetch(`http://localhost:3001/api${urlPath}`, { + method: method.toUpperCase(), + body: JSON.stringify(route.test.body), + headers: { ...route.test.headers, authorization: token } + }); + + body = await response.text(); + + expect(response.status, body).toBe(route.test.response.status || 200); + + // TODO: check headers + // TODO: expect event + + if (validate) { + body = JSON.parse(body); + const valid = validate(body); + if (!valid) return done(validate.errors); + } + } catch (error) { + return done(error); + } + + try { + await eventEmitted; + } catch (error) { + return done(new Error(`Event ${route.test.event} was not emitted`)); + } + + return done(); + }); + }); +}); diff --git a/tests/routes/auth/login.test.js b/tests/routes/auth/login.test.js new file mode 100644 index 00000000..d4b52444 --- /dev/null +++ b/tests/routes/auth/login.test.js @@ -0,0 +1,33 @@ +const supertest = require("supertest"); +const request = supertest("http://localhost:3001"); + +describe("/api/auth/login", () => { + describe("POST", () => { + test("without body", async () => { + const response = await request.post("/api/auth/login").send({}); + expect(response.statusCode).toBe(400); + }); + test("with body", async () => { + const user = { + login: "fortnitefortnite@gmail.com", + password: "verysecurepassword" + }; + + await request.post("/api/auth/register").send({ + fingerprint: "805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", + email: user.login, + username: user.login.split("@")[0], + password: user.password, + invite: null, + consent: true, + date_of_birth: "2000-04-04", + gift_code_sku_id: null, + captcha_key: null + }); + + const response = await request.post("/api/auth/login").send(user); + + expect(response.statusCode).toBe(200); + }); + }); +}); diff --git a/tests/routes/auth/register.test.js b/tests/routes/auth/register.test.js new file mode 100644 index 00000000..5d7b4eaa --- /dev/null +++ b/tests/routes/auth/register.test.js @@ -0,0 +1,27 @@ +const supertest = require("supertest"); +const request = supertest("http://localhost:3001"); + +describe("/api/auth/register", () => { + describe("POST", () => { + test("without body", async () => { + const response = await request.post("/api/auth/register").send({}); + + expect(response.statusCode).toBe(400); + }); + test("with body", async () => { + const response = await request.post("/api/auth/register").send({ + fingerprint: "805826570869932034.wR8vi8lGlFBJerErO9LG5NViJFw", + email: "qo8etzvaf@gmail.com", + username: "qp39gr98", + password: "wtp9gep9gw", + invite: null, + consent: true, + date_of_birth: "2000-04-04", + gift_code_sku_id: null, + captcha_key: null + }); + + expect(response.statusCode).toBe(200); + }); + }); +}); diff --git a/tests/routes/ping.test.js b/tests/routes/ping.test.js new file mode 100644 index 00000000..6fa4b160 --- /dev/null +++ b/tests/routes/ping.test.js @@ -0,0 +1,12 @@ +const supertest = require("supertest"); +const request = supertest("http://localhost:3001"); + +describe("/ping", () => { + describe("GET", () => { + test("should return 200 and pong", async () => { + let response = await request.get("/api/ping"); + expect(response.text).toBe("pong"); + expect(response.statusCode).toBe(200); + }); + }); +}); diff --git a/tests/setupJest.js b/tests/setupJest.js new file mode 100644 index 00000000..378d72d5 --- /dev/null +++ b/tests/setupJest.js @@ -0,0 +1,23 @@ +const { performance } = require("perf_hooks"); +const fs = require("fs"); +const path = require("path"); + +// fs.unlinkSync(path.join(__dirname, "..", "database.db")); + +global.expect.extend({ + toBeFasterThan: async (func, target) => { + const start = performance.now(); + let error; + try { + await func(); + } catch (e) { + error = e.toString(); + } + const time = performance.now() - start; + + return { + pass: time < target && !error, + message: () => error || `${func.name} took ${time}ms of maximum ${target}`, + }; + }, +}); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..b9e17f29 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,85 @@ +{ + "include": ["src/**/*.ts"], + "exclude": [], + "compilerOptions": { + + /* Basic Options */ + "incremental": false /* Enable incremental compilation */, + "target": "ESNext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, + "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, + "lib": [ + "ESNext" + ] /* Specify library files to be included in the compilation. */, + "allowJs": true /* Allow javascript files to be compiled. */, + "checkJs": true /* Report errors in .js files. */, + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + "declaration": false /* Generates corresponding '.d.ts' file. */, + "declarationMap": false /* Generates a sourcemap for each corresponding '.d.ts' file. */, + "sourceMap": true /* Generates corresponding '.map' file. */, + // "outFile": "./", /* Concatenate and emit output to single file. */ + "outDir": "./dist/" /* Redirect output structure to the directory. */, + "rootDir": "./src/" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true /* Enable all strict type-checking options. */, + "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, + "strictNullChecks": true /* Enable strict null checks. */, + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */, + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + + /* Module Resolution Options */ + "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + "types": [ + "node" + ] /* Type declaration files to be included in compilation. */, + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + + /* Advanced Options */ + "skipLibCheck": true /* Skip type checking of declaration files. */, + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "resolveJsonModule": true, + "baseUrl": "./src/", + "paths": { + "@fosscord/api": ["./api/index"], + "@fosscord/gateway": ["./gateway/index"], + "@fosscord/cdn": ["./cdn/index"], + "@fosscord/util": ["./util/index"] + }, + "plugins": [{ "transform": "@ovos-media/ts-transform-paths" }], + "noEmitHelpers": true, + "importHelpers": true + } +} diff --git a/util/.gitignore b/util/.gitignore deleted file mode 100644 index 768a0425..00000000 --- a/util/.gitignore +++ /dev/null @@ -1,110 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -yarn.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env -.env.test - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# Next.js build output -.next - -# Nuxt.js build / generate output -.nuxt - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and *not* Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port -.DS_Store - -# Compiled TypeScript code -dist/ -database.db \ No newline at end of file diff --git a/util/.npmignore b/util/.npmignore deleted file mode 100644 index 05a9d0cf..00000000 --- a/util/.npmignore +++ /dev/null @@ -1 +0,0 @@ -!dist/ \ No newline at end of file diff --git a/util/.prettierrc b/util/.prettierrc deleted file mode 100644 index d569c548..00000000 --- a/util/.prettierrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "tabWidth": 4, - "useTabs": true, - "printWidth": 120 -} diff --git a/util/.vscode/launch.json b/util/.vscode/launch.json deleted file mode 100644 index 524622d1..00000000 --- a/util/.vscode/launch.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "sourceMaps": true, - "type": "node", - "request": "launch", - "name": "Launch Util", - "program": "${workspaceFolder}/dist/index.js", - "preLaunchTask": "tsc: build - tsconfig.json", - "outFiles": ["${workspaceFolder}/dist/**/*.js"] - }, - { - "name": "Debug Jest Tests", - "type": "node", - "request": "launch", - "runtimeArgs": ["--inspect-brk", "${workspaceRoot}/node_modules/jest/bin/jest.js", "--runInBand"], - "preLaunchTask": "tsc: build - tsconfig.json", - "console": "integratedTerminal", - "internalConsoleOptions": "neverOpen", - "port": 9229 - } - ] -} diff --git a/util/README.md b/util/README.md deleted file mode 100644 index 1934df2a..00000000 --- a/util/README.md +++ /dev/null @@ -1,29 +0,0 @@ -

- -

-

Fosscord server util

- -

- - - - - - - - -

- -## [About](https://fosscord.com) - -Fosscord is a free open source selfhostable chat, voice and video discord-compatible platform. - -Fosscord server util contains all necessary logic that is shared between the [api](https://github.com/fosscord/fosscord-server/tree/master/api), [gateway](https://github.com/fosscord/fosscord-server/tree/master/gateway) and [cdn](https://github.com/fosscord/fosscord-server/tree/master/cdn). - -It contains all mongoose database models and utility functions. - -## Installation - -```bash -npm install @fosscord/server-util -``` diff --git a/util/package-lock.json b/util/package-lock.json deleted file mode 100644 index 04b2857b..00000000 --- a/util/package-lock.json +++ /dev/null @@ -1,13189 +0,0 @@ -{ - "name": "@fosscord/util", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "@fosscord/util", - "version": "1.0.0", - "hasInstallScript": true, - "license": "AGPL-3.0-only", - "dependencies": { - "@types/node-fetch": "^2.6.2", - "amqplib": "^0.10.0", - "form-data": "^4.0.0", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "multer": "^1.4.5-lts.1", - "node-fetch": "^2.6.7", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "typeorm": "^0.3.7", - "typescript": "^4.7.4" - }, - "devDependencies": { - "@types/amqplib": "^0.8.1", - "@types/jsonwebtoken": "^8.5.8", - "@types/multer": "^1.4.7", - "@types/node": "^18.0.6", - "jest": "^28.1.3", - "ts-node": "^10.2.1" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", - "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", - "dev": true, - "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.9", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.9", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/babel" - } - }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz", - "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.9", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", - "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz", - "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.9", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.9", - "@babel/types": "^7.18.9", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/@babel/types": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz", - "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "devOptional": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "optional": true, - "peer": true - }, - "node_modules/@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/core": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", - "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/reporters": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^28.1.3", - "jest-config": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-resolve-dependencies": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "jest-watcher": "^28.1.3", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/environment": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", - "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", - "dev": true, - "dependencies": { - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", - "dev": true, - "dependencies": { - "expect": "^28.1.3", - "jest-snapshot": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/fake-timers": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", - "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/globals": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", - "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/types": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/reporters": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", - "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", - "dev": true, - "dependencies": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/@jest/reporters/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/source-map": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", - "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.13", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/source-map/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/test-sequencer": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", - "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/transform": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", - "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jest/transform/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "devOptional": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "devOptional": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "devOptional": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@mapbox/node-pre-gyp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz", - "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==", - "optional": true, - "peer": true, - "dependencies": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "bin": { - "node-pre-gyp": "bin/node-pre-gyp" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "optional": true, - "peer": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "optional": true, - "peer": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "optional": true, - "peer": true, - "dependencies": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "optional": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/@mapbox/node-pre-gyp/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "optional": true, - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "optional": true, - "peer": true, - "dependencies": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - } - }, - "node_modules/@npmcli/fs/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "optional": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "optional": true, - "peer": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/move-file/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@sinclair/typebox": { - "version": "0.24.20", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.20.tgz", - "integrity": "sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ==", - "dev": true - }, - "node_modules/@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "dependencies": { - "type-detect": "4.0.8" - } - }, - "node_modules/@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "dependencies": { - "@sinonjs/commons": "^1.7.0" - } - }, - "node_modules/@sqltools/formatter": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz", - "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "devOptional": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "devOptional": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "devOptional": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "devOptional": true - }, - "node_modules/@types/amqplib": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz", - "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==", - "dev": true, - "dependencies": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "node_modules/@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "node_modules/@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "node_modules/@types/babel__traverse": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", - "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.3.0" - } - }, - "node_modules/@types/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "node_modules/@types/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.24", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jsonwebtoken": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", - "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "node_modules/@types/multer": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz", - "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/node": { - "version": "18.0.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz", - "integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==" - }, - "node_modules/@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", - "dependencies": { - "@types/node": "*", - "form-data": "^3.0.0" - } - }, - "node_modules/@types/node-fetch/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@types/prettier": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", - "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", - "dev": true - }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "dependencies": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/yargs": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", - "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true, - "peer": true - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/agent-base/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agent-base/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "optional": true, - "peer": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/agentkeepalive/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "optional": true, - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/agentkeepalive/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true, - "peer": true - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "optional": true, - "peer": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/amqplib": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.10.0.tgz", - "integrity": "sha512-UueEnRGY6upiSvGsSYM22Woa1SeSukqYtqgYW4Gj8gHvbf5BRhhYRqf3kQ8aSUYYffTOZi6SeOVW2eOXt0hpPA==", - "dependencies": { - "bitsyntax": "~0.1.0", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "url-parse": "~1.5.10" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/app-root-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true, - "peer": true - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "peer": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true, - "peer": true - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "peer": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/are-we-there-yet/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true, - "peer": true - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "node_modules/babel-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", - "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", - "dev": true, - "dependencies": { - "@jest/transform": "^28.1.3", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.8.0" - } - }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-jest-hoist": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", - "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", - "dev": true, - "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/babel-preset-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", - "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", - "dev": true, - "dependencies": { - "babel-plugin-jest-hoist": "^28.1.3", - "babel-preset-current-node-syntax": "^1.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/better-sqlite3": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.3.tgz", - "integrity": "sha512-07bKjClZg/f4KMVRkzWtoIvazVPcF1gsvVKVIXlxwleC2DxuIhnra3KCMlUT1rFeRYXXckot2a46UciF2d9KLw==", - "hasInstallScript": true, - "optional": true, - "peer": true, - "dependencies": { - "bindings": "^1.5.0", - "prebuild-install": "^6.0.1", - "tar": "^6.1.0" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "peer": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bitsyntax": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz", - "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==", - "dependencies": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/bitsyntax/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "optional": true, - "peer": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/bl/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/browserslist": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz", - "integrity": "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001366", - "electron-to-chromium": "^1.4.188", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.4" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "dependencies": { - "node-int64": "^0.4.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "peer": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-more-ints": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz", - "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" - }, - "node_modules/buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dependencies": { - "streamsearch": "^1.1.0" - }, - "engines": { - "node": ">=10.16.0" - } - }, - "node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "optional": true, - "peer": true, - "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/cacache/node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/cacache/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001367", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz", - "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - } - ] - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true, - "peer": true - }, - "node_modules/ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", - "dev": true - }, - "node_modules/cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "dependencies": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "bin": { - "highlight": "bin/highlight" - }, - "engines": { - "node": ">=8.0.0", - "npm": ">=5.0.0" - } - }, - "node_modules/cli-highlight/node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true, - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "optional": true, - "peer": true, - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true, - "peer": true - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/convert-source-map/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==", - "engines": { - "node": ">=0.11" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" - } - }, - "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "optional": true, - "peer": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/degenerator": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.1.tgz", - "integrity": "sha512-LFsIFEeLPlKvAKXu7j3ssIG6RT0TbI7/GhsqrI0DnHASEQjXQ0LUSYcjJteGgRGmZbl1TnMSxpNQIAiJ7Du5TQ==", - "dependencies": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/degenerator/node_modules/escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=4.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/degenerator/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true, - "peer": true - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true, - "peer": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "devOptional": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/dotenv": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", - "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "node_modules/electron-to-chromium": { - "version": "1.4.192", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.192.tgz", - "integrity": "sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw==", - "dev": true - }, - "node_modules/emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "peer": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "peer": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "optional": true, - "peer": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "optional": true, - "peer": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "optional": true, - "peer": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "dev": true, - "dependencies": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express-async-errors": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/express-async-errors/-/express-async-errors-3.1.1.tgz", - "integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==", - "peerDependencies": { - "express": "^4.16.2" - } - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "node_modules/fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "dependencies": { - "bser": "2.1.1" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true, - "peer": true - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "optional": true, - "peer": true - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "dependencies": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "peer": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", - "dependencies": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/get-uri/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/get-uri/node_modules/file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/get-uri/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/get-uri/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "optional": true, - "peer": true - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true, - "peer": true - }, - "node_modules/helmet": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", - "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", - "engines": { - "node": "*" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "optional": true, - "peer": true - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/https-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "optional": true, - "peer": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "devOptional": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "optional": true, - "peer": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "optional": true, - "peer": true - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "peer": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "optional": true, - "peer": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "devOptional": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "dev": true, - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", - "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.3", - "@jest/types": "^28.1.3", - "import-local": "^3.0.2", - "jest-cli": "^28.1.3" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-changed-files": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", - "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", - "dev": true, - "dependencies": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-circus": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", - "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "p-limit": "^3.1.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-cli": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", - "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", - "dev": true, - "dependencies": { - "@jest/core": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } - } - }, - "node_modules/jest-cli/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-cli/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-config": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", - "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.3", - "@jest/types": "^28.1.3", - "babel-jest": "^28.1.3", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.3", - "jest-environment-node": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } - } - }, - "node_modules/jest-config/node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-docblock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", - "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", - "dev": true, - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-each": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", - "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.3", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-environment-node": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", - "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-haste-map": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", - "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" - } - }, - "node_modules/jest-leak-detector": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", - "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", - "dev": true, - "dependencies": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-mock": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", - "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", - "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", - "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-resolve-dependencies": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", - "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", - "dev": true, - "dependencies": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runner": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", - "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", - "dev": true, - "dependencies": { - "@jest/console": "^28.1.3", - "@jest/environment": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "graceful-fs": "^4.2.9", - "jest-docblock": "^28.1.1", - "jest-environment-node": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-leak-detector": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-resolve": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-util": "^28.1.3", - "jest-watcher": "^28.1.3", - "jest-worker": "^28.1.3", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-runtime": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", - "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", - "dev": true, - "dependencies": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/globals": "^28.1.3", - "@jest/source-map": "^28.1.2", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", - "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", - "dev": true, - "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", - "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", - "dev": true, - "dependencies": { - "@jest/types": "^28.1.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "leven": "^3.1.0", - "pretty-format": "^28.1.3" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "dev": true, - "dependencies": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/jsonwebtoken/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/jsonwebtoken/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/lambert-server": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/lambert-server/-/lambert-server-1.2.12.tgz", - "integrity": "sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw==", - "dependencies": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "devOptional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "devOptional": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "devOptional": true - }, - "node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "optional": true, - "peer": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/make-fetch-happen/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "optional": true, - "peer": true, - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/make-fetch-happen/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true, - "peer": true - }, - "node_modules/make-fetch-happen/node_modules/socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "optional": true, - "peer": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "dependencies": { - "tmpl": "1.0.5" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "dependencies": { - "mime-db": "1.49.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "node_modules/minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "optional": true, - "peer": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/missing-native-js-functions": { - "version": "1.2.18", - "resolved": "https://registry.npmjs.org/missing-native-js-functions/-/missing-native-js-functions-1.2.18.tgz", - "integrity": "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg==" - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "optional": true, - "peer": true - }, - "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "node_modules/multer": { - "version": "1.4.5-lts.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", - "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", - "dependencies": { - "append-field": "^1.0.0", - "busboy": "^1.0.0", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "dependencies": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "optional": true, - "peer": true - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "optional": true, - "peer": true, - "dependencies": { - "semver": "^5.4.1" - } - }, - "node_modules/node-abi/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "peer": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true, - "peer": true - }, - "node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "optional": true, - "peer": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", - "optional": true, - "peer": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "optional": true, - "peer": true, - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "optional": true, - "peer": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "optional": true, - "peer": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/node-gyp/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/node-gyp/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "optional": true, - "peer": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/node-gyp/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "optional": true, - "peer": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "peer": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "peer": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "optional": true, - "peer": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pac-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", - "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/pac-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/pac-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/pac-resolver": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.0.tgz", - "integrity": "sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA==", - "dependencies": { - "degenerator": "^3.0.1", - "ip": "^1.1.5", - "netmask": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==", - "optional": true, - "peer": true - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "dependencies": { - "parse5": "^6.0.1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "node_modules/pg": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", - "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", - "optional": true, - "peer": true, - "dependencies": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.5.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - }, - "engines": { - "node": ">= 8.0.0" - }, - "peerDependencies": { - "pg-native": ">=2.0.0" - }, - "peerDependenciesMeta": { - "pg-native": { - "optional": true - } - } - }, - "node_modules/pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==", - "optional": true, - "peer": true - }, - "node_modules/pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "optional": true, - "peer": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/pg-pool": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz", - "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==", - "optional": true, - "peer": true, - "peerDependencies": { - "pg": ">=8.0" - } - }, - "node_modules/pg-protocol": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==", - "optional": true, - "peer": true - }, - "node_modules/pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "optional": true, - "peer": true, - "dependencies": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/pgpass": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz", - "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==", - "optional": true, - "peer": true, - "dependencies": { - "split2": "^3.1.1" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "optional": true, - "peer": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "optional": true, - "peer": true, - "dependencies": { - "xtend": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/prebuild-install": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", - "optional": true, - "peer": true, - "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "dependencies": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "optional": true, - "peer": true - }, - "node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "optional": true, - "peer": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", - "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", - "dependencies": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/proxy-agent/node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/proxy-agent/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "optional": true, - "peer": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "optional": true, - "peer": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "optional": true, - "peer": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "devOptional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "devOptional": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "optional": true, - "peer": true - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "devOptional": true - }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "optional": true, - "peer": true - }, - "node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "optional": true, - "peer": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "dependencies": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/socks-proxy-agent/node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/socks-proxy-agent/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "optional": true, - "peer": true, - "dependencies": { - "readable-stream": "^3.0.0" - } - }, - "node_modules/split2/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/split2/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/sqlite3": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.8.tgz", - "integrity": "sha512-f2ACsbSyb2D1qFFcqIXPfFscLtPVOWJr5GmUzYxf4W+0qelu5MWrR+FAQE1d5IUArEltBrzSDxDORG8P/IkqyQ==", - "hasInstallScript": true, - "optional": true, - "peer": true, - "dependencies": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^4.2.0", - "tar": "^6.1.11" - }, - "optionalDependencies": { - "node-gyp": "8.x" - }, - "peerDependencies": { - "node-gyp": "8.x" - }, - "peerDependenciesMeta": { - "node-gyp": { - "optional": true - } - } - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "optional": true, - "peer": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "peer": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "peer": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "optional": true, - "peer": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "optional": true, - "peer": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "optional": true, - "peer": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tar-stream/node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/tar/node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true, - "peer": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "peer": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "dependencies": { - "any-promise": "^1.0.0" - } - }, - "node_modules/thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "dependencies": { - "thenify": ">= 3.1.0 < 4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "devOptional": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "devOptional": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "optional": true, - "peer": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dependencies": { - "prelude-ls": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "node_modules/typeorm": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", - "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", - "dependencies": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - }, - "bin": { - "typeorm": "cli.js", - "typeorm-ts-node-commonjs": "cli-ts-node-commonjs.js", - "typeorm-ts-node-esm": "cli-ts-node-esm.js" - }, - "engines": { - "node": ">= 12.9.0" - }, - "funding": { - "url": "https://opencollective.com/typeorm" - }, - "peerDependencies": { - "@google-cloud/spanner": "^5.18.0", - "@sap/hana-client": "^2.12.25", - "better-sqlite3": "^7.1.2", - "hdb-pool": "^0.1.6", - "ioredis": "^5.0.4", - "mongodb": "^3.6.0", - "mssql": "^7.3.0", - "mysql2": "^2.2.5", - "oracledb": "^5.1.0", - "pg": "^8.5.1", - "pg-native": "^3.0.0", - "pg-query-stream": "^4.0.0", - "redis": "^3.1.1 || ^4.0.0", - "sql.js": "^1.4.0", - "sqlite3": "^5.0.3", - "ts-node": "^10.7.0", - "typeorm-aurora-data-api-driver": "^2.0.0" - }, - "peerDependenciesMeta": { - "@google-cloud/spanner": { - "optional": true - }, - "@sap/hana-client": { - "optional": true - }, - "better-sqlite3": { - "optional": true - }, - "hdb-pool": { - "optional": true - }, - "ioredis": { - "optional": true - }, - "mongodb": { - "optional": true - }, - "mssql": { - "optional": true - }, - "mysql2": { - "optional": true - }, - "oracledb": { - "optional": true - }, - "pg": { - "optional": true - }, - "pg-native": { - "optional": true - }, - "pg-query-stream": { - "optional": true - }, - "redis": { - "optional": true - }, - "sql.js": { - "optional": true - }, - "sqlite3": { - "optional": true - }, - "ts-node": { - "optional": true - }, - "typeorm-aurora-data-api-driver": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/typeorm/node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/typeorm/node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/typeorm/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/typeorm/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/typeorm/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/typeorm/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/typeorm/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/typeorm/node_modules/yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/typeorm/node_modules/yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "engines": { - "node": ">=12" - } - }, - "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "optional": true, - "peer": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "optional": true, - "peer": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "browserslist-lint": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "devOptional": true - }, - "node_modules/v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "engines": { - "node": ">=10.12.0" - } - }, - "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vm2": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.7.tgz", - "integrity": "sha512-g/GZ7V0Mlmch3eDVOATvAXr1GsJNg6kQ5PjvYy3HbJMCRn5slNbo/u73Uy7r5yUej1cRa3ZjtoVwcWSQuQ/fow==", - "dependencies": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "bin": { - "vm2": "bin/vm2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/vm2/node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "dependencies": { - "makeerror": "1.0.12" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "devOptional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "optional": true, - "peer": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" - } - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", - "engines": { - "node": "*" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "devOptional": true - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "devOptional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", - "dev": true - }, - "@babel/core": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", - "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.9", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.9", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz", - "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==", - "dev": true, - "requires": { - "@babel/types": "^7.18.9", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", - "semver": "^6.3.0" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", - "dev": true - }, - "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", - "dev": true, - "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - } - } - }, - "@babel/parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", - "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", - "dev": true - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-import-meta": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", - "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-typescript": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz", - "integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" - } - }, - "@babel/traverse": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz", - "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.9", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.9", - "@babel/types": "^7.18.9", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz", - "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "to-fast-properties": "^2.0.0" - } - }, - "@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", - "dev": true - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "devOptional": true, - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@gar/promisify": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "optional": true, - "peer": true - }, - "@istanbuljs/load-nyc-config": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", - "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", - "dev": true, - "requires": { - "camelcase": "^5.3.1", - "find-up": "^4.1.0", - "get-package-type": "^0.1.0", - "js-yaml": "^3.13.1", - "resolve-from": "^5.0.0" - } - }, - "@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", - "dev": true - }, - "@jest/console": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", - "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0" - } - }, - "@jest/core": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz", - "integrity": "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/reporters": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^28.1.3", - "jest-config": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-resolve-dependencies": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "jest-watcher": "^28.1.3", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "rimraf": "^3.0.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "@jest/environment": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz", - "integrity": "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==", - "dev": true, - "requires": { - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3" - } - }, - "@jest/expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==", - "dev": true, - "requires": { - "expect": "^28.1.3", - "jest-snapshot": "^28.1.3" - } - }, - "@jest/expect-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz", - "integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==", - "dev": true, - "requires": { - "jest-get-type": "^28.0.2" - } - }, - "@jest/fake-timers": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz", - "integrity": "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@sinonjs/fake-timers": "^9.1.2", - "@types/node": "*", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "@jest/globals": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz", - "integrity": "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/types": "^28.1.3" - } - }, - "@jest/reporters": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz", - "integrity": "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==", - "dev": true, - "requires": { - "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-instrument": "^5.1.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", - "istanbul-reports": "^3.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", - "terminal-link": "^2.0.0", - "v8-to-istanbul": "^9.0.1" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@jest/schemas": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", - "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.24.1" - } - }, - "@jest/source-map": { - "version": "28.1.2", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz", - "integrity": "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.13", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@jest/test-result": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", - "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" - } - }, - "@jest/test-sequencer": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz", - "integrity": "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==", - "dev": true, - "requires": { - "@jest/test-result": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "slash": "^3.0.0" - } - }, - "@jest/transform": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz", - "integrity": "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/types": "^28.1.3", - "@jridgewell/trace-mapping": "^0.3.13", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", - "convert-source-map": "^1.4.0", - "fast-json-stable-stringify": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", - "slash": "^3.0.0", - "write-file-atomic": "^4.0.1" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "@jest/types": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", - "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - } - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "devOptional": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "devOptional": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "devOptional": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@mapbox/node-pre-gyp": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz", - "integrity": "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==", - "optional": true, - "peer": true, - "requires": { - "detect-libc": "^2.0.0", - "https-proxy-agent": "^5.0.0", - "make-dir": "^3.1.0", - "node-fetch": "^2.6.7", - "nopt": "^5.0.0", - "npmlog": "^5.0.1", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.11" - }, - "dependencies": { - "are-we-there-yet": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", - "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", - "optional": true, - "peer": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", - "optional": true, - "peer": true - }, - "gauge": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", - "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", - "optional": true, - "peer": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.2", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.1", - "object-assign": "^4.1.1", - "signal-exit": "^3.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.2" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "optional": true, - "peer": true - }, - "npmlog": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", - "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", - "optional": true, - "peer": true, - "requires": { - "are-we-there-yet": "^2.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^3.0.0", - "set-blocking": "^2.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "optional": true, - "peer": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "optional": true, - "peer": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", - "optional": true, - "peer": true, - "requires": { - "@gar/promisify": "^1.0.1", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "optional": true, - "peer": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "optional": true, - "peer": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "dependencies": { - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "peer": true - } - } - }, - "@sinclair/typebox": { - "version": "0.24.20", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.20.tgz", - "integrity": "sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ==", - "dev": true - }, - "@sinonjs/commons": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", - "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", - "dev": true, - "requires": { - "type-detect": "4.0.8" - } - }, - "@sinonjs/fake-timers": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz", - "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1.7.0" - } - }, - "@sqltools/formatter": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz", - "integrity": "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" - }, - "@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" - }, - "@tsconfig/node10": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz", - "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==", - "devOptional": true - }, - "@tsconfig/node12": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz", - "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==", - "devOptional": true - }, - "@tsconfig/node14": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz", - "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==", - "devOptional": true - }, - "@tsconfig/node16": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz", - "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==", - "devOptional": true - }, - "@types/amqplib": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz", - "integrity": "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==", - "dev": true, - "requires": { - "@types/bluebird": "*", - "@types/node": "*" - } - }, - "@types/babel__core": { - "version": "7.1.19", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz", - "integrity": "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" - } - }, - "@types/babel__generator": { - "version": "7.6.4", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", - "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", - "dev": true, - "requires": { - "@babel/types": "^7.0.0" - } - }, - "@types/babel__template": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz", - "integrity": "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==", - "dev": true, - "requires": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" - } - }, - "@types/babel__traverse": { - "version": "7.17.1", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz", - "integrity": "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==", - "dev": true, - "requires": { - "@babel/types": "^7.3.0" - } - }, - "@types/bluebird": { - "version": "3.5.36", - "resolved": "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz", - "integrity": "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz", - "integrity": "sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.24", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz", - "integrity": "sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/graceful-fs": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", - "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jsonwebtoken": { - "version": "8.5.8", - "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz", - "integrity": "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", - "dev": true - }, - "@types/multer": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz", - "integrity": "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/node": { - "version": "18.0.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.6.tgz", - "integrity": "sha512-/xUq6H2aQm261exT6iZTMifUySEt4GR5KX8eYyY+C4MSNPqSh9oNIP7tz2GLKTlFaiBbgZNxffoR3CVRG+cljw==" - }, - "@types/node-fetch": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz", - "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==", - "requires": { - "@types/node": "*", - "form-data": "^3.0.0" - }, - "dependencies": { - "form-data": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "@types/prettier": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz", - "integrity": "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==", - "dev": true - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", - "dev": true, - "requires": { - "@types/mime": "^1", - "@types/node": "*" - } - }, - "@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "@types/yargs": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz", - "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "optional": true, - "peer": true - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==" - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "agentkeepalive": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", - "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", - "optional": true, - "peer": true, - "requires": { - "debug": "^4.1.0", - "depd": "^1.1.2", - "humanize-ms": "^1.2.1" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "optional": true, - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true, - "peer": true - } - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "optional": true, - "peer": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "amqplib": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/amqplib/-/amqplib-0.10.0.tgz", - "integrity": "sha512-UueEnRGY6upiSvGsSYM22Woa1SeSukqYtqgYW4Gj8gHvbf5BRhhYRqf3kQ8aSUYYffTOZi6SeOVW2eOXt0hpPA==", - "requires": { - "bitsyntax": "~0.1.0", - "buffer-more-ints": "~1.0.0", - "readable-stream": "1.x >=1.1.9", - "url-parse": "~1.5.10" - } - }, - "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "dev": true, - "requires": { - "type-fest": "^0.21.3" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "any-promise": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "app-root-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", - "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==" - }, - "append-field": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", - "integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=" - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "optional": true, - "peer": true - }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "optional": true, - "peer": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "optional": true, - "peer": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "optional": true, - "peer": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "optional": true, - "peer": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "devOptional": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "requires": { - "tslib": "^2.0.1" - } - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" - }, - "babel-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz", - "integrity": "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==", - "dev": true, - "requires": { - "@jest/transform": "^28.1.3", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^28.1.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" - } - }, - "babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - } - }, - "babel-plugin-jest-hoist": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz", - "integrity": "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==", - "dev": true, - "requires": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" - } - }, - "babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", - "dev": true, - "requires": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" - } - }, - "babel-preset-jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz", - "integrity": "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==", - "dev": true, - "requires": { - "babel-plugin-jest-hoist": "^28.1.3", - "babel-preset-current-node-syntax": "^1.0.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "better-sqlite3": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-7.4.3.tgz", - "integrity": "sha512-07bKjClZg/f4KMVRkzWtoIvazVPcF1gsvVKVIXlxwleC2DxuIhnra3KCMlUT1rFeRYXXckot2a46UciF2d9KLw==", - "optional": true, - "peer": true, - "requires": { - "bindings": "^1.5.0", - "prebuild-install": "^6.0.1", - "tar": "^6.1.0" - } - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "optional": true, - "peer": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bitsyntax": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz", - "integrity": "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==", - "requires": { - "buffer-more-ints": "~1.0.0", - "debug": "~2.6.9", - "safe-buffer": "~5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "optional": true, - "peer": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz", - "integrity": "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001366", - "electron-to-chromium": "^1.4.188", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.4" - } - }, - "bser": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", - "dev": true, - "requires": { - "node-int64": "^0.4.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "optional": true, - "peer": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-more-ints": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz", - "integrity": "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" - }, - "buffer-writer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz", - "integrity": "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==", - "optional": true, - "peer": true - }, - "busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "requires": { - "streamsearch": "^1.1.0" - } - }, - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" - }, - "cacache": { - "version": "15.3.0", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", - "optional": true, - "peer": true, - "requires": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true, - "peer": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "peer": true - } - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-lite": { - "version": "1.0.30001367", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz", - "integrity": "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "char-regex": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", - "dev": true - }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "optional": true, - "peer": true - }, - "ci-info": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", - "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", - "dev": true - }, - "cjs-module-lexer": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz", - "integrity": "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==", - "dev": true - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "optional": true, - "peer": true - }, - "cli-highlight": { - "version": "2.1.11", - "resolved": "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz", - "integrity": "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==", - "requires": { - "chalk": "^4.0.0", - "highlight.js": "^10.7.1", - "mz": "^2.4.0", - "parse5": "^5.1.1", - "parse5-htmlparser2-tree-adapter": "^6.0.0", - "yargs": "^16.0.0" - }, - "dependencies": { - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" - } - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "optional": true, - "peer": true - }, - "collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "color-support": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", - "optional": true, - "peer": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "optional": true, - "peer": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "requires": { - "safe-buffer": "5.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "devOptional": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "data-uri-to-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz", - "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" - }, - "date-fns": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz", - "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "optional": true, - "peer": true, - "requires": { - "mimic-response": "^2.0.0" - } - }, - "dedent": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", - "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==", - "dev": true - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "optional": true, - "peer": true - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "degenerator": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-3.0.1.tgz", - "integrity": "sha512-LFsIFEeLPlKvAKXu7j3ssIG6RT0TbI7/GhsqrI0DnHASEQjXQ0LUSYcjJteGgRGmZbl1TnMSxpNQIAiJ7Du5TQ==", - "requires": { - "ast-types": "^0.13.2", - "escodegen": "^1.8.1", - "esprima": "^4.0.0", - "vm2": "^3.9.3" - }, - "dependencies": { - "escodegen": { - "version": "1.14.3", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "requires": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" - } - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "optional": true, - "peer": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" - }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "optional": true, - "peer": true - }, - "detect-newline": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "devOptional": true - }, - "diff-sequences": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz", - "integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==", - "dev": true - }, - "dotenv": { - "version": "16.0.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz", - "integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" - }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" - }, - "electron-to-chromium": { - "version": "1.4.192", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.192.tgz", - "integrity": "sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw==", - "dev": true - }, - "emittery": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", - "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "optional": true, - "peer": true, - "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "optional": true, - "peer": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } - } - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "optional": true, - "peer": true, - "requires": { - "once": "^1.4.0" - } - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "optional": true, - "peer": true - }, - "err-code": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "optional": true, - "peer": true - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", - "dev": true - }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "optional": true, - "peer": true - }, - "expect": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz", - "integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==", - "dev": true, - "requires": { - "@jest/expect-utils": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - } - } - }, - "express-async-errors": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/express-async-errors/-/express-async-errors-3.1.1.tgz", - "integrity": "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==", - "requires": {} - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" - }, - "fb-watchman": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", - "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", - "dev": true, - "requires": { - "bser": "2.1.1" - } - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "optional": true, - "peer": true - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" - }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "optional": true, - "peer": true - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "ftp": { - "version": "0.3.10", - "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", - "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "optional": true, - "peer": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "peer": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "peer": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz", - "integrity": "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==", - "requires": { - "@tootallnate/once": "1", - "data-uri-to-buffer": "3", - "debug": "4", - "file-uri-to-path": "2", - "fs-extra": "^8.1.0", - "ftp": "^0.3.10" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "file-uri-to-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz", - "integrity": "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "optional": true, - "peer": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "optional": true, - "peer": true - }, - "helmet": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz", - "integrity": "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==" - }, - "highlight.js": { - "version": "10.7.3", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", - "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" - }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "optional": true, - "peer": true - }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" - } - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "requires": { - "agent-base": "6", - "debug": "4" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "optional": true, - "peer": true, - "requires": { - "ms": "^2.0.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "devOptional": true - }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "optional": true, - "peer": true - }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "optional": true, - "peer": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "optional": true, - "peer": true - }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "optional": true, - "peer": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-generator-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", - "dev": true - }, - "is-lambda": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "optional": true, - "peer": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "devOptional": true - }, - "istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true - }, - "istanbul-lib-instrument": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", - "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", - "dev": true, - "requires": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", - "dev": true, - "requires": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" - } - }, - "istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } - } - }, - "istanbul-reports": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "requires": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - } - }, - "jest": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz", - "integrity": "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==", - "dev": true, - "requires": { - "@jest/core": "^28.1.3", - "@jest/types": "^28.1.3", - "import-local": "^3.0.2", - "jest-cli": "^28.1.3" - } - }, - "jest-changed-files": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz", - "integrity": "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==", - "dev": true, - "requires": { - "execa": "^5.0.0", - "p-limit": "^3.1.0" - } - }, - "jest-circus": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz", - "integrity": "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/expect": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^0.7.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "p-limit": "^3.1.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-cli": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz", - "integrity": "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==", - "dev": true, - "requires": { - "@jest/core": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "import-local": "^3.0.2", - "jest-config": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "prompts": "^2.0.1", - "yargs": "^17.3.1" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", - "dev": true - } - } - }, - "jest-config": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz", - "integrity": "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^28.1.3", - "@jest/types": "^28.1.3", - "babel-jest": "^28.1.3", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^28.1.3", - "jest-environment-node": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-runner": "^28.1.3", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - } - } - }, - "jest-diff": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz", - "integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^28.1.1", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-docblock": { - "version": "28.1.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz", - "integrity": "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==", - "dev": true, - "requires": { - "detect-newline": "^3.0.0" - } - }, - "jest-each": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz", - "integrity": "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "jest-util": "^28.1.3", - "pretty-format": "^28.1.3" - } - }, - "jest-environment-node": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz", - "integrity": "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "jest-mock": "^28.1.3", - "jest-util": "^28.1.3" - } - }, - "jest-get-type": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz", - "integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==", - "dev": true - }, - "jest-haste-map": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz", - "integrity": "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "fsevents": "^2.3.2", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^28.0.2", - "jest-util": "^28.1.3", - "jest-worker": "^28.1.3", - "micromatch": "^4.0.4", - "walker": "^1.0.8" - } - }, - "jest-leak-detector": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz", - "integrity": "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==", - "dev": true, - "requires": { - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-matcher-utils": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz", - "integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "pretty-format": "^28.1.3" - } - }, - "jest-message-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", - "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^28.1.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^28.1.3", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" - } - }, - "jest-mock": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz", - "integrity": "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*" - } - }, - "jest-pnp-resolver": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", - "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", - "dev": true, - "requires": {} - }, - "jest-regex-util": { - "version": "28.0.2", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", - "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", - "dev": true - }, - "jest-resolve": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz", - "integrity": "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==", - "dev": true, - "requires": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^28.1.3", - "jest-validate": "^28.1.3", - "resolve": "^1.20.0", - "resolve.exports": "^1.1.0", - "slash": "^3.0.0" - } - }, - "jest-resolve-dependencies": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz", - "integrity": "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==", - "dev": true, - "requires": { - "jest-regex-util": "^28.0.2", - "jest-snapshot": "^28.1.3" - } - }, - "jest-runner": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz", - "integrity": "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==", - "dev": true, - "requires": { - "@jest/console": "^28.1.3", - "@jest/environment": "^28.1.3", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "graceful-fs": "^4.2.9", - "jest-docblock": "^28.1.1", - "jest-environment-node": "^28.1.3", - "jest-haste-map": "^28.1.3", - "jest-leak-detector": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-resolve": "^28.1.3", - "jest-runtime": "^28.1.3", - "jest-util": "^28.1.3", - "jest-watcher": "^28.1.3", - "jest-worker": "^28.1.3", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" - } - }, - "jest-runtime": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz", - "integrity": "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==", - "dev": true, - "requires": { - "@jest/environment": "^28.1.3", - "@jest/fake-timers": "^28.1.3", - "@jest/globals": "^28.1.3", - "@jest/source-map": "^28.1.2", - "@jest/test-result": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "execa": "^5.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-mock": "^28.1.3", - "jest-regex-util": "^28.0.2", - "jest-resolve": "^28.1.3", - "jest-snapshot": "^28.1.3", - "jest-util": "^28.1.3", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" - } - }, - "jest-snapshot": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz", - "integrity": "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==", - "dev": true, - "requires": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/traverse": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^28.1.3", - "@jest/transform": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/babel__traverse": "^7.0.6", - "@types/prettier": "^2.1.5", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^28.1.3", - "graceful-fs": "^4.2.9", - "jest-diff": "^28.1.3", - "jest-get-type": "^28.0.2", - "jest-haste-map": "^28.1.3", - "jest-matcher-utils": "^28.1.3", - "jest-message-util": "^28.1.3", - "jest-util": "^28.1.3", - "natural-compare": "^1.4.0", - "pretty-format": "^28.1.3", - "semver": "^7.3.5" - }, - "dependencies": { - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "jest-util": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", - "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - } - }, - "jest-validate": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz", - "integrity": "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==", - "dev": true, - "requires": { - "@jest/types": "^28.1.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^28.0.2", - "leven": "^3.1.0", - "pretty-format": "^28.1.3" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "dev": true - } - } - }, - "jest-watcher": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", - "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", - "dev": true, - "requires": { - "@jest/test-result": "^28.1.3", - "@jest/types": "^28.1.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.10.2", - "jest-util": "^28.1.3", - "string-length": "^4.0.1" - } - }, - "jest-worker": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", - "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - } - } - }, - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true - }, - "lambert-server": { - "version": "1.2.12", - "resolved": "https://registry.npmjs.org/lambert-server/-/lambert-server-1.2.12.tgz", - "integrity": "sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw==", - "requires": { - "body-parser": "^1.19.0", - "chalk": "^4.1.1", - "express": "^4.17.1", - "express-async-errors": "^3.1.1", - "helmet": "^4.4.1", - "missing-native-js-functions": "^1.2.11" - } - }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "levn": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", - "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=" - }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=" - }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=" - }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=" - }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" - }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" - }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "devOptional": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "devOptional": true, - "requires": { - "semver": "^6.0.0" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "devOptional": true - }, - "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", - "optional": true, - "peer": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "optional": true, - "peer": true, - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "optional": true, - "peer": true - }, - "socks-proxy-agent": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", - "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", - "optional": true, - "peer": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - } - } - }, - "makeerror": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", - "dev": true, - "requires": { - "tmpl": "1.0.5" - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", - "dev": true, - "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.49.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz", - "integrity": "sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA==" - }, - "mime-types": { - "version": "2.1.32", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz", - "integrity": "sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A==", - "requires": { - "mime-db": "1.49.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "optional": true, - "peer": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "minipass": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz", - "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==", - "optional": true, - "peer": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-fetch": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", - "optional": true, - "peer": true, - "requires": { - "encoding": "^0.1.12", - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-sized": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "missing-native-js-functions": { - "version": "1.2.18", - "resolved": "https://registry.npmjs.org/missing-native-js-functions/-/missing-native-js-functions-1.2.18.tgz", - "integrity": "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg==" - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "requires": { - "minimist": "^1.2.5" - } - }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "optional": true, - "peer": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, - "multer": { - "version": "1.4.5-lts.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", - "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", - "requires": { - "append-field": "^1.0.0", - "busboy": "^1.0.0", - "concat-stream": "^1.5.2", - "mkdirp": "^0.5.4", - "object-assign": "^4.1.1", - "type-is": "^1.6.4", - "xtend": "^4.0.0" - } - }, - "mz": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", - "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", - "requires": { - "any-promise": "^1.0.0", - "object-assign": "^4.0.1", - "thenify-all": "^1.0.0" - } - }, - "napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "optional": true, - "peer": true - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" - }, - "netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" - }, - "node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "optional": true, - "peer": true, - "requires": { - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "optional": true, - "peer": true - } - } - }, - "node-addon-api": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz", - "integrity": "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==", - "optional": true, - "peer": true - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", - "optional": true, - "peer": true, - "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "dependencies": { - "are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", - "optional": true, - "peer": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "optional": true, - "peer": true, - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "optional": true, - "peer": true - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "optional": true, - "peer": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "optional": true, - "peer": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "optional": true, - "peer": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - } - } - }, - "node-int64": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "optional": true, - "peer": true, - "requires": { - "abbrev": "1" - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "optional": true, - "peer": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "optional": true, - "peer": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "optionator": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - }, - "dependencies": { - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - } - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "optional": true, - "peer": true, - "requires": { - "aggregate-error": "^3.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "pac-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz", - "integrity": "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==", - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4", - "get-uri": "3", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "5", - "pac-resolver": "^5.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "5" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "pac-resolver": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.0.tgz", - "integrity": "sha512-H+/A6KitiHNNW+bxBKREk2MCGSxljfqRX76NjummWEYIat7ldVXRU3dhRIE3iXZ0nvGBk6smv3nntxKkzRL8NA==", - "requires": { - "degenerator": "^3.0.1", - "ip": "^1.1.5", - "netmask": "^2.0.1" - } - }, - "packet-reader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz", - "integrity": "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==", - "optional": true, - "peer": true - }, - "parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - } - }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" - }, - "parse5-htmlparser2-tree-adapter": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", - "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", - "requires": { - "parse5": "^6.0.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "pg": { - "version": "8.7.3", - "resolved": "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz", - "integrity": "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==", - "optional": true, - "peer": true, - "requires": { - "buffer-writer": "2.0.0", - "packet-reader": "1.0.0", - "pg-connection-string": "^2.5.0", - "pg-pool": "^3.5.1", - "pg-protocol": "^1.5.0", - "pg-types": "^2.1.0", - "pgpass": "1.x" - } - }, - "pg-connection-string": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz", - "integrity": "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==", - "optional": true, - "peer": true - }, - "pg-int8": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz", - "integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==", - "optional": true, - "peer": true - }, - "pg-pool": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz", - "integrity": "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==", - "optional": true, - "peer": true, - "requires": {} - }, - "pg-protocol": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz", - "integrity": "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==", - "optional": true, - "peer": true - }, - "pg-types": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz", - "integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==", - "optional": true, - "peer": true, - "requires": { - "pg-int8": "1.0.1", - "postgres-array": "~2.0.0", - "postgres-bytea": "~1.0.0", - "postgres-date": "~1.0.4", - "postgres-interval": "^1.1.0" - } - }, - "pgpass": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz", - "integrity": "sha512-YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w==", - "optional": true, - "peer": true, - "requires": { - "split2": "^3.1.1" - } - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", - "dev": true - }, - "pirates": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz", - "integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "postgres-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz", - "integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==", - "optional": true, - "peer": true - }, - "postgres-bytea": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz", - "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=", - "optional": true, - "peer": true - }, - "postgres-date": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz", - "integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==", - "optional": true, - "peer": true - }, - "postgres-interval": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz", - "integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==", - "optional": true, - "peer": true, - "requires": { - "xtend": "^4.0.0" - } - }, - "prebuild-install": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", - "optional": true, - "peer": true, - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - } - }, - "prelude-ls": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" - }, - "pretty-format": { - "version": "28.1.3", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", - "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", - "dev": true, - "requires": { - "@jest/schemas": "^28.1.3", - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true - } - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "optional": true, - "peer": true - }, - "promise-retry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "optional": true, - "peer": true, - "requires": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - } - }, - "prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "requires": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz", - "integrity": "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==", - "requires": { - "agent-base": "^6.0.0", - "debug": "4", - "http-proxy-agent": "^4.0.0", - "https-proxy-agent": "^5.0.0", - "lru-cache": "^5.1.1", - "pac-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^5.0.0" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "requires": { - "yallist": "^3.0.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" - } - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "optional": true, - "peer": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" - }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "optional": true, - "peer": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - } - }, - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - }, - "resolve.exports": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz", - "integrity": "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "optional": true, - "peer": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "devOptional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "devOptional": true - }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" - } - } - }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } - }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "optional": true, - "peer": true - }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "devOptional": true - }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "optional": true, - "peer": true - }, - "simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "optional": true, - "peer": true, - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true - }, - "smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" - }, - "socks": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", - "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", - "requires": { - "ip": "^1.1.5", - "smart-buffer": "^4.2.0" - } - }, - "socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "requires": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "dependencies": { - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "devOptional": true - }, - "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "split2": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", - "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", - "optional": true, - "peer": true, - "requires": { - "readable-stream": "^3.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "sqlite3": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.8.tgz", - "integrity": "sha512-f2ACsbSyb2D1qFFcqIXPfFscLtPVOWJr5GmUzYxf4W+0qelu5MWrR+FAQE1d5IUArEltBrzSDxDORG8P/IkqyQ==", - "optional": true, - "peer": true, - "requires": { - "@mapbox/node-pre-gyp": "^1.0.0", - "node-addon-api": "^4.2.0", - "node-gyp": "8.x", - "tar": "^6.1.11" - } - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "optional": true, - "peer": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "stack-utils": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz", - "integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0" - } - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" - }, - "streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "string-length": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "requires": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - } - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "optional": true, - "peer": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "optional": true, - "peer": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "optional": true, - "peer": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "optional": true, - "peer": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-hyperlinks": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", - "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", - "dev": true, - "requires": { - "has-flag": "^4.0.0", - "supports-color": "^7.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "tar": { - "version": "6.1.11", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", - "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", - "optional": true, - "peer": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "dependencies": { - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "optional": true, - "peer": true - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "optional": true, - "peer": true - } - } - }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "optional": true, - "peer": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "optional": true, - "peer": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "optional": true, - "peer": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" - } - }, - "test-exclude": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "requires": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - } - }, - "thenify": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", - "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", - "requires": { - "any-promise": "^1.0.0" - } - }, - "thenify-all": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", - "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", - "requires": { - "thenify": ">= 3.1.0 < 4" - } - }, - "tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "devOptional": true, - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "dependencies": { - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "devOptional": true - } - } - }, - "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "optional": true, - "peer": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "type-check": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true - }, - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" - }, - "typeorm": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz", - "integrity": "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==", - "requires": { - "@sqltools/formatter": "^1.2.2", - "app-root-path": "^3.0.0", - "buffer": "^6.0.3", - "chalk": "^4.1.0", - "cli-highlight": "^2.1.11", - "date-fns": "^2.28.0", - "debug": "^4.3.3", - "dotenv": "^16.0.0", - "glob": "^7.2.0", - "js-yaml": "^4.1.0", - "mkdirp": "^1.0.4", - "reflect-metadata": "^0.1.13", - "sha.js": "^2.4.11", - "tslib": "^2.3.1", - "uuid": "^8.3.2", - "xml2js": "^0.4.23", - "yargs": "^17.3.1" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "yargs": { - "version": "17.5.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", - "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.0.0" - } - }, - "yargs-parser": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", - "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" - } - } - }, - "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==" - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "optional": true, - "peer": true, - "requires": { - "unique-slug": "^2.0.0" - } - }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "optional": true, - "peer": true, - "requires": { - "imurmurhash": "^0.1.4" - } - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" - }, - "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "devOptional": true - }, - "v8-to-istanbul": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz", - "integrity": "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.12", - "@types/istanbul-lib-coverage": "^2.0.1", - "convert-source-map": "^1.6.0" - }, - "dependencies": { - "@jridgewell/trace-mapping": { - "version": "0.3.14", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", - "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - } - } - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "vm2": { - "version": "3.9.7", - "resolved": "https://registry.npmjs.org/vm2/-/vm2-3.9.7.tgz", - "integrity": "sha512-g/GZ7V0Mlmch3eDVOATvAXr1GsJNg6kQ5PjvYy3HbJMCRn5slNbo/u73Uy7r5yUej1cRa3ZjtoVwcWSQuQ/fow==", - "requires": { - "acorn": "^8.7.0", - "acorn-walk": "^8.2.0" - }, - "dependencies": { - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - } - } - }, - "walker": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", - "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", - "dev": true, - "requires": { - "makeerror": "1.0.12" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "devOptional": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "optional": true, - "peer": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "write-file-atomic": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz", - "integrity": "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" - } - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" - }, - "xregexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", - "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=" - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "devOptional": true - }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "dependencies": { - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - } - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "devOptional": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } - } -} diff --git a/util/package.json b/util/package.json deleted file mode 100644 index 01c3d9f2..00000000 --- a/util/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "@fosscord/util", - "version": "1.0.0", - "description": "Utility functions for the all server repositories", - "main": "dist/index.js", - "types": "src/index.ts", - "scripts": { - "start": "npm run build && node dist/", - "test": "npm run build && npx jest", - "postinstall": "npm run build", - "build": "npx tsc -p .", - "typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/fosscord/fosscord-server.git" - }, - "keywords": [ - "discord", - "fosscord", - "fosscord-server", - "discord open source", - "discord-open-source" - ], - "author": "Fosscord", - "license": "AGPL-3.0-only", - "bugs": { - "url": "https://github.com/fosscord/fosscord-server/issues" - }, - "homepage": "https://docs.fosscord.com/", - "devDependencies": { - "@types/amqplib": "^0.8.1", - "@types/jsonwebtoken": "^8.5.8", - "@types/multer": "^1.4.7", - "@types/node": "^18.0.6", - "jest": "^28.1.3", - "ts-node": "^10.2.1" - }, - "dependencies": { - "@types/node-fetch": "^2.6.2", - "amqplib": "^0.10.0", - "form-data": "^4.0.0", - "jsonwebtoken": "^8.5.1", - "lambert-server": "^1.2.12", - "missing-native-js-functions": "^1.2.18", - "multer": "^1.4.5-lts.1", - "node-fetch": "^2.6.7", - "picocolors": "^1.0.0", - "proxy-agent": "^5.0.0", - "reflect-metadata": "^0.1.13", - "typeorm": "^0.3.7", - "typescript": "^4.7.4" - }, - "jest": { - "setupFilesAfterEnv": [ - "./tests/setupJest.js" - ] - } -} diff --git a/util/scripts/benchmark.js b/util/scripts/benchmark.js deleted file mode 100644 index e7435191..00000000 --- a/util/scripts/benchmark.js +++ /dev/null @@ -1,28 +0,0 @@ -const typeorm = require("typeorm"); -const Models = require("../dist/entities"); -const { PrimaryColumn } = require("typeorm"); - -function shouldIncludeEntity(name) { - return ![Models.BaseClassWithoutId, PrimaryColumn, Models.BaseClass, Models.PrimaryGeneratedColumn] - .map((x) => x?.name) - .includes(name); -} - -async function main() { - console.log("starting"); - const db = new typeorm.DataSource({ - type: "sqlite", - database: ":memory:", - entities: Object.values(Models).filter((x) => x.constructor.name == "Function" && shouldIncludeEntity(x.name)), - synchronize: true, - }); - await db.initialize(); - console.log("Initialized database"); - - for (var i = 0; i < 100; i++) { - await Models.User.register({ username: "User" + i }); - console.log("registered user " + i); - } -} - -main(); diff --git a/util/scripts/migrate_db_engine.js b/util/scripts/migrate_db_engine.js deleted file mode 100644 index 79e9d86f..00000000 --- a/util/scripts/migrate_db_engine.js +++ /dev/null @@ -1,109 +0,0 @@ -const { config } = require("dotenv"); -config(); -const { createConnection } = require("typeorm"); -const { initDatabase } = require("../../dist/util/Database"); -require("missing-native-js-functions"); -const { - Application, - Attachment, - Ban, - Channel, - ConfigEntity, - ConnectedAccount, - Emoji, - Guild, - Invite, - Member, - Message, - ReadState, - Recipient, - Relationship, - Role, - Sticker, - Team, - TeamMember, - Template, - User, - VoiceState, - Webhook, -} = require("../../dist/entities/index"); - -async function main() { - if (!process.env.TO) throw new Error("TO database env connection string not set"); - - // manually arrange them because of foreign keys - const entities = [ - ConfigEntity, - User, - Guild, - Channel, - Invite, - Role, - Ban, - Application, - Emoji, - ConnectedAccount, - Member, - ReadState, - Recipient, - Relationship, - Sticker, - Team, - TeamMember, - Template, - VoiceState, - Webhook, - Message, - Attachment, - ]; - - const oldDB = await initDatabase(); - - const type = process.env.TO.includes("://") ? process.env.TO.split(":")[0]?.replace("+srv", "") : "sqlite"; - const isSqlite = type.includes("sqlite"); - - // @ts-ignore - const newDB = await createConnection({ - type, - url: isSqlite ? undefined : process.env.TO, - database: isSqlite ? process.env.TO : undefined, - entities, - name: "new", - synchronize: true, - }); - let i = 0; - - try { - for (const entity of entities) { - const entries = await oldDB.manager.find(entity); - - // @ts-ignore - console.log("migrating " + entries.length + " " + entity.name + " ..."); - - for (const entry of entries) { - console.log(i++); - - try { - await newDB.manager.insert(entity, entry); - } catch (error) { - try { - if (!entry.id) throw new Error("object doesn't have a unique id: " + entry); - await newDB.manager.update(entity, { id: entry.id }, entry); - } catch (error) { - console.error("couldn't migrate " + i + " " + entity.name, error); - } - } - } - - // @ts-ignore - console.log("migrated " + entries.length + " " + entity.name); - } - } catch (error) { - console.error(error.message); - } - - console.log("SUCCESS migrated all data"); - await newDB.close(); -} - -main().caught(); diff --git a/util/src/config/Config.ts b/util/src/config/Config.ts deleted file mode 100644 index b703040f..00000000 --- a/util/src/config/Config.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { ApiConfiguration, ClientConfiguration, DefaultsConfiguration, EndpointConfiguration, GeneralConfiguration, GifConfiguration, GuildConfiguration, KafkaConfiguration, LimitsConfiguration, LoginConfiguration, MetricsConfiguration, RabbitMQConfiguration, RegionConfiguration, RegisterConfiguration, SecurityConfiguration, SentryConfiguration, TemplateConfiguration } from "../config"; - -export class ConfigValue { - gateway: EndpointConfiguration = new EndpointConfiguration(); - cdn: EndpointConfiguration = new EndpointConfiguration(); - api: ApiConfiguration = new ApiConfiguration(); - general: GeneralConfiguration = new GeneralConfiguration(); - limits: LimitsConfiguration = new LimitsConfiguration(); - security: SecurityConfiguration = new SecurityConfiguration(); - login: LoginConfiguration = new LoginConfiguration(); - register: RegisterConfiguration = new RegisterConfiguration(); - regions: RegionConfiguration = new RegionConfiguration(); - guild: GuildConfiguration = new GuildConfiguration(); - gif: GifConfiguration = new GifConfiguration(); - rabbitmq: RabbitMQConfiguration = new RabbitMQConfiguration(); - kafka: KafkaConfiguration = new KafkaConfiguration(); - templates: TemplateConfiguration = new TemplateConfiguration(); - client: ClientConfiguration = new ClientConfiguration(); - metrics: MetricsConfiguration = new MetricsConfiguration(); - sentry: SentryConfiguration = new SentryConfiguration(); - defaults: DefaultsConfiguration = new DefaultsConfiguration(); -} \ No newline at end of file diff --git a/util/src/config/index.ts b/util/src/config/index.ts deleted file mode 100644 index 0a9b58ae..00000000 --- a/util/src/config/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./Config"; -export * from "./types/index"; diff --git a/util/src/config/types/ApiConfiguration.ts b/util/src/config/types/ApiConfiguration.ts deleted file mode 100644 index 16b1efba..00000000 --- a/util/src/config/types/ApiConfiguration.ts +++ /dev/null @@ -1,5 +0,0 @@ -export class ApiConfiguration { - defaultVersion: string = "9"; - activeVersions: string[] = ["6", "7", "8", "9"]; - useFosscordEnhancements: boolean = true; -} \ No newline at end of file diff --git a/util/src/config/types/ClientConfiguration.ts b/util/src/config/types/ClientConfiguration.ts deleted file mode 100644 index 1adda1e2..00000000 --- a/util/src/config/types/ClientConfiguration.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { ClientReleaseConfiguration } from "."; - -export class ClientConfiguration { - //classes - releases: ClientReleaseConfiguration = new ClientReleaseConfiguration(); - //base types - useTestClient: boolean = true; -} \ No newline at end of file diff --git a/util/src/config/types/DefaultsConfiguration.ts b/util/src/config/types/DefaultsConfiguration.ts deleted file mode 100644 index 9b02a590..00000000 --- a/util/src/config/types/DefaultsConfiguration.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { GuildDefaults, UserDefaults } from "."; - -export class DefaultsConfiguration { - guild: GuildDefaults = new GuildDefaults(); - user: UserDefaults = new UserDefaults(); -} \ No newline at end of file diff --git a/util/src/config/types/EndpointConfiguration.ts b/util/src/config/types/EndpointConfiguration.ts deleted file mode 100644 index 87baea31..00000000 --- a/util/src/config/types/EndpointConfiguration.ts +++ /dev/null @@ -1,5 +0,0 @@ -export class EndpointConfiguration { - endpointClient: string | null = null; - endpointPrivate: string | null = null; - endpointPublic: string | null = null; -} \ No newline at end of file diff --git a/util/src/config/types/GeneralConfiguration.ts b/util/src/config/types/GeneralConfiguration.ts deleted file mode 100644 index 55848b44..00000000 --- a/util/src/config/types/GeneralConfiguration.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Snowflake } from "../../util"; - -export class GeneralConfiguration { - instanceName: string = "Fosscord Instance"; - instanceDescription: string | null = "This is a Fosscord instance made in the pre-release days"; - frontPage: string | null = null; - tosPage: string | null = null; - correspondenceEmail: string | null = "noreply@localhost.local"; - correspondenceUserID: string | null = null; - image: string | null = null; - instanceId: string = Snowflake.generate(); -} \ No newline at end of file diff --git a/util/src/config/types/GifConfiguration.ts b/util/src/config/types/GifConfiguration.ts deleted file mode 100644 index 6a2d520d..00000000 --- a/util/src/config/types/GifConfiguration.ts +++ /dev/null @@ -1,5 +0,0 @@ -export class GifConfiguration { - enabled: boolean = true; - provider: "tenor" = "tenor"; // more coming soon - apiKey?: string = "LIVDSRZULELA"; -} \ No newline at end of file diff --git a/util/src/config/types/GuildConfiguration.ts b/util/src/config/types/GuildConfiguration.ts deleted file mode 100644 index 3d43b368..00000000 --- a/util/src/config/types/GuildConfiguration.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { DiscoveryConfiguration, AutoJoinConfiguration } from "."; - -export class GuildConfiguration { - discovery: DiscoveryConfiguration = new DiscoveryConfiguration(); - autoJoin: AutoJoinConfiguration = new AutoJoinConfiguration(); -} diff --git a/util/src/config/types/KafkaConfiguration.ts b/util/src/config/types/KafkaConfiguration.ts deleted file mode 100644 index 7932f49e..00000000 --- a/util/src/config/types/KafkaConfiguration.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { KafkaBroker } from "."; - -export class KafkaConfiguration { - brokers: KafkaBroker[] | null = null; -} \ No newline at end of file diff --git a/util/src/config/types/LimitConfigurations.ts b/util/src/config/types/LimitConfigurations.ts deleted file mode 100644 index bcc2e7e2..00000000 --- a/util/src/config/types/LimitConfigurations.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { ChannelLimits, GuildLimits, MessageLimits, RateLimits, UserLimits } from "."; - -export class LimitsConfiguration { - user: UserLimits = new UserLimits(); - guild: GuildLimits = new GuildLimits(); - message: MessageLimits = new MessageLimits(); - channel: ChannelLimits = new ChannelLimits(); - rate: RateLimits = new RateLimits(); -} \ No newline at end of file diff --git a/util/src/config/types/LoginConfiguration.ts b/util/src/config/types/LoginConfiguration.ts deleted file mode 100644 index 255c9451..00000000 --- a/util/src/config/types/LoginConfiguration.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class LoginConfiguration { - requireCaptcha: boolean = false; -} \ No newline at end of file diff --git a/util/src/config/types/MetricsConfiguration.ts b/util/src/config/types/MetricsConfiguration.ts deleted file mode 100644 index d7cd4937..00000000 --- a/util/src/config/types/MetricsConfiguration.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class MetricsConfiguration { - timeout: number = 30000; -} \ No newline at end of file diff --git a/util/src/config/types/RabbitMQConfiguration.ts b/util/src/config/types/RabbitMQConfiguration.ts deleted file mode 100644 index ce4a9123..00000000 --- a/util/src/config/types/RabbitMQConfiguration.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class RabbitMQConfiguration { - host: string | null = null; -} \ No newline at end of file diff --git a/util/src/config/types/RegionConfiguration.ts b/util/src/config/types/RegionConfiguration.ts deleted file mode 100644 index 09d9271c..00000000 --- a/util/src/config/types/RegionConfiguration.ts +++ /dev/null @@ -1,16 +0,0 @@ -import { Region } from "."; - -export class RegionConfiguration { - default: string = "fosscord"; - useDefaultAsOptimal: boolean = true; - available: Region[] = [ - { - id: "fosscord", - name: "Fosscord", - endpoint: "127.0.0.1:3004", - vip: false, - custom: false, - deprecated: false, - }, - ]; -} \ No newline at end of file diff --git a/util/src/config/types/RegisterConfiguration.ts b/util/src/config/types/RegisterConfiguration.ts deleted file mode 100644 index a0dc97c5..00000000 --- a/util/src/config/types/RegisterConfiguration.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { DateOfBirthConfiguration, EmailConfiguration, PasswordConfiguration } from "."; - -export class RegisterConfiguration { - //classes - email: EmailConfiguration = new EmailConfiguration(); - dateOfBirth: DateOfBirthConfiguration = new DateOfBirthConfiguration(); - password: PasswordConfiguration = new PasswordConfiguration(); - //base types - disabled: boolean = false; - requireCaptcha: boolean = true; - requireInvite: boolean = false; - guestsRequireInvite: boolean = true; - allowNewRegistration: boolean = true; - allowMultipleAccounts: boolean = true; - blockProxies: boolean = true; - incrementingDiscriminators: boolean = false; // random otherwise - defaultRights: string = "0"; -} diff --git a/util/src/config/types/SecurityConfiguration.ts b/util/src/config/types/SecurityConfiguration.ts deleted file mode 100644 index 405b86ac..00000000 --- a/util/src/config/types/SecurityConfiguration.ts +++ /dev/null @@ -1,17 +0,0 @@ -import crypto from "crypto"; -import { CaptchaConfiguration, TwoFactorConfiguration } from "."; - -export class SecurityConfiguration { - //classes - captcha: CaptchaConfiguration = new CaptchaConfiguration(); - twoFactor: TwoFactorConfiguration = new TwoFactorConfiguration(); - //base types - autoUpdate: boolean | number = true; - requestSignature: string = crypto.randomBytes(32).toString("base64"); - jwtSecret: string = crypto.randomBytes(256).toString("base64"); - // header to get the real user ip address - // X-Forwarded-For for nginx/reverse proxies - // CF-Connecting-IP for cloudflare - forwadedFor: string | null = null; - ipdataApiKey: string | null = "eca677b284b3bac29eb72f5e496aa9047f26543605efe99ff2ce35c9"; -} diff --git a/util/src/config/types/SentryConfiguration.ts b/util/src/config/types/SentryConfiguration.ts deleted file mode 100644 index 836094a1..00000000 --- a/util/src/config/types/SentryConfiguration.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { hostname } from "os"; - -export class SentryConfiguration { - enabled: boolean = false; - endpoint: string = "https://05e8e3d005f34b7d97e920ae5870a5e5@sentry.thearcanebrony.net/6"; - traceSampleRate: number = 1.0; - environment: string = hostname(); -} \ No newline at end of file diff --git a/util/src/config/types/TemplateConfiguration.ts b/util/src/config/types/TemplateConfiguration.ts deleted file mode 100644 index 4a9aa8f2..00000000 --- a/util/src/config/types/TemplateConfiguration.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class TemplateConfiguration { - enabled: boolean = true; - allowTemplateCreation: boolean = true; - allowDiscordTemplates: boolean = true; - allowRaws: boolean = true; -} \ No newline at end of file diff --git a/util/src/config/types/index.ts b/util/src/config/types/index.ts deleted file mode 100644 index 608503a0..00000000 --- a/util/src/config/types/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -export * from "./ApiConfiguration"; -export * from "./ClientConfiguration"; -export * from "./DefaultsConfiguration"; -export * from "./EndpointConfiguration"; -export * from "./GeneralConfiguration"; -export * from "./GifConfiguration"; -export * from "./GuildConfiguration"; -export * from "./KafkaConfiguration"; -export * from "./LimitConfigurations"; -export * from "./LoginConfiguration"; -export * from "./MetricsConfiguration"; -export * from "./RabbitMQConfiguration"; -export * from "./RegionConfiguration"; -export * from "./RegisterConfiguration"; -export * from "./SecurityConfiguration"; -export * from "./SentryConfiguration"; -export * from "./TemplateConfiguration"; -export * from "./subconfigurations/index"; diff --git a/util/src/config/types/subconfigurations/client/ClientReleaseConfiguration.ts b/util/src/config/types/subconfigurations/client/ClientReleaseConfiguration.ts deleted file mode 100644 index 54e7f365..00000000 --- a/util/src/config/types/subconfigurations/client/ClientReleaseConfiguration.ts +++ /dev/null @@ -1,4 +0,0 @@ -export class ClientReleaseConfiguration { - useLocalRelease: boolean = true; //TODO - upstreamVersion: string = "0.0.264"; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/client/index.ts b/util/src/config/types/subconfigurations/client/index.ts deleted file mode 100644 index 96bbb0ca..00000000 --- a/util/src/config/types/subconfigurations/client/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./ClientReleaseConfiguration"; diff --git a/util/src/config/types/subconfigurations/defaults/GuildDefaults.ts b/util/src/config/types/subconfigurations/defaults/GuildDefaults.ts deleted file mode 100644 index d6ff7697..00000000 --- a/util/src/config/types/subconfigurations/defaults/GuildDefaults.ts +++ /dev/null @@ -1,8 +0,0 @@ -export class GuildDefaults { - maxPresences: number = 250000; - maxVideoChannelUsers: number = 200; - afkTimeout: number = 300; - defaultMessageNotifications: number = 1; - explicitContentFilter: number = 0; - test: number = 123; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/defaults/UserDefaults.ts b/util/src/config/types/subconfigurations/defaults/UserDefaults.ts deleted file mode 100644 index 4481c011..00000000 --- a/util/src/config/types/subconfigurations/defaults/UserDefaults.ts +++ /dev/null @@ -1,5 +0,0 @@ -export class UserDefaults { - premium: boolean = false; - premium_type: number = 2; - verified: boolean = true; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/defaults/index.ts b/util/src/config/types/subconfigurations/defaults/index.ts deleted file mode 100644 index 50258d1c..00000000 --- a/util/src/config/types/subconfigurations/defaults/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./GuildDefaults"; -export * from "./UserDefaults"; diff --git a/util/src/config/types/subconfigurations/guild/AutoJoin.ts b/util/src/config/types/subconfigurations/guild/AutoJoin.ts deleted file mode 100644 index 47dfe5ec..00000000 --- a/util/src/config/types/subconfigurations/guild/AutoJoin.ts +++ /dev/null @@ -1,5 +0,0 @@ -export class AutoJoinConfiguration { - enabled: boolean = true; - guilds: string[] = []; - canLeave: boolean = true; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/guild/Discovery.ts b/util/src/config/types/subconfigurations/guild/Discovery.ts deleted file mode 100644 index 59d8a8ae..00000000 --- a/util/src/config/types/subconfigurations/guild/Discovery.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class DiscoveryConfiguration { - showAllGuilds: boolean = false; - useRecommendation: boolean = false; // TODO: Recommendation, privacy concern? - offset: number = 0; - limit: number = 24; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/guild/index.ts b/util/src/config/types/subconfigurations/guild/index.ts deleted file mode 100644 index e9614856..00000000 --- a/util/src/config/types/subconfigurations/guild/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./AutoJoin"; -export * from "./Discovery"; diff --git a/util/src/config/types/subconfigurations/index.ts b/util/src/config/types/subconfigurations/index.ts deleted file mode 100644 index bfbadc92..00000000 --- a/util/src/config/types/subconfigurations/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -export * from "./client/index"; -export * from "./defaults/index"; -export * from "./guild/index"; -export * from "./kafka/index"; -export * from "./limits/index"; -export * from "./region/index"; -export * from "./register/index"; -export * from "./security/index"; diff --git a/util/src/config/types/subconfigurations/kafka/KafkaBroker.ts b/util/src/config/types/subconfigurations/kafka/KafkaBroker.ts deleted file mode 100644 index 4f9a5e51..00000000 --- a/util/src/config/types/subconfigurations/kafka/KafkaBroker.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface KafkaBroker { - ip: string; - port: number; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/kafka/index.ts b/util/src/config/types/subconfigurations/kafka/index.ts deleted file mode 100644 index 2c633950..00000000 --- a/util/src/config/types/subconfigurations/kafka/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./KafkaBroker"; diff --git a/util/src/config/types/subconfigurations/limits/ChannelLimits.ts b/util/src/config/types/subconfigurations/limits/ChannelLimits.ts deleted file mode 100644 index 2f8f9485..00000000 --- a/util/src/config/types/subconfigurations/limits/ChannelLimits.ts +++ /dev/null @@ -1,5 +0,0 @@ -export class ChannelLimits { - maxPins: number = 500; - maxTopic: number = 1024; - maxWebhooks: number = 100; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/GuildLimits.ts b/util/src/config/types/subconfigurations/limits/GuildLimits.ts deleted file mode 100644 index 91ad39ae..00000000 --- a/util/src/config/types/subconfigurations/limits/GuildLimits.ts +++ /dev/null @@ -1,8 +0,0 @@ -export class GuildLimits { - maxRoles: number = 1000; - maxEmojis: number = 2000; - maxMembers: number = 25000000; - maxChannels: number = 65535; - maxChannelsInCategory: number = 65535; - hideOfflineMember: number = 3; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/MessageLimits.ts b/util/src/config/types/subconfigurations/limits/MessageLimits.ts deleted file mode 100644 index 51576b90..00000000 --- a/util/src/config/types/subconfigurations/limits/MessageLimits.ts +++ /dev/null @@ -1,8 +0,0 @@ -export class MessageLimits { - maxCharacters: number = 1048576; - maxTTSCharacters: number = 160; - maxReactions: number = 2048; - maxAttachmentSize: number = 1024 * 1024 * 1024; - maxBulkDelete: number = 1000; - maxEmbedDownloadSize: number = 1024 * 1024 * 5; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/RateLimits.ts b/util/src/config/types/subconfigurations/limits/RateLimits.ts deleted file mode 100644 index 25e7a1e0..00000000 --- a/util/src/config/types/subconfigurations/limits/RateLimits.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { RouteRateLimit, RateLimitOptions } from "."; - -export class RateLimits { - disabled: boolean = true; - ip: Omit = { - count: 500, - window: 5 - }; - global: RateLimitOptions = { - count: 250, - window: 5 - }; - error: RateLimitOptions = { - count: 10, - window: 5 - }; - routes: RouteRateLimit; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/UserLimits.ts b/util/src/config/types/subconfigurations/limits/UserLimits.ts deleted file mode 100644 index 0d10e0b3..00000000 --- a/util/src/config/types/subconfigurations/limits/UserLimits.ts +++ /dev/null @@ -1,5 +0,0 @@ -export class UserLimits { - maxGuilds: number = 1048576; - maxUsername: number = 127; - maxFriends: number = 5000; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/index.ts b/util/src/config/types/subconfigurations/limits/index.ts deleted file mode 100644 index 0b7304f6..00000000 --- a/util/src/config/types/subconfigurations/limits/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./ChannelLimits"; -export * from "./GuildLimits"; -export * from "./MessageLimits"; -export * from "./RateLimits"; -export * from "./UserLimits"; -export * from "./ratelimits/index"; diff --git a/util/src/config/types/subconfigurations/limits/ratelimits/Auth.ts b/util/src/config/types/subconfigurations/limits/ratelimits/Auth.ts deleted file mode 100644 index df171044..00000000 --- a/util/src/config/types/subconfigurations/limits/ratelimits/Auth.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { RateLimitOptions } from "./RateLimitOptions"; - -export class AuthRateLimit { - login: RateLimitOptions = { - count: 5, - window: 60 - }; - register: RateLimitOptions = { - count: 2, - window: 60 * 60 * 12 - }; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts b/util/src/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts deleted file mode 100644 index 7089e28e..00000000 --- a/util/src/config/types/subconfigurations/limits/ratelimits/RateLimitOptions.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface RateLimitOptions { - bot?: number; - count: number; - window: number; - onyIp?: boolean; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/ratelimits/Route.ts b/util/src/config/types/subconfigurations/limits/ratelimits/Route.ts deleted file mode 100644 index 3012a8a8..00000000 --- a/util/src/config/types/subconfigurations/limits/ratelimits/Route.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { AuthRateLimit } from "."; -import { RateLimitOptions } from "./RateLimitOptions"; - -export class RouteRateLimit { - guild: RateLimitOptions = { - count: 5, - window: 5 - }; - webhook: RateLimitOptions = { - count: 10, - window: 5 - }; - channel: RateLimitOptions = { - count: 10, - window: 5 - }; - auth: AuthRateLimit; - // TODO: rate limit configuration for all routes -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/limits/ratelimits/index.ts b/util/src/config/types/subconfigurations/limits/ratelimits/index.ts deleted file mode 100644 index 432eb601..00000000 --- a/util/src/config/types/subconfigurations/limits/ratelimits/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./Auth"; -export * from "./RateLimitOptions"; -export * from "./Route"; diff --git a/util/src/config/types/subconfigurations/region/Region.ts b/util/src/config/types/subconfigurations/region/Region.ts deleted file mode 100644 index a8717e1f..00000000 --- a/util/src/config/types/subconfigurations/region/Region.ts +++ /dev/null @@ -1,12 +0,0 @@ -export interface Region { - id: string; - name: string; - endpoint: string; - location?: { - latitude: number; - longitude: number; - }; - vip: boolean; - custom: boolean; - deprecated: boolean; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/region/index.ts b/util/src/config/types/subconfigurations/region/index.ts deleted file mode 100644 index 2beb8de7..00000000 --- a/util/src/config/types/subconfigurations/region/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./Region"; diff --git a/util/src/config/types/subconfigurations/register/DateOfBirth.ts b/util/src/config/types/subconfigurations/register/DateOfBirth.ts deleted file mode 100644 index 5a3c4e9d..00000000 --- a/util/src/config/types/subconfigurations/register/DateOfBirth.ts +++ /dev/null @@ -1,4 +0,0 @@ -export class DateOfBirthConfiguration { - required: boolean = true; - minimum: number = 13; // in years -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/register/Email.ts b/util/src/config/types/subconfigurations/register/Email.ts deleted file mode 100644 index 115d49e0..00000000 --- a/util/src/config/types/subconfigurations/register/Email.ts +++ /dev/null @@ -1,7 +0,0 @@ -export class EmailConfiguration { - required: boolean = false; - allowlist: boolean = false; - blocklist: boolean = true; - domains: string[] = [];// TODO: efficiently save domain blocklist in database - // domains: fs.readFileSync(__dirname + "/blockedEmailDomains.txt", { encoding: "utf8" }).split("\n"), -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/register/Password.ts b/util/src/config/types/subconfigurations/register/Password.ts deleted file mode 100644 index 977473ac..00000000 --- a/util/src/config/types/subconfigurations/register/Password.ts +++ /dev/null @@ -1,7 +0,0 @@ -export class PasswordConfiguration { - required: boolean = false; - minLength: number = 8; - minNumbers: number = 2; - minUpperCase: number =2; - minSymbols: number = 0; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/register/index.ts b/util/src/config/types/subconfigurations/register/index.ts deleted file mode 100644 index d9738120..00000000 --- a/util/src/config/types/subconfigurations/register/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./DateOfBirth"; -export * from "./Email"; -export * from "./Password"; diff --git a/util/src/config/types/subconfigurations/security/Captcha.ts b/util/src/config/types/subconfigurations/security/Captcha.ts deleted file mode 100644 index ad6aa762..00000000 --- a/util/src/config/types/subconfigurations/security/Captcha.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class CaptchaConfiguration { - enabled: boolean = false; - service: "recaptcha" | "hcaptcha" | null = null; // TODO: hcaptcha, custom - sitekey: string | null = null; - secret: string | null = null; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/security/TwoFactor.ts b/util/src/config/types/subconfigurations/security/TwoFactor.ts deleted file mode 100644 index 33a47385..00000000 --- a/util/src/config/types/subconfigurations/security/TwoFactor.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class TwoFactorConfiguration { - generateBackupCodes: boolean = true; -} \ No newline at end of file diff --git a/util/src/config/types/subconfigurations/security/index.ts b/util/src/config/types/subconfigurations/security/index.ts deleted file mode 100644 index 17619589..00000000 --- a/util/src/config/types/subconfigurations/security/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./Captcha"; -export * from "./TwoFactor"; diff --git a/util/src/dtos/DmChannelDTO.ts b/util/src/dtos/DmChannelDTO.ts deleted file mode 100644 index 226b2f9d..00000000 --- a/util/src/dtos/DmChannelDTO.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { MinimalPublicUserDTO } from "./UserDTO"; -import { Channel, PublicUserProjection, User } from "../entities"; - -export class DmChannelDTO { - icon: string | null; - id: string; - last_message_id: string | null; - name: string | null; - origin_channel_id: string | null; - owner_id?: string; - recipients: MinimalPublicUserDTO[]; - type: number; - - static async from(channel: Channel, excluded_recipients: string[] = [], origin_channel_id?: string) { - const obj = new DmChannelDTO(); - obj.icon = channel.icon || null; - obj.id = channel.id; - obj.last_message_id = channel.last_message_id || null; - obj.name = channel.name || null; - obj.origin_channel_id = origin_channel_id || null; - obj.owner_id = channel.owner_id; - obj.type = channel.type; - obj.recipients = ( - await Promise.all( - channel - .recipients!.filter((r) => !excluded_recipients.includes(r.user_id)) - .map(async (r) => { - return await User.findOneOrFail({ where: { id: r.user_id }, select: PublicUserProjection }); - }) - ) - ).map((u) => new MinimalPublicUserDTO(u)); - return obj; - } - - excludedRecipients(excluded_recipients: string[]): DmChannelDTO { - return { - ...this, - recipients: this.recipients.filter((r) => !excluded_recipients.includes(r.id)), - }; - } -} diff --git a/util/src/dtos/UserDTO.ts b/util/src/dtos/UserDTO.ts deleted file mode 100644 index ee2752a4..00000000 --- a/util/src/dtos/UserDTO.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { User } from "../entities"; - -export class MinimalPublicUserDTO { - avatar?: string | null; - discriminator: string; - id: string; - public_flags: number; - username: string; - - constructor(user: User) { - this.avatar = user.avatar; - this.discriminator = user.discriminator; - this.id = user.id; - this.public_flags = user.public_flags; - this.username = user.username; - } -} diff --git a/util/src/dtos/index.ts b/util/src/dtos/index.ts deleted file mode 100644 index 0e8f8459..00000000 --- a/util/src/dtos/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./DmChannelDTO"; -export * from "./UserDTO"; diff --git a/util/src/entities/Application.ts b/util/src/entities/Application.ts deleted file mode 100644 index 103f8e84..00000000 --- a/util/src/entities/Application.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, OneToOne, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { Guild } from "./Guild"; -import { Team } from "./Team"; -import { User } from "./User"; - -@Entity("applications") -export class Application extends BaseClass { - @Column() - name: string; - - @Column({ nullable: true }) - icon?: string; - - @Column({ nullable: true }) - description: string; - - @Column({ nullable: true }) - summary: string = ""; - - @Column({ type: "simple-json", nullable: true }) - type?: any; - - @Column() - hook: boolean = true; - - @Column() - bot_public?: boolean = true; - - @Column() - bot_require_code_grant?: boolean = false; - - @Column() - verify_key: string; - - @JoinColumn({ name: "owner_id" }) - @ManyToOne(() => User) - owner: User; - - @Column() - flags: number = 0; - - @Column({ type: "simple-array", nullable: true }) - redirect_uris: string[] = []; - - @Column({ nullable: true }) - rpc_application_state: number = 0; - - @Column({ nullable: true }) - store_application_state: number = 1; - - @Column({ nullable: true }) - verification_state: number = 1; - - @Column({ nullable: true }) - interactions_endpoint_url?: string; - - @Column({ nullable: true }) - integration_public: boolean = true; - - @Column({ nullable: true }) - integration_require_code_grant: boolean = false; - - @Column({ nullable: true }) - discoverability_state: number = 1; - - @Column({ nullable: true }) - discovery_eligibility_flags: number = 2240; - - @JoinColumn({ name: "bot_user_id" }) - @OneToOne(() => User) - bot?: User; - - @Column({ type: "simple-array", nullable: true }) - tags?: string[]; - - @Column({ nullable: true }) - cover_image?: string; // the application's default rich presence invite cover image hash - - @Column({ type: "simple-json", nullable: true }) - install_params?: {scopes: string[], permissions: string}; - - @Column({ nullable: true }) - terms_of_service_url?: string; - - @Column({ nullable: true }) - privacy_policy_url?: string; - - //just for us - - //@Column({ type: "simple-array", nullable: true }) - //rpc_origins?: string[]; - - //@JoinColumn({ name: "guild_id" }) - //@ManyToOne(() => Guild) - //guild?: Guild; // if this application is a game sold, this field will be the guild to which it has been linked - - //@Column({ nullable: true }) - //primary_sku_id?: string; // if this application is a game sold, this field will be the id of the "Game SKU" that is created, - - //@Column({ nullable: true }) - //slug?: string; // if this application is a game sold, this field will be the URL slug that links to the store page - - @JoinColumn({ name: "team_id" }) - @ManyToOne(() => Team, { - onDelete: "CASCADE", - nullable: true - }) - team?: Team; - - } - -export interface ApplicationCommand { - id: string; - application_id: string; - name: string; - description: string; - options?: ApplicationCommandOption[]; -} - -export interface ApplicationCommandOption { - type: ApplicationCommandOptionType; - name: string; - description: string; - required?: boolean; - choices?: ApplicationCommandOptionChoice[]; - options?: ApplicationCommandOption[]; -} - -export interface ApplicationCommandOptionChoice { - name: string; - value: string | number; -} - -export enum ApplicationCommandOptionType { - SUB_COMMAND = 1, - SUB_COMMAND_GROUP = 2, - STRING = 3, - INTEGER = 4, - BOOLEAN = 5, - USER = 6, - CHANNEL = 7, - ROLE = 8, -} - -export interface ApplicationCommandInteractionData { - id: string; - name: string; - options?: ApplicationCommandInteractionDataOption[]; -} - -export interface ApplicationCommandInteractionDataOption { - name: string; - value?: any; - options?: ApplicationCommandInteractionDataOption[]; -} diff --git a/util/src/entities/Attachment.ts b/util/src/entities/Attachment.ts deleted file mode 100644 index 7b4b17eb..00000000 --- a/util/src/entities/Attachment.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { BeforeRemove, Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { URL } from "url"; -import { deleteFile } from "../util/cdn"; -import { BaseClass } from "./BaseClass"; - -@Entity("attachments") -export class Attachment extends BaseClass { - @Column() - filename: string; // name of file attached - - @Column() - size: number; // size of file in bytes - - @Column() - url: string; // source url of file - - @Column() - proxy_url: string; // a proxied url of file - - @Column({ nullable: true }) - height?: number; // height of file (if image) - - @Column({ nullable: true }) - width?: number; // width of file (if image) - - @Column({ nullable: true }) - content_type?: string; - - @Column({ nullable: true }) - @RelationId((attachment: Attachment) => attachment.message) - message_id: string; - - @JoinColumn({ name: "message_id" }) - @ManyToOne(() => require("./Message").Message, (message: import("./Message").Message) => message.attachments, { - onDelete: "CASCADE", - }) - message: import("./Message").Message; - - @BeforeRemove() - onDelete() { - return deleteFile(new URL(this.url).pathname); - } -} diff --git a/util/src/entities/AuditLog.ts b/util/src/entities/AuditLog.ts deleted file mode 100644 index b003e7ba..00000000 --- a/util/src/entities/AuditLog.ts +++ /dev/null @@ -1,194 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { ChannelPermissionOverwrite } from "./Channel"; -import { User } from "./User"; - -export enum AuditLogEvents { - // guild level - GUILD_UPDATE = 1, - GUILD_IMPORT = 2, - GUILD_EXPORTED = 3, - GUILD_ARCHIVE = 4, - GUILD_UNARCHIVE = 5, - // join-leave - USER_JOIN = 6, - USER_LEAVE = 7, - // channels - CHANNEL_CREATE = 10, - CHANNEL_UPDATE = 11, - CHANNEL_DELETE = 12, - // permission overrides - CHANNEL_OVERWRITE_CREATE = 13, - CHANNEL_OVERWRITE_UPDATE = 14, - CHANNEL_OVERWRITE_DELETE = 15, - // kick and ban - MEMBER_KICK = 20, - MEMBER_PRUNE = 21, - MEMBER_BAN_ADD = 22, - MEMBER_BAN_REMOVE = 23, - // member updates - MEMBER_UPDATE = 24, - MEMBER_ROLE_UPDATE = 25, - MEMBER_MOVE = 26, - MEMBER_DISCONNECT = 27, - BOT_ADD = 28, - // roles - ROLE_CREATE = 30, - ROLE_UPDATE = 31, - ROLE_DELETE = 32, - ROLE_SWAP = 33, - // invites - INVITE_CREATE = 40, - INVITE_UPDATE = 41, - INVITE_DELETE = 42, - // webhooks - WEBHOOK_CREATE = 50, - WEBHOOK_UPDATE = 51, - WEBHOOK_DELETE = 52, - WEBHOOK_SWAP = 53, - // custom emojis - EMOJI_CREATE = 60, - EMOJI_UPDATE = 61, - EMOJI_DELETE = 62, - EMOJI_SWAP = 63, - // deletion - MESSAGE_CREATE = 70, // messages sent using non-primary seat of the user only - MESSAGE_EDIT = 71, // non-self edits only - MESSAGE_DELETE = 72, - MESSAGE_BULK_DELETE = 73, - // pinning - MESSAGE_PIN = 74, - MESSAGE_UNPIN = 75, - // integrations - INTEGRATION_CREATE = 80, - INTEGRATION_UPDATE = 81, - INTEGRATION_DELETE = 82, - // stage actions - STAGE_INSTANCE_CREATE = 83, - STAGE_INSTANCE_UPDATE = 84, - STAGE_INSTANCE_DELETE = 85, - // stickers - STICKER_CREATE = 90, - STICKER_UPDATE = 91, - STICKER_DELETE = 92, - STICKER_SWAP = 93, - // threads - THREAD_CREATE = 110, - THREAD_UPDATE = 111, - THREAD_DELETE = 112, - // application commands - APPLICATION_COMMAND_PERMISSION_UPDATE = 121, - // automod - POLICY_CREATE = 140, - POLICY_UPDATE = 141, - POLICY_DELETE = 142, - MESSAGE_BLOCKED_BY_POLICIES = 143, // in fosscord, blocked messages are stealth-dropped - // instance policies affecting the guild - GUILD_AFFECTED_BY_POLICIES = 216, - // message moves - IN_GUILD_MESSAGE_MOVE = 223, - CROSS_GUILD_MESSAGE_MOVE = 224, - // message routing - ROUTE_CREATE = 225, - ROUTE_UPDATE = 226, -} - -@Entity("audit_logs") -export class AuditLog extends BaseClass { - @JoinColumn({ name: "target_id" }) - @ManyToOne(() => User) - target?: User; - - @Column({ nullable: true }) - @RelationId((auditlog: AuditLog) => auditlog.user) - user_id: string; - - @JoinColumn({ name: "user_id" }) - @ManyToOne(() => User, (user: User) => user.id) - user: User; - - @Column({ type: "int" }) - action_type: AuditLogEvents; - - @Column({ type: "simple-json", nullable: true }) - options?: { - delete_member_days?: string; - members_removed?: string; - channel_id?: string; - messaged_id?: string; - count?: string; - id?: string; - type?: string; - role_name?: string; - }; - - @Column() - @Column({ type: "simple-json" }) - changes: AuditLogChange[]; - - @Column({ nullable: true }) - reason?: string; -} - -export interface AuditLogChange { - new_value?: AuditLogChangeValue; - old_value?: AuditLogChangeValue; - key: string; -} - -export interface AuditLogChangeValue { - name?: string; - description?: string; - icon_hash?: string; - splash_hash?: string; - discovery_splash_hash?: string; - banner_hash?: string; - owner_id?: string; - region?: string; - preferred_locale?: string; - afk_channel_id?: string; - afk_timeout?: number; - rules_channel_id?: string; - public_updates_channel_id?: string; - mfa_level?: number; - verification_level?: number; - explicit_content_filter?: number; - default_message_notifications?: number; - vanity_url_code?: string; - $add?: {}[]; - $remove?: {}[]; - prune_delete_days?: number; - widget_enabled?: boolean; - widget_channel_id?: string; - system_channel_id?: string; - position?: number; - topic?: string; - bitrate?: number; - permission_overwrites?: ChannelPermissionOverwrite[]; - nsfw?: boolean; - application_id?: string; - rate_limit_per_user?: number; - permissions?: string; - color?: number; - hoist?: boolean; - mentionable?: boolean; - allow?: string; - deny?: string; - code?: string; - channel_id?: string; - inviter_id?: string; - max_uses?: number; - uses?: number; - max_age?: number; - temporary?: boolean; - deaf?: boolean; - mute?: boolean; - nick?: string; - avatar_hash?: string; - id?: string; - type?: number; - enable_emoticons?: boolean; - expire_behavior?: number; - expire_grace_period?: number; - user_limit?: number; -} diff --git a/util/src/entities/BackupCodes.ts b/util/src/entities/BackupCodes.ts deleted file mode 100644 index 9092c14e..00000000 --- a/util/src/entities/BackupCodes.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { User } from "./User"; - -@Entity("backup_codes") -export class BackupCode extends BaseClass { - @JoinColumn({ name: "user_id" }) - @ManyToOne(() => User, { onDelete: "CASCADE" }) - user: User; - - @Column() - code: string; - - @Column() - consumed: boolean; - - @Column() - expired: boolean; -} \ No newline at end of file diff --git a/util/src/entities/Ban.ts b/util/src/entities/Ban.ts deleted file mode 100644 index 9504bd8e..00000000 --- a/util/src/entities/Ban.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { Guild } from "./Guild"; -import { User } from "./User"; - -@Entity("bans") -export class Ban extends BaseClass { - @Column({ nullable: true }) - @RelationId((ban: Ban) => ban.user) - user_id: string; - - @JoinColumn({ name: "user_id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - user: User; - - @Column({ nullable: true }) - @RelationId((ban: Ban) => ban.guild) - guild_id: string; - - @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild, { - onDelete: "CASCADE", - }) - guild: Guild; - - @Column({ nullable: true }) - @RelationId((ban: Ban) => ban.executor) - executor_id: string; - - @JoinColumn({ name: "executor_id" }) - @ManyToOne(() => User) - executor: User; - - @Column() - ip: string; - - @Column({ nullable: true }) - reason?: string; -} diff --git a/util/src/entities/BaseClass.ts b/util/src/entities/BaseClass.ts deleted file mode 100644 index aecc2465..00000000 --- a/util/src/entities/BaseClass.ts +++ /dev/null @@ -1,26 +0,0 @@ -import "reflect-metadata"; -import { BaseEntity, ObjectIdColumn, PrimaryColumn, SaveOptions } from "typeorm"; -import { Snowflake } from "../util/Snowflake"; - -export class BaseClassWithoutId extends BaseEntity { - constructor() { - super(); - } -} - -export const PrimaryIdColumn = process.env.DATABASE?.startsWith("mongodb") ? ObjectIdColumn : PrimaryColumn; - -export class BaseClass extends BaseClassWithoutId { - @PrimaryIdColumn() - id: string; - - constructor() { - super(); - if (!this.id) this.id = Snowflake.generate(); - } - - save(options?: SaveOptions | undefined): Promise { - if (!this.id) this.id = Snowflake.generate(); - return super.save(options); - } -} diff --git a/util/src/entities/Categories.ts b/util/src/entities/Categories.ts deleted file mode 100644 index 81fbc303..00000000 --- a/util/src/entities/Categories.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { PrimaryColumn, Column, Entity} from "typeorm"; -import { BaseClassWithoutId } from "./BaseClass"; - -// TODO: categories: -// [{ -// "id": 16, -// "default": "Anime & Manga", -// "localizations": { -// "de": "Anime & Manga", -// "fr": "Anim\u00e9s et mangas", -// "ru": "\u0410\u043d\u0438\u043c\u0435 \u0438 \u043c\u0430\u043d\u0433\u0430" -// } -// }, -// "is_primary": false/true -// }] -// Also populate discord default categories - -@Entity("categories") -export class Categories extends BaseClassWithoutId { // Not using snowflake - - @PrimaryColumn() - id: number; - - @Column({ nullable: true }) - name: string; - - @Column({ type: "simple-json" }) - localizations: string; - - @Column({ nullable: true }) - is_primary: boolean; - -} \ No newline at end of file diff --git a/util/src/entities/Channel.ts b/util/src/entities/Channel.ts deleted file mode 100644 index a576d7af..00000000 --- a/util/src/entities/Channel.ts +++ /dev/null @@ -1,391 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, OneToMany, RelationId } from "typeorm"; -import { OrmUtils } from "../util/imports/OrmUtils"; -import { BaseClass } from "./BaseClass"; -import { Guild } from "./Guild"; -import { PublicUserProjection, User } from "./User"; -import { HTTPError } from "../util/imports/HTTPError"; -import { containsAll, emitEvent, getPermission, Snowflake, trimSpecial, InvisibleCharacters } from "../util"; -import { ChannelCreateEvent, ChannelRecipientRemoveEvent } from "../interfaces"; -import { Recipient } from "./Recipient"; -import { Message } from "./Message"; -import { ReadState } from "./ReadState"; -import { Invite } from "./Invite"; -import { VoiceState } from "./VoiceState"; -import { Webhook } from "./Webhook"; -import { DmChannelDTO } from "../dtos"; - -export enum ChannelType { - GUILD_TEXT = 0, // a text channel within a guild - DM = 1, // a direct message between users - GUILD_VOICE = 2, // a voice channel within a guild - GROUP_DM = 3, // a direct message between multiple users - GUILD_CATEGORY = 4, // an organizational category that contains zero or more channels - GUILD_NEWS = 5, // a channel that users can follow and crosspost into a guild or route - GUILD_STORE = 6, // a channel in which game developers can sell their things - ENCRYPTED = 7, // end-to-end encrypted channel - ENCRYPTED_THREAD = 8, // end-to-end encrypted thread channel - TRANSACTIONAL = 9, // event chain style transactional channel - GUILD_NEWS_THREAD = 10, // a temporary sub-channel within a GUILD_NEWS channel - GUILD_PUBLIC_THREAD = 11, // a temporary sub-channel within a GUILD_TEXT channel - GUILD_PRIVATE_THREAD = 12, // a temporary sub-channel within a GUILD_TEXT channel that is only viewable by those invited and those with the MANAGE_THREADS permission - GUILD_STAGE_VOICE = 13, // a voice channel for hosting events with an audience - DIRECTORY = 14, // guild directory listing channel - GUILD_FORUM = 15, // forum composed of IM threads - TICKET_TRACKER = 33, // ticket tracker, individual ticket items shall have type 12 - KANBAN = 34, // confluence like kanban board - VOICELESS_WHITEBOARD = 35, // whiteboard but without voice (whiteboard + voice is the same as stage) - CUSTOM_START = 64, // start custom channel types from here - UNHANDLED = 255, // unhandled unowned pass-through channel type -} - -@Entity("channels") -export class Channel extends BaseClass { - @Column() - created_at: Date; - - @Column({ nullable: true }) - name?: string; - - @Column({ type: "text", nullable: true }) - icon?: string | null; - - @Column({ type: "int" }) - type: ChannelType; - - @OneToMany(() => Recipient, (recipient: Recipient) => recipient.channel, { - cascade: true, - orphanedRowAction: "delete", - }) - recipients?: Recipient[]; - - @Column({ nullable: true }) - last_message_id: string; - - @Column({ nullable: true }) - @RelationId((channel: Channel) => channel.guild) - guild_id?: string; - - @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild, { - onDelete: "CASCADE", - }) - guild: Guild; - - @Column({ nullable: true }) - @RelationId((channel: Channel) => channel.parent) - parent_id: string; - - @JoinColumn({ name: "parent_id" }) - @ManyToOne(() => Channel) - parent?: Channel; - - // for group DMs and owned custom channel types - @Column({ nullable: true }) - @RelationId((channel: Channel) => channel.owner) - owner_id: string; - - @JoinColumn({ name: "owner_id" }) - @ManyToOne(() => User) - owner: User; - - @Column({ nullable: true }) - last_pin_timestamp?: number; - - @Column({ nullable: true }) - default_auto_archive_duration?: number; - - @Column({ nullable: true }) - position?: number; - - @Column({ type: "simple-json", nullable: true }) - permission_overwrites?: ChannelPermissionOverwrite[]; - - @Column({ nullable: true }) - video_quality_mode?: number; - - @Column({ nullable: true }) - bitrate?: number; - - @Column({ nullable: true }) - user_limit?: number; - - @Column({ nullable: true }) - nsfw?: boolean; - - @Column({ nullable: true }) - rate_limit_per_user?: number; - - @Column({ nullable: true }) - topic?: string; - - @OneToMany(() => Invite, (invite: Invite) => invite.channel, { - cascade: true, - orphanedRowAction: "delete", - }) - invites?: Invite[]; - - @Column({ nullable: true }) - retention_policy_id?: string; - - @OneToMany(() => Message, (message: Message) => message.channel, { - cascade: true, - orphanedRowAction: "delete", - }) - messages?: Message[]; - - @OneToMany(() => VoiceState, (voice_state: VoiceState) => voice_state.channel, { - cascade: true, - orphanedRowAction: "delete", - }) - voice_states?: VoiceState[]; - - @OneToMany(() => ReadState, (read_state: ReadState) => read_state.channel, { - cascade: true, - orphanedRowAction: "delete", - }) - read_states?: ReadState[]; - - @OneToMany(() => Webhook, (webhook: Webhook) => webhook.channel, { - cascade: true, - orphanedRowAction: "delete", - }) - webhooks?: Webhook[]; - - @Column({ nullable: true }) - flags?: number = 0; - - @Column({ nullable: true }) - default_thread_rate_limit_per_user?: number = 0; - - - // TODO: DM channel - static async createChannel( - channel: Partial, - user_id: string = "0", - opts?: { - keepId?: boolean; - skipExistsCheck?: boolean; - skipPermissionCheck?: boolean; - skipEventEmit?: boolean; - skipNameChecks?: boolean; - } - ) { - if (!opts?.skipPermissionCheck) { - // Always check if user has permission first - const permissions = await getPermission(user_id, channel.guild_id); - permissions.hasThrow("MANAGE_CHANNELS"); - } - - if (!opts?.skipNameChecks) { - const guild = await Guild.findOneOrFail({ where: { id: channel.guild_id } }); - if (!guild.features.includes("ALLOW_INVALID_CHANNEL_NAMES") && channel.name) { - for (let character of InvisibleCharacters) - if (channel.name.includes(character)) - throw new HTTPError("Channel name cannot include invalid characters", 403); - - if (channel.name.match(/\-\-+/g)) - throw new HTTPError("Channel name cannot include multiple adjacent dashes.", 403); - - if (channel.name.charAt(0) === "-" || channel.name.charAt(channel.name.length - 1) === "-") - throw new HTTPError("Channel name cannot start/end with dash.", 403); - } - - if (!guild.features.includes("ALLOW_UNNAMED_CHANNELS")) { - if (!channel.name) throw new HTTPError("Channel name cannot be empty.", 403); - } - } - - switch (channel.type) { - case ChannelType.GUILD_TEXT: - case ChannelType.GUILD_NEWS: - case ChannelType.GUILD_VOICE: - if (channel.parent_id && !opts?.skipExistsCheck) { - const exists = await Channel.findOneOrFail({ where: { id: channel.parent_id } }); - if (!exists) throw new HTTPError("Parent id channel doesn't exist", 400); - if (exists.guild_id !== channel.guild_id) - throw new HTTPError("The category channel needs to be in the guild"); - } - break; - case ChannelType.GUILD_CATEGORY: - case ChannelType.UNHANDLED: - break; - case ChannelType.DM: - case ChannelType.GROUP_DM: - throw new HTTPError("You can't create a dm channel in a guild"); - case ChannelType.GUILD_STORE: - default: - throw new HTTPError("Not yet supported"); - } - - if (!channel.permission_overwrites) channel.permission_overwrites = []; - // TODO: eagerly auto generate position of all guild channels - - channel = { - ...channel, - ...(!opts?.keepId && { id: Snowflake.generate() }), - created_at: new Date(), - position: (channel.type === ChannelType.UNHANDLED ? 0 : channel.position) || 0, - }; - - await Promise.all([ - OrmUtils.mergeDeep(new Channel(), channel).save(), - !opts?.skipEventEmit - ? emitEvent({ - event: "CHANNEL_CREATE", - data: channel, - guild_id: channel.guild_id, - } as ChannelCreateEvent) - : Promise.resolve(), - ]); - - return channel; - } - - static async createDMChannel(recipients: string[], creator_user_id: string, name?: string) { - recipients = recipients.unique().filter((x) => x !== creator_user_id); - const otherRecipientsUsers = await User.find({ where: recipients.map((x) => ({ id: x })) }); - - // TODO: check config for max number of recipients - /** if you want to disallow note to self channels, uncomment the conditional below - if (otherRecipientsUsers.length !== recipients.length) { - throw new HTTPError("Recipient/s not found"); - } - **/ - - const type = recipients.length > 1 ? ChannelType.GROUP_DM : ChannelType.DM; - - let channel = null; - - const channelRecipients = [...recipients, creator_user_id]; - - const userRecipients = await Recipient.find({ - where: { user_id: creator_user_id }, - relations: ["channel", "channel.recipients"], - }); - - for (let ur of userRecipients) { - let re = ur.channel.recipients!.map((r) => r.user_id); - if (re.length === channelRecipients.length) { - if (containsAll(re, channelRecipients)) { - if (channel == null) { - channel = ur.channel; - ur = OrmUtils.mergeDeep(ur, { closed: false }); - await ur.save(); - } - } - } - } - - if (channel == null) { - name = trimSpecial(name); - - channel = await ( - OrmUtils.mergeDeep(new Channel(), { - name, - type, - owner_id: type === ChannelType.DM ? undefined : null, // 1:1 DMs are ownerless in fosscord-server - created_at: new Date(), - last_message_id: null, - recipients: channelRecipients.map((x) => - OrmUtils.mergeDeep(new Recipient(), { - user_id: x, - closed: !(type === ChannelType.GROUP_DM || x === creator_user_id), - }) - ), - }) as Channel - ).save(); - } - - const channel_dto = await DmChannelDTO.from(channel); - - if (type === ChannelType.GROUP_DM) { - for (let recipient of channel.recipients!) { - await emitEvent({ - event: "CHANNEL_CREATE", - data: channel_dto.excludedRecipients([recipient.user_id]), - user_id: recipient.user_id, - }); - } - } else { - await emitEvent({ event: "CHANNEL_CREATE", data: channel_dto, user_id: creator_user_id }); - } - - if (recipients.length === 1) return channel_dto; - else return channel_dto.excludedRecipients([creator_user_id]); - } - - static async removeRecipientFromChannel(channel: Channel, user_id: string) { - await Recipient.delete({ channel_id: channel.id, user_id: user_id }); - channel.recipients = channel.recipients?.filter((r) => r.user_id !== user_id); - - if (channel.recipients?.length === 0) { - await Channel.deleteChannel(channel); - await emitEvent({ - event: "CHANNEL_DELETE", - data: await DmChannelDTO.from(channel, [user_id]), - user_id: user_id, - }); - return; - } - - await emitEvent({ - event: "CHANNEL_DELETE", - data: await DmChannelDTO.from(channel, [user_id]), - user_id: user_id, - }); - - //If the owner leave the server user is the new owner - if (channel.owner_id === user_id) { - channel.owner_id = "1"; // The channel is now owned by the server user - await emitEvent({ - event: "CHANNEL_UPDATE", - data: await DmChannelDTO.from(channel, [user_id]), - channel_id: channel.id, - }); - } - - await channel.save(); - - await emitEvent({ - event: "CHANNEL_RECIPIENT_REMOVE", - data: { - channel_id: channel.id, - user: await User.findOneOrFail({ where: { id: user_id }, select: PublicUserProjection }), - }, - channel_id: channel.id, - } as ChannelRecipientRemoveEvent); - } - - static async deleteChannel(channel: Channel) { - await Message.delete({ channel_id: channel.id }); //TODO we should also delete the attachments from the cdn but to do that we need to move cdn.ts in util - //TODO before deleting the channel we should check and delete other relations - await Channel.delete({ id: channel.id }); - } - - isDm() { - return this.type === ChannelType.DM || this.type === ChannelType.GROUP_DM; - } - - // Does the channel support sending messages ( eg categories do not ) - isWritable() { - const disallowedChannelTypes = [ - ChannelType.GUILD_CATEGORY, - ChannelType.GUILD_STAGE_VOICE, - ChannelType.VOICELESS_WHITEBOARD, - ]; - return disallowedChannelTypes.indexOf(this.type) == -1; - } -} - -export interface ChannelPermissionOverwrite { - allow: string; - deny: string; - id: string; - type: ChannelPermissionOverwriteType; -} - -export enum ChannelPermissionOverwriteType { - role = 0, - member = 1, - group = 2, -} diff --git a/util/src/entities/ClientRelease.ts b/util/src/entities/ClientRelease.ts deleted file mode 100644 index c5afd307..00000000 --- a/util/src/entities/ClientRelease.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Column, Entity} from "typeorm"; -import { BaseClass } from "./BaseClass"; - -@Entity("client_release") -export class Release extends BaseClass { - @Column() - name: string; - - @Column() - pub_date: string; - - @Column() - url: string; - - @Column() - deb_url: string; - - @Column() - osx_url: string; - - @Column() - win_url: string; - - @Column({ nullable: true }) - notes?: string; -} diff --git a/util/src/entities/Config.ts b/util/src/entities/Config.ts deleted file mode 100644 index 606fe901..00000000 --- a/util/src/entities/Config.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Column, Entity } from "typeorm"; -import { BaseClassWithoutId, PrimaryIdColumn } from "./BaseClass"; - -@Entity("config") -export class ConfigEntity extends BaseClassWithoutId { - @PrimaryIdColumn() - key: string; - - @Column({ type: "simple-json", nullable: true }) - value: number | boolean | null | string | undefined; -} \ No newline at end of file diff --git a/util/src/entities/ConnectedAccount.ts b/util/src/entities/ConnectedAccount.ts deleted file mode 100644 index 09ae30ab..00000000 --- a/util/src/entities/ConnectedAccount.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { User } from "./User"; - -export interface PublicConnectedAccount extends Pick {} - -@Entity("connected_accounts") -export class ConnectedAccount extends BaseClass { - @Column({ nullable: true }) - @RelationId((account: ConnectedAccount) => account.user) - user_id: string; - - @JoinColumn({ name: "user_id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - user: User; - - @Column({ select: false }) - access_token: string; - - @Column({ select: false }) - friend_sync: boolean; - - @Column() - name: string; - - @Column({ select: false }) - revoked: boolean; - - @Column({ select: false }) - show_activity: boolean; - - @Column() - type: string; - - @Column() - verified: boolean; - - @Column({ select: false }) - visibility: number; -} diff --git a/util/src/entities/Emoji.ts b/util/src/entities/Emoji.ts deleted file mode 100644 index a3615b7d..00000000 --- a/util/src/entities/Emoji.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { User } from "."; -import { BaseClass } from "./BaseClass"; -import { Guild } from "./Guild"; -import { Role } from "./Role"; - -@Entity("emojis") -export class Emoji extends BaseClass { - @Column() - animated: boolean; - - @Column() - available: boolean; // whether this emoji can be used, may be false due to various reasons - - @Column() - guild_id: string; - - @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild, { - onDelete: "CASCADE", - }) - guild: Guild; - - @Column({ nullable: true }) - @RelationId((emoji: Emoji) => emoji.user) - user_id: string; - - @JoinColumn({ name: "user_id" }) - @ManyToOne(() => User) - user: User; - - @Column() - managed: boolean; - - @Column() - name: string; - - @Column() - require_colons: boolean; - - @Column({ type: "simple-array" }) - roles: string[]; // roles this emoji is whitelisted to (new discord feature?) - - @Column({ type: "simple-array", nullable: true }) - groups: string[]; // user groups this emoji is whitelisted to (Fosscord extension) -} diff --git a/util/src/entities/Encryption.ts b/util/src/entities/Encryption.ts deleted file mode 100644 index 6b578d15..00000000 --- a/util/src/entities/Encryption.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, OneToMany, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { Guild } from "./Guild"; -import { PublicUserProjection, User } from "./User"; -import { HTTPError } from ".."; -import { containsAll, emitEvent, getPermission, Snowflake, trimSpecial, InvisibleCharacters } from "../util"; -import { BitField, BitFieldResolvable, BitFlag } from "../util/BitField"; -import { Recipient } from "./Recipient"; -import { Message } from "./Message"; -import { ReadState } from "./ReadState"; -import { Invite } from "./Invite"; -import { DmChannelDTO } from "../dtos"; - -@Entity("security_settings") -export class SecuritySettings extends BaseClass { - - @Column({nullable: true}) - guild_id: Snowflake; - - @Column({nullable: true}) - channel_id: Snowflake; - - @Column() - encryption_permission_mask: BitField; - - @Column() - allowed_algorithms: string[]; - - @Column() - current_algorithm: string; - - @Column({nullable: true}) - used_since_message: Snowflake; - -} diff --git a/util/src/entities/Group.ts b/util/src/entities/Group.ts deleted file mode 100644 index b24d38cf..00000000 --- a/util/src/entities/Group.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; - -import { BaseClass } from "./BaseClass"; - -@Entity("groups") -export class UserGroup extends BaseClass { - @Column({ nullable: true }) - parent?: BigInt; - - @Column() - color: number; - - @Column() - hoist: boolean; - - @Column() - mentionable: boolean; - - @Column() - name: string; - - @Column() - rights: BigInt; - - @Column() - position: number; - - @Column({ nullable: true }) - icon: BigInt; - - @Column({ nullable: true }) - unicode_emoji: BigInt; -} diff --git a/util/src/entities/Guild.ts b/util/src/entities/Guild.ts deleted file mode 100644 index d146e577..00000000 --- a/util/src/entities/Guild.ts +++ /dev/null @@ -1,370 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToMany, ManyToOne, OneToMany, OneToOne, RelationId } from "typeorm"; -import { OrmUtils } from "../util/imports/OrmUtils"; -import { Config, handleFile, Snowflake } from ".."; -import { Ban } from "./Ban"; -import { BaseClass } from "./BaseClass"; -import { Channel } from "./Channel"; -import { Emoji } from "./Emoji"; -import { Invite } from "./Invite"; -import { Member } from "./Member"; -import { Role } from "./Role"; -import { Sticker } from "./Sticker"; -import { Template } from "./Template"; -import { User } from "./User"; -import { VoiceState } from "./VoiceState"; -import { Webhook } from "./Webhook"; - -// TODO: application_command_count, application_command_counts: {1: 0, 2: 0, 3: 0} -// TODO: guild_scheduled_events -// TODO: stage_instances -// TODO: threads -// TODO: -// "keywords": [ -// "Genshin Impact", -// "Paimon", -// "Honkai Impact", -// "ARPG", -// "Open-World", -// "Waifu", -// "Anime", -// "Genshin", -// "miHoYo", -// "Gacha" -// ], - -export const PublicGuildRelations = [ - "channels", - "emojis", - "members", - "roles", - "stickers", - "voice_states", - "members.user", -]; - -@Entity("guilds") -export class Guild extends BaseClass { - @Column({ nullable: true }) - @RelationId((guild: Guild) => guild.afk_channel) - afk_channel_id?: string; - - @JoinColumn({ name: "afk_channel_id" }) - @ManyToOne(() => Channel) - afk_channel?: Channel; - - @Column({ nullable: true }) - afk_timeout?: number = Config.get().defaults.guild.afkTimeout; - - // * commented out -> use owner instead - // application id of the guild creator if it is bot-created - // @Column({ nullable: true }) - // application?: string; - - @JoinColumn({ name: "ban_ids" }) - @OneToMany(() => Ban, (ban: Ban) => ban.guild, { - cascade: true, - orphanedRowAction: "delete", - }) - bans: Ban[]; - - @Column({ nullable: true }) - banner?: string; - - @Column({ nullable: true }) - default_message_notifications?: number = Config.get().defaults.guild.defaultMessageNotifications; - - @Column({ nullable: true }) - description?: string; - - @Column({ nullable: true }) - discovery_splash?: string; - - @Column({ nullable: true }) - explicit_content_filter?: number = Config.get().defaults.guild.explicitContentFilter; - - @Column({ type: "simple-array" }) - features: string[]; //TODO use enum - //TODO: https://discord.com/developers/docs/resources/guild#guild-object-guild-features - - @Column({ nullable: true }) - primary_category_id: number; - - @Column({ nullable: true }) - icon?: string; - - @Column({ nullable: true }) - large?: boolean; - - @Column({ nullable: true }) - max_members?: number = Config.get().limits.guild.maxMembers; // e.g. default 100.000 - - @Column({ nullable: true }) - max_presences?: number = Config.get().defaults.guild.maxPresences; - - @Column({ nullable: true }) - max_video_channel_users?: number = Config.get().defaults.guild.maxVideoChannelUsers; // ? default: 25, is this max 25 streaming or watching - - @Column({ nullable: true }) - member_count?: number = 0; - - @Column({ nullable: true }) - presence_count?: number = 0; // users online - - @OneToMany(() => Member, (member: Member) => member.guild, { - cascade: true, - orphanedRowAction: "delete", - onDelete: "CASCADE", - }) - members: Member[]; - - @JoinColumn({ name: "role_ids" }) - @OneToMany(() => Role, (role: Role) => role.guild, { - cascade: true, - orphanedRowAction: "delete", - onDelete: "CASCADE", - }) - roles: Role[]; - - @JoinColumn({ name: "channel_ids" }) - @OneToMany(() => Channel, (channel: Channel) => channel.guild, { - cascade: true, - orphanedRowAction: "delete", - }) - channels: Channel[]; - - @Column({ nullable: true }) - @RelationId((guild: Guild) => guild.template) - template_id?: string; - - @JoinColumn({ name: "template_id", referencedColumnName: "id" }) - @ManyToOne(() => Template) - template: Template; - - @JoinColumn({ name: "emoji_ids" }) - @OneToMany(() => Emoji, (emoji: Emoji) => emoji.guild, { - cascade: true, - orphanedRowAction: "delete", - onDelete: "CASCADE", - }) - emojis: Emoji[]; - - @JoinColumn({ name: "sticker_ids" }) - @OneToMany(() => Sticker, (sticker: Sticker) => sticker.guild, { - cascade: true, - orphanedRowAction: "delete", - onDelete: "CASCADE", - }) - stickers: Sticker[]; - - @JoinColumn({ name: "invite_ids" }) - @OneToMany(() => Invite, (invite: Invite) => invite.guild, { - cascade: true, - orphanedRowAction: "delete", - onDelete: "CASCADE", - }) - invites: Invite[]; - - @JoinColumn({ name: "voice_state_ids" }) - @OneToMany(() => VoiceState, (voicestate: VoiceState) => voicestate.guild, { - cascade: true, - orphanedRowAction: "delete", - onDelete: "CASCADE", - }) - voice_states: VoiceState[]; - - @JoinColumn({ name: "webhook_ids" }) - @OneToMany(() => Webhook, (webhook: Webhook) => webhook.guild, { - cascade: true, - orphanedRowAction: "delete", - onDelete: "CASCADE", - }) - webhooks: Webhook[]; - - @Column({ nullable: true }) - mfa_level?: number; - - @Column() - name: string; - - @Column({ nullable: true }) - @RelationId((guild: Guild) => guild.owner) - owner_id?: string; // optional to allow for ownerless guilds - - @JoinColumn({ name: "owner_id", referencedColumnName: "id" }) - @ManyToOne(() => User) - owner?: User; // optional to allow for ownerless guilds - - @Column({ nullable: true }) - preferred_locale?: string; - - @Column({ nullable: true }) - premium_subscription_count?: number; - - @Column({ nullable: true }) - premium_tier?: number; // crowd premium level - - @Column({ nullable: true }) - @RelationId((guild: Guild) => guild.public_updates_channel) - public_updates_channel_id: string; - - @JoinColumn({ name: "public_updates_channel_id" }) - @ManyToOne(() => Channel) - public_updates_channel?: Channel; - - @Column({ nullable: true }) - @RelationId((guild: Guild) => guild.rules_channel) - rules_channel_id?: string; - - @JoinColumn({ name: "rules_channel_id" }) - @ManyToOne(() => Channel) - rules_channel?: string; - - @Column({ nullable: true }) - region?: string; - - @Column({ nullable: true }) - splash?: string; - - @Column({ nullable: true }) - @RelationId((guild: Guild) => guild.system_channel) - system_channel_id?: string; - - @JoinColumn({ name: "system_channel_id" }) - @ManyToOne(() => Channel) - system_channel?: Channel; - - @Column({ nullable: true }) - system_channel_flags?: number; - - @Column({ nullable: true }) - unavailable?: boolean; - - @Column({ nullable: true }) - verification_level?: number; - - @Column({ type: "simple-json" }) - welcome_screen: { - enabled: boolean; - description: string; - welcome_channels: { - description: string; - emoji_id?: string; - emoji_name: string; - channel_id: string; - }[]; - }; - - @Column({ nullable: true }) - @RelationId((guild: Guild) => guild.widget_channel) - widget_channel_id?: string; - - @JoinColumn({ name: "widget_channel_id" }) - @ManyToOne(() => Channel) - widget_channel?: Channel; - - @Column({ nullable: true }) - widget_enabled?: boolean; - - @Column({ nullable: true }) - nsfw_level?: number; - - @Column({ nullable: true }) - nsfw?: boolean; - - // TODO: nested guilds - @Column({ nullable: true }) - parent?: string; - - // only for developer portal - permissions?: number; - - //new guild settings, 11/08/2022: - @Column({ nullable: true }) - premium_progress_bar_enabled: boolean = false; - - static async createGuild(body: { - name?: string; - icon?: string | null; - owner_id?: string; - channels?: Partial[]; - }) { - const guild_id = Snowflake.generate(); - - const guild: Guild = OrmUtils.mergeDeep(new Guild(), { - name: body.name || "Fosscord", - icon: await handleFile(`/icons/${guild_id}`, body.icon as string), - region: Config.get().regions.default, - owner_id: body.owner_id, // TODO: need to figure out a way for ownerless guilds and multiply-owned guilds - afk_timeout: 300, - default_message_notifications: 1, // defaults effect: setting the push default at mentions-only will save a lot - explicit_content_filter: 0, - features: [], - primary_category_id: null, - id: guild_id, - max_members: 250000, - max_presences: 250000, - max_video_channel_users: 200, - presence_count: 0, - member_count: 0, // will automatically be increased by addMember() - mfa_level: 0, - preferred_locale: "en-US", - premium_subscription_count: 0, - premium_tier: 0, - system_channel_flags: 4, // defaults effect: suppress the setup tips to save performance - unavailable: false, - nsfw: false, - nsfw_level: 0, - verification_level: 0, - welcome_screen: { - enabled: false, - description: "Fill in your description", - welcome_channels: [], - }, - widget_enabled: true, // NB: don't set it as false to prevent artificial restrictions - }); - await guild.save(); - - // we have to create the role _after_ the guild because else we would get a "SQLITE_CONSTRAINT: FOREIGN KEY constraint failed" error - // TODO: make the @everyone a pseudorole that is dynamically generated at runtime so we can save storage - let role: Role = OrmUtils.mergeDeep(new Role(), { - id: guild_id, - guild_id: guild_id, - color: 0, - hoist: false, - managed: false, - // NB: in Fosscord, every role will be non-managed, as we use user-groups instead of roles for managed groups - mentionable: false, - name: "@everyone", - permissions: String("2251804225"), - position: 0, - icon: null, - unicode_emoji: null, - }); - await role.save(); - - if (!body.channels || !body.channels.length) body.channels = [{ id: "01", type: 0, name: "general" }]; - - const ids = new Map(); - - body.channels.forEach((x) => { - if (x.id) { - ids.set(x.id, Snowflake.generate()); - } - }); - - for (const channel of body.channels?.sort((a, b) => (a.parent_id ? 1 : -1))) { - let id = ids.get(channel.id) || Snowflake.generate(); - - let parent_id = ids.get(channel.parent_id); - - await Channel.createChannel({ ...channel, guild_id, id, parent_id }, body.owner_id, { - keepId: true, - skipExistsCheck: true, - skipPermissionCheck: true, - skipEventEmit: true, - }); - } - - return guild; - } -} diff --git a/util/src/entities/Invite.ts b/util/src/entities/Invite.ts deleted file mode 100644 index 1e0ebe52..00000000 --- a/util/src/entities/Invite.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId, PrimaryColumn } from "typeorm"; -import { Member } from "./Member"; -import { BaseClassWithoutId } from "./BaseClass"; -import { Channel } from "./Channel"; -import { Guild } from "./Guild"; -import { User } from "./User"; -import { random } from "@fosscord/api"; - -export const PublicInviteRelation = ["inviter", "guild", "channel"]; - -@Entity("invites") -export class Invite extends BaseClassWithoutId { - @PrimaryColumn() - code: string = random(); - - @Column() - temporary: boolean = true; - - @Column() - uses: number = 0; - - @Column() - max_uses: number; - - @Column() - max_age: number; - - @Column() - created_at: Date = new Date(); - - @Column() - expires_at: Date; - - @Column({ nullable: true }) - @RelationId((invite: Invite) => invite.guild) - guild_id: string; - - @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild, { - onDelete: "CASCADE", - }) - guild: Guild; - - @Column({ nullable: true }) - @RelationId((invite: Invite) => invite.channel) - channel_id: string; - - @JoinColumn({ name: "channel_id" }) - @ManyToOne(() => Channel, { - onDelete: "CASCADE", - }) - channel: Channel; - - @Column({ nullable: true }) - @RelationId((invite: Invite) => invite.inviter) - inviter_id: string; - - @JoinColumn({ name: "inviter_id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE" - }) - inviter: User; - - @Column({ nullable: true }) - @RelationId((invite: Invite) => invite.target_user) - target_user_id: string; - - @JoinColumn({ name: "target_user_id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - target_user?: string; // could be used for "User specific invites" https://github.com/fosscord/fosscord/issues/62 - - @Column({ nullable: true }) - target_user_type?: number; - - @Column({ nullable: true }) - vanity_url?: boolean; - - static async joinGuild(user_id: string, code: string) { - const invite = await Invite.findOneOrFail({ where: { code } }); - if (invite.uses++ >= invite.max_uses && invite.max_uses !== 0) await Invite.delete({ code }); - else await invite.save(); - - await Member.addToGuild(user_id, invite.guild_id); - return invite; - } -} diff --git a/util/src/entities/Member.ts b/util/src/entities/Member.ts deleted file mode 100644 index baac58ed..00000000 --- a/util/src/entities/Member.ts +++ /dev/null @@ -1,360 +0,0 @@ -import { PublicUser, User } from "./User"; -import { BaseClass } from "./BaseClass"; -import { - Column, - Entity, - Index, - JoinColumn, - JoinTable, - ManyToMany, - ManyToOne, - PrimaryGeneratedColumn, - RelationId, -} from "typeorm"; -import { Guild } from "./Guild"; -import { Config, emitEvent } from "../util"; -import { - GuildCreateEvent, - GuildDeleteEvent, - GuildMemberAddEvent, - GuildMemberRemoveEvent, - GuildMemberUpdateEvent, -} from "../interfaces"; -import { HTTPError } from "../util/imports/HTTPError"; -import { Role } from "./Role"; -import { BaseClassWithoutId } from "./BaseClass"; -import { Ban, PublicGuildRelations } from "."; -import { DiscordApiErrors } from "../util/Constants"; -import { OrmUtils } from "../util/imports/OrmUtils"; - -export const MemberPrivateProjection: (keyof Member)[] = [ - "id", - "guild", - "guild_id", - "deaf", - "joined_at", - "last_message_id", - "mute", - "nick", - "pending", - "premium_since", - "roles", - "settings", - "user", -]; - -@Entity("members") -@Index(["id", "guild_id"], { unique: true }) -export class Member extends BaseClassWithoutId { - @PrimaryGeneratedColumn() - index: string; - - @Column() - @RelationId((member: Member) => member.user) - id: string; - - @JoinColumn({ name: "id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - user: User; - - @Column() - @RelationId((member: Member) => member.guild) - guild_id: string; - - @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild, { - onDelete: "CASCADE", - }) - guild: Guild; - - @Column({ nullable: true }) - nick?: string; - - @JoinTable({ - name: "member_roles", - joinColumn: { name: "index", referencedColumnName: "index" }, - inverseJoinColumn: { - name: "role_id", - referencedColumnName: "id", - }, - }) - @ManyToMany(() => Role, { cascade: true }) - roles: Role[]; - - @Column() - joined_at: Date; - - @Column({ nullable: true }) - premium_since?: Date; - - @Column() - deaf: boolean; - - @Column() - mute: boolean; - - @Column() - pending: boolean; - - @Column({ type: "simple-json", select: false }) - settings: UserGuildSettings; - - @Column({ nullable: true }) - last_message_id?: string; - - /** - @JoinColumn({ name: "id" }) - @ManyToOne(() => User, { - onDelete: "DO NOTHING", - // do not auto-kick force-joined members just because their joiners left the server - }) **/ - @Column({ nullable: true }) - joined_by?: string; - - // TODO: add this when we have proper read receipts - // @Column({ type: "simple-json" }) - // read_state: ReadState; - - static async IsInGuildOrFail(user_id: string, guild_id: string) { - if (await Member.count({ where: { id: user_id, guild: { id: guild_id } } })) return true; - throw new HTTPError("You are not member of this guild", 403); - } - - static async removeFromGuild(user_id: string, guild_id: string) { - const guild = await Guild.findOneOrFail({ select: ["owner_id", "member_count"], where: { id: guild_id } }); - if (guild.owner_id === user_id) throw new Error("The owner cannot be removed of the guild"); - const member = await Member.findOneOrFail({ where: { id: user_id, guild_id }, relations: ["user"] }); - - // use promise all to execute all promises at the same time -> save time - //TODO: check for bugs - if (guild.member_count) guild.member_count--; - return Promise.all([ - Member.delete({ - id: user_id, - guild_id, - }), - //Guild.decrement({ id: guild_id }, "member_count", -1), - - emitEvent({ - event: "GUILD_DELETE", - data: { - id: guild_id, - }, - user_id: user_id, - } as GuildDeleteEvent), - emitEvent({ - event: "GUILD_MEMBER_REMOVE", - data: { guild_id, user: member.user }, - guild_id, - } as GuildMemberRemoveEvent), - ]); - } - - static async addRole(user_id: string, guild_id: string, role_id: string) { - const [member, role] = await Promise.all([ - // @ts-ignore - Member.findOneOrFail({ - where: { id: user_id, guild_id }, - relations: ["user", "roles"], // we don't want to load the role objects just the ids - select: ["index"], - }), - Role.findOneOrFail({ where: { id: role_id, guild_id }, select: ["id"] }), - ]); - member.roles.push(OrmUtils.mergeDeep(new Role(), { id: role_id })); - - await Promise.all([ - member.save(), - emitEvent({ - event: "GUILD_MEMBER_UPDATE", - data: { - guild_id, - user: member.user, - roles: member.roles.map((x) => x.id), - }, - guild_id, - } as GuildMemberUpdateEvent), - ]); - } - - static async removeRole(user_id: string, guild_id: string, role_id: string) { - const [member] = await Promise.all([ - // @ts-ignore - Member.findOneOrFail({ - where: { id: user_id, guild_id }, - relations: ["user", "roles"], // we don't want to load the role objects just the ids - select: ["index"], - }), - await Role.findOneOrFail({ where: { id: role_id, guild_id } }), - ]); - member.roles = member.roles.filter((x) => x.id == role_id); - - await Promise.all([ - member.save(), - emitEvent({ - event: "GUILD_MEMBER_UPDATE", - data: { - guild_id, - user: member.user, - roles: member.roles.map((x) => x.id), - }, - guild_id, - } as GuildMemberUpdateEvent), - ]); - } - - static async changeNickname(user_id: string, guild_id: string, nickname: string) { - const member = await Member.findOneOrFail({ - where: { - id: user_id, - guild_id, - }, - relations: ["user"], - }); - member.nick = nickname; - - await Promise.all([ - member.save(), - - emitEvent({ - event: "GUILD_MEMBER_UPDATE", - data: { - guild_id, - user: member.user, - nick: nickname, - }, - guild_id, - } as GuildMemberUpdateEvent), - ]); - } - - static async addToGuild(user_id: string, guild_id: string) { - const user = await User.getPublicUser(user_id); - const isBanned = await Ban.count({ where: { guild_id, user_id } }); - if (isBanned) { - throw DiscordApiErrors.USER_BANNED; - } - const { maxGuilds } = Config.get().limits.user; - const guild_count = await Member.count({ where: { id: user_id } }); - if (guild_count >= maxGuilds) { - throw new HTTPError(`You are at the ${maxGuilds} server limit.`, 403); - } - - const guild = await Guild.findOneOrFail({ - where: { - id: guild_id, - }, - relations: PublicGuildRelations, - }); - - if (await Member.count({ where: { id: user.id, guild: { id: guild_id } } })) - throw new HTTPError("You are already a member of this guild", 400); - - const member = { - id: user_id, - guild_id, - nick: undefined, - roles: [guild_id], // @everyone role - joined_at: new Date(), - premium_since: null, - deaf: false, - mute: false, - pending: false, - }; - //TODO: check for bugs - if (guild.member_count) guild.member_count++; - await Promise.all([ - OrmUtils.mergeDeep(new Member(), { - ...member, - roles: [OrmUtils.mergeDeep(new Role(), { id: guild_id })], - // read_state: {}, - settings: { - channel_overrides: [], - message_notifications: 0, - mobile_push: true, - muted: false, - suppress_everyone: false, - suppress_roles: false, - version: 0, - }, - // Member.save is needed because else the roles relations wouldn't be updated - }).save(), - //Guild.increment({ id: guild_id }, "member_count", 1), - emitEvent({ - event: "GUILD_MEMBER_ADD", - data: { - ...member, - user, - guild_id, - }, - guild_id, - } as GuildMemberAddEvent), - emitEvent({ - event: "GUILD_CREATE", - data: { - ...guild, - members: [...guild.members, { ...member, user }], - member_count: (guild.member_count || 0) + 1, - guild_hashes: {}, - guild_scheduled_events: [], - joined_at: member.joined_at, - presences: [], - stage_instances: [], - threads: [], - }, - user_id, - } as GuildCreateEvent), - ]); - } -} - -export interface UserGuildSettings { - channel_overrides: { - channel_id: string; - message_notifications: number; - mute_config: MuteConfig; - muted: boolean; - }[]; - message_notifications: number; - mobile_push: boolean; - mute_config: MuteConfig; - muted: boolean; - suppress_everyone: boolean; - suppress_roles: boolean; - version: number; -} - -export interface MuteConfig { - end_time: number; - selected_time_window: number; -} - -export type PublicMemberKeys = - | "id" - | "guild_id" - | "nick" - | "roles" - | "joined_at" - | "pending" - | "deaf" - | "mute" - | "premium_since"; - -export const PublicMemberProjection: PublicMemberKeys[] = [ - "id", - "guild_id", - "nick", - "roles", - "joined_at", - "pending", - "deaf", - "mute", - "premium_since", -]; - -// @ts-ignore -export type PublicMember = Pick> & { - user: PublicUser; - roles: string[]; // only role ids not objects -}; diff --git a/util/src/entities/Message.ts b/util/src/entities/Message.ts deleted file mode 100644 index ba3d4f2d..00000000 --- a/util/src/entities/Message.ts +++ /dev/null @@ -1,284 +0,0 @@ -import { User } from "./User"; -import { Member } from "./Member"; -import { Role } from "./Role"; -import { Channel } from "./Channel"; -import { InteractionType } from "../interfaces/Interaction"; -import { Application } from "./Application"; -import { - Column, - CreateDateColumn, - Entity, - Index, - JoinColumn, - JoinTable, - ManyToMany, - ManyToOne, - OneToMany, - RelationId, - RemoveOptions, - UpdateDateColumn, -} from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { Guild } from "./Guild"; -import { Webhook } from "./Webhook"; -import { Sticker } from "./Sticker"; -import { Attachment } from "./Attachment"; - -export enum MessageType { - DEFAULT = 0, - RECIPIENT_ADD = 1, - RECIPIENT_REMOVE = 2, - CALL = 3, - CHANNEL_NAME_CHANGE = 4, - CHANNEL_ICON_CHANGE = 5, - CHANNEL_PINNED_MESSAGE = 6, - GUILD_MEMBER_JOIN = 7, - USER_PREMIUM_GUILD_SUBSCRIPTION = 8, - USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1 = 9, - USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2 = 10, - USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3 = 11, - CHANNEL_FOLLOW_ADD = 12, - ACTION = 13, // /me messages - GUILD_DISCOVERY_DISQUALIFIED = 14, - GUILD_DISCOVERY_REQUALIFIED = 15, - ENCRYPTED = 16, - REPLY = 19, - APPLICATION_COMMAND = 20, // application command or self command invocation - ROUTE_ADDED = 41, // custom message routing: new route affecting that channel - ROUTE_DISABLED = 42, // custom message routing: given route no longer affecting that channel - SELF_COMMAND_SCRIPT = 43, // self command scripts - ENCRYPTION = 50, - CUSTOM_START = 63, - UNHANDLED = 255 -} - -@Entity("messages") -@Index(["channel_id", "id"], { unique: true }) -export class Message extends BaseClass { - @Column({ nullable: true }) - @RelationId((message: Message) => message.channel) - @Index() - channel_id: string; - - @JoinColumn({ name: "channel_id" }) - @ManyToOne(() => Channel, { - onDelete: "CASCADE", - }) - channel: Channel; - - @Column({ nullable: true }) - @RelationId((message: Message) => message.guild) - guild_id?: string; - - @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild, { - onDelete: "CASCADE", - }) - guild?: Guild; - - @Column({ nullable: true }) - @RelationId((message: Message) => message.author) - @Index() - author_id: string; - - @JoinColumn({ name: "author_id", referencedColumnName: "id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - author?: User; - - @Column({ nullable: true }) - @RelationId((message: Message) => message.member) - member_id: string; - - @JoinColumn({ name: "member_id", referencedColumnName: "id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - member?: Member; - - @Column({ nullable: true }) - @RelationId((message: Message) => message.webhook) - webhook_id: string; - - @JoinColumn({ name: "webhook_id" }) - @ManyToOne(() => Webhook) - webhook?: Webhook; - - @Column({ nullable: true }) - @RelationId((message: Message) => message.application) - application_id: string; - - @JoinColumn({ name: "application_id" }) - @ManyToOne(() => Application) - application?: Application; - - @Column({ nullable: true }) - content?: string; - - @Column() - @CreateDateColumn() - timestamp: Date; - - @Column({ nullable: true }) - edited_timestamp?: Date; - - @Column({ nullable: true }) - tts?: boolean; - - @Column({ nullable: true }) - mention_everyone?: boolean; - - @JoinTable({ name: "message_user_mentions" }) - @ManyToMany(() => User) - mentions: User[]; - - @JoinTable({ name: "message_role_mentions" }) - @ManyToMany(() => Role) - mention_roles: Role[]; - - @JoinTable({ name: "message_channel_mentions" }) - @ManyToMany(() => Channel) - mention_channels: Channel[]; - - @JoinTable({ name: "message_stickers" }) - @ManyToMany(() => Sticker, { cascade: true, onDelete: "CASCADE" }) - sticker_items?: Sticker[]; - - @OneToMany(() => Attachment, (attachment: Attachment) => attachment.message, { - cascade: true, - orphanedRowAction: "delete", - }) - attachments?: Attachment[]; - - @Column({ type: "simple-json" }) - embeds: Embed[]; - - @Column({ type: "simple-json" }) - reactions: Reaction[]; - - @Column({ type: "text", nullable: true }) - nonce?: string; - - @Column({ nullable: true }) - pinned?: boolean; - - @Column({ type: "int" }) - type: MessageType; - - @Column({ type: "simple-json", nullable: true }) - activity?: { - type: number; - party_id: string; - }; - - @Column({ nullable: true }) - flags?: string; - @Column({ type: "simple-json", nullable: true }) - message_reference?: { - message_id: string; - channel_id?: string; - guild_id?: string; - }; - - @JoinColumn({ name: "message_reference_id" }) - @ManyToOne(() => Message) - referenced_message?: Message; - - @Column({ type: "simple-json", nullable: true }) - interaction?: { - id: string; - type: InteractionType; - name: string; - user_id: string; // the user who invoked the interaction - // user: User; // TODO: autopopulate user - }; - - @Column({ type: "simple-json", nullable: true }) - components?: MessageComponent[]; -} - -export interface MessageComponent { - type: number; - style?: number; - label?: string; - emoji?: PartialEmoji; - custom_id?: string; - url?: string; - disabled?: boolean; - components: MessageComponent[]; -} - -export enum MessageComponentType { - Script = 0, // self command script - ActionRow = 1, - Button = 2, -} - -export interface Embed { - title?: string; //title of embed - type?: EmbedType; // type of embed (always "rich" for webhook embeds) - description?: string; // description of embed - url?: string; // url of embed - timestamp?: Date; // timestamp of embed content - color?: number; // color code of the embed - footer?: { - text: string; - icon_url?: string; - proxy_icon_url?: string; - }; // footer object footer information - image?: EmbedImage; // image object image information - thumbnail?: EmbedImage; // thumbnail object thumbnail information - video?: EmbedImage; // video object video information - provider?: { - name?: string; - url?: string; - }; // provider object provider information - author?: { - name?: string; - url?: string; - icon_url?: string; - proxy_icon_url?: string; - }; // author object author information - fields?: { - name: string; - value: string; - inline?: boolean; - }[]; -} - -export enum EmbedType { - rich = "rich", - image = "image", - video = "video", - gifv = "gifv", - article = "article", - link = "link", -} - -export interface EmbedImage { - url?: string; - proxy_url?: string; - height?: number; - width?: number; -} - -export interface Reaction { - count: number; - //// not saved in the database // me: boolean; // whether the current user reacted using this emoji - emoji: PartialEmoji; - user_ids: string[]; -} - -export interface PartialEmoji { - id?: string; - name: string; - animated?: boolean; -} - -export interface AllowedMentions { - parse?: ("users" | "roles" | "everyone")[]; - roles?: string[]; - users?: string[]; - replied_user?: boolean; -} diff --git a/util/src/entities/Migration.ts b/util/src/entities/Migration.ts deleted file mode 100644 index 3f39ae72..00000000 --- a/util/src/entities/Migration.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Column, Entity, ObjectIdColumn, PrimaryGeneratedColumn } from "typeorm"; -import { BaseClassWithoutId } from "."; - -export const PrimaryIdAutoGenerated = process.env.DATABASE?.startsWith("mongodb") - ? ObjectIdColumn - : PrimaryGeneratedColumn; - -@Entity("migrations") -export class Migration extends BaseClassWithoutId { - @PrimaryIdAutoGenerated() - id: number; - - @Column({ type: "bigint" }) - timestamp: number; - - @Column() - name: string; -} diff --git a/util/src/entities/Note.ts b/util/src/entities/Note.ts deleted file mode 100644 index 36017c5e..00000000 --- a/util/src/entities/Note.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, Unique } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { User } from "./User"; - -@Entity("notes") -@Unique(["owner", "target"]) -export class Note extends BaseClass { - @JoinColumn({ name: "owner_id" }) - @ManyToOne(() => User, { onDelete: "CASCADE" }) - owner: User; - - @JoinColumn({ name: "target_id" }) - @ManyToOne(() => User, { onDelete: "CASCADE" }) - target: User; - - @Column() - content: string; -} \ No newline at end of file diff --git a/util/src/entities/RateLimit.ts b/util/src/entities/RateLimit.ts deleted file mode 100644 index f5916f6b..00000000 --- a/util/src/entities/RateLimit.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Column, Entity } from "typeorm"; -import { BaseClass } from "./BaseClass"; - -@Entity("rate_limits") -export class RateLimit extends BaseClass { - @Column() // no relation as it also - executor_id: string; - - @Column() - hits: number; - - @Column() - blocked: boolean; - - @Column() - expires_at: Date; -} diff --git a/util/src/entities/ReadState.ts b/util/src/entities/ReadState.ts deleted file mode 100644 index b915573b..00000000 --- a/util/src/entities/ReadState.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Column, Entity, Index, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { Channel } from "./Channel"; -import { Message } from "./Message"; -import { User } from "./User"; - -// for read receipts -// notification cursor and public read receipt need to be forwards-only (the former to prevent re-pinging when marked as unread, and the latter to be acceptable as a legal acknowledgement in criminal proceedings), and private read marker needs to be advance-rewind capable -// public read receipt ≥ notification cursor ≥ private fully read marker - -@Entity("read_states") -@Index(["channel_id", "user_id"], { unique: true }) -export class ReadState extends BaseClass { - @Column() - @RelationId((read_state: ReadState) => read_state.channel) - channel_id: string; - - @JoinColumn({ name: "channel_id" }) - @ManyToOne(() => Channel, { - onDelete: "CASCADE", - }) - channel: Channel; - - @Column() - @RelationId((read_state: ReadState) => read_state.user) - user_id: string; - - @JoinColumn({ name: "user_id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - user: User; - - // fully read marker - @Column({ nullable: true }) - last_message_id: string; - - // public read receipt - @Column({ nullable: true }) - public_ack: string; - - // notification cursor / private read receipt - @Column({ nullable: true }) - notifications_cursor: string; - - @Column({ nullable: true }) - last_pin_timestamp?: Date; - - @Column({ nullable: true }) - mention_count: number; - - // @Column({ nullable: true }) - // TODO: derive this from (last_message_id=notifications_cursor=public_ack)=true - manual: boolean; -} diff --git a/util/src/entities/Recipient.ts b/util/src/entities/Recipient.ts deleted file mode 100644 index a945f938..00000000 --- a/util/src/entities/Recipient.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; - -@Entity("recipients") -export class Recipient extends BaseClass { - @Column() - @RelationId((recipient: Recipient) => recipient.channel) - channel_id: string; - - @JoinColumn({ name: "channel_id" }) - @ManyToOne(() => require("./Channel").Channel, { - onDelete: "CASCADE", - }) - channel: import("./Channel").Channel; - - @Column() - @RelationId((recipient: Recipient) => recipient.user) - user_id: string; - - @JoinColumn({ name: "user_id" }) - @ManyToOne(() => require("./User").User, { - onDelete: "CASCADE", - }) - user: import("./User").User; - - @Column({ default: false }) - closed: boolean; - - // TODO: settings/mute/nick/added at/encryption keys/read_state -} diff --git a/util/src/entities/Relationship.ts b/util/src/entities/Relationship.ts deleted file mode 100644 index c3592c76..00000000 --- a/util/src/entities/Relationship.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Column, Entity, Index, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { User } from "./User"; - -export enum RelationshipType { - outgoing = 4, - incoming = 3, - blocked = 2, - friends = 1, -} - -@Entity("relationships") -@Index(["from_id", "to_id"], { unique: true }) -export class Relationship extends BaseClass { - @Column({}) - @RelationId((relationship: Relationship) => relationship.from) - from_id: string; - - @JoinColumn({ name: "from_id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - from: User; - - @Column({}) - @RelationId((relationship: Relationship) => relationship.to) - to_id: string; - - @JoinColumn({ name: "to_id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - to: User; - - @Column({ nullable: true }) - nickname?: string; - - @Column({ type: "int" }) - type: RelationshipType; - - toPublicRelationship() { - return { - id: this.to?.id || this.to_id, - type: this.type, - nickname: this.nickname, - user: this.to?.toPublicUser(), - }; - } -} diff --git a/util/src/entities/Role.ts b/util/src/entities/Role.ts deleted file mode 100644 index 4b721b5b..00000000 --- a/util/src/entities/Role.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; - -import { BaseClass } from "./BaseClass"; -import { Guild } from "./Guild"; - -@Entity("roles") -export class Role extends BaseClass { - @Column({ nullable: true }) - @RelationId((role: Role) => role.guild) - guild_id: string; - - @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild, { - onDelete: "CASCADE", - }) - guild: Guild; - - @Column() - color: number; - - @Column() - hoist: boolean; - - @Column() - managed: boolean; - - @Column() - mentionable: boolean; - - @Column() - name: string; - - @Column() - permissions: string; - - @Column() - position: number; - - @Column({ nullable: true }) - icon: string; - - @Column({ nullable: true }) - unicode_emoji: string; - - @Column({ type: "simple-json", nullable: true }) - tags?: { - bot_id?: string; - integration_id?: string; - premium_subscriber?: boolean; - }; -} diff --git a/util/src/entities/Session.ts b/util/src/entities/Session.ts deleted file mode 100644 index 969efa89..00000000 --- a/util/src/entities/Session.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { User } from "./User"; -import { BaseClass } from "./BaseClass"; -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { Status } from "../interfaces/Status"; -import { Activity } from "../interfaces/Activity"; - -//TODO we need to remove all sessions on server start because if the server crashes without closing websockets it won't delete them - -@Entity("sessions") -export class Session extends BaseClass { - @Column({ nullable: true }) - @RelationId((session: Session) => session.user) - user_id: string; - - @JoinColumn({ name: "user_id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - user: User; - - //TODO check, should be 32 char long hex string - @Column({ nullable: false, select: false }) - session_id: string; - - @Column({ type: "simple-json", nullable: true }) - activities: Activity[]; - - // TODO client_status - @Column({ type: "simple-json", select: false }) - client_info: { - client: string; - os: string; - version: number; - }; - - @Column({ nullable: false, type: "varchar" }) - status: Status; //TODO enum -} - -export const PrivateSessionProjection: (keyof Session)[] = [ - "user_id", - "session_id", - "activities", - "client_info", - "status", -]; diff --git a/util/src/entities/Sticker.ts b/util/src/entities/Sticker.ts deleted file mode 100644 index 37bc6fbe..00000000 --- a/util/src/entities/Sticker.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { User } from "./User"; -import { BaseClass } from "./BaseClass"; -import { Guild } from "./Guild"; - -export enum StickerType { - STANDARD = 1, - GUILD = 2, -} - -export enum StickerFormatType { - GIF = 0, // gif is a custom format type and not in discord spec - PNG = 1, - APNG = 2, - LOTTIE = 3, -} - -@Entity("stickers") -export class Sticker extends BaseClass { - @Column() - name: string; - - @Column({ nullable: true }) - description?: string; - - @Column({ nullable: true }) - available?: boolean; - - @Column({ nullable: true }) - tags?: string; - - @Column({ nullable: true }) - @RelationId((sticker: Sticker) => sticker.pack) - pack_id?: string; - - @JoinColumn({ name: "pack_id" }) - @ManyToOne(() => require("./StickerPack").StickerPack, { - onDelete: "CASCADE", - nullable: true, - }) - pack: import("./StickerPack").StickerPack; - - @Column({ nullable: true }) - guild_id?: string; - - @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild, { - onDelete: "CASCADE", - }) - guild?: Guild; - - @Column({ nullable: true }) - user_id?: string; - - @JoinColumn({ name: "user_id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - user?: User; - - @Column({ type: "int" }) - type: StickerType; - - @Column({ type: "int" }) - format_type: StickerFormatType; -} diff --git a/util/src/entities/StickerPack.ts b/util/src/entities/StickerPack.ts deleted file mode 100644 index ec8c69a2..00000000 --- a/util/src/entities/StickerPack.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, OneToMany, OneToOne, RelationId } from "typeorm"; -import { Sticker } from "."; -import { BaseClass } from "./BaseClass"; - -@Entity("sticker_packs") -export class StickerPack extends BaseClass { - @Column() - name: string; - - @Column({ nullable: true }) - description?: string; - - @Column({ nullable: true }) - banner_asset_id?: string; - - @OneToMany(() => Sticker, (sticker: Sticker) => sticker.pack, { - cascade: true, - orphanedRowAction: "delete", - }) - stickers: Sticker[]; - - // sku_id: string - - @Column({ nullable: true }) - @RelationId((pack: StickerPack) => pack.cover_sticker) - cover_sticker_id?: string; - - @ManyToOne(() => Sticker, { nullable: true }) - @JoinColumn() - cover_sticker?: Sticker; -} diff --git a/util/src/entities/Team.ts b/util/src/entities/Team.ts deleted file mode 100644 index 22140b7f..00000000 --- a/util/src/entities/Team.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToMany, ManyToOne, OneToMany, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { TeamMember } from "./TeamMember"; -import { User } from "./User"; - -@Entity("teams") -export class Team extends BaseClass { - @Column({ nullable: true }) - icon?: string; - - @JoinColumn({ name: "member_ids" }) - @OneToMany(() => TeamMember, (member: TeamMember) => member.team, { - orphanedRowAction: "delete", - }) - members: TeamMember[]; - - @Column() - name: string; - - @Column({ nullable: true }) - @RelationId((team: Team) => team.owner_user) - owner_user_id: string; - - @JoinColumn({ name: "owner_user_id" }) - @ManyToOne(() => User) - owner_user: User; -} diff --git a/util/src/entities/TeamMember.ts b/util/src/entities/TeamMember.ts deleted file mode 100644 index b726e1e8..00000000 --- a/util/src/entities/TeamMember.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { User } from "./User"; - -export enum TeamMemberState { - INVITED = 1, - ACCEPTED = 2, -} - -@Entity("team_members") -export class TeamMember extends BaseClass { - @Column({ type: "int" }) - membership_state: TeamMemberState; - - @Column({ type: "simple-array" }) - permissions: string[]; - - @Column({ nullable: true }) - @RelationId((member: TeamMember) => member.team) - team_id: string; - - @JoinColumn({ name: "team_id" }) - @ManyToOne(() => require("./Team").Team, (team: import("./Team").Team) => team.members, { - onDelete: "CASCADE", - }) - team: import("./Team").Team; - - @Column({ nullable: true }) - @RelationId((member: TeamMember) => member.user) - user_id: string; - - @JoinColumn({ name: "user_id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - user: User; -} diff --git a/util/src/entities/Template.ts b/util/src/entities/Template.ts deleted file mode 100644 index 1d952283..00000000 --- a/util/src/entities/Template.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { Guild } from "./Guild"; -import { User } from "./User"; - -@Entity("templates") -export class Template extends BaseClass { - @Column({ unique: true }) - code: string; - - @Column() - name: string; - - @Column({ nullable: true }) - description?: string; - - @Column({ nullable: true }) - usage_count?: number; - - @Column({ nullable: true }) - @RelationId((template: Template) => template.creator) - creator_id: string; - - @JoinColumn({ name: "creator_id" }) - @ManyToOne(() => User) - creator: User; - - @Column() - created_at: Date; - - @Column() - updated_at: Date; - - @Column({ nullable: true }) - @RelationId((template: Template) => template.source_guild) - source_guild_id: string; - - @JoinColumn({ name: "source_guild_id" }) - @ManyToOne(() => Guild) - source_guild: Guild; - - @Column({ type: "simple-json" }) - serialized_source_guild: Guild; -} diff --git a/util/src/entities/User.ts b/util/src/entities/User.ts deleted file mode 100644 index 61343e81..00000000 --- a/util/src/entities/User.ts +++ /dev/null @@ -1,324 +0,0 @@ -import { Column, Entity, FindOneOptions, FindOptionsSelectByString, JoinColumn, OneToMany, OneToOne } from "typeorm"; -import { OrmUtils } from "../util/imports/OrmUtils"; -import { BaseClass } from "./BaseClass"; -import { BitField } from "../util/BitField"; -import { Relationship } from "./Relationship"; -import { ConnectedAccount } from "./ConnectedAccount"; -import { Config, FieldErrors, Snowflake, trimSpecial } from ".."; -import { Member, Session, UserSettings } from "."; - -export enum PublicUserEnum { - username, - discriminator, - id, - public_flags, - avatar, - accent_color, - banner, - bio, - bot, - premium_since, -} -export type PublicUserKeys = keyof typeof PublicUserEnum; - -export enum PrivateUserEnum { - flags, - mfa_enabled, - email, - phone, - verified, - nsfw_allowed, - premium, - premium_type, - disabled, - settings, - // locale -} -export type PrivateUserKeys = keyof typeof PrivateUserEnum | PublicUserKeys; - -export const PublicUserProjection = Object.values(PublicUserEnum).filter( - (x) => typeof x === "string" -) as PublicUserKeys[]; -export const PrivateUserProjection = [ - ...PublicUserProjection, - ...Object.values(PrivateUserEnum).filter((x) => typeof x === "string"), -] as PrivateUserKeys[]; - -// Private user data that should never get sent to the client -export type PublicUser = Pick; - -export interface UserPublic extends Pick {} - -export interface UserPrivate extends Pick { - locale: string; -} - -// TODO: add purchased_flags, premium_usage_flags - -@Entity("users") -export class User extends BaseClass { - @Column() - username: string; // username max length 32, min 2 (should be configurable) - - @Column() - discriminator: string; // opaque string: 4 digits on discord.com - - setDiscriminator(val: string) { - const number = Number(val); - if (isNaN(number)) throw new Error("invalid discriminator"); - if (number <= 0 || number >= 10000) throw new Error("discriminator must be between 1 and 9999"); - this.discriminator = val.toString().padStart(4, "0"); - } - - @Column({ nullable: true }) - avatar?: string; // hash of the user avatar - - @Column({ nullable: true }) - accent_color?: number; // banner color of user - - @Column({ nullable: true }) - banner?: string; // hash of the user banner - - @Column({ nullable: true, select: false }) - phone?: string; // phone number of the user - - @Column({ select: false }) - desktop: boolean = false; // if the user has desktop app installed - - @Column({ select: false }) - mobile: boolean = false; // if the user has mobile app installed - - @Column() - premium: boolean = Config.get().defaults.user.premium; // if user bought individual premium - - @Column() - premium_type: number = Config.get().defaults.user.premium_type; // individual premium level - - @Column() - bot: boolean = false; // if user is bot - - @Column() - bio: string; // short description of the user (max 190 chars -> should be configurable) - - @Column() - system: boolean = false; // shouldn't be used, the api sends this field type true, if the generated message comes from a system generated author - - @Column({ select: false }) - nsfw_allowed: boolean = true; // if the user can do age-restricted actions (NSFW channels/guilds/commands) // TODO: depending on age - - @Column({ select: false }) - mfa_enabled: boolean; // if multi factor authentication is enabled - - @Column({ select: false, nullable: true }) - totp_secret?: string; - - @Column({ nullable: true, select: false }) - totp_last_ticket?: string; - - @Column() - created_at: Date = new Date(); // registration date - - @Column({ nullable: true }) - premium_since: Date = new Date(); // premium date - - @Column({ select: false }) - verified: boolean = Config.get().defaults.user.verified; // if the user is offically verified - - @Column() - disabled: boolean = false; // if the account is disabled - - @Column() - deleted: boolean = false; // if the user was deleted - - @Column({ nullable: true, select: false }) - email?: string; // email of the user - - @Column() - flags: string = "0"; // UserFlags // TODO: generate - - @Column() - public_flags: number = 0; - - @Column({ type: "bigint" }) - rights: string = Config.get().register.defaultRights; // Rights - - @OneToMany(() => Session, (session: Session) => session.user) - sessions: Session[]; - - @JoinColumn({ name: "relationship_ids" }) - @OneToMany(() => Relationship, (relationship: Relationship) => relationship.from, { - cascade: true, - orphanedRowAction: "delete", - }) - relationships: Relationship[]; - - @JoinColumn({ name: "connected_account_ids" }) - @OneToMany(() => ConnectedAccount, (account: ConnectedAccount) => account.user, { - cascade: true, - orphanedRowAction: "delete", - }) - connected_accounts: ConnectedAccount[]; - - @Column({ type: "simple-json", select: false }) - data: { - valid_tokens_since: Date; // all tokens with a previous issue date are invalid - hash?: string; // hash of the password, salt is saved in password (bcrypt) - }; - - @Column({ type: "simple-array", select: false }) - fingerprints: string[] = []; // array of fingerprints -> used to prevent multiple accounts - - - @OneToOne(()=> UserSettings, { - cascade: true, - orphanedRowAction: "delete", - eager: false - }) - @JoinColumn() - settings: UserSettings; - - // workaround to prevent fossord-unaware clients from deleting settings not used by them - @Column({ type: "simple-json", select: false }) - extended_settings: string = "{}"; - - @Column({ type: "simple-json" }) - notes: { [key: string]: string } = {}; //key is ID of user - - async save(): Promise { - if(!this.settings) this.settings = new UserSettings(); - this.settings.id = this.id; - //await this.settings.save(); - return super.save(); - } - - toPublicUser() { - const user: any = {}; - PublicUserProjection.forEach((x) => { - user[x] = this[x]; - }); - return user as PublicUser; - } - - static async getPublicUser(user_id: string, opts?: FindOneOptions) { - return await User.findOneOrFail({ - where: { id: user_id }, - select: [...PublicUserProjection, ...((opts?.select as FindOptionsSelectByString) || [])], - ...opts, - }); - } - - public static async generateDiscriminator(username: string): Promise { - if (Config.get().register.incrementingDiscriminators) { - // discriminator will be incrementally generated - - // First we need to figure out the currently highest discrimnator for the given username and then increment it - const users = await User.find({ where: { username }, select: ["discriminator"] }); - const highestDiscriminator = Math.max(0, ...users.map((u) => Number(u.discriminator))); - - const discriminator = highestDiscriminator + 1; - if (discriminator >= 10000) { - return undefined; - } - - return discriminator.toString().padStart(4, "0"); - } else { - // discriminator will be randomly generated - - // randomly generates a discriminator between 1 and 9999 and checks max five times if it already exists - // TODO: is there any better way to generate a random discriminator only once, without checking if it already exists in the database? - for (let tries = 0; tries < 5; tries++) { - const discriminator = Math.randomIntBetween(1, 9999).toString().padStart(4, "0"); - const exists = await User.findOne({ where: { discriminator, username: username }, select: ["id"] }); - if (!exists) return discriminator; - } - - return undefined; - } - } - - static async register({ - email, - username, - password, - date_of_birth, - req, - }: { - username: string; - password?: string; - email?: string; - date_of_birth?: Date; // "2000-04-03" - req?: any; - }) { - // trim special uf8 control characters -> Backspace, Newline, ... - username = trimSpecial(username); - - const discriminator = await User.generateDiscriminator(username); - if (!discriminator) { - // We've failed to generate a valid and unused discriminator - throw FieldErrors({ - username: { - code: "USERNAME_TOO_MANY_USERS", - message: req?.t("auth:register.USERNAME_TOO_MANY_USERS"), - }, - }); - } - - // TODO: save date_of_birth - // appearently discord doesn't save the date of birth and just calculate if nsfw is allowed - // if nsfw_allowed is null/undefined it'll require date_of_birth to set it to true/false - const language = req?.language === "en" ? "en-US" : req?.language || "en-US"; - - const user = OrmUtils.mergeDeep(new User(), { - //required: - username: username, - discriminator, - id: Snowflake.generate(), - email: email, - data: { - hash: password, - valid_tokens_since: new Date(), - }, - settings: { ...new UserSettings(), locale: language } - }); - - await user.save(); - await user.settings.save(); - - setImmediate(async () => { - if (Config.get().guild.autoJoin.enabled) { - for (const guild of Config.get().guild.autoJoin.guilds || []) { - await Member.addToGuild(user.id, guild).catch((e) => {}); - } - } - }); - - return user; - } -} - -export const CUSTOM_USER_FLAG_OFFSET = BigInt(1) << BigInt(32); - -export class UserFlags extends BitField { - static FLAGS = { - DISCORD_EMPLOYEE: BigInt(1) << BigInt(0), - PARTNERED_SERVER_OWNER: BigInt(1) << BigInt(1), - HYPESQUAD_EVENTS: BigInt(1) << BigInt(2), - BUGHUNTER_LEVEL_1: BigInt(1) << BigInt(3), - MFA_SMS: BigInt(1) << BigInt(4), - PREMIUM_PROMO_DISMISSED: BigInt(1) << BigInt(5), - HOUSE_BRAVERY: BigInt(1) << BigInt(6), - HOUSE_BRILLIANCE: BigInt(1) << BigInt(7), - HOUSE_BALANCE: BigInt(1) << BigInt(8), - EARLY_SUPPORTER: BigInt(1) << BigInt(9), - TEAM_USER: BigInt(1) << BigInt(10), - TRUST_AND_SAFETY: BigInt(1) << BigInt(11), - SYSTEM: BigInt(1) << BigInt(12), - HAS_UNREAD_URGENT_MESSAGES: BigInt(1) << BigInt(13), - BUGHUNTER_LEVEL_2: BigInt(1) << BigInt(14), - UNDERAGE_DELETED: BigInt(1) << BigInt(15), - VERIFIED_BOT: BigInt(1) << BigInt(16), - EARLY_VERIFIED_BOT_DEVELOPER: BigInt(1) << BigInt(17), - CERTIFIED_MODERATOR: BigInt(1) << BigInt(18), - BOT_HTTP_INTERACTIONS: BigInt(1) << BigInt(19), - }; -} diff --git a/util/src/entities/UserGroup.ts b/util/src/entities/UserGroup.ts deleted file mode 100644 index 709b9d0b..00000000 --- a/util/src/entities/UserGroup.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; - -import { BaseClass } from "./BaseClass"; -import { Guild } from "./Guild"; -import { User } from "./User"; - -@Entity("groups") -export class UserGroup extends BaseClass { - @Column() - color: number; - - @Column() - hoist: boolean; - - @JoinColumn({ name: "controller", referencedColumnName: "id" }) - @ManyToOne(() => User) - controller?: User; - - @Column() - mentionable_by?: string; - - @Column() - name: string; - - @Column() - rights: string; - - @Column({ nullable: true }) - icon: string; - - @Column({ nullable: true }) - parent?: string; - - @Column({ type: "simple-array", nullable: true}) - associciations: string[]; - -} diff --git a/util/src/entities/UserSettings.ts b/util/src/entities/UserSettings.ts deleted file mode 100644 index ef6f95af..00000000 --- a/util/src/entities/UserSettings.ts +++ /dev/null @@ -1,119 +0,0 @@ -import { Column, Entity, JoinColumn } from "typeorm"; -import { BaseClassWithoutId, PrimaryIdColumn } from "."; - -@Entity("user_settings") -export class UserSettings extends BaseClassWithoutId { - @PrimaryIdColumn() - id: string; - - @Column({ nullable: true }) - afk_timeout: number = 3600; - - @Column({ nullable: true }) - allow_accessibility_detection: boolean = true; - - @Column({ nullable: true }) - animate_emoji: boolean = true; - - @Column({ nullable: true }) - animate_stickers: number = 0; - - @Column({ nullable: true }) - contact_sync_enabled: boolean = false; - - @Column({ nullable: true }) - convert_emoticons: boolean = false; - - @Column({ nullable: true, type: "simple-json" }) - custom_status: CustomStatus | null = null; - - @Column({ nullable: true }) - default_guilds_restricted: boolean = false; - - @Column({ nullable: true }) - detect_platform_accounts: boolean = false; - - @Column({ nullable: true }) - developer_mode: boolean = true; - - @Column({ nullable: true }) - disable_games_tab: boolean = true; - - @Column({ nullable: true }) - enable_tts_command: boolean = false; - - @Column({ nullable: true }) - explicit_content_filter: number = 0; - - @Column({ nullable: true, type: "simple-json" }) - friend_source_flags: FriendSourceFlags = { all: true }; - - @Column({ nullable: true }) - gateway_connected: boolean = false; - - @Column({ nullable: true }) - gif_auto_play: boolean = false; - - @Column({ nullable: true, type: "simple-json" }) - guild_folders: GuildFolder[] = []; // every top guild is displayed as a "folder" - - @Column({ nullable: true, type: "simple-json" }) - guild_positions: string[] = []; // guild ids ordered by position - - @Column({ nullable: true }) - inline_attachment_media: boolean = true; - - @Column({ nullable: true }) - inline_embed_media: boolean = true; - - @Column({ nullable: true }) - locale: string = "en-US"; // en_US - - @Column({ nullable: true }) - message_display_compact: boolean = false; - - @Column({ nullable: true }) - native_phone_integration_enabled: boolean = true; - - @Column({ nullable: true }) - render_embeds: boolean = true; - - @Column({ nullable: true }) - render_reactions: boolean = true; - - @Column({ nullable: true, type: "simple-json" }) - restricted_guilds: string[] = []; - - @Column({ nullable: true }) - show_current_game: boolean = true; - - @Column({ nullable: true }) - status: "online" | "offline" | "dnd" | "idle" | "invisible" = "online"; - - @Column({ nullable: true }) - stream_notifications_enabled: boolean = false; - - @Column({ nullable: true }) - theme: "dark" | "white" = "dark"; // dark - - @Column({ nullable: true }) - timezone_offset: number = 0; // e.g -60 -} - -interface CustomStatus { - emoji_id?: string; - emoji_name?: string; - expires_at?: number; - text?: string; -} - -interface GuildFolder { - color: number; - guild_ids: string[]; - id: number; - name: string; -} - -interface FriendSourceFlags { - all: boolean -} \ No newline at end of file diff --git a/util/src/entities/VoiceState.ts b/util/src/entities/VoiceState.ts deleted file mode 100644 index 75748a01..00000000 --- a/util/src/entities/VoiceState.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { BaseClass } from "./BaseClass"; -import { Channel } from "./Channel"; -import { Guild } from "./Guild"; -import { User } from "./User"; -import { Member } from "./Member"; - -//https://gist.github.com/vassjozsef/e482c65df6ee1facaace8b3c9ff66145#file-voice_state-ex -@Entity("voice_states") -export class VoiceState extends BaseClass { - @Column({ nullable: true }) - @RelationId((voice_state: VoiceState) => voice_state.guild) - guild_id: string; - - @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild, { - onDelete: "CASCADE", - }) - guild?: Guild; - - @Column({ nullable: true }) - @RelationId((voice_state: VoiceState) => voice_state.channel) - channel_id: string; - - @JoinColumn({ name: "channel_id" }) - @ManyToOne(() => Channel, { - onDelete: "CASCADE", - }) - channel: Channel; - - @Column({ nullable: true }) - @RelationId((voice_state: VoiceState) => voice_state.user) - user_id: string; - - @JoinColumn({ name: "user_id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - user: User; - - // @JoinColumn([{ name: "user_id", referencedColumnName: "id" },{ name: "guild_id", referencedColumnName: "guild_id" }]) - // @ManyToOne(() => Member, { - // onDelete: "CASCADE", - // }) - //TODO find a way to make it work without breaking Guild.voice_states - member: Member; - - @Column() - session_id: string; - - @Column({ nullable: true }) - token: string; - - @Column() - deaf: boolean; - - @Column() - mute: boolean; - - @Column() - self_deaf: boolean; - - @Column() - self_mute: boolean; - - @Column({ nullable: true }) - self_stream?: boolean; - - @Column() - self_video: boolean; - - @Column() - suppress: boolean; // whether this user is muted by the current user - - @Column({ nullable: true, default: null }) - request_to_speak_timestamp?: Date; -} diff --git a/util/src/entities/Webhook.ts b/util/src/entities/Webhook.ts deleted file mode 100644 index 89538417..00000000 --- a/util/src/entities/Webhook.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { Column, Entity, JoinColumn, ManyToOne, RelationId } from "typeorm"; -import { Application } from "./Application"; -import { BaseClass } from "./BaseClass"; -import { Channel } from "./Channel"; -import { Guild } from "./Guild"; -import { User } from "./User"; - -export enum WebhookType { - Incoming = 1, - ChannelFollower = 2, -} - -@Entity("webhooks") -export class Webhook extends BaseClass { - @Column({ type: "int" }) - type: WebhookType; - - @Column({ nullable: true }) - name?: string; - - @Column({ nullable: true }) - avatar?: string; - - @Column({ nullable: true }) - token?: string; - - @Column({ nullable: true }) - @RelationId((webhook: Webhook) => webhook.guild) - guild_id: string; - - @JoinColumn({ name: "guild_id" }) - @ManyToOne(() => Guild, { - onDelete: "CASCADE", - }) - guild: Guild; - - @Column({ nullable: true }) - @RelationId((webhook: Webhook) => webhook.channel) - channel_id: string; - - @JoinColumn({ name: "channel_id" }) - @ManyToOne(() => Channel, { - onDelete: "CASCADE", - }) - channel: Channel; - - @Column({ nullable: true }) - @RelationId((webhook: Webhook) => webhook.application) - application_id: string; - - @JoinColumn({ name: "application_id" }) - @ManyToOne(() => Application, { - onDelete: "CASCADE", - }) - application: Application; - - @Column({ nullable: true }) - @RelationId((webhook: Webhook) => webhook.user) - user_id: string; - - @JoinColumn({ name: "user_id" }) - @ManyToOne(() => User, { - onDelete: "CASCADE", - }) - user: User; - - @Column({ nullable: true }) - @RelationId((webhook: Webhook) => webhook.guild) - source_guild_id: string; - - @JoinColumn({ name: "source_guild_id" }) - @ManyToOne(() => Guild, { - onDelete: "CASCADE", - }) - source_guild: Guild; -} diff --git a/util/src/entities/index.ts b/util/src/entities/index.ts deleted file mode 100644 index c6f12022..00000000 --- a/util/src/entities/index.ts +++ /dev/null @@ -1,33 +0,0 @@ -export * from "./Application"; -export * from "./Attachment"; -export * from "./AuditLog"; -export * from "./Ban"; -export * from "./BaseClass"; -export * from "./Categories"; -export * from "./Channel"; -export * from "./Config"; -export * from "./ConnectedAccount"; -export * from "./Emoji"; -export * from "./Guild"; -export * from "./Invite"; -export * from "./Member"; -export * from "./Message"; -export * from "./Migration"; -export * from "./RateLimit"; -export * from "./ReadState"; -export * from "./Recipient"; -export * from "./Relationship"; -export * from "./Role"; -export * from "./Session"; -export * from "./Sticker"; -export * from "./StickerPack"; -export * from "./Team"; -export * from "./TeamMember"; -export * from "./Template"; -export * from "./User"; -export * from "./VoiceState"; -export * from "./Webhook"; -export * from "./ClientRelease"; -export * from "./BackupCodes"; -export * from "./Note"; -export * from "./UserSettings"; diff --git a/util/src/index.ts b/util/src/index.ts deleted file mode 100644 index daeffd69..00000000 --- a/util/src/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import "reflect-metadata"; - -export * from "./util/index"; -export * from "./interfaces/index"; -export * from "./entities/index"; -export * from "./dtos/index"; -export * from "./util/MFA"; -export * from "./schemas"; \ No newline at end of file diff --git a/util/src/interfaces/Activity.ts b/util/src/interfaces/Activity.ts deleted file mode 100644 index 43984afd..00000000 --- a/util/src/interfaces/Activity.ts +++ /dev/null @@ -1,44 +0,0 @@ -export interface Activity { - name: string; // the activity's name - type: ActivityType; // activity type // TODO: check if its between range 0-5 - url?: string; // stream url, is validated when type is 1 - created_at?: number; // unix timestamp of when the activity was added to the user's session - timestamps?: { - // unix timestamps for start and/or end of the game - start: number; - end: number; - }; - application_id?: string; // application id for the game - details?: string; - state?: string; - emoji?: { - name: string; - id?: string; - animated: boolean; - }; - party?: { - id?: string; - size?: [number]; // used to show the party's current and maximum size // TODO: array length 2 - }; - assets?: { - large_image?: string; // the id for a large asset of the activity, usually a snowflake - large_text?: string; // text displayed when hovering over the large image of the activity - small_image?: string; // the id for a small asset of the activity, usually a snowflake - small_text?: string; // text displayed when hovering over the small image of the activity - }; - secrets?: { - join?: string; // the secret for joining a party - spectate?: string; // the secret for spectating a game - match?: string; // the secret for a specific instanced match - }; - instance?: boolean; - flags: string; // activity flags OR d together, describes what the payload includes -} - -export enum ActivityType { - GAME = 0, - STREAMING = 1, - LISTENING = 2, - CUSTOM = 4, - COMPETING = 5, -} diff --git a/util/src/interfaces/Event.ts b/util/src/interfaces/Event.ts deleted file mode 100644 index be66c62f..00000000 --- a/util/src/interfaces/Event.ts +++ /dev/null @@ -1,640 +0,0 @@ -import { PublicUser, User } from "../entities/User"; -import { Channel } from "../entities/Channel"; -import { Guild } from "../entities/Guild"; -import { Member, PublicMember, UserGuildSettings } from "../entities/Member"; -import { Emoji } from "../entities/Emoji"; -import { Role } from "../entities/Role"; -import { Invite } from "../entities/Invite"; -import { Message, PartialEmoji } from "../entities/Message"; -import { VoiceState } from "../entities/VoiceState"; -import { ApplicationCommand } from "../entities/Application"; -import { Interaction } from "./Interaction"; -import { ConnectedAccount } from "../entities/ConnectedAccount"; -import { Relationship, RelationshipType } from "../entities/Relationship"; -import { Presence } from "./Presence"; -import { Sticker, UserSettings } from ".."; -import { Activity, Status } from "."; - -export interface Event { - guild_id?: string; - user_id?: string; - channel_id?: string; - created_at?: Date; - event: EVENT; - data?: any; -} - -// ! Custom Events that shouldn't get sent to the client but processed by the server - -export interface InvalidatedEvent extends Event { - event: "INVALIDATED"; -} - -export interface PublicRelationship { - id: string; - user: PublicUser; - type: RelationshipType; -} - -// ! END Custom Events that shouldn't get sent to the client but processed by the server - -export interface ReadyEventData { - v: number; - user: PublicUser & { - mobile: boolean; - desktop: boolean; - email: string | undefined; - flags: string; - mfa_enabled: boolean; - nsfw_allowed: boolean; - phone: string | undefined; - premium: boolean; - premium_type: number; - verified: boolean; - bot: boolean; - }; - private_channels: Channel[]; // this will be empty for bots - session_id: string; // resuming - guilds: Guild[]; - analytics_token?: string; - connected_accounts?: ConnectedAccount[]; - consents?: { - personalization?: { - consented?: boolean; - }; - }; - country_code?: string; // e.g. DE - friend_suggestion_count?: number; - geo_ordered_rtc_regions?: string[]; // ["europe","russie","india","us-east","us-central"] - experiments?: [number, number, number, number, number][]; - guild_experiments?: [ - // ? what are guild_experiments? - // this is the structure of it: - number, - null, - number, - [[number, { e: number; s: number }[]]], - [number, [[number, [number, number]]]], - { b: number; k: bigint[] }[] - ][]; - guild_join_requests?: any[]; // ? what is this? this is new - shard?: [number, number]; - user_settings?: UserSettings; - relationships?: PublicRelationship[]; // TODO - read_state: { - entries: any[]; // TODO - partial: boolean; - version: number; - }; - user_guild_settings?: { - entries: UserGuildSettings[]; - version: number; - partial: boolean; - }; - application?: { - id: string; - flags: number; - }; - merged_members?: PublicMember[][]; - // probably all users who the user is in contact with - users?: PublicUser[]; -} - -export interface ReadyEvent extends Event { - event: "READY"; - data: ReadyEventData; -} - -export interface ChannelCreateEvent extends Event { - event: "CHANNEL_CREATE"; - data: Channel; -} - -export interface ChannelUpdateEvent extends Event { - event: "CHANNEL_UPDATE"; - data: Channel; -} - -export interface ChannelDeleteEvent extends Event { - event: "CHANNEL_DELETE"; - data: Channel; -} - -export interface ChannelPinsUpdateEvent extends Event { - event: "CHANNEL_PINS_UPDATE"; - data: { - guild_id?: string; - channel_id: string; - last_pin_timestamp?: number; - }; -} - -export interface ChannelRecipientAddEvent extends Event { - event: "CHANNEL_RECIPIENT_ADD"; - data: { - channel_id: string; - user: User; - }; -} - -export interface ChannelRecipientRemoveEvent extends Event { - event: "CHANNEL_RECIPIENT_REMOVE"; - data: { - channel_id: string; - user: User; - }; -} - -export interface GuildCreateEvent extends Event { - event: "GUILD_CREATE"; - data: Guild & { - joined_at: Date; - // TODO: add them to guild - guild_scheduled_events: never[]; - guild_hashes: {}; - presences: never[]; - stage_instances: never[]; - threads: never[]; - }; -} - -export interface GuildUpdateEvent extends Event { - event: "GUILD_UPDATE"; - data: Guild; -} - -export interface GuildDeleteEvent extends Event { - event: "GUILD_DELETE"; - data: { - id: string; - unavailable?: boolean; - }; -} - -export interface GuildBanAddEvent extends Event { - event: "GUILD_BAN_ADD"; - data: { - guild_id: string; - user: User; - }; -} - -export interface GuildBanRemoveEvent extends Event { - event: "GUILD_BAN_REMOVE"; - data: { - guild_id: string; - user: User; - }; -} - -export interface GuildEmojisUpdateEvent extends Event { - event: "GUILD_EMOJIS_UPDATE"; - data: { - guild_id: string; - emojis: Emoji[]; - }; -} - -export interface GuildStickersUpdateEvent extends Event { - event: "GUILD_STICKERS_UPDATE"; - data: { - guild_id: string; - stickers: Sticker[]; - }; -} - -export interface GuildIntegrationUpdateEvent extends Event { - event: "GUILD_INTEGRATIONS_UPDATE"; - data: { - guild_id: string; - }; -} - -export interface GuildMemberAddEvent extends Event { - event: "GUILD_MEMBER_ADD"; - data: PublicMember & { - guild_id: string; - }; -} - -export interface GuildMemberRemoveEvent extends Event { - event: "GUILD_MEMBER_REMOVE"; - data: { - guild_id: string; - user: User; - }; -} - -export interface GuildMemberUpdateEvent extends Event { - event: "GUILD_MEMBER_UPDATE"; - data: { - guild_id: string; - roles: string[]; - user: User; - nick?: string; - joined_at?: Date; - premium_since?: number; - pending?: boolean; - }; -} - -export interface GuildMembersChunkEvent extends Event { - event: "GUILD_MEMBERS_CHUNK"; - data: { - guild_id: string; - members: PublicMember[]; - chunk_index: number; - chunk_count: number; - not_found: string[]; - presences: Presence[]; - nonce?: string; - }; -} - -export interface GuildRoleCreateEvent extends Event { - event: "GUILD_ROLE_CREATE"; - data: { - guild_id: string; - role: Role; - }; -} - -export interface GuildRoleUpdateEvent extends Event { - event: "GUILD_ROLE_UPDATE"; - data: { - guild_id: string; - role: Role; - }; -} - -export interface GuildRoleDeleteEvent extends Event { - event: "GUILD_ROLE_DELETE"; - data: { - guild_id: string; - role_id: string; - }; -} - -export interface InviteCreateEvent extends Event { - event: "INVITE_CREATE"; - data: Omit & { - channel_id: string; - guild_id?: string; - }; -} - -export interface InviteDeleteEvent extends Event { - event: "INVITE_DELETE"; - data: { - channel_id: string; - guild_id?: string; - code: string; - }; -} - -export interface MessageCreateEvent extends Event { - event: "MESSAGE_CREATE"; - data: Message; -} - -export interface MessageUpdateEvent extends Event { - event: "MESSAGE_UPDATE"; - data: Message; -} - -export interface MessageDeleteEvent extends Event { - event: "MESSAGE_DELETE"; - data: { - id: string; - channel_id: string; - guild_id?: string; - }; -} - -export interface MessageDeleteBulkEvent extends Event { - event: "MESSAGE_DELETE_BULK"; - data: { - ids: string[]; - channel_id: string; - guild_id?: string; - }; -} - -export interface MessageReactionAddEvent extends Event { - event: "MESSAGE_REACTION_ADD"; - data: { - user_id: string; - channel_id: string; - message_id: string; - guild_id?: string; - member?: PublicMember; - emoji: PartialEmoji; - }; -} - -export interface MessageReactionRemoveEvent extends Event { - event: "MESSAGE_REACTION_REMOVE"; - data: { - user_id: string; - channel_id: string; - message_id: string; - guild_id?: string; - emoji: PartialEmoji; - }; -} - -export interface MessageReactionRemoveAllEvent extends Event { - event: "MESSAGE_REACTION_REMOVE_ALL"; - data: { - channel_id: string; - message_id: string; - guild_id?: string; - }; -} - -export interface MessageReactionRemoveEmojiEvent extends Event { - event: "MESSAGE_REACTION_REMOVE_EMOJI"; - data: { - channel_id: string; - message_id: string; - guild_id?: string; - emoji: PartialEmoji; - }; -} - -export interface PresenceUpdateEvent extends Event { - event: "PRESENCE_UPDATE"; - data: Presence; -} - -export interface TypingStartEvent extends Event { - event: "TYPING_START"; - data: { - channel_id: string; - user_id: string; - timestamp: number; - guild_id?: string; - member?: PublicMember; - }; -} - -export interface UserUpdateEvent extends Event { - event: "USER_UPDATE"; - data: User; -} - -export interface VoiceStateUpdateEvent extends Event { - event: "VOICE_STATE_UPDATE"; - data: VoiceState & { - member: PublicMember; - }; -} - -export interface VoiceServerUpdateEvent extends Event { - event: "VOICE_SERVER_UPDATE"; - data: { - token: string; - guild_id: string; - endpoint: string; - }; -} - -export interface WebhooksUpdateEvent extends Event { - event: "WEBHOOKS_UPDATE"; - data: { - guild_id: string; - channel_id: string; - }; -} - -export type ApplicationCommandPayload = ApplicationCommand & { - guild_id: string; -}; - -export interface ApplicationCommandCreateEvent extends Event { - event: "APPLICATION_COMMAND_CREATE"; - data: ApplicationCommandPayload; -} - -export interface ApplicationCommandUpdateEvent extends Event { - event: "APPLICATION_COMMAND_UPDATE"; - data: ApplicationCommandPayload; -} - -export interface ApplicationCommandDeleteEvent extends Event { - event: "APPLICATION_COMMAND_DELETE"; - data: ApplicationCommandPayload; -} - -export interface InteractionCreateEvent extends Event { - event: "INTERACTION_CREATE"; - data: Interaction; -} - -export interface MessageAckEvent extends Event { - event: "MESSAGE_ACK"; - data: { - channel_id: string; - message_id: string; - version?: number; - manual?: boolean; - mention_count?: number; - }; -} - -export interface RelationshipAddEvent extends Event { - event: "RELATIONSHIP_ADD"; - data: PublicRelationship & { - should_notify?: boolean; - user: PublicUser; - }; -} - -export interface RelationshipRemoveEvent extends Event { - event: "RELATIONSHIP_REMOVE"; - data: Omit; -} - -export interface SessionsReplace extends Event { - event: "SESSIONS_REPLACE"; - data: { - activities: Activity[]; - client_info: { - version: number; - os: string; - client: string; - }; - status: Status; - }[]; -} - -export interface GuildMemberListUpdate extends Event { - event: "GUILD_MEMBER_LIST_UPDATE"; - data: { - groups: { id: string; count: number }[]; - guild_id: string; - id: string; - member_count: number; - online_count: number; - ops: { - index: number; - item: { - member?: PublicMember & { presence: Presence }; - group?: { id: string; count: number }[]; - }; - }[]; - }; -} - -export type EventData = - | InvalidatedEvent - | ReadyEvent - | ChannelCreateEvent - | ChannelUpdateEvent - | ChannelDeleteEvent - | ChannelPinsUpdateEvent - | ChannelRecipientAddEvent - | ChannelRecipientRemoveEvent - | GuildCreateEvent - | GuildUpdateEvent - | GuildDeleteEvent - | GuildBanAddEvent - | GuildBanRemoveEvent - | GuildEmojisUpdateEvent - | GuildIntegrationUpdateEvent - | GuildMemberAddEvent - | GuildMemberRemoveEvent - | GuildMemberUpdateEvent - | GuildMembersChunkEvent - | GuildMemberListUpdate - | GuildRoleCreateEvent - | GuildRoleUpdateEvent - | GuildRoleDeleteEvent - | InviteCreateEvent - | InviteDeleteEvent - | MessageCreateEvent - | MessageUpdateEvent - | MessageDeleteEvent - | MessageDeleteBulkEvent - | MessageReactionAddEvent - | MessageReactionRemoveEvent - | MessageReactionRemoveAllEvent - | MessageReactionRemoveEmojiEvent - | PresenceUpdateEvent - | TypingStartEvent - | UserUpdateEvent - | VoiceStateUpdateEvent - | VoiceServerUpdateEvent - | WebhooksUpdateEvent - | ApplicationCommandCreateEvent - | ApplicationCommandUpdateEvent - | ApplicationCommandDeleteEvent - | InteractionCreateEvent - | MessageAckEvent - | RelationshipAddEvent - | RelationshipRemoveEvent; - -// located in collection events - -export enum EVENTEnum { - Ready = "READY", - ChannelCreate = "CHANNEL_CREATE", - ChannelUpdate = "CHANNEL_UPDATE", - ChannelDelete = "CHANNEL_DELETE", - ChannelPinsUpdate = "CHANNEL_PINS_UPDATE", - ChannelRecipientAdd = "CHANNEL_RECIPIENT_ADD", - ChannelRecipientRemove = "CHANNEL_RECIPIENT_REMOVE", - GuildCreate = "GUILD_CREATE", - GuildUpdate = "GUILD_UPDATE", - GuildDelete = "GUILD_DELETE", - GuildBanAdd = "GUILD_BAN_ADD", - GuildBanRemove = "GUILD_BAN_REMOVE", - GuildEmojUpdate = "GUILD_EMOJI_UPDATE", - GuildIntegrationsUpdate = "GUILD_INTEGRATIONS_UPDATE", - GuildMemberAdd = "GUILD_MEMBER_ADD", - GuildMemberRempve = "GUILD_MEMBER_REMOVE", - GuildMemberUpdate = "GUILD_MEMBER_UPDATE", - GuildMemberSpeaking = "GUILD_MEMBER_SPEAKING", - GuildMembersChunk = "GUILD_MEMBERS_CHUNK", - GuildMemberListUpdate = "GUILD_MEMBER_LIST_UPDATE", - GuildRoleCreate = "GUILD_ROLE_CREATE", - GuildRoleDelete = "GUILD_ROLE_DELETE", - GuildRoleUpdate = "GUILD_ROLE_UPDATE", - InviteCreate = "INVITE_CREATE", - InviteDelete = "INVITE_DELETE", - MessageCreate = "MESSAGE_CREATE", - MessageUpdate = "MESSAGE_UPDATE", - MessageDelete = "MESSAGE_DELETE", - MessageDeleteBulk = "MESSAGE_DELETE_BULK", - MessageReactionAdd = "MESSAGE_REACTION_ADD", - MessageReactionRemove = "MESSAGE_REACTION_REMOVE", - MessageReactionRemoveAll = "MESSAGE_REACTION_REMOVE_ALL", - MessageReactionRemoveEmoji = "MESSAGE_REACTION_REMOVE_EMOJI", - PresenceUpdate = "PRESENCE_UPDATE", - TypingStart = "TYPING_START", - UserUpdate = "USER_UPDATE", - WebhooksUpdate = "WEBHOOKS_UPDATE", - InteractionCreate = "INTERACTION_CREATE", - VoiceStateUpdate = "VOICE_STATE_UPDATE", - VoiceServerUpdate = "VOICE_SERVER_UPDATE", - ApplicationCommandCreate = "APPLICATION_COMMAND_CREATE", - ApplicationCommandUpdate = "APPLICATION_COMMAND_UPDATE", - ApplicationCommandDelete = "APPLICATION_COMMAND_DELETE", - SessionsReplace = "SESSIONS_REPLACE", -} - -export type EVENT = - | "READY" - | "CHANNEL_CREATE" - | "CHANNEL_UPDATE" - | "CHANNEL_DELETE" - | "CHANNEL_PINS_UPDATE" - | "CHANNEL_RECIPIENT_ADD" - | "CHANNEL_RECIPIENT_REMOVE" - | "GUILD_CREATE" - | "GUILD_UPDATE" - | "GUILD_DELETE" - | "GUILD_BAN_ADD" - | "GUILD_BAN_REMOVE" - | "GUILD_EMOJIS_UPDATE" - | "GUILD_STICKERS_UPDATE" - | "GUILD_INTEGRATIONS_UPDATE" - | "GUILD_MEMBER_ADD" - | "GUILD_MEMBER_REMOVE" - | "GUILD_MEMBER_UPDATE" - | "GUILD_MEMBER_SPEAKING" - | "GUILD_MEMBERS_CHUNK" - | "GUILD_MEMBER_LIST_UPDATE" - | "GUILD_ROLE_CREATE" - | "GUILD_ROLE_DELETE" - | "GUILD_ROLE_UPDATE" - | "INVITE_CREATE" - | "INVITE_DELETE" - | "MESSAGE_CREATE" - | "MESSAGE_UPDATE" - | "MESSAGE_DELETE" - | "MESSAGE_DELETE_BULK" - | "MESSAGE_REACTION_ADD" - // TODO: add a new event: bulk add reaction: - // | "MESSAGE_REACTION_BULK_ADD" - | "MESSAGE_REACTION_REMOVE" - | "MESSAGE_REACTION_REMOVE_ALL" - | "MESSAGE_REACTION_REMOVE_EMOJI" - | "PRESENCE_UPDATE" - | "TYPING_START" - | "USER_UPDATE" - | "USER_NOTE_UPDATE" - | "WEBHOOKS_UPDATE" - | "INTERACTION_CREATE" - | "VOICE_STATE_UPDATE" - | "VOICE_SERVER_UPDATE" - | "APPLICATION_COMMAND_CREATE" - | "APPLICATION_COMMAND_UPDATE" - | "APPLICATION_COMMAND_DELETE" - | "MESSAGE_ACK" - | "RELATIONSHIP_ADD" - | "RELATIONSHIP_REMOVE" - | "SESSIONS_REPLACE" - | CUSTOMEVENTS; - -export type CUSTOMEVENTS = "INVALIDATED" | "RATELIMIT"; diff --git a/util/src/interfaces/Interaction.ts b/util/src/interfaces/Interaction.ts deleted file mode 100644 index 5d3aae24..00000000 --- a/util/src/interfaces/Interaction.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { AllowedMentions, Embed } from "../entities/Message"; - -export interface Interaction { - id: string; - type: InteractionType; - data?: {}; - guild_id: string; - channel_id: string; - member_id: string; - token: string; - version: number; -} - -export enum InteractionType { - SelfCommand = 0, - Ping = 1, - ApplicationCommand = 2, -} - -export enum InteractionResponseType { - SelfCommandResponse = 0, - Pong = 1, - Acknowledge = 2, - ChannelMessage = 3, - ChannelMessageWithSource = 4, - AcknowledgeWithSource = 5, -} - -export interface InteractionApplicationCommandCallbackData { - tts?: boolean; - content: string; - embeds?: Embed[]; - allowed_mentions?: AllowedMentions; -} diff --git a/util/src/interfaces/Presence.ts b/util/src/interfaces/Presence.ts deleted file mode 100644 index 7663891a..00000000 --- a/util/src/interfaces/Presence.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { ClientStatus, Status } from "./Status"; -import { Activity } from "./Activity"; -import { PublicUser } from "../entities/User"; - -export interface Presence { - user: PublicUser; - guild_id?: string; - status: Status; - activities: Activity[]; - client_status: ClientStatus; - // TODO: game -} diff --git a/util/src/interfaces/Status.ts b/util/src/interfaces/Status.ts deleted file mode 100644 index 5d2e1bba..00000000 --- a/util/src/interfaces/Status.ts +++ /dev/null @@ -1,7 +0,0 @@ -export type Status = "idle" | "dnd" | "online" | "offline" | "invisible"; - -export interface ClientStatus { - desktop?: string; // e.g. Windows/Linux/Mac - mobile?: string; // e.g. iOS/Android - web?: string; // e.g. browser, bot account -} diff --git a/util/src/interfaces/index.ts b/util/src/interfaces/index.ts deleted file mode 100644 index ab7fa429..00000000 --- a/util/src/interfaces/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from "./Activity"; -export * from "./Presence"; -export * from "./Interaction"; -export * from "./Event"; -export * from "./Status"; diff --git a/util/src/migrations/mariadb/1659901151025-initial.ts b/util/src/migrations/mariadb/1659901151025-initial.ts deleted file mode 100644 index d15e0add..00000000 --- a/util/src/migrations/mariadb/1659901151025-initial.ts +++ /dev/null @@ -1,1219 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class initial1659901151025 implements MigrationInterface { - name = 'initial1659901151025' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE TABLE \`config\` ( - \`key\` varchar(255) NOT NULL, - \`value\` text NULL, - PRIMARY KEY (\`key\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`relationships\` ( - \`id\` varchar(255) NOT NULL, - \`from_id\` varchar(255) NOT NULL, - \`to_id\` varchar(255) NOT NULL, - \`nickname\` varchar(255) NULL, - \`type\` int NOT NULL, - UNIQUE INDEX \`IDX_a0b2ff0a598df0b0d055934a17\` (\`from_id\`, \`to_id\`), - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`connected_accounts\` ( - \`id\` varchar(255) NOT NULL, - \`user_id\` varchar(255) NULL, - \`access_token\` varchar(255) NOT NULL, - \`friend_sync\` tinyint NOT NULL, - \`name\` varchar(255) NOT NULL, - \`revoked\` tinyint NOT NULL, - \`show_activity\` tinyint NOT NULL, - \`type\` varchar(255) NOT NULL, - \`verified\` tinyint NOT NULL, - \`visibility\` int NOT NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`users\` ( - \`id\` varchar(255) NOT NULL, - \`username\` varchar(255) NOT NULL, - \`discriminator\` varchar(255) NOT NULL, - \`avatar\` varchar(255) NULL, - \`accent_color\` int NULL, - \`banner\` varchar(255) NULL, - \`phone\` varchar(255) NULL, - \`desktop\` tinyint NOT NULL, - \`mobile\` tinyint NOT NULL, - \`premium\` tinyint NOT NULL, - \`premium_type\` int NOT NULL, - \`bot\` tinyint NOT NULL, - \`bio\` varchar(255) NOT NULL, - \`system\` tinyint NOT NULL, - \`nsfw_allowed\` tinyint NOT NULL, - \`mfa_enabled\` tinyint NOT NULL, - \`totp_secret\` varchar(255) NULL, - \`totp_last_ticket\` varchar(255) NULL, - \`created_at\` datetime NOT NULL, - \`premium_since\` datetime NULL, - \`verified\` tinyint NOT NULL, - \`disabled\` tinyint NOT NULL, - \`deleted\` tinyint NOT NULL, - \`email\` varchar(255) NULL, - \`flags\` varchar(255) NOT NULL, - \`public_flags\` int NOT NULL, - \`rights\` bigint NOT NULL, - \`data\` text NOT NULL, - \`fingerprints\` text NOT NULL, - \`settings\` text NOT NULL, - \`extended_settings\` text NOT NULL, - \`notes\` text NOT NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`backup_codes\` ( - \`id\` varchar(255) NOT NULL, - \`code\` varchar(255) NOT NULL, - \`consumed\` tinyint NOT NULL, - \`expired\` tinyint NOT NULL, - \`user_id\` varchar(255) NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`bans\` ( - \`id\` varchar(255) NOT NULL, - \`user_id\` varchar(255) NULL, - \`guild_id\` varchar(255) NULL, - \`executor_id\` varchar(255) NULL, - \`ip\` varchar(255) NOT NULL, - \`reason\` varchar(255) NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`recipients\` ( - \`id\` varchar(255) NOT NULL, - \`channel_id\` varchar(255) NOT NULL, - \`user_id\` varchar(255) NOT NULL, - \`closed\` tinyint NOT NULL DEFAULT 0, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`roles\` ( - \`id\` varchar(255) NOT NULL, - \`guild_id\` varchar(255) NULL, - \`color\` int NOT NULL, - \`hoist\` tinyint NOT NULL, - \`managed\` tinyint NOT NULL, - \`mentionable\` tinyint NOT NULL, - \`name\` varchar(255) NOT NULL, - \`permissions\` varchar(255) NOT NULL, - \`position\` int NOT NULL, - \`icon\` varchar(255) NULL, - \`unicode_emoji\` varchar(255) NULL, - \`tags\` text NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`members\` ( - \`index\` int NOT NULL AUTO_INCREMENT, - \`id\` varchar(255) NOT NULL, - \`guild_id\` varchar(255) NOT NULL, - \`nick\` varchar(255) NULL, - \`joined_at\` datetime NOT NULL, - \`premium_since\` bigint NULL, - \`deaf\` tinyint NOT NULL, - \`mute\` tinyint NOT NULL, - \`pending\` tinyint NOT NULL, - \`settings\` text NOT NULL, - \`last_message_id\` varchar(255) NULL, - \`joined_by\` varchar(255) NULL, - UNIQUE INDEX \`IDX_bb2bf9386ac443afbbbf9f12d3\` (\`id\`, \`guild_id\`), - PRIMARY KEY (\`index\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`webhooks\` ( - \`id\` varchar(255) NOT NULL, - \`type\` int NOT NULL, - \`name\` varchar(255) NULL, - \`avatar\` varchar(255) NULL, - \`token\` varchar(255) NULL, - \`guild_id\` varchar(255) NULL, - \`channel_id\` varchar(255) NULL, - \`application_id\` varchar(255) NULL, - \`user_id\` varchar(255) NULL, - \`source_guild_id\` varchar(255) NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`stickers\` ( - \`id\` varchar(255) NOT NULL, - \`name\` varchar(255) NOT NULL, - \`description\` varchar(255) NULL, - \`available\` tinyint NULL, - \`tags\` varchar(255) NULL, - \`pack_id\` varchar(255) NULL, - \`guild_id\` varchar(255) NULL, - \`user_id\` varchar(255) NULL, - \`type\` int NOT NULL, - \`format_type\` int NOT NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`attachments\` ( - \`id\` varchar(255) NOT NULL, - \`filename\` varchar(255) NOT NULL, - \`size\` int NOT NULL, - \`url\` varchar(255) NOT NULL, - \`proxy_url\` varchar(255) NOT NULL, - \`height\` int NULL, - \`width\` int NULL, - \`content_type\` varchar(255) NULL, - \`message_id\` varchar(255) NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`messages\` ( - \`id\` varchar(255) NOT NULL, - \`channel_id\` varchar(255) NULL, - \`guild_id\` varchar(255) NULL, - \`author_id\` varchar(255) NULL, - \`member_id\` varchar(255) NULL, - \`webhook_id\` varchar(255) NULL, - \`application_id\` varchar(255) NULL, - \`content\` varchar(255) NULL, - \`timestamp\` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6), - \`edited_timestamp\` datetime NULL, - \`tts\` tinyint NULL, - \`mention_everyone\` tinyint NULL, - \`embeds\` text NOT NULL, - \`reactions\` text NOT NULL, - \`nonce\` text NULL, - \`pinned\` tinyint NULL, - \`type\` int NOT NULL, - \`activity\` text NULL, - \`flags\` varchar(255) NULL, - \`message_reference\` text NULL, - \`interaction\` text NULL, - \`components\` text NULL, - \`message_reference_id\` varchar(255) NULL, - INDEX \`IDX_86b9109b155eb70c0a2ca3b4b6\` (\`channel_id\`), - INDEX \`IDX_05535bc695e9f7ee104616459d\` (\`author_id\`), - UNIQUE INDEX \`IDX_3ed7a60fb7dbe04e1ba9332a8b\` (\`channel_id\`, \`id\`), - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`read_states\` ( - \`id\` varchar(255) NOT NULL, - \`channel_id\` varchar(255) NOT NULL, - \`user_id\` varchar(255) NOT NULL, - \`last_message_id\` varchar(255) NULL, - \`public_ack\` varchar(255) NULL, - \`notifications_cursor\` varchar(255) NULL, - \`last_pin_timestamp\` datetime NULL, - \`mention_count\` int NULL, - UNIQUE INDEX \`IDX_0abf8b443321bd3cf7f81ee17a\` (\`channel_id\`, \`user_id\`), - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`invites\` ( - \`code\` varchar(255) NOT NULL, - \`temporary\` tinyint NOT NULL, - \`uses\` int NOT NULL, - \`max_uses\` int NOT NULL, - \`max_age\` int NOT NULL, - \`created_at\` datetime NOT NULL, - \`expires_at\` datetime NOT NULL, - \`guild_id\` varchar(255) NULL, - \`channel_id\` varchar(255) NULL, - \`inviter_id\` varchar(255) NULL, - \`target_user_id\` varchar(255) NULL, - \`target_user_type\` int NULL, - \`vanity_url\` tinyint NULL, - PRIMARY KEY (\`code\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`voice_states\` ( - \`id\` varchar(255) NOT NULL, - \`guild_id\` varchar(255) NULL, - \`channel_id\` varchar(255) NULL, - \`user_id\` varchar(255) NULL, - \`session_id\` varchar(255) NOT NULL, - \`token\` varchar(255) NULL, - \`deaf\` tinyint NOT NULL, - \`mute\` tinyint NOT NULL, - \`self_deaf\` tinyint NOT NULL, - \`self_mute\` tinyint NOT NULL, - \`self_stream\` tinyint NULL, - \`self_video\` tinyint NOT NULL, - \`suppress\` tinyint NOT NULL, - \`request_to_speak_timestamp\` datetime NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`channels\` ( - \`id\` varchar(255) NOT NULL, - \`created_at\` datetime NOT NULL, - \`name\` varchar(255) NULL, - \`icon\` text NULL, - \`type\` int NOT NULL, - \`last_message_id\` varchar(255) NULL, - \`guild_id\` varchar(255) NULL, - \`parent_id\` varchar(255) NULL, - \`owner_id\` varchar(255) NULL, - \`last_pin_timestamp\` int NULL, - \`default_auto_archive_duration\` int NULL, - \`position\` int NULL, - \`permission_overwrites\` text NULL, - \`video_quality_mode\` int NULL, - \`bitrate\` int NULL, - \`user_limit\` int NULL, - \`nsfw\` tinyint NULL, - \`rate_limit_per_user\` int NULL, - \`topic\` varchar(255) NULL, - \`retention_policy_id\` varchar(255) NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`emojis\` ( - \`id\` varchar(255) NOT NULL, - \`animated\` tinyint NOT NULL, - \`available\` tinyint NOT NULL, - \`guild_id\` varchar(255) NOT NULL, - \`user_id\` varchar(255) NULL, - \`managed\` tinyint NOT NULL, - \`name\` varchar(255) NOT NULL, - \`require_colons\` tinyint NOT NULL, - \`roles\` text NOT NULL, - \`groups\` text NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`templates\` ( - \`id\` varchar(255) NOT NULL, - \`code\` varchar(255) NOT NULL, - \`name\` varchar(255) NOT NULL, - \`description\` varchar(255) NULL, - \`usage_count\` int NULL, - \`creator_id\` varchar(255) NULL, - \`created_at\` datetime NOT NULL, - \`updated_at\` datetime NOT NULL, - \`source_guild_id\` varchar(255) NULL, - \`serialized_source_guild\` text NOT NULL, - UNIQUE INDEX \`IDX_be38737bf339baf63b1daeffb5\` (\`code\`), - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`guilds\` ( - \`id\` varchar(255) NOT NULL, - \`afk_channel_id\` varchar(255) NULL, - \`afk_timeout\` int NULL, - \`banner\` varchar(255) NULL, - \`default_message_notifications\` int NULL, - \`description\` varchar(255) NULL, - \`discovery_splash\` varchar(255) NULL, - \`explicit_content_filter\` int NULL, - \`features\` text NOT NULL, - \`primary_category_id\` int NULL, - \`icon\` varchar(255) NULL, - \`large\` tinyint NULL, - \`max_members\` int NULL, - \`max_presences\` int NULL, - \`max_video_channel_users\` int NULL, - \`member_count\` int NULL, - \`presence_count\` int NULL, - \`template_id\` varchar(255) NULL, - \`mfa_level\` int NULL, - \`name\` varchar(255) NOT NULL, - \`owner_id\` varchar(255) NULL, - \`preferred_locale\` varchar(255) NULL, - \`premium_subscription_count\` int NULL, - \`premium_tier\` int NULL, - \`public_updates_channel_id\` varchar(255) NULL, - \`rules_channel_id\` varchar(255) NULL, - \`region\` varchar(255) NULL, - \`splash\` varchar(255) NULL, - \`system_channel_id\` varchar(255) NULL, - \`system_channel_flags\` int NULL, - \`unavailable\` tinyint NULL, - \`verification_level\` int NULL, - \`welcome_screen\` text NOT NULL, - \`widget_channel_id\` varchar(255) NULL, - \`widget_enabled\` tinyint NULL, - \`nsfw_level\` int NULL, - \`nsfw\` tinyint NULL, - \`parent\` varchar(255) NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`team_members\` ( - \`id\` varchar(255) NOT NULL, - \`membership_state\` int NOT NULL, - \`permissions\` text NOT NULL, - \`team_id\` varchar(255) NULL, - \`user_id\` varchar(255) NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`teams\` ( - \`id\` varchar(255) NOT NULL, - \`icon\` varchar(255) NULL, - \`name\` varchar(255) NOT NULL, - \`owner_user_id\` varchar(255) NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`applications\` ( - \`id\` varchar(255) NOT NULL, - \`name\` varchar(255) NOT NULL, - \`icon\` varchar(255) NULL, - \`description\` varchar(255) NOT NULL, - \`rpc_origins\` text NULL, - \`bot_public\` tinyint NOT NULL, - \`bot_require_code_grant\` tinyint NOT NULL, - \`terms_of_service_url\` varchar(255) NULL, - \`privacy_policy_url\` varchar(255) NULL, - \`summary\` varchar(255) NULL, - \`verify_key\` varchar(255) NOT NULL, - \`primary_sku_id\` varchar(255) NULL, - \`slug\` varchar(255) NULL, - \`cover_image\` varchar(255) NULL, - \`flags\` varchar(255) NOT NULL, - \`owner_id\` varchar(255) NULL, - \`team_id\` varchar(255) NULL, - \`guild_id\` varchar(255) NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`audit_logs\` ( - \`id\` varchar(255) NOT NULL, - \`user_id\` varchar(255) NULL, - \`action_type\` int NOT NULL, - \`options\` text NULL, - \`changes\` text NOT NULL, - \`reason\` varchar(255) NULL, - \`target_id\` varchar(255) NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`categories\` ( - \`id\` int NOT NULL, - \`name\` varchar(255) NULL, - \`localizations\` text NOT NULL, - \`is_primary\` tinyint NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`rate_limits\` ( - \`id\` varchar(255) NOT NULL, - \`executor_id\` varchar(255) NOT NULL, - \`hits\` int NOT NULL, - \`blocked\` tinyint NOT NULL, - \`expires_at\` datetime NOT NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`sessions\` ( - \`id\` varchar(255) NOT NULL, - \`user_id\` varchar(255) NULL, - \`session_id\` varchar(255) NOT NULL, - \`activities\` text NULL, - \`client_info\` text NOT NULL, - \`status\` varchar(255) NOT NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`sticker_packs\` ( - \`id\` varchar(255) NOT NULL, - \`name\` varchar(255) NOT NULL, - \`description\` varchar(255) NULL, - \`banner_asset_id\` varchar(255) NULL, - \`cover_sticker_id\` varchar(255) NULL, - \`coverStickerId\` varchar(255) NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`client_release\` ( - \`id\` varchar(255) NOT NULL, - \`name\` varchar(255) NOT NULL, - \`pub_date\` varchar(255) NOT NULL, - \`url\` varchar(255) NOT NULL, - \`deb_url\` varchar(255) NOT NULL, - \`osx_url\` varchar(255) NOT NULL, - \`win_url\` varchar(255) NOT NULL, - \`notes\` varchar(255) NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`notes\` ( - \`id\` varchar(255) NOT NULL, - \`content\` varchar(255) NOT NULL, - \`owner_id\` varchar(255) NULL, - \`target_id\` varchar(255) NULL, - UNIQUE INDEX \`IDX_74e6689b9568cc965b8bfc9150\` (\`owner_id\`, \`target_id\`), - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`member_roles\` ( - \`index\` int NOT NULL, - \`role_id\` varchar(255) NOT NULL, - INDEX \`IDX_5d7ddc8a5f9c167f548625e772\` (\`index\`), - INDEX \`IDX_e9080e7a7997a0170026d5139c\` (\`role_id\`), - PRIMARY KEY (\`index\`, \`role_id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`message_user_mentions\` ( - \`messagesId\` varchar(255) NOT NULL, - \`usersId\` varchar(255) NOT NULL, - INDEX \`IDX_a343387fc560ef378760681c23\` (\`messagesId\`), - INDEX \`IDX_b831eb18ceebd28976239b1e2f\` (\`usersId\`), - PRIMARY KEY (\`messagesId\`, \`usersId\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`message_role_mentions\` ( - \`messagesId\` varchar(255) NOT NULL, - \`rolesId\` varchar(255) NOT NULL, - INDEX \`IDX_a8242cf535337a490b0feaea0b\` (\`messagesId\`), - INDEX \`IDX_29d63eb1a458200851bc37d074\` (\`rolesId\`), - PRIMARY KEY (\`messagesId\`, \`rolesId\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`message_channel_mentions\` ( - \`messagesId\` varchar(255) NOT NULL, - \`channelsId\` varchar(255) NOT NULL, - INDEX \`IDX_2a27102ecd1d81b4582a436092\` (\`messagesId\`), - INDEX \`IDX_bdb8c09e1464cabf62105bf4b9\` (\`channelsId\`), - PRIMARY KEY (\`messagesId\`, \`channelsId\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - CREATE TABLE \`message_stickers\` ( - \`messagesId\` varchar(255) NOT NULL, - \`stickersId\` varchar(255) NOT NULL, - INDEX \`IDX_40bb6f23e7cc133292e92829d2\` (\`messagesId\`), - INDEX \`IDX_e22a70819d07659c7a71c112a1\` (\`stickersId\`), - PRIMARY KEY (\`messagesId\`, \`stickersId\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - ALTER TABLE \`relationships\` - ADD CONSTRAINT \`FK_9af4194bab1250b1c584ae4f1d7\` FOREIGN KEY (\`from_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`relationships\` - ADD CONSTRAINT \`FK_9c7f6b98a9843b76dce1b0c878b\` FOREIGN KEY (\`to_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`connected_accounts\` - ADD CONSTRAINT \`FK_f47244225a6a1eac04a3463dd90\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`backup_codes\` - ADD CONSTRAINT \`FK_70066ea80d2f4b871beda32633b\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`bans\` - ADD CONSTRAINT \`FK_5999e8e449f80a236ff72023559\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`bans\` - ADD CONSTRAINT \`FK_9d3ab7dd180ebdd245cdb66ecad\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`bans\` - ADD CONSTRAINT \`FK_07ad88c86d1f290d46748410d58\` FOREIGN KEY (\`executor_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`recipients\` - ADD CONSTRAINT \`FK_2f18ee1ba667f233ae86c0ea60e\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`recipients\` - ADD CONSTRAINT \`FK_6157e8b6ba4e6e3089616481fe2\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`roles\` - ADD CONSTRAINT \`FK_c32c1ab1c4dc7dcb0278c4b1b8b\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`members\` - ADD CONSTRAINT \`FK_28b53062261b996d9c99fa12404\` FOREIGN KEY (\`id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`members\` - ADD CONSTRAINT \`FK_16aceddd5b89825b8ed6029ad1c\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`webhooks\` - ADD CONSTRAINT \`FK_487a7af59d189f744fe394368fc\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`webhooks\` - ADD CONSTRAINT \`FK_df528cf77e82f8032230e7e37d8\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`webhooks\` - ADD CONSTRAINT \`FK_c3e5305461931763b56aa905f1c\` FOREIGN KEY (\`application_id\`) REFERENCES \`applications\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`webhooks\` - ADD CONSTRAINT \`FK_0d523f6f997c86e052c49b1455f\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`webhooks\` - ADD CONSTRAINT \`FK_3a285f4f49c40e0706d3018bc9f\` FOREIGN KEY (\`source_guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`stickers\` - ADD CONSTRAINT \`FK_e7cfa5cefa6661b3fb8fda8ce69\` FOREIGN KEY (\`pack_id\`) REFERENCES \`sticker_packs\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`stickers\` - ADD CONSTRAINT \`FK_193d551d852aca5347ef5c9f205\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`stickers\` - ADD CONSTRAINT \`FK_8f4ee73f2bb2325ff980502e158\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`attachments\` - ADD CONSTRAINT \`FK_623e10eec51ada466c5038979e3\` FOREIGN KEY (\`message_id\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`messages\` - ADD CONSTRAINT \`FK_86b9109b155eb70c0a2ca3b4b6d\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`messages\` - ADD CONSTRAINT \`FK_b193588441b085352a4c0109423\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`messages\` - ADD CONSTRAINT \`FK_05535bc695e9f7ee104616459d3\` FOREIGN KEY (\`author_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`messages\` - ADD CONSTRAINT \`FK_b0525304f2262b7014245351c76\` FOREIGN KEY (\`member_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`messages\` - ADD CONSTRAINT \`FK_f83c04bcf1df4e5c0e7a52ed348\` FOREIGN KEY (\`webhook_id\`) REFERENCES \`webhooks\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`messages\` - ADD CONSTRAINT \`FK_5d3ec1cb962de6488637fd779d6\` FOREIGN KEY (\`application_id\`) REFERENCES \`applications\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`messages\` - ADD CONSTRAINT \`FK_61a92bb65b302a76d9c1fcd3174\` FOREIGN KEY (\`message_reference_id\`) REFERENCES \`messages\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`read_states\` - ADD CONSTRAINT \`FK_40da2fca4e0eaf7a23b5bfc5d34\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`read_states\` - ADD CONSTRAINT \`FK_195f92e4dd1254a4e348c043763\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`invites\` - ADD CONSTRAINT \`FK_3f4939aa1461e8af57fea3fb05d\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`invites\` - ADD CONSTRAINT \`FK_6a15b051fe5050aa00a4b9ff0f6\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`invites\` - ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`invites\` - ADD CONSTRAINT \`FK_11a0d394f8fc649c19ce5f16b59\` FOREIGN KEY (\`target_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`voice_states\` - ADD CONSTRAINT \`FK_03779ef216d4b0358470d9cb748\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`voice_states\` - ADD CONSTRAINT \`FK_9f8d389866b40b6657edd026dd4\` FOREIGN KEY (\`channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`voice_states\` - ADD CONSTRAINT \`FK_5fe1d5f931a67e85039c640001b\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD CONSTRAINT \`FK_c253dafe5f3a03ec00cd8fb4581\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD CONSTRAINT \`FK_3274522d14af40540b1a883fc80\` FOREIGN KEY (\`parent_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD CONSTRAINT \`FK_3873ed438575cce703ecff4fc7b\` FOREIGN KEY (\`owner_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`emojis\` - ADD CONSTRAINT \`FK_4b988e0db89d94cebcf07f598cc\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`emojis\` - ADD CONSTRAINT \`FK_fa7ddd5f9a214e28ce596548421\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`templates\` - ADD CONSTRAINT \`FK_d7374b7f8f5fbfdececa4fb62e1\` FOREIGN KEY (\`creator_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`templates\` - ADD CONSTRAINT \`FK_445d00eaaea0e60a017a5ed0c11\` FOREIGN KEY (\`source_guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` - ADD CONSTRAINT \`FK_f591a66b8019d87b0fe6c12dad6\` FOREIGN KEY (\`afk_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` - ADD CONSTRAINT \`FK_e2a2f873a64a5cf62526de42325\` FOREIGN KEY (\`template_id\`) REFERENCES \`templates\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` - ADD CONSTRAINT \`FK_fc1a451727e3643ca572a3bb394\` FOREIGN KEY (\`owner_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` - ADD CONSTRAINT \`FK_8d450b016dc8bec35f36729e4b0\` FOREIGN KEY (\`public_updates_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` - ADD CONSTRAINT \`FK_95828668aa333460582e0ca6396\` FOREIGN KEY (\`rules_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` - ADD CONSTRAINT \`FK_cfc3d3ad260f8121c95b31a1fce\` FOREIGN KEY (\`system_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` - ADD CONSTRAINT \`FK_9d1d665379eefde7876a17afa99\` FOREIGN KEY (\`widget_channel_id\`) REFERENCES \`channels\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`team_members\` - ADD CONSTRAINT \`FK_fdad7d5768277e60c40e01cdcea\` FOREIGN KEY (\`team_id\`) REFERENCES \`teams\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`team_members\` - ADD CONSTRAINT \`FK_c2bf4967c8c2a6b845dadfbf3d4\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`teams\` - ADD CONSTRAINT \`FK_13f00abf7cb6096c43ecaf8c108\` FOREIGN KEY (\`owner_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD CONSTRAINT \`FK_e57508958bf92b9d9d25231b5e8\` FOREIGN KEY (\`owner_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD CONSTRAINT \`FK_a36ed02953077f408d0f3ebc424\` FOREIGN KEY (\`team_id\`) REFERENCES \`teams\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD CONSTRAINT \`FK_e5bf78cdbbe9ba91062d74c5aba\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`audit_logs\` - ADD CONSTRAINT \`FK_3cd01cd3ae7aab010310d96ac8e\` FOREIGN KEY (\`target_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`audit_logs\` - ADD CONSTRAINT \`FK_bd2726fd31b35443f2245b93ba0\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`sessions\` - ADD CONSTRAINT \`FK_085d540d9f418cfbdc7bd55bb19\` FOREIGN KEY (\`user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`sticker_packs\` - ADD CONSTRAINT \`FK_448fafba4355ee1c837bbc865f1\` FOREIGN KEY (\`coverStickerId\`) REFERENCES \`stickers\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`notes\` - ADD CONSTRAINT \`FK_f9e103f8ae67cb1787063597925\` FOREIGN KEY (\`owner_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`notes\` - ADD CONSTRAINT \`FK_23e08e5b4481711d573e1abecdc\` FOREIGN KEY (\`target_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`member_roles\` - ADD CONSTRAINT \`FK_5d7ddc8a5f9c167f548625e772e\` FOREIGN KEY (\`index\`) REFERENCES \`members\`(\`index\`) ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE \`member_roles\` - ADD CONSTRAINT \`FK_e9080e7a7997a0170026d5139c1\` FOREIGN KEY (\`role_id\`) REFERENCES \`roles\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE \`message_user_mentions\` - ADD CONSTRAINT \`FK_a343387fc560ef378760681c236\` FOREIGN KEY (\`messagesId\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE \`message_user_mentions\` - ADD CONSTRAINT \`FK_b831eb18ceebd28976239b1e2f8\` FOREIGN KEY (\`usersId\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE \`message_role_mentions\` - ADD CONSTRAINT \`FK_a8242cf535337a490b0feaea0b4\` FOREIGN KEY (\`messagesId\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE \`message_role_mentions\` - ADD CONSTRAINT \`FK_29d63eb1a458200851bc37d074b\` FOREIGN KEY (\`rolesId\`) REFERENCES \`roles\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE \`message_channel_mentions\` - ADD CONSTRAINT \`FK_2a27102ecd1d81b4582a4360921\` FOREIGN KEY (\`messagesId\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE \`message_channel_mentions\` - ADD CONSTRAINT \`FK_bdb8c09e1464cabf62105bf4b9d\` FOREIGN KEY (\`channelsId\`) REFERENCES \`channels\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE \`message_stickers\` - ADD CONSTRAINT \`FK_40bb6f23e7cc133292e92829d28\` FOREIGN KEY (\`messagesId\`) REFERENCES \`messages\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE \`message_stickers\` - ADD CONSTRAINT \`FK_e22a70819d07659c7a71c112a1f\` FOREIGN KEY (\`stickersId\`) REFERENCES \`stickers\`(\`id\`) ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - CREATE TABLE \`query-result-cache\` ( - \`id\` int NOT NULL AUTO_INCREMENT, - \`identifier\` varchar(255) NULL, - \`time\` bigint NOT NULL, - \`duration\` int NOT NULL, - \`query\` text NOT NULL, - \`result\` text NOT NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - DROP TABLE \`query-result-cache\` - `); - await queryRunner.query(` - ALTER TABLE \`message_stickers\` DROP FOREIGN KEY \`FK_e22a70819d07659c7a71c112a1f\` - `); - await queryRunner.query(` - ALTER TABLE \`message_stickers\` DROP FOREIGN KEY \`FK_40bb6f23e7cc133292e92829d28\` - `); - await queryRunner.query(` - ALTER TABLE \`message_channel_mentions\` DROP FOREIGN KEY \`FK_bdb8c09e1464cabf62105bf4b9d\` - `); - await queryRunner.query(` - ALTER TABLE \`message_channel_mentions\` DROP FOREIGN KEY \`FK_2a27102ecd1d81b4582a4360921\` - `); - await queryRunner.query(` - ALTER TABLE \`message_role_mentions\` DROP FOREIGN KEY \`FK_29d63eb1a458200851bc37d074b\` - `); - await queryRunner.query(` - ALTER TABLE \`message_role_mentions\` DROP FOREIGN KEY \`FK_a8242cf535337a490b0feaea0b4\` - `); - await queryRunner.query(` - ALTER TABLE \`message_user_mentions\` DROP FOREIGN KEY \`FK_b831eb18ceebd28976239b1e2f8\` - `); - await queryRunner.query(` - ALTER TABLE \`message_user_mentions\` DROP FOREIGN KEY \`FK_a343387fc560ef378760681c236\` - `); - await queryRunner.query(` - ALTER TABLE \`member_roles\` DROP FOREIGN KEY \`FK_e9080e7a7997a0170026d5139c1\` - `); - await queryRunner.query(` - ALTER TABLE \`member_roles\` DROP FOREIGN KEY \`FK_5d7ddc8a5f9c167f548625e772e\` - `); - await queryRunner.query(` - ALTER TABLE \`notes\` DROP FOREIGN KEY \`FK_23e08e5b4481711d573e1abecdc\` - `); - await queryRunner.query(` - ALTER TABLE \`notes\` DROP FOREIGN KEY \`FK_f9e103f8ae67cb1787063597925\` - `); - await queryRunner.query(` - ALTER TABLE \`sticker_packs\` DROP FOREIGN KEY \`FK_448fafba4355ee1c837bbc865f1\` - `); - await queryRunner.query(` - ALTER TABLE \`sessions\` DROP FOREIGN KEY \`FK_085d540d9f418cfbdc7bd55bb19\` - `); - await queryRunner.query(` - ALTER TABLE \`audit_logs\` DROP FOREIGN KEY \`FK_bd2726fd31b35443f2245b93ba0\` - `); - await queryRunner.query(` - ALTER TABLE \`audit_logs\` DROP FOREIGN KEY \`FK_3cd01cd3ae7aab010310d96ac8e\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e5bf78cdbbe9ba91062d74c5aba\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_a36ed02953077f408d0f3ebc424\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e57508958bf92b9d9d25231b5e8\` - `); - await queryRunner.query(` - ALTER TABLE \`teams\` DROP FOREIGN KEY \`FK_13f00abf7cb6096c43ecaf8c108\` - `); - await queryRunner.query(` - ALTER TABLE \`team_members\` DROP FOREIGN KEY \`FK_c2bf4967c8c2a6b845dadfbf3d4\` - `); - await queryRunner.query(` - ALTER TABLE \`team_members\` DROP FOREIGN KEY \`FK_fdad7d5768277e60c40e01cdcea\` - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_9d1d665379eefde7876a17afa99\` - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_cfc3d3ad260f8121c95b31a1fce\` - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_95828668aa333460582e0ca6396\` - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_8d450b016dc8bec35f36729e4b0\` - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_fc1a451727e3643ca572a3bb394\` - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_e2a2f873a64a5cf62526de42325\` - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` DROP FOREIGN KEY \`FK_f591a66b8019d87b0fe6c12dad6\` - `); - await queryRunner.query(` - ALTER TABLE \`templates\` DROP FOREIGN KEY \`FK_445d00eaaea0e60a017a5ed0c11\` - `); - await queryRunner.query(` - ALTER TABLE \`templates\` DROP FOREIGN KEY \`FK_d7374b7f8f5fbfdececa4fb62e1\` - `); - await queryRunner.query(` - ALTER TABLE \`emojis\` DROP FOREIGN KEY \`FK_fa7ddd5f9a214e28ce596548421\` - `); - await queryRunner.query(` - ALTER TABLE \`emojis\` DROP FOREIGN KEY \`FK_4b988e0db89d94cebcf07f598cc\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP FOREIGN KEY \`FK_3873ed438575cce703ecff4fc7b\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP FOREIGN KEY \`FK_3274522d14af40540b1a883fc80\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP FOREIGN KEY \`FK_c253dafe5f3a03ec00cd8fb4581\` - `); - await queryRunner.query(` - ALTER TABLE \`voice_states\` DROP FOREIGN KEY \`FK_5fe1d5f931a67e85039c640001b\` - `); - await queryRunner.query(` - ALTER TABLE \`voice_states\` DROP FOREIGN KEY \`FK_9f8d389866b40b6657edd026dd4\` - `); - await queryRunner.query(` - ALTER TABLE \`voice_states\` DROP FOREIGN KEY \`FK_03779ef216d4b0358470d9cb748\` - `); - await queryRunner.query(` - ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_11a0d394f8fc649c19ce5f16b59\` - `); - await queryRunner.query(` - ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` - `); - await queryRunner.query(` - ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_6a15b051fe5050aa00a4b9ff0f6\` - `); - await queryRunner.query(` - ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_3f4939aa1461e8af57fea3fb05d\` - `); - await queryRunner.query(` - ALTER TABLE \`read_states\` DROP FOREIGN KEY \`FK_195f92e4dd1254a4e348c043763\` - `); - await queryRunner.query(` - ALTER TABLE \`read_states\` DROP FOREIGN KEY \`FK_40da2fca4e0eaf7a23b5bfc5d34\` - `); - await queryRunner.query(` - ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_61a92bb65b302a76d9c1fcd3174\` - `); - await queryRunner.query(` - ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_5d3ec1cb962de6488637fd779d6\` - `); - await queryRunner.query(` - ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_f83c04bcf1df4e5c0e7a52ed348\` - `); - await queryRunner.query(` - ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_b0525304f2262b7014245351c76\` - `); - await queryRunner.query(` - ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_05535bc695e9f7ee104616459d3\` - `); - await queryRunner.query(` - ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_b193588441b085352a4c0109423\` - `); - await queryRunner.query(` - ALTER TABLE \`messages\` DROP FOREIGN KEY \`FK_86b9109b155eb70c0a2ca3b4b6d\` - `); - await queryRunner.query(` - ALTER TABLE \`attachments\` DROP FOREIGN KEY \`FK_623e10eec51ada466c5038979e3\` - `); - await queryRunner.query(` - ALTER TABLE \`stickers\` DROP FOREIGN KEY \`FK_8f4ee73f2bb2325ff980502e158\` - `); - await queryRunner.query(` - ALTER TABLE \`stickers\` DROP FOREIGN KEY \`FK_193d551d852aca5347ef5c9f205\` - `); - await queryRunner.query(` - ALTER TABLE \`stickers\` DROP FOREIGN KEY \`FK_e7cfa5cefa6661b3fb8fda8ce69\` - `); - await queryRunner.query(` - ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_3a285f4f49c40e0706d3018bc9f\` - `); - await queryRunner.query(` - ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_0d523f6f997c86e052c49b1455f\` - `); - await queryRunner.query(` - ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_c3e5305461931763b56aa905f1c\` - `); - await queryRunner.query(` - ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_df528cf77e82f8032230e7e37d8\` - `); - await queryRunner.query(` - ALTER TABLE \`webhooks\` DROP FOREIGN KEY \`FK_487a7af59d189f744fe394368fc\` - `); - await queryRunner.query(` - ALTER TABLE \`members\` DROP FOREIGN KEY \`FK_16aceddd5b89825b8ed6029ad1c\` - `); - await queryRunner.query(` - ALTER TABLE \`members\` DROP FOREIGN KEY \`FK_28b53062261b996d9c99fa12404\` - `); - await queryRunner.query(` - ALTER TABLE \`roles\` DROP FOREIGN KEY \`FK_c32c1ab1c4dc7dcb0278c4b1b8b\` - `); - await queryRunner.query(` - ALTER TABLE \`recipients\` DROP FOREIGN KEY \`FK_6157e8b6ba4e6e3089616481fe2\` - `); - await queryRunner.query(` - ALTER TABLE \`recipients\` DROP FOREIGN KEY \`FK_2f18ee1ba667f233ae86c0ea60e\` - `); - await queryRunner.query(` - ALTER TABLE \`bans\` DROP FOREIGN KEY \`FK_07ad88c86d1f290d46748410d58\` - `); - await queryRunner.query(` - ALTER TABLE \`bans\` DROP FOREIGN KEY \`FK_9d3ab7dd180ebdd245cdb66ecad\` - `); - await queryRunner.query(` - ALTER TABLE \`bans\` DROP FOREIGN KEY \`FK_5999e8e449f80a236ff72023559\` - `); - await queryRunner.query(` - ALTER TABLE \`backup_codes\` DROP FOREIGN KEY \`FK_70066ea80d2f4b871beda32633b\` - `); - await queryRunner.query(` - ALTER TABLE \`connected_accounts\` DROP FOREIGN KEY \`FK_f47244225a6a1eac04a3463dd90\` - `); - await queryRunner.query(` - ALTER TABLE \`relationships\` DROP FOREIGN KEY \`FK_9c7f6b98a9843b76dce1b0c878b\` - `); - await queryRunner.query(` - ALTER TABLE \`relationships\` DROP FOREIGN KEY \`FK_9af4194bab1250b1c584ae4f1d7\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_e22a70819d07659c7a71c112a1\` ON \`message_stickers\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_40bb6f23e7cc133292e92829d2\` ON \`message_stickers\` - `); - await queryRunner.query(` - DROP TABLE \`message_stickers\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_bdb8c09e1464cabf62105bf4b9\` ON \`message_channel_mentions\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_2a27102ecd1d81b4582a436092\` ON \`message_channel_mentions\` - `); - await queryRunner.query(` - DROP TABLE \`message_channel_mentions\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_29d63eb1a458200851bc37d074\` ON \`message_role_mentions\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_a8242cf535337a490b0feaea0b\` ON \`message_role_mentions\` - `); - await queryRunner.query(` - DROP TABLE \`message_role_mentions\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_b831eb18ceebd28976239b1e2f\` ON \`message_user_mentions\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_a343387fc560ef378760681c23\` ON \`message_user_mentions\` - `); - await queryRunner.query(` - DROP TABLE \`message_user_mentions\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_e9080e7a7997a0170026d5139c\` ON \`member_roles\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_5d7ddc8a5f9c167f548625e772\` ON \`member_roles\` - `); - await queryRunner.query(` - DROP TABLE \`member_roles\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_74e6689b9568cc965b8bfc9150\` ON \`notes\` - `); - await queryRunner.query(` - DROP TABLE \`notes\` - `); - await queryRunner.query(` - DROP TABLE \`client_release\` - `); - await queryRunner.query(` - DROP TABLE \`sticker_packs\` - `); - await queryRunner.query(` - DROP TABLE \`sessions\` - `); - await queryRunner.query(` - DROP TABLE \`rate_limits\` - `); - await queryRunner.query(` - DROP TABLE \`categories\` - `); - await queryRunner.query(` - DROP TABLE \`audit_logs\` - `); - await queryRunner.query(` - DROP TABLE \`applications\` - `); - await queryRunner.query(` - DROP TABLE \`teams\` - `); - await queryRunner.query(` - DROP TABLE \`team_members\` - `); - await queryRunner.query(` - DROP TABLE \`guilds\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_be38737bf339baf63b1daeffb5\` ON \`templates\` - `); - await queryRunner.query(` - DROP TABLE \`templates\` - `); - await queryRunner.query(` - DROP TABLE \`emojis\` - `); - await queryRunner.query(` - DROP TABLE \`channels\` - `); - await queryRunner.query(` - DROP TABLE \`voice_states\` - `); - await queryRunner.query(` - DROP TABLE \`invites\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_0abf8b443321bd3cf7f81ee17a\` ON \`read_states\` - `); - await queryRunner.query(` - DROP TABLE \`read_states\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_3ed7a60fb7dbe04e1ba9332a8b\` ON \`messages\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_05535bc695e9f7ee104616459d\` ON \`messages\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_86b9109b155eb70c0a2ca3b4b6\` ON \`messages\` - `); - await queryRunner.query(` - DROP TABLE \`messages\` - `); - await queryRunner.query(` - DROP TABLE \`attachments\` - `); - await queryRunner.query(` - DROP TABLE \`stickers\` - `); - await queryRunner.query(` - DROP TABLE \`webhooks\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_bb2bf9386ac443afbbbf9f12d3\` ON \`members\` - `); - await queryRunner.query(` - DROP TABLE \`members\` - `); - await queryRunner.query(` - DROP TABLE \`roles\` - `); - await queryRunner.query(` - DROP TABLE \`recipients\` - `); - await queryRunner.query(` - DROP TABLE \`bans\` - `); - await queryRunner.query(` - DROP TABLE \`backup_codes\` - `); - await queryRunner.query(` - DROP TABLE \`users\` - `); - await queryRunner.query(` - DROP TABLE \`connected_accounts\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_a0b2ff0a598df0b0d055934a17\` ON \`relationships\` - `); - await queryRunner.query(` - DROP TABLE \`relationships\` - `); - await queryRunner.query(` - DROP TABLE \`config\` - `); - } - -} diff --git a/util/src/migrations/mariadb/1659921859145-premium_since_as_date.ts b/util/src/migrations/mariadb/1659921859145-premium_since_as_date.ts deleted file mode 100644 index de173cfe..00000000 --- a/util/src/migrations/mariadb/1659921859145-premium_since_as_date.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class premiumSinceAsDate1659921859145 implements MigrationInterface { - name = 'premiumSinceAsDate1659921859145' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`members\` DROP COLUMN \`premium_since\` - `); - await queryRunner.query(` - ALTER TABLE \`members\` - ADD \`premium_since\` datetime NULL - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`members\` DROP COLUMN \`premium_since\` - `); - await queryRunner.query(` - ALTER TABLE \`members\` - ADD \`premium_since\` bigint NULL - `); - } - -} diff --git a/util/src/migrations/mariadb/1660258393551-CodeCleanup3.ts b/util/src/migrations/mariadb/1660258393551-CodeCleanup3.ts deleted file mode 100644 index 87d075e4..00000000 --- a/util/src/migrations/mariadb/1660258393551-CodeCleanup3.ts +++ /dev/null @@ -1,232 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup31660258393551 implements MigrationInterface { - name = 'CodeCleanup31660258393551' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_2ce5a55796fe4c2f77ece57a647\` - `); - await queryRunner.query(` - DROP INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` - `); - await queryRunner.query(` - CREATE TABLE \`user_settings\` ( - \`id\` varchar(255) NOT NULL, - \`afk_timeout\` int NULL, - \`allow_accessibility_detection\` tinyint NULL, - \`animate_emoji\` tinyint NULL, - \`animate_stickers\` int NULL, - \`contact_sync_enabled\` tinyint NULL, - \`convert_emoticons\` tinyint NULL, - \`custom_status\` text NULL, - \`default_guilds_restricted\` tinyint NULL, - \`detect_platform_accounts\` tinyint NULL, - \`developer_mode\` tinyint NULL, - \`disable_games_tab\` tinyint NULL, - \`enable_tts_command\` tinyint NULL, - \`explicit_content_filter\` int NULL, - \`friend_source_flags\` text NULL, - \`gateway_connected\` tinyint NULL, - \`gif_auto_play\` tinyint NULL, - \`guild_folders\` text NULL, - \`guild_positions\` text NULL, - \`inline_attachment_media\` tinyint NULL, - \`inline_embed_media\` tinyint NULL, - \`locale\` varchar(255) NULL, - \`message_display_compact\` tinyint NULL, - \`native_phone_integration_enabled\` tinyint NULL, - \`render_embeds\` tinyint NULL, - \`render_reactions\` tinyint NULL, - \`restricted_guilds\` text NULL, - \`show_current_game\` tinyint NULL, - \`status\` varchar(255) NULL, - \`stream_notifications_enabled\` tinyint NULL, - \`theme\` varchar(255) NULL, - \`timezone_offset\` int NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP COLUMN \`settings\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`type\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`hook\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`redirect_uris\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`rpc_application_state\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`store_application_state\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`verification_state\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`interactions_endpoint_url\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`integration_public\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`integration_require_code_grant\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`discoverability_state\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`discovery_eligibility_flags\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`tags\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`install_params\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`bot_user_id\` - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` - ADD \`premium_progress_bar_enabled\` tinyint NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`rpc_origins\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`primary_sku_id\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`slug\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`guild_id\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`flags\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`flags\` varchar(255) NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD CONSTRAINT \`FK_e5bf78cdbbe9ba91062d74c5aba\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e5bf78cdbbe9ba91062d74c5aba\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`flags\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`flags\` int NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`guild_id\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`slug\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`primary_sku_id\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`rpc_origins\` - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` DROP COLUMN \`premium_progress_bar_enabled\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`bot_user_id\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`install_params\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`tags\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`discovery_eligibility_flags\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`discoverability_state\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`integration_require_code_grant\` tinyint NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`integration_public\` tinyint NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`interactions_endpoint_url\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`verification_state\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`store_application_state\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`rpc_application_state\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`redirect_uris\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`hook\` tinyint NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`type\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD \`settings\` text NOT NULL - `); - await queryRunner.query(` - DROP TABLE \`user_settings\` - `); - await queryRunner.query(` - CREATE UNIQUE INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`) - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD CONSTRAINT \`FK_2ce5a55796fe4c2f77ece57a647\` FOREIGN KEY (\`bot_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - -} diff --git a/util/src/migrations/mariadb/1660260587556-CodeCleanup4.ts b/util/src/migrations/mariadb/1660260587556-CodeCleanup4.ts deleted file mode 100644 index 98da67db..00000000 --- a/util/src/migrations/mariadb/1660260587556-CodeCleanup4.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup41660260587556 implements MigrationInterface { - name = 'CodeCleanup41660260587556' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`users\` - ADD \`settingsId\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` (\`settingsId\`) - `); - await queryRunner.query(` - CREATE UNIQUE INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD CONSTRAINT \`FK_76ba283779c8441fd5ff819c8cf\` FOREIGN KEY (\`settingsId\`) REFERENCES \`user_settings\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`users\` DROP FOREIGN KEY \`FK_76ba283779c8441fd5ff819c8cf\` - `); - await queryRunner.query(` - DROP INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP COLUMN \`settingsId\` - `); - } - -} diff --git a/util/src/migrations/mariadb/1660265930624-CodeCleanup5.ts b/util/src/migrations/mariadb/1660265930624-CodeCleanup5.ts deleted file mode 100644 index 04f8e6af..00000000 --- a/util/src/migrations/mariadb/1660265930624-CodeCleanup5.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup51660265930624 implements MigrationInterface { - name = 'CodeCleanup51660265930624' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`users\` - ADD \`settingsId\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` (\`settingsId\`) - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD \`flags\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD \`default_thread_rate_limit_per_user\` int NULL - `); - await queryRunner.query(` - CREATE UNIQUE INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD CONSTRAINT \`FK_76ba283779c8441fd5ff819c8cf\` FOREIGN KEY (\`settingsId\`) REFERENCES \`user_settings\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`users\` DROP FOREIGN KEY \`FK_76ba283779c8441fd5ff819c8cf\` - `); - await queryRunner.query(` - DROP INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP COLUMN \`default_thread_rate_limit_per_user\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP COLUMN \`flags\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP COLUMN \`settingsId\` - `); - } - -} diff --git a/util/src/migrations/postgres/1659899687168-initial.ts b/util/src/migrations/postgres/1659899687168-initial.ts deleted file mode 100644 index 4ffb897d..00000000 --- a/util/src/migrations/postgres/1659899687168-initial.ts +++ /dev/null @@ -1,1245 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class initial1659899687168 implements MigrationInterface { - name = 'initial1659899687168' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE TABLE "config" ( - "key" character varying NOT NULL, - "value" text, - CONSTRAINT "PK_26489c99ddbb4c91631ef5cc791" PRIMARY KEY ("key") - ) - `); - await queryRunner.query(` - CREATE TABLE "relationships" ( - "id" character varying NOT NULL, - "from_id" character varying NOT NULL, - "to_id" character varying NOT NULL, - "nickname" character varying, - "type" integer NOT NULL, - CONSTRAINT "PK_ba20e2f5cf487408e08e4dcecaf" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_a0b2ff0a598df0b0d055934a17" ON "relationships" ("from_id", "to_id") - `); - await queryRunner.query(` - CREATE TABLE "connected_accounts" ( - "id" character varying NOT NULL, - "user_id" character varying, - "access_token" character varying NOT NULL, - "friend_sync" boolean NOT NULL, - "name" character varying NOT NULL, - "revoked" boolean NOT NULL, - "show_activity" boolean NOT NULL, - "type" character varying NOT NULL, - "verified" boolean NOT NULL, - "visibility" integer NOT NULL, - CONSTRAINT "PK_70416f1da0be645bb31da01c774" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "users" ( - "id" character varying NOT NULL, - "username" character varying NOT NULL, - "discriminator" character varying NOT NULL, - "avatar" character varying, - "accent_color" integer, - "banner" character varying, - "phone" character varying, - "desktop" boolean NOT NULL, - "mobile" boolean NOT NULL, - "premium" boolean NOT NULL, - "premium_type" integer NOT NULL, - "bot" boolean NOT NULL, - "bio" character varying NOT NULL, - "system" boolean NOT NULL, - "nsfw_allowed" boolean NOT NULL, - "mfa_enabled" boolean NOT NULL, - "totp_secret" character varying, - "totp_last_ticket" character varying, - "created_at" TIMESTAMP NOT NULL, - "premium_since" TIMESTAMP, - "verified" boolean NOT NULL, - "disabled" boolean NOT NULL, - "deleted" boolean NOT NULL, - "email" character varying, - "flags" character varying NOT NULL, - "public_flags" integer NOT NULL, - "rights" bigint NOT NULL, - "data" text NOT NULL, - "fingerprints" text NOT NULL, - "settings" text NOT NULL, - "extended_settings" text NOT NULL, - "notes" text NOT NULL, - CONSTRAINT "PK_a3ffb1c0c8416b9fc6f907b7433" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "backup_codes" ( - "id" character varying NOT NULL, - "code" character varying NOT NULL, - "consumed" boolean NOT NULL, - "expired" boolean NOT NULL, - "user_id" character varying, - CONSTRAINT "PK_34ab957382dbc57e8fb53f1638f" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "bans" ( - "id" character varying NOT NULL, - "user_id" character varying, - "guild_id" character varying, - "executor_id" character varying, - "ip" character varying NOT NULL, - "reason" character varying, - CONSTRAINT "PK_a4d6f261bffa4615c62d756566a" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "recipients" ( - "id" character varying NOT NULL, - "channel_id" character varying NOT NULL, - "user_id" character varying NOT NULL, - "closed" boolean NOT NULL DEFAULT false, - CONSTRAINT "PK_de8fc5a9c364568f294798fe1e9" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "roles" ( - "id" character varying NOT NULL, - "guild_id" character varying, - "color" integer NOT NULL, - "hoist" boolean NOT NULL, - "managed" boolean NOT NULL, - "mentionable" boolean NOT NULL, - "name" character varying NOT NULL, - "permissions" character varying NOT NULL, - "position" integer NOT NULL, - "icon" character varying, - "unicode_emoji" character varying, - "tags" text, - CONSTRAINT "PK_c1433d71a4838793a49dcad46ab" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "members" ( - "index" SERIAL NOT NULL, - "id" character varying NOT NULL, - "guild_id" character varying NOT NULL, - "nick" character varying, - "joined_at" TIMESTAMP NOT NULL, - "premium_since" bigint, - "deaf" boolean NOT NULL, - "mute" boolean NOT NULL, - "pending" boolean NOT NULL, - "settings" text NOT NULL, - "last_message_id" character varying, - "joined_by" character varying, - CONSTRAINT "PK_b4a6b8c2478e5df990909c6cf6a" PRIMARY KEY ("index") - ) - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") - `); - await queryRunner.query(` - CREATE TABLE "webhooks" ( - "id" character varying NOT NULL, - "type" integer NOT NULL, - "name" character varying, - "avatar" character varying, - "token" character varying, - "guild_id" character varying, - "channel_id" character varying, - "application_id" character varying, - "user_id" character varying, - "source_guild_id" character varying, - CONSTRAINT "PK_9e8795cfc899ab7bdaa831e8527" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "stickers" ( - "id" character varying NOT NULL, - "name" character varying NOT NULL, - "description" character varying, - "available" boolean, - "tags" character varying, - "pack_id" character varying, - "guild_id" character varying, - "user_id" character varying, - "type" integer NOT NULL, - "format_type" integer NOT NULL, - CONSTRAINT "PK_e1dafa4063a5532645cc2810374" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "attachments" ( - "id" character varying NOT NULL, - "filename" character varying NOT NULL, - "size" integer NOT NULL, - "url" character varying NOT NULL, - "proxy_url" character varying NOT NULL, - "height" integer, - "width" integer, - "content_type" character varying, - "message_id" character varying, - CONSTRAINT "PK_5e1f050bcff31e3084a1d662412" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "messages" ( - "id" character varying NOT NULL, - "channel_id" character varying, - "guild_id" character varying, - "author_id" character varying, - "member_id" character varying, - "webhook_id" character varying, - "application_id" character varying, - "content" character varying, - "timestamp" TIMESTAMP NOT NULL DEFAULT now(), - "edited_timestamp" TIMESTAMP, - "tts" boolean, - "mention_everyone" boolean, - "embeds" text NOT NULL, - "reactions" text NOT NULL, - "nonce" text, - "pinned" boolean, - "type" integer NOT NULL, - "activity" text, - "flags" character varying, - "message_reference" text, - "interaction" text, - "components" text, - "message_reference_id" character varying, - CONSTRAINT "PK_18325f38ae6de43878487eff986" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" ON "messages" ("channel_id") - `); - await queryRunner.query(` - CREATE INDEX "IDX_05535bc695e9f7ee104616459d" ON "messages" ("author_id") - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" ON "messages" ("channel_id", "id") - `); - await queryRunner.query(` - CREATE TABLE "read_states" ( - "id" character varying NOT NULL, - "channel_id" character varying NOT NULL, - "user_id" character varying NOT NULL, - "last_message_id" character varying, - "public_ack" character varying, - "notifications_cursor" character varying, - "last_pin_timestamp" TIMESTAMP, - "mention_count" integer, - CONSTRAINT "PK_e6956a804978f01b713b1ed58e2" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_0abf8b443321bd3cf7f81ee17a" ON "read_states" ("channel_id", "user_id") - `); - await queryRunner.query(` - CREATE TABLE "invites" ( - "code" character varying NOT NULL, - "temporary" boolean NOT NULL, - "uses" integer NOT NULL, - "max_uses" integer NOT NULL, - "max_age" integer NOT NULL, - "created_at" TIMESTAMP NOT NULL, - "expires_at" TIMESTAMP NOT NULL, - "guild_id" character varying, - "channel_id" character varying, - "inviter_id" character varying, - "target_user_id" character varying, - "target_user_type" integer, - "vanity_url" boolean, - CONSTRAINT "PK_33fd8a248db1cd832baa8aa25bf" PRIMARY KEY ("code") - ) - `); - await queryRunner.query(` - CREATE TABLE "voice_states" ( - "id" character varying NOT NULL, - "guild_id" character varying, - "channel_id" character varying, - "user_id" character varying, - "session_id" character varying NOT NULL, - "token" character varying, - "deaf" boolean NOT NULL, - "mute" boolean NOT NULL, - "self_deaf" boolean NOT NULL, - "self_mute" boolean NOT NULL, - "self_stream" boolean, - "self_video" boolean NOT NULL, - "suppress" boolean NOT NULL, - "request_to_speak_timestamp" TIMESTAMP, - CONSTRAINT "PK_ada09a50c134fad1369b510e3ce" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "channels" ( - "id" character varying NOT NULL, - "created_at" TIMESTAMP NOT NULL, - "name" character varying, - "icon" text, - "type" integer NOT NULL, - "last_message_id" character varying, - "guild_id" character varying, - "parent_id" character varying, - "owner_id" character varying, - "last_pin_timestamp" integer, - "default_auto_archive_duration" integer, - "position" integer, - "permission_overwrites" text, - "video_quality_mode" integer, - "bitrate" integer, - "user_limit" integer, - "nsfw" boolean, - "rate_limit_per_user" integer, - "topic" character varying, - "retention_policy_id" character varying, - CONSTRAINT "PK_bc603823f3f741359c2339389f9" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "emojis" ( - "id" character varying NOT NULL, - "animated" boolean NOT NULL, - "available" boolean NOT NULL, - "guild_id" character varying NOT NULL, - "user_id" character varying, - "managed" boolean NOT NULL, - "name" character varying NOT NULL, - "require_colons" boolean NOT NULL, - "roles" text NOT NULL, - "groups" text, - CONSTRAINT "PK_9adb96a675f555c6169bad7ba62" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "templates" ( - "id" character varying NOT NULL, - "code" character varying NOT NULL, - "name" character varying NOT NULL, - "description" character varying, - "usage_count" integer, - "creator_id" character varying, - "created_at" TIMESTAMP NOT NULL, - "updated_at" TIMESTAMP NOT NULL, - "source_guild_id" character varying, - "serialized_source_guild" text NOT NULL, - CONSTRAINT "UQ_be38737bf339baf63b1daeffb55" UNIQUE ("code"), - CONSTRAINT "PK_515948649ce0bbbe391de702ae5" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "guilds" ( - "id" character varying NOT NULL, - "afk_channel_id" character varying, - "afk_timeout" integer, - "banner" character varying, - "default_message_notifications" integer, - "description" character varying, - "discovery_splash" character varying, - "explicit_content_filter" integer, - "features" text NOT NULL, - "primary_category_id" integer, - "icon" character varying, - "large" boolean, - "max_members" integer, - "max_presences" integer, - "max_video_channel_users" integer, - "member_count" integer, - "presence_count" integer, - "template_id" character varying, - "mfa_level" integer, - "name" character varying NOT NULL, - "owner_id" character varying, - "preferred_locale" character varying, - "premium_subscription_count" integer, - "premium_tier" integer, - "public_updates_channel_id" character varying, - "rules_channel_id" character varying, - "region" character varying, - "splash" character varying, - "system_channel_id" character varying, - "system_channel_flags" integer, - "unavailable" boolean, - "verification_level" integer, - "welcome_screen" text NOT NULL, - "widget_channel_id" character varying, - "widget_enabled" boolean, - "nsfw_level" integer, - "nsfw" boolean, - "parent" character varying, - CONSTRAINT "PK_e7e7f2a51bd6d96a9ac2aa560f9" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "team_members" ( - "id" character varying NOT NULL, - "membership_state" integer NOT NULL, - "permissions" text NOT NULL, - "team_id" character varying, - "user_id" character varying, - CONSTRAINT "PK_ca3eae89dcf20c9fd95bf7460aa" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "teams" ( - "id" character varying NOT NULL, - "icon" character varying, - "name" character varying NOT NULL, - "owner_user_id" character varying, - CONSTRAINT "PK_7e5523774a38b08a6236d322403" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "applications" ( - "id" character varying NOT NULL, - "name" character varying NOT NULL, - "icon" character varying, - "description" character varying NOT NULL, - "rpc_origins" text, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" character varying, - "privacy_policy_url" character varying, - "summary" character varying, - "verify_key" character varying NOT NULL, - "primary_sku_id" character varying, - "slug" character varying, - "cover_image" character varying, - "flags" character varying NOT NULL, - "owner_id" character varying, - "team_id" character varying, - "guild_id" character varying, - CONSTRAINT "PK_938c0a27255637bde919591888f" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "audit_logs" ( - "id" character varying NOT NULL, - "user_id" character varying, - "action_type" integer NOT NULL, - "options" text, - "changes" text NOT NULL, - "reason" character varying, - "target_id" character varying, - CONSTRAINT "PK_1bb179d048bbc581caa3b013439" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "categories" ( - "id" integer NOT NULL, - "name" character varying, - "localizations" text NOT NULL, - "is_primary" boolean, - CONSTRAINT "PK_24dbc6126a28ff948da33e97d3b" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "rate_limits" ( - "id" character varying NOT NULL, - "executor_id" character varying NOT NULL, - "hits" integer NOT NULL, - "blocked" boolean NOT NULL, - "expires_at" TIMESTAMP NOT NULL, - CONSTRAINT "PK_3b4449f1f5fc167d921ee619f65" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "sessions" ( - "id" character varying NOT NULL, - "user_id" character varying, - "session_id" character varying NOT NULL, - "activities" text, - "client_info" text NOT NULL, - "status" character varying NOT NULL, - CONSTRAINT "PK_3238ef96f18b355b671619111bc" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "sticker_packs" ( - "id" character varying NOT NULL, - "name" character varying NOT NULL, - "description" character varying, - "banner_asset_id" character varying, - "cover_sticker_id" character varying, - "coverStickerId" character varying, - CONSTRAINT "PK_a27381efea0f876f5d3233af655" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "client_release" ( - "id" character varying NOT NULL, - "name" character varying NOT NULL, - "pub_date" character varying NOT NULL, - "url" character varying NOT NULL, - "deb_url" character varying NOT NULL, - "osx_url" character varying NOT NULL, - "win_url" character varying NOT NULL, - "notes" character varying, - CONSTRAINT "PK_4c4ea258342d2d6ba1be0a71a43" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "notes" ( - "id" character varying NOT NULL, - "content" character varying NOT NULL, - "owner_id" character varying, - "target_id" character varying, - CONSTRAINT "UQ_74e6689b9568cc965b8bfc9150b" UNIQUE ("owner_id", "target_id"), - CONSTRAINT "PK_af6206538ea96c4e77e9f400c3d" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - CREATE TABLE "member_roles" ( - "index" integer NOT NULL, - "role_id" character varying NOT NULL, - CONSTRAINT "PK_951c1d72a0fd1da8760b4a1fd66" PRIMARY KEY ("index", "role_id") - ) - `); - await queryRunner.query(` - CREATE INDEX "IDX_5d7ddc8a5f9c167f548625e772" ON "member_roles" ("index") - `); - await queryRunner.query(` - CREATE INDEX "IDX_e9080e7a7997a0170026d5139c" ON "member_roles" ("role_id") - `); - await queryRunner.query(` - CREATE TABLE "message_user_mentions" ( - "messagesId" character varying NOT NULL, - "usersId" character varying NOT NULL, - CONSTRAINT "PK_9b9b6e245ad47a48dbd7605d4fb" PRIMARY KEY ("messagesId", "usersId") - ) - `); - await queryRunner.query(` - CREATE INDEX "IDX_a343387fc560ef378760681c23" ON "message_user_mentions" ("messagesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_b831eb18ceebd28976239b1e2f" ON "message_user_mentions" ("usersId") - `); - await queryRunner.query(` - CREATE TABLE "message_role_mentions" ( - "messagesId" character varying NOT NULL, - "rolesId" character varying NOT NULL, - CONSTRAINT "PK_74dba92cc300452a6e14b83ed44" PRIMARY KEY ("messagesId", "rolesId") - ) - `); - await queryRunner.query(` - CREATE INDEX "IDX_a8242cf535337a490b0feaea0b" ON "message_role_mentions" ("messagesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_29d63eb1a458200851bc37d074" ON "message_role_mentions" ("rolesId") - `); - await queryRunner.query(` - CREATE TABLE "message_channel_mentions" ( - "messagesId" character varying NOT NULL, - "channelsId" character varying NOT NULL, - CONSTRAINT "PK_85cb45351497cd9d06a79ced65e" PRIMARY KEY ("messagesId", "channelsId") - ) - `); - await queryRunner.query(` - CREATE INDEX "IDX_2a27102ecd1d81b4582a436092" ON "message_channel_mentions" ("messagesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_bdb8c09e1464cabf62105bf4b9" ON "message_channel_mentions" ("channelsId") - `); - await queryRunner.query(` - CREATE TABLE "message_stickers" ( - "messagesId" character varying NOT NULL, - "stickersId" character varying NOT NULL, - CONSTRAINT "PK_ed820c4093d0b8cd1d2bcf66087" PRIMARY KEY ("messagesId", "stickersId") - ) - `); - await queryRunner.query(` - CREATE INDEX "IDX_40bb6f23e7cc133292e92829d2" ON "message_stickers" ("messagesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_e22a70819d07659c7a71c112a1" ON "message_stickers" ("stickersId") - `); - await queryRunner.query(` - ALTER TABLE "relationships" - ADD CONSTRAINT "FK_9af4194bab1250b1c584ae4f1d7" FOREIGN KEY ("from_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "relationships" - ADD CONSTRAINT "FK_9c7f6b98a9843b76dce1b0c878b" FOREIGN KEY ("to_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "connected_accounts" - ADD CONSTRAINT "FK_f47244225a6a1eac04a3463dd90" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "backup_codes" - ADD CONSTRAINT "FK_70066ea80d2f4b871beda32633b" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "bans" - ADD CONSTRAINT "FK_5999e8e449f80a236ff72023559" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "bans" - ADD CONSTRAINT "FK_9d3ab7dd180ebdd245cdb66ecad" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "bans" - ADD CONSTRAINT "FK_07ad88c86d1f290d46748410d58" FOREIGN KEY ("executor_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "recipients" - ADD CONSTRAINT "FK_2f18ee1ba667f233ae86c0ea60e" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "recipients" - ADD CONSTRAINT "FK_6157e8b6ba4e6e3089616481fe2" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "roles" - ADD CONSTRAINT "FK_c32c1ab1c4dc7dcb0278c4b1b8b" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "members" - ADD CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "members" - ADD CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "webhooks" - ADD CONSTRAINT "FK_487a7af59d189f744fe394368fc" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "webhooks" - ADD CONSTRAINT "FK_df528cf77e82f8032230e7e37d8" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "webhooks" - ADD CONSTRAINT "FK_c3e5305461931763b56aa905f1c" FOREIGN KEY ("application_id") REFERENCES "applications"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "webhooks" - ADD CONSTRAINT "FK_0d523f6f997c86e052c49b1455f" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "webhooks" - ADD CONSTRAINT "FK_3a285f4f49c40e0706d3018bc9f" FOREIGN KEY ("source_guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "stickers" - ADD CONSTRAINT "FK_e7cfa5cefa6661b3fb8fda8ce69" FOREIGN KEY ("pack_id") REFERENCES "sticker_packs"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "stickers" - ADD CONSTRAINT "FK_193d551d852aca5347ef5c9f205" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "stickers" - ADD CONSTRAINT "FK_8f4ee73f2bb2325ff980502e158" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "attachments" - ADD CONSTRAINT "FK_623e10eec51ada466c5038979e3" FOREIGN KEY ("message_id") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "messages" - ADD CONSTRAINT "FK_86b9109b155eb70c0a2ca3b4b6d" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "messages" - ADD CONSTRAINT "FK_b193588441b085352a4c0109423" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "messages" - ADD CONSTRAINT "FK_05535bc695e9f7ee104616459d3" FOREIGN KEY ("author_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "messages" - ADD CONSTRAINT "FK_b0525304f2262b7014245351c76" FOREIGN KEY ("member_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "messages" - ADD CONSTRAINT "FK_f83c04bcf1df4e5c0e7a52ed348" FOREIGN KEY ("webhook_id") REFERENCES "webhooks"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "messages" - ADD CONSTRAINT "FK_5d3ec1cb962de6488637fd779d6" FOREIGN KEY ("application_id") REFERENCES "applications"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "messages" - ADD CONSTRAINT "FK_61a92bb65b302a76d9c1fcd3174" FOREIGN KEY ("message_reference_id") REFERENCES "messages"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "read_states" - ADD CONSTRAINT "FK_40da2fca4e0eaf7a23b5bfc5d34" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "read_states" - ADD CONSTRAINT "FK_195f92e4dd1254a4e348c043763" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "invites" - ADD CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "invites" - ADD CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "invites" - ADD CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "invites" - ADD CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "voice_states" - ADD CONSTRAINT "FK_03779ef216d4b0358470d9cb748" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "voice_states" - ADD CONSTRAINT "FK_9f8d389866b40b6657edd026dd4" FOREIGN KEY ("channel_id") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "voice_states" - ADD CONSTRAINT "FK_5fe1d5f931a67e85039c640001b" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "channels" - ADD CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "channels" - ADD CONSTRAINT "FK_3274522d14af40540b1a883fc80" FOREIGN KEY ("parent_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "channels" - ADD CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "emojis" - ADD CONSTRAINT "FK_4b988e0db89d94cebcf07f598cc" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "emojis" - ADD CONSTRAINT "FK_fa7ddd5f9a214e28ce596548421" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "templates" - ADD CONSTRAINT "FK_d7374b7f8f5fbfdececa4fb62e1" FOREIGN KEY ("creator_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "templates" - ADD CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" FOREIGN KEY ("source_guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "guilds" - ADD CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "guilds" - ADD CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "guilds" - ADD CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "guilds" - ADD CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "guilds" - ADD CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "guilds" - ADD CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "guilds" - ADD CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "team_members" - ADD CONSTRAINT "FK_fdad7d5768277e60c40e01cdcea" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "team_members" - ADD CONSTRAINT "FK_c2bf4967c8c2a6b845dadfbf3d4" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "teams" - ADD CONSTRAINT "FK_13f00abf7cb6096c43ecaf8c108" FOREIGN KEY ("owner_user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "audit_logs" - ADD CONSTRAINT "FK_3cd01cd3ae7aab010310d96ac8e" FOREIGN KEY ("target_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "audit_logs" - ADD CONSTRAINT "FK_bd2726fd31b35443f2245b93ba0" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "sessions" - ADD CONSTRAINT "FK_085d540d9f418cfbdc7bd55bb19" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "sticker_packs" - ADD CONSTRAINT "FK_448fafba4355ee1c837bbc865f1" FOREIGN KEY ("coverStickerId") REFERENCES "stickers"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "notes" - ADD CONSTRAINT "FK_f9e103f8ae67cb1787063597925" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "notes" - ADD CONSTRAINT "FK_23e08e5b4481711d573e1abecdc" FOREIGN KEY ("target_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE "member_roles" - ADD CONSTRAINT "FK_5d7ddc8a5f9c167f548625e772e" FOREIGN KEY ("index") REFERENCES "members"("index") ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE "member_roles" - ADD CONSTRAINT "FK_e9080e7a7997a0170026d5139c1" FOREIGN KEY ("role_id") REFERENCES "roles"("id") ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE "message_user_mentions" - ADD CONSTRAINT "FK_a343387fc560ef378760681c236" FOREIGN KEY ("messagesId") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE "message_user_mentions" - ADD CONSTRAINT "FK_b831eb18ceebd28976239b1e2f8" FOREIGN KEY ("usersId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE "message_role_mentions" - ADD CONSTRAINT "FK_a8242cf535337a490b0feaea0b4" FOREIGN KEY ("messagesId") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE "message_role_mentions" - ADD CONSTRAINT "FK_29d63eb1a458200851bc37d074b" FOREIGN KEY ("rolesId") REFERENCES "roles"("id") ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE "message_channel_mentions" - ADD CONSTRAINT "FK_2a27102ecd1d81b4582a4360921" FOREIGN KEY ("messagesId") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE "message_channel_mentions" - ADD CONSTRAINT "FK_bdb8c09e1464cabf62105bf4b9d" FOREIGN KEY ("channelsId") REFERENCES "channels"("id") ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE "message_stickers" - ADD CONSTRAINT "FK_40bb6f23e7cc133292e92829d28" FOREIGN KEY ("messagesId") REFERENCES "messages"("id") ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - ALTER TABLE "message_stickers" - ADD CONSTRAINT "FK_e22a70819d07659c7a71c112a1f" FOREIGN KEY ("stickersId") REFERENCES "stickers"("id") ON DELETE CASCADE ON UPDATE CASCADE - `); - await queryRunner.query(` - CREATE TABLE "query-result-cache" ( - "id" SERIAL NOT NULL, - "identifier" character varying, - "time" bigint NOT NULL, - "duration" integer NOT NULL, - "query" text NOT NULL, - "result" text NOT NULL, - CONSTRAINT "PK_6a98f758d8bfd010e7e10ffd3d3" PRIMARY KEY ("id") - ) - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - DROP TABLE "query-result-cache" - `); - await queryRunner.query(` - ALTER TABLE "message_stickers" DROP CONSTRAINT "FK_e22a70819d07659c7a71c112a1f" - `); - await queryRunner.query(` - ALTER TABLE "message_stickers" DROP CONSTRAINT "FK_40bb6f23e7cc133292e92829d28" - `); - await queryRunner.query(` - ALTER TABLE "message_channel_mentions" DROP CONSTRAINT "FK_bdb8c09e1464cabf62105bf4b9d" - `); - await queryRunner.query(` - ALTER TABLE "message_channel_mentions" DROP CONSTRAINT "FK_2a27102ecd1d81b4582a4360921" - `); - await queryRunner.query(` - ALTER TABLE "message_role_mentions" DROP CONSTRAINT "FK_29d63eb1a458200851bc37d074b" - `); - await queryRunner.query(` - ALTER TABLE "message_role_mentions" DROP CONSTRAINT "FK_a8242cf535337a490b0feaea0b4" - `); - await queryRunner.query(` - ALTER TABLE "message_user_mentions" DROP CONSTRAINT "FK_b831eb18ceebd28976239b1e2f8" - `); - await queryRunner.query(` - ALTER TABLE "message_user_mentions" DROP CONSTRAINT "FK_a343387fc560ef378760681c236" - `); - await queryRunner.query(` - ALTER TABLE "member_roles" DROP CONSTRAINT "FK_e9080e7a7997a0170026d5139c1" - `); - await queryRunner.query(` - ALTER TABLE "member_roles" DROP CONSTRAINT "FK_5d7ddc8a5f9c167f548625e772e" - `); - await queryRunner.query(` - ALTER TABLE "notes" DROP CONSTRAINT "FK_23e08e5b4481711d573e1abecdc" - `); - await queryRunner.query(` - ALTER TABLE "notes" DROP CONSTRAINT "FK_f9e103f8ae67cb1787063597925" - `); - await queryRunner.query(` - ALTER TABLE "sticker_packs" DROP CONSTRAINT "FK_448fafba4355ee1c837bbc865f1" - `); - await queryRunner.query(` - ALTER TABLE "sessions" DROP CONSTRAINT "FK_085d540d9f418cfbdc7bd55bb19" - `); - await queryRunner.query(` - ALTER TABLE "audit_logs" DROP CONSTRAINT "FK_bd2726fd31b35443f2245b93ba0" - `); - await queryRunner.query(` - ALTER TABLE "audit_logs" DROP CONSTRAINT "FK_3cd01cd3ae7aab010310d96ac8e" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" - `); - await queryRunner.query(` - ALTER TABLE "teams" DROP CONSTRAINT "FK_13f00abf7cb6096c43ecaf8c108" - `); - await queryRunner.query(` - ALTER TABLE "team_members" DROP CONSTRAINT "FK_c2bf4967c8c2a6b845dadfbf3d4" - `); - await queryRunner.query(` - ALTER TABLE "team_members" DROP CONSTRAINT "FK_fdad7d5768277e60c40e01cdcea" - `); - await queryRunner.query(` - ALTER TABLE "guilds" DROP CONSTRAINT "FK_9d1d665379eefde7876a17afa99" - `); - await queryRunner.query(` - ALTER TABLE "guilds" DROP CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" - `); - await queryRunner.query(` - ALTER TABLE "guilds" DROP CONSTRAINT "FK_95828668aa333460582e0ca6396" - `); - await queryRunner.query(` - ALTER TABLE "guilds" DROP CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" - `); - await queryRunner.query(` - ALTER TABLE "guilds" DROP CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" - `); - await queryRunner.query(` - ALTER TABLE "guilds" DROP CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" - `); - await queryRunner.query(` - ALTER TABLE "guilds" DROP CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" - `); - await queryRunner.query(` - ALTER TABLE "templates" DROP CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" - `); - await queryRunner.query(` - ALTER TABLE "templates" DROP CONSTRAINT "FK_d7374b7f8f5fbfdececa4fb62e1" - `); - await queryRunner.query(` - ALTER TABLE "emojis" DROP CONSTRAINT "FK_fa7ddd5f9a214e28ce596548421" - `); - await queryRunner.query(` - ALTER TABLE "emojis" DROP CONSTRAINT "FK_4b988e0db89d94cebcf07f598cc" - `); - await queryRunner.query(` - ALTER TABLE "channels" DROP CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" - `); - await queryRunner.query(` - ALTER TABLE "channels" DROP CONSTRAINT "FK_3274522d14af40540b1a883fc80" - `); - await queryRunner.query(` - ALTER TABLE "channels" DROP CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" - `); - await queryRunner.query(` - ALTER TABLE "voice_states" DROP CONSTRAINT "FK_5fe1d5f931a67e85039c640001b" - `); - await queryRunner.query(` - ALTER TABLE "voice_states" DROP CONSTRAINT "FK_9f8d389866b40b6657edd026dd4" - `); - await queryRunner.query(` - ALTER TABLE "voice_states" DROP CONSTRAINT "FK_03779ef216d4b0358470d9cb748" - `); - await queryRunner.query(` - ALTER TABLE "invites" DROP CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" - `); - await queryRunner.query(` - ALTER TABLE "invites" DROP CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" - `); - await queryRunner.query(` - ALTER TABLE "invites" DROP CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" - `); - await queryRunner.query(` - ALTER TABLE "invites" DROP CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" - `); - await queryRunner.query(` - ALTER TABLE "read_states" DROP CONSTRAINT "FK_195f92e4dd1254a4e348c043763" - `); - await queryRunner.query(` - ALTER TABLE "read_states" DROP CONSTRAINT "FK_40da2fca4e0eaf7a23b5bfc5d34" - `); - await queryRunner.query(` - ALTER TABLE "messages" DROP CONSTRAINT "FK_61a92bb65b302a76d9c1fcd3174" - `); - await queryRunner.query(` - ALTER TABLE "messages" DROP CONSTRAINT "FK_5d3ec1cb962de6488637fd779d6" - `); - await queryRunner.query(` - ALTER TABLE "messages" DROP CONSTRAINT "FK_f83c04bcf1df4e5c0e7a52ed348" - `); - await queryRunner.query(` - ALTER TABLE "messages" DROP CONSTRAINT "FK_b0525304f2262b7014245351c76" - `); - await queryRunner.query(` - ALTER TABLE "messages" DROP CONSTRAINT "FK_05535bc695e9f7ee104616459d3" - `); - await queryRunner.query(` - ALTER TABLE "messages" DROP CONSTRAINT "FK_b193588441b085352a4c0109423" - `); - await queryRunner.query(` - ALTER TABLE "messages" DROP CONSTRAINT "FK_86b9109b155eb70c0a2ca3b4b6d" - `); - await queryRunner.query(` - ALTER TABLE "attachments" DROP CONSTRAINT "FK_623e10eec51ada466c5038979e3" - `); - await queryRunner.query(` - ALTER TABLE "stickers" DROP CONSTRAINT "FK_8f4ee73f2bb2325ff980502e158" - `); - await queryRunner.query(` - ALTER TABLE "stickers" DROP CONSTRAINT "FK_193d551d852aca5347ef5c9f205" - `); - await queryRunner.query(` - ALTER TABLE "stickers" DROP CONSTRAINT "FK_e7cfa5cefa6661b3fb8fda8ce69" - `); - await queryRunner.query(` - ALTER TABLE "webhooks" DROP CONSTRAINT "FK_3a285f4f49c40e0706d3018bc9f" - `); - await queryRunner.query(` - ALTER TABLE "webhooks" DROP CONSTRAINT "FK_0d523f6f997c86e052c49b1455f" - `); - await queryRunner.query(` - ALTER TABLE "webhooks" DROP CONSTRAINT "FK_c3e5305461931763b56aa905f1c" - `); - await queryRunner.query(` - ALTER TABLE "webhooks" DROP CONSTRAINT "FK_df528cf77e82f8032230e7e37d8" - `); - await queryRunner.query(` - ALTER TABLE "webhooks" DROP CONSTRAINT "FK_487a7af59d189f744fe394368fc" - `); - await queryRunner.query(` - ALTER TABLE "members" DROP CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" - `); - await queryRunner.query(` - ALTER TABLE "members" DROP CONSTRAINT "FK_28b53062261b996d9c99fa12404" - `); - await queryRunner.query(` - ALTER TABLE "roles" DROP CONSTRAINT "FK_c32c1ab1c4dc7dcb0278c4b1b8b" - `); - await queryRunner.query(` - ALTER TABLE "recipients" DROP CONSTRAINT "FK_6157e8b6ba4e6e3089616481fe2" - `); - await queryRunner.query(` - ALTER TABLE "recipients" DROP CONSTRAINT "FK_2f18ee1ba667f233ae86c0ea60e" - `); - await queryRunner.query(` - ALTER TABLE "bans" DROP CONSTRAINT "FK_07ad88c86d1f290d46748410d58" - `); - await queryRunner.query(` - ALTER TABLE "bans" DROP CONSTRAINT "FK_9d3ab7dd180ebdd245cdb66ecad" - `); - await queryRunner.query(` - ALTER TABLE "bans" DROP CONSTRAINT "FK_5999e8e449f80a236ff72023559" - `); - await queryRunner.query(` - ALTER TABLE "backup_codes" DROP CONSTRAINT "FK_70066ea80d2f4b871beda32633b" - `); - await queryRunner.query(` - ALTER TABLE "connected_accounts" DROP CONSTRAINT "FK_f47244225a6a1eac04a3463dd90" - `); - await queryRunner.query(` - ALTER TABLE "relationships" DROP CONSTRAINT "FK_9c7f6b98a9843b76dce1b0c878b" - `); - await queryRunner.query(` - ALTER TABLE "relationships" DROP CONSTRAINT "FK_9af4194bab1250b1c584ae4f1d7" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_e22a70819d07659c7a71c112a1" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_40bb6f23e7cc133292e92829d2" - `); - await queryRunner.query(` - DROP TABLE "message_stickers" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_bdb8c09e1464cabf62105bf4b9" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_2a27102ecd1d81b4582a436092" - `); - await queryRunner.query(` - DROP TABLE "message_channel_mentions" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_29d63eb1a458200851bc37d074" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_a8242cf535337a490b0feaea0b" - `); - await queryRunner.query(` - DROP TABLE "message_role_mentions" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_b831eb18ceebd28976239b1e2f" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_a343387fc560ef378760681c23" - `); - await queryRunner.query(` - DROP TABLE "message_user_mentions" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_e9080e7a7997a0170026d5139c" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_5d7ddc8a5f9c167f548625e772" - `); - await queryRunner.query(` - DROP TABLE "member_roles" - `); - await queryRunner.query(` - DROP TABLE "notes" - `); - await queryRunner.query(` - DROP TABLE "client_release" - `); - await queryRunner.query(` - DROP TABLE "sticker_packs" - `); - await queryRunner.query(` - DROP TABLE "sessions" - `); - await queryRunner.query(` - DROP TABLE "rate_limits" - `); - await queryRunner.query(` - DROP TABLE "categories" - `); - await queryRunner.query(` - DROP TABLE "audit_logs" - `); - await queryRunner.query(` - DROP TABLE "applications" - `); - await queryRunner.query(` - DROP TABLE "teams" - `); - await queryRunner.query(` - DROP TABLE "team_members" - `); - await queryRunner.query(` - DROP TABLE "guilds" - `); - await queryRunner.query(` - DROP TABLE "templates" - `); - await queryRunner.query(` - DROP TABLE "emojis" - `); - await queryRunner.query(` - DROP TABLE "channels" - `); - await queryRunner.query(` - DROP TABLE "voice_states" - `); - await queryRunner.query(` - DROP TABLE "invites" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_0abf8b443321bd3cf7f81ee17a" - `); - await queryRunner.query(` - DROP TABLE "read_states" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_3ed7a60fb7dbe04e1ba9332a8b" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_05535bc695e9f7ee104616459d" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_86b9109b155eb70c0a2ca3b4b6" - `); - await queryRunner.query(` - DROP TABLE "messages" - `); - await queryRunner.query(` - DROP TABLE "attachments" - `); - await queryRunner.query(` - DROP TABLE "stickers" - `); - await queryRunner.query(` - DROP TABLE "webhooks" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_bb2bf9386ac443afbbbf9f12d3" - `); - await queryRunner.query(` - DROP TABLE "members" - `); - await queryRunner.query(` - DROP TABLE "roles" - `); - await queryRunner.query(` - DROP TABLE "recipients" - `); - await queryRunner.query(` - DROP TABLE "bans" - `); - await queryRunner.query(` - DROP TABLE "backup_codes" - `); - await queryRunner.query(` - DROP TABLE "users" - `); - await queryRunner.query(` - DROP TABLE "connected_accounts" - `); - await queryRunner.query(` - DROP INDEX "public"."IDX_a0b2ff0a598df0b0d055934a17" - `); - await queryRunner.query(` - DROP TABLE "relationships" - `); - await queryRunner.query(` - DROP TABLE "config" - `); - } - -} diff --git a/util/src/migrations/postgres/1659921826567-premium_since_as_date.ts b/util/src/migrations/postgres/1659921826567-premium_since_as_date.ts deleted file mode 100644 index ac1e2edb..00000000 --- a/util/src/migrations/postgres/1659921826567-premium_since_as_date.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class premiumSinceAsDate1659921826567 implements MigrationInterface { - name = 'premiumSinceAsDate1659921826567' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "members" DROP COLUMN "premium_since" - `); - await queryRunner.query(` - ALTER TABLE "members" - ADD "premium_since" TIMESTAMP - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "members" DROP COLUMN "premium_since" - `); - await queryRunner.query(` - ALTER TABLE "members" - ADD "premium_since" bigint - `); - } - -} diff --git a/util/src/migrations/postgres/1660257815436-CodeCleanup2.ts b/util/src/migrations/postgres/1660257815436-CodeCleanup2.ts deleted file mode 100644 index 511c2f5a..00000000 --- a/util/src/migrations/postgres/1660257815436-CodeCleanup2.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup21660257815436 implements MigrationInterface { - name = 'CodeCleanup21660257815436' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE TABLE "user_settings" ( - "id" character varying NOT NULL, - "afk_timeout" integer, - "allow_accessibility_detection" boolean, - "animate_emoji" boolean, - "animate_stickers" integer, - "contact_sync_enabled" boolean, - "convert_emoticons" boolean, - "custom_status" text, - "default_guilds_restricted" boolean, - "detect_platform_accounts" boolean, - "developer_mode" boolean, - "disable_games_tab" boolean, - "enable_tts_command" boolean, - "explicit_content_filter" integer, - "friend_source_flags" text, - "gateway_connected" boolean, - "gif_auto_play" boolean, - "guild_folders" text, - "guild_positions" text, - "inline_attachment_media" boolean, - "inline_embed_media" boolean, - "locale" character varying, - "message_display_compact" boolean, - "native_phone_integration_enabled" boolean, - "render_embeds" boolean, - "render_reactions" boolean, - "restricted_guilds" text, - "show_current_game" boolean, - "status" character varying, - "stream_notifications_enabled" boolean, - "theme" character varying, - "timezone_offset" integer, - CONSTRAINT "PK_00f004f5922a0744d174530d639" PRIMARY KEY ("id") - ) - `); - await queryRunner.query(` - ALTER TABLE "guilds" - ADD "premium_progress_bar_enabled" boolean - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "guilds" DROP COLUMN "premium_progress_bar_enabled" - `); - await queryRunner.query(` - DROP TABLE "user_settings" - `); - } - -} diff --git a/util/src/migrations/postgres/1660258372154-CodeCleanup3.ts b/util/src/migrations/postgres/1660258372154-CodeCleanup3.ts deleted file mode 100644 index e2823a54..00000000 --- a/util/src/migrations/postgres/1660258372154-CodeCleanup3.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup31660258372154 implements MigrationInterface { - name = 'CodeCleanup31660258372154' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "users" DROP COLUMN "settings" - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "users" - ADD "settings" text NOT NULL - `); - } - -} diff --git a/util/src/migrations/postgres/1660260565996-CodeCleanup4.ts b/util/src/migrations/postgres/1660260565996-CodeCleanup4.ts deleted file mode 100644 index 0aaf7197..00000000 --- a/util/src/migrations/postgres/1660260565996-CodeCleanup4.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup41660260565996 implements MigrationInterface { - name = 'CodeCleanup41660260565996' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "users" - ADD "settingsId" character varying - `); - await queryRunner.query(` - ALTER TABLE "users" - ADD CONSTRAINT "UQ_76ba283779c8441fd5ff819c8cf" UNIQUE ("settingsId") - `); - await queryRunner.query(` - ALTER TABLE "users" - ADD CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" FOREIGN KEY ("settingsId") REFERENCES "user_settings"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "users" DROP CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" - `); - await queryRunner.query(` - ALTER TABLE "users" DROP CONSTRAINT "UQ_76ba283779c8441fd5ff819c8cf" - `); - await queryRunner.query(` - ALTER TABLE "users" DROP COLUMN "settingsId" - `); - } - -} diff --git a/util/src/migrations/postgres/1660265907544-CodeCleanup5.ts b/util/src/migrations/postgres/1660265907544-CodeCleanup5.ts deleted file mode 100644 index 157d686a..00000000 --- a/util/src/migrations/postgres/1660265907544-CodeCleanup5.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup51660265907544 implements MigrationInterface { - name = 'CodeCleanup51660265907544' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "channels" - ADD "flags" integer - `); - await queryRunner.query(` - ALTER TABLE "channels" - ADD "default_thread_rate_limit_per_user" integer - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "channels" DROP COLUMN "default_thread_rate_limit_per_user" - `); - await queryRunner.query(` - ALTER TABLE "channels" DROP COLUMN "flags" - `); - } - -} diff --git a/util/src/migrations/sqlite/1659899662635-initial.ts b/util/src/migrations/sqlite/1659899662635-initial.ts deleted file mode 100644 index f82e7b0d..00000000 --- a/util/src/migrations/sqlite/1659899662635-initial.ts +++ /dev/null @@ -1,3529 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class initial1659899662635 implements MigrationInterface { - name = 'initial1659899662635' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE TABLE "config" ("key" varchar PRIMARY KEY NOT NULL, "value" text) - `); - await queryRunner.query(` - CREATE TABLE "relationships" ( - "id" varchar PRIMARY KEY NOT NULL, - "from_id" varchar NOT NULL, - "to_id" varchar NOT NULL, - "nickname" varchar, - "type" integer NOT NULL - ) - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_a0b2ff0a598df0b0d055934a17" ON "relationships" ("from_id", "to_id") - `); - await queryRunner.query(` - CREATE TABLE "connected_accounts" ( - "id" varchar PRIMARY KEY NOT NULL, - "user_id" varchar, - "access_token" varchar NOT NULL, - "friend_sync" boolean NOT NULL, - "name" varchar NOT NULL, - "revoked" boolean NOT NULL, - "show_activity" boolean NOT NULL, - "type" varchar NOT NULL, - "verified" boolean NOT NULL, - "visibility" integer NOT NULL - ) - `); - await queryRunner.query(` - CREATE TABLE "users" ( - "id" varchar PRIMARY KEY NOT NULL, - "username" varchar NOT NULL, - "discriminator" varchar NOT NULL, - "avatar" varchar, - "accent_color" integer, - "banner" varchar, - "phone" varchar, - "desktop" boolean NOT NULL, - "mobile" boolean NOT NULL, - "premium" boolean NOT NULL, - "premium_type" integer NOT NULL, - "bot" boolean NOT NULL, - "bio" varchar NOT NULL, - "system" boolean NOT NULL, - "nsfw_allowed" boolean NOT NULL, - "mfa_enabled" boolean NOT NULL, - "totp_secret" varchar, - "totp_last_ticket" varchar, - "created_at" datetime NOT NULL, - "premium_since" datetime, - "verified" boolean NOT NULL, - "disabled" boolean NOT NULL, - "deleted" boolean NOT NULL, - "email" varchar, - "flags" varchar NOT NULL, - "public_flags" integer NOT NULL, - "rights" bigint NOT NULL, - "data" text NOT NULL, - "fingerprints" text NOT NULL, - "settings" text NOT NULL, - "extended_settings" text NOT NULL, - "notes" text NOT NULL - ) - `); - await queryRunner.query(` - CREATE TABLE "backup_codes" ( - "id" varchar PRIMARY KEY NOT NULL, - "code" varchar NOT NULL, - "consumed" boolean NOT NULL, - "expired" boolean NOT NULL, - "user_id" varchar - ) - `); - await queryRunner.query(` - CREATE TABLE "bans" ( - "id" varchar PRIMARY KEY NOT NULL, - "user_id" varchar, - "guild_id" varchar, - "executor_id" varchar, - "ip" varchar NOT NULL, - "reason" varchar - ) - `); - await queryRunner.query(` - CREATE TABLE "recipients" ( - "id" varchar PRIMARY KEY NOT NULL, - "channel_id" varchar NOT NULL, - "user_id" varchar NOT NULL, - "closed" boolean NOT NULL DEFAULT (0) - ) - `); - await queryRunner.query(` - CREATE TABLE "roles" ( - "id" varchar PRIMARY KEY NOT NULL, - "guild_id" varchar, - "color" integer NOT NULL, - "hoist" boolean NOT NULL, - "managed" boolean NOT NULL, - "mentionable" boolean NOT NULL, - "name" varchar NOT NULL, - "permissions" varchar NOT NULL, - "position" integer NOT NULL, - "icon" varchar, - "unicode_emoji" varchar, - "tags" text - ) - `); - await queryRunner.query(` - CREATE TABLE "members" ( - "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, - "id" varchar NOT NULL, - "guild_id" varchar NOT NULL, - "nick" varchar, - "joined_at" datetime NOT NULL, - "premium_since" bigint, - "deaf" boolean NOT NULL, - "mute" boolean NOT NULL, - "pending" boolean NOT NULL, - "settings" text NOT NULL, - "last_message_id" varchar, - "joined_by" varchar - ) - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") - `); - await queryRunner.query(` - CREATE TABLE "webhooks" ( - "id" varchar PRIMARY KEY NOT NULL, - "type" integer NOT NULL, - "name" varchar, - "avatar" varchar, - "token" varchar, - "guild_id" varchar, - "channel_id" varchar, - "application_id" varchar, - "user_id" varchar, - "source_guild_id" varchar - ) - `); - await queryRunner.query(` - CREATE TABLE "stickers" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "description" varchar, - "available" boolean, - "tags" varchar, - "pack_id" varchar, - "guild_id" varchar, - "user_id" varchar, - "type" integer NOT NULL, - "format_type" integer NOT NULL - ) - `); - await queryRunner.query(` - CREATE TABLE "attachments" ( - "id" varchar PRIMARY KEY NOT NULL, - "filename" varchar NOT NULL, - "size" integer NOT NULL, - "url" varchar NOT NULL, - "proxy_url" varchar NOT NULL, - "height" integer, - "width" integer, - "content_type" varchar, - "message_id" varchar - ) - `); - await queryRunner.query(` - CREATE TABLE "messages" ( - "id" varchar PRIMARY KEY NOT NULL, - "channel_id" varchar, - "guild_id" varchar, - "author_id" varchar, - "member_id" varchar, - "webhook_id" varchar, - "application_id" varchar, - "content" varchar, - "timestamp" datetime NOT NULL DEFAULT (datetime('now')), - "edited_timestamp" datetime, - "tts" boolean, - "mention_everyone" boolean, - "embeds" text NOT NULL, - "reactions" text NOT NULL, - "nonce" text, - "pinned" boolean, - "type" integer NOT NULL, - "activity" text, - "flags" varchar, - "message_reference" text, - "interaction" text, - "components" text, - "message_reference_id" varchar - ) - `); - await queryRunner.query(` - CREATE INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" ON "messages" ("channel_id") - `); - await queryRunner.query(` - CREATE INDEX "IDX_05535bc695e9f7ee104616459d" ON "messages" ("author_id") - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" ON "messages" ("channel_id", "id") - `); - await queryRunner.query(` - CREATE TABLE "read_states" ( - "id" varchar PRIMARY KEY NOT NULL, - "channel_id" varchar NOT NULL, - "user_id" varchar NOT NULL, - "last_message_id" varchar, - "public_ack" varchar, - "notifications_cursor" varchar, - "last_pin_timestamp" datetime, - "mention_count" integer - ) - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_0abf8b443321bd3cf7f81ee17a" ON "read_states" ("channel_id", "user_id") - `); - await queryRunner.query(` - CREATE TABLE "invites" ( - "code" varchar PRIMARY KEY NOT NULL, - "temporary" boolean NOT NULL, - "uses" integer NOT NULL, - "max_uses" integer NOT NULL, - "max_age" integer NOT NULL, - "created_at" datetime NOT NULL, - "expires_at" datetime NOT NULL, - "guild_id" varchar, - "channel_id" varchar, - "inviter_id" varchar, - "target_user_id" varchar, - "target_user_type" integer, - "vanity_url" boolean - ) - `); - await queryRunner.query(` - CREATE TABLE "voice_states" ( - "id" varchar PRIMARY KEY NOT NULL, - "guild_id" varchar, - "channel_id" varchar, - "user_id" varchar, - "session_id" varchar NOT NULL, - "token" varchar, - "deaf" boolean NOT NULL, - "mute" boolean NOT NULL, - "self_deaf" boolean NOT NULL, - "self_mute" boolean NOT NULL, - "self_stream" boolean, - "self_video" boolean NOT NULL, - "suppress" boolean NOT NULL, - "request_to_speak_timestamp" datetime - ) - `); - await queryRunner.query(` - CREATE TABLE "channels" ( - "id" varchar PRIMARY KEY NOT NULL, - "created_at" datetime NOT NULL, - "name" varchar, - "icon" text, - "type" integer NOT NULL, - "last_message_id" varchar, - "guild_id" varchar, - "parent_id" varchar, - "owner_id" varchar, - "last_pin_timestamp" integer, - "default_auto_archive_duration" integer, - "position" integer, - "permission_overwrites" text, - "video_quality_mode" integer, - "bitrate" integer, - "user_limit" integer, - "nsfw" boolean, - "rate_limit_per_user" integer, - "topic" varchar, - "retention_policy_id" varchar - ) - `); - await queryRunner.query(` - CREATE TABLE "emojis" ( - "id" varchar PRIMARY KEY NOT NULL, - "animated" boolean NOT NULL, - "available" boolean NOT NULL, - "guild_id" varchar NOT NULL, - "user_id" varchar, - "managed" boolean NOT NULL, - "name" varchar NOT NULL, - "require_colons" boolean NOT NULL, - "roles" text NOT NULL, - "groups" text - ) - `); - await queryRunner.query(` - CREATE TABLE "templates" ( - "id" varchar PRIMARY KEY NOT NULL, - "code" varchar NOT NULL, - "name" varchar NOT NULL, - "description" varchar, - "usage_count" integer, - "creator_id" varchar, - "created_at" datetime NOT NULL, - "updated_at" datetime NOT NULL, - "source_guild_id" varchar, - "serialized_source_guild" text NOT NULL, - CONSTRAINT "UQ_be38737bf339baf63b1daeffb55" UNIQUE ("code") - ) - `); - await queryRunner.query(` - CREATE TABLE "guilds" ( - "id" varchar PRIMARY KEY NOT NULL, - "afk_channel_id" varchar, - "afk_timeout" integer, - "banner" varchar, - "default_message_notifications" integer, - "description" varchar, - "discovery_splash" varchar, - "explicit_content_filter" integer, - "features" text NOT NULL, - "primary_category_id" integer, - "icon" varchar, - "large" boolean, - "max_members" integer, - "max_presences" integer, - "max_video_channel_users" integer, - "member_count" integer, - "presence_count" integer, - "template_id" varchar, - "mfa_level" integer, - "name" varchar NOT NULL, - "owner_id" varchar, - "preferred_locale" varchar, - "premium_subscription_count" integer, - "premium_tier" integer, - "public_updates_channel_id" varchar, - "rules_channel_id" varchar, - "region" varchar, - "splash" varchar, - "system_channel_id" varchar, - "system_channel_flags" integer, - "unavailable" boolean, - "verification_level" integer, - "welcome_screen" text NOT NULL, - "widget_channel_id" varchar, - "widget_enabled" boolean, - "nsfw_level" integer, - "nsfw" boolean, - "parent" varchar - ) - `); - await queryRunner.query(` - CREATE TABLE "team_members" ( - "id" varchar PRIMARY KEY NOT NULL, - "membership_state" integer NOT NULL, - "permissions" text NOT NULL, - "team_id" varchar, - "user_id" varchar - ) - `); - await queryRunner.query(` - CREATE TABLE "teams" ( - "id" varchar PRIMARY KEY NOT NULL, - "icon" varchar, - "name" varchar NOT NULL, - "owner_user_id" varchar - ) - `); - await queryRunner.query(` - CREATE TABLE "applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar NOT NULL, - "rpc_origins" text, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "primary_sku_id" varchar, - "slug" varchar, - "cover_image" varchar, - "flags" varchar NOT NULL, - "owner_id" varchar, - "team_id" varchar, - "guild_id" varchar - ) - `); - await queryRunner.query(` - CREATE TABLE "audit_logs" ( - "id" varchar PRIMARY KEY NOT NULL, - "user_id" varchar, - "action_type" integer NOT NULL, - "options" text, - "changes" text NOT NULL, - "reason" varchar, - "target_id" varchar - ) - `); - await queryRunner.query(` - CREATE TABLE "categories" ( - "id" integer PRIMARY KEY NOT NULL, - "name" varchar, - "localizations" text NOT NULL, - "is_primary" boolean - ) - `); - await queryRunner.query(` - CREATE TABLE "rate_limits" ( - "id" varchar PRIMARY KEY NOT NULL, - "executor_id" varchar NOT NULL, - "hits" integer NOT NULL, - "blocked" boolean NOT NULL, - "expires_at" datetime NOT NULL - ) - `); - await queryRunner.query(` - CREATE TABLE "sessions" ( - "id" varchar PRIMARY KEY NOT NULL, - "user_id" varchar, - "session_id" varchar NOT NULL, - "activities" text, - "client_info" text NOT NULL, - "status" varchar NOT NULL - ) - `); - await queryRunner.query(` - CREATE TABLE "sticker_packs" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "description" varchar, - "banner_asset_id" varchar, - "cover_sticker_id" varchar, - "coverStickerId" varchar - ) - `); - await queryRunner.query(` - CREATE TABLE "client_release" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "pub_date" varchar NOT NULL, - "url" varchar NOT NULL, - "deb_url" varchar NOT NULL, - "osx_url" varchar NOT NULL, - "win_url" varchar NOT NULL, - "notes" varchar - ) - `); - await queryRunner.query(` - CREATE TABLE "notes" ( - "id" varchar PRIMARY KEY NOT NULL, - "content" varchar NOT NULL, - "owner_id" varchar, - "target_id" varchar, - CONSTRAINT "UQ_74e6689b9568cc965b8bfc9150b" UNIQUE ("owner_id", "target_id") - ) - `); - await queryRunner.query(` - CREATE TABLE "member_roles" ( - "index" integer NOT NULL, - "role_id" varchar NOT NULL, - PRIMARY KEY ("index", "role_id") - ) - `); - await queryRunner.query(` - CREATE INDEX "IDX_5d7ddc8a5f9c167f548625e772" ON "member_roles" ("index") - `); - await queryRunner.query(` - CREATE INDEX "IDX_e9080e7a7997a0170026d5139c" ON "member_roles" ("role_id") - `); - await queryRunner.query(` - CREATE TABLE "message_user_mentions" ( - "messagesId" varchar NOT NULL, - "usersId" varchar NOT NULL, - PRIMARY KEY ("messagesId", "usersId") - ) - `); - await queryRunner.query(` - CREATE INDEX "IDX_a343387fc560ef378760681c23" ON "message_user_mentions" ("messagesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_b831eb18ceebd28976239b1e2f" ON "message_user_mentions" ("usersId") - `); - await queryRunner.query(` - CREATE TABLE "message_role_mentions" ( - "messagesId" varchar NOT NULL, - "rolesId" varchar NOT NULL, - PRIMARY KEY ("messagesId", "rolesId") - ) - `); - await queryRunner.query(` - CREATE INDEX "IDX_a8242cf535337a490b0feaea0b" ON "message_role_mentions" ("messagesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_29d63eb1a458200851bc37d074" ON "message_role_mentions" ("rolesId") - `); - await queryRunner.query(` - CREATE TABLE "message_channel_mentions" ( - "messagesId" varchar NOT NULL, - "channelsId" varchar NOT NULL, - PRIMARY KEY ("messagesId", "channelsId") - ) - `); - await queryRunner.query(` - CREATE INDEX "IDX_2a27102ecd1d81b4582a436092" ON "message_channel_mentions" ("messagesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_bdb8c09e1464cabf62105bf4b9" ON "message_channel_mentions" ("channelsId") - `); - await queryRunner.query(` - CREATE TABLE "message_stickers" ( - "messagesId" varchar NOT NULL, - "stickersId" varchar NOT NULL, - PRIMARY KEY ("messagesId", "stickersId") - ) - `); - await queryRunner.query(` - CREATE INDEX "IDX_40bb6f23e7cc133292e92829d2" ON "message_stickers" ("messagesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_e22a70819d07659c7a71c112a1" ON "message_stickers" ("stickersId") - `); - await queryRunner.query(` - DROP INDEX "IDX_a0b2ff0a598df0b0d055934a17" - `); - await queryRunner.query(` - CREATE TABLE "temporary_relationships" ( - "id" varchar PRIMARY KEY NOT NULL, - "from_id" varchar NOT NULL, - "to_id" varchar NOT NULL, - "nickname" varchar, - "type" integer NOT NULL, - CONSTRAINT "FK_9af4194bab1250b1c584ae4f1d7" FOREIGN KEY ("from_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_9c7f6b98a9843b76dce1b0c878b" FOREIGN KEY ("to_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_relationships"("id", "from_id", "to_id", "nickname", "type") - SELECT "id", - "from_id", - "to_id", - "nickname", - "type" - FROM "relationships" - `); - await queryRunner.query(` - DROP TABLE "relationships" - `); - await queryRunner.query(` - ALTER TABLE "temporary_relationships" - RENAME TO "relationships" - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_a0b2ff0a598df0b0d055934a17" ON "relationships" ("from_id", "to_id") - `); - await queryRunner.query(` - CREATE TABLE "temporary_connected_accounts" ( - "id" varchar PRIMARY KEY NOT NULL, - "user_id" varchar, - "access_token" varchar NOT NULL, - "friend_sync" boolean NOT NULL, - "name" varchar NOT NULL, - "revoked" boolean NOT NULL, - "show_activity" boolean NOT NULL, - "type" varchar NOT NULL, - "verified" boolean NOT NULL, - "visibility" integer NOT NULL, - CONSTRAINT "FK_f47244225a6a1eac04a3463dd90" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_connected_accounts"( - "id", - "user_id", - "access_token", - "friend_sync", - "name", - "revoked", - "show_activity", - "type", - "verified", - "visibility" - ) - SELECT "id", - "user_id", - "access_token", - "friend_sync", - "name", - "revoked", - "show_activity", - "type", - "verified", - "visibility" - FROM "connected_accounts" - `); - await queryRunner.query(` - DROP TABLE "connected_accounts" - `); - await queryRunner.query(` - ALTER TABLE "temporary_connected_accounts" - RENAME TO "connected_accounts" - `); - await queryRunner.query(` - CREATE TABLE "temporary_backup_codes" ( - "id" varchar PRIMARY KEY NOT NULL, - "code" varchar NOT NULL, - "consumed" boolean NOT NULL, - "expired" boolean NOT NULL, - "user_id" varchar, - CONSTRAINT "FK_70066ea80d2f4b871beda32633b" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_backup_codes"("id", "code", "consumed", "expired", "user_id") - SELECT "id", - "code", - "consumed", - "expired", - "user_id" - FROM "backup_codes" - `); - await queryRunner.query(` - DROP TABLE "backup_codes" - `); - await queryRunner.query(` - ALTER TABLE "temporary_backup_codes" - RENAME TO "backup_codes" - `); - await queryRunner.query(` - CREATE TABLE "temporary_bans" ( - "id" varchar PRIMARY KEY NOT NULL, - "user_id" varchar, - "guild_id" varchar, - "executor_id" varchar, - "ip" varchar NOT NULL, - "reason" varchar, - CONSTRAINT "FK_5999e8e449f80a236ff72023559" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_9d3ab7dd180ebdd245cdb66ecad" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_07ad88c86d1f290d46748410d58" FOREIGN KEY ("executor_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_bans"( - "id", - "user_id", - "guild_id", - "executor_id", - "ip", - "reason" - ) - SELECT "id", - "user_id", - "guild_id", - "executor_id", - "ip", - "reason" - FROM "bans" - `); - await queryRunner.query(` - DROP TABLE "bans" - `); - await queryRunner.query(` - ALTER TABLE "temporary_bans" - RENAME TO "bans" - `); - await queryRunner.query(` - CREATE TABLE "temporary_recipients" ( - "id" varchar PRIMARY KEY NOT NULL, - "channel_id" varchar NOT NULL, - "user_id" varchar NOT NULL, - "closed" boolean NOT NULL DEFAULT (0), - CONSTRAINT "FK_2f18ee1ba667f233ae86c0ea60e" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_6157e8b6ba4e6e3089616481fe2" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_recipients"("id", "channel_id", "user_id", "closed") - SELECT "id", - "channel_id", - "user_id", - "closed" - FROM "recipients" - `); - await queryRunner.query(` - DROP TABLE "recipients" - `); - await queryRunner.query(` - ALTER TABLE "temporary_recipients" - RENAME TO "recipients" - `); - await queryRunner.query(` - CREATE TABLE "temporary_roles" ( - "id" varchar PRIMARY KEY NOT NULL, - "guild_id" varchar, - "color" integer NOT NULL, - "hoist" boolean NOT NULL, - "managed" boolean NOT NULL, - "mentionable" boolean NOT NULL, - "name" varchar NOT NULL, - "permissions" varchar NOT NULL, - "position" integer NOT NULL, - "icon" varchar, - "unicode_emoji" varchar, - "tags" text, - CONSTRAINT "FK_c32c1ab1c4dc7dcb0278c4b1b8b" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_roles"( - "id", - "guild_id", - "color", - "hoist", - "managed", - "mentionable", - "name", - "permissions", - "position", - "icon", - "unicode_emoji", - "tags" - ) - SELECT "id", - "guild_id", - "color", - "hoist", - "managed", - "mentionable", - "name", - "permissions", - "position", - "icon", - "unicode_emoji", - "tags" - FROM "roles" - `); - await queryRunner.query(` - DROP TABLE "roles" - `); - await queryRunner.query(` - ALTER TABLE "temporary_roles" - RENAME TO "roles" - `); - await queryRunner.query(` - DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" - `); - await queryRunner.query(` - CREATE TABLE "temporary_members" ( - "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, - "id" varchar NOT NULL, - "guild_id" varchar NOT NULL, - "nick" varchar, - "joined_at" datetime NOT NULL, - "premium_since" bigint, - "deaf" boolean NOT NULL, - "mute" boolean NOT NULL, - "pending" boolean NOT NULL, - "settings" text NOT NULL, - "last_message_id" varchar, - "joined_by" varchar, - CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_members"( - "index", - "id", - "guild_id", - "nick", - "joined_at", - "premium_since", - "deaf", - "mute", - "pending", - "settings", - "last_message_id", - "joined_by" - ) - SELECT "index", - "id", - "guild_id", - "nick", - "joined_at", - "premium_since", - "deaf", - "mute", - "pending", - "settings", - "last_message_id", - "joined_by" - FROM "members" - `); - await queryRunner.query(` - DROP TABLE "members" - `); - await queryRunner.query(` - ALTER TABLE "temporary_members" - RENAME TO "members" - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") - `); - await queryRunner.query(` - CREATE TABLE "temporary_webhooks" ( - "id" varchar PRIMARY KEY NOT NULL, - "type" integer NOT NULL, - "name" varchar, - "avatar" varchar, - "token" varchar, - "guild_id" varchar, - "channel_id" varchar, - "application_id" varchar, - "user_id" varchar, - "source_guild_id" varchar, - CONSTRAINT "FK_487a7af59d189f744fe394368fc" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_df528cf77e82f8032230e7e37d8" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_c3e5305461931763b56aa905f1c" FOREIGN KEY ("application_id") REFERENCES "applications" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_0d523f6f997c86e052c49b1455f" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_3a285f4f49c40e0706d3018bc9f" FOREIGN KEY ("source_guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_webhooks"( - "id", - "type", - "name", - "avatar", - "token", - "guild_id", - "channel_id", - "application_id", - "user_id", - "source_guild_id" - ) - SELECT "id", - "type", - "name", - "avatar", - "token", - "guild_id", - "channel_id", - "application_id", - "user_id", - "source_guild_id" - FROM "webhooks" - `); - await queryRunner.query(` - DROP TABLE "webhooks" - `); - await queryRunner.query(` - ALTER TABLE "temporary_webhooks" - RENAME TO "webhooks" - `); - await queryRunner.query(` - CREATE TABLE "temporary_stickers" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "description" varchar, - "available" boolean, - "tags" varchar, - "pack_id" varchar, - "guild_id" varchar, - "user_id" varchar, - "type" integer NOT NULL, - "format_type" integer NOT NULL, - CONSTRAINT "FK_e7cfa5cefa6661b3fb8fda8ce69" FOREIGN KEY ("pack_id") REFERENCES "sticker_packs" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_193d551d852aca5347ef5c9f205" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_8f4ee73f2bb2325ff980502e158" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_stickers"( - "id", - "name", - "description", - "available", - "tags", - "pack_id", - "guild_id", - "user_id", - "type", - "format_type" - ) - SELECT "id", - "name", - "description", - "available", - "tags", - "pack_id", - "guild_id", - "user_id", - "type", - "format_type" - FROM "stickers" - `); - await queryRunner.query(` - DROP TABLE "stickers" - `); - await queryRunner.query(` - ALTER TABLE "temporary_stickers" - RENAME TO "stickers" - `); - await queryRunner.query(` - CREATE TABLE "temporary_attachments" ( - "id" varchar PRIMARY KEY NOT NULL, - "filename" varchar NOT NULL, - "size" integer NOT NULL, - "url" varchar NOT NULL, - "proxy_url" varchar NOT NULL, - "height" integer, - "width" integer, - "content_type" varchar, - "message_id" varchar, - CONSTRAINT "FK_623e10eec51ada466c5038979e3" FOREIGN KEY ("message_id") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_attachments"( - "id", - "filename", - "size", - "url", - "proxy_url", - "height", - "width", - "content_type", - "message_id" - ) - SELECT "id", - "filename", - "size", - "url", - "proxy_url", - "height", - "width", - "content_type", - "message_id" - FROM "attachments" - `); - await queryRunner.query(` - DROP TABLE "attachments" - `); - await queryRunner.query(` - ALTER TABLE "temporary_attachments" - RENAME TO "attachments" - `); - await queryRunner.query(` - DROP INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" - `); - await queryRunner.query(` - DROP INDEX "IDX_05535bc695e9f7ee104616459d" - `); - await queryRunner.query(` - DROP INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" - `); - await queryRunner.query(` - CREATE TABLE "temporary_messages" ( - "id" varchar PRIMARY KEY NOT NULL, - "channel_id" varchar, - "guild_id" varchar, - "author_id" varchar, - "member_id" varchar, - "webhook_id" varchar, - "application_id" varchar, - "content" varchar, - "timestamp" datetime NOT NULL DEFAULT (datetime('now')), - "edited_timestamp" datetime, - "tts" boolean, - "mention_everyone" boolean, - "embeds" text NOT NULL, - "reactions" text NOT NULL, - "nonce" text, - "pinned" boolean, - "type" integer NOT NULL, - "activity" text, - "flags" varchar, - "message_reference" text, - "interaction" text, - "components" text, - "message_reference_id" varchar, - CONSTRAINT "FK_86b9109b155eb70c0a2ca3b4b6d" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_b193588441b085352a4c0109423" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_05535bc695e9f7ee104616459d3" FOREIGN KEY ("author_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_b0525304f2262b7014245351c76" FOREIGN KEY ("member_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_f83c04bcf1df4e5c0e7a52ed348" FOREIGN KEY ("webhook_id") REFERENCES "webhooks" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_5d3ec1cb962de6488637fd779d6" FOREIGN KEY ("application_id") REFERENCES "applications" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_61a92bb65b302a76d9c1fcd3174" FOREIGN KEY ("message_reference_id") REFERENCES "messages" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_messages"( - "id", - "channel_id", - "guild_id", - "author_id", - "member_id", - "webhook_id", - "application_id", - "content", - "timestamp", - "edited_timestamp", - "tts", - "mention_everyone", - "embeds", - "reactions", - "nonce", - "pinned", - "type", - "activity", - "flags", - "message_reference", - "interaction", - "components", - "message_reference_id" - ) - SELECT "id", - "channel_id", - "guild_id", - "author_id", - "member_id", - "webhook_id", - "application_id", - "content", - "timestamp", - "edited_timestamp", - "tts", - "mention_everyone", - "embeds", - "reactions", - "nonce", - "pinned", - "type", - "activity", - "flags", - "message_reference", - "interaction", - "components", - "message_reference_id" - FROM "messages" - `); - await queryRunner.query(` - DROP TABLE "messages" - `); - await queryRunner.query(` - ALTER TABLE "temporary_messages" - RENAME TO "messages" - `); - await queryRunner.query(` - CREATE INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" ON "messages" ("channel_id") - `); - await queryRunner.query(` - CREATE INDEX "IDX_05535bc695e9f7ee104616459d" ON "messages" ("author_id") - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" ON "messages" ("channel_id", "id") - `); - await queryRunner.query(` - DROP INDEX "IDX_0abf8b443321bd3cf7f81ee17a" - `); - await queryRunner.query(` - CREATE TABLE "temporary_read_states" ( - "id" varchar PRIMARY KEY NOT NULL, - "channel_id" varchar NOT NULL, - "user_id" varchar NOT NULL, - "last_message_id" varchar, - "public_ack" varchar, - "notifications_cursor" varchar, - "last_pin_timestamp" datetime, - "mention_count" integer, - CONSTRAINT "FK_40da2fca4e0eaf7a23b5bfc5d34" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_195f92e4dd1254a4e348c043763" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_read_states"( - "id", - "channel_id", - "user_id", - "last_message_id", - "public_ack", - "notifications_cursor", - "last_pin_timestamp", - "mention_count" - ) - SELECT "id", - "channel_id", - "user_id", - "last_message_id", - "public_ack", - "notifications_cursor", - "last_pin_timestamp", - "mention_count" - FROM "read_states" - `); - await queryRunner.query(` - DROP TABLE "read_states" - `); - await queryRunner.query(` - ALTER TABLE "temporary_read_states" - RENAME TO "read_states" - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_0abf8b443321bd3cf7f81ee17a" ON "read_states" ("channel_id", "user_id") - `); - await queryRunner.query(` - CREATE TABLE "temporary_invites" ( - "code" varchar PRIMARY KEY NOT NULL, - "temporary" boolean NOT NULL, - "uses" integer NOT NULL, - "max_uses" integer NOT NULL, - "max_age" integer NOT NULL, - "created_at" datetime NOT NULL, - "expires_at" datetime NOT NULL, - "guild_id" varchar, - "channel_id" varchar, - "inviter_id" varchar, - "target_user_id" varchar, - "target_user_type" integer, - "vanity_url" boolean, - CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_invites"( - "code", - "temporary", - "uses", - "max_uses", - "max_age", - "created_at", - "expires_at", - "guild_id", - "channel_id", - "inviter_id", - "target_user_id", - "target_user_type", - "vanity_url" - ) - SELECT "code", - "temporary", - "uses", - "max_uses", - "max_age", - "created_at", - "expires_at", - "guild_id", - "channel_id", - "inviter_id", - "target_user_id", - "target_user_type", - "vanity_url" - FROM "invites" - `); - await queryRunner.query(` - DROP TABLE "invites" - `); - await queryRunner.query(` - ALTER TABLE "temporary_invites" - RENAME TO "invites" - `); - await queryRunner.query(` - CREATE TABLE "temporary_voice_states" ( - "id" varchar PRIMARY KEY NOT NULL, - "guild_id" varchar, - "channel_id" varchar, - "user_id" varchar, - "session_id" varchar NOT NULL, - "token" varchar, - "deaf" boolean NOT NULL, - "mute" boolean NOT NULL, - "self_deaf" boolean NOT NULL, - "self_mute" boolean NOT NULL, - "self_stream" boolean, - "self_video" boolean NOT NULL, - "suppress" boolean NOT NULL, - "request_to_speak_timestamp" datetime, - CONSTRAINT "FK_03779ef216d4b0358470d9cb748" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_9f8d389866b40b6657edd026dd4" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_5fe1d5f931a67e85039c640001b" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_voice_states"( - "id", - "guild_id", - "channel_id", - "user_id", - "session_id", - "token", - "deaf", - "mute", - "self_deaf", - "self_mute", - "self_stream", - "self_video", - "suppress", - "request_to_speak_timestamp" - ) - SELECT "id", - "guild_id", - "channel_id", - "user_id", - "session_id", - "token", - "deaf", - "mute", - "self_deaf", - "self_mute", - "self_stream", - "self_video", - "suppress", - "request_to_speak_timestamp" - FROM "voice_states" - `); - await queryRunner.query(` - DROP TABLE "voice_states" - `); - await queryRunner.query(` - ALTER TABLE "temporary_voice_states" - RENAME TO "voice_states" - `); - await queryRunner.query(` - CREATE TABLE "temporary_channels" ( - "id" varchar PRIMARY KEY NOT NULL, - "created_at" datetime NOT NULL, - "name" varchar, - "icon" text, - "type" integer NOT NULL, - "last_message_id" varchar, - "guild_id" varchar, - "parent_id" varchar, - "owner_id" varchar, - "last_pin_timestamp" integer, - "default_auto_archive_duration" integer, - "position" integer, - "permission_overwrites" text, - "video_quality_mode" integer, - "bitrate" integer, - "user_limit" integer, - "nsfw" boolean, - "rate_limit_per_user" integer, - "topic" varchar, - "retention_policy_id" varchar, - CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_3274522d14af40540b1a883fc80" FOREIGN KEY ("parent_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_channels"( - "id", - "created_at", - "name", - "icon", - "type", - "last_message_id", - "guild_id", - "parent_id", - "owner_id", - "last_pin_timestamp", - "default_auto_archive_duration", - "position", - "permission_overwrites", - "video_quality_mode", - "bitrate", - "user_limit", - "nsfw", - "rate_limit_per_user", - "topic", - "retention_policy_id" - ) - SELECT "id", - "created_at", - "name", - "icon", - "type", - "last_message_id", - "guild_id", - "parent_id", - "owner_id", - "last_pin_timestamp", - "default_auto_archive_duration", - "position", - "permission_overwrites", - "video_quality_mode", - "bitrate", - "user_limit", - "nsfw", - "rate_limit_per_user", - "topic", - "retention_policy_id" - FROM "channels" - `); - await queryRunner.query(` - DROP TABLE "channels" - `); - await queryRunner.query(` - ALTER TABLE "temporary_channels" - RENAME TO "channels" - `); - await queryRunner.query(` - CREATE TABLE "temporary_emojis" ( - "id" varchar PRIMARY KEY NOT NULL, - "animated" boolean NOT NULL, - "available" boolean NOT NULL, - "guild_id" varchar NOT NULL, - "user_id" varchar, - "managed" boolean NOT NULL, - "name" varchar NOT NULL, - "require_colons" boolean NOT NULL, - "roles" text NOT NULL, - "groups" text, - CONSTRAINT "FK_4b988e0db89d94cebcf07f598cc" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_fa7ddd5f9a214e28ce596548421" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_emojis"( - "id", - "animated", - "available", - "guild_id", - "user_id", - "managed", - "name", - "require_colons", - "roles", - "groups" - ) - SELECT "id", - "animated", - "available", - "guild_id", - "user_id", - "managed", - "name", - "require_colons", - "roles", - "groups" - FROM "emojis" - `); - await queryRunner.query(` - DROP TABLE "emojis" - `); - await queryRunner.query(` - ALTER TABLE "temporary_emojis" - RENAME TO "emojis" - `); - await queryRunner.query(` - CREATE TABLE "temporary_templates" ( - "id" varchar PRIMARY KEY NOT NULL, - "code" varchar NOT NULL, - "name" varchar NOT NULL, - "description" varchar, - "usage_count" integer, - "creator_id" varchar, - "created_at" datetime NOT NULL, - "updated_at" datetime NOT NULL, - "source_guild_id" varchar, - "serialized_source_guild" text NOT NULL, - CONSTRAINT "UQ_be38737bf339baf63b1daeffb55" UNIQUE ("code"), - CONSTRAINT "FK_d7374b7f8f5fbfdececa4fb62e1" FOREIGN KEY ("creator_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_445d00eaaea0e60a017a5ed0c11" FOREIGN KEY ("source_guild_id") REFERENCES "guilds" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_templates"( - "id", - "code", - "name", - "description", - "usage_count", - "creator_id", - "created_at", - "updated_at", - "source_guild_id", - "serialized_source_guild" - ) - SELECT "id", - "code", - "name", - "description", - "usage_count", - "creator_id", - "created_at", - "updated_at", - "source_guild_id", - "serialized_source_guild" - FROM "templates" - `); - await queryRunner.query(` - DROP TABLE "templates" - `); - await queryRunner.query(` - ALTER TABLE "temporary_templates" - RENAME TO "templates" - `); - await queryRunner.query(` - CREATE TABLE "temporary_guilds" ( - "id" varchar PRIMARY KEY NOT NULL, - "afk_channel_id" varchar, - "afk_timeout" integer, - "banner" varchar, - "default_message_notifications" integer, - "description" varchar, - "discovery_splash" varchar, - "explicit_content_filter" integer, - "features" text NOT NULL, - "primary_category_id" integer, - "icon" varchar, - "large" boolean, - "max_members" integer, - "max_presences" integer, - "max_video_channel_users" integer, - "member_count" integer, - "presence_count" integer, - "template_id" varchar, - "mfa_level" integer, - "name" varchar NOT NULL, - "owner_id" varchar, - "preferred_locale" varchar, - "premium_subscription_count" integer, - "premium_tier" integer, - "public_updates_channel_id" varchar, - "rules_channel_id" varchar, - "region" varchar, - "splash" varchar, - "system_channel_id" varchar, - "system_channel_flags" integer, - "unavailable" boolean, - "verification_level" integer, - "welcome_screen" text NOT NULL, - "widget_channel_id" varchar, - "widget_enabled" boolean, - "nsfw_level" integer, - "nsfw" boolean, - "parent" varchar, - CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_guilds"( - "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent" - ) - SELECT "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent" - FROM "guilds" - `); - await queryRunner.query(` - DROP TABLE "guilds" - `); - await queryRunner.query(` - ALTER TABLE "temporary_guilds" - RENAME TO "guilds" - `); - await queryRunner.query(` - CREATE TABLE "temporary_team_members" ( - "id" varchar PRIMARY KEY NOT NULL, - "membership_state" integer NOT NULL, - "permissions" text NOT NULL, - "team_id" varchar, - "user_id" varchar, - CONSTRAINT "FK_fdad7d5768277e60c40e01cdcea" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_c2bf4967c8c2a6b845dadfbf3d4" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_team_members"( - "id", - "membership_state", - "permissions", - "team_id", - "user_id" - ) - SELECT "id", - "membership_state", - "permissions", - "team_id", - "user_id" - FROM "team_members" - `); - await queryRunner.query(` - DROP TABLE "team_members" - `); - await queryRunner.query(` - ALTER TABLE "temporary_team_members" - RENAME TO "team_members" - `); - await queryRunner.query(` - CREATE TABLE "temporary_teams" ( - "id" varchar PRIMARY KEY NOT NULL, - "icon" varchar, - "name" varchar NOT NULL, - "owner_user_id" varchar, - CONSTRAINT "FK_13f00abf7cb6096c43ecaf8c108" FOREIGN KEY ("owner_user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_teams"("id", "icon", "name", "owner_user_id") - SELECT "id", - "icon", - "name", - "owner_user_id" - FROM "teams" - `); - await queryRunner.query(` - DROP TABLE "teams" - `); - await queryRunner.query(` - ALTER TABLE "temporary_teams" - RENAME TO "teams" - `); - await queryRunner.query(` - CREATE TABLE "temporary_applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar NOT NULL, - "rpc_origins" text, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "primary_sku_id" varchar, - "slug" varchar, - "cover_image" varchar, - "flags" varchar NOT NULL, - "owner_id" varchar, - "team_id" varchar, - "guild_id" varchar, - CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_applications"( - "id", - "name", - "icon", - "description", - "rpc_origins", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "primary_sku_id", - "slug", - "cover_image", - "flags", - "owner_id", - "team_id", - "guild_id" - ) - SELECT "id", - "name", - "icon", - "description", - "rpc_origins", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "primary_sku_id", - "slug", - "cover_image", - "flags", - "owner_id", - "team_id", - "guild_id" - FROM "applications" - `); - await queryRunner.query(` - DROP TABLE "applications" - `); - await queryRunner.query(` - ALTER TABLE "temporary_applications" - RENAME TO "applications" - `); - await queryRunner.query(` - CREATE TABLE "temporary_audit_logs" ( - "id" varchar PRIMARY KEY NOT NULL, - "user_id" varchar, - "action_type" integer NOT NULL, - "options" text, - "changes" text NOT NULL, - "reason" varchar, - "target_id" varchar, - CONSTRAINT "FK_3cd01cd3ae7aab010310d96ac8e" FOREIGN KEY ("target_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_bd2726fd31b35443f2245b93ba0" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_audit_logs"( - "id", - "user_id", - "action_type", - "options", - "changes", - "reason", - "target_id" - ) - SELECT "id", - "user_id", - "action_type", - "options", - "changes", - "reason", - "target_id" - FROM "audit_logs" - `); - await queryRunner.query(` - DROP TABLE "audit_logs" - `); - await queryRunner.query(` - ALTER TABLE "temporary_audit_logs" - RENAME TO "audit_logs" - `); - await queryRunner.query(` - CREATE TABLE "temporary_sessions" ( - "id" varchar PRIMARY KEY NOT NULL, - "user_id" varchar, - "session_id" varchar NOT NULL, - "activities" text, - "client_info" text NOT NULL, - "status" varchar NOT NULL, - CONSTRAINT "FK_085d540d9f418cfbdc7bd55bb19" FOREIGN KEY ("user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_sessions"( - "id", - "user_id", - "session_id", - "activities", - "client_info", - "status" - ) - SELECT "id", - "user_id", - "session_id", - "activities", - "client_info", - "status" - FROM "sessions" - `); - await queryRunner.query(` - DROP TABLE "sessions" - `); - await queryRunner.query(` - ALTER TABLE "temporary_sessions" - RENAME TO "sessions" - `); - await queryRunner.query(` - CREATE TABLE "temporary_sticker_packs" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "description" varchar, - "banner_asset_id" varchar, - "cover_sticker_id" varchar, - "coverStickerId" varchar, - CONSTRAINT "FK_448fafba4355ee1c837bbc865f1" FOREIGN KEY ("coverStickerId") REFERENCES "stickers" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_sticker_packs"( - "id", - "name", - "description", - "banner_asset_id", - "cover_sticker_id", - "coverStickerId" - ) - SELECT "id", - "name", - "description", - "banner_asset_id", - "cover_sticker_id", - "coverStickerId" - FROM "sticker_packs" - `); - await queryRunner.query(` - DROP TABLE "sticker_packs" - `); - await queryRunner.query(` - ALTER TABLE "temporary_sticker_packs" - RENAME TO "sticker_packs" - `); - await queryRunner.query(` - CREATE TABLE "temporary_notes" ( - "id" varchar PRIMARY KEY NOT NULL, - "content" varchar NOT NULL, - "owner_id" varchar, - "target_id" varchar, - CONSTRAINT "UQ_74e6689b9568cc965b8bfc9150b" UNIQUE ("owner_id", "target_id"), - CONSTRAINT "FK_f9e103f8ae67cb1787063597925" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_23e08e5b4481711d573e1abecdc" FOREIGN KEY ("target_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_notes"("id", "content", "owner_id", "target_id") - SELECT "id", - "content", - "owner_id", - "target_id" - FROM "notes" - `); - await queryRunner.query(` - DROP TABLE "notes" - `); - await queryRunner.query(` - ALTER TABLE "temporary_notes" - RENAME TO "notes" - `); - await queryRunner.query(` - DROP INDEX "IDX_5d7ddc8a5f9c167f548625e772" - `); - await queryRunner.query(` - DROP INDEX "IDX_e9080e7a7997a0170026d5139c" - `); - await queryRunner.query(` - CREATE TABLE "temporary_member_roles" ( - "index" integer NOT NULL, - "role_id" varchar NOT NULL, - CONSTRAINT "FK_5d7ddc8a5f9c167f548625e772e" FOREIGN KEY ("index") REFERENCES "members" ("index") ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT "FK_e9080e7a7997a0170026d5139c1" FOREIGN KEY ("role_id") REFERENCES "roles" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - PRIMARY KEY ("index", "role_id") - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_member_roles"("index", "role_id") - SELECT "index", - "role_id" - FROM "member_roles" - `); - await queryRunner.query(` - DROP TABLE "member_roles" - `); - await queryRunner.query(` - ALTER TABLE "temporary_member_roles" - RENAME TO "member_roles" - `); - await queryRunner.query(` - CREATE INDEX "IDX_5d7ddc8a5f9c167f548625e772" ON "member_roles" ("index") - `); - await queryRunner.query(` - CREATE INDEX "IDX_e9080e7a7997a0170026d5139c" ON "member_roles" ("role_id") - `); - await queryRunner.query(` - DROP INDEX "IDX_a343387fc560ef378760681c23" - `); - await queryRunner.query(` - DROP INDEX "IDX_b831eb18ceebd28976239b1e2f" - `); - await queryRunner.query(` - CREATE TABLE "temporary_message_user_mentions" ( - "messagesId" varchar NOT NULL, - "usersId" varchar NOT NULL, - CONSTRAINT "FK_a343387fc560ef378760681c236" FOREIGN KEY ("messagesId") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT "FK_b831eb18ceebd28976239b1e2f8" FOREIGN KEY ("usersId") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - PRIMARY KEY ("messagesId", "usersId") - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_message_user_mentions"("messagesId", "usersId") - SELECT "messagesId", - "usersId" - FROM "message_user_mentions" - `); - await queryRunner.query(` - DROP TABLE "message_user_mentions" - `); - await queryRunner.query(` - ALTER TABLE "temporary_message_user_mentions" - RENAME TO "message_user_mentions" - `); - await queryRunner.query(` - CREATE INDEX "IDX_a343387fc560ef378760681c23" ON "message_user_mentions" ("messagesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_b831eb18ceebd28976239b1e2f" ON "message_user_mentions" ("usersId") - `); - await queryRunner.query(` - DROP INDEX "IDX_a8242cf535337a490b0feaea0b" - `); - await queryRunner.query(` - DROP INDEX "IDX_29d63eb1a458200851bc37d074" - `); - await queryRunner.query(` - CREATE TABLE "temporary_message_role_mentions" ( - "messagesId" varchar NOT NULL, - "rolesId" varchar NOT NULL, - CONSTRAINT "FK_a8242cf535337a490b0feaea0b4" FOREIGN KEY ("messagesId") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT "FK_29d63eb1a458200851bc37d074b" FOREIGN KEY ("rolesId") REFERENCES "roles" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - PRIMARY KEY ("messagesId", "rolesId") - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_message_role_mentions"("messagesId", "rolesId") - SELECT "messagesId", - "rolesId" - FROM "message_role_mentions" - `); - await queryRunner.query(` - DROP TABLE "message_role_mentions" - `); - await queryRunner.query(` - ALTER TABLE "temporary_message_role_mentions" - RENAME TO "message_role_mentions" - `); - await queryRunner.query(` - CREATE INDEX "IDX_a8242cf535337a490b0feaea0b" ON "message_role_mentions" ("messagesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_29d63eb1a458200851bc37d074" ON "message_role_mentions" ("rolesId") - `); - await queryRunner.query(` - DROP INDEX "IDX_2a27102ecd1d81b4582a436092" - `); - await queryRunner.query(` - DROP INDEX "IDX_bdb8c09e1464cabf62105bf4b9" - `); - await queryRunner.query(` - CREATE TABLE "temporary_message_channel_mentions" ( - "messagesId" varchar NOT NULL, - "channelsId" varchar NOT NULL, - CONSTRAINT "FK_2a27102ecd1d81b4582a4360921" FOREIGN KEY ("messagesId") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT "FK_bdb8c09e1464cabf62105bf4b9d" FOREIGN KEY ("channelsId") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - PRIMARY KEY ("messagesId", "channelsId") - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_message_channel_mentions"("messagesId", "channelsId") - SELECT "messagesId", - "channelsId" - FROM "message_channel_mentions" - `); - await queryRunner.query(` - DROP TABLE "message_channel_mentions" - `); - await queryRunner.query(` - ALTER TABLE "temporary_message_channel_mentions" - RENAME TO "message_channel_mentions" - `); - await queryRunner.query(` - CREATE INDEX "IDX_2a27102ecd1d81b4582a436092" ON "message_channel_mentions" ("messagesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_bdb8c09e1464cabf62105bf4b9" ON "message_channel_mentions" ("channelsId") - `); - await queryRunner.query(` - DROP INDEX "IDX_40bb6f23e7cc133292e92829d2" - `); - await queryRunner.query(` - DROP INDEX "IDX_e22a70819d07659c7a71c112a1" - `); - await queryRunner.query(` - CREATE TABLE "temporary_message_stickers" ( - "messagesId" varchar NOT NULL, - "stickersId" varchar NOT NULL, - CONSTRAINT "FK_40bb6f23e7cc133292e92829d28" FOREIGN KEY ("messagesId") REFERENCES "messages" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT "FK_e22a70819d07659c7a71c112a1f" FOREIGN KEY ("stickersId") REFERENCES "stickers" ("id") ON DELETE CASCADE ON UPDATE CASCADE, - PRIMARY KEY ("messagesId", "stickersId") - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_message_stickers"("messagesId", "stickersId") - SELECT "messagesId", - "stickersId" - FROM "message_stickers" - `); - await queryRunner.query(` - DROP TABLE "message_stickers" - `); - await queryRunner.query(` - ALTER TABLE "temporary_message_stickers" - RENAME TO "message_stickers" - `); - await queryRunner.query(` - CREATE INDEX "IDX_40bb6f23e7cc133292e92829d2" ON "message_stickers" ("messagesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_e22a70819d07659c7a71c112a1" ON "message_stickers" ("stickersId") - `); - await queryRunner.query(` - CREATE TABLE "query-result-cache" ( - "id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, - "identifier" varchar, - "time" bigint NOT NULL, - "duration" integer NOT NULL, - "query" text NOT NULL, - "result" text NOT NULL - ) - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - DROP TABLE "query-result-cache" - `); - await queryRunner.query(` - DROP INDEX "IDX_e22a70819d07659c7a71c112a1" - `); - await queryRunner.query(` - DROP INDEX "IDX_40bb6f23e7cc133292e92829d2" - `); - await queryRunner.query(` - ALTER TABLE "message_stickers" - RENAME TO "temporary_message_stickers" - `); - await queryRunner.query(` - CREATE TABLE "message_stickers" ( - "messagesId" varchar NOT NULL, - "stickersId" varchar NOT NULL, - PRIMARY KEY ("messagesId", "stickersId") - ) - `); - await queryRunner.query(` - INSERT INTO "message_stickers"("messagesId", "stickersId") - SELECT "messagesId", - "stickersId" - FROM "temporary_message_stickers" - `); - await queryRunner.query(` - DROP TABLE "temporary_message_stickers" - `); - await queryRunner.query(` - CREATE INDEX "IDX_e22a70819d07659c7a71c112a1" ON "message_stickers" ("stickersId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_40bb6f23e7cc133292e92829d2" ON "message_stickers" ("messagesId") - `); - await queryRunner.query(` - DROP INDEX "IDX_bdb8c09e1464cabf62105bf4b9" - `); - await queryRunner.query(` - DROP INDEX "IDX_2a27102ecd1d81b4582a436092" - `); - await queryRunner.query(` - ALTER TABLE "message_channel_mentions" - RENAME TO "temporary_message_channel_mentions" - `); - await queryRunner.query(` - CREATE TABLE "message_channel_mentions" ( - "messagesId" varchar NOT NULL, - "channelsId" varchar NOT NULL, - PRIMARY KEY ("messagesId", "channelsId") - ) - `); - await queryRunner.query(` - INSERT INTO "message_channel_mentions"("messagesId", "channelsId") - SELECT "messagesId", - "channelsId" - FROM "temporary_message_channel_mentions" - `); - await queryRunner.query(` - DROP TABLE "temporary_message_channel_mentions" - `); - await queryRunner.query(` - CREATE INDEX "IDX_bdb8c09e1464cabf62105bf4b9" ON "message_channel_mentions" ("channelsId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_2a27102ecd1d81b4582a436092" ON "message_channel_mentions" ("messagesId") - `); - await queryRunner.query(` - DROP INDEX "IDX_29d63eb1a458200851bc37d074" - `); - await queryRunner.query(` - DROP INDEX "IDX_a8242cf535337a490b0feaea0b" - `); - await queryRunner.query(` - ALTER TABLE "message_role_mentions" - RENAME TO "temporary_message_role_mentions" - `); - await queryRunner.query(` - CREATE TABLE "message_role_mentions" ( - "messagesId" varchar NOT NULL, - "rolesId" varchar NOT NULL, - PRIMARY KEY ("messagesId", "rolesId") - ) - `); - await queryRunner.query(` - INSERT INTO "message_role_mentions"("messagesId", "rolesId") - SELECT "messagesId", - "rolesId" - FROM "temporary_message_role_mentions" - `); - await queryRunner.query(` - DROP TABLE "temporary_message_role_mentions" - `); - await queryRunner.query(` - CREATE INDEX "IDX_29d63eb1a458200851bc37d074" ON "message_role_mentions" ("rolesId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_a8242cf535337a490b0feaea0b" ON "message_role_mentions" ("messagesId") - `); - await queryRunner.query(` - DROP INDEX "IDX_b831eb18ceebd28976239b1e2f" - `); - await queryRunner.query(` - DROP INDEX "IDX_a343387fc560ef378760681c23" - `); - await queryRunner.query(` - ALTER TABLE "message_user_mentions" - RENAME TO "temporary_message_user_mentions" - `); - await queryRunner.query(` - CREATE TABLE "message_user_mentions" ( - "messagesId" varchar NOT NULL, - "usersId" varchar NOT NULL, - PRIMARY KEY ("messagesId", "usersId") - ) - `); - await queryRunner.query(` - INSERT INTO "message_user_mentions"("messagesId", "usersId") - SELECT "messagesId", - "usersId" - FROM "temporary_message_user_mentions" - `); - await queryRunner.query(` - DROP TABLE "temporary_message_user_mentions" - `); - await queryRunner.query(` - CREATE INDEX "IDX_b831eb18ceebd28976239b1e2f" ON "message_user_mentions" ("usersId") - `); - await queryRunner.query(` - CREATE INDEX "IDX_a343387fc560ef378760681c23" ON "message_user_mentions" ("messagesId") - `); - await queryRunner.query(` - DROP INDEX "IDX_e9080e7a7997a0170026d5139c" - `); - await queryRunner.query(` - DROP INDEX "IDX_5d7ddc8a5f9c167f548625e772" - `); - await queryRunner.query(` - ALTER TABLE "member_roles" - RENAME TO "temporary_member_roles" - `); - await queryRunner.query(` - CREATE TABLE "member_roles" ( - "index" integer NOT NULL, - "role_id" varchar NOT NULL, - PRIMARY KEY ("index", "role_id") - ) - `); - await queryRunner.query(` - INSERT INTO "member_roles"("index", "role_id") - SELECT "index", - "role_id" - FROM "temporary_member_roles" - `); - await queryRunner.query(` - DROP TABLE "temporary_member_roles" - `); - await queryRunner.query(` - CREATE INDEX "IDX_e9080e7a7997a0170026d5139c" ON "member_roles" ("role_id") - `); - await queryRunner.query(` - CREATE INDEX "IDX_5d7ddc8a5f9c167f548625e772" ON "member_roles" ("index") - `); - await queryRunner.query(` - ALTER TABLE "notes" - RENAME TO "temporary_notes" - `); - await queryRunner.query(` - CREATE TABLE "notes" ( - "id" varchar PRIMARY KEY NOT NULL, - "content" varchar NOT NULL, - "owner_id" varchar, - "target_id" varchar, - CONSTRAINT "UQ_74e6689b9568cc965b8bfc9150b" UNIQUE ("owner_id", "target_id") - ) - `); - await queryRunner.query(` - INSERT INTO "notes"("id", "content", "owner_id", "target_id") - SELECT "id", - "content", - "owner_id", - "target_id" - FROM "temporary_notes" - `); - await queryRunner.query(` - DROP TABLE "temporary_notes" - `); - await queryRunner.query(` - ALTER TABLE "sticker_packs" - RENAME TO "temporary_sticker_packs" - `); - await queryRunner.query(` - CREATE TABLE "sticker_packs" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "description" varchar, - "banner_asset_id" varchar, - "cover_sticker_id" varchar, - "coverStickerId" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "sticker_packs"( - "id", - "name", - "description", - "banner_asset_id", - "cover_sticker_id", - "coverStickerId" - ) - SELECT "id", - "name", - "description", - "banner_asset_id", - "cover_sticker_id", - "coverStickerId" - FROM "temporary_sticker_packs" - `); - await queryRunner.query(` - DROP TABLE "temporary_sticker_packs" - `); - await queryRunner.query(` - ALTER TABLE "sessions" - RENAME TO "temporary_sessions" - `); - await queryRunner.query(` - CREATE TABLE "sessions" ( - "id" varchar PRIMARY KEY NOT NULL, - "user_id" varchar, - "session_id" varchar NOT NULL, - "activities" text, - "client_info" text NOT NULL, - "status" varchar NOT NULL - ) - `); - await queryRunner.query(` - INSERT INTO "sessions"( - "id", - "user_id", - "session_id", - "activities", - "client_info", - "status" - ) - SELECT "id", - "user_id", - "session_id", - "activities", - "client_info", - "status" - FROM "temporary_sessions" - `); - await queryRunner.query(` - DROP TABLE "temporary_sessions" - `); - await queryRunner.query(` - ALTER TABLE "audit_logs" - RENAME TO "temporary_audit_logs" - `); - await queryRunner.query(` - CREATE TABLE "audit_logs" ( - "id" varchar PRIMARY KEY NOT NULL, - "user_id" varchar, - "action_type" integer NOT NULL, - "options" text, - "changes" text NOT NULL, - "reason" varchar, - "target_id" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "audit_logs"( - "id", - "user_id", - "action_type", - "options", - "changes", - "reason", - "target_id" - ) - SELECT "id", - "user_id", - "action_type", - "options", - "changes", - "reason", - "target_id" - FROM "temporary_audit_logs" - `); - await queryRunner.query(` - DROP TABLE "temporary_audit_logs" - `); - await queryRunner.query(` - ALTER TABLE "applications" - RENAME TO "temporary_applications" - `); - await queryRunner.query(` - CREATE TABLE "applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar NOT NULL, - "rpc_origins" text, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "primary_sku_id" varchar, - "slug" varchar, - "cover_image" varchar, - "flags" varchar NOT NULL, - "owner_id" varchar, - "team_id" varchar, - "guild_id" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "applications"( - "id", - "name", - "icon", - "description", - "rpc_origins", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "primary_sku_id", - "slug", - "cover_image", - "flags", - "owner_id", - "team_id", - "guild_id" - ) - SELECT "id", - "name", - "icon", - "description", - "rpc_origins", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "primary_sku_id", - "slug", - "cover_image", - "flags", - "owner_id", - "team_id", - "guild_id" - FROM "temporary_applications" - `); - await queryRunner.query(` - DROP TABLE "temporary_applications" - `); - await queryRunner.query(` - ALTER TABLE "teams" - RENAME TO "temporary_teams" - `); - await queryRunner.query(` - CREATE TABLE "teams" ( - "id" varchar PRIMARY KEY NOT NULL, - "icon" varchar, - "name" varchar NOT NULL, - "owner_user_id" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "teams"("id", "icon", "name", "owner_user_id") - SELECT "id", - "icon", - "name", - "owner_user_id" - FROM "temporary_teams" - `); - await queryRunner.query(` - DROP TABLE "temporary_teams" - `); - await queryRunner.query(` - ALTER TABLE "team_members" - RENAME TO "temporary_team_members" - `); - await queryRunner.query(` - CREATE TABLE "team_members" ( - "id" varchar PRIMARY KEY NOT NULL, - "membership_state" integer NOT NULL, - "permissions" text NOT NULL, - "team_id" varchar, - "user_id" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "team_members"( - "id", - "membership_state", - "permissions", - "team_id", - "user_id" - ) - SELECT "id", - "membership_state", - "permissions", - "team_id", - "user_id" - FROM "temporary_team_members" - `); - await queryRunner.query(` - DROP TABLE "temporary_team_members" - `); - await queryRunner.query(` - ALTER TABLE "guilds" - RENAME TO "temporary_guilds" - `); - await queryRunner.query(` - CREATE TABLE "guilds" ( - "id" varchar PRIMARY KEY NOT NULL, - "afk_channel_id" varchar, - "afk_timeout" integer, - "banner" varchar, - "default_message_notifications" integer, - "description" varchar, - "discovery_splash" varchar, - "explicit_content_filter" integer, - "features" text NOT NULL, - "primary_category_id" integer, - "icon" varchar, - "large" boolean, - "max_members" integer, - "max_presences" integer, - "max_video_channel_users" integer, - "member_count" integer, - "presence_count" integer, - "template_id" varchar, - "mfa_level" integer, - "name" varchar NOT NULL, - "owner_id" varchar, - "preferred_locale" varchar, - "premium_subscription_count" integer, - "premium_tier" integer, - "public_updates_channel_id" varchar, - "rules_channel_id" varchar, - "region" varchar, - "splash" varchar, - "system_channel_id" varchar, - "system_channel_flags" integer, - "unavailable" boolean, - "verification_level" integer, - "welcome_screen" text NOT NULL, - "widget_channel_id" varchar, - "widget_enabled" boolean, - "nsfw_level" integer, - "nsfw" boolean, - "parent" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "guilds"( - "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent" - ) - SELECT "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent" - FROM "temporary_guilds" - `); - await queryRunner.query(` - DROP TABLE "temporary_guilds" - `); - await queryRunner.query(` - ALTER TABLE "templates" - RENAME TO "temporary_templates" - `); - await queryRunner.query(` - CREATE TABLE "templates" ( - "id" varchar PRIMARY KEY NOT NULL, - "code" varchar NOT NULL, - "name" varchar NOT NULL, - "description" varchar, - "usage_count" integer, - "creator_id" varchar, - "created_at" datetime NOT NULL, - "updated_at" datetime NOT NULL, - "source_guild_id" varchar, - "serialized_source_guild" text NOT NULL, - CONSTRAINT "UQ_be38737bf339baf63b1daeffb55" UNIQUE ("code") - ) - `); - await queryRunner.query(` - INSERT INTO "templates"( - "id", - "code", - "name", - "description", - "usage_count", - "creator_id", - "created_at", - "updated_at", - "source_guild_id", - "serialized_source_guild" - ) - SELECT "id", - "code", - "name", - "description", - "usage_count", - "creator_id", - "created_at", - "updated_at", - "source_guild_id", - "serialized_source_guild" - FROM "temporary_templates" - `); - await queryRunner.query(` - DROP TABLE "temporary_templates" - `); - await queryRunner.query(` - ALTER TABLE "emojis" - RENAME TO "temporary_emojis" - `); - await queryRunner.query(` - CREATE TABLE "emojis" ( - "id" varchar PRIMARY KEY NOT NULL, - "animated" boolean NOT NULL, - "available" boolean NOT NULL, - "guild_id" varchar NOT NULL, - "user_id" varchar, - "managed" boolean NOT NULL, - "name" varchar NOT NULL, - "require_colons" boolean NOT NULL, - "roles" text NOT NULL, - "groups" text - ) - `); - await queryRunner.query(` - INSERT INTO "emojis"( - "id", - "animated", - "available", - "guild_id", - "user_id", - "managed", - "name", - "require_colons", - "roles", - "groups" - ) - SELECT "id", - "animated", - "available", - "guild_id", - "user_id", - "managed", - "name", - "require_colons", - "roles", - "groups" - FROM "temporary_emojis" - `); - await queryRunner.query(` - DROP TABLE "temporary_emojis" - `); - await queryRunner.query(` - ALTER TABLE "channels" - RENAME TO "temporary_channels" - `); - await queryRunner.query(` - CREATE TABLE "channels" ( - "id" varchar PRIMARY KEY NOT NULL, - "created_at" datetime NOT NULL, - "name" varchar, - "icon" text, - "type" integer NOT NULL, - "last_message_id" varchar, - "guild_id" varchar, - "parent_id" varchar, - "owner_id" varchar, - "last_pin_timestamp" integer, - "default_auto_archive_duration" integer, - "position" integer, - "permission_overwrites" text, - "video_quality_mode" integer, - "bitrate" integer, - "user_limit" integer, - "nsfw" boolean, - "rate_limit_per_user" integer, - "topic" varchar, - "retention_policy_id" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "channels"( - "id", - "created_at", - "name", - "icon", - "type", - "last_message_id", - "guild_id", - "parent_id", - "owner_id", - "last_pin_timestamp", - "default_auto_archive_duration", - "position", - "permission_overwrites", - "video_quality_mode", - "bitrate", - "user_limit", - "nsfw", - "rate_limit_per_user", - "topic", - "retention_policy_id" - ) - SELECT "id", - "created_at", - "name", - "icon", - "type", - "last_message_id", - "guild_id", - "parent_id", - "owner_id", - "last_pin_timestamp", - "default_auto_archive_duration", - "position", - "permission_overwrites", - "video_quality_mode", - "bitrate", - "user_limit", - "nsfw", - "rate_limit_per_user", - "topic", - "retention_policy_id" - FROM "temporary_channels" - `); - await queryRunner.query(` - DROP TABLE "temporary_channels" - `); - await queryRunner.query(` - ALTER TABLE "voice_states" - RENAME TO "temporary_voice_states" - `); - await queryRunner.query(` - CREATE TABLE "voice_states" ( - "id" varchar PRIMARY KEY NOT NULL, - "guild_id" varchar, - "channel_id" varchar, - "user_id" varchar, - "session_id" varchar NOT NULL, - "token" varchar, - "deaf" boolean NOT NULL, - "mute" boolean NOT NULL, - "self_deaf" boolean NOT NULL, - "self_mute" boolean NOT NULL, - "self_stream" boolean, - "self_video" boolean NOT NULL, - "suppress" boolean NOT NULL, - "request_to_speak_timestamp" datetime - ) - `); - await queryRunner.query(` - INSERT INTO "voice_states"( - "id", - "guild_id", - "channel_id", - "user_id", - "session_id", - "token", - "deaf", - "mute", - "self_deaf", - "self_mute", - "self_stream", - "self_video", - "suppress", - "request_to_speak_timestamp" - ) - SELECT "id", - "guild_id", - "channel_id", - "user_id", - "session_id", - "token", - "deaf", - "mute", - "self_deaf", - "self_mute", - "self_stream", - "self_video", - "suppress", - "request_to_speak_timestamp" - FROM "temporary_voice_states" - `); - await queryRunner.query(` - DROP TABLE "temporary_voice_states" - `); - await queryRunner.query(` - ALTER TABLE "invites" - RENAME TO "temporary_invites" - `); - await queryRunner.query(` - CREATE TABLE "invites" ( - "code" varchar PRIMARY KEY NOT NULL, - "temporary" boolean NOT NULL, - "uses" integer NOT NULL, - "max_uses" integer NOT NULL, - "max_age" integer NOT NULL, - "created_at" datetime NOT NULL, - "expires_at" datetime NOT NULL, - "guild_id" varchar, - "channel_id" varchar, - "inviter_id" varchar, - "target_user_id" varchar, - "target_user_type" integer, - "vanity_url" boolean - ) - `); - await queryRunner.query(` - INSERT INTO "invites"( - "code", - "temporary", - "uses", - "max_uses", - "max_age", - "created_at", - "expires_at", - "guild_id", - "channel_id", - "inviter_id", - "target_user_id", - "target_user_type", - "vanity_url" - ) - SELECT "code", - "temporary", - "uses", - "max_uses", - "max_age", - "created_at", - "expires_at", - "guild_id", - "channel_id", - "inviter_id", - "target_user_id", - "target_user_type", - "vanity_url" - FROM "temporary_invites" - `); - await queryRunner.query(` - DROP TABLE "temporary_invites" - `); - await queryRunner.query(` - DROP INDEX "IDX_0abf8b443321bd3cf7f81ee17a" - `); - await queryRunner.query(` - ALTER TABLE "read_states" - RENAME TO "temporary_read_states" - `); - await queryRunner.query(` - CREATE TABLE "read_states" ( - "id" varchar PRIMARY KEY NOT NULL, - "channel_id" varchar NOT NULL, - "user_id" varchar NOT NULL, - "last_message_id" varchar, - "public_ack" varchar, - "notifications_cursor" varchar, - "last_pin_timestamp" datetime, - "mention_count" integer - ) - `); - await queryRunner.query(` - INSERT INTO "read_states"( - "id", - "channel_id", - "user_id", - "last_message_id", - "public_ack", - "notifications_cursor", - "last_pin_timestamp", - "mention_count" - ) - SELECT "id", - "channel_id", - "user_id", - "last_message_id", - "public_ack", - "notifications_cursor", - "last_pin_timestamp", - "mention_count" - FROM "temporary_read_states" - `); - await queryRunner.query(` - DROP TABLE "temporary_read_states" - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_0abf8b443321bd3cf7f81ee17a" ON "read_states" ("channel_id", "user_id") - `); - await queryRunner.query(` - DROP INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" - `); - await queryRunner.query(` - DROP INDEX "IDX_05535bc695e9f7ee104616459d" - `); - await queryRunner.query(` - DROP INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" - `); - await queryRunner.query(` - ALTER TABLE "messages" - RENAME TO "temporary_messages" - `); - await queryRunner.query(` - CREATE TABLE "messages" ( - "id" varchar PRIMARY KEY NOT NULL, - "channel_id" varchar, - "guild_id" varchar, - "author_id" varchar, - "member_id" varchar, - "webhook_id" varchar, - "application_id" varchar, - "content" varchar, - "timestamp" datetime NOT NULL DEFAULT (datetime('now')), - "edited_timestamp" datetime, - "tts" boolean, - "mention_everyone" boolean, - "embeds" text NOT NULL, - "reactions" text NOT NULL, - "nonce" text, - "pinned" boolean, - "type" integer NOT NULL, - "activity" text, - "flags" varchar, - "message_reference" text, - "interaction" text, - "components" text, - "message_reference_id" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "messages"( - "id", - "channel_id", - "guild_id", - "author_id", - "member_id", - "webhook_id", - "application_id", - "content", - "timestamp", - "edited_timestamp", - "tts", - "mention_everyone", - "embeds", - "reactions", - "nonce", - "pinned", - "type", - "activity", - "flags", - "message_reference", - "interaction", - "components", - "message_reference_id" - ) - SELECT "id", - "channel_id", - "guild_id", - "author_id", - "member_id", - "webhook_id", - "application_id", - "content", - "timestamp", - "edited_timestamp", - "tts", - "mention_everyone", - "embeds", - "reactions", - "nonce", - "pinned", - "type", - "activity", - "flags", - "message_reference", - "interaction", - "components", - "message_reference_id" - FROM "temporary_messages" - `); - await queryRunner.query(` - DROP TABLE "temporary_messages" - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" ON "messages" ("channel_id", "id") - `); - await queryRunner.query(` - CREATE INDEX "IDX_05535bc695e9f7ee104616459d" ON "messages" ("author_id") - `); - await queryRunner.query(` - CREATE INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" ON "messages" ("channel_id") - `); - await queryRunner.query(` - ALTER TABLE "attachments" - RENAME TO "temporary_attachments" - `); - await queryRunner.query(` - CREATE TABLE "attachments" ( - "id" varchar PRIMARY KEY NOT NULL, - "filename" varchar NOT NULL, - "size" integer NOT NULL, - "url" varchar NOT NULL, - "proxy_url" varchar NOT NULL, - "height" integer, - "width" integer, - "content_type" varchar, - "message_id" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "attachments"( - "id", - "filename", - "size", - "url", - "proxy_url", - "height", - "width", - "content_type", - "message_id" - ) - SELECT "id", - "filename", - "size", - "url", - "proxy_url", - "height", - "width", - "content_type", - "message_id" - FROM "temporary_attachments" - `); - await queryRunner.query(` - DROP TABLE "temporary_attachments" - `); - await queryRunner.query(` - ALTER TABLE "stickers" - RENAME TO "temporary_stickers" - `); - await queryRunner.query(` - CREATE TABLE "stickers" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "description" varchar, - "available" boolean, - "tags" varchar, - "pack_id" varchar, - "guild_id" varchar, - "user_id" varchar, - "type" integer NOT NULL, - "format_type" integer NOT NULL - ) - `); - await queryRunner.query(` - INSERT INTO "stickers"( - "id", - "name", - "description", - "available", - "tags", - "pack_id", - "guild_id", - "user_id", - "type", - "format_type" - ) - SELECT "id", - "name", - "description", - "available", - "tags", - "pack_id", - "guild_id", - "user_id", - "type", - "format_type" - FROM "temporary_stickers" - `); - await queryRunner.query(` - DROP TABLE "temporary_stickers" - `); - await queryRunner.query(` - ALTER TABLE "webhooks" - RENAME TO "temporary_webhooks" - `); - await queryRunner.query(` - CREATE TABLE "webhooks" ( - "id" varchar PRIMARY KEY NOT NULL, - "type" integer NOT NULL, - "name" varchar, - "avatar" varchar, - "token" varchar, - "guild_id" varchar, - "channel_id" varchar, - "application_id" varchar, - "user_id" varchar, - "source_guild_id" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "webhooks"( - "id", - "type", - "name", - "avatar", - "token", - "guild_id", - "channel_id", - "application_id", - "user_id", - "source_guild_id" - ) - SELECT "id", - "type", - "name", - "avatar", - "token", - "guild_id", - "channel_id", - "application_id", - "user_id", - "source_guild_id" - FROM "temporary_webhooks" - `); - await queryRunner.query(` - DROP TABLE "temporary_webhooks" - `); - await queryRunner.query(` - DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" - `); - await queryRunner.query(` - ALTER TABLE "members" - RENAME TO "temporary_members" - `); - await queryRunner.query(` - CREATE TABLE "members" ( - "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, - "id" varchar NOT NULL, - "guild_id" varchar NOT NULL, - "nick" varchar, - "joined_at" datetime NOT NULL, - "premium_since" bigint, - "deaf" boolean NOT NULL, - "mute" boolean NOT NULL, - "pending" boolean NOT NULL, - "settings" text NOT NULL, - "last_message_id" varchar, - "joined_by" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "members"( - "index", - "id", - "guild_id", - "nick", - "joined_at", - "premium_since", - "deaf", - "mute", - "pending", - "settings", - "last_message_id", - "joined_by" - ) - SELECT "index", - "id", - "guild_id", - "nick", - "joined_at", - "premium_since", - "deaf", - "mute", - "pending", - "settings", - "last_message_id", - "joined_by" - FROM "temporary_members" - `); - await queryRunner.query(` - DROP TABLE "temporary_members" - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") - `); - await queryRunner.query(` - ALTER TABLE "roles" - RENAME TO "temporary_roles" - `); - await queryRunner.query(` - CREATE TABLE "roles" ( - "id" varchar PRIMARY KEY NOT NULL, - "guild_id" varchar, - "color" integer NOT NULL, - "hoist" boolean NOT NULL, - "managed" boolean NOT NULL, - "mentionable" boolean NOT NULL, - "name" varchar NOT NULL, - "permissions" varchar NOT NULL, - "position" integer NOT NULL, - "icon" varchar, - "unicode_emoji" varchar, - "tags" text - ) - `); - await queryRunner.query(` - INSERT INTO "roles"( - "id", - "guild_id", - "color", - "hoist", - "managed", - "mentionable", - "name", - "permissions", - "position", - "icon", - "unicode_emoji", - "tags" - ) - SELECT "id", - "guild_id", - "color", - "hoist", - "managed", - "mentionable", - "name", - "permissions", - "position", - "icon", - "unicode_emoji", - "tags" - FROM "temporary_roles" - `); - await queryRunner.query(` - DROP TABLE "temporary_roles" - `); - await queryRunner.query(` - ALTER TABLE "recipients" - RENAME TO "temporary_recipients" - `); - await queryRunner.query(` - CREATE TABLE "recipients" ( - "id" varchar PRIMARY KEY NOT NULL, - "channel_id" varchar NOT NULL, - "user_id" varchar NOT NULL, - "closed" boolean NOT NULL DEFAULT (0) - ) - `); - await queryRunner.query(` - INSERT INTO "recipients"("id", "channel_id", "user_id", "closed") - SELECT "id", - "channel_id", - "user_id", - "closed" - FROM "temporary_recipients" - `); - await queryRunner.query(` - DROP TABLE "temporary_recipients" - `); - await queryRunner.query(` - ALTER TABLE "bans" - RENAME TO "temporary_bans" - `); - await queryRunner.query(` - CREATE TABLE "bans" ( - "id" varchar PRIMARY KEY NOT NULL, - "user_id" varchar, - "guild_id" varchar, - "executor_id" varchar, - "ip" varchar NOT NULL, - "reason" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "bans"( - "id", - "user_id", - "guild_id", - "executor_id", - "ip", - "reason" - ) - SELECT "id", - "user_id", - "guild_id", - "executor_id", - "ip", - "reason" - FROM "temporary_bans" - `); - await queryRunner.query(` - DROP TABLE "temporary_bans" - `); - await queryRunner.query(` - ALTER TABLE "backup_codes" - RENAME TO "temporary_backup_codes" - `); - await queryRunner.query(` - CREATE TABLE "backup_codes" ( - "id" varchar PRIMARY KEY NOT NULL, - "code" varchar NOT NULL, - "consumed" boolean NOT NULL, - "expired" boolean NOT NULL, - "user_id" varchar - ) - `); - await queryRunner.query(` - INSERT INTO "backup_codes"("id", "code", "consumed", "expired", "user_id") - SELECT "id", - "code", - "consumed", - "expired", - "user_id" - FROM "temporary_backup_codes" - `); - await queryRunner.query(` - DROP TABLE "temporary_backup_codes" - `); - await queryRunner.query(` - ALTER TABLE "connected_accounts" - RENAME TO "temporary_connected_accounts" - `); - await queryRunner.query(` - CREATE TABLE "connected_accounts" ( - "id" varchar PRIMARY KEY NOT NULL, - "user_id" varchar, - "access_token" varchar NOT NULL, - "friend_sync" boolean NOT NULL, - "name" varchar NOT NULL, - "revoked" boolean NOT NULL, - "show_activity" boolean NOT NULL, - "type" varchar NOT NULL, - "verified" boolean NOT NULL, - "visibility" integer NOT NULL - ) - `); - await queryRunner.query(` - INSERT INTO "connected_accounts"( - "id", - "user_id", - "access_token", - "friend_sync", - "name", - "revoked", - "show_activity", - "type", - "verified", - "visibility" - ) - SELECT "id", - "user_id", - "access_token", - "friend_sync", - "name", - "revoked", - "show_activity", - "type", - "verified", - "visibility" - FROM "temporary_connected_accounts" - `); - await queryRunner.query(` - DROP TABLE "temporary_connected_accounts" - `); - await queryRunner.query(` - DROP INDEX "IDX_a0b2ff0a598df0b0d055934a17" - `); - await queryRunner.query(` - ALTER TABLE "relationships" - RENAME TO "temporary_relationships" - `); - await queryRunner.query(` - CREATE TABLE "relationships" ( - "id" varchar PRIMARY KEY NOT NULL, - "from_id" varchar NOT NULL, - "to_id" varchar NOT NULL, - "nickname" varchar, - "type" integer NOT NULL - ) - `); - await queryRunner.query(` - INSERT INTO "relationships"("id", "from_id", "to_id", "nickname", "type") - SELECT "id", - "from_id", - "to_id", - "nickname", - "type" - FROM "temporary_relationships" - `); - await queryRunner.query(` - DROP TABLE "temporary_relationships" - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_a0b2ff0a598df0b0d055934a17" ON "relationships" ("from_id", "to_id") - `); - await queryRunner.query(` - DROP INDEX "IDX_e22a70819d07659c7a71c112a1" - `); - await queryRunner.query(` - DROP INDEX "IDX_40bb6f23e7cc133292e92829d2" - `); - await queryRunner.query(` - DROP TABLE "message_stickers" - `); - await queryRunner.query(` - DROP INDEX "IDX_bdb8c09e1464cabf62105bf4b9" - `); - await queryRunner.query(` - DROP INDEX "IDX_2a27102ecd1d81b4582a436092" - `); - await queryRunner.query(` - DROP TABLE "message_channel_mentions" - `); - await queryRunner.query(` - DROP INDEX "IDX_29d63eb1a458200851bc37d074" - `); - await queryRunner.query(` - DROP INDEX "IDX_a8242cf535337a490b0feaea0b" - `); - await queryRunner.query(` - DROP TABLE "message_role_mentions" - `); - await queryRunner.query(` - DROP INDEX "IDX_b831eb18ceebd28976239b1e2f" - `); - await queryRunner.query(` - DROP INDEX "IDX_a343387fc560ef378760681c23" - `); - await queryRunner.query(` - DROP TABLE "message_user_mentions" - `); - await queryRunner.query(` - DROP INDEX "IDX_e9080e7a7997a0170026d5139c" - `); - await queryRunner.query(` - DROP INDEX "IDX_5d7ddc8a5f9c167f548625e772" - `); - await queryRunner.query(` - DROP TABLE "member_roles" - `); - await queryRunner.query(` - DROP TABLE "notes" - `); - await queryRunner.query(` - DROP TABLE "client_release" - `); - await queryRunner.query(` - DROP TABLE "sticker_packs" - `); - await queryRunner.query(` - DROP TABLE "sessions" - `); - await queryRunner.query(` - DROP TABLE "rate_limits" - `); - await queryRunner.query(` - DROP TABLE "categories" - `); - await queryRunner.query(` - DROP TABLE "audit_logs" - `); - await queryRunner.query(` - DROP TABLE "applications" - `); - await queryRunner.query(` - DROP TABLE "teams" - `); - await queryRunner.query(` - DROP TABLE "team_members" - `); - await queryRunner.query(` - DROP TABLE "guilds" - `); - await queryRunner.query(` - DROP TABLE "templates" - `); - await queryRunner.query(` - DROP TABLE "emojis" - `); - await queryRunner.query(` - DROP TABLE "channels" - `); - await queryRunner.query(` - DROP TABLE "voice_states" - `); - await queryRunner.query(` - DROP TABLE "invites" - `); - await queryRunner.query(` - DROP INDEX "IDX_0abf8b443321bd3cf7f81ee17a" - `); - await queryRunner.query(` - DROP TABLE "read_states" - `); - await queryRunner.query(` - DROP INDEX "IDX_3ed7a60fb7dbe04e1ba9332a8b" - `); - await queryRunner.query(` - DROP INDEX "IDX_05535bc695e9f7ee104616459d" - `); - await queryRunner.query(` - DROP INDEX "IDX_86b9109b155eb70c0a2ca3b4b6" - `); - await queryRunner.query(` - DROP TABLE "messages" - `); - await queryRunner.query(` - DROP TABLE "attachments" - `); - await queryRunner.query(` - DROP TABLE "stickers" - `); - await queryRunner.query(` - DROP TABLE "webhooks" - `); - await queryRunner.query(` - DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" - `); - await queryRunner.query(` - DROP TABLE "members" - `); - await queryRunner.query(` - DROP TABLE "roles" - `); - await queryRunner.query(` - DROP TABLE "recipients" - `); - await queryRunner.query(` - DROP TABLE "bans" - `); - await queryRunner.query(` - DROP TABLE "backup_codes" - `); - await queryRunner.query(` - DROP TABLE "users" - `); - await queryRunner.query(` - DROP TABLE "connected_accounts" - `); - await queryRunner.query(` - DROP INDEX "IDX_a0b2ff0a598df0b0d055934a17" - `); - await queryRunner.query(` - DROP TABLE "relationships" - `); - await queryRunner.query(` - DROP TABLE "config" - `); - } - -} diff --git a/util/src/migrations/sqlite/1659921722863-premium_since_as_date.ts b/util/src/migrations/sqlite/1659921722863-premium_since_as_date.ts deleted file mode 100644 index 788be625..00000000 --- a/util/src/migrations/sqlite/1659921722863-premium_since_as_date.ts +++ /dev/null @@ -1,252 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class premiumSinceAsDate1659921722863 implements MigrationInterface { - name = 'premiumSinceAsDate1659921722863' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" - `); - await queryRunner.query(` - CREATE TABLE "temporary_members" ( - "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, - "id" varchar NOT NULL, - "guild_id" varchar NOT NULL, - "nick" varchar, - "joined_at" datetime NOT NULL, - "premium_since" bigint, - "deaf" boolean NOT NULL, - "mute" boolean NOT NULL, - "pending" boolean NOT NULL, - "settings" text NOT NULL, - "last_message_id" varchar, - "joined_by" varchar, - CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_members"( - "index", - "id", - "guild_id", - "nick", - "joined_at", - "premium_since", - "deaf", - "mute", - "pending", - "settings", - "last_message_id", - "joined_by" - ) - SELECT "index", - "id", - "guild_id", - "nick", - "joined_at", - "premium_since", - "deaf", - "mute", - "pending", - "settings", - "last_message_id", - "joined_by" - FROM "members" - `); - await queryRunner.query(` - DROP TABLE "members" - `); - await queryRunner.query(` - ALTER TABLE "temporary_members" - RENAME TO "members" - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") - `); - await queryRunner.query(` - DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" - `); - await queryRunner.query(` - CREATE TABLE "temporary_members" ( - "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, - "id" varchar NOT NULL, - "guild_id" varchar NOT NULL, - "nick" varchar, - "joined_at" datetime NOT NULL, - "premium_since" datetime, - "deaf" boolean NOT NULL, - "mute" boolean NOT NULL, - "pending" boolean NOT NULL, - "settings" text NOT NULL, - "last_message_id" varchar, - "joined_by" varchar, - CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_members"( - "index", - "id", - "guild_id", - "nick", - "joined_at", - "premium_since", - "deaf", - "mute", - "pending", - "settings", - "last_message_id", - "joined_by" - ) - SELECT "index", - "id", - "guild_id", - "nick", - "joined_at", - "premium_since", - "deaf", - "mute", - "pending", - "settings", - "last_message_id", - "joined_by" - FROM "members" - `); - await queryRunner.query(` - DROP TABLE "members" - `); - await queryRunner.query(` - ALTER TABLE "temporary_members" - RENAME TO "members" - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" - `); - await queryRunner.query(` - ALTER TABLE "members" - RENAME TO "temporary_members" - `); - await queryRunner.query(` - CREATE TABLE "members" ( - "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, - "id" varchar NOT NULL, - "guild_id" varchar NOT NULL, - "nick" varchar, - "joined_at" datetime NOT NULL, - "premium_since" bigint, - "deaf" boolean NOT NULL, - "mute" boolean NOT NULL, - "pending" boolean NOT NULL, - "settings" text NOT NULL, - "last_message_id" varchar, - "joined_by" varchar, - CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "members"( - "index", - "id", - "guild_id", - "nick", - "joined_at", - "premium_since", - "deaf", - "mute", - "pending", - "settings", - "last_message_id", - "joined_by" - ) - SELECT "index", - "id", - "guild_id", - "nick", - "joined_at", - "premium_since", - "deaf", - "mute", - "pending", - "settings", - "last_message_id", - "joined_by" - FROM "temporary_members" - `); - await queryRunner.query(` - DROP TABLE "temporary_members" - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") - `); - await queryRunner.query(` - DROP INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" - `); - await queryRunner.query(` - ALTER TABLE "members" - RENAME TO "temporary_members" - `); - await queryRunner.query(` - CREATE TABLE "members" ( - "index" integer PRIMARY KEY AUTOINCREMENT NOT NULL, - "id" varchar NOT NULL, - "guild_id" varchar NOT NULL, - "nick" varchar, - "joined_at" datetime NOT NULL, - "premium_since" bigint, - "deaf" boolean NOT NULL, - "mute" boolean NOT NULL, - "pending" boolean NOT NULL, - "settings" text NOT NULL, - "last_message_id" varchar, - "joined_by" varchar, - CONSTRAINT "FK_16aceddd5b89825b8ed6029ad1c" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_28b53062261b996d9c99fa12404" FOREIGN KEY ("id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "members"( - "index", - "id", - "guild_id", - "nick", - "joined_at", - "premium_since", - "deaf", - "mute", - "pending", - "settings", - "last_message_id", - "joined_by" - ) - SELECT "index", - "id", - "guild_id", - "nick", - "joined_at", - "premium_since", - "deaf", - "mute", - "pending", - "settings", - "last_message_id", - "joined_by" - FROM "temporary_members" - `); - await queryRunner.query(` - DROP TABLE "temporary_members" - `); - await queryRunner.query(` - CREATE UNIQUE INDEX "IDX_bb2bf9386ac443afbbbf9f12d3" ON "members" ("id", "guild_id") - `); - } - -} diff --git a/util/src/migrations/sqlite/1660257576211-CodeCleanup1.ts b/util/src/migrations/sqlite/1660257576211-CodeCleanup1.ts deleted file mode 100644 index 5a61db0d..00000000 --- a/util/src/migrations/sqlite/1660257576211-CodeCleanup1.ts +++ /dev/null @@ -1,326 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup11660257576211 implements MigrationInterface { - name = 'CodeCleanup11660257576211' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE TABLE "user_settings" ( - "id" varchar PRIMARY KEY NOT NULL, - "afk_timeout" integer, - "allow_accessibility_detection" boolean, - "animate_emoji" boolean, - "animate_stickers" integer, - "contact_sync_enabled" boolean, - "convert_emoticons" boolean, - "custom_status" text, - "default_guilds_restricted" boolean, - "detect_platform_accounts" boolean, - "developer_mode" boolean, - "disable_games_tab" boolean, - "enable_tts_command" boolean, - "explicit_content_filter" integer, - "friend_source_flags" text, - "gateway_connected" boolean, - "gif_auto_play" boolean, - "guild_folders" text, - "guild_positions" text, - "inline_attachment_media" boolean, - "inline_embed_media" boolean, - "locale" varchar, - "message_display_compact" boolean, - "native_phone_integration_enabled" boolean, - "render_embeds" boolean, - "render_reactions" boolean, - "restricted_guilds" text, - "show_current_game" boolean, - "status" varchar, - "stream_notifications_enabled" boolean, - "theme" varchar, - "timezone_offset" integer - ) - `); - await queryRunner.query(` - CREATE TABLE "temporary_guilds" ( - "id" varchar PRIMARY KEY NOT NULL, - "afk_channel_id" varchar, - "afk_timeout" integer, - "banner" varchar, - "default_message_notifications" integer, - "description" varchar, - "discovery_splash" varchar, - "explicit_content_filter" integer, - "features" text NOT NULL, - "primary_category_id" integer, - "icon" varchar, - "large" boolean, - "max_members" integer, - "max_presences" integer, - "max_video_channel_users" integer, - "member_count" integer, - "presence_count" integer, - "template_id" varchar, - "mfa_level" integer, - "name" varchar NOT NULL, - "owner_id" varchar, - "preferred_locale" varchar, - "premium_subscription_count" integer, - "premium_tier" integer, - "public_updates_channel_id" varchar, - "rules_channel_id" varchar, - "region" varchar, - "splash" varchar, - "system_channel_id" varchar, - "system_channel_flags" integer, - "unavailable" boolean, - "verification_level" integer, - "welcome_screen" text NOT NULL, - "widget_channel_id" varchar, - "widget_enabled" boolean, - "nsfw_level" integer, - "nsfw" boolean, - "parent" varchar, - "premium_progress_bar_enabled" boolean NOT NULL, - CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_guilds"( - "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent" - ) - SELECT "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent" - FROM "guilds" - `); - await queryRunner.query(` - DROP TABLE "guilds" - `); - await queryRunner.query(` - ALTER TABLE "temporary_guilds" - RENAME TO "guilds" - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "guilds" - RENAME TO "temporary_guilds" - `); - await queryRunner.query(` - CREATE TABLE "guilds" ( - "id" varchar PRIMARY KEY NOT NULL, - "afk_channel_id" varchar, - "afk_timeout" integer, - "banner" varchar, - "default_message_notifications" integer, - "description" varchar, - "discovery_splash" varchar, - "explicit_content_filter" integer, - "features" text NOT NULL, - "primary_category_id" integer, - "icon" varchar, - "large" boolean, - "max_members" integer, - "max_presences" integer, - "max_video_channel_users" integer, - "member_count" integer, - "presence_count" integer, - "template_id" varchar, - "mfa_level" integer, - "name" varchar NOT NULL, - "owner_id" varchar, - "preferred_locale" varchar, - "premium_subscription_count" integer, - "premium_tier" integer, - "public_updates_channel_id" varchar, - "rules_channel_id" varchar, - "region" varchar, - "splash" varchar, - "system_channel_id" varchar, - "system_channel_flags" integer, - "unavailable" boolean, - "verification_level" integer, - "welcome_screen" text NOT NULL, - "widget_channel_id" varchar, - "widget_enabled" boolean, - "nsfw_level" integer, - "nsfw" boolean, - "parent" varchar, - CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "guilds"( - "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent" - ) - SELECT "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent" - FROM "temporary_guilds" - `); - await queryRunner.query(` - DROP TABLE "temporary_guilds" - `); - await queryRunner.query(` - DROP TABLE "user_settings" - `); - } - -} diff --git a/util/src/migrations/sqlite/1660257795259-CodeCleanup2.ts b/util/src/migrations/sqlite/1660257795259-CodeCleanup2.ts deleted file mode 100644 index 53698256..00000000 --- a/util/src/migrations/sqlite/1660257795259-CodeCleanup2.ts +++ /dev/null @@ -1,572 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup21660257795259 implements MigrationInterface { - name = 'CodeCleanup21660257795259' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE TABLE "temporary_guilds" ( - "id" varchar PRIMARY KEY NOT NULL, - "afk_channel_id" varchar, - "afk_timeout" integer, - "banner" varchar, - "default_message_notifications" integer, - "description" varchar, - "discovery_splash" varchar, - "explicit_content_filter" integer, - "features" text NOT NULL, - "primary_category_id" integer, - "icon" varchar, - "large" boolean, - "max_members" integer, - "max_presences" integer, - "max_video_channel_users" integer, - "member_count" integer, - "presence_count" integer, - "template_id" varchar, - "mfa_level" integer, - "name" varchar NOT NULL, - "owner_id" varchar, - "preferred_locale" varchar, - "premium_subscription_count" integer, - "premium_tier" integer, - "public_updates_channel_id" varchar, - "rules_channel_id" varchar, - "region" varchar, - "splash" varchar, - "system_channel_id" varchar, - "system_channel_flags" integer, - "unavailable" boolean, - "verification_level" integer, - "welcome_screen" text NOT NULL, - "widget_channel_id" varchar, - "widget_enabled" boolean, - "nsfw_level" integer, - "nsfw" boolean, - "parent" varchar, - "premium_progress_bar_enabled" boolean NOT NULL, - CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_guilds"( - "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent", - "premium_progress_bar_enabled" - ) - SELECT "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent", - "premium_progress_bar_enabled" - FROM "guilds" - `); - await queryRunner.query(` - DROP TABLE "guilds" - `); - await queryRunner.query(` - ALTER TABLE "temporary_guilds" - RENAME TO "guilds" - `); - await queryRunner.query(` - CREATE TABLE "temporary_guilds" ( - "id" varchar PRIMARY KEY NOT NULL, - "afk_channel_id" varchar, - "afk_timeout" integer, - "banner" varchar, - "default_message_notifications" integer, - "description" varchar, - "discovery_splash" varchar, - "explicit_content_filter" integer, - "features" text NOT NULL, - "primary_category_id" integer, - "icon" varchar, - "large" boolean, - "max_members" integer, - "max_presences" integer, - "max_video_channel_users" integer, - "member_count" integer, - "presence_count" integer, - "template_id" varchar, - "mfa_level" integer, - "name" varchar NOT NULL, - "owner_id" varchar, - "preferred_locale" varchar, - "premium_subscription_count" integer, - "premium_tier" integer, - "public_updates_channel_id" varchar, - "rules_channel_id" varchar, - "region" varchar, - "splash" varchar, - "system_channel_id" varchar, - "system_channel_flags" integer, - "unavailable" boolean, - "verification_level" integer, - "welcome_screen" text NOT NULL, - "widget_channel_id" varchar, - "widget_enabled" boolean, - "nsfw_level" integer, - "nsfw" boolean, - "parent" varchar, - "premium_progress_bar_enabled" boolean, - CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_guilds"( - "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent", - "premium_progress_bar_enabled" - ) - SELECT "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent", - "premium_progress_bar_enabled" - FROM "guilds" - `); - await queryRunner.query(` - DROP TABLE "guilds" - `); - await queryRunner.query(` - ALTER TABLE "temporary_guilds" - RENAME TO "guilds" - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "guilds" - RENAME TO "temporary_guilds" - `); - await queryRunner.query(` - CREATE TABLE "guilds" ( - "id" varchar PRIMARY KEY NOT NULL, - "afk_channel_id" varchar, - "afk_timeout" integer, - "banner" varchar, - "default_message_notifications" integer, - "description" varchar, - "discovery_splash" varchar, - "explicit_content_filter" integer, - "features" text NOT NULL, - "primary_category_id" integer, - "icon" varchar, - "large" boolean, - "max_members" integer, - "max_presences" integer, - "max_video_channel_users" integer, - "member_count" integer, - "presence_count" integer, - "template_id" varchar, - "mfa_level" integer, - "name" varchar NOT NULL, - "owner_id" varchar, - "preferred_locale" varchar, - "premium_subscription_count" integer, - "premium_tier" integer, - "public_updates_channel_id" varchar, - "rules_channel_id" varchar, - "region" varchar, - "splash" varchar, - "system_channel_id" varchar, - "system_channel_flags" integer, - "unavailable" boolean, - "verification_level" integer, - "welcome_screen" text NOT NULL, - "widget_channel_id" varchar, - "widget_enabled" boolean, - "nsfw_level" integer, - "nsfw" boolean, - "parent" varchar, - "premium_progress_bar_enabled" boolean NOT NULL, - CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "guilds"( - "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent", - "premium_progress_bar_enabled" - ) - SELECT "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent", - "premium_progress_bar_enabled" - FROM "temporary_guilds" - `); - await queryRunner.query(` - DROP TABLE "temporary_guilds" - `); - await queryRunner.query(` - ALTER TABLE "guilds" - RENAME TO "temporary_guilds" - `); - await queryRunner.query(` - CREATE TABLE "guilds" ( - "id" varchar PRIMARY KEY NOT NULL, - "afk_channel_id" varchar, - "afk_timeout" integer, - "banner" varchar, - "default_message_notifications" integer, - "description" varchar, - "discovery_splash" varchar, - "explicit_content_filter" integer, - "features" text NOT NULL, - "primary_category_id" integer, - "icon" varchar, - "large" boolean, - "max_members" integer, - "max_presences" integer, - "max_video_channel_users" integer, - "member_count" integer, - "presence_count" integer, - "template_id" varchar, - "mfa_level" integer, - "name" varchar NOT NULL, - "owner_id" varchar, - "preferred_locale" varchar, - "premium_subscription_count" integer, - "premium_tier" integer, - "public_updates_channel_id" varchar, - "rules_channel_id" varchar, - "region" varchar, - "splash" varchar, - "system_channel_id" varchar, - "system_channel_flags" integer, - "unavailable" boolean, - "verification_level" integer, - "welcome_screen" text NOT NULL, - "widget_channel_id" varchar, - "widget_enabled" boolean, - "nsfw_level" integer, - "nsfw" boolean, - "parent" varchar, - "premium_progress_bar_enabled" boolean NOT NULL, - CONSTRAINT "FK_f591a66b8019d87b0fe6c12dad6" FOREIGN KEY ("afk_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_e2a2f873a64a5cf62526de42325" FOREIGN KEY ("template_id") REFERENCES "templates" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_fc1a451727e3643ca572a3bb394" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_8d450b016dc8bec35f36729e4b0" FOREIGN KEY ("public_updates_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_95828668aa333460582e0ca6396" FOREIGN KEY ("rules_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_cfc3d3ad260f8121c95b31a1fce" FOREIGN KEY ("system_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_9d1d665379eefde7876a17afa99" FOREIGN KEY ("widget_channel_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "guilds"( - "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent", - "premium_progress_bar_enabled" - ) - SELECT "id", - "afk_channel_id", - "afk_timeout", - "banner", - "default_message_notifications", - "description", - "discovery_splash", - "explicit_content_filter", - "features", - "primary_category_id", - "icon", - "large", - "max_members", - "max_presences", - "max_video_channel_users", - "member_count", - "presence_count", - "template_id", - "mfa_level", - "name", - "owner_id", - "preferred_locale", - "premium_subscription_count", - "premium_tier", - "public_updates_channel_id", - "rules_channel_id", - "region", - "splash", - "system_channel_id", - "system_channel_flags", - "unavailable", - "verification_level", - "welcome_screen", - "widget_channel_id", - "widget_enabled", - "nsfw_level", - "nsfw", - "parent", - "premium_progress_bar_enabled" - FROM "temporary_guilds" - `); - await queryRunner.query(` - DROP TABLE "temporary_guilds" - `); - } - -} diff --git a/util/src/migrations/sqlite/1660258351379-CodeCleanup3.ts b/util/src/migrations/sqlite/1660258351379-CodeCleanup3.ts deleted file mode 100644 index 13fba6dd..00000000 --- a/util/src/migrations/sqlite/1660258351379-CodeCleanup3.ts +++ /dev/null @@ -1,231 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup31660258351379 implements MigrationInterface { - name = 'CodeCleanup31660258351379' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE TABLE "temporary_users" ( - "id" varchar PRIMARY KEY NOT NULL, - "username" varchar NOT NULL, - "discriminator" varchar NOT NULL, - "avatar" varchar, - "accent_color" integer, - "banner" varchar, - "phone" varchar, - "desktop" boolean NOT NULL, - "mobile" boolean NOT NULL, - "premium" boolean NOT NULL, - "premium_type" integer NOT NULL, - "bot" boolean NOT NULL, - "bio" varchar NOT NULL, - "system" boolean NOT NULL, - "nsfw_allowed" boolean NOT NULL, - "mfa_enabled" boolean NOT NULL, - "totp_secret" varchar, - "totp_last_ticket" varchar, - "created_at" datetime NOT NULL, - "premium_since" datetime, - "verified" boolean NOT NULL, - "disabled" boolean NOT NULL, - "deleted" boolean NOT NULL, - "email" varchar, - "flags" varchar NOT NULL, - "public_flags" integer NOT NULL, - "rights" bigint NOT NULL, - "data" text NOT NULL, - "fingerprints" text NOT NULL, - "extended_settings" text NOT NULL, - "notes" text NOT NULL - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_users"( - "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes" - ) - SELECT "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes" - FROM "users" - `); - await queryRunner.query(` - DROP TABLE "users" - `); - await queryRunner.query(` - ALTER TABLE "temporary_users" - RENAME TO "users" - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "users" - RENAME TO "temporary_users" - `); - await queryRunner.query(` - CREATE TABLE "users" ( - "id" varchar PRIMARY KEY NOT NULL, - "username" varchar NOT NULL, - "discriminator" varchar NOT NULL, - "avatar" varchar, - "accent_color" integer, - "banner" varchar, - "phone" varchar, - "desktop" boolean NOT NULL, - "mobile" boolean NOT NULL, - "premium" boolean NOT NULL, - "premium_type" integer NOT NULL, - "bot" boolean NOT NULL, - "bio" varchar NOT NULL, - "system" boolean NOT NULL, - "nsfw_allowed" boolean NOT NULL, - "mfa_enabled" boolean NOT NULL, - "totp_secret" varchar, - "totp_last_ticket" varchar, - "created_at" datetime NOT NULL, - "premium_since" datetime, - "verified" boolean NOT NULL, - "disabled" boolean NOT NULL, - "deleted" boolean NOT NULL, - "email" varchar, - "flags" varchar NOT NULL, - "public_flags" integer NOT NULL, - "rights" bigint NOT NULL, - "data" text NOT NULL, - "fingerprints" text NOT NULL, - "settings" text NOT NULL, - "extended_settings" text NOT NULL, - "notes" text NOT NULL - ) - `); - await queryRunner.query(` - INSERT INTO "users"( - "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes" - ) - SELECT "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes" - FROM "temporary_users" - `); - await queryRunner.query(` - DROP TABLE "temporary_users" - `); - } - -} diff --git a/util/src/migrations/sqlite/1660260672914-CodeCleanup4.ts b/util/src/migrations/sqlite/1660260672914-CodeCleanup4.ts deleted file mode 100644 index 33f4df03..00000000 --- a/util/src/migrations/sqlite/1660260672914-CodeCleanup4.ts +++ /dev/null @@ -1,459 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup41660260672914 implements MigrationInterface { - name = 'CodeCleanup41660260672914' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE TABLE "temporary_users" ( - "id" varchar PRIMARY KEY NOT NULL, - "username" varchar NOT NULL, - "discriminator" varchar NOT NULL, - "avatar" varchar, - "accent_color" integer, - "banner" varchar, - "phone" varchar, - "desktop" boolean NOT NULL, - "mobile" boolean NOT NULL, - "premium" boolean NOT NULL, - "premium_type" integer NOT NULL, - "bot" boolean NOT NULL, - "bio" varchar NOT NULL, - "system" boolean NOT NULL, - "nsfw_allowed" boolean NOT NULL, - "mfa_enabled" boolean NOT NULL, - "totp_secret" varchar, - "totp_last_ticket" varchar, - "created_at" datetime NOT NULL, - "premium_since" datetime, - "verified" boolean NOT NULL, - "disabled" boolean NOT NULL, - "deleted" boolean NOT NULL, - "email" varchar, - "flags" varchar NOT NULL, - "public_flags" integer NOT NULL, - "rights" bigint NOT NULL, - "data" text NOT NULL, - "fingerprints" text NOT NULL, - "extended_settings" text NOT NULL, - "notes" text NOT NULL, - "settingsId" varchar, - CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId") - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_users"( - "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes" - ) - SELECT "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes" - FROM "users" - `); - await queryRunner.query(` - DROP TABLE "users" - `); - await queryRunner.query(` - ALTER TABLE "temporary_users" - RENAME TO "users" - `); - await queryRunner.query(` - CREATE TABLE "temporary_users" ( - "id" varchar PRIMARY KEY NOT NULL, - "username" varchar NOT NULL, - "discriminator" varchar NOT NULL, - "avatar" varchar, - "accent_color" integer, - "banner" varchar, - "phone" varchar, - "desktop" boolean NOT NULL, - "mobile" boolean NOT NULL, - "premium" boolean NOT NULL, - "premium_type" integer NOT NULL, - "bot" boolean NOT NULL, - "bio" varchar NOT NULL, - "system" boolean NOT NULL, - "nsfw_allowed" boolean NOT NULL, - "mfa_enabled" boolean NOT NULL, - "totp_secret" varchar, - "totp_last_ticket" varchar, - "created_at" datetime NOT NULL, - "premium_since" datetime, - "verified" boolean NOT NULL, - "disabled" boolean NOT NULL, - "deleted" boolean NOT NULL, - "email" varchar, - "flags" varchar NOT NULL, - "public_flags" integer NOT NULL, - "rights" bigint NOT NULL, - "data" text NOT NULL, - "fingerprints" text NOT NULL, - "extended_settings" text NOT NULL, - "notes" text NOT NULL, - "settingsId" varchar, - CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId"), - CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" FOREIGN KEY ("settingsId") REFERENCES "user_settings" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_users"( - "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes", - "settingsId" - ) - SELECT "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes", - "settingsId" - FROM "users" - `); - await queryRunner.query(` - DROP TABLE "users" - `); - await queryRunner.query(` - ALTER TABLE "temporary_users" - RENAME TO "users" - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "users" - RENAME TO "temporary_users" - `); - await queryRunner.query(` - CREATE TABLE "users" ( - "id" varchar PRIMARY KEY NOT NULL, - "username" varchar NOT NULL, - "discriminator" varchar NOT NULL, - "avatar" varchar, - "accent_color" integer, - "banner" varchar, - "phone" varchar, - "desktop" boolean NOT NULL, - "mobile" boolean NOT NULL, - "premium" boolean NOT NULL, - "premium_type" integer NOT NULL, - "bot" boolean NOT NULL, - "bio" varchar NOT NULL, - "system" boolean NOT NULL, - "nsfw_allowed" boolean NOT NULL, - "mfa_enabled" boolean NOT NULL, - "totp_secret" varchar, - "totp_last_ticket" varchar, - "created_at" datetime NOT NULL, - "premium_since" datetime, - "verified" boolean NOT NULL, - "disabled" boolean NOT NULL, - "deleted" boolean NOT NULL, - "email" varchar, - "flags" varchar NOT NULL, - "public_flags" integer NOT NULL, - "rights" bigint NOT NULL, - "data" text NOT NULL, - "fingerprints" text NOT NULL, - "extended_settings" text NOT NULL, - "notes" text NOT NULL, - "settingsId" varchar, - CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId") - ) - `); - await queryRunner.query(` - INSERT INTO "users"( - "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes", - "settingsId" - ) - SELECT "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes", - "settingsId" - FROM "temporary_users" - `); - await queryRunner.query(` - DROP TABLE "temporary_users" - `); - await queryRunner.query(` - ALTER TABLE "users" - RENAME TO "temporary_users" - `); - await queryRunner.query(` - CREATE TABLE "users" ( - "id" varchar PRIMARY KEY NOT NULL, - "username" varchar NOT NULL, - "discriminator" varchar NOT NULL, - "avatar" varchar, - "accent_color" integer, - "banner" varchar, - "phone" varchar, - "desktop" boolean NOT NULL, - "mobile" boolean NOT NULL, - "premium" boolean NOT NULL, - "premium_type" integer NOT NULL, - "bot" boolean NOT NULL, - "bio" varchar NOT NULL, - "system" boolean NOT NULL, - "nsfw_allowed" boolean NOT NULL, - "mfa_enabled" boolean NOT NULL, - "totp_secret" varchar, - "totp_last_ticket" varchar, - "created_at" datetime NOT NULL, - "premium_since" datetime, - "verified" boolean NOT NULL, - "disabled" boolean NOT NULL, - "deleted" boolean NOT NULL, - "email" varchar, - "flags" varchar NOT NULL, - "public_flags" integer NOT NULL, - "rights" bigint NOT NULL, - "data" text NOT NULL, - "fingerprints" text NOT NULL, - "extended_settings" text NOT NULL, - "notes" text NOT NULL - ) - `); - await queryRunner.query(` - INSERT INTO "users"( - "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes" - ) - SELECT "id", - "username", - "discriminator", - "avatar", - "accent_color", - "banner", - "phone", - "desktop", - "mobile", - "premium", - "premium_type", - "bot", - "bio", - "system", - "nsfw_allowed", - "mfa_enabled", - "totp_secret", - "totp_last_ticket", - "created_at", - "premium_since", - "verified", - "disabled", - "deleted", - "email", - "flags", - "public_flags", - "rights", - "data", - "fingerprints", - "extended_settings", - "notes" - FROM "temporary_users" - `); - await queryRunner.query(` - DROP TABLE "temporary_users" - `); - } - -} diff --git a/util/src/schemas/ActivitySchema.ts b/util/src/schemas/ActivitySchema.ts deleted file mode 100644 index e18f66c8..00000000 --- a/util/src/schemas/ActivitySchema.ts +++ /dev/null @@ -1,51 +0,0 @@ -import { Activity, Status } from "@fosscord/util"; - -export const ActivitySchema = { - afk: Boolean, - status: String, - $activities: [ - { - name: String, - type: Number, - $url: String, - $created_at: Date, - $timestamps: { - $start: Number, - $end: Number, - }, - $application_id: String, - $details: String, - $state: String, - $emoji: { - $name: String, - $id: String, - $animated: Boolean, - }, - $party: { - $id: String, - $size: [Number, Number], - }, - $assets: { - $large_image: String, - $large_text: String, - $small_image: String, - $small_text: String, - }, - $secrets: { - $join: String, - $spectate: String, - $match: String, - }, - $instance: Boolean, - $flags: String, - }, - ], - $since: Number, // unix time (in milliseconds) of when the client went idle, or null if the client is not idle -}; - -export interface ActivitySchema { - afk: boolean; - status: Status; - activities?: Activity[]; - since?: number; // unix time (in milliseconds) of when the client went idle, or null if the client is not idle -} diff --git a/util/src/schemas/BanCreateSchema.ts b/util/src/schemas/BanCreateSchema.ts deleted file mode 100644 index 64b02943..00000000 --- a/util/src/schemas/BanCreateSchema.ts +++ /dev/null @@ -1,5 +0,0 @@ - -export interface BanCreateSchema { - delete_message_days?: string; - reason?: string; -} diff --git a/util/src/schemas/BanModeratorSchema.ts b/util/src/schemas/BanModeratorSchema.ts deleted file mode 100644 index b497d319..00000000 --- a/util/src/schemas/BanModeratorSchema.ts +++ /dev/null @@ -1,8 +0,0 @@ - -export interface BanModeratorSchema { - id: string; - user_id: string; - guild_id: string; - executor_id: string; - reason?: string | undefined; -} diff --git a/util/src/schemas/BanRegistrySchema.ts b/util/src/schemas/BanRegistrySchema.ts deleted file mode 100644 index 661f934f..00000000 --- a/util/src/schemas/BanRegistrySchema.ts +++ /dev/null @@ -1,9 +0,0 @@ - -export interface BanRegistrySchema { - id: string; - user_id: string; - guild_id: string; - executor_id: string; - ip?: string; - reason?: string | undefined; -} diff --git a/util/src/schemas/BulkDeleteSchema.ts b/util/src/schemas/BulkDeleteSchema.ts deleted file mode 100644 index 26f88374..00000000 --- a/util/src/schemas/BulkDeleteSchema.ts +++ /dev/null @@ -1,4 +0,0 @@ - -export interface BulkDeleteSchema { - messages: string[]; -} diff --git a/util/src/schemas/ChannelModifySchema.ts b/util/src/schemas/ChannelModifySchema.ts deleted file mode 100644 index 3cfcf7d2..00000000 --- a/util/src/schemas/ChannelModifySchema.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { ChannelPermissionOverwriteType, ChannelType } from ".."; - - -export interface ChannelModifySchema { - /** - * @maxLength 100 - */ - name?: string; - type?: ChannelType; - topic?: string; - icon?: string | null; - bitrate?: number; - user_limit?: number; - rate_limit_per_user?: number; - position?: number; - permission_overwrites?: { - id: string; - type: ChannelPermissionOverwriteType; - allow: string; - deny: string; - }[]; - parent_id?: string; - id?: string; // is not used (only for guild create) - nsfw?: boolean; - rtc_region?: string; - default_auto_archive_duration?: number; - flags?: number; - default_thread_rate_limit_per_user?: number; -} \ No newline at end of file diff --git a/util/src/schemas/ChannelPermissionOverwriteSchema.ts b/util/src/schemas/ChannelPermissionOverwriteSchema.ts deleted file mode 100644 index fe9ba860..00000000 --- a/util/src/schemas/ChannelPermissionOverwriteSchema.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ChannelPermissionOverwrite } from "@fosscord/util"; - -// TODO: Only permissions your bot has in the guild or channel can be allowed/denied (unless your bot has a MANAGE_ROLES overwrite in the channel) - -export interface ChannelPermissionOverwriteSchema extends ChannelPermissionOverwrite { } diff --git a/util/src/schemas/ChannelReorderSchema.ts b/util/src/schemas/ChannelReorderSchema.ts deleted file mode 100644 index 3715f59e..00000000 --- a/util/src/schemas/ChannelReorderSchema.ts +++ /dev/null @@ -1 +0,0 @@ -export type ChannelReorderSchema = { id: string; position?: number; lock_permissions?: boolean; parent_id?: string }[]; \ No newline at end of file diff --git a/util/src/schemas/DmChannelCreateSchema.ts b/util/src/schemas/DmChannelCreateSchema.ts deleted file mode 100644 index d5afc6d7..00000000 --- a/util/src/schemas/DmChannelCreateSchema.ts +++ /dev/null @@ -1,5 +0,0 @@ - -export interface DmChannelCreateSchema { - name?: string; - recipients: string[]; -} diff --git a/util/src/schemas/EmojiCreateSchema.ts b/util/src/schemas/EmojiCreateSchema.ts deleted file mode 100644 index d50c419c..00000000 --- a/util/src/schemas/EmojiCreateSchema.ts +++ /dev/null @@ -1,7 +0,0 @@ - -export interface EmojiCreateSchema { - name?: string; - image: string; - require_colons?: boolean | null; - roles?: string[]; -} diff --git a/util/src/schemas/EmojiModifySchema.ts b/util/src/schemas/EmojiModifySchema.ts deleted file mode 100644 index 5529dbd5..00000000 --- a/util/src/schemas/EmojiModifySchema.ts +++ /dev/null @@ -1,5 +0,0 @@ - -export interface EmojiModifySchema { - name?: string; - roles?: string[]; -} diff --git a/util/src/schemas/GuildCreateSchema.ts b/util/src/schemas/GuildCreateSchema.ts deleted file mode 100644 index e4855119..00000000 --- a/util/src/schemas/GuildCreateSchema.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { ChannelModifySchema } from "."; - -export interface GuildCreateSchema { - /** - * @maxLength 100 - */ - name: string; - region?: string; - icon?: string | null; - channels?: ChannelModifySchema[]; - guild_template_code?: string; - system_channel_id?: string; - rules_channel_id?: string; -} diff --git a/util/src/schemas/GuildTemplateCreateSchema.ts b/util/src/schemas/GuildTemplateCreateSchema.ts deleted file mode 100644 index 1579001e..00000000 --- a/util/src/schemas/GuildTemplateCreateSchema.ts +++ /dev/null @@ -1,5 +0,0 @@ - -export interface GuildTemplateCreateSchema { - name: string; - avatar?: string | null; -} diff --git a/util/src/schemas/GuildUpdateSchema.ts b/util/src/schemas/GuildUpdateSchema.ts deleted file mode 100644 index 86527cf1..00000000 --- a/util/src/schemas/GuildUpdateSchema.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { GuildCreateSchema } from "."; - -export interface GuildUpdateSchema extends Omit { - name?: string; - banner?: string | null; - splash?: string | null; - description?: string; - features?: string[]; - verification_level?: number; - default_message_notifications?: number; - system_channel_flags?: number; - explicit_content_filter?: number; - public_updates_channel_id?: string; - afk_timeout?: number; - afk_channel_id?: string; - preferred_locale?: string; - premium_progress_bar_enabled?: boolean; -} diff --git a/util/src/schemas/GuildUpdateWelcomeScreenSchema.ts b/util/src/schemas/GuildUpdateWelcomeScreenSchema.ts deleted file mode 100644 index b1e36920..00000000 --- a/util/src/schemas/GuildUpdateWelcomeScreenSchema.ts +++ /dev/null @@ -1,11 +0,0 @@ - -export interface GuildUpdateWelcomeScreenSchema { - welcome_channels?: { - channel_id: string; - description: string; - emoji_id?: string; - emoji_name: string; - }[]; - enabled?: boolean; - description?: string; -} diff --git a/util/src/schemas/IdentifySchema.ts b/util/src/schemas/IdentifySchema.ts deleted file mode 100644 index 8f95c6a0..00000000 --- a/util/src/schemas/IdentifySchema.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { ActivitySchema } from "./ActivitySchema"; - -export const IdentifySchema = { - token: String, - $intents: BigInt, // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt - $properties: Object, - // { - // // discord uses $ in the property key for bots, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key - // $os: String, - // $os_arch: String, - // $browser: String, - // $device: String, - // $$os: String, - // $$browser: String, - // $$device: String, - // $browser_user_agent: String, - // $browser_version: String, - // $os_version: String, - // $referrer: String, - // $$referrer: String, - // $referring_domain: String, - // $$referring_domain: String, - // $referrer_current: String, - // $referring_domain_current: String, - // $release_channel: String, - // $client_build_number: Number, - // $client_event_source: String, - // $client_version: String, - // $system_locale: String, - // $window_manager: String, - // $distro: String, - // }, - $presence: ActivitySchema, - $compress: Boolean, - $large_threshold: Number, - $shard: [BigInt, BigInt], - $guild_subscriptions: Boolean, - $capabilities: Number, - $client_state: { - $guild_hashes: Object, - $highest_last_message_id: String, - $read_state_version: Number, - $user_guild_settings_version: Number, - $user_settings_version: undefined, - }, - $v: Number, - $version: Number, -}; - -export interface IdentifySchema { - token: string; - properties: { - // bruh discord really uses $ in the property key, so we need to double prefix it, because instanceOf treats $ (prefix) as a optional key - os?: string; - os_atch?: string; - browser?: string; - device?: string; - $os?: string; - $browser?: string; - $device?: string; - browser_user_agent?: string; - browser_version?: string; - os_version?: string; - referrer?: string; - referring_domain?: string; - referrer_current?: string; - referring_domain_current?: string; - release_channel?: "stable" | "dev" | "ptb" | "canary"; - client_build_number?: number; - client_event_source?: any; - client_version?: string; - system_locale?: string; - }; - intents?: bigint; // discord uses a Integer for bitfields we use bigints tho. | instanceOf will automatically convert the Number to a BigInt - presence?: ActivitySchema; - compress?: boolean; - large_threshold?: number; - shard?: [bigint, bigint]; - guild_subscriptions?: boolean; - capabilities?: number; - client_state?: { - guild_hashes?: any; - highest_last_message_id?: string; - read_state_version?: number; - user_guild_settings_version?: number; - user_settings_version?: number; - }; - v?: number; -} diff --git a/util/src/schemas/InviteCreateSchema.ts b/util/src/schemas/InviteCreateSchema.ts deleted file mode 100644 index 7f6af338..00000000 --- a/util/src/schemas/InviteCreateSchema.ts +++ /dev/null @@ -1,12 +0,0 @@ - -export interface InviteCreateSchema { - target_user_id?: string; - target_type?: string; - validate?: string; // ? what is this - max_age?: number; - max_uses?: number; - temporary?: boolean; - unique?: boolean; - target_user?: string; - target_user_type?: number; -} diff --git a/util/src/schemas/LazyRequestSchema.ts b/util/src/schemas/LazyRequestSchema.ts deleted file mode 100644 index 1fe658bb..00000000 --- a/util/src/schemas/LazyRequestSchema.ts +++ /dev/null @@ -1,19 +0,0 @@ -export interface LazyRequest { - guild_id: string; - channels?: Record; - activities?: boolean; - threads?: boolean; - typing?: true; - members?: any[]; - thread_member_lists?: any[]; -} - -export const LazyRequest = { - guild_id: String, - $activities: Boolean, - $channels: Object, - $typing: Boolean, - $threads: Boolean, - $members: [] as any[], - $thread_member_lists: [] as any[], -}; diff --git a/util/src/schemas/LoginSchema.ts b/util/src/schemas/LoginSchema.ts deleted file mode 100644 index 358019a8..00000000 --- a/util/src/schemas/LoginSchema.ts +++ /dev/null @@ -1,9 +0,0 @@ - -export interface LoginSchema { - login: string; - password: string; - undelete?: boolean; - captcha_key?: string; - login_source?: string; - gift_code_sku_id?: string; -} diff --git a/util/src/schemas/MemberChangeSchema.ts b/util/src/schemas/MemberChangeSchema.ts deleted file mode 100644 index a75c0ea0..00000000 --- a/util/src/schemas/MemberChangeSchema.ts +++ /dev/null @@ -1,4 +0,0 @@ - -export interface MemberChangeSchema { - roles?: string[]; -} diff --git a/util/src/schemas/MemberNickChangeSchema.ts b/util/src/schemas/MemberNickChangeSchema.ts deleted file mode 100644 index e6a6a007..00000000 --- a/util/src/schemas/MemberNickChangeSchema.ts +++ /dev/null @@ -1,4 +0,0 @@ - -export interface MemberNickChangeSchema { - nick: string; -} diff --git a/util/src/schemas/MessageAcknowledgeSchema.ts b/util/src/schemas/MessageAcknowledgeSchema.ts deleted file mode 100644 index 3f4eb2b6..00000000 --- a/util/src/schemas/MessageAcknowledgeSchema.ts +++ /dev/null @@ -1,8 +0,0 @@ -// TODO: public read receipts & privacy scoping -// TODO: send read state event to all channel members -// TODO: advance-only notification cursor - -export interface MessageAcknowledgeSchema { - manual?: boolean; - mention_count?: number; -} diff --git a/util/src/schemas/MessageCreateSchema.ts b/util/src/schemas/MessageCreateSchema.ts deleted file mode 100644 index 7b1cc7b9..00000000 --- a/util/src/schemas/MessageCreateSchema.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { Embed } from "@fosscord/util"; - - -export interface MessageCreateSchema { - type?: number; - content?: string; - nonce?: string; - channel_id?: string; - tts?: boolean; - flags?: string; - embeds?: Embed[]; - embed?: Embed; - // TODO: ^ embed is deprecated in favor of embeds (https://discord.com/developers/docs/resources/channel#message-object) - allowed_mentions?: { - parse?: string[]; - roles?: string[]; - users?: string[]; - replied_user?: boolean; - }; - message_reference?: { - message_id: string; - channel_id: string; - guild_id?: string; - fail_if_not_exists?: boolean; - }; - payload_json?: string; - file?: any; - /** - TODO: we should create an interface for attachments - TODO: OpenWAAO<-->attachment-style metadata conversion - **/ - attachments?: any[]; - sticker_ids?: string[]; -} diff --git a/util/src/schemas/MfaCodesSchema.ts b/util/src/schemas/MfaCodesSchema.ts deleted file mode 100644 index 53230841..00000000 --- a/util/src/schemas/MfaCodesSchema.ts +++ /dev/null @@ -1,5 +0,0 @@ - -export interface MfaCodesSchema { - password: string; - regenerate?: boolean; -} diff --git a/util/src/schemas/ModifyGuildStickerSchema.ts b/util/src/schemas/ModifyGuildStickerSchema.ts deleted file mode 100644 index 6f24e4ce..00000000 --- a/util/src/schemas/ModifyGuildStickerSchema.ts +++ /dev/null @@ -1,16 +0,0 @@ - -export interface ModifyGuildStickerSchema { - /** - * @minLength 2 - * @maxLength 30 - */ - name: string; - /** - * @maxLength 100 - */ - description?: string; - /** - * @maxLength 200 - */ - tags: string; -} diff --git a/util/src/schemas/PruneSchema.ts b/util/src/schemas/PruneSchema.ts deleted file mode 100644 index eebac763..00000000 --- a/util/src/schemas/PruneSchema.ts +++ /dev/null @@ -1,7 +0,0 @@ - -export interface PruneSchema { - /** - * @min 0 - */ - days: number; -} diff --git a/util/src/schemas/PurgeSchema.ts b/util/src/schemas/PurgeSchema.ts deleted file mode 100644 index 0eeef6f2..00000000 --- a/util/src/schemas/PurgeSchema.ts +++ /dev/null @@ -1,5 +0,0 @@ - -export interface PurgeSchema { - before: string; - after: string; -} diff --git a/util/src/schemas/RegisterSchema.ts b/util/src/schemas/RegisterSchema.ts deleted file mode 100644 index e53330d2..00000000 --- a/util/src/schemas/RegisterSchema.ts +++ /dev/null @@ -1,27 +0,0 @@ - -export interface RegisterSchema { - /** - * @minLength 2 - * @maxLength 32 - */ - username: string; - /** - * @minLength 1 - * @maxLength 72 - */ - password?: string; - consent: boolean; - /** - * @TJS-format email - */ - email?: string; - fingerprint?: string; - invite?: string; - /** - * @TJS-type string - */ - date_of_birth?: Date; // "2000-04-03" - gift_code_sku_id?: string; - captcha_key?: string; - promotional_email_opt_in?: boolean; -} diff --git a/util/src/schemas/RelationshipPostSchema.ts b/util/src/schemas/RelationshipPostSchema.ts deleted file mode 100644 index 40093700..00000000 --- a/util/src/schemas/RelationshipPostSchema.ts +++ /dev/null @@ -1,5 +0,0 @@ - -export interface RelationshipPostSchema { - discriminator: string; - username: string; -} diff --git a/util/src/schemas/RelationshipPutSchema.ts b/util/src/schemas/RelationshipPutSchema.ts deleted file mode 100644 index f46966e0..00000000 --- a/util/src/schemas/RelationshipPutSchema.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { RelationshipType } from "@fosscord/util"; - - -export interface RelationshipPutSchema { - type?: RelationshipType; -} diff --git a/util/src/schemas/RoleModifySchema.ts b/util/src/schemas/RoleModifySchema.ts deleted file mode 100644 index d08a5022..00000000 --- a/util/src/schemas/RoleModifySchema.ts +++ /dev/null @@ -1,11 +0,0 @@ - -export interface RoleModifySchema { - name?: string; - permissions?: string; - color?: number; - hoist?: boolean; // whether the role should be displayed separately in the sidebar - mentionable?: boolean; // whether the role should be mentionable - position?: number; - icon?: string; - unicode_emoji?: string; -} diff --git a/util/src/schemas/RolePositionUpdateSchema.ts b/util/src/schemas/RolePositionUpdateSchema.ts deleted file mode 100644 index 1019d504..00000000 --- a/util/src/schemas/RolePositionUpdateSchema.ts +++ /dev/null @@ -1,4 +0,0 @@ -export type RolePositionUpdateSchema = { - id: string; - position: number; -}[]; \ No newline at end of file diff --git a/util/src/schemas/TemplateCreateSchema.ts b/util/src/schemas/TemplateCreateSchema.ts deleted file mode 100644 index 72c19f68..00000000 --- a/util/src/schemas/TemplateCreateSchema.ts +++ /dev/null @@ -1,5 +0,0 @@ - -export interface TemplateCreateSchema { - name: string; - description?: string; -} diff --git a/util/src/schemas/TemplateModifySchema.ts b/util/src/schemas/TemplateModifySchema.ts deleted file mode 100644 index 2231a1d2..00000000 --- a/util/src/schemas/TemplateModifySchema.ts +++ /dev/null @@ -1,5 +0,0 @@ - -export interface TemplateModifySchema { - name: string; - description?: string; -} diff --git a/util/src/schemas/TotpDisableSchema.ts b/util/src/schemas/TotpDisableSchema.ts deleted file mode 100644 index b73db64e..00000000 --- a/util/src/schemas/TotpDisableSchema.ts +++ /dev/null @@ -1,4 +0,0 @@ - -export interface TotpDisableSchema { - code: string; -} diff --git a/util/src/schemas/TotpEnableSchema.ts b/util/src/schemas/TotpEnableSchema.ts deleted file mode 100644 index 44d9ebac..00000000 --- a/util/src/schemas/TotpEnableSchema.ts +++ /dev/null @@ -1,6 +0,0 @@ - -export interface TotpEnableSchema { - password: string; - code?: string; - secret?: string; -} diff --git a/util/src/schemas/TotpSchema.ts b/util/src/schemas/TotpSchema.ts deleted file mode 100644 index fe54735e..00000000 --- a/util/src/schemas/TotpSchema.ts +++ /dev/null @@ -1,7 +0,0 @@ - -export interface TotpSchema { - code: string; - ticket: string; - gift_code_sku_id?: string | null; - login_source?: string | null; -} diff --git a/util/src/schemas/UserModifySchema.ts b/util/src/schemas/UserModifySchema.ts deleted file mode 100644 index 659f5841..00000000 --- a/util/src/schemas/UserModifySchema.ts +++ /dev/null @@ -1,19 +0,0 @@ - -export interface UserModifySchema { - /** - * @minLength 1 - * @maxLength 100 - */ - username?: string; - discriminator?: string; - avatar?: string | null; - /** - * @maxLength 1024 - */ - bio?: string; - accent_color?: number; - banner?: string | null; - password?: string; - new_password?: string; - code?: string; -} diff --git a/util/src/schemas/UserSettingsSchema.ts b/util/src/schemas/UserSettingsSchema.ts deleted file mode 100644 index b497dff2..00000000 --- a/util/src/schemas/UserSettingsSchema.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { UserSettings } from "@fosscord/util"; - - -export interface UserSettingsSchema extends Partial { } diff --git a/util/src/schemas/VanityUrlSchema.ts b/util/src/schemas/VanityUrlSchema.ts deleted file mode 100644 index de32695a..00000000 --- a/util/src/schemas/VanityUrlSchema.ts +++ /dev/null @@ -1,8 +0,0 @@ - -export interface VanityUrlSchema { - /** - * @minLength 1 - * @maxLength 20 - */ - code?: string; -} diff --git a/util/src/schemas/VoiceStateUpdateSchema.ts b/util/src/schemas/VoiceStateUpdateSchema.ts deleted file mode 100644 index 02bb141b..00000000 --- a/util/src/schemas/VoiceStateUpdateSchema.ts +++ /dev/null @@ -1,18 +0,0 @@ -export const VoiceStateUpdateSchema = { - $guild_id: String, - $channel_id: String, - self_mute: Boolean, - self_deaf: Boolean, - self_video: Boolean, -}; - -//TODO need more testing when community guild and voice stage channel are working -export interface VoiceStateUpdateSchema { - channel_id: string; - guild_id?: string; - suppress?: boolean; - request_to_speak_timestamp?: Date; - self_mute?: boolean; - self_deaf?: boolean; - self_video?: boolean; -} \ No newline at end of file diff --git a/util/src/schemas/WebhookCreateSchema.ts b/util/src/schemas/WebhookCreateSchema.ts deleted file mode 100644 index 12ab1869..00000000 --- a/util/src/schemas/WebhookCreateSchema.ts +++ /dev/null @@ -1,8 +0,0 @@ -// TODO: webhooks -export interface WebhookCreateSchema { - /** - * @maxLength 80 - */ - name: string; - avatar?: string; -} diff --git a/util/src/schemas/WidgetModifySchema.ts b/util/src/schemas/WidgetModifySchema.ts deleted file mode 100644 index 390efc30..00000000 --- a/util/src/schemas/WidgetModifySchema.ts +++ /dev/null @@ -1,5 +0,0 @@ - -export interface WidgetModifySchema { - enabled: boolean; // whether the widget is enabled - channel_id: string; // the widget channel id -} diff --git a/util/src/schemas/index.ts b/util/src/schemas/index.ts deleted file mode 100644 index a15ab4b0..00000000 --- a/util/src/schemas/index.ts +++ /dev/null @@ -1,43 +0,0 @@ -export * from "./ActivitySchema"; -export * from "./BanCreateSchema"; -export * from "./BanModeratorSchema"; -export * from "./BanRegistrySchema"; -export * from "./BulkDeleteSchema"; -export * from "./ChannelModifySchema"; -export * from "./ChannelPermissionOverwriteSchema"; -export * from "./ChannelReorderSchema"; -export * from "./DmChannelCreateSchema"; -export * from "./EmojiCreateSchema"; -export * from "./EmojiModifySchema"; -export * from "./GuildCreateSchema"; -export * from "./GuildTemplateCreateSchema"; -export * from "./GuildUpdateSchema"; -export * from "./GuildUpdateWelcomeScreenSchema"; -export * from "./IdentifySchema"; -export * from "./InviteCreateSchema"; -export * from "./LazyRequestSchema"; -export * from "./LoginSchema"; -export * from "./MemberChangeSchema"; -export * from "./MemberNickChangeSchema"; -export * from "./MessageAcknowledgeSchema"; -export * from "./MessageCreateSchema"; -export * from "./MfaCodesSchema"; -export * from "./ModifyGuildStickerSchema"; -export * from "./PruneSchema"; -export * from "./PurgeSchema"; -export * from "./RegisterSchema"; -export * from "./RelationshipPostSchema"; -export * from "./RelationshipPutSchema"; -export * from "./RoleModifySchema"; -export * from "./RolePositionUpdateSchema"; -export * from "./TemplateCreateSchema"; -export * from "./TemplateModifySchema"; -export * from "./TotpDisableSchema"; -export * from "./TotpEnableSchema"; -export * from "./TotpSchema"; -export * from "./UserModifySchema"; -export * from "./UserSettingsSchema"; -export * from "./VanityUrlSchema"; -export * from "./VoiceStateUpdateSchema"; -export * from "./WebhookCreateSchema"; -export * from "./WidgetModifySchema"; diff --git a/util/src/util/ApiError.ts b/util/src/util/ApiError.ts deleted file mode 100644 index f1a9b4f6..00000000 --- a/util/src/util/ApiError.ts +++ /dev/null @@ -1,28 +0,0 @@ -export class ApiError extends Error { - constructor( - readonly message: string, - public readonly code: number, - public readonly httpStatus: number = 400, - public readonly defaultParams?: string[] - ) { - super(message); - } - - withDefaultParams(): ApiError { - if (this.defaultParams) - return new ApiError(applyParamsToString(this.message, this.defaultParams), this.code, this.httpStatus); - return this; - } - - withParams(...params: (string | number)[]): ApiError { - return new ApiError(applyParamsToString(this.message, params), this.code, this.httpStatus); - } -} - -export function applyParamsToString(s: string, params: (string | number)[]): string { - let newString = s; - params.forEach((a) => { - newString = newString.replace("{}", "" + a); - }); - return newString; -} diff --git a/util/src/util/Array.ts b/util/src/util/Array.ts deleted file mode 100644 index 5a45d1b5..00000000 --- a/util/src/util/Array.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function containsAll(arr: any[], target: any[]) { - return target.every((v) => arr.includes(v)); -} diff --git a/util/src/util/AutoUpdate.ts b/util/src/util/AutoUpdate.ts deleted file mode 100644 index 7d020106..00000000 --- a/util/src/util/AutoUpdate.ts +++ /dev/null @@ -1,83 +0,0 @@ -import fetch from "node-fetch"; -import ProxyAgent from 'proxy-agent'; -import readline from "readline"; -import fs from "fs/promises"; -import path from "path"; - -const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout, -}); - -export function enableAutoUpdate(opts: { - checkInterval: number | boolean; - packageJsonLink: string; - path: string; - downloadUrl: string; - downloadType?: "zip"; -}) { - if (!opts.checkInterval) return; - let interval = 1000 * 60 * 60 * 24; - if (typeof opts.checkInterval === "number") opts.checkInterval = 1000 * interval; - - const i = setInterval(async () => { - const currentVersion = await getCurrentVersion(opts.path); - const latestVersion = await getLatestVersion(opts.packageJsonLink); - if (currentVersion !== latestVersion) { - clearInterval(i); - console.log(`[Auto Update] Current version (${currentVersion}) is out of date, updating ...`); - await download(opts.downloadUrl, opts.path); - } - }, interval); - setImmediate(async () => { - const currentVersion = await getCurrentVersion(opts.path); - const latestVersion = await getLatestVersion(opts.packageJsonLink); - if (currentVersion !== latestVersion) { - rl.question( - `[Auto Update] Current version (${currentVersion}) is out of date, would you like to update? (yes/no)`, - (answer) => { - if (answer.toBoolean()) { - console.log(`[Auto update] updating ...`); - download(opts.downloadUrl, opts.path); - } else { - console.log(`[Auto update] aborted`); - } - } - ); - } - }); -} - -async function download(url: string, dir: string) { - try { - // TODO: use file stream instead of buffer (to prevent crash because of high memory usage for big files) - // TODO check file hash - const agent = new ProxyAgent(); - const response = await fetch(url, { agent }); - const buffer = await response.buffer(); - const tempDir = await fs.mkdtemp("fosscord"); - fs.writeFile(path.join(tempDir, "Fosscord.zip"), buffer); - } catch (error) { - console.error(`[Auto Update] download failed`, error); - } -} - -async function getCurrentVersion(dir: string) { - try { - const content = await fs.readFile(path.join(dir, "package.json"), { encoding: "utf8" }); - return JSON.parse(content).version; - } catch (error) { - throw new Error("[Auto update] couldn't get current version in " + dir); - } -} - -async function getLatestVersion(url: string) { - try { - const agent = new ProxyAgent(); - const response = await fetch(url, { agent }); - const content: any = await response.json(); - return content.version; - } catch (error) { - throw new Error("[Auto update] check failed for " + url); - } -} diff --git a/util/src/util/BitField.ts b/util/src/util/BitField.ts deleted file mode 100644 index 9bdbf6d7..00000000 --- a/util/src/util/BitField.ts +++ /dev/null @@ -1,150 +0,0 @@ -"use strict"; - -// https://github.com/discordjs/discord.js/blob/master/src/util/BitField.js -// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah - -export type BitFieldResolvable = number | BigInt | BitField | string | BitFieldResolvable[]; - -/** - * Data structure that makes it easy to interact with a bitfield. - */ -export class BitField { - public bitfield: bigint = BigInt(0); - - public static FLAGS: Record = {}; - - constructor(bits: BitFieldResolvable = 0) { - this.bitfield = BitField.resolve.call(this, bits); - } - - /** - * Checks whether the bitfield has a bit, or any of multiple bits. - */ - any(bit: BitFieldResolvable): boolean { - return (this.bitfield & BitField.resolve.call(this, bit)) !== BigInt(0); - } - - /** - * Checks if this bitfield equals another - */ - equals(bit: BitFieldResolvable): boolean { - return this.bitfield === BitField.resolve.call(this, bit); - } - - /** - * Checks whether the bitfield has a bit, or multiple bits. - */ - has(bit: BitFieldResolvable): boolean { - if (Array.isArray(bit)) return bit.every((p) => this.has(p)); - const BIT = BitField.resolve.call(this, bit); - return (this.bitfield & BIT) === BIT; - } - - /** - * Gets all given bits that are missing from the bitfield. - */ - missing(bits: BitFieldResolvable) { - if (!Array.isArray(bits)) bits = new BitField(bits).toArray(); - return bits.filter((p) => !this.has(p)); - } - - /** - * Freezes these bits, making them immutable. - */ - freeze(): Readonly { - return Object.freeze(this); - } - - /** - * Adds bits to these ones. - * @param {...BitFieldResolvable} [bits] Bits to add - * @returns {BitField} These bits or new BitField if the instance is frozen. - */ - add(...bits: BitFieldResolvable[]): BitField { - let total = BigInt(0); - for (const bit of bits) { - total |= BitField.resolve.call(this, bit); - } - if (Object.isFrozen(this)) return new BitField(this.bitfield | total); - this.bitfield |= total; - return this; - } - - /** - * Removes bits from these. - * @param {...BitFieldResolvable} [bits] Bits to remove - */ - remove(...bits: BitFieldResolvable[]) { - let total = BigInt(0); - for (const bit of bits) { - total |= BitField.resolve.call(this, bit); - } - if (Object.isFrozen(this)) return new BitField(this.bitfield & ~total); - this.bitfield &= ~total; - return this; - } - - /** - * Gets an object mapping field names to a {@link boolean} indicating whether the - * bit is available. - * @param {...*} hasParams Additional parameters for the has method, if any - */ - serialize() { - const serialized: Record = {}; - for (const [flag, bit] of Object.entries(BitField.FLAGS)) serialized[flag] = this.has(bit); - return serialized; - } - - /** - * Gets an {@link Array} of bitfield names based on the bits available. - */ - toArray(): string[] { - return Object.keys(BitField.FLAGS).filter((bit) => this.has(bit)); - } - - toJSON() { - return this.bitfield; - } - - valueOf() { - return this.bitfield; - } - - *[Symbol.iterator]() { - yield* this.toArray(); - } - - /** - * Data that can be resolved to give a bitfield. This can be: - * * A bit number (this can be a number literal or a value taken from {@link BitField.FLAGS}) - * * An instance of BitField - * * An Array of BitFieldResolvable - * @typedef {number|BitField|BitFieldResolvable[]} BitFieldResolvable - */ - - /** - * Resolves bitfields to their numeric form. - * @param {BitFieldResolvable} [bit=0] - bit(s) to resolve - * @returns {number} - */ - static resolve(bit: BitFieldResolvable = BigInt(0)): bigint { - // @ts-ignore - const FLAGS = this.FLAGS || this.constructor?.FLAGS; - if ((typeof bit === "number" || typeof bit === "bigint") && bit >= BigInt(0)) return BigInt(bit); - if (bit instanceof BitField) return bit.bitfield; - if (Array.isArray(bit)) { - // @ts-ignore - const resolve = this.constructor?.resolve || this.resolve; - return bit.map((p) => resolve.call(this, p)).reduce((prev, p) => BigInt(prev) | BigInt(p), BigInt(0)); - } - if (typeof bit === "string" && typeof FLAGS[bit] !== "undefined") return FLAGS[bit]; - if (bit === "0") return BigInt(0); //special case: 0 - if (typeof bit === "string") return BigInt(bit); //last ditch effort... - if(/--debug|--inspect/.test(process.execArgv.join(' '))) debugger; //if you're here, we have an invalid bitfield... if bit is 0, thats fine, I guess... - throw new RangeError("BITFIELD_INVALID: " + bit); - } -} - -export function BitFlag(x: bigint | number) { - return BigInt(1) << BigInt(x); -} diff --git a/util/src/util/Categories.ts b/util/src/util/Categories.ts deleted file mode 100644 index a3c69da7..00000000 --- a/util/src/util/Categories.ts +++ /dev/null @@ -1 +0,0 @@ -//TODO: populate default discord categories + init, get and set methods \ No newline at end of file diff --git a/util/src/util/Config.ts b/util/src/util/Config.ts deleted file mode 100644 index e0fb2a81..00000000 --- a/util/src/util/Config.ts +++ /dev/null @@ -1,94 +0,0 @@ -import { ConfigEntity } from "../entities/Config"; -import fs from "fs"; -import { ConfigValue } from "../config"; -import { OrmUtils } from "."; - -// TODO: yaml instead of json -const overridePath = process.env.CONFIG_PATH ?? ""; - -let config: ConfigValue; -let pairs: ConfigEntity[]; - -// TODO: use events to inform about config updates -// Config keys are separated with _ - -export const Config = { - init: async function init() { - if (config) return config; - console.log('[Config] Loading configuration...') - pairs = await ConfigEntity.find(); - config = pairsToConfig(pairs); - //config = (config || {}).merge(new ConfigValue()); - config = OrmUtils.mergeDeep(new ConfigValue(), config) - - if(process.env.CONFIG_PATH) - try { - const overrideConfig = JSON.parse(fs.readFileSync(overridePath, { encoding: "utf8" })); - config = overrideConfig.merge(config); - } catch (error) { - fs.writeFileSync(overridePath, JSON.stringify(config, null, 4)); - } - - - return this.set(config); - }, - get: function get() { - if(!config) { - if(/--debug|--inspect/.test(process.execArgv.join(' '))) - console.log("Oops.. trying to get config without config existing... Returning defaults... (Is the database still initialising?)"); - return new ConfigValue(); - } - return config; - }, - set: function set(val: Partial) { - if (!config || !val) return; - config = val.merge(config); - - return applyConfig(config); - }, -}; - -function applyConfig(val: ConfigValue) { - async function apply(obj: any, key = ""): Promise { - if (typeof obj === "object" && obj !== null) - return Promise.all(Object.keys(obj).map((k) => apply(obj[k], key ? `${key}_${k}` : k))); - - let pair = pairs.find((x) => x.key === key); - if (!pair) pair = new ConfigEntity(); - - pair.key = key; - pair.value = obj; - return pair.save(); - } - if(process.env.CONFIG_PATH) { - if(/--debug|--inspect/.test(process.execArgv.join(' '))) - console.log(`Writing config: ${process.env.CONFIG_PATH}`) - fs.writeFileSync(overridePath, JSON.stringify(val, null, 4)); - } - - return apply(val); -} - -function pairsToConfig(pairs: ConfigEntity[]) { - let value: any = {}; - - pairs.forEach((p) => { - const keys = p.key.split("_"); - let obj = value; - let prev = ""; - let prevObj = obj; - let i = 0; - - for (const key of keys) { - if (!isNaN(Number(key)) && !prevObj[prev]?.length) prevObj[prev] = obj = []; - if (i++ === keys.length - 1) obj[key] = p.value; - else if (!obj[key]) obj[key] = {}; - - prev = key; - prevObj = obj; - obj = obj[key]; - } - }); - - return value as ConfigValue; -} diff --git a/util/src/util/Constants.ts b/util/src/util/Constants.ts deleted file mode 100644 index a5d3fcd2..00000000 --- a/util/src/util/Constants.ts +++ /dev/null @@ -1,792 +0,0 @@ -import { ApiError } from "./ApiError"; - -export const WSCodes = { - 1000: "WS_CLOSE_REQUESTED", - 4004: "TOKEN_INVALID", - 4010: "SHARDING_INVALID", - 4011: "SHARDING_REQUIRED", - 4013: "INVALID_INTENTS", - 4014: "DISALLOWED_INTENTS", -}; - -/** - * The current status of the client. Here are the available statuses: - * * READY: 0 - * * CONNECTING: 1 - * * RECONNECTING: 2 - * * IDLE: 3 - * * NEARLY: 4 - * * DISCONNECTED: 5 - * * WAITING_FOR_GUILDS: 6 - * * IDENTIFYING: 7 - * * RESUMING: 8 - * @typedef {number} Status - */ -export const WsStatus = { - READY: 0, - CONNECTING: 1, - RECONNECTING: 2, - IDLE: 3, - NEARLY: 4, - DISCONNECTED: 5, - WAITING_FOR_GUILDS: 6, - IDENTIFYING: 7, - RESUMING: 8, -}; - -/** - * The current status of a voice connection. Here are the available statuses: - * * CONNECTED: 0 - * * CONNECTING: 1 - * * AUTHENTICATING: 2 - * * RECONNECTING: 3 - * * DISCONNECTED: 4 - * @typedef {number} VoiceStatus - */ -export const VoiceStatus = { - CONNECTED: 0, - CONNECTING: 1, - AUTHENTICATING: 2, - RECONNECTING: 3, - DISCONNECTED: 4, -}; - -export const OPCodes = { - DISPATCH: 0, - HEARTBEAT: 1, - IDENTIFY: 2, - STATUS_UPDATE: 3, - VOICE_STATE_UPDATE: 4, - VOICE_GUILD_PING: 5, - RESUME: 6, - RECONNECT: 7, - REQUEST_GUILD_MEMBERS: 8, - INVALID_SESSION: 9, - HELLO: 10, - HEARTBEAT_ACK: 11, -}; - -export const VoiceOPCodes = { - IDENTIFY: 0, - SELECT_PROTOCOL: 1, - READY: 2, - HEARTBEAT: 3, - SESSION_DESCRIPTION: 4, - SPEAKING: 5, - HELLO: 8, - CLIENT_CONNECT: 12, - CLIENT_DISCONNECT: 13, -}; - -export const Events = { - RATE_LIMIT: "rateLimit", - CLIENT_READY: "ready", - GUILD_CREATE: "guildCreate", - GUILD_DELETE: "guildDelete", - GUILD_UPDATE: "guildUpdate", - GUILD_UNAVAILABLE: "guildUnavailable", - GUILD_AVAILABLE: "guildAvailable", - GUILD_MEMBER_ADD: "guildMemberAdd", - GUILD_MEMBER_REMOVE: "guildMemberRemove", - GUILD_MEMBER_UPDATE: "guildMemberUpdate", - GUILD_MEMBER_AVAILABLE: "guildMemberAvailable", - GUILD_MEMBER_SPEAKING: "guildMemberSpeaking", - GUILD_MEMBERS_CHUNK: "guildMembersChunk", - GUILD_INTEGRATIONS_UPDATE: "guildIntegrationsUpdate", - GUILD_ROLE_CREATE: "roleCreate", - GUILD_ROLE_DELETE: "roleDelete", - INVITE_CREATE: "inviteCreate", - INVITE_DELETE: "inviteDelete", - GUILD_ROLE_UPDATE: "roleUpdate", - GUILD_EMOJI_CREATE: "emojiCreate", - GUILD_EMOJI_DELETE: "emojiDelete", - GUILD_EMOJI_UPDATE: "emojiUpdate", - GUILD_BAN_ADD: "guildBanAdd", - GUILD_BAN_REMOVE: "guildBanRemove", - CHANNEL_CREATE: "channelCreate", - CHANNEL_DELETE: "channelDelete", - CHANNEL_UPDATE: "channelUpdate", - CHANNEL_PINS_UPDATE: "channelPinsUpdate", - MESSAGE_CREATE: "message", - MESSAGE_DELETE: "messageDelete", - MESSAGE_UPDATE: "messageUpdate", - MESSAGE_BULK_DELETE: "messageDeleteBulk", - MESSAGE_REACTION_ADD: "messageReactionAdd", - MESSAGE_REACTION_REMOVE: "messageReactionRemove", - MESSAGE_REACTION_REMOVE_ALL: "messageReactionRemoveAll", - MESSAGE_REACTION_REMOVE_EMOJI: "messageReactionRemoveEmoji", - USER_UPDATE: "userUpdate", - PRESENCE_UPDATE: "presenceUpdate", - VOICE_SERVER_UPDATE: "voiceServerUpdate", - VOICE_STATE_UPDATE: "voiceStateUpdate", - VOICE_BROADCAST_SUBSCRIBE: "subscribe", - VOICE_BROADCAST_UNSUBSCRIBE: "unsubscribe", - TYPING_START: "typingStart", - TYPING_STOP: "typingStop", - WEBHOOKS_UPDATE: "webhookUpdate", - ERROR: "error", - WARN: "warn", - DEBUG: "debug", - SHARD_DISCONNECT: "shardDisconnect", - SHARD_ERROR: "shardError", - SHARD_RECONNECTING: "shardReconnecting", - SHARD_READY: "shardReady", - SHARD_RESUME: "shardResume", - INVALIDATED: "invalidated", - RAW: "raw", -}; - -export const ShardEvents = { - CLOSE: "close", - DESTROYED: "destroyed", - INVALID_SESSION: "invalidSession", - READY: "ready", - RESUMED: "resumed", - ALL_READY: "allReady", -}; - -/** - * The type of Structure allowed to be a partial: - * * USER - * * CHANNEL (only affects DMChannels) - * * GUILD_MEMBER - * * MESSAGE - * * REACTION - * Partials require you to put checks in place when handling data, read the Partials topic listed in the - * sidebar for more information. - * @typedef {string} PartialType - */ -export const PartialTypes = keyMirror(["USER", "CHANNEL", "GUILD_MEMBER", "MESSAGE", "REACTION"]); - -/** - * The type of a websocket message event, e.g. `MESSAGE_CREATE`. Here are the available events: - * * READY - * * RESUMED - * * GUILD_CREATE - * * GUILD_DELETE - * * GUILD_UPDATE - * * INVITE_CREATE - * * INVITE_DELETE - * * GUILD_MEMBER_ADD - * * GUILD_MEMBER_REMOVE - * * GUILD_MEMBER_UPDATE - * * GUILD_MEMBERS_CHUNK - * * GUILD_INTEGRATIONS_UPDATE - * * GUILD_ROLE_CREATE - * * GUILD_ROLE_DELETE - * * GUILD_ROLE_UPDATE - * * GUILD_BAN_ADD - * * GUILD_BAN_REMOVE - * * GUILD_EMOJIS_UPDATE - * * CHANNEL_CREATE - * * CHANNEL_DELETE - * * CHANNEL_UPDATE - * * CHANNEL_PINS_UPDATE - * * MESSAGE_CREATE - * * MESSAGE_DELETE - * * MESSAGE_UPDATE - * * MESSAGE_DELETE_BULK - * * MESSAGE_REACTION_ADD - * * MESSAGE_REACTION_REMOVE - * * MESSAGE_REACTION_REMOVE_ALL - * * MESSAGE_REACTION_REMOVE_EMOJI - * * USER_UPDATE - * * PRESENCE_UPDATE - * * TYPING_START - * * VOICE_STATE_UPDATE - * * VOICE_SERVER_UPDATE - * * WEBHOOKS_UPDATE - * @typedef {string} WSEventType - */ -export const WSEvents = keyMirror([ - "READY", - "RESUMED", - "GUILD_CREATE", - "GUILD_DELETE", - "GUILD_UPDATE", - "INVITE_CREATE", - "INVITE_DELETE", - "GUILD_MEMBER_ADD", - "GUILD_MEMBER_REMOVE", - "GUILD_MEMBER_UPDATE", - "GUILD_MEMBERS_CHUNK", - "GUILD_INTEGRATIONS_UPDATE", - "GUILD_ROLE_CREATE", - "GUILD_ROLE_DELETE", - "GUILD_ROLE_UPDATE", - "GUILD_BAN_ADD", - "GUILD_BAN_REMOVE", - "GUILD_EMOJIS_UPDATE", - "CHANNEL_CREATE", - "CHANNEL_DELETE", - "CHANNEL_UPDATE", - "CHANNEL_PINS_UPDATE", - "MESSAGE_CREATE", - "MESSAGE_DELETE", - "MESSAGE_UPDATE", - "MESSAGE_DELETE_BULK", - "MESSAGE_REACTION_ADD", - "MESSAGE_REACTION_REMOVE", - "MESSAGE_REACTION_REMOVE_ALL", - "MESSAGE_REACTION_REMOVE_EMOJI", - "USER_UPDATE", - "PRESENCE_UPDATE", - "TYPING_START", - "VOICE_STATE_UPDATE", - "VOICE_SERVER_UPDATE", - "WEBHOOKS_UPDATE", -]); - -/** - * The type of a message, e.g. `DEFAULT`. Here are the available types: - * * DEFAULT - * * RECIPIENT_ADD - * * RECIPIENT_REMOVE - * * CALL - * * CHANNEL_NAME_CHANGE - * * CHANNEL_ICON_CHANGE - * * PINS_ADD - * * GUILD_MEMBER_JOIN - * * USER_PREMIUM_GUILD_SUBSCRIPTION - * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1 - * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2 - * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3 - * * CHANNEL_FOLLOW_ADD - * * GUILD_DISCOVERY_DISQUALIFIED - * * GUILD_DISCOVERY_REQUALIFIED - * * REPLY - * @typedef {string} MessageType - */ -export const MessageTypes = [ - "DEFAULT", - "RECIPIENT_ADD", - "RECIPIENT_REMOVE", - "CALL", - "CHANNEL_NAME_CHANGE", - "CHANNEL_ICON_CHANGE", - "PINS_ADD", - "GUILD_MEMBER_JOIN", - "USER_PREMIUM_GUILD_SUBSCRIPTION", - "USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1", - "USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2", - "USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3", - "CHANNEL_FOLLOW_ADD", - null, - "GUILD_DISCOVERY_DISQUALIFIED", - "GUILD_DISCOVERY_REQUALIFIED", - null, - null, - null, - "REPLY", -]; - -/** - * The types of messages that are `System`. The available types are `MessageTypes` excluding: - * * DEFAULT - * * REPLY - * @typedef {string} SystemMessageType - */ -export const SystemMessageTypes = MessageTypes.filter( - (type: string | null) => type && type !== "DEFAULT" && type !== "REPLY" -); - -/** - * Bots cannot set a `CUSTOM_STATUS`, it is only for custom statuses received from users - * The type of an activity of a users presence, e.g. `PLAYING`. Here are the available types: - * * PLAYING - * * STREAMING - * * LISTENING - * * WATCHING - * * CUSTOM_STATUS - * * COMPETING - * @typedef {string} ActivityType - */ -export const ActivityTypes = ["PLAYING", "STREAMING", "LISTENING", "WATCHING", "CUSTOM_STATUS", "COMPETING"]; - -export const ChannelTypes = { - TEXT: 0, - DM: 1, - VOICE: 2, - GROUP: 3, - CATEGORY: 4, - NEWS: 5, - STORE: 6, -}; - -export const ClientApplicationAssetTypes = { - SMALL: 1, - BIG: 2, -}; - -export const Colors = { - DEFAULT: 0x000000, - WHITE: 0xffffff, - AQUA: 0x1abc9c, - GREEN: 0x2ecc71, - BLUE: 0x3498db, - YELLOW: 0xffff00, - PURPLE: 0x9b59b6, - LUMINOUS_VIVID_PINK: 0xe91e63, - GOLD: 0xf1c40f, - ORANGE: 0xe67e22, - RED: 0xe74c3c, - GREY: 0x95a5a6, - NAVY: 0x34495e, - DARK_AQUA: 0x11806a, - DARK_GREEN: 0x1f8b4c, - DARK_BLUE: 0x206694, - DARK_PURPLE: 0x71368a, - DARK_VIVID_PINK: 0xad1457, - DARK_GOLD: 0xc27c0e, - DARK_ORANGE: 0xa84300, - DARK_RED: 0x992d22, - DARK_GREY: 0x979c9f, - DARKER_GREY: 0x7f8c8d, - LIGHT_GREY: 0xbcc0c0, - DARK_NAVY: 0x2c3e50, - BLURPLE: 0x7289da, - GREYPLE: 0x99aab5, - DARK_BUT_NOT_BLACK: 0x2c2f33, - NOT_QUITE_BLACK: 0x23272a, -}; - -/** - * The value set for the explicit content filter levels for a guild: - * * DISABLED - * * MEMBERS_WITHOUT_ROLES - * * ALL_MEMBERS - * @typedef {string} ExplicitContentFilterLevel - */ -export const ExplicitContentFilterLevels = ["DISABLED", "MEMBERS_WITHOUT_ROLES", "ALL_MEMBERS"]; - -/** - * The value set for the verification levels for a guild: - * * NONE - * * LOW - * * MEDIUM - * * HIGH - * * VERY_HIGH - * @typedef {string} VerificationLevel - */ -export const VerificationLevels = ["NONE", "LOW", "MEDIUM", "HIGH", "VERY_HIGH"]; - -/** - * An error encountered while performing an API request. Here are the potential errors: - * * GENERAL_ERROR - * * UNKNOWN_ACCOUNT - * * UNKNOWN_APPLICATION - * * UNKNOWN_CHANNEL - * * UNKNOWN_GUILD - * * UNKNOWN_INTEGRATION - * * UNKNOWN_INVITE - * * UNKNOWN_MEMBER - * * UNKNOWN_MESSAGE - * * UNKNOWN_OVERWRITE - * * UNKNOWN_PROVIDER - * * UNKNOWN_ROLE - * * UNKNOWN_TOKEN - * * UNKNOWN_USER - * * UNKNOWN_EMOJI - * * UNKNOWN_WEBHOOK - * * UNKNOWN_WEBHOOK_SERVICE - * * UNKNOWN_SESSION - * * UNKNOWN_BAN - * * UNKNOWN_SKU - * * UNKNOWN_STORE_LISTING - * * UNKNOWN_ENTITLEMENT - * * UNKNOWN_BUILD - * * UNKNOWN_LOBBY - * * UNKNOWN_BRANCH - * * UNKNOWN_STORE_DIRECTORY_LAYOUT - * * UNKNOWN_REDISTRIBUTABLE - * * UNKNOWN_GIFT_CODE - * * UNKNOWN_STREAM - * * UNKNOWN_PREMIUM_SERVER_SUBSCRIBE_COOLDOWN - * * UNKNOWN_GUILD_TEMPLATE - * * UNKNOWN_DISCOVERABLE_SERVER_CATEGORY - * * UNKNOWN_STICKER - * * UNKNOWN_INTERACTION - * * UNKNOWN_APPLICATION_COMMAND - * * UNKNOWN_APPLICATION_COMMAND_PERMISSIONS - * * UNKNOWN_STAGE_INSTANCE - * * UNKNOWN_GUILD_MEMBER_VERIFICATION_FORM - * * UNKNOWN_GUILD_WELCOME_SCREEN - * * UNKNOWN_GUILD_SCHEDULED_EVENT - * * UNKNOWN_GUILD_SCHEDULED_EVENT_USER - * * BOT_PROHIBITED_ENDPOINT - * * BOT_ONLY_ENDPOINT - * * EXPLICIT_CONTENT_CANNOT_BE_SENT_TO_RECIPIENT - * * ACTION_NOT_AUTHORIZED_ON_APPLICATION - * * SLOWMODE_RATE_LIMIT - * * ONLY_OWNER - * * ANNOUNCEMENT_RATE_LIMITS - * * CHANNEL_WRITE_RATELIMIT - * * WORDS_NOT_ALLOWED - * * GUILD_PREMIUM_LEVEL_TOO_LOW - * * MAXIMUM_GUILDS - * * MAXIMUM_FRIENDS - * * MAXIMUM_PINS - * * MAXIMUM_NUMBER_OF_RECIPIENTS_REACHED - * * MAXIMUM_ROLES - * * MAXIMUM_WEBHOOKS - * * MAXIMUM_NUMBER_OF_EMOJIS_REACHED - * * MAXIMUM_REACTIONS - * * MAXIMUM_CHANNELS - * * MAXIMUM_ATTACHMENTS - * * MAXIMUM_INVITES - * * MAXIMUM_ANIMATED_EMOJIS - * * MAXIMUM_SERVER_MEMBERS - * * MAXIMUM_SERVER_CATEGORIES - * * GUILD_ALREADY_HAS_TEMPLATE - * * MAXIMUM_THREAD_PARTICIPANTS - * * MAXIMUM_BANS_FOR_NON_GUILD_MEMBERS - * * MAXIMUM_BANS_FETCHES - * * MAXIMUM_STICKERS - * * MAXIMUM_PRUNE_REQUESTS - * * UNAUTHORIZED - * * ACCOUNT_VERIFICATION_REQUIRED - * * OPENING_DIRECT_MESSAGES_TOO_FAST - * * REQUEST_ENTITY_TOO_LARGE - * * FEATURE_TEMPORARILY_DISABLED - * * USER_BANNED - * * TARGET_USER_IS_NOT_CONNECTED_TO_VOICE - * * ALREADY_CROSSPOSTED - * * APPLICATION_COMMAND_ALREADY_EXISTS - * * MISSING_ACCESS - * * INVALID_ACCOUNT_TYPE - * * CANNOT_EXECUTE_ON_DM - * * EMBED_DISABLED - * * CANNOT_EDIT_MESSAGE_BY_OTHER - * * CANNOT_SEND_EMPTY_MESSAGE - * * CANNOT_MESSAGE_USER - * * CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL - * * CHANNEL_VERIFICATION_LEVEL_TOO_HIGH - * * OAUTH2_APPLICATION_BOT_ABSENT - * * MAXIMUM_OAUTH2_APPLICATIONS - * * INVALID_OAUTH_STATE - * * MISSING_PERMISSIONS - * * INVALID_AUTHENTICATION_TOKEN - * * NOTE_TOO_LONG - * * INVALID_BULK_DELETE_QUANTITY - * * CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL - * * INVALID_OR_TAKEN_INVITE_CODE - * * CANNOT_EXECUTE_ON_SYSTEM_MESSAGE - * * CANNOT_EXECUTE_ON_THIS_CHANNEL_TYPE - * * INVALID_OAUTH_TOKEN - * * MISSING_REQUIRED_OAUTH2_SCOPE - * * INVALID_WEBHOOK_TOKEN_PROVIDED - * * INVALID_ROLE - * * INVALID_RECIPIENT - * * BULK_DELETE_MESSAGE_TOO_OLD - * * INVALID_FORM_BODY - * * INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT - * * INVALID_API_VERSION - * * FILE_EXCEEDS_MAXIMUM_SIZE - * * INVALID_FILE_UPLOADED - * * CANNOT_SELF_REDEEM_GIFT - * * PAYMENT_SOURCE_REQUIRED - * * CANNOT_DELETE_COMMUNITY_REQUIRED_CHANNEL - * * INVALID_STICKER_SENT - * * CANNOT_EDIT_ARCHIVED_THREAD - * * INVALID_THREAD_NOTIFICATION_SETTINGS - * * BEFORE_EARLIER_THAN_THREAD_CREATION_DATE - * * SERVER_NOT_AVAILABLE_IN_YOUR_LOCATION - * * SERVER_NEEDS_MONETIZATION_ENABLED - * * TWO_FACTOR_REQUIRED - * * NO_USERS_WITH_DISCORDTAG_EXIST - * * REACTION_BLOCKED - * * RESOURCE_OVERLOADED - * * STAGE_ALREADY_OPEN - * * THREAD_ALREADY_CREATED_FOR_THIS_MESSAGE - * * THREAD_IS_LOCKED - * * MAXIMUM_NUMBER_OF_ACTIVE_THREADS - * * MAXIMUM_NUMBER_OF_ACTIVE_ANNOUNCEMENT_THREADS - * * INVALID_JSON_FOR_UPLOADED_LOTTIE_FILE - * * LOTTIES_CANNOT_CONTAIN_RASTERIZED_IMAGES - * * STICKER_MAXIMUM_FRAMERATE - * * STICKER_MAXIMUM_FRAME_COUNT - * * LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS - * * STICKER_FRAME_RATE_TOO_SMALL_OR_TOO_LARGE - * * STICKER_ANIMATION_DURATION_MAXIMUM - * * UNKNOWN_VOICE_STATE - * @typedef {string} APIError - */ -export const DiscordApiErrors = { - //https://discord.com/developers/docs/topics/opcodes-and-status-codes#json-json-error-codes - GENERAL_ERROR: new ApiError("General error (such as a malformed request body, amongst other things)", 0), - UNKNOWN_ACCOUNT: new ApiError("Unknown account", 10001), - UNKNOWN_APPLICATION: new ApiError("Unknown application", 10002), - UNKNOWN_CHANNEL: new ApiError("Unknown channel", 10003), - UNKNOWN_GUILD: new ApiError("Unknown guild", 10004), - UNKNOWN_INTEGRATION: new ApiError("Unknown integration", 10005), - UNKNOWN_INVITE: new ApiError("Unknown invite", 10006), - UNKNOWN_MEMBER: new ApiError("Unknown member", 10007), - UNKNOWN_MESSAGE: new ApiError("Unknown message", 10008), - UNKNOWN_OVERWRITE: new ApiError("Unknown permission overwrite", 10009), - UNKNOWN_PROVIDER: new ApiError("Unknown provider", 10010), - UNKNOWN_ROLE: new ApiError("Unknown role", 10011), - UNKNOWN_TOKEN: new ApiError("Unknown token", 10012), - UNKNOWN_USER: new ApiError("Unknown user", 10013), - UNKNOWN_EMOJI: new ApiError("Unknown emoji", 10014), - UNKNOWN_WEBHOOK: new ApiError("Unknown webhook", 10015), - UNKNOWN_WEBHOOK_SERVICE: new ApiError("Unknown webhook service", 10016), - UNKNOWN_SESSION: new ApiError("Unknown session", 10020), - UNKNOWN_BAN: new ApiError("Unknown ban", 10026), - UNKNOWN_SKU: new ApiError("Unknown SKU", 10027), - UNKNOWN_STORE_LISTING: new ApiError("Unknown Store Listing", 10028), - UNKNOWN_ENTITLEMENT: new ApiError("Unknown entitlement", 10029), - UNKNOWN_BUILD: new ApiError("Unknown build", 10030), - UNKNOWN_LOBBY: new ApiError("Unknown lobby", 10031), - UNKNOWN_BRANCH: new ApiError("Unknown branch", 10032), - UNKNOWN_STORE_DIRECTORY_LAYOUT: new ApiError("Unknown store directory layout", 10033), - UNKNOWN_REDISTRIBUTABLE: new ApiError("Unknown redistributable", 10036), - UNKNOWN_GIFT_CODE: new ApiError("Unknown gift code", 10038), - UNKNOWN_STREAM: new ApiError("Unknown stream", 10049), - UNKNOWN_PREMIUM_SERVER_SUBSCRIBE_COOLDOWN: new ApiError("Unknown premium server subscribe cooldown", 10050), - UNKNOWN_GUILD_TEMPLATE: new ApiError("Unknown guild template", 10057), - UNKNOWN_DISCOVERABLE_SERVER_CATEGORY: new ApiError("Unknown discoverable server category", 10059), - UNKNOWN_STICKER: new ApiError("Unknown sticker", 10060), - UNKNOWN_INTERACTION: new ApiError("Unknown interaction", 10062), - UNKNOWN_APPLICATION_COMMAND: new ApiError("Unknown application command", 10063), - UNKNOWN_APPLICATION_COMMAND_PERMISSIONS: new ApiError("Unknown application command permissions", 10066), - UNKNOWN_STAGE_INSTANCE: new ApiError("Unknown Stage Instance", 10067), - UNKNOWN_GUILD_MEMBER_VERIFICATION_FORM: new ApiError("Unknown Guild Member Verification Form", 10068), - UNKNOWN_GUILD_WELCOME_SCREEN: new ApiError("Unknown Guild Welcome Screen", 10069), - UNKNOWN_GUILD_SCHEDULED_EVENT: new ApiError("Unknown Guild Scheduled Event", 10070), - UNKNOWN_GUILD_SCHEDULED_EVENT_USER: new ApiError("Unknown Guild Scheduled Event User", 10071), - BOT_PROHIBITED_ENDPOINT: new ApiError("Bots cannot use this endpoint", 20001), - BOT_ONLY_ENDPOINT: new ApiError("Only bots can use this endpoint", 20002), - EXPLICIT_CONTENT_CANNOT_BE_SENT_TO_RECIPIENT: new ApiError( - "Explicit content cannot be sent to the desired recipient(s)", - 20009 - ), - ACTION_NOT_AUTHORIZED_ON_APPLICATION: new ApiError( - "You are not authorized to perform this action on this application", - 20012 - ), - SLOWMODE_RATE_LIMIT: new ApiError("This action cannot be performed due to slowmode rate limit", 20016), - ONLY_OWNER: new ApiError("Only the owner of this account can perform this action", 20018), - ANNOUNCEMENT_RATE_LIMITS: new ApiError("This message cannot be edited due to announcement rate limits", 20022), - CHANNEL_WRITE_RATELIMIT: new ApiError("The channel you are writing has hit the write rate limit", 20028), - WORDS_NOT_ALLOWED: new ApiError( - "Your Stage topic, server name, server description, or channel names contain words that are not allowed", - 20031 - ), - GUILD_PREMIUM_LEVEL_TOO_LOW: new ApiError("Guild premium subscription level too low", 20035), - MAXIMUM_GUILDS: new ApiError("Maximum number of guilds reached ({})", 30001, undefined, ["100"]), - MAXIMUM_FRIENDS: new ApiError("Maximum number of friends reached ({})", 30002, undefined, ["1000"]), - MAXIMUM_PINS: new ApiError("Maximum number of pins reached for the channel ({})", 30003, undefined, ["50"]), - MAXIMUM_NUMBER_OF_RECIPIENTS_REACHED: new ApiError("Maximum number of recipients reached ({})", 30004, undefined, [ - "10", - ]), - MAXIMUM_ROLES: new ApiError("Maximum number of guild roles reached ({})", 30005, undefined, ["250"]), - MAXIMUM_WEBHOOKS: new ApiError("Maximum number of webhooks reached ({})", 30007, undefined, ["10"]), - MAXIMUM_NUMBER_OF_EMOJIS_REACHED: new ApiError("Maximum number of emojis reached", 30008), - MAXIMUM_REACTIONS: new ApiError("Maximum number of reactions reached ({})", 30010, undefined, ["20"]), - MAXIMUM_CHANNELS: new ApiError("Maximum number of guild channels reached ({})", 30013, undefined, ["500"]), - MAXIMUM_ATTACHMENTS: new ApiError("Maximum number of attachments in a message reached ({})", 30015, undefined, [ - "10", - ]), - MAXIMUM_INVITES: new ApiError("Maximum number of invites reached ({})", 30016, undefined, ["1000"]), - MAXIMUM_ANIMATED_EMOJIS: new ApiError("Maximum number of animated emojis reached", 30018), - MAXIMUM_SERVER_MEMBERS: new ApiError("Maximum number of server members reached", 30019), - MAXIMUM_SERVER_CATEGORIES: new ApiError( - "Maximum number of server categories has been reached ({})", - 30030, - undefined, - ["5"] - ), - GUILD_ALREADY_HAS_TEMPLATE: new ApiError("Guild already has a template", 30031), - MAXIMUM_THREAD_PARTICIPANTS: new ApiError("Max number of thread participants has been reached", 30033), - MAXIMUM_BANS_FOR_NON_GUILD_MEMBERS: new ApiError( - "Maximum number of bans for non-guild members have been exceeded", - 30035 - ), - MAXIMUM_BANS_FETCHES: new ApiError("Maximum number of bans fetches has been reached", 30037), - MAXIMUM_STICKERS: new ApiError("Maximum number of stickers reached", 30039), - MAXIMUM_PRUNE_REQUESTS: new ApiError("Maximum number of prune requests has been reached. Try again later", 30040), - UNAUTHORIZED: new ApiError("Unauthorized. Provide a valid token and try again", 40001), - ACCOUNT_VERIFICATION_REQUIRED: new ApiError( - "You need to verify your account in order to perform this action", - 40002 - ), - OPENING_DIRECT_MESSAGES_TOO_FAST: new ApiError("You are opening direct messages too fast", 40003), - REQUEST_ENTITY_TOO_LARGE: new ApiError("Request entity too large. Try sending something smaller in size", 40005), - FEATURE_TEMPORARILY_DISABLED: new ApiError("This feature has been temporarily disabled server-side", 40006), - USER_BANNED: new ApiError("The user is banned from this guild", 40007), - TARGET_USER_IS_NOT_CONNECTED_TO_VOICE: new ApiError("Target user is not connected to voice", 40032), - ALREADY_CROSSPOSTED: new ApiError("This message has already been crossposted", 40033), - APPLICATION_COMMAND_ALREADY_EXISTS: new ApiError("An application command with that name already exists", 40041), - MISSING_ACCESS: new ApiError("Missing access", 50001), - INVALID_ACCOUNT_TYPE: new ApiError("Invalid account type", 50002), - CANNOT_EXECUTE_ON_DM: new ApiError("Cannot execute action on a DM channel", 50003), - EMBED_DISABLED: new ApiError("Guild widget disabled", 50004), - CANNOT_EDIT_MESSAGE_BY_OTHER: new ApiError("Cannot edit a message authored by another user", 50005), - CANNOT_SEND_EMPTY_MESSAGE: new ApiError("Cannot send an empty message", 50006), - CANNOT_MESSAGE_USER: new ApiError("Cannot send messages to this user", 50007), - CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL: new ApiError("Cannot send messages in a voice channel", 50008), - CHANNEL_VERIFICATION_LEVEL_TOO_HIGH: new ApiError( - "Channel verification level is too high for you to gain access", - 50009 - ), - OAUTH2_APPLICATION_BOT_ABSENT: new ApiError("OAuth2 application does not have a bot", 50010), - MAXIMUM_OAUTH2_APPLICATIONS: new ApiError("OAuth2 application limit reached", 50011), - INVALID_OAUTH_STATE: new ApiError("Invalid OAuth2 state", 50012), - MISSING_PERMISSIONS: new ApiError("You lack permissions to perform that action ({})", 50013, undefined, [""]), - INVALID_AUTHENTICATION_TOKEN: new ApiError("Invalid authentication token provided", 50014), - NOTE_TOO_LONG: new ApiError("Note was too long", 50015), - INVALID_BULK_DELETE_QUANTITY: new ApiError( - "Provided too few or too many messages to delete. Must provide at least {} and fewer than {} messages to delete", - 50016, - undefined, - ["2", "100"] - ), - CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL: new ApiError( - "A message can only be pinned to the channel it was sent in", - 50019 - ), - INVALID_OR_TAKEN_INVITE_CODE: new ApiError("Invite code was either invalid or taken", 50020), - CANNOT_EXECUTE_ON_SYSTEM_MESSAGE: new ApiError("Cannot execute action on a system message", 50021), - CANNOT_EXECUTE_ON_THIS_CHANNEL_TYPE: new ApiError("Cannot execute action on this channel type", 50024), - INVALID_OAUTH_TOKEN: new ApiError("Invalid OAuth2 access token provided", 50025), - MISSING_REQUIRED_OAUTH2_SCOPE: new ApiError("Missing required OAuth2 scope", 50026), - INVALID_WEBHOOK_TOKEN_PROVIDED: new ApiError("Invalid webhook token provided", 50027), - INVALID_ROLE: new ApiError("Invalid role", 50028), - INVALID_RECIPIENT: new ApiError("Invalid Recipient(s)", 50033), - BULK_DELETE_MESSAGE_TOO_OLD: new ApiError("A message provided was too old to bulk delete", 50034), - INVALID_FORM_BODY: new ApiError( - "Invalid form body (returned for both application/json and multipart/form-data bodies), or invalid Content-Type provided", - 50035 - ), - INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT: new ApiError( - "An invite was accepted to a guild the application's bot is not in", - 50036 - ), - INVALID_API_VERSION: new ApiError("Invalid API version provided", 50041), - FILE_EXCEEDS_MAXIMUM_SIZE: new ApiError("File uploaded exceeds the maximum size", 50045), - INVALID_FILE_UPLOADED: new ApiError("Invalid file uploaded", 50046), - CANNOT_SELF_REDEEM_GIFT: new ApiError("Cannot self-redeem this gift", 50054), - PAYMENT_SOURCE_REQUIRED: new ApiError("Payment source required to redeem gift", 50070), - CANNOT_DELETE_COMMUNITY_REQUIRED_CHANNEL: new ApiError( - "Cannot delete a channel required for Community guilds", - 50074 - ), - INVALID_STICKER_SENT: new ApiError("Invalid sticker sent", 50081), - CANNOT_EDIT_ARCHIVED_THREAD: new ApiError( - "Tried to perform an operation on an archived thread, such as editing a message or adding a user to the thread", - 50083 - ), - INVALID_THREAD_NOTIFICATION_SETTINGS: new ApiError("Invalid thread notification settings", 50084), - BEFORE_EARLIER_THAN_THREAD_CREATION_DATE: new ApiError( - "before value is earlier than the thread creation date", - 50085 - ), - SERVER_NOT_AVAILABLE_IN_YOUR_LOCATION: new ApiError("This server is not available in your location", 50095), - SERVER_NEEDS_MONETIZATION_ENABLED: new ApiError( - "This server needs monetization enabled in order to perform this action", - 50097 - ), - TWO_FACTOR_REQUIRED: new ApiError("Two factor is required for this operation", 60003), - NO_USERS_WITH_DISCORDTAG_EXIST: new ApiError("No users with DiscordTag exist", 80004), - REACTION_BLOCKED: new ApiError("Reaction was blocked", 90001), - RESOURCE_OVERLOADED: new ApiError("API resource is currently overloaded. Try again a little later", 130000), - STAGE_ALREADY_OPEN: new ApiError("The Stage is already open", 150006), - THREAD_ALREADY_CREATED_FOR_THIS_MESSAGE: new ApiError("A thread has already been created for this message", 160004), - THREAD_IS_LOCKED: new ApiError("Thread is locked", 160005), - MAXIMUM_NUMBER_OF_ACTIVE_THREADS: new ApiError("Maximum number of active threads reached", 160006), - MAXIMUM_NUMBER_OF_ACTIVE_ANNOUNCEMENT_THREADS: new ApiError( - "Maximum number of active announcement threads reached", - 160007 - ), - INVALID_JSON_FOR_UPLOADED_LOTTIE_FILE: new ApiError("Invalid JSON for uploaded Lottie file", 170001), - LOTTIES_CANNOT_CONTAIN_RASTERIZED_IMAGES: new ApiError( - "Uploaded Lotties cannot contain rasterized images such as PNG or JPEG", - 170002 - ), - STICKER_MAXIMUM_FRAMERATE: new ApiError("Sticker maximum framerate exceeded", 170003), - STICKER_MAXIMUM_FRAME_COUNT: new ApiError("Sticker frame count exceeds maximum of {} frames", 170004, undefined, [ - "1000", - ]), - LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS: new ApiError("Lottie animation maximum dimensions exceeded", 170005), - STICKER_FRAME_RATE_TOO_SMALL_OR_TOO_LARGE: new ApiError( - "Sticker frame rate is either too small or too large", - 170006 - ), - STICKER_ANIMATION_DURATION_MAXIMUM: new ApiError( - "Sticker animation duration exceeds maximum of {} seconds", - 170007, - undefined, - ["5"] - ), - - //Other errors - UNKNOWN_VOICE_STATE: new ApiError("Unknown Voice State", 10065, 404), -}; - -/** - * An error encountered while performing an API request (Fosscord only). Here are the potential errors: - */ -export const FosscordApiErrors = { - MANUALLY_TRIGGERED_ERROR: new ApiError("This is an artificial error", 1, 500), - PREMIUM_DISABLED_FOR_GUILD: new ApiError("This guild cannot be boosted", 25001), - NO_FURTHER_PREMIUM: new ApiError("This guild does not receive further boosts", 25002), - GUILD_PREMIUM_DISABLED_FOR_YOU: new ApiError("This guild cannot be boosted by you", 25003, 403), - CANNOT_FRIEND_SELF: new ApiError("Cannot friend oneself", 25009), - USER_SPECIFIC_INVITE_WRONG_RECIPIENT: new ApiError("This invite is not meant for you", 25010), - USER_SPECIFIC_INVITE_FAILED: new ApiError("Failed to invite user", 25011), - CANNOT_MODIFY_USER_GROUP: new ApiError("This user cannot manipulate this group", 25050, 403), - CANNOT_REMOVE_SELF_FROM_GROUP: new ApiError("This user cannot remove oneself from user group", 25051), - CANNOT_BAN_OPERATOR: new ApiError("Non-OPERATOR cannot ban OPERATOR from instance", 25052), - CANNOT_LEAVE_GUILD: new ApiError("You are not allowed to leave guilds that you joined by yourself", 25059, 403), - EDITS_DISABLED: new ApiError("You are not allowed to edit your own messages", 25060, 403), - DELETE_MESSAGE_DISABLED: new ApiError("You are not allowed to delete your own messages", 25061, 403), - FEATURE_PERMANENTLY_DISABLED: new ApiError("This feature has been disabled server-side", 45006, 501), - MISSING_RIGHTS: new ApiError("You lack rights to perform that action ({})", 50013, undefined, [""]), - CANNOT_REPLACE_BY_BACKFILL: new ApiError("Cannot backfill to message ID that already exists", 55002, 409), - CANNOT_BACKFILL_TO_THE_FUTURE: new ApiError("You cannot backfill messages in the future", 55003), - CANNOT_GRANT_PERMISSIONS_EXCEEDING_RIGHTS: new ApiError("You cannot grant permissions exceeding your own rights", 50050), - ROUTES_LOOPING: new ApiError("Loops in the route definition ({})", 50060, undefined, [""]), - CANNOT_REMOVE_ROUTE: new ApiError("Cannot remove message route while it is in effect and being used", 50061), -}; - -/** - * The value set for a guild's default message notifications, e.g. `ALL`. Here are the available types: - * * ALL - * * MENTIONS - * * MUTED (Fosscord extension) - * @typedef {string} DefaultMessageNotifications - */ -export const DefaultMessageNotifications = ["ALL", "MENTIONS", "MUTED"]; - -/** - * The value set for a team members's membership state: - * * INVITED - * * ACCEPTED - * * INSERTED (Fosscord extension) - * @typedef {string} MembershipStates - */ -export const MembershipStates = [ - "INSERTED", - "INVITED", - "ACCEPTED", -]; - -/** - * The value set for a webhook's type: - * * Incoming - * * Channel Follower - * * Custom (Fosscord extension) - * @typedef {string} WebhookTypes - */ -export const WebhookTypes = [ - "Custom", - "Incoming", - "Channel Follower", -]; - -function keyMirror(arr: string[]) { - let tmp = Object.create(null); - for (const value of arr) tmp[value] = value; - return tmp; -} - diff --git a/util/src/util/Database.ts b/util/src/util/Database.ts deleted file mode 100644 index 84ce473d..00000000 --- a/util/src/util/Database.ts +++ /dev/null @@ -1,103 +0,0 @@ -import path from "path"; -import "reflect-metadata"; -import { DataSource, createConnection, DataSourceOptions, PrimaryColumn, PrimaryGeneratedColumn } from "typeorm"; -import * as Models from "../entities"; -import { Migration } from "../entities/Migration"; -import { yellow, green, red } from "picocolors"; -import fs from "fs"; -import { exit } from "process"; -import { BaseClass, BaseClassWithoutId } from "../entities"; -import { config } from "dotenv"; - -// UUID extension option is only supported with postgres -// We want to generate all id's with Snowflakes that's why we have our own BaseEntity class - -let promise: Promise; -let dataSource: DataSource; - -export async function getOrInitialiseDatabase(): Promise { - //if (dataSource) return dataSource; // prevent initalizing multiple times - - if(dataSource.isInitialized) return dataSource; - - await dataSource.initialize(); - console.log(`[Database] ${green("Connected!")}`); - await dataSource.runMigrations(); - console.log(`[Database] ${green("Up to date!")}`); - - if("DB_MIGRATE" in process.env) { - console.log("DB_MIGRATE specified, exiting!") - exit(0); - } - return dataSource; -} - -export function closeDatabase() { - dataSource?.destroy(); -} - -function getDataSourceOptions(): DataSourceOptions { - config(); - //get connection string and check for migrations - const dbConnectionString = process.env.DATABASE || path.join(process.cwd(), "database.db"); - const type = dbConnectionString.includes("://") ? dbConnectionString.split(":")[0]?.replace("+srv", "") : "sqlite" as any; - const isSqlite = type.includes("sqlite"); - const migrationsExist = fs.existsSync(path.join(__dirname, "..", "migrations", type)); - //read env vars - const synchronizeInsteadOfMigrations = "DB_UNSAFE" in process.env; - const verboseDb = "DB_VERBOSE" in process.env; - - if(isSqlite) - console.log(`[Database] ${red(`You are running sqlite! Please keep in mind that we recommend setting up a dedicated database!`)}`); - if(verboseDb) - console.log(`[Database] ${red(`Verbose database logging is enabled, this might impact performance! Unset DB_VERBOSE to disable.`)}`); - - if(synchronizeInsteadOfMigrations){ - console.log(`[Database] ${red(`Unsafe database upgrades are enabled! We are not responsible for broken databases! Unset DB_UNSAFE to disable.`)}`); - } - else if(!migrationsExist) { - console.log(`[Database] ${red(`Database engine not supported! Set UNSAFE_DB to bypass.`)}`); - console.log(`[Database] ${red(`Please mention this to Fosscord developers, and provide this info:`)}`); - console.log(`[Database]\n${red(JSON.stringify({ - db_type: type, - migrations_exist: migrationsExist - }, null, 4))}`); - - if(!("DB_MIGRATE" in process.env)) exit(1); - } - console.log(`[Database] ${yellow(`Configuring data source to use ${type} database...`)}`); - return { - type, - charset: 'utf8mb4', - url: isSqlite ? undefined : dbConnectionString, - database: isSqlite ? dbConnectionString : undefined, - // @ts-ignore - //entities: Object.values(Models).filter((x) => x.constructor.name !== "Object" && x.constructor.name !== "Array" && x.constructor.name !== "BigInt" && x).map(x=>x.name), - entities: Object.values(Models).filter((x) => x.constructor.name == "Function" && shouldIncludeEntity(x.name)), - synchronize: synchronizeInsteadOfMigrations, - logging: verboseDb, - cache: { - duration: 1000 * 3, // cache all find queries for 3 seconds - }, - bigNumberStrings: false, - supportBigNumbers: true, - name: "default", - migrations: synchronizeInsteadOfMigrations ? [] : [path.join(__dirname, "..", "migrations", type, "*.js")], - migrationsRun: !synchronizeInsteadOfMigrations, - //migrationsRun: false, - cli: { - migrationsDir: `src/migrations/${type}` - }, - } as DataSourceOptions; -} - -function shouldIncludeEntity(name: string): boolean { - return ![ - BaseClassWithoutId, - PrimaryColumn, - BaseClass, - PrimaryGeneratedColumn - ].map(x=>x.name).includes(name); -} - -export default dataSource = new DataSource(getDataSourceOptions()); diff --git a/util/src/util/Email.ts b/util/src/util/Email.ts deleted file mode 100644 index 6885da33..00000000 --- a/util/src/util/Email.ts +++ /dev/null @@ -1,25 +0,0 @@ -export const EMAIL_REGEX = - /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; - -export function adjustEmail(email?: string): string | undefined { - if (!email) return email; - // body parser already checked if it is a valid email - const parts = email.match(EMAIL_REGEX); - // @ts-ignore - if (!parts || parts.length < 5) return undefined; - const domain = parts[5]; - const user = parts[1]; - - // TODO: check accounts with uncommon email domains - if (domain === "gmail.com" || domain === "googlemail.com") { - // replace .dots and +alternatives -> Gmail Dot Trick https://support.google.com/mail/answer/7436150 and https://generator.email/blog/gmail-generator - let v = user.replace(/[.]|(\+.*)/g, "") + "@gmail.com"; - } - - if (domain === "google.com") { - // replace .dots and +alternatives -> Google Staff GMail Dot Trick - let v = user.replace(/[.]|(\+.*)/g, "") + "@google.com"; - } - - return email; -} diff --git a/util/src/util/Event.ts b/util/src/util/Event.ts deleted file mode 100644 index 90c24347..00000000 --- a/util/src/util/Event.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { Channel } from "amqplib"; -import { RabbitMQ } from "./RabbitMQ"; -import EventEmitter from "events"; -import { EVENT, Event } from "../interfaces"; -export const events = new EventEmitter(); - -export async function emitEvent(payload: Omit) { - const id = (payload.channel_id || payload.user_id || payload.guild_id) as string; - if (!id) return console.error("event doesn't contain any id", payload); - - if (RabbitMQ.connection) { - const data = typeof payload.data === "object" ? JSON.stringify(payload.data) : payload.data; // use rabbitmq for event transmission - await RabbitMQ.channel?.assertExchange(id, "fanout", { durable: false }); - - // assertQueue isn't needed, because a queue will automatically created if it doesn't exist - const successful = RabbitMQ.channel?.publish(id, "", Buffer.from(`${data}`), { type: payload.event }); - if (!successful) throw new Error("failed to send event"); - } else if (process.env.EVENT_TRANSMISSION === "process") { - process.send?.({ type: "event", event: payload, id } as ProcessEvent); - } else { - events.emit(id, payload); - } -} - -export async function initEvent() { - await RabbitMQ.init(); // does nothing if rabbitmq is not setup - if (RabbitMQ.connection) { - } else { - // use event emitter - // use process messages - } -} - -export interface EventOpts extends Event { - acknowledge?: Function; - channel?: Channel; - cancel: Function; -} - -export interface ListenEventOpts { - channel?: Channel; - acknowledge?: boolean; -} - -export interface ProcessEvent { - type: "event"; - event: Event; - id: string; -} - -export async function listenEvent(event: string, callback: (event: EventOpts) => any, opts?: ListenEventOpts) { - if (RabbitMQ.connection) { - // @ts-ignore - return rabbitListen(opts?.channel || RabbitMQ.channel, event, callback, { acknowledge: opts?.acknowledge }); - } else if (process.env.EVENT_TRANSMISSION === "process") { - const cancel = () => { - process.removeListener("message", listener); - process.setMaxListeners(process.getMaxListeners() - 1); - }; - - const listener = (message: any) => { - message.type === "event" && message.id === event && callback({ ...message.event, cancel }); - }; - - process.addListener("message", listener); - process.setMaxListeners(process.getMaxListeners() + 1); - - return cancel; - } else { - const listener = (opts: any) => callback({ ...opts, cancel }); - const cancel = () => { - events.removeListener(event, listener); - events.setMaxListeners(events.getMaxListeners() - 1); - }; - events.setMaxListeners(events.getMaxListeners() + 1); - events.addListener(event, listener); - - return cancel; - } -} - -async function rabbitListen( - channel: Channel, - id: string, - callback: (event: EventOpts) => any, - opts?: { acknowledge?: boolean } -) { - await channel.assertExchange(id, "fanout", { durable: false }); - const q = await channel.assertQueue("", { exclusive: true, autoDelete: true }); - - const cancel = () => { - channel.cancel(q.queue); - channel.unbindQueue(q.queue, id, ""); - }; - - channel.bindQueue(q.queue, id, ""); - channel.consume( - q.queue, - (opts) => { - if (!opts) return; - - const data = JSON.parse(opts.content.toString()); - const event = opts.properties.type as EVENT; - - callback({ - event, - data, - acknowledge() { - channel.ack(opts); - }, - channel, - cancel, - }); - // rabbitCh.ack(opts); - }, - { - noAck: !opts?.acknowledge, - } - ); - - return cancel; -} diff --git a/util/src/util/FieldError.ts b/util/src/util/FieldError.ts deleted file mode 100644 index 49968e1a..00000000 --- a/util/src/util/FieldError.ts +++ /dev/null @@ -1,23 +0,0 @@ -export function FieldErrors(fields: Record) { - return new FieldError( - 50035, - "Invalid Form Body", - fields.map(({ message, code }) => ({ - _errors: [ - { - message, - code: code || "BASE_TYPE_INVALID", - }, - ], - })) - ); -} - -// TODO: implement Image data type: Data URI scheme that supports JPG, GIF, and PNG formats. An example Data URI format is: data:image/jpeg;base64,BASE64_ENCODED_JPEG_IMAGE_DATA -// Ensure you use the proper content type (image/jpeg, image/png, image/gif) that matches the image data being provided. - -export class FieldError extends Error { - constructor(public code: string | number, public message: string, public errors?: any) { - super(message); - } -} diff --git a/util/src/util/Intents.ts b/util/src/util/Intents.ts deleted file mode 100644 index 1e840b76..00000000 --- a/util/src/util/Intents.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { BitField } from "./BitField"; - -export class Intents extends BitField { - static FLAGS = { - GUILDS: BigInt(1) << BigInt(0), // guilds and guild merge-split events affecting the user - GUILD_MEMBERS: BigInt(1) << BigInt(1), // memberships - GUILD_BANS: BigInt(1) << BigInt(2), // bans and ban lists - GUILD_EMOJIS: BigInt(1) << BigInt(3), // custom emojis - GUILD_INTEGRATIONS: BigInt(1) << BigInt(4), // applications - GUILD_WEBHOOKS: BigInt(1) << BigInt(5), // webhooks - GUILD_INVITES: BigInt(1) << BigInt(6), // mass invites (no user can receive user specific invites of another user) - GUILD_VOICE_STATES: BigInt(1) << BigInt(7), // voice updates - GUILD_PRESENCES: BigInt(1) << BigInt(8), // presence updates - GUILD_MESSAGES_METADATA: BigInt(1) << BigInt(9), // guild message metadata - GUILD_MESSAGE_REACTIONS: BigInt(1) << BigInt(10), // guild message reactions - GUILD_MESSAGE_TYPING: BigInt(1) << BigInt(11), // guild channel typing notifications - DIRECT_MESSAGES: BigInt(1) << BigInt(12), // DM or orphan channels - DIRECT_MESSAGE_REACTIONS: BigInt(1) << BigInt(13), // DM or orphan channel message reactions - DIRECT_MESSAGE_TYPING: BigInt(1) << BigInt(14), // DM typing notifications - GUILD_MESSAGES_CONTENT: BigInt(1) << BigInt(15), // guild message content - GUILD_POLICIES: BigInt(1) << BigInt(20), // guild policies - GUILD_POLICY_EXECUTION: BigInt(1) << BigInt(21), // guild policy execution - LIVE_MESSAGE_COMPOSITION: BigInt(1) << BigInt(32), // allow composing messages using the gateway - GUILD_ROUTES: BigInt(1) << BigInt(41), // message routes affecting the guild - DIRECT_MESSAGES_THREADS: BigInt(1) << BigInt(42), // direct message threads - JUMBO_EVENTS: BigInt(1) << BigInt(43), // jumbo events (size limits to be defined later) - LOBBIES: BigInt(1) << BigInt(44), // lobbies - INSTANCE_ROUTES: BigInt(1) << BigInt(60), // all message route changes - INSTANCE_GUILD_CHANGES: BigInt(1) << BigInt(61), // all guild create, guild object patch, split, merge and delete events - INSTANCE_POLICY_UPDATES: BigInt(1) << BigInt(62), // all instance policy updates - INSTANCE_USER_UPDATES: BigInt(1) << BigInt(63) // all instance user updates - }; -} - diff --git a/util/src/util/InvisibleCharacters.ts b/util/src/util/InvisibleCharacters.ts deleted file mode 100644 index 2b014e14..00000000 --- a/util/src/util/InvisibleCharacters.ts +++ /dev/null @@ -1,56 +0,0 @@ -// List from https://invisible-characters.com/ -export const InvisibleCharacters = [ - '\u{9}', //Tab - '\u{20}', //Space - '\u{ad}', //Soft hyphen - '\u{34f}', //Combining grapheme joiner - '\u{61c}', //Arabic letter mark - '\u{115f}', //Hangul choseong filler - '\u{1160}', //Hangul jungseong filler - '\u{17b4}', //Khmer vowel inherent AQ - '\u{17b5}', //Khmer vowel inherent AA - '\u{180e}', //Mongolian vowel separator - '\u{2000}', //En quad - '\u{2001}', //Em quad - '\u{2002}', //En space - '\u{2003}', //Em space - '\u{2004}', //Three-per-em space - '\u{2005}', //Four-per-em space - '\u{2006}', //Six-per-em space - '\u{2007}', //Figure space - '\u{2008}', //Punctuation space - '\u{2009}', //Thin space - '\u{200a}', //Hair space - '\u{200b}', //Zero width space - '\u{200c}', //Zero width non-joiner - '\u{200d}', //Zero width joiner - '\u{200e}', //Left-to-right mark - '\u{200f}', //Right-to-left mark - '\u{202f}', //Narrow no-break space - '\u{205f}', //Medium mathematical space - '\u{2060}', //Word joiner - '\u{2061}', //Function application - '\u{2062}', //Invisible times - '\u{2063}', //Invisible separator - '\u{2064}', //Invisible plus - '\u{206a}', //Inhibit symmetric swapping - '\u{206b}', //Activate symmetric swapping - '\u{206c}', //Inhibit arabic form shaping - '\u{206d}', //Activate arabic form shaping - '\u{206e}', //National digit shapes - '\u{206f}', //Nominal digit shapes - '\u{3000}', //Ideographic space - '\u{2800}', //Braille pattern blank - '\u{3164}', //Hangul filler - '\u{feff}', //Zero width no-break space - '\u{ffa0}', //Haldwidth hangul filler - '\u{1d159}', //Musical symbol null notehead - '\u{1d173}', //Musical symbol begin beam - '\u{1d174}', //Musical symbol end beam - '\u{1d175}', //Musical symbol begin tie - '\u{1d176}', //Musical symbol end tie - '\u{1d177}', //Musical symbol begin slur - '\u{1d178}', //Musical symbol end slur - '\u{1d179}', //Musical symbol begin phrase - '\u{1d17a}' //Musical symbol end phrase -]; \ No newline at end of file diff --git a/util/src/util/MFA.ts b/util/src/util/MFA.ts deleted file mode 100644 index 2e47b2fc..00000000 --- a/util/src/util/MFA.ts +++ /dev/null @@ -1,17 +0,0 @@ -import crypto from "crypto"; -import { BackupCode } from "../entities/BackupCodes"; - -export function generateMfaBackupCodes(user_id: string) { - let backup_codes: BackupCode[] = []; - for (let i = 0; i < 10; i++) { - const code = BackupCode.create({ - user: { id: user_id }, - code: crypto.randomBytes(4).toString("hex"), // 8 characters - consumed: false, - expired: false, - }); - backup_codes.push(code); - } - - return backup_codes; -} \ No newline at end of file diff --git a/util/src/util/MessageFlags.ts b/util/src/util/MessageFlags.ts deleted file mode 100644 index b59295c4..00000000 --- a/util/src/util/MessageFlags.ts +++ /dev/null @@ -1,20 +0,0 @@ -// based on https://github.com/discordjs/discord.js/blob/master/src/util/MessageFlags.js -// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah, 2022 Erkin Alp Güney - -import { BitField } from "./BitField"; - -export class MessageFlags extends BitField { - static FLAGS = { - CROSSPOSTED: BigInt(1) << BigInt(0), - IS_CROSSPOST: BigInt(1) << BigInt(1), - SUPPRESS_EMBEDS: BigInt(1) << BigInt(2), - // SOURCE_MESSAGE_DELETED: BigInt(1) << BigInt(3), // fosscord will delete them from destination too, making this redundant - URGENT: BigInt(1) << BigInt(4), - // HAS_THREAD: BigInt(1) << BigInt(5) // does not apply to fosscord due to infrastructural differences - PRIVATE_ROUTE: BigInt(1) << BigInt(6), // it that has been routed to only some of the users that can see the channel - INTERACTION_WAIT: BigInt(1) << BigInt(7), // discord.com calls this LOADING - // FAILED_TO_MENTION_SOME_ROLES_IN_THREAD: BigInt(1) << BigInt(8) - SCRIPT_WAIT: BigInt(1) << BigInt(24), // waiting for the self command to complete - IMPORT_WAIT: BigInt(1) << BigInt(25), // latest message of a bulk import, waiting for the rest of the channel to be backfilled - }; -} diff --git a/util/src/util/Permissions.ts b/util/src/util/Permissions.ts deleted file mode 100644 index c7400303..00000000 --- a/util/src/util/Permissions.ts +++ /dev/null @@ -1,273 +0,0 @@ -// https://github.com/discordjs/discord.js/blob/master/src/util/Permissions.js -// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah -import { Channel, ChannelPermissionOverwrite, Guild, Member, Role } from "../entities"; -import { BitField, BitFieldResolvable, BitFlag } from "./BitField"; -import { HTTPError } from ".."; - -export type PermissionResolvable = bigint | number | Permissions | PermissionResolvable[] | PermissionString; - -type PermissionString = keyof typeof Permissions.FLAGS; - -// BigInt doesn't have a bit limit (https://stackoverflow.com/questions/53335545/whats-the-biggest-bigint-value-in-js-as-per-spec) -const CUSTOM_PERMISSION_OFFSET = BigInt(1) << BigInt(64); // 27 permission bits left for discord to add new ones - -export class Permissions extends BitField { - cache: PermissionCache = {}; - - constructor(bits: BitFieldResolvable = 0) { - super(bits); - if (this.bitfield & Permissions.FLAGS.ADMINISTRATOR) { - this.bitfield = ALL_PERMISSIONS; - } - } - - static FLAGS = { - CREATE_INSTANT_INVITE: BitFlag(0), - KICK_MEMBERS: BitFlag(1), - BAN_MEMBERS: BitFlag(2), - ADMINISTRATOR: BitFlag(3), - MANAGE_CHANNELS: BitFlag(4), - MANAGE_GUILD: BitFlag(5), - ADD_REACTIONS: BitFlag(6), - VIEW_AUDIT_LOG: BitFlag(7), - PRIORITY_SPEAKER: BitFlag(8), - STREAM: BitFlag(9), - VIEW_CHANNEL: BitFlag(10), - SEND_MESSAGES: BitFlag(11), - SEND_TTS_MESSAGES: BitFlag(12), - MANAGE_MESSAGES: BitFlag(13), - EMBED_LINKS: BitFlag(14), - ATTACH_FILES: BitFlag(15), - READ_MESSAGE_HISTORY: BitFlag(16), - MENTION_EVERYONE: BitFlag(17), - USE_EXTERNAL_EMOJIS: BitFlag(18), - VIEW_GUILD_INSIGHTS: BitFlag(19), - CONNECT: BitFlag(20), - SPEAK: BitFlag(21), - MUTE_MEMBERS: BitFlag(22), - DEAFEN_MEMBERS: BitFlag(23), - MOVE_MEMBERS: BitFlag(24), - USE_VAD: BitFlag(25), - CHANGE_NICKNAME: BitFlag(26), - MANAGE_NICKNAMES: BitFlag(27), - MANAGE_ROLES: BitFlag(28), - MANAGE_WEBHOOKS: BitFlag(29), - MANAGE_EMOJIS_AND_STICKERS: BitFlag(30), - USE_APPLICATION_COMMANDS: BitFlag(31), - REQUEST_TO_SPEAK: BitFlag(32), - // TODO: what is permission 33? - MANAGE_THREADS: BitFlag(34), - USE_PUBLIC_THREADS: BitFlag(35), - USE_PRIVATE_THREADS: BitFlag(36), - USE_EXTERNAL_STICKERS: BitFlag(37), - - /** - * CUSTOM PERMISSIONS ideas: - * - allow user to dm members - * - allow user to pin messages (without MANAGE_MESSAGES) - * - allow user to publish messages (without MANAGE_MESSAGES) - */ - // CUSTOM_PERMISSION: BigInt(1) << BigInt(0) + CUSTOM_PERMISSION_OFFSET - }; - - any(permission: PermissionResolvable, checkAdmin = true) { - return (checkAdmin && super.any(Permissions.FLAGS.ADMINISTRATOR)) || super.any(permission); - } - - /** - * Checks whether the bitfield has a permission, or multiple permissions. - */ - has(permission: PermissionResolvable, checkAdmin = true) { - return (checkAdmin && super.has(Permissions.FLAGS.ADMINISTRATOR)) || super.has(permission); - } - - /** - * Checks whether the bitfield has a permission, or multiple permissions, but throws an Error if user fails to match auth criteria. - */ - hasThrow(permission: PermissionResolvable) { - if (this.has(permission) && this.has("VIEW_CHANNEL")) return true; - // @ts-ignore - throw new HTTPError(`You are missing the following permissions ${permission}`, 403); - } - - overwriteChannel(overwrites: ChannelPermissionOverwrite[]) { - if (!overwrites) return this; - if (!this.cache) throw new Error("permission chache not available"); - overwrites = overwrites.filter((x) => { - if (x.type === 0 && this.cache.roles?.some((r) => r.id === x.id)) return true; - if (x.type === 1 && x.id == this.cache.user_id) return true; - return false; - }); - return new Permissions(Permissions.channelPermission(overwrites, this.bitfield)); - } - - static channelPermission(overwrites: ChannelPermissionOverwrite[], init?: bigint) { - // TODO: do not deny any permissions if admin - return overwrites.reduce((permission, overwrite) => { - // apply disallowed permission - // * permission: current calculated permission (e.g. 010) - // * deny contains all denied permissions (e.g. 011) - // * allow contains all explicitly allowed permisions (e.g. 100) - return (permission & ~BigInt(overwrite.deny)) | BigInt(overwrite.allow); - // ~ operator inverts deny (e.g. 011 -> 100) - // & operator only allows 1 for both ~deny and permission (e.g. 010 & 100 -> 000) - // | operators adds both together (e.g. 000 + 100 -> 100) - }, init || BigInt(0)); - } - - static rolePermission(roles: Role[]) { - // adds all permissions of all roles together (Bit OR) - return roles.reduce((permission, role) => permission | BigInt(role.permissions), BigInt(0)); - } - - static finalPermission({ - user, - guild, - channel, - }: { - user: { id: string; roles: string[] }; - guild: { roles: Role[] }; - channel?: { - overwrites?: ChannelPermissionOverwrite[]; - recipient_ids?: string[] | null; - owner_id?: string; - }; - }) { - if (user.id === "0") return new Permissions("ADMINISTRATOR"); // system user id - - let roles = guild.roles.filter((x) => user.roles.includes(x.id)); - let permission = Permissions.rolePermission(roles); - - if (channel?.overwrites) { - let overwrites = channel.overwrites.filter((x) => { - if (x.type === 0 && user.roles.includes(x.id)) return true; - if (x.type === 1 && x.id == user.id) return true; - return false; - }); - permission = Permissions.channelPermission(overwrites, permission); - } - - if (channel?.recipient_ids) { - if (channel?.owner_id === user.id) return new Permissions("ADMINISTRATOR"); - if (channel.recipient_ids.includes(user.id)) { - // Default dm permissions - return new Permissions([ - "VIEW_CHANNEL", - "SEND_MESSAGES", - "STREAM", - "ADD_REACTIONS", - "EMBED_LINKS", - "ATTACH_FILES", - "READ_MESSAGE_HISTORY", - "MENTION_EVERYONE", - "USE_EXTERNAL_EMOJIS", - "CONNECT", - "SPEAK", - "MANAGE_CHANNELS", - ]); - } - - return new Permissions(); - } - - return new Permissions(permission); - } -} - -const ALL_PERMISSIONS = Object.values(Permissions.FLAGS).reduce((total, val) => total | val, BigInt(0)); - -export type PermissionCache = { - channel?: Channel | undefined; - member?: Member | undefined; - guild?: Guild | undefined; - roles?: Role[] | undefined; - user_id?: string; -}; - -export async function getPermission( - user_id?: string, - guild_id?: string, - channel_id?: string, - opts: { - guild_select?: (keyof Guild)[]; - guild_relations?: string[]; - channel_select?: (keyof Channel)[]; - channel_relations?: string[]; - member_select?: (keyof Member)[]; - member_relations?: string[]; - } = {} -) { - if (!user_id) throw new HTTPError("User not found"); - let channel: Channel | undefined; - let member: Member | undefined; - let guild: Guild | undefined; - - if (channel_id) { - channel = await Channel.findOneOrFail({ - where: { id: channel_id }, - relations: ["recipients", ...(opts.channel_relations || [])], - select: [ - "id", - "recipients", - "permission_overwrites", - "owner_id", - "guild_id", - // @ts-ignore - ...(opts.channel_select || []), - ], - }); - if (channel.guild_id) guild_id = channel.guild_id; // derive guild_id from the channel - } - - if (guild_id) { - guild = await Guild.findOneOrFail({ - where: { id: guild_id }, - select: [ - "id", - "owner_id", - // @ts-ignore - ...(opts.guild_select || []), - ], - relations: opts.guild_relations, - }); - if (guild.owner_id === user_id) return new Permissions(Permissions.FLAGS.ADMINISTRATOR); - - member = await Member.findOneOrFail({ - where: { guild_id, id: user_id }, - relations: ["roles", ...(opts.member_relations || [])], - select: [ - "id", - "roles", - "index", - // @ts-ignore - ...(opts.member_select || []), - ], - }); - } - - let recipient_ids: any = channel?.recipients?.map((x) => x.user_id); - if (!recipient_ids?.length) recipient_ids = null; - - // TODO: remove guild.roles and convert recipient_ids to recipients - let permission = Permissions.finalPermission({ - user: { - id: user_id, - roles: member?.roles.map((x) => x.id) || [], - }, - guild: { - roles: member?.roles || [], - }, - channel: { - overwrites: channel?.permission_overwrites, - owner_id: channel?.owner_id, - recipient_ids, - }, - }); - - const obj = new Permissions(permission); - - // pass cache to permission for possible future getPermission calls - obj.cache = { guild, member, channel, roles: member?.roles, user_id }; - - return obj; -} diff --git a/util/src/util/RabbitMQ.ts b/util/src/util/RabbitMQ.ts deleted file mode 100644 index 0f5eb6aa..00000000 --- a/util/src/util/RabbitMQ.ts +++ /dev/null @@ -1,19 +0,0 @@ -import amqp, { Connection, Channel } from "amqplib"; -// import Config from "./Config"; - -export const RabbitMQ: { connection: Connection | null; channel: Channel | null; init: () => Promise } = { - connection: null, - channel: null, - init: async function () { - return; - // const host = Config.get().rabbitmq.host; - // if (!host) return; - // console.log(`[RabbitMQ] connect: ${host}`); - // this.connection = await amqp.connect(host, { - // timeout: 1000 * 60, - // }); - // console.log(`[RabbitMQ] connected`); - // this.channel = await this.connection.createChannel(); - // console.log(`[RabbitMQ] channel created`); - }, -}; diff --git a/util/src/util/Regex.ts b/util/src/util/Regex.ts deleted file mode 100644 index 83fc9fe8..00000000 --- a/util/src/util/Regex.ts +++ /dev/null @@ -1,7 +0,0 @@ -export const DOUBLE_WHITE_SPACE = /\s\s+/g; -export const SPECIAL_CHAR = /[@#`:\r\n\t\f\v\p{C}]/gu; -export const CHANNEL_MENTION = /<#(\d+)>/g; -export const USER_MENTION = /<@!?(\d+)>/g; -export const ROLE_MENTION = /<@&(\d+)>/g; -export const EVERYONE_MENTION = /@everyone/g; -export const HERE_MENTION = /@here/g; diff --git a/util/src/util/Rights.ts b/util/src/util/Rights.ts deleted file mode 100644 index 1c3906fb..00000000 --- a/util/src/util/Rights.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { BitField, BitFieldResolvable, BitFlag } from "./BitField"; -import { User } from "../entities"; -import { HTTPError } from ".."; - -export type RightResolvable = bigint | number | Rights | RightResolvable[] | RightString; - -type RightString = keyof typeof Rights.FLAGS; -// TODO: just like roles for members, users should have privilidges which combine multiple rights into one and make it easy to assign - -export class Rights extends BitField { - constructor(bits: BitFieldResolvable = 0) { - super(bits); - if (this.bitfield & Rights.FLAGS.OPERATOR) { - this.bitfield = ALL_RIGHTS; - } - } - - static FLAGS = { - OPERATOR: BitFlag(0), // has all rights - MANAGE_APPLICATIONS: BitFlag(1), - MANAGE_GUILDS: BitFlag(2), - MANAGE_MESSAGES: BitFlag(3), // Can't see other messages but delete/edit them in channels that they can see - MANAGE_RATE_LIMITS: BitFlag(4), - MANAGE_ROUTING: BitFlag(5), // can create custom message routes to any channel/guild - MANAGE_TICKETS: BitFlag(6), // can respond to and resolve support tickets - MANAGE_USERS: BitFlag(7), - ADD_MEMBERS: BitFlag(8), // can manually add any members in their guilds - BYPASS_RATE_LIMITS: BitFlag(9), - CREATE_APPLICATIONS: BitFlag(10), - CREATE_CHANNELS: BitFlag(11), // can create guild channels or threads in the guilds that they have permission - CREATE_DMS: BitFlag(12), - CREATE_DM_GROUPS: BitFlag(13), // can create group DMs or custom orphan channels - CREATE_GUILDS: BitFlag(14), - CREATE_INVITES: BitFlag(15), // can create mass invites in the guilds that they have CREATE_INSTANT_INVITE - CREATE_ROLES: BitFlag(16), - CREATE_TEMPLATES: BitFlag(17), - CREATE_WEBHOOKS: BitFlag(18), - JOIN_GUILDS: BitFlag(19), - PIN_MESSAGES: BitFlag(20), - SELF_ADD_REACTIONS: BitFlag(21), - SELF_DELETE_MESSAGES: BitFlag(22), - SELF_EDIT_MESSAGES: BitFlag(23), - SELF_EDIT_NAME: BitFlag(24), - SEND_MESSAGES: BitFlag(25), - USE_ACTIVITIES: BitFlag(26), // use (game) activities in voice channels (e.g. Watch together) - USE_VIDEO: BitFlag(27), - USE_VOICE: BitFlag(28), - INVITE_USERS: BitFlag(29), // can create user-specific invites in the guilds that they have INVITE_USERS - SELF_DELETE_DISABLE: BitFlag(30), // can disable/delete own account - DEBTABLE: BitFlag(31), // can use pay-to-use features - CREDITABLE: BitFlag(32), // can receive money from monetisation related features - KICK_BAN_MEMBERS: BitFlag(33), - // can kick or ban guild or group DM members in the guilds/groups that they have KICK_MEMBERS, or BAN_MEMBERS - SELF_LEAVE_GROUPS: BitFlag(34), - // can leave the guilds or group DMs that they joined on their own (one can always leave a guild or group DMs they have been force-added) - PRESENCE: BitFlag(35), - // inverts the presence confidentiality default (OPERATOR's presence is not routed by default, others' are) for a given user - SELF_ADD_DISCOVERABLE: BitFlag(36), // can mark discoverable guilds that they have permissions to mark as discoverable - MANAGE_GUILD_DIRECTORY: BitFlag(37), // can change anything in the primary guild directory - POGGERS: BitFlag(38), // can send confetti, screenshake, random user mention (@someone) - USE_ACHIEVEMENTS: BitFlag(39), // can use achievements and cheers - INITIATE_INTERACTIONS: BitFlag(40), // can initiate interactions - RESPOND_TO_INTERACTIONS: BitFlag(41), // can respond to interactions - SEND_BACKDATED_EVENTS: BitFlag(42), // can send backdated events - USE_MASS_INVITES: BitFlag(43), // added per @xnacly's request — can accept mass invites - ACCEPT_INVITES: BitFlag(44) // added per @xnacly's request — can accept user-specific invites and DM requests - }; - - any(permission: RightResolvable, checkOperator = true) { - return (checkOperator && super.any(Rights.FLAGS.OPERATOR)) || super.any(permission); - } - - has(permission: RightResolvable, checkOperator = true) { - return (checkOperator && super.has(Rights.FLAGS.OPERATOR)) || super.has(permission); - } - - hasThrow(permission: RightResolvable) { - if (this.has(permission)) return true; - // @ts-ignore - throw new HTTPError(`You are missing the following rights ${permission}`, 403); - } - -} - -const ALL_RIGHTS = Object.values(Rights.FLAGS).reduce((total, val) => total | val, BigInt(0)); - -export async function getRights( user_id: string - /**, opts: { - in_behalf?: (keyof User)[]; - } = {} **/) { - let user = await User.findOneOrFail({ where: { id: user_id } }); - return new Rights(user.rights); -} diff --git a/util/src/util/Snowflake.ts b/util/src/util/Snowflake.ts deleted file mode 100644 index 0ef178fe..00000000 --- a/util/src/util/Snowflake.ts +++ /dev/null @@ -1,130 +0,0 @@ -// @ts-nocheck -import * as cluster from "cluster"; - -// https://github.com/discordjs/discord.js/blob/master/src/util/Snowflake.js -// Apache License Version 2.0 Copyright 2015 - 2021 Amish Shah -("use strict"); - -// Discord epoch (2015-01-01T00:00:00.000Z) - -/** - * A container for useful snowflake-related methods. - */ -export class Snowflake { - static readonly EPOCH = 1420070400000; - static INCREMENT = 0n; // max 4095 - static processId = BigInt(process.pid % 31); // max 31 - static workerId = BigInt((cluster.worker?.id || 0) % 31); // max 31 - - constructor() { - throw new Error(`The ${this.constructor.name} class may not be instantiated.`); - } - - /** - * A Twitter-like snowflake, except the epoch is 2015-01-01T00:00:00.000Z - * ``` - * If we have a snowflake '266241948824764416' we can represent it as binary: - * - * 64 22 17 12 0 - * 000000111011000111100001101001000101000000 00001 00000 000000000000 - * number of ms since Discord epoch worker pid increment - * ``` - * @typedef {string} Snowflake - */ - - /** - * Transforms a snowflake from a decimal string to a bit string. - * @param {Snowflake} num Snowflake to be transformed - * @returns {string} - * @private - */ - static idToBinary(num) { - let bin = ""; - let high = parseInt(num.slice(0, -10)) || 0; - let low = parseInt(num.slice(-10)); - while (low > 0 || high > 0) { - bin = String(low & 1) + bin; - low = Math.floor(low / 2); - if (high > 0) { - low += 5000000000 * (high % 2); - high = Math.floor(high / 2); - } - } - return bin; - } - - /** - * Transforms a snowflake from a bit string to a decimal string. - * @param {string} num Bit string to be transformed - * @returns {Snowflake} - * @private - */ - static binaryToID(num) { - let dec = ""; - - while (num.length > 50) { - const high = parseInt(num.slice(0, -32), 2); - const low = parseInt((high % 10).toString(2) + num.slice(-32), 2); - - dec = (low % 10).toString() + dec; - num = - Math.floor(high / 10).toString(2) + - Math.floor(low / 10) - .toString(2) - .padStart(32, "0"); - } - - num = parseInt(num, 2); - while (num > 0) { - dec = (num % 10).toString() + dec; - num = Math.floor(num / 10); - } - - return dec; - } - - static generateWorkerProcess() { // worker process - returns a number - let time = BigInt(Date.now() - Snowflake.EPOCH) << BigInt(22); - let worker = Snowflake.workerId << 17n; - let process = Snowflake.processId << 12n; - let increment = Snowflake.INCREMENT++; - return BigInt(time | worker | process | increment); - } - - static generate() { - return Snowflake.generateWorkerProcess().toString(); - } - /** - * A deconstructed snowflake. - * @typedef {Object} DeconstructedSnowflake - * @property {number} timestamp Timestamp the snowflake was created - * @property {Date} date Date the snowflake was created - * @property {number} workerID Worker ID in the snowflake - * @property {number} processID Process ID in the snowflake - * @property {number} increment Increment in the snowflake - * @property {string} binary Binary representation of the snowflake - */ - - /** - * Deconstructs a Discord snowflake. - * @param {Snowflake} snowflake Snowflake to deconstruct - * @returns {DeconstructedSnowflake} Deconstructed snowflake - */ - static deconstruct(snowflake) { - const BINARY = Snowflake.idToBinary(snowflake).toString(2).padStart(64, "0"); - const res = { - timestamp: parseInt(BINARY.substring(0, 42), 2) + Snowflake.EPOCH, - workerID: parseInt(BINARY.substring(42, 47), 2), - processID: parseInt(BINARY.substring(47, 52), 2), - increment: parseInt(BINARY.substring(52, 64), 2), - binary: BINARY, - }; - Object.defineProperty(res, "date", { - get: function get() { - return new Date(this.timestamp); - }, - enumerable: true, - }); - return res; - } -} diff --git a/util/src/util/String.ts b/util/src/util/String.ts deleted file mode 100644 index 55f11e8d..00000000 --- a/util/src/util/String.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { SPECIAL_CHAR } from "./Regex"; - -export function trimSpecial(str?: string): string { - // @ts-ignore - if (!str) return; - return str.replace(SPECIAL_CHAR, "").trim(); -} diff --git a/util/src/util/Token.ts b/util/src/util/Token.ts deleted file mode 100644 index 5a3922d1..00000000 --- a/util/src/util/Token.ts +++ /dev/null @@ -1,51 +0,0 @@ -import jwt, { VerifyOptions } from "jsonwebtoken"; -import { Config } from "./Config"; -import { User } from "../entities"; - -export const JWTOptions: VerifyOptions = { algorithms: ["HS256"] }; - -export function checkToken(token: string, jwtSecret: string): Promise { - return new Promise((res, rej) => { - token = token.replace("Bot ", ""); - /** - in fosscord, even with instances that have bot distinction; we won't enforce "Bot" prefix, - as we don't really have separate pathways for bots - **/ - - jwt.verify(token, jwtSecret, JWTOptions, async (err, decoded: any) => { - if (err || !decoded) return rej("Invalid Token"); - - const user = await User.findOne({ - where: { id: decoded.id }, - select: ["data", "bot", "disabled", "deleted", "rights"] - }); - if (!user) return rej("Invalid Token"); - // we need to round it to seconds as it saved as seconds in jwt iat and valid_tokens_since is stored in milliseconds - if (decoded.iat * 1000 < new Date(user.data.valid_tokens_since).setSeconds(0, 0)) - return rej("Invalid Token"); - if (user.disabled) return rej("User disabled"); - if (user.deleted) return rej("User not found"); - - return res({ decoded, user }); - }); - }); -} - -export async function generateToken(id: string) { - const iat = Math.floor(Date.now() / 1000); - const algorithm = "HS256"; - - return new Promise((res, rej) => { - jwt.sign( - { id: id, iat }, - Config.get().security.jwtSecret, - { - algorithm, - }, - (err, token) => { - if (err) return rej(err); - return res(token); - } - ); - }); -} diff --git a/util/src/util/TraverseDirectory.ts b/util/src/util/TraverseDirectory.ts deleted file mode 100644 index 3d0d6279..00000000 --- a/util/src/util/TraverseDirectory.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Server, traverseDirectory } from "lambert-server"; - -//if we're using ts-node, use ts files instead of js -const extension = Symbol.for("ts-node.register.instance") in process ? "ts" : "js" - -const DEFAULT_FILTER = new RegExp("^([^\.].*)(? { - if (!body || !body.startsWith("data:")) return undefined; - try { - const mimetype = body.split(":")[1].split(";")[0]; - const buffer = Buffer.from(body.split(",")[1], "base64"); - - // @ts-ignore - const { id } = await uploadFile(path, { buffer, mimetype, originalname: "banner" }); - return id; - } catch (error) { - console.error(error); - throw new HTTPError("Invalid " + path); - } -} - -export async function deleteFile(path: string) { - const response = await fetch(`${Config.get().cdn.endpointPrivate || "http://localhost:3003"}${path}`, { - headers: { - signature: Config.get().security.requestSignature, - }, - method: "DELETE", - }); - const result = await response.json(); - - if (response.status !== 200) throw result; - return result; -} diff --git a/util/src/util/imports/Checks.ts b/util/src/util/imports/Checks.ts deleted file mode 100644 index 19a84171..00000000 --- a/util/src/util/imports/Checks.ts +++ /dev/null @@ -1,125 +0,0 @@ -//source: https://github.com/Flam3rboy/-server/blob/master/src/check.ts -import { NextFunction, Request, Response } from "express"; -import { HTTPError } from "."; - -const OPTIONAL_PREFIX = "$"; -const EMAIL_REGEX = - /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; - -export function check(schema: any) { - return (req: Request, res: Response, next: NextFunction) => { - try { - const result = instanceOf(schema, req.body, { path: "body" }); - if (result === true) return next(); - throw result; - } catch (error) { - next(new HTTPError((error as any).toString(), 400)); - } - }; -} -export class Tuple { - public types: any[]; - constructor(...types: any[]) { - this.types = types; - } -} - -export class Email { - constructor(public email: string) {} - check() { - return !!this.email.match(EMAIL_REGEX); - } -} -export function instanceOf( - type: any, - value: any, - { path = "", optional = false }: { path?: string; optional?: boolean } = {} -): boolean { - if (!type) return true; // no type was specified - - if (value == null) { - if (optional) return true; - throw `${path} is required`; - } - - switch (type) { - case String: - if (typeof value === "string") return true; - throw `${path} must be a string`; - case Number: - value = Number(value); - if (typeof value === "number" && !isNaN(value)) return true; - throw `${path} must be a number`; - case BigInt: - try { - value = BigInt(value); - if (typeof value === "bigint") return true; - } catch (error) {} - throw `${path} must be a bigint`; - case Boolean: - if (value == "true") value = true; - if (value == "false") value = false; - if (typeof value === "boolean") return true; - throw `${path} must be a boolean`; - case Object: - if (typeof value === "object" && value !== null) return true; - throw `${path} must be a object`; - } - - if (typeof type === "object") { - if (Array.isArray(type)) { - if (!Array.isArray(value)) throw `${path} must be an array`; - if (!type.length) return true; // type array didn't specify any type - - return value.every((val, i) => instanceOf(type[0], val, { path: `${path}[${i}]`, optional })); - } - if (type?.constructor?.name != "Object") { - if (type instanceof Tuple) { - if ( - (type).types.some((x) => { - try { - return instanceOf(x, value, { path, optional }); - } catch (error) { - return false; - } - }) - ) { - return true; - } - throw `${path} must be one of ${type.types}`; - } - if (type instanceof Email) { - if ((type).check()) return true; - throw `${path} is not a valid E-Mail`; - } - if (value instanceof type) return true; - throw `${path} must be an instance of ${type}`; - } - if (typeof value !== "object") throw `${path} must be a object`; - - const diff = Object.keys(value).missing( - Object.keys(type).map((x) => (x.startsWith(OPTIONAL_PREFIX) ? x.slice(OPTIONAL_PREFIX.length) : x)) - ); - - if (diff.length) throw `Unkown key ${diff}`; - - return Object.keys(type).every((key) => { - let newKey = key; - const OPTIONAL = key.startsWith(OPTIONAL_PREFIX); - if (OPTIONAL) newKey = newKey.slice(OPTIONAL_PREFIX.length); - - return instanceOf(type[key], value[newKey], { - path: `${path}.${newKey}`, - optional: OPTIONAL, - }); - }); - } else if (typeof type === "number" || typeof type === "string" || typeof type === "boolean") { - if (value === type) return true; - throw `${path} must be ${value}`; - } else if (typeof type === "bigint") { - if (BigInt(value) === type) return true; - throw `${path} must be ${value}`; - } - - return type == value; -} diff --git a/util/src/util/imports/HTTPError.ts b/util/src/util/imports/HTTPError.ts deleted file mode 100644 index 56a7dd55..00000000 --- a/util/src/util/imports/HTTPError.ts +++ /dev/null @@ -1,5 +0,0 @@ -export class HTTPError extends Error { - constructor(message: string, public code: number = 400) { - super(message); - } -} \ No newline at end of file diff --git a/util/src/util/imports/OrmUtils.ts b/util/src/util/imports/OrmUtils.ts deleted file mode 100644 index 91d88172..00000000 --- a/util/src/util/imports/OrmUtils.ts +++ /dev/null @@ -1,113 +0,0 @@ -//source: https://github.com/typeorm/typeorm/blob/master/src/util/OrmUtils.ts -export class OrmUtils { - // Checks if it's an object made by Object.create(null), {} or new Object() - private static isPlainObject(item: any) { - if (item === null || item === undefined) { - return false - } - - return !item.constructor || item.constructor === Object - } - - private static mergeArrayKey( - target: any, - key: number, - value: any, - memo: Map, - ) { - // Have we seen this before? Prevent infinite recursion. - if (memo.has(value)) { - target[key] = memo.get(value) - return - } - - if (value instanceof Promise) { - // Skip promises entirely. - // This is a hold-over from the old code & is because we don't want to pull in - // the lazy fields. Ideally we'd remove these promises via another function first - // but for now we have to do it here. - return - } - - if (!this.isPlainObject(value) && !Array.isArray(value)) { - target[key] = value - return - } - - if (!target[key]) { - target[key] = Array.isArray(value) ? [] : {} - } - - memo.set(value, target[key]) - this.merge(target[key], value, memo) - memo.delete(value) - } - - private static mergeObjectKey( - target: any, - key: string, - value: any, - memo: Map, - ) { - // Have we seen this before? Prevent infinite recursion. - if (memo.has(value)) { - Object.assign(target, { [key]: memo.get(value) }) - return - } - - if (value instanceof Promise) { - // Skip promises entirely. - // This is a hold-over from the old code & is because we don't want to pull in - // the lazy fields. Ideally we'd remove these promises via another function first - // but for now we have to do it here. - return - } - - if (!this.isPlainObject(value) && !Array.isArray(value)) { - Object.assign(target, { [key]: value }) - return - } - - if (!target[key]) { - Object.assign(target, { [key]: value }) - } - - memo.set(value, target[key]) - this.merge(target[key], value, memo) - memo.delete(value) - } - - private static merge( - target: any, - source: any, - memo: Map = new Map(), - ): any { - if (Array.isArray(target) && Array.isArray(source)) { - for (let key = 0; key < source.length; key++) { - this.mergeArrayKey(target, key, source[key], memo) - } - } - else { - for (const key of Object.keys(source)) { - this.mergeObjectKey(target, key, source[key], memo) - } - } - - - } - - /** - * Deep Object.assign. - */ - static mergeDeep(target: any, ...sources: any[]): any { - if (!sources.length) { - return target - } - - for (const source of sources) { - OrmUtils.merge(target, source) - } - - return target - } -} \ No newline at end of file diff --git a/util/src/util/imports/index.ts b/util/src/util/imports/index.ts deleted file mode 100644 index 18c47a3b..00000000 --- a/util/src/util/imports/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './Checks'; -export * from './HTTPError'; -export * from './OrmUtils'; \ No newline at end of file diff --git a/util/src/util/index.ts b/util/src/util/index.ts deleted file mode 100644 index 9e6059fa..00000000 --- a/util/src/util/index.ts +++ /dev/null @@ -1,26 +0,0 @@ -export * from "./ApiError"; -export * from "./BitField"; -export * from "./Token"; -export * from "./imports/HTTPError"; -export * from "./imports/OrmUtils"; -//export * from "./Categories"; -export * from "./cdn"; -export * from "./Config"; -export * from "./Constants"; -export * from "./Database"; -export * from "./Email"; -export * from "./Event"; -export * from "./FieldError"; -export * from "./Intents"; -export * from "./MessageFlags"; -export * from "./Permissions"; -export * from "./RabbitMQ"; -export * from "./Regex"; -export * from "./Rights"; -export * from "./Snowflake"; -export * from "./String"; -export * from "./Array"; -export * from "./TraverseDirectory"; -export * from "./InvisibleCharacters"; - -export * from "./imports/index"; diff --git a/util/tests/User.test.js b/util/tests/User.test.js deleted file mode 100644 index c0852ebc..00000000 --- a/util/tests/User.test.js +++ /dev/null @@ -1,43 +0,0 @@ -const { initDatabase, closeDatabase } = require("../dist/util/Database"); -const { User } = require("../dist/entities/User"); -jest.setTimeout(20000); - -beforeAll((done) => { - initDatabase().then(() => { - done(); - }); -}); - -afterAll(() => { - closeDatabase(); -}); - -describe("User", () => { - test("valid discriminator: 1", async () => { - new User({ discriminator: "1" }).validate(); - }); - test("invalid discriminator: test", async () => { - expect(() => { - new User({ discriminator: "test" }).validate(); - }).toThrow(); - }); - - test("invalid discriminator: 0", async () => { - expect(() => { - new User({ discriminator: "0" }).validate(); - }).toThrow(); - }); - - test("add guild", async () => { - try { - await new User({ guilds: [], discriminator: "1" }, { id: "0" }).save(); - const user = await User.find("0"); - - user.guilds.push(new Guild({ name: "test" })); - - user.save(); - } catch (error) { - console.error(error); - } - }); -}); diff --git a/util/tests/setupJest.js b/util/tests/setupJest.js deleted file mode 100644 index 378d72d5..00000000 --- a/util/tests/setupJest.js +++ /dev/null @@ -1,23 +0,0 @@ -const { performance } = require("perf_hooks"); -const fs = require("fs"); -const path = require("path"); - -// fs.unlinkSync(path.join(__dirname, "..", "database.db")); - -global.expect.extend({ - toBeFasterThan: async (func, target) => { - const start = performance.now(); - let error; - try { - await func(); - } catch (e) { - error = e.toString(); - } - const time = performance.now() - start; - - return { - pass: time < target && !error, - message: () => error || `${func.name} took ${time}ms of maximum ${target}`, - }; - }, -}); diff --git a/util/tsconfig.json b/util/tsconfig.json deleted file mode 100644 index a5d5ae05..00000000 --- a/util/tsconfig.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "include": ["src/**/*.ts"], - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Basic Options */ - "incremental": false /* Enable incremental compilation */, - "target": "ES6" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - "lib": ["ES2021"] /* Specify library files to be included in the compilation. */, - "allowJs": true /* Allow javascript files to be compiled. */, - "checkJs": true /* Report errors in .js files. */, - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - "declaration": true /* Generates corresponding '.d.ts' file. */, - "declarationMap": false /* Generates a sourcemap for each corresponding '.d.ts' file. */, - "sourceMap": true /* Generates corresponding '.map' file. */, - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./dist/" /* Redirect output structure to the directory. */, - "rootDir": "./src/" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true /* Enable all strict type-checking options. */, - "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, - "strictNullChecks": true /* Enable strict null checks. */, - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */, - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - - /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */ - // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - "types": ["node"] /* Type declaration files to be included in compilation. */, - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "skipLibCheck": true /* Skip type checking of declaration files. */, - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "resolveJsonModule": true - } -} diff --git a/webrtc/.DS_Store b/webrtc/.DS_Store deleted file mode 100644 index bfb0a416..00000000 Binary files a/webrtc/.DS_Store and /dev/null differ diff --git a/webrtc/.gitignore b/webrtc/.gitignore deleted file mode 100644 index 67045665..00000000 --- a/webrtc/.gitignore +++ /dev/null @@ -1,104 +0,0 @@ -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -lerna-debug.log* - -# Diagnostic reports (https://nodejs.org/api/report.html) -report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json - -# Runtime data -pids -*.pid -*.seed -*.pid.lock - -# Directory for instrumented libs generated by jscoverage/JSCover -lib-cov - -# Coverage directory used by tools like istanbul -coverage -*.lcov - -# nyc test coverage -.nyc_output - -# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) -.grunt - -# Bower dependency directory (https://bower.io/) -bower_components - -# node-waf configuration -.lock-wscript - -# Compiled binary addons (https://nodejs.org/api/addons.html) -build/Release - -# Dependency directories -node_modules/ -jspm_packages/ - -# TypeScript v1 declaration files -typings/ - -# TypeScript cache -*.tsbuildinfo - -# Optional npm cache directory -.npm - -# Optional eslint cache -.eslintcache - -# Microbundle cache -.rpt2_cache/ -.rts2_cache_cjs/ -.rts2_cache_es/ -.rts2_cache_umd/ - -# Optional REPL history -.node_repl_history - -# Output of 'npm pack' -*.tgz - -# Yarn Integrity file -.yarn-integrity - -# dotenv environment variables file -.env -.env.test - -# parcel-bundler cache (https://parceljs.org/) -.cache - -# Next.js build output -.next - -# Nuxt.js build / generate output -.nuxt -dist - -# Gatsby files -.cache/ -# Comment in the public line in if your project uses Gatsby and *not* Next.js -# https://nextjs.org/blog/next-9-1#public-directory-support -# public - -# vuepress build output -.vuepress/dist - -# Serverless directories -.serverless/ - -# FuseBox cache -.fusebox/ - -# DynamoDB Local files -.dynamodb/ - -# TernJS port file -.tern-port diff --git a/webrtc/README.md b/webrtc/README.md deleted file mode 100644 index c18ef54b..00000000 --- a/webrtc/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# fosscord-rtc-js - -A javascript fosscord webrtc server for voice and video communication diff --git a/webrtc/package-lock.json b/webrtc/package-lock.json deleted file mode 100644 index a5db2de1..00000000 --- a/webrtc/package-lock.json +++ /dev/null @@ -1,733 +0,0 @@ -{ - "name": "rtc", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "rtc", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "mediasoup": "^3.7.16", - "node-turn": "^0.0.6", - "ws": "^7.4.6" - }, - "devDependencies": { - "@types/node": "^15.6.1", - "@types/ws": "^7.4.4", - "typescript": "^4.3.2" - } - }, - "node_modules/@types/node": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.6.1.tgz", - "integrity": "sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==", - "dev": true - }, - "node_modules/@types/ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-d/7W23JAXPodQNbOZNXvl2K+bqAQrCMwlh/nuQsPSQk6Fq0opHoPrUw43aHsvSbIiQPr8Of2hkFbnz1XBFVyZQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/awaitqueue": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/awaitqueue/-/awaitqueue-2.3.3.tgz", - "integrity": "sha512-RbzQg6VtPUtyErm55iuQLTrBJ2uihy5BKBOEkyBwv67xm5Fn2o/j+Bz+a5BmfSoe2oZ5dcz9Z3fExS8pL+LLhw==", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/crc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "dependencies": { - "buffer": "^5.1.0" - } - }, - "node_modules/date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, - "node_modules/h264-profile-level-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/h264-profile-level-id/-/h264-profile-level-id-1.0.1.tgz", - "integrity": "sha512-D3Rln/jKNjKDW5ZTJTK3niSoOGE+pFqPvRHHVgQN3G7umcn/zWGPUo8Q8VpDj16x3hKz++zVviRNRmXu5cpN+Q==", - "dependencies": { - "debug": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/h264-profile-level-id/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/h264-profile-level-id/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", - "dependencies": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/log4js/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/log4js/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mediasoup": { - "version": "3.7.16", - "resolved": "https://registry.npmjs.org/mediasoup/-/mediasoup-3.7.16.tgz", - "integrity": "sha512-eD7VJj117zVYF8f4KYgQh2DzaYyzTvBtNa4ocT45eCjt0Y47dveKmfL5LW0LQL1LMYkBhfx/etHLjE/1AhNmwg==", - "hasInstallScript": true, - "dependencies": { - "@types/node": "^14.14.43", - "awaitqueue": "^2.3.3", - "debug": "^4.3.1", - "h264-profile-level-id": "^1.0.1", - "netstring": "^0.3.0", - "random-number": "^0.0.9", - "supports-color": "^8.1.1", - "uuid": "^8.3.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mediasoup" - } - }, - "node_modules/mediasoup/node_modules/@types/node": { - "version": "14.17.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.3.tgz", - "integrity": "sha512-e6ZowgGJmTuXa3GyaPbTGxX17tnThl2aSSizrFthQ7m9uLGZBXiGhgE55cjRZTF5kjZvYn9EOPOMljdjwbflxw==" - }, - "node_modules/mediasoup/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/mediasoup/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/netstring": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/netstring/-/netstring-0.3.0.tgz", - "integrity": "sha1-ho3FsgxY0/cwVTHUk2jqqr0ZtxI=", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/node-turn": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/node-turn/-/node-turn-0.0.6.tgz", - "integrity": "sha512-HJRfWIADk5I61jZlrKHwx/A+IgusnN7Fs/M9wl0xuSxTynKnh4ZBLvvIeBH5w556bl2bFFkzHiCJFIZ3FR7fmA==", - "dependencies": { - "crc": "~3.8.0", - "js-yaml": "~3.14.0", - "log4js": "~6.3.0" - } - }, - "node_modules/random-number": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/random-number/-/random-number-0.0.9.tgz", - "integrity": "sha512-ipG3kRCREi/YQpi2A5QGcvDz1KemohovWmH6qGfboVyyGdR2t/7zQz0vFxrfxpbHQgPPdtVlUDaks3aikD1Ljw==" - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "node_modules/streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", - "dependencies": { - "date-format": "^2.1.0", - "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/streamroller/node_modules/date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/streamroller/node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/streamroller/node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/typescript": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz", - "integrity": "sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - } - }, - "dependencies": { - "@types/node": { - "version": "15.6.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-15.6.1.tgz", - "integrity": "sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==", - "dev": true - }, - "@types/ws": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.4.tgz", - "integrity": "sha512-d/7W23JAXPodQNbOZNXvl2K+bqAQrCMwlh/nuQsPSQk6Fq0opHoPrUw43aHsvSbIiQPr8Of2hkFbnz1XBFVyZQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "awaitqueue": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/awaitqueue/-/awaitqueue-2.3.3.tgz", - "integrity": "sha512-RbzQg6VtPUtyErm55iuQLTrBJ2uihy5BKBOEkyBwv67xm5Fn2o/j+Bz+a5BmfSoe2oZ5dcz9Z3fExS8pL+LLhw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "crc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "requires": { - "buffer": "^5.1.0" - } - }, - "date-format": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", - "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "graceful-fs": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", - "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" - }, - "h264-profile-level-id": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/h264-profile-level-id/-/h264-profile-level-id-1.0.1.tgz", - "integrity": "sha512-D3Rln/jKNjKDW5ZTJTK3niSoOGE+pFqPvRHHVgQN3G7umcn/zWGPUo8Q8VpDj16x3hKz++zVviRNRmXu5cpN+Q==", - "requires": { - "debug": "^4.1.1" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "log4js": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", - "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", - "requires": { - "date-format": "^3.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.1", - "rfdc": "^1.1.4", - "streamroller": "^2.2.4" - }, - "dependencies": { - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "mediasoup": { - "version": "3.7.16", - "resolved": "https://registry.npmjs.org/mediasoup/-/mediasoup-3.7.16.tgz", - "integrity": "sha512-eD7VJj117zVYF8f4KYgQh2DzaYyzTvBtNa4ocT45eCjt0Y47dveKmfL5LW0LQL1LMYkBhfx/etHLjE/1AhNmwg==", - "requires": { - "@types/node": "^14.14.43", - "awaitqueue": "^2.3.3", - "debug": "^4.3.1", - "h264-profile-level-id": "^1.0.1", - "netstring": "^0.3.0", - "random-number": "^0.0.9", - "supports-color": "^8.1.1", - "uuid": "^8.3.2" - }, - "dependencies": { - "@types/node": { - "version": "14.17.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.3.tgz", - "integrity": "sha512-e6ZowgGJmTuXa3GyaPbTGxX17tnThl2aSSizrFthQ7m9uLGZBXiGhgE55cjRZTF5kjZvYn9EOPOMljdjwbflxw==" - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "netstring": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/netstring/-/netstring-0.3.0.tgz", - "integrity": "sha1-ho3FsgxY0/cwVTHUk2jqqr0ZtxI=" - }, - "node-turn": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/node-turn/-/node-turn-0.0.6.tgz", - "integrity": "sha512-HJRfWIADk5I61jZlrKHwx/A+IgusnN7Fs/M9wl0xuSxTynKnh4ZBLvvIeBH5w556bl2bFFkzHiCJFIZ3FR7fmA==", - "requires": { - "crc": "~3.8.0", - "js-yaml": "~3.14.0", - "log4js": "~6.3.0" - } - }, - "random-number": { - "version": "0.0.9", - "resolved": "https://registry.npmjs.org/random-number/-/random-number-0.0.9.tgz", - "integrity": "sha512-ipG3kRCREi/YQpi2A5QGcvDz1KemohovWmH6qGfboVyyGdR2t/7zQz0vFxrfxpbHQgPPdtVlUDaks3aikD1Ljw==" - }, - "rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "streamroller": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", - "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", - "requires": { - "date-format": "^2.1.0", - "debug": "^4.1.1", - "fs-extra": "^8.1.0" - }, - "dependencies": { - "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==" - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "requires": { - "ms": "2.1.2" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - } - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "typescript": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz", - "integrity": "sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} - } - } -} diff --git a/webrtc/package.json b/webrtc/package.json deleted file mode 100644 index d973dd7e..00000000 --- a/webrtc/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "rtc", - "version": "1.0.0", - "description": "A javascript fosscord webrtc server for voice and video communication", - "main": "index.js", - "scripts": { - "test": "npm run build && node dist/test.js", - "build": "npx tsc -p .", - "start": "npm run build && node dist/start.js" - }, - "keywords": [], - "author": "Fosscord", - "license": "AGPL-3.0-only", - "devDependencies": { - "@types/node": "^15.6.1", - "@types/ws": "^7.4.4", - "typescript": "^4.3.2" - }, - "dependencies": { - "mediasoup": "^3.7.16", - "node-turn": "^0.0.6", - "ws": "^7.4.6" - } -} diff --git a/webrtc/src/Server.ts b/webrtc/src/Server.ts deleted file mode 100644 index 3199b9c1..00000000 --- a/webrtc/src/Server.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Server as WebSocketServer } from "ws"; -import { Config, db } from "@fosscord/util"; -import mediasoup from "mediasoup"; - -let port = Number(process.env.PORT); -if (isNaN(port)) port = 3004; - -export class Server { - public ws: WebSocketServer; - public turn: any; - - constructor() { - this.ws = new WebSocketServer({ - port, - maxPayload: 4096, - }); - this.ws.on("connection", (socket) => { - socket.on("message", (message) => { - socket.emit( - JSON.stringify({ - op: 2, - d: { - ssrc: 1, - ip: "127.0.0.1", - port: 3004, - modes: [ - "xsalsa20_poly1305", - "xsalsa20_poly1305_suffix", - "xsalsa20_poly1305_lite", - ], - heartbeat_interval: 1, - }, - }) - ); - }); - }); - } - - async listen(): Promise { - // @ts-ignore - await (db as Promise); - await Config.init(); - console.log("[DB] connected"); - console.log(`[WebRTC] online on 0.0.0.0:${port}`); - } -} diff --git a/webrtc/src/index.ts b/webrtc/src/index.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/webrtc/src/start.ts b/webrtc/src/start.ts deleted file mode 100644 index 68867a2c..00000000 --- a/webrtc/src/start.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Server } from "./Server"; - -const server = new Server(); diff --git a/webrtc/src/test.ts b/webrtc/src/test.ts deleted file mode 100644 index df407b56..00000000 --- a/webrtc/src/test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { getSupportedRtpCapabilities } from "mediasoup"; - -async function test() { - console.log(getSupportedRtpCapabilities()); -} -setTimeout(() => {}, 1000000); - -test(); diff --git a/webrtc/tsconfig.json b/webrtc/tsconfig.json deleted file mode 100644 index 77353db0..00000000 --- a/webrtc/tsconfig.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "include": ["src/**/*.ts"], - "compilerOptions": { - /* Visit https://aka.ms/tsconfig.json to read more about this file */ - - /* Basic Options */ - // "incremental": true, /* Enable incremental compilation */ - "target": "ESNext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - "lib": [ - "ES2021" - ] /* Specify library files to be included in the compilation. */, - "allowJs": true /* Allow javascript files to be compiled. */, - "checkJs": true /* Report errors in .js files. */, - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - "declaration": true /* Generates corresponding '.d.ts' file. */, - "declarationMap": false /* Generates a sourcemap for each corresponding '.d.ts' file. */, - "sourceMap": true /* Generates corresponding '.map' file. */, - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./dist/" /* Redirect output structure to the directory. */, - "rootDir": "./src/" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true /* Enable all strict type-checking options. */, - "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, - "strictNullChecks": true /* Enable strict null checks. */, - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */, - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - - /* Module Resolution Options */ - // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - "types": [ - "node" - ] /* Type declaration files to be included in compilation. */, - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "skipLibCheck": true /* Skip type checking of declaration files. */, - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */ - } -} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..3173ddfa --- /dev/null +++ b/yarn.lock @@ -0,0 +1,6802 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@ampproject/remapping@^2.1.0": + version "2.2.0" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" + integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + dependencies: + "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@aws-crypto/crc32@2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-2.0.0.tgz" + integrity sha512-TvE1r2CUueyXOuHdEigYjIZVesInd9KN+K/TFFNfkkxRThiNxO6i4ZqqAVMoEjAamZZ1AA8WXJkjCz7YShHPQA== + dependencies: + "@aws-crypto/util" "^2.0.0" + "@aws-sdk/types" "^3.1.0" + tslib "^1.11.1" + +"@aws-crypto/crc32c@2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-2.0.0.tgz" + integrity sha512-vF0eMdMHx3O3MoOXUfBZry8Y4ZDtcuskjjKgJz8YfIDjLStxTZrYXk+kZqtl6A0uCmmiN/Eb/JbC/CndTV1MHg== + dependencies: + "@aws-crypto/util" "^2.0.0" + "@aws-sdk/types" "^3.1.0" + tslib "^1.11.1" + +"@aws-crypto/ie11-detection@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz" + integrity sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/sha1-browser@2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-2.0.0.tgz" + integrity sha512-3fIVRjPFY8EG5HWXR+ZJZMdWNRpwbxGzJ9IH9q93FpbgCH8u8GHRi46mZXp3cYD7gealmyqpm3ThZwLKJjWJhA== + dependencies: + "@aws-crypto/ie11-detection" "^2.0.0" + "@aws-crypto/supports-web-crypto" "^2.0.0" + "@aws-sdk/types" "^3.1.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-browser@2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz" + integrity sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A== + dependencies: + "@aws-crypto/ie11-detection" "^2.0.0" + "@aws-crypto/sha256-js" "^2.0.0" + "@aws-crypto/supports-web-crypto" "^2.0.0" + "@aws-crypto/util" "^2.0.0" + "@aws-sdk/types" "^3.1.0" + "@aws-sdk/util-locate-window" "^3.0.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-crypto/sha256-js@2.0.0", "@aws-crypto/sha256-js@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz" + integrity sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig== + dependencies: + "@aws-crypto/util" "^2.0.0" + "@aws-sdk/types" "^3.1.0" + tslib "^1.11.1" + +"@aws-crypto/supports-web-crypto@^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz" + integrity sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA== + dependencies: + tslib "^1.11.1" + +"@aws-crypto/util@^2.0.0": + version "2.0.1" + resolved "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz" + integrity sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ== + dependencies: + "@aws-sdk/types" "^3.1.0" + "@aws-sdk/util-utf8-browser" "^3.0.0" + tslib "^1.11.1" + +"@aws-sdk/abort-controller@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.127.0.tgz" + integrity sha512-G77FLYcl9egUoD3ZmR6TX94NMqBMeT53hBGrEE3uVUJV1CwfGKfaF007mPpRZnIB3avnJBQGEK6MrwlCfv2qAw== + dependencies: + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/chunked-blob-reader-native@3.109.0": + version "3.109.0" + resolved "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.109.0.tgz" + integrity sha512-Ybn3vDZ3CqGyprL2qdF6QZqoqlx8lA3qOJepobjuKKDRw+KgGxjUY4NvWe0R2MdRoduyaDj6uvhIay0S1MOSJQ== + dependencies: + "@aws-sdk/util-base64-browser" "3.109.0" + tslib "^2.3.1" + +"@aws-sdk/chunked-blob-reader@3.55.0": + version "3.55.0" + resolved "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.55.0.tgz" + integrity sha512-o/xjMCq81opAjSBjt7YdHJwIJcGVG5XIV9+C2KXcY5QwVimkOKPybWTv0mXPvSwSilSx+EhpLNhkcJuXdzhw4w== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/client-s3@^3.137.0": + version "3.137.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.137.0.tgz" + integrity sha512-WFOBywwV7ECAOkSOLecpPOGbgmYV5NxHzXHTJEio6xR6s2KzoLegJa0/mq5ljh0Zl5t2h5bsKT1CxYRC0sfwWw== + dependencies: + "@aws-crypto/sha1-browser" "2.0.0" + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/client-sts" "3.137.0" + "@aws-sdk/config-resolver" "3.130.0" + "@aws-sdk/credential-provider-node" "3.137.0" + "@aws-sdk/eventstream-serde-browser" "3.127.0" + "@aws-sdk/eventstream-serde-config-resolver" "3.127.0" + "@aws-sdk/eventstream-serde-node" "3.127.0" + "@aws-sdk/fetch-http-handler" "3.131.0" + "@aws-sdk/hash-blob-browser" "3.127.0" + "@aws-sdk/hash-node" "3.127.0" + "@aws-sdk/hash-stream-node" "3.127.0" + "@aws-sdk/invalid-dependency" "3.127.0" + "@aws-sdk/md5-js" "3.127.0" + "@aws-sdk/middleware-bucket-endpoint" "3.127.0" + "@aws-sdk/middleware-content-length" "3.127.0" + "@aws-sdk/middleware-expect-continue" "3.127.0" + "@aws-sdk/middleware-flexible-checksums" "3.127.0" + "@aws-sdk/middleware-host-header" "3.127.0" + "@aws-sdk/middleware-location-constraint" "3.127.0" + "@aws-sdk/middleware-logger" "3.127.0" + "@aws-sdk/middleware-recursion-detection" "3.127.0" + "@aws-sdk/middleware-retry" "3.127.0" + "@aws-sdk/middleware-sdk-s3" "3.127.0" + "@aws-sdk/middleware-serde" "3.127.0" + "@aws-sdk/middleware-signing" "3.130.0" + "@aws-sdk/middleware-ssec" "3.127.0" + "@aws-sdk/middleware-stack" "3.127.0" + "@aws-sdk/middleware-user-agent" "3.127.0" + "@aws-sdk/node-config-provider" "3.127.0" + "@aws-sdk/node-http-handler" "3.127.0" + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/signature-v4-multi-region" "3.130.0" + "@aws-sdk/smithy-client" "3.137.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/url-parser" "3.127.0" + "@aws-sdk/util-base64-browser" "3.109.0" + "@aws-sdk/util-base64-node" "3.55.0" + "@aws-sdk/util-body-length-browser" "3.55.0" + "@aws-sdk/util-body-length-node" "3.55.0" + "@aws-sdk/util-defaults-mode-browser" "3.137.0" + "@aws-sdk/util-defaults-mode-node" "3.137.0" + "@aws-sdk/util-stream-browser" "3.131.0" + "@aws-sdk/util-stream-node" "3.129.0" + "@aws-sdk/util-user-agent-browser" "3.127.0" + "@aws-sdk/util-user-agent-node" "3.127.0" + "@aws-sdk/util-utf8-browser" "3.109.0" + "@aws-sdk/util-utf8-node" "3.109.0" + "@aws-sdk/util-waiter" "3.127.0" + "@aws-sdk/xml-builder" "3.109.0" + entities "2.2.0" + fast-xml-parser "3.19.0" + tslib "^2.3.1" + +"@aws-sdk/client-sso@3.137.0": + version "3.137.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.137.0.tgz" + integrity sha512-l9y9usMuXGI+o1c/VO2qMccN0Bm0T5bFmmbRljB6kIzbJYXD/wVqR8GMZwSnFnz52cnURQ4pgqM1ETg54FlBYQ== + dependencies: + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/config-resolver" "3.130.0" + "@aws-sdk/fetch-http-handler" "3.131.0" + "@aws-sdk/hash-node" "3.127.0" + "@aws-sdk/invalid-dependency" "3.127.0" + "@aws-sdk/middleware-content-length" "3.127.0" + "@aws-sdk/middleware-host-header" "3.127.0" + "@aws-sdk/middleware-logger" "3.127.0" + "@aws-sdk/middleware-recursion-detection" "3.127.0" + "@aws-sdk/middleware-retry" "3.127.0" + "@aws-sdk/middleware-serde" "3.127.0" + "@aws-sdk/middleware-stack" "3.127.0" + "@aws-sdk/middleware-user-agent" "3.127.0" + "@aws-sdk/node-config-provider" "3.127.0" + "@aws-sdk/node-http-handler" "3.127.0" + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/smithy-client" "3.137.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/url-parser" "3.127.0" + "@aws-sdk/util-base64-browser" "3.109.0" + "@aws-sdk/util-base64-node" "3.55.0" + "@aws-sdk/util-body-length-browser" "3.55.0" + "@aws-sdk/util-body-length-node" "3.55.0" + "@aws-sdk/util-defaults-mode-browser" "3.137.0" + "@aws-sdk/util-defaults-mode-node" "3.137.0" + "@aws-sdk/util-user-agent-browser" "3.127.0" + "@aws-sdk/util-user-agent-node" "3.127.0" + "@aws-sdk/util-utf8-browser" "3.109.0" + "@aws-sdk/util-utf8-node" "3.109.0" + tslib "^2.3.1" + +"@aws-sdk/client-sts@3.137.0": + version "3.137.0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.137.0.tgz" + integrity sha512-yJqfkEq0DG9Ds+oif/sc02PX6vfSNcyRe3YcaW5P6ouMyhJRljSIVCnA6iPwJaTsmK9BE9PDgFD2v/GYM/XgOA== + dependencies: + "@aws-crypto/sha256-browser" "2.0.0" + "@aws-crypto/sha256-js" "2.0.0" + "@aws-sdk/config-resolver" "3.130.0" + "@aws-sdk/credential-provider-node" "3.137.0" + "@aws-sdk/fetch-http-handler" "3.131.0" + "@aws-sdk/hash-node" "3.127.0" + "@aws-sdk/invalid-dependency" "3.127.0" + "@aws-sdk/middleware-content-length" "3.127.0" + "@aws-sdk/middleware-host-header" "3.127.0" + "@aws-sdk/middleware-logger" "3.127.0" + "@aws-sdk/middleware-recursion-detection" "3.127.0" + "@aws-sdk/middleware-retry" "3.127.0" + "@aws-sdk/middleware-sdk-sts" "3.130.0" + "@aws-sdk/middleware-serde" "3.127.0" + "@aws-sdk/middleware-signing" "3.130.0" + "@aws-sdk/middleware-stack" "3.127.0" + "@aws-sdk/middleware-user-agent" "3.127.0" + "@aws-sdk/node-config-provider" "3.127.0" + "@aws-sdk/node-http-handler" "3.127.0" + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/smithy-client" "3.137.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/url-parser" "3.127.0" + "@aws-sdk/util-base64-browser" "3.109.0" + "@aws-sdk/util-base64-node" "3.55.0" + "@aws-sdk/util-body-length-browser" "3.55.0" + "@aws-sdk/util-body-length-node" "3.55.0" + "@aws-sdk/util-defaults-mode-browser" "3.137.0" + "@aws-sdk/util-defaults-mode-node" "3.137.0" + "@aws-sdk/util-user-agent-browser" "3.127.0" + "@aws-sdk/util-user-agent-node" "3.127.0" + "@aws-sdk/util-utf8-browser" "3.109.0" + "@aws-sdk/util-utf8-node" "3.109.0" + entities "2.2.0" + fast-xml-parser "3.19.0" + tslib "^2.3.1" + +"@aws-sdk/config-resolver@3.130.0": + version "3.130.0" + resolved "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.130.0.tgz" + integrity sha512-7dkCHHI9kRcHW6YNr9/2Ub6XkvU9Fu6H/BnlKbaKlDR8jq7QpaFhPhctOVi5D/NDpxJgALifexFne0dvo3piTw== + dependencies: + "@aws-sdk/signature-v4" "3.130.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-config-provider" "3.109.0" + "@aws-sdk/util-middleware" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-env@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.127.0.tgz" + integrity sha512-Ig7XhUikRBlnRTYT5JBGzWfYZp68X5vkFVIFCmsHHt/qVy0Nz9raZpmDHicdS1u67yxDkWgCPn/bNevWnM0GFg== + dependencies: + "@aws-sdk/property-provider" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-imds@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.127.0.tgz" + integrity sha512-I6KlIBBzmJn/U1KikiC50PK3SspT9G5lkVLBaW5a6YfOcijqVTXfAN3kYzqhfeS0j4IgfJEwKVsjsZfmprJO5A== + dependencies: + "@aws-sdk/node-config-provider" "3.127.0" + "@aws-sdk/property-provider" "3.127.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/url-parser" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-ini@3.137.0": + version "3.137.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.137.0.tgz" + integrity sha512-FNSYjHaW83b4sQac+EWh/C6p1taBdvPOXFAVml1mPH49Nlkv9/E4bbjaWwgxvlxjqjNCbkDMKzhb19DN3gVulA== + dependencies: + "@aws-sdk/credential-provider-env" "3.127.0" + "@aws-sdk/credential-provider-imds" "3.127.0" + "@aws-sdk/credential-provider-sso" "3.137.0" + "@aws-sdk/credential-provider-web-identity" "3.127.0" + "@aws-sdk/property-provider" "3.127.0" + "@aws-sdk/shared-ini-file-loader" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-node@3.137.0": + version "3.137.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.137.0.tgz" + integrity sha512-if4CzNSyPS3ZERLtDocNNC+l5ejK93d2hoOzNHP2qCmTppThEPWF2TH506ez0v0lbUzeI7qWgpYe9m4+BFLEwQ== + dependencies: + "@aws-sdk/credential-provider-env" "3.127.0" + "@aws-sdk/credential-provider-imds" "3.127.0" + "@aws-sdk/credential-provider-ini" "3.137.0" + "@aws-sdk/credential-provider-process" "3.127.0" + "@aws-sdk/credential-provider-sso" "3.137.0" + "@aws-sdk/credential-provider-web-identity" "3.127.0" + "@aws-sdk/property-provider" "3.127.0" + "@aws-sdk/shared-ini-file-loader" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-process@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.127.0.tgz" + integrity sha512-6v0m2lqkO9J5fNlTl+HjriQNIdfg8mjVST544+5y9EnC/FVmTnIz64vfHveWdNkP/fehFx7wTimNENtoSqCn3A== + dependencies: + "@aws-sdk/property-provider" "3.127.0" + "@aws-sdk/shared-ini-file-loader" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-sso@3.137.0": + version "3.137.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.137.0.tgz" + integrity sha512-Up2Q3tWSo6Mv2icXMrHa8dGtnC9yQAeUnftrIlvLXi3P9RjxlOPZCSg1NF8FOS90RdEgORlj/7LPlIniHgGUmg== + dependencies: + "@aws-sdk/client-sso" "3.137.0" + "@aws-sdk/property-provider" "3.127.0" + "@aws-sdk/shared-ini-file-loader" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/credential-provider-web-identity@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.127.0.tgz" + integrity sha512-85ahDZnLYB3dqkW+cQ0bWt+NVqOoxomTrJoq3IC2q6muebeFrJ0pyf0JEW/RNRzBiUvvsZujzGdWifzWyQKfVg== + dependencies: + "@aws-sdk/property-provider" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/eventstream-codec@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.127.0.tgz" + integrity sha512-+Tlujx3VkB4DK8tYzG0rwxIE0ee6hWItQgSEREEmi5CwHQFw7VpRLYAShYabEx9wIJmRFObWzhlKxWNRi+TfaA== + dependencies: + "@aws-crypto/crc32" "2.0.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-hex-encoding" "3.109.0" + tslib "^2.3.1" + +"@aws-sdk/eventstream-serde-browser@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.127.0.tgz" + integrity sha512-d1rTK4ljEp3Y/BQ78/AJ7eqgGyI6TE0bxNosCmXWcUBv00Tr5cerPqPe7Zvw8XwIMPX5y8cjtd1/cOtB2ePaBw== + dependencies: + "@aws-sdk/eventstream-serde-universal" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/eventstream-serde-config-resolver@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.127.0.tgz" + integrity sha512-dYvLfQYcKLOFtZVgwLwKDCykAxNkDyDLQRWytJK9DHCyjRig66IKi1codts9vOy4j0CeYwnXWs5WDavrUaE05g== + dependencies: + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/eventstream-serde-node@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.127.0.tgz" + integrity sha512-Ie59jZYAIw3Kt6GePvEilp1k3JoYEQpY3WIyVZltm3dkVf0GmzhCZrPROH9vgF3qApzu1aGOWDV2wX91poXF8A== + dependencies: + "@aws-sdk/eventstream-serde-universal" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/eventstream-serde-universal@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.127.0.tgz" + integrity sha512-cJLSTtYDGTevknMTykzHpcDNRbD6yGve8FBUKSAczuNVjXZOedj0GbHJqkASuLj0ZnojbKBdCx4uu1XGyvubng== + dependencies: + "@aws-sdk/eventstream-codec" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/fetch-http-handler@3.131.0": + version "3.131.0" + resolved "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.131.0.tgz" + integrity sha512-eNxmPZQX2IUeBGWHNC7eNTekWn9VIPLYEMKJbKYUBJryxuTJ7TtLeyEK5oakUjMwP1AUvWT+CV7C+8L7uG1omQ== + dependencies: + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/querystring-builder" "3.127.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-base64-browser" "3.109.0" + tslib "^2.3.1" + +"@aws-sdk/hash-blob-browser@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.127.0.tgz" + integrity sha512-XH9s2w6GXCtDI+3/y+sDAzMWJRTvhRXJJtI1fVDsCiyq96SYUTNKLLaUSuR01uawEBiRDBqGDDPMT8qJPDXc/w== + dependencies: + "@aws-sdk/chunked-blob-reader" "3.55.0" + "@aws-sdk/chunked-blob-reader-native" "3.109.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/hash-node@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.127.0.tgz" + integrity sha512-wx7DKlXdKebH4JcMsOevdsm2oDNMVm36kuMm0XWRIrFWQ/oq7OquDpEMJzWvGqWF/IfFUpb7FhAWZZpALwlcwA== + dependencies: + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-buffer-from" "3.55.0" + tslib "^2.3.1" + +"@aws-sdk/hash-stream-node@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.127.0.tgz" + integrity sha512-ZCNqi+FJViYFCo8JfSx+YK0Hd/SC555gHqBe24GVBMCDqJ8UFIled7tF+GOQ8wTcKjxuwp/0EXDTXoaAb0K89g== + dependencies: + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/invalid-dependency@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.127.0.tgz" + integrity sha512-bxvmtmJ6gIRfOHvh1jAPZBH2mzppEblPjEOFo4mOzXz4U3qPIxeuukCjboMnGK9QEpV2wObWcYYld0vxoRrfiA== + dependencies: + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/is-array-buffer@3.55.0": + version "3.55.0" + resolved "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz" + integrity sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/md5-js@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.127.0.tgz" + integrity sha512-9FzD++p2bvfZ56hbDxvGcLlA9JIMt9uZB/m4NEvbuvrpx1qnUpFv6HqthhGaVuhctkK25hONT5ZpOYHSisATrA== + dependencies: + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-utf8-browser" "3.109.0" + "@aws-sdk/util-utf8-node" "3.109.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-bucket-endpoint@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.127.0.tgz" + integrity sha512-wJpXxWceBDhWktoxrRb4s6tMx0dWsEGYIaV0KkQPGhTPk2KMUgwa4xApfCXXVfYcE3THk486OKwHhPrR5jpe+g== + dependencies: + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-arn-parser" "3.55.0" + "@aws-sdk/util-config-provider" "3.109.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-content-length@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.127.0.tgz" + integrity sha512-AFmMaIEW3Rzg0TaKB9l/RENLowd7ZEEOpm0trYw1CgUUORWW/ydCsDT7pekPlC25CPbhUmWXCSA4xPFSYOVnDw== + dependencies: + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-expect-continue@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.127.0.tgz" + integrity sha512-+X7mdgFqt9UqUDeGuMt+afR8CBX9nMecTxEIilAKdVOLx+fuXzHnC2mpddKMtiE9IGKMU4BI1Ahf7t32Odhs1Q== + dependencies: + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-flexible-checksums@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.127.0.tgz" + integrity sha512-sXkAwhE9dikO72sEJ7DrUCo5mawauAxICCqipCCSGp0geSkptvtZHhySgJNMVSbUJQmu5bcS+zsFpFVwuJvGxg== + dependencies: + "@aws-crypto/crc32" "2.0.0" + "@aws-crypto/crc32c" "2.0.0" + "@aws-sdk/is-array-buffer" "3.55.0" + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-host-header@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.127.0.tgz" + integrity sha512-e2gTLJb5lYP9lRV7hN3rKY2l4jv8OygOoHElZJ3Z8KPZskjHelYPcQ8XbdfhSXXxC3vc/0QqN0ResFt3W3Pplg== + dependencies: + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-location-constraint@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.127.0.tgz" + integrity sha512-UtPmbOKEVu+Ue7CwICFSOOOSePV8Piydco/v2IpdRkMO0e4bqQ3Tn0XprBlWWfSW4QCtAPzydrArLsUdk636GA== + dependencies: + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-logger@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.127.0.tgz" + integrity sha512-jMNLcZB/ECA7OfkNBLNeAlrLRehyfnUeNQJHW3kcxs9h1+6VxaF6wY+WKozszLI7/3OBzQrFHBQCfRZV7ykSLg== + dependencies: + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-recursion-detection@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.127.0.tgz" + integrity sha512-tB6WX+Z1kUKTnn5h38XFrTCzoqPKjUZLUjN4Wb27/cbeSiTSKGAZcCXHOJm36Ukorl5arlybQTqGe689EU00Hw== + dependencies: + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-retry@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.127.0.tgz" + integrity sha512-ZSvg/AyGUacWnf3i8ZbyImtiCH+NyafF8uV7bITP7JkwPrG+VdNocJZOr88GRM0c1A0jfkOf7+oq+fInPwwiNA== + dependencies: + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/service-error-classification" "3.127.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-middleware" "3.127.0" + tslib "^2.3.1" + uuid "^8.3.2" + +"@aws-sdk/middleware-sdk-s3@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.127.0.tgz" + integrity sha512-q1mkEN7kYYdQ3LOHIhaT56omYe8DCubyiCKOXuEo5ZiIkE5iq06K/BxWxj3f8bFZxSX80Ma1m8XA5jcOEMphSA== + dependencies: + "@aws-sdk/middleware-bucket-endpoint" "3.127.0" + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-arn-parser" "3.55.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-sdk-sts@3.130.0": + version "3.130.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.130.0.tgz" + integrity sha512-FDfs7+ohbhEK3eH3Dshr6JDiL8P72bp3ffeNpPBXuURFqwt4pCmjHuX3SqQR0JIJ2cl3aIdxc17rKaZJfOjtPw== + dependencies: + "@aws-sdk/middleware-signing" "3.130.0" + "@aws-sdk/property-provider" "3.127.0" + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/signature-v4" "3.130.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-serde@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.127.0.tgz" + integrity sha512-xmWMYV/t9M+b9yHjqaD1noDNJJViI2QwOH7TQZ9VbbrvdVtDrFuS9Sf9He80TBCJqeHShwQN9783W1I3Pu/8kw== + dependencies: + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-signing@3.130.0": + version "3.130.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.130.0.tgz" + integrity sha512-JePq5XLR9TfRN3RQ0d7Za/bEW5D3xgtD1FNAwHeenWALeozMuQgRPjM5RroCnL/5jY3wuvCZI7cSXeqhawWqmA== + dependencies: + "@aws-sdk/property-provider" "3.127.0" + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/signature-v4" "3.130.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-ssec@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.127.0.tgz" + integrity sha512-R5A13EvdYPdYD2Tq9eW5jqIdscyZlQykQXFEolBD2oi4pew7TZpc/5aazZC0zo9YKJ29qiUR1P4NvjcFJ7zFBg== + dependencies: + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/middleware-stack@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.127.0.tgz" + integrity sha512-S1IoUE5o1vCmjsF5nIE8zlItNOM1UE+lhmZeigF7knXJ9+a6ewMB6POAj/s4eoi0wcn0eSnAGsqJCWMSUjOPLA== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/middleware-user-agent@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.127.0.tgz" + integrity sha512-CHxgswoOzdkOEoIq7Oyob3Sx/4FYUv6BhUesAX7MNshaDDsTQPbSWjw5bqZDiL/gO+X/34fvqCVVpVD2GvxW/g== + dependencies: + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/node-config-provider@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.127.0.tgz" + integrity sha512-bAHkASMhLZHT1yv2TX6OJGFV9Lc3t1gKfTMEKdXM2O2YhGfSx9A/qLeJm79oDfnILWQtSS2NicxlRDI2lYGf4g== + dependencies: + "@aws-sdk/property-provider" "3.127.0" + "@aws-sdk/shared-ini-file-loader" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/node-http-handler@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.127.0.tgz" + integrity sha512-pyMKvheK8eDwWLgYIRsWy8wiyhsbYYcqkZQs3Eh6upI4E8iCY7eMmhWvHYCibvsO+UjsOwa4cAMOfwnv/Z9s8A== + dependencies: + "@aws-sdk/abort-controller" "3.127.0" + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/querystring-builder" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/property-provider@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.127.0.tgz" + integrity sha512-JxenxlTEkWfLrtJqIjaXaJzAVQbbscoCb5bNjmdud07ESLVfWRKJx2nAJdecHKYp2M5NQyqBuFhQ1ELSFYQKCA== + dependencies: + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/protocol-http@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.127.0.tgz" + integrity sha512-UG83PVuKX40wilG2uRU0Fvz4OY8Bt+bSPOG776DFjwIXYzK7BwpJm9H2XI2HLhS5WxrJHhwrLBRgW6UiykMnFw== + dependencies: + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/querystring-builder@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.127.0.tgz" + integrity sha512-tsoyp4lLPsASPDYWsezGAHD8VJsZbjUNATNAzTCFdH6p+4SKBK83Q5kfXCzxt13M+l3oKbxxIWLvS0kVQFyltQ== + dependencies: + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-uri-escape" "3.55.0" + tslib "^2.3.1" + +"@aws-sdk/querystring-parser@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.127.0.tgz" + integrity sha512-Vn/Dv+PqUSepp/DzLqq0LJJD8HdPefJCnLbO5WcHCARHSGlyGlZUFEM45k/oEHpTvgMXj/ORaP3A+tLwLu0AmA== + dependencies: + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/service-error-classification@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.127.0.tgz" + integrity sha512-wjZY9rnlA8SPrICUumTYicEKtK4/yKB62iadUk66hxe8MrH8JhuHH2NqIad0Pt/bK/YtNVhd3yb4pRapOeY5qQ== + +"@aws-sdk/shared-ini-file-loader@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.127.0.tgz" + integrity sha512-S3Nn4KRTqoJsB/TbRZSWBBUrkckNMR0Juqz7bOB+wupVvddKP6IcpspSC/GX9zgJjVMV8iGisZ6AUsYsC5r+cA== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/signature-v4-multi-region@3.130.0": + version "3.130.0" + resolved "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.130.0.tgz" + integrity sha512-ZRRoPRoCVdkGDtjuog81pqHsSLfnXK6ELrWm4Dq8xdcHQGbEDNdYmeXARXG9yPAO42x9yIJXHNutMz5Y/P64cw== + dependencies: + "@aws-sdk/protocol-http" "3.127.0" + "@aws-sdk/signature-v4" "3.130.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-arn-parser" "3.55.0" + tslib "^2.3.1" + +"@aws-sdk/signature-v4@3.130.0": + version "3.130.0" + resolved "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.130.0.tgz" + integrity sha512-g5G1a1NHL2uOoFfC2zQdZcj+wbjgBQPkx6xGdtqNKf9v2kS0n6ap5JUGEaqWE02lUlmWHsoMsS73hXtzwXaBRQ== + dependencies: + "@aws-sdk/is-array-buffer" "3.55.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-hex-encoding" "3.109.0" + "@aws-sdk/util-middleware" "3.127.0" + "@aws-sdk/util-uri-escape" "3.55.0" + tslib "^2.3.1" + +"@aws-sdk/smithy-client@3.137.0": + version "3.137.0" + resolved "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.137.0.tgz" + integrity sha512-YAuWiSzHJGV9jQCjmcBWxbWRoq/3INEpdtfAdpR+X+sEZaRJESDGPt4or7WbQ9Tmbd/uZ0uQLYIed/NDSyJLLQ== + dependencies: + "@aws-sdk/middleware-stack" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/types@3.127.0", "@aws-sdk/types@^3.1.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.127.0.tgz" + integrity sha512-e0wtx2IkOl7rwfKfLH5pPTzQ+d45V7b1WrjeL0WDI8kOu6w+sXmhNxI6uM2kf0k4NiTLN84lW290AEWupey9Og== + +"@aws-sdk/url-parser@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.127.0.tgz" + integrity sha512-njZ7zn41JHRpNfr3BCesVXCLZE0zcWSfEdtRV0ICw0cU1FgYcKELSuY9+gLUB4ci6uc7gq7mPE8+w30FcM4QeA== + dependencies: + "@aws-sdk/querystring-parser" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/util-arn-parser@3.55.0": + version "3.55.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.55.0.tgz" + integrity sha512-76KJxp4MRWufHYWys7DFl64znr5yeJ3AIQNAPCKKw1sP0hzO7p6Kx0PaJnw9x+CPSzOrT4NbuApL6/srYhKDGg== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-base64-browser@3.109.0": + version "3.109.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.109.0.tgz" + integrity sha512-lAZ6fyDGiRLaIsKT9qh7P9FGuNyZ4gAbr1YOSQk/5mHtaTuUvxlPptZuInNM/0MPQm6lpcot00D8IWTucn4PbA== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-base64-node@3.55.0": + version "3.55.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz" + integrity sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ== + dependencies: + "@aws-sdk/util-buffer-from" "3.55.0" + tslib "^2.3.1" + +"@aws-sdk/util-body-length-browser@3.55.0": + version "3.55.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz" + integrity sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-body-length-node@3.55.0": + version "3.55.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz" + integrity sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-buffer-from@3.55.0": + version "3.55.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz" + integrity sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA== + dependencies: + "@aws-sdk/is-array-buffer" "3.55.0" + tslib "^2.3.1" + +"@aws-sdk/util-config-provider@3.109.0": + version "3.109.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.109.0.tgz" + integrity sha512-GrAZl/aBv0A28LkyNyq8SPJ5fmViCwz80fWLMeWx/6q5AbivuILogjlWwEZSvZ9zrlHOcFC0+AnCa5pQrjaslw== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-defaults-mode-browser@3.137.0": + version "3.137.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.137.0.tgz" + integrity sha512-9f5045wqPAcGLKIAXzZKHE2n42ilGo/g4rLSS09OXx9CoFT4lVdqZPqBqh/prDUMrqXge9FK3EH2VId7L5GpEQ== + dependencies: + "@aws-sdk/property-provider" "3.127.0" + "@aws-sdk/types" "3.127.0" + bowser "^2.11.0" + tslib "^2.3.1" + +"@aws-sdk/util-defaults-mode-node@3.137.0": + version "3.137.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.137.0.tgz" + integrity sha512-CvMpemcsOkoMEz0iALamyQBt1rHx98NvF/cay019F8m+umD03I8CclDugy/13DqESWfsVxn91lZY/DOnO+si7A== + dependencies: + "@aws-sdk/config-resolver" "3.130.0" + "@aws-sdk/credential-provider-imds" "3.127.0" + "@aws-sdk/node-config-provider" "3.127.0" + "@aws-sdk/property-provider" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/util-hex-encoding@3.109.0": + version "3.109.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.109.0.tgz" + integrity sha512-s8CgTNrn3cLkrdiohfxLuOYPCanzvHn/aH5RW6DaMoeQiG5Hl9QUiP/WtdQ9QQx3xvpQFpmvxIaSBwSgFNLQxA== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-locate-window@^3.0.0": + version "3.55.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz" + integrity sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-middleware@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.127.0.tgz" + integrity sha512-EwAPPed9TNqh+Wov2VStLn2NuJ/Wyt7IkZCbCsBuSNp3BFZ1V4gfwTjqtKCtB2LQgQ48MTgWgNCvrH0zjCSPGg== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-stream-browser@3.131.0": + version "3.131.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.131.0.tgz" + integrity sha512-1YFbBPDu+elIgp8z1woUfT7zM+2PAvgJiw6ljDBuAlJzsP5xMhwk0X9e+8aQ+Qe4XftA0e7y/PH0gqvjNgCx2A== + dependencies: + "@aws-sdk/fetch-http-handler" "3.131.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-base64-browser" "3.109.0" + "@aws-sdk/util-hex-encoding" "3.109.0" + "@aws-sdk/util-utf8-browser" "3.109.0" + tslib "^2.3.1" + +"@aws-sdk/util-stream-node@3.129.0": + version "3.129.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.129.0.tgz" + integrity sha512-1iWqsWvVXyP4JLPPPs8tBZKyzs7D5e7KctXuCtIjI+cnGOCeVLL+X4L/7KDZfV7sI2D6vONtIoTnUjMl5V/kEg== + dependencies: + "@aws-sdk/node-http-handler" "3.127.0" + "@aws-sdk/types" "3.127.0" + "@aws-sdk/util-buffer-from" "3.55.0" + tslib "^2.3.1" + +"@aws-sdk/util-uri-escape@3.55.0": + version "3.55.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz" + integrity sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-user-agent-browser@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.127.0.tgz" + integrity sha512-uO2oHmJswuYKJS+GiMdYI8izhpC9M7/jFFvnAmLlTEVwpEi1VX9KePAOF+u5AaBC2kzITo/7dg141XfRHZloIQ== + dependencies: + "@aws-sdk/types" "3.127.0" + bowser "^2.11.0" + tslib "^2.3.1" + +"@aws-sdk/util-user-agent-node@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.127.0.tgz" + integrity sha512-3P/M4ZDD2qMeeoCk7TE/Mw7cG5IjB87F6BP8nI8/oHuaz7j6fsI7D49SNpyjl8JApRynZ122Ad6hwQwRj3isYw== + dependencies: + "@aws-sdk/node-config-provider" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/util-utf8-browser@3.109.0", "@aws-sdk/util-utf8-browser@^3.0.0": + version "3.109.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.109.0.tgz" + integrity sha512-FmcGSz0v7Bqpl1SE8G1Gc0CtDpug+rvqNCG/szn86JApD/f5x8oByjbEiAyTU2ZH2VevUntx6EW68ulHyH+x+w== + dependencies: + tslib "^2.3.1" + +"@aws-sdk/util-utf8-node@3.109.0": + version "3.109.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.109.0.tgz" + integrity sha512-Ti/ZBdvz2eSTElsucjzNmzpyg2MwfD1rXmxD0hZuIF8bPON/0+sZYnWd5CbDw9kgmhy28dmKue086tbZ1G0iLQ== + dependencies: + "@aws-sdk/util-buffer-from" "3.55.0" + tslib "^2.3.1" + +"@aws-sdk/util-waiter@3.127.0": + version "3.127.0" + resolved "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.127.0.tgz" + integrity sha512-E5qrRpBJS8dmClqSDW1pWVMKzCG/mxabG6jVUtlW/WLHnl/znxGaOQc6tnnwKik0nEq/4DpT9fEfPUz9JiLrkw== + dependencies: + "@aws-sdk/abort-controller" "3.127.0" + "@aws-sdk/types" "3.127.0" + tslib "^2.3.1" + +"@aws-sdk/xml-builder@3.109.0": + version "3.109.0" + resolved "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.109.0.tgz" + integrity sha512-+aAXynnrqya1Eukz4Gxch4xIXCZolIMWGD4Ll/Q5yXT5uAjGh2HQWd9J0LWE+gYChpWetZbAVYZ3cEJ6F+SpZA== + dependencies: + tslib "^2.3.1" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.18.8": + version "7.18.8" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz" + integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== + +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz" + integrity sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.9" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-module-transforms" "^7.18.9" + "@babel/helpers" "^7.18.9" + "@babel/parser" "^7.18.9" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.1" + semver "^6.3.0" + +"@babel/generator@^7.18.9", "@babel/generator@^7.7.2": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz" + integrity sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug== + dependencies: + "@babel/types" "^7.18.9" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + +"@babel/helper-annotate-as-pure@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" + integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz" + integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz" + integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== + dependencies: + "@babel/compat-data" "^7.18.8" + "@babel/helper-validator-option" "^7.18.6" + browserslist "^4.20.2" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz" + integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-function-name" "^7.18.6" + "@babel/helper-member-expression-to-functions" "^7.18.6" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + +"@babel/helper-create-regexp-features-plugin@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz" + integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + regexpu-core "^5.1.0" + +"@babel/helper-define-polyfill-provider@^0.3.1": + version "0.3.1" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz" + integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== + dependencies: + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-environment-visitor@^7.18.6", "@babel/helper-environment-visitor@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" + integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + +"@babel/helper-explode-assignable-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" + integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-function-name@^7.18.6", "@babel/helper-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz" + integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== + dependencies: + "@babel/template" "^7.18.6" + "@babel/types" "^7.18.9" + +"@babel/helper-hoist-variables@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" + integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-member-expression-to-functions@^7.18.6", "@babel/helper-member-expression-to-functions@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz" + integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== + dependencies: + "@babel/types" "^7.18.9" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" + integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz" + integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/helper-validator-identifier" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-optimise-call-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" + integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz" + integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== + +"@babel/helper-remap-async-to-generator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz" + integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-wrap-function" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz" + integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== + dependencies: + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-member-expression-to-functions" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/helper-simple-access@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz" + integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-skip-transparent-expression-wrappers@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz" + integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== + dependencies: + "@babel/types" "^7.18.9" + +"@babel/helper-split-export-declaration@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" + integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + dependencies: + "@babel/types" "^7.18.6" + +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/helper-validator-option@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" + integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + +"@babel/helper-wrap-function@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz" + integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw== + dependencies: + "@babel/helper-function-name" "^7.18.6" + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/helpers@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz" + integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== + dependencies: + "@babel/template" "^7.18.6" + "@babel/traverse" "^7.18.9" + "@babel/types" "^7.18.9" + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.6", "@babel/parser@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz" + integrity sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg== + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz" + integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz" + integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + +"@babel/plugin-proposal-async-generator-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz" + integrity sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w== + dependencies: + "@babel/helper-environment-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-remap-async-to-generator" "^7.18.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-proposal-class-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-class-static-block@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz" + integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-proposal-dynamic-import@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" + integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-json-strings@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz" + integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + +"@babel/plugin-proposal-logical-assignment-operators@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz" + integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" + integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz" + integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== + dependencies: + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.18.8" + +"@babel/plugin-proposal-optional-catch-binding@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" + integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz" + integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" + integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-private-property-in-object@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz" + integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz" + integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-async-generators@^7.8.4": + version "7.8.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-bigint@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-assertions@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz" + integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.10.4" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-typescript@^7.18.6", "@babel/plugin-syntax-typescript@^7.7.2": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz" + integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-arrow-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz" + integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-async-to-generator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz" + integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-remap-async-to-generator" "^7.18.6" + +"@babel/plugin-transform-block-scoped-functions@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz" + integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-block-scoping@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz" + integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-classes@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz" + integrity sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.18.6" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-optimise-call-expression" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-replace-supers" "^7.18.9" + "@babel/helper-split-export-declaration" "^7.18.6" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz" + integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-destructuring@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz" + integrity sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz" + integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-duplicate-keys@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz" + integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-exponentiation-operator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz" + integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-for-of@^7.18.8": + version "7.18.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz" + integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-function-name@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz" + integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + dependencies: + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz" + integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-member-expression-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz" + integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-modules-amd@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz" + integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-commonjs@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz" + integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-simple-access" "^7.18.6" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-systemjs@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz" + integrity sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A== + dependencies: + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-module-transforms" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-validator-identifier" "^7.18.6" + babel-plugin-dynamic-import-node "^2.3.3" + +"@babel/plugin-transform-modules-umd@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz" + integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== + dependencies: + "@babel/helper-module-transforms" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz" + integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-new-target@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz" + integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-object-super@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz" + integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-replace-supers" "^7.18.6" + +"@babel/plugin-transform-parameters@^7.18.8": + version "7.18.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz" + integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-property-literals@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz" + integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-regenerator@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz" + integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + regenerator-transform "^0.15.0" + +"@babel/plugin-transform-reserved-words@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz" + integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-shorthand-properties@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz" + integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-spread@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz" + integrity sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" + +"@babel/plugin-transform-sticky-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz" + integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-template-literals@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz" + integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typeof-symbol@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz" + integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + +"@babel/plugin-transform-typescript@^7.18.6": + version "7.18.8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.8.tgz" + integrity sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-typescript" "^7.18.6" + +"@babel/plugin-transform-unicode-escapes@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz" + integrity sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-transform-unicode-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz" + integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/preset-env@^7.18.9": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.9.tgz" + integrity sha512-75pt/q95cMIHWssYtyfjVlvI+QEZQThQbKvR9xH+F/Agtw/s4Wfc2V9Bwd/P39VtixB7oWxGdH4GteTTwYJWMg== + dependencies: + "@babel/compat-data" "^7.18.8" + "@babel/helper-compilation-targets" "^7.18.9" + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-async-generator-functions" "^7.18.6" + "@babel/plugin-proposal-class-properties" "^7.18.6" + "@babel/plugin-proposal-class-static-block" "^7.18.6" + "@babel/plugin-proposal-dynamic-import" "^7.18.6" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" + "@babel/plugin-proposal-json-strings" "^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" + "@babel/plugin-proposal-numeric-separator" "^7.18.6" + "@babel/plugin-proposal-object-rest-spread" "^7.18.9" + "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" + "@babel/plugin-proposal-optional-chaining" "^7.18.9" + "@babel/plugin-proposal-private-methods" "^7.18.6" + "@babel/plugin-proposal-private-property-in-object" "^7.18.6" + "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.18.6" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.18.6" + "@babel/plugin-transform-async-to-generator" "^7.18.6" + "@babel/plugin-transform-block-scoped-functions" "^7.18.6" + "@babel/plugin-transform-block-scoping" "^7.18.9" + "@babel/plugin-transform-classes" "^7.18.9" + "@babel/plugin-transform-computed-properties" "^7.18.9" + "@babel/plugin-transform-destructuring" "^7.18.9" + "@babel/plugin-transform-dotall-regex" "^7.18.6" + "@babel/plugin-transform-duplicate-keys" "^7.18.9" + "@babel/plugin-transform-exponentiation-operator" "^7.18.6" + "@babel/plugin-transform-for-of" "^7.18.8" + "@babel/plugin-transform-function-name" "^7.18.9" + "@babel/plugin-transform-literals" "^7.18.9" + "@babel/plugin-transform-member-expression-literals" "^7.18.6" + "@babel/plugin-transform-modules-amd" "^7.18.6" + "@babel/plugin-transform-modules-commonjs" "^7.18.6" + "@babel/plugin-transform-modules-systemjs" "^7.18.9" + "@babel/plugin-transform-modules-umd" "^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.18.6" + "@babel/plugin-transform-new-target" "^7.18.6" + "@babel/plugin-transform-object-super" "^7.18.6" + "@babel/plugin-transform-parameters" "^7.18.8" + "@babel/plugin-transform-property-literals" "^7.18.6" + "@babel/plugin-transform-regenerator" "^7.18.6" + "@babel/plugin-transform-reserved-words" "^7.18.6" + "@babel/plugin-transform-shorthand-properties" "^7.18.6" + "@babel/plugin-transform-spread" "^7.18.9" + "@babel/plugin-transform-sticky-regex" "^7.18.6" + "@babel/plugin-transform-template-literals" "^7.18.9" + "@babel/plugin-transform-typeof-symbol" "^7.18.9" + "@babel/plugin-transform-unicode-escapes" "^7.18.6" + "@babel/plugin-transform-unicode-regex" "^7.18.6" + "@babel/preset-modules" "^0.1.5" + "@babel/types" "^7.18.9" + babel-plugin-polyfill-corejs2 "^0.3.1" + babel-plugin-polyfill-corejs3 "^0.5.2" + babel-plugin-polyfill-regenerator "^0.3.1" + core-js-compat "^3.22.1" + semver "^6.3.0" + +"@babel/preset-modules@^0.1.5": + version "0.1.5" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" + integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-typescript@^7.15.0": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz" + integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/helper-validator-option" "^7.18.6" + "@babel/plugin-transform-typescript" "^7.18.6" + +"@babel/runtime@^7.17.2", "@babel/runtime@^7.8.4": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz" + integrity sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/template@^7.18.6", "@babel/template@^7.3.3": + version "7.18.6" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz" + integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/parser" "^7.18.6" + "@babel/types" "^7.18.6" + +"@babel/traverse@^7.13.0", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.9", "@babel/traverse@^7.7.2": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz" + integrity sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.18.9" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.18.9" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.18.9" + "@babel/types" "^7.18.9" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.18.9" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz" + integrity sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + to-fast-properties "^2.0.0" + +"@bcoe/v8-coverage@^0.2.3": + version "0.2.3" + resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@gar/promisify@^1.0.1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@istanbuljs/load-nyc-config@^1.0.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + dependencies: + camelcase "^5.3.1" + find-up "^4.1.0" + get-package-type "^0.1.0" + js-yaml "^3.13.1" + resolve-from "^5.0.0" + +"@istanbuljs/schema@^0.1.2": + version "0.1.3" + resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + +"@jest/console@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz" + integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + slash "^3.0.0" + +"@jest/core@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz" + integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== + dependencies: + "@jest/console" "^28.1.3" + "@jest/reporters" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + ci-info "^3.2.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + jest-changed-files "^28.1.3" + jest-config "^28.1.3" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" + jest-regex-util "^28.0.2" + jest-resolve "^28.1.3" + jest-resolve-dependencies "^28.1.3" + jest-runner "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" + jest-watcher "^28.1.3" + micromatch "^4.0.4" + pretty-format "^28.1.3" + rimraf "^3.0.0" + slash "^3.0.0" + strip-ansi "^6.0.0" + +"@jest/environment@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz" + integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== + dependencies: + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + jest-mock "^28.1.3" + +"@jest/expect-utils@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz" + integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== + dependencies: + jest-get-type "^28.0.2" + +"@jest/expect@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz" + integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== + dependencies: + expect "^28.1.3" + jest-snapshot "^28.1.3" + +"@jest/fake-timers@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz" + integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== + dependencies: + "@jest/types" "^28.1.3" + "@sinonjs/fake-timers" "^9.1.2" + "@types/node" "*" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" + jest-util "^28.1.3" + +"@jest/globals@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz" + integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/types" "^28.1.3" + +"@jest/reporters@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz" + integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== + dependencies: + "@bcoe/v8-coverage" "^0.2.3" + "@jest/console" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + "@jridgewell/trace-mapping" "^0.3.13" + "@types/node" "*" + chalk "^4.0.0" + collect-v8-coverage "^1.0.0" + exit "^0.1.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-instrument "^5.1.0" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + jest-worker "^28.1.3" + slash "^3.0.0" + string-length "^4.0.1" + strip-ansi "^6.0.0" + terminal-link "^2.0.0" + v8-to-istanbul "^9.0.1" + +"@jest/schemas@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz" + integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== + dependencies: + "@sinclair/typebox" "^0.24.1" + +"@jest/source-map@^28.1.2": + version "28.1.2" + resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz" + integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== + dependencies: + "@jridgewell/trace-mapping" "^0.3.13" + callsites "^3.0.0" + graceful-fs "^4.2.9" + +"@jest/test-result@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz" + integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== + dependencies: + "@jest/console" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz" + integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== + dependencies: + "@jest/test-result" "^28.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + slash "^3.0.0" + +"@jest/transform@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz" + integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== + dependencies: + "@babel/core" "^7.11.6" + "@jest/types" "^28.1.3" + "@jridgewell/trace-mapping" "^0.3.13" + babel-plugin-istanbul "^6.1.1" + chalk "^4.0.0" + convert-source-map "^1.4.0" + fast-json-stable-stringify "^2.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + jest-regex-util "^28.0.2" + jest-util "^28.1.3" + micromatch "^4.0.4" + pirates "^4.0.4" + slash "^3.0.0" + write-file-atomic "^4.0.1" + +"@jest/types@^28.1.3": + version "28.1.3" + resolved "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz" + integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== + dependencies: + "@jest/schemas" "^28.1.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.1.0": + version "0.1.1" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" + integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/gen-mapping@^0.3.2": + version "0.3.2" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.14" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz" + integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@mapbox/node-pre-gyp@^1.0.0": + version "1.0.9" + resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz" + integrity sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw== + dependencies: + detect-libc "^2.0.0" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.7" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" + +"@npmcli/fs@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== + dependencies: + "@gar/promisify" "^1.0.1" + semver "^7.3.5" + +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@ovos-media/ts-transform-paths@^1.7.18-1": + version "1.7.18-1" + resolved "https://registry.npmjs.org/@ovos-media/ts-transform-paths/-/ts-transform-paths-1.7.18-1.tgz" + integrity sha512-5uYtraYSWg1klaMYus3ouCOUUNzcI40pS0NCaw0PhoaPTimVfT3MV061ZLYR/4F14THqyofMjmCNcHgFrBX3AA== + dependencies: + "@zerollup/ts-helpers" "^1.7.18" + +"@sentry/core@7.10.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@sentry/core/-/core-7.10.0.tgz" + integrity sha512-uq6oUXPH+6cjsEL5/j/xSW91mVrJo7knTqax7E5MDiA5j98BPK4budGiBiPO7GEB856QhA7N+pOO0lccii5QYQ== + dependencies: + "@sentry/hub" "7.10.0" + "@sentry/types" "7.10.0" + "@sentry/utils" "7.10.0" + tslib "^1.9.3" + +"@sentry/hub@7.10.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@sentry/hub/-/hub-7.10.0.tgz" + integrity sha512-9Appy7J87EU7Xu2BDY1cLK79nsuE72geeYmG71lgdttTD3XOMcQBOxET4/2sAI+d/ansurXnURx+DAQ9FOKT+w== + dependencies: + "@sentry/types" "7.10.0" + "@sentry/utils" "7.10.0" + tslib "^1.9.3" + +"@sentry/node@^7.7.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@sentry/node/-/node-7.10.0.tgz" + integrity sha512-L/DSEJ7Biy8ovvlCyfu5MpCYG108FIGVbJ1h0NBGr5+uLxTNg2WJWojJoiQNiRcWl4s0dcIXrRdi0HR2Sx+DUw== + dependencies: + "@sentry/core" "7.10.0" + "@sentry/hub" "7.10.0" + "@sentry/types" "7.10.0" + "@sentry/utils" "7.10.0" + cookie "^0.4.1" + https-proxy-agent "^5.0.0" + lru_map "^0.3.3" + tslib "^1.9.3" + +"@sentry/tracing@^7.7.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.10.0.tgz" + integrity sha512-ojuBYS1bL/IGWKt/ItY4HmC8NElJrYtTUvm73VbhylhIO4zcn5ICHmgMFj1lqL9gQ1nCnAlifKiWIjL9qUatTA== + dependencies: + "@sentry/hub" "7.10.0" + "@sentry/types" "7.10.0" + "@sentry/utils" "7.10.0" + tslib "^1.9.3" + +"@sentry/types@7.10.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@sentry/types/-/types-7.10.0.tgz" + integrity sha512-1UBwdbS0xXzANzp63g4eNQly/qKIXp0swP5OTKWoADvKBtL4anroLUA/l8ADMtuwFZYtVANc8WRGxM2+YmaXtg== + +"@sentry/utils@7.10.0": + version "7.10.0" + resolved "https://registry.npmjs.org/@sentry/utils/-/utils-7.10.0.tgz" + integrity sha512-/aD2DnfyOhV0Wdbb6VF78vu4fQIZJyuReDpBI7MV/EqcEB6FxUKq2YjinfKZF/exHEPig6Ag/Yt+CRFgvtVFuw== + dependencies: + "@sentry/types" "7.10.0" + tslib "^1.9.3" + +"@sinclair/typebox@^0.24.1": + version "0.24.20" + resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.20.tgz" + integrity sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ== + +"@sinonjs/commons@^1.7.0": + version "1.8.3" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + dependencies: + type-detect "4.0.8" + +"@sinonjs/fake-timers@^9.1.2": + version "9.1.2" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz" + integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== + dependencies: + "@sinonjs/commons" "^1.7.0" + +"@sqltools/formatter@^1.2.2": + version "1.2.3" + resolved "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz" + integrity sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg== + +"@tokenizer/token@^0.3.0": + version "0.3.0" + resolved "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz" + integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/amqplib@^0.8.1": + version "0.8.2" + resolved "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz" + integrity sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA== + dependencies: + "@types/bluebird" "*" + "@types/node" "*" + +"@types/babel__core@^7.1.14": + version "7.1.19" + resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" + integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + +"@types/babel__generator@*": + version "7.6.4" + resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" + integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + dependencies: + "@babel/types" "^7.0.0" + +"@types/babel__template@*": + version "7.4.1" + resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + dependencies: + "@babel/parser" "^7.1.0" + "@babel/types" "^7.0.0" + +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": + version "7.17.1" + resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz" + integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== + dependencies: + "@babel/types" "^7.3.0" + +"@types/bcrypt@^5.0.0": + version "5.0.0" + resolved "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-5.0.0.tgz" + integrity sha512-agtcFKaruL8TmcvqbndlqHPSJgsolhf/qPWchFlgnW1gECTN/nKbFcoFnvKAQRFfKbh+BO6A3SWdJu9t+xF3Lw== + dependencies: + "@types/node" "*" + +"@types/bluebird@*": + version "3.5.36" + resolved "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz" + integrity sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q== + +"@types/body-parser@*", "@types/body-parser@^1.19.0": + version "1.19.2" + resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" + integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + dependencies: + "@types/connect" "*" + "@types/node" "*" + +"@types/connect@*": + version "3.4.35" + resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/dotenv@^8.2.0": + version "8.2.0" + resolved "https://registry.npmjs.org/@types/dotenv/-/dotenv-8.2.0.tgz" + integrity sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw== + dependencies: + dotenv "*" + +"@types/express-serve-static-core@^4.17.18": + version "4.17.29" + resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz" + integrity sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + +"@types/express@*", "@types/express@^4.17.12": + version "4.17.13" + resolved "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/graceful-fs@^4.1.3": + version "4.1.5" + resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + dependencies: + "@types/node" "*" + +"@types/i18next-node-fs-backend@^2.1.0": + version "2.1.1" + resolved "https://registry.npmjs.org/@types/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.1.tgz" + integrity sha512-ESvH90OICQkKU3yuuRzF6YfHt5KACE55FOiUM59mMGnC+h03lHGdEYo3z3THbwS5FdMskLyIs2O7f6Oaz8P9sw== + dependencies: + i18next ">=17.0.11" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": + version "2.0.4" + resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/json-schema@^7.0.9": + version "7.0.11" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + +"@types/jsonwebtoken@^8.5.8": + version "8.5.8" + resolved "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz" + integrity sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A== + dependencies: + "@types/node" "*" + +"@types/mime@^1": + version "1.3.2" + resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" + integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + +"@types/morgan@^1.9.3": + version "1.9.3" + resolved "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.3.tgz" + integrity sha512-BiLcfVqGBZCyNCnCH3F4o2GmDLrpy0HeBVnNlyZG4fo88ZiE9SoiBe3C+2ezuwbjlEyT+PDZ17//TAlRxAn75Q== + dependencies: + "@types/node" "*" + +"@types/multer@^1.4.7": + version "1.4.7" + resolved "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz" + integrity sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA== + dependencies: + "@types/express" "*" + +"@types/node-fetch@^2.6.2": + version "2.6.2" + resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz" + integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + +"@types/node-os-utils@^1.3.0": + version "1.3.0" + resolved "https://registry.npmjs.org/@types/node-os-utils/-/node-os-utils-1.3.0.tgz" + integrity sha512-XwVteWQx/XkfRPyaGkw8dEbrCAkoRZ73pI3XznUYIpzbCfpQB3UnDlR5TnmdhetlT889tUJGF8QWo9xrgTpsiA== + +"@types/node@*", "@types/node@^18.0.6": + version "18.6.3" + resolved "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz" + integrity sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg== + +"@types/node@^16.9.2": + version "16.11.45" + resolved "https://registry.npmjs.org/@types/node/-/node-16.11.45.tgz" + integrity sha512-3rKg/L5x0rofKuuUt5zlXzOnKyIHXmIu5R8A0TuNDMF2062/AOIDBciFIjToLEJ/9F9DzkHNot+BpNsMI1OLdQ== + +"@types/notp@^2.0.0": + version "2.0.2" + resolved "https://registry.npmjs.org/@types/notp/-/notp-2.0.2.tgz" + integrity sha512-JUcVYN9Tmw0AjoAfvjslS4hbv39fPBbZdftBK3b50g5z/DmhLsu6cd0UOEBiQuMwy2FirshF2Gk9gAvfWjshMw== + dependencies: + "@types/node" "*" + +"@types/prettier@^2.1.5": + version "2.6.3" + resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz" + integrity sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg== + +"@types/qs@*": + version "6.9.7" + resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" + integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + +"@types/range-parser@*": + version "1.2.4" + resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" + integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + +"@types/serve-static@*": + version "1.13.10" + resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz" + integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + dependencies: + "@types/mime" "^1" + "@types/node" "*" + +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + +"@types/stream-buffers@^3.0.3": + version "3.0.4" + resolved "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.4.tgz" + integrity sha512-qU/K1tb2yUdhXkLIATzsIPwbtX6BpZk0l3dPW6xqWyhfzzM1ECaQ/8faEnu3CNraLiQ9LHyQQPBGp7N9Fbs25w== + dependencies: + "@types/node" "*" + +"@types/strip-bom@^3.0.0": + version "3.0.0" + resolved "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ== + +"@types/strip-json-comments@0.0.30": + version "0.0.30" + resolved "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz" + integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== + +"@types/ws@^8.5.3": + version "8.5.3" + resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz" + integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== + dependencies: + "@types/node" "*" + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^17.0.8": + version "17.0.10" + resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz" + integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== + dependencies: + "@types/yargs-parser" "*" + +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + +"@zerollup/ts-helpers@^1.7.18": + version "1.7.18" + resolved "https://registry.npmjs.org/@zerollup/ts-helpers/-/ts-helpers-1.7.18.tgz" + integrity sha512-S9zN+y+i5yN/evfWquzSO3lubqPXIsPQf6p9OiPMpRxDx/0totPLF39XoRw48Dav5dSvbIE8D2eAPpXXJxvKwg== + dependencies: + resolve "^1.12.0" + +abbrev@1: + version "1.1.1" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn-walk@^8.1.1, acorn-walk@^8.2.0: + version "8.2.0" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1, acorn@^8.7.0: + version "8.7.1" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== + +agent-base@6, agent-base@^6.0.0, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agentkeepalive@^4.1.3: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-formats@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + +ajv@^8.0.0, ajv@^8.11.0: + version "8.11.0" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +amqplib@^0.10.1: + version "0.10.1" + resolved "https://registry.npmjs.org/amqplib/-/amqplib-0.10.1.tgz" + integrity sha512-Hs33MdtFmJ2WKQT9SBtrlet3aUNzMzZA/FF6p3NGGo7Fp/BVD4X3Po7bQxAA7uE0MmXPZ8EschLMbN+CjGx4dg== + dependencies: + bitsyntax "~0.1.0" + buffer-more-ints "~1.0.0" + readable-stream "1.x >=1.1.9" + url-parse "~1.5.10" + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + +anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +app-root-path@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz" + integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== + +append-field@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz" + integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +are-we-there-yet@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" + integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +ast-types@^0.13.2: + version "0.13.4" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz" + integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== + dependencies: + tslib "^2.0.1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +babel-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz" + integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== + dependencies: + "@jest/transform" "^28.1.3" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.1.1" + babel-preset-jest "^28.1.3" + chalk "^4.0.0" + graceful-fs "^4.2.9" + slash "^3.0.0" + +babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-istanbul@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" + integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-instrument "^5.0.4" + test-exclude "^6.0.0" + +babel-plugin-jest-hoist@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz" + integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== + dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.1.14" + "@types/babel__traverse" "^7.0.6" + +babel-plugin-polyfill-corejs2@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz" + integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.3.1" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz" + integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + core-js-compat "^3.21.0" + +babel-plugin-polyfill-regenerator@^0.3.1: + version "0.3.1" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz" + integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.3.1" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== + dependencies: + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-bigint" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + +babel-preset-jest@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz" + integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== + dependencies: + babel-plugin-jest-hoist "^28.1.3" + babel-preset-current-node-syntax "^1.0.0" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +basic-auth@~2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz" + integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== + dependencies: + safe-buffer "5.1.2" + +bcrypt@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz" + integrity sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.0" + node-addon-api "^3.1.0" + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +bitsyntax@~0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz" + integrity sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q== + dependencies: + buffer-more-ints "~1.0.0" + debug "~2.6.9" + safe-buffer "~5.1.2" + +body-parser@1.20.0, body-parser@^1.19.0: + version "1.20.0" + resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz" + integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.10.3" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.20.2, browserslist@^4.21.1: + version "4.21.2" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz" + integrity sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA== + dependencies: + caniuse-lite "^1.0.30001366" + electron-to-chromium "^1.4.188" + node-releases "^2.0.6" + update-browserslist-db "^1.0.4" + +bser@2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== + dependencies: + node-int64 "^0.4.0" + +buffer-equal-constant-time@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" + integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-more-ints@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz" + integrity sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg== + +buffer-writer@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" + integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== + +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +busboy@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacache@^15.2.0: + version "15.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== + dependencies: + "@npmcli/fs" "^1.0.0" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.1" + tar "^6.0.2" + unique-filename "^1.1.1" + +call-bind@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.2.0: + version "6.3.0" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +caniuse-lite@^1.0.30001366: + version "1.0.30001367" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz" + integrity sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw== + +canvas@^2.9.3: + version "2.9.3" + resolved "https://registry.npmjs.org/canvas/-/canvas-2.9.3.tgz" + integrity sha512-WOUM7ghii5TV2rbhaZkh1youv/vW1/Canev6Yx6BG2W+1S07w8jKZqKkPnbiPpQEDsnJdN8ouDd7OvQEGXDcUw== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.0" + nan "^2.15.0" + simple-get "^3.0.3" + +chalk@^2.0.0, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +char-regex@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== + +cheerio-select@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" + integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== + dependencies: + boolbase "^1.0.0" + css-select "^5.1.0" + css-what "^6.1.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + domutils "^3.0.1" + +cheerio@^1.0.0-rc.10: + version "1.0.0-rc.12" + resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz" + integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== + dependencies: + cheerio-select "^2.1.0" + dom-serializer "^2.0.0" + domhandler "^5.0.3" + domutils "^3.0.1" + htmlparser2 "^8.0.1" + parse5 "^7.0.0" + parse5-htmlparser2-tree-adapter "^7.0.0" + +chokidar@^3.5.1: + version "3.5.3" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +ci-info@^3.2.0: + version "3.3.2" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz" + integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== + +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-highlight@^2.1.11: + version "2.1.11" + resolved "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz" + integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== + dependencies: + chalk "^4.0.0" + highlight.js "^10.7.1" + mz "^2.4.0" + parse5 "^5.1.1" + parse5-htmlparser2-tree-adapter "^6.0.0" + yargs "^16.0.0" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== + +collect-v8-coverage@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" + integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@^1.1.2, color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +component-emitter@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-stream@^1.5.2: + version "1.6.2" + resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +cookie@^0.4.1: + version "0.4.2" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" + integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== + +cookiejar@^2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz" + integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== + +core-js-compat@^3.21.0, core-js-compat@^3.22.1: + version "3.23.4" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.4.tgz" + integrity sha512-RkSRPe+JYEoflcsuxJWaiMPhnZoFS51FcIxm53k4KzhISCBTmaGlto9dTIrYuk0hnJc3G6pKufAKepHnBq6B6Q== + dependencies: + browserslist "^4.21.1" + semver "7.0.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +data-uri-to-buffer@3: + version "3.0.1" + resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz" + integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== + +date-fns@^2.28.0: + version "2.28.0" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz" + integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== + +debug@2.6.9, debug@~2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.3, debug@^4.3.4: + version "4.3.4" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decompress-response@^4.2.0: + version "4.2.1" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz" + integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== + dependencies: + mimic-response "^2.0.0" + +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" + integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== + +deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +define-properties@^1.1.3: + version "1.1.4" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +degenerator@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz" + integrity sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ== + dependencies: + ast-types "^0.13.2" + escodegen "^1.8.1" + esprima "^4.0.0" + vm2 "^3.9.8" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +denque@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" + integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== + +depd@2.0.0, depd@~2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-libc@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + +detect-newline@^3.0.0: + version "3.1.0" + resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== + +dezalgo@1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz" + integrity sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ== + dependencies: + asap "^2.0.0" + wrappy "1" + +diff-sequences@^28.1.1: + version "28.1.1" + resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz" + integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz" + integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.1" + +dotenv@*, dotenv@^16.0.0, dotenv@^16.0.1: + version "16.0.1" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz" + integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ== + +dynamic-dedupe@^0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz" + integrity sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ== + dependencies: + xtend "^4.0.0" + +ecdsa-sig-formatter@1.0.11: + version "1.0.11" + resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" + integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== + dependencies: + safe-buffer "^5.0.1" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.188: + version "1.4.192" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.192.tgz" + integrity sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw== + +emittery@^0.10.2: + version "0.10.2" + resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz" + integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding@^0.1.12: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +entities@2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +entities@^4.2.0, entities@^4.3.0: + version "4.3.1" + resolved "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz" + integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +escape-string-regexp@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== + +escodegen@^1.8.1: + version "1.14.3" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + +esprima@^4.0.0, esprima@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +exif-be-gone@^1.3.0: + version "1.3.0" + resolved "https://registry.npmjs.org/exif-be-gone/-/exif-be-gone-1.3.0.tgz" + integrity sha512-6s/SnuWviwtP6TB3Gc2Nc2GIWYCIs3N9V4Md773EWIfC4uOR+O3thZXO4ElbJJOvjtDNR4FVoMVNKgZWRKiQNQ== + dependencies: + "@types/stream-buffers" "^3.0.3" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== + +expect@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz" + integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== + dependencies: + "@jest/expect-utils" "^28.1.3" + jest-get-type "^28.0.2" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + +express-async-errors@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/express-async-errors/-/express-async-errors-3.1.1.tgz" + integrity sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng== + +express@^4.17.1: + version "4.18.1" + resolved "https://registry.npmjs.org/express/-/express-4.18.1.tgz" + integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.0" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.10.3" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fast-safe-stringify@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + +fast-xml-parser@3.19.0: + version "3.19.0" + resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz" + integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg== + +fb-watchman@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" + integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + dependencies: + bser "2.1.1" + +file-type@16.5: + version "16.5.4" + resolved "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz" + integrity sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw== + dependencies: + readable-web-to-node-stream "^3.0.0" + strtok3 "^6.2.4" + token-types "^4.1.1" + +file-uri-to-path@2: + version "2.0.0" + resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz" + integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-yarn-workspace-root@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz" + integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== + dependencies: + micromatch "^4.0.2" + +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +formidable@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz" + integrity sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ== + dependencies: + dezalgo "1.0.3" + hexoid "1.0.0" + once "1.4.0" + qs "6.9.3" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +ftp@^0.3.10: + version "0.3.10" + resolved "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz" + integrity sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ== + dependencies: + readable-stream "1.1.x" + xregexp "2.0.0" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + +gauge@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" + integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^3.0.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + +generate-function@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" + integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== + dependencies: + is-property "^1.0.2" + +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: + version "1.1.2" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-uri@3: + version "3.0.2" + resolved "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz" + integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg== + dependencies: + "@tootallnate/once" "1" + data-uri-to-buffer "3" + debug "4" + file-uri-to-path "2" + fs-extra "^8.1.0" + ftp "^0.3.10" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.7, glob@^7.2.0: + version "7.2.3" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.1, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +helmet@^4.4.1: + version "4.6.0" + resolved "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz" + integrity sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg== + +hexoid@1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz" + integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== + +highlight.js@^10.7.1: + version "10.7.3" + resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz" + integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== + +html-escaper@^2.0.0: + version "2.0.2" + resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== + +htmlparser2@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz" + integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + domutils "^3.0.1" + entities "^4.3.0" + +http-cache-semantics@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +https-proxy-agent@5, https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + +i18next-http-middleware@^3.1.3: + version "3.2.1" + resolved "https://registry.npmjs.org/i18next-http-middleware/-/i18next-http-middleware-3.2.1.tgz" + integrity sha512-zBwXxDChT0YLoTXIR6jRuqnUUhXW0Iw7egoTnNXyaDRtTbfWNXwU0a53ThyuRPQ+k+tXu3ZMNKRzfLuononaRw== + +i18next-node-fs-backend@^2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.3.tgz" + integrity sha512-CreMFiVl3ChlMc5ys/e0QfuLFOZyFcL40Jj6jaKD6DxZ/GCUMxPI9BpU43QMWUgC7r+PClpxg2cGXAl0CjG04g== + dependencies: + js-yaml "3.13.1" + json5 "2.0.0" + +i18next@>=17.0.11, i18next@^21.8.14: + version "21.8.14" + resolved "https://registry.npmjs.org/i18next/-/i18next-21.8.14.tgz" + integrity sha512-4Yi+DtexvMm/Yw3Q9fllzY12SgLk+Mcmar+rCAccsOPul/2UmnBzoHbTGn/L48IPkFcmrNaH7xTLboBWIbH6pw== + dependencies: + "@babel/runtime" "^7.17.2" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2, iconv-lite@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +image-size@^1.0.0: + version "1.0.2" + resolved "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz" + integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg== + dependencies: + queue "6.0.2" + +import-local@^3.0.2: + version "3.1.0" + resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" + integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== + dependencies: + pkg-dir "^4.2.0" + resolve-cwd "^3.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ini@^1.3.5: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +ip@^1.1.5: + version "1.1.8" + resolved "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz" + integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-core-module@^2.9.0: + version "2.9.0" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + +is-docker@^2.0.0: + version "2.2.1" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-fn@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-property@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g== + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-wsl@^2.1.1: + version "2.2.0" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" + integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + +istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: + version "5.2.0" + resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz" + integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== + dependencies: + "@babel/core" "^7.12.3" + "@babel/parser" "^7.14.7" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.2.0" + semver "^6.3.0" + +istanbul-lib-report@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== + dependencies: + istanbul-lib-coverage "^3.0.0" + make-dir "^3.0.0" + supports-color "^7.1.0" + +istanbul-lib-source-maps@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" + integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== + dependencies: + debug "^4.1.1" + istanbul-lib-coverage "^3.0.0" + source-map "^0.6.1" + +istanbul-reports@^3.1.3: + version "3.1.5" + resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz" + integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + +jest-changed-files@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz" + integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== + dependencies: + execa "^5.0.0" + p-limit "^3.1.0" + +jest-circus@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz" + integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/expect" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + is-generator-fn "^2.0.0" + jest-each "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-runtime "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + p-limit "^3.1.0" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-cli@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz" + integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== + dependencies: + "@jest/core" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + chalk "^4.0.0" + exit "^0.1.2" + graceful-fs "^4.2.9" + import-local "^3.0.2" + jest-config "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" + prompts "^2.0.1" + yargs "^17.3.1" + +jest-config@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz" + integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== + dependencies: + "@babel/core" "^7.11.6" + "@jest/test-sequencer" "^28.1.3" + "@jest/types" "^28.1.3" + babel-jest "^28.1.3" + chalk "^4.0.0" + ci-info "^3.2.0" + deepmerge "^4.2.2" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-circus "^28.1.3" + jest-environment-node "^28.1.3" + jest-get-type "^28.0.2" + jest-regex-util "^28.0.2" + jest-resolve "^28.1.3" + jest-runner "^28.1.3" + jest-util "^28.1.3" + jest-validate "^28.1.3" + micromatch "^4.0.4" + parse-json "^5.2.0" + pretty-format "^28.1.3" + slash "^3.0.0" + strip-json-comments "^3.1.1" + +jest-diff@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz" + integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== + dependencies: + chalk "^4.0.0" + diff-sequences "^28.1.1" + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + +jest-docblock@^28.1.1: + version "28.1.1" + resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz" + integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== + dependencies: + detect-newline "^3.0.0" + +jest-each@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz" + integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== + dependencies: + "@jest/types" "^28.1.3" + chalk "^4.0.0" + jest-get-type "^28.0.2" + jest-util "^28.1.3" + pretty-format "^28.1.3" + +jest-environment-node@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz" + integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + jest-mock "^28.1.3" + jest-util "^28.1.3" + +jest-expect-message@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/jest-expect-message/-/jest-expect-message-1.0.2.tgz" + integrity sha512-WFiXMgwS2lOqQZt1iJMI/hOXpUm32X+ApsuzYcQpW5m16Pv6/Gd9kgC+Q+Q1YVNU04kYcAOv9NXMnjg6kKUy6Q== + +jest-get-type@^28.0.2: + version "28.0.2" + resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz" + integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== + +jest-haste-map@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz" + integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== + dependencies: + "@jest/types" "^28.1.3" + "@types/graceful-fs" "^4.1.3" + "@types/node" "*" + anymatch "^3.0.3" + fb-watchman "^2.0.0" + graceful-fs "^4.2.9" + jest-regex-util "^28.0.2" + jest-util "^28.1.3" + jest-worker "^28.1.3" + micromatch "^4.0.4" + walker "^1.0.8" + optionalDependencies: + fsevents "^2.3.2" + +jest-leak-detector@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz" + integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== + dependencies: + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + +jest-matcher-utils@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz" + integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== + dependencies: + chalk "^4.0.0" + jest-diff "^28.1.3" + jest-get-type "^28.0.2" + pretty-format "^28.1.3" + +jest-message-util@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz" + integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^28.1.3" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^28.1.3" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz" + integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== + +jest-regex-util@^28.0.2: + version "28.0.2" + resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz" + integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== + +jest-resolve-dependencies@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz" + integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== + dependencies: + jest-regex-util "^28.0.2" + jest-snapshot "^28.1.3" + +jest-resolve@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz" + integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== + dependencies: + chalk "^4.0.0" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + jest-pnp-resolver "^1.2.2" + jest-util "^28.1.3" + jest-validate "^28.1.3" + resolve "^1.20.0" + resolve.exports "^1.1.0" + slash "^3.0.0" + +jest-runner@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz" + integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== + dependencies: + "@jest/console" "^28.1.3" + "@jest/environment" "^28.1.3" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + emittery "^0.10.2" + graceful-fs "^4.2.9" + jest-docblock "^28.1.1" + jest-environment-node "^28.1.3" + jest-haste-map "^28.1.3" + jest-leak-detector "^28.1.3" + jest-message-util "^28.1.3" + jest-resolve "^28.1.3" + jest-runtime "^28.1.3" + jest-util "^28.1.3" + jest-watcher "^28.1.3" + jest-worker "^28.1.3" + p-limit "^3.1.0" + source-map-support "0.5.13" + +jest-runtime@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz" + integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== + dependencies: + "@jest/environment" "^28.1.3" + "@jest/fake-timers" "^28.1.3" + "@jest/globals" "^28.1.3" + "@jest/source-map" "^28.1.2" + "@jest/test-result" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + chalk "^4.0.0" + cjs-module-lexer "^1.0.0" + collect-v8-coverage "^1.0.0" + execa "^5.0.0" + glob "^7.1.3" + graceful-fs "^4.2.9" + jest-haste-map "^28.1.3" + jest-message-util "^28.1.3" + jest-mock "^28.1.3" + jest-regex-util "^28.0.2" + jest-resolve "^28.1.3" + jest-snapshot "^28.1.3" + jest-util "^28.1.3" + slash "^3.0.0" + strip-bom "^4.0.0" + +jest-snapshot@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz" + integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== + dependencies: + "@babel/core" "^7.11.6" + "@babel/generator" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" + "@babel/types" "^7.3.3" + "@jest/expect-utils" "^28.1.3" + "@jest/transform" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/babel__traverse" "^7.0.6" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" + chalk "^4.0.0" + expect "^28.1.3" + graceful-fs "^4.2.9" + jest-diff "^28.1.3" + jest-get-type "^28.0.2" + jest-haste-map "^28.1.3" + jest-matcher-utils "^28.1.3" + jest-message-util "^28.1.3" + jest-util "^28.1.3" + natural-compare "^1.4.0" + pretty-format "^28.1.3" + semver "^7.3.5" + +jest-util@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz" + integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== + dependencies: + "@jest/types" "^28.1.3" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz" + integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== + dependencies: + "@jest/types" "^28.1.3" + camelcase "^6.2.0" + chalk "^4.0.0" + jest-get-type "^28.0.2" + leven "^3.1.0" + pretty-format "^28.1.3" + +jest-watcher@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz" + integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== + dependencies: + "@jest/test-result" "^28.1.3" + "@jest/types" "^28.1.3" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.10.2" + jest-util "^28.1.3" + string-length "^4.0.1" + +jest-worker@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz" + integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^8.0.0" + +jest@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz" + integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== + dependencies: + "@jest/core" "^28.1.3" + "@jest/types" "^28.1.3" + import-local "^3.0.2" + jest-cli "^28.1.3" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@3.13.1, js-yaml@^3.13.1: + version "3.13.1" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json5@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/json5/-/json5-2.0.0.tgz" + integrity sha512-0EdQvHuLm7yJ7lyG5dp7Q3X2ku++BG5ZHaJ5FTnaXpKqDrw4pMxel5Bt3oAYMthnrthFBdnZ1FcsXTPyrQlV0w== + dependencies: + minimist "^1.2.0" + +json5@^2.2.1: + version "2.2.1" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" + integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + +jsonwebtoken@^8.5.1: + version "8.5.1" + resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +jwa@^1.4.1: + version "1.4.1" + resolved "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz" + integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== + dependencies: + buffer-equal-constant-time "1.0.1" + ecdsa-sig-formatter "1.0.11" + safe-buffer "^5.0.1" + +jws@^3.2.2: + version "3.2.2" + resolved "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz" + integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== + dependencies: + jwa "^1.4.1" + safe-buffer "^5.0.1" + +kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klaw-sync@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz" + integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== + dependencies: + graceful-fs "^4.1.11" + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +lambert-server@^1.2.12: + version "1.2.12" + resolved "https://registry.npmjs.org/lambert-server/-/lambert-server-1.2.12.tgz" + integrity sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw== + dependencies: + body-parser "^1.19.0" + chalk "^4.1.1" + express "^4.17.1" + express-async-errors "^3.1.1" + helmet "^4.4.1" + missing-native-js-functions "^1.2.11" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== + +lodash.includes@^4.3.0: + version "4.3.0" + resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" + integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== + +lodash.isboolean@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" + integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== + +lodash.isinteger@^4.0.4: + version "4.0.4" + resolved "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz" + integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== + +lodash.isnumber@^3.0.3: + version "3.0.3" + resolved "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz" + integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== + +lodash.isplainobject@^4.0.6: + version "4.0.6" + resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" + integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== + +lodash.once@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" + integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +lru-cache@^4.1.3: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru_map@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" + integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== + +make-dir@^3.0.0, make-dir@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +make-fetch-happen@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" + integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== + dependencies: + agentkeepalive "^4.1.3" + cacache "^15.2.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^6.0.0" + minipass "^3.1.3" + minipass-collect "^1.0.2" + minipass-fetch "^1.3.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.2" + promise-retry "^2.0.1" + socks-proxy-agent "^6.0.0" + ssri "^8.0.0" + +makeerror@1.0.12: + version "1.0.12" + resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== + dependencies: + tmpl "1.0.5" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +methods@^1.1.2, methods@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@2.6.0: + version "2.6.0" + resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^2.0.0: + version "2.1.0" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz" + integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.6: + version "1.2.6" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" + integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== + dependencies: + minipass "^3.1.0" + minipass-sized "^1.0.3" + minizlib "^2.0.0" + optionalDependencies: + encoding "^0.1.12" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: + version "3.3.4" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + dependencies: + yallist "^4.0.0" + +minizlib@^2.0.0, minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +missing-native-js-functions@^1.2.11, missing-native-js-functions@^1.2.18: + version "1.2.18" + resolved "https://registry.npmjs.org/missing-native-js-functions/-/missing-native-js-functions-1.2.18.tgz" + integrity sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg== + +mkdirp@^0.5.4: + version "0.5.6" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +morgan@^1.10.0: + version "1.10.0" + resolved "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz" + integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== + dependencies: + basic-auth "~2.0.1" + debug "2.6.9" + depd "~2.0.0" + on-finished "~2.3.0" + on-headers "~1.0.2" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2, ms@^2.1.1: + version "2.1.2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.0.0: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multer@^1.4.5-lts.1: + version "1.4.5-lts.1" + resolved "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz" + integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== + dependencies: + append-field "^1.0.0" + busboy "^1.0.0" + concat-stream "^1.5.2" + mkdirp "^0.5.4" + object-assign "^4.1.1" + type-is "^1.6.4" + xtend "^4.0.0" + +mysql2@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-2.3.3.tgz#944f3deca4b16629052ff8614fbf89d5552545a0" + integrity sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA== + dependencies: + denque "^2.0.1" + generate-function "^2.3.1" + iconv-lite "^0.6.3" + long "^4.0.0" + lru-cache "^6.0.0" + named-placeholders "^1.1.2" + seq-queue "^0.0.5" + sqlstring "^2.3.2" + +mz@^2.4.0: + version "2.7.0" + resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + +named-placeholders@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/named-placeholders/-/named-placeholders-1.1.2.tgz#ceb1fbff50b6b33492b5cf214ccf5e39cef3d0e8" + integrity sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA== + dependencies: + lru-cache "^4.1.3" + +nan@^2.15.0: + version "2.16.0" + resolved "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz" + integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@0.6.3, negotiator@^0.6.2: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +netmask@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" + integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-2fa@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/node-2fa/-/node-2fa-2.0.3.tgz" + integrity sha512-PQldrOhjuoZyoydMvMSctllPN1ZPZ1/NwkEcgYwY9faVqE/OymxR+3awPpbWZxm6acLKqvmNqQmdqTsqYyflFw== + dependencies: + "@types/notp" "^2.0.0" + notp "^2.0.3" + thirty-two "1.0.2" + tslib "^2.1.0" + +node-addon-api@^3.1.0: + version "3.2.1" + resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== + +node-addon-api@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" + integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== + +node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-gyp@8.x: + version "8.4.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" + integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^9.1.0" + nopt "^5.0.0" + npmlog "^6.0.0" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.2" + which "^2.0.2" + +node-int64@^0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== + +node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +notp@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/notp/-/notp-2.0.3.tgz" + integrity sha512-oBig/2uqkjQ5AkBuw4QJYwkEWa/q+zHxI5/I5z6IeP2NT0alpJFsP/trrfCC+9xOAgQSZXssNi962kp5KBmypQ== + +npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + +npmlog@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== + dependencies: + are-we-there-yet "^3.0.0" + console-control-strings "^1.1.0" + gauge "^4.0.3" + set-blocking "^2.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +object-assign@^4.0.1, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.0: + version "4.1.2" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@1.4.0, once@^1.3.0, once@^1.3.1: + version "1.4.0" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^7.4.2: + version "7.4.2" + resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pac-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz" + integrity sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + get-uri "3" + http-proxy-agent "^4.0.1" + https-proxy-agent "5" + pac-resolver "^5.0.0" + raw-body "^2.2.0" + socks-proxy-agent "5" + +pac-resolver@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz" + integrity sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q== + dependencies: + degenerator "^3.0.2" + ip "^1.1.5" + netmask "^2.0.2" + +packet-reader@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" + integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== + +parse-json@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parse5-htmlparser2-tree-adapter@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz" + integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== + dependencies: + parse5 "^6.0.1" + +parse5-htmlparser2-tree-adapter@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz" + integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== + dependencies: + domhandler "^5.0.2" + parse5 "^7.0.0" + +parse5@^5.1.1: + version "5.1.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parse5@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + +parse5@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz" + integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== + dependencies: + entities "^4.3.0" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +patch-package@^6.4.7: + version "6.4.7" + resolved "https://registry.npmjs.org/patch-package/-/patch-package-6.4.7.tgz" + integrity sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^2.4.2" + cross-spawn "^6.0.5" + find-yarn-workspace-root "^2.0.0" + fs-extra "^7.0.1" + is-ci "^2.0.0" + klaw-sync "^6.0.0" + minimist "^1.2.0" + open "^7.4.2" + rimraf "^2.6.3" + semver "^5.6.0" + slash "^2.0.0" + tmp "^0.0.33" + +path-equal@^1.1.2: + version "1.2.2" + resolved "https://registry.npmjs.org/path-equal/-/path-equal-1.2.2.tgz" + integrity sha512-AUJvbcle1Zgb1TgtftHYknlrgrSYyI1ytrYgSbKUHSybwqUDnbD2cw9PIWivuMvsN+GTXmr/DRN4VBXpHG6aGg== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +peek-readable@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz" + integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== + +pg-connection-string@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" + integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.5.1.tgz#f499ce76f9bf5097488b3b83b19861f28e4ed905" + integrity sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ== + +pg-protocol@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz#b5dd452257314565e2d54ab3c132adc46565a6a0" + integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@^8.7.3: + version "8.7.3" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.7.3.tgz#8a5bdd664ca4fda4db7997ec634c6e5455b27c44" + integrity sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw== + dependencies: + buffer-writer "2.0.0" + packet-reader "1.0.0" + pg-connection-string "^2.5.0" + pg-pool "^3.5.1" + pg-protocol "^1.5.0" + pg-types "^2.1.0" + pgpass "1.x" + +pgpass@1.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== + dependencies: + split2 "^4.1.0" + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pirates@^4.0.4: + version "4.0.5" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" + integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + +pretty-format@^28.1.3: + version "28.1.3" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz" + integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== + dependencies: + "@jest/schemas" "^28.1.3" + ansi-regex "^5.0.1" + ansi-styles "^5.0.0" + react-is "^18.0.0" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +prompts@^2.0.1: + version "2.4.2" + resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz" + integrity sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g== + dependencies: + agent-base "^6.0.0" + debug "4" + http-proxy-agent "^4.0.0" + https-proxy-agent "^5.0.0" + lru-cache "^5.1.1" + pac-proxy-agent "^5.0.0" + proxy-from-env "^1.0.0" + socks-proxy-agent "^5.0.0" + +proxy-from-env@^1.0.0: + version "1.1.0" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.10.3, qs@^6.10.3: + version "6.10.3" + resolved "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz" + integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== + dependencies: + side-channel "^1.0.4" + +qs@6.9.3: + version "6.9.3" + resolved "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz" + integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +queue@6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz" + integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== + dependencies: + inherits "~2.0.3" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1, raw-body@^2.2.0: + version "2.5.1" + resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-is@^18.0.0: + version "18.2.0" + resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" + integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== + +readable-stream@1.1.x, "readable-stream@1.x >=1.1.9": + version "1.1.14" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.2.2: + version "2.3.7" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-web-to-node-stream@^3.0.0: + version "3.0.2" + resolved "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz" + integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== + dependencies: + readable-stream "^3.6.0" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + +reflect-metadata@^0.1.13: + version "0.1.13" + resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +regenerate-unicode-properties@^10.0.1: + version "10.0.1" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz" + integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== + dependencies: + regenerate "^1.4.2" + +regenerate@^1.4.2: + version "1.4.2" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== + +regenerator-runtime@^0.13.4: + version "0.13.9" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== + +regenerator-transform@^0.15.0: + version "0.15.0" + resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" + integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== + dependencies: + "@babel/runtime" "^7.8.4" + +regexpu-core@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz" + integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== + dependencies: + regenerate "^1.4.2" + regenerate-unicode-properties "^10.0.1" + regjsgen "^0.6.0" + regjsparser "^0.8.2" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.0.0" + +regjsgen@^0.6.0: + version "0.6.0" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz" + integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== + +regjsparser@^0.8.2: + version "0.8.4" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz" + integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== + dependencies: + jsesc "~0.5.0" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +resolve-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== + dependencies: + resolve-from "^5.0.0" + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve.exports@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" + integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== + +resolve@^1.0.0, resolve@^1.1.6, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1: + version "1.22.1" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +rimraf@^2.6.1, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-stable-stringify@^2.2.0: + version "2.3.1" + resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz" + integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@>=0.6.0: + version "1.2.4" + resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +semver@^7.3.5, semver@^7.3.7: + version "7.3.7" + resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +seq-queue@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e" + integrity sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q== + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.11: + version "2.4.11" + resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shelljs@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^3.0.3: + version "3.1.1" + resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz" + integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== + dependencies: + decompress-response "^4.2.0" + once "^1.3.1" + simple-concat "^1.0.0" + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks-proxy-agent@5, socks-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz" + integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== + dependencies: + agent-base "^6.0.2" + debug "4" + socks "^2.3.3" + +socks-proxy-agent@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" + integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks@^2.3.3: + version "2.6.2" + resolved "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz" + integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== + dependencies: + ip "^1.1.5" + smart-buffer "^4.2.0" + +socks@^2.6.2: + version "2.7.0" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.0.tgz#f9225acdb841e874dca25f870e9130990f3913d0" + integrity sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + +source-map-support@0.5.13: + version "0.5.13" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" + integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-support@^0.5.12: + version "0.5.21" + resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +split2@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" + integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +sqlite3@^5.0.11: + version "5.0.11" + resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.0.11.tgz#102c835d70be66da9d95a383fd6ea084a082ef7f" + integrity sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA== + dependencies: + "@mapbox/node-pre-gyp" "^1.0.0" + node-addon-api "^4.2.0" + tar "^6.1.11" + optionalDependencies: + node-gyp "8.x" + +sqlstring@^2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.3.tgz#2ddc21f03bce2c387ed60680e739922c65751d0c" + integrity sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg== + +ssri@^8.0.0, ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stack-utils@^2.0.3: + version "2.0.5" + resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" + integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== + dependencies: + escape-string-regexp "^2.0.0" + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +string-length@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== + dependencies: + char-regex "^1.0.2" + strip-ansi "^6.0.0" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + +strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +strtok3@^6.2.4: + version "6.3.0" + resolved "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz" + integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== + dependencies: + "@tokenizer/token" "^0.3.0" + peek-readable "^4.1.0" + +superagent@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/superagent/-/superagent-8.0.0.tgz" + integrity sha512-iudipXEel+SzlP9y29UBWGDjB+Zzag+eeA1iLosaR2YHBRr1Q1kC29iBrF2zIVD9fqVbpZnXkN/VJmwFMVyNWg== + dependencies: + component-emitter "^1.3.0" + cookiejar "^2.1.3" + debug "^4.3.4" + fast-safe-stringify "^2.1.1" + form-data "^4.0.0" + formidable "^2.0.1" + methods "^1.1.2" + mime "2.6.0" + qs "^6.10.3" + readable-stream "^3.6.0" + semver "^7.3.7" + +supertest@^6.1.6: + version "6.2.4" + resolved "https://registry.npmjs.org/supertest/-/supertest-6.2.4.tgz" + integrity sha512-M8xVnCNv+q2T2WXVzxDECvL2695Uv2uUj2O0utxsld/HRyJvOU8W9f1gvsYxSNU4wmIe0/L/ItnpU4iKq0emDA== + dependencies: + methods "^1.1.2" + superagent "^8.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.2.0" + resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tar@^6.0.2, tar@^6.1.11, tar@^6.1.2: + version "6.1.11" + resolved "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +terminal-link@^2.0.0: + version "2.1.1" + resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +test-exclude@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + glob "^7.1.4" + minimatch "^3.0.4" + +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + +thirty-two@1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz" + integrity sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +tmpl@1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +token-types@^4.1.1: + version "4.2.1" + resolved "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz" + integrity sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ== + dependencies: + "@tokenizer/token" "^0.3.0" + ieee754 "^1.2.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +tree-kill@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" + integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== + +ts-node-dev@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-2.0.0.tgz" + integrity sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w== + dependencies: + chokidar "^3.5.1" + dynamic-dedupe "^0.3.0" + minimist "^1.2.6" + mkdirp "^1.0.4" + resolve "^1.0.0" + rimraf "^2.6.1" + source-map-support "^0.5.12" + tree-kill "^1.2.2" + ts-node "^10.4.0" + tsconfig "^7.0.0" + +ts-node@^10.2.1, ts-node@^10.4.0: + version "10.9.1" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +ts-patch@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ts-patch/-/ts-patch-2.0.2.tgz#be9dc294ced6f53d6a8912f1f6ac98af23a715cd" + integrity sha512-NbgdS/J/ylaARJVaF1w4cPw378yvw6C1026fU5NKC2GO4jCwRlkuE/G7gwknNMHwkAOhwamKjuzkuLw/u4KlBg== + dependencies: + chalk "^4.1.2" + glob "^8.0.3" + global-prefix "^3.0.0" + minimist "^1.2.6" + resolve "^1.22.1" + shelljs "^0.8.5" + strip-ansi "^6.0.1" + +tsconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz" + integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== + dependencies: + "@types/strip-bom" "^3.0.0" + "@types/strip-json-comments" "0.0.30" + strip-bom "^3.0.0" + strip-json-comments "^2.0.0" + +tslib@^1.11.1, tslib@^1.9.3: + version "1.14.1" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.1: + version "2.4.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + +type-detect@4.0.8: + version "4.0.8" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-is@^1.6.4, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== + +typeorm@^0.3.7: + version "0.3.7" + resolved "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz" + integrity sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q== + dependencies: + "@sqltools/formatter" "^1.2.2" + app-root-path "^3.0.0" + buffer "^6.0.3" + chalk "^4.1.0" + cli-highlight "^2.1.11" + date-fns "^2.28.0" + debug "^4.3.3" + dotenv "^16.0.0" + glob "^7.2.0" + js-yaml "^4.1.0" + mkdirp "^1.0.4" + reflect-metadata "^0.1.13" + sha.js "^2.4.11" + tslib "^2.3.1" + uuid "^8.3.2" + xml2js "^0.4.23" + yargs "^17.3.1" + +typescript-json-schema@^0.54.0: + version "0.54.0" + resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.54.0.tgz" + integrity sha512-/MNhm1pjdxXiVspjjyRCrQAA1B768cRzHU83aIqN5vQqQEW2NgyyKOfcguiRIMM64lseIZIelegnHOHEu7YDCg== + dependencies: + "@types/json-schema" "^7.0.9" + "@types/node" "^16.9.2" + glob "^7.1.7" + path-equal "^1.1.2" + safe-stable-stringify "^2.2.0" + ts-node "^10.2.1" + typescript "~4.6.0" + yargs "^17.1.1" + +typescript@^4.1.2: + version "4.7.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz" + integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== + +typescript@~4.6.0: + version "4.6.4" + resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz" + integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== + +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== + +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== + dependencies: + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" + +unicode-match-property-value-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" + integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" + integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz" + integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +url-parse@~1.5.10: + version "1.5.10" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +v8-to-istanbul@^9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz" + integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== + dependencies: + "@jridgewell/trace-mapping" "^0.3.12" + "@types/istanbul-lib-coverage" "^2.0.1" + convert-source-map "^1.6.0" + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +vm2@^3.9.8: + version "3.9.10" + resolved "https://registry.npmjs.org/vm2/-/vm2-3.9.10.tgz" + integrity sha512-AuECTSvwu2OHLAZYhG716YzwodKCIJxB6u1zG7PgSQwIgAlEaoXH52bxdcvT8GkGjnYK7r7yWDW0m0sOsPuBjQ== + dependencies: + acorn "^8.7.0" + acorn-walk "^8.2.0" + +walker@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" + integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== + dependencies: + makeerror "1.0.12" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.2, wide-align@^1.1.5: + version "1.1.5" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz" + integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +ws@^8.8.1: + version "8.8.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz" + integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== + +xml2js@^0.4.23: + version "0.4.23" + resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + +xmlbuilder@~11.0.0: + version "11.0.1" + resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" + integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== + +xregexp@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz" + integrity sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA== + +xtend@^4.0.0: + version "4.0.2" + resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== + +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.0.0: + version "21.0.1" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz" + integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== + +yargs@^16.0.0: + version "16.2.0" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yargs@^17.1.1, yargs@^17.3.1: + version "17.5.1" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz" + integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.0.0" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== -- cgit 1.4.1 From 08d5aca13230308cb80199cf7a64e2d9752038f6 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Sat, 13 Aug 2022 04:21:48 +0200 Subject: Update scripts, update workspace, add launch.json --- .vscode/launch.json | 20 ++++++++ fosscord-server.code-workspace | 28 ++--------- package-lock.json | 110 ++++++++++++++++++++++++++++++++++------- scripts/depcheck.js | 2 +- scripts/depclean.js | 99 ++++++++++++++++++------------------- scripts/install.js | 23 --------- scripts/rights.js | 2 +- scripts/update_schemas.js | 2 +- scripts/utils.js | 2 - 9 files changed, 167 insertions(+), 121 deletions(-) create mode 100644 .vscode/launch.json delete mode 100644 scripts/install.js diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..1ddf16e7 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,20 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "node", + "request": "launch", + "name": "Launch Program", + "skipFiles": [ + "/**" + ], + "program": "${file}", + "outFiles": [ + "${workspaceFolder}/**/*.js" + ] + } + ] +} \ No newline at end of file diff --git a/fosscord-server.code-workspace b/fosscord-server.code-workspace index 4a7440f6..1d6774ad 100644 --- a/fosscord-server.code-workspace +++ b/fosscord-server.code-workspace @@ -1,22 +1,16 @@ { "folders": [ { - "path": "bundle" + "path": "src/" }, { - "path": "api" + "path": "assets/" }, { - "path": "cdn" + "path": "scripts/" }, { - "path": "gateway" - }, - { - "path": "util" - }, - { - "path": "plugins" + "path": "." } ], "settings": { @@ -26,18 +20,6 @@ ".prettierrc": true, ".vscode": true, "*.ansi": true, - "benchmarks": true, - "database.db": true, - "files/": true, - "jest": true, - "locales/[!e]*": true, - "locales/e[!n]*": true, - "node_modules": true, - "package-lock.json": true, - "patches": true, - "README.md": true, - "tests/": true, - "tsconfig.tsbuildinfo": true } } -} +} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index a97e75be..2da3174e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,7 @@ "": { "name": "@fosscord/server", "version": "1.0.0", + "hasInstallScript": true, "license": "AGPL-3.0-only", "dependencies": { "@aws-sdk/client-s3": "^3.137.0", @@ -68,7 +69,7 @@ "supertest": "^6.1.6", "ts-node": "^10.2.1", "ts-node-dev": "^2.0.0", - "ts-patch": "^2.0.1", + "ts-patch": "^2.0.2", "typescript": "^4.2.3", "typescript-json-schema": "^0.54.0" }, @@ -12125,18 +12126,18 @@ } }, "node_modules/ts-patch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-2.0.1.tgz", - "integrity": "sha512-mP7beU1QkmyDs1+SzXYVaSTD6Xo7ZCibOJ3sZkb/xsQjoAQXvn4oPjk0keC2LfCNAgilqtqgjiWp3pQri1uz4w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-2.0.2.tgz", + "integrity": "sha512-NbgdS/J/ylaARJVaF1w4cPw378yvw6C1026fU5NKC2GO4jCwRlkuE/G7gwknNMHwkAOhwamKjuzkuLw/u4KlBg==", "dev": true, "dependencies": { - "chalk": "^4.1.0", - "glob": "^7.1.7", + "chalk": "^4.1.2", + "glob": "^8.0.3", "global-prefix": "^3.0.0", - "minimist": "^1.2.5", - "resolve": "^1.20.0", - "shelljs": "^0.8.4", - "strip-ansi": "^6.0.0" + "minimist": "^1.2.6", + "resolve": "^1.22.1", + "shelljs": "^0.8.5", + "strip-ansi": "^6.0.1" }, "bin": { "ts-patch": "bin/cli.js" @@ -12160,6 +12161,15 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/ts-patch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/ts-patch/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -12194,6 +12204,25 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/ts-patch/node_modules/glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ts-patch/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -12203,6 +12232,18 @@ "node": ">=8" } }, + "node_modules/ts-patch/node_modules/minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ts-patch/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -22153,18 +22194,18 @@ } }, "ts-patch": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-2.0.1.tgz", - "integrity": "sha512-mP7beU1QkmyDs1+SzXYVaSTD6Xo7ZCibOJ3sZkb/xsQjoAQXvn4oPjk0keC2LfCNAgilqtqgjiWp3pQri1uz4w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ts-patch/-/ts-patch-2.0.2.tgz", + "integrity": "sha512-NbgdS/J/ylaARJVaF1w4cPw378yvw6C1026fU5NKC2GO4jCwRlkuE/G7gwknNMHwkAOhwamKjuzkuLw/u4KlBg==", "dev": true, "requires": { - "chalk": "^4.1.0", - "glob": "^7.1.7", + "chalk": "^4.1.2", + "glob": "^8.0.3", "global-prefix": "^3.0.0", - "minimist": "^1.2.5", - "resolve": "^1.20.0", - "shelljs": "^0.8.4", - "strip-ansi": "^6.0.0" + "minimist": "^1.2.6", + "resolve": "^1.22.1", + "shelljs": "^0.8.5", + "strip-ansi": "^6.0.1" }, "dependencies": { "ansi-styles": { @@ -22176,6 +22217,15 @@ "color-convert": "^2.0.1" } }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -22201,12 +22251,34 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", diff --git a/scripts/depcheck.js b/scripts/depcheck.js index 1957f794..08df156c 100644 --- a/scripts/depcheck.js +++ b/scripts/depcheck.js @@ -4,7 +4,7 @@ const { env } = require("process"); const { execSync } = require("child_process"); const { argv, stdout, exit } = require("process"); -const { execIn, getLines, parts } = require("./utils"); +const { execIn, getLines } = require("./utils"); let npmi_extra_flags = ""; diff --git a/scripts/depclean.js b/scripts/depclean.js index 830081b9..333f5aa0 100644 --- a/scripts/depclean.js +++ b/scripts/depclean.js @@ -4,62 +4,59 @@ const { env } = require("process"); const { execSync } = require("child_process"); const { argv, stdout, exit } = require("process"); -const { execIn, getLines, parts } = require('./utils'); +const { execIn, getLines } = require('./utils'); const bundleRequired = ["@ovos-media/ts-transform-paths"]; const removeModules = argv.includes("cleanup"); -parts.forEach((part) => { - console.log(`Installing all packages for ${part}...`); - execIn("npm i", path.join(__dirname, "..", "..", part)); -}); +console.log(`Installing all packages...`); +execIn("npm i", path.join(__dirname, "..")); + +let partDir = path.join(__dirname, ".."); +let distDir = path.join(partDir, "dist"); +let start = 0; +start = getLines( + execIn("npm ls --parseable --package-lock-only -a", partDir) +); +if (fs.existsSync(distDir)) + fs.rmSync(distDir, { + recursive: true, + force: true, + }); +let x = { + dependencies: [], + devDependencies: [], + invalidDirs: [], + invalidFiles: [], + missing: [], + using: [], +}; +let dcproc = execIn("npx depcheck --json", partDir); +if(dcproc.stdout) x = JSON.parse(dcproc.stdout); +else x = JSON.parse(dcproc); + +fs.writeFileSync( + path.join(__dirname, "..", `depclean.out.json`), + JSON.stringify(x, null, "\t"), + { encoding: "utf8" } +); + +let depsToRemove = x.dependencies.join(" "); +if (depsToRemove) execIn(`npm r --save ${depsToRemove}`, partDir); + +depsToRemove = x.devDependencies.join(" "); +if (depsToRemove) execIn(`npm r --save --dev ${depsToRemove}`, partDir); + +if (removeModules && fs.existsSync(path.join(partDir, "node_modules"))) + fs.rmSync(path.join(partDir, "node_modules"), { + recursive: true, + force: true, + }); +let end = getLines( + execIn("npm ls --parseable --package-lock-only -a", partDir) +); +console.log(`${part}: ${start} -> ${end} (diff: ${start - end})`); -parts.forEach((part) => { - let partDir = path.join(__dirname, "..", "..", part); - let distDir = path.join(partDir, "dist"); - let start = 0; - start = getLines( - execIn("npm ls --parseable --package-lock-only -a", partDir) - ); - if (fs.existsSync(distDir)) - fs.rmSync(distDir, { - recursive: true, - force: true, - }); - let x = { - dependencies: [], - devDependencies: [], - invalidDirs: [], - invalidFiles: [], - missing: [], - using: [], - }; - let dcproc = execIn("npx depcheck --json", partDir); - if(dcproc.stdout) x = JSON.parse(dcproc.stdout); - else x = JSON.parse(dcproc); - - fs.writeFileSync( - path.join(__dirname, "..", `depclean.out.${part}.json`), - JSON.stringify(x, null, "\t"), - { encoding: "utf8" } - ); - - let depsToRemove = x.dependencies.join(" "); - if (depsToRemove) execIn(`npm r --save ${depsToRemove}`, partDir); - - depsToRemove = x.devDependencies.join(" "); - if (depsToRemove) execIn(`npm r --save --dev ${depsToRemove}`, partDir); - - if (removeModules && fs.existsSync(path.join(partDir, "node_modules"))) - fs.rmSync(path.join(partDir, "node_modules"), { - recursive: true, - force: true, - }); - let end = getLines( - execIn("npm ls --parseable --package-lock-only -a", partDir) - ); - console.log(`${part}: ${start} -> ${end} (diff: ${start - end})`); -}); console.log("Installing required packages for bundle..."); execIn(`npm i --save ${bundleRequired.join(" ")}`, path.join(__dirname, "..")); diff --git a/scripts/install.js b/scripts/install.js deleted file mode 100644 index db9dadbc..00000000 --- a/scripts/install.js +++ /dev/null @@ -1,23 +0,0 @@ -const path = require("path"); -const fs = require("fs"); -const parts = ["api", "util", "cdn", "gateway"]; - -const bundle = require("../package.json"); - -for (const part of parts) { - const { devDependencies, dependencies } = require(path.join( - "..", - "..", - part, - "package.json" - )); - bundle.devDependencies = { ...bundle.devDependencies, ...devDependencies }; - bundle.dependencies = { ...bundle.dependencies, ...dependencies }; - delete bundle.dependencies["@fosscord/util"]; -} - -fs.writeFileSync( - path.join(__dirname, "..", "package.json"), - JSON.stringify(bundle, null, "\t"), - { encoding: "utf8" } -); diff --git a/scripts/rights.js b/scripts/rights.js index c363b0c5..20fd139c 100644 --- a/scripts/rights.js +++ b/scripts/rights.js @@ -6,7 +6,7 @@ const { argv, stdout, exit } = require("process"); const { execIn, getLines, parts } = require("./utils"); -let lines = fs.readFileSync(path.join(__dirname, "..", "..", "util", "src","util","Rights.ts")).toString() +let lines = fs.readFileSync(path.join(__dirname, "..", "src", "util", "util","Rights.ts")).toString() let lines2 = lines.split("\n"); let lines3 = lines2.filter(y=>y.includes(": BitFlag(")); let lines4 = lines3.map(x=>x.split("//")[0].trim()) diff --git a/scripts/update_schemas.js b/scripts/update_schemas.js index a018120b..361bedc1 100644 --- a/scripts/update_schemas.js +++ b/scripts/update_schemas.js @@ -6,4 +6,4 @@ const { argv, stdout, exit } = require("process"); const { execIn, getLines, parts } = require("./utils"); -execIn("node scripts/generate_schema.js", path.join("..", "api")); \ No newline at end of file +execIn("node scripts/generate_schema.js", path.join('.')); \ No newline at end of file diff --git a/scripts/utils.js b/scripts/utils.js index f4b1ad7f..ca41bcf2 100644 --- a/scripts/utils.js +++ b/scripts/utils.js @@ -4,8 +4,6 @@ const { env } = require("process"); const { execSync } = require("child_process"); const { argv, stdout, exit } = require("process"); -const parts = ["api", "util", "cdn", "gateway", "bundle"]; - function copyRecursiveSync(src, dest) { //if (verbose) console.log(`cpsync: ${src} -> ${dest}`); let exists = fs.existsSync(src); -- cgit 1.4.1 From 9e00f759d788d54cd190a23a0b39a8a192eec1b2 Mon Sep 17 00:00:00 2001 From: Erkin Alp Güney Date: Sat, 13 Aug 2022 10:21:42 +0300 Subject: Update .vscode/launch.json --- .vscode/launch.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 1ddf16e7..09ff7134 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,7 +1,4 @@ { - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { -- cgit 1.4.1 From bed14559f83734c94ffb038a1407a2f5907e98df Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Sat, 13 Aug 2022 09:31:35 +0200 Subject: downgrade ajv so patches apply --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2da3174e..0d6f7bd0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,7 +16,7 @@ "@sentry/node": "^7.7.0", "@sentry/tracing": "^7.7.0", "@types/node-fetch": "^2.6.2", - "ajv": "^8.11.0", + "ajv": "^8.6.2", "ajv-formats": "^2.1.1", "amqplib": "^0.10.1", "bcrypt": "^5.0.1", @@ -4499,9 +4499,9 @@ } }, "node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -16446,9 +16446,9 @@ } }, "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz", + "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", diff --git a/package.json b/package.json index 95dbb659..59c66811 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "@sentry/node": "^7.7.0", "@sentry/tracing": "^7.7.0", "@types/node-fetch": "^2.6.2", - "ajv": "^8.11.0", + "ajv": "^8.6.2", "ajv-formats": "^2.1.1", "amqplib": "^0.10.1", "bcrypt": "^5.0.1", -- cgit 1.4.1 From 5e629decfc5aaa58fb5c584fa15e76fd5b44c23f Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Sat, 13 Aug 2022 20:43:35 +0200 Subject: Do the funny thing (make user->invite cascade delet) --- .../mariadb/1660265930624-CodeCleanup5.ts | 53 ----- .../mariadb/1660416072362-InvitersAreDeletable.ts | 56 +++++ .../postgres/1660416055566-InvitersAreDeletable.ts | 26 +++ .../sqlite/1660416010862-InvitersAreDeletable.ts | 246 +++++++++++++++++++++ 4 files changed, 328 insertions(+), 53 deletions(-) delete mode 100644 src/util/migrations/mariadb/1660265930624-CodeCleanup5.ts create mode 100644 src/util/migrations/mariadb/1660416072362-InvitersAreDeletable.ts create mode 100644 src/util/migrations/postgres/1660416055566-InvitersAreDeletable.ts create mode 100644 src/util/migrations/sqlite/1660416010862-InvitersAreDeletable.ts diff --git a/src/util/migrations/mariadb/1660265930624-CodeCleanup5.ts b/src/util/migrations/mariadb/1660265930624-CodeCleanup5.ts deleted file mode 100644 index 04f8e6af..00000000 --- a/src/util/migrations/mariadb/1660265930624-CodeCleanup5.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup51660265930624 implements MigrationInterface { - name = 'CodeCleanup51660265930624' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`users\` - ADD \`settingsId\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` (\`settingsId\`) - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD \`flags\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD \`default_thread_rate_limit_per_user\` int NULL - `); - await queryRunner.query(` - CREATE UNIQUE INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD CONSTRAINT \`FK_76ba283779c8441fd5ff819c8cf\` FOREIGN KEY (\`settingsId\`) REFERENCES \`user_settings\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`users\` DROP FOREIGN KEY \`FK_76ba283779c8441fd5ff819c8cf\` - `); - await queryRunner.query(` - DROP INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP COLUMN \`default_thread_rate_limit_per_user\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP COLUMN \`flags\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP COLUMN \`settingsId\` - `); - } - -} diff --git a/src/util/migrations/mariadb/1660416072362-InvitersAreDeletable.ts b/src/util/migrations/mariadb/1660416072362-InvitersAreDeletable.ts new file mode 100644 index 00000000..8374eafb --- /dev/null +++ b/src/util/migrations/mariadb/1660416072362-InvitersAreDeletable.ts @@ -0,0 +1,56 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class InvitersAreDeletable1660416072362 implements MigrationInterface { + name = 'InvitersAreDeletable1660416072362' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` + `); + await queryRunner.query(` + DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` ON \`users\` + `); + await queryRunner.query(` + CREATE TABLE \`plugin_config\` ( + \`key\` varchar(255) NOT NULL, + \`value\` text NULL, + PRIMARY KEY (\`key\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD \`flags\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD \`default_thread_rate_limit_per_user\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`invites\` + ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP COLUMN \`default_thread_rate_limit_per_user\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP COLUMN \`flags\` + `); + await queryRunner.query(` + DROP TABLE \`plugin_config\` + `); + await queryRunner.query(` + CREATE UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) + `); + await queryRunner.query(` + ALTER TABLE \`invites\` + ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + +} diff --git a/src/util/migrations/postgres/1660416055566-InvitersAreDeletable.ts b/src/util/migrations/postgres/1660416055566-InvitersAreDeletable.ts new file mode 100644 index 00000000..e6101318 --- /dev/null +++ b/src/util/migrations/postgres/1660416055566-InvitersAreDeletable.ts @@ -0,0 +1,26 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class InvitersAreDeletable1660416055566 implements MigrationInterface { + name = 'InvitersAreDeletable1660416055566' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "invites" DROP CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" + `); + await queryRunner.query(` + ALTER TABLE "invites" + ADD CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "invites" DROP CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" + `); + await queryRunner.query(` + ALTER TABLE "invites" + ADD CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + +} diff --git a/src/util/migrations/sqlite/1660416010862-InvitersAreDeletable.ts b/src/util/migrations/sqlite/1660416010862-InvitersAreDeletable.ts new file mode 100644 index 00000000..9b29e119 --- /dev/null +++ b/src/util/migrations/sqlite/1660416010862-InvitersAreDeletable.ts @@ -0,0 +1,246 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class InvitersAreDeletable1660416010862 implements MigrationInterface { + name = 'InvitersAreDeletable1660416010862' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_invites" ( + "code" varchar PRIMARY KEY NOT NULL, + "temporary" boolean NOT NULL, + "uses" integer NOT NULL, + "max_uses" integer NOT NULL, + "max_age" integer NOT NULL, + "created_at" datetime NOT NULL, + "expires_at" datetime NOT NULL, + "guild_id" varchar, + "channel_id" varchar, + "inviter_id" varchar, + "target_user_id" varchar, + "target_user_type" integer, + "vanity_url" boolean, + CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_invites"( + "code", + "temporary", + "uses", + "max_uses", + "max_age", + "created_at", + "expires_at", + "guild_id", + "channel_id", + "inviter_id", + "target_user_id", + "target_user_type", + "vanity_url" + ) + SELECT "code", + "temporary", + "uses", + "max_uses", + "max_age", + "created_at", + "expires_at", + "guild_id", + "channel_id", + "inviter_id", + "target_user_id", + "target_user_type", + "vanity_url" + FROM "invites" + `); + await queryRunner.query(` + DROP TABLE "invites" + `); + await queryRunner.query(` + ALTER TABLE "temporary_invites" + RENAME TO "invites" + `); + await queryRunner.query(` + CREATE TABLE "temporary_invites" ( + "code" varchar PRIMARY KEY NOT NULL, + "temporary" boolean NOT NULL, + "uses" integer NOT NULL, + "max_uses" integer NOT NULL, + "max_age" integer NOT NULL, + "created_at" datetime NOT NULL, + "expires_at" datetime NOT NULL, + "guild_id" varchar, + "channel_id" varchar, + "inviter_id" varchar, + "target_user_id" varchar, + "target_user_type" integer, + "vanity_url" boolean, + CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_invites"( + "code", + "temporary", + "uses", + "max_uses", + "max_age", + "created_at", + "expires_at", + "guild_id", + "channel_id", + "inviter_id", + "target_user_id", + "target_user_type", + "vanity_url" + ) + SELECT "code", + "temporary", + "uses", + "max_uses", + "max_age", + "created_at", + "expires_at", + "guild_id", + "channel_id", + "inviter_id", + "target_user_id", + "target_user_type", + "vanity_url" + FROM "invites" + `); + await queryRunner.query(` + DROP TABLE "invites" + `); + await queryRunner.query(` + ALTER TABLE "temporary_invites" + RENAME TO "invites" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "invites" + RENAME TO "temporary_invites" + `); + await queryRunner.query(` + CREATE TABLE "invites" ( + "code" varchar PRIMARY KEY NOT NULL, + "temporary" boolean NOT NULL, + "uses" integer NOT NULL, + "max_uses" integer NOT NULL, + "max_age" integer NOT NULL, + "created_at" datetime NOT NULL, + "expires_at" datetime NOT NULL, + "guild_id" varchar, + "channel_id" varchar, + "inviter_id" varchar, + "target_user_id" varchar, + "target_user_type" integer, + "vanity_url" boolean, + CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "invites"( + "code", + "temporary", + "uses", + "max_uses", + "max_age", + "created_at", + "expires_at", + "guild_id", + "channel_id", + "inviter_id", + "target_user_id", + "target_user_type", + "vanity_url" + ) + SELECT "code", + "temporary", + "uses", + "max_uses", + "max_age", + "created_at", + "expires_at", + "guild_id", + "channel_id", + "inviter_id", + "target_user_id", + "target_user_type", + "vanity_url" + FROM "temporary_invites" + `); + await queryRunner.query(` + DROP TABLE "temporary_invites" + `); + await queryRunner.query(` + ALTER TABLE "invites" + RENAME TO "temporary_invites" + `); + await queryRunner.query(` + CREATE TABLE "invites" ( + "code" varchar PRIMARY KEY NOT NULL, + "temporary" boolean NOT NULL, + "uses" integer NOT NULL, + "max_uses" integer NOT NULL, + "max_age" integer NOT NULL, + "created_at" datetime NOT NULL, + "expires_at" datetime NOT NULL, + "guild_id" varchar, + "channel_id" varchar, + "inviter_id" varchar, + "target_user_id" varchar, + "target_user_type" integer, + "vanity_url" boolean, + CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "invites"( + "code", + "temporary", + "uses", + "max_uses", + "max_age", + "created_at", + "expires_at", + "guild_id", + "channel_id", + "inviter_id", + "target_user_id", + "target_user_type", + "vanity_url" + ) + SELECT "code", + "temporary", + "uses", + "max_uses", + "max_age", + "created_at", + "expires_at", + "guild_id", + "channel_id", + "inviter_id", + "target_user_id", + "target_user_type", + "vanity_url" + FROM "temporary_invites" + `); + await queryRunner.query(` + DROP TABLE "temporary_invites" + `); + } + +} -- cgit 1.4.1 From 6d3706c2c8efda6e170eac2081a60f41a09bb41f Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Sat, 13 Aug 2022 22:14:22 +0200 Subject: Fix rebase conflicts --- api/src/routes/applications/#id/bot/index.ts | 83 --- api/src/routes/applications/#id/index.ts | 30 - api/src/routes/applications/#id/skus.ts | 11 - gateway/src/opcodes/Identify.ts | 298 -------- src/api/routes/applications/#id/bot/index.ts | 83 +++ src/api/routes/applications/#id/index.ts | 30 + src/api/routes/applications/#id/skus.ts | 11 + src/gateway/opcodes/Identify.ts | 4 +- .../mariadb/1660130586602-updated-applications.ts | 185 +++++ .../mariadb/1660131942703-apps_nullable_team.ts | 18 + .../mariadb/1660258393551-CodeCleanup3.ts | 232 ------ .../postgres/1660130561959-updated-applications.ts | 182 +++++ .../sqlite/1660130536131-updated-applications.ts | 829 +++++++++++++++++++++ .../mariadb/1660130586602-updated-applications.ts | 185 ----- .../mariadb/1660131942703-apps_nullable_team.ts | 18 - .../mariadb/1660416072362-InvitersAreDeletable.ts | 56 -- .../postgres/1660130561959-updated-applications.ts | 182 ----- .../postgres/1660416055566-InvitersAreDeletable.ts | 26 - .../sqlite/1660130536131-updated-applications.ts | 829 --------------------- .../sqlite/1660416010862-InvitersAreDeletable.ts | 246 ------ 20 files changed, 1340 insertions(+), 2198 deletions(-) delete mode 100644 api/src/routes/applications/#id/bot/index.ts delete mode 100644 api/src/routes/applications/#id/index.ts delete mode 100644 api/src/routes/applications/#id/skus.ts delete mode 100644 gateway/src/opcodes/Identify.ts create mode 100644 src/api/routes/applications/#id/bot/index.ts create mode 100644 src/api/routes/applications/#id/index.ts create mode 100644 src/api/routes/applications/#id/skus.ts create mode 100644 src/util/migrations/mariadb/1660130586602-updated-applications.ts create mode 100644 src/util/migrations/mariadb/1660131942703-apps_nullable_team.ts delete mode 100644 src/util/migrations/mariadb/1660258393551-CodeCleanup3.ts create mode 100644 src/util/migrations/postgres/1660130561959-updated-applications.ts create mode 100644 src/util/migrations/sqlite/1660130536131-updated-applications.ts delete mode 100644 util/src/migrations/mariadb/1660130586602-updated-applications.ts delete mode 100644 util/src/migrations/mariadb/1660131942703-apps_nullable_team.ts delete mode 100644 util/src/migrations/mariadb/1660416072362-InvitersAreDeletable.ts delete mode 100644 util/src/migrations/postgres/1660130561959-updated-applications.ts delete mode 100644 util/src/migrations/postgres/1660416055566-InvitersAreDeletable.ts delete mode 100644 util/src/migrations/sqlite/1660130536131-updated-applications.ts delete mode 100644 util/src/migrations/sqlite/1660416010862-InvitersAreDeletable.ts diff --git a/api/src/routes/applications/#id/bot/index.ts b/api/src/routes/applications/#id/bot/index.ts deleted file mode 100644 index 5cae5215..00000000 --- a/api/src/routes/applications/#id/bot/index.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; -import { Application, Config, FieldErrors, generateToken, OrmUtils, Snowflake, trimSpecial, User, handleFile } from "@fosscord/util"; -import { HTTPError } from "lambert-server"; -import { verifyToken } from "node-2fa"; - -const router: Router = Router(); - -router.post("/", route({}), async (req: Request, res: Response) => { - const app = await Application.findOne({where: {id: req.params.id}}); - if(!app) return res.status(404); - const username = trimSpecial(app.name); - const discriminator = await User.generateDiscriminator(username); - if (!discriminator) { - // We've failed to generate a valid and unused discriminator - throw FieldErrors({ - username: { - code: "USERNAME_TOO_MANY_USERS", - message: req?.t("auth:register.USERNAME_TOO_MANY_USERS"), - }, - }); - } - - const user = OrmUtils.mergeDeep(new User(), { - created_at: new Date(), - username: username, - discriminator, - id: app.id, - bot: true, - system: false, - premium_since: null, - desktop: false, - mobile: false, - premium: false, - premium_type: 0, - bio: app.description, - mfa_enabled: true, - totp_secret: "", - totp_backup_codes: [], - verified: true, - disabled: false, - deleted: false, - email: null, - rights: Config.get().register.defaultRights, - nsfw_allowed: true, - public_flags: "0", - flags: "0", - data: { - hash: null, - valid_tokens_since: new Date(), - }, - settings: {}, - extended_settings: {}, - fingerprints: [], - notes: {}, - }); - await user.save(); - app.bot = user; - await app.save(); - res.send().status(204) -}); - -router.post("/reset", route({}), async (req: Request, res: Response) => { - let bot = await User.findOne({where: {id: req.params.id}}); - let owner = await User.findOne({where: {id: req.user_id}}); - if(!bot) return res.status(404); - if(owner?.totp_secret && (!req.body.code || verifyToken(owner.totp_secret, req.body.code))) { - throw new HTTPError(req.t("auth:login.INVALID_TOTP_CODE"), 60008); - } - bot.data = { hash: undefined, valid_tokens_since: new Date() }; - await bot.save(); - let token = await generateToken(bot.id); - res.json({token}).status(200); -}); - -router.patch("/", route({}), async (req: Request, res: Response) => { - if (req.body.avatar) req.body.avatar = await handleFile(`/avatars/${req.params.id}`, req.body.avatar as string); - let app = OrmUtils.mergeDeep(await User.findOne({where: {id: req.params.id}}), req.body); - await app.save(); - res.json(app).status(200); -}); - -export default router; \ No newline at end of file diff --git a/api/src/routes/applications/#id/index.ts b/api/src/routes/applications/#id/index.ts deleted file mode 100644 index 0aced582..00000000 --- a/api/src/routes/applications/#id/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; -import { Application, OrmUtils, Team, trimSpecial, User } from "@fosscord/util"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - let results = await Application.findOne({where: {id: req.params.id}, relations: ["owner", "bot"] }); - res.json(results).status(200); -}); - -router.patch("/", route({}), async (req: Request, res: Response) => { - delete req.body.icon; - let app = OrmUtils.mergeDeep(await Application.findOne({where: {id: req.params.id}, relations: ["owner", "bot"]}), req.body); - if(app.bot) { - app.bot.bio = req.body.description - app.bot?.save(); - } - if(req.body.tags) app.tags = req.body.tags; - await app.save(); - res.json(app).status(200); -}); - -router.post("/delete", route({}), async (req: Request, res: Response) => { - await Application.delete(req.params.id); - res.send().status(200); -}); - - -export default router; \ No newline at end of file diff --git a/api/src/routes/applications/#id/skus.ts b/api/src/routes/applications/#id/skus.ts deleted file mode 100644 index 5b667f36..00000000 --- a/api/src/routes/applications/#id/skus.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Request, Response, Router } from "express"; -import { route } from "@fosscord/api"; -import { Application, OrmUtils, Team, trimSpecial, User } from "@fosscord/util"; - -const router: Router = Router(); - -router.get("/", route({}), async (req: Request, res: Response) => { - res.json([]).status(200); -}); - -export default router; \ No newline at end of file diff --git a/gateway/src/opcodes/Identify.ts b/gateway/src/opcodes/Identify.ts deleted file mode 100644 index e62c1570..00000000 --- a/gateway/src/opcodes/Identify.ts +++ /dev/null @@ -1,298 +0,0 @@ -import { WebSocket, Payload } from "@fosscord/gateway"; -import { - checkToken, - Intents, - Member, - ReadyEventData, - User, - Session, - EVENTEnum, - Config, - PublicMember, - PublicUser, - PrivateUserProjection, - ReadState, - Application, - emitEvent, - SessionsReplace, - PrivateSessionProjection, - MemberPrivateProjection, - PresenceUpdateEvent, - UserSettings, - IdentifySchema, -} from "@fosscord/util"; -import { Send } from "../util/Send"; -import { CLOSECODES, OPCODES } from "../util/Constants"; -import { genSessionId } from "../util/SessionUtils"; -import { setupListener } from "../listener/listener"; -// import experiments from "./experiments.json"; -const experiments: any = []; -import { check } from "./instanceOf"; -import { Recipient } from "@fosscord/util"; -import { OrmUtils } from "@fosscord/util"; - -// TODO: user sharding -// TODO: check privileged intents, if defined in the config -// TODO: check if already identified - -export async function onIdentify(this: WebSocket, data: Payload) { - clearTimeout(this.readyTimeout); - check.call(this, IdentifySchema, data.d); - - const identify: IdentifySchema = data.d; - - try { - const { jwtSecret } = Config.get().security; - var { decoded } = await checkToken(identify.token, jwtSecret); // will throw an error if invalid - } catch (error) { - console.error("invalid token", error); - return this.close(CLOSECODES.Authentication_failed); - } - this.user_id = decoded.id; - - const session_id = genSessionId(); - this.session_id = session_id; //Set the session of the WebSocket object - - const [user, read_states, members, recipients, session, application] = - await Promise.all([ - User.findOneOrFail({ - where: { id: this.user_id }, - relations: ["relationships", "relationships.to", "settings"], - select: [...PrivateUserProjection, "relationships"], - }), - ReadState.find({ where: { user_id: this.user_id } }), - Member.find({ - where: { id: this.user_id }, - select: MemberPrivateProjection, - relations: [ - "guild", - "guild.channels", - "guild.emojis", - "guild.emojis.user", - "guild.roles", - "guild.stickers", - "user", - "roles", - ], - }), - Recipient.find({ - where: { user_id: this.user_id, closed: false }, - relations: [ - "channel", - "channel.recipients", - "channel.recipients.user", - ], - // TODO: public user selection - }), - // save the session and delete it when the websocket is closed - await OrmUtils.mergeDeep(new Session(), { - user_id: this.user_id, - session_id: session_id, - // TODO: check if status is only one of: online, dnd, offline, idle - status: identify.presence?.status || "offline", //does the session always start as online? - client_info: { - //TODO read from identity - client: "desktop", - os: identify.properties?.os, - version: 0, - }, - activities: [], - }).save(), - Application.findOne({ where: { id: this.user_id } }), - ]); - - if (!user) return this.close(CLOSECODES.Authentication_failed); - if (!user.settings) { //settings may not exist after updating... - user.settings = new UserSettings(); - user.settings.id = user.id; - await user.settings.save(); - } - - if (!identify.intents) identify.intents = BigInt("0x6ffffffff"); - this.intents = new Intents(identify.intents); - if (identify.shard) { - this.shard_id = identify.shard[0]; - this.shard_count = identify.shard[1]; - if ( - this.shard_count == null || - this.shard_id == null || - this.shard_id >= this.shard_count || - this.shard_id < 0 || - this.shard_count <= 0 - ) { - console.log(identify.shard); - return this.close(CLOSECODES.Invalid_shard); - } - } - let users: PublicUser[] = []; - - const merged_members = members.map((x: Member) => { - return [ - { - ...x, - roles: x.roles.map((x) => x.id), - settings: undefined, - guild: undefined, - }, - ]; - }) as PublicMember[][]; - let guilds = members.map((x) => ({ ...x.guild, joined_at: x.joined_at })); - - // @ts-ignore - guilds = guilds.map((guild) => { - if (user.bot) { - setTimeout(() => { - Send(this, { - op: OPCODES.Dispatch, - t: EVENTEnum.GuildCreate, - s: this.sequence++, - d: guild, - }); - }, 500); - return { id: guild.id, unavailable: true }; - } - - return guild; - }); - - const user_guild_settings_entries = members.map((x) => x.settings); - - const channels = recipients.map((x) => { - // @ts-ignore - x.channel.recipients = x.channel.recipients?.map((x) => x.user); - //TODO is this needed? check if users in group dm that are not friends are sent in the READY event - users = users.concat(x.channel.recipients as unknown as User[]); - if (x.channel.isDm()) { - x.channel.recipients = x.channel.recipients!.filter( - (x) => x.id !== this.user_id - ); - } - return x.channel; - }); - - for (let relation of user.relationships) { - const related_user = relation.to; - const public_related_user = { - username: related_user.username, - discriminator: related_user.discriminator, - id: related_user.id, - public_flags: related_user.public_flags, - avatar: related_user.avatar, - bot: related_user.bot, - bio: related_user.bio, - premium_since: user.premium_since - }; - users.push(public_related_user); - } - - setImmediate(async () => { - // run in seperate "promise context" because ready payload is not dependent on those events - emitEvent({ - event: "SESSIONS_REPLACE", - user_id: this.user_id, - data: await Session.find({ - where: { user_id: this.user_id }, - select: PrivateSessionProjection, - }), - } as SessionsReplace); - emitEvent({ - event: "PRESENCE_UPDATE", - user_id: this.user_id, - data: { - user: await User.getPublicUser(this.user_id), - activities: session.activities, - client_status: session?.client_info, - status: session.status, - }, - } as PresenceUpdateEvent); - }); - - read_states.forEach((s: any) => { - s.id = s.channel_id; - delete s.user_id; - delete s.channel_id; - }); - - const privateUser = { - avatar: user.avatar, - mobile: user.mobile, - desktop: user.desktop, - discriminator: user.discriminator, - email: user.email, - flags: user.flags, - id: user.id, - mfa_enabled: user.mfa_enabled, - nsfw_allowed: user.nsfw_allowed, - phone: user.phone, - premium: user.premium, - premium_type: user.premium_type, - public_flags: user.public_flags, - username: user.username, - verified: user.verified, - bot: user.bot, - accent_color: user.accent_color || 0, - banner: user.banner, - bio: user.bio, - premium_since: user.premium_since - }; - - const d: ReadyEventData = { - v: 8, - application: {id: application?.id??'', flags: application?.flags??0}, //TODO: check this code! - user: privateUser, - user_settings: user.settings, - // @ts-ignore - guilds: guilds.map((x) => { - // @ts-ignore - x.guild_hashes = {}; // @ts-ignore - x.guild_scheduled_events = []; // @ts-ignore - x.threads = []; - return x; - }), - guild_experiments: [], // TODO - geo_ordered_rtc_regions: [], // TODO - relationships: user.relationships.map((x) => x.toPublicRelationship()), - read_state: { - entries: read_states, - partial: false, - version: 304128, - }, - user_guild_settings: { - entries: user_guild_settings_entries, - partial: false, // TODO partial - version: 642, - }, - private_channels: channels, - session_id: session_id, - analytics_token: "", // TODO - connected_accounts: [], // TODO - consents: { - personalization: { - consented: false, // TODO - }, - }, - country_code: user.settings.locale, - friend_suggestion_count: 0, // TODO - // @ts-ignore - experiments: experiments, // TODO - guild_join_requests: [], // TODO what is this? - users: users.filter((x) => x).unique(), - merged_members: merged_members, - // shard // TODO: only for user sharding - }; - - // TODO: send real proper data structure - await Send(this, { - op: OPCODES.Dispatch, - t: EVENTEnum.Ready, - s: this.sequence++, - d, - }); - - //TODO send READY_SUPPLEMENTAL - //TODO send GUILD_MEMBER_LIST_UPDATE - //TODO send SESSIONS_REPLACE - //TODO send VOICE_STATE_UPDATE to let the client know if another device is already connected to a voice channel - - await setupListener.call(this); -} diff --git a/src/api/routes/applications/#id/bot/index.ts b/src/api/routes/applications/#id/bot/index.ts new file mode 100644 index 00000000..5cae5215 --- /dev/null +++ b/src/api/routes/applications/#id/bot/index.ts @@ -0,0 +1,83 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; +import { Application, Config, FieldErrors, generateToken, OrmUtils, Snowflake, trimSpecial, User, handleFile } from "@fosscord/util"; +import { HTTPError } from "lambert-server"; +import { verifyToken } from "node-2fa"; + +const router: Router = Router(); + +router.post("/", route({}), async (req: Request, res: Response) => { + const app = await Application.findOne({where: {id: req.params.id}}); + if(!app) return res.status(404); + const username = trimSpecial(app.name); + const discriminator = await User.generateDiscriminator(username); + if (!discriminator) { + // We've failed to generate a valid and unused discriminator + throw FieldErrors({ + username: { + code: "USERNAME_TOO_MANY_USERS", + message: req?.t("auth:register.USERNAME_TOO_MANY_USERS"), + }, + }); + } + + const user = OrmUtils.mergeDeep(new User(), { + created_at: new Date(), + username: username, + discriminator, + id: app.id, + bot: true, + system: false, + premium_since: null, + desktop: false, + mobile: false, + premium: false, + premium_type: 0, + bio: app.description, + mfa_enabled: true, + totp_secret: "", + totp_backup_codes: [], + verified: true, + disabled: false, + deleted: false, + email: null, + rights: Config.get().register.defaultRights, + nsfw_allowed: true, + public_flags: "0", + flags: "0", + data: { + hash: null, + valid_tokens_since: new Date(), + }, + settings: {}, + extended_settings: {}, + fingerprints: [], + notes: {}, + }); + await user.save(); + app.bot = user; + await app.save(); + res.send().status(204) +}); + +router.post("/reset", route({}), async (req: Request, res: Response) => { + let bot = await User.findOne({where: {id: req.params.id}}); + let owner = await User.findOne({where: {id: req.user_id}}); + if(!bot) return res.status(404); + if(owner?.totp_secret && (!req.body.code || verifyToken(owner.totp_secret, req.body.code))) { + throw new HTTPError(req.t("auth:login.INVALID_TOTP_CODE"), 60008); + } + bot.data = { hash: undefined, valid_tokens_since: new Date() }; + await bot.save(); + let token = await generateToken(bot.id); + res.json({token}).status(200); +}); + +router.patch("/", route({}), async (req: Request, res: Response) => { + if (req.body.avatar) req.body.avatar = await handleFile(`/avatars/${req.params.id}`, req.body.avatar as string); + let app = OrmUtils.mergeDeep(await User.findOne({where: {id: req.params.id}}), req.body); + await app.save(); + res.json(app).status(200); +}); + +export default router; \ No newline at end of file diff --git a/src/api/routes/applications/#id/index.ts b/src/api/routes/applications/#id/index.ts new file mode 100644 index 00000000..0aced582 --- /dev/null +++ b/src/api/routes/applications/#id/index.ts @@ -0,0 +1,30 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; +import { Application, OrmUtils, Team, trimSpecial, User } from "@fosscord/util"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + let results = await Application.findOne({where: {id: req.params.id}, relations: ["owner", "bot"] }); + res.json(results).status(200); +}); + +router.patch("/", route({}), async (req: Request, res: Response) => { + delete req.body.icon; + let app = OrmUtils.mergeDeep(await Application.findOne({where: {id: req.params.id}, relations: ["owner", "bot"]}), req.body); + if(app.bot) { + app.bot.bio = req.body.description + app.bot?.save(); + } + if(req.body.tags) app.tags = req.body.tags; + await app.save(); + res.json(app).status(200); +}); + +router.post("/delete", route({}), async (req: Request, res: Response) => { + await Application.delete(req.params.id); + res.send().status(200); +}); + + +export default router; \ No newline at end of file diff --git a/src/api/routes/applications/#id/skus.ts b/src/api/routes/applications/#id/skus.ts new file mode 100644 index 00000000..5b667f36 --- /dev/null +++ b/src/api/routes/applications/#id/skus.ts @@ -0,0 +1,11 @@ +import { Request, Response, Router } from "express"; +import { route } from "@fosscord/api"; +import { Application, OrmUtils, Team, trimSpecial, User } from "@fosscord/util"; + +const router: Router = Router(); + +router.get("/", route({}), async (req: Request, res: Response) => { + res.json([]).status(200); +}); + +export default router; \ No newline at end of file diff --git a/src/gateway/opcodes/Identify.ts b/src/gateway/opcodes/Identify.ts index 4f17ab70..d5dae7b0 100644 --- a/src/gateway/opcodes/Identify.ts +++ b/src/gateway/opcodes/Identify.ts @@ -108,7 +108,7 @@ export async function onIdentify(this: WebSocket, data: Payload) { await user.settings.save(); } - if (!identify.intents) identify.intents = "0x6ffffffff" + if (!identify.intents) identify.intents = "30064771071"; this.intents = new Intents(identify.intents); if (identify.shard) { this.shard_id = identify.shard[0]; @@ -238,7 +238,7 @@ export async function onIdentify(this: WebSocket, data: Payload) { const d: ReadyEventData = { v: 8, - application: {id: application?.id??'', flags: application?.flags??''}, //TODO: check this code! + application: {id: application?.id??'', flags: application?.flags??0}, //TODO: check this code! user: privateUser, user_settings: user.settings, // @ts-ignore diff --git a/src/util/migrations/mariadb/1660130586602-updated-applications.ts b/src/util/migrations/mariadb/1660130586602-updated-applications.ts new file mode 100644 index 00000000..ec574416 --- /dev/null +++ b/src/util/migrations/mariadb/1660130586602-updated-applications.ts @@ -0,0 +1,185 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class updatedApplications1660130586602 implements MigrationInterface { + name = 'updatedApplications1660130586602' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e5bf78cdbbe9ba91062d74c5aba\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`rpc_origins\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`primary_sku_id\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`slug\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`guild_id\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`type\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`hook\` tinyint NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`redirect_uris\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`rpc_application_state\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`store_application_state\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`verification_state\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`interactions_endpoint_url\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`integration_public\` tinyint NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`integration_require_code_grant\` tinyint NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`discoverability_state\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`discovery_eligibility_flags\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`tags\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`install_params\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`bot_user_id\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD UNIQUE INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` (\`bot_user_id\`) + `); + await queryRunner.query(` + ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`flags\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`flags\` int NOT NULL + `); + await queryRunner.query(` + CREATE UNIQUE INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`) + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD CONSTRAINT \`FK_2ce5a55796fe4c2f77ece57a647\` FOREIGN KEY (\`bot_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_2ce5a55796fe4c2f77ece57a647\` + `); + await queryRunner.query(` + DROP INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`flags\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`flags\` varchar(255) NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`bot_user_id\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`install_params\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`tags\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`discovery_eligibility_flags\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`discoverability_state\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`integration_require_code_grant\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`integration_public\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`interactions_endpoint_url\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`verification_state\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`store_application_state\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`rpc_application_state\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`redirect_uris\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`hook\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` DROP COLUMN \`type\` + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`guild_id\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`slug\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`primary_sku_id\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD \`rpc_origins\` text NULL + `); + await queryRunner.query(` + ALTER TABLE \`applications\` + ADD CONSTRAINT \`FK_e5bf78cdbbe9ba91062d74c5aba\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + +} diff --git a/src/util/migrations/mariadb/1660131942703-apps_nullable_team.ts b/src/util/migrations/mariadb/1660131942703-apps_nullable_team.ts new file mode 100644 index 00000000..ac445772 --- /dev/null +++ b/src/util/migrations/mariadb/1660131942703-apps_nullable_team.ts @@ -0,0 +1,18 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class appsNullableTeam1660131942703 implements MigrationInterface { + name = 'appsNullableTeam1660131942703' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + DROP INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE UNIQUE INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`) + `); + } + +} diff --git a/src/util/migrations/mariadb/1660258393551-CodeCleanup3.ts b/src/util/migrations/mariadb/1660258393551-CodeCleanup3.ts deleted file mode 100644 index 87d075e4..00000000 --- a/src/util/migrations/mariadb/1660258393551-CodeCleanup3.ts +++ /dev/null @@ -1,232 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup31660258393551 implements MigrationInterface { - name = 'CodeCleanup31660258393551' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_2ce5a55796fe4c2f77ece57a647\` - `); - await queryRunner.query(` - DROP INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` - `); - await queryRunner.query(` - CREATE TABLE \`user_settings\` ( - \`id\` varchar(255) NOT NULL, - \`afk_timeout\` int NULL, - \`allow_accessibility_detection\` tinyint NULL, - \`animate_emoji\` tinyint NULL, - \`animate_stickers\` int NULL, - \`contact_sync_enabled\` tinyint NULL, - \`convert_emoticons\` tinyint NULL, - \`custom_status\` text NULL, - \`default_guilds_restricted\` tinyint NULL, - \`detect_platform_accounts\` tinyint NULL, - \`developer_mode\` tinyint NULL, - \`disable_games_tab\` tinyint NULL, - \`enable_tts_command\` tinyint NULL, - \`explicit_content_filter\` int NULL, - \`friend_source_flags\` text NULL, - \`gateway_connected\` tinyint NULL, - \`gif_auto_play\` tinyint NULL, - \`guild_folders\` text NULL, - \`guild_positions\` text NULL, - \`inline_attachment_media\` tinyint NULL, - \`inline_embed_media\` tinyint NULL, - \`locale\` varchar(255) NULL, - \`message_display_compact\` tinyint NULL, - \`native_phone_integration_enabled\` tinyint NULL, - \`render_embeds\` tinyint NULL, - \`render_reactions\` tinyint NULL, - \`restricted_guilds\` text NULL, - \`show_current_game\` tinyint NULL, - \`status\` varchar(255) NULL, - \`stream_notifications_enabled\` tinyint NULL, - \`theme\` varchar(255) NULL, - \`timezone_offset\` int NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP COLUMN \`settings\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`type\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`hook\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`redirect_uris\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`rpc_application_state\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`store_application_state\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`verification_state\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`interactions_endpoint_url\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`integration_public\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`integration_require_code_grant\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`discoverability_state\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`discovery_eligibility_flags\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`tags\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`install_params\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`bot_user_id\` - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` - ADD \`premium_progress_bar_enabled\` tinyint NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`rpc_origins\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`primary_sku_id\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`slug\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`guild_id\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`flags\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`flags\` varchar(255) NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD CONSTRAINT \`FK_e5bf78cdbbe9ba91062d74c5aba\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e5bf78cdbbe9ba91062d74c5aba\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`flags\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`flags\` int NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`guild_id\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`slug\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`primary_sku_id\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`rpc_origins\` - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` DROP COLUMN \`premium_progress_bar_enabled\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`bot_user_id\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`install_params\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`tags\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`discovery_eligibility_flags\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`discoverability_state\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`integration_require_code_grant\` tinyint NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`integration_public\` tinyint NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`interactions_endpoint_url\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`verification_state\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`store_application_state\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`rpc_application_state\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`redirect_uris\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`hook\` tinyint NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`type\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD \`settings\` text NOT NULL - `); - await queryRunner.query(` - DROP TABLE \`user_settings\` - `); - await queryRunner.query(` - CREATE UNIQUE INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`) - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD CONSTRAINT \`FK_2ce5a55796fe4c2f77ece57a647\` FOREIGN KEY (\`bot_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - -} diff --git a/src/util/migrations/postgres/1660130561959-updated-applications.ts b/src/util/migrations/postgres/1660130561959-updated-applications.ts new file mode 100644 index 00000000..8fab54c7 --- /dev/null +++ b/src/util/migrations/postgres/1660130561959-updated-applications.ts @@ -0,0 +1,182 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class updatedApplications1660130561959 implements MigrationInterface { + name = 'updatedApplications1660130561959' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "applications" DROP CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "rpc_origins" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "primary_sku_id" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "slug" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "guild_id" + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "type" text + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "hook" boolean NOT NULL + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "redirect_uris" text + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "rpc_application_state" integer + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "store_application_state" integer + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "verification_state" integer + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "interactions_endpoint_url" character varying + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "integration_public" boolean + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "integration_require_code_grant" boolean + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "discoverability_state" integer + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "discovery_eligibility_flags" integer + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "tags" text + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "install_params" text + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "bot_user_id" character varying + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD CONSTRAINT "UQ_2ce5a55796fe4c2f77ece57a647" UNIQUE ("bot_user_id") + `); + await queryRunner.query(` + ALTER TABLE "applications" + ALTER COLUMN "description" DROP NOT NULL + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "flags" + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "flags" integer NOT NULL + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD CONSTRAINT "FK_2ce5a55796fe4c2f77ece57a647" FOREIGN KEY ("bot_user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "applications" DROP CONSTRAINT "FK_2ce5a55796fe4c2f77ece57a647" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "flags" + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "flags" character varying NOT NULL + `); + await queryRunner.query(` + ALTER TABLE "applications" + ALTER COLUMN "description" + SET NOT NULL + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP CONSTRAINT "UQ_2ce5a55796fe4c2f77ece57a647" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "bot_user_id" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "install_params" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "tags" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "discovery_eligibility_flags" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "discoverability_state" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "integration_require_code_grant" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "integration_public" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "interactions_endpoint_url" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "verification_state" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "store_application_state" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "rpc_application_state" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "redirect_uris" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "hook" + `); + await queryRunner.query(` + ALTER TABLE "applications" DROP COLUMN "type" + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "guild_id" character varying + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "slug" character varying + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "primary_sku_id" character varying + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD "rpc_origins" text + `); + await queryRunner.query(` + ALTER TABLE "applications" + ADD CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + +} diff --git a/src/util/migrations/sqlite/1660130536131-updated-applications.ts b/src/util/migrations/sqlite/1660130536131-updated-applications.ts new file mode 100644 index 00000000..b8cbcc33 --- /dev/null +++ b/src/util/migrations/sqlite/1660130536131-updated-applications.ts @@ -0,0 +1,829 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class updatedApplications1660130536131 implements MigrationInterface { + name = 'updatedApplications1660130536131' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar NOT NULL, + "rpc_origins" text, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "primary_sku_id" varchar, + "slug" varchar, + "cover_image" varchar, + "flags" varchar NOT NULL, + "owner_id" varchar, + "team_id" varchar, + "guild_id" varchar, + CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_applications"( + "id", + "name", + "icon", + "description", + "rpc_origins", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "primary_sku_id", + "slug", + "cover_image", + "flags", + "owner_id", + "team_id", + "guild_id" + ) + SELECT "id", + "name", + "icon", + "description", + "rpc_origins", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "primary_sku_id", + "slug", + "cover_image", + "flags", + "owner_id", + "team_id", + "guild_id" + FROM "applications" + `); + await queryRunner.query(` + DROP TABLE "applications" + `); + await queryRunner.query(` + ALTER TABLE "temporary_applications" + RENAME TO "applications" + `); + await queryRunner.query(` + CREATE TABLE "temporary_applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar NOT NULL, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "cover_image" varchar, + "flags" varchar NOT NULL, + "owner_id" varchar, + "team_id" varchar, + CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_applications"( + "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id" + ) + SELECT "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id" + FROM "applications" + `); + await queryRunner.query(` + DROP TABLE "applications" + `); + await queryRunner.query(` + ALTER TABLE "temporary_applications" + RENAME TO "applications" + `); + await queryRunner.query(` + CREATE TABLE "temporary_applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar NOT NULL, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "cover_image" varchar, + "flags" varchar NOT NULL, + "owner_id" varchar, + "team_id" varchar, + "type" text, + "hook" boolean NOT NULL, + "redirect_uris" text, + "rpc_application_state" integer, + "store_application_state" integer, + "verification_state" integer, + "interactions_endpoint_url" varchar, + "integration_public" boolean, + "integration_require_code_grant" boolean, + "discoverability_state" integer, + "discovery_eligibility_flags" integer, + "tags" text, + "install_params" text, + "bot_user_id" varchar, + CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"), + CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_applications"( + "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id" + ) + SELECT "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id" + FROM "applications" + `); + await queryRunner.query(` + DROP TABLE "applications" + `); + await queryRunner.query(` + ALTER TABLE "temporary_applications" + RENAME TO "applications" + `); + await queryRunner.query(` + CREATE TABLE "temporary_applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "cover_image" varchar, + "flags" integer NOT NULL, + "owner_id" varchar, + "team_id" varchar, + "type" text, + "hook" boolean NOT NULL, + "redirect_uris" text, + "rpc_application_state" integer, + "store_application_state" integer, + "verification_state" integer, + "interactions_endpoint_url" varchar, + "integration_public" boolean, + "integration_require_code_grant" boolean, + "discoverability_state" integer, + "discovery_eligibility_flags" integer, + "tags" text, + "install_params" text, + "bot_user_id" varchar, + CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"), + CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_applications"( + "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id", + "type", + "hook", + "redirect_uris", + "rpc_application_state", + "store_application_state", + "verification_state", + "interactions_endpoint_url", + "integration_public", + "integration_require_code_grant", + "discoverability_state", + "discovery_eligibility_flags", + "tags", + "install_params", + "bot_user_id" + ) + SELECT "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id", + "type", + "hook", + "redirect_uris", + "rpc_application_state", + "store_application_state", + "verification_state", + "interactions_endpoint_url", + "integration_public", + "integration_require_code_grant", + "discoverability_state", + "discovery_eligibility_flags", + "tags", + "install_params", + "bot_user_id" + FROM "applications" + `); + await queryRunner.query(` + DROP TABLE "applications" + `); + await queryRunner.query(` + ALTER TABLE "temporary_applications" + RENAME TO "applications" + `); + await queryRunner.query(` + CREATE TABLE "temporary_applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "cover_image" varchar, + "flags" integer NOT NULL, + "owner_id" varchar, + "team_id" varchar, + "type" text, + "hook" boolean NOT NULL, + "redirect_uris" text, + "rpc_application_state" integer, + "store_application_state" integer, + "verification_state" integer, + "interactions_endpoint_url" varchar, + "integration_public" boolean, + "integration_require_code_grant" boolean, + "discoverability_state" integer, + "discovery_eligibility_flags" integer, + "tags" text, + "install_params" text, + "bot_user_id" varchar, + CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"), + CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_2ce5a55796fe4c2f77ece57a647" FOREIGN KEY ("bot_user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_applications"( + "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id", + "type", + "hook", + "redirect_uris", + "rpc_application_state", + "store_application_state", + "verification_state", + "interactions_endpoint_url", + "integration_public", + "integration_require_code_grant", + "discoverability_state", + "discovery_eligibility_flags", + "tags", + "install_params", + "bot_user_id" + ) + SELECT "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id", + "type", + "hook", + "redirect_uris", + "rpc_application_state", + "store_application_state", + "verification_state", + "interactions_endpoint_url", + "integration_public", + "integration_require_code_grant", + "discoverability_state", + "discovery_eligibility_flags", + "tags", + "install_params", + "bot_user_id" + FROM "applications" + `); + await queryRunner.query(` + DROP TABLE "applications" + `); + await queryRunner.query(` + ALTER TABLE "temporary_applications" + RENAME TO "applications" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "applications" + RENAME TO "temporary_applications" + `); + await queryRunner.query(` + CREATE TABLE "applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "cover_image" varchar, + "flags" integer NOT NULL, + "owner_id" varchar, + "team_id" varchar, + "type" text, + "hook" boolean NOT NULL, + "redirect_uris" text, + "rpc_application_state" integer, + "store_application_state" integer, + "verification_state" integer, + "interactions_endpoint_url" varchar, + "integration_public" boolean, + "integration_require_code_grant" boolean, + "discoverability_state" integer, + "discovery_eligibility_flags" integer, + "tags" text, + "install_params" text, + "bot_user_id" varchar, + CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"), + CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "applications"( + "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id", + "type", + "hook", + "redirect_uris", + "rpc_application_state", + "store_application_state", + "verification_state", + "interactions_endpoint_url", + "integration_public", + "integration_require_code_grant", + "discoverability_state", + "discovery_eligibility_flags", + "tags", + "install_params", + "bot_user_id" + ) + SELECT "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id", + "type", + "hook", + "redirect_uris", + "rpc_application_state", + "store_application_state", + "verification_state", + "interactions_endpoint_url", + "integration_public", + "integration_require_code_grant", + "discoverability_state", + "discovery_eligibility_flags", + "tags", + "install_params", + "bot_user_id" + FROM "temporary_applications" + `); + await queryRunner.query(` + DROP TABLE "temporary_applications" + `); + await queryRunner.query(` + ALTER TABLE "applications" + RENAME TO "temporary_applications" + `); + await queryRunner.query(` + CREATE TABLE "applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar NOT NULL, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "cover_image" varchar, + "flags" varchar NOT NULL, + "owner_id" varchar, + "team_id" varchar, + "type" text, + "hook" boolean NOT NULL, + "redirect_uris" text, + "rpc_application_state" integer, + "store_application_state" integer, + "verification_state" integer, + "interactions_endpoint_url" varchar, + "integration_public" boolean, + "integration_require_code_grant" boolean, + "discoverability_state" integer, + "discovery_eligibility_flags" integer, + "tags" text, + "install_params" text, + "bot_user_id" varchar, + CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"), + CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "applications"( + "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id", + "type", + "hook", + "redirect_uris", + "rpc_application_state", + "store_application_state", + "verification_state", + "interactions_endpoint_url", + "integration_public", + "integration_require_code_grant", + "discoverability_state", + "discovery_eligibility_flags", + "tags", + "install_params", + "bot_user_id" + ) + SELECT "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id", + "type", + "hook", + "redirect_uris", + "rpc_application_state", + "store_application_state", + "verification_state", + "interactions_endpoint_url", + "integration_public", + "integration_require_code_grant", + "discoverability_state", + "discovery_eligibility_flags", + "tags", + "install_params", + "bot_user_id" + FROM "temporary_applications" + `); + await queryRunner.query(` + DROP TABLE "temporary_applications" + `); + await queryRunner.query(` + ALTER TABLE "applications" + RENAME TO "temporary_applications" + `); + await queryRunner.query(` + CREATE TABLE "applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar NOT NULL, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "cover_image" varchar, + "flags" varchar NOT NULL, + "owner_id" varchar, + "team_id" varchar, + CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "applications"( + "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id" + ) + SELECT "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id" + FROM "temporary_applications" + `); + await queryRunner.query(` + DROP TABLE "temporary_applications" + `); + await queryRunner.query(` + ALTER TABLE "applications" + RENAME TO "temporary_applications" + `); + await queryRunner.query(` + CREATE TABLE "applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar NOT NULL, + "rpc_origins" text, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "primary_sku_id" varchar, + "slug" varchar, + "cover_image" varchar, + "flags" varchar NOT NULL, + "owner_id" varchar, + "team_id" varchar, + "guild_id" varchar, + CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "applications"( + "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id" + ) + SELECT "id", + "name", + "icon", + "description", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "cover_image", + "flags", + "owner_id", + "team_id" + FROM "temporary_applications" + `); + await queryRunner.query(` + DROP TABLE "temporary_applications" + `); + await queryRunner.query(` + ALTER TABLE "applications" + RENAME TO "temporary_applications" + `); + await queryRunner.query(` + CREATE TABLE "applications" ( + "id" varchar PRIMARY KEY NOT NULL, + "name" varchar NOT NULL, + "icon" varchar, + "description" varchar NOT NULL, + "rpc_origins" text, + "bot_public" boolean NOT NULL, + "bot_require_code_grant" boolean NOT NULL, + "terms_of_service_url" varchar, + "privacy_policy_url" varchar, + "summary" varchar, + "verify_key" varchar NOT NULL, + "primary_sku_id" varchar, + "slug" varchar, + "cover_image" varchar, + "flags" varchar NOT NULL, + "owner_id" varchar, + "team_id" varchar, + "guild_id" varchar, + CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, + CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "applications"( + "id", + "name", + "icon", + "description", + "rpc_origins", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "primary_sku_id", + "slug", + "cover_image", + "flags", + "owner_id", + "team_id", + "guild_id" + ) + SELECT "id", + "name", + "icon", + "description", + "rpc_origins", + "bot_public", + "bot_require_code_grant", + "terms_of_service_url", + "privacy_policy_url", + "summary", + "verify_key", + "primary_sku_id", + "slug", + "cover_image", + "flags", + "owner_id", + "team_id", + "guild_id" + FROM "temporary_applications" + `); + await queryRunner.query(` + DROP TABLE "temporary_applications" + `); + } + +} diff --git a/util/src/migrations/mariadb/1660130586602-updated-applications.ts b/util/src/migrations/mariadb/1660130586602-updated-applications.ts deleted file mode 100644 index ec574416..00000000 --- a/util/src/migrations/mariadb/1660130586602-updated-applications.ts +++ /dev/null @@ -1,185 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class updatedApplications1660130586602 implements MigrationInterface { - name = 'updatedApplications1660130586602' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_e5bf78cdbbe9ba91062d74c5aba\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`rpc_origins\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`primary_sku_id\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`slug\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`guild_id\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`type\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`hook\` tinyint NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`redirect_uris\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`rpc_application_state\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`store_application_state\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`verification_state\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`interactions_endpoint_url\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`integration_public\` tinyint NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`integration_require_code_grant\` tinyint NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`discoverability_state\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`discovery_eligibility_flags\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`tags\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`install_params\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`bot_user_id\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD UNIQUE INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` (\`bot_user_id\`) - `); - await queryRunner.query(` - ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`flags\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`flags\` int NOT NULL - `); - await queryRunner.query(` - CREATE UNIQUE INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`) - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD CONSTRAINT \`FK_2ce5a55796fe4c2f77ece57a647\` FOREIGN KEY (\`bot_user_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`applications\` DROP FOREIGN KEY \`FK_2ce5a55796fe4c2f77ece57a647\` - `); - await queryRunner.query(` - DROP INDEX \`REL_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`flags\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`flags\` varchar(255) NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` CHANGE \`description\` \`description\` varchar(255) NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`bot_user_id\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`install_params\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`tags\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`discovery_eligibility_flags\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`discoverability_state\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`integration_require_code_grant\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`integration_public\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`interactions_endpoint_url\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`verification_state\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`store_application_state\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`rpc_application_state\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`redirect_uris\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`hook\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` DROP COLUMN \`type\` - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`guild_id\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`slug\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`primary_sku_id\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD \`rpc_origins\` text NULL - `); - await queryRunner.query(` - ALTER TABLE \`applications\` - ADD CONSTRAINT \`FK_e5bf78cdbbe9ba91062d74c5aba\` FOREIGN KEY (\`guild_id\`) REFERENCES \`guilds\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - -} diff --git a/util/src/migrations/mariadb/1660131942703-apps_nullable_team.ts b/util/src/migrations/mariadb/1660131942703-apps_nullable_team.ts deleted file mode 100644 index ac445772..00000000 --- a/util/src/migrations/mariadb/1660131942703-apps_nullable_team.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class appsNullableTeam1660131942703 implements MigrationInterface { - name = 'appsNullableTeam1660131942703' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - DROP INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE UNIQUE INDEX \`IDX_2ce5a55796fe4c2f77ece57a64\` ON \`applications\` (\`bot_user_id\`) - `); - } - -} diff --git a/util/src/migrations/mariadb/1660416072362-InvitersAreDeletable.ts b/util/src/migrations/mariadb/1660416072362-InvitersAreDeletable.ts deleted file mode 100644 index 8374eafb..00000000 --- a/util/src/migrations/mariadb/1660416072362-InvitersAreDeletable.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class InvitersAreDeletable1660416072362 implements MigrationInterface { - name = 'InvitersAreDeletable1660416072362' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` ON \`users\` - `); - await queryRunner.query(` - CREATE TABLE \`plugin_config\` ( - \`key\` varchar(255) NOT NULL, - \`value\` text NULL, - PRIMARY KEY (\`key\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD \`flags\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD \`default_thread_rate_limit_per_user\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`invites\` - ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP COLUMN \`default_thread_rate_limit_per_user\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP COLUMN \`flags\` - `); - await queryRunner.query(` - DROP TABLE \`plugin_config\` - `); - await queryRunner.query(` - CREATE UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) - `); - await queryRunner.query(` - ALTER TABLE \`invites\` - ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - -} diff --git a/util/src/migrations/postgres/1660130561959-updated-applications.ts b/util/src/migrations/postgres/1660130561959-updated-applications.ts deleted file mode 100644 index 8fab54c7..00000000 --- a/util/src/migrations/postgres/1660130561959-updated-applications.ts +++ /dev/null @@ -1,182 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class updatedApplications1660130561959 implements MigrationInterface { - name = 'updatedApplications1660130561959' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "applications" DROP CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "rpc_origins" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "primary_sku_id" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "slug" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "guild_id" - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "type" text - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "hook" boolean NOT NULL - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "redirect_uris" text - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "rpc_application_state" integer - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "store_application_state" integer - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "verification_state" integer - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "interactions_endpoint_url" character varying - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "integration_public" boolean - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "integration_require_code_grant" boolean - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "discoverability_state" integer - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "discovery_eligibility_flags" integer - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "tags" text - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "install_params" text - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "bot_user_id" character varying - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD CONSTRAINT "UQ_2ce5a55796fe4c2f77ece57a647" UNIQUE ("bot_user_id") - `); - await queryRunner.query(` - ALTER TABLE "applications" - ALTER COLUMN "description" DROP NOT NULL - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "flags" - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "flags" integer NOT NULL - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD CONSTRAINT "FK_2ce5a55796fe4c2f77ece57a647" FOREIGN KEY ("bot_user_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "applications" DROP CONSTRAINT "FK_2ce5a55796fe4c2f77ece57a647" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "flags" - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "flags" character varying NOT NULL - `); - await queryRunner.query(` - ALTER TABLE "applications" - ALTER COLUMN "description" - SET NOT NULL - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP CONSTRAINT "UQ_2ce5a55796fe4c2f77ece57a647" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "bot_user_id" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "install_params" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "tags" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "discovery_eligibility_flags" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "discoverability_state" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "integration_require_code_grant" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "integration_public" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "interactions_endpoint_url" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "verification_state" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "store_application_state" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "rpc_application_state" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "redirect_uris" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "hook" - `); - await queryRunner.query(` - ALTER TABLE "applications" DROP COLUMN "type" - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "guild_id" character varying - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "slug" character varying - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "primary_sku_id" character varying - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD "rpc_origins" text - `); - await queryRunner.query(` - ALTER TABLE "applications" - ADD CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - -} diff --git a/util/src/migrations/postgres/1660416055566-InvitersAreDeletable.ts b/util/src/migrations/postgres/1660416055566-InvitersAreDeletable.ts deleted file mode 100644 index e6101318..00000000 --- a/util/src/migrations/postgres/1660416055566-InvitersAreDeletable.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class InvitersAreDeletable1660416055566 implements MigrationInterface { - name = 'InvitersAreDeletable1660416055566' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "invites" DROP CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" - `); - await queryRunner.query(` - ALTER TABLE "invites" - ADD CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "invites" DROP CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" - `); - await queryRunner.query(` - ALTER TABLE "invites" - ADD CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users"("id") ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - -} diff --git a/util/src/migrations/sqlite/1660130536131-updated-applications.ts b/util/src/migrations/sqlite/1660130536131-updated-applications.ts deleted file mode 100644 index b8cbcc33..00000000 --- a/util/src/migrations/sqlite/1660130536131-updated-applications.ts +++ /dev/null @@ -1,829 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class updatedApplications1660130536131 implements MigrationInterface { - name = 'updatedApplications1660130536131' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE TABLE "temporary_applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar NOT NULL, - "rpc_origins" text, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "primary_sku_id" varchar, - "slug" varchar, - "cover_image" varchar, - "flags" varchar NOT NULL, - "owner_id" varchar, - "team_id" varchar, - "guild_id" varchar, - CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_applications"( - "id", - "name", - "icon", - "description", - "rpc_origins", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "primary_sku_id", - "slug", - "cover_image", - "flags", - "owner_id", - "team_id", - "guild_id" - ) - SELECT "id", - "name", - "icon", - "description", - "rpc_origins", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "primary_sku_id", - "slug", - "cover_image", - "flags", - "owner_id", - "team_id", - "guild_id" - FROM "applications" - `); - await queryRunner.query(` - DROP TABLE "applications" - `); - await queryRunner.query(` - ALTER TABLE "temporary_applications" - RENAME TO "applications" - `); - await queryRunner.query(` - CREATE TABLE "temporary_applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar NOT NULL, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "cover_image" varchar, - "flags" varchar NOT NULL, - "owner_id" varchar, - "team_id" varchar, - CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_applications"( - "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id" - ) - SELECT "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id" - FROM "applications" - `); - await queryRunner.query(` - DROP TABLE "applications" - `); - await queryRunner.query(` - ALTER TABLE "temporary_applications" - RENAME TO "applications" - `); - await queryRunner.query(` - CREATE TABLE "temporary_applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar NOT NULL, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "cover_image" varchar, - "flags" varchar NOT NULL, - "owner_id" varchar, - "team_id" varchar, - "type" text, - "hook" boolean NOT NULL, - "redirect_uris" text, - "rpc_application_state" integer, - "store_application_state" integer, - "verification_state" integer, - "interactions_endpoint_url" varchar, - "integration_public" boolean, - "integration_require_code_grant" boolean, - "discoverability_state" integer, - "discovery_eligibility_flags" integer, - "tags" text, - "install_params" text, - "bot_user_id" varchar, - CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"), - CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_applications"( - "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id" - ) - SELECT "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id" - FROM "applications" - `); - await queryRunner.query(` - DROP TABLE "applications" - `); - await queryRunner.query(` - ALTER TABLE "temporary_applications" - RENAME TO "applications" - `); - await queryRunner.query(` - CREATE TABLE "temporary_applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "cover_image" varchar, - "flags" integer NOT NULL, - "owner_id" varchar, - "team_id" varchar, - "type" text, - "hook" boolean NOT NULL, - "redirect_uris" text, - "rpc_application_state" integer, - "store_application_state" integer, - "verification_state" integer, - "interactions_endpoint_url" varchar, - "integration_public" boolean, - "integration_require_code_grant" boolean, - "discoverability_state" integer, - "discovery_eligibility_flags" integer, - "tags" text, - "install_params" text, - "bot_user_id" varchar, - CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"), - CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_applications"( - "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id", - "type", - "hook", - "redirect_uris", - "rpc_application_state", - "store_application_state", - "verification_state", - "interactions_endpoint_url", - "integration_public", - "integration_require_code_grant", - "discoverability_state", - "discovery_eligibility_flags", - "tags", - "install_params", - "bot_user_id" - ) - SELECT "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id", - "type", - "hook", - "redirect_uris", - "rpc_application_state", - "store_application_state", - "verification_state", - "interactions_endpoint_url", - "integration_public", - "integration_require_code_grant", - "discoverability_state", - "discovery_eligibility_flags", - "tags", - "install_params", - "bot_user_id" - FROM "applications" - `); - await queryRunner.query(` - DROP TABLE "applications" - `); - await queryRunner.query(` - ALTER TABLE "temporary_applications" - RENAME TO "applications" - `); - await queryRunner.query(` - CREATE TABLE "temporary_applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "cover_image" varchar, - "flags" integer NOT NULL, - "owner_id" varchar, - "team_id" varchar, - "type" text, - "hook" boolean NOT NULL, - "redirect_uris" text, - "rpc_application_state" integer, - "store_application_state" integer, - "verification_state" integer, - "interactions_endpoint_url" varchar, - "integration_public" boolean, - "integration_require_code_grant" boolean, - "discoverability_state" integer, - "discovery_eligibility_flags" integer, - "tags" text, - "install_params" text, - "bot_user_id" varchar, - CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"), - CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_2ce5a55796fe4c2f77ece57a647" FOREIGN KEY ("bot_user_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_applications"( - "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id", - "type", - "hook", - "redirect_uris", - "rpc_application_state", - "store_application_state", - "verification_state", - "interactions_endpoint_url", - "integration_public", - "integration_require_code_grant", - "discoverability_state", - "discovery_eligibility_flags", - "tags", - "install_params", - "bot_user_id" - ) - SELECT "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id", - "type", - "hook", - "redirect_uris", - "rpc_application_state", - "store_application_state", - "verification_state", - "interactions_endpoint_url", - "integration_public", - "integration_require_code_grant", - "discoverability_state", - "discovery_eligibility_flags", - "tags", - "install_params", - "bot_user_id" - FROM "applications" - `); - await queryRunner.query(` - DROP TABLE "applications" - `); - await queryRunner.query(` - ALTER TABLE "temporary_applications" - RENAME TO "applications" - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "applications" - RENAME TO "temporary_applications" - `); - await queryRunner.query(` - CREATE TABLE "applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "cover_image" varchar, - "flags" integer NOT NULL, - "owner_id" varchar, - "team_id" varchar, - "type" text, - "hook" boolean NOT NULL, - "redirect_uris" text, - "rpc_application_state" integer, - "store_application_state" integer, - "verification_state" integer, - "interactions_endpoint_url" varchar, - "integration_public" boolean, - "integration_require_code_grant" boolean, - "discoverability_state" integer, - "discovery_eligibility_flags" integer, - "tags" text, - "install_params" text, - "bot_user_id" varchar, - CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"), - CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "applications"( - "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id", - "type", - "hook", - "redirect_uris", - "rpc_application_state", - "store_application_state", - "verification_state", - "interactions_endpoint_url", - "integration_public", - "integration_require_code_grant", - "discoverability_state", - "discovery_eligibility_flags", - "tags", - "install_params", - "bot_user_id" - ) - SELECT "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id", - "type", - "hook", - "redirect_uris", - "rpc_application_state", - "store_application_state", - "verification_state", - "interactions_endpoint_url", - "integration_public", - "integration_require_code_grant", - "discoverability_state", - "discovery_eligibility_flags", - "tags", - "install_params", - "bot_user_id" - FROM "temporary_applications" - `); - await queryRunner.query(` - DROP TABLE "temporary_applications" - `); - await queryRunner.query(` - ALTER TABLE "applications" - RENAME TO "temporary_applications" - `); - await queryRunner.query(` - CREATE TABLE "applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar NOT NULL, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "cover_image" varchar, - "flags" varchar NOT NULL, - "owner_id" varchar, - "team_id" varchar, - "type" text, - "hook" boolean NOT NULL, - "redirect_uris" text, - "rpc_application_state" integer, - "store_application_state" integer, - "verification_state" integer, - "interactions_endpoint_url" varchar, - "integration_public" boolean, - "integration_require_code_grant" boolean, - "discoverability_state" integer, - "discovery_eligibility_flags" integer, - "tags" text, - "install_params" text, - "bot_user_id" varchar, - CONSTRAINT "UQ_b7f6e13565e920916d902e1f431" UNIQUE ("bot_user_id"), - CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "applications"( - "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id", - "type", - "hook", - "redirect_uris", - "rpc_application_state", - "store_application_state", - "verification_state", - "interactions_endpoint_url", - "integration_public", - "integration_require_code_grant", - "discoverability_state", - "discovery_eligibility_flags", - "tags", - "install_params", - "bot_user_id" - ) - SELECT "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id", - "type", - "hook", - "redirect_uris", - "rpc_application_state", - "store_application_state", - "verification_state", - "interactions_endpoint_url", - "integration_public", - "integration_require_code_grant", - "discoverability_state", - "discovery_eligibility_flags", - "tags", - "install_params", - "bot_user_id" - FROM "temporary_applications" - `); - await queryRunner.query(` - DROP TABLE "temporary_applications" - `); - await queryRunner.query(` - ALTER TABLE "applications" - RENAME TO "temporary_applications" - `); - await queryRunner.query(` - CREATE TABLE "applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar NOT NULL, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "cover_image" varchar, - "flags" varchar NOT NULL, - "owner_id" varchar, - "team_id" varchar, - CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "applications"( - "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id" - ) - SELECT "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id" - FROM "temporary_applications" - `); - await queryRunner.query(` - DROP TABLE "temporary_applications" - `); - await queryRunner.query(` - ALTER TABLE "applications" - RENAME TO "temporary_applications" - `); - await queryRunner.query(` - CREATE TABLE "applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar NOT NULL, - "rpc_origins" text, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "primary_sku_id" varchar, - "slug" varchar, - "cover_image" varchar, - "flags" varchar NOT NULL, - "owner_id" varchar, - "team_id" varchar, - "guild_id" varchar, - CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "applications"( - "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id" - ) - SELECT "id", - "name", - "icon", - "description", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "cover_image", - "flags", - "owner_id", - "team_id" - FROM "temporary_applications" - `); - await queryRunner.query(` - DROP TABLE "temporary_applications" - `); - await queryRunner.query(` - ALTER TABLE "applications" - RENAME TO "temporary_applications" - `); - await queryRunner.query(` - CREATE TABLE "applications" ( - "id" varchar PRIMARY KEY NOT NULL, - "name" varchar NOT NULL, - "icon" varchar, - "description" varchar NOT NULL, - "rpc_origins" text, - "bot_public" boolean NOT NULL, - "bot_require_code_grant" boolean NOT NULL, - "terms_of_service_url" varchar, - "privacy_policy_url" varchar, - "summary" varchar, - "verify_key" varchar NOT NULL, - "primary_sku_id" varchar, - "slug" varchar, - "cover_image" varchar, - "flags" varchar NOT NULL, - "owner_id" varchar, - "team_id" varchar, - "guild_id" varchar, - CONSTRAINT "FK_e5bf78cdbbe9ba91062d74c5aba" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_a36ed02953077f408d0f3ebc424" FOREIGN KEY ("team_id") REFERENCES "teams" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_e57508958bf92b9d9d25231b5e8" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "applications"( - "id", - "name", - "icon", - "description", - "rpc_origins", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "primary_sku_id", - "slug", - "cover_image", - "flags", - "owner_id", - "team_id", - "guild_id" - ) - SELECT "id", - "name", - "icon", - "description", - "rpc_origins", - "bot_public", - "bot_require_code_grant", - "terms_of_service_url", - "privacy_policy_url", - "summary", - "verify_key", - "primary_sku_id", - "slug", - "cover_image", - "flags", - "owner_id", - "team_id", - "guild_id" - FROM "temporary_applications" - `); - await queryRunner.query(` - DROP TABLE "temporary_applications" - `); - } - -} diff --git a/util/src/migrations/sqlite/1660416010862-InvitersAreDeletable.ts b/util/src/migrations/sqlite/1660416010862-InvitersAreDeletable.ts deleted file mode 100644 index 9b29e119..00000000 --- a/util/src/migrations/sqlite/1660416010862-InvitersAreDeletable.ts +++ /dev/null @@ -1,246 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class InvitersAreDeletable1660416010862 implements MigrationInterface { - name = 'InvitersAreDeletable1660416010862' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE TABLE "temporary_invites" ( - "code" varchar PRIMARY KEY NOT NULL, - "temporary" boolean NOT NULL, - "uses" integer NOT NULL, - "max_uses" integer NOT NULL, - "max_age" integer NOT NULL, - "created_at" datetime NOT NULL, - "expires_at" datetime NOT NULL, - "guild_id" varchar, - "channel_id" varchar, - "inviter_id" varchar, - "target_user_id" varchar, - "target_user_type" integer, - "vanity_url" boolean, - CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_invites"( - "code", - "temporary", - "uses", - "max_uses", - "max_age", - "created_at", - "expires_at", - "guild_id", - "channel_id", - "inviter_id", - "target_user_id", - "target_user_type", - "vanity_url" - ) - SELECT "code", - "temporary", - "uses", - "max_uses", - "max_age", - "created_at", - "expires_at", - "guild_id", - "channel_id", - "inviter_id", - "target_user_id", - "target_user_type", - "vanity_url" - FROM "invites" - `); - await queryRunner.query(` - DROP TABLE "invites" - `); - await queryRunner.query(` - ALTER TABLE "temporary_invites" - RENAME TO "invites" - `); - await queryRunner.query(` - CREATE TABLE "temporary_invites" ( - "code" varchar PRIMARY KEY NOT NULL, - "temporary" boolean NOT NULL, - "uses" integer NOT NULL, - "max_uses" integer NOT NULL, - "max_age" integer NOT NULL, - "created_at" datetime NOT NULL, - "expires_at" datetime NOT NULL, - "guild_id" varchar, - "channel_id" varchar, - "inviter_id" varchar, - "target_user_id" varchar, - "target_user_type" integer, - "vanity_url" boolean, - CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_invites"( - "code", - "temporary", - "uses", - "max_uses", - "max_age", - "created_at", - "expires_at", - "guild_id", - "channel_id", - "inviter_id", - "target_user_id", - "target_user_type", - "vanity_url" - ) - SELECT "code", - "temporary", - "uses", - "max_uses", - "max_age", - "created_at", - "expires_at", - "guild_id", - "channel_id", - "inviter_id", - "target_user_id", - "target_user_type", - "vanity_url" - FROM "invites" - `); - await queryRunner.query(` - DROP TABLE "invites" - `); - await queryRunner.query(` - ALTER TABLE "temporary_invites" - RENAME TO "invites" - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "invites" - RENAME TO "temporary_invites" - `); - await queryRunner.query(` - CREATE TABLE "invites" ( - "code" varchar PRIMARY KEY NOT NULL, - "temporary" boolean NOT NULL, - "uses" integer NOT NULL, - "max_uses" integer NOT NULL, - "max_age" integer NOT NULL, - "created_at" datetime NOT NULL, - "expires_at" datetime NOT NULL, - "guild_id" varchar, - "channel_id" varchar, - "inviter_id" varchar, - "target_user_id" varchar, - "target_user_type" integer, - "vanity_url" boolean, - CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "invites"( - "code", - "temporary", - "uses", - "max_uses", - "max_age", - "created_at", - "expires_at", - "guild_id", - "channel_id", - "inviter_id", - "target_user_id", - "target_user_type", - "vanity_url" - ) - SELECT "code", - "temporary", - "uses", - "max_uses", - "max_age", - "created_at", - "expires_at", - "guild_id", - "channel_id", - "inviter_id", - "target_user_id", - "target_user_type", - "vanity_url" - FROM "temporary_invites" - `); - await queryRunner.query(` - DROP TABLE "temporary_invites" - `); - await queryRunner.query(` - ALTER TABLE "invites" - RENAME TO "temporary_invites" - `); - await queryRunner.query(` - CREATE TABLE "invites" ( - "code" varchar PRIMARY KEY NOT NULL, - "temporary" boolean NOT NULL, - "uses" integer NOT NULL, - "max_uses" integer NOT NULL, - "max_age" integer NOT NULL, - "created_at" datetime NOT NULL, - "expires_at" datetime NOT NULL, - "guild_id" varchar, - "channel_id" varchar, - "inviter_id" varchar, - "target_user_id" varchar, - "target_user_type" integer, - "vanity_url" boolean, - CONSTRAINT "FK_11a0d394f8fc649c19ce5f16b59" FOREIGN KEY ("target_user_id") REFERENCES "users" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_15c35422032e0b22b4ada95f48f" FOREIGN KEY ("inviter_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_6a15b051fe5050aa00a4b9ff0f6" FOREIGN KEY ("channel_id") REFERENCES "channels" ("id") ON DELETE CASCADE ON UPDATE NO ACTION, - CONSTRAINT "FK_3f4939aa1461e8af57fea3fb05d" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "invites"( - "code", - "temporary", - "uses", - "max_uses", - "max_age", - "created_at", - "expires_at", - "guild_id", - "channel_id", - "inviter_id", - "target_user_id", - "target_user_type", - "vanity_url" - ) - SELECT "code", - "temporary", - "uses", - "max_uses", - "max_age", - "created_at", - "expires_at", - "guild_id", - "channel_id", - "inviter_id", - "target_user_id", - "target_user_type", - "vanity_url" - FROM "temporary_invites" - `); - await queryRunner.query(` - DROP TABLE "temporary_invites" - `); - } - -} -- cgit 1.4.1 From 79d97a9252beff84104cdb8fabe477b310e81956 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Mon, 15 Aug 2022 06:14:02 +0200 Subject: Update db migration script --- scripts/db_migrations.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/db_migrations.sh b/scripts/db_migrations.sh index 83f15a2b..242b01f0 100755 --- a/scripts/db_migrations.sh +++ b/scripts/db_migrations.sh @@ -15,10 +15,10 @@ fi make_migration() { echo "Creating migrations for $2" - mkdir "../util/src/migrations/$2" + mkdir "src/util/migrations/$2" # npm run build clean logerrors pretty-errors # THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle - THREADS=1 DATABASE="$1" DB_MIGRATE=a npx typeorm-ts-node-commonjs migration:generate "../util/src/migrations/$2/$FILENAME" -d ../util/src/util/Database.ts -p + THREADS=1 DATABASE="$1" DB_MIGRATE=a npx typeorm-ts-node-commonjs migration:generate "src/migrations/$2/$FILENAME" -d ../util/src/util/Database.ts -p npm run build clean logerrors pretty-errors THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle } -- cgit 1.4.1 From fcef1f4d273f8f792ec70ac75c1ea77fc9b03cd1 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Mon, 15 Aug 2022 06:22:22 +0200 Subject: Fix missing stuff --- fosscord-server.code-workspace | 4 -- package.json | 1 - plugins/example-plugin/build.sh | 5 -- plugins/example-plugin/index.ts | 7 --- plugins/example-plugin/plugin.json | 9 ---- plugins/example-plugin/tsconfig.json | 85 -------------------------------- scripts/build.js | 79 ++++++++++++++--------------- scripts/utils.js | 1 - src/plugins/example-plugin/build.sh | 5 ++ src/plugins/example-plugin/index.ts | 7 +++ src/plugins/example-plugin/plugin.json | 9 ++++ src/plugins/example-plugin/tsconfig.json | 85 ++++++++++++++++++++++++++++++++ 12 files changed, 142 insertions(+), 155 deletions(-) delete mode 100755 plugins/example-plugin/build.sh delete mode 100644 plugins/example-plugin/index.ts delete mode 100644 plugins/example-plugin/plugin.json delete mode 100644 plugins/example-plugin/tsconfig.json create mode 100755 src/plugins/example-plugin/build.sh create mode 100644 src/plugins/example-plugin/index.ts create mode 100644 src/plugins/example-plugin/plugin.json create mode 100644 src/plugins/example-plugin/tsconfig.json diff --git a/fosscord-server.code-workspace b/fosscord-server.code-workspace index 1d6774ad..f2df1e9e 100644 --- a/fosscord-server.code-workspace +++ b/fosscord-server.code-workspace @@ -15,10 +15,6 @@ ], "settings": { "files.exclude": { - ".gitignore": true, - ".npmignore": true, - ".prettierrc": true, - ".vscode": true, "*.ansi": true, } } diff --git a/package.json b/package.json index 59c66811..f1242d2b 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,6 @@ "setup": "npm install --omit optional && ts-patch install -s && patch-package && npm run build", "depclean": "node scripts/depclean.js", "depcheck": "node scripts/depcheck.js", - "syncdeps": "node scripts/install.js", "build": "node scripts/build.js", "postinstall": "patch-package", "genschemas": "node scripts/generate_schemas.js", diff --git a/plugins/example-plugin/build.sh b/plugins/example-plugin/build.sh deleted file mode 100755 index 1b36607b..00000000 --- a/plugins/example-plugin/build.sh +++ /dev/null @@ -1,5 +0,0 @@ -#rm -rf dist/ -#mkdir dist -rm -rfv *.js *.js.map -ln -s ../../bundle/node_modules node_modules -tsc -p . diff --git a/plugins/example-plugin/index.ts b/plugins/example-plugin/index.ts deleted file mode 100644 index ec1ed7b5..00000000 --- a/plugins/example-plugin/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Plugin } from "@fosscord/util" - -export default class TestPlugin extends Plugin { - onPluginLoaded(): void { - console.log("Hello from test plugin! IT WORKS!!!!!!!"); - } -} \ No newline at end of file diff --git a/plugins/example-plugin/plugin.json b/plugins/example-plugin/plugin.json deleted file mode 100644 index 980edbdf..00000000 --- a/plugins/example-plugin/plugin.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "id": "example-plugin", - "name": "Fosscord example plugin", - "authors": [ - "The Arcane Brony" - ], - "repository": "https://github.com/fosscord/fosscord-server", - "license": "" -} diff --git a/plugins/example-plugin/tsconfig.json b/plugins/example-plugin/tsconfig.json deleted file mode 100644 index 7efe9434..00000000 --- a/plugins/example-plugin/tsconfig.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "include": ["./**/*.ts"], - "exclude": [], - "compilerOptions": { - - /* Basic Options */ - "incremental": false /* Enable incremental compilation */, - "target": "ESNext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, - "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, - "lib": [ - "ESNext" - ] /* Specify library files to be included in the compilation. */, - "allowJs": true /* Allow javascript files to be compiled. */, - "checkJs": true /* Report errors in .js files. */, - // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ - "declaration": false /* Generates corresponding '.d.ts' file. */, - "declarationMap": false /* Generates a sourcemap for each corresponding '.d.ts' file. */, - "sourceMap": true /* Generates corresponding '.map' file. */, - // "outFile": "./", /* Concatenate and emit output to single file. */ - "outDir": "./dist/" /* Redirect output structure to the directory. */, - "rootDir": "./" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, - // "composite": true, /* Enable project compilation */ - // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ - // "removeComments": true, /* Do not emit comments to output. */ - // "noEmit": true, /* Do not emit outputs. */ - // "importHelpers": true, /* Import emit helpers from 'tslib'. */ - // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ - // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ - - /* Strict Type-Checking Options */ - "strict": true /* Enable all strict type-checking options. */, - "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, - "strictNullChecks": true /* Enable strict null checks. */, - // "strictFunctionTypes": true, /* Enable strict checking of function types. */ - // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ - "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */, - // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ - "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, - - /* Additional Checks */ - // "noUnusedLocals": true, /* Report errors on unused locals. */ - // "noUnusedParameters": true, /* Report errors on unused parameters. */ - // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ - // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ - - /* Module Resolution Options */ - "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ - // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ - // "typeRoots": [], /* List of folders to include type definitions from. */ - "types": [ - "node" - ] /* Type declaration files to be included in compilation. */, - // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, - // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - - /* Source Map Options */ - // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ - // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ - - /* Experimental Options */ - // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ - // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ - - /* Advanced Options */ - "skipLibCheck": true /* Skip type checking of declaration files. */, - "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "resolveJsonModule": true, - "baseUrl": "../../bundle/dist/", - "paths": { - "@fosscord/api": ["../../api/src/index"], - "@fosscord/gateway": ["../../gateway/src/index"], - "@fosscord/cdn": ["../../cdn/src/index"], - "@fosscord/util": ["../../util/src/index"] - }, - "plugins": [{ "transform": "@ovos-media/ts-transform-paths" }], - "noEmitHelpers": true, - "importHelpers": true - } -} diff --git a/scripts/build.js b/scripts/build.js index 49353c87..f5ec6bac 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -8,7 +8,6 @@ if(argv.includes("help")) { console.log(`Fosscord build script help: Arguments: clean Cleans up previous builds - copyonly Only copy source files, don't build (useful for updating assets) verbose Enable verbose logging logerrors Log build errors to console pretty-errors Pretty-print build errors @@ -18,7 +17,6 @@ Arguments: let steps = 3, i = 0; if (argv.includes("clean")) steps++; -if (argv.includes("copyonly")) steps--; const verbose = argv.includes("verbose") || argv.includes("v"); const logerr = argv.includes("logerrors"); @@ -29,13 +27,11 @@ if(silent) console.error = console.log = function(){} if (argv.includes("clean")) { console.log(`[${++i}/${steps}] Cleaning...`); - parts.forEach((a) => { - let d = "../" + a + "/dist"; - if (fs.existsSync(d)) { - fs.rmSync(d, { recursive: true }); - if (verbose) console.log(`Deleted ${d}!`); - } - }); + let d = "dist"; + if (fs.existsSync(d)) { + fs.rmSync(d, { recursive: true }); + if (verbose) console.log(`Deleted ${d}!`); + } } console.log(`[${++i}/${steps}] Checking if dependencies were installed correctly...`); @@ -43,42 +39,39 @@ console.log(`[${++i}/${steps}] Checking if dependencies were installed correctly if(!fs.existsSync(path.join(__dirname, "..", "node_modules", "exif-be-gone", "index.js"))) execIn("npm run build", path.join(__dirname, "..", "node_modules", "exif-be-gone")); +console.log(`[${++i}/${steps}] Compiling src files ...`); -if (!argv.includes("copyonly")) { - console.log(`[${++i}/${steps}] Compiling src files ...`); +let buildFlags = '' +if(pretty) buildFlags += '--pretty ' - let buildFlags = '' - if(pretty) buildFlags += '--pretty ' - - try { - execSync( - 'node "' + - path.join(__dirname, "..", "node_modules", "typescript", "lib", "tsc.js") + - '" -p "' + - path.join(__dirname, "..") + - '" ' + buildFlags, - { - cwd: path.join(__dirname, ".."), - shell: true, - env: process.env, - encoding: "utf8" - } - ) - } catch (error) { - if(verbose || logerr) { - error.stdout.split(/\r?\n/).forEach((line) => { - let _line = line.replace('dist/','',1); - if(!pretty && _line.includes('.ts(')) { - //reformat file path for easy jumping - _line = _line.replace('(',':',1).replace(',',':',1).replace(')','',1) - } - console.error(_line); - }) - } - console.error(`Build failed! Please check build.log for info!`); - if(!silent){ - if(pretty) fs.writeFileSync("build.log.ansi", error.stdout); - fs.writeFileSync("build.log", error.stdout.replaceAll(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '')); +try { + execSync( + 'node "' + + path.join(__dirname, "..", "node_modules", "typescript", "lib", "tsc.js") + + '" -p "' + + path.join(__dirname, "..") + + '" ' + buildFlags, + { + cwd: path.join(__dirname, ".."), + shell: true, + env: process.env, + encoding: "utf8" } + ) +} catch (error) { + if(verbose || logerr) { + error.stdout.split(/\r?\n/).forEach((line) => { + let _line = line.replace('dist/','',1); + if(!pretty && _line.includes('.ts(')) { + //reformat file path for easy jumping + _line = _line.replace('(',':',1).replace(',',':',1).replace(')','',1) + } + console.error(_line); + }) + } + console.error(`Build failed! Please check build.log for info!`); + if(!silent){ + if(pretty) fs.writeFileSync("build.log.ansi", error.stdout); + fs.writeFileSync("build.log", error.stdout.replaceAll(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '')); } } \ No newline at end of file diff --git a/scripts/utils.js b/scripts/utils.js index ca41bcf2..84aaeed6 100644 --- a/scripts/utils.js +++ b/scripts/utils.js @@ -46,7 +46,6 @@ function getLines(output) { module.exports = { //consts - parts, //functions copyRecursiveSync, execIn, getLines }; diff --git a/src/plugins/example-plugin/build.sh b/src/plugins/example-plugin/build.sh new file mode 100755 index 00000000..1b36607b --- /dev/null +++ b/src/plugins/example-plugin/build.sh @@ -0,0 +1,5 @@ +#rm -rf dist/ +#mkdir dist +rm -rfv *.js *.js.map +ln -s ../../bundle/node_modules node_modules +tsc -p . diff --git a/src/plugins/example-plugin/index.ts b/src/plugins/example-plugin/index.ts new file mode 100644 index 00000000..d5db6563 --- /dev/null +++ b/src/plugins/example-plugin/index.ts @@ -0,0 +1,7 @@ +/*import { Plugin } from "@fosscord/util" + +export default class TestPlugin extends Plugin { + onPluginLoaded(): void { + console.log("Hello from test plugin! IT WORKS!!!!!!!"); + } +}*/ \ No newline at end of file diff --git a/src/plugins/example-plugin/plugin.json b/src/plugins/example-plugin/plugin.json new file mode 100644 index 00000000..980edbdf --- /dev/null +++ b/src/plugins/example-plugin/plugin.json @@ -0,0 +1,9 @@ +{ + "id": "example-plugin", + "name": "Fosscord example plugin", + "authors": [ + "The Arcane Brony" + ], + "repository": "https://github.com/fosscord/fosscord-server", + "license": "" +} diff --git a/src/plugins/example-plugin/tsconfig.json b/src/plugins/example-plugin/tsconfig.json new file mode 100644 index 00000000..7efe9434 --- /dev/null +++ b/src/plugins/example-plugin/tsconfig.json @@ -0,0 +1,85 @@ +{ + "include": ["./**/*.ts"], + "exclude": [], + "compilerOptions": { + + /* Basic Options */ + "incremental": false /* Enable incremental compilation */, + "target": "ESNext" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */, + "module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */, + "lib": [ + "ESNext" + ] /* Specify library files to be included in the compilation. */, + "allowJs": true /* Allow javascript files to be compiled. */, + "checkJs": true /* Report errors in .js files. */, + // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */ + "declaration": false /* Generates corresponding '.d.ts' file. */, + "declarationMap": false /* Generates a sourcemap for each corresponding '.d.ts' file. */, + "sourceMap": true /* Generates corresponding '.map' file. */, + // "outFile": "./", /* Concatenate and emit output to single file. */ + "outDir": "./dist/" /* Redirect output structure to the directory. */, + "rootDir": "./" /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */, + // "composite": true, /* Enable project compilation */ + // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */ + // "removeComments": true, /* Do not emit comments to output. */ + // "noEmit": true, /* Do not emit outputs. */ + // "importHelpers": true, /* Import emit helpers from 'tslib'. */ + // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */ + // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */ + + /* Strict Type-Checking Options */ + "strict": true /* Enable all strict type-checking options. */, + "noImplicitAny": true /* Raise error on expressions and declarations with an implied 'any' type. */, + "strictNullChecks": true /* Enable strict null checks. */, + // "strictFunctionTypes": true, /* Enable strict checking of function types. */ + // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */ + "strictPropertyInitialization": false /* Enable strict checking of property initialization in classes. */, + // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */ + "alwaysStrict": true /* Parse in strict mode and emit "use strict" for each source file. */, + + /* Additional Checks */ + // "noUnusedLocals": true, /* Report errors on unused locals. */ + // "noUnusedParameters": true, /* Report errors on unused parameters. */ + // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ + // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ + + /* Module Resolution Options */ + "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ + // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */ + // "typeRoots": [], /* List of folders to include type definitions from. */ + "types": [ + "node" + ] /* Type declaration files to be included in compilation. */, + // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ + "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */, + // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + + /* Source Map Options */ + // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */ + // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */ + + /* Experimental Options */ + // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ + // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + + /* Advanced Options */ + "skipLibCheck": true /* Skip type checking of declaration files. */, + "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */, + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "resolveJsonModule": true, + "baseUrl": "../../bundle/dist/", + "paths": { + "@fosscord/api": ["../../api/src/index"], + "@fosscord/gateway": ["../../gateway/src/index"], + "@fosscord/cdn": ["../../cdn/src/index"], + "@fosscord/util": ["../../util/src/index"] + }, + "plugins": [{ "transform": "@ovos-media/ts-transform-paths" }], + "noEmitHelpers": true, + "importHelpers": true + } +} -- cgit 1.4.1 From 551fa530cf2d19b62707c40ca1202bcd6d92c0c0 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Mon, 15 Aug 2022 07:16:41 +0200 Subject: Update package, sync migrations --- package-lock.json | 43 +- package.json | 6 +- scripts/build.js | 7 +- scripts/db_migrations.sh | 13 +- .../mariadb/1660540527213-sync_migrations.ts | 127 + .../sqlite/1660538628956-sync_migrations.ts | 172 + .../mariadb/1660260587556-CodeCleanup4.ts | 39 - .../mariadb/1660416072362-InvitersAreDeletable.ts | 56 - yarn.lock | 10364 ++++++++++--------- 9 files changed, 5598 insertions(+), 5229 deletions(-) create mode 100644 src/migrations/mariadb/1660540527213-sync_migrations.ts create mode 100644 src/migrations/sqlite/1660538628956-sync_migrations.ts delete mode 100644 src/util/migrations/mariadb/1660260587556-CodeCleanup4.ts delete mode 100644 src/util/migrations/mariadb/1660416072362-InvitersAreDeletable.ts diff --git a/package-lock.json b/package-lock.json index 0d6f7bd0..0892cb88 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,11 +24,11 @@ "canvas": "^2.9.3", "cheerio": "^1.0.0-rc.10", "dotenv": "^16.0.1", - "exif-be-gone": "^1.3.0", + "exif-be-gone": "^1.3.1", "express": "^4.17.1", "file-type": "16.5", "form-data": "^4.0.0", - "i18next": "^21.8.14", + "i18next": "^21.9.0", "i18next-http-middleware": "^3.1.3", "i18next-node-fs-backend": "^2.1.3", "image-size": "^1.0.0", @@ -38,6 +38,7 @@ "missing-native-js-functions": "^1.2.18", "morgan": "^1.10.0", "multer": "^1.4.5-lts.1", + "mysql2": "^2.3.3", "node-2fa": "^2.0.3", "node-fetch": "^2.6.7", "patch-package": "^6.4.7", @@ -61,7 +62,7 @@ "@types/jsonwebtoken": "^8.5.8", "@types/morgan": "^1.9.3", "@types/multer": "^1.4.7", - "@types/node": "^18.0.6", + "@types/node": "^18.7.3", "@types/node-os-utils": "^1.3.0", "@types/ws": "^8.5.3", "jest": "^28.1.3", @@ -4281,9 +4282,9 @@ } }, "node_modules/@types/node": { - "version": "18.6.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz", - "integrity": "sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg==" + "version": "18.7.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.3.tgz", + "integrity": "sha512-LJgzOEwWuMTBxHzgBR/fhhBOWrvBjvO+zPteUgbbuQi80rYIZHrk1mNbRUqPZqSLP2H7Rwt1EFLL/tNLD1Xx/w==" }, "node_modules/@types/node-fetch": { "version": "2.6.2", @@ -6261,9 +6262,9 @@ } }, "node_modules/exif-be-gone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/exif-be-gone/-/exif-be-gone-1.3.0.tgz", - "integrity": "sha512-6s/SnuWviwtP6TB3Gc2Nc2GIWYCIs3N9V4Md773EWIfC4uOR+O3thZXO4ElbJJOvjtDNR4FVoMVNKgZWRKiQNQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/exif-be-gone/-/exif-be-gone-1.3.1.tgz", + "integrity": "sha512-lHvNqbaTsH0WzhzfxxiTh9KwmXjAfiiTfY6UVmUZXJsaU62ccURy8beEVYFKSmNfvf0n6srLIFi0NDBWvhYUlQ==", "dependencies": { "@types/stream-buffers": "^3.0.3" }, @@ -6965,9 +6966,9 @@ } }, "node_modules/i18next": { - "version": "21.8.14", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.8.14.tgz", - "integrity": "sha512-4Yi+DtexvMm/Yw3Q9fllzY12SgLk+Mcmar+rCAccsOPul/2UmnBzoHbTGn/L48IPkFcmrNaH7xTLboBWIbH6pw==", + "version": "21.9.0", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.9.0.tgz", + "integrity": "sha512-B+6/yd7rCpJidyPuBaEApUECx7G8Ai6+tqYhrChsY4MmQqJhG7qJ4eT6Lm1OnRhieVelEtfxh4aAQktdNVZtDA==", "funding": [ { "type": "individual", @@ -16254,9 +16255,9 @@ } }, "@types/node": { - "version": "18.6.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz", - "integrity": "sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg==" + "version": "18.7.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.3.tgz", + "integrity": "sha512-LJgzOEwWuMTBxHzgBR/fhhBOWrvBjvO+zPteUgbbuQi80rYIZHrk1mNbRUqPZqSLP2H7Rwt1EFLL/tNLD1Xx/w==" }, "@types/node-fetch": { "version": "2.6.2", @@ -17793,9 +17794,9 @@ } }, "exif-be-gone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/exif-be-gone/-/exif-be-gone-1.3.0.tgz", - "integrity": "sha512-6s/SnuWviwtP6TB3Gc2Nc2GIWYCIs3N9V4Md773EWIfC4uOR+O3thZXO4ElbJJOvjtDNR4FVoMVNKgZWRKiQNQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/exif-be-gone/-/exif-be-gone-1.3.1.tgz", + "integrity": "sha512-lHvNqbaTsH0WzhzfxxiTh9KwmXjAfiiTfY6UVmUZXJsaU62ccURy8beEVYFKSmNfvf0n6srLIFi0NDBWvhYUlQ==", "requires": { "@types/stream-buffers": "^3.0.3" } @@ -18339,9 +18340,9 @@ } }, "i18next": { - "version": "21.8.14", - "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.8.14.tgz", - "integrity": "sha512-4Yi+DtexvMm/Yw3Q9fllzY12SgLk+Mcmar+rCAccsOPul/2UmnBzoHbTGn/L48IPkFcmrNaH7xTLboBWIbH6pw==", + "version": "21.9.0", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-21.9.0.tgz", + "integrity": "sha512-B+6/yd7rCpJidyPuBaEApUECx7G8Ai6+tqYhrChsY4MmQqJhG7qJ4eT6Lm1OnRhieVelEtfxh4aAQktdNVZtDA==", "requires": { "@babel/runtime": "^7.17.2" } diff --git a/package.json b/package.json index f1242d2b..a6d3ed0a 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "@types/jsonwebtoken": "^8.5.8", "@types/morgan": "^1.9.3", "@types/multer": "^1.4.7", - "@types/node": "^18.0.6", + "@types/node": "^18.7.3", "@types/node-os-utils": "^1.3.0", "@types/ws": "^8.5.3", "jest": "^28.1.3", @@ -68,11 +68,11 @@ "canvas": "^2.9.3", "cheerio": "^1.0.0-rc.10", "dotenv": "^16.0.1", - "exif-be-gone": "^1.3.0", + "exif-be-gone": "^1.3.1", "express": "^4.17.1", "file-type": "16.5", "form-data": "^4.0.0", - "i18next": "^21.8.14", + "i18next": "^21.9.0", "i18next-http-middleware": "^3.1.3", "i18next-node-fs-backend": "^2.1.3", "image-size": "^1.0.0", diff --git a/scripts/build.js b/scripts/build.js index f5ec6bac..2c0d7328 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -15,7 +15,7 @@ Arguments: exit(0); } -let steps = 3, i = 0; +let steps = 1, i = 0; if (argv.includes("clean")) steps++; const verbose = argv.includes("verbose") || argv.includes("v"); @@ -34,11 +34,6 @@ if (argv.includes("clean")) { } } -console.log(`[${++i}/${steps}] Checking if dependencies were installed correctly...`); -//exif-be-gone v1.3.0 doesnt build js, known bug -if(!fs.existsSync(path.join(__dirname, "..", "node_modules", "exif-be-gone", "index.js"))) - execIn("npm run build", path.join(__dirname, "..", "node_modules", "exif-be-gone")); - console.log(`[${++i}/${steps}] Compiling src files ...`); let buildFlags = '' diff --git a/scripts/db_migrations.sh b/scripts/db_migrations.sh index 242b01f0..89404878 100755 --- a/scripts/db_migrations.sh +++ b/scripts/db_migrations.sh @@ -9,16 +9,17 @@ else fi [ -f ".env" ] && ( - mv .env .env.tmp - source .env.tmp + mv .env .env.tmp 2>/dev/null + source .env.tmp 2>/dev/null ) +npm run build clean logerrors pretty-errors make_migration() { echo "Creating migrations for $2" - mkdir "src/util/migrations/$2" + mkdir "src/util/migrations/$2" 2>/dev/null # npm run build clean logerrors pretty-errors -# THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle - THREADS=1 DATABASE="$1" DB_MIGRATE=a npx typeorm-ts-node-commonjs migration:generate "src/migrations/$2/$FILENAME" -d ../util/src/util/Database.ts -p + THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle + THREADS=1 DATABASE="$1" DB_MIGRATE=a npx typeorm-ts-node-commonjs migration:generate "src/migrations/$2/$FILENAME" -d src/util/util/Database.ts -p npm run build clean logerrors pretty-errors THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle } @@ -36,5 +37,5 @@ make_migration "database.db" "sqlite" make_migration "$FC_DB_MARIADB" "mariadb" ) -[ -f ".env.tmp" ] && mv .env.tmp .env +[ -f ".env.tmp" ] && mv .env.tmp .env 2>/dev/null diff --git a/src/migrations/mariadb/1660540527213-sync_migrations.ts b/src/migrations/mariadb/1660540527213-sync_migrations.ts new file mode 100644 index 00000000..8cc1d2f1 --- /dev/null +++ b/src/migrations/mariadb/1660540527213-sync_migrations.ts @@ -0,0 +1,127 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class syncMigrations1660540527213 implements MigrationInterface { + name = 'syncMigrations1660540527213' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` CHANGE \`settings\` \`settingsId\` text NOT NULL + `); + await queryRunner.query(` + CREATE TABLE \`user_settings\` ( + \`id\` varchar(255) NOT NULL, + \`afk_timeout\` int NULL, + \`allow_accessibility_detection\` tinyint NULL, + \`animate_emoji\` tinyint NULL, + \`animate_stickers\` int NULL, + \`contact_sync_enabled\` tinyint NULL, + \`convert_emoticons\` tinyint NULL, + \`custom_status\` text NULL, + \`default_guilds_restricted\` tinyint NULL, + \`detect_platform_accounts\` tinyint NULL, + \`developer_mode\` tinyint NULL, + \`disable_games_tab\` tinyint NULL, + \`enable_tts_command\` tinyint NULL, + \`explicit_content_filter\` int NULL, + \`friend_source_flags\` text NULL, + \`gateway_connected\` tinyint NULL, + \`gif_auto_play\` tinyint NULL, + \`guild_folders\` text NULL, + \`guild_positions\` text NULL, + \`inline_attachment_media\` tinyint NULL, + \`inline_embed_media\` tinyint NULL, + \`locale\` varchar(255) NULL, + \`message_display_compact\` tinyint NULL, + \`native_phone_integration_enabled\` tinyint NULL, + \`render_embeds\` tinyint NULL, + \`render_reactions\` tinyint NULL, + \`restricted_guilds\` text NULL, + \`show_current_game\` tinyint NULL, + \`status\` varchar(255) NULL, + \`stream_notifications_enabled\` tinyint NULL, + \`theme\` varchar(255) NULL, + \`timezone_offset\` int NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD \`flags\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD \`default_thread_rate_limit_per_user\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` + ADD \`premium_progress_bar_enabled\` tinyint NULL + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP COLUMN \`settingsId\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD \`settingsId\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` (\`settingsId\`) + `); + await queryRunner.query(` + CREATE UNIQUE INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD CONSTRAINT \`FK_76ba283779c8441fd5ff819c8cf\` FOREIGN KEY (\`settingsId\`) REFERENCES \`user_settings\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`invites\` + ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP FOREIGN KEY \`FK_76ba283779c8441fd5ff819c8cf\` + `); + await queryRunner.query(` + DROP INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP COLUMN \`settingsId\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD \`settingsId\` text NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` DROP COLUMN \`premium_progress_bar_enabled\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP COLUMN \`default_thread_rate_limit_per_user\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP COLUMN \`flags\` + `); + await queryRunner.query(` + DROP TABLE \`user_settings\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` CHANGE \`settingsId\` \`settings\` text NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`invites\` + ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + +} diff --git a/src/migrations/sqlite/1660538628956-sync_migrations.ts b/src/migrations/sqlite/1660538628956-sync_migrations.ts new file mode 100644 index 00000000..9cdc064f --- /dev/null +++ b/src/migrations/sqlite/1660538628956-sync_migrations.ts @@ -0,0 +1,172 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class syncMigrations1660538628956 implements MigrationInterface { + name = 'syncMigrations1660538628956' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_channels" ( + "id" varchar PRIMARY KEY NOT NULL, + "created_at" datetime NOT NULL, + "name" varchar, + "icon" text, + "type" integer NOT NULL, + "last_message_id" varchar, + "guild_id" varchar, + "parent_id" varchar, + "owner_id" varchar, + "last_pin_timestamp" integer, + "default_auto_archive_duration" integer, + "position" integer, + "permission_overwrites" text, + "video_quality_mode" integer, + "bitrate" integer, + "user_limit" integer, + "nsfw" boolean, + "rate_limit_per_user" integer, + "topic" varchar, + "retention_policy_id" varchar, + "flags" integer, + "default_thread_rate_limit_per_user" integer, + CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_3274522d14af40540b1a883fc80" FOREIGN KEY ("parent_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_channels"( + "id", + "created_at", + "name", + "icon", + "type", + "last_message_id", + "guild_id", + "parent_id", + "owner_id", + "last_pin_timestamp", + "default_auto_archive_duration", + "position", + "permission_overwrites", + "video_quality_mode", + "bitrate", + "user_limit", + "nsfw", + "rate_limit_per_user", + "topic", + "retention_policy_id" + ) + SELECT "id", + "created_at", + "name", + "icon", + "type", + "last_message_id", + "guild_id", + "parent_id", + "owner_id", + "last_pin_timestamp", + "default_auto_archive_duration", + "position", + "permission_overwrites", + "video_quality_mode", + "bitrate", + "user_limit", + "nsfw", + "rate_limit_per_user", + "topic", + "retention_policy_id" + FROM "channels" + `); + await queryRunner.query(` + DROP TABLE "channels" + `); + await queryRunner.query(` + ALTER TABLE "temporary_channels" + RENAME TO "channels" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "channels" + RENAME TO "temporary_channels" + `); + await queryRunner.query(` + CREATE TABLE "channels" ( + "id" varchar PRIMARY KEY NOT NULL, + "created_at" datetime NOT NULL, + "name" varchar, + "icon" text, + "type" integer NOT NULL, + "last_message_id" varchar, + "guild_id" varchar, + "parent_id" varchar, + "owner_id" varchar, + "last_pin_timestamp" integer, + "default_auto_archive_duration" integer, + "position" integer, + "permission_overwrites" text, + "video_quality_mode" integer, + "bitrate" integer, + "user_limit" integer, + "nsfw" boolean, + "rate_limit_per_user" integer, + "topic" varchar, + "retention_policy_id" varchar, + CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_3274522d14af40540b1a883fc80" FOREIGN KEY ("parent_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "channels"( + "id", + "created_at", + "name", + "icon", + "type", + "last_message_id", + "guild_id", + "parent_id", + "owner_id", + "last_pin_timestamp", + "default_auto_archive_duration", + "position", + "permission_overwrites", + "video_quality_mode", + "bitrate", + "user_limit", + "nsfw", + "rate_limit_per_user", + "topic", + "retention_policy_id" + ) + SELECT "id", + "created_at", + "name", + "icon", + "type", + "last_message_id", + "guild_id", + "parent_id", + "owner_id", + "last_pin_timestamp", + "default_auto_archive_duration", + "position", + "permission_overwrites", + "video_quality_mode", + "bitrate", + "user_limit", + "nsfw", + "rate_limit_per_user", + "topic", + "retention_policy_id" + FROM "temporary_channels" + `); + await queryRunner.query(` + DROP TABLE "temporary_channels" + `); + } + +} diff --git a/src/util/migrations/mariadb/1660260587556-CodeCleanup4.ts b/src/util/migrations/mariadb/1660260587556-CodeCleanup4.ts deleted file mode 100644 index 98da67db..00000000 --- a/src/util/migrations/mariadb/1660260587556-CodeCleanup4.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class CodeCleanup41660260587556 implements MigrationInterface { - name = 'CodeCleanup41660260587556' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`users\` - ADD \`settingsId\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` (\`settingsId\`) - `); - await queryRunner.query(` - CREATE UNIQUE INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD CONSTRAINT \`FK_76ba283779c8441fd5ff819c8cf\` FOREIGN KEY (\`settingsId\`) REFERENCES \`user_settings\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`users\` DROP FOREIGN KEY \`FK_76ba283779c8441fd5ff819c8cf\` - `); - await queryRunner.query(` - DROP INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP COLUMN \`settingsId\` - `); - } - -} diff --git a/src/util/migrations/mariadb/1660416072362-InvitersAreDeletable.ts b/src/util/migrations/mariadb/1660416072362-InvitersAreDeletable.ts deleted file mode 100644 index 8374eafb..00000000 --- a/src/util/migrations/mariadb/1660416072362-InvitersAreDeletable.ts +++ /dev/null @@ -1,56 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class InvitersAreDeletable1660416072362 implements MigrationInterface { - name = 'InvitersAreDeletable1660416072362' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` - `); - await queryRunner.query(` - DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` ON \`users\` - `); - await queryRunner.query(` - CREATE TABLE \`plugin_config\` ( - \`key\` varchar(255) NOT NULL, - \`value\` text NULL, - PRIMARY KEY (\`key\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD \`flags\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD \`default_thread_rate_limit_per_user\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`invites\` - ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP COLUMN \`default_thread_rate_limit_per_user\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP COLUMN \`flags\` - `); - await queryRunner.query(` - DROP TABLE \`plugin_config\` - `); - await queryRunner.query(` - CREATE UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) - `); - await queryRunner.query(` - ALTER TABLE \`invites\` - ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - -} diff --git a/yarn.lock b/yarn.lock index 3173ddfa..c69f3ac0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3,54 +3,54 @@ "@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== + "integrity" "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==" + "resolved" "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz" + "version" "2.2.0" dependencies: "@jridgewell/gen-mapping" "^0.1.0" "@jridgewell/trace-mapping" "^0.3.9" "@aws-crypto/crc32@2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-2.0.0.tgz" - integrity sha512-TvE1r2CUueyXOuHdEigYjIZVesInd9KN+K/TFFNfkkxRThiNxO6i4ZqqAVMoEjAamZZ1AA8WXJkjCz7YShHPQA== + "integrity" "sha512-TvE1r2CUueyXOuHdEigYjIZVesInd9KN+K/TFFNfkkxRThiNxO6i4ZqqAVMoEjAamZZ1AA8WXJkjCz7YShHPQA==" + "resolved" "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-2.0.0.tgz" + "version" "2.0.0" dependencies: "@aws-crypto/util" "^2.0.0" "@aws-sdk/types" "^3.1.0" - tslib "^1.11.1" + "tslib" "^1.11.1" "@aws-crypto/crc32c@2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-2.0.0.tgz" - integrity sha512-vF0eMdMHx3O3MoOXUfBZry8Y4ZDtcuskjjKgJz8YfIDjLStxTZrYXk+kZqtl6A0uCmmiN/Eb/JbC/CndTV1MHg== + "integrity" "sha512-vF0eMdMHx3O3MoOXUfBZry8Y4ZDtcuskjjKgJz8YfIDjLStxTZrYXk+kZqtl6A0uCmmiN/Eb/JbC/CndTV1MHg==" + "resolved" "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-2.0.0.tgz" + "version" "2.0.0" dependencies: "@aws-crypto/util" "^2.0.0" "@aws-sdk/types" "^3.1.0" - tslib "^1.11.1" + "tslib" "^1.11.1" "@aws-crypto/ie11-detection@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz" - integrity sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA== + "integrity" "sha512-pkVXf/dq6PITJ0jzYZ69VhL8VFOFoPZLZqtU/12SGnzYuJOOGNfF41q9GxdI1yqC8R13Rq3jOLKDFpUJFT5eTA==" + "resolved" "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-2.0.0.tgz" + "version" "2.0.0" dependencies: - tslib "^1.11.1" + "tslib" "^1.11.1" "@aws-crypto/sha1-browser@2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-2.0.0.tgz" - integrity sha512-3fIVRjPFY8EG5HWXR+ZJZMdWNRpwbxGzJ9IH9q93FpbgCH8u8GHRi46mZXp3cYD7gealmyqpm3ThZwLKJjWJhA== + "integrity" "sha512-3fIVRjPFY8EG5HWXR+ZJZMdWNRpwbxGzJ9IH9q93FpbgCH8u8GHRi46mZXp3cYD7gealmyqpm3ThZwLKJjWJhA==" + "resolved" "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-2.0.0.tgz" + "version" "2.0.0" dependencies: "@aws-crypto/ie11-detection" "^2.0.0" "@aws-crypto/supports-web-crypto" "^2.0.0" "@aws-sdk/types" "^3.1.0" "@aws-sdk/util-locate-window" "^3.0.0" "@aws-sdk/util-utf8-browser" "^3.0.0" - tslib "^1.11.1" + "tslib" "^1.11.1" "@aws-crypto/sha256-browser@2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz" - integrity sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A== + "integrity" "sha512-rYXOQ8BFOaqMEHJrLHul/25ckWH6GTJtdLSajhlqGMx0PmSueAuvboCuZCTqEKlxR8CQOwRarxYMZZSYlhRA1A==" + "resolved" "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-2.0.0.tgz" + "version" "2.0.0" dependencies: "@aws-crypto/ie11-detection" "^2.0.0" "@aws-crypto/sha256-js" "^2.0.0" @@ -59,60 +59,60 @@ "@aws-sdk/types" "^3.1.0" "@aws-sdk/util-locate-window" "^3.0.0" "@aws-sdk/util-utf8-browser" "^3.0.0" - tslib "^1.11.1" + "tslib" "^1.11.1" -"@aws-crypto/sha256-js@2.0.0", "@aws-crypto/sha256-js@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz" - integrity sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig== +"@aws-crypto/sha256-js@^2.0.0", "@aws-crypto/sha256-js@2.0.0": + "integrity" "sha512-VZY+mCY4Nmrs5WGfitmNqXzaE873fcIZDu54cbaDaaamsaTOP1DBImV9F4pICc3EHjQXujyE8jig+PFCaew9ig==" + "resolved" "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-2.0.0.tgz" + "version" "2.0.0" dependencies: "@aws-crypto/util" "^2.0.0" "@aws-sdk/types" "^3.1.0" - tslib "^1.11.1" + "tslib" "^1.11.1" "@aws-crypto/supports-web-crypto@^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz" - integrity sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA== + "integrity" "sha512-Ge7WQ3E0OC7FHYprsZV3h0QIcpdyJLvIeg+uTuHqRYm8D6qCFJoiC+edSzSyFiHtZf+NOQDJ1q46qxjtzIY2nA==" + "resolved" "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-2.0.0.tgz" + "version" "2.0.0" dependencies: - tslib "^1.11.1" + "tslib" "^1.11.1" "@aws-crypto/util@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz" - integrity sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ== + "integrity" "sha512-JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==" + "resolved" "https://registry.npmjs.org/@aws-crypto/util/-/util-2.0.1.tgz" + "version" "2.0.1" dependencies: "@aws-sdk/types" "^3.1.0" "@aws-sdk/util-utf8-browser" "^3.0.0" - tslib "^1.11.1" + "tslib" "^1.11.1" "@aws-sdk/abort-controller@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.127.0.tgz" - integrity sha512-G77FLYcl9egUoD3ZmR6TX94NMqBMeT53hBGrEE3uVUJV1CwfGKfaF007mPpRZnIB3avnJBQGEK6MrwlCfv2qAw== + "integrity" "sha512-G77FLYcl9egUoD3ZmR6TX94NMqBMeT53hBGrEE3uVUJV1CwfGKfaF007mPpRZnIB3avnJBQGEK6MrwlCfv2qAw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/chunked-blob-reader-native@3.109.0": - version "3.109.0" - resolved "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.109.0.tgz" - integrity sha512-Ybn3vDZ3CqGyprL2qdF6QZqoqlx8lA3qOJepobjuKKDRw+KgGxjUY4NvWe0R2MdRoduyaDj6uvhIay0S1MOSJQ== + "integrity" "sha512-Ybn3vDZ3CqGyprL2qdF6QZqoqlx8lA3qOJepobjuKKDRw+KgGxjUY4NvWe0R2MdRoduyaDj6uvhIay0S1MOSJQ==" + "resolved" "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.109.0.tgz" + "version" "3.109.0" dependencies: "@aws-sdk/util-base64-browser" "3.109.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/chunked-blob-reader@3.55.0": - version "3.55.0" - resolved "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.55.0.tgz" - integrity sha512-o/xjMCq81opAjSBjt7YdHJwIJcGVG5XIV9+C2KXcY5QwVimkOKPybWTv0mXPvSwSilSx+EhpLNhkcJuXdzhw4w== + "integrity" "sha512-o/xjMCq81opAjSBjt7YdHJwIJcGVG5XIV9+C2KXcY5QwVimkOKPybWTv0mXPvSwSilSx+EhpLNhkcJuXdzhw4w==" + "resolved" "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader/-/chunked-blob-reader-3.55.0.tgz" + "version" "3.55.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/client-s3@^3.137.0": - version "3.137.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.137.0.tgz" - integrity sha512-WFOBywwV7ECAOkSOLecpPOGbgmYV5NxHzXHTJEio6xR6s2KzoLegJa0/mq5ljh0Zl5t2h5bsKT1CxYRC0sfwWw== + "integrity" "sha512-WFOBywwV7ECAOkSOLecpPOGbgmYV5NxHzXHTJEio6xR6s2KzoLegJa0/mq5ljh0Zl5t2h5bsKT1CxYRC0sfwWw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.137.0.tgz" + "version" "3.137.0" dependencies: "@aws-crypto/sha1-browser" "2.0.0" "@aws-crypto/sha256-browser" "2.0.0" @@ -165,14 +165,14 @@ "@aws-sdk/util-utf8-node" "3.109.0" "@aws-sdk/util-waiter" "3.127.0" "@aws-sdk/xml-builder" "3.109.0" - entities "2.2.0" - fast-xml-parser "3.19.0" - tslib "^2.3.1" + "entities" "2.2.0" + "fast-xml-parser" "3.19.0" + "tslib" "^2.3.1" "@aws-sdk/client-sso@3.137.0": - version "3.137.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.137.0.tgz" - integrity sha512-l9y9usMuXGI+o1c/VO2qMccN0Bm0T5bFmmbRljB6kIzbJYXD/wVqR8GMZwSnFnz52cnURQ4pgqM1ETg54FlBYQ== + "integrity" "sha512-l9y9usMuXGI+o1c/VO2qMccN0Bm0T5bFmmbRljB6kIzbJYXD/wVqR8GMZwSnFnz52cnURQ4pgqM1ETg54FlBYQ==" + "resolved" "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.137.0.tgz" + "version" "3.137.0" dependencies: "@aws-crypto/sha256-browser" "2.0.0" "@aws-crypto/sha256-js" "2.0.0" @@ -204,12 +204,12 @@ "@aws-sdk/util-user-agent-node" "3.127.0" "@aws-sdk/util-utf8-browser" "3.109.0" "@aws-sdk/util-utf8-node" "3.109.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/client-sts@3.137.0": - version "3.137.0" - resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.137.0.tgz" - integrity sha512-yJqfkEq0DG9Ds+oif/sc02PX6vfSNcyRe3YcaW5P6ouMyhJRljSIVCnA6iPwJaTsmK9BE9PDgFD2v/GYM/XgOA== + "integrity" "sha512-yJqfkEq0DG9Ds+oif/sc02PX6vfSNcyRe3YcaW5P6ouMyhJRljSIVCnA6iPwJaTsmK9BE9PDgFD2v/GYM/XgOA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.137.0.tgz" + "version" "3.137.0" dependencies: "@aws-crypto/sha256-browser" "2.0.0" "@aws-crypto/sha256-js" "2.0.0" @@ -244,45 +244,45 @@ "@aws-sdk/util-user-agent-node" "3.127.0" "@aws-sdk/util-utf8-browser" "3.109.0" "@aws-sdk/util-utf8-node" "3.109.0" - entities "2.2.0" - fast-xml-parser "3.19.0" - tslib "^2.3.1" + "entities" "2.2.0" + "fast-xml-parser" "3.19.0" + "tslib" "^2.3.1" "@aws-sdk/config-resolver@3.130.0": - version "3.130.0" - resolved "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.130.0.tgz" - integrity sha512-7dkCHHI9kRcHW6YNr9/2Ub6XkvU9Fu6H/BnlKbaKlDR8jq7QpaFhPhctOVi5D/NDpxJgALifexFne0dvo3piTw== + "integrity" "sha512-7dkCHHI9kRcHW6YNr9/2Ub6XkvU9Fu6H/BnlKbaKlDR8jq7QpaFhPhctOVi5D/NDpxJgALifexFne0dvo3piTw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.130.0.tgz" + "version" "3.130.0" dependencies: "@aws-sdk/signature-v4" "3.130.0" "@aws-sdk/types" "3.127.0" "@aws-sdk/util-config-provider" "3.109.0" "@aws-sdk/util-middleware" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/credential-provider-env@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.127.0.tgz" - integrity sha512-Ig7XhUikRBlnRTYT5JBGzWfYZp68X5vkFVIFCmsHHt/qVy0Nz9raZpmDHicdS1u67yxDkWgCPn/bNevWnM0GFg== + "integrity" "sha512-Ig7XhUikRBlnRTYT5JBGzWfYZp68X5vkFVIFCmsHHt/qVy0Nz9raZpmDHicdS1u67yxDkWgCPn/bNevWnM0GFg==" + "resolved" "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/property-provider" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/credential-provider-imds@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.127.0.tgz" - integrity sha512-I6KlIBBzmJn/U1KikiC50PK3SspT9G5lkVLBaW5a6YfOcijqVTXfAN3kYzqhfeS0j4IgfJEwKVsjsZfmprJO5A== + "integrity" "sha512-I6KlIBBzmJn/U1KikiC50PK3SspT9G5lkVLBaW5a6YfOcijqVTXfAN3kYzqhfeS0j4IgfJEwKVsjsZfmprJO5A==" + "resolved" "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/node-config-provider" "3.127.0" "@aws-sdk/property-provider" "3.127.0" "@aws-sdk/types" "3.127.0" "@aws-sdk/url-parser" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/credential-provider-ini@3.137.0": - version "3.137.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.137.0.tgz" - integrity sha512-FNSYjHaW83b4sQac+EWh/C6p1taBdvPOXFAVml1mPH49Nlkv9/E4bbjaWwgxvlxjqjNCbkDMKzhb19DN3gVulA== + "integrity" "sha512-FNSYjHaW83b4sQac+EWh/C6p1taBdvPOXFAVml1mPH49Nlkv9/E4bbjaWwgxvlxjqjNCbkDMKzhb19DN3gVulA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.137.0.tgz" + "version" "3.137.0" dependencies: "@aws-sdk/credential-provider-env" "3.127.0" "@aws-sdk/credential-provider-imds" "3.127.0" @@ -291,12 +291,12 @@ "@aws-sdk/property-provider" "3.127.0" "@aws-sdk/shared-ini-file-loader" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/credential-provider-node@3.137.0": - version "3.137.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.137.0.tgz" - integrity sha512-if4CzNSyPS3ZERLtDocNNC+l5ejK93d2hoOzNHP2qCmTppThEPWF2TH506ez0v0lbUzeI7qWgpYe9m4+BFLEwQ== + "integrity" "sha512-if4CzNSyPS3ZERLtDocNNC+l5ejK93d2hoOzNHP2qCmTppThEPWF2TH506ez0v0lbUzeI7qWgpYe9m4+BFLEwQ==" + "resolved" "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.137.0.tgz" + "version" "3.137.0" dependencies: "@aws-sdk/credential-provider-env" "3.127.0" "@aws-sdk/credential-provider-imds" "3.127.0" @@ -307,599 +307,599 @@ "@aws-sdk/property-provider" "3.127.0" "@aws-sdk/shared-ini-file-loader" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/credential-provider-process@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.127.0.tgz" - integrity sha512-6v0m2lqkO9J5fNlTl+HjriQNIdfg8mjVST544+5y9EnC/FVmTnIz64vfHveWdNkP/fehFx7wTimNENtoSqCn3A== + "integrity" "sha512-6v0m2lqkO9J5fNlTl+HjriQNIdfg8mjVST544+5y9EnC/FVmTnIz64vfHveWdNkP/fehFx7wTimNENtoSqCn3A==" + "resolved" "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/property-provider" "3.127.0" "@aws-sdk/shared-ini-file-loader" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/credential-provider-sso@3.137.0": - version "3.137.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.137.0.tgz" - integrity sha512-Up2Q3tWSo6Mv2icXMrHa8dGtnC9yQAeUnftrIlvLXi3P9RjxlOPZCSg1NF8FOS90RdEgORlj/7LPlIniHgGUmg== + "integrity" "sha512-Up2Q3tWSo6Mv2icXMrHa8dGtnC9yQAeUnftrIlvLXi3P9RjxlOPZCSg1NF8FOS90RdEgORlj/7LPlIniHgGUmg==" + "resolved" "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.137.0.tgz" + "version" "3.137.0" dependencies: "@aws-sdk/client-sso" "3.137.0" "@aws-sdk/property-provider" "3.127.0" "@aws-sdk/shared-ini-file-loader" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/credential-provider-web-identity@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.127.0.tgz" - integrity sha512-85ahDZnLYB3dqkW+cQ0bWt+NVqOoxomTrJoq3IC2q6muebeFrJ0pyf0JEW/RNRzBiUvvsZujzGdWifzWyQKfVg== + "integrity" "sha512-85ahDZnLYB3dqkW+cQ0bWt+NVqOoxomTrJoq3IC2q6muebeFrJ0pyf0JEW/RNRzBiUvvsZujzGdWifzWyQKfVg==" + "resolved" "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/property-provider" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/eventstream-codec@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.127.0.tgz" - integrity sha512-+Tlujx3VkB4DK8tYzG0rwxIE0ee6hWItQgSEREEmi5CwHQFw7VpRLYAShYabEx9wIJmRFObWzhlKxWNRi+TfaA== + "integrity" "sha512-+Tlujx3VkB4DK8tYzG0rwxIE0ee6hWItQgSEREEmi5CwHQFw7VpRLYAShYabEx9wIJmRFObWzhlKxWNRi+TfaA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/eventstream-codec/-/eventstream-codec-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-crypto/crc32" "2.0.0" "@aws-sdk/types" "3.127.0" "@aws-sdk/util-hex-encoding" "3.109.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/eventstream-serde-browser@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.127.0.tgz" - integrity sha512-d1rTK4ljEp3Y/BQ78/AJ7eqgGyI6TE0bxNosCmXWcUBv00Tr5cerPqPe7Zvw8XwIMPX5y8cjtd1/cOtB2ePaBw== + "integrity" "sha512-d1rTK4ljEp3Y/BQ78/AJ7eqgGyI6TE0bxNosCmXWcUBv00Tr5cerPqPe7Zvw8XwIMPX5y8cjtd1/cOtB2ePaBw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/eventstream-serde-universal" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/eventstream-serde-config-resolver@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.127.0.tgz" - integrity sha512-dYvLfQYcKLOFtZVgwLwKDCykAxNkDyDLQRWytJK9DHCyjRig66IKi1codts9vOy4j0CeYwnXWs5WDavrUaE05g== + "integrity" "sha512-dYvLfQYcKLOFtZVgwLwKDCykAxNkDyDLQRWytJK9DHCyjRig66IKi1codts9vOy4j0CeYwnXWs5WDavrUaE05g==" + "resolved" "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/eventstream-serde-node@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.127.0.tgz" - integrity sha512-Ie59jZYAIw3Kt6GePvEilp1k3JoYEQpY3WIyVZltm3dkVf0GmzhCZrPROH9vgF3qApzu1aGOWDV2wX91poXF8A== + "integrity" "sha512-Ie59jZYAIw3Kt6GePvEilp1k3JoYEQpY3WIyVZltm3dkVf0GmzhCZrPROH9vgF3qApzu1aGOWDV2wX91poXF8A==" + "resolved" "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/eventstream-serde-universal" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/eventstream-serde-universal@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.127.0.tgz" - integrity sha512-cJLSTtYDGTevknMTykzHpcDNRbD6yGve8FBUKSAczuNVjXZOedj0GbHJqkASuLj0ZnojbKBdCx4uu1XGyvubng== + "integrity" "sha512-cJLSTtYDGTevknMTykzHpcDNRbD6yGve8FBUKSAczuNVjXZOedj0GbHJqkASuLj0ZnojbKBdCx4uu1XGyvubng==" + "resolved" "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/eventstream-codec" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/fetch-http-handler@3.131.0": - version "3.131.0" - resolved "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.131.0.tgz" - integrity sha512-eNxmPZQX2IUeBGWHNC7eNTekWn9VIPLYEMKJbKYUBJryxuTJ7TtLeyEK5oakUjMwP1AUvWT+CV7C+8L7uG1omQ== + "integrity" "sha512-eNxmPZQX2IUeBGWHNC7eNTekWn9VIPLYEMKJbKYUBJryxuTJ7TtLeyEK5oakUjMwP1AUvWT+CV7C+8L7uG1omQ==" + "resolved" "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.131.0.tgz" + "version" "3.131.0" dependencies: "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/querystring-builder" "3.127.0" "@aws-sdk/types" "3.127.0" "@aws-sdk/util-base64-browser" "3.109.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/hash-blob-browser@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.127.0.tgz" - integrity sha512-XH9s2w6GXCtDI+3/y+sDAzMWJRTvhRXJJtI1fVDsCiyq96SYUTNKLLaUSuR01uawEBiRDBqGDDPMT8qJPDXc/w== + "integrity" "sha512-XH9s2w6GXCtDI+3/y+sDAzMWJRTvhRXJJtI1fVDsCiyq96SYUTNKLLaUSuR01uawEBiRDBqGDDPMT8qJPDXc/w==" + "resolved" "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/chunked-blob-reader" "3.55.0" "@aws-sdk/chunked-blob-reader-native" "3.109.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/hash-node@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.127.0.tgz" - integrity sha512-wx7DKlXdKebH4JcMsOevdsm2oDNMVm36kuMm0XWRIrFWQ/oq7OquDpEMJzWvGqWF/IfFUpb7FhAWZZpALwlcwA== + "integrity" "sha512-wx7DKlXdKebH4JcMsOevdsm2oDNMVm36kuMm0XWRIrFWQ/oq7OquDpEMJzWvGqWF/IfFUpb7FhAWZZpALwlcwA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" "@aws-sdk/util-buffer-from" "3.55.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/hash-stream-node@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.127.0.tgz" - integrity sha512-ZCNqi+FJViYFCo8JfSx+YK0Hd/SC555gHqBe24GVBMCDqJ8UFIled7tF+GOQ8wTcKjxuwp/0EXDTXoaAb0K89g== + "integrity" "sha512-ZCNqi+FJViYFCo8JfSx+YK0Hd/SC555gHqBe24GVBMCDqJ8UFIled7tF+GOQ8wTcKjxuwp/0EXDTXoaAb0K89g==" + "resolved" "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/invalid-dependency@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.127.0.tgz" - integrity sha512-bxvmtmJ6gIRfOHvh1jAPZBH2mzppEblPjEOFo4mOzXz4U3qPIxeuukCjboMnGK9QEpV2wObWcYYld0vxoRrfiA== + "integrity" "sha512-bxvmtmJ6gIRfOHvh1jAPZBH2mzppEblPjEOFo4mOzXz4U3qPIxeuukCjboMnGK9QEpV2wObWcYYld0vxoRrfiA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/is-array-buffer@3.55.0": - version "3.55.0" - resolved "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz" - integrity sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA== + "integrity" "sha512-NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/is-array-buffer/-/is-array-buffer-3.55.0.tgz" + "version" "3.55.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/md5-js@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.127.0.tgz" - integrity sha512-9FzD++p2bvfZ56hbDxvGcLlA9JIMt9uZB/m4NEvbuvrpx1qnUpFv6HqthhGaVuhctkK25hONT5ZpOYHSisATrA== + "integrity" "sha512-9FzD++p2bvfZ56hbDxvGcLlA9JIMt9uZB/m4NEvbuvrpx1qnUpFv6HqthhGaVuhctkK25hONT5ZpOYHSisATrA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" "@aws-sdk/util-utf8-browser" "3.109.0" "@aws-sdk/util-utf8-node" "3.109.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-bucket-endpoint@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.127.0.tgz" - integrity sha512-wJpXxWceBDhWktoxrRb4s6tMx0dWsEGYIaV0KkQPGhTPk2KMUgwa4xApfCXXVfYcE3THk486OKwHhPrR5jpe+g== + "integrity" "sha512-wJpXxWceBDhWktoxrRb4s6tMx0dWsEGYIaV0KkQPGhTPk2KMUgwa4xApfCXXVfYcE3THk486OKwHhPrR5jpe+g==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/types" "3.127.0" "@aws-sdk/util-arn-parser" "3.55.0" "@aws-sdk/util-config-provider" "3.109.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-content-length@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.127.0.tgz" - integrity sha512-AFmMaIEW3Rzg0TaKB9l/RENLowd7ZEEOpm0trYw1CgUUORWW/ydCsDT7pekPlC25CPbhUmWXCSA4xPFSYOVnDw== + "integrity" "sha512-AFmMaIEW3Rzg0TaKB9l/RENLowd7ZEEOpm0trYw1CgUUORWW/ydCsDT7pekPlC25CPbhUmWXCSA4xPFSYOVnDw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-expect-continue@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.127.0.tgz" - integrity sha512-+X7mdgFqt9UqUDeGuMt+afR8CBX9nMecTxEIilAKdVOLx+fuXzHnC2mpddKMtiE9IGKMU4BI1Ahf7t32Odhs1Q== + "integrity" "sha512-+X7mdgFqt9UqUDeGuMt+afR8CBX9nMecTxEIilAKdVOLx+fuXzHnC2mpddKMtiE9IGKMU4BI1Ahf7t32Odhs1Q==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-flexible-checksums@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.127.0.tgz" - integrity sha512-sXkAwhE9dikO72sEJ7DrUCo5mawauAxICCqipCCSGp0geSkptvtZHhySgJNMVSbUJQmu5bcS+zsFpFVwuJvGxg== + "integrity" "sha512-sXkAwhE9dikO72sEJ7DrUCo5mawauAxICCqipCCSGp0geSkptvtZHhySgJNMVSbUJQmu5bcS+zsFpFVwuJvGxg==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-crypto/crc32" "2.0.0" "@aws-crypto/crc32c" "2.0.0" "@aws-sdk/is-array-buffer" "3.55.0" "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-host-header@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.127.0.tgz" - integrity sha512-e2gTLJb5lYP9lRV7hN3rKY2l4jv8OygOoHElZJ3Z8KPZskjHelYPcQ8XbdfhSXXxC3vc/0QqN0ResFt3W3Pplg== + "integrity" "sha512-e2gTLJb5lYP9lRV7hN3rKY2l4jv8OygOoHElZJ3Z8KPZskjHelYPcQ8XbdfhSXXxC3vc/0QqN0ResFt3W3Pplg==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-location-constraint@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.127.0.tgz" - integrity sha512-UtPmbOKEVu+Ue7CwICFSOOOSePV8Piydco/v2IpdRkMO0e4bqQ3Tn0XprBlWWfSW4QCtAPzydrArLsUdk636GA== + "integrity" "sha512-UtPmbOKEVu+Ue7CwICFSOOOSePV8Piydco/v2IpdRkMO0e4bqQ3Tn0XprBlWWfSW4QCtAPzydrArLsUdk636GA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-logger@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.127.0.tgz" - integrity sha512-jMNLcZB/ECA7OfkNBLNeAlrLRehyfnUeNQJHW3kcxs9h1+6VxaF6wY+WKozszLI7/3OBzQrFHBQCfRZV7ykSLg== + "integrity" "sha512-jMNLcZB/ECA7OfkNBLNeAlrLRehyfnUeNQJHW3kcxs9h1+6VxaF6wY+WKozszLI7/3OBzQrFHBQCfRZV7ykSLg==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-recursion-detection@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.127.0.tgz" - integrity sha512-tB6WX+Z1kUKTnn5h38XFrTCzoqPKjUZLUjN4Wb27/cbeSiTSKGAZcCXHOJm36Ukorl5arlybQTqGe689EU00Hw== + "integrity" "sha512-tB6WX+Z1kUKTnn5h38XFrTCzoqPKjUZLUjN4Wb27/cbeSiTSKGAZcCXHOJm36Ukorl5arlybQTqGe689EU00Hw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-retry@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.127.0.tgz" - integrity sha512-ZSvg/AyGUacWnf3i8ZbyImtiCH+NyafF8uV7bITP7JkwPrG+VdNocJZOr88GRM0c1A0jfkOf7+oq+fInPwwiNA== + "integrity" "sha512-ZSvg/AyGUacWnf3i8ZbyImtiCH+NyafF8uV7bITP7JkwPrG+VdNocJZOr88GRM0c1A0jfkOf7+oq+fInPwwiNA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/service-error-classification" "3.127.0" "@aws-sdk/types" "3.127.0" "@aws-sdk/util-middleware" "3.127.0" - tslib "^2.3.1" - uuid "^8.3.2" + "tslib" "^2.3.1" + "uuid" "^8.3.2" "@aws-sdk/middleware-sdk-s3@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.127.0.tgz" - integrity sha512-q1mkEN7kYYdQ3LOHIhaT56omYe8DCubyiCKOXuEo5ZiIkE5iq06K/BxWxj3f8bFZxSX80Ma1m8XA5jcOEMphSA== + "integrity" "sha512-q1mkEN7kYYdQ3LOHIhaT56omYe8DCubyiCKOXuEo5ZiIkE5iq06K/BxWxj3f8bFZxSX80Ma1m8XA5jcOEMphSA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/middleware-bucket-endpoint" "3.127.0" "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/types" "3.127.0" "@aws-sdk/util-arn-parser" "3.55.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-sdk-sts@3.130.0": - version "3.130.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.130.0.tgz" - integrity sha512-FDfs7+ohbhEK3eH3Dshr6JDiL8P72bp3ffeNpPBXuURFqwt4pCmjHuX3SqQR0JIJ2cl3aIdxc17rKaZJfOjtPw== + "integrity" "sha512-FDfs7+ohbhEK3eH3Dshr6JDiL8P72bp3ffeNpPBXuURFqwt4pCmjHuX3SqQR0JIJ2cl3aIdxc17rKaZJfOjtPw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.130.0.tgz" + "version" "3.130.0" dependencies: "@aws-sdk/middleware-signing" "3.130.0" "@aws-sdk/property-provider" "3.127.0" "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/signature-v4" "3.130.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-serde@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.127.0.tgz" - integrity sha512-xmWMYV/t9M+b9yHjqaD1noDNJJViI2QwOH7TQZ9VbbrvdVtDrFuS9Sf9He80TBCJqeHShwQN9783W1I3Pu/8kw== + "integrity" "sha512-xmWMYV/t9M+b9yHjqaD1noDNJJViI2QwOH7TQZ9VbbrvdVtDrFuS9Sf9He80TBCJqeHShwQN9783W1I3Pu/8kw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-signing@3.130.0": - version "3.130.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.130.0.tgz" - integrity sha512-JePq5XLR9TfRN3RQ0d7Za/bEW5D3xgtD1FNAwHeenWALeozMuQgRPjM5RroCnL/5jY3wuvCZI7cSXeqhawWqmA== + "integrity" "sha512-JePq5XLR9TfRN3RQ0d7Za/bEW5D3xgtD1FNAwHeenWALeozMuQgRPjM5RroCnL/5jY3wuvCZI7cSXeqhawWqmA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.130.0.tgz" + "version" "3.130.0" dependencies: "@aws-sdk/property-provider" "3.127.0" "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/signature-v4" "3.130.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-ssec@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.127.0.tgz" - integrity sha512-R5A13EvdYPdYD2Tq9eW5jqIdscyZlQykQXFEolBD2oi4pew7TZpc/5aazZC0zo9YKJ29qiUR1P4NvjcFJ7zFBg== + "integrity" "sha512-R5A13EvdYPdYD2Tq9eW5jqIdscyZlQykQXFEolBD2oi4pew7TZpc/5aazZC0zo9YKJ29qiUR1P4NvjcFJ7zFBg==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-stack@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.127.0.tgz" - integrity sha512-S1IoUE5o1vCmjsF5nIE8zlItNOM1UE+lhmZeigF7knXJ9+a6ewMB6POAj/s4eoi0wcn0eSnAGsqJCWMSUjOPLA== + "integrity" "sha512-S1IoUE5o1vCmjsF5nIE8zlItNOM1UE+lhmZeigF7knXJ9+a6ewMB6POAj/s4eoi0wcn0eSnAGsqJCWMSUjOPLA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.127.0.tgz" + "version" "3.127.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/middleware-user-agent@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.127.0.tgz" - integrity sha512-CHxgswoOzdkOEoIq7Oyob3Sx/4FYUv6BhUesAX7MNshaDDsTQPbSWjw5bqZDiL/gO+X/34fvqCVVpVD2GvxW/g== + "integrity" "sha512-CHxgswoOzdkOEoIq7Oyob3Sx/4FYUv6BhUesAX7MNshaDDsTQPbSWjw5bqZDiL/gO+X/34fvqCVVpVD2GvxW/g==" + "resolved" "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/node-config-provider@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.127.0.tgz" - integrity sha512-bAHkASMhLZHT1yv2TX6OJGFV9Lc3t1gKfTMEKdXM2O2YhGfSx9A/qLeJm79oDfnILWQtSS2NicxlRDI2lYGf4g== + "integrity" "sha512-bAHkASMhLZHT1yv2TX6OJGFV9Lc3t1gKfTMEKdXM2O2YhGfSx9A/qLeJm79oDfnILWQtSS2NicxlRDI2lYGf4g==" + "resolved" "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/property-provider" "3.127.0" "@aws-sdk/shared-ini-file-loader" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/node-http-handler@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.127.0.tgz" - integrity sha512-pyMKvheK8eDwWLgYIRsWy8wiyhsbYYcqkZQs3Eh6upI4E8iCY7eMmhWvHYCibvsO+UjsOwa4cAMOfwnv/Z9s8A== + "integrity" "sha512-pyMKvheK8eDwWLgYIRsWy8wiyhsbYYcqkZQs3Eh6upI4E8iCY7eMmhWvHYCibvsO+UjsOwa4cAMOfwnv/Z9s8A==" + "resolved" "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/abort-controller" "3.127.0" "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/querystring-builder" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/property-provider@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.127.0.tgz" - integrity sha512-JxenxlTEkWfLrtJqIjaXaJzAVQbbscoCb5bNjmdud07ESLVfWRKJx2nAJdecHKYp2M5NQyqBuFhQ1ELSFYQKCA== + "integrity" "sha512-JxenxlTEkWfLrtJqIjaXaJzAVQbbscoCb5bNjmdud07ESLVfWRKJx2nAJdecHKYp2M5NQyqBuFhQ1ELSFYQKCA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/protocol-http@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.127.0.tgz" - integrity sha512-UG83PVuKX40wilG2uRU0Fvz4OY8Bt+bSPOG776DFjwIXYzK7BwpJm9H2XI2HLhS5WxrJHhwrLBRgW6UiykMnFw== + "integrity" "sha512-UG83PVuKX40wilG2uRU0Fvz4OY8Bt+bSPOG776DFjwIXYzK7BwpJm9H2XI2HLhS5WxrJHhwrLBRgW6UiykMnFw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/querystring-builder@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.127.0.tgz" - integrity sha512-tsoyp4lLPsASPDYWsezGAHD8VJsZbjUNATNAzTCFdH6p+4SKBK83Q5kfXCzxt13M+l3oKbxxIWLvS0kVQFyltQ== + "integrity" "sha512-tsoyp4lLPsASPDYWsezGAHD8VJsZbjUNATNAzTCFdH6p+4SKBK83Q5kfXCzxt13M+l3oKbxxIWLvS0kVQFyltQ==" + "resolved" "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" "@aws-sdk/util-uri-escape" "3.55.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/querystring-parser@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.127.0.tgz" - integrity sha512-Vn/Dv+PqUSepp/DzLqq0LJJD8HdPefJCnLbO5WcHCARHSGlyGlZUFEM45k/oEHpTvgMXj/ORaP3A+tLwLu0AmA== + "integrity" "sha512-Vn/Dv+PqUSepp/DzLqq0LJJD8HdPefJCnLbO5WcHCARHSGlyGlZUFEM45k/oEHpTvgMXj/ORaP3A+tLwLu0AmA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/service-error-classification@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.127.0.tgz" - integrity sha512-wjZY9rnlA8SPrICUumTYicEKtK4/yKB62iadUk66hxe8MrH8JhuHH2NqIad0Pt/bK/YtNVhd3yb4pRapOeY5qQ== + "integrity" "sha512-wjZY9rnlA8SPrICUumTYicEKtK4/yKB62iadUk66hxe8MrH8JhuHH2NqIad0Pt/bK/YtNVhd3yb4pRapOeY5qQ==" + "resolved" "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.127.0.tgz" + "version" "3.127.0" "@aws-sdk/shared-ini-file-loader@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.127.0.tgz" - integrity sha512-S3Nn4KRTqoJsB/TbRZSWBBUrkckNMR0Juqz7bOB+wupVvddKP6IcpspSC/GX9zgJjVMV8iGisZ6AUsYsC5r+cA== + "integrity" "sha512-S3Nn4KRTqoJsB/TbRZSWBBUrkckNMR0Juqz7bOB+wupVvddKP6IcpspSC/GX9zgJjVMV8iGisZ6AUsYsC5r+cA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.127.0.tgz" + "version" "3.127.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/signature-v4-multi-region@3.130.0": - version "3.130.0" - resolved "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.130.0.tgz" - integrity sha512-ZRRoPRoCVdkGDtjuog81pqHsSLfnXK6ELrWm4Dq8xdcHQGbEDNdYmeXARXG9yPAO42x9yIJXHNutMz5Y/P64cw== + "integrity" "sha512-ZRRoPRoCVdkGDtjuog81pqHsSLfnXK6ELrWm4Dq8xdcHQGbEDNdYmeXARXG9yPAO42x9yIJXHNutMz5Y/P64cw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.130.0.tgz" + "version" "3.130.0" dependencies: "@aws-sdk/protocol-http" "3.127.0" "@aws-sdk/signature-v4" "3.130.0" "@aws-sdk/types" "3.127.0" "@aws-sdk/util-arn-parser" "3.55.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/signature-v4@3.130.0": - version "3.130.0" - resolved "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.130.0.tgz" - integrity sha512-g5G1a1NHL2uOoFfC2zQdZcj+wbjgBQPkx6xGdtqNKf9v2kS0n6ap5JUGEaqWE02lUlmWHsoMsS73hXtzwXaBRQ== + "integrity" "sha512-g5G1a1NHL2uOoFfC2zQdZcj+wbjgBQPkx6xGdtqNKf9v2kS0n6ap5JUGEaqWE02lUlmWHsoMsS73hXtzwXaBRQ==" + "resolved" "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.130.0.tgz" + "version" "3.130.0" dependencies: "@aws-sdk/is-array-buffer" "3.55.0" "@aws-sdk/types" "3.127.0" "@aws-sdk/util-hex-encoding" "3.109.0" "@aws-sdk/util-middleware" "3.127.0" "@aws-sdk/util-uri-escape" "3.55.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/smithy-client@3.137.0": - version "3.137.0" - resolved "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.137.0.tgz" - integrity sha512-YAuWiSzHJGV9jQCjmcBWxbWRoq/3INEpdtfAdpR+X+sEZaRJESDGPt4or7WbQ9Tmbd/uZ0uQLYIed/NDSyJLLQ== + "integrity" "sha512-YAuWiSzHJGV9jQCjmcBWxbWRoq/3INEpdtfAdpR+X+sEZaRJESDGPt4or7WbQ9Tmbd/uZ0uQLYIed/NDSyJLLQ==" + "resolved" "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.137.0.tgz" + "version" "3.137.0" dependencies: "@aws-sdk/middleware-stack" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" -"@aws-sdk/types@3.127.0", "@aws-sdk/types@^3.1.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.127.0.tgz" - integrity sha512-e0wtx2IkOl7rwfKfLH5pPTzQ+d45V7b1WrjeL0WDI8kOu6w+sXmhNxI6uM2kf0k4NiTLN84lW290AEWupey9Og== +"@aws-sdk/types@^3.1.0", "@aws-sdk/types@3.127.0": + "integrity" "sha512-e0wtx2IkOl7rwfKfLH5pPTzQ+d45V7b1WrjeL0WDI8kOu6w+sXmhNxI6uM2kf0k4NiTLN84lW290AEWupey9Og==" + "resolved" "https://registry.npmjs.org/@aws-sdk/types/-/types-3.127.0.tgz" + "version" "3.127.0" "@aws-sdk/url-parser@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.127.0.tgz" - integrity sha512-njZ7zn41JHRpNfr3BCesVXCLZE0zcWSfEdtRV0ICw0cU1FgYcKELSuY9+gLUB4ci6uc7gq7mPE8+w30FcM4QeA== + "integrity" "sha512-njZ7zn41JHRpNfr3BCesVXCLZE0zcWSfEdtRV0ICw0cU1FgYcKELSuY9+gLUB4ci6uc7gq7mPE8+w30FcM4QeA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/querystring-parser" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-arn-parser@3.55.0": - version "3.55.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.55.0.tgz" - integrity sha512-76KJxp4MRWufHYWys7DFl64znr5yeJ3AIQNAPCKKw1sP0hzO7p6Kx0PaJnw9x+CPSzOrT4NbuApL6/srYhKDGg== + "integrity" "sha512-76KJxp4MRWufHYWys7DFl64znr5yeJ3AIQNAPCKKw1sP0hzO7p6Kx0PaJnw9x+CPSzOrT4NbuApL6/srYhKDGg==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.55.0.tgz" + "version" "3.55.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-base64-browser@3.109.0": - version "3.109.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.109.0.tgz" - integrity sha512-lAZ6fyDGiRLaIsKT9qh7P9FGuNyZ4gAbr1YOSQk/5mHtaTuUvxlPptZuInNM/0MPQm6lpcot00D8IWTucn4PbA== + "integrity" "sha512-lAZ6fyDGiRLaIsKT9qh7P9FGuNyZ4gAbr1YOSQk/5mHtaTuUvxlPptZuInNM/0MPQm6lpcot00D8IWTucn4PbA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.109.0.tgz" + "version" "3.109.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-base64-node@3.55.0": - version "3.55.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz" - integrity sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ== + "integrity" "sha512-UQ/ZuNoAc8CFMpSiRYmevaTsuRKzLwulZTnM8LNlIt9Wx1tpNvqp80cfvVj7yySKROtEi20wq29h31dZf1eYNQ==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-base64-node/-/util-base64-node-3.55.0.tgz" + "version" "3.55.0" dependencies: "@aws-sdk/util-buffer-from" "3.55.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-body-length-browser@3.55.0": - version "3.55.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz" - integrity sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q== + "integrity" "sha512-Ei2OCzXQw5N6ZkTMZbamUzc1z+z1R1Ja5tMEagz5BxuX4vWdBObT+uGlSzL8yvTbjoPjnxWA2aXyEqaUP3JS8Q==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.55.0.tgz" + "version" "3.55.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-body-length-node@3.55.0": - version "3.55.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz" - integrity sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew== + "integrity" "sha512-lU1d4I+9wJwydduXs0SxSfd+mHKjxeyd39VwOv6i2KSwWkPbji9UQqpflKLKw+r45jL7+xU/zfeTUg5Tt/3Gew==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-body-length-node/-/util-body-length-node-3.55.0.tgz" + "version" "3.55.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-buffer-from@3.55.0": - version "3.55.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz" - integrity sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA== + "integrity" "sha512-uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-buffer-from/-/util-buffer-from-3.55.0.tgz" + "version" "3.55.0" dependencies: "@aws-sdk/is-array-buffer" "3.55.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-config-provider@3.109.0": - version "3.109.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.109.0.tgz" - integrity sha512-GrAZl/aBv0A28LkyNyq8SPJ5fmViCwz80fWLMeWx/6q5AbivuILogjlWwEZSvZ9zrlHOcFC0+AnCa5pQrjaslw== + "integrity" "sha512-GrAZl/aBv0A28LkyNyq8SPJ5fmViCwz80fWLMeWx/6q5AbivuILogjlWwEZSvZ9zrlHOcFC0+AnCa5pQrjaslw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.109.0.tgz" + "version" "3.109.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-defaults-mode-browser@3.137.0": - version "3.137.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.137.0.tgz" - integrity sha512-9f5045wqPAcGLKIAXzZKHE2n42ilGo/g4rLSS09OXx9CoFT4lVdqZPqBqh/prDUMrqXge9FK3EH2VId7L5GpEQ== + "integrity" "sha512-9f5045wqPAcGLKIAXzZKHE2n42ilGo/g4rLSS09OXx9CoFT4lVdqZPqBqh/prDUMrqXge9FK3EH2VId7L5GpEQ==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.137.0.tgz" + "version" "3.137.0" dependencies: "@aws-sdk/property-provider" "3.127.0" "@aws-sdk/types" "3.127.0" - bowser "^2.11.0" - tslib "^2.3.1" + "bowser" "^2.11.0" + "tslib" "^2.3.1" "@aws-sdk/util-defaults-mode-node@3.137.0": - version "3.137.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.137.0.tgz" - integrity sha512-CvMpemcsOkoMEz0iALamyQBt1rHx98NvF/cay019F8m+umD03I8CclDugy/13DqESWfsVxn91lZY/DOnO+si7A== + "integrity" "sha512-CvMpemcsOkoMEz0iALamyQBt1rHx98NvF/cay019F8m+umD03I8CclDugy/13DqESWfsVxn91lZY/DOnO+si7A==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.137.0.tgz" + "version" "3.137.0" dependencies: "@aws-sdk/config-resolver" "3.130.0" "@aws-sdk/credential-provider-imds" "3.127.0" "@aws-sdk/node-config-provider" "3.127.0" "@aws-sdk/property-provider" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-hex-encoding@3.109.0": - version "3.109.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.109.0.tgz" - integrity sha512-s8CgTNrn3cLkrdiohfxLuOYPCanzvHn/aH5RW6DaMoeQiG5Hl9QUiP/WtdQ9QQx3xvpQFpmvxIaSBwSgFNLQxA== + "integrity" "sha512-s8CgTNrn3cLkrdiohfxLuOYPCanzvHn/aH5RW6DaMoeQiG5Hl9QUiP/WtdQ9QQx3xvpQFpmvxIaSBwSgFNLQxA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.109.0.tgz" + "version" "3.109.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-locate-window@^3.0.0": - version "3.55.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz" - integrity sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg== + "integrity" "sha512-0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.55.0.tgz" + "version" "3.55.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-middleware@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.127.0.tgz" - integrity sha512-EwAPPed9TNqh+Wov2VStLn2NuJ/Wyt7IkZCbCsBuSNp3BFZ1V4gfwTjqtKCtB2LQgQ48MTgWgNCvrH0zjCSPGg== + "integrity" "sha512-EwAPPed9TNqh+Wov2VStLn2NuJ/Wyt7IkZCbCsBuSNp3BFZ1V4gfwTjqtKCtB2LQgQ48MTgWgNCvrH0zjCSPGg==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.127.0.tgz" + "version" "3.127.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-stream-browser@3.131.0": - version "3.131.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.131.0.tgz" - integrity sha512-1YFbBPDu+elIgp8z1woUfT7zM+2PAvgJiw6ljDBuAlJzsP5xMhwk0X9e+8aQ+Qe4XftA0e7y/PH0gqvjNgCx2A== + "integrity" "sha512-1YFbBPDu+elIgp8z1woUfT7zM+2PAvgJiw6ljDBuAlJzsP5xMhwk0X9e+8aQ+Qe4XftA0e7y/PH0gqvjNgCx2A==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.131.0.tgz" + "version" "3.131.0" dependencies: "@aws-sdk/fetch-http-handler" "3.131.0" "@aws-sdk/types" "3.127.0" "@aws-sdk/util-base64-browser" "3.109.0" "@aws-sdk/util-hex-encoding" "3.109.0" "@aws-sdk/util-utf8-browser" "3.109.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-stream-node@3.129.0": - version "3.129.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.129.0.tgz" - integrity sha512-1iWqsWvVXyP4JLPPPs8tBZKyzs7D5e7KctXuCtIjI+cnGOCeVLL+X4L/7KDZfV7sI2D6vONtIoTnUjMl5V/kEg== + "integrity" "sha512-1iWqsWvVXyP4JLPPPs8tBZKyzs7D5e7KctXuCtIjI+cnGOCeVLL+X4L/7KDZfV7sI2D6vONtIoTnUjMl5V/kEg==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.129.0.tgz" + "version" "3.129.0" dependencies: "@aws-sdk/node-http-handler" "3.127.0" "@aws-sdk/types" "3.127.0" "@aws-sdk/util-buffer-from" "3.55.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-uri-escape@3.55.0": - version "3.55.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz" - integrity sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w== + "integrity" "sha512-mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-uri-escape/-/util-uri-escape-3.55.0.tgz" + "version" "3.55.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-user-agent-browser@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.127.0.tgz" - integrity sha512-uO2oHmJswuYKJS+GiMdYI8izhpC9M7/jFFvnAmLlTEVwpEi1VX9KePAOF+u5AaBC2kzITo/7dg141XfRHZloIQ== + "integrity" "sha512-uO2oHmJswuYKJS+GiMdYI8izhpC9M7/jFFvnAmLlTEVwpEi1VX9KePAOF+u5AaBC2kzITo/7dg141XfRHZloIQ==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/types" "3.127.0" - bowser "^2.11.0" - tslib "^2.3.1" + "bowser" "^2.11.0" + "tslib" "^2.3.1" "@aws-sdk/util-user-agent-node@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.127.0.tgz" - integrity sha512-3P/M4ZDD2qMeeoCk7TE/Mw7cG5IjB87F6BP8nI8/oHuaz7j6fsI7D49SNpyjl8JApRynZ122Ad6hwQwRj3isYw== + "integrity" "sha512-3P/M4ZDD2qMeeoCk7TE/Mw7cG5IjB87F6BP8nI8/oHuaz7j6fsI7D49SNpyjl8JApRynZ122Ad6hwQwRj3isYw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/node-config-provider" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" -"@aws-sdk/util-utf8-browser@3.109.0", "@aws-sdk/util-utf8-browser@^3.0.0": - version "3.109.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.109.0.tgz" - integrity sha512-FmcGSz0v7Bqpl1SE8G1Gc0CtDpug+rvqNCG/szn86JApD/f5x8oByjbEiAyTU2ZH2VevUntx6EW68ulHyH+x+w== +"@aws-sdk/util-utf8-browser@^3.0.0", "@aws-sdk/util-utf8-browser@3.109.0": + "integrity" "sha512-FmcGSz0v7Bqpl1SE8G1Gc0CtDpug+rvqNCG/szn86JApD/f5x8oByjbEiAyTU2ZH2VevUntx6EW68ulHyH+x+w==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.109.0.tgz" + "version" "3.109.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-utf8-node@3.109.0": - version "3.109.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.109.0.tgz" - integrity sha512-Ti/ZBdvz2eSTElsucjzNmzpyg2MwfD1rXmxD0hZuIF8bPON/0+sZYnWd5CbDw9kgmhy28dmKue086tbZ1G0iLQ== + "integrity" "sha512-Ti/ZBdvz2eSTElsucjzNmzpyg2MwfD1rXmxD0hZuIF8bPON/0+sZYnWd5CbDw9kgmhy28dmKue086tbZ1G0iLQ==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.109.0.tgz" + "version" "3.109.0" dependencies: "@aws-sdk/util-buffer-from" "3.55.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/util-waiter@3.127.0": - version "3.127.0" - resolved "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.127.0.tgz" - integrity sha512-E5qrRpBJS8dmClqSDW1pWVMKzCG/mxabG6jVUtlW/WLHnl/znxGaOQc6tnnwKik0nEq/4DpT9fEfPUz9JiLrkw== + "integrity" "sha512-E5qrRpBJS8dmClqSDW1pWVMKzCG/mxabG6jVUtlW/WLHnl/znxGaOQc6tnnwKik0nEq/4DpT9fEfPUz9JiLrkw==" + "resolved" "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.127.0.tgz" + "version" "3.127.0" dependencies: "@aws-sdk/abort-controller" "3.127.0" "@aws-sdk/types" "3.127.0" - tslib "^2.3.1" + "tslib" "^2.3.1" "@aws-sdk/xml-builder@3.109.0": - version "3.109.0" - resolved "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.109.0.tgz" - integrity sha512-+aAXynnrqya1Eukz4Gxch4xIXCZolIMWGD4Ll/Q5yXT5uAjGh2HQWd9J0LWE+gYChpWetZbAVYZ3cEJ6F+SpZA== + "integrity" "sha512-+aAXynnrqya1Eukz4Gxch4xIXCZolIMWGD4Ll/Q5yXT5uAjGh2HQWd9J0LWE+gYChpWetZbAVYZ3cEJ6F+SpZA==" + "resolved" "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.109.0.tgz" + "version" "3.109.0" dependencies: - tslib "^2.3.1" + "tslib" "^2.3.1" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" - integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + "integrity" "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==" + "resolved" "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/highlight" "^7.18.6" "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.18.8": - version "7.18.8" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz" - integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== + "integrity" "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==" + "resolved" "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz" + "version" "7.18.8" -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz" - integrity sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g== +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.12.3", "@babel/core@^7.13.0", "@babel/core@^7.18.9", "@babel/core@^7.4.0-0", "@babel/core@^7.8.0": + "integrity" "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==" + "resolved" "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz" + "version" "7.18.9" dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" @@ -911,50 +911,50 @@ "@babel/template" "^7.18.6" "@babel/traverse" "^7.18.9" "@babel/types" "^7.18.9" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" + "convert-source-map" "^1.7.0" + "debug" "^4.1.0" + "gensync" "^1.0.0-beta.2" + "json5" "^2.2.1" + "semver" "^6.3.0" "@babel/generator@^7.18.9", "@babel/generator@^7.7.2": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz" - integrity sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug== + "integrity" "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==" + "resolved" "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/types" "^7.18.9" "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" + "jsesc" "^2.5.1" "@babel/helper-annotate-as-pure@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" - integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA== + "integrity" "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==" + "resolved" "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/types" "^7.18.6" "@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz" - integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw== + "integrity" "sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==" + "resolved" "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.6" "@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz" - integrity sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg== + "integrity" "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==" + "resolved" "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/compat-data" "^7.18.8" "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.20.2" - semver "^6.3.0" + "browserslist" "^4.20.2" + "semver" "^6.3.0" "@babel/helper-create-class-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz" - integrity sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw== + "integrity" "sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.6" @@ -965,72 +965,72 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-create-regexp-features-plugin@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz" - integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A== + "integrity" "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==" + "resolved" "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" - regexpu-core "^5.1.0" + "regexpu-core" "^5.1.0" "@babel/helper-define-polyfill-provider@^0.3.1": - version "0.3.1" - resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz" - integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA== + "integrity" "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==" + "resolved" "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz" + "version" "0.3.1" dependencies: "@babel/helper-compilation-targets" "^7.13.0" "@babel/helper-module-imports" "^7.12.13" "@babel/helper-plugin-utils" "^7.13.0" "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" + "debug" "^4.1.1" + "lodash.debounce" "^4.0.8" + "resolve" "^1.14.2" + "semver" "^6.1.2" "@babel/helper-environment-visitor@^7.18.6", "@babel/helper-environment-visitor@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" - integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== + "integrity" "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" + "resolved" "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz" + "version" "7.18.9" "@babel/helper-explode-assignable-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" - integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg== + "integrity" "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==" + "resolved" "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/types" "^7.18.6" "@babel/helper-function-name@^7.18.6", "@babel/helper-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz" - integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A== + "integrity" "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==" + "resolved" "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/template" "^7.18.6" "@babel/types" "^7.18.9" "@babel/helper-hoist-variables@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" - integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q== + "integrity" "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==" + "resolved" "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/types" "^7.18.6" "@babel/helper-member-expression-to-functions@^7.18.6", "@babel/helper-member-expression-to-functions@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz" - integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg== + "integrity" "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==" + "resolved" "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/types" "^7.18.9" "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== + "integrity" "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/types" "^7.18.6" "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz" - integrity sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g== + "integrity" "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==" + "resolved" "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" @@ -1042,21 +1042,21 @@ "@babel/types" "^7.18.9" "@babel/helper-optimise-call-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" - integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA== + "integrity" "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==" + "resolved" "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/types" "^7.18.6" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz" - integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w== + "integrity" "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==" + "resolved" "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz" + "version" "7.18.9" "@babel/helper-remap-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz" - integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ== + "integrity" "sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.6" @@ -1064,9 +1064,9 @@ "@babel/types" "^7.18.6" "@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz" - integrity sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ== + "integrity" "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==" + "resolved" "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-member-expression-to-functions" "^7.18.9" @@ -1075,40 +1075,40 @@ "@babel/types" "^7.18.9" "@babel/helper-simple-access@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz" - integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g== + "integrity" "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==" + "resolved" "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/types" "^7.18.6" "@babel/helper-skip-transparent-expression-wrappers@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz" - integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw== + "integrity" "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==" + "resolved" "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/types" "^7.18.9" "@babel/helper-split-export-declaration@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" - integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA== + "integrity" "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==" + "resolved" "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/types" "^7.18.6" "@babel/helper-validator-identifier@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz" - integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + "integrity" "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz" + "version" "7.18.6" "@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + "integrity" "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" + "resolved" "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz" + "version" "7.18.6" "@babel/helper-wrap-function@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz" - integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw== + "integrity" "sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==" + "resolved" "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-function-name" "^7.18.6" "@babel/template" "^7.18.6" @@ -1116,48 +1116,48 @@ "@babel/types" "^7.18.6" "@babel/helpers@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz" - integrity sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ== + "integrity" "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==" + "resolved" "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/template" "^7.18.6" "@babel/traverse" "^7.18.9" "@babel/types" "^7.18.9" "@babel/highlight@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" - integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + "integrity" "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==" + "resolved" "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-validator-identifier" "^7.18.6" - chalk "^2.0.0" - js-tokens "^4.0.0" + "chalk" "^2.0.0" + "js-tokens" "^4.0.0" "@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.6", "@babel/parser@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz" - integrity sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg== + "integrity" "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==" + "resolved" "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz" + "version" "7.18.9" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz" - integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ== + "integrity" "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz" - integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg== + "integrity" "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-proposal-optional-chaining" "^7.18.9" "@babel/plugin-proposal-async-generator-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz" - integrity sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w== + "integrity" "sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-environment-visitor" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" @@ -1165,74 +1165,74 @@ "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-proposal-class-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" - integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + "integrity" "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-class-static-block@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz" - integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw== + "integrity" "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-proposal-dynamic-import@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" - integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw== + "integrity" "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-proposal-export-namespace-from@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz" - integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== + "integrity" "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-proposal-json-strings@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz" - integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ== + "integrity" "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-proposal-logical-assignment-operators@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz" - integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q== + "integrity" "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" - integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== + "integrity" "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-proposal-numeric-separator@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" - integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== + "integrity" "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-proposal-object-rest-spread@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz" - integrity sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q== + "integrity" "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/compat-data" "^7.18.8" "@babel/helper-compilation-targets" "^7.18.9" @@ -1241,34 +1241,34 @@ "@babel/plugin-transform-parameters" "^7.18.8" "@babel/plugin-proposal-optional-catch-binding@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" - integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw== + "integrity" "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-proposal-optional-chaining@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz" - integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w== + "integrity" "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-proposal-private-methods@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" - integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA== + "integrity" "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-proposal-private-property-in-object@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz" - integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw== + "integrity" "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-create-class-features-plugin" "^7.18.6" @@ -1276,173 +1276,173 @@ "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz" - integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w== + "integrity" "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==" + "resolved" "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + "integrity" "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + "version" "7.8.4" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-bigint@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" - integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== + "integrity" "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": - version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== + "integrity" "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + "version" "7.12.13" dependencies: "@babel/helper-plugin-utils" "^7.12.13" "@babel/plugin-syntax-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" - integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + "integrity" "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + "integrity" "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + "integrity" "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-import-assertions@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz" - integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ== + "integrity" "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-import-meta@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" - integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + "integrity" "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + "integrity" "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + "integrity" "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + "integrity" "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== + "integrity" "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + "version" "7.10.4" dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + "integrity" "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + "integrity" "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + "integrity" "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + "version" "7.8.3" dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" - integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + "integrity" "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" - integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== + "integrity" "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + "version" "7.14.5" dependencies: "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-typescript@^7.18.6", "@babel/plugin-syntax-typescript@^7.7.2": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz" - integrity sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA== + "integrity" "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-arrow-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz" - integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ== + "integrity" "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-async-to-generator@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz" - integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag== + "integrity" "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-module-imports" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-remap-async-to-generator" "^7.18.6" "@babel/plugin-transform-block-scoped-functions@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz" - integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ== + "integrity" "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-block-scoping@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz" - integrity sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw== + "integrity" "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-classes@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz" - integrity sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g== + "integrity" "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-environment-visitor" "^7.18.9" @@ -1451,229 +1451,229 @@ "@babel/helper-plugin-utils" "^7.18.9" "@babel/helper-replace-supers" "^7.18.9" "@babel/helper-split-export-declaration" "^7.18.6" - globals "^11.1.0" + "globals" "^11.1.0" "@babel/plugin-transform-computed-properties@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz" - integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw== + "integrity" "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-destructuring@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz" - integrity sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA== + "integrity" "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz" - integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg== + "integrity" "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-duplicate-keys@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz" - integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw== + "integrity" "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-exponentiation-operator@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz" - integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw== + "integrity" "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-for-of@^7.18.8": - version "7.18.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz" - integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ== + "integrity" "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz" + "version" "7.18.8" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-function-name@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz" - integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ== + "integrity" "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-compilation-targets" "^7.18.9" "@babel/helper-function-name" "^7.18.9" "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz" - integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg== + "integrity" "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-member-expression-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz" - integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA== + "integrity" "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-modules-amd@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz" - integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg== + "integrity" "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-module-transforms" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "babel-plugin-dynamic-import-node" "^2.3.3" "@babel/plugin-transform-modules-commonjs@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz" - integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q== + "integrity" "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-module-transforms" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-simple-access" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "babel-plugin-dynamic-import-node" "^2.3.3" "@babel/plugin-transform-modules-systemjs@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz" - integrity sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A== + "integrity" "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-module-transforms" "^7.18.9" "@babel/helper-plugin-utils" "^7.18.9" "@babel/helper-validator-identifier" "^7.18.6" - babel-plugin-dynamic-import-node "^2.3.3" + "babel-plugin-dynamic-import-node" "^2.3.3" "@babel/plugin-transform-modules-umd@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz" - integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ== + "integrity" "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-module-transforms" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-named-capturing-groups-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz" - integrity sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg== + "integrity" "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-new-target@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz" - integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw== + "integrity" "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-object-super@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz" - integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA== + "integrity" "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-replace-supers" "^7.18.6" "@babel/plugin-transform-parameters@^7.18.8": - version "7.18.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz" - integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg== + "integrity" "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz" + "version" "7.18.8" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-property-literals@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz" - integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg== + "integrity" "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-regenerator@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz" - integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== + "integrity" "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" - regenerator-transform "^0.15.0" + "regenerator-transform" "^0.15.0" "@babel/plugin-transform-reserved-words@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz" - integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA== + "integrity" "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-shorthand-properties@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz" - integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw== + "integrity" "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-spread@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz" - integrity sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA== + "integrity" "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9" "@babel/plugin-transform-sticky-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz" - integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q== + "integrity" "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-template-literals@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz" - integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA== + "integrity" "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typeof-symbol@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz" - integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw== + "integrity" "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-plugin-utils" "^7.18.9" "@babel/plugin-transform-typescript@^7.18.6": - version "7.18.8" - resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.8.tgz" - integrity sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA== + "integrity" "sha512-p2xM8HI83UObjsZGofMV/EdYjamsDm6MoN3hXPYIT0+gxIoopE+B7rPYKAxfrz9K9PK7JafTTjqYC6qipLExYA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.8.tgz" + "version" "7.18.8" dependencies: "@babel/helper-create-class-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-typescript" "^7.18.6" "@babel/plugin-transform-unicode-escapes@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz" - integrity sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw== + "integrity" "sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-transform-unicode-regex@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz" - integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA== + "integrity" "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==" + "resolved" "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" "@babel/preset-env@^7.18.9": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.9.tgz" - integrity sha512-75pt/q95cMIHWssYtyfjVlvI+QEZQThQbKvR9xH+F/Agtw/s4Wfc2V9Bwd/P39VtixB7oWxGdH4GteTTwYJWMg== + "integrity" "sha512-75pt/q95cMIHWssYtyfjVlvI+QEZQThQbKvR9xH+F/Agtw/s4Wfc2V9Bwd/P39VtixB7oWxGdH4GteTTwYJWMg==" + "resolved" "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/compat-data" "^7.18.8" "@babel/helper-compilation-targets" "^7.18.9" @@ -1745,52 +1745,52 @@ "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" "@babel/types" "^7.18.9" - babel-plugin-polyfill-corejs2 "^0.3.1" - babel-plugin-polyfill-corejs3 "^0.5.2" - babel-plugin-polyfill-regenerator "^0.3.1" - core-js-compat "^3.22.1" - semver "^6.3.0" + "babel-plugin-polyfill-corejs2" "^0.3.1" + "babel-plugin-polyfill-corejs3" "^0.5.2" + "babel-plugin-polyfill-regenerator" "^0.3.1" + "core-js-compat" "^3.22.1" + "semver" "^6.3.0" "@babel/preset-modules@^0.1.5": - version "0.1.5" - resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" - integrity sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA== + "integrity" "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==" + "resolved" "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz" + "version" "0.1.5" dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" - esutils "^2.0.2" + "esutils" "^2.0.2" "@babel/preset-typescript@^7.15.0": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz" - integrity sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ== + "integrity" "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==" + "resolved" "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/helper-plugin-utils" "^7.18.6" "@babel/helper-validator-option" "^7.18.6" "@babel/plugin-transform-typescript" "^7.18.6" "@babel/runtime@^7.17.2", "@babel/runtime@^7.8.4": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz" - integrity sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ== + "integrity" "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==" + "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz" + "version" "7.18.6" dependencies: - regenerator-runtime "^0.13.4" + "regenerator-runtime" "^0.13.4" "@babel/template@^7.18.6", "@babel/template@^7.3.3": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz" - integrity sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw== + "integrity" "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==" + "resolved" "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz" + "version" "7.18.6" dependencies: "@babel/code-frame" "^7.18.6" "@babel/parser" "^7.18.6" "@babel/types" "^7.18.6" "@babel/traverse@^7.13.0", "@babel/traverse@^7.18.6", "@babel/traverse@^7.18.9", "@babel/traverse@^7.7.2": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz" - integrity sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg== + "integrity" "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==" + "resolved" "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/code-frame" "^7.18.6" "@babel/generator" "^7.18.9" @@ -1800,66 +1800,66 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/parser" "^7.18.9" "@babel/types" "^7.18.9" - debug "^4.1.0" - globals "^11.1.0" + "debug" "^4.1.0" + "globals" "^11.1.0" "@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": - version "7.18.9" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz" - integrity sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg== + "integrity" "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==" + "resolved" "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz" + "version" "7.18.9" dependencies: "@babel/helper-validator-identifier" "^7.18.6" - to-fast-properties "^2.0.0" + "to-fast-properties" "^2.0.0" "@bcoe/v8-coverage@^0.2.3": - version "0.2.3" - resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" - integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== + "integrity" "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + "resolved" "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + "version" "0.2.3" "@cspotcode/source-map-support@^0.8.0": - version "0.8.1" - resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" - integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + "integrity" "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==" + "resolved" "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" + "version" "0.8.1" dependencies: "@jridgewell/trace-mapping" "0.3.9" "@gar/promisify@^1.0.1": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" - integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + "integrity" "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" + "resolved" "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz" + "version" "1.1.3" "@istanbuljs/load-nyc-config@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" - integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== + "integrity" "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==" + "resolved" "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + "version" "1.1.0" dependencies: - camelcase "^5.3.1" - find-up "^4.1.0" - get-package-type "^0.1.0" - js-yaml "^3.13.1" - resolve-from "^5.0.0" + "camelcase" "^5.3.1" + "find-up" "^4.1.0" + "get-package-type" "^0.1.0" + "js-yaml" "^3.13.1" + "resolve-from" "^5.0.0" "@istanbuljs/schema@^0.1.2": - version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" - integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== + "integrity" "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==" + "resolved" "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + "version" "0.1.3" "@jest/console@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz" - integrity sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw== + "integrity" "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==" + "resolved" "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/types" "^28.1.3" "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - slash "^3.0.0" + "chalk" "^4.0.0" + "jest-message-util" "^28.1.3" + "jest-util" "^28.1.3" + "slash" "^3.0.0" "@jest/core@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz" - integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== + "integrity" "sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==" + "resolved" "https://registry.npmjs.org/@jest/core/-/core-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/console" "^28.1.3" "@jest/reporters" "^28.1.3" @@ -1867,80 +1867,80 @@ "@jest/transform" "^28.1.3" "@jest/types" "^28.1.3" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^28.1.3" - jest-config "^28.1.3" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-resolve-dependencies "^28.1.3" - jest-runner "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - jest-watcher "^28.1.3" - micromatch "^4.0.4" - pretty-format "^28.1.3" - rimraf "^3.0.0" - slash "^3.0.0" - strip-ansi "^6.0.0" + "ansi-escapes" "^4.2.1" + "chalk" "^4.0.0" + "ci-info" "^3.2.0" + "exit" "^0.1.2" + "graceful-fs" "^4.2.9" + "jest-changed-files" "^28.1.3" + "jest-config" "^28.1.3" + "jest-haste-map" "^28.1.3" + "jest-message-util" "^28.1.3" + "jest-regex-util" "^28.0.2" + "jest-resolve" "^28.1.3" + "jest-resolve-dependencies" "^28.1.3" + "jest-runner" "^28.1.3" + "jest-runtime" "^28.1.3" + "jest-snapshot" "^28.1.3" + "jest-util" "^28.1.3" + "jest-validate" "^28.1.3" + "jest-watcher" "^28.1.3" + "micromatch" "^4.0.4" + "pretty-format" "^28.1.3" + "rimraf" "^3.0.0" + "slash" "^3.0.0" + "strip-ansi" "^6.0.0" "@jest/environment@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz" - integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== + "integrity" "sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==" + "resolved" "https://registry.npmjs.org/@jest/environment/-/environment-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/fake-timers" "^28.1.3" "@jest/types" "^28.1.3" "@types/node" "*" - jest-mock "^28.1.3" + "jest-mock" "^28.1.3" "@jest/expect-utils@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz" - integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== + "integrity" "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==" + "resolved" "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-28.1.3.tgz" + "version" "28.1.3" dependencies: - jest-get-type "^28.0.2" + "jest-get-type" "^28.0.2" "@jest/expect@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz" - integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== + "integrity" "sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==" + "resolved" "https://registry.npmjs.org/@jest/expect/-/expect-28.1.3.tgz" + "version" "28.1.3" dependencies: - expect "^28.1.3" - jest-snapshot "^28.1.3" + "expect" "^28.1.3" + "jest-snapshot" "^28.1.3" "@jest/fake-timers@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz" - integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== + "integrity" "sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==" + "resolved" "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/types" "^28.1.3" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-util "^28.1.3" + "jest-message-util" "^28.1.3" + "jest-mock" "^28.1.3" + "jest-util" "^28.1.3" "@jest/globals@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz" - integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== + "integrity" "sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==" + "resolved" "https://registry.npmjs.org/@jest/globals/-/globals-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/environment" "^28.1.3" "@jest/expect" "^28.1.3" "@jest/types" "^28.1.3" "@jest/reporters@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz" - integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== + "integrity" "sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==" + "resolved" "https://registry.npmjs.org/@jest/reporters/-/reporters-28.1.3.tgz" + "version" "28.1.3" dependencies: "@bcoe/v8-coverage" "^0.2.3" "@jest/console" "^28.1.3" @@ -1949,302 +1949,302 @@ "@jest/types" "^28.1.3" "@jridgewell/trace-mapping" "^0.3.13" "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - istanbul-lib-coverage "^3.0.0" - istanbul-lib-instrument "^5.1.0" - istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" - istanbul-reports "^3.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - jest-worker "^28.1.3" - slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" - terminal-link "^2.0.0" - v8-to-istanbul "^9.0.1" + "chalk" "^4.0.0" + "collect-v8-coverage" "^1.0.0" + "exit" "^0.1.2" + "glob" "^7.1.3" + "graceful-fs" "^4.2.9" + "istanbul-lib-coverage" "^3.0.0" + "istanbul-lib-instrument" "^5.1.0" + "istanbul-lib-report" "^3.0.0" + "istanbul-lib-source-maps" "^4.0.0" + "istanbul-reports" "^3.1.3" + "jest-message-util" "^28.1.3" + "jest-util" "^28.1.3" + "jest-worker" "^28.1.3" + "slash" "^3.0.0" + "string-length" "^4.0.1" + "strip-ansi" "^6.0.0" + "terminal-link" "^2.0.0" + "v8-to-istanbul" "^9.0.1" "@jest/schemas@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz" - integrity sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg== + "integrity" "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==" + "resolved" "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz" + "version" "28.1.3" dependencies: "@sinclair/typebox" "^0.24.1" "@jest/source-map@^28.1.2": - version "28.1.2" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz" - integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== + "integrity" "sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==" + "resolved" "https://registry.npmjs.org/@jest/source-map/-/source-map-28.1.2.tgz" + "version" "28.1.2" dependencies: "@jridgewell/trace-mapping" "^0.3.13" - callsites "^3.0.0" - graceful-fs "^4.2.9" + "callsites" "^3.0.0" + "graceful-fs" "^4.2.9" "@jest/test-result@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz" - integrity sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg== + "integrity" "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==" + "resolved" "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/console" "^28.1.3" "@jest/types" "^28.1.3" "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" + "collect-v8-coverage" "^1.0.0" "@jest/test-sequencer@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz" - integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== + "integrity" "sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==" + "resolved" "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/test-result" "^28.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - slash "^3.0.0" + "graceful-fs" "^4.2.9" + "jest-haste-map" "^28.1.3" + "slash" "^3.0.0" "@jest/transform@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz" - integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== + "integrity" "sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==" + "resolved" "https://registry.npmjs.org/@jest/transform/-/transform-28.1.3.tgz" + "version" "28.1.3" dependencies: "@babel/core" "^7.11.6" "@jest/types" "^28.1.3" "@jridgewell/trace-mapping" "^0.3.13" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" - convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" - micromatch "^4.0.4" - pirates "^4.0.4" - slash "^3.0.0" - write-file-atomic "^4.0.1" + "babel-plugin-istanbul" "^6.1.1" + "chalk" "^4.0.0" + "convert-source-map" "^1.4.0" + "fast-json-stable-stringify" "^2.0.0" + "graceful-fs" "^4.2.9" + "jest-haste-map" "^28.1.3" + "jest-regex-util" "^28.0.2" + "jest-util" "^28.1.3" + "micromatch" "^4.0.4" + "pirates" "^4.0.4" + "slash" "^3.0.0" + "write-file-atomic" "^4.0.1" "@jest/types@^28.1.3": - version "28.1.3" - resolved "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz" - integrity sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ== + "integrity" "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==" + "resolved" "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/schemas" "^28.1.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" "@types/yargs" "^17.0.8" - chalk "^4.0.0" + "chalk" "^4.0.0" "@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== + "integrity" "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==" + "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" + "version" "0.1.1" dependencies: "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + "integrity" "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==" + "resolved" "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz" + "version" "0.3.2" dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" "@jridgewell/resolve-uri@^3.0.3": - version "3.1.0" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" - integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + "integrity" "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + "resolved" "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz" + "version" "3.1.0" "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + "integrity" "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + "resolved" "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" + "version" "1.1.2" "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.14" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" - integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + "integrity" "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + "resolved" "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" + "version" "1.4.14" -"@jridgewell/trace-mapping@0.3.9": - version "0.3.9" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" - integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.9": + "integrity" "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==" + "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz" + "version" "0.3.14" dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.14" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz" - integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ== +"@jridgewell/trace-mapping@0.3.9": + "integrity" "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==" + "resolved" "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" + "version" "0.3.9" dependencies: "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" "@mapbox/node-pre-gyp@^1.0.0": - version "1.0.9" - resolved "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz" - integrity sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw== - dependencies: - detect-libc "^2.0.0" - https-proxy-agent "^5.0.0" - make-dir "^3.1.0" - node-fetch "^2.6.7" - nopt "^5.0.0" - npmlog "^5.0.1" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.11" + "integrity" "sha512-aDF3S3rK9Q2gey/WAttUlISduDItz5BU3306M9Eyv6/oS40aMprnopshtlKTykxRNIBEZuRMaZAnbrQ4QtKGyw==" + "resolved" "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.9.tgz" + "version" "1.0.9" + dependencies: + "detect-libc" "^2.0.0" + "https-proxy-agent" "^5.0.0" + "make-dir" "^3.1.0" + "node-fetch" "^2.6.7" + "nopt" "^5.0.0" + "npmlog" "^5.0.1" + "rimraf" "^3.0.2" + "semver" "^7.3.5" + "tar" "^6.1.11" "@npmcli/fs@^1.0.0": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" - integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== + "integrity" "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==" + "resolved" "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz" + "version" "1.1.1" dependencies: "@gar/promisify" "^1.0.1" - semver "^7.3.5" + "semver" "^7.3.5" "@npmcli/move-file@^1.0.1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" - integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + "integrity" "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==" + "resolved" "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz" + "version" "1.1.2" dependencies: - mkdirp "^1.0.4" - rimraf "^3.0.2" + "mkdirp" "^1.0.4" + "rimraf" "^3.0.2" "@ovos-media/ts-transform-paths@^1.7.18-1": - version "1.7.18-1" - resolved "https://registry.npmjs.org/@ovos-media/ts-transform-paths/-/ts-transform-paths-1.7.18-1.tgz" - integrity sha512-5uYtraYSWg1klaMYus3ouCOUUNzcI40pS0NCaw0PhoaPTimVfT3MV061ZLYR/4F14THqyofMjmCNcHgFrBX3AA== + "integrity" "sha512-5uYtraYSWg1klaMYus3ouCOUUNzcI40pS0NCaw0PhoaPTimVfT3MV061ZLYR/4F14THqyofMjmCNcHgFrBX3AA==" + "resolved" "https://registry.npmjs.org/@ovos-media/ts-transform-paths/-/ts-transform-paths-1.7.18-1.tgz" + "version" "1.7.18-1" dependencies: "@zerollup/ts-helpers" "^1.7.18" "@sentry/core@7.10.0": - version "7.10.0" - resolved "https://registry.npmjs.org/@sentry/core/-/core-7.10.0.tgz" - integrity sha512-uq6oUXPH+6cjsEL5/j/xSW91mVrJo7knTqax7E5MDiA5j98BPK4budGiBiPO7GEB856QhA7N+pOO0lccii5QYQ== + "integrity" "sha512-uq6oUXPH+6cjsEL5/j/xSW91mVrJo7knTqax7E5MDiA5j98BPK4budGiBiPO7GEB856QhA7N+pOO0lccii5QYQ==" + "resolved" "https://registry.npmjs.org/@sentry/core/-/core-7.10.0.tgz" + "version" "7.10.0" dependencies: "@sentry/hub" "7.10.0" "@sentry/types" "7.10.0" "@sentry/utils" "7.10.0" - tslib "^1.9.3" + "tslib" "^1.9.3" "@sentry/hub@7.10.0": - version "7.10.0" - resolved "https://registry.npmjs.org/@sentry/hub/-/hub-7.10.0.tgz" - integrity sha512-9Appy7J87EU7Xu2BDY1cLK79nsuE72geeYmG71lgdttTD3XOMcQBOxET4/2sAI+d/ansurXnURx+DAQ9FOKT+w== + "integrity" "sha512-9Appy7J87EU7Xu2BDY1cLK79nsuE72geeYmG71lgdttTD3XOMcQBOxET4/2sAI+d/ansurXnURx+DAQ9FOKT+w==" + "resolved" "https://registry.npmjs.org/@sentry/hub/-/hub-7.10.0.tgz" + "version" "7.10.0" dependencies: "@sentry/types" "7.10.0" "@sentry/utils" "7.10.0" - tslib "^1.9.3" + "tslib" "^1.9.3" "@sentry/node@^7.7.0": - version "7.10.0" - resolved "https://registry.npmjs.org/@sentry/node/-/node-7.10.0.tgz" - integrity sha512-L/DSEJ7Biy8ovvlCyfu5MpCYG108FIGVbJ1h0NBGr5+uLxTNg2WJWojJoiQNiRcWl4s0dcIXrRdi0HR2Sx+DUw== + "integrity" "sha512-L/DSEJ7Biy8ovvlCyfu5MpCYG108FIGVbJ1h0NBGr5+uLxTNg2WJWojJoiQNiRcWl4s0dcIXrRdi0HR2Sx+DUw==" + "resolved" "https://registry.npmjs.org/@sentry/node/-/node-7.10.0.tgz" + "version" "7.10.0" dependencies: "@sentry/core" "7.10.0" "@sentry/hub" "7.10.0" "@sentry/types" "7.10.0" "@sentry/utils" "7.10.0" - cookie "^0.4.1" - https-proxy-agent "^5.0.0" - lru_map "^0.3.3" - tslib "^1.9.3" + "cookie" "^0.4.1" + "https-proxy-agent" "^5.0.0" + "lru_map" "^0.3.3" + "tslib" "^1.9.3" "@sentry/tracing@^7.7.0": - version "7.10.0" - resolved "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.10.0.tgz" - integrity sha512-ojuBYS1bL/IGWKt/ItY4HmC8NElJrYtTUvm73VbhylhIO4zcn5ICHmgMFj1lqL9gQ1nCnAlifKiWIjL9qUatTA== + "integrity" "sha512-ojuBYS1bL/IGWKt/ItY4HmC8NElJrYtTUvm73VbhylhIO4zcn5ICHmgMFj1lqL9gQ1nCnAlifKiWIjL9qUatTA==" + "resolved" "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.10.0.tgz" + "version" "7.10.0" dependencies: "@sentry/hub" "7.10.0" "@sentry/types" "7.10.0" "@sentry/utils" "7.10.0" - tslib "^1.9.3" + "tslib" "^1.9.3" "@sentry/types@7.10.0": - version "7.10.0" - resolved "https://registry.npmjs.org/@sentry/types/-/types-7.10.0.tgz" - integrity sha512-1UBwdbS0xXzANzp63g4eNQly/qKIXp0swP5OTKWoADvKBtL4anroLUA/l8ADMtuwFZYtVANc8WRGxM2+YmaXtg== + "integrity" "sha512-1UBwdbS0xXzANzp63g4eNQly/qKIXp0swP5OTKWoADvKBtL4anroLUA/l8ADMtuwFZYtVANc8WRGxM2+YmaXtg==" + "resolved" "https://registry.npmjs.org/@sentry/types/-/types-7.10.0.tgz" + "version" "7.10.0" "@sentry/utils@7.10.0": - version "7.10.0" - resolved "https://registry.npmjs.org/@sentry/utils/-/utils-7.10.0.tgz" - integrity sha512-/aD2DnfyOhV0Wdbb6VF78vu4fQIZJyuReDpBI7MV/EqcEB6FxUKq2YjinfKZF/exHEPig6Ag/Yt+CRFgvtVFuw== + "integrity" "sha512-/aD2DnfyOhV0Wdbb6VF78vu4fQIZJyuReDpBI7MV/EqcEB6FxUKq2YjinfKZF/exHEPig6Ag/Yt+CRFgvtVFuw==" + "resolved" "https://registry.npmjs.org/@sentry/utils/-/utils-7.10.0.tgz" + "version" "7.10.0" dependencies: "@sentry/types" "7.10.0" - tslib "^1.9.3" + "tslib" "^1.9.3" "@sinclair/typebox@^0.24.1": - version "0.24.20" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.20.tgz" - integrity sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ== + "integrity" "sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ==" + "resolved" "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.20.tgz" + "version" "0.24.20" "@sinonjs/commons@^1.7.0": - version "1.8.3" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" - integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== + "integrity" "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==" + "resolved" "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz" + "version" "1.8.3" dependencies: - type-detect "4.0.8" + "type-detect" "4.0.8" "@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== + "integrity" "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==" + "resolved" "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz" + "version" "9.1.2" dependencies: "@sinonjs/commons" "^1.7.0" "@sqltools/formatter@^1.2.2": - version "1.2.3" - resolved "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz" - integrity sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg== + "integrity" "sha512-O3uyB/JbkAEMZaP3YqyHH7TMnex7tWyCbCI4EfJdOCoN6HIhqdJBWTM6aCCiWQ/5f5wxjgU735QAIpJbjDvmzg==" + "resolved" "https://registry.npmjs.org/@sqltools/formatter/-/formatter-1.2.3.tgz" + "version" "1.2.3" "@tokenizer/token@^0.3.0": - version "0.3.0" - resolved "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz" - integrity sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A== + "integrity" "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==" + "resolved" "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz" + "version" "0.3.0" "@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + "integrity" "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + "resolved" "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" + "version" "1.1.2" "@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + "integrity" "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + "resolved" "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" + "version" "1.0.9" "@tsconfig/node12@^1.0.7": - version "1.0.11" - resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" - integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + "integrity" "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + "resolved" "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" + "version" "1.0.11" "@tsconfig/node14@^1.0.0": - version "1.0.3" - resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" - integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + "integrity" "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + "resolved" "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" + "version" "1.0.3" "@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + "integrity" "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + "resolved" "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz" + "version" "1.0.3" "@types/amqplib@^0.8.1": - version "0.8.2" - resolved "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz" - integrity sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA== + "integrity" "sha512-p+TFLzo52f8UanB+Nq6gyUi65yecAcRY3nYowU6MPGFtaJvEDxcnFWrxssSTkF+ts1W3zyQDvgVICLQem5WxRA==" + "resolved" "https://registry.npmjs.org/@types/amqplib/-/amqplib-0.8.2.tgz" + "version" "0.8.2" dependencies: "@types/bluebird" "*" "@types/node" "*" "@types/babel__core@^7.1.14": - version "7.1.19" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" - integrity sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw== + "integrity" "sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==" + "resolved" "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.19.tgz" + "version" "7.1.19" dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -2253,74 +2253,74 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.4" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" - integrity sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg== + "integrity" "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==" + "resolved" "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz" + "version" "7.6.4" dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.4.1" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" - integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== + "integrity" "sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==" + "resolved" "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.1.tgz" + "version" "7.4.1" dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.17.1" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz" - integrity sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA== + "integrity" "sha512-kVzjari1s2YVi77D3w1yuvohV2idweYXMCDzqBiVNN63TcDWrIlTVOYpqVrvbbyOE/IyzBoTKF0fdnLPEORFxA==" + "resolved" "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.17.1.tgz" + "version" "7.17.1" dependencies: "@babel/types" "^7.3.0" "@types/bcrypt@^5.0.0": - version "5.0.0" - resolved "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-5.0.0.tgz" - integrity sha512-agtcFKaruL8TmcvqbndlqHPSJgsolhf/qPWchFlgnW1gECTN/nKbFcoFnvKAQRFfKbh+BO6A3SWdJu9t+xF3Lw== + "integrity" "sha512-agtcFKaruL8TmcvqbndlqHPSJgsolhf/qPWchFlgnW1gECTN/nKbFcoFnvKAQRFfKbh+BO6A3SWdJu9t+xF3Lw==" + "resolved" "https://registry.npmjs.org/@types/bcrypt/-/bcrypt-5.0.0.tgz" + "version" "5.0.0" dependencies: "@types/node" "*" "@types/bluebird@*": - version "3.5.36" - resolved "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz" - integrity sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q== + "integrity" "sha512-HBNx4lhkxN7bx6P0++W8E289foSu8kO8GCk2unhuVggO+cE7rh9DhZUyPhUxNRG9m+5B5BTKxZQ5ZP92x/mx9Q==" + "resolved" "https://registry.npmjs.org/@types/bluebird/-/bluebird-3.5.36.tgz" + "version" "3.5.36" "@types/body-parser@*", "@types/body-parser@^1.19.0": - version "1.19.2" - resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" - integrity sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g== + "integrity" "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==" + "resolved" "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz" + "version" "1.19.2" dependencies: "@types/connect" "*" "@types/node" "*" "@types/connect@*": - version "3.4.35" - resolved "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" - integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + "integrity" "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==" + "resolved" "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz" + "version" "3.4.35" dependencies: "@types/node" "*" "@types/dotenv@^8.2.0": - version "8.2.0" - resolved "https://registry.npmjs.org/@types/dotenv/-/dotenv-8.2.0.tgz" - integrity sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw== + "integrity" "sha512-ylSC9GhfRH7m1EUXBXofhgx4lUWmFeQDINW5oLuS+gxWdfUeW4zJdeVTYVkexEW+e2VUvlZR2kGnGGipAWR7kw==" + "resolved" "https://registry.npmjs.org/@types/dotenv/-/dotenv-8.2.0.tgz" + "version" "8.2.0" dependencies: - dotenv "*" + "dotenv" "*" "@types/express-serve-static-core@^4.17.18": - version "4.17.29" - resolved "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz" - integrity sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q== + "integrity" "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==" + "resolved" "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz" + "version" "4.17.29" dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" -"@types/express@*", "@types/express@^4.17.12": - version "4.17.13" - resolved "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz" - integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== +"@types/express@*", "@types/express@^4.17.12", "@types/express@^4.17.9": + "integrity" "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==" + "resolved" "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz" + "version" "4.17.13" dependencies: "@types/body-parser" "*" "@types/express-serve-static-core" "^4.17.18" @@ -2328,432 +2328,439 @@ "@types/serve-static" "*" "@types/graceful-fs@^4.1.3": - version "4.1.5" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" - integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== + "integrity" "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==" + "resolved" "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz" + "version" "4.1.5" dependencies: "@types/node" "*" "@types/i18next-node-fs-backend@^2.1.0": - version "2.1.1" - resolved "https://registry.npmjs.org/@types/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.1.tgz" - integrity sha512-ESvH90OICQkKU3yuuRzF6YfHt5KACE55FOiUM59mMGnC+h03lHGdEYo3z3THbwS5FdMskLyIs2O7f6Oaz8P9sw== + "integrity" "sha512-ESvH90OICQkKU3yuuRzF6YfHt5KACE55FOiUM59mMGnC+h03lHGdEYo3z3THbwS5FdMskLyIs2O7f6Oaz8P9sw==" + "resolved" "https://registry.npmjs.org/@types/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.1.tgz" + "version" "2.1.1" dependencies: - i18next ">=17.0.11" + "i18next" ">=17.0.11" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + "integrity" "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz" + "version" "2.0.4" "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + "integrity" "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==" + "resolved" "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + "version" "3.0.0" dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.0": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + "integrity" "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==" + "resolved" "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz" + "version" "3.0.1" dependencies: "@types/istanbul-lib-report" "*" "@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== + "integrity" "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" + "resolved" "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz" + "version" "7.0.11" "@types/jsonwebtoken@^8.5.8": - version "8.5.8" - resolved "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz" - integrity sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A== + "integrity" "sha512-zm6xBQpFDIDM6o9r6HSgDeIcLy82TKWctCXEPbJJcXb5AKmi5BNNdLXneixK4lplX3PqIVcwLBCGE/kAGnlD4A==" + "resolved" "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.8.tgz" + "version" "8.5.8" dependencies: "@types/node" "*" "@types/mime@^1": - version "1.3.2" - resolved "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" - integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== + "integrity" "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + "resolved" "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz" + "version" "1.3.2" "@types/morgan@^1.9.3": - version "1.9.3" - resolved "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.3.tgz" - integrity sha512-BiLcfVqGBZCyNCnCH3F4o2GmDLrpy0HeBVnNlyZG4fo88ZiE9SoiBe3C+2ezuwbjlEyT+PDZ17//TAlRxAn75Q== + "integrity" "sha512-BiLcfVqGBZCyNCnCH3F4o2GmDLrpy0HeBVnNlyZG4fo88ZiE9SoiBe3C+2ezuwbjlEyT+PDZ17//TAlRxAn75Q==" + "resolved" "https://registry.npmjs.org/@types/morgan/-/morgan-1.9.3.tgz" + "version" "1.9.3" dependencies: "@types/node" "*" -"@types/multer@^1.4.7": - version "1.4.7" - resolved "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz" - integrity sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA== +"@types/multer@^1.4.5", "@types/multer@^1.4.7": + "integrity" "sha512-/SNsDidUFCvqqcWDwxv2feww/yqhNeTRL5CVoL3jU4Goc4kKEL10T7Eye65ZqPNi4HRx8sAEX59pV1aEH7drNA==" + "resolved" "https://registry.npmjs.org/@types/multer/-/multer-1.4.7.tgz" + "version" "1.4.7" dependencies: "@types/express" "*" "@types/node-fetch@^2.6.2": - version "2.6.2" - resolved "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz" - integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== + "integrity" "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==" + "resolved" "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz" + "version" "2.6.2" dependencies: "@types/node" "*" - form-data "^3.0.0" + "form-data" "^3.0.0" "@types/node-os-utils@^1.3.0": - version "1.3.0" - resolved "https://registry.npmjs.org/@types/node-os-utils/-/node-os-utils-1.3.0.tgz" - integrity sha512-XwVteWQx/XkfRPyaGkw8dEbrCAkoRZ73pI3XznUYIpzbCfpQB3UnDlR5TnmdhetlT889tUJGF8QWo9xrgTpsiA== + "integrity" "sha512-XwVteWQx/XkfRPyaGkw8dEbrCAkoRZ73pI3XznUYIpzbCfpQB3UnDlR5TnmdhetlT889tUJGF8QWo9xrgTpsiA==" + "resolved" "https://registry.npmjs.org/@types/node-os-utils/-/node-os-utils-1.3.0.tgz" + "version" "1.3.0" -"@types/node@*", "@types/node@^18.0.6": - version "18.6.3" - resolved "https://registry.npmjs.org/@types/node/-/node-18.6.3.tgz" - integrity sha512-6qKpDtoaYLM+5+AFChLhHermMQxc3TOEFIDzrZLPRGHPrLEwqFkkT5Kx3ju05g6X7uDPazz3jHbKPX0KzCjntg== +"@types/node@*", "@types/node@^18.0.6", "@types/node@^18.6.3", "@types/node@^18.7.3": + "integrity" "sha512-LJgzOEwWuMTBxHzgBR/fhhBOWrvBjvO+zPteUgbbuQi80rYIZHrk1mNbRUqPZqSLP2H7Rwt1EFLL/tNLD1Xx/w==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-18.7.3.tgz" + "version" "18.7.3" "@types/node@^16.9.2": - version "16.11.45" - resolved "https://registry.npmjs.org/@types/node/-/node-16.11.45.tgz" - integrity sha512-3rKg/L5x0rofKuuUt5zlXzOnKyIHXmIu5R8A0TuNDMF2062/AOIDBciFIjToLEJ/9F9DzkHNot+BpNsMI1OLdQ== + "integrity" "sha512-3rKg/L5x0rofKuuUt5zlXzOnKyIHXmIu5R8A0TuNDMF2062/AOIDBciFIjToLEJ/9F9DzkHNot+BpNsMI1OLdQ==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-16.11.45.tgz" + "version" "16.11.45" "@types/notp@^2.0.0": - version "2.0.2" - resolved "https://registry.npmjs.org/@types/notp/-/notp-2.0.2.tgz" - integrity sha512-JUcVYN9Tmw0AjoAfvjslS4hbv39fPBbZdftBK3b50g5z/DmhLsu6cd0UOEBiQuMwy2FirshF2Gk9gAvfWjshMw== + "integrity" "sha512-JUcVYN9Tmw0AjoAfvjslS4hbv39fPBbZdftBK3b50g5z/DmhLsu6cd0UOEBiQuMwy2FirshF2Gk9gAvfWjshMw==" + "resolved" "https://registry.npmjs.org/@types/notp/-/notp-2.0.2.tgz" + "version" "2.0.2" dependencies: "@types/node" "*" "@types/prettier@^2.1.5": - version "2.6.3" - resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz" - integrity sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg== + "integrity" "sha512-ymZk3LEC/fsut+/Q5qejp6R9O1rMxz3XaRHDV6kX8MrGAhOSPqVARbDi+EZvInBpw+BnCX3TD240byVkOfQsHg==" + "resolved" "https://registry.npmjs.org/@types/prettier/-/prettier-2.6.3.tgz" + "version" "2.6.3" "@types/qs@*": - version "6.9.7" - resolved "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" - integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw== + "integrity" "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + "resolved" "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz" + "version" "6.9.7" "@types/range-parser@*": - version "1.2.4" - resolved "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" - integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== + "integrity" "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + "resolved" "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz" + "version" "1.2.4" "@types/serve-static@*": - version "1.13.10" - resolved "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz" - integrity sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ== + "integrity" "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==" + "resolved" "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz" + "version" "1.13.10" dependencies: "@types/mime" "^1" "@types/node" "*" "@types/stack-utils@^2.0.0": - version "2.0.1" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" - integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== + "integrity" "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" + "resolved" "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz" + "version" "2.0.1" "@types/stream-buffers@^3.0.3": - version "3.0.4" - resolved "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.4.tgz" - integrity sha512-qU/K1tb2yUdhXkLIATzsIPwbtX6BpZk0l3dPW6xqWyhfzzM1ECaQ/8faEnu3CNraLiQ9LHyQQPBGp7N9Fbs25w== + "integrity" "sha512-qU/K1tb2yUdhXkLIATzsIPwbtX6BpZk0l3dPW6xqWyhfzzM1ECaQ/8faEnu3CNraLiQ9LHyQQPBGp7N9Fbs25w==" + "resolved" "https://registry.npmjs.org/@types/stream-buffers/-/stream-buffers-3.0.4.tgz" + "version" "3.0.4" dependencies: "@types/node" "*" "@types/strip-bom@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz" - integrity sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ== + "integrity" "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==" + "resolved" "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz" + "version" "3.0.0" "@types/strip-json-comments@0.0.30": - version "0.0.30" - resolved "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz" - integrity sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ== + "integrity" "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==" + "resolved" "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz" + "version" "0.0.30" "@types/ws@^8.5.3": - version "8.5.3" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz" - integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w== + "integrity" "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==" + "resolved" "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz" + "version" "8.5.3" dependencies: "@types/node" "*" "@types/yargs-parser@*": - version "21.0.0" - resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" - integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + "integrity" "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" + "resolved" "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz" + "version" "21.0.0" "@types/yargs@^17.0.8": - version "17.0.10" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz" - integrity sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA== + "integrity" "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==" + "resolved" "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz" + "version" "17.0.10" dependencies: "@types/yargs-parser" "*" "@yarnpkg/lockfile@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz" - integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + "integrity" "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==" + "resolved" "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz" + "version" "1.1.0" "@zerollup/ts-helpers@^1.7.18": - version "1.7.18" - resolved "https://registry.npmjs.org/@zerollup/ts-helpers/-/ts-helpers-1.7.18.tgz" - integrity sha512-S9zN+y+i5yN/evfWquzSO3lubqPXIsPQf6p9OiPMpRxDx/0totPLF39XoRw48Dav5dSvbIE8D2eAPpXXJxvKwg== - dependencies: - resolve "^1.12.0" + "integrity" "sha512-S9zN+y+i5yN/evfWquzSO3lubqPXIsPQf6p9OiPMpRxDx/0totPLF39XoRw48Dav5dSvbIE8D2eAPpXXJxvKwg==" + "resolved" "https://registry.npmjs.org/@zerollup/ts-helpers/-/ts-helpers-1.7.18.tgz" + "version" "1.7.18" + dependencies: + "resolve" "^1.12.0" -abbrev@1: - version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== +"abbrev@1": + "integrity" "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + "resolved" "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" + "version" "1.1.1" -accepts@~1.3.8: - version "1.3.8" - resolved "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" - integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== - dependencies: - mime-types "~2.1.34" - negotiator "0.6.3" - -acorn-walk@^8.1.1, acorn-walk@^8.2.0: - version "8.2.0" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== - -acorn@^8.4.1, acorn@^8.7.0: - version "8.7.1" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz" - integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== - -agent-base@6, agent-base@^6.0.0, agent-base@^6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" - integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== - dependencies: - debug "4" - -agentkeepalive@^4.1.3: - version "4.2.1" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== - dependencies: - debug "^4.1.0" - depd "^1.1.2" - humanize-ms "^1.2.1" - -aggregate-error@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" - integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== - dependencies: - clean-stack "^2.0.0" - indent-string "^4.0.0" - -ajv-formats@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" - integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== - dependencies: - ajv "^8.0.0" - -ajv@^8.0.0, ajv@^8.11.0: - version "8.11.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz" - integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -amqplib@^0.10.1: - version "0.10.1" - resolved "https://registry.npmjs.org/amqplib/-/amqplib-0.10.1.tgz" - integrity sha512-Hs33MdtFmJ2WKQT9SBtrlet3aUNzMzZA/FF6p3NGGo7Fp/BVD4X3Po7bQxAA7uE0MmXPZ8EschLMbN+CjGx4dg== - dependencies: - bitsyntax "~0.1.0" - buffer-more-ints "~1.0.0" - readable-stream "1.x >=1.1.9" - url-parse "~1.5.10" - -ansi-escapes@^4.2.1: - version "4.3.2" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" - integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== - dependencies: - type-fest "^0.21.3" - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== +"accepts@~1.3.8": + "integrity" "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==" + "resolved" "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz" + "version" "1.3.8" + dependencies: + "mime-types" "~2.1.34" + "negotiator" "0.6.3" + +"acorn-walk@^8.1.1", "acorn-walk@^8.2.0": + "integrity" "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + "resolved" "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" + "version" "8.2.0" + +"acorn@^8.4.1", "acorn@^8.7.0": + "integrity" "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==" + "resolved" "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz" + "version" "8.7.1" + +"agent-base@^6.0.0", "agent-base@^6.0.2", "agent-base@6": + "integrity" "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==" + "resolved" "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "debug" "4" + +"agentkeepalive@^4.1.3": + "integrity" "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==" + "resolved" "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz" + "version" "4.2.1" + dependencies: + "debug" "^4.1.0" + "depd" "^1.1.2" + "humanize-ms" "^1.2.1" + +"aggregate-error@^3.0.0": + "integrity" "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==" + "resolved" "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "clean-stack" "^2.0.0" + "indent-string" "^4.0.0" + +"ajv-formats@^2.1.1": + "integrity" "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==" + "resolved" "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "ajv" "^8.0.0" + +"ajv@^8.0.0", "ajv@^8.6.2", "ajv@8.6.2": + "integrity" "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==" + "resolved" "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz" + "version" "8.6.2" + dependencies: + "fast-deep-equal" "^3.1.1" + "json-schema-traverse" "^1.0.0" + "require-from-string" "^2.0.2" + "uri-js" "^4.2.2" + +"amqplib@^0.10.0", "amqplib@^0.10.1": + "integrity" "sha512-Hs33MdtFmJ2WKQT9SBtrlet3aUNzMzZA/FF6p3NGGo7Fp/BVD4X3Po7bQxAA7uE0MmXPZ8EschLMbN+CjGx4dg==" + "resolved" "https://registry.npmjs.org/amqplib/-/amqplib-0.10.1.tgz" + "version" "0.10.1" + dependencies: + "bitsyntax" "~0.1.0" + "buffer-more-ints" "~1.0.0" + "readable-stream" "1.x >=1.1.9" + "url-parse" "~1.5.10" + +"ansi-escapes@^4.2.1": + "integrity" "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==" + "resolved" "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" + "version" "4.3.2" + dependencies: + "type-fest" "^0.21.3" + +"ansi-regex@^5.0.1": + "integrity" "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + "resolved" "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + "version" "5.0.1" + +"ansi-styles@^3.2.1": + "integrity" "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" + "version" "3.2.1" + dependencies: + "color-convert" "^1.9.0" + +"ansi-styles@^4.0.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" + dependencies: + "color-convert" "^2.0.1" + +"ansi-styles@^4.1.0": + "integrity" "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" + "version" "4.3.0" dependencies: - color-convert "^2.0.1" - -ansi-styles@^5.0.0: - version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" - integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== - -any-promise@^1.0.0: - version "1.3.0" - resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" - integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + "color-convert" "^2.0.1" + +"ansi-styles@^5.0.0": + "integrity" "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==" + "resolved" "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + "version" "5.2.0" + +"any-promise@^1.0.0": + "integrity" "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + "resolved" "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz" + "version" "1.3.0" -anymatch@^3.0.3, anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" +"anymatch@^3.0.3", "anymatch@~3.1.2": + "integrity" "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==" + "resolved" "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "normalize-path" "^3.0.0" + "picomatch" "^2.0.4" -app-root-path@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz" - integrity sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw== +"app-root-path@^3.0.0": + "integrity" "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==" + "resolved" "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz" + "version" "3.0.0" -append-field@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz" - integrity sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw== +"append-field@^1.0.0": + "integrity" "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==" + "resolved" "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz" + "version" "1.0.0" "aproba@^1.0.3 || ^2.0.0": - version "2.0.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" - integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== - -are-we-there-yet@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" - integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -are-we-there-yet@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" - integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== - dependencies: - delegates "^1.0.0" - readable-stream "^3.6.0" - -arg@^4.1.0: - version "4.1.3" - resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" - integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -argparse@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" - integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== - -array-flatten@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" - integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== - -asap@^2.0.0: - version "2.0.6" - resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - -ast-types@^0.13.2: - version "0.13.4" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz" - integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== - dependencies: - tslib "^2.0.1" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== - -babel-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz" - integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== + "integrity" "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + "resolved" "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" + "version" "2.0.0" + +"are-we-there-yet@^2.0.0": + "integrity" "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==" + "resolved" "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "delegates" "^1.0.0" + "readable-stream" "^3.6.0" + +"are-we-there-yet@^3.0.0": + "integrity" "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==" + "resolved" "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "delegates" "^1.0.0" + "readable-stream" "^3.6.0" + +"arg@^4.1.0": + "integrity" "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + "resolved" "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" + "version" "4.1.3" + +"argparse@^1.0.7": + "integrity" "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + "version" "1.0.10" + dependencies: + "sprintf-js" "~1.0.2" + +"argparse@^2.0.1": + "integrity" "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + "resolved" "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" + "version" "2.0.1" + +"array-flatten@1.1.1": + "integrity" "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + "resolved" "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" + "version" "1.1.1" + +"asap@^2.0.0": + "integrity" "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + "resolved" "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" + "version" "2.0.6" + +"ast-types@^0.13.2": + "integrity" "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==" + "resolved" "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz" + "version" "0.13.4" + dependencies: + "tslib" "^2.0.1" + +"asynckit@^0.4.0": + "integrity" "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + "resolved" "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + "version" "0.4.0" + +"babel-jest@^28.1.3": + "integrity" "sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==" + "resolved" "https://registry.npmjs.org/babel-jest/-/babel-jest-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/transform" "^28.1.3" "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" - slash "^3.0.0" + "babel-plugin-istanbul" "^6.1.1" + "babel-preset-jest" "^28.1.3" + "chalk" "^4.0.0" + "graceful-fs" "^4.2.9" + "slash" "^3.0.0" -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== +"babel-plugin-dynamic-import-node@^2.3.3": + "integrity" "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz" + "version" "2.3.3" dependencies: - object.assign "^4.1.0" + "object.assign" "^4.1.0" -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== +"babel-plugin-istanbul@^6.1.1": + "integrity" "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==" + "resolved" "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" + "version" "6.1.1" dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" - test-exclude "^6.0.0" + "istanbul-lib-instrument" "^5.0.4" + "test-exclude" "^6.0.0" -babel-plugin-jest-hoist@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz" - integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== +"babel-plugin-jest-hoist@^28.1.3": + "integrity" "sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==" + "resolved" "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz" + "version" "28.1.3" dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-polyfill-corejs2@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz" - integrity sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w== +"babel-plugin-polyfill-corejs2@^0.3.1": + "integrity" "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz" + "version" "0.3.1" dependencies: "@babel/compat-data" "^7.13.11" "@babel/helper-define-polyfill-provider" "^0.3.1" - semver "^6.1.1" + "semver" "^6.1.1" -babel-plugin-polyfill-corejs3@^0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz" - integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ== +"babel-plugin-polyfill-corejs3@^0.5.2": + "integrity" "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz" + "version" "0.5.2" dependencies: "@babel/helper-define-polyfill-provider" "^0.3.1" - core-js-compat "^3.21.0" + "core-js-compat" "^3.21.0" -babel-plugin-polyfill-regenerator@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz" - integrity sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A== +"babel-plugin-polyfill-regenerator@^0.3.1": + "integrity" "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==" + "resolved" "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz" + "version" "0.3.1" dependencies: "@babel/helper-define-polyfill-provider" "^0.3.1" -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== +"babel-preset-current-node-syntax@^1.0.0": + "integrity" "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==" + "resolved" "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" + "version" "1.0.1" dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" @@ -2768,1727 +2775,1778 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz" - integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== +"babel-preset-jest@^28.1.3": + "integrity" "sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==" + "resolved" "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz" + "version" "28.1.3" dependencies: - babel-plugin-jest-hoist "^28.1.3" - babel-preset-current-node-syntax "^1.0.0" + "babel-plugin-jest-hoist" "^28.1.3" + "babel-preset-current-node-syntax" "^1.0.0" -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +"balanced-match@^1.0.0": + "integrity" "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + "resolved" "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" + "version" "1.0.2" -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +"base64-js@^1.3.1": + "integrity" "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + "resolved" "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" + "version" "1.5.1" -basic-auth@~2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz" - integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== +"basic-auth@~2.0.1": + "integrity" "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==" + "resolved" "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz" + "version" "2.0.1" dependencies: - safe-buffer "5.1.2" + "safe-buffer" "5.1.2" -bcrypt@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz" - integrity sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw== +"bcrypt@^5.0.1": + "integrity" "sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==" + "resolved" "https://registry.npmjs.org/bcrypt/-/bcrypt-5.0.1.tgz" + "version" "5.0.1" dependencies: "@mapbox/node-pre-gyp" "^1.0.0" - node-addon-api "^3.1.0" - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -bitsyntax@~0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz" - integrity sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q== - dependencies: - buffer-more-ints "~1.0.0" - debug "~2.6.9" - safe-buffer "~5.1.2" - -body-parser@1.20.0, body-parser@^1.19.0: - version "1.20.0" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz" - integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg== - dependencies: - bytes "3.1.2" - content-type "~1.0.4" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.10.3" - raw-body "2.5.1" - type-is "~1.6.18" - unpipe "1.0.0" - -boolbase@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" - integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== - -bowser@^2.11.0: - version "2.11.0" - resolved "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz" - integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== - dependencies: - balanced-match "^1.0.0" - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.20.2, browserslist@^4.21.1: - version "4.21.2" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz" - integrity sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA== - dependencies: - caniuse-lite "^1.0.30001366" - electron-to-chromium "^1.4.188" - node-releases "^2.0.6" - update-browserslist-db "^1.0.4" - -bser@2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" - integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== - dependencies: - node-int64 "^0.4.0" - -buffer-equal-constant-time@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" - integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== - -buffer-from@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" - integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== - -buffer-more-ints@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz" - integrity sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg== - -buffer-writer@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz#ce7eb81a38f7829db09c873f2fbb792c0c98ec04" - integrity sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw== - -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -busboy@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - -bytes@3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" - integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== - -cacache@^15.2.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" - integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== + "node-addon-api" "^3.1.0" + +"binary-extensions@^2.0.0": + "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" + "version" "2.2.0" + +"bitsyntax@~0.1.0": + "integrity" "sha512-ikAdCnrloKmFOugAfxWws89/fPc+nw0OOG1IzIE72uSOg/A3cYptKCjSUhDTuj7fhsJtzkzlv7l3b8PzRHLN0Q==" + "resolved" "https://registry.npmjs.org/bitsyntax/-/bitsyntax-0.1.0.tgz" + "version" "0.1.0" + dependencies: + "buffer-more-ints" "~1.0.0" + "debug" "~2.6.9" + "safe-buffer" "~5.1.2" + +"bl@^2.2.1": + "integrity" "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==" + "resolved" "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz" + "version" "2.2.1" + dependencies: + "readable-stream" "^2.3.5" + "safe-buffer" "^5.1.1" + +"body-parser@^1.19.0", "body-parser@1.20.0": + "integrity" "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==" + "resolved" "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz" + "version" "1.20.0" + dependencies: + "bytes" "3.1.2" + "content-type" "~1.0.4" + "debug" "2.6.9" + "depd" "2.0.0" + "destroy" "1.2.0" + "http-errors" "2.0.0" + "iconv-lite" "0.4.24" + "on-finished" "2.4.1" + "qs" "6.10.3" + "raw-body" "2.5.1" + "type-is" "~1.6.18" + "unpipe" "1.0.0" + +"boolbase@^1.0.0": + "integrity" "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + "resolved" "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" + "version" "1.0.0" + +"bowser@^2.11.0": + "integrity" "sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==" + "resolved" "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz" + "version" "2.11.0" + +"brace-expansion@^1.1.7": + "integrity" "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" + "version" "1.1.11" + dependencies: + "balanced-match" "^1.0.0" + "concat-map" "0.0.1" + +"brace-expansion@^2.0.1": + "integrity" "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==" + "resolved" "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "balanced-match" "^1.0.0" + +"braces@^3.0.2", "braces@~3.0.2": + "integrity" "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==" + "resolved" "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "fill-range" "^7.0.1" + +"browserslist@^4.20.2", "browserslist@^4.21.1", "browserslist@>= 4.21.0": + "integrity" "sha512-MonuOgAtUB46uP5CezYbRaYKBNt2LxP0yX+Pmj4LkcDFGkn9Cbpi83d9sCjwQDErXsIJSzY5oKGDbgOlF/LPAA==" + "resolved" "https://registry.npmjs.org/browserslist/-/browserslist-4.21.2.tgz" + "version" "4.21.2" + dependencies: + "caniuse-lite" "^1.0.30001366" + "electron-to-chromium" "^1.4.188" + "node-releases" "^2.0.6" + "update-browserslist-db" "^1.0.4" + +"bser@2.1.1": + "integrity" "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==" + "resolved" "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "node-int64" "^0.4.0" + +"bson@^1.1.4": + "integrity" "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==" + "resolved" "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz" + "version" "1.1.6" + +"buffer-equal-constant-time@1.0.1": + "integrity" "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + "resolved" "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz" + "version" "1.0.1" + +"buffer-from@^1.0.0": + "integrity" "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "resolved" "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + "version" "1.1.2" + +"buffer-more-ints@~1.0.0": + "integrity" "sha512-EMetuGFz5SLsT0QTnXzINh4Ksr+oo4i+UGTXEshiGCQWnsgSs7ZhJ8fzlwQ+OzEMs0MpDAMr1hxnblp5a4vcHg==" + "resolved" "https://registry.npmjs.org/buffer-more-ints/-/buffer-more-ints-1.0.0.tgz" + "version" "1.0.0" + +"buffer-writer@2.0.0": + "integrity" "sha512-a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==" + "resolved" "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz" + "version" "2.0.0" + +"buffer@^6.0.3": + "integrity" "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==" + "resolved" "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" + "version" "6.0.3" + dependencies: + "base64-js" "^1.3.1" + "ieee754" "^1.2.1" + +"busboy@^1.0.0": + "integrity" "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==" + "resolved" "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" + "version" "1.6.0" + dependencies: + "streamsearch" "^1.1.0" + +"bytes@3.1.2": + "integrity" "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + "resolved" "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz" + "version" "3.1.2" + +"cacache@^15.2.0": + "integrity" "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==" + "resolved" "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz" + "version" "15.3.0" dependencies: "@npmcli/fs" "^1.0.0" "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.1" - tar "^6.0.2" - unique-filename "^1.1.1" - -call-bind@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -callsites@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" - integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -camelcase@^6.2.0: - version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" - integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== - -caniuse-lite@^1.0.30001366: - version "1.0.30001367" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz" - integrity sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw== - -canvas@^2.9.3: - version "2.9.3" - resolved "https://registry.npmjs.org/canvas/-/canvas-2.9.3.tgz" - integrity sha512-WOUM7ghii5TV2rbhaZkh1youv/vW1/Canev6Yx6BG2W+1S07w8jKZqKkPnbiPpQEDsnJdN8ouDd7OvQEGXDcUw== + "chownr" "^2.0.0" + "fs-minipass" "^2.0.0" + "glob" "^7.1.4" + "infer-owner" "^1.0.4" + "lru-cache" "^6.0.0" + "minipass" "^3.1.1" + "minipass-collect" "^1.0.2" + "minipass-flush" "^1.0.5" + "minipass-pipeline" "^1.2.2" + "mkdirp" "^1.0.3" + "p-map" "^4.0.0" + "promise-inflight" "^1.0.1" + "rimraf" "^3.0.2" + "ssri" "^8.0.1" + "tar" "^6.0.2" + "unique-filename" "^1.1.1" + +"call-bind@^1.0.0": + "integrity" "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==" + "resolved" "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "function-bind" "^1.1.1" + "get-intrinsic" "^1.0.2" + +"callsites@^3.0.0": + "integrity" "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" + "resolved" "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" + "version" "3.1.0" + +"camelcase@^5.3.1": + "integrity" "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + "version" "5.3.1" + +"camelcase@^6.2.0": + "integrity" "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + "resolved" "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + "version" "6.3.0" + +"caniuse-lite@^1.0.30001366": + "integrity" "sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==" + "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001367.tgz" + "version" "1.0.30001367" + +"canvas@^2.9.3": + "integrity" "sha512-WOUM7ghii5TV2rbhaZkh1youv/vW1/Canev6Yx6BG2W+1S07w8jKZqKkPnbiPpQEDsnJdN8ouDd7OvQEGXDcUw==" + "resolved" "https://registry.npmjs.org/canvas/-/canvas-2.9.3.tgz" + "version" "2.9.3" dependencies: "@mapbox/node-pre-gyp" "^1.0.0" - nan "^2.15.0" - simple-get "^3.0.3" - -chalk@^2.0.0, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -char-regex@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" - integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== - -cheerio-select@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" - integrity sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g== - dependencies: - boolbase "^1.0.0" - css-select "^5.1.0" - css-what "^6.1.0" - domelementtype "^2.3.0" - domhandler "^5.0.3" - domutils "^3.0.1" - -cheerio@^1.0.0-rc.10: - version "1.0.0-rc.12" - resolved "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz" - integrity sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q== - dependencies: - cheerio-select "^2.1.0" - dom-serializer "^2.0.0" - domhandler "^5.0.3" - domutils "^3.0.1" - htmlparser2 "^8.0.1" - parse5 "^7.0.0" - parse5-htmlparser2-tree-adapter "^7.0.0" - -chokidar@^3.5.1: - version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" + "nan" "^2.15.0" + "simple-get" "^3.0.3" + +"chalk@^2.0.0", "chalk@^2.4.2": + "integrity" "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "ansi-styles" "^3.2.1" + "escape-string-regexp" "^1.0.5" + "supports-color" "^5.3.0" + +"chalk@^4.0.0": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chalk@^4.1.0": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chalk@^4.1.1": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"chalk@^4.1.2": + "integrity" "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==" + "resolved" "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "ansi-styles" "^4.1.0" + "supports-color" "^7.1.0" + +"char-regex@^1.0.2": + "integrity" "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==" + "resolved" "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + "version" "1.0.2" + +"cheerio-select@^2.1.0": + "integrity" "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==" + "resolved" "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "boolbase" "^1.0.0" + "css-select" "^5.1.0" + "css-what" "^6.1.0" + "domelementtype" "^2.3.0" + "domhandler" "^5.0.3" + "domutils" "^3.0.1" + +"cheerio@^1.0.0-rc.10": + "integrity" "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==" + "resolved" "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz" + "version" "1.0.0-rc.12" + dependencies: + "cheerio-select" "^2.1.0" + "dom-serializer" "^2.0.0" + "domhandler" "^5.0.3" + "domutils" "^3.0.1" + "htmlparser2" "^8.0.1" + "parse5" "^7.0.0" + "parse5-htmlparser2-tree-adapter" "^7.0.0" + +"chokidar@^3.5.1": + "integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==" + "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" + "version" "3.5.3" + dependencies: + "anymatch" "~3.1.2" + "braces" "~3.0.2" + "glob-parent" "~5.1.2" + "is-binary-path" "~2.1.0" + "is-glob" "~4.0.1" + "normalize-path" "~3.0.0" + "readdirp" "~3.6.0" optionalDependencies: - fsevents "~2.3.2" - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -ci-info@^3.2.0: - version "3.3.2" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz" - integrity sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg== - -cjs-module-lexer@^1.0.0: - version "1.2.2" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" - integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== - -clean-stack@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-highlight@^2.1.11: - version "2.1.11" - resolved "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz" - integrity sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg== - dependencies: - chalk "^4.0.0" - highlight.js "^10.7.1" - mz "^2.4.0" - parse5 "^5.1.1" - parse5-htmlparser2-tree-adapter "^6.0.0" - yargs "^16.0.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -co@^4.6.0: - version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" - integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== - -collect-v8-coverage@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" - integrity sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-support@^1.1.2, color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -component-emitter@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-stream@^1.5.2: - version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -console-control-strings@^1.0.0, console-control-strings@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" - integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== - -content-disposition@0.5.4: - version "0.5.4" - resolved "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" - integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== - dependencies: - safe-buffer "5.2.1" - -content-type@~1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== - -convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" - -cookie-signature@1.0.6: - version "1.0.6" - resolved "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" - integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== - -cookie@0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" - integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== - -cookie@^0.4.1: - version "0.4.2" - resolved "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - -cookiejar@^2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz" - integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== - -core-js-compat@^3.21.0, core-js-compat@^3.22.1: - version "3.23.4" - resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.4.tgz" - integrity sha512-RkSRPe+JYEoflcsuxJWaiMPhnZoFS51FcIxm53k4KzhISCBTmaGlto9dTIrYuk0hnJc3G6pKufAKepHnBq6B6Q== - dependencies: - browserslist "^4.21.1" - semver "7.0.0" - -core-util-is@~1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" - integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== - -create-require@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" - integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== - -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -css-select@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz" - integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== - dependencies: - boolbase "^1.0.0" - css-what "^6.1.0" - domhandler "^5.0.2" - domutils "^3.0.1" - nth-check "^2.0.1" - -css-what@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" - integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== - -data-uri-to-buffer@3: - version "3.0.1" - resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz" - integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== - -date-fns@^2.28.0: - version "2.28.0" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz" - integrity sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw== - -debug@2.6.9, debug@~2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.3, debug@^4.3.4: - version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -decompress-response@^4.2.0: - version "4.2.1" - resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz" - integrity sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw== - dependencies: - mimic-response "^2.0.0" - -dedent@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" - integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== - -deep-is@~0.1.3: - version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" - integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== - -deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== - -define-properties@^1.1.3: - version "1.1.4" - resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== - dependencies: - has-property-descriptors "^1.0.0" - object-keys "^1.1.1" - -degenerator@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz" - integrity sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ== - dependencies: - ast-types "^0.13.2" - escodegen "^1.8.1" - esprima "^4.0.0" - vm2 "^3.9.8" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" - integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== - -denque@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" - integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== - -depd@2.0.0, depd@~2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - -depd@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - -destroy@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" - integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== - -detect-libc@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz" - integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== - -detect-newline@^3.0.0: - version "3.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" - integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== - -dezalgo@1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz" - integrity sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ== - dependencies: - asap "^2.0.0" - wrappy "1" - -diff-sequences@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz" - integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== - -diff@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" - integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== - -dom-serializer@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" - integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - entities "^4.2.0" - -domelementtype@^2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" - integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== - -domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" - integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== - dependencies: - domelementtype "^2.3.0" - -domutils@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz" - integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q== - dependencies: - dom-serializer "^2.0.0" - domelementtype "^2.3.0" - domhandler "^5.0.1" - -dotenv@*, dotenv@^16.0.0, dotenv@^16.0.1: - version "16.0.1" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz" - integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ== - -dynamic-dedupe@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz" - integrity sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ== - dependencies: - xtend "^4.0.0" - -ecdsa-sig-formatter@1.0.11: - version "1.0.11" - resolved "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" - integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== - dependencies: - safe-buffer "^5.0.1" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" - integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== - -electron-to-chromium@^1.4.188: - version "1.4.192" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.192.tgz" - integrity sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw== - -emittery@^0.10.2: - version "0.10.2" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz" - integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" - integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== - -encoding@^0.1.12: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - -entities@2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -entities@^4.2.0, entities@^4.3.0: - version "4.3.1" - resolved "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz" - integrity sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg== - -env-paths@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" - integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== - -err-code@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" - integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" - integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== - -escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" - integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== - -escape-string-regexp@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" - integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== - -escodegen@^1.8.1: - version "1.14.3" - resolved "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" + "fsevents" "~2.3.2" + +"chownr@^2.0.0": + "integrity" "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + "resolved" "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" + "version" "2.0.0" + +"ci-info@^2.0.0": + "integrity" "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz" + "version" "2.0.0" + +"ci-info@^3.2.0": + "integrity" "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==" + "resolved" "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz" + "version" "3.3.2" + +"cjs-module-lexer@^1.0.0": + "integrity" "sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==" + "resolved" "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz" + "version" "1.2.2" + +"clean-stack@^2.0.0": + "integrity" "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" + "resolved" "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" + "version" "2.2.0" + +"cli-highlight@^2.1.11": + "integrity" "sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==" + "resolved" "https://registry.npmjs.org/cli-highlight/-/cli-highlight-2.1.11.tgz" + "version" "2.1.11" + dependencies: + "chalk" "^4.0.0" + "highlight.js" "^10.7.1" + "mz" "^2.4.0" + "parse5" "^5.1.1" + "parse5-htmlparser2-tree-adapter" "^6.0.0" + "yargs" "^16.0.0" + +"cliui@^7.0.2": + "integrity" "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==" + "resolved" "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" + "version" "7.0.4" + dependencies: + "string-width" "^4.2.0" + "strip-ansi" "^6.0.0" + "wrap-ansi" "^7.0.0" + +"co@^4.6.0": + "integrity" "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==" + "resolved" "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + "version" "4.6.0" + +"collect-v8-coverage@^1.0.0": + "integrity" "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + "resolved" "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz" + "version" "1.0.1" + +"color-convert@^1.9.0": + "integrity" "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" + "version" "1.9.3" + dependencies: + "color-name" "1.1.3" + +"color-convert@^2.0.1": + "integrity" "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==" + "resolved" "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "color-name" "~1.1.4" + +"color-name@~1.1.4": + "integrity" "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + "version" "1.1.4" + +"color-name@1.1.3": + "integrity" "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + "resolved" "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" + "version" "1.1.3" + +"color-support@^1.1.2", "color-support@^1.1.3": + "integrity" "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==" + "resolved" "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" + "version" "1.1.3" + +"combined-stream@^1.0.8": + "integrity" "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==" + "resolved" "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + "version" "1.0.8" + dependencies: + "delayed-stream" "~1.0.0" + +"component-emitter@^1.3.0": + "integrity" "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + "resolved" "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" + "version" "1.3.0" + +"concat-map@0.0.1": + "integrity" "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + "resolved" "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" + "version" "0.0.1" + +"concat-stream@^1.5.2": + "integrity" "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==" + "resolved" "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" + "version" "1.6.2" + dependencies: + "buffer-from" "^1.0.0" + "inherits" "^2.0.3" + "readable-stream" "^2.2.2" + "typedarray" "^0.0.6" + +"console-control-strings@^1.0.0", "console-control-strings@^1.1.0": + "integrity" "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + "resolved" "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" + "version" "1.1.0" + +"content-disposition@0.5.4": + "integrity" "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==" + "resolved" "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz" + "version" "0.5.4" + dependencies: + "safe-buffer" "5.2.1" + +"content-type@~1.0.4": + "integrity" "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + "resolved" "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz" + "version" "1.0.4" + +"convert-source-map@^1.4.0", "convert-source-map@^1.6.0", "convert-source-map@^1.7.0": + "integrity" "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==" + "resolved" "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz" + "version" "1.8.0" + dependencies: + "safe-buffer" "~5.1.1" + +"cookie-signature@1.0.6": + "integrity" "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + "resolved" "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz" + "version" "1.0.6" + +"cookie@^0.4.1": + "integrity" "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==" + "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz" + "version" "0.4.2" + +"cookie@0.5.0": + "integrity" "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" + "resolved" "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" + "version" "0.5.0" + +"cookiejar@^2.1.3": + "integrity" "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ==" + "resolved" "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz" + "version" "2.1.3" + +"core-js-compat@^3.21.0", "core-js-compat@^3.22.1": + "integrity" "sha512-RkSRPe+JYEoflcsuxJWaiMPhnZoFS51FcIxm53k4KzhISCBTmaGlto9dTIrYuk0hnJc3G6pKufAKepHnBq6B6Q==" + "resolved" "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.4.tgz" + "version" "3.23.4" + dependencies: + "browserslist" "^4.21.1" + "semver" "7.0.0" + +"core-util-is@~1.0.0": + "integrity" "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + "resolved" "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" + "version" "1.0.3" + +"create-require@^1.1.0": + "integrity" "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + "resolved" "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" + "version" "1.1.1" + +"cross-spawn@^6.0.5": + "integrity" "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz" + "version" "6.0.5" + dependencies: + "nice-try" "^1.0.4" + "path-key" "^2.0.1" + "semver" "^5.5.0" + "shebang-command" "^1.2.0" + "which" "^1.2.9" + +"cross-spawn@^7.0.3": + "integrity" "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==" + "resolved" "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" + "version" "7.0.3" + dependencies: + "path-key" "^3.1.0" + "shebang-command" "^2.0.0" + "which" "^2.0.1" + +"css-select@^5.1.0": + "integrity" "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==" + "resolved" "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "boolbase" "^1.0.0" + "css-what" "^6.1.0" + "domhandler" "^5.0.2" + "domutils" "^3.0.1" + "nth-check" "^2.0.1" + +"css-what@^6.1.0": + "integrity" "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==" + "resolved" "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz" + "version" "6.1.0" + +"data-uri-to-buffer@3": + "integrity" "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==" + "resolved" "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz" + "version" "3.0.1" + +"date-fns@^2.28.0": + "integrity" "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==" + "resolved" "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz" + "version" "2.28.0" + +"debug@^4.1.0", "debug@^4.1.1", "debug@^4.3.3", "debug@^4.3.4", "debug@4": + "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" + "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + "version" "4.3.4" + dependencies: + "ms" "2.1.2" + +"debug@~2.6.9": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"debug@2.6.9": + "integrity" "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==" + "resolved" "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + "version" "2.6.9" + dependencies: + "ms" "2.0.0" + +"decompress-response@^4.2.0": + "integrity" "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==" + "resolved" "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz" + "version" "4.2.1" + dependencies: + "mimic-response" "^2.0.0" + +"dedent@^0.7.0": + "integrity" "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + "resolved" "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" + "version" "0.7.0" + +"deep-is@~0.1.3": + "integrity" "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + "resolved" "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + "version" "0.1.4" + +"deepmerge@^4.2.2": + "integrity" "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" + "resolved" "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz" + "version" "4.2.2" + +"define-properties@^1.1.3": + "integrity" "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==" + "resolved" "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz" + "version" "1.1.4" + dependencies: + "has-property-descriptors" "^1.0.0" + "object-keys" "^1.1.1" + +"degenerator@^3.0.2": + "integrity" "sha512-c0mef3SNQo56t6urUU6tdQAs+ThoD0o9B9MJ8HEt7NQcGEILCRFqQb7ZbP9JAv+QF1Ky5plydhMR/IrqWDm+TQ==" + "resolved" "https://registry.npmjs.org/degenerator/-/degenerator-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "ast-types" "^0.13.2" + "escodegen" "^1.8.1" + "esprima" "^4.0.0" + "vm2" "^3.9.8" + +"delayed-stream@~1.0.0": + "integrity" "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + "resolved" "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + "version" "1.0.0" + +"delegates@^1.0.0": + "integrity" "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + "resolved" "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" + "version" "1.0.0" + +"denque@^1.4.1": + "integrity" "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==" + "resolved" "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz" + "version" "1.5.1" + +"denque@^2.0.1": + "integrity" "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==" + "resolved" "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz" + "version" "2.1.0" + +"depd@^1.1.2": + "integrity" "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + "resolved" "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + "version" "1.1.2" + +"depd@~2.0.0", "depd@2.0.0": + "integrity" "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + "resolved" "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + "version" "2.0.0" + +"destroy@1.2.0": + "integrity" "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + "resolved" "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" + "version" "1.2.0" + +"detect-libc@^2.0.0": + "integrity" "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==" + "resolved" "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz" + "version" "2.0.1" + +"detect-newline@^3.0.0": + "integrity" "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==" + "resolved" "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + "version" "3.1.0" + +"dezalgo@1.0.3": + "integrity" "sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==" + "resolved" "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "asap" "^2.0.0" + "wrappy" "1" + +"diff-sequences@^28.1.1": + "integrity" "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==" + "resolved" "https://registry.npmjs.org/diff-sequences/-/diff-sequences-28.1.1.tgz" + "version" "28.1.1" + +"diff@^4.0.1": + "integrity" "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + "resolved" "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" + "version" "4.0.2" + +"dom-serializer@^2.0.0": + "integrity" "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==" + "resolved" "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "domelementtype" "^2.3.0" + "domhandler" "^5.0.2" + "entities" "^4.2.0" + +"domelementtype@^2.3.0": + "integrity" "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + "resolved" "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" + "version" "2.3.0" + +"domhandler@^5.0.1", "domhandler@^5.0.2", "domhandler@^5.0.3": + "integrity" "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==" + "resolved" "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" + "version" "5.0.3" + dependencies: + "domelementtype" "^2.3.0" + +"domutils@^3.0.1": + "integrity" "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==" + "resolved" "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "dom-serializer" "^2.0.0" + "domelementtype" "^2.3.0" + "domhandler" "^5.0.1" + +"dotenv@*", "dotenv@^16.0.0", "dotenv@^16.0.1": + "integrity" "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==" + "resolved" "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz" + "version" "16.0.1" + +"dynamic-dedupe@^0.3.0": + "integrity" "sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==" + "resolved" "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz" + "version" "0.3.0" + dependencies: + "xtend" "^4.0.0" + +"ecdsa-sig-formatter@1.0.11": + "integrity" "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==" + "resolved" "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz" + "version" "1.0.11" + dependencies: + "safe-buffer" "^5.0.1" + +"ee-first@1.1.1": + "integrity" "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + "resolved" "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz" + "version" "1.1.1" + +"electron-to-chromium@^1.4.188": + "integrity" "sha512-8nCXyIQY9An88NXAp+PuPy5h3/w5ZY7Iu2lag65Q0XREprcat5F8gKhoHsBUnQcFuCRnmevpR8yEBYRU3d2HDw==" + "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.192.tgz" + "version" "1.4.192" + +"emittery@^0.10.2": + "integrity" "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==" + "resolved" "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz" + "version" "0.10.2" + +"emoji-regex@^8.0.0": + "integrity" "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "resolved" "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" + "version" "8.0.0" + +"encodeurl@~1.0.2": + "integrity" "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + "resolved" "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz" + "version" "1.0.2" + +"encoding@^0.1.0", "encoding@^0.1.12": + "integrity" "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==" + "resolved" "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" + "version" "0.1.13" + dependencies: + "iconv-lite" "^0.6.2" + +"entities@^4.2.0": + "integrity" "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==" + "resolved" "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz" + "version" "4.3.1" + +"entities@^4.3.0": + "integrity" "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==" + "resolved" "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz" + "version" "4.3.1" + +"entities@2.2.0": + "integrity" "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + "resolved" "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" + "version" "2.2.0" + +"env-paths@^2.2.0": + "integrity" "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" + "resolved" "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" + "version" "2.2.1" + +"err-code@^2.0.2": + "integrity" "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + "resolved" "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" + "version" "2.0.3" + +"error-ex@^1.3.1": + "integrity" "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==" + "resolved" "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" + "version" "1.3.2" + dependencies: + "is-arrayish" "^0.2.1" + +"escalade@^3.1.1": + "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" + "version" "3.1.1" + +"escape-html@~1.0.3": + "integrity" "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "resolved" "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" + "version" "1.0.3" + +"escape-string-regexp@^1.0.5": + "integrity" "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" + "version" "1.0.5" + +"escape-string-regexp@^2.0.0": + "integrity" "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + "resolved" "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + "version" "2.0.0" + +"escodegen@^1.8.1": + "integrity" "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==" + "resolved" "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz" + "version" "1.14.3" + dependencies: + "esprima" "^4.0.1" + "estraverse" "^4.2.0" + "esutils" "^2.0.2" + "optionator" "^0.8.1" optionalDependencies: - source-map "~0.6.1" - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" - integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== - -execa@^5.0.0: - version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" - integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.0" - human-signals "^2.1.0" - is-stream "^2.0.0" - merge-stream "^2.0.0" - npm-run-path "^4.0.1" - onetime "^5.1.2" - signal-exit "^3.0.3" - strip-final-newline "^2.0.0" - -exif-be-gone@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/exif-be-gone/-/exif-be-gone-1.3.0.tgz" - integrity sha512-6s/SnuWviwtP6TB3Gc2Nc2GIWYCIs3N9V4Md773EWIfC4uOR+O3thZXO4ElbJJOvjtDNR4FVoMVNKgZWRKiQNQ== + "source-map" "~0.6.1" + +"esprima@^4.0.0", "esprima@^4.0.1": + "integrity" "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "resolved" "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + "version" "4.0.1" + +"estraverse@^4.2.0": + "integrity" "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "resolved" "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" + "version" "4.3.0" + +"esutils@^2.0.2": + "integrity" "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "resolved" "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" + "version" "2.0.3" + +"etag@~1.8.1": + "integrity" "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + "resolved" "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz" + "version" "1.8.1" + +"execa@^5.0.0": + "integrity" "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==" + "resolved" "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "cross-spawn" "^7.0.3" + "get-stream" "^6.0.0" + "human-signals" "^2.1.0" + "is-stream" "^2.0.0" + "merge-stream" "^2.0.0" + "npm-run-path" "^4.0.1" + "onetime" "^5.1.2" + "signal-exit" "^3.0.3" + "strip-final-newline" "^2.0.0" + +"exif-be-gone@^1.3.0", "exif-be-gone@^1.3.1": + "integrity" "sha512-lHvNqbaTsH0WzhzfxxiTh9KwmXjAfiiTfY6UVmUZXJsaU62ccURy8beEVYFKSmNfvf0n6srLIFi0NDBWvhYUlQ==" + "resolved" "https://registry.npmjs.org/exif-be-gone/-/exif-be-gone-1.3.1.tgz" + "version" "1.3.1" dependencies: "@types/stream-buffers" "^3.0.3" -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== +"exit@^0.1.2": + "integrity" "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==" + "resolved" "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" + "version" "0.1.2" -expect@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz" - integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== +"expect@^28.1.3": + "integrity" "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==" + "resolved" "https://registry.npmjs.org/expect/-/expect-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/expect-utils" "^28.1.3" - jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - -express-async-errors@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/express-async-errors/-/express-async-errors-3.1.1.tgz" - integrity sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng== - -express@^4.17.1: - version "4.18.1" - resolved "https://registry.npmjs.org/express/-/express-4.18.1.tgz" - integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q== - dependencies: - accepts "~1.3.8" - array-flatten "1.1.1" - body-parser "1.20.0" - content-disposition "0.5.4" - content-type "~1.0.4" - cookie "0.5.0" - cookie-signature "1.0.6" - debug "2.6.9" - depd "2.0.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - finalhandler "1.2.0" - fresh "0.5.2" - http-errors "2.0.0" - merge-descriptors "1.0.1" - methods "~1.1.2" - on-finished "2.4.1" - parseurl "~1.3.3" - path-to-regexp "0.1.7" - proxy-addr "~2.0.7" - qs "6.10.3" - range-parser "~1.2.1" - safe-buffer "5.2.1" - send "0.18.0" - serve-static "1.15.0" - setprototypeof "1.2.0" - statuses "2.0.1" - type-is "~1.6.18" - utils-merge "1.0.1" - vary "~1.1.2" - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" - integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== - -fast-safe-stringify@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - -fast-xml-parser@3.19.0: - version "3.19.0" - resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz" - integrity sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg== - -fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== - dependencies: - bser "2.1.1" - -file-type@16.5: - version "16.5.4" - resolved "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz" - integrity sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw== - dependencies: - readable-web-to-node-stream "^3.0.0" - strtok3 "^6.2.4" - token-types "^4.1.1" - -file-uri-to-path@2: - version "2.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz" - integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg== - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -finalhandler@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" - integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== - dependencies: - debug "2.6.9" - encodeurl "~1.0.2" - escape-html "~1.0.3" - on-finished "2.4.1" - parseurl "~1.3.3" - statuses "2.0.1" - unpipe "~1.0.0" - -find-up@^4.0.0, find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - -find-yarn-workspace-root@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz" - integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== - dependencies: - micromatch "^4.0.2" - -form-data@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" - integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" - -formidable@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz" - integrity sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ== - dependencies: - dezalgo "1.0.3" - hexoid "1.0.0" - once "1.4.0" - qs "6.9.3" - -forwarded@0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" - integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" - integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== - -fs-extra@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-minipass@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== - dependencies: - minipass "^3.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" - integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== - -fsevents@^2.3.2, fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -ftp@^0.3.10: - version "0.3.10" - resolved "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz" - integrity sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ== - dependencies: - readable-stream "1.1.x" - xregexp "2.0.0" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gauge@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" - integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.2" - console-control-strings "^1.0.0" - has-unicode "^2.0.1" - object-assign "^4.1.1" - signal-exit "^3.0.0" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.2" - -gauge@^4.0.3: - version "4.0.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" - integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== - dependencies: - aproba "^1.0.3 || ^2.0.0" - color-support "^1.1.3" - console-control-strings "^1.1.0" - has-unicode "^2.0.1" - signal-exit "^3.0.7" - string-width "^4.2.3" - strip-ansi "^6.0.1" - wide-align "^1.1.5" - -generate-function@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.3.1.tgz#f069617690c10c868e73b8465746764f97c3479f" - integrity sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ== - dependencies: - is-property "^1.0.2" - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz" - integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.3" - -get-package-type@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" - integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== - -get-stream@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" - integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== - -get-uri@3: - version "3.0.2" - resolved "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz" - integrity sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg== + "jest-get-type" "^28.0.2" + "jest-matcher-utils" "^28.1.3" + "jest-message-util" "^28.1.3" + "jest-util" "^28.1.3" + +"express-async-errors@^3.1.1": + "integrity" "sha512-h6aK1da4tpqWSbyCa3FxB/V6Ehd4EEB15zyQq9qe75OZBp0krinNKuH4rAY+S/U/2I36vdLAUFSjQJ+TFmODng==" + "resolved" "https://registry.npmjs.org/express-async-errors/-/express-async-errors-3.1.1.tgz" + "version" "3.1.1" + +"express@^4.16.2", "express@^4.17.1": + "integrity" "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==" + "resolved" "https://registry.npmjs.org/express/-/express-4.18.1.tgz" + "version" "4.18.1" + dependencies: + "accepts" "~1.3.8" + "array-flatten" "1.1.1" + "body-parser" "1.20.0" + "content-disposition" "0.5.4" + "content-type" "~1.0.4" + "cookie" "0.5.0" + "cookie-signature" "1.0.6" + "debug" "2.6.9" + "depd" "2.0.0" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "etag" "~1.8.1" + "finalhandler" "1.2.0" + "fresh" "0.5.2" + "http-errors" "2.0.0" + "merge-descriptors" "1.0.1" + "methods" "~1.1.2" + "on-finished" "2.4.1" + "parseurl" "~1.3.3" + "path-to-regexp" "0.1.7" + "proxy-addr" "~2.0.7" + "qs" "6.10.3" + "range-parser" "~1.2.1" + "safe-buffer" "5.2.1" + "send" "0.18.0" + "serve-static" "1.15.0" + "setprototypeof" "1.2.0" + "statuses" "2.0.1" + "type-is" "~1.6.18" + "utils-merge" "1.0.1" + "vary" "~1.1.2" + +"fast-deep-equal@^3.1.1": + "integrity" "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "resolved" "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + "version" "3.1.3" + +"fast-json-stable-stringify@^2.0.0": + "integrity" "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "resolved" "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" + "version" "2.1.0" + +"fast-levenshtein@~2.0.6": + "integrity" "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + "resolved" "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + "version" "2.0.6" + +"fast-safe-stringify@^2.1.1": + "integrity" "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==" + "resolved" "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz" + "version" "2.1.1" + +"fast-xml-parser@3.19.0": + "integrity" "sha512-4pXwmBplsCPv8FOY1WRakF970TjNGnGnfbOnLqjlYvMiF1SR3yOHyxMR/YCXpPTOspNF5gwudqktIP4VsWkvBg==" + "resolved" "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz" + "version" "3.19.0" + +"fb-watchman@^2.0.0": + "integrity" "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==" + "resolved" "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "bser" "2.1.1" + +"file-type@16.5": + "integrity" "sha512-/yFHK0aGjFEgDJjEKP0pWCplsPFPhwyfwevf/pVxiN0tmE4L9LmwWxWukdJSHdoCli4VgQLehjJtwQBnqmsKcw==" + "resolved" "https://registry.npmjs.org/file-type/-/file-type-16.5.4.tgz" + "version" "16.5.4" + dependencies: + "readable-web-to-node-stream" "^3.0.0" + "strtok3" "^6.2.4" + "token-types" "^4.1.1" + +"file-uri-to-path@2": + "integrity" "sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==" + "resolved" "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz" + "version" "2.0.0" + +"fill-range@^7.0.1": + "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" + "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "to-regex-range" "^5.0.1" + +"finalhandler@1.2.0": + "integrity" "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==" + "resolved" "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "debug" "2.6.9" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "on-finished" "2.4.1" + "parseurl" "~1.3.3" + "statuses" "2.0.1" + "unpipe" "~1.0.0" + +"find-up@^4.0.0", "find-up@^4.1.0": + "integrity" "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==" + "resolved" "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "locate-path" "^5.0.0" + "path-exists" "^4.0.0" + +"find-yarn-workspace-root@^2.0.0": + "integrity" "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==" + "resolved" "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "micromatch" "^4.0.2" + +"form-data@^3.0.0": + "integrity" "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz" + "version" "3.0.1" + dependencies: + "asynckit" "^0.4.0" + "combined-stream" "^1.0.8" + "mime-types" "^2.1.12" + +"form-data@^4.0.0": + "integrity" "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==" + "resolved" "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + "version" "4.0.0" + dependencies: + "asynckit" "^0.4.0" + "combined-stream" "^1.0.8" + "mime-types" "^2.1.12" + +"formidable@^2.0.1": + "integrity" "sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==" + "resolved" "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "dezalgo" "1.0.3" + "hexoid" "1.0.0" + "once" "1.4.0" + "qs" "6.9.3" + +"forwarded@0.2.0": + "integrity" "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + "resolved" "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz" + "version" "0.2.0" + +"fresh@0.5.2": + "integrity" "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + "resolved" "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz" + "version" "0.5.2" + +"fs-extra@^7.0.1": + "integrity" "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz" + "version" "7.0.1" + dependencies: + "graceful-fs" "^4.1.2" + "jsonfile" "^4.0.0" + "universalify" "^0.1.0" + +"fs-extra@^8.1.0": + "integrity" "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==" + "resolved" "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" + "version" "8.1.0" + dependencies: + "graceful-fs" "^4.2.0" + "jsonfile" "^4.0.0" + "universalify" "^0.1.0" + +"fs-minipass@^2.0.0": + "integrity" "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==" + "resolved" "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "minipass" "^3.0.0" + +"fs.realpath@^1.0.0": + "integrity" "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + "resolved" "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" + "version" "1.0.0" + +"ftp@^0.3.10": + "integrity" "sha512-faFVML1aBx2UoDStmLwv2Wptt4vw5x03xxX172nhA5Y5HBshW5JweqQ2W4xL4dezQTG8inJsuYcpPHHU3X5OTQ==" + "resolved" "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz" + "version" "0.3.10" + dependencies: + "readable-stream" "1.1.x" + "xregexp" "2.0.0" + +"function-bind@^1.1.1": + "integrity" "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "resolved" "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz" + "version" "1.1.1" + +"gauge@^3.0.0": + "integrity" "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==" + "resolved" "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "aproba" "^1.0.3 || ^2.0.0" + "color-support" "^1.1.2" + "console-control-strings" "^1.0.0" + "has-unicode" "^2.0.1" + "object-assign" "^4.1.1" + "signal-exit" "^3.0.0" + "string-width" "^4.2.3" + "strip-ansi" "^6.0.1" + "wide-align" "^1.1.2" + +"gauge@^4.0.3": + "integrity" "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==" + "resolved" "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz" + "version" "4.0.4" + dependencies: + "aproba" "^1.0.3 || ^2.0.0" + "color-support" "^1.1.3" + "console-control-strings" "^1.1.0" + "has-unicode" "^2.0.1" + "signal-exit" "^3.0.7" + "string-width" "^4.2.3" + "strip-ansi" "^6.0.1" + "wide-align" "^1.1.5" + +"generate-function@^2.3.1": + "integrity" "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==" + "resolved" "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz" + "version" "2.3.1" + dependencies: + "is-property" "^1.0.2" + +"gensync@^1.0.0-beta.2": + "integrity" "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + "resolved" "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + "version" "1.0.0-beta.2" + +"get-caller-file@^2.0.5": + "integrity" "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + "resolved" "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" + "version" "2.0.5" + +"get-intrinsic@^1.0.2", "get-intrinsic@^1.1.1": + "integrity" "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==" + "resolved" "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "function-bind" "^1.1.1" + "has" "^1.0.3" + "has-symbols" "^1.0.3" + +"get-package-type@^0.1.0": + "integrity" "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==" + "resolved" "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + "version" "0.1.0" + +"get-stream@^6.0.0": + "integrity" "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" + "resolved" "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + "version" "6.0.1" + +"get-uri@3": + "integrity" "sha512-+5s0SJbGoyiJTZZ2JTpFPLMPSch72KEqGOTvQsBqg0RBWvwhWUSYZFAtz3TPW0GXJuLBJPts1E241iHg+VRfhg==" + "resolved" "https://registry.npmjs.org/get-uri/-/get-uri-3.0.2.tgz" + "version" "3.0.2" dependencies: "@tootallnate/once" "1" - data-uri-to-buffer "3" - debug "4" - file-uri-to-path "2" - fs-extra "^8.1.0" - ftp "^0.3.10" - -glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.7, glob@^7.2.0: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^8.0.3: - version "8.0.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" - integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^5.0.1" - once "^1.3.0" - -global-prefix@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== - dependencies: - ini "^1.3.5" - kind-of "^6.0.2" - which "^1.3.1" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6, graceful-fs@^4.2.9: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== - dependencies: - get-intrinsic "^1.1.1" - -has-symbols@^1.0.1, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== - -has-unicode@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" - integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -helmet@^4.4.1: - version "4.6.0" - resolved "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz" - integrity sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg== - -hexoid@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz" - integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== - -highlight.js@^10.7.1: - version "10.7.3" - resolved "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz" - integrity sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A== - -html-escaper@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" - integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== - -htmlparser2@^8.0.1: - version "8.0.1" - resolved "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz" - integrity sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA== - dependencies: - domelementtype "^2.3.0" - domhandler "^5.0.2" - domutils "^3.0.1" - entities "^4.3.0" - -http-cache-semantics@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-errors@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" - integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== - dependencies: - depd "2.0.0" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses "2.0.1" - toidentifier "1.0.1" - -http-proxy-agent@^4.0.0, http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + "data-uri-to-buffer" "3" + "debug" "4" + "file-uri-to-path" "2" + "fs-extra" "^8.1.0" + "ftp" "^0.3.10" + +"glob-parent@~5.1.2": + "integrity" "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==" + "resolved" "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "is-glob" "^4.0.1" + +"glob@^7.0.0", "glob@^7.1.3", "glob@^7.1.4", "glob@^7.1.7", "glob@^7.2.0": + "integrity" "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==" + "resolved" "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" + "version" "7.2.3" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^3.1.1" + "once" "^1.3.0" + "path-is-absolute" "^1.0.0" + +"glob@^8.0.3": + "integrity" "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==" + "resolved" "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz" + "version" "8.0.3" + dependencies: + "fs.realpath" "^1.0.0" + "inflight" "^1.0.4" + "inherits" "2" + "minimatch" "^5.0.1" + "once" "^1.3.0" + +"global-prefix@^3.0.0": + "integrity" "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==" + "resolved" "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "ini" "^1.3.5" + "kind-of" "^6.0.2" + "which" "^1.3.1" + +"globals@^11.1.0": + "integrity" "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + "resolved" "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" + "version" "11.12.0" + +"graceful-fs@^4.1.11", "graceful-fs@^4.1.2", "graceful-fs@^4.1.6", "graceful-fs@^4.2.0", "graceful-fs@^4.2.6", "graceful-fs@^4.2.9": + "integrity" "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "resolved" "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + "version" "4.2.10" + +"has-flag@^3.0.0": + "integrity" "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" + "version" "3.0.0" + +"has-flag@^4.0.0": + "integrity" "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + "resolved" "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" + "version" "4.0.0" + +"has-property-descriptors@^1.0.0": + "integrity" "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==" + "resolved" "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" + "version" "1.0.0" + dependencies: + "get-intrinsic" "^1.1.1" + +"has-symbols@^1.0.1", "has-symbols@^1.0.3": + "integrity" "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "resolved" "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" + "version" "1.0.3" + +"has-unicode@^2.0.1": + "integrity" "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + "resolved" "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" + "version" "2.0.1" + +"has@^1.0.3": + "integrity" "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==" + "resolved" "https://registry.npmjs.org/has/-/has-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "function-bind" "^1.1.1" + +"helmet@^4.4.1": + "integrity" "sha512-HVqALKZlR95ROkrnesdhbbZJFi/rIVSoNq6f3jA/9u6MIbTsPh3xZwihjeI5+DO/2sOV6HMHooXcEOuwskHpTg==" + "resolved" "https://registry.npmjs.org/helmet/-/helmet-4.6.0.tgz" + "version" "4.6.0" + +"hexoid@1.0.0": + "integrity" "sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==" + "resolved" "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz" + "version" "1.0.0" + +"highlight.js@^10.7.1": + "integrity" "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==" + "resolved" "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz" + "version" "10.7.3" + +"html-escaper@^2.0.0": + "integrity" "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + "resolved" "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + "version" "2.0.2" + +"htmlparser2@^8.0.1": + "integrity" "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==" + "resolved" "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz" + "version" "8.0.1" + dependencies: + "domelementtype" "^2.3.0" + "domhandler" "^5.0.2" + "domutils" "^3.0.1" + "entities" "^4.3.0" + +"http-cache-semantics@^4.1.0": + "integrity" "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + "resolved" "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz" + "version" "4.1.0" + +"http-errors@2.0.0": + "integrity" "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==" + "resolved" "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "depd" "2.0.0" + "inherits" "2.0.4" + "setprototypeof" "1.2.0" + "statuses" "2.0.1" + "toidentifier" "1.0.1" + +"http-proxy-agent@^4.0.0", "http-proxy-agent@^4.0.1": + "integrity" "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==" + "resolved" "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" + "version" "4.0.1" dependencies: "@tootallnate/once" "1" - agent-base "6" - debug "4" + "agent-base" "6" + "debug" "4" -https-proxy-agent@5, https-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" - integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== +"https-proxy-agent@^5.0.0", "https-proxy-agent@5": + "integrity" "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==" + "resolved" "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" + "version" "5.0.1" dependencies: - agent-base "6" - debug "4" + "agent-base" "6" + "debug" "4" -human-signals@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" - integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +"human-signals@^2.1.0": + "integrity" "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==" + "resolved" "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + "version" "2.1.0" -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== +"humanize-ms@^1.2.1": + "integrity" "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==" + "resolved" "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" + "version" "1.2.1" dependencies: - ms "^2.0.0" + "ms" "^2.0.0" -i18next-http-middleware@^3.1.3: - version "3.2.1" - resolved "https://registry.npmjs.org/i18next-http-middleware/-/i18next-http-middleware-3.2.1.tgz" - integrity sha512-zBwXxDChT0YLoTXIR6jRuqnUUhXW0Iw7egoTnNXyaDRtTbfWNXwU0a53ThyuRPQ+k+tXu3ZMNKRzfLuononaRw== +"i18next-http-middleware@^3.1.3": + "integrity" "sha512-zBwXxDChT0YLoTXIR6jRuqnUUhXW0Iw7egoTnNXyaDRtTbfWNXwU0a53ThyuRPQ+k+tXu3ZMNKRzfLuononaRw==" + "resolved" "https://registry.npmjs.org/i18next-http-middleware/-/i18next-http-middleware-3.2.1.tgz" + "version" "3.2.1" -i18next-node-fs-backend@^2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.3.tgz" - integrity sha512-CreMFiVl3ChlMc5ys/e0QfuLFOZyFcL40Jj6jaKD6DxZ/GCUMxPI9BpU43QMWUgC7r+PClpxg2cGXAl0CjG04g== +"i18next-node-fs-backend@^2.1.3": + "integrity" "sha512-CreMFiVl3ChlMc5ys/e0QfuLFOZyFcL40Jj6jaKD6DxZ/GCUMxPI9BpU43QMWUgC7r+PClpxg2cGXAl0CjG04g==" + "resolved" "https://registry.npmjs.org/i18next-node-fs-backend/-/i18next-node-fs-backend-2.1.3.tgz" + "version" "2.1.3" dependencies: - js-yaml "3.13.1" - json5 "2.0.0" + "js-yaml" "3.13.1" + "json5" "2.0.0" -i18next@>=17.0.11, i18next@^21.8.14: - version "21.8.14" - resolved "https://registry.npmjs.org/i18next/-/i18next-21.8.14.tgz" - integrity sha512-4Yi+DtexvMm/Yw3Q9fllzY12SgLk+Mcmar+rCAccsOPul/2UmnBzoHbTGn/L48IPkFcmrNaH7xTLboBWIbH6pw== +"i18next@^21.8.14", "i18next@^21.9.0", "i18next@>=17.0.11": + "integrity" "sha512-B+6/yd7rCpJidyPuBaEApUECx7G8Ai6+tqYhrChsY4MmQqJhG7qJ4eT6Lm1OnRhieVelEtfxh4aAQktdNVZtDA==" + "resolved" "https://registry.npmjs.org/i18next/-/i18next-21.9.0.tgz" + "version" "21.9.0" dependencies: "@babel/runtime" "^7.17.2" -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.6.2, iconv-lite@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" +"iconv-lite@^0.6.2": + "integrity" "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + "version" "0.6.3" + dependencies: + "safer-buffer" ">= 2.1.2 < 3.0.0" + +"iconv-lite@^0.6.3": + "integrity" "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" + "version" "0.6.3" + dependencies: + "safer-buffer" ">= 2.1.2 < 3.0.0" + +"iconv-lite@0.4.24": + "integrity" "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==" + "resolved" "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" + "version" "0.4.24" + dependencies: + "safer-buffer" ">= 2.1.2 < 3" -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -image-size@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz" - integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg== - dependencies: - queue "6.0.2" - -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== - dependencies: - pkg-dir "^4.2.0" - resolve-cwd "^3.0.0" - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" - integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== - -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - -infer-owner@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" - integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -ini@^1.3.5: - version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -interpret@^1.0.0: - version "1.4.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== - -ip@^1.1.5: - version "1.1.8" - resolved "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz" - integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== - -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== - -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-core-module@^2.9.0: - version "2.9.0" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== - dependencies: - has "^1.0.3" - -is-docker@^2.0.0: - version "2.2.1" - resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" - integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-generator-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" - integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== - -is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -is-property@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" - integrity sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g== - -is-stream@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" - integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== - -is-wsl@^2.1.1: - version "2.2.0" - resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" - integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== - dependencies: - is-docker "^2.0.0" - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== - -istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: - version "5.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz" - integrity sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A== +"ieee754@^1.2.1": + "integrity" "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "resolved" "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" + "version" "1.2.1" + +"image-size@^1.0.0": + "integrity" "sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg==" + "resolved" "https://registry.npmjs.org/image-size/-/image-size-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "queue" "6.0.2" + +"import-local@^3.0.2": + "integrity" "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==" + "resolved" "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "pkg-dir" "^4.2.0" + "resolve-cwd" "^3.0.0" + +"imurmurhash@^0.1.4": + "integrity" "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==" + "resolved" "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" + "version" "0.1.4" + +"indent-string@^4.0.0": + "integrity" "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==" + "resolved" "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" + "version" "4.0.0" + +"infer-owner@^1.0.4": + "integrity" "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + "resolved" "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" + "version" "1.0.4" + +"inflight@^1.0.4": + "integrity" "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==" + "resolved" "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" + "version" "1.0.6" + dependencies: + "once" "^1.3.0" + "wrappy" "1" + +"inherits@^2.0.1", "inherits@^2.0.3", "inherits@~2.0.1", "inherits@~2.0.3", "inherits@2", "inherits@2.0.4": + "integrity" "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "resolved" "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" + "version" "2.0.4" + +"ini@^1.3.5": + "integrity" "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + "resolved" "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + "version" "1.3.8" + +"interpret@^1.0.0": + "integrity" "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + "resolved" "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" + "version" "1.4.0" + +"ip@^1.1.5": + "integrity" "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" + "resolved" "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz" + "version" "1.1.8" + +"ipaddr.js@1.9.1": + "integrity" "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + "resolved" "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + "version" "1.9.1" + +"is-arrayish@^0.2.1": + "integrity" "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + "resolved" "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" + "version" "0.2.1" + +"is-binary-path@~2.1.0": + "integrity" "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==" + "resolved" "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" + "version" "2.1.0" + dependencies: + "binary-extensions" "^2.0.0" + +"is-ci@^2.0.0": + "integrity" "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==" + "resolved" "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "ci-info" "^2.0.0" + +"is-core-module@^2.9.0": + "integrity" "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==" + "resolved" "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz" + "version" "2.9.0" + dependencies: + "has" "^1.0.3" + +"is-docker@^2.0.0": + "integrity" "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + "resolved" "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" + "version" "2.2.1" + +"is-extglob@^2.1.1": + "integrity" "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + "resolved" "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" + "version" "2.1.1" + +"is-fullwidth-code-point@^3.0.0": + "integrity" "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + "resolved" "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + "version" "3.0.0" + +"is-generator-fn@^2.0.0": + "integrity" "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==" + "resolved" "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + "version" "2.1.0" + +"is-glob@^4.0.1", "is-glob@~4.0.1": + "integrity" "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==" + "resolved" "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" + "version" "4.0.3" + dependencies: + "is-extglob" "^2.1.1" + +"is-lambda@^1.0.1": + "integrity" "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + "resolved" "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz" + "version" "1.0.1" + +"is-number@^7.0.0": + "integrity" "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + "resolved" "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + "version" "7.0.0" + +"is-property@^1.0.2": + "integrity" "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + "resolved" "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz" + "version" "1.0.2" + +"is-stream@^2.0.0": + "integrity" "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + "resolved" "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" + "version" "2.0.1" + +"is-wsl@^2.1.1": + "integrity" "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==" + "resolved" "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "is-docker" "^2.0.0" + +"isarray@~1.0.0": + "integrity" "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + "version" "1.0.0" + +"isarray@0.0.1": + "integrity" "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + "resolved" "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + "version" "0.0.1" + +"isexe@^2.0.0": + "integrity" "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + "resolved" "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + "version" "2.0.0" + +"istanbul-lib-coverage@^3.0.0", "istanbul-lib-coverage@^3.2.0": + "integrity" "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==" + "resolved" "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz" + "version" "3.2.0" + +"istanbul-lib-instrument@^5.0.4", "istanbul-lib-instrument@^5.1.0": + "integrity" "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==" + "resolved" "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz" + "version" "5.2.0" dependencies: "@babel/core" "^7.12.3" "@babel/parser" "^7.14.7" "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" + "istanbul-lib-coverage" "^3.2.0" + "semver" "^6.3.0" -istanbul-lib-report@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" - integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw== +"istanbul-lib-report@^3.0.0": + "integrity" "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==" + "resolved" "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz" + "version" "3.0.0" dependencies: - istanbul-lib-coverage "^3.0.0" - make-dir "^3.0.0" - supports-color "^7.1.0" + "istanbul-lib-coverage" "^3.0.0" + "make-dir" "^3.0.0" + "supports-color" "^7.1.0" -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== +"istanbul-lib-source-maps@^4.0.0": + "integrity" "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==" + "resolved" "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" + "version" "4.0.1" dependencies: - debug "^4.1.1" - istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" + "debug" "^4.1.1" + "istanbul-lib-coverage" "^3.0.0" + "source-map" "^0.6.1" -istanbul-reports@^3.1.3: - version "3.1.5" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz" - integrity sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w== +"istanbul-reports@^3.1.3": + "integrity" "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==" + "resolved" "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.5.tgz" + "version" "3.1.5" dependencies: - html-escaper "^2.0.0" - istanbul-lib-report "^3.0.0" + "html-escaper" "^2.0.0" + "istanbul-lib-report" "^3.0.0" -jest-changed-files@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz" - integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== +"jest-changed-files@^28.1.3": + "integrity" "sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==" + "resolved" "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-28.1.3.tgz" + "version" "28.1.3" dependencies: - execa "^5.0.0" - p-limit "^3.1.0" + "execa" "^5.0.0" + "p-limit" "^3.1.0" -jest-circus@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz" - integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== +"jest-circus@^28.1.3": + "integrity" "sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==" + "resolved" "https://registry.npmjs.org/jest-circus/-/jest-circus-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/environment" "^28.1.3" "@jest/expect" "^28.1.3" "@jest/test-result" "^28.1.3" "@jest/types" "^28.1.3" "@types/node" "*" - chalk "^4.0.0" - co "^4.6.0" - dedent "^0.7.0" - is-generator-fn "^2.0.0" - jest-each "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - p-limit "^3.1.0" - pretty-format "^28.1.3" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz" - integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== + "chalk" "^4.0.0" + "co" "^4.6.0" + "dedent" "^0.7.0" + "is-generator-fn" "^2.0.0" + "jest-each" "^28.1.3" + "jest-matcher-utils" "^28.1.3" + "jest-message-util" "^28.1.3" + "jest-runtime" "^28.1.3" + "jest-snapshot" "^28.1.3" + "jest-util" "^28.1.3" + "p-limit" "^3.1.0" + "pretty-format" "^28.1.3" + "slash" "^3.0.0" + "stack-utils" "^2.0.3" + +"jest-cli@^28.1.3": + "integrity" "sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==" + "resolved" "https://registry.npmjs.org/jest-cli/-/jest-cli-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/core" "^28.1.3" "@jest/test-result" "^28.1.3" "@jest/types" "^28.1.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - import-local "^3.0.2" - jest-config "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - prompts "^2.0.1" - yargs "^17.3.1" - -jest-config@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz" - integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== + "chalk" "^4.0.0" + "exit" "^0.1.2" + "graceful-fs" "^4.2.9" + "import-local" "^3.0.2" + "jest-config" "^28.1.3" + "jest-util" "^28.1.3" + "jest-validate" "^28.1.3" + "prompts" "^2.0.1" + "yargs" "^17.3.1" + +"jest-config@^28.1.3": + "integrity" "sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==" + "resolved" "https://registry.npmjs.org/jest-config/-/jest-config-28.1.3.tgz" + "version" "28.1.3" dependencies: "@babel/core" "^7.11.6" "@jest/test-sequencer" "^28.1.3" "@jest/types" "^28.1.3" - babel-jest "^28.1.3" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^28.1.3" - jest-environment-node "^28.1.3" - jest-get-type "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-runner "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - micromatch "^4.0.4" - parse-json "^5.2.0" - pretty-format "^28.1.3" - slash "^3.0.0" - strip-json-comments "^3.1.1" - -jest-diff@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz" - integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== - dependencies: - chalk "^4.0.0" - diff-sequences "^28.1.1" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" - -jest-docblock@^28.1.1: - version "28.1.1" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz" - integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== - dependencies: - detect-newline "^3.0.0" - -jest-each@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz" - integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== + "babel-jest" "^28.1.3" + "chalk" "^4.0.0" + "ci-info" "^3.2.0" + "deepmerge" "^4.2.2" + "glob" "^7.1.3" + "graceful-fs" "^4.2.9" + "jest-circus" "^28.1.3" + "jest-environment-node" "^28.1.3" + "jest-get-type" "^28.0.2" + "jest-regex-util" "^28.0.2" + "jest-resolve" "^28.1.3" + "jest-runner" "^28.1.3" + "jest-util" "^28.1.3" + "jest-validate" "^28.1.3" + "micromatch" "^4.0.4" + "parse-json" "^5.2.0" + "pretty-format" "^28.1.3" + "slash" "^3.0.0" + "strip-json-comments" "^3.1.1" + +"jest-diff@^28.1.3": + "integrity" "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==" + "resolved" "https://registry.npmjs.org/jest-diff/-/jest-diff-28.1.3.tgz" + "version" "28.1.3" + dependencies: + "chalk" "^4.0.0" + "diff-sequences" "^28.1.1" + "jest-get-type" "^28.0.2" + "pretty-format" "^28.1.3" + +"jest-docblock@^28.1.1": + "integrity" "sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==" + "resolved" "https://registry.npmjs.org/jest-docblock/-/jest-docblock-28.1.1.tgz" + "version" "28.1.1" + dependencies: + "detect-newline" "^3.0.0" + +"jest-each@^28.1.3": + "integrity" "sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==" + "resolved" "https://registry.npmjs.org/jest-each/-/jest-each-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/types" "^28.1.3" - chalk "^4.0.0" - jest-get-type "^28.0.2" - jest-util "^28.1.3" - pretty-format "^28.1.3" + "chalk" "^4.0.0" + "jest-get-type" "^28.0.2" + "jest-util" "^28.1.3" + "pretty-format" "^28.1.3" -jest-environment-node@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz" - integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== +"jest-environment-node@^28.1.3": + "integrity" "sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==" + "resolved" "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/environment" "^28.1.3" "@jest/fake-timers" "^28.1.3" "@jest/types" "^28.1.3" "@types/node" "*" - jest-mock "^28.1.3" - jest-util "^28.1.3" + "jest-mock" "^28.1.3" + "jest-util" "^28.1.3" -jest-expect-message@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/jest-expect-message/-/jest-expect-message-1.0.2.tgz" - integrity sha512-WFiXMgwS2lOqQZt1iJMI/hOXpUm32X+ApsuzYcQpW5m16Pv6/Gd9kgC+Q+Q1YVNU04kYcAOv9NXMnjg6kKUy6Q== +"jest-expect-message@^1.0.2": + "integrity" "sha512-WFiXMgwS2lOqQZt1iJMI/hOXpUm32X+ApsuzYcQpW5m16Pv6/Gd9kgC+Q+Q1YVNU04kYcAOv9NXMnjg6kKUy6Q==" + "resolved" "https://registry.npmjs.org/jest-expect-message/-/jest-expect-message-1.0.2.tgz" + "version" "1.0.2" -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== +"jest-get-type@^28.0.2": + "integrity" "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==" + "resolved" "https://registry.npmjs.org/jest-get-type/-/jest-get-type-28.0.2.tgz" + "version" "28.0.2" -jest-haste-map@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz" - integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== +"jest-haste-map@^28.1.3": + "integrity" "sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==" + "resolved" "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/types" "^28.1.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" - jest-worker "^28.1.3" - micromatch "^4.0.4" - walker "^1.0.8" + "anymatch" "^3.0.3" + "fb-watchman" "^2.0.0" + "graceful-fs" "^4.2.9" + "jest-regex-util" "^28.0.2" + "jest-util" "^28.1.3" + "jest-worker" "^28.1.3" + "micromatch" "^4.0.4" + "walker" "^1.0.8" optionalDependencies: - fsevents "^2.3.2" + "fsevents" "^2.3.2" -jest-leak-detector@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz" - integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== +"jest-leak-detector@^28.1.3": + "integrity" "sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==" + "resolved" "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz" + "version" "28.1.3" dependencies: - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + "jest-get-type" "^28.0.2" + "pretty-format" "^28.1.3" -jest-matcher-utils@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz" - integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== +"jest-matcher-utils@^28.1.3": + "integrity" "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==" + "resolved" "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz" + "version" "28.1.3" dependencies: - chalk "^4.0.0" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + "chalk" "^4.0.0" + "jest-diff" "^28.1.3" + "jest-get-type" "^28.0.2" + "pretty-format" "^28.1.3" -jest-message-util@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz" - integrity sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g== +"jest-message-util@^28.1.3": + "integrity" "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==" + "resolved" "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz" + "version" "28.1.3" dependencies: "@babel/code-frame" "^7.12.13" "@jest/types" "^28.1.3" "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^28.1.3" - slash "^3.0.0" - stack-utils "^2.0.3" - -jest-mock@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz" - integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== + "chalk" "^4.0.0" + "graceful-fs" "^4.2.9" + "micromatch" "^4.0.4" + "pretty-format" "^28.1.3" + "slash" "^3.0.0" + "stack-utils" "^2.0.3" + +"jest-mock@^28.1.3": + "integrity" "sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==" + "resolved" "https://registry.npmjs.org/jest-mock/-/jest-mock-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/types" "^28.1.3" "@types/node" "*" -jest-pnp-resolver@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" - integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== - -jest-regex-util@^28.0.2: - version "28.0.2" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz" - integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== - -jest-resolve-dependencies@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz" - integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== - dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.1.3" - -jest-resolve@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz" - integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-pnp-resolver "^1.2.2" - jest-util "^28.1.3" - jest-validate "^28.1.3" - resolve "^1.20.0" - resolve.exports "^1.1.0" - slash "^3.0.0" - -jest-runner@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz" - integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== +"jest-pnp-resolver@^1.2.2": + "integrity" "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==" + "resolved" "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz" + "version" "1.2.2" + +"jest-regex-util@^28.0.2": + "integrity" "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==" + "resolved" "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz" + "version" "28.0.2" + +"jest-resolve-dependencies@^28.1.3": + "integrity" "sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==" + "resolved" "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz" + "version" "28.1.3" + dependencies: + "jest-regex-util" "^28.0.2" + "jest-snapshot" "^28.1.3" + +"jest-resolve@*", "jest-resolve@^28.1.3": + "integrity" "sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==" + "resolved" "https://registry.npmjs.org/jest-resolve/-/jest-resolve-28.1.3.tgz" + "version" "28.1.3" + dependencies: + "chalk" "^4.0.0" + "graceful-fs" "^4.2.9" + "jest-haste-map" "^28.1.3" + "jest-pnp-resolver" "^1.2.2" + "jest-util" "^28.1.3" + "jest-validate" "^28.1.3" + "resolve" "^1.20.0" + "resolve.exports" "^1.1.0" + "slash" "^3.0.0" + +"jest-runner@^28.1.3": + "integrity" "sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==" + "resolved" "https://registry.npmjs.org/jest-runner/-/jest-runner-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/console" "^28.1.3" "@jest/environment" "^28.1.3" @@ -4496,26 +4554,26 @@ jest-runner@^28.1.3: "@jest/transform" "^28.1.3" "@jest/types" "^28.1.3" "@types/node" "*" - chalk "^4.0.0" - emittery "^0.10.2" - graceful-fs "^4.2.9" - jest-docblock "^28.1.1" - jest-environment-node "^28.1.3" - jest-haste-map "^28.1.3" - jest-leak-detector "^28.1.3" - jest-message-util "^28.1.3" - jest-resolve "^28.1.3" - jest-runtime "^28.1.3" - jest-util "^28.1.3" - jest-watcher "^28.1.3" - jest-worker "^28.1.3" - p-limit "^3.1.0" - source-map-support "0.5.13" - -jest-runtime@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz" - integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== + "chalk" "^4.0.0" + "emittery" "^0.10.2" + "graceful-fs" "^4.2.9" + "jest-docblock" "^28.1.1" + "jest-environment-node" "^28.1.3" + "jest-haste-map" "^28.1.3" + "jest-leak-detector" "^28.1.3" + "jest-message-util" "^28.1.3" + "jest-resolve" "^28.1.3" + "jest-runtime" "^28.1.3" + "jest-util" "^28.1.3" + "jest-watcher" "^28.1.3" + "jest-worker" "^28.1.3" + "p-limit" "^3.1.0" + "source-map-support" "0.5.13" + +"jest-runtime@^28.1.3": + "integrity" "sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==" + "resolved" "https://registry.npmjs.org/jest-runtime/-/jest-runtime-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/environment" "^28.1.3" "@jest/fake-timers" "^28.1.3" @@ -4524,26 +4582,26 @@ jest-runtime@^28.1.3: "@jest/test-result" "^28.1.3" "@jest/transform" "^28.1.3" "@jest/types" "^28.1.3" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - execa "^5.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - slash "^3.0.0" - strip-bom "^4.0.0" - -jest-snapshot@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz" - integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== + "chalk" "^4.0.0" + "cjs-module-lexer" "^1.0.0" + "collect-v8-coverage" "^1.0.0" + "execa" "^5.0.0" + "glob" "^7.1.3" + "graceful-fs" "^4.2.9" + "jest-haste-map" "^28.1.3" + "jest-message-util" "^28.1.3" + "jest-mock" "^28.1.3" + "jest-regex-util" "^28.0.2" + "jest-resolve" "^28.1.3" + "jest-snapshot" "^28.1.3" + "jest-util" "^28.1.3" + "slash" "^3.0.0" + "strip-bom" "^4.0.0" + +"jest-snapshot@^28.1.3": + "integrity" "sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==" + "resolved" "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-28.1.3.tgz" + "version" "28.1.3" dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -4555,2248 +4613,2358 @@ jest-snapshot@^28.1.3: "@jest/types" "^28.1.3" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^28.1.3" - graceful-fs "^4.2.9" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - jest-haste-map "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - natural-compare "^1.4.0" - pretty-format "^28.1.3" - semver "^7.3.5" - -jest-util@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz" - integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== + "babel-preset-current-node-syntax" "^1.0.0" + "chalk" "^4.0.0" + "expect" "^28.1.3" + "graceful-fs" "^4.2.9" + "jest-diff" "^28.1.3" + "jest-get-type" "^28.0.2" + "jest-haste-map" "^28.1.3" + "jest-matcher-utils" "^28.1.3" + "jest-message-util" "^28.1.3" + "jest-util" "^28.1.3" + "natural-compare" "^1.4.0" + "pretty-format" "^28.1.3" + "semver" "^7.3.5" + +"jest-util@^28.1.3": + "integrity" "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==" + "resolved" "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/types" "^28.1.3" "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" + "chalk" "^4.0.0" + "ci-info" "^3.2.0" + "graceful-fs" "^4.2.9" + "picomatch" "^2.2.3" -jest-validate@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz" - integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== +"jest-validate@^28.1.3": + "integrity" "sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==" + "resolved" "https://registry.npmjs.org/jest-validate/-/jest-validate-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/types" "^28.1.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^28.0.2" - leven "^3.1.0" - pretty-format "^28.1.3" + "camelcase" "^6.2.0" + "chalk" "^4.0.0" + "jest-get-type" "^28.0.2" + "leven" "^3.1.0" + "pretty-format" "^28.1.3" -jest-watcher@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz" - integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== +"jest-watcher@^28.1.3": + "integrity" "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==" + "resolved" "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/test-result" "^28.1.3" "@jest/types" "^28.1.3" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - emittery "^0.10.2" - jest-util "^28.1.3" - string-length "^4.0.1" + "ansi-escapes" "^4.2.1" + "chalk" "^4.0.0" + "emittery" "^0.10.2" + "jest-util" "^28.1.3" + "string-length" "^4.0.1" -jest-worker@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz" - integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== +"jest-worker@^28.1.3": + "integrity" "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==" + "resolved" "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz" + "version" "28.1.3" dependencies: "@types/node" "*" - merge-stream "^2.0.0" - supports-color "^8.0.0" + "merge-stream" "^2.0.0" + "supports-color" "^8.0.0" -jest@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz" - integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== +"jest@^28.1.3": + "integrity" "sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==" + "resolved" "https://registry.npmjs.org/jest/-/jest-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/core" "^28.1.3" "@jest/types" "^28.1.3" - import-local "^3.0.2" - jest-cli "^28.1.3" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@3.13.1, js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -js-yaml@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" - integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== - dependencies: - argparse "^2.0.1" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" - integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== - -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - -json5@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/json5/-/json5-2.0.0.tgz" - integrity sha512-0EdQvHuLm7yJ7lyG5dp7Q3X2ku++BG5ZHaJ5FTnaXpKqDrw4pMxel5Bt3oAYMthnrthFBdnZ1FcsXTPyrQlV0w== - dependencies: - minimist "^1.2.0" - -json5@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" - integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA== - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" - integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + "import-local" "^3.0.2" + "jest-cli" "^28.1.3" + +"js-tokens@^4.0.0": + "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + "version" "4.0.0" + +"js-yaml@^3.13.1", "js-yaml@3.13.1": + "integrity" "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz" + "version" "3.13.1" + dependencies: + "argparse" "^1.0.7" + "esprima" "^4.0.0" + +"js-yaml@^4.1.0": + "integrity" "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==" + "resolved" "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "argparse" "^2.0.1" + +"jsesc@^2.5.1": + "integrity" "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" + "version" "2.5.2" + +"jsesc@~0.5.0": + "integrity" "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==" + "resolved" "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" + "version" "0.5.0" + +"json-parse-even-better-errors@^2.3.0": + "integrity" "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + "resolved" "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" + "version" "2.3.1" + +"json-schema-traverse@^1.0.0": + "integrity" "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "resolved" "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" + "version" "1.0.0" + +"json5@^2.2.1": + "integrity" "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz" + "version" "2.2.1" + +"json5@2.0.0": + "integrity" "sha512-0EdQvHuLm7yJ7lyG5dp7Q3X2ku++BG5ZHaJ5FTnaXpKqDrw4pMxel5Bt3oAYMthnrthFBdnZ1FcsXTPyrQlV0w==" + "resolved" "https://registry.npmjs.org/json5/-/json5-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "minimist" "^1.2.0" + +"jsonfile@^4.0.0": + "integrity" "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==" + "resolved" "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" + "version" "4.0.0" + optionalDependencies: + "graceful-fs" "^4.1.6" + +"jsonwebtoken@^8.5.1": + "integrity" "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==" + "resolved" "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz" + "version" "8.5.1" + dependencies: + "jws" "^3.2.2" + "lodash.includes" "^4.3.0" + "lodash.isboolean" "^3.0.3" + "lodash.isinteger" "^4.0.4" + "lodash.isnumber" "^3.0.3" + "lodash.isplainobject" "^4.0.6" + "lodash.isstring" "^4.0.1" + "lodash.once" "^4.0.0" + "ms" "^2.1.1" + "semver" "^5.6.0" + +"jwa@^1.4.1": + "integrity" "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==" + "resolved" "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz" + "version" "1.4.1" + dependencies: + "buffer-equal-constant-time" "1.0.1" + "ecdsa-sig-formatter" "1.0.11" + "safe-buffer" "^5.0.1" + +"jws@^3.2.2": + "integrity" "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==" + "resolved" "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz" + "version" "3.2.2" + dependencies: + "jwa" "^1.4.1" + "safe-buffer" "^5.0.1" + +"kind-of@^6.0.2": + "integrity" "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + "resolved" "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" + "version" "6.0.3" + +"klaw-sync@^6.0.0": + "integrity" "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==" + "resolved" "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "graceful-fs" "^4.1.11" + +"kleur@^3.0.3": + "integrity" "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==" + "resolved" "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" + "version" "3.0.3" + +"lambert-server@^1.2.12": + "integrity" "sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw==" + "resolved" "https://registry.npmjs.org/lambert-server/-/lambert-server-1.2.12.tgz" + "version" "1.2.12" + dependencies: + "body-parser" "^1.19.0" + "chalk" "^4.1.1" + "express" "^4.17.1" + "express-async-errors" "^3.1.1" + "helmet" "^4.4.1" + "missing-native-js-functions" "^1.2.11" + +"leven@^3.1.0": + "integrity" "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" + "resolved" "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + "version" "3.1.0" + +"levn@~0.3.0": + "integrity" "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==" + "resolved" "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" + "version" "0.3.0" + dependencies: + "prelude-ls" "~1.1.2" + "type-check" "~0.3.2" + +"lines-and-columns@^1.1.6": + "integrity" "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + "resolved" "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" + "version" "1.2.4" + +"locate-path@^5.0.0": + "integrity" "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==" + "resolved" "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "p-locate" "^4.1.0" + +"lodash.debounce@^4.0.8": + "integrity" "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "resolved" "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" + "version" "4.0.8" + +"lodash.includes@^4.3.0": + "integrity" "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + "resolved" "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" + "version" "4.3.0" + +"lodash.isboolean@^3.0.3": + "integrity" "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + "resolved" "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" + "version" "3.0.3" + +"lodash.isinteger@^4.0.4": + "integrity" "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + "resolved" "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz" + "version" "4.0.4" + +"lodash.isnumber@^3.0.3": + "integrity" "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + "resolved" "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz" + "version" "3.0.3" + +"lodash.isplainobject@^4.0.6": + "integrity" "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + "resolved" "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" + "version" "4.0.6" + +"lodash.isstring@^4.0.1": + "integrity" "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + "resolved" "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" + "version" "4.0.1" + +"lodash.once@^4.0.0": + "integrity" "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + "resolved" "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" + "version" "4.1.1" + +"long@^4.0.0": + "integrity" "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + "resolved" "https://registry.npmjs.org/long/-/long-4.0.0.tgz" + "version" "4.0.0" + +"lru_map@^0.3.3": + "integrity" "sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==" + "resolved" "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" + "version" "0.3.3" + +"lru-cache@^4.1.3": + "integrity" "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz" + "version" "4.1.5" + dependencies: + "pseudomap" "^1.0.2" + "yallist" "^2.1.2" + +"lru-cache@^5.1.1": + "integrity" "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" + "version" "5.1.1" + dependencies: + "yallist" "^3.0.2" + +"lru-cache@^6.0.0": + "integrity" "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==" + "resolved" "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" + "version" "6.0.0" + dependencies: + "yallist" "^4.0.0" + +"make-dir@^3.0.0", "make-dir@^3.1.0": + "integrity" "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==" + "resolved" "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" + "version" "3.1.0" + dependencies: + "semver" "^6.0.0" + +"make-error@^1.1.1": + "integrity" "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "resolved" "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" + "version" "1.3.6" + +"make-fetch-happen@^9.1.0": + "integrity" "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==" + "resolved" "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz" + "version" "9.1.0" + dependencies: + "agentkeepalive" "^4.1.3" + "cacache" "^15.2.0" + "http-cache-semantics" "^4.1.0" + "http-proxy-agent" "^4.0.1" + "https-proxy-agent" "^5.0.0" + "is-lambda" "^1.0.1" + "lru-cache" "^6.0.0" + "minipass" "^3.1.3" + "minipass-collect" "^1.0.2" + "minipass-fetch" "^1.3.2" + "minipass-flush" "^1.0.5" + "minipass-pipeline" "^1.2.4" + "negotiator" "^0.6.2" + "promise-retry" "^2.0.1" + "socks-proxy-agent" "^6.0.0" + "ssri" "^8.0.0" + +"makeerror@1.0.12": + "integrity" "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==" + "resolved" "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + "version" "1.0.12" + dependencies: + "tmpl" "1.0.5" + +"media-typer@0.3.0": + "integrity" "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + "resolved" "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" + "version" "0.3.0" + +"memory-pager@^1.0.2": + "integrity" "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==" + "resolved" "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz" + "version" "1.5.0" + +"merge-descriptors@1.0.1": + "integrity" "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "resolved" "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" + "version" "1.0.1" + +"merge-stream@^2.0.0": + "integrity" "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "resolved" "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + "version" "2.0.0" + +"methods@^1.1.2", "methods@~1.1.2": + "integrity" "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + "resolved" "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" + "version" "1.1.2" + +"micromatch@^4.0.2", "micromatch@^4.0.4": + "integrity" "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==" + "resolved" "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" + "version" "4.0.5" + dependencies: + "braces" "^3.0.2" + "picomatch" "^2.3.1" + +"mime-db@1.52.0": + "integrity" "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "resolved" "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + "version" "1.52.0" + +"mime-types@^2.1.12", "mime-types@~2.1.24", "mime-types@~2.1.34": + "integrity" "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==" + "resolved" "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + "version" "2.1.35" + dependencies: + "mime-db" "1.52.0" + +"mime@1.6.0": + "integrity" "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + "resolved" "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" + "version" "1.6.0" + +"mime@2.6.0": + "integrity" "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==" + "resolved" "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" + "version" "2.6.0" + +"mimic-fn@^2.1.0": + "integrity" "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + "resolved" "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" + "version" "2.1.0" + +"mimic-response@^2.0.0": + "integrity" "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" + "resolved" "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz" + "version" "2.1.0" + +"minimatch@^3.0.4", "minimatch@^3.1.1": + "integrity" "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + "version" "3.1.2" + dependencies: + "brace-expansion" "^1.1.7" + +"minimatch@^5.0.1": + "integrity" "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==" + "resolved" "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "brace-expansion" "^2.0.1" + +"minimist@^1.2.0", "minimist@^1.2.6": + "integrity" "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" + "version" "1.2.6" + +"minipass-collect@^1.0.2": + "integrity" "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==" + "resolved" "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz" + "version" "1.0.2" + dependencies: + "minipass" "^3.0.0" + +"minipass-fetch@^1.3.2": + "integrity" "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==" + "resolved" "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz" + "version" "1.4.1" + dependencies: + "minipass" "^3.1.0" + "minipass-sized" "^1.0.3" + "minizlib" "^2.0.0" optionalDependencies: - graceful-fs "^4.1.6" - -jsonwebtoken@^8.5.1: - version "8.5.1" - resolved "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz" - integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== - dependencies: - jws "^3.2.2" - lodash.includes "^4.3.0" - lodash.isboolean "^3.0.3" - lodash.isinteger "^4.0.4" - lodash.isnumber "^3.0.3" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.once "^4.0.0" - ms "^2.1.1" - semver "^5.6.0" - -jwa@^1.4.1: - version "1.4.1" - resolved "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz" - integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== - dependencies: - buffer-equal-constant-time "1.0.1" - ecdsa-sig-formatter "1.0.11" - safe-buffer "^5.0.1" - -jws@^3.2.2: - version "3.2.2" - resolved "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz" - integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== - dependencies: - jwa "^1.4.1" - safe-buffer "^5.0.1" - -kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -klaw-sync@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz" - integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== - dependencies: - graceful-fs "^4.1.11" - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - -lambert-server@^1.2.12: - version "1.2.12" - resolved "https://registry.npmjs.org/lambert-server/-/lambert-server-1.2.12.tgz" - integrity sha512-TY6k60KLVfBpPrl9lcrN54RJdTBg9f8JqJPoHg5d/FMLnnwwQtT4budpoQjyLDwBLhS+zpXo0aBCwnnGgTVGaw== - dependencies: - body-parser "^1.19.0" - chalk "^4.1.1" - express "^4.17.1" - express-async-errors "^3.1.1" - helmet "^4.4.1" - missing-native-js-functions "^1.2.11" - -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" - integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" - integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== - -lodash.includes@^4.3.0: - version "4.3.0" - resolved "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz" - integrity sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w== - -lodash.isboolean@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz" - integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== - -lodash.isinteger@^4.0.4: - version "4.0.4" - resolved "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz" - integrity sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA== - -lodash.isnumber@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz" - integrity sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw== - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" - integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== - -lodash.isstring@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz" - integrity sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw== - -lodash.once@^4.0.0: - version "4.1.1" - resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" - integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - -lru-cache@^4.1.3: - version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" - -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -lru_map@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz" - integrity sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ== - -make-dir@^3.0.0, make-dir@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -make-error@^1.1.1: - version "1.3.6" - resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" - integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== - -make-fetch-happen@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" - integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== - dependencies: - agentkeepalive "^4.1.3" - cacache "^15.2.0" - http-cache-semantics "^4.1.0" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^6.0.0" - minipass "^3.1.3" - minipass-collect "^1.0.2" - minipass-fetch "^1.3.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.4" - negotiator "^0.6.2" - promise-retry "^2.0.1" - socks-proxy-agent "^6.0.0" - ssri "^8.0.0" - -makeerror@1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" - integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== - dependencies: - tmpl "1.0.5" - -media-typer@0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz" - integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== - -merge-descriptors@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz" - integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== - -merge-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== - -methods@^1.1.2, methods@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz" - integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== - -micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime@1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@2.6.0: - version "2.6.0" - resolved "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz" - integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== - -mimic-fn@^2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== - -mimic-response@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz" - integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== - -minimatch@^3.0.4, minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== - dependencies: - brace-expansion "^2.0.1" - -minimist@^1.2.0, minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -minipass-collect@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== - dependencies: - minipass "^3.0.0" - -minipass-fetch@^1.3.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" - integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== - dependencies: - minipass "^3.1.0" - minipass-sized "^1.0.3" - minizlib "^2.0.0" + "encoding" "^0.1.12" + +"minipass-flush@^1.0.5": + "integrity" "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==" + "resolved" "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "minipass" "^3.0.0" + +"minipass-pipeline@^1.2.2", "minipass-pipeline@^1.2.4": + "integrity" "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==" + "resolved" "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" + "version" "1.2.4" + dependencies: + "minipass" "^3.0.0" + +"minipass-sized@^1.0.3": + "integrity" "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==" + "resolved" "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "minipass" "^3.0.0" + +"minipass@^3.0.0", "minipass@^3.1.0", "minipass@^3.1.1", "minipass@^3.1.3": + "integrity" "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==" + "resolved" "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz" + "version" "3.3.4" + dependencies: + "yallist" "^4.0.0" + +"minizlib@^2.0.0", "minizlib@^2.1.1": + "integrity" "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==" + "resolved" "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" + "version" "2.1.2" + dependencies: + "minipass" "^3.0.0" + "yallist" "^4.0.0" + +"missing-native-js-functions@^1.2.11", "missing-native-js-functions@^1.2.18": + "integrity" "sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg==" + "resolved" "https://registry.npmjs.org/missing-native-js-functions/-/missing-native-js-functions-1.2.18.tgz" + "version" "1.2.18" + +"mkdirp@^0.5.4": + "integrity" "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" + "version" "0.5.6" + dependencies: + "minimist" "^1.2.6" + +"mkdirp@^1.0.3": + "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + "version" "1.0.4" + +"mkdirp@^1.0.4": + "integrity" "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + "resolved" "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" + "version" "1.0.4" + +"mongodb@^3.6.0": + "integrity" "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==" + "resolved" "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz" + "version" "3.7.3" + dependencies: + "bl" "^2.2.1" + "bson" "^1.1.4" + "denque" "^1.4.1" + "optional-require" "^1.1.8" + "safe-buffer" "^5.1.2" optionalDependencies: - encoding "^0.1.12" - -minipass-flush@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" - integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== - dependencies: - minipass "^3.0.0" - -minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: - version "3.3.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== - dependencies: - yallist "^4.0.0" - -minizlib@^2.0.0, minizlib@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" - integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== - dependencies: - minipass "^3.0.0" - yallist "^4.0.0" - -missing-native-js-functions@^1.2.11, missing-native-js-functions@^1.2.18: - version "1.2.18" - resolved "https://registry.npmjs.org/missing-native-js-functions/-/missing-native-js-functions-1.2.18.tgz" - integrity sha512-TZr1muzDE4kfu0LHDzg63O7m2qW3Gpyc875ki8+YlSRj+4ibZRv0ySQ0cSB06GoBL9ejeehLmkQnybLpp9jYcg== - -mkdirp@^0.5.4: - version "0.5.6" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz" - integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== - dependencies: - minimist "^1.2.6" - -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - -morgan@^1.10.0: - version "1.10.0" - resolved "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz" - integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== - dependencies: - basic-auth "~2.0.1" - debug "2.6.9" - depd "~2.0.0" - on-finished "~2.3.0" - on-headers "~1.0.2" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - -ms@2.1.2, ms@^2.1.1: - version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@2.1.3, ms@^2.0.0: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -multer@^1.4.5-lts.1: - version "1.4.5-lts.1" - resolved "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz" - integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== - dependencies: - append-field "^1.0.0" - busboy "^1.0.0" - concat-stream "^1.5.2" - mkdirp "^0.5.4" - object-assign "^4.1.1" - type-is "^1.6.4" - xtend "^4.0.0" - -mysql2@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/mysql2/-/mysql2-2.3.3.tgz#944f3deca4b16629052ff8614fbf89d5552545a0" - integrity sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA== - dependencies: - denque "^2.0.1" - generate-function "^2.3.1" - iconv-lite "^0.6.3" - long "^4.0.0" - lru-cache "^6.0.0" - named-placeholders "^1.1.2" - seq-queue "^0.0.5" - sqlstring "^2.3.2" - -mz@^2.4.0: - version "2.7.0" - resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" - integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== - dependencies: - any-promise "^1.0.0" - object-assign "^4.0.1" - thenify-all "^1.0.0" - -named-placeholders@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/named-placeholders/-/named-placeholders-1.1.2.tgz#ceb1fbff50b6b33492b5cf214ccf5e39cef3d0e8" - integrity sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA== - dependencies: - lru-cache "^4.1.3" - -nan@^2.15.0: - version "2.16.0" - resolved "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz" - integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== - -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" - integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== - -negotiator@0.6.3, negotiator@^0.6.2: - version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - -netmask@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" - integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-2fa@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/node-2fa/-/node-2fa-2.0.3.tgz" - integrity sha512-PQldrOhjuoZyoydMvMSctllPN1ZPZ1/NwkEcgYwY9faVqE/OymxR+3awPpbWZxm6acLKqvmNqQmdqTsqYyflFw== + "saslprep" "^1.0.0" + +"morgan@^1.10.0": + "integrity" "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==" + "resolved" "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz" + "version" "1.10.0" + dependencies: + "basic-auth" "~2.0.1" + "debug" "2.6.9" + "depd" "~2.0.0" + "on-finished" "~2.3.0" + "on-headers" "~1.0.2" + +"ms@^2.0.0", "ms@^2.1.1", "ms@2.1.2": + "integrity" "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + "version" "2.1.2" + +"ms@2.0.0": + "integrity" "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" + "version" "2.0.0" + +"ms@2.1.3": + "integrity" "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "resolved" "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + "version" "2.1.3" + +"multer@^1.4.5-lts.1": + "integrity" "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==" + "resolved" "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz" + "version" "1.4.5-lts.1" + dependencies: + "append-field" "^1.0.0" + "busboy" "^1.0.0" + "concat-stream" "^1.5.2" + "mkdirp" "^0.5.4" + "object-assign" "^4.1.1" + "type-is" "^1.6.4" + "xtend" "^4.0.0" + +"mysql2@^2.2.5", "mysql2@^2.3.3": + "integrity" "sha512-wxJUev6LgMSgACDkb/InIFxDprRa6T95+VEoR+xPvtngtccNH2dGjEB/fVZ8yg1gWv1510c9CvXuJHi5zUm0ZA==" + "resolved" "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz" + "version" "2.3.3" + dependencies: + "denque" "^2.0.1" + "generate-function" "^2.3.1" + "iconv-lite" "^0.6.3" + "long" "^4.0.0" + "lru-cache" "^6.0.0" + "named-placeholders" "^1.1.2" + "seq-queue" "^0.0.5" + "sqlstring" "^2.3.2" + +"mz@^2.4.0": + "integrity" "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==" + "resolved" "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz" + "version" "2.7.0" + dependencies: + "any-promise" "^1.0.0" + "object-assign" "^4.0.1" + "thenify-all" "^1.0.0" + +"named-placeholders@^1.1.2": + "integrity" "sha512-wiFWqxoLL3PGVReSZpjLVxyJ1bRqe+KKJVbr4hGs1KWfTZTQyezHFBbuKj9hsizHyGV2ne7EMjHdxEGAybD5SA==" + "resolved" "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.2.tgz" + "version" "1.1.2" + dependencies: + "lru-cache" "^4.1.3" + +"nan@^2.15.0": + "integrity" "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==" + "resolved" "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz" + "version" "2.16.0" + +"natural-compare@^1.4.0": + "integrity" "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + "resolved" "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + "version" "1.4.0" + +"negotiator@^0.6.2", "negotiator@0.6.3": + "integrity" "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + "resolved" "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + "version" "0.6.3" + +"netmask@^2.0.2": + "integrity" "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==" + "resolved" "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" + "version" "2.0.2" + +"nice-try@^1.0.4": + "integrity" "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + "resolved" "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz" + "version" "1.0.5" + +"node-2fa@^2.0.3": + "integrity" "sha512-PQldrOhjuoZyoydMvMSctllPN1ZPZ1/NwkEcgYwY9faVqE/OymxR+3awPpbWZxm6acLKqvmNqQmdqTsqYyflFw==" + "resolved" "https://registry.npmjs.org/node-2fa/-/node-2fa-2.0.3.tgz" + "version" "2.0.3" dependencies: "@types/notp" "^2.0.0" - notp "^2.0.3" - thirty-two "1.0.2" - tslib "^2.1.0" - -node-addon-api@^3.1.0: - version "3.2.1" - resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz" - integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== - -node-addon-api@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-4.3.0.tgz#52a1a0b475193e0928e98e0426a0d1254782b77f" - integrity sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ== - -node-fetch@^2.6.7: - version "2.6.7" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - -node-gyp@8.x: - version "8.4.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" - integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== - dependencies: - env-paths "^2.2.0" - glob "^7.1.4" - graceful-fs "^4.2.6" - make-fetch-happen "^9.1.0" - nopt "^5.0.0" - npmlog "^6.0.0" - rimraf "^3.0.2" - semver "^7.3.5" - tar "^6.1.2" - which "^2.0.2" - -node-int64@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" - integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== - -node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== - -nopt@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" - integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== - dependencies: - abbrev "1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -notp@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/notp/-/notp-2.0.3.tgz" - integrity sha512-oBig/2uqkjQ5AkBuw4QJYwkEWa/q+zHxI5/I5z6IeP2NT0alpJFsP/trrfCC+9xOAgQSZXssNi962kp5KBmypQ== - -npm-run-path@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" - integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== - dependencies: - path-key "^3.0.0" - -npmlog@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" - integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== - dependencies: - are-we-there-yet "^2.0.0" - console-control-strings "^1.1.0" - gauge "^3.0.0" - set-blocking "^2.0.0" - -npmlog@^6.0.0: - version "6.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" - integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== - dependencies: - are-we-there-yet "^3.0.0" - console-control-strings "^1.1.0" - gauge "^4.0.3" - set-blocking "^2.0.0" - -nth-check@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" - integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== - dependencies: - boolbase "^1.0.0" - -object-assign@^4.0.1, object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" - integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== - -object-inspect@^1.9.0: - version "1.12.2" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" - integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== - -object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object.assign@^4.1.0: - version "4.1.2" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -on-finished@2.4.1: - version "2.4.1" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" - integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== - dependencies: - ee-first "1.1.1" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" - integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== - dependencies: - ee-first "1.1.1" - -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - -once@1.4.0, once@^1.3.0, once@^1.3.1: - version "1.4.0" - resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" - integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== - dependencies: - wrappy "1" - -onetime@^5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" - integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== - dependencies: - mimic-fn "^2.1.0" - -open@^7.4.2: - version "7.4.2" - resolved "https://registry.npmjs.org/open/-/open-7.4.2.tgz" - integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== - dependencies: - is-docker "^2.0.0" - is-wsl "^2.1.1" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + "notp" "^2.0.3" + "thirty-two" "1.0.2" + "tslib" "^2.1.0" + +"node-addon-api@^3.1.0": + "integrity" "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==" + "resolved" "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz" + "version" "3.2.1" + +"node-addon-api@^4.2.0": + "integrity" "sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==" + "resolved" "https://registry.npmjs.org/node-addon-api/-/node-addon-api-4.3.0.tgz" + "version" "4.3.0" + +"node-fetch@^2.6.7": + "integrity" "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==" + "resolved" "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz" + "version" "2.6.7" + dependencies: + "whatwg-url" "^5.0.0" + +"node-gyp@8.x": + "integrity" "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==" + "resolved" "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz" + "version" "8.4.1" + dependencies: + "env-paths" "^2.2.0" + "glob" "^7.1.4" + "graceful-fs" "^4.2.6" + "make-fetch-happen" "^9.1.0" + "nopt" "^5.0.0" + "npmlog" "^6.0.0" + "rimraf" "^3.0.2" + "semver" "^7.3.5" + "tar" "^6.1.2" + "which" "^2.0.2" + +"node-int64@^0.4.0": + "integrity" "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + "resolved" "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + "version" "0.4.0" + +"node-releases@^2.0.6": + "integrity" "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz" + "version" "2.0.6" + +"nopt@^5.0.0": + "integrity" "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==" + "resolved" "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "abbrev" "1" + +"normalize-path@^3.0.0", "normalize-path@~3.0.0": + "integrity" "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + "resolved" "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + "version" "3.0.0" + +"notp@^2.0.3": + "integrity" "sha512-oBig/2uqkjQ5AkBuw4QJYwkEWa/q+zHxI5/I5z6IeP2NT0alpJFsP/trrfCC+9xOAgQSZXssNi962kp5KBmypQ==" + "resolved" "https://registry.npmjs.org/notp/-/notp-2.0.3.tgz" + "version" "2.0.3" + +"npm-run-path@^4.0.1": + "integrity" "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==" + "resolved" "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "path-key" "^3.0.0" + +"npmlog@^5.0.1": + "integrity" "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==" + "resolved" "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "are-we-there-yet" "^2.0.0" + "console-control-strings" "^1.1.0" + "gauge" "^3.0.0" + "set-blocking" "^2.0.0" + +"npmlog@^6.0.0": + "integrity" "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==" + "resolved" "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "are-we-there-yet" "^3.0.0" + "console-control-strings" "^1.1.0" + "gauge" "^4.0.3" + "set-blocking" "^2.0.0" + +"nth-check@^2.0.1": + "integrity" "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==" + "resolved" "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "boolbase" "^1.0.0" + +"object-assign@^4.0.1", "object-assign@^4.1.1": + "integrity" "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + "resolved" "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" + "version" "4.1.1" + +"object-inspect@^1.9.0": + "integrity" "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + "resolved" "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz" + "version" "1.12.2" + +"object-keys@^1.1.1": + "integrity" "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + "resolved" "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" + "version" "1.1.1" + +"object.assign@^4.1.0": + "integrity" "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==" + "resolved" "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz" + "version" "4.1.2" + dependencies: + "call-bind" "^1.0.0" + "define-properties" "^1.1.3" + "has-symbols" "^1.0.1" + "object-keys" "^1.1.1" + +"on-finished@~2.3.0": + "integrity" "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==" + "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz" + "version" "2.3.0" + dependencies: + "ee-first" "1.1.1" + +"on-finished@2.4.1": + "integrity" "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==" + "resolved" "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz" + "version" "2.4.1" + dependencies: + "ee-first" "1.1.1" + +"on-headers@~1.0.2": + "integrity" "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + "resolved" "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz" + "version" "1.0.2" + +"once@^1.3.0", "once@^1.3.1", "once@1.4.0": + "integrity" "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==" + "resolved" "https://registry.npmjs.org/once/-/once-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "wrappy" "1" + +"onetime@^5.1.2": + "integrity" "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==" + "resolved" "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" + "version" "5.1.2" + dependencies: + "mimic-fn" "^2.1.0" + +"open@^7.4.2": + "integrity" "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==" + "resolved" "https://registry.npmjs.org/open/-/open-7.4.2.tgz" + "version" "7.4.2" + dependencies: + "is-docker" "^2.0.0" + "is-wsl" "^2.1.1" + +"optional-require@^1.1.8": + "integrity" "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==" + "resolved" "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz" + "version" "1.1.8" dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + "require-at" "^1.0.6" + +"optionator@^0.8.1": + "integrity" "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==" + "resolved" "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz" + "version" "0.8.3" + dependencies: + "deep-is" "~0.1.3" + "fast-levenshtein" "~2.0.6" + "levn" "~0.3.0" + "prelude-ls" "~1.1.2" + "type-check" "~0.3.2" + "word-wrap" "~1.2.3" + +"os-tmpdir@~1.0.2": + "integrity" "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==" + "resolved" "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" + "version" "1.0.2" -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== +"p-limit@^2.2.0": + "integrity" "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + "version" "2.3.0" dependencies: - p-try "^2.0.0" - -p-limit@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" - integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + "p-try" "^2.0.0" + +"p-limit@^3.1.0": + "integrity" "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==" + "resolved" "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" + "version" "3.1.0" dependencies: - yocto-queue "^0.1.0" + "yocto-queue" "^0.1.0" -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" +"p-locate@^4.1.0": + "integrity" "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==" + "resolved" "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + "version" "4.1.0" + dependencies: + "p-limit" "^2.2.0" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== +"p-map@^4.0.0": + "integrity" "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==" + "resolved" "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" + "version" "4.0.0" dependencies: - aggregate-error "^3.0.0" + "aggregate-error" "^3.0.0" -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +"p-try@^2.0.0": + "integrity" "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + "resolved" "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + "version" "2.2.0" -pac-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz" - integrity sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ== +"pac-proxy-agent@^5.0.0": + "integrity" "sha512-CcFG3ZtnxO8McDigozwE3AqAw15zDvGH+OjXO4kzf7IkEKkQ4gxQ+3sdF50WmhQ4P/bVusXcqNE2S3XrNURwzQ==" + "resolved" "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-5.0.0.tgz" + "version" "5.0.0" dependencies: "@tootallnate/once" "1" - agent-base "6" - debug "4" - get-uri "3" - http-proxy-agent "^4.0.1" - https-proxy-agent "5" - pac-resolver "^5.0.0" - raw-body "^2.2.0" - socks-proxy-agent "5" - -pac-resolver@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz" - integrity sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q== - dependencies: - degenerator "^3.0.2" - ip "^1.1.5" - netmask "^2.0.2" - -packet-reader@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz#9238e5480dedabacfe1fe3f2771063f164157d74" - integrity sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ== - -parse-json@^5.2.0: - version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + "agent-base" "6" + "debug" "4" + "get-uri" "3" + "http-proxy-agent" "^4.0.1" + "https-proxy-agent" "5" + "pac-resolver" "^5.0.0" + "raw-body" "^2.2.0" + "socks-proxy-agent" "5" + +"pac-resolver@^5.0.0": + "integrity" "sha512-cy7u00ko2KVgBAjuhevqpPeHIkCIqPe1v24cydhWjmeuzaBfmUWFCZJ1iAh5TuVzVZoUzXIW7K8sMYOZ84uZ9Q==" + "resolved" "https://registry.npmjs.org/pac-resolver/-/pac-resolver-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "degenerator" "^3.0.2" + "ip" "^1.1.5" + "netmask" "^2.0.2" + +"packet-reader@1.0.0": + "integrity" "sha512-HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==" + "resolved" "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz" + "version" "1.0.0" + +"parse-json@^5.2.0": + "integrity" "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==" + "resolved" "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" + "version" "5.2.0" dependencies: "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" + "error-ex" "^1.3.1" + "json-parse-even-better-errors" "^2.3.0" + "lines-and-columns" "^1.1.6" -parse5-htmlparser2-tree-adapter@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz" - integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== +"parse5-htmlparser2-tree-adapter@^6.0.0": + "integrity" "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==" + "resolved" "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz" + "version" "6.0.1" dependencies: - parse5 "^6.0.1" + "parse5" "^6.0.1" -parse5-htmlparser2-tree-adapter@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz" - integrity sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g== +"parse5-htmlparser2-tree-adapter@^7.0.0": + "integrity" "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==" + "resolved" "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz" + "version" "7.0.0" dependencies: - domhandler "^5.0.2" - parse5 "^7.0.0" + "domhandler" "^5.0.2" + "parse5" "^7.0.0" -parse5@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== +"parse5@^5.1.1": + "integrity" "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" + "resolved" "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz" + "version" "5.1.1" -parse5@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" - integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== +"parse5@^6.0.1": + "integrity" "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + "resolved" "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" + "version" "6.0.1" -parse5@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz" - integrity sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g== +"parse5@^7.0.0": + "integrity" "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==" + "resolved" "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz" + "version" "7.0.0" dependencies: - entities "^4.3.0" + "entities" "^4.3.0" -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== +"parseurl@~1.3.3": + "integrity" "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + "resolved" "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz" + "version" "1.3.3" -patch-package@^6.4.7: - version "6.4.7" - resolved "https://registry.npmjs.org/patch-package/-/patch-package-6.4.7.tgz" - integrity sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ== +"patch-package@^6.4.7": + "integrity" "sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ==" + "resolved" "https://registry.npmjs.org/patch-package/-/patch-package-6.4.7.tgz" + "version" "6.4.7" dependencies: "@yarnpkg/lockfile" "^1.1.0" - chalk "^2.4.2" - cross-spawn "^6.0.5" - find-yarn-workspace-root "^2.0.0" - fs-extra "^7.0.1" - is-ci "^2.0.0" - klaw-sync "^6.0.0" - minimist "^1.2.0" - open "^7.4.2" - rimraf "^2.6.3" - semver "^5.6.0" - slash "^2.0.0" - tmp "^0.0.33" - -path-equal@^1.1.2: - version "1.2.2" - resolved "https://registry.npmjs.org/path-equal/-/path-equal-1.2.2.tgz" - integrity sha512-AUJvbcle1Zgb1TgtftHYknlrgrSYyI1ytrYgSbKUHSybwqUDnbD2cw9PIWivuMvsN+GTXmr/DRN4VBXpHG6aGg== - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - -path-key@^3.0.0, path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-to-regexp@0.1.7: - version "0.1.7" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" - integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== - -peek-readable@^4.1.0: - version "4.1.0" - resolved "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz" - integrity sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg== - -pg-connection-string@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" - integrity sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ== - -pg-int8@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" - integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== - -pg-pool@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.5.1.tgz#f499ce76f9bf5097488b3b83b19861f28e4ed905" - integrity sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ== - -pg-protocol@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz#b5dd452257314565e2d54ab3c132adc46565a6a0" - integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ== - -pg-types@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" - integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== - dependencies: - pg-int8 "1.0.1" - postgres-array "~2.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.4" - postgres-interval "^1.1.0" - -pg@^8.7.3: - version "8.7.3" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.7.3.tgz#8a5bdd664ca4fda4db7997ec634c6e5455b27c44" - integrity sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw== - dependencies: - buffer-writer "2.0.0" - packet-reader "1.0.0" - pg-connection-string "^2.5.0" - pg-pool "^3.5.1" - pg-protocol "^1.5.0" - pg-types "^2.1.0" - pgpass "1.x" - -pgpass@1.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" - integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== - dependencies: - split2 "^4.1.0" - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pirates@^4.0.4: - version "4.0.5" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" - integrity sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ== - -pkg-dir@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== - dependencies: - find-up "^4.0.0" - -postgres-array@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" - integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== - -postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" - integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== - -postgres-date@~1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" - integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== - -postgres-interval@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" - integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== - dependencies: - xtend "^4.0.0" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - -pretty-format@^28.1.3: - version "28.1.3" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz" - integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== + "chalk" "^2.4.2" + "cross-spawn" "^6.0.5" + "find-yarn-workspace-root" "^2.0.0" + "fs-extra" "^7.0.1" + "is-ci" "^2.0.0" + "klaw-sync" "^6.0.0" + "minimist" "^1.2.0" + "open" "^7.4.2" + "rimraf" "^2.6.3" + "semver" "^5.6.0" + "slash" "^2.0.0" + "tmp" "^0.0.33" + +"path-equal@^1.1.2": + "integrity" "sha512-AUJvbcle1Zgb1TgtftHYknlrgrSYyI1ytrYgSbKUHSybwqUDnbD2cw9PIWivuMvsN+GTXmr/DRN4VBXpHG6aGg==" + "resolved" "https://registry.npmjs.org/path-equal/-/path-equal-1.2.2.tgz" + "version" "1.2.2" + +"path-exists@^4.0.0": + "integrity" "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + "resolved" "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" + "version" "4.0.0" + +"path-is-absolute@^1.0.0": + "integrity" "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + "resolved" "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" + "version" "1.0.1" + +"path-key@^2.0.1": + "integrity" "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz" + "version" "2.0.1" + +"path-key@^3.0.0", "path-key@^3.1.0": + "integrity" "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved" "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + "version" "3.1.1" + +"path-parse@^1.0.7": + "integrity" "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + "resolved" "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" + "version" "1.0.7" + +"path-to-regexp@0.1.7": + "integrity" "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "resolved" "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" + "version" "0.1.7" + +"peek-readable@^4.1.0": + "integrity" "sha512-ZI3LnwUv5nOGbQzD9c2iDG6toheuXSZP5esSHBjopsXH4dg19soufvpUGA3uohi5anFtGb2lhAVdHzH6R/Evvg==" + "resolved" "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz" + "version" "4.1.0" + +"pg-connection-string@^2.5.0": + "integrity" "sha512-r5o/V/ORTA6TmUnyWZR9nCj1klXCO2CEKNRlVuJptZe85QuhFayC7WeMic7ndayT5IRIR0S0xFxFi2ousartlQ==" + "resolved" "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.5.0.tgz" + "version" "2.5.0" + +"pg-int8@1.0.1": + "integrity" "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==" + "resolved" "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz" + "version" "1.0.1" + +"pg-pool@^3.5.1": + "integrity" "sha512-6iCR0wVrro6OOHFsyavV+i6KYL4lVNyYAB9RD18w66xSzN+d8b66HiwuP30Gp1SH5O9T82fckkzsRjlrhD0ioQ==" + "resolved" "https://registry.npmjs.org/pg-pool/-/pg-pool-3.5.1.tgz" + "version" "3.5.1" + +"pg-protocol@^1.5.0": + "integrity" "sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ==" + "resolved" "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.5.0.tgz" + "version" "1.5.0" + +"pg-types@^2.1.0": + "integrity" "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==" + "resolved" "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "pg-int8" "1.0.1" + "postgres-array" "~2.0.0" + "postgres-bytea" "~1.0.0" + "postgres-date" "~1.0.4" + "postgres-interval" "^1.1.0" + +"pg@^8.5.1", "pg@^8.7.3", "pg@>=8.0": + "integrity" "sha512-HPmH4GH4H3AOprDJOazoIcpI49XFsHCe8xlrjHkWiapdbHK+HLtbm/GQzXYAZwmPju/kzKhjaSfMACG+8cgJcw==" + "resolved" "https://registry.npmjs.org/pg/-/pg-8.7.3.tgz" + "version" "8.7.3" + dependencies: + "buffer-writer" "2.0.0" + "packet-reader" "1.0.0" + "pg-connection-string" "^2.5.0" + "pg-pool" "^3.5.1" + "pg-protocol" "^1.5.0" + "pg-types" "^2.1.0" + "pgpass" "1.x" + +"pgpass@1.x": + "integrity" "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==" + "resolved" "https://registry.npmjs.org/pgpass/-/pgpass-1.0.5.tgz" + "version" "1.0.5" + dependencies: + "split2" "^4.1.0" + +"picocolors@^1.0.0": + "integrity" "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "resolved" "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" + "version" "1.0.0" + +"picomatch@^2.0.4", "picomatch@^2.2.1", "picomatch@^2.2.3", "picomatch@^2.3.1": + "integrity" "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + "resolved" "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" + "version" "2.3.1" + +"pirates@^4.0.4": + "integrity" "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==" + "resolved" "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz" + "version" "4.0.5" + +"pkg-dir@^4.2.0": + "integrity" "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==" + "resolved" "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + "version" "4.2.0" + dependencies: + "find-up" "^4.0.0" + +"postgres-array@~2.0.0": + "integrity" "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==" + "resolved" "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz" + "version" "2.0.0" + +"postgres-bytea@~1.0.0": + "integrity" "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==" + "resolved" "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz" + "version" "1.0.0" + +"postgres-date@~1.0.4": + "integrity" "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==" + "resolved" "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz" + "version" "1.0.7" + +"postgres-interval@^1.1.0": + "integrity" "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==" + "resolved" "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "xtend" "^4.0.0" + +"prelude-ls@~1.1.2": + "integrity" "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==" + "resolved" "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" + "version" "1.1.2" + +"pretty-format@^28.1.3": + "integrity" "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==" + "resolved" "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz" + "version" "28.1.3" dependencies: "@jest/schemas" "^28.1.3" - ansi-regex "^5.0.1" - ansi-styles "^5.0.0" - react-is "^18.0.0" - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -promise-inflight@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" - integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== - -promise-retry@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" - integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== - dependencies: - err-code "^2.0.2" - retry "^0.12.0" - -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" - -proxy-addr@~2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" - integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== - dependencies: - forwarded "0.2.0" - ipaddr.js "1.9.1" - -proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz" - integrity sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g== - dependencies: - agent-base "^6.0.0" - debug "4" - http-proxy-agent "^4.0.0" - https-proxy-agent "^5.0.0" - lru-cache "^5.1.1" - pac-proxy-agent "^5.0.0" - proxy-from-env "^1.0.0" - socks-proxy-agent "^5.0.0" - -proxy-from-env@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== - -punycode@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -qs@6.10.3, qs@^6.10.3: - version "6.10.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz" - integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ== - dependencies: - side-channel "^1.0.4" - -qs@6.9.3: - version "6.9.3" - resolved "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz" - integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== - -querystringify@^2.1.1: - version "2.2.0" - resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" - integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== - -queue@6.0.2: - version "6.0.2" - resolved "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz" - integrity sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA== - dependencies: - inherits "~2.0.3" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -raw-body@2.5.1, raw-body@^2.2.0: - version "2.5.1" - resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" - integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== - dependencies: - bytes "3.1.2" - http-errors "2.0.0" - iconv-lite "0.4.24" - unpipe "1.0.0" - -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -readable-stream@1.1.x, "readable-stream@1.x >=1.1.9": - version "1.1.14" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" - integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - -readable-stream@^2.2.2: - version "2.3.7" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readable-web-to-node-stream@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz" - integrity sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw== - dependencies: - readable-stream "^3.6.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - -reflect-metadata@^0.1.13: - version "0.1.13" - resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" - integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== - -regenerate-unicode-properties@^10.0.1: - version "10.0.1" - resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz" - integrity sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw== - dependencies: - regenerate "^1.4.2" - -regenerate@^1.4.2: - version "1.4.2" - resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.13.4: - version "0.13.9" - resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" - integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== - -regenerator-transform@^0.15.0: - version "0.15.0" - resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" - integrity sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg== + "ansi-regex" "^5.0.1" + "ansi-styles" "^5.0.0" + "react-is" "^18.0.0" + +"process-nextick-args@~2.0.0": + "integrity" "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "resolved" "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" + "version" "2.0.1" + +"promise-inflight@^1.0.1": + "integrity" "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" + "resolved" "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" + "version" "1.0.1" + +"promise-retry@^2.0.1": + "integrity" "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==" + "resolved" "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz" + "version" "2.0.1" + dependencies: + "err-code" "^2.0.2" + "retry" "^0.12.0" + +"prompts@^2.0.1": + "integrity" "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==" + "resolved" "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" + "version" "2.4.2" + dependencies: + "kleur" "^3.0.3" + "sisteransi" "^1.0.5" + +"proxy-addr@~2.0.7": + "integrity" "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==" + "resolved" "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz" + "version" "2.0.7" + dependencies: + "forwarded" "0.2.0" + "ipaddr.js" "1.9.1" + +"proxy-agent@^5.0.0": + "integrity" "sha512-gkH7BkvLVkSfX9Dk27W6TyNOWWZWRilRfk1XxGNWOYJ2TuedAv1yFpCaU9QSBmBe716XOTNpYNOzhysyw8xn7g==" + "resolved" "https://registry.npmjs.org/proxy-agent/-/proxy-agent-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "agent-base" "^6.0.0" + "debug" "4" + "http-proxy-agent" "^4.0.0" + "https-proxy-agent" "^5.0.0" + "lru-cache" "^5.1.1" + "pac-proxy-agent" "^5.0.0" + "proxy-from-env" "^1.0.0" + "socks-proxy-agent" "^5.0.0" + +"proxy-from-env@^1.0.0": + "integrity" "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "resolved" "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + "version" "1.1.0" + +"pseudomap@^1.0.2": + "integrity" "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + "resolved" "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz" + "version" "1.0.2" + +"punycode@^2.1.0": + "integrity" "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "resolved" "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz" + "version" "2.1.1" + +"qs@^6.10.3", "qs@6.10.3": + "integrity" "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz" + "version" "6.10.3" + dependencies: + "side-channel" "^1.0.4" + +"qs@6.9.3": + "integrity" "sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==" + "resolved" "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz" + "version" "6.9.3" + +"querystringify@^2.1.1": + "integrity" "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + "resolved" "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" + "version" "2.2.0" + +"queue@6.0.2": + "integrity" "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==" + "resolved" "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz" + "version" "6.0.2" + dependencies: + "inherits" "~2.0.3" + +"range-parser@~1.2.1": + "integrity" "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + "resolved" "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + "version" "1.2.1" + +"raw-body@^2.2.0", "raw-body@2.5.1": + "integrity" "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==" + "resolved" "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" + "version" "2.5.1" + dependencies: + "bytes" "3.1.2" + "http-errors" "2.0.0" + "iconv-lite" "0.4.24" + "unpipe" "1.0.0" + +"react-is@^18.0.0": + "integrity" "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + "resolved" "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" + "version" "18.2.0" + +"readable-stream@^2.2.2": + "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + "version" "2.3.7" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + +"readable-stream@^2.3.5": + "integrity" "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz" + "version" "2.3.7" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.3" + "isarray" "~1.0.0" + "process-nextick-args" "~2.0.0" + "safe-buffer" "~5.1.1" + "string_decoder" "~1.1.1" + "util-deprecate" "~1.0.1" + +"readable-stream@^3.6.0": + "integrity" "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "inherits" "^2.0.3" + "string_decoder" "^1.1.1" + "util-deprecate" "^1.0.1" + +"readable-stream@1.1.x", "readable-stream@1.x >=1.1.9": + "integrity" "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==" + "resolved" "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" + "version" "1.1.14" + dependencies: + "core-util-is" "~1.0.0" + "inherits" "~2.0.1" + "isarray" "0.0.1" + "string_decoder" "~0.10.x" + +"readable-web-to-node-stream@^3.0.0": + "integrity" "sha512-ePeK6cc1EcKLEhJFt/AebMCLL+GgSKhuygrZ/GLaKZYEecIgIECf4UaUuaByiGtzckwR4ain9VzUh95T1exYGw==" + "resolved" "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "readable-stream" "^3.6.0" + +"readdirp@~3.6.0": + "integrity" "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==" + "resolved" "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" + "version" "3.6.0" + dependencies: + "picomatch" "^2.2.1" + +"rechoir@^0.6.2": + "integrity" "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==" + "resolved" "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" + "version" "0.6.2" + dependencies: + "resolve" "^1.1.6" + +"reflect-metadata@^0.1.13": + "integrity" "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" + "resolved" "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz" + "version" "0.1.13" + +"regenerate-unicode-properties@^10.0.1": + "integrity" "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==" + "resolved" "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz" + "version" "10.0.1" + dependencies: + "regenerate" "^1.4.2" + +"regenerate@^1.4.2": + "integrity" "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + "resolved" "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" + "version" "1.4.2" + +"regenerator-runtime@^0.13.4": + "integrity" "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz" + "version" "0.13.9" + +"regenerator-transform@^0.15.0": + "integrity" "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==" + "resolved" "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz" + "version" "0.15.0" dependencies: "@babel/runtime" "^7.8.4" -regexpu-core@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz" - integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA== - dependencies: - regenerate "^1.4.2" - regenerate-unicode-properties "^10.0.1" - regjsgen "^0.6.0" - regjsparser "^0.8.2" - unicode-match-property-ecmascript "^2.0.0" - unicode-match-property-value-ecmascript "^2.0.0" - -regjsgen@^0.6.0: - version "0.6.0" - resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz" - integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA== - -regjsparser@^0.8.2: - version "0.8.4" - resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz" - integrity sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA== - dependencies: - jsesc "~0.5.0" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" - integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== - -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" - integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== - -resolve-cwd@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" - integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== - dependencies: - resolve-from "^5.0.0" - -resolve-from@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" - integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== - -resolve@^1.0.0, resolve@^1.1.6, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1: - version "1.22.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -retry@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" - integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== - -rimraf@^2.6.1, rimraf@^2.6.3: - version "2.7.1" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0, rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - -safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@~5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-stable-stringify@^2.2.0: - version "2.3.1" - resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz" - integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg== +"regexpu-core@^5.1.0": + "integrity" "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==" + "resolved" "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz" + "version" "5.1.0" + dependencies: + "regenerate" "^1.4.2" + "regenerate-unicode-properties" "^10.0.1" + "regjsgen" "^0.6.0" + "regjsparser" "^0.8.2" + "unicode-match-property-ecmascript" "^2.0.0" + "unicode-match-property-value-ecmascript" "^2.0.0" + +"regjsgen@^0.6.0": + "integrity" "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==" + "resolved" "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz" + "version" "0.6.0" + +"regjsparser@^0.8.2": + "integrity" "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==" + "resolved" "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz" + "version" "0.8.4" + dependencies: + "jsesc" "~0.5.0" + +"require-at@^1.0.6": + "integrity" "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==" + "resolved" "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz" + "version" "1.0.6" + +"require-directory@^2.1.1": + "integrity" "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + "resolved" "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" + "version" "2.1.1" + +"require-from-string@^2.0.2": + "integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + "resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" + "version" "2.0.2" + +"requires-port@^1.0.0": + "integrity" "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + "resolved" "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" + "version" "1.0.0" + +"resolve-cwd@^3.0.0": + "integrity" "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==" + "resolved" "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + "version" "3.0.0" + dependencies: + "resolve-from" "^5.0.0" + +"resolve-from@^5.0.0": + "integrity" "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" + "resolved" "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" + "version" "5.0.0" + +"resolve.exports@^1.1.0": + "integrity" "sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==" + "resolved" "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.0.tgz" + "version" "1.1.0" + +"resolve@^1.0.0", "resolve@^1.1.6", "resolve@^1.12.0", "resolve@^1.14.2", "resolve@^1.20.0", "resolve@^1.22.1": + "integrity" "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==" + "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" + "version" "1.22.1" + dependencies: + "is-core-module" "^2.9.0" + "path-parse" "^1.0.7" + "supports-preserve-symlinks-flag" "^1.0.0" + +"retry@^0.12.0": + "integrity" "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==" + "resolved" "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" + "version" "0.12.0" + +"rimraf@^2.6.1": + "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "glob" "^7.1.3" + +"rimraf@^2.6.3": + "integrity" "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" + "version" "2.7.1" + dependencies: + "glob" "^7.1.3" + +"rimraf@^3.0.0", "rimraf@^3.0.2": + "integrity" "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==" + "resolved" "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" + "version" "3.0.2" + dependencies: + "glob" "^7.1.3" + +"safe-buffer@^5.0.1", "safe-buffer@^5.1.2", "safe-buffer@~5.2.0", "safe-buffer@5.2.1": + "integrity" "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + "version" "5.2.1" + +"safe-buffer@^5.1.1", "safe-buffer@~5.1.0", "safe-buffer@~5.1.1": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + +"safe-buffer@~5.1.2": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + +"safe-buffer@5.1.2": + "integrity" "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "resolved" "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" + "version" "5.1.2" + +"safe-stable-stringify@^2.2.0": + "integrity" "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==" + "resolved" "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz" + "version" "2.3.1" "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": - version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sax@>=0.6.0: - version "1.2.4" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^5.5.0, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.5, semver@^7.3.7: - version "7.3.7" - resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -send@0.18.0: - version "0.18.0" - resolved "https://registry.npmjs.org/send/-/send-0.18.0.tgz" - integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== - dependencies: - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "2.0.0" - mime "1.6.0" - ms "2.1.3" - on-finished "2.4.1" - range-parser "~1.2.1" - statuses "2.0.1" - -seq-queue@^0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/seq-queue/-/seq-queue-0.0.5.tgz#d56812e1c017a6e4e7c3e3a37a1da6d78dd3c93e" - integrity sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q== - -serve-static@1.15.0: - version "1.15.0" - resolved "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" - integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.18.0" - -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -setprototypeof@1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" - integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== - -sha.js@^2.4.11: - version "2.4.11" - resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - dependencies: - shebang-regex "^1.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -shelljs@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" - integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== - dependencies: - glob "^7.0.0" - interpret "^1.0.0" - rechoir "^0.6.2" - -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== - dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" - -signal-exit@^3.0.0, signal-exit@^3.0.3, signal-exit@^3.0.7: - version "3.0.7" - resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" - integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== - -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^3.0.3: - version "3.1.1" - resolved "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz" - integrity sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA== - dependencies: - decompress-response "^4.2.0" - once "^1.3.1" - simple-concat "^1.0.0" - -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -socks-proxy-agent@5, socks-proxy-agent@^5.0.0: - version "5.0.1" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz" - integrity sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ== - dependencies: - agent-base "^6.0.2" - debug "4" - socks "^2.3.3" - -socks-proxy-agent@^6.0.0: - version "6.2.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" - integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== - dependencies: - agent-base "^6.0.2" - debug "^4.3.3" - socks "^2.6.2" - -socks@^2.3.3: - version "2.6.2" - resolved "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz" - integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== - dependencies: - ip "^1.1.5" - smart-buffer "^4.2.0" - -socks@^2.6.2: - version "2.7.0" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.0.tgz#f9225acdb841e874dca25f870e9130990f3913d0" - integrity sha512-scnOe9y4VuiNUULJN72GrM26BNOjVsfPXI+j+98PkyEfsIXroa5ofyjT+FzGvn/xHs73U2JtoBYAVx9Hl4quSA== - dependencies: - ip "^2.0.0" - smart-buffer "^4.2.0" - -source-map-support@0.5.13: - version "0.5.13" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-support@^0.5.12: - version "0.5.21" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" - integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -split2@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.1.0.tgz#101907a24370f85bb782f08adaabe4e281ecf809" - integrity sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" - integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== - -sqlite3@^5.0.11: - version "5.0.11" - resolved "https://registry.yarnpkg.com/sqlite3/-/sqlite3-5.0.11.tgz#102c835d70be66da9d95a383fd6ea084a082ef7f" - integrity sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA== + "integrity" "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "resolved" "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + "version" "2.1.2" + +"saslprep@^1.0.0": + "integrity" "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==" + "resolved" "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz" + "version" "1.0.3" + dependencies: + "sparse-bitfield" "^3.0.3" + +"sax@>=0.6.0": + "integrity" "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + "resolved" "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz" + "version" "1.2.4" + +"semver@^5.5.0", "semver@^5.6.0": + "integrity" "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "resolved" "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" + "version" "5.7.1" + +"semver@^6.0.0", "semver@^6.1.1", "semver@^6.1.2", "semver@^6.3.0": + "integrity" "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "resolved" "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz" + "version" "6.3.0" + +"semver@^7.3.5": + "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + "version" "7.3.7" + dependencies: + "lru-cache" "^6.0.0" + +"semver@^7.3.7": + "integrity" "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz" + "version" "7.3.7" + dependencies: + "lru-cache" "^6.0.0" + +"semver@7.0.0": + "integrity" "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + "resolved" "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz" + "version" "7.0.0" + +"send@0.18.0": + "integrity" "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==" + "resolved" "https://registry.npmjs.org/send/-/send-0.18.0.tgz" + "version" "0.18.0" + dependencies: + "debug" "2.6.9" + "depd" "2.0.0" + "destroy" "1.2.0" + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "etag" "~1.8.1" + "fresh" "0.5.2" + "http-errors" "2.0.0" + "mime" "1.6.0" + "ms" "2.1.3" + "on-finished" "2.4.1" + "range-parser" "~1.2.1" + "statuses" "2.0.1" + +"seq-queue@^0.0.5": + "integrity" "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" + "resolved" "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz" + "version" "0.0.5" + +"serve-static@1.15.0": + "integrity" "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==" + "resolved" "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz" + "version" "1.15.0" + dependencies: + "encodeurl" "~1.0.2" + "escape-html" "~1.0.3" + "parseurl" "~1.3.3" + "send" "0.18.0" + +"set-blocking@^2.0.0": + "integrity" "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" + "resolved" "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" + "version" "2.0.0" + +"setprototypeof@1.2.0": + "integrity" "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "resolved" "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz" + "version" "1.2.0" + +"sha.js@^2.4.11": + "integrity" "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==" + "resolved" "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz" + "version" "2.4.11" + dependencies: + "inherits" "^2.0.1" + "safe-buffer" "^5.0.1" + +"shebang-command@^1.2.0": + "integrity" "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz" + "version" "1.2.0" + dependencies: + "shebang-regex" "^1.0.0" + +"shebang-command@^2.0.0": + "integrity" "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==" + "resolved" "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "shebang-regex" "^3.0.0" + +"shebang-regex@^1.0.0": + "integrity" "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz" + "version" "1.0.0" + +"shebang-regex@^3.0.0": + "integrity" "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "resolved" "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + "version" "3.0.0" + +"shelljs@^0.8.5": + "integrity" "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==" + "resolved" "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" + "version" "0.8.5" + dependencies: + "glob" "^7.0.0" + "interpret" "^1.0.0" + "rechoir" "^0.6.2" + +"side-channel@^1.0.4": + "integrity" "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==" + "resolved" "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "call-bind" "^1.0.0" + "get-intrinsic" "^1.0.2" + "object-inspect" "^1.9.0" + +"signal-exit@^3.0.0", "signal-exit@^3.0.3", "signal-exit@^3.0.7": + "integrity" "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + "resolved" "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" + "version" "3.0.7" + +"simple-concat@^1.0.0": + "integrity" "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + "resolved" "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz" + "version" "1.0.1" + +"simple-get@^3.0.3": + "integrity" "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==" + "resolved" "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz" + "version" "3.1.1" + dependencies: + "decompress-response" "^4.2.0" + "once" "^1.3.1" + "simple-concat" "^1.0.0" + +"sisteransi@^1.0.5": + "integrity" "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + "resolved" "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" + "version" "1.0.5" + +"slash@^2.0.0": + "integrity" "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==" + "resolved" "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz" + "version" "2.0.0" + +"slash@^3.0.0": + "integrity" "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==" + "resolved" "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" + "version" "3.0.0" + +"smart-buffer@^4.2.0": + "integrity" "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==" + "resolved" "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" + "version" "4.2.0" + +"socks-proxy-agent@^5.0.0", "socks-proxy-agent@5": + "integrity" "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==" + "resolved" "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz" + "version" "5.0.1" + dependencies: + "agent-base" "^6.0.2" + "debug" "4" + "socks" "^2.3.3" + +"socks-proxy-agent@^6.0.0": + "integrity" "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==" + "resolved" "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz" + "version" "6.2.1" + dependencies: + "agent-base" "^6.0.2" + "debug" "^4.3.3" + "socks" "^2.6.2" + +"socks@^2.3.3", "socks@^2.6.2": + "integrity" "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==" + "resolved" "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz" + "version" "2.6.2" + dependencies: + "ip" "^1.1.5" + "smart-buffer" "^4.2.0" + +"source-map-support@^0.5.12": + "integrity" "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz" + "version" "0.5.21" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map-support@0.5.13": + "integrity" "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==" + "resolved" "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" + "version" "0.5.13" + dependencies: + "buffer-from" "^1.0.0" + "source-map" "^0.6.0" + +"source-map@^0.6.0", "source-map@^0.6.1", "source-map@~0.6.1": + "integrity" "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "resolved" "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + "version" "0.6.1" + +"sparse-bitfield@^3.0.3": + "integrity" "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==" + "resolved" "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz" + "version" "3.0.3" + dependencies: + "memory-pager" "^1.0.2" + +"split2@^4.1.0": + "integrity" "sha512-VBiJxFkxiXRlUIeyMQi8s4hgvKCSjtknJv/LVYbrgALPwf5zSKmEwV9Lst25AkvMDnvxODugjdl6KZgwKM1WYQ==" + "resolved" "https://registry.npmjs.org/split2/-/split2-4.1.0.tgz" + "version" "4.1.0" + +"sprintf-js@~1.0.2": + "integrity" "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + "version" "1.0.3" + +"sqlite3@^5.0.11", "sqlite3@^5.0.3": + "integrity" "sha512-4akFOr7u9lJEeAWLJxmwiV43DJcGV7w3ab7SjQFAFaTVyknY3rZjvXTKIVtWqUoY4xwhjwoHKYs2HDW2SoHVsA==" + "resolved" "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.11.tgz" + "version" "5.0.11" dependencies: "@mapbox/node-pre-gyp" "^1.0.0" - node-addon-api "^4.2.0" - tar "^6.1.11" + "node-addon-api" "^4.2.0" + "tar" "^6.1.11" optionalDependencies: - node-gyp "8.x" - -sqlstring@^2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/sqlstring/-/sqlstring-2.3.3.tgz#2ddc21f03bce2c387ed60680e739922c65751d0c" - integrity sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg== - -ssri@^8.0.0, ssri@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" - integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== - dependencies: - minipass "^3.1.1" - -stack-utils@^2.0.3: - version "2.0.5" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" - integrity sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA== - dependencies: - escape-string-regexp "^2.0.0" - -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - -string-length@^4.0.1: - version "4.0.2" - resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" - integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== - dependencies: - char-regex "^1.0.2" - strip-ansi "^6.0.0" - -"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-bom@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" - integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== - -strip-bom@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" - integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== - -strip-final-newline@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" - integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== - -strip-json-comments@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -strip-json-comments@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" - integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== - -strtok3@^6.2.4: - version "6.3.0" - resolved "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz" - integrity sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw== + "node-gyp" "8.x" + +"sqlstring@^2.3.2": + "integrity" "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==" + "resolved" "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz" + "version" "2.3.3" + +"ssri@^8.0.0", "ssri@^8.0.1": + "integrity" "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==" + "resolved" "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz" + "version" "8.0.1" + dependencies: + "minipass" "^3.1.1" + +"stack-utils@^2.0.3": + "integrity" "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==" + "resolved" "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz" + "version" "2.0.5" + dependencies: + "escape-string-regexp" "^2.0.0" + +"statuses@2.0.1": + "integrity" "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + "resolved" "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + "version" "2.0.1" + +"streamsearch@^1.1.0": + "integrity" "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" + "resolved" "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" + "version" "1.1.0" + +"string_decoder@^1.1.1": + "integrity" "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + "version" "1.3.0" + dependencies: + "safe-buffer" "~5.2.0" + +"string_decoder@~0.10.x": + "integrity" "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" + "version" "0.10.31" + +"string_decoder@~1.1.1": + "integrity" "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==" + "resolved" "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "safe-buffer" "~5.1.0" + +"string-length@^4.0.1": + "integrity" "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==" + "resolved" "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" + "version" "4.0.2" + dependencies: + "char-regex" "^1.0.2" + "strip-ansi" "^6.0.0" + +"string-width@^1.0.2 || 2 || 3 || 4", "string-width@^4.1.0", "string-width@^4.2.0", "string-width@^4.2.3": + "integrity" "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==" + "resolved" "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + "version" "4.2.3" + dependencies: + "emoji-regex" "^8.0.0" + "is-fullwidth-code-point" "^3.0.0" + "strip-ansi" "^6.0.1" + +"strip-ansi@^6.0.0", "strip-ansi@^6.0.1": + "integrity" "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==" + "resolved" "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" + "version" "6.0.1" + dependencies: + "ansi-regex" "^5.0.1" + +"strip-bom@^3.0.0": + "integrity" "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==" + "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" + "version" "3.0.0" + +"strip-bom@^4.0.0": + "integrity" "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==" + "resolved" "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + "version" "4.0.0" + +"strip-final-newline@^2.0.0": + "integrity" "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + "resolved" "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + "version" "2.0.0" + +"strip-json-comments@^2.0.0": + "integrity" "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz" + "version" "2.0.1" + +"strip-json-comments@^3.1.1": + "integrity" "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "resolved" "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" + "version" "3.1.1" + +"strtok3@^6.2.4": + "integrity" "sha512-fZtbhtvI9I48xDSywd/somNqgUHl2L2cstmXCCif0itOf96jeW18MBSyrLuNicYQVkvpOxkZtkzujiTJ9LW5Jw==" + "resolved" "https://registry.npmjs.org/strtok3/-/strtok3-6.3.0.tgz" + "version" "6.3.0" dependencies: "@tokenizer/token" "^0.3.0" - peek-readable "^4.1.0" - -superagent@^8.0.0: - version "8.0.0" - resolved "https://registry.npmjs.org/superagent/-/superagent-8.0.0.tgz" - integrity sha512-iudipXEel+SzlP9y29UBWGDjB+Zzag+eeA1iLosaR2YHBRr1Q1kC29iBrF2zIVD9fqVbpZnXkN/VJmwFMVyNWg== - dependencies: - component-emitter "^1.3.0" - cookiejar "^2.1.3" - debug "^4.3.4" - fast-safe-stringify "^2.1.1" - form-data "^4.0.0" - formidable "^2.0.1" - methods "^1.1.2" - mime "2.6.0" - qs "^6.10.3" - readable-stream "^3.6.0" - semver "^7.3.7" - -supertest@^6.1.6: - version "6.2.4" - resolved "https://registry.npmjs.org/supertest/-/supertest-6.2.4.tgz" - integrity sha512-M8xVnCNv+q2T2WXVzxDECvL2695Uv2uUj2O0utxsld/HRyJvOU8W9f1gvsYxSNU4wmIe0/L/ItnpU4iKq0emDA== - dependencies: - methods "^1.1.2" - superagent "^8.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -supports-color@^8.0.0: - version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" - integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== - dependencies: - has-flag "^4.0.0" - -supports-hyperlinks@^2.0.0: - version "2.2.0" - resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" - integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== - dependencies: - has-flag "^4.0.0" - supports-color "^7.0.0" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -tar@^6.0.2, tar@^6.1.11, tar@^6.1.2: - version "6.1.11" - resolved "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz" - integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.1" - mkdirp "^1.0.3" - yallist "^4.0.0" - -terminal-link@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" - integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== - dependencies: - ansi-escapes "^4.2.1" - supports-hyperlinks "^2.0.0" - -test-exclude@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" - integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== + "peek-readable" "^4.1.0" + +"superagent@^8.0.0": + "integrity" "sha512-iudipXEel+SzlP9y29UBWGDjB+Zzag+eeA1iLosaR2YHBRr1Q1kC29iBrF2zIVD9fqVbpZnXkN/VJmwFMVyNWg==" + "resolved" "https://registry.npmjs.org/superagent/-/superagent-8.0.0.tgz" + "version" "8.0.0" + dependencies: + "component-emitter" "^1.3.0" + "cookiejar" "^2.1.3" + "debug" "^4.3.4" + "fast-safe-stringify" "^2.1.1" + "form-data" "^4.0.0" + "formidable" "^2.0.1" + "methods" "^1.1.2" + "mime" "2.6.0" + "qs" "^6.10.3" + "readable-stream" "^3.6.0" + "semver" "^7.3.7" + +"supertest@^6.1.6": + "integrity" "sha512-M8xVnCNv+q2T2WXVzxDECvL2695Uv2uUj2O0utxsld/HRyJvOU8W9f1gvsYxSNU4wmIe0/L/ItnpU4iKq0emDA==" + "resolved" "https://registry.npmjs.org/supertest/-/supertest-6.2.4.tgz" + "version" "6.2.4" + dependencies: + "methods" "^1.1.2" + "superagent" "^8.0.0" + +"supports-color@^5.3.0": + "integrity" "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" + "version" "5.5.0" + dependencies: + "has-flag" "^3.0.0" + +"supports-color@^7.0.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "has-flag" "^4.0.0" + +"supports-color@^7.1.0": + "integrity" "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" + "version" "7.2.0" + dependencies: + "has-flag" "^4.0.0" + +"supports-color@^8.0.0": + "integrity" "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==" + "resolved" "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + "version" "8.1.1" + dependencies: + "has-flag" "^4.0.0" + +"supports-hyperlinks@^2.0.0": + "integrity" "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==" + "resolved" "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz" + "version" "2.2.0" + dependencies: + "has-flag" "^4.0.0" + "supports-color" "^7.0.0" + +"supports-preserve-symlinks-flag@^1.0.0": + "integrity" "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" + "version" "1.0.0" + +"tar@^6.0.2", "tar@^6.1.11", "tar@^6.1.2": + "integrity" "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==" + "resolved" "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz" + "version" "6.1.11" + dependencies: + "chownr" "^2.0.0" + "fs-minipass" "^2.0.0" + "minipass" "^3.0.0" + "minizlib" "^2.1.1" + "mkdirp" "^1.0.3" + "yallist" "^4.0.0" + +"terminal-link@^2.0.0": + "integrity" "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==" + "resolved" "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz" + "version" "2.1.1" + dependencies: + "ansi-escapes" "^4.2.1" + "supports-hyperlinks" "^2.0.0" + +"test-exclude@^6.0.0": + "integrity" "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==" + "resolved" "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + "version" "6.0.0" dependencies: "@istanbuljs/schema" "^0.1.2" - glob "^7.1.4" - minimatch "^3.0.4" + "glob" "^7.1.4" + "minimatch" "^3.0.4" -thenify-all@^1.0.0: - version "1.6.0" - resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" - integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== +"thenify-all@^1.0.0": + "integrity" "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==" + "resolved" "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" + "version" "1.6.0" dependencies: - thenify ">= 3.1.0 < 4" + "thenify" ">= 3.1.0 < 4" "thenify@>= 3.1.0 < 4": - version "3.3.1" - resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" - integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + "integrity" "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==" + "resolved" "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz" + "version" "3.3.1" dependencies: - any-promise "^1.0.0" + "any-promise" "^1.0.0" -thirty-two@1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz" - integrity sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA== +"thirty-two@1.0.2": + "integrity" "sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==" + "resolved" "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz" + "version" "1.0.2" -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== +"tmp@^0.0.33": + "integrity" "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==" + "resolved" "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" + "version" "0.0.33" dependencies: - os-tmpdir "~1.0.2" + "os-tmpdir" "~1.0.2" -tmpl@1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" - integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== +"tmpl@1.0.5": + "integrity" "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + "resolved" "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + "version" "1.0.5" -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== +"to-fast-properties@^2.0.0": + "integrity" "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + "resolved" "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" + "version" "2.0.0" -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== +"to-regex-range@^5.0.1": + "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" + "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + "version" "5.0.1" dependencies: - is-number "^7.0.0" + "is-number" "^7.0.0" -toidentifier@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" - integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +"toidentifier@1.0.1": + "integrity" "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + "resolved" "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz" + "version" "1.0.1" -token-types@^4.1.1: - version "4.2.1" - resolved "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz" - integrity sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ== +"token-types@^4.1.1": + "integrity" "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ==" + "resolved" "https://registry.npmjs.org/token-types/-/token-types-4.2.1.tgz" + "version" "4.2.1" dependencies: "@tokenizer/token" "^0.3.0" - ieee754 "^1.2.1" - -tr46@~0.0.3: - version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" - integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== - -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - -ts-node-dev@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-2.0.0.tgz" - integrity sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w== - dependencies: - chokidar "^3.5.1" - dynamic-dedupe "^0.3.0" - minimist "^1.2.6" - mkdirp "^1.0.4" - resolve "^1.0.0" - rimraf "^2.6.1" - source-map-support "^0.5.12" - tree-kill "^1.2.2" - ts-node "^10.4.0" - tsconfig "^7.0.0" - -ts-node@^10.2.1, ts-node@^10.4.0: - version "10.9.1" - resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" - integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + "ieee754" "^1.2.1" + +"tr46@~0.0.3": + "integrity" "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + "resolved" "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + "version" "0.0.3" + +"tree-kill@^1.2.2": + "integrity" "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==" + "resolved" "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" + "version" "1.2.2" + +"ts-node-dev@^2.0.0": + "integrity" "sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==" + "resolved" "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "chokidar" "^3.5.1" + "dynamic-dedupe" "^0.3.0" + "minimist" "^1.2.6" + "mkdirp" "^1.0.4" + "resolve" "^1.0.0" + "rimraf" "^2.6.1" + "source-map-support" "^0.5.12" + "tree-kill" "^1.2.2" + "ts-node" "^10.4.0" + "tsconfig" "^7.0.0" + +"ts-node@^10.2.1", "ts-node@^10.4.0", "ts-node@^10.7.0", "ts-node@>=9.0.0": + "integrity" "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==" + "resolved" "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz" + "version" "10.9.1" dependencies: "@cspotcode/source-map-support" "^0.8.0" "@tsconfig/node10" "^1.0.7" "@tsconfig/node12" "^1.0.7" "@tsconfig/node14" "^1.0.0" "@tsconfig/node16" "^1.0.2" - acorn "^8.4.1" - acorn-walk "^8.1.1" - arg "^4.1.0" - create-require "^1.1.0" - diff "^4.0.1" - make-error "^1.1.1" - v8-compile-cache-lib "^3.0.1" - yn "3.1.1" - -ts-patch@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ts-patch/-/ts-patch-2.0.2.tgz#be9dc294ced6f53d6a8912f1f6ac98af23a715cd" - integrity sha512-NbgdS/J/ylaARJVaF1w4cPw378yvw6C1026fU5NKC2GO4jCwRlkuE/G7gwknNMHwkAOhwamKjuzkuLw/u4KlBg== - dependencies: - chalk "^4.1.2" - glob "^8.0.3" - global-prefix "^3.0.0" - minimist "^1.2.6" - resolve "^1.22.1" - shelljs "^0.8.5" - strip-ansi "^6.0.1" - -tsconfig@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz" - integrity sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw== + "acorn" "^8.4.1" + "acorn-walk" "^8.1.1" + "arg" "^4.1.0" + "create-require" "^1.1.0" + "diff" "^4.0.1" + "make-error" "^1.1.1" + "v8-compile-cache-lib" "^3.0.1" + "yn" "3.1.1" + +"ts-patch@^2.0.1", "ts-patch@^2.0.2": + "integrity" "sha512-NbgdS/J/ylaARJVaF1w4cPw378yvw6C1026fU5NKC2GO4jCwRlkuE/G7gwknNMHwkAOhwamKjuzkuLw/u4KlBg==" + "resolved" "https://registry.npmjs.org/ts-patch/-/ts-patch-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "chalk" "^4.1.2" + "glob" "^8.0.3" + "global-prefix" "^3.0.0" + "minimist" "^1.2.6" + "resolve" "^1.22.1" + "shelljs" "^0.8.5" + "strip-ansi" "^6.0.1" + +"tsconfig@^7.0.0": + "integrity" "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==" + "resolved" "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz" + "version" "7.0.0" dependencies: "@types/strip-bom" "^3.0.0" "@types/strip-json-comments" "0.0.30" - strip-bom "^3.0.0" - strip-json-comments "^2.0.0" - -tslib@^1.11.1, tslib@^1.9.3: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.1: - version "2.4.0" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" - integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - -type-detect@4.0.8: - version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" - integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== - -type-fest@^0.21.3: - version "0.21.3" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" - integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== - -type-is@^1.6.4, type-is@~1.6.18: - version "1.6.18" - resolved "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== - dependencies: - media-typer "0.3.0" - mime-types "~2.1.24" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - -typeorm@^0.3.7: - version "0.3.7" - resolved "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz" - integrity sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q== + "strip-bom" "^3.0.0" + "strip-json-comments" "^2.0.0" + +"tslib@^1.11.1": + "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + "version" "1.14.1" + +"tslib@^1.9.3": + "integrity" "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" + "version" "1.14.1" + +"tslib@^2.0.1", "tslib@^2.1.0", "tslib@^2.3.1": + "integrity" "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + "resolved" "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz" + "version" "2.4.0" + +"type-check@~0.3.2": + "integrity" "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==" + "resolved" "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz" + "version" "0.3.2" + dependencies: + "prelude-ls" "~1.1.2" + +"type-detect@4.0.8": + "integrity" "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + "resolved" "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + "version" "4.0.8" + +"type-fest@^0.21.3": + "integrity" "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" + "resolved" "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" + "version" "0.21.3" + +"type-is@^1.6.4", "type-is@~1.6.18": + "integrity" "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==" + "resolved" "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz" + "version" "1.6.18" + dependencies: + "media-typer" "0.3.0" + "mime-types" "~2.1.24" + +"typedarray@^0.0.6": + "integrity" "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==" + "resolved" "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" + "version" "0.0.6" + +"typeorm@^0.3.7": + "integrity" "sha512-MsPJeP6Zuwfe64c++l80+VRqpGEGxf0CkztIEnehQ+CMmQPSHjOnFbFxwBuZ2jiLqZTjLk2ZqQdVF0RmvxNF3Q==" + "resolved" "https://registry.npmjs.org/typeorm/-/typeorm-0.3.7.tgz" + "version" "0.3.7" dependencies: "@sqltools/formatter" "^1.2.2" - app-root-path "^3.0.0" - buffer "^6.0.3" - chalk "^4.1.0" - cli-highlight "^2.1.11" - date-fns "^2.28.0" - debug "^4.3.3" - dotenv "^16.0.0" - glob "^7.2.0" - js-yaml "^4.1.0" - mkdirp "^1.0.4" - reflect-metadata "^0.1.13" - sha.js "^2.4.11" - tslib "^2.3.1" - uuid "^8.3.2" - xml2js "^0.4.23" - yargs "^17.3.1" - -typescript-json-schema@^0.54.0: - version "0.54.0" - resolved "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.54.0.tgz" - integrity sha512-/MNhm1pjdxXiVspjjyRCrQAA1B768cRzHU83aIqN5vQqQEW2NgyyKOfcguiRIMM64lseIZIelegnHOHEu7YDCg== + "app-root-path" "^3.0.0" + "buffer" "^6.0.3" + "chalk" "^4.1.0" + "cli-highlight" "^2.1.11" + "date-fns" "^2.28.0" + "debug" "^4.3.3" + "dotenv" "^16.0.0" + "glob" "^7.2.0" + "js-yaml" "^4.1.0" + "mkdirp" "^1.0.4" + "reflect-metadata" "^0.1.13" + "sha.js" "^2.4.11" + "tslib" "^2.3.1" + "uuid" "^8.3.2" + "xml2js" "^0.4.23" + "yargs" "^17.3.1" + +"typescript-json-schema@^0.54.0": + "integrity" "sha512-/MNhm1pjdxXiVspjjyRCrQAA1B768cRzHU83aIqN5vQqQEW2NgyyKOfcguiRIMM64lseIZIelegnHOHEu7YDCg==" + "resolved" "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.54.0.tgz" + "version" "0.54.0" dependencies: "@types/json-schema" "^7.0.9" "@types/node" "^16.9.2" - glob "^7.1.7" - path-equal "^1.1.2" - safe-stable-stringify "^2.2.0" - ts-node "^10.2.1" - typescript "~4.6.0" - yargs "^17.1.1" - -typescript@^4.1.2: - version "4.7.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== - -typescript@~4.6.0: - version "4.6.4" - resolved "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz" - integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== - -unicode-canonical-property-names-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" - integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== - -unicode-match-property-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" - integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== - dependencies: - unicode-canonical-property-names-ecmascript "^2.0.0" - unicode-property-aliases-ecmascript "^2.0.0" - -unicode-match-property-value-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" - integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw== - -unicode-property-aliases-ecmascript@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" - integrity sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ== - -unique-filename@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== - dependencies: - unique-slug "^2.0.0" - -unique-slug@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== - dependencies: - imurmurhash "^0.1.4" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -unpipe@1.0.0, unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" - integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== - -update-browserslist-db@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz" - integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -url-parse@~1.5.10: - version "1.5.10" - resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" - integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== - dependencies: - querystringify "^2.1.1" - requires-port "^1.0.0" - -util-deprecate@^1.0.1, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -utils-merge@1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" - integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== - -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - -v8-compile-cache-lib@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" - integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== - -v8-to-istanbul@^9.0.1: - version "9.0.1" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz" - integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== + "glob" "^7.1.7" + "path-equal" "^1.1.2" + "safe-stable-stringify" "^2.2.0" + "ts-node" "^10.2.1" + "typescript" "~4.6.0" + "yargs" "^17.1.1" + +"typescript@*", "typescript@^4.1.2", "typescript@^4.2.3", "typescript@^4.4.2", "typescript@^4.7.4", "typescript@>=2.7", "typescript@>=3.7.2", "typescript@>=4.0.0": + "integrity" "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==" + "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz" + "version" "4.7.4" + +"typescript@~4.6.0": + "integrity" "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==" + "resolved" "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz" + "version" "4.6.4" + +"unicode-canonical-property-names-ecmascript@^2.0.0": + "integrity" "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==" + "resolved" "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +"unicode-match-property-ecmascript@^2.0.0": + "integrity" "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==" + "resolved" "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" + "version" "2.0.0" + dependencies: + "unicode-canonical-property-names-ecmascript" "^2.0.0" + "unicode-property-aliases-ecmascript" "^2.0.0" + +"unicode-match-property-value-ecmascript@^2.0.0": + "integrity" "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==" + "resolved" "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +"unicode-property-aliases-ecmascript@^2.0.0": + "integrity" "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==" + "resolved" "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz" + "version" "2.0.0" + +"unique-filename@^1.1.1": + "integrity" "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==" + "resolved" "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" + "version" "1.1.1" + dependencies: + "unique-slug" "^2.0.0" + +"unique-slug@^2.0.0": + "integrity" "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==" + "resolved" "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "imurmurhash" "^0.1.4" + +"universalify@^0.1.0": + "integrity" "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + "resolved" "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" + "version" "0.1.2" + +"unpipe@~1.0.0", "unpipe@1.0.0": + "integrity" "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + "resolved" "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" + "version" "1.0.0" + +"update-browserslist-db@^1.0.4": + "integrity" "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==" + "resolved" "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz" + "version" "1.0.4" + dependencies: + "escalade" "^3.1.1" + "picocolors" "^1.0.0" + +"uri-js@^4.2.2": + "integrity" "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==" + "resolved" "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + "version" "4.4.1" + dependencies: + "punycode" "^2.1.0" + +"url-parse@~1.5.10": + "integrity" "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==" + "resolved" "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" + "version" "1.5.10" + dependencies: + "querystringify" "^2.1.1" + "requires-port" "^1.0.0" + +"util-deprecate@^1.0.1", "util-deprecate@~1.0.1": + "integrity" "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" + "version" "1.0.2" + +"utils-merge@1.0.1": + "integrity" "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + "resolved" "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz" + "version" "1.0.1" + +"uuid@^8.3.2": + "integrity" "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + "resolved" "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" + "version" "8.3.2" + +"v8-compile-cache-lib@^3.0.1": + "integrity" "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + "resolved" "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" + "version" "3.0.1" + +"v8-to-istanbul@^9.0.1": + "integrity" "sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==" + "resolved" "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz" + "version" "9.0.1" dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" - convert-source-map "^1.6.0" + "convert-source-map" "^1.6.0" + +"vary@~1.1.2": + "integrity" "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + "resolved" "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" + "version" "1.1.2" -vary@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz" - integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== +"vm2@^3.9.8": + "integrity" "sha512-AuECTSvwu2OHLAZYhG716YzwodKCIJxB6u1zG7PgSQwIgAlEaoXH52bxdcvT8GkGjnYK7r7yWDW0m0sOsPuBjQ==" + "resolved" "https://registry.npmjs.org/vm2/-/vm2-3.9.10.tgz" + "version" "3.9.10" + dependencies: + "acorn" "^8.7.0" + "acorn-walk" "^8.2.0" -vm2@^3.9.8: - version "3.9.10" - resolved "https://registry.npmjs.org/vm2/-/vm2-3.9.10.tgz" - integrity sha512-AuECTSvwu2OHLAZYhG716YzwodKCIJxB6u1zG7PgSQwIgAlEaoXH52bxdcvT8GkGjnYK7r7yWDW0m0sOsPuBjQ== - dependencies: - acorn "^8.7.0" - acorn-walk "^8.2.0" - -walker@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" - integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== - dependencies: - makeerror "1.0.12" - -webidl-conversions@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" - integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== - -whatwg-url@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" - integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== - dependencies: - tr46 "~0.0.3" - webidl-conversions "^3.0.0" - -which@^1.2.9, which@^1.3.1: - version "1.3.1" - resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -which@^2.0.1, which@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -wide-align@^1.1.2, wide-align@^1.1.5: - version "1.1.5" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" - integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== - dependencies: - string-width "^1.0.2 || 2 || 3 || 4" - -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" - integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== - -write-file-atomic@^4.0.1: - version "4.0.1" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz" - integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== - dependencies: - imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -ws@^8.8.1: - version "8.8.1" - resolved "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== - -xml2js@^0.4.23: - version "0.4.23" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - -xmlbuilder@~11.0.0: - version "11.0.1" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" - integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== - -xregexp@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz" - integrity sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA== - -xtend@^4.0.0: - version "4.0.2" - resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^5.0.5: - version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" - integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== - -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs-parser@^21.0.0: - version "21.0.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz" - integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== - -yargs@^16.0.0: - version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yargs@^17.1.1, yargs@^17.3.1: - version "17.5.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz" - integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.3" - y18n "^5.0.5" - yargs-parser "^21.0.0" - -yn@3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" - integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== - -yocto-queue@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== +"walker@^1.0.8": + "integrity" "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==" + "resolved" "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" + "version" "1.0.8" + dependencies: + "makeerror" "1.0.12" + +"webidl-conversions@^3.0.0": + "integrity" "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + "resolved" "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + "version" "3.0.1" + +"whatwg-url@^5.0.0": + "integrity" "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==" + "resolved" "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + "version" "5.0.0" + dependencies: + "tr46" "~0.0.3" + "webidl-conversions" "^3.0.0" + +"which@^1.2.9": + "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + +"which@^1.3.1": + "integrity" "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==" + "resolved" "https://registry.npmjs.org/which/-/which-1.3.1.tgz" + "version" "1.3.1" + dependencies: + "isexe" "^2.0.0" + +"which@^2.0.1", "which@^2.0.2": + "integrity" "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==" + "resolved" "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + "version" "2.0.2" + dependencies: + "isexe" "^2.0.0" + +"wide-align@^1.1.2", "wide-align@^1.1.5": + "integrity" "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==" + "resolved" "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" + "version" "1.1.5" + dependencies: + "string-width" "^1.0.2 || 2 || 3 || 4" + +"word-wrap@~1.2.3": + "integrity" "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "resolved" "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" + "version" "1.2.3" + +"wrap-ansi@^7.0.0": + "integrity" "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==" + "resolved" "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + "version" "7.0.0" + dependencies: + "ansi-styles" "^4.0.0" + "string-width" "^4.1.0" + "strip-ansi" "^6.0.0" + +"wrappy@1": + "integrity" "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "resolved" "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" + "version" "1.0.2" + +"write-file-atomic@^4.0.1": + "integrity" "sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==" + "resolved" "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.1.tgz" + "version" "4.0.1" + dependencies: + "imurmurhash" "^0.1.4" + "signal-exit" "^3.0.7" + +"ws@^8.8.1": + "integrity" "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==" + "resolved" "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz" + "version" "8.8.1" + +"xml2js@^0.4.23": + "integrity" "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==" + "resolved" "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz" + "version" "0.4.23" + dependencies: + "sax" ">=0.6.0" + "xmlbuilder" "~11.0.0" + +"xmlbuilder@~11.0.0": + "integrity" "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + "resolved" "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz" + "version" "11.0.1" + +"xregexp@2.0.0": + "integrity" "sha512-xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==" + "resolved" "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz" + "version" "2.0.0" + +"xtend@^4.0.0": + "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" + "version" "4.0.2" + +"y18n@^5.0.5": + "integrity" "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "resolved" "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" + "version" "5.0.8" + +"yallist@^2.1.2": + "integrity" "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz" + "version" "2.1.2" + +"yallist@^3.0.2": + "integrity" "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + "version" "3.1.1" + +"yallist@^4.0.0": + "integrity" "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "resolved" "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" + "version" "4.0.0" + +"yargs-parser@^20.2.2": + "integrity" "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" + "version" "20.2.9" + +"yargs-parser@^21.0.0": + "integrity" "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" + "resolved" "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz" + "version" "21.0.1" + +"yargs@^16.0.0": + "integrity" "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" + "version" "16.2.0" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.0" + "y18n" "^5.0.5" + "yargs-parser" "^20.2.2" + +"yargs@^17.1.1": + "integrity" "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz" + "version" "17.5.1" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.3" + "y18n" "^5.0.5" + "yargs-parser" "^21.0.0" + +"yargs@^17.3.1": + "integrity" "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==" + "resolved" "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz" + "version" "17.5.1" + dependencies: + "cliui" "^7.0.2" + "escalade" "^3.1.1" + "get-caller-file" "^2.0.5" + "require-directory" "^2.1.1" + "string-width" "^4.2.3" + "y18n" "^5.0.5" + "yargs-parser" "^21.0.0" + +"yn@3.1.1": + "integrity" "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + "resolved" "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" + "version" "3.1.1" + +"yocto-queue@^0.1.0": + "integrity" "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "resolved" "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" + "version" "0.1.0" -- cgit 1.4.1 From 95108eedf08b544cd5295889949fae140beb39ce Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Mon, 15 Aug 2022 07:54:00 +0200 Subject: oops.. move migrations to right folder --- .../mariadb/1660540527213-sync_migrations.ts | 127 --------------- .../sqlite/1660538628956-sync_migrations.ts | 172 --------------------- .../mariadb/1660540527213-sync_migrations.ts | 127 +++++++++++++++ .../sqlite/1660538628956-sync_migrations.ts | 172 +++++++++++++++++++++ 4 files changed, 299 insertions(+), 299 deletions(-) delete mode 100644 src/migrations/mariadb/1660540527213-sync_migrations.ts delete mode 100644 src/migrations/sqlite/1660538628956-sync_migrations.ts create mode 100644 src/util/migrations/mariadb/1660540527213-sync_migrations.ts create mode 100644 src/util/migrations/sqlite/1660538628956-sync_migrations.ts diff --git a/src/migrations/mariadb/1660540527213-sync_migrations.ts b/src/migrations/mariadb/1660540527213-sync_migrations.ts deleted file mode 100644 index 8cc1d2f1..00000000 --- a/src/migrations/mariadb/1660540527213-sync_migrations.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class syncMigrations1660540527213 implements MigrationInterface { - name = 'syncMigrations1660540527213' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` CHANGE \`settings\` \`settingsId\` text NOT NULL - `); - await queryRunner.query(` - CREATE TABLE \`user_settings\` ( - \`id\` varchar(255) NOT NULL, - \`afk_timeout\` int NULL, - \`allow_accessibility_detection\` tinyint NULL, - \`animate_emoji\` tinyint NULL, - \`animate_stickers\` int NULL, - \`contact_sync_enabled\` tinyint NULL, - \`convert_emoticons\` tinyint NULL, - \`custom_status\` text NULL, - \`default_guilds_restricted\` tinyint NULL, - \`detect_platform_accounts\` tinyint NULL, - \`developer_mode\` tinyint NULL, - \`disable_games_tab\` tinyint NULL, - \`enable_tts_command\` tinyint NULL, - \`explicit_content_filter\` int NULL, - \`friend_source_flags\` text NULL, - \`gateway_connected\` tinyint NULL, - \`gif_auto_play\` tinyint NULL, - \`guild_folders\` text NULL, - \`guild_positions\` text NULL, - \`inline_attachment_media\` tinyint NULL, - \`inline_embed_media\` tinyint NULL, - \`locale\` varchar(255) NULL, - \`message_display_compact\` tinyint NULL, - \`native_phone_integration_enabled\` tinyint NULL, - \`render_embeds\` tinyint NULL, - \`render_reactions\` tinyint NULL, - \`restricted_guilds\` text NULL, - \`show_current_game\` tinyint NULL, - \`status\` varchar(255) NULL, - \`stream_notifications_enabled\` tinyint NULL, - \`theme\` varchar(255) NULL, - \`timezone_offset\` int NULL, - PRIMARY KEY (\`id\`) - ) ENGINE = InnoDB - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD \`flags\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`channels\` - ADD \`default_thread_rate_limit_per_user\` int NULL - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` - ADD \`premium_progress_bar_enabled\` tinyint NULL - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP COLUMN \`settingsId\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD \`settingsId\` varchar(255) NULL - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` (\`settingsId\`) - `); - await queryRunner.query(` - CREATE UNIQUE INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD CONSTRAINT \`FK_76ba283779c8441fd5ff819c8cf\` FOREIGN KEY (\`settingsId\`) REFERENCES \`user_settings\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - await queryRunner.query(` - ALTER TABLE \`invites\` - ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP FOREIGN KEY \`FK_76ba283779c8441fd5ff819c8cf\` - `); - await queryRunner.query(` - DROP INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` DROP COLUMN \`settingsId\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` - ADD \`settingsId\` text NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`guilds\` DROP COLUMN \`premium_progress_bar_enabled\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP COLUMN \`default_thread_rate_limit_per_user\` - `); - await queryRunner.query(` - ALTER TABLE \`channels\` DROP COLUMN \`flags\` - `); - await queryRunner.query(` - DROP TABLE \`user_settings\` - `); - await queryRunner.query(` - ALTER TABLE \`users\` CHANGE \`settingsId\` \`settings\` text NOT NULL - `); - await queryRunner.query(` - ALTER TABLE \`invites\` - ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION - `); - } - -} diff --git a/src/migrations/sqlite/1660538628956-sync_migrations.ts b/src/migrations/sqlite/1660538628956-sync_migrations.ts deleted file mode 100644 index 9cdc064f..00000000 --- a/src/migrations/sqlite/1660538628956-sync_migrations.ts +++ /dev/null @@ -1,172 +0,0 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; - -export class syncMigrations1660538628956 implements MigrationInterface { - name = 'syncMigrations1660538628956' - - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - CREATE TABLE "temporary_channels" ( - "id" varchar PRIMARY KEY NOT NULL, - "created_at" datetime NOT NULL, - "name" varchar, - "icon" text, - "type" integer NOT NULL, - "last_message_id" varchar, - "guild_id" varchar, - "parent_id" varchar, - "owner_id" varchar, - "last_pin_timestamp" integer, - "default_auto_archive_duration" integer, - "position" integer, - "permission_overwrites" text, - "video_quality_mode" integer, - "bitrate" integer, - "user_limit" integer, - "nsfw" boolean, - "rate_limit_per_user" integer, - "topic" varchar, - "retention_policy_id" varchar, - "flags" integer, - "default_thread_rate_limit_per_user" integer, - CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_3274522d14af40540b1a883fc80" FOREIGN KEY ("parent_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "temporary_channels"( - "id", - "created_at", - "name", - "icon", - "type", - "last_message_id", - "guild_id", - "parent_id", - "owner_id", - "last_pin_timestamp", - "default_auto_archive_duration", - "position", - "permission_overwrites", - "video_quality_mode", - "bitrate", - "user_limit", - "nsfw", - "rate_limit_per_user", - "topic", - "retention_policy_id" - ) - SELECT "id", - "created_at", - "name", - "icon", - "type", - "last_message_id", - "guild_id", - "parent_id", - "owner_id", - "last_pin_timestamp", - "default_auto_archive_duration", - "position", - "permission_overwrites", - "video_quality_mode", - "bitrate", - "user_limit", - "nsfw", - "rate_limit_per_user", - "topic", - "retention_policy_id" - FROM "channels" - `); - await queryRunner.query(` - DROP TABLE "channels" - `); - await queryRunner.query(` - ALTER TABLE "temporary_channels" - RENAME TO "channels" - `); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(` - ALTER TABLE "channels" - RENAME TO "temporary_channels" - `); - await queryRunner.query(` - CREATE TABLE "channels" ( - "id" varchar PRIMARY KEY NOT NULL, - "created_at" datetime NOT NULL, - "name" varchar, - "icon" text, - "type" integer NOT NULL, - "last_message_id" varchar, - "guild_id" varchar, - "parent_id" varchar, - "owner_id" varchar, - "last_pin_timestamp" integer, - "default_auto_archive_duration" integer, - "position" integer, - "permission_overwrites" text, - "video_quality_mode" integer, - "bitrate" integer, - "user_limit" integer, - "nsfw" boolean, - "rate_limit_per_user" integer, - "topic" varchar, - "retention_policy_id" varchar, - CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_3274522d14af40540b1a883fc80" FOREIGN KEY ("parent_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, - CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION - ) - `); - await queryRunner.query(` - INSERT INTO "channels"( - "id", - "created_at", - "name", - "icon", - "type", - "last_message_id", - "guild_id", - "parent_id", - "owner_id", - "last_pin_timestamp", - "default_auto_archive_duration", - "position", - "permission_overwrites", - "video_quality_mode", - "bitrate", - "user_limit", - "nsfw", - "rate_limit_per_user", - "topic", - "retention_policy_id" - ) - SELECT "id", - "created_at", - "name", - "icon", - "type", - "last_message_id", - "guild_id", - "parent_id", - "owner_id", - "last_pin_timestamp", - "default_auto_archive_duration", - "position", - "permission_overwrites", - "video_quality_mode", - "bitrate", - "user_limit", - "nsfw", - "rate_limit_per_user", - "topic", - "retention_policy_id" - FROM "temporary_channels" - `); - await queryRunner.query(` - DROP TABLE "temporary_channels" - `); - } - -} diff --git a/src/util/migrations/mariadb/1660540527213-sync_migrations.ts b/src/util/migrations/mariadb/1660540527213-sync_migrations.ts new file mode 100644 index 00000000..8cc1d2f1 --- /dev/null +++ b/src/util/migrations/mariadb/1660540527213-sync_migrations.ts @@ -0,0 +1,127 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class syncMigrations1660540527213 implements MigrationInterface { + name = 'syncMigrations1660540527213' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` CHANGE \`settings\` \`settingsId\` text NOT NULL + `); + await queryRunner.query(` + CREATE TABLE \`user_settings\` ( + \`id\` varchar(255) NOT NULL, + \`afk_timeout\` int NULL, + \`allow_accessibility_detection\` tinyint NULL, + \`animate_emoji\` tinyint NULL, + \`animate_stickers\` int NULL, + \`contact_sync_enabled\` tinyint NULL, + \`convert_emoticons\` tinyint NULL, + \`custom_status\` text NULL, + \`default_guilds_restricted\` tinyint NULL, + \`detect_platform_accounts\` tinyint NULL, + \`developer_mode\` tinyint NULL, + \`disable_games_tab\` tinyint NULL, + \`enable_tts_command\` tinyint NULL, + \`explicit_content_filter\` int NULL, + \`friend_source_flags\` text NULL, + \`gateway_connected\` tinyint NULL, + \`gif_auto_play\` tinyint NULL, + \`guild_folders\` text NULL, + \`guild_positions\` text NULL, + \`inline_attachment_media\` tinyint NULL, + \`inline_embed_media\` tinyint NULL, + \`locale\` varchar(255) NULL, + \`message_display_compact\` tinyint NULL, + \`native_phone_integration_enabled\` tinyint NULL, + \`render_embeds\` tinyint NULL, + \`render_reactions\` tinyint NULL, + \`restricted_guilds\` text NULL, + \`show_current_game\` tinyint NULL, + \`status\` varchar(255) NULL, + \`stream_notifications_enabled\` tinyint NULL, + \`theme\` varchar(255) NULL, + \`timezone_offset\` int NULL, + PRIMARY KEY (\`id\`) + ) ENGINE = InnoDB + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD \`flags\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`channels\` + ADD \`default_thread_rate_limit_per_user\` int NULL + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` + ADD \`premium_progress_bar_enabled\` tinyint NULL + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP COLUMN \`settingsId\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD \`settingsId\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` (\`settingsId\`) + `); + await queryRunner.query(` + CREATE UNIQUE INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD CONSTRAINT \`FK_76ba283779c8441fd5ff819c8cf\` FOREIGN KEY (\`settingsId\`) REFERENCES \`user_settings\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + await queryRunner.query(` + ALTER TABLE \`invites\` + ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE CASCADE ON UPDATE NO ACTION + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`invites\` DROP FOREIGN KEY \`FK_15c35422032e0b22b4ada95f48f\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP FOREIGN KEY \`FK_76ba283779c8441fd5ff819c8cf\` + `); + await queryRunner.query(` + DROP INDEX \`REL_76ba283779c8441fd5ff819c8c\` ON \`users\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` DROP COLUMN \`settingsId\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` + ADD \`settingsId\` text NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`guilds\` DROP COLUMN \`premium_progress_bar_enabled\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP COLUMN \`default_thread_rate_limit_per_user\` + `); + await queryRunner.query(` + ALTER TABLE \`channels\` DROP COLUMN \`flags\` + `); + await queryRunner.query(` + DROP TABLE \`user_settings\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` CHANGE \`settingsId\` \`settings\` text NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`invites\` + ADD CONSTRAINT \`FK_15c35422032e0b22b4ada95f48f\` FOREIGN KEY (\`inviter_id\`) REFERENCES \`users\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION + `); + } + +} diff --git a/src/util/migrations/sqlite/1660538628956-sync_migrations.ts b/src/util/migrations/sqlite/1660538628956-sync_migrations.ts new file mode 100644 index 00000000..9cdc064f --- /dev/null +++ b/src/util/migrations/sqlite/1660538628956-sync_migrations.ts @@ -0,0 +1,172 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class syncMigrations1660538628956 implements MigrationInterface { + name = 'syncMigrations1660538628956' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_channels" ( + "id" varchar PRIMARY KEY NOT NULL, + "created_at" datetime NOT NULL, + "name" varchar, + "icon" text, + "type" integer NOT NULL, + "last_message_id" varchar, + "guild_id" varchar, + "parent_id" varchar, + "owner_id" varchar, + "last_pin_timestamp" integer, + "default_auto_archive_duration" integer, + "position" integer, + "permission_overwrites" text, + "video_quality_mode" integer, + "bitrate" integer, + "user_limit" integer, + "nsfw" boolean, + "rate_limit_per_user" integer, + "topic" varchar, + "retention_policy_id" varchar, + "flags" integer, + "default_thread_rate_limit_per_user" integer, + CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_3274522d14af40540b1a883fc80" FOREIGN KEY ("parent_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_channels"( + "id", + "created_at", + "name", + "icon", + "type", + "last_message_id", + "guild_id", + "parent_id", + "owner_id", + "last_pin_timestamp", + "default_auto_archive_duration", + "position", + "permission_overwrites", + "video_quality_mode", + "bitrate", + "user_limit", + "nsfw", + "rate_limit_per_user", + "topic", + "retention_policy_id" + ) + SELECT "id", + "created_at", + "name", + "icon", + "type", + "last_message_id", + "guild_id", + "parent_id", + "owner_id", + "last_pin_timestamp", + "default_auto_archive_duration", + "position", + "permission_overwrites", + "video_quality_mode", + "bitrate", + "user_limit", + "nsfw", + "rate_limit_per_user", + "topic", + "retention_policy_id" + FROM "channels" + `); + await queryRunner.query(` + DROP TABLE "channels" + `); + await queryRunner.query(` + ALTER TABLE "temporary_channels" + RENAME TO "channels" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "channels" + RENAME TO "temporary_channels" + `); + await queryRunner.query(` + CREATE TABLE "channels" ( + "id" varchar PRIMARY KEY NOT NULL, + "created_at" datetime NOT NULL, + "name" varchar, + "icon" text, + "type" integer NOT NULL, + "last_message_id" varchar, + "guild_id" varchar, + "parent_id" varchar, + "owner_id" varchar, + "last_pin_timestamp" integer, + "default_auto_archive_duration" integer, + "position" integer, + "permission_overwrites" text, + "video_quality_mode" integer, + "bitrate" integer, + "user_limit" integer, + "nsfw" boolean, + "rate_limit_per_user" integer, + "topic" varchar, + "retention_policy_id" varchar, + CONSTRAINT "FK_3873ed438575cce703ecff4fc7b" FOREIGN KEY ("owner_id") REFERENCES "users" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_3274522d14af40540b1a883fc80" FOREIGN KEY ("parent_id") REFERENCES "channels" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION, + CONSTRAINT "FK_c253dafe5f3a03ec00cd8fb4581" FOREIGN KEY ("guild_id") REFERENCES "guilds" ("id") ON DELETE CASCADE ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "channels"( + "id", + "created_at", + "name", + "icon", + "type", + "last_message_id", + "guild_id", + "parent_id", + "owner_id", + "last_pin_timestamp", + "default_auto_archive_duration", + "position", + "permission_overwrites", + "video_quality_mode", + "bitrate", + "user_limit", + "nsfw", + "rate_limit_per_user", + "topic", + "retention_policy_id" + ) + SELECT "id", + "created_at", + "name", + "icon", + "type", + "last_message_id", + "guild_id", + "parent_id", + "owner_id", + "last_pin_timestamp", + "default_auto_archive_duration", + "position", + "permission_overwrites", + "video_quality_mode", + "bitrate", + "user_limit", + "nsfw", + "rate_limit_per_user", + "topic", + "retention_policy_id" + FROM "temporary_channels" + `); + await queryRunner.query(` + DROP TABLE "temporary_channels" + `); + } + +} -- cgit 1.4.1 From 6d9ea1a7bc9d44a547fe1566393e122ae252eb8c Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Mon, 15 Aug 2022 09:47:49 +0200 Subject: Fix nullables, fix user settings hanging stuff --- scripts/db_migrations.sh | 6 +- src/gateway/opcodes/Identify.ts | 2 +- src/util/entities/User.ts | 6 +- .../mariadb/1660549252130-fix_nullables.ts | 30 +++ .../postgres/1660549242936-fix_nullables.ts | 30 +++ .../sqlite/1660549233583-fix_nullables.ts | 240 +++++++++++++++++++++ 6 files changed, 307 insertions(+), 7 deletions(-) create mode 100644 src/util/migrations/mariadb/1660549252130-fix_nullables.ts create mode 100644 src/util/migrations/postgres/1660549242936-fix_nullables.ts create mode 100644 src/util/migrations/sqlite/1660549233583-fix_nullables.ts diff --git a/scripts/db_migrations.sh b/scripts/db_migrations.sh index 89404878..9ec8230a 100755 --- a/scripts/db_migrations.sh +++ b/scripts/db_migrations.sh @@ -19,9 +19,9 @@ make_migration() { mkdir "src/util/migrations/$2" 2>/dev/null # npm run build clean logerrors pretty-errors THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle - THREADS=1 DATABASE="$1" DB_MIGRATE=a npx typeorm-ts-node-commonjs migration:generate "src/migrations/$2/$FILENAME" -d src/util/util/Database.ts -p - npm run build clean logerrors pretty-errors - THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle + THREADS=1 DATABASE="$1" DB_MIGRATE=a npx typeorm-ts-node-commonjs migration:generate "src/util/migrations/$2/$FILENAME" -d src/util/util/Database.ts -p + #npm run build clean logerrors pretty-errors + #THREADS=1 DATABASE="$1" DB_MIGRATE=a npm run start:bundle } npm i sqlite3 diff --git a/src/gateway/opcodes/Identify.ts b/src/gateway/opcodes/Identify.ts index d5dae7b0..44db598c 100644 --- a/src/gateway/opcodes/Identify.ts +++ b/src/gateway/opcodes/Identify.ts @@ -105,7 +105,7 @@ export async function onIdentify(this: WebSocket, data: Payload) { if (!user.settings) { //settings may not exist after updating... user.settings = new UserSettings(); user.settings.id = user.id; - await user.settings.save(); + //await (user.settings as UserSettings).save(); } if (!identify.intents) identify.intents = "30064771071"; diff --git a/src/util/entities/User.ts b/src/util/entities/User.ts index 61343e81..5432f298 100644 --- a/src/util/entities/User.ts +++ b/src/util/entities/User.ts @@ -97,7 +97,7 @@ export class User extends BaseClass { @Column() bot: boolean = false; // if user is bot - @Column() + @Column({ nullable: true }) bio: string; // short description of the user (max 190 chars -> should be configurable) @Column() @@ -106,7 +106,7 @@ export class User extends BaseClass { @Column({ select: false }) nsfw_allowed: boolean = true; // if the user can do age-restricted actions (NSFW channels/guilds/commands) // TODO: depending on age - @Column({ select: false }) + @Column({ select: false, nullable: true }) mfa_enabled: boolean; // if multi factor authentication is enabled @Column({ select: false, nullable: true }) @@ -281,8 +281,8 @@ export class User extends BaseClass { settings: { ...new UserSettings(), locale: language } }); + //await (user.settings as UserSettings).save(); await user.save(); - await user.settings.save(); setImmediate(async () => { if (Config.get().guild.autoJoin.enabled) { diff --git a/src/util/migrations/mariadb/1660549252130-fix_nullables.ts b/src/util/migrations/mariadb/1660549252130-fix_nullables.ts new file mode 100644 index 00000000..c9456b54 --- /dev/null +++ b/src/util/migrations/mariadb/1660549252130-fix_nullables.ts @@ -0,0 +1,30 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class fixNullables1660549252130 implements MigrationInterface { + name = 'fixNullables1660549252130' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + DROP INDEX \`IDX_76ba283779c8441fd5ff819c8c\` ON \`users\` + `); + await queryRunner.query(` + ALTER TABLE \`users\` CHANGE \`bio\` \`bio\` varchar(255) NULL + `); + await queryRunner.query(` + ALTER TABLE \`users\` CHANGE \`mfa_enabled\` \`mfa_enabled\` tinyint NULL + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE \`users\` CHANGE \`mfa_enabled\` \`mfa_enabled\` tinyint NOT NULL + `); + await queryRunner.query(` + ALTER TABLE \`users\` CHANGE \`bio\` \`bio\` varchar(255) NOT NULL + `); + await queryRunner.query(` + CREATE UNIQUE INDEX \`IDX_76ba283779c8441fd5ff819c8c\` ON \`users\` (\`settingsId\`) + `); + } + +} diff --git a/src/util/migrations/postgres/1660549242936-fix_nullables.ts b/src/util/migrations/postgres/1660549242936-fix_nullables.ts new file mode 100644 index 00000000..b9a0194d --- /dev/null +++ b/src/util/migrations/postgres/1660549242936-fix_nullables.ts @@ -0,0 +1,30 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class fixNullables1660549242936 implements MigrationInterface { + name = 'fixNullables1660549242936' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" + ALTER COLUMN "bio" DROP NOT NULL + `); + await queryRunner.query(` + ALTER TABLE "users" + ALTER COLUMN "mfa_enabled" DROP NOT NULL + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" + ALTER COLUMN "mfa_enabled" + SET NOT NULL + `); + await queryRunner.query(` + ALTER TABLE "users" + ALTER COLUMN "bio" + SET NOT NULL + `); + } + +} diff --git a/src/util/migrations/sqlite/1660549233583-fix_nullables.ts b/src/util/migrations/sqlite/1660549233583-fix_nullables.ts new file mode 100644 index 00000000..68f650c7 --- /dev/null +++ b/src/util/migrations/sqlite/1660549233583-fix_nullables.ts @@ -0,0 +1,240 @@ +import { MigrationInterface, QueryRunner } from "typeorm"; + +export class fixNullables1660549233583 implements MigrationInterface { + name = 'fixNullables1660549233583' + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + CREATE TABLE "temporary_users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL, + "settingsId" varchar, + CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId"), + CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" FOREIGN KEY ("settingsId") REFERENCES "user_settings" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "temporary_users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + FROM "users" + `); + await queryRunner.query(` + DROP TABLE "users" + `); + await queryRunner.query(` + ALTER TABLE "temporary_users" + RENAME TO "users" + `); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query(` + ALTER TABLE "users" + RENAME TO "temporary_users" + `); + await queryRunner.query(` + CREATE TABLE "users" ( + "id" varchar PRIMARY KEY NOT NULL, + "username" varchar NOT NULL, + "discriminator" varchar NOT NULL, + "avatar" varchar, + "accent_color" integer, + "banner" varchar, + "phone" varchar, + "desktop" boolean NOT NULL, + "mobile" boolean NOT NULL, + "premium" boolean NOT NULL, + "premium_type" integer NOT NULL, + "bot" boolean NOT NULL, + "bio" varchar NOT NULL, + "system" boolean NOT NULL, + "nsfw_allowed" boolean NOT NULL, + "mfa_enabled" boolean NOT NULL, + "totp_secret" varchar, + "totp_last_ticket" varchar, + "created_at" datetime NOT NULL, + "premium_since" datetime, + "verified" boolean NOT NULL, + "disabled" boolean NOT NULL, + "deleted" boolean NOT NULL, + "email" varchar, + "flags" varchar NOT NULL, + "public_flags" integer NOT NULL, + "rights" bigint NOT NULL, + "data" text NOT NULL, + "fingerprints" text NOT NULL, + "extended_settings" text NOT NULL, + "notes" text NOT NULL, + "settingsId" varchar, + CONSTRAINT "UQ_b1dd13b6ed980004a795ca184a6" UNIQUE ("settingsId"), + CONSTRAINT "FK_76ba283779c8441fd5ff819c8cf" FOREIGN KEY ("settingsId") REFERENCES "user_settings" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION + ) + `); + await queryRunner.query(` + INSERT INTO "users"( + "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + ) + SELECT "id", + "username", + "discriminator", + "avatar", + "accent_color", + "banner", + "phone", + "desktop", + "mobile", + "premium", + "premium_type", + "bot", + "bio", + "system", + "nsfw_allowed", + "mfa_enabled", + "totp_secret", + "totp_last_ticket", + "created_at", + "premium_since", + "verified", + "disabled", + "deleted", + "email", + "flags", + "public_flags", + "rights", + "data", + "fingerprints", + "extended_settings", + "notes", + "settingsId" + FROM "temporary_users" + `); + await queryRunner.query(` + DROP TABLE "temporary_users" + `); + } + +} -- cgit 1.4.1 From 15b1dee513a96107363e9a76a132324f6f338b1e Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Mon, 15 Aug 2022 10:02:26 +0200 Subject: change dev panel path, we missed this one... --- src/api/middlewares/TestClient.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/middlewares/TestClient.ts b/src/api/middlewares/TestClient.ts index a47ff396..c8ea57f6 100644 --- a/src/api/middlewares/TestClient.ts +++ b/src/api/middlewares/TestClient.ts @@ -79,7 +79,7 @@ export default function TestClient(app: Application) { if(!useTestClient) return res.send("Test client is disabled on this instance. Use a stand-alone client to connect this instance.") - res.send(fs.readFileSync(path.join(__dirname, "..", "..", "client_test", "developers.html"), { encoding: "utf8" })); + res.send(fs.readFileSync(path.join(__dirname, "..", "..", "..", "assets", "developers.html"), { encoding: "utf8" })); }); app.get("*", (req: Request, res: Response) => { const { useTestClient } = Config.get().client; -- cgit 1.4.1